Bookmarks
お気に入りバー
SNS
勉強会等
- ダッシュボード - connpass
- 開催予定の参加申込イベント|IT勉強会ならTECH PLAY[テックプレイ]
その他
- takuya-aさんはTwitterを使っています 「検索技術に関する情報交換を目的とした Slack を立ち上げました!こちらの招待リンクからご参加ください。 https://t.co/Tca70vuMff」 / Twitter
- 第2回『Implementing functional languages』勉強会 - connpass
- 論理学友の会例会#19 - connpass
- TypeScriptによるGraphQLバックエンド開発 ─ TypeScriptの型システムとデータフローに着目した宣言的プログラミング|IT勉強会ならTECH PLAY[テックプレイ]
- ruby-jp
- guiland
- いい感じにリンク化するPopup Menu - daiiz
- smalltalk-users.jp
- プログラミング・シンポジウムへの招待
- 48時間でウェイティングリストに3万人、ジャック・ドーシー氏の分散型SNS | coindesk JAPAN | コインデスク・ジャパン
- Bluesky
- Twitter創業者の立ち上げた分散型SNSプロトコル開発団体が新SNS「Bluesky」を発表 - GIGAZINE
- Twitterの元CEOが立ち上げた「分散型ソーシャルメディアのオープン標準」プロジェクトが初期テスト版をリリース - GIGAZINE
- The AT Protocol
- Lint Night #1 - connpass
- 事前知識なしで理解する、静的検査のいろは / Introduction about static analysis without previous knowledge - Speaker Deck
- 総行数57,000の巨大CSS群をLessに書き換えた軌跡 - mixi engineer blog
- さのたけとさんはTwitterを使っています: 「(お知らせ)「code for math」という Discord server を立ち上げました📢 目的:数学の研究や学習のためにプログラムを書いている人たちで繋がり,情報共有や問題解決の手助けをし合うため. 対象:数学者,数学科の学生,数学とプログラミングに興味がある人. 参加 URL: https://t.co/XxYi8L2tXG」 / Twitter
- ROS Japan UG #49 LT大会 - connpass
prog-lang-sys-ja
- プログラミング言語処理系が好きな人の集まり
- prog-lang-sys-ja
- prog-lang-sys-ja
- プログラミング言語が好きな人が集まるSlack・定期ミートアップ - YouTube
日本ソフトウェア科学会
- ss2021 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
- ss2022 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
- PPL 2022: 第24回プログラミングおよびプログラミング言語ワークショップ
- PPL 2023: 第25回プログラミングおよびプログラミング言語ワークショップ
電子署名保証レベル
- 電子署名保証レベル勉強会(9/16開催) - connpass
- NPO日本ネットワークセキュリティ協会 報告書・公開資料
- Microsoft PowerPoint - 20220916-P1-miyauchi.pptx - 20220916-P1-miyauchi.pdf
- esign-level-summary.pdf
Kernel/VM探検隊
- Kernel/VM探検隊online part5 - connpass
- Kernel/VM探検隊online part6 - connpass
opt
- 第一回関数型プログラミング(仮)の会 - connpass
- 第二回関数型プログラミング(仮)の会 - connpass
- 第三回関数型プログラミング(仮)の会 - connpass
Haskell
- Haskell Day 2021 #HaskellDay
- Haskell Day 2021 - connpass
Rust
- Recent topics - rust-lang-jp - Zulip
- 翻訳記事:Zulipが時代の試練に耐えうる理由 - rust-lang-jp - Zulip
- 記事一覧 - uchan note
- osdev-jp
- ゼロからの OS 自作入門 | ゼロからのOS自作入門
- uchan-nos/os-from-zero: 『ゼロからのOS自作入門』(内田公太著、マイナビ出版)のサポートサイトです
- uchan; MikanOSにUSB CDCドライバを追加してシリアル通信 · uchan-nos/os-from-zero Wiki
- uchanの電子工作ラボ
- uchan's site
- CPU+コンパイラ自作ワークショップ - connpass
- Release v1.0リリース · uchan-nos/mikanos
- メール - Ichikawa Shin'ichi - Outlook
- ウォッチリスト - Wikipedia
- @tenpoku1000/WatchさんはTwitterを利用しています / Twitter
- Twitter / 通知
- tenpoku1000に関するツイートアクティビティアナリティクス
- Recent topics - prog-lang-sys-ja - Zulip
- Slack | 進捗報告するところ | プログラミング言語処理系が好きな人の集まり
- Slack | random | search-tech-jp
- Discord | #雑談 | kernel/vm
- Discord | #random | code for math
News
- NHK NEWS WEB|NHKのニュースサイト
- ビジネスニュース|NHK NEWS WEB
- Yahoo! JAPAN
- ライフ - Impress Watch
- 社会 - Impress Watch
- 世界のニュース トトメス5世
- ニュースの記事一覧 | マネーボイス
- ヤス | 未来を見る! 『ヤスの備忘録』連動メルマガ - メルマガ
- GIGAZINE(ソフトウェア)
- GIGAZINE(ネットサービス)
- GIGAZINE(セキュリティ)
- GIGAZINE(ハードウェア)
- GIGAZINE(メモ)
- 規制改革 - 内閣府
相場
- 田中宇の国際ニュース解説
- スイングトレード ★ 日記. - livedoor Blog(ブログ)
- マネー - Impress Watch
- デビット 銀行 - Google 検索
- 不景気.com - 不況を乗り切る不景気ニュースブログ | 倒産・リストラ
- 2023年 (データを読む) : 東京商工リサーチ
- BDIY 銘柄 - バルチック海運指数 名称 - Bloomberg Markets
- Secured Overnight Financing Rate Data - FEDERAL RESERVE BANK of NEW YORK
- 株価指数先物 - Investing.com 日本
- 外国為替 - Bloomberg
- 原油先物 WTI 価格 - Investing.com
- 金先物 価格 - Investing.com
- 米国小麦先物 価格 - Investing.com
- 米国大豆先物 価格 - Investing.com
blog-1
- Ubuntu Weekly Recipe | gihyo.jp
- Linux Daily Topics | gihyo.jp
- Linux Performance, Benchmarks & Open-Source News - Phoronix
- Linux Performance, Benchmarks & Open-Source News - Phoronix
- Linux Performance, Benchmarks & Open-Source News - Phoronix
- Blog · V8
- Google Open Source Blog
- Bytecode Alliance
- 24/7 - News | Igalia - Open Source Consultancy and Development
- Project Zero
- Best Practices for Software Security
- Software Security Disclosure Documentation
- Security Center
- Security Archives | Intel Newsroom
blog-2
- Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog
- フロントエンドBlog | ナレッジ | ミツエーリンクス
- VA Linux エンジニアブログ
- FFRIエンジニアブログ
- 記事一覧 - ラック・セキュリティごった煮ブログ
- フューチャー技術ブログ
- KMC Staff Blog
- Wireless・のおと|サイレックス・テクノロジー株式会社
- POSTD | ニジボックスが運営するエンジニアに向けたキュレーションメディア
- 調査資料|国立国会図書館―National Diet Library
- f/x [エフエックス] ITメディア・タンク
- Happy Developing
- 本の虫@GitHub
- pandanoirさんの記事一覧 | Zenn
blog-3
- won't fix
- blog.jxck.io
- Lispエイリアンの狂想曲 | κeenのHappy Hacκing Blog
- ベインのブログ
- C カテゴリーの記事一覧 - yohhoyの日記
- C++ カテゴリーの記事一覧 - yohhoyの日記
- 記事一覧 - Arantium Maestum
- 記事一覧 - 水底の血
- 記事一覧 - ASnoKaze blog
- 記事一覧 - 借り初めのひみつきち
- 記事一覧 - falsandtruのメモ帳
- 記事一覧 - かねこにっき
- 記事一覧 - hidekatsu-izuno 日々の記録
- 記事一覧 - matsu7874のブログ
MS
- プログラミング - 窓の杜
- システム・ファイル - 窓の杜
- インターネット - 窓の杜
- セキュリティ - 窓の杜
- 山市良のえぬなんとかわーるど
- WindowsUpdate | ニッチなPCゲーマーの環境構築Z
- Windows Weekly Reportのニュースまとめ 1ページ | マイナビニュース
- ASCII.jp:Windows Info
- Japan WDK Support Blog
- Japan Developer Support Core Team Blog
- Home - Windows Developer Blog
- Category : Visual Studio
- C++ Team Blog
- Announcements Archives - Microsoft Edge Blog
PC
- Coelacanth's Dream
- 自作PCユーザーがゲーム用PCの解説をします - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版
- 記事一覧 - Nishiki-Hub
- CPU | ニッチなPCゲーマーの環境構築Z
- ギャズログ | Gaz:Log | 自作PC、PCパーツの最新情報をお届けします。
- テクノロジー | TEXAL
- ASCII.jp:ロードマップでわかる!当世プロセッサー事情
- 動向 技術・デバイス - AV Watch
- 市場 - PC Watch
- 半導体/周辺機器 - PC Watch
- パソコン/タブレット/スマートフォン - PC Watch
- イベント - PC Watch
- ソフトウェア/アプリ - PC Watch
Hardware
- ハードウェア - INTERNET Watch
- どてやの戯れ言
- HanpenBlog
- LTE対応 USBドングル(PIX-MT110) | 株式会社ピクセラ
- モバイル | TEXAL
- iOS | CoRRiENTE.top
- ASCII.jp - iPhone/Mac
- Chips and Cheese – The Devil is in the Details
- Z690 UD (rev. 1.0) サポート | マザーボード - GIGABYTE Japan
- Z790 UD (rev. 1.0) サポート | マザーボード - GIGABYTE Japan
- Amazon.co.jp : nhk 大河ドラマ 音楽
- iPhoneSE3 スマートフォン 商品一覧│中古スマホ販売の【イオシス】
- 【楽天市場】Core i3-1005G1の通販
- 【楽天市場】Core i3-1115G4の通販
規格
- The Unicode Blog
- Programmer's Reference Manuals | 01.org
- NVMe Specification – NVM Express
- INCITS: INCITS 574-202x - Information Technology - ATA Command Set - 6 (ACS-6)
- Specifications | Unified Extensible Firmware Interface Forum
- WG 14 Document log
- PE Format - Windows applications | Microsoft Docs
- WebAssembly Specification — WebAssembly 1.1
- Download DWARF Standards
- Wayland
- Desktop Entry Specification
- Blog - Open Container Initiative
- Specifications - OpenMP
- Khronos SPIR-V Registry - The Khronos Group Inc
書籍
- Amazon.co.jp: 過去30日 または 90日以内 - コンピュータ・IT: 本
購入候補
数学
基礎
- <書籍紹介> これからの集合と位相(梅原雅顕・一木俊助 共著)【数学】
- <書籍紹介> 手を動かしてまなぶ フーリエ解析・ラプラス変換(山根英司 著)【数学】
- 総合的研究 論理学で学ぶ数学――思考ツールとしてのロジック | 旺文社
- 東進Web書店 東進ブックス: 数学の真髄 -論理・写像-
- 新版 パラメータを視る 変数と図形表現 | 株式会社 現代数学社
- 複素関数キャンパス・ゼミ 改訂9 – マセマ出版社
- ベクトル解析キャンパス・ゼミ 改訂6 – マセマ出版社
- 常微分方程式キャンパス・ゼミ 改訂9 – マセマ出版社
- シリーズ〈科学のことばとしての数学〉 統計学のための数学入門30講 |朝倉書店
- 吉田伸生☆web site
- [新装版]確率の基礎から統計へ|日本評論社
- 『いかにして問題をとくか』|丸善出版
- O'Reilly Japan - エレガントな問題解決
統計学
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「統計学で定評のある本。 個人的主観でおおよそ易しい順に並べると 1.小島『完全独習 統計学入門』 2.鳥居『はじめての統計学』 3.宮川『基本統計学』 4.東大『統計学入門』 5.久保川『現代数理統計学の基礎』 6.稲垣『数理統計学』 7.竹村『現代数理統計学』 8.柳川『統計数学』 9.吉田『数理統計学』」 / Twitter
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「1.小島: 完全初心者向け 2.鳥居: 具体的な計算で手を動かして統計学に慣れたい人向け 3.宮川: 数式展開の飛躍少なく計算多め、文系含む学部生向け 4.赤本: 統計学の理論に足を踏み入れたい理系学部生向け 5-7: 測度論の前提知識が(一応)不要、理系学部中級~向け 8, 9: 測度論ベースの硬派な数理統計学」 / Twitter
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「機械学習などデータサイエンス関連の過去ツイートはこちら ↓ https://t.co/OAjdzdvB6W」 / Twitter
- QDくんの過去ツイまとめ(機械学習、時系列分析、確率・統計に関する有益記事紹介) / Twitter
- 完全独習 統計学入門(ダイヤモンド社) | 書籍紹介 | 統計WEB
- 完全独習 ベイズ統計学入門 | 書籍 | ダイヤモンド社
- 基礎から学ぶ統計学 - 羊土社
- ベイズ統計学 |朝倉書店
- 統計的逐次推定論 - 共立出版
確率論
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「測度論的確率論の本。 個人的主観でおおよそ易しい順に 1.原『測度・確率・ルベーグ積分』 2.清水『統計学への確率論、その先へ』 3.ツァピンスキ『測度と積分』 4.佐藤『はじめての確率論』 5.熊谷『確率論』 6.舟木『確率論』 7.志賀『ルベーグ積分から確率論』 8.西尾『確率論』 9.伊藤『確率論』」 / Twitter
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「どれも初等的確率論と集合/位相の知識が必要 1-3: 取っつきやすい 4,5: 経済系院生向き? 6: わかりやすいので工学徒もOKか? 7-9: 数学徒用 1: 証明が大胆に省略されていてあらすじがわかる 2: 定義の動機や教育的な反例もあり初学者向け 3: 証明がStepByStepで見通しが良い。和訳は絶版、金融工学目線」 / Twitter
- QDくん🌸Python/機械学習/データサイエンス/プログラミングさんはTwitterを使っています: 「4: 比較的読み易いが数学書一冊目だと厳しい 5: 確率過程がメインで応用例多め。問題の解答が親切 6: 説明が丁寧でこの分野の定番。定理等のご利益がわかりやすい 7: 数学書にしては例も多めだが行間埋めは必須 8: 定番の教科書。無味乾燥だが証明は丁寧 9: 名著だが読みこなすにはかなり基礎力が必要」 / Twitter
- hirotoさんはTwitterを使っています: 「@developer_quant 高信『確率論』もここの一連に入ってこれる良書なので、もっと広まって欲しいなと思いつつ。 https://t.co/RA2xJs4t5t」 / Twitter
- 確率論 (共立講座 数学の魅力 4) | 高信 敏, 新井 仁之, 小林 俊行, 斎藤 毅, 吉田 朋広 |本 | 通販 | Amazon
- こもりだ ゆういちさんはTwitterを使っています: 「「σ-代数はある種の"情報"とみなすことができる」みたいな言い方をしている確率論の教科書があるって噂、たしかTwitterでいつか見たと思うんだけど、みなさんご存知ないですか……?」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「フォロワーから、舟木直久『確率論』に記述があると教えてもらえました!ありがとうございます!」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「洋書でもあると(目的の関係上)さらに嬉しい 自分でも探してみます」 / Twitter
- しなしろさんはTwitterを使っています: 「@komorin9502 F失します σ-algebraにそういう解釈をするのは条件付期待値やfiltration(時間発展するσ-algebra)の文脈が多いかと思います。Williamsのprobability with martingalesのch9,10などを読むと参考になるかもです」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「@NixerNx ありがとうございます!探してみます。」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「「そんなことはない」っていう文献が出てきた……orz / (PDF) https://t.co/8BmEs1hmXB」 / Twitter
- Information and -algebras - xiiiMuVa_Herves.pdf
- こもりだ ゆういちさんはTwitterを使っています: 「いやしかし 「そんなことはないのでは?」が論文のテーマになるくらいの定説なわけだよな いけるいける」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「自分にアクセス権がある洋書でそういう話してるの見つけた Klenke "Probability Theory: A Comprehensive Course"にいくつかあったぞ」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「FF外のひとから教えてもらった本はすぐアクセスできなかったけど、「条件付き期待値やfiltrationが絡むときによくそういう解釈がなされる」ってアドバイスが役に立った ありがとうございます〜〜」 / Twitter
- こもりだ ゆういちさんはTwitterを使っています: 「@modulo_p ありがと!!ちょっと見てみます」 / Twitter
- Daigo Oue, Ph.D. 🍎さんはTwitterを使っています: 「確率論→Fokker-Planckと経路積分 ↓ 調和振動子の経路積分 ↓ 水素原子→Duru-Kleinert変換 ↓ 場の量子論で経路積分 ↓ 振動積分→∞次元Hilbert空間で"積分" ↓ Duru-Kleinert変換と振動積分 160ページ卒論すごいな思うたらdouble degree→Cambridge数学のっょっょ人だた https://t.co/l1GrNnKx82」 / Twitter
- bMATH_2020_BoutrosDW.pdf
- Daigo Oue, Ph.D. 🍎さんはTwitterを使っています: 「応用数学か」 / Twitter
- ピジョンさんはTwitterを使っています: 「機械学習やるための確率統計、どこから勉強し直したらいいか分かんね〜と思って調べたらドンピシャなのがあった。知識の抜け落ちチェックマジで大事。 NLPのやつも同ページにあって、作られた時期的にXLNet まで扱ってる。(〜2019年) https://t.co/5n6EFZGJ87 https://t.co/ordpT9ipq7」 / Twitter
- note.wcoder.com/MachineLearning/nlp-roadmap/
- 確率論|森北出版株式会社
- 講座 数学の考え方 確率論 |朝倉書店
- 確率論と関数論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 図式と操作的確率論による量子論|森北出版株式会社
- Kenji Nakahira / 中平健治さんはTwitterを使っています: 「操作的確率論では,状態ではなくプロセスを主役とみなします。これは,線形代数においてベクトルではなく行列(線形写像)を主役にすることに相当し,プログラミングにおいて変数ではなく関数を主役にすることに相当します。量子論においては半正定値行列ではなくCP写像を主役とすることに相当します。」 / Twitter
- Kenji Nakahira / 中平健治さんはTwitterを使っています: 「量子論において半正定値行列(つまり状態)を主役とする考え方に慣れている方は,CP写像(つまりプロセス)を主役とするという考え方に慣れるまでに時間がかかるかもしれません。しかし,この考え方をすると統一的な視点が得られ,しばしば新しい気付きを与えてくれると思います。」 / Twitter
- Kenji Nakahira / 中平健治さんはTwitterを使っています: 「一般確率論の説明では,状態とエフェクトが議論の中心で,その他のプロセスについては別途扱うことが多いと思います。操作論や操作的確率論(OPT)では,状態とエフェクトをプロセスの特別な場合とみなします。OPTは始めは理解がやや難しいですが,プロセスを含めた話を統一的に理解できると思います。」 / Twitter
- 素電荷ポケモンさんはTwitterを使っています: 「@KenjiNakahira 最初のモチベーションのところだけ少し目を通しました!(ワクワクしました) 一般確率論はプロセスの部分がよくわからないと思っていましたが操作論の方はそちらがメインなんですね」 / Twitter
- Kenji Nakahira / 中平健治さんはTwitterを使っています: 「気になってくださっており,ありがとうございます。「記号」とは図式のことと思いますが,私が発案したものはほぼないです。量子論の図式は,ボブクックさんという方のグループが整備したものを踏襲しています(若干のアレンジあり)。操作的確率論の図式も,業界では概ね同様のものが使われています。」 / Twitter
- namatameurauraさんはTwitterを使っています: 「@KenjiNakahira twitterに登場されたときから拝見していましたがこの記号というのは先生のご発案ですか?それとも業界でコンセンサスがあるものでしょうか?無知な質問ですみません。自分が学生のときはこういうアプローチはなかったもので。いずれ購入したいと思っています。堀田先生との議論もフォローしていました」 / Twitter
- Kenji Nakahira - 書籍
ルベーグ積分
- 筑摩書房 ルベグ積分入門 / 吉田 洋一 著
- [新装版]ルベーグ積分入門|日本評論社
- ルベーグ積分入門(新装版) (数学選書) | 清三, 伊藤 |本 | 通販 - Amazon.co.jp
- <書籍紹介> ルベーグ積分入門(新装版)(伊藤清三 著)【数学】
- <書籍紹介> 数学のとびら ルベーグ積分と測度(山上 滋 著)【数学】
- リーマン積分からルベーグ積分へ - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
幾何
- 数え上げ幾何学講義 - 東京大学出版会
- 代数幾何学入門|森北出版株式会社
- じっくり学ぶ曲線と曲面 - 共立出版
- <書籍紹介> 曲線と曲面(改訂版)(梅原雅顕・山田光太郎 共著)【数学】
- <書籍紹介> 曲線と曲面の微分幾何(改訂版)(小林昭七 著)【数学】
- 微分幾何学 - 東京大学出版会
- 積分公式で啓くベクトル解析と微分幾何学 - 共立出版
- トポロジーの基礎 上 - 東京大学出版会
- トポロジーの基礎 下 - 東京大学出版会
- 理論物理学のための幾何学とトポロジー1|日本評論社
- 理論物理学のための幾何学とトポロジー2|日本評論社
- フリーズの数学 スケッチ帖 - 共立出版
- K理論 - 岩波書店
- グレブナー基底と代数多様体入門 上 原書4版 - 丸善出版 理工・医学・人文社会科学の専門書出版社
- グレブナー基底と代数多様体入門 下 原書4版 - 丸善出版 理工・医学・人文社会科学の専門書出版社
- [2212.11082] Introduction to Homotopy Type Theory
- The HoTT Book | Homotopy Type Theory
- Characterizations of modalities and lex modalities - ScienceDirect
- [2008.03538] Characterizations of modalities and lex modalities
- リアルタイムグラフィックスの数学 ―GLSLではじめるシェーダプログラミング:書籍案内|技術評論社
- Vulkanプログラミングガイド | ボーンデジタル
- 計算幾何 - 共立出版
- <書籍紹介> 接続の微分幾何とゲージ理論(新装版)(小林昭七 著)【数学】
音声
- Pythonで学ぶ音源分離(機械学習実践シリーズ) - インプレスブックス
- Pythonで学ぶ音声認識 機械学習実践シリーズ - インプレスブックス
- Pythonで学ぶ音声合成 機械学習実践シリーズ - インプレスブックス
- 音声対話システム 基礎から実装まで | Ohmsha
- 音響学講座 6 音声(上) | コロナ社
- 音響学講座 7 音声(下) | コロナ社
- ytakanoさんはTwitterを使っています: 「『Program = Proof』 OCamlとAgda でカリー=ハワード同型対応を証明していく本、めちゃくちゃ面白そう。 https://t.co/LECITkzJty」 / Twitter
- Amazon | PROGRAM = PROOF | Mimram, Samuel | Logic
- 確率微分方程式 - 岩波書店
- 確率偏微分方程式 - 岩波書店
- ラフパス理論と確率解析 - 岩波書店
- 活躍する圏論 - 共立出版
- 圏論の地平線:書籍案内|技術評論社
- 測度の考え方 ~測り測られることの数学~:書籍案内|技術評論社
- かが☆みんさんはTwitterを使っています: 「イデアルが初等数論でどのように使われるかは「素数と2次体の整数論 青木昇著」が良書だと思います。初等数論に関する幾つかのトピックも楽しいです。」 / Twitter
- テンソル代数と表現論 - 東京大学出版会
- 確率の哲学|森北出版株式会社
優先
- 証明作法 - 共立出版
- WadaAssembly.exe💘さんはTwitterを使っています: 「この本、プログラム解析の基礎固めにお勧め激推し。 ただ、原書は数字と数を同一記号で扱っていたり、ホーア論理の完全性の証明に一部誤り(訳書では修正済?)があったりするので、適宜自力修正が必要🛠️ 各種帰納法や不動点理論などの解説がクリスタルクリア」 / Twitter
- プログラミング言語の形式的意味論入門 - 丸善出版 理工・医学・人文社会科学の専門書出版社
- 組込みエンジニアのための状態遷移設計手法―現場で使える状態遷移図・状態遷移表の記述テクニック― (MBD Lab Series) | 久保孝行 |本 | 通販 | Amazon
- 拡張階層化状態遷移表設計手法Ver.2.0―Embedded SEのための設計手法 | 渡辺 政彦 |本 | 通販 | Amazon
- 新装版 数学読本3 - 岩波書店
- O'Reilly Japan - 初めてのGraphQL
- 新装版 数学読本5 - 岩波書店
- Java & Python 最適化・制約充足の問題解法 | Ohmsha
- 新装版 数学読本1 - 岩波書店
- スターティングgRPC | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)
次点
- Webアプリケーションアクセシビリティ──今日から始める現場からの改善 (WEB+DB PRESS plus) | 伊原 力也, 小林 大輔, 桝田 草一, 山本 伶 |本 | 通販 | Amazon
- フロントエンド開発のためのセキュリティ入門 知らなかったでは済まされない脆弱性対策の必須知識(平野 昌士 はせがわ ようすけ 後藤 つぐみ)|翔泳社の本
- Webブラウザセキュリティ ― Webアプリケーションの安全性を支える仕組みを整理する – 技術書出版と販売のラムダノート
- 次元解析入門 - 共立出版
- Pythonによるアルゴリズム設計 | コロナ社
- Every Layout | ボーンデジタル
- ゼロから学ぶRust システムプログラミングの基礎から線形型システムまで | 書籍情報 | 株式会社 講談社サイエンティフィク
- [増補改訂]ビッグデータを支える技術 ――ラップトップ1台で学ぶデータ基盤のしくみ:書籍案内|技術評論社
- [増補改訂第3版]Swift実践入門 ──直感的な文法と安全性を兼ね備えた言語:書籍案内|技術評論社
- プロになるJava ―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書:書籍案内|技術評論社
要検討
- O'Reilly Japan - SQLではじめるデータ分析
- O'Reilly Japan - オブザーバビリティ・エンジニアリング
- 連続最適化アルゴリズム | Ohmsha
- 機械学習のエッセンス | SBクリエイティブ
- 紙と鉛筆で身につける データサイエンティストの仮説思考(孝忠 大輔 川地 章夫 河野 俊輔 鈴木 海理 長城 沙樹 中野 淳一 孝忠 大輔)|翔泳社の本
- 多変数の制御・解析・最適化に使える行列論 | コロナ社
- AI時系列制御解析 | コロナ社
- ガウス過程と機械学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
- ゼロからできるMCMC マルコフ連鎖モンテカルロ法の実践的入門 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 前処理大全[データ分析のためのSQL/R/Python実践テクニック]:書籍案内|技術評論社
- Kaggleで勝つデータ分析の技術:書籍案内|技術評論社
- [試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】:書籍案内|技術評論社
- 検索システム ― 実務者のための開発改善ガイドブック – 技術書出版と販売のラムダノート
その他の新刊・近刊
その他
- 株式会社サイエンス社 株式会社新世社 株式会社数理工学社 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 書誌検索 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 新刊案内 - 岩波書店
- 今月の新刊
- アスキードワンゴ
- 新刊カレンダー|SBクリエイティブ
- BOOKS(書籍、電子書籍)|リックテレコム
- 検索結果 | マイナビブックス
- 青土社
- 日本評論社
- 秀和システム あなたの学びをサポート!
- 近日発売案内(これから発売予定の本)
- 近日刊行書籍 |翔泳社の本
- 近刊書籍|Ohmsha
- 詳細検索 - 東京大学出版会
- ニュースリリース一覧|株式会社インプレスR&D
- 書籍案内|技術評論社
- 工学書・技術書なら『設計技術シリーズ』|科学情報出版
- 1月と7月
- 株式会社 講談社サイエンティフィク | 自然科学の書籍の出版・企画を行っております。
- 書籍一覧 | IT | ソシム
- ラトルズネット
- 内田老鶴圃-新刊・近刊案内
- 印刷書籍一覧 | エビスコム - EBISUCOM
- 株式会社昭和堂
その他
その他
- 本のデジタル保存事業を拡大するためにインターネットアーカイブがオンライン古書店と団結すると表明 - GIGAZINE
- 「国立国会図書館のデジタル化資料の個人送信に関する合意文書」の公表について|国立国会図書館―National Diet Library
- なぜ研究者は学術書を翻訳すべきなのか?|Daichi G. Suzuki|note
- 自分のような専門外の人間が「数学書」を読む時のメモ|きぬいと|note
- 嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
- 機関誌2019|公益社団法人 日本オペレーションズ・リサーチ学会
- 自作OSとかLinuxカーネルについて役立った本 | Zenn
- p20190528a - K-kiwi
- 本を書ける人がなかなかいない:生涯現役のITエンジニアを目指して:エンジニアライフ
- 関数のカリー化って何だ? JavaScriptの関数の使い方をマスターできる解説書が発売 - Book Watch/ニュース - 窓の杜
- 「作って学ぶコンピュータアーキテクチャ」の環境を再現するためのDockerイメージをリリースします - FPGA開発日記
- 著者陣の視点からVision Transformer入門の執筆の背景と書評を書きます - Seitaro Shinagawaの雑記帳
- Eiiti WadaさんはTwitterを使っています: 「先頃出版されたKnuthのThe Art of Computer Programming, Volume 4Bが屆いた. 第1巻の出版が1968年で, 全体は7巻12章の予定だが, 54年経ってやっと4巻7章の途中まで来た. まだ前途遼遠で, サグラダファミリアを1人で建造するような大仕事が続いている.」 / Twitter
論計舎
- 論計舎:論理と計算の科学のオンライン私塾
- 川井新(論計舎代表)さんはTwitterを使っています 「私たちのグループは中間述語論理をはじめとする非古典述語論理の良い振る舞いをする証明体系を構成しcut消去や補完定理などが成り立つかを調べ、Curry-Howardの観点からそれらの計算機的内実を調べることを目標としています https://t.co/SwjamXD7or」 / Twitter
- PROOF THEORY FOR NON-CLASSICAL PREDICATE LOGICS | Takuma Imamura | 17 publications | Research Project
- 数理論理学スターターマニュアル | 論計舎 web shop
古書店
- 日本の古本屋
- 寄付の方法 | つなぐ書店
- 就労継続支援B型 かみふくおか作業所さん (@2017kamisaku) / Twitter
- かみふくおか作業所 | 運営施設 | 社会福祉法人 入間東部福祉会|入間東部福祉会 ふじみ野市、富士見市、三芳町にて障害者支援施設・障害福祉サービス事業所の運営を行う社会福祉法人
- かみふくおか作業所の出張トトロ
BOOTH
- pixiv
- BOOTH - 創作物の総合マーケット
- 登録禁止商品の追加に関するお知らせ - BOOTH
yabaitech.tokyo
- yabaitech.tokyo | yabaitech.tokyoはコンピュータサイエンスに関する話題を広くゆるく扱うサークルです。
- yabaitech.tokyo - BOOTH
- ヤバイテック トーキョー vol.1 - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.2 - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.3(電子版) - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.4(電子版) - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.5 - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.6 - yabaitech.tokyo - BOOTH
- yabaitech.tokyo vol.7 (電子版) - yabaitech.tokyo - BOOTH
DDD
- 伊津野 英克さんはTwitterを使っています 「読了。実装面での補足が多くとてもわかりやすい。ただ、結果としてマイクロサービスが必要な規模じゃなければDDDいらないんじゃね、という思いが強化されてしまった感もあり…… https://t.co/ZkIBwMvDuF」 / Twitter
- ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH
- 伊津野 英克さんはTwitterを使っています 「大規模業務Webアプリを多数作ってきた経験からは、画面なりバッチなり独立した単位で独立したロジック層を作り、共通化することに(労力的ではない)意味がある部分だけ切り出して共通部品化する、というのが一番単純で有用な考えだという結論に至ってる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「何を当たり前のことをと言われるかもしれないけど、現実の開発では工数を下げるために共通部品の設計がされることが多く、後々悲劇を産んでいるケースをよく見る。似ているからと言って共通化してはならないロジックというのは意外に多い。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「業務アプリでは変更が波及しないことが重要な場合があり、一箇所の修正で全体に影響を与えるような共通化は必ずしも好ましくなかったりする、という事情もあるのよね。」 / Twitter
- 【PDF版】わかるかも!? ドメイン駆動設計 はじめの一歩 - シン・オブジェクト倶楽部 - BOOTH
- MultiCoreOS自作入門 - PG_MANA - BOOTH
- マルチコアプロセッサ対応 - OS自作情報 | Software Taprix
- Magia Librejo de Amaneko - BOOTH
- 命題論理の魔導書 - Magia Librejo de Amaneko - BOOTH
- 超準解析の魔導書 - Magia Librejo de Amaneko - BOOTH
- 計算理論の魔導書 - Magia Librejo de Amaneko - BOOTH
- だめぽラボ
- だめぽラボ - BOOTH
- galaxy-sixth-sensey - BOOTH
- マークアップ言語愛好会 - BOOTH
- takanorip - BOOTH
- イヌでもわかるCSS Houdini - 犬テトラ+ 出版社 - BOOTH
- seiya - BOOTH
- マイクロカーネルの設計と実装 - seiya - BOOTH
- windhole booth - BOOTH
- Hello uchan world - BOOTH
- 海洋軟件 - BOOTH
- OtakuAssembly - BOOTH
- fadis_press - BOOTH
- すらりんラボ - BOOTH
- GPSと仲良くなってNTPサーバを作ろう - 調布技研 - BOOTH
- 『くいっく』HTTP/3編 RFC対応版(無料体験版有り) - 猫耳堂 - BOOTH
- 低レイヤを知りたい人のためのCコンパイラ作成入門 - - BOOTH(同人誌通販・ダウンロード)
- 低レイヤを知りたい人のための Cコンパイラ作成入門
- 「低レイヤを知りたい人のためのCコンパイラ作成入門」フィードバックフォーム
- The SATySFibook(Web公開版 第1版) - gfnbooth - BOOTH
- WebRTCをブラウザ外で使ってブラウザでできることを増やしてみませんか?(電子版) - でんでんらぼ - BOOTH
- UEFI読本 ごった煮編 - 海洋軟件 - BOOTH
- 週刊 代数的実数を作る
サークル等
- 作って学ぶルーティングプロトコル〜RustでBGPを実装〜:mr-csce
- 技術書典7: バイナリイーター 詳細
- 大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
- BareMetalで遊ぶ Raspberry Pi - 達人出版会
- 水晶雫
- 株式会社ロングゲート
- WebAssemblyテキストフォーマットで読み解くコンピューティングの未来:ひたひた
- EVカートで始めるモデルベース開発:k-abe
- C++20 ライブラリ機能 1:Cryptomycocolacales
- DirectX12 Programming Vol.4:すらりんラボ
- Linux Container Book (1) Namespace / Network 編:lxc-jp
- QUICの参考書―ゼロから作るRust言語による実装解説―Initial Packet編:MishProto
数学・工学
- 論理と計算の科学シリーズ全編購入権 | 論計舎 web shop
- 既刊(数学) | ニュートンプレス
- 既刊(工学) | ニュートンプレス
- 既刊(その他) | ニュートンプレス
洋書
- Hennessy & Patterson Computer Architecture 第6版 原著の問題点 | Amano Lab
- Racket Programming the Fun Way | No Starch Press
- Amazon | Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables (Dover Books on Mathematics) | Abramowitz, Milton, Stegun, Irene A. | Pure Mathematics
- Amazon | Writing Compilers and Interpreters: A Software Engineering Approach (English Edition) [Kindle edition] by Mak, Ronald | Languages & Tools | Kindleストア
- ytakanoさんはTwitterを使っています: 「『Program = Proof』 OCamlとAgda でカリー=ハワード同型対応を証明していく本、めちゃくちゃ面白そう。 https://t.co/LECITkzJty」 / Twitter
- Amazon | PROGRAM = PROOF | Mimram, Samuel | Logic
- Takayuki KiharaさんはTwitterを使っています: 「Avigad の新しい本 Mathematical Logic and Computation 目次見る限り結構良さそうですね。論理学の初歩の初歩、命題論理から始まって、証明論、計算論、算術っぽい話の入門的話題がざっとあって、後半には二階算術や型理論の話とかも書いてそう https://t.co/IcP6GPDbtL」 / Twitter
- Mathematical Logic and Computation
Wikipedia
- 出版取次 - Wikipedia
- 日本出版取次協会|取協概況|沿革と現状
- フレデリック・ブルックス - Wikipedia
- 人月の神話 - Wikipedia
- 銀の弾などない - Wikipedia
Qiita
- ラムダノートの技術 Advent Calendar 2019 - Qiita
- 自作OSとかLinuxカーネルについて役立った本 - Qiita
- 低レイヤーを学ぶための技術書をまとめてみる - Qiita
- エンジニア1年生の自分に読んでもらいたい書籍 - Qiita
- 偉大なコーダーが推奨する技術書まとめ - Qiita
Twitter
クリプキ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「(モデル検査における) クリプキ構造などの発明者で知られる Saul Kripke氏が亡くなる。(9月15日) https://t.co/Fypz4eqlch」 / Twitter
- Saul Kripke (1940-2022) | Daily Nous
- yusuke miyazakiさんはTwitterを使っています: 「クリプキが81歳で逝去。天才とはまさにこの人のためにある言葉だろう。『ウィトゲンシュタインのパラドックス』は最近文庫化されたので入門におすすめ。『名指しと必然性』が真骨頂。ベンヤミンやデリダの名の理論はもやもやするが、クリプキを読めばその論理的な内実が恐ろしく明晰に説明されている。」 / Twitter
- 諸隈元シュタインさんはTwitterを使っています: 「クリプキによるヴィトゲンシュタイン解釈(=クリプケンシュタイン)の「常識」的な誤解について一般の人が知るには、飯田隆先生の『規則と意味のパラドックス』がお薦めです 飯田先生らしく明晰に、誤りであるがゆえに偉大なクリプキの解釈と、ヴィトに匹敵しうる伝説的な人物像を紹介してくれます https://t.co/xcXDdK98iY」 / Twitter
- 諸隈元シュタインさんはTwitterを使っています: 「その意味では「『探究』が最終的に目ざしている論点が、人間存在の本源的な社会性」という解釈は妥当 でも手稿、改稿、決定稿の比較のみならず、日記やヴィトゲンシュタインの行為まで分析し、『探究』の本源を「哲学的自己省察」と解釈した鬼界先生と比べれば、てんで解っていないと誰もが思うだろう https://t.co/liYVopoT84」 / Twitter
- ドッグさんのツイート: "おもちゃ実装の Git を自分でつくってみてオブジェクトなどの内部データ構造や merge, diff などのアルゴリズムの仕組みを理解できる書籍 Building Git が出るのか.使用言語は Ruby | 'Building Git' https://t.co/Ka8sIaDrno"
- Building Git – shop.jcoglan.com
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「我々は紙の本を安価に全国共通の値段で手に入れることができた最後の世代になるだろう。次の世代に本はない。」 / Twitter
- mumumuさんはTwitterを使っています 「プログラミングHaskellを読んだ(というか斜め読みしつつ演習問題をつまんで最後のページにたどりついた) めっちゃ薄いわりに必要なことがまとまっていて良かったけど,モナドの周りだけはよくわからんかったな.ファンクタ->アプリカティブファンクタ経由で説明されたほうがわかりやすい希ガス」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「プログラミングHaskell、改訂版ではファンクタ→アプリカティブ→モナドで解説されるように改良されていて、実際わかりやすくなっています!」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SICP (計算機プログラムの構造と解釈) JavaScript版。ECMAScript2020に対応している。4章と5章はSchemeのかわりにJavaScriptを対象としているため大幅に書き直されており、構文解析の説明が新しく入った。 https://t.co/QXJ7ZyBPCC」 / Twitter
- Structure and Interpretation of Computer Programs | The MIT Press
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的には、新山はSICPは好きではなく、これをやたらと持ち上げる人々もあまり信用していない。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにJS版はフリーで閲覧可能: https://t.co/6t1sbmdTr1 オリジナル版もフリーで閲覧可能: https://t.co/McSWZ1X46y」 / Twitter
- Structure and Interpretation of Computer Programs, Comparison Edition
- Welcome to the SICP Web Site
- きしだൠ(K1S)さんはTwitterを使っています: 「「文法とライブラリの使い方おぼえればどんなプログラムでも書けるようになるわけじゃないぞー」っていう大切な話が入門書に書いてない。それどころか、文法わかったから書けるよね、みたいなスタンスで書かれてる本が多い。もちろん書けないし、その書き方のヒントすらないので書けるようにもならない」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています: 「「入門書を読んでもプログラム書けるようにはならない」みたいなの結構常識なんだけど、そういう入門書を読んでもプログラムが書けるようにならないのは当たり前で、なぜならプログラムの書き方が解説されてないから。まわりの人も「経験つむしかない」みたいなアドバイスしかできてない」 / Twitter
- おしえて良書 - goodbooks
- 販売中の書籍一覧 – 技術書出版と販売のラムダノート
- Shop Pay: 自分らしく買い、自分らしく払う
- Kindle Cloud Reader
- BOOK TECH | トップ
- ACCESS | gururi
- Knuth: The Art of Computer Programming の話 | IIJ Engineers Blog
規格
JIS
済
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- JIS X 4156:2005 ハイパテキストマーク付け言語(HTML)
- JIS X 4168:2004 段階スタイルシート 水準1(CSS1)
- JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様/Open Systems Interconnection -- Specification of Abstract Syntax Notation One (ASN.1) 日本規格協会 JSA Webdesk
- JIS X 3061:2021 JSONデータ交換フォーマット | 日本規格協会 JSA Group Webdesk
- JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
DSSSL
- JIS X 4153:1998 文書スタイル意味指定言語(DSSSL) | 日本規格協会 JSA Group Webdesk
- JIS X 4153:1998/AMENDMENT 1:2002 文書スタイル意味指定言語(DSSSL)(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 4153:1998/AMENDMENT 2:2005 文書スタイル意味指定言語(DSSSL)(追補2) | 日本規格協会 JSA Group Webdesk
- CSSになり損ねた言語たち | POSTD
- Document Style Semantics and Specification Language - Wikipedia
- Document Style Semantics and Specification Language - Wikipedia
- DSSSL
- SGML/XML + DSSSL/CSS/XSL を活用する
- スタイルシート=CSSではない - パソコンQ&A
- ネクストソリューション株式会社SGML、XML、DSSSLに関するご質問|よくある質問 | ネクストソリューション株式会社
- 令掛ベインさんはTwitterを使っています 「CSSが定着する前のスタイルシートの話をみてる / [The Languages Which Almost Became CSS - Eager Blog](https://t.co/EIzEwXGNDY)」 / Twitter
- The Languages Which Almost Became CSS - Eager Blog
- 令掛ベインさんはTwitterを使っています 「いちからGUIツールキットのスタイルシートを設計するとしたらどういうものにすべきか、というのは興味ある」 / Twitter
アクセシビリティ
- JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
- JIS X 8341-3:2016 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第3部:ウェブコンテンツ | 日本規格協会 JSA Group Webdesk
- JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
- JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
- JIS X 23761:2022 EPUBアクセシビリティ―EPUB出版物の適合性及び発見可能性の要求事項 | 日本規格協会 JSA Group Webdesk
- 電子書籍のアクセシビリティ向上のためにJIS規格制定 - Impress Watch
ODF
- ODF 1.3 is an OASIS Standard - The Document Foundation Blog
- ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- JIS X 0836:2005 ダブリンコアメタデータ基本記述要素集合 | 日本規格協会 JSA Group Webdesk
- JIS X 4158:2005 XML名前空間 | 日本規格協会 JSA Group Webdesk
- JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4169:2007 XSL変換(XSLT)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4176:2005 XMLリンク付け言語(XLink)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4177-2:2005 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG | 日本規格協会 JSA Group Webdesk
- JIS X 4177-2:2005/AMENDMENT 1:2007 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 4178:2007 XMLフォーム言語(XForms)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 5810-1:2008 多目的インターネットメール拡張(MIME)―第1部:インターネットメッセージ本体のフォーマット | 日本規格協会 JSA Group Webdesk
長音符号
- jicchoさんはTwitterを使っています 「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い technical termすら知らないようなきちんと学んだことない人が書いてるから」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 最後を長音にするからですか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 もしそうなら,最近規格が変わったので,最後を長音にしても間違いではないです。 https://t.co/loq6Pdnvb6」 / Twitter
- 外来語やカタカナ用語末尾に長音(ハイフン)をつけて伸ばした方が良い?29歳、離婚しました。
- jicchoさんはTwitterを使っています 「@zacky1972 間違いではないことは知っています。 長音は略しても略さなくても良いことになりましたが、依然として、「専門分野の標準」を用いることが推奨されています。 なので、コンパイラと表記する方がより正しいと思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 この場合の「専門分野の標準」とは具体的に何を指しますか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 これですか? https://t.co/Ah4sDEllsH」 / Twitter
- カタカナ語末尾の長音符号に対する情報処理学会の対応について-情報処理学会
- jicchoさんはTwitterを使っています 「@zacky1972 はい、情報処理学会もそういう流れですし、世界的名著であるドラゴンブックやタイガーブックは標準といっても差し支えないと考えています。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 ドラゴンブックやタイガーブックはもともと洋書なので,日本語表記をどう定めるというのは翻訳者の意向に依るものだと思います。翻訳の年を確認していませんが,おそらく規格が変わる前なのでは?とも思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 また情報処理学会の表記は「当面」「見直す」という言葉が使われていて,暫定的なものであることを臭わせています。したがって末尾の長音の使用を強く禁ずる立場ではないと推察できます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 以上のような意図を汲んで「コンパイラー」というような表記をあえて使用するケースも想定されます。私自身あえて使用する場合もあります。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 「見直す」ではなくて「再検討する」でしたね。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 もちろん僕も情報処理学会も長音の使用を禁止してはいませんよ。 ドラゴンブックなどを翻訳したのは僕のボスとボスのボスなので、そこまでおっしゃるならもはや流派の問題なのでしょうか? コンパイラーと意図的に表記する場合は具体的にどのような場合なのでしょうか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 基本どちらでも良いのですが,あえて使い分けるのでしたら,末尾長音を取るのは経産省の流儀で,つけるのは文化庁やその上部組織である文科省の流儀です。また役所の都合かと言われそうですけど。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私が言いたかったのは「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い」という判別法は,今は使えないということです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 同じことがNVIDIAとかARMにも言えて,本家自身が表記揺れを出している状況です。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 表記で判別するのではなく,中身を見ましょうということです。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 慣例でも学会でも主要な本や論文でも長音がなく、かつ、長音なしが推奨されているのにも関わらず敢えて使う理由が僕には見つかりませんね。 まぁ信じない方がいいというのは極論&ネタですが、慣例や推奨されているのを知った上で敢えて使い続けるのもどうかと思います。 読みづらいですしね。」 / Twitter
- jicchoさんはTwitterを使っています 「みなさん色々な意見をお持ちのようですが、「コンパイラー」という表記は間違いではないです。 ただ、慣例では「コンパイラ」の表記であり、学会や主要な文献でも長音がなく、どっちでもいいとはいえ慣例に従うのが推奨されているので、「コンパイラ」の方がより適切だと言うのが僕の考えです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 威勢が良くていいですね。 自分で書く分には好きな記法で書けば良いと思います。」 / Twitter
- 「サーバー」「サーバ」どっち? ~外来語の長音”ー”表記 | The Material World
- JIS法改正 (METI/経済産業省)
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Twitter検索の日時指定フォーマットは、 since:2022-04-13_00:17:55_UTC といった感じで、ISO 8601と微妙に違うけど、こっちの方がずっと見易いね。 https://t.co/uTWN5JShzS」 / Twitter
- JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
- JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
- JIS X 4177-7:2022 文書スキーマ定義言語(DSDL)―第7部:文字レパートリ記述言語(CREPDL) | 日本規格協会 JSA Group Webdesk
ICN
- IoT向けの新技術を既存のTCP/IPと共存、国内発の技術が国際規格に承認:IoTの大量導入で起こるネットの混雑を防止 - @IT
- IPアドレスに縛られない新しい通信識別技術と既存のインターネットが共存するための国際規格が発行されました (METI/経済産業省)
- 電気電子工学科の横谷哲也教授が主導してきたIoTプラットフォームが国際標準として出版。IoTの普及促進に向けIoTプラットフォームを規定。大学院生も調査分析及び原理検証に貢献 | ニュース | KIT 金沢工業大学
- ISO - ISO/IEC 30161:2020 - Internet of Things (IoT) — Requirements of IoT data exchange platform for various IoT services
- 研究会 - IoT関連技術の国際標準化動向とIoT DEPの提案
- Publicly Available Standards
- 日本規格協会 - JSA Webdesk
- JIS公示 | IPSJ/ITSCJ
- JIS(日本工業標準)関係
- MCPC-モバイルコンピューティング推進コンソーシアム
- CIPA 一般社団法人カメラ映像機器工業会: ホーム
- JEITA 電子情報技術産業協会
- 標準規格(放送分野)一覧表|一般社団法人 電波産業会
- JIS法改正(産業標準化法)(METI/経済産業省)
- 工業標準化法 - Wikipedia
- 日本工業規格 - Wikipedia
- 総務省|標準化の推進|デジュール及びフォーラム標準に関する標準化活動の強化に資する調査
- ISO - ISO/IEC 646:1991 - Information technology — ISO 7-bit coded character set for information interchange
- ISO 80000-2 - Wikipedia
- ISO 80000-2:2019 量及び単位-第2部:数学 | 日本規格協会 JSA Group Webdesk
- 性別がバイナリー (boolean) ではないと言われたら、プログラミング言語で性別をどう定義しますか?に対するOhkubo Koheiさんの回答 - Quora
- ytakanoさんはTwitterを使っています 「身体的性別は、ISO 5218だと、不明、男性、女性、適用不能なのか。 https://t.co/wkLype3FKm」 / Twitter
- ISO 5218 - Wikipedia
- Keigo ImaiさんはTwitterを使っています 「プログラミングの例題でササっと住所とか名前とか年齢を扱うことはままあるだけど、このようにすれば性別も気兼ねなく扱ってよいのかもしれない https://t.co/48YYSEmWWN」 / Twitter
- ISO/IEC 5218 - Wikipedia
- 崎村夏彦『デジタルアイデンティティ』日経BPより発売中さんはTwitterを使っています 「ISO/IEC 29184 『オンライン・プライバシー通知(告知)と同意』ではこういうのは禁止しているので、企業の皆様におかれましては参考にされますように。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「どうして、「キャンペーン情報」と「重要なお知らせ、クレカの利用通知」がまとめられて管理されてるのか。こういう事するとマジで通知全部OFFしか選択肢がなくなるだろ。馬鹿なの? https://t.co/SAaatfMgVt」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「米国議会図書館 (LoC) による、各ファイル形式の持続可能性評価。PDF/AやMP3などのフォーマットについて、オープン性, 普及度, 透明性, 自己完結性, 外部依存性, 特許による影響, 保護機構 の7つの項目を評価している。 https://t.co/8g50Nmw8sq」 / Twitter
- Sustainability of Digital Formats: Planning for Library of Congress Collections
- int $0x03@SNS部さんのツイート: "gnome3に地味な便利機能あったんだ。10進数でも16進数でも文字列選択して右クリックすると10進数と16進数での値とIEC 60027-2での表記が出る https://t.co/6MOfMRDVBP"
改訂版
- コンピュータアーキテクチャ第6版 ー 定量的アプローチ | RISC-V 協会 | RISC-V Association
- O'Reilly Japan - Real World HTTP 第2版
- O'Reilly Japan - 詳解 システム・パフォーマンス 第2版
- リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 情報系教科書シリーズ コンパイラ | Ohmsha
- 令和05年 イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室:書籍案内|技術評論社
- Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
- [改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社
- [改訂3版]内部構造から学ぶPostgreSQL―設計・運用計画の鉄則:書籍案内|技術評論社
- 順列・組合せと確率 - 岩波書店
Unicode
- サポートページ:プログラマのための文字コード技術入門:|技術評論社
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
- 文字符号の歴史:アジア編 正誤表
- 文字符号の歴史 アジア編 三上喜貴 著/2002.3
- 三省堂-世界の言語ガイドブック
- 世界のことば小事典 柴田 武(著/文)(大修館書店)| 版元ドットコム
- 国際化と日本語処理 : Javaプログラミング・ノート : Cafe Babe (アスキー): 2000|書誌詳細|国立国会図書館サーチ
アルゴリズム
その他
- CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
- 省メモリプログラミング―メモリ制限のあるシステムのためのソフトウェアパターン集 (Software patterns series) | ジェイムズ ノーブル, チャールズ ウィアー, James Noble, Charles Weir, 安藤 慶一 |本 | 通販 | Amazon
- 情報科学セミナー 遺伝的プログラミング - 東京電機大学出版局 科学技術と教育を出版からサポートする
- 計算の理論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- おすすめ書籍/プレアデス出版 Pleiades PUBLISHING
- The Art of Computer Programming Volume 4A... - アスキードワンゴ
- グラフ同型性判定問題 | あなたとともに100万人の仲間とともに
- 数学ガール/乱択アルゴリズム | SBクリエイティブ
- CiNii 図書 - 情報学のための離散数学
- 情報科学のための 離散数学 | コロナ社
- 電子機器設計に活かすディジタル代数学|科学情報出版
- マグロウヒル大学演習 離散数学 コンピュータサイエンスの基礎数学 | 理工学専門書,理学,数学 | Ohmsha
- 公開鍵暗号の数理 / 日本応用数理学会 監修 森山 大輔 西巻 陵 岡本 龍明 著 | 共立出版
- 現代暗号の誕生と発展 | 近代科学社
- 珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造 | ジョン ベントリー, Bentley,Jon, 健一郎, 小林 |本 | 通販 | Amazon
エスアイビーアクセス
- 書店・アマゾン販売書一覧 | sibaccess公式ページ
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
シュプリンガー・フェアラーク
- グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
- グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
O'Reilly Japan
- O'Reilly Japan - 並行コンピューティング技法
- O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
- O'Reilly Japan - Hadoop MapReduce デザインパターン
- O'Reilly Japan - プログラミング・ビットコイン
- O'Reilly Japan - 計算できるもの、計算できないもの
技術評論社
- サポートページ:正規表現技術入門 ――最新エンジン実装と理論的背景:|技術評論社
- 平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
- 『暗認本読書会』資料集
- [改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社
- angel (as ㌵㌤の猫)さんはTwitterを使っています: 「@megumish_unsafe 通称「暗認本」https://t.co/mXx5TnukZO が、入門者から詳しく知りたい人まで幅広く対応して良いです。 ※というより、この本が出るまで、まともな一般書が他にほとんどなかったのですが。」 / Twitter
- 図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書:書籍案内|技術評論社
共立出版
- 近似アルゴリズムデザイン / David P.Williamson David B.Shmoys 著 浅野 孝夫 訳 | 共立出版
- 群・環・体入門 / 新妻 弘 木村 哲三 著 | 共立出版
- 簡潔データ構造 - 共立出版
- アルゴリズムと計算量 - 共立出版
- グラフ理論とフレームワークの幾何 - 共立出版
講談社
- 新装版 集合とはなにか | ブルーバックス | 講談社
- 逆問題の考え方 | ブルーバックス | 講談社
- 『「複雑ネットワーク」とは何か』(増田 直紀,今野 紀雄):ブルーバックス|講談社BOOK倶楽部
- 離散数学「数え上げ理論」 : 「おみやげの配り方」から「Nクイーン問題」まで (講談社): 2008|書誌詳細|国立国会図書館サーチ
森北出版
- 超高速グラフ列挙アルゴリズム|森北出版株式会社
- アルゴリズム理論の基礎 | 森北出版株式会社
岩波書店
- 「高速文字列解析の世界」サポートページ - daisuke.okanohara
- 高速文字列解析の世界 - 岩波書店
- 高速文字列解析の世界[読書メモ].rb
- 朱鷺の杜(IBIS)ブログ 高速文字列解析の世界
- 数値処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
コンパイラ
その他
その他
- lint (UNIXユーティリティライブラリ) | イアン・F. ダーウィン, 菊池 彰 |本 | 通販 | Amazon
- i386TMDXマイクロプロセッサプログラマーズ・リファレンス・マニュアル | |本 | 通販 | Amazon
- Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
- 書店・アマゾン販売書一覧 | sibaccess公式ページ
- SQLパフォーマンス詳解 | Markus Winand, Markus Winand |本 | 通販 | Amazon
- オブジェクト指向データベース入門―ポスト・リレーショナル・データベース (SRCハンドブック―STシリーズ) | 宇田川 佳久 |本 | 通販 | Amazon
- Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
- ファジィ・リレーショナル・データベース―エキスパート・システムへの鍵 | ツェマンコバ・リーチ,マリア, カンデル,エイブラハム, 政男, 向殿 |本 | 通販 | Amazon
- 数理論理学 (現代数学レクチャーズ B- 6) | 福山 克 |本 | 通販 | Amazon
- Adaコンパイラ実現のための中間言語DIANA入門 言語仕様 応用 | 僚一, 細谷 |本 | 通販 | Amazon
- Java仮想マシン仕様 (The Java series) | リンドホルム,ティム, イェリン,フランク, Lindholm,Tim, Yellin,Frank, 雅章, 村上 |本 | 通販 | Amazon
- Java分散オブジェクト入門―Java RMI、CORBA、IDL、Jini、JavaSpaces対応 | 中山 茂 |本 | 通販 | Amazon
C コンパイラ自作
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- Amazon - コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販
- S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | ハービソン,3世,サムエル・P., スティール,ジュニア,ガイ・L., Harbison,3,Samuel P., Steele,Jr.,Guy L., 浩, 玉井 |本 | 通販 | Amazon
- 書店・アマゾン販売書一覧 | sibaccess公式ページ
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- O'Reilly Japan - Cクイックリファレンス 第2版
- ISO/IEC 9899:201x - n1570.pdf
- ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
- Clarification Request Summary for C11
- Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- PE Format - Windows applications | Microsoft Docs
- Download DWARF Standards
- DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- Unicode標準入門(Tony Graham 関口 正裕 乾 和志 乾 和志 海老塚 徹 海老塚 徹)|翔泳社の本
- Unicode Standard
- 平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
- Amazon.co.jp - ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン,ジュニア,ヘンリー・S., Warren,Jr.,Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販
- x64 でのソフトウェア規約 | Microsoft Docs
- 書籍情報―Linux技術者のためのC言語入門
- CiNii 図書 - 論理プログラミングの基礎
- 1+2=3
- Miura HidekiさんはTwitterを使っています 「1+1=2じゃないのは、全加算器を導入したいからだな。たぶん」 / Twitter
- 論理学をつくる « 名古屋大学出版会
- ゲーデルの世界 - 海鳴社
- 数理論理学の基礎・基本 (牧野書店): 2012|書誌詳細|国立国会図書館サーチ
- 内田老鶴圃/書籍詳細/数理論理学 使い方と考え方:超準解析の入口まで
- 形式論理探求 第1巻 古典論理のタブロー | やまなみ書房 Yamanami Books
- CiNii 図書 - 時間の論理
- NHK出版新書 394 数学的推論が世界を変える 金融・ゲーム・コンピューター | NHK出版
- 連続体仮説 (東京図書): 1990|書誌詳細|国立国会図書館サーチ
- ゲーデルの定理 | みすず書房
- 論理学への数学的手引き | Herbert B. Enderton, 笹井一個, 嘉田 勝 |本 | 通販 | Amazon
- 嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
- 東京図書株式会社 math stories 計算とは何か
- モナドロジー 形而上学叙説|全集・その他|中央公論新社
- サクサクSmalltalk - 東京電機大学出版局 科学技術と教育を出版からサポートする
- 論理学 - 株式会社昭和堂
- 論理と言葉の練習ノート――日々の思考とAIをつなぐ現代の必須科目
- USP研究所: 書籍 - Cプログラム高速化研究班
- ロボットプログラミングROS2の実装・実践 -実用ロボットの開発-|科学情報出版
- プログラミング原論 - 東京電機大学出版局 科学技術と教育を出版からサポートする
- 詳細(代数学入門)|数学|理工|実教出版
- ゲーデルは何を証明したか|白揚社 -Hakuyosha-
カタカナ社名の出版社
サイエンス社
- コンパイラの理論と作成技法 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- コンパイラ入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 人工知能の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 計算モデル論入門 : チューリング機械からラムダ計算へ (サイエンス社): 2006|書誌詳細|国立国会図書館サーチ
- プログラミング言語の意味論入門 (サイエンス社): 1993|書誌詳細|国立国会図書館サーチ
- プログラミング言語の基礎概念 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- モデルの記述と検証のためのプログラミング入門 – CafeOBJ
- プログラム意味論の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 離散数学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 構造化プログラミング (サイエンスライブラリ情報電算機 32) | E.W.ダイクストラ, C. A. R. ホーア, O.-J. ダール, 野下 浩平 |本 | 通販 | Amazon
コロナ社
- コンピュータ数学シリーズ 超並列処理コンパイラ|コロナ社
- コンピュータ数学シリーズ 3 数理論理学 | コロナ社
- 並列処理シリーズ 命令レベル並列処理 プロセッサアーキテクチャとコンパイラ|コロナ社
- 計算論理に基づく 推論ソフトウェア論 | コロナ社
- 数理論理学 - 合理的エージェントへの応用に向けて - | コロナ社
- 計測・制御テクノロジーシリーズ 16 知識基盤社会のための人工知能入門 | コロナ社
- 1から始める Juliaプログラミング | コロナ社
- コンピュータサイエンス教科書シリーズ 18 数理論理学 | コロナ社
- 数理パズルで楽しく学べる論理学 | コロナ社
オーム社
- GNU Autoconf/Automake/Libtool | コンピュータ・一般書,UNIX,UNIX | Ohmsha
- 新世代工学シリーズ システムソフトウェア | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販 | Amazon
- IT Text コンパイラとバーチャルマシン | Ohmsha
- IT Text プログラム仕様記述論 | Ohmsha
- 型システム入門 プログラミング言語と型の理論 | Ohmsha
- Scheme手習い | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- コンパイラ 作りながら学ぶ | 理工学専門書,情報科学,ソフトウェア・情報システム | Ohmsha
- 関数プログラミングの楽しみ | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 計算できるもの、計算できないもの 実践的アプローチによる計算理論入門 | Ohmsha
- すごいErlangゆかいに学ぼう! | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 並列コンピュータ 非定量的アプローチ | Ohmsha
- 関数プログラミング 珠玉のアルゴリズムデザイン | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- dRubyによる分散・Webプログラミング | 関 将俊 |本 | 通販 | Amazon
- Coders at Work プログラミングの技をめぐる探求 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 7つの言語 7つの世界 | Ohmsha
- 7つのデータベース 7つの世界 | Ohmsha
- Rubyのしくみ Ruby Under a Microscope | Ohmsha
- プログラミングClojure 第2版 | Ohmsha
- On Lisp | Ohmsha
- 実践Common Lisp | Ohmsha
アスキー
- Amazon | エキスパートCプログラミング―知られざるCの深層 (Ascii books) | ピーター ヴァン・デ・リンデン, Peter van der Linden, 梅原 系 通販
- デバッガの理論と実装 (ASCII SOFTWARE SCIENCE Language) | ジョナサン・B. ローゼンバーグ, Jonathan B. Rosenberg, 吉川 邦夫 |本 | 通販 | Amazon
- Amazon | Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown 通販
- C/C++ セキュアコーディング 第2版
- 純粋関数型データ構造 - アスキードワンゴ
- 『純粋関数型データ構造』のためだけの超いい加減な Standard ML 入門 - cafelier@SRM - TopCoder部
- じょんどろさんのツイート: "What's new in purely functional data structures since Okasaki? https://t.co/9xo0yqn1W0 純粋関数データ構造の原著が発売されて以降に生まれた純粋なデータ構造等のリスト"
- reference request - What's new in purely functional data structures since Okasaki? - Theoretical Computer Science Stack Exchange
- CiNii 図書 - Cプログラムブック
- Lisp処理系の作成 (アスキー出版局): 1986|書誌詳細|国立国会図書館サーチ
- アラン・ケイ (アスキー): 1992|書誌詳細|国立国会図書館サーチ
- アラン・ケイ (Ascii books) | アラン・C. ケイ, Kay, Alan Curtis, 雄二, 鶴岡 |本 | 通販 | Amazon
- Lisp処理系の作成 (Cプログラムブック) | 弘一, 小西, 剛, 清水 |本 | 通販 | Amazon
- Haskellによる関数プログラミングの思考法 - アスキードワンゴ
- NFSバイブル (ASCII Addion Wesley Programming Series) | ブレント カラハン, Callaghan,Brent, クイープ |本 | 通販 | Amazon
- 実践 バイナリ解析 - アスキードワンゴ
マイナビ出版
- Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
- Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
- 入門Common Lisp : 関数型4つの特徴とλ計算 (毎日コミュニケーションズ): 2006|書誌詳細|国立国会図書館サーチ
- 基礎からわかる Elm|Tech Book Zone Manatee
- 自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
- セキュア・バイ・デザイン | マイナビブックス
- リバースエンジニアリングツールGhidra実践ガイド | マイナビブックス
- APIデザイン・パターン | マイナビブックス
ナノオプト・メディア
- モデル検査 (ナノオプト・メディア): 2010|書誌詳細|国立国会図書館サーチ
- モデル検査 : 基礎から実践まで4日で学べる (ナノオプト・メディア): 2009|書誌詳細|国立国会図書館サーチ
幻冬舎ルネッサンス新社
- 論理がはじめてわかる 新・論理考究 - 自費出版の幻冬舎ルネッサンス新社
- 「ならば」騒乱 - 自費出版の幻冬舎ルネッサンス新社
デザインエッグ社
- 数理論理の手法 - 証明の発見と背理法の除去 (MyISBN - デザインエッグ社) | 安部 直人, 中西 泰雄 |本 | 通販 | Amazon
- タブロー法による直接証明の発見 (MyISBN - デザインエッグ社) | 中西 泰雄 |本 | 通販 | Amazon
トッパン
- 注解C++リファレンス・マニュアル (トッパン): 1992|書誌詳細|国立国会図書館サーチ
- A=B : 等式証明とコンピュータ (トッパン): 1997|書誌詳細|国立国会図書館サーチ
- Concurrent Cプログラミング言語―並行プログラミング入門 | ゲハーニ, ナイレン, ルーム, ウィリアム・D., Gehani, Narain, Roome, William D., 正郎, 中村 |本 | 通販 | Amazon
- ソフトウェアアーキテクチャ : ソフトウェア開発のためのパターン体系 (トッパン): 1999|書誌詳細|国立国会図書館サーチ
ラムダノート
- プログラミングHaskell 第2版(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- 定理証明手習い(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
秀和システム
- デバッガによるx86プログラム解析入門【x64対応版】|書籍情報|秀和システム
- Haskell 教養としての関数型プログラミング - 秀和システム あなたの学びをサポート!
- 実践Rustプログラミング入門 - 秀和システム あなたの学びをサポート!
- サーバーレス開発プラットフォーム Firebase入門 - 秀和システム あなたの学びをサポート!
リックテレコム
- リックテレコム 書籍情報
- リックテレコム 書籍情報
インプレスブックス
- リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
- Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド - インプレスブックス
- Scalaスケーラブルプログラミング 第4版 - インプレスブックス
- 実践Firestore | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)
- Game Programming Patterns ソフトウェア開発の問題解決メニュー - インプレスブックス
ピアソン
- 新装版 マルチパラダイムデザイン | ジェームス・O・コプリン, James O. Coplien, 平鍋 健児, 金沢 典子, 羽生田 栄一 |本 | 通販 | Amazon
- デザインのためのデザイン | フレデリック・P・ブルックス Jr., 松田 晃一, 小沼千絵 |本 | 通販 | Amazon
- アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Series) | マーチン ファウラー, Fowler,Martin, 一, 堀内, 晶夫, 友野, 公信, 児玉, 文雄, 大脇 |本 | 通販 | Amazon
- ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集 | ケント ベック, Beck,Kent, 真史, 梅沢, 誠, 皆川, 直樹, 小黒, みどり, 森島 |本 | 通販 | Amazon
- 実践UML 第3版 オブジェクト指向分析設計と反復型開発入門 | クレーグ・ラーマン, 依田 智夫, 今野 睦, 依田 光江 |本 | 通販 | Amazon
SBクリエイティブ
- プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集 | PLoPD Editors, 竜一, 細谷, 裕子, 中山 |本 | 通販 | Amazon
- C++言語のカラクリ|SBクリエイティブ
- 詳解 Objective-C 2.0 第3版 | SBクリエイティブ
エスアイビーアクセス
- S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | 3世, サムエル・P. ハービソン, ジュニア, ガイ・L. スティール, 3, Samuel P. Harbison, Jr., Guy L. Steele, 玉井 浩 |本 | 通販 | Amazon
- UML/MDAのためのオブジェクト制約言語OCL 第2版 | ヴァルメル,ヨシュ, クレッペ,アーネク, Warmer,Jos, Kleppe,Anneke, 司, 竹村 |本 | 通販 | Amazon
- LET OVER LAMBDA Edition 1.0 | ダグ ホイト, Hoyte,Doug, タイムインターメディアHOPプロジェクト |本 | 通販 | Amazon
- 真理・証明・計算 - ミネルヴァ書房 ―人文・法経・教育・心理・福祉などを刊行する出版社
- コンピュータ・サイエンス研究書シリーズ 17 : 関数型プログラミング (日本コンピュータ協会): 1985|書誌詳細|国立国会図書館サーチ
- サンライズ出版 » 論理と集合
- コネクションマシン : 65,536台のプロセッサから構成される超並列コンピュータ | 国立情報学研究所図書室 蔵書検索(OPAC)
- Squeak入門 : 過去から来た未来のプログラミング環境 (エスアイビー・アクセス): 2003|書誌詳細|国立国会図書館サーチ
- 自由自在 Squeakプログラミング PDF版
- プログラミング言語図鑑(増井 敏克) | 書籍 本 | ソシム
- 4日で学ぶモデル検査 (初級編) (CVS教程 (1)) | 産業技術総合研究所システム検証研究センター |本 | 通販 | Amazon
- Smalltalkイディオム | 青木 淳 |本 | 通販 | Amazon
O'Reilly Japan
並行プログラミング入門
ラズパイ
- RustでRaspberry Pi 4を操作してみた - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「Rust + Tokio + rppalで非同期プログラミングが出来た。 https://t.co/ZLokfkRv5M」 / Twitter
- ytakanoさんはTwitterを使っています 「ちょっと書いたらGPIOの操作を非同期で扱えてすごいな。型安全だし。」 / Twitter
- ytakanoさんはTwitterを使っています 「Raspi4のGPIOを、Rust + async_std + rppalで非同期に操作するのができた。signal_hookを使ってgraceful shutdownもしてみた。かなり適当だけど、これだけ出来れば十分な気もする。 https://t.co/4eAsRlnOZn」 / Twitter
- rpi_async_test/main.rs at master · ytakano/rpi_async_test
- ytakanoさんはTwitterを使っています 「async_stdはタスクのブロッキングを検知したら新たにスレッドを生成するらしいので、堂々とブロッキングしてる。」 / Twitter
- ytakanoさんはTwitterを使っています 「graceful shutdownは、グラフの依存関係をみて、もっと綺麗に設計しないといけないけれど、まぁ良いだろう。」 / Twitter
- ytakanoさんはTwitterを使っています 「次はSPIとI2Cをやってみよ」 / Twitter
- ytakanoさんはTwitterを使っています 「DBにデータ挿入できた。Dieselはasync/awaitで使いにくいので、スレッドにした。」 / Twitter
- ytakanoさんはTwitterを使っています 「DBにツッコんどけば、可視化は良い感じのソフトでできるでしょ」 / Twitter
- (2) ytakanoさんはTwitterを使っています 「グラフ化も出来た https://t.co/Vr4anWbXsz」 / Twitter
- ytakanoさんはTwitterを使っています 「ハードウェアとおしゃべりするプロトコル難しすぎる。セッション型で決めといてほしい。」 / Twitter
- ytakanoさんはTwitterを使っています 「CO2センサを初期化するのに手こずったけれど、データ取れるところまでいけてそう。」 / Twitter
- ytakanoさんはTwitterを使っています 「できた!自分で実装したところは全部Rustで書いた。 CO2・有機化合物センサは24時間連続稼働させないと数値が安定しないらしい。 https://t.co/JQ0bMRZRTE」 / Twitter
TLA+
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の3.7.1にあるRWロックのアルゴズムをTLA+で検証できた https://t.co/Byr3J2n99l」 / Twitter
- ytakanoさんはTwitterを使っています 「しかし、メモリオーダリングの検証はやってないな。」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』7.1.1の公平なロックアルゴリズムをTLA+で検証できた。 https://t.co/pvHPCHZQXb」 / Twitter
- ytakanoさんはTwitterを使っています 「Dropの挙動をモデル検査で書くのキツイな。Dropを全て人間が把握するのは現実的じゃないし。ベストプラクティスがよくわからん。」 / Twitter
- O'Reilly Japan - 並行プログラミング入門
- 『並行プログラミング入門』を執筆しました - 未完成な論を綴るブログ
- 分散処理に詳しいオタクさんはTwitterを使っています 「読み終わったので書評書いた! 書評:並行プログラミング入門 - Software Transactional Memo https://t.co/mQv1ngoN1D」 / Twitter
- 書評:並行プログラミング入門 - Software Transactional Memo
- 分散処理に詳しいオタクさんはTwitterを使っています 「発売日が8/24なのになんで手元に本があるかっていうとオライリーで注文したら普通に割と前に届きました。Amazonで買って発売日前に手に入るかは知りません。」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』は、パフォーマンス評価やSTMのマニアックな話をしだすと、400ページを超えてしまって、初学者が一冊読み通す難易度が格段に上がってしまうので、思い切って削りました。」 / Twitter
- ytakanoさんはTwitterを使っています 「スケジューラの細かい話、パフォーマンス評価、形式手法を使った検証、RCUなど、他にも色々ありますが、そこら辺はこの本を読めば他の論文や専門書を読んでいけるようになるかなと。」 / Twitter
- 書評: 並行プログラミング入門 – さくらんぼの技術備忘録
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』正誤表 https://t.co/7dNwWlgbQj」 / Twitter
- conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の正誤表を更新しました。重大な更新は次の2つです。 - 4.7 メモリバリアの dmb st の図と説明を修正 - 8章の「適用」の誤用を修正 https://t.co/7dNwWlgbQj」 / Twitter
- 2021-09-08 並行プログラミング入門』読書会 README - Google スライド
- ْさんはTwitterを使っています 「並行プログラミング入門,λ抽象の構文がキモ過ぎる.普通 λx. x x って書いたら λx. (x x) って解釈すべきだと思うんだけど,この本の内容を読むと (λx. x) x って解釈されるのを想定しているように見える」 / Twitter
- ْさんはTwitterを使っています 「λx の後の . は述語論理が元ネタで,. があったら入れ子の式はできるだけ広く解釈しましょうって意味なので,せめて λx x x と書いてほしい」 / Twitter
- ْさんはTwitterを使っています 「あと演算子の結合の強さがキモい.β簡約基つって (λx.M a) とかいう式が出てきた時は誤植かと思ったわ」 / Twitter
- ytakanoさんはTwitterを使っています 「P.269の構文定義通りに解釈すると、λ.x xや(λx.x) xはそもそも構文エラーで、カッコをつけた(e e)と言う形の(λx.x x)のみが関数適用の呼び出し構文になり定義にそえば間違いはないかと。よくある書き方と違うと言うのはご指摘通りですね。」 / Twitter
- ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、教えている時に結合で混乱する人がとても多かったからです。」 / Twitter
- ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、結合で混乱する人がとても多かったからです。」 / Twitter
- ytakanoさんはTwitterを使っています 「2個書いてしまった。」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の4.3 銀行家のアルゴリズムで、take関数のリソース数を指定可能にした修正を、読者の方に頂いたので、修正版のコードを掲載しました。 https://t.co/2EICrUfqGH」 / Twitter
- conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
- 2021年まとめ - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「Rustはあとはエフェクトを記述出来ればなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「ハードウェア設計してセッション型でプロトコル設計してドライバをRustで書くまでやりたい」 / Twitter
- ytakanoさんはTwitterを使っています 「ドライバのコードを読んでいるけれど、CだとポインタがNullになる可能性があるのかとか、設定が排他的なのかとかが、ソース読んでもすぐには分からない。」 / Twitter
- 大学を辞めエルデンリングをクリアした - 未完成な論を綴るブログ
- O'Reilly Japan - make 改訂版
- O'Reilly Japan - Hacking:美しき策謀 第2版
- O'Reilly Japan - リバースエンジニアリング
- O'Reilly Japan - Binary Hacks
- O'Reilly Japan - アンダースタンディング コンピュテーション
- O'Reilly Japan - Cクイックリファレンス 第2版
- O'Reilly Japan - プログラミングGauche
- O'Reilly Japan - Haskellによる並列・並行プログラミング
- だめぽラボ@技術書典9さんはTwitterを使っています 「「Haskellによる並列・並行プログラミング」は原著が2013年、邦訳が2014年の本だけど、古くなってる部分とかあるのかな(配列ライブラリーとしてrepaが紹介されてるけど、最近はmassivというのも出てきているらしいので)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GPUプログラミングに関しては6章でaccelerateを扱っていて、その辺は2021年現在もそんなに変わらないと思う(accelerate自体のアップデートとかはあるだろうけど)」 / Twitter
- O'Reilly Japan - グラフデータベース
- O'Reilly Japan - インテル スレッディング・ビルディング・ブロック
- O'Reilly Japan - ビューティフルアーキテクチャ
- O'Reilly Japan - Go言語による並行処理
- O'Reilly Japan - 詳解 システム・パフォーマンス
- O'Reilly Japan - データ指向アプリケーションデザイン
- O'Reilly Japan - 詳説 データベース
- O'Reilly Japan - SQLアンチパターン
- O'Reilly Japan - プログラミングTypeScript
- O'Reilly Japan - デバッグの理論と実践
- O'Reilly Japan - Debug Hacks
- O'Reilly Japan - 初めてのマルウェア解析
- O'Reilly Japan - 実践 bashによるサイバーセキュリティ対策
- O'Reilly Japan - Optimized C++
- O'Reilly Japan - ソフトウェアアーキテクチャの基礎
- O'Reilly Japan - 言語実装パターン
- O'Reilly Japan - Javaパフォーマンス
- O'Reilly Japan - ハイパフォーマンスPython
- ビューティフルコード (THEORY/IN/PRACTICE) | Brian Kernighan, Jon Bentley, まつもとゆきひろ, Andy Oram, Greg Wilson, 久野 禎子, 久野 靖 |本 | 通販 | Amazon
- O'Reilly Japan - Land of Lisp
CUTT System
- CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
- CUTT System: books
- CUTT System:64ビットアセンブラ入門
- CUTT System:AVX命令入門
- CUTT System:512ビット・ベクトルプログラミング入門
- CUTT System:構造化並列プログラミング
- CUTT System:jqハンドブック
- CUTT System:高速化プログラミング入門
- CUTT System:C#ベクトルプログラミング入門
CQ出版
- データベース技術教科書
- 数値演算入門―8086による浮動小数点演算の実際と8087の使い方 (パラダイム・ブックス) | 大貫 広幸 |本 | 通販 | Amazon
- x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
- [絶版1999.4] 8086ファミリ・ハンドブック
- [絶版2003.5.26] PostScript詳細解説
- 組み込みソフトへの数理的アプローチ
- ソフトウェア考現学 : 基礎概念への最新おもしろガイド (CQ出版): 1985|Bibliography details|NDL Search
- 「ソフトウェア考現学」という 23 年前の本を読んだ - 星一の日記
- 超並列演算器 NVIDIA GPU入門
- Executable UML実践入門 : クラス・モデルをいかに作成するか (CQ出版): 2004|書誌詳細|国立国会図書館サーチ
翔泳社
実践TLA+
- 実践TLA+ | SEshop.com | 翔泳社の通販
- ytakanoさんはTwitterを使っています 「♢Fは無いのか?」 / Twitter
- ytakanoさんはTwitterを使っています 「<>Fか。」 / Twitter
- ytakanoさんはTwitterを使っています 「≠が#、∀が\A、∃が\Eの記号なのがイマイチ慣れないなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「論理積と論理和の書き方が独特すぎる」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+は主にPlusCalを使うのか」 / Twitter
- ytakanoさんはTwitterを使っています 「言語はわかるがGUIがわからなかった。GUI難しい。」 / Twitter
- ytakanoさんはTwitterを使っています 「たしかに、生のLTL書くよりもPlusCalの方がわかりやすいな。」 / Twitter
- ytakanoさんはTwitterを使っています 「◇□PというLTLの式も出てくるので、知っておいた方がよさそうではある。」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+の演算子は一般的な関数で、関数が一般的なマップって感じかな。マップも関数も演算子もだいたい同じものだから、どう呼称しても良いからかな。」 / Twitter
- Danna@電網妄想さんはTwitterを使っています 「@ytakanoster その辺のTLA+の代数的構造がイマイチ分かりづらくて、その上、古いサンプルがテキストファイルだったりすると、もう読めない…修行が足らない…」 / Twitter
- ytakanoさんはTwitterを使っています 「@danna_2010 基本的に集合演算と述語論理なので、難しくはないんですが、構文がちょっと微妙な気がします。PlusCalは実践TLA+で初めて使ったのですが、時相論理を生で使うよりだいぶわかりやすい気もしました。」 / Twitter
- Danna@電網妄想さんはTwitterを使っています 「@ytakanoster PlusCalじゃないと分からんというのが私の感覚ですね…やっぱり修行が足らない…」 / Twitter
- ytakanoさんはTwitterを使っています 「『実践TLA+』を読み終わったら、『並行プログラミング入門』にあるアルゴリズムを検証してみるかな。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践RLA+の3.3.2、 Flags = {“f1”, “f2”} で flags \in [Flags -> BOOLEAN] としたら、状態が15個になるってよくわからんな。」 / Twitter
- ytakanoさんはTwitterを使っています 「f1 |-> TRUE f1 |-> FALSE f2 |-> TRUE f2 |-> FALSE な気がするけれど。」 / Twitter
- ytakanoさんはTwitterを使っています 「わかった。検査を実行した後の状態か。」 / Twitter
- ytakanoさんはTwitterを使っています 「こうか。 [f1 |-> TRUE, f2 |-> TRUE] [f1 |-> TRUE, f2 |-> FALSE] [f1 |-> FALSE, f2 |-> TRUE] [f1 |-> FALSE , f2 |-> FALSE]」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+でナップザック問題をやってみて、PDFに出力してみたら綺麗になる。綺麗になるけれど使うかな? https://t.co/9j5oNIzk9R」 / Twitter
- ytakanoさんはTwitterを使っています 「記号が数式になってるのが利点か?」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の6.1.1 「すべてのものはクラッシュする可能性がある」 の逆は 「すべてのものはクラッシュしない」 と言いたいのだろうけど、 P(x)を「xはクラッシュする可能性がある」とすると、元の文は ∀xP(x) となり、その否定は ¬∀xP(x)=∃x¬P(x) なので 「クラッシュしないものも存在する」となる。」 / Twitter
- ytakanoさんはTwitterを使っています 「まぁ、こんなのは、実際のところどうでも良いツッコミだけれどw」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の6.1.1と、『実践TLA+』の6.1で、弱い公平性と強い公平性について説明がある。 『並行プログラミング入門』の3.9でパン屋のアルゴリズムが、『実践TLA+』の6.4でデッカーのアルゴリズムがある。これらアルゴリズムはアトミック命令を使わない同期処理方法。」 / Twitter
- ytakanoさんはTwitterを使っています 「2冊読むと、実装とモデル検査が学べてお得感がある。」 / Twitter
- ytakanoさんはTwitterを使っています 「アトミック命令は必要なくても、メモリバリアは必要なので、アウトオブオーダーなRead/Writeとバリアもモデリングしないと。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+、まさに実践でいいな。モデル検査の本て、やたら数学よりだったり、よくわからんパズル解いたり、自明な問題を解いたりという不満点があったがだいぶ解消されている気がする。」 / Twitter
- ytakanoさんはTwitterを使っています 「高専生が理解して使えるぐらいじゃないといけないが、述語論理のところわかるかな。どうだろう。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の7.4より。 二分探索のアルゴリズムの示されたのが1986年(https://t.co/Mj4OvWI9uM)で、それにオバーフローのバグがあると示されたのが2000年代(https://t.co/Uy8DQET5qi)。本では、そのバグを検証するコードもあって面白い。」 / Twitter
- Programming Pearls | ACM Other Books
- Google AI Blog: Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken
- ytakanoさんはTwitterを使っています 「オーバフローは最近のコード検査機なら、入ってる気がするな。」 / Twitter
- ytakanoさんはTwitterを使っています 「リンクリストごときのモデリングが複雑すぎるな。」 / Twitter
- ytakanoさんはTwitterを使っています 「Haskellとかだとリンクリストのデータ型で循環構造が作れるのか。親を持たないノードも複数作れそう?Rustのリンクリストは非循環で親の持たないノードは必ず一つのみ。」 / Twitter
- ytakanoさんはTwitterを使っています 「集合演算と論理式で使用を記述する方法が、一般ITエンジニアまで浸透する未来はあるのかなあ。AIが自意識に目覚めるまで無さそう。」 / Twitter
- ytakanoさんはTwitterを使っています 「実コードとうまく融合できりゃあなあ」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の9章読んだ。ゴースト変数の説明がちょっとわかりにくいかな?自分の認識だと、証明や検証に使うための変数で、ビジネスロジックには影響の与えない変数だが。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の10と11章は、手を動かしながらじゃ無いと理解が難しいな。」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+:PlusCalが直感的に書きやすい。デッドロックを自動で検査してくれる。時相論理でLiveness等も検査出来る。型エラーがわかりにくい。 Alloy:結果を図で表示してくれてとてもわかりやすい。型エラーがわかりやすい。通常のコードをモデリングするのに自分で状態遷移を書く必要があり面倒。」 / Twitter
- ytakanoさんはTwitterを使っています 「モデリングしても、モデリング自体が間違っている可能性が捨てきれない。その点、図で例を表示してくれるAlloyはいい。」 / Twitter
- ytakanoさんはTwitterを使っています 「並列処理はPlusCalが書きやすい。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+一通り読んだ。11章はさすがに難しいので、今度実際にやってみるか。」 / Twitter
- 『実践TLA+』を読んだ - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「形式手法、有用なんだがそれらを生業にしている人々が、リアルアプリケーションよりも、数学的な厳密さや証明ばかりに気を取られている印象。RFCなどのドラフトをバリバリ実装&検査していき、オープンソースで公開とかすればいくとかしないと、なかなか難しそう。」 / Twitter
- ytakanoさんはTwitterを使っています 「システム屋がやるべきか、理論屋がやるべきかは難しいところだ。両方やれば良いんだが。」 / Twitter
- ytakanoさんはTwitterを使っています 「システム屋的にはランニングコードで示してもらわないと、お話にならないしなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「両方をうまく融合できれば良いのだけれど、両方の会話をできる人が全然いない。Twitterには数名いそうだけど、ここは特殊空間すぎる。」 / Twitter
- ytakanoさんはTwitterを使っています 「一応補足しておくと、大学の研究室レベルでアプリケーションに対しても利用しているのは知っています。そうじゃなくて、高専の専門科目で普通に教えて、真面目に勉強した高専生なら普通に使えるぐらいにならないといけないよねという気持ちですね。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「私はこの意見には懐疑的で、実際に研究室どころか BigTech での採用が表に出てきています。「形式手法の実用は難しそう」というのは "実用" の範囲をそう決めているだけで、「三角関数なんて社会では使わない」と同タイプの言明に見えます。「高専生が使えるレベル」まで普及させる必然性がないです。」 / Twitter
- ytakanoさんはTwitterを使っています 「え、自分たちの力を入れている技術をもっと一般に広めようという気がない?せっかく良いものなのに、もったいないなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「線形型システムを真面目に実装してみているが、クロージャの変数キャプチャが難しい。他は多分できた。」 / Twitter
- ytakanoさんはTwitterを使っています 「概念はわかるんだが、実装がなあ。」 / Twitter
- u6k_yu1さんはTwitterを使っています 「形式手法は使いたいと思ってるけど、まず自分が習得するのが難しくて、次にそれを周囲に教育するのがもっと難しい…」 / Twitter
- ytakanoさんはTwitterを使っています 「そうなんだよなあ。使いたいのだけれど、AWSとかBigTech以外は使う必要なしって言われちゃうとなあ。」 / Twitter
- Kazuyoshi KatoさんはTwitterを使っています 「@ytakanoster AWS だと型式手法は結構使われていて、オープンソースになっているものだと、s2n-tls という TLS 実装の、HMAC がらみが https://t.co/WaX1j8NmK1 に、タイミングアタックに関するものが https://t.co/ApSaqZNelv にあります。」 / Twitter
- s2n-tls/tests/saw at main · aws/s2n-tls
- s2n-tls/tests/ctverif at main · aws/s2n-tls
- ytakanoさんはTwitterを使っています 「@kzys ありがとうございます!大学で簡単なモデル検査の講義をしていて、もっと大衆化するにはどうすればいいか悩んでいるところです。AWSなどの例は毎回説明はするのですが、それでもピンとこない人も多いので。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「修士でプログラム検証を専攻したけれども「形式手法の理論の発達に比して実際的なソフトウェアへ適用しやすくする方法はまだまだ貧弱でもうひと山ある」という感覚はとてもわかります(だから可能なら自分などが推し進めないといけないんだろうとは思っていますが……)」 / Twitter
- 画力・博士号さんはTwitterを使っています 「窮極的には,*実際的な* ソフトウェアとそれが満たしてほしい性質の何らかの述語的記述(可能な限り簡単に書けるとよい)とを入力しただけで OK・ダメ(+反例)・わからん のいずれかを出力するような検査器を実現すべきというヴィジョンはある」 / Twitter
- ヘネシー&パターソン コンピュータアーキテクチャ 第5版 翻訳版ホームページ | Amano, Kondo Lab
- ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(鈴木貢 中條拓伯 John L. Hennessy David A. Patterson 天野英晴 吉瀬謙二 佐藤寿倫)|翔泳社の本
- コンピュータは、むずかしすぎて使えない!(Alan Cooper 山形 浩生 山形 浩生)|翔泳社の本
- ガベージコレクション(リチャード・ジョーンズ アントニー・ホスキング エリオット・モス 前田 敦司 鵜川 始陽 小宮 常康 前田 敦司 鵜川 始陽 小宮 常康)|翔泳社の本
- 関数型リアクティブプログラミング 電子書籍(株式会社クイープ 株式会社クイープ AnthonyJones StephenBlackheath)|翔泳社の本
- 実用Common Lisp(Peter Norvig 杉本宣男)|翔泳社の本
- Scala逆引きレシピ(竹添直樹 島本多可子)|翔泳社の本
- 独習コンピュータ科学基礎II 論理構造(神林靖 James L. Hein)|翔泳社の本
- 最新コンパイラ構成技法(神林 靖 神林 靖 Andrew W. Appel 滝本 宗宏 滝本 宗宏)|翔泳社の本
- 入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
- コンピュータプログラミングの概念・技法・モデル(Peter Van Roy Seif Haridi 羽永 洋 羽永 洋)|翔泳社の本
- ジェネレーティブ プログラミング(Krzysztof Czarnecki Ulrich W. Eisenecker 津田 義史 津田 義史 今関 剛 今関 剛 朝比奈 勲 朝比奈 勲)|翔泳社の本
- C言語によるオブジェクト指向プログラミング入門(坂井 弘亮)|翔泳社の本
- 計算機プログラムの構造と解釈 第2版(Gerald Jay Sussman Harold Abelson Julie Sussman 和田 英一 和田 英一 和田 英一)|翔泳社の本
- エンタープライズアプリケーションアーキテクチャパターン(長瀬 嘉秀 長瀬 嘉秀 Martin Fowler 株式会社テクノロジックアート)|翔泳社の本
- 絵で見てわかるシステムパフォーマンスの仕組み(小田 圭二 岡田 憲昌 榑松 谷仁 平山 毅)|翔泳社の本
- Kotlinプログラミング | SEshop.com | 翔泳社の通販
- UMLモデリングのエッセンス 第3版(羽生田 栄一 羽生田 栄一 羽生田 栄一 Martin Fowler)|翔泳社の本
日経BP
- LINQテクノロジ入門 | 日経クロステック(xTECH)
- XQuery+XMLデータベース入門 | 日経BOOKプラス
- プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識 | 日経BOOKプラス
- チューリングを読む | 日経BOOKプラス
- コンピュータの構成と設計 MIPS Edition 第6版 下 | 日経BOOKプラス
- コンピュータの構成と設計 MIPS Edition 第6版 上 | 日経BOOKプラス
- .NET&Windowsプログラマのためのデバッグテクニック徹底解説 | 日経BOOKプラス
- SOFTWARE FACTORIESソフトウェアファクトリー | グリーンフィールド,ジャック, クック,スティーブ, ショート,キース, ケント,スチュアート, マイクロソフト, Greenfield,Jack, Cook,Steve, Short,Keith, Kent,Stuart, 一行, 野村 |本 | 通販 | Amazon
- Adaptive Code ~ C#実践開発手法 第2版 | 日経BOOKプラス
- 基礎からわかるMDA | 日経BOOKプラス
- SOA大全 : サービス指向アーキテクチャ導入・設計・構築の指針 (日経BP社): 2005|書誌詳細|国立国会図書館サーチ
- .NETのエンタープライズアプリケーションアーキテクチャ 第2版 | 日経BOOKプラス
- J2EEパターン 第2版 | John Crupi, Dan Malks, 近棟 稔, 吉田 悦万, 小森 美智子, トップスタジオ, Deepak Alur |本 | 通販 | Amazon
- EJBデザインパターン | フロイド マリネスキュー, Marinescu,Floyd, トップスタジオ |本 | 通販 | Amazon
- UMLモデリングの本質 第2版 | 日経BOOKプラス
放送大学教育振興会
- 「コンピューティング-原理とその展開-」 - 理学の本棚 - 東京大学 大学院理学系研究科・理学部
- コンピューティング-原理とその展開- - 放送大学教育振興会オンラインショップ
東京大学出版会
- 並列プログラミング入門 - 東京大学出版会
- 数理論理学 - 東京大学出版会
- 数学基礎論 増補版 - 東京大学出版会
- 圏論による論理学 - 東京大学出版会
- 数学の基礎 - 東京大学出版会
- 記号と再帰 新装版 - 東京大学出版会
岩波書店
- システムプログラム入門 - 岩波書店
- 論理と意味 - 岩波書店
- アルゴリズムとプログラミング言語 - 岩波書店
- 論理とプログラム意味論 - 岩波書店
- Introduction to Computer Science
- プログラミング言語 (岩波書店): 1994-06|書誌詳細|国立国会図書館サーチ
- プログラミング言語処理系 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
- 記号処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
- 計算モデルの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
- プログラムの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
- モデルと表現 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
- ゲーデル 不完全性定理 - 岩波書店
- 論理学超入門 - 岩波書店
- 論理と計算のしくみ - 岩波書店
- 新版 バナッハ-タルスキーのパラドックス - 岩波書店
- 抽象数学の手ざわり - 岩波書店
- Prologのソフトウェア作法 - 岩波書店
- 集合・位相入門 - 岩波書店
- 新装版 数学読本2 - 岩波書店
- 新装版 数学読本4 - 岩波書店
- 新装版 数学読本6 - 岩波書店
近代科学社
- 演習プログラムの証明 (近代科学社): 1980|書誌詳細|国立国会図書館サーチ
- Prologへの入門 | 近代科学社
- 計算論 計算可能性とラムダ計算 | 近代科学社
- ソフトウェア科学基礎 | 近代科学社
- 要求工学概論 | 近代科学社
- 並行システムの検証と実装 | 近代科学社
- SPIN モデル検査 | 近代科学社
- SPINによる設計モデル検証 | 近代科学社
- 関数プログラミング | 近代科学社
- オブジェクト指向最前線 2003 | 近代科学社
- 型理論 (レクチャーノート/ソフトウェア学 1) | 龍田 真 |本 | 通販 | Amazon
- 関数プログラミング (レクチャーノート/ソフトウェア学 3) | 日本ソフトウェア科学会 関数プログラミング研究会 |本 | 通販 | Amazon
- 関数プログラミングⅡ (レクチャーノート/ソフトウェア学10) | 武市 正人 |本 | 通販 | Amazon
- ソフトウェア工学の基礎Ⅱ (レクチャーノート/ソフトウェア学15) | 大蒔 和仁 |本 | 通販 | Amazon
- ソフトウェア工学の基礎Ⅳ (レクチャーノート/ソフトウェア学19) | 深澤 良彰, 青山 幹雄 |本 | 通販 | Amazon
技術評論社
- 80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
- たのしいバイナリの歩き方:書籍案内|技術評論社
- プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
- コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
- 証明と論理に強くなる ~論理式の読み方から,ゲーデルの門前まで~:書籍案内|技術評論社
- WEB+DB PRESS Vol.60|技術評論社
- 「言語設計の基礎知識」本日発売! - 西尾泰和のはてなダイアリー
- プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜:書籍案内|技術評論社
- プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで
- WEB+DB PRESS総集編 [Vol.1~102]:書籍案内|技術評論社
- JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社
- はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる:書籍案内|技術評論社
- コーディングを支える技術――成り立ちから学ぶプログラミング作法(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
- 「コーディングを支える技術」著者公式ページ
- [増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社
- エキスパートのための MySQL[運用+管理]トラブルシューティングガイド:書籍案内|技術評論社
- MySQL Cluster構築・運用バイブル ~仕組みからわかる基礎と実践のノウハウ:書籍案内|技術評論社
- [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則:書籍案内|技術評論社
- 「集合と位相」をなぜ学ぶのか ―数学の基礎として根づくまでの歴史:書籍案内|技術評論社
- プログラミング言語大全:書籍案内|技術評論社
- 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法:書籍案内|技術評論社
- Ruby on Rails 4アプリケーションプログラミング:書籍案内|技術評論社
共立出版
コンパイラ ―原理と構造―
- コンパイラ ―原理と構造― / 大堀 淳 著 | 共立出版
- コンパイラ ー 原理と構造
- コンパイラ ー 原理と構造
- 大堀 淳さんはTwitterを使っています 「ご指摘ありがとうございます.おっしゃる通り,p131の「トップレベルの導出:」の導出図の3つの(top)ラベルは誤りです.上からそれぞれ(nil),(val), (val)です.正誤表に反映させます.」 / Twitter
- 大堀 淳さんはTwitterを使っています 「これらの導出木などを含む誤りの修正の表示は、従来形式の正誤表では分かりにくいと思われるので、LaTeXML で正誤表を作成する予定です。GitHub PageにLaTeXMLの出力を埋め込むための環境を準備中です。」 / Twitter
- 大堀 淳さんはTwitterを使っています 「ちなみに、「コンパイラ 原理と構造」に関してでした。最初の引用ツイートに書き忘れので、追加のツイート。(twitterにあまり慣れていない...」 / Twitter
- zickさんはTwitterを使っています 「ところどころ大事な式などに誤字などがあったのが気になった。例えば規則 (top) を含む導出が現れるけど、どこにも (top) の定義がない気がする。」 / Twitter
- 大堀 淳さんはTwitterを使っています 「@zick_minoh ご指摘ありがとうございます.おっしゃる通り,p131の「トップレベルの導出:」の導出図の3つの(top)ラベルは誤りです.上からそれぞれ(nil),(val), (val)です.正誤表に反映させます.それ以外のお気づきの誤りがあれば、ご指摘ください。」 / Twitter
- zickさんはTwitterを使っています 「@AtsushiOhori p147の {f:Rec(E0,f0,x0,e0), x:v2} のf:とx:はf0:とx0:でしょうか。 https://t.co/M9SHvZT5r9」 / Twitter
- 大堀 淳さんはTwitterを使っています 「@zick_minoh その通りです.ありがとうございます.」 / Twitter
- zickさんはTwitterを使っています 「@AtsushiOhori 細かいですがp104の1つめの規則に出てくるΓ2とτ2はΓとτでしょうか。 https://t.co/elB0E8zvUN」 / Twitter
- 大堀 淳さんはTwitterを使っています 「@zick_minoh ご質問ありがとうございます.これはママでもOKですね.例えば「前提1つなら,上式1下式2.前提がn個なら上式1〜n下式添字なし」との方針も有りえます.統一感等を考え,改訂版でご指摘のように変更するかもしれませんが,正誤表の対象とはしない方針とします.」 / Twitter
- zickさんはTwitterを使っています 「@AtsushiOhori 自信はないのですがp132のifにおける S2(τ2) は S3(τ2) でしょうか。 https://t.co/UaheJnZCor」 / Twitter
- 大堀 淳さんはTwitterを使っています 「@zick_minoh その通りです。ご指摘ありがとうございます。丁寧に読んでいただき、ありがとうございます。正誤表(作成が滞ておりますが)に反映させていただきます。」 / Twitter
- zickさんはTwitterを使っています 「「コンパイラ: 原理と構造」の型推論をClojureで書いた | zick pages https://t.co/XoD5NrkWtw」 / Twitter
- 「コンパイラ: 原理と構造」の型推論をClojureで書いた | zick pages
プログラミング言語Standard ML入門 改訂版
- プログラミング言語Standard ML入門 改訂版 / 大堀 淳 著 | 共立出版
- 大堀 淳さんはTwitterを使っています 「プログラミング言語Standard ML入門 改訂版 の発売日も近いので,この本のサポートページ https://t.co/aB3bk4KwbT にコード例(GitHubレポジトリへのリンク),練習問題の解答例,正誤表(初版)をアップロードしました.」 / Twitter
- プログラミング言語Standard ML入門(改訂版)
- 新しいプログラミング・パラダイム - 共立出版
- 続新しいプログラミング・パラダイム - 共立出版
- スタックコンピュータ - 共立出版
- 情報理論のための数理論理学 - 共立出版
- 属性文法入門 | 今泉 貴史, 片山 卓也, 佐々 政孝, 篠田 陽一, 中田 育男, 西野 哲朗, 松田 裕幸, 情報処理学会 |本 | 通販 | Amazon
- プログラムスライシング技術と応用 / 下村 隆夫 著 | 共立出版
- 並列論理型言語GHCとその応用 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
- プログラム変換 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
- 制約論理プログラミング / 淵 一博 監修 溝口 文雄 古川 康一 J-L.Lassez 編 | 共立出版
- 応用論理 / 桔梗 宏孝 著 | 共立出版
- プログラム検証論 / 林 晋 著 | 共立出版
- プログラミング言語Standard ML入門 / 大堀 淳 著 | 共立出版
- 復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
- プログラミング言語の新潮流 / 井田 哲雄 著 | 共立出版
- 情報代数 / 小野 寛晰 著 | 共立出版
- 情報検索の基礎 / Christopher D.Manning Prabhakar Raghavan Hinrich Schutze 著 岩野 和生 黒川 利明 濱田 誠司 村上 明子 訳 | 共立出版
- 新装版 プログラミング言語の基礎理論 / 大堀 淳 著 | 共立出版
- 計算機代数の基礎理論 / 長坂 耕作 岩根 秀直 編著 北本 卓也 讃岐 勝 照井 章 鍋島 克輔 著 | 共立出版
- 新世代プログラミング / 淵 一博 黒川 利明 編著 | 共立出版
- 数学における証明と真理 ―様相論理と数学基礎論― / 菊池 誠 編 佐野 勝彦 倉橋 太志 薄葉 季路 黒川 英徳 菊池 誠 著 | 共立出版
- ヒルベルト数学の問題 ―ヒルベルトの問題― 増補版 / D.HILBERT 著 一松 信 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
- ペアノ数の概念について / G.PEANO 著 小野 勝次 梅沢 敏郎 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
- プログラム意味論 / 横内 寛文 著 | 共立出版
- 不完全性定理 / 菊池 誠 著 | 共立出版
- 計算科学のための並列計算 ―大規模計算への第一歩― / 金田 行雄 笹井 理生 監修 石井 克哉 編 | 共立出版
- 計算科学のための基本数理アルゴリズム / 金田 行雄 笹井 理生 監修 張 紹良 編 | 共立出版
- 数とは何か ―そしてまた何であったか― / 足立 恒雄 著 | 共立出版
- 計算で身につくトポロジー / 阿原 一志 著 | 共立出版
- 計算理論と数理論理学 - 共立出版
- 多変数関数論 / 若林 功 著 | 共立出版
- Transputer/occamによる並列プログラミング入門 / Ronald S.Cok 著 梅尾 博司 監訳 松田 稔 丸山 公雄 山本 正樹 訳 | 共立出版
- ソフトウェア千夜一夜物語 / Themsky 著 | 共立出版
- 続ソフトウェア千夜一夜物語 / Themsky 著 | 共立出版
- 応用事例とイラストでわかる離散数学 ―カンタンな数学でAIも理解できる!?― 第2版 / 延原 肇 著 | 共立出版
- ACMチューリング賞講演集 (共立出版): 1989|書誌詳細|国立国会図書館サーチ
- ファイル構造 / Michael J.Folk Bill Zoellick 著 楠本 博之 浜名 祐一 共訳 | 共立出版
日本評論社
- 古森 雄一 のホームページ
- 圏論の歩き方|日本評論社
- 関数プログラミング|日本評論社
- 情報科学における論理|日本評論社
- 集合論|日本評論社
- キューネン数学基礎論講義|日本評論社
- 層・圏・トポス|日本評論社
- 代数学入門|日本評論社
- 現代集合論入門(日評数学選書)[増補版]|日本評論社
- 代数学のレッスン|日本評論社
朝倉書店
- 朝倉書店| コンパイラの構成と最適化 (第2版)
- 朝倉書店| 数理論理学
- 数理情報学入門 : スコット・プログラム理論 (朝倉書店): 1982|書誌詳細|国立国会図書館サーチ
- 朝倉書店| パターンの発見 ―離散数学―
- 朝倉書店| パラドックスの不思議 ―論理と集合―
- 朝倉書店| コンピュータの思考法 ―計算モデル―
- 朝倉書店| コンピュータと数学
- 理論計算機科学事典 |朝倉書店
- 現代基礎数学 多項式と計算機代数 |朝倉書店
- 現代基礎数学 数学の言葉と論理 |朝倉書店
- 講座 数学の考え方 集合と位相空間 |朝倉書店
森北出版
- 形式的モデル化 離散事象/実時間/ハイブリッドシステムのモデル化と解析 | 森北出版株式会社
- 定理証明支援系とは何か、何ができるのか|森北出版|note
- Coq/SSReflect/MathCompによる定理証明 フリーソフトではじめる数学の形式化 | 森北出版株式会社
- 計算モデルとプログラミング | 森北出版株式会社
- 数学パズル ものまね鳥をまねる 愉快なパズルと結合子論理の夢の鳥物語 | 森北出版株式会社
- 定理のつくりかた | 森北出版株式会社
- よくわかるトポロジー | 森北出版株式会社
- コンピュータサイエンスにおける様相論理|森北出版株式会社
- ソフトウェア自動チューニング|森北出版株式会社
- Pythonで学ぶ解析表現文法と構文解析|森北出版株式会社
- 数学書の読みかた|森北出版株式会社
新潮社
- ジョージ・G・スピーロ、青木薫/訳 『ケプラー予想―四百年の難問が解けるまで―』 | 新潮社
- ロビン・ウィルソン、茂木健一郎/訳 『四色問題』 | 新潮社
遊星社
- 数学と新しい論理
- 述語論理・入門
- 構成的プログラミングの基礎
- 選択公理と数学
- 集合論・入門 : 無限への誘い (遊星社): 2013|書誌詳細|国立国会図書館サーチ
青土社
- 青土社 ||科学/数学/生物:コンピュータは数学者になれるのか?
- 青土社 ||科学/数学/生物:バナッハ=タルスキの逆説
裳華房
- <書籍紹介> 証明論と計算量(竹内外史 著)【数学】
- <書籍紹介> 本質から理解する 数学的手法(荒木 修・齋藤智彦 共著)【数学】
- <書籍紹介> 数学基礎論序説(田中一之 著)【数学】
- <書籍紹介> 手を動かしてまなぶ 集合と位相(藤岡 敦 著)【数学】
- <書籍紹介> 集合と位相(増補新装版)(内田伏一 著)【数学】
講談社
- 『数学にとって証明とはなにか ピタゴラスの定理からイプシロン・デルタ論法まで』(瀬山 士郎):ブルーバックス|講談社BOOK倶楽部
- 問題解決力を鍛える!アルゴリズムとデータ構造 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 知の教科書 論理の哲学 (講談社選書メチエ) | 飯田 隆 |本 | 通販 | Amazon
- イラストで学ぶ 人工知能概論 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 『新装版 集合とはなにか』(竹内 外史):ブルーバックス|講談社BOOK倶楽部
- 『なっとくする数学記号 π、e、iから偏微分まで』(黒木 哲徳):ブルーバックス|講談社BOOK倶楽部
- 『集合と位相 そのまま使える答えの書き方』(一樂 重雄)|講談社BOOK倶楽部
- 『新版 集合と位相 そのまま使える答えの書き方』(一樂 重雄)|講談社BOOK倶楽部
現代数学社
- 広がりゆくトポロジーの世界 —言語としてのホモトピー論— | 株式会社 現代数学社
- 数学の研究をはじめよう(Ⅳ)完全数の新しい世界 | 株式会社 現代数学社
- 数学の本質をさぐる1 集合・関係・写像・代数系演算・位相・測度 | 株式会社 現代数学社
- 数学の本質をさぐる2 新しい解析幾何・複素数とガウス平面 | 株式会社 現代数学社
- 数学の本質をさぐる3関数の代数的処理・古典整数論 | 株式会社 現代数学社
- 集合・位相に親しむ | 株式会社 現代数学社
- 線型代数学周遊 〜応用をめざして〜 | 株式会社 現代数学社
- 新訂版 数理解析学概論 | 株式会社 現代数学社
- 線型代数対話 第1巻圏論的集合論 集合圏とトポス | 株式会社 現代数学社
- 線型代数対話 第2巻モノイドの線型代数―モノイダル構造から行列計算へ― | 株式会社 現代数学社
丸善出版
- 数理論理学とタイプ理論 : 証明による真理へ (丸善): 1987|書誌詳細|国立国会図書館サーチ
- 統合化プログラミング環境―Smalltalk‐80とInterlisp‐D (ワークステーションシリーズ) | 上谷 晃弘 |本 | 通販 | Amazon
- ベーシック圏論 - 丸善出版 理工・医学・人文社会科学の専門書出版社
- プログラミング言語Go - 丸善出版 理工・医学・人文社会科学の専門書出版社
筑摩書房
- 筑摩書房 公理と証明 ─証明論への招待 / 彌永 昌吉 著, 赤 攝也 著
- 筑摩書房 数とは何かそして何であるべきか / リヒャルト・デデキント 著, 渕野 昌 著, 渕野 昌 著
- 筑摩書房 数学基礎論 / 前原 昭二 著, 竹内 外史 著
- 筑摩書房 大学数学の教則 / 矢崎 成俊 著
C&R研究所
- 書籍詳細|株式会社 C&R研究所
- 書籍詳細|株式会社 C&R研究所
培風館
- トポロジーと幾何学入門 | I.M.シンガー, J.A.ソープ |本 | 通販 | Amazon
- 現代数学レクチャーズ (培風館): 1982|書誌詳細|国立国会図書館サーチ
- プログラミングの科学 (培風館): 1991|書誌詳細|国立国会図書館サーチ
GUI
その他
Kindle
- Google Chrome ユーザーデータ自動軽量化Book | 柳井 政和 | 工学 | Kindleストア | Amazon
- 速習ECMAScript2018: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ | 山田祥寛 | 工学 | Kindleストア | Amazon
- curses―UNIXユーティリティライブラリ | ジョン ストラング, 菊池 彰 |本 | 通販 | Amazon
- The Craft of Text Editing―手作りのテキストエディタ | クレイグ・A. フィンゼス, Craig A. Finseth, 岩谷 宏 |本 | 通販 | Amazon
- HTML+スタイルシート徹底活用ガイド (SOFTBANK BOOKS) | 宮坂 雅輝 |本 | 通販 | Amazon
- 朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
- 秀和システム:フルスクラッチによるグラフィックスプログラミング入門
- 書籍詳細|株式会社 C&R研究所
- 数式組版 – 技術書出版と販売のラムダノート
- Designing Math. – 数学とデザインをむすぶプログラミング入門 | 株式会社ビー・エヌ・エヌ
- わかる図形科学 | コロナ社
- CUTT System:Bootstrap 5 ファーストガイド
- UI/UXデザインの原則 | 平石 大祐 |本 | 通販 | Amazon
- SwiftUI 徹底入門 | SBクリエイティブ
- IBM PCビデオシステムプログラミング (ソフトバンク出版事業部): 1994|書誌詳細|国立国会図書館サーチ
- 並列処理シリーズ 14 並列図形処理 | コロナ社
CQ出版
- [絶版2008.9.4] JPEG2000詳細解説
- [絶版2008.8.19] よくわかる動画・静止画の処理技術
- No.6(2010・SUMMER) 目次|ディジタル・デザイン・テクノロジ
技術評論社
- 検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏:書籍案内|技術評論社
- Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
- 2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
- ブラウザのしくみ:書籍案内|技術評論社
- Webフロントエンド ハイパフォーマンス チューニング:書籍案内|技術評論社
- オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏:書籍案内|技術評論社
- クラウドゲームをつくる技術 ―マルチプレイゲーム開発の新戦力:書籍案内|技術評論社
- CSS設計完全ガイド ~詳細解説+実践的モジュール集:書籍案内|技術評論社
アスキー
- プログラミングWideStudio―オープンソース、マルチプラットフォーム対応統合開発環境 (ASCII SOFTWARE SCIENCE Language) | 平林 俊一, 末竹 弘之, 白沢 克年, 玉木 徹, 重 俊博, 山崎 亮, 金 泰斗, 山本 清, おぐら ともふみ |本 | 通販 | Amazon
- termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
- グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon
O'Reilly Japan
- O'Reilly Japan - 初めてのJavaScript 第3版
- O'Reilly Japan - SVGエッセンシャルズ 第2版
- O'Reilly Japan - CSSシークレット
- O'Reilly Japan - CSSクックブック
- O'Reilly Japan - 実用Git
- O'Reilly Japan - PDF構造解説
- O'Reilly Japan - マイクロインタラクション
- O'Reilly Japan - Reactハンズオンラーニング 第2版
アンテナハウス
- 『PDFインフラストラクチャ解説 電子の紙PDFとその周辺技術を語り尽す』 | アンテナハウス PDF資料室
- 『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。 | 電子書籍、電子出版のCAS-UBブログ
- 目次:MathML 数式組版入門
マイナビ出版
- マイナビ ブックス - 目次
- 未来をつくった人々 : ゼロックス・パロアルト研究所とコンピュータエイジの黎明 (毎日コミュニケーションズ): 2001|書誌詳細|国立国会図書館サーチ
- 未来をつくった人々 - Wikipedia
- HTML&CSS―HTML4.01&CSS2対応 (速効!ポケットマニュアル) | 森 理浩 |本 | 通販 | Amazon
- CSSグリッドレイアウト デザインブック | マイナビブックス
インプレス
- Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 - インプレスブックス
- Jetpack ComposeによるAndroid MVVMアーキテクチャ入門 | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)
- Tailwind CSS まとめ | 電子書籍とプリントオンデマンド(POD) | NextPublishing(ネクストパブリッシング)
ボーンデジタル
- マンガとイラストでわかる!GPU最適化入門 | ボーンデジタル
- HTML解体新書 | ボーンデジタル
- 紙版デザイニングWebアクセシビリティ | ボーンデジタル
リックテレコム
- リックテレコム 書籍情報
- よくわかるAuto Layout|リックテレコム
OS
その他
Kindle
- Windows Installer技術 | 福間通人 | 工学 | Kindleストア | Amazon
- Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア
- Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう|書籍情報|秀和システム
- オペレーティングシステム入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- [改訂版]コンピュータと素因子分解
- Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
- ソフトウェア実行/開発環境 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
- ゼロからのOS自作入門 | マイナビブックス
- 『ゼロからのOS自作入門』に込めた思い - uchan note
- スーパーユーザーなら知っておくべきLinuxシステムの仕組み - インプレスブックス
- 平成ネット史 永遠のベータ版 | 株式会社 幻冬舎
- 「角川インターネット講座1 インターネットの基礎 情報革命を支えるインフラストラクチャー」 村井 純[全集](電子版) - KADOKAWA
- Mach(マーク)オペレーティングシステム―プログラミングと概念 (アジソンウェスレイ・トッパン情報科学シリーズ) | ボイキン,J., ランガーマン,A., カーシェン,D., ロゥバーソ,S., 信一, 岩本 |本 | 通販 | Amazon
ピアソンエデュケーション
- Solarisインターナル―カーネル構造のすべて | ジム モーロ, リチャード マクドゥーガル, Jim Maure, Richard McDougall, 福本 秀, 細川 一茂, 佐藤 敬, 兵頭 武文, 大嶺 朋之 |本 | 通販 | Amazon
- Amazon | Win32システムサービスプログラミング―Windows NT/95システムAPIリファレンス (Windows programming technique) | マーシャル・ブレイン, 郡司 芳昭, 三田 典玄 | Web構築・管理
- インサイドJavaOSオペレーティングシステム | サルポー,トム, ミロ,チャールズ, Saulpaugh,Tom, Mirho,Charles, 尊, 油井 |本 | 通販 | Amazon
トムソン
- プログラマーのためのDCE入門 | ワード ローゼンベリー, ゲリー フィッシャー, デビッド ケニー, Ward Rosenberry, Gerry Fisher, David Kenney, 中田 温朗 |本 | 通販 | Amazon
- DCEプログラミングガイド | ジョン シャーリー, デビット マギッド, ウェイ フー, John Shirley, David Magid, Wei Hu, 中田 温朗 |本 | 通販 | Amazon
- DCEとWindows NT―対応アプリケーションのプログラミング | ワード ローゼンベリー, ジム ティーグ, Ward Rosenberry, Jim Teague, 望月 康司 |本 | 通販 | Amazon
オーム社
- USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
- sonic1.biz/front_page.htm
- マスタリングTCP/IP SNMP編 | コンピュータ・一般書,ネットワーク構築,プロトコル | Ohmsha
- IT Text オペレーティングシステム(改訂2版) | Ohmsha
ラムダノート
- プロフェッショナルSSL/TLS(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- 書評:プロフェッショナルSSL/TLS - ぼちぼち日記
- プロフェッショナルSSL/TLS 1.2章
- OpenSSLクックブック(電子書籍のみ) – 技術書出版と販売のラムダノート
- プロフェッショナルIPv6 第2版 – 技術書出版と販売のラムダノート
- 徹底解説 v6プラス – 技術書出版と販売のラムダノート
SBクリエイティブ
- WinSock関連リンク集
- WinSock2 プログラミング 改訂第2版
- SBクリエイティブ:最新 Windows Vistaプログラミング徹底理解
- 『暗号技術入門 第3版 秘密の国のアリス』
- SBクリエイティブ:動かして学ぶセキュリティ入門講座
- UNIXカーネル内部解析―キャッシュとマルチプロセッサの管理 (プロフェッショナルコンピューティングシリーズ) | カート シメル, Curt Schimmel, 岩本 信一 |本 | 通販 | Amazon
- DNSがよくわかる教科書 | SBクリエイティブ
- アップル薄氷の500日 | ギル・アメリオ, ウィリアム L.サイモン, 中山 宥 |本 | 通販 | Amazon
アスキー
- SOUND BLASTERオフィシャルブック (マルチメディアプログラミング―Disk book) | Richard Heimlich, Peter M. Ridge, David M. Golden, Ivan Luk |本 | 通販 | Amazon
- Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown |本 | 通販 | Amazon
- Amazon | プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール | Web構築・管理
- プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール |本 | 通販 | Amazon
- Amazon | Inside OLE (マイクロソフトプレスシリーズ) | Kraig Brockschmidt, エー・ピー・ラボ, 長尾 高弘 | ソフトウェア開発・言語
- Amazon | Inside COM―Microsoft’s Component Object Model (Microsoft programming series) | Dale Rogerson, バウングローバル株式会社 | ソフトウェア開発・言語
- termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
- UNIX Cプログラミング (NUTSSHELL HANDBOOKS) | デビッド・A. クリ, アスキー書籍編集部 |本 | 通販 | Amazon
- Xinuオペレーティングシステムデザイン 改訂2版 - アスキードワンゴ
コロナ社
- 実践サイバーセキュリティモニタリング|コロナ社
- 暗号ハードウェアのセキュリティ | コロナ社
O'Reilly Japan
- O'Reilly Japan - Bluetooth Low Energyをはじめよう
- O'Reilly Japan - 詳解 Linuxカーネル 第3版
- O'Reilly Japan - Real World HTTP
- O'Reilly Japan - Real World HTTP 第2版
- O'Reilly Japan - 入門 監視
- O'Reilly Japan - インターネットヒストリー
- O'Reilly Japan - カオスエンジニアリング
CQ出版
- 改訂新版 パソコン・インターフェース規格入門(SP No.94)
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- 定番!超軽量マイコン用ファイル・システムFatFs
- 組み込み機器へのUSBホスト実装技法
- USB 3.0設計のすべて
- シリアルATAの基礎とFPGAへの実装
- [品切れ重版未定2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- [絶版2011.9.8] リアルタイム/マルチタスクシステムの徹底研究
- 全部ネット接続!Ethernetマイコン・プログラミング
- USB Type-Cのすべて
- USB 3.2のすべて
工学社
- 書籍情報―OpenCV3ではじめる Windowsアプリ開発
- OpenCV3ではじめる Windowsアプリ開発
- 次世代OSアーキテクチャ―QNXオペレーティング・システムの世界 「マイクロカーネルOS」と「ネットワーク分散処理」 | 鈴木 治 |本 | 通販 | Amazon
- 書籍情報―「USB TypeC」の基礎知識
- 書籍情報―実践「USB TypeC」
翔泳社
- Amazon | Windows 98 APIバイブル シェル・シェルユーティリティ・印刷・IME・追加関数編 (Programmer’s Selection) | ガリバー, 長谷川 勝規 | Windows
- COM IDL&インターフェイスデザイン (Programmer’s SELECTION) | アル メジャー, 萩原 正義, Al Major, 夏目 大 |本 | 通販 | Amazon
- 詳解HTTP/2(Barry Pollard 北原 憲 一ノ瀬 太樹 洲崎 俊 新井 悠 国分 裕 長谷川 陽介)|翔泳社の本
- 徹底解剖 TLS 1.3(古城 隆 松尾 卓幸 宮崎 秀樹 須賀 葉子)|翔泳社の本
- アンドキュメンテッド Microsoftネットワーク(高橋 基信)|翔泳社の本
日経BP社
- 山市良のえぬなんとかわーるど: インサイド Windows 第7版 上、おかげさまで初版4刷
- インサイドWindows 第7版 上 システムアーキテクチャ、プロセス、スレッド、メモリ管理、他 | 日経BOOKプラス
- インサイドWindows 第7版 下 | 日経BOOKプラス
- 山市良のえぬなんとかわーるど: インサイド Windows 第 7 版 下 の訂正情報(1)
- 山市良のえぬなんとかわーるど: 書籍の正誤表&最新情報 (2017~)
- Windows版Docker&Windowsコンテナーテクノロジ入門 | 日経BOOKプラス
- プログラミングWindows Runtime | 日経BOOKプラス
- ADVANCED WINDOWS 第5版 上 (マイクロソフト公式解説書) | Jeffrey Richter, Christophe Nasarre, (株)クイープ |本 | 通販 | Amazon
- ADVANCED WINDOWS 第5版 下 (マイクロソフト公式解説書) | Jeffrey Richter, Christophe Nasarre, (株)クイープ |本 | 通販 | Amazon
- APIで学ぶWindows徹底理解 (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア編 |本 | 通販 | Amazon
- APIで学ぶWindowsプログラミング (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア |本 | 通販 | Amazon
- 日経ソフトウエア 2010年 04月号 [雑誌] | 日経ソフトウエア |本 | 通販 | Amazon
- COM+テクノロジガイド (マイクロソフト公式解説書―最新テクノロジシリーズ) | デイビット プラット, David S. Platt, 豊田 孝 |本 | 通販 | Amazon
技術評論社
- 3分間HTTP &メールプロトコル基礎講座 : 世界一わかりやすいネットワークの授業 (技術評論社): 2010|書誌詳細|国立国会図書館サーチ
- Firefox OS 【決定版】 開発ガイドブック:書籍案内|技術評論社
- Androidを支える技術〈Ⅱ〉──真のマルチタスクに挑んだモバイルOSの心臓部:書籍案内|技術評論社
- [Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- TCP技術入門 ――進化を続ける基本プロトコル:書籍案内|技術評論社
- 作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
森北出版
- 情報セキュリティの理論と技術 暗号理論からICカードの耐タンパー技術まで | 森北出版株式会社
- Javaで作って学ぶ暗号技術 RSA,AES,SHAの基礎からSSLまで | 森北出版株式会社
丸善出版
- はじめての数論 原著第3版[丸善出版]
- はじめての数論 原著第4版 - 丸善出版 理工・医学・人文社会科学の専門書出版社
共立出版
- 分散オペレーティングシステム ―UNIXの次にくるもの― / 前川 守 所 真理雄 清水 謙多郎 編 | 共立出版
- 新しいOS / 石田 晴久 土居 範久 編集委員 石田 晴久 土居 範久 共編 | 共立出版
- Macintosh HyperCard付 増補版 / 石田 晴久 土居 範久 編集委員 西林 瑞夫 著 | 共立出版
パーソナルメディア
- TRONWARE VOL.191 - パーソナルメディア書籍サイト
- BTRONマイクロスクリプト - パーソナルメディア書籍サイト
機械学習
その他
- 作品紹介:パターン認識と機械学習の学習普及版 :暗黒通信団
- 概念記憶システムの研究―概念記憶の意味ネットワークモデルと連想プロセッサによる実現法 (1982年) | 嶋津 好生 |本 | 通販 | Amazon
- 発語内行為の意味ネットワーク―言語行為論からの辞書的対話事例分析 (松山大学言語・情報研究センター叢書) | 久保 進, 越智 希美子, 向井 留実子, 阿部 桂子, 鈴木 光代 |本 | 通販 | Amazon
- CiNii 図書 - C言語によるエキスパートシステム : シェルの実例と知識表現
- CiNii 図書 - エキスパートシステムの設計と開発
- 確率的言語モデル - 東京大学出版会
- ニューロ・ファジィ・遺伝的アルゴリズム (産業図書): 1994|書誌詳細|国立国会図書館サーチ
- 1次近似で視る多変数の微分積分 (学術図書出版社): 2013|書誌詳細|国立国会図書館サーチ
- ヒトの言葉 機械の言葉 「人工知能と話す」以前の言語学 川添 愛:一般書 | KADOKAWA
- 形式意味論入門 株式会社開拓社
- 書籍情報―ファジーで データを読む
- アブダクション - 株式会社 勁草書房
- AIソフトウェアのテスト|リックテレコム
- 現代数理統計学 | 学術図書出版社 - 大学・短大・高専・専門学校向けの教科書出版
- 書籍詳細|株式会社 C&R研究所
- データ分析の力 因果関係に迫る思考法 伊藤公一朗 | 光文社新書 | 光文社
- 偏微分方程式キャンパス・ゼミ 改訂4 – マセマ出版社
- 形態素解析の理論と実装 | 近代科学社
- 内田老鶴圃/書籍詳細/機械学習のための関数解析入門 ヒルベルト空間とカーネル法
- 確率・統計入門 : 順列・組合せから推測まで (実教出版): 1998|書誌詳細|国立国会図書館サーチ
- 図解でわかる多変量解析 : データの山から本質を見抜く科学的分析ツール 涌井 良幸(著) - 日本実業出版社 | 版元ドットコム
カタカナ社名の出版社
オーム社
- 続・わかりやすい パターン認識 -教師なし学習入門- | 理工学専門書,情報科学,知識科学・人工知能 | Ohmsha
- 【書評】続・わかりやすいパターン認識 -教師なし学習入門- - old school magic
- 知的連想メモリマシン (オーム社): 1989|書誌詳細|国立国会図書館サーチ
- グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- IT Text データマイニングの基礎 | Ohmsha
- 進化計算アルゴリズム入門 生物の行動科学から導く最適解 | Ohmsha
- スモールデータ解析と機械学習 | Ohmsha
コロナ社
- 自然言語処理シリーズ 構文解析|コロナ社
- 自然言語処理シリーズ 10 文脈解析 - 述語項構造・照応・談話構造の解析 - | コロナ社
- 自然言語処理シリーズ 8 トピックモデルによる統計的潜在意味解析 | コロナ社
- 知能システム工学入門 | コロナ社
- マルチエージェントシステムの基礎と応用 - 複雑系工学の計算パラダイム - | コロナ社
- 精度保証付き数値計算の基礎 | コロナ社
- リスク工学シリーズ 5 あいまいさの数理 | コロナ社
ソシム
- データ分析のための数理モデル入門本質をとらえた分析のために(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
- 分析者のためのデータ解釈学入門データの本質をとらえる技術(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
- データ分析に必須の知識・考え方 統計学入門 仮説検定から統計モデリングまで重要トピックを完全網羅(阿部真人) | 書籍 本 | ソシム
サイエンス社
- 知識と推論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 関数解析 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 多変量解析の基礎 (サイエンスライブラリ統計学 4) | M.G.ケンドール, 浦 昭二, 竹並 輝之 |本 | 通販 | Amazon
技術評論社
- Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
- Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
- サポートページ:日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:|技術評論社
- 機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック:書籍案内|技術評論社
岩波書店
- 知識と推論 (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
- 自然言語処理 (岩波書店): 1996|書誌詳細|国立国会図書館サーチ
- 認識と学習 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
- 言語の獲得と喪失 (岩波書店): 1999|書誌詳細|国立国会図書館サーチ
- キーポイント 多変数の微分積分 - 岩波書店
- サンプリングって何だろう - 岩波書店
- 現代哲学のキーコンセプト 確率 - 岩波書店
- 現代哲学のキーコンセプト 因果性 - 岩波書店
- 順列・組合せと確率 - 岩波書店
共立出版
- 言語を獲得するコンピュータ / 日本認知科学会 編 錦見 美貴子 著 | 共立出版
- 最小二乗法・交互最小二乗法 / 森 裕一 黒田 正博 足立 浩平 著 | 共立出版
- 知識の帰納的推論 / E.Y.Shapiro 著 淵 一博 監修 有川 節夫 訳 | 共立出版
- 定性推論 / 淵 一博 監修 溝口 文雄 古川 康一 安西 祐一郎 共編 | 共立出版
- イプシロン‐デルタ / 田島 一郎 著 | 共立出版
- 線形代数セミナー ―射影,特異値分解,一般逆行列― / 金谷 健一 著 | 共立出版
- 欠測データ処理 ―Rによる単一代入法と多重代入法― / 高橋 将宜 渡辺 美智子 著 | 共立出版
- 点過程の時系列解析 / 近江 崇宏 野村 俊一 著 | 共立出版
- ファジィ時系列解析 / 渡辺 則生 著 | 共立出版
- 計算代数統計 ―グレブナー基底と実験計画法― / 青木 敏 著 | 共立出版
- データマイニングによる異常検知 / 山西 健司 著 | 共立出版
- EMアルゴリズム / 黒田 正博 著 | 共立出版
- 仮説のつくりかた ―多様なデータから新たな発想をつかめ― / 石川 博 著 | 共立出版
- データ科学の基礎 / 笠原 健一 宮野 尚哉 長 憲一郎 著 | 共立出版
- 統計的因果推論の理論と実装 ―潜在的結果変数と欠測データ― / 高橋 将宜 著 石田 基広 監修 市川 太祐 高橋 康介 高柳 慎一 福島 真太朗 松浦 健太郎 編 | 共立出版
- イプシロン・デルタ論法 完全攻略 / 原 惟行 松永 秀章 著 | 共立出版
- 線形代数入門 松本 和一郎(著/文) - 共立出版 | 版元ドットコム
- 数値計算の常識 - 共立出版
- 微分積分学講義 - 共立出版
- 確率的グラフィカルモデル - 共立出版
内田老鶴圃
- 内田老鶴圃/書籍詳細/統計学への確率論,その先へ
- Papers and Preprints
- sonosakie.pdf
森北出版
- フリーソフトでつくる音声認識システム(第2版) パターン認識・機械学習の初歩から対話システムまで | 森北出版株式会社
- はじめてのパターン認識 | 森北出版株式会社
- はじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社
- 待ち行列と確率分布 情報システム解析への応用 | 森北出版株式会社
- 情報可視化入門|森北出版株式会社
- Pythonではじめる 情報検索プログラミング|森北出版株式会社
- 時系列データ解析|森北出版株式会社
- コルモゴロフの確率論入門|森北出版株式会社
丸善出版
- keiichiro shikano λ♪さんのツイート: "PRML、無償ダウンロードだと。。 https://t.co/vXEwlTZLnr"
- パターン認識と機械学習 上[丸善出版]
- PRML演習問題 全問解答 | 機械学習の教科書の決定版【パターン認識と機械学習】の演習問題の全てを詳しく解答・解説
- New Book: Knowledge Representation and Fast Inferences
- 情報学シリーズ2
- 機械学習の品質問題 - 丸善出版 理工・医学・人文社会科学の専門書出版社
CQ出版
- RFワールドNo.30 - 目次
- RFワールドNo.32 - 目次
- 改訂新版 データの符号化技術と誤り訂正の基礎
朝倉書店
- 朝倉書店| しくみがわかる深層学習
- 朝倉書店| サンプルサイズの決め方
- 朝倉書店| 機械学習 ─データを読み解くアルゴリズムの技法─
- 朝倉書店| しくみがわかるベイズ統計と機械学習
- 数学の流れ30講 (上)|朝倉書店
- 数学の流れ30講 (中)|朝倉書店
- 数学の流れ30講 (下)|朝倉書店
牧野書店
- 複雑系のための基礎数理 : べき乗則とツァリスエントロピーの数理 (牧野書店): 2010|書誌詳細|国立国会図書館サーチ
- 情報幾何学の基礎 = FOUNDATIONS OF INFORMATION GEOMETRY (牧野書店): 2015|書誌詳細|国立国会図書館サーチ
- 積分幾何学入門 (牧野書店): 2016|書誌詳細|国立国会図書館サーチ
講談社
- 『高次元空間を見る方法 次元が増えるとどんな不思議が起こるのか』(小笠 英志):ブルーバックス|講談社BOOK倶楽部
- 新しい微積分<上> | 書籍情報 | 株式会社 講談社サイエンティフィク
- データ分析のためのデータ可視化入門 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 関係データ学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
- サポートベクトルマシン | 書籍情報 | 株式会社 講談社サイエンティフィク
- スタンフォード ベクトル・行列からはじめる最適化数学 | 書籍情報 | 株式会社 講談社サイエンティフィク
海文堂出版
- ソフトコンピューティング (海文堂出版): 1998|書誌詳細|国立国会図書館サーチ
- 海文堂出版株式会社
くろしお出版
- 基礎日本語文法・改訂版|くろしお出版WEB
- 日本語文法の形式理論|くろしお出版WEB
- Webpage: BEKKI Daisuke
- kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
- mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
- kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter
ひつじ書房
- ひつじ書房 統計で転ばぬ先の杖 島田めぐみ・野口裕之著
- ひつじ書房 「中納言」を活用したコーパス日本語研究入門 中俣尚己著
O'Reilly Japan
- O'Reilly Japan - 仕事ではじめる機械学習 第2版
- O'Reilly Japan - word2vecによる自然言語処理
- O'Reilly Japan - セキュリティエンジニアのための機械学習
- O'Reilly Japan - 実践 自然言語処理
- O'Reilly Japan - 機械学習のための特徴量エンジニアリング
中央公論新社
- 考えることの科学|新書|中央公論新社
- 統計分布を知れば世界が分かる|新書|中央公論新社
裳華房
- <書籍紹介> 数理モデル入門(齋藤誠慈 著)【数学】
- <書籍紹介> 具体例から学ぶ 多様体(藤岡 敦 著)【数学】
筑摩書房
- 筑摩書房 情報理論 / 甘利 俊一 著
- 筑摩書房 確率論の基礎概念 / A.N.コルモゴロフ 著, 坂本 實 著
- だめぽラボ@技術書典9さんはTwitterを使っています 「確率を数学的に扱った本は「全測度が1の空間がどーのこーの」みたいな記述(定義)から始まり、確率をお気持ちで扱う本はそうではない」 / Twitter
- lotzさんはTwitterを使っています 「そんなあなたにゲーム論的確率論👀」 / Twitter
- O'Reilly Japan - Books :: New and Upcoming
- 刊行予定 - 共立出版
- 新刊情報 - 共立出版
- これから出る本|朝倉書店
- 森北出版株式会社
- 書籍TOP|株式会社 C&R研究所
- カットシステム出版書籍のご案内
- 書籍・雑誌・動画 | ボーンデジタル
- 新刊案内|コロナ社
- トップ | 近代科学社
- 丸善出版 理工・医学・人文社会科学の専門書出版社
- 新刊 | 株式会社 現代数学社
- 【裳華房】 新刊・近刊のご案内
交通
- 東京アメッシュ
- 関東エリアの運行情報・運休情報:JR東日本
- 旅行総合研究所タビリス
- カテゴリー「鉄道」の記事一覧ページ | 乗りものニュース
- 旅の方法 鉄旅 - トラベル Watch
- カテゴリー「バス」の記事一覧ページ | 乗りものニュース
- 公共交通(路線バス) | 稲敷市公式ホームページ
- バス待合所mini
気象
- でんき予報|東京電力パワーグリッド株式会社|東京電力ホールディングス株式会社
- 停電情報|東京電力パワーグリッド株式会社
- 環境省熱中症予防情報サイト 暑さ指数(WBGT)ランキング
- 気象庁 | キキクル(危険度分布)
- 気象庁 | 台風情報
- 気象庁 | 天気図
- 気象庁|地震情報
- iHighway :: ハイウェイ交通情報
- 関東甲信地方の長期予報 - 日本気象協会 tenki.jp
運行状況等
- 都内の最新感染動向 | 東京都 新型コロナウイルス感染症対策サイト
- 鉄道運行情報(長期間運転見合わせ)|NHK NEWS WEB
- 現在の輸送状況 | JR貨物 日本貨物鉄道株式会社
- 運行案内|ほくほく線|北越急行株式会社
- トピックス | えちごトキめき鉄道株式会社
- しなの鉄道株式会社
- 秋田内陸縦貫鉄道
- 由利高原鉄道株式会社
- JR北海道- Hokkaido Railway Company
- 東海道・山陽新幹線運行状況
- 在来線運行状況
- 北陸エリア 運行情報:JR西日本列車運行情報
- 列車運行情報 - JR四国
- 運行情報 | JR九州
ニュースリリース
- ニュースリリース | JR北海道 - Hokkaido Railway Company
- ニュースリリース:JR東日本
- ニュースリリース|JR東海
- ニュースリリース:JR西日本
- ニュースリリース | JR四国
- ニュースリリース | JR九州
News
- 命令背き「時速210キロ」 東海道新幹線、一番列車の運転士に聞く:開業初日(1/3 ページ) - ITmedia ビジネスオンライン
- 新型新幹線「N700系」の“顔”を生んだ「遺伝的アルゴリズム」の秘密【その1】 | 日経クロステック(xTECH)
- 新型新幹線「N700系」の“顔”を生んだ「遺伝的アルゴリズム」の秘密【その2】 | 日経クロステック(xTECH)
- 新型新幹線「N700系」の“顔”を生んだ「遺伝的アルゴリズム」の秘密【その3】 | 日経クロステック(xTECH)
- 東海道新幹線 新大阪駅全ホームへの可動柵設置完了について - 000042427.pdf
- 「ホームドア乗り越え事故」連日発生 万全ではないホームドア | 乗りものニュース
- 東京圏におけるホームドアの整備促進について - 20180305.pdf
- 2021年度のホームドア整備について - 20210406_ho01.pdf
- バリアフリー設備の整備を促進します~ホームドアは整備を拡大・加速~ - 20220405_ho01.pdf
- 鉄道設備におけるスマートメンテナンスの取組みについて - 20191106_ho01.pdf
- 信号設備におけるAIを活用した輸送安定性向上に向けた取り組み - 20221108_ho01.pdf
- 東武東上線「大山駅」付近を高架化。8か所の踏切を廃止し、安全性と利便性の向上を図る 2030年度完成に向けて事業着手 - トラベル Watch
- 八高線でキハ110形単行の列車が登場|鉄道ニュース|2022年3月14日掲載|鉄道ファン・railf.jp
- 特急“いなほ”で編成変更と区間短縮|鉄道ニュース|2022年3月13日掲載|鉄道ファン・railf.jp
- ベストプラクティス改訂による複雑な転属とワンマン運転の本格的な拡大について | くれない
- 高崎線特急と東海道線特急で大きなダイヤ改正か(2023年3月ダイヤ改正) | くれない
- どうやらE131系を増備せずに来年3月ダイヤ改正で房総209系と高崎211系を減らすそうです | くれない
- 総武快速線と京葉線の分割編成を有効活用か 209系大量廃車へ(2023年3月ダイヤ改正) | くれない
存廃の検討
- 存廃が取り沙汰されている鉄道路線の現況
- 廃線にしたくない!今乗るべき地方路線10選 | 独断で選ぶ鉄道ベスト10 | 東洋経済オンライン | 社会をよくする経済ニュース
- 閲覧注意が必要な JRが開示するローカル線経営情報 について(鳥塚亮) - 個人 - Yahoo!ニュース
- 001492230.pdf
- ご利用の少ない線区の経営情報を開示します - 20220728_ho01.pdf
- ご利用の少ない線区の経営情報(2021年度分)の開示について - 20221124_ho01.pdf
- 赤字ローカル線を「JR運行のBRT」に転換へ。「地域モビリティ検討会」論点整理を読み解く2 | タビリス
- ローカル線、輸送密度2000人以下で法定協議か。国交省「地域モビリティ検討会」資料を読み解く | タビリス
- 鉄道ローカル線、地方自治体のスタンスを読み解く。論点はどこにあるのか | タビリス
- ローカル線切り離しに新基準。「地域モビリティ検討会」国交省の論点整理を読み解く | タビリス
- ローカル鉄道「特定線区」の全詳細。地域モビリティ検討会『提言』を読み解く | タビリス
- JR東日本、営業係数と収支で気になる区間。「特定BRT」もありそうで | タビリス
- JR5社、全国395線区輸送密度ランキング2021年版。1000未満が110線区も | タビリス
- 赤字ローカル線の上下分離に支援策。国交省、まちづくりとの連携も促す | タビリス
- 東北ローカル線、復旧見通しの最新情報。8月豪雨被災、五能線など運転再開へ | タビリス
- 津軽線蟹田~三厩間、廃止の可能性。復旧協議で「あり方」を検討へ | タビリス
- 赤字ローカル線に新たな支援制度。「特定線区」の再構築に補助金を創設 | タビリス
新線・延伸
- 茨城 ひたちなか海浜鉄道 時代に逆行? 3キロ延伸 ひたち海浜公園200万人を取り込め | くらし | NHK水戸 | NHK
- 東京駅とビッグサイトを結ぶ「都心部・臨海地下鉄」実現へ - Impress Watch
- 小池知事、都心~臨海地下鉄は「世界から人と投資を呼び込む臨海エリアと都心を結ぶ背骨」 東京・新銀座・新築地・勝どき・晴海・豊洲市場・有明の7駅6km - トラベル Watch
- 都心部・臨海地下鉄、ルートと駅位置の全詳細。首都高速改良と同時施工か | タビリス
- 熊本空港アクセス鉄道計画の全詳細。肥後大津ルートでJR九州と合意 | タビリス
- 熊本空港アクセス鉄道「肥後大津から分岐」に 決め手は"JR直通" 3ルートから選定 | 乗りものニュース
- 多摩モノレール「箱根ヶ崎延伸」加算運賃設定か さらに西へ「あきる野延伸」の可能性も? | 乗りものニュース
- ミニ新幹線「段階的フル規格化」を検討。『幹線鉄道ネットワーク調査』を読み解く | タビリス
- 多摩モノレール延伸、開業時期は2030年代半ば。2035年度にも箱根ヶ崎に | タビリス
- 北陸新幹線新大阪延伸は本当にできるのか。2023年春の着工は断念 | タビリス
- 多摩モノレール延伸の武蔵村山「鉄道100年お預け」の歴史 “西武新宿行き”なぜ実現せず | 乗りものニュース
- JR川越線の複線化は進むか。荒川橋梁の架け換えで難しい判断に | タビリス
- 大阪メトロ 「中央線支線」「森之宮新駅」2028年春開業へ 車庫を改修し地域再開発 | 乗りものニュース
- 【新春特集】2040年までに開業する鉄道新線総まとめ。夢の新路線に早く乗りたい! | タビリス
- 阪急なにわ筋・新大阪連絡線の研究。2031年春開業へ! | タビリス
- 埼玉高速鉄道岩槻延伸、快速運転も追い越しせず。待避設備は作らずに | タビリス
- 名古屋市に新交通「SRT」導入へ 2030年めど 交通計画で「重点的な取組」に位置づけ | 乗りものニュース
- くれない
- 鉄道ダイヤ改正ニュース
- 鉄道時刻表ニュース ダイヤ改正・臨時列車・新線開業情報
- 『鉄道ファン』情報|鉄道ファン・railf.jp
- 現状のまとめ - JR東日本車両更新予想スレッド 倉庫Wiki
- JR東日本(1)|会社別の鉄道ニュース・イベントなど|鉄道ファン・railf.jp
Money
- 天気 - Google 検索
- 銀行間取引金利 急騰 - Google 検索
- 予定表 - Ichikawa Shin'ichi - Outlook
- 日本の祝日・休日カレンダー 2022年(令和4年)
- SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
- 楽天証券 | ネット証券(株・FX・投資信託・確定拠出年金・NISA)
- 総合 - NHKプラス
- Amazon.co.jpショッピングカート
- お客様の支払い方法
- 【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
- Yahoo!ショッピング - PayPayポイントがもらえる!ネット通販
- お気に⼊り一覧|PC専門店【TSUKUMO】公式通販サイト
- 個別番号検索 - 日本郵便
- 荷物お問い合わせシステム
その他
その他
Wikipedia
- 西郊ロッヂング - Wikipedia
- 経済連携協定 - Wikipedia
- Indo-Pacific Economic Framework - Wikipedia
- Ys II Opening - YouTube
- 旅館西郊|[旅館ホテル検索] やど日本 | 旅のお宿を検索&予約
- 旅館 西郊本館 - Google マップ
- 自衛隊派遣「完全支持」=サウジ皇太子、安倍首相に表明―中東安定へ連携|ARAB NEWS
- 日本のEEZに大量に賦存する海底鉱物資源を生かす方策 | 海洋政策研究所-OceanNewsletter | 笹川平和財団 - THE SASAKAWA PEACE FOUNDATION
- 海の未来(その3) - uminomirai_5.pdf
- 第3部 第1章 第3節 石油・天然ガス等国産資源の開発の促進 │ 令和2年度エネルギーに関する年次報告(エネルギー白書2021) HTML版 │ 資源エネルギー庁
- メタネーション:株式会社日立総合計画研究所
- 日本のアニメ総合データベース「アニメ大全」
- 9・11米国同時多発テロ | NHK放送史(動画・記事)
- ドイツ、水素エンジンへの夢 ~欧州のエネルギー事情~
- 河野太郎さんはTwitterを使っています: 「これは既に不要になってます。厚労省から九月二十八日付で、再度、各自治体、業界団体に周知してもらいました。」 / Twitter
- Kaz Ataka / 安宅和人さんはTwitterを使っています: 「オンライン予約したホテルでチェックイン時に名前、住所、電話番号を再度直筆でカードに書かせるのは一体何なのだろうか。他主要国の宿でこのような書き入れを求められることはまずない。この手入力は法律で求められているわけでもない。明日にも改めてほしい。 #Covidでも消滅しなかった沈ニホン案件」 / Twitter
- CO2削減の夢の技術!進む「カーボンリサイクル」の開発・実装|スペシャルコンテンツ|資源エネルギー庁
- 40℃以上は「酷暑日」、夜30℃以上は「超熱帯夜」 気象協会が命名 - Impress Watch
- 世界最先端の家をつくる Sphere(スフィア)家は24時間で創る - 世界最先端の住宅(NEXT HOUSE )の実現
- 中間選挙で米国が変わる?
- 稲わら販売専門ショップ【稲わらの和楽】HOME
- 気候変動の問題は二酸化炭素の増加だけではないという指摘 - GIGAZINE
- 2023年アメリカ不況は本当に来るのか?万引き・住宅ローン滞納の急増ほか日本では報道されない実態=高島康司 | マネーボイス
- 電動キックボードなど「特定原付」の保安基準を整備 国交省 - Impress Watch
- 航空:航空交通管制情報処理システム - 国土交通省
- 航空:航空:メニュー - 国土交通省
- ドイツでは航空交通管制にEmacsが使われていた
公的機関等
金融・不動産
- 生命保険契約照会制度の創設(2021年7月1日開始)~確実な保険金請求のためのセーフティネット~ | 2021 | ニュースリリース | 生命保険協会
- 「支払又は支払の受領に関する報告書」の報告概要 : 日本銀行 Bank of Japan
- 証券・金融商品あっせん相談センター
- アルトア | スモールビジネスの新しい選択肢となるオンライン融資
- 事故物件の売却なら【お困り不動産解決本舗】へ|事故物件はお任せください
- 「地震保険は損だ」という考えが危ない理由 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
- 解約できない!マンション「サブリース」の罠 | 不動産 | 東洋経済オンライン | 経済ニュースの新基準
- なくそう、所有者不明土地!所有者不明土地の解消に向けて、不動産に関するルールが大きく変わります! | 暮らしに役立つ情報 | 政府広報オンライン
- 所有&相続不動産が把握できる『所有不動産記録証明制度(仮称)』 | 税理士法人北陸会計
- 「キャッシュレス法」11月施行。車検費用や交通反則金など - Impress Watch
- 11月施行の「キャッシュレス法」はどんな内容? 車検費用や反則金も現金なしで - ケータイ Watch
- 金融サービス利用者相談室 皆様の「声」をお寄せください!:金融庁
社会保障
医療
- 国民健康保険の保険料・保険税について
- 株式や配当などの申告と国民健康保険税・後期高齢者医療保険料 - 新宮町ホームページ
- 国民健康保険税の計算方法(令和3年度) | 水戸市ホームページ
- ◆総所得金額等|国税庁
- 株式等の譲渡所得等の国民健康保険への影響|豊田市
- kabusiki.pdf
- 令和3年度 国民健康保険税納税通知書を令和3年7月14日に発送します | 水戸市ホームページ
- 国民健康保険税の軽減について | 水戸市ホームページ
- お金が無くても保険証が無くても病院受診する方法!(藤田孝典) - 個人 - Yahoo!ニュース
- ネット含め医薬品など誇大広告に課徴金。改正薬機法が8月1日施行 - PC Watch
- 人間ドックが仕掛けた「コレステロール戦争」 あなたの基準値は緩和されたのか WEDGE Infinity(ウェッジ)
- 健康診断の「基準値ありき」にモノ申す | 最新の週刊東洋経済 | 東洋経済オンライン | 社会をよくする経済ニュース
- 1annai2.pdf - guideline-abstractPDF.pdf
- オンライン資格確認等システムの導入に関する医療機関・薬局システムベンダ向け説明会_投影資料一式 - 000597524.pdf
- 保険料の6割増も それでも進む国保改革 その狙いは:朝日新聞デジタル
- 000685273.pdf
- がん相談支援センターにご相談ください|がんになったら手にとるガイド [国立がん研究センター がん情報サービス]
- 生活費等の助成や給付など:[国立がん研究センター がん情報サービス 一般の方へ]
- がん相談ホットライン | 日本対がん協会
- がんの「余命宣告」の正しい意味を知っていますか?(大須賀 覚) | ブルーバックス | 講談社(1/4)
- 新型コロナワクチンについて | 首相官邸ホームページ
- 日本内科学会雑誌:新型コロナウイルス感染症特集の公開について | 日本内科学会の取り組みについて | 日本内科学会
- 新システム、懸念払拭に躍起 旗振り役の河野・平井氏―ワクチン情報を一元管理:時事ドットコム
- 中小企業庁:セーフティネット保証制度 概要
- 難病情報センター – Japan Intractable Diseases Information Center
- 還付等があった国民健康保険税の社会保険料控除における取扱について | 藍住町
労働
- NPO法人POSSE
- 労働者健康安全機構 トップページ
- 過去10年の派遣労働者増加率、先進諸国のなかで最高水準(ドイツ:2009年3月)|労働政策研究・研修機構(JILPT)
- ITフリーランスが労災保険の特別加入制度対象に。プログラマ/SE/Webデザイナーなど - PC Watch
- ITフリーランスの仕事や移動中のケガ、病気、障害、死亡などを補償する国の労災保険「特別加入制度」、申し込みが可能に - Publickey
- ITフリーランスを対象とした国の労災保険「特別加入制度」が今日からスタート。フリーランスでも通勤や仕事によるケガ、病気、障害、死亡など補償 - Publickey
- フリーのITエンジニアやWebデザイナーも国の労災保険へ加入が可能に。業務や通勤での疾病、負傷、死亡など補償。国の労働政策審議会が了承。9月から - Publickey
- 米村歩@日本一残業の少ないIT企業社長さんはTwitterを使っています: 「知らない人多いけど、退職前の残業時間が多すぎる場合は自己都合ではなく会社都合の退職になります。 ・3ヶ月連続45時間以上 ・2〜6ヶ月の平均80時間以上 ・1ヶ月100時間以上 辞める前の半年間で残業時間が、上記いずれかの条件満たすと会社都合になります。」 / Twitter
- CAPIC ~ e-shop ~
- 法務省:「更生保護」とは
- 老齢基礎年金の繰上げ受給|日本年金機構
- 支援情報検索サイト
- あなたはひとりじゃない|内閣官房孤独・孤立対策担当室
- 「水害にあったら、どうすればいい?」 このチラシが、とてもわかりやすい
- 生活保護を申請したい方へ
- 住まいに困っている 東京都福祉保健局
- 国や自治体からお金を借りられる、公的融資制度&給付金まとめ。キャッシングでお金を借りる前に、これらの貸付制度が使えないかの確認を! - クレジットカードの読みもの
- 一般社団法人 個人版私的整理ガイドライン運営委員会
- トップページ|全国社会福祉協議会
- Graffer COMPASS
- 河野太郎さんはTwitterを使っています: 「これまで窓口や郵送による提出が必要だった国民年金に関する手続きも、マイナポータルからオンラインで簡単に申請できるようになりました。 1.国民年金第1号被保険者加入の届出(退職後の厚生年金からの変更等) 2.国民年金保険料 免除・納付猶予の申請 3.国民年金保険料 学生納付特例の申請」 / Twitter
- 被災者生活再建支援法 : 防災情報のページ - 内閣府
- 防災の動き : 防災情報のページ - 内閣府
- 被災ローン減免制度(自然災害による被災者の債務整理に関するガイドライン)|災害に遭われた方へ(新型コロナ関連もこちら)|法律相談窓口・電話相談|弁護士に相談する|東京弁護士会
- 渡邉祐樹@弁護士さんはTwitterを使っています: 「先日に生活保護申請に同行した方は、75歳で体力的に無理で退職したために申請したのに「まだ働けますよね」と申請を受け付けてもらえなかった案件。私が同行したらそのまま受け付け。 「弁護士が生活保護申請の同行ww」とバカにする方がいますが、権利擁護を肌で感じてます。弁護士費用は日弁連の・・」 / Twitter
- せかいビバーク | 街中に設置された「お助けパック」で生活支援につながる
- まさみさんboostedさんはTwitterを使っています: 「累進課税制度によって不公平が出ないように差を小さくしてるのに、所得制限付きの補助金や補助制度はそういう累進性を考えないので、所得制限に引っかかるといきなり損するという理不尽が発生する。これは基本的に追加で補助制度を作る政治家と騙される国民が理解できていないから。」 / Twitter
- ごまおはぎさんはTwitterを使っています: 「年収1000万越えるくらいの人は子育てすると所得制限によって人より稼いだはずのお金無くなっちゃうけど、子育てしないと所得制限とかないから豊かに暮らせる。豊かな暮らしをしたいなら子育てしない方がいいよって国が設定してる。国が少子化促進してる」 / Twitter
- takahiroさんはTwitterを使っています: 「@gomaohagi3 この問題に理解が足りて無い、経験してない人のリプはすぐ分かるね。 突然の壁みたいなものがあるのが大問題で、全体的に緩やかな坂になっていれば多くの人は納得すると思う。」 / Twitter
- 外国人生活保護は「非常識」で「違憲」?:愛国カルトのデマを斬る : 脱「愛国カルト」のススメ
消費者庁
- 買わないで!危険な転売業者「ゲームガジェット」がTwitter広告に跋扈。 – すまほん!!
- 危険な自称輸入代行業者「ゲームガジェット」と、幾つかの変名のこと - eps_r
- LuciniaさんはTwitterを使っています 「@tenpoku1000 捜査の前にまず誰かから詐欺として被害届が出されている必要があります。が、相手先が特定できない上に騙す意図があったか立証するのは難しい以上、被害届を受理させるのは難しいんじゃないですかね。」 / Twitter
- LuciniaさんはTwitterを使っています 「@tenpoku1000 1つ考えられるとするなら、責任者名が偽名であったり重要な情報が記載されていないなら特定商取引法違反になるかもしれません。消費者庁への通報は以下からどうぞ。 https://t.co/23qMpq1nni」 / Twitter
- 特定商取引法違反被疑情報提供フォーム | 消費者庁
縦割り110番
- 受け付けた提案及び所管省庁からの回答:「規制改革ホットライン」 : 規制改革 - 内閣府
- 内閣府共通意見等登録システム - 内閣府
- 縦割り110番、内閣府HPでも一時停止 河野規制改革相: 日本経済新聞
- 「縦割り110番」、受け付けの一時停止を検討 要望6000件超え 河野氏「霞が関の処理に限界」 - ITmedia NEWS
- 「縦割り110番」の裏側初潜入!どんなメンバーがどんな部屋で?明かされる“チーム河野太郎” のリアル
- EBPMの推進 - 統計等データの提供等に関する要望・提案募集
- 統計等データの提供等に関するユーザーからの要望・提案募集 応募フォーム|首相官邸ホームページ
- 分析AI「YOSHINA」で縦割り110番のデータ分析をしてみました - Retrieva OFFICIAL BLOG
- デジタル改革アイデアボックス
- 211222.pdf
政府の情報処理システム
- 何故お役所ってオワコンIEが大好きなの?|楠 正憲(国際大学GLOCOM 客員研究員)
- Shiro KawaiさんはTwitterを使っています 「楠さんによるCOCOAの経緯の総括。後知恵で批判するのは簡単だけど、予算確保から契約まで関係各所を継ぎながら変化する状況にも対応するとなると、結局そういう開発プロセスがわかってる人が至るところにいる、という社会になってないと難しそう https://t.co/b6njHTfjmw」 / Twitter
- 接触確認アプリCOCOAからの教訓|情報処理学会・学会誌「情報処理」|note
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「最初はバーコードを読むつもりだったのですが、仕様がカッチリ決められておらず、自治体によってバーコードがあったりなかったり、埋め込まれている値もバラバラなので、仕方なく全団体共通のOCRラインを読むようにしたのです。接種券仕様をちゃんと決められていたら」 / Twitter
- 木曽崇@国際カジノ研究所:「飯テロ」注意報発令中さんはTwitterを使っています 「すげえなあ。隣りにバーコードがあるのに、わざわざOCRでその脇の数字を読み取らせるというミラクル仕様。」 / Twitter
- 神庭亮介さんはTwitterを使っています 「ワクチン接種記録システム(VRS)をめぐり「接種券のバーコードが読みとれない」「ピントが合わない」など自治体から苦情。 実は読み込むのはバーコードではなく数字。平井デジタル相は「誤解があった」と説明。 IT総合戦略室は段ボールや専用スタンドの活用を提案している。https://t.co/cjj0JAbN5r https://t.co/G1c5gBonDd」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「これはねー、時期によってコロコロ変わってるんですよ。APIリファレンスの改版履歴を追うとかなりトリッキーで、途中からAPIリファレンスがPDFからWebに変わって保全が面倒になり、更に秋から別の大きな仕様変更があり / “Android版COCOAがバグった理由 - DEVGRU” https://t.co/Ac18AUi34J」 / Twitter
- Android版COCOAがバグった理由 - DEVGRU
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「Cocoaに限らずクラウドもスマホもころころAPIが変わる時代、入札やって契約を結んだのだからちゃんとやってくれではなく、前提が変わったら予算を取り直して契約変更するから、くれぐれも品質第一に運用してくれとお願いできる制度・運用体制を組めるようにならないと厳しい。デジタル庁へ向けた課題」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ベンダーロックイン排除、技術中立性のためには構成技術は指定せず要件で縛るのが美しい調達仕様書とされてきたけど、民間企業と同様に、十分な技術者を確保できるか、組み合わせの掛け算で母数が小さくなってないか、スタック構成をもっと丁寧に見て落とし穴を避ける努力も必要」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ここ数年で「とりあえずやってみる」「数週間でシステムを立ち上げる」ところまではできるようになった。これからは「適切なKPIを設定してモニタリング」「継続的な改善」「Whyを問い直し止めるべき時に止める」を組織的に回せる体制が必要に。今はQAもSREもおらず全てを事務官がベンダーにやらせてる」 / Twitter
- zipperpullさんはTwitterを使っています 「@masanork 継続的な改善の一部かもしれませんが、とくに一般ユーザ向けのものなんかでは、不具合や改善点を見つけてくることをベンダーにまかせても最適解は黙って何もしないことに着地してしまうので、QAやサポート・運用データ調査などを開発保守のベンダーから分離して組織化するようなことが必要かと思います」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「@zipperpull 確かにその分割発注はアリですね。今は原課が気付くまでダンマリが最適解なので。参考になります」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「デジタル庁の関連議員、https://t.co/EUTbbS0ecK の人だらけという話本当だった。なんだそれ」 / Twitter
- デジタル・ニッポン2020~コロナ時代のデジタル田園都市国家構想~
- Noriatsu KudoさんはTwitterを使っています 「@makoto_kato 行き当たりばったりではなく、それなりに時間を使って準備してきたってことかと。庁ができてさあがんばるぞーって話じゃなくてよかったと思いたい。」 / Twitter
- Takuji HashizumeさんはTwitterを使っています 「当事者署名型/事業者署名型(立会人型)の違い、署名パネルの確認方法、タイムスタンプの重要性なども詳細解説。 IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会 https://t.co/jPLd9BvIlN」 / Twitter
- IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会
- Verifiable CredentialとBBS+署名(IIR vol.52 2章) | IIJ Engineers Blog
- 2. フォーカス・リサーチ(1)Verifiable CredentialとBBS+署名 | Internet Infrastructure Review(IIR)Vol.52 | IIJの技術 | インターネットイニシアティブ(IIJ)
- ベース・レジストリ|デジタル庁
- 政策|デジタル庁
- 2023年から「車検証の電子化」、国交省が特設サイトオープン - ケータイ Watch
- e-Gov法令検索
- ご意見・ご要望|デジタル庁
- ガバメントクラウドでのクラウド最適なアーキテクチャのサンプル|デジタル庁 ガバメントクラウド
登録公報(商標)
- 特許庁 インターネット利用による公報発行サイト
- 公報関係 | 経済産業省 特許庁
- 66-00.pdf
- 特許庁 インターネット利用による公報発行サイト
放送・通信
- 法令・ガイドライン等 |個人情報保護委員会
- 地デジ高度化実験受信対策センター トップページ
- チャンネル一覧 | 一般社団法人放送サービス高度化推進協会(A-PAB)
- 一般財団法人 日本電話リレーサービス
- 総務省|東海総合通信局|電波の人体に対する影響
- 急増する世界の「データ」流通量 | 地域・分析レポート - 海外ビジネス情報 - ジェトロ
- 000783401.pdf
- 090869_hanrei.pdf
- 「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」を取りまとめました (METI/経済産業省)
環境・電力
- 海外から注文していない植物が郵送された場合は、植物防疫所にご相談ください:植物防疫所
- 202108161400_331.pdf
- ウイルスの感染力を高め、日本人に高頻度な細胞性免疫応答から免れるSARS-CoV-2変異の発見 | 国立研究開発法人日本医療研究開発機構
- 東京都感染症情報センター » 食品微生物分野における新たな同定法
- 細菌とウイルス | 感染症の基本 | 一般の方へ | かしこく治して、明日につなぐ~抗菌薬を上手に使ってAMR対策~
- 原子力発電所の現在の運転状況|原子力規制委員会
- 000365851.pdf
- JAEA-Technology-2019-005.pdf
- PowerPoint プレゼンテーション - 009_04_02.pdf
- エンジン車でも脱炭素?グリーンな液体燃料「合成燃料」とは|スペシャルコンテンツ|資源エネルギー庁
- 2025年までに電球形蛍光灯や写真フィルムなどの水銀製品が段階廃止されることが決定 - GIGAZINE
政治
- 会派名及び会派別所属議員数
- 会派別所属議員数:参議院
- 政府 復興庁を2031年まで10年間延長 新たな骨子案 | NHKニュース
- 2181.自民党は積極財政に流れているらしい : 日本国財政破綻Safety Net
- 2185.施政方針演説と矛盾する、閣内不一致の財務相鈴木俊一 : 日本国財政破綻Safety Net
- 政府の事業が検索できるサイトJUDGIT!(ジャジット)
- 活動・施策を知る|デジタル庁
- 官報決算データベース
- e-Gov法令検索
- 登記情報提供サービス
- 登記・供託オンライン申請システム 登記ねっと 供託ねっと
- 全国道路構造物情報マップ ~ 損傷マップ ~
- 新規就農者調査:農林水産省
- 警視庁の業務に対する苦情・ご要望・ご意見
- IHC - インターネット・ホットラインセンター
- 犯罪被害者等施策ホームページ - 警察庁 / 各都道府県警察の被害相談窓口
- 国民の祝日について - 内閣府
- 入札情報をまとめて検索 nSearch | エヌ・サーチ
- 政府電子調達(GEPS)
- 調達ポータル
銀行
- クレカのタッチ決済、上限金額の謎【鈴木淳也のPay Attention】-Impress Watch
- いま話題の「SWIFT(スウィフト)」を理解する【鈴木淳也のPay Attention】-Impress Watch
- 人民元国際決済システム - Wikipedia
- SPFS - Wikipedia
- 国内106銀行 預貸率61.9%で最低を更新、預貸ギャップ350兆円に拡大(2021年9月中間期 単独決算) : 東京商工リサーチ
- 手形交換所の交換業務に幕 電子交換所にシフトへ 紙の手形廃止に向け、でんさいの存在感がじわり上昇 : 東京商工リサーチ
- 143年の歴史に幕、全国の手形交換所の業務が11月に終了へ : 東京商工リサーチ
- FB(ファームバンキング)とは?安全で便利な金融機関とのデータ伝送システム! - 業務効率化のヒントが満載|BizSol
- 報道発表資料 : NTTドコモと三菱UFJ銀行による、デジタル金融サービス提供に向けた業務提携契約の締結について | お知らせ | NTTドコモ
- ドコモと三菱UFJ銀行が業務提携 2022年中にdポイントがたまる「デジタル口座サービス」を開始へ 合弁会社の設立も検討 - ITmedia Mobile
- ドコモ銀行誕生か大型買収か、他社に出遅れた非通信倍増への秘策 | 日経クロステック(xTECH)
- ピンホールカメラとセットで使われる超薄型ATMスキマーの実態 - GIGAZINE
- 倒産の舞台は東京・中目黒に、東京地裁倒産部が霞が関から移転へ : 東京商工リサーチ
- 3Dセキュア2.0導入について|琉球銀行(りゅうぎん)
- 全銀システム、資金移動業者に開放 - Impress Watch
証券
- ログイン/マネックス証券 取引サイト
- 営業時間・休業日一覧 | 日本取引所グループ
- 先物・オプション関連 | 日本取引所グループ
- インディカティブNAV・PCF情報 | 日本取引所グループ
- 取引最終日 | 日本取引所グループ
- その他統計資料 | 日本取引所グループ
- 新規上場申請者の上場適格性に関する情報受付窓口 | 日本取引所グループ
- 株主総会資料の電子提供制度等に関するリーフレット | 日本証券業協会
- 2022年9月1日施行 株主総会資料の電子提供制度のポイントと必要な準備 - BUSINESS LAWYERS
- 信用評価損益率 信用残 日経平均比較チャート
- 投資家が注目する「信用評価損益率」とは? | 東証マネ部!
- 株価移動平均線の見方・使い方(1)~移動平均線の基礎 | テクニカル分析指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人
- 移動平均線を使いこなす | みんなの株式
- 指数平滑法 - Google 検索
- 株探 | 株価注意報 - 本日のゴールデンクロス銘柄(5日と25日移動平均線)
- 株探 | 株価注意報 - 本日のデッドデンクロス銘柄(5日と25日移動平均線)
- インバースはなぜ減価するのか - room5110
- コンタンゴはなぜ減価するのか VXX(1552)が下がる理由 - room5110
- NAKAMURA Minoru's Diary (2012年7月)
- 適時開示情報閲覧サービス | 日本取引所グループ
暗号資産
GIGAZINE
- NFTは技術に精通したエリートによる「マルチ商法」に過ぎないとの指摘 - GIGAZINE
- ウェブブラウザのOperaで「絵文字のみのURL」が利用可能に - GIGAZINE
- Wikipedia編集者が運営に「仮想通貨の寄付の受け付け停止」を要求する投票が賛成多数で決議される - GIGAZINE
- DeFi(分散型金融)プラットフォームで多発するフラッシュローン攻撃によりBeanstalkが230億円相当を失う - GIGAZINE
- 30億円相当の仮想通貨をハッカーがDeFiプラットフォームから盗み出す、同様事例の被害額は520億円超に - GIGAZINE
- 3億5000万円相当の人気NFTが販売元の公式Instagramアカウントのハッキングで盗まれる - GIGAZINE
- ビットコインを法定通貨として中央アフリカ共和国が採用、エルサルバドルに次いで2番目 - GIGAZINE
- 世界で初めてビットコインが法定通貨になったエルサルバドルでは「あまりビットコインが広まっていない」との指摘 - GIGAZINE
- 新メタバースの仮想土地5万5000区画の販売で約420億円が集まる、イーサリアムの取引手数料は仮想土地区画以上に高騰 - GIGAZINE
- マイニング取締法案がニューヨーク州上院も通過しホークル知事の手に - GIGAZINE
- Twitter創業者ジャック・ドーシーの仮想通貨チーム「TBD」が分散型Webプラットフォーム「Web5」を発表 - GIGAZINE
- ビル・ゲイツが「NFTは100%大バカ理論に基づいている」と発言 - GIGAZINE
- ビットコイン暴落シナリオ「デススパイラル」は気候変動を遅らせる希望と専門家 - GIGAZINE
- ビットコイン&イーサリアムは2021年11月に史上最高値を記録して以来、70%以上もその価格を下落させている - GIGAZINE
- ブロックチェーンは本当に分散的で非中央集権的なのかを詳細に分析した研究レポートをDARPAが発表 - GIGAZINE
- アメリカが日本に「ロシアでマイニングしてる仮想通貨業者に圧力をかけて」と要請 - GIGAZINE
- ビットコインなどの仮想通貨の「匿名性」とは何を示しているのか? - GIGAZINE
- ビットコイン発明者サトシ・ナカモトの正体とされる人物が名誉毀損訴訟で勝訴し約160円の賠償金を得る - GIGAZINE
- 謎に包まれたビットコイン生みの親「サトシ・ナカモト」の正体がついに判明か、オーストラリア人男性が自身をBitcoin発明者と認める - GIGAZINE
- 250億円相当の仮想通貨がNomadのトークンブリッジに対する攻撃で流出 - GIGAZINE
- GPUを用いた仮想通貨マイニングは「誰も儲からない」とマイナーが続々撤退開始との報道、イーサリアムのマージによる弊害 - GIGAZINE
- イーサリアムの消費電力を99%以上削減する大型アップグレード「The Merge」とは? - GIGAZINE
Twitter
- Kazuho OkuさんはTwitterを使っています 「NFTに対するデジタルなのに複製制限して…みたいな批判はもっともだと思うし、僕は近寄りたくない界隈だなと思うけど、版画の枚数制限して高値で売るのと変わらないと考えれば、特にデジタルだからおかしいという話でもないんじゃとも思う」 / Twitter
- 【翻訳版】Web3についての私の第一印象 - 石ころのニュースレター!
- mizchiさんはTwitterを使っています: 「NxT、現実の価値に結びつくために仕組み的に権威でないと意味ないんだけど、自分が権威である理由の説明に権威的だと思いこんで振る舞ってる以上の根拠がなく、またブロックチェーンは機能してるから権威的な振る舞いをするけど本質的に権威などない、という諸々で絶対に否定派と肯定派で噛み合わない」 / Twitter
- mizchiさんはTwitterを使っています: 「だからNxFが無駄だという話をしたいわけではなく、議論の構造として興味深く、そして不毛だと思ってます」 / Twitter
- mizchiさんはTwitterを使っています: 「この議論突き詰めると貨幣の発行主体としての「国」は本当に存在するかみたいな話になり、そこから程度問題の話になって、そこでブロックチェーン技術を信頼する・しないの個々人の宗教になり、すべての主張が信仰告白以上の意味がなくなって、議論が成立しない」 / Twitter
- しげもつ / Yuki ShigemotoさんはTwitterを使っています: 「「技術要素を重視した方が良いムーブメント」になるというのは確かに納得感ある。エンジニア界隈で Web3 や NFT に関して「しらけ感」がある気がするのは、Web技術の変遷などが軽視されているように見えるからか。 実際そうでなくとも「そう見える」ということは伸びしろありそう。」 / Twitter
- まつもとりー / Ryosuke MatsumotoさんはTwitterを使っています: 「技術的な背景やかつてのWeb技術の変遷を無視して、とにかくWeb3だNFTだとアピールするだけでは、多分その世界を作っていくエンジニアには逆に抵抗のあるマーケティングみたいなものに見えてしまうと思うので、もちろんビジョン的な話は大事だけど技術要素を重視しないとダメなムーブメントだなと思った」 / Twitter
- まつもとりー / Ryosuke MatsumotoさんはTwitterを使っています: 「技術要素を重視しないとダメなムーブメント ↓ 技術要素を重視した方が良いムーブメント」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「弁護士YouTuberによる、NFTの法的な問題点を指摘した動画。 - NFT自体に生得的な権利が付与されているわけではなく、「権利」は発行者との契約による。 - しかもそれらの権利は二次購入者には移行しない。(法的には、NFTを購入しただけでは契約とはみなされない) https://t.co/m7qGkWZBxe」 / Twitter
- 成瀬さんはTwitterを使っています: 「非中央集権型情報共有システムは、情報流出事件発生時にデータを消せないという問題から衰退した(衰退に追い込まれた)っていうのみんな忘れちゃってる」 / Twitter
- 林司@るーしゃんずさんはTwitterを使っています: 「@nalsh 消えたことを証明できないけどかと言って時間が経ってから探すと見つからないことが多い、と言うどうしようもない使い勝手の悪さがあるよぬ」 / Twitter
- Blockchain Wallet - Exchange Cryptocurrency
- NFTとは何ではないか - Speaker Deck
- NFT, Web3完全に理解した になるためのチュートリアル|DJ RIO|note
- NFT入門 - 電通国際情報サービス TechBlog
- スマートコントラクト入門 - 電通国際情報サービス TechBlog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「NFTの使い方: - 違法な取引 (薬物とか) で1000万円を手にする。 - このカネを普通に使ったら足がつくので、暗号資産を買う。 - 適当なNFTを安値で買い「匿名の人物」がそれを1000万円で買ったことにして値段をつり上げる。 - あとはさらなる値上がりを待つだけ。 https://t.co/U7zyYac052」 / Twitter
- Survey Says Developers Are Definitely Not Interested In Crypto Or NFTs | 'How this hasn’t been identified as a pyramid scheme is beyond me' : programming
- ソフトウェアエンジニアなら3秒で理解できる NFT 入門 - Okapies' Archive
- コントラクト指向言語Solidity詳解 - Ethereum入門
- NFTとメタバースについて思うこと - Software Transactional Memo
- Re: 空想のNFTと現実のNFT - Software Transactional Memo
- Re: Re: Re: 空想のNFTと現実のNFT - Software Transactional Memo
- Re: Web3というテロリズム - Software Transactional Memo
- ブロックチェーンの作り出す価値に付いて - Software Transactional Memo
- ブロックチェーンでそんなことはできない - chike0905の日記
- Re: ブロックチェーンでそんなことはできない - Software Transactional Memo
- スイングトレード ★ 日記.:8/13仮想通貨市況 ~利上げと仮想通貨~ - livedoor Blog(ブログ)
- イーサリアムの「Proof of Stake」への以降が完了 〜 ETHマイニングで99%、世界で0.2%も消費電力が削減されるだと・・・。 - Nishiki-Hub
- 「イーサリアム」の大規模アップデートが完了 「PoS」移行で消費電力を99.95%削減へ - ITmedia NEWS
- イーサリアムが過去最大の変更「マージ」を実施、取引に関わるエネルギー消費量が99.95%削減へ | TEXAL
- 西暦和暦年齢一覧表
- デビットカード - Wikipedia
- 取引情報:スポット市場・時間前市場|JEPX
- 日本市場 売上総利益率 ランキング | Strainer
- 一人当たり売上総利益の計算式・業種別の目安をわかりやすく解説
- 第1回 実感と合わない「平均値」のナゾ - wko-201901_06.pdf
- 日経平均採用銘柄の株価一覧 :株式 :マーケット :日経電子版
- 中央銀行デジタル通貨(CBDC)を巡る最新ポイントを整理する【鈴木淳也のPay Attention】-Impress Watch
- PCI-DSSちゃんと守ってないとかマジでヤバい - novtanの日常
- DMMの「Mastercard取引停止」で考える“カード決済の裏” クレカの扱いがなくなる複数の理由(1/3 ページ) - ITmedia NEWS
- しん🐣PdMさんはTwitterを使っています: 「クレジットカードのビジネスモデルはこの資料すごいまとまってる 0.05%と少なく見えるが、全世界から取れるVISAやMasterのようなブランドが実は一番強い https://t.co/nrSeMNmsHt https://t.co/BpiapGhpPz」 / Twitter
- 20210126003-3.pdf
- NHK受信契約の名義変更・解約:死亡後手続(期限おちついたら)
- 国内総生産(GDP)は国家の成功の誤解を招く尺度なので別の指標を使うべきという科学者たちからの提案 - GIGAZINE
- 「英年金基金危機」始まったばかり、ヘッジファンドの大物ら警告 - Bloomberg
- 勝者不在の中国住宅バブル退治、不動産不況の到来が国民生活を圧迫 - Bloomberg
- 日本の為替介入、外国ファンドが主な標的か-日本の取引時間外が中心 - Bloomberg
- 円買い原資「無限」と神田財務官、介入には言及せず ドル150円乗せ | Reuters
- ニューヨーク連邦準備銀行との間の円資金提供のための為替スワップ取極要綱 : 日本銀行 Bank of Japan
消耗品
衣類・寝具・風呂
- Amazon | 【医薬部外品】ミューズ 固形 石鹸 バスサイズ (135g×3個パック) お徳用 殺菌 消毒 手洗い 全身洗浄用 お風呂サイズ | ミューズ | ビューティー 通販
- Amazon | カウブランド 青箱 バスサイズ 130g×3個パック | カウブランド | 固形せっけん 通販
- Amazon.co.jp : 【Amazon.co.jp限定】 3M お風呂掃除 スポンジ 抗菌 特殊研磨粒子 2個 スコッチブライト バスシャイン BM-12K 2P : ホーム&キッチン
- Amazon|AYO 枕カバー 高級棉100% 全サイズピローケース ホテル品質 サテン織 300本高密度 (ネイビー, 43*63cm)|枕カバー・ピローケース オンライン通販
- Amazon|AYO 枕 まくら 高級ホテル仕様 高反発枕 横向き対応 丸洗い可能 立体構造43x63cm ホワイト(63*43*20cm)|枕 オンライン通販
- Amazon | Hiloyaya メンズ デニムパンツ ストレッチ ダメージ加工 ジーパン アメカジ メンズジーンズ ズボン 紳士 大きいサイズ (31, ネイビー) | ジーンズ 通販
- Amazon | [チャンピオン] スウェットパンツ ロングパンツ 裏毛 裾リブ ジョグパンツ 定番 ワンポイントロゴ シーズンレス トレーニングウェア スポーツウェア C3-LS253 メンズ ブラック L | スウェットパンツ 通販
- Amazon | [チャンピオン] スウェット トレーナー 長袖 裏毛 定番 ワンポイントロゴ刺繍 Vガゼット シーズンレス トレーニングウェア スポーツウェア クルーネックスウェットシャツ C3-LS050 メンズ | トレーナー・パーカー 通販
- Amazon | 【第3類医薬品】アイリス 14mL | アイリス | 目薬
- Amazon | 【Amazon.co.jp限定】 GATSBY(ギャツビー) フェイシャルペーパー [ さっぱり 爽快 ] メンズ 洗顔シート セット 42枚×3個 | GATSBY(ギャツビー) | ビューティー 通販
- Amazon.co.jp: 貝印 プリティー フェイスT 3本入×3個 : ビューティー
- Amazon.co.jp: ★ メンソレータム 薬用リップスティック XD2個組 (4個) : ビューティー
- Amazon | クリニカ アドバンテージ ハブラシ 4列 超コンパク ト ふつう セット 6本 | クリニカ | 大人用ハブラシ 通販
- Amazon | ライオン デントチェックアップスタンダード (DENT.Check-Upstandard) フッ素1450ppm 135g×2個セット | ライオン | 大人用ハミガキ粉 通販
- Amazon | 【まとめ買い】スパイラル黒綿棒 200本入【×4個】 | 平和メディク | ドラッグストア
- Amazon | 【まとめ買い】 スコッティ カシミヤ ポケットティシュー 20枚 (10組) 6個パック ×6パック入り | スコッティ | ティッシュペーパー
- Amazon | 三菱鉛筆 3色ボールペン ジェットストリーム 0.5 SXE340005.9 ネイビー | 多色ボールペン | 文房具・オフィス用品
- Amazon | ブラウン モバイルメンズ電気シェーバー M-90 水洗い可 | ブラウン(Braun) | メンズシェーバー
- Amazon.co.jp: DABLOCKS クリーニングクロス マイクロファイバー メガネ拭き 液晶画面やカメラレンズにも 20×20cmの8枚セット(黒4枚、水色4枚) : 家電&カメラ
- Amazon | サンワサプライ PCキャリングバッグ BAG-U59BK | サンワサプライ(Sanwa Supply) | 家電&カメラ
- Amazon | TOEDNNQI(トードンキ) 財布 メンズ 二つ折り 大容量 人気 カード 小銭入れス おしゃれ 二つ折り財布 ボックス型小銭入れ (Black) | 財布
- Amazon.co.jp : 不二貿易 オフィスチェア デスクチェア メッシュ 腰サポート ブラック ハンター 90866 : ホーム&キッチン
- Amazon | アイリスオーヤマ メッシュバックチェア ハイバック OFC-MBH ネイビー | デスクチェア | 文房具・オフィス用品
PC
店
- Dell 公式サイト (Dell Japan) | Dell 日本
- モニターおよびモニター周辺機器 | Dell 日本
- 【楽天市場】レノボ アウトレットの通販
- レノボ・アウトレット | レノボジャパン
- ノートパソコン | ラップトップ | レノボジャパン | レノボ・ジャパン
- Acer 公式オンラインストア Acer Japan Official Store | 日本エイサー
- ASUS公式オンラインストア|ASUS Store
- MSI公式オンラインショップ|MSI ストア
- 公式オンラインストア HP Directplus | 日本HP
- ヨドバシ.com - ヨドバシカメラの公式通販サイト【全品無料配達】
- Joshin webショップ - ジョーシンの公式通販サイト
- ノジマオンライン - 日本最大級のデジタル家電通販「Nojima Online」
- e-TREND | #より良い商品 #より良いサービス #お求めやすい価格
- Microsoft Surface - Microsoft Store
- 【楽天市場】ASUS公式のPC・周辺機器販売のオンラインストア:ASUS Store 楽天市場店[トップページ]
PC
- Amazon.co.jp : スチールラックのキタジマ NC-1500 幅150×奥行45×高さ180cm 5段 ブラック 70kg/段 : ホーム&キッチン
- Amazon.co.jp: KAKETE 荷台用 ゴムひも 長さ200cm 自由伸縮 金属製フック付 バイク/オートバイ/スクーター/自転車等の荷物固定 幅30mm : 産業・研究開発用品
- Amazon | FITUEYES プリンター台 机上台 卓上 机上 収納 デスクオーガナイザー 木製 黒 DO304001WB | プリンタ台・プリンタラック | 文房具・オフィス用品
- Amazon.co.jp: マイクロソフト ベーシック オプティカル マウス for Business ブラック 4YH-00003 有線 USB接続 光学式 両手デザイン 人間工学デザイン Windows対応 : パソコン・周辺機器
- Amazon.co.jp: マイクロソフト キーボード 有線/USB接続/防滴 Wired Keyboard 600 ANB-00040 : パソコン・周辺機器
- Amazon | ペリックス PERIBOARD-409U JP 有線 ミニ キーボード 光沢仕上げ テンキーレス サイズ 315*147*21 mm 1.8Mケーブル付 日本語配列【正規保証品】 | Perixx | パソコン用キーボード 通販
- Amazon.co.jp: Anker USB3.0 ウルトラスリム 4ポートハブ, USB ハブ 60cm ケーブル バスパワー 軽量 コンパクト MacBook / iMac / Surface Pro 等 ノートPC 他対応 USBハブ テレワーク リモート 在宅勤務 : パソコン・周辺機器
- Amazon.co.jp: StarTech.com 40cm マザーボード接続用シリアルケーブル スロットカバー付 DB9/D-Sub9ピン オス - 10ピン マザーボードシリアルヘッダー メス PLATE9M16 : パソコン・周辺機器
- Amazon.co.jp: Plugable USB 3.0 ギガビット イーサネット アダプター 有線 LAN Windows 11、10、8.1、Linux、Chrome OS 互換(ASIX AX88179 チップ使用) : パソコン・周辺機器
- Amazon.co.jp: Planex 有線LANアダプター USB-TypeA対応(USB 3.2 Gen1) 転送速度最大2.5Gbps マルチギガビット対応 USB-LAN2500R : パソコン・周辺機器
- Amazon | [20Gbps]Yottamaster NVMe M.2 SSDケース USB3.2 Gen2x2高速インターフェイス 20Gbps超高速 Type-C接続 M-Key/B&M Key対応 2230/2242/2260/2280対応 外付けSSDケース アルミ エンクロージャ グレー[HC2-C3] | Yottamaster | PCパーツ 通販
- Amazon.co.jp: 【64GB】 SanDisk サンディスク USBメモリー USB3.1対応 Type-C & Type-Aデュアルコネクタ搭載 R:150MB/s 海外リテール SDDDC2-064G-G46 : パソコン・周辺機器
- Amazon | キオクシア(KIOXIA) 旧東芝メモリ SDHCカード 16GB UHS-I対応 Class10 (最大転送速度50MB/s) 日本製 国内正規品 3年保証 Amazon.co.jpモデル KTHN-NW016G | キオクシア(KIOXIA) | SDカード 通販
- Amazon | 玄人志向 80Plus Bronze 650W ATX電源ユニット KRPW-BR650W/85+ | 玄人志向 | 電源ユニット 通販
- Amazon | Corsair Carbite 100R Silent ATX対応ミドルタワーPCケース CS5332 CC-9011077-WW | CORSAIR | 冷却パーツ・ファン 通販
- Amazon | GRAUGEAR 3.5''インチベイ対応 PCマルチフロントパネルに搭載 3ポートハブ USB 3.2 Gen2 Type-C USB-Cポート、USB 3.0コンピューター用 3.5インチコンピューターシャーシのフロントブラケットに適合[G-MP01] | GRAUGEAR | USBハブ 通販
- Amazon | 10Gtek 100M/1000M 2.5G ネットワークカード LAN カード,シングルRJ-45ポート,Realtek RTL8125コントローラ,PCI-E 2.1 X1,Windows Server/Ubuntu/Centos/Debianをサポート | 10Gtek | ネットワークカード 通販
- Amazon | 【正規品 親和産業】 ドイツ Thermal Grizzly minusPad8 オーバークロッカー向け高性能サーマルパッド TG-MP8-120-20-05-1R | 親和産業 | シリコングリス 通販
- Amazon | 【最先端Bluetooth 5.3技術】eppfun USB Bluetooth 5.3 アダプタ パソコン/タブレット 対応、低遅延 aptX/SBC/AAC USB オーディオトランスミッター、EDR/LE対応(省電力) / Win8.1/10/11{32/64bit }対応 無線 小型 USBドングル、 プラグアンドプレイ、最大通信距離20m | eppfun | Bluetoothアダプタ 通販
- Amazon | 玄人志向 2.5GビットLANカード GBE2.5-PCIE | 玄人志向 | ネットワークカード 通販
- Amazon | エアリア USB3.2 Gen2x2(TypeC)を1ポート増設 特注専用ブラックブラケットモデル 増設PCIEXpressx4ボード SD-PE4U32-C1L BIG SINGLE TURBO | エアリア | インターフェースカード 通販
- Amazon | 世界最小 ポータブル Thunderbolt 3 外付け M.2 NVMe PCIe3.0×4 に対応 SSDケース 最大読込速度:2800MB/s HDDケース 外付ハードディスクケース | TREBLEET | 外付ハードディスクドライブ 通販
- Amazon.co.jp: [20Gbps]Yottamaster NVMe M.2 SSDケース USB3.2 Gen2x2高速インターフェイス 20Gbps超高速 Type-C接続 M-Key/B&M Key対応 2230/2242/2260/2280対応 外付けSSDケース アルミ エンクロージャ グレー[HC2-C3] : パソコン・周辺機器
- Amazon | 10Gtek 100M/1000M 2.5G ネットワークカード LAN カード,シングルRJ-45ポート,Realtek RTL8125コントローラ,PCI-E 2.1 X1,Windows Server/Ubuntu/Centos/Debianをサポート | 10Gtek | ネットワークカード 通販
- Amazon | バッファロー USB 3.2(Gen 2)バスパワー4ポートPD対応ハブ ブラック BSH4U505C1PBK | バッファロー | 家電&カメラ
配線
- Amazon | UGREEN HDMI切替器 HDMIセレクター 2入力1出力HDMI2.0 HDCP 2.2 4K@60Hz安定版 HDR CEC 3D対応 PS5 PS4 Xbox TV Stick ブルーレイプレーヤー テレビ プロジェクター等に適用 | UGREEN | AVセレクター
- Amazon | UGREEN 8K@60Hz HDMI切替器 2入力1出力 HDMI2.1 4K@144Hz HDMIセレクター 手動 切り替え HDCP 2.2 PC/PS5/PS4/HDTV/Xbox/Fire TV Stickに対応 | UGREEN | AVセレクター
- Amazon | エレコム USB コンセント 充電器 合計24W USB-A×2 【 iPhone (iPhone13シリーズ対応) / Android/タブレット 対応 】 EC-AC03WH | エレコム | 家電&カメラ
- Amazon.co.jp: オーム電機 2口タップ袋LEDスイッチ HS-TMP2B2-W : パソコン・周辺機器
- Amazon | VGA to HDMI 変換 アダプター ポータブル オス-メス FULL HD (1920 x 1080) @60Hz | AUX 24bit Stereo | STRAZAR | 変換アダプタ 通販
- Amazon | IVANKY Displayport HDMI 変換コネクタ 4K@60Hz /20cm 黒 | iVANKY | 変換アダプタ 通販
- Amazon.co.jp: HDMI-DisplayPort変換アダプタ / HDMI to ディスプレイポート交換ケーブル 4K対応 HDTV LCDモニター 対応 金メッキ搭載 ブラック Winten WT-CHD02-BK : パソコン・周辺機器
- Amazon.co.jp: 変換名人 Display Port → mini Display Port 変換アダプタ DPA-DPMB/CA20 : パソコン・周辺機器
- Amazon.co.jp: Cable Matters Mini DisplayPortケーブル Mini DPケーブル ミニディスプレイポート 4K解像度対応 0.9m iMacに非対応 Target Display Modeに非対応 金メッキコネクタ搭載 ブラック : パソコン・周辺機器
- Amazon.co.jp: Cable Matters Mini DisplayPort DisplayPort 変換ケーブル 8K 60Hz 双方向 0.9m Mini DisplayPort DisplayPort 1.4 ケーブル DisplayPort Mini DisplayPort 1.4 変換ケーブル Thunderbolt 2対応 ブラック : パソコン・周辺機器
- Amazon | SATA電源 - VGA 6Pin 補助電源 変換ケーブル SATA 15ピン- PCI Expressカード6ピン グラフィックカード電源変換プラグ6ピン 20cm Cyberplugs | Cyberplugs | 電源ケーブル 通販
- Amazon.co.jp: Amazonベーシック USB2.0延長ケーブル 3.0m (タイプAオス - タイプAメス) : パソコン・周辺機器
- Amazon.co.jp: テクノベインズ Miniディスプレイポートコネクタ用キャップ(半透明薄水色)つまみあり 6個/パック DSPMNCK-BL1-6 : DIY・工具・ガーデン
- Amazon.co.jp: サンワサプライ DisplayPortコネクタキャップ 6個入り TK-CAP7 : パソコン・周辺機器
- Amazon.co.jp: SANWA SUPPLY TK-HDCAP2 HDMIコネクタキャップ : 文房具・オフィス用品
- Amazon.co.jp: サンワサプライ USB Aコネクタキャップ 20個入り TK-UCAP20
- Amazon.co.jp: テクノベインズ USB3.1Type-C 機器側コネクタ用キャップ (黒) つまみあり 6個/パック USB31CACK-B1-6 : パソコン・周辺機器
- Amazon | monofive RJ45 LANポートコネクタ防塵保護カバー・キャップ(12個)つまみ付タイプ2 MF-TRJ45-MT12 | monofive | LANケーブル 通販
- 【国認定】パソコンの無料回収(処分・廃棄)サービス「リネットジャパン」
- 主な取扱不可製品
- 一夜城 - Wikipedia
- Amazon.co.jp : Core i3-1005G1
- Amazon.co.jp : Core i3-1115G4
- Amazonのサービスが「名前・生年月日・親の旧姓」などの個人情報をデフォルトで公開しており犯罪者が簡単に悪用可能との指摘 - GIGAZINE
- ほとんどマーケティングに時間とコストを費やさず新サービスを月間訪問者数10万人まで成長させた方法とは? - GIGAZINE
- Certyfikat Code Signing, uwierzytelnienia kodu aplikacji
- 🦊すらーぷの妖精🐈#フォロバ100さんはTwitterを使っています: 「署名にかかった費用書いておく ・英語で自身の住所を証明する貯金残高証明書が、1100円 ・コードサイニング証明書と送料で1万9000円 ・DHL の手数料で1100円 ・税金800円 2万3000円は必要だね、、、」 / Twitter
- 🦊すらーぷの妖精🐈#フォロバ100さんはTwitterを使っています: 「円安とかあるので、2万3000円ってことです」 / Twitter
- 🦊すらーぷの妖精🐈#フォロバ100さんはTwitterを使っています: 「かねがとぶ https://t.co/AVsHRMNRu9」 / Twitter
- Raspberry Pi 400 スターターキット(日本語キーボード) - スイッチサイエンス
- 急増!ノートパソコン、モバイルバッテリー、スマホの事故~リコール製品や誤った使い方に注意しましょう~ | 製品安全 | 製品評価技術基盤機構
- 誤った使い方が火災の導火線に!~配線器具や充電ケーブルで火災、やけどが発生~ | 製品安全 | 製品評価技術基盤機構
- 【特集】不要になったモバイルバッテリやポータブル電源、どうやって処分する? - PC Watch
- Amazon | Apple 20W USB-C電源アダプタ | Apple(アップル) | AC式充電器
- Amazon.co.jp: Apple USB-C - Lightningケーブル(1 m) : パソコン・周辺機器
- Amazon.co.jp: Lightning - USBケーブル (0.5 m) : パソコン・周辺機器
- 【楽天市場】ThunderboltEX 4の通販
- 【楽天市場】Intel Core i5 7400の通販
税金
住民税
- 千葉市:市税過誤納金等の還付・充当
- 還付(住民税)について|東京都北区
- 個人住民税が非課税になるかた|武蔵野市公式ホームページ
- 市民税・県民税における所得金額について | 水戸市ホームページ
- 上場株式等又は一般株式等に係る譲渡所得等の申告・課税方式について | 水戸市ホームページ
- 市税の領収証書は何年保存したらよいのか。 | 市税の納付(口座振替) | 市税 | くらしの手続き | 西宮市ホームページ
- 上場株式等の譲渡損失の繰越控除や損益通算をしたら住民税の申告も検討しよう
- 株式等の譲渡益や配当に対する税金:練馬区公式ホームページ
- 現役税理士が所得税と住民税の控除額の計算方法の違いをわかりやすく解説 - 経営ハッカー | 「経営 × テクノロジー」の最先端を切り拓くメディア
- <税金の種類><個人住民税> | 東京都主税局
- 所得税と住民税の計算方法
- 住民税 税額シミュレーション
- 名古屋市:税額の計算方法(暮らしの情報)
- 名古屋市:市民税・県民税の計算例(暮らしの情報)
- 住民税はどうやって決まる? その計算方法とは - INTERNET Watch
- サラリーマンと個人事業主の税金の話まとめ:源泉徴収票の見方・年末調整の書き方から住民税の計算方法まで - INTERNET Watch
- 地方税申告の合理化 | 衆議院議員 河野太郎公式サイト
- ふるさと納税で紺綬褒章 所得2億5千万なら負担なし【川島会計事務所タックスニュース】
- 株式や配当などの確定申告と国民健康保険税/小牧市
所得税
国税庁
- No.1130 社会保険料控除|国税庁
- No.1300 所得の区分のあらまし|国税庁
- No.1199 基礎控除|国税庁
- No.1937 居住者が海外で株式等を売却した場合の課税関係等|国税庁
- No.1240 外国税額控除|国税庁
- No.2240 申告分離課税制度|所得税|国税庁
- No.2260 所得税の税率|所得税|国税庁
- No.1250 配当所得があるとき(配当控除)|国税庁
- No.1330 配当金を受け取ったとき(配当所得)|国税庁
- No.1331 上場株式等の配当所得等に係る申告分離課税制度|国税庁
- No.1474 上場株式等に係る譲渡損失の損益通算及び繰越控除|国税庁
- No.1521 外国為替証拠金取引(FX)の課税関係|国税庁
- No.1522 先物取引に係る雑所得等の課税の特例|国税庁
- No.1523 先物取引の差金等決済に係る損失の繰越控除|国税庁
- No.1524 ビットコインを使用することにより利益が生じた場合の課税関係|国税庁
- 01.pdf
- [手続名]所得税及び復興特別所得税の更正の請求手続|国税庁
- No.2026 確定申告を間違えたとき|国税庁
- 新型コロナウイルス感染症に関連する税務上の取扱い関係
- No.1150 一定の寄附金を支払ったとき(寄附金控除)|国税庁
- 手順3 所得から差し引かれる金額(所得控除)を計算する|国税庁
- e-Taxソフトのインストール時に「e-Taxソフトが新しいソフトウェアのインストールを構成中です。」というメッセージが出たまま止まってしまいました。どうすればいいですか。| 【e-Tax】国税電子申告・納税システム(イータックス)
- No.1600 公的年金等の課税関係|国税庁
- No.2725 退職所得となるもの|国税庁
ケータイ Watch
- 国税庁がスマホアプリ納付の手続を案内 - ケータイ Watch
- 23年の確定申告から「e-Tax」のマイナカード連携が便利に――読み取り回数の削減やマイメニュー機能など - ケータイ Watch
- スマホ決済で税金(国税)納付できるように、本日12月1日から - ケータイ Watch
Impress Watch
- 国税の「Pay払い」 12月スタート。PayPay、d払いなど - Impress Watch
- 2023年のe-TaxはUIを大幅改善。マイナカード読み取りは1回 - Impress Watch
- 国税のスマホアプリ納付スタート PayPay・Amazon Payなど対応 - Impress Watch
- e-Taxで確定申告、マイナンバーカード読み取りが1回に - Impress Watch
- 2177.富裕層に厳しい岸田内閣と財務省の陰謀 : 日本国財政破綻Safety Net
- ビットコインの譲渡における消費税との税務関係について税理士が解説 - エキサイトニュース(1/2)
- ビットコイン・仮想通貨の「雑所得課税」に有利な材料? 副業の所得や年金などと通算 | ZUU online
- Kazuho OkuさんはTwitterを使っています 「あーそうか、外国株の損益通算の繰越、譲渡益のみなら可能で、配当益との通算繰越ができないんだった。ややこしい https://t.co/xG8wA1sSop」 / Twitter
- 外国株式を譲渡して損失が生じた場合 | アルテスタ税理士法人
- 遺産としての仮想通貨、鍵が不明で引き出せなくても相続税がかかる | 日経 xTECH(クロステック)
- 青色申告、電子なら控除10万円増 20年1月から :日本経済新聞
- 配当所得は所得税では総合課税で、住民税では申告不要にすれば有利になるケースとは? - やまばた税理士事務所
- みずほ証券:証券税制早わかり 株式の税金
- 松浦晋也さんのツイート: "これ、もっと前があるのだ(財務省ページからは消されているが、以前は載っていた)。1970年代初頭はもっと厳しい累進課税だったのである。その税制で、日本は高度経済成長を達成している。「意地悪ばあさん」で「昭和元禄浪花節」と歌った時代である。… https://t.co/3UDrmnNSGY"
- 貧富格差を拡大する方向に進んできた日本の税制 - WirelessWire News(ワイヤレスワイヤーニュース)
- 松浦晋也さんのツイート: "財務省は消しても国会図書館ウェブアーカイブには残っている、というわけで、このページである。 https://t.co/6xFPj5r5yY"
- 所得税の税率構造の推移 : 財務省
- 外貨預金の損失で「節税」できる? | ビジネスジャーナル
- 還付申告は1月から可能。還付でない確定申告も2月15日以前にできる? | 川越市【関田和弘税理士事務所】相続税申告・クラウド会計
- 含み益の課税検討で「積立NISA逝く」SNSで拡散 金融庁「関係ないので解約しないで」 - 税理士ドットコム
- 紙で保存しなくてもOK 電子帳簿保存法対応の無料書類保管サービス続々(1/2 ページ) - ITmedia ビジネスオンライン
- e-Taxソフトのインストールが途中で止まってしまう場合の対処法 | プレライズ会計事務所
- ぬるぽへさんはTwitterを使っています 「必要だった事柄一覧 1. OSの言語設定は日本語必須(多分e-tax webの事前準備インストーラやJPKIインストーラが進まないはず 2. 1をクリアしてもまだJPKIインストーラが固まると思うので、手動でインストーラファイルを削除した後 https://t.co/Gcj3ihcmT8 に愚直に従う(新規ユーザ作成が効いた (続く」 / Twitter
- ぬるぽへさんはTwitterを使っています 「3. ICカードリーダー、挿したら動くと思うけどメーカーのページからドライバを手動インストールしないと実はマイナンバーカードが読み取れないので入れる(少なくともIO data NFC3はそう 続)」 / Twitter
- ぬるぽへさんはTwitterを使っています 「4. 初使用だとe-tax(ローカルソフト)は使用登録がされていないとエラーが出る 以前ID/PW方式で確定申告していた人は、まずweb版で「マイナンバーカードを使ってログイン」を試すとそのまま登録できる。他のパターンはちょっと知らない」 / Twitter
- e-Taxでのマイナンバーカードの読み取り回数が1回に変更へ ~確定申告のネット提出がより簡単に - 窓の杜
- 個人事業主でも年末調整が必要なケースとは? | 経営者から担当者にまで役立つバックオフィス基礎知識 | クラウド会計ソフト freee
相続税
- 遺産相続の手続きわかりやすいまとめ(1) 財産登記の法定書類や税 自分でやってみたら沼だった! | NHKライフチャット
- 「法定相続情報一覧図」とは? (2) 相続手続きわかりやすいチェックシート | NHKライフチャット
- 主な法定相続情報一覧図の様式及び記載例:法務局
年金
- 日本年金機構
- 国民年金保険料|日本年金機構
- 国民年金前納割引制度(現金払い 前納)|日本年金機構
- 国民年金保険料の現金(納付書)による2年前納のお申込みを受け付けています|日本年金機構
- 国民年金保険料の「2年前納」制度|日本年金機構
- 02.pdf
- 土浦 (つちうら) 年金事務所|日本年金機構
- 企業年金連合会(Pension Fund Association)
- 年金13万円、生活苦に悩む高齢者たちの実情 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
- 悠々自適な老後は夢のまた夢。「70歳まで就業」案に失意の声 - まぐまぐニュース!
- 「年金積立金の減少」を騒ぎ立てる人が陥っているひどい勘違いとは | 自分だけは損したくない人のための投資心理学 | ダイヤモンド・オンライン
- 2022年、日本で「個人間送金」が拡大する【鈴木淳也のPay Attention】-Impress Watch
- 国民年金保険料還付請求書を提出しましたが、いつごろ還付されるか教えてください。|日本年金機構
信用情報
- 信用情報 - Wikipedia
- 日本信用情報機構 - Wikipedia
- JICC 日本信用情報機構(指定信用情報機関)| HOME
- 全国銀行個人信用情報センター - 全国銀行協会
- 指定信用情報機関のCIC
電子帳簿保存法
- フリーランス危うし? 「インボイス」制度に向け、適格請求書発行事業者の登録を - Impress Watch
- 久慈桃子@想いを翻訳する編集ライター🖋さんはTwitterを使っています 「Amazonやpaypalなど、オンライン決済の領収書を印刷保存していた人🙌 なんと2022年からそれがNGになります🤣 「うちはPDFで保存してる!」という人🙌 タイムスタンプ必須になりますよ!🤗 改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? https://t.co/lglCmZ3Yow」 / Twitter
- 改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? | おうちフリーランス手帳
- 電子帳簿保存法の2022年1月までの改正とタイムスタンプ | GMOグローバルサインカレッジ
- 電子請求書におけるeシールの利活用 | GMOグローバルサインカレッジ
財務省
- 予算 : 財務省
- 財政に関する資料 : 財務省
- 負担率に関する資料 : 財務省
- 税収に関する資料 : 財務省
- 平成31年度財務省所管予算概算が決まりました : 財務省
Twitter
- やま@投資家5年目パパさんはTwitterを使っています: 「国税庁は300万円以下の副業を雑所得扱いという案を提示しました。改正案が通れば副業収入を得ている大半の人が事業所得ではなくなり税負担増は確実になります。その次はおそらく投資家がターゲット。貯蓄から投資へを推進し、投資人口が増えたところで金融所得課税を強化。国民は裕福になれません。」 / Twitter
- はなびら葵さんはTwitterを使っています: 「配偶者控除なくなるから専業主婦してないで働いてね、でも子育ては家でしてね、働きながら子育て大変だけど知ったことではないしたくさん稼げるようなら子供関係の扶助は全部なしにするね、介護も家でしてね、貯金は二千万貯めつつ貯金しないで投資に回してね。どうやって生きろと。」 / Twitter
- 本田悦朗さんはTwitterを使っています: 「我が国では新規に発行された国債は、60年で全額現金償還するのがルール。その財源を調達するため毎年、国債発行残高の約1/60を債務償還費として巨額の赤字国債を発行している。これは日本だけのルール。国債償還のために全額借換債を発行するのが世界の常識。赤字国債は国民の福祉のために発行すべし。」 / Twitter
- 本田悦朗さんはTwitterを使っています: 「消費税は社会保障目的税だから、もし減税すれば年金等を下げざるを得ないという人が政府・与党にいるが、全くの誤り。消費税は、課税対象(財サービスの消費)と税収の使い道(社会保障財源)の間に関連性がなく、また使い道を確認する財政措置(特別会計)もない。消費税は目的税ではない。引き下げは可能。」 / Twitter
- 【確定申告書等作成コーナー】-作成コーナートップ
- 確定申告期に多いお問合せ事項Q&A|国税庁
- 【税金の還付】|国税庁
- 振替納税の領収証書送付取りやめのお知らせ|国税庁
- クレジット販売の場合の領収書|国税庁
- No.7105 金銭又は有価証券の受取書、領収書|国税庁
- No.7190 登録免許税のあらまし|国税庁
- No.7191 登録免許税の税額表|国税庁
- 国税クレジットお支払サイト
- 日本の金融所得税、実は庶民にとっては世界屈指の重税:古田拓也「今更聞けないお金とビジネス」(1/3 ページ) - ITmedia ビジネスオンライン
- 日本銀行が国債の引受けを行わないのはなぜですか? : 日本銀行 Bank of Japan
- GDPとGNI(GNP)の違いについて - 内閣府
- 0018003-081-01.pdf
- 登録免許税っていくらかかる?計算方法と軽減措置を紹介 | はじめての住宅ローン
マイナンバー
News
- スマホでマイナンバーカード、いったい何が便利になるの? 政府が掲げる5つの方針とは - ケータイ Watch
- スマホにマイナンバーカード搭載、22年度中にもAndroidで実現へ - ケータイ Watch
- マイナンバーカードの機能をスマホに搭載することを検討 - ケータイ Watch
- 確定申告、PCからカードリーダなしでe-Tax対応。マイナポータル連携も強化 - Impress Watch
- 運転免許とマイナンバーカード一体化へ。改正道交法案を閣議決定 - Impress Watch
- マイナンバーカードのAndroidスマホ搭載は'23年4月以降に。iOSは遅れ - Impress Watch
- マイナンバーカードの“今”と“これから” 免許証・スマホ・オンライン申請 - Impress Watch
- マイナポイント第2弾、マイナンバーカード申請期限を12月末まで延長 - Impress Watch
- Yuki Yugui SonodaさんはTwitterを使っています: 「@tenpoku1000 @kazuho これはこれで詳細がわからないとやや不安かもしれません。耐タンパー性のある統一されたデバイスに根っこのcredentialに入ってるのは良いことと思うんですよ。ephemeral tokenはスマホで十分だと思うんですが。」 / Twitter
- マイナンバーカードと健康保険証 '24年秋に一本化 - Impress Watch
- Androidスマホのマイナカード機能搭載、23年5月11日スタート - Impress Watch
- マイナンバーカード、再発行期間を10日程度に短縮へ - Impress Watch
- 郵便局でマイナンバーカード申請 年度内に3000局 - Impress Watch
- セブン銀行ATM、所得情報をマイナポータル経由で提出できる新サービス - Impress Watch
- マイナカードと健康保険証の一体化、気になるポイントは? デジタル庁が回答 - ケータイ Watch
- マイナンバーカードの疑問に答えます | 衆議院議員 河野太郎公式サイト
- マイナンバーカード Q&Aその二 | 衆議院議員 河野太郎公式サイト
- 「スマホにマイナンバーカード内蔵」を阻むかもしれない経産省の「サイドローディング」議論 - ケータイ Watch
- マイナンバーカードに「フリガナ」 '23年法改正へ - Impress Watch
- 「郵便局でマイナンバーカード申請の本人確認を」、松本総務相が狙いを語る - ケータイ Watch
- 新マイナポータル(α版)がスタート 「忘れない」「見つける」強化 - Impress Watch
- マイナンバーカード普及率がわかるダッシュボード デジ疔が公開 - Impress Watch
- 郵便局でマイナンバーカード申請サポート 全国2300局。手ぶらで来た人も対応 - Impress Watch
- オンライン申請方法 – マイナンバーカード総合サイト
- マイナンバーカードのセキュリティ | 衆議院議員 河野太郎公式サイト
- マイナンバーと健康保険証 | 衆議院議員 河野太郎公式サイト
- 国税庁法人番号公表サイト
- 総務省
- 社会保障・税番号制度 - 内閣府
- マイナンバー社会保障・税番号制度
- 地方公共団体情報システム機構 地方公共団体情報システム機構
- マイキープラットフォーム
- サービストップ | マイナポータル
- マイナポータル連携特設ページ(マイナポータルを活用した控除証明書等のデータ取得と自動入力)|国税庁
- マイナポータル連携可能な控除証明書等発行主体一覧|国税庁
- e-私書箱
- マイナンバーカード総合サイト/トップページ
- 事前の準備 : 公的個人認証サービス ポータルサイト
- 証券会社へのマイナンバー登録・通知の義務化。通知しないとどうなる? | Money Lifehack
- 銀行の口座開設や既存口座でのマイナンバー(個人番号)の登録・通知の義務化のタイミングはいつ? | Money Lifehack
- CSS2017キャンドルスターセッション
- マイナンバー制度について-ゆうちょ銀行
- スイングトレード ★ 日記.:【悲報】マイナンバー提出期限3年延長が決定!提出するだけ無駄だった - livedoor Blog(ブログ)
- マイナンバーカードの疑問に答えます | 衆議院議員 河野太郎公式サイト
- マイナンバーカードの申請状況照会サービス開始 - Impress Watch
- マイナンバーカード総合サイト
- トップページ | マイナポータル
- マイナポイント事業
- マイナンバー(個人番号)制度|デジタル庁
- 署名用パスワードをコンビニで初期化 | 公的個人認証サービス ポータルサイト
- コンビニエンスストア等における証明書等の自動交付【コンビニ交付】 | ホーム
- 公的個人認証サービスとは | 公的個人認証サービス ポータルサイト
- マイナンバーカードに含まれる2つの電子証明書について調べてみた · hnakamur's blog
政府統計
- 政府統計の総合窓口
- 今週の指標 - 内閣府
- 月例経済報告 - 内閣府
- 国際収支統計(IMF国際収支マニュアル第6版ベース<2014年1月取引分~>) : 日本銀行 Bank of Japan
- 需給ギャップと潜在成長率 : 日本銀行 Bank of Japan
- 資料8-2 - siryo8-2-2.pdf
- 実効為替レート : 日本銀行 Bank of Japan
- 本邦対外資産負債残高 : 財務省
- 統計表一覧(本邦対外資産負債残高) : 財務省
- 国際収支の推移 : 財務省
- 対外・対内直接投資の推移(国際収支マニュアル第6版準拠) : 財務省
- 対外・対内証券投資の推移 : 財務省
- 2138.財務省がひた隠しに隠す特別会計の闇 : 日本国財政破綻Safety Net
- r02y_e.pdf
決算短信
その他
その他
- 決算短信|企業サイト:JR東日本
- 決算短信 | IRライブラリー | IR情報 | 東鉄工業株式会社
- IR資料・イベント|楽天グループ株式会社
- 決算短信 | IRライブラリ | 三菱HCキャピタル株式会社
- 決算短信 | 株主・投資家情報 | ダイキン工業株式会社
- 決算短信 | IRライブラリ | ステラケミファ株式会社
- 決算短信・有価証券報告書 | 積水化学工業株式会社
- 決算短信 | IR資料室 | 住友化学株式会社
- 決算短信|IRライブラリ|投資家情報|ADEKA
- IRライブラリ:決算短信 | 東京応化工業株式会社
- 決算発表関連資料 | IR情報 | 昭和電工株式会社
- 日産化学/IR情報
- 決算短信 | Nippon Chemical Industrial Co.,Ltd.
- IR情報|大陽日酸株式会社
- 決算短信 | 日本酸素ホールディングス株式会社
- 決算短信 | 古河機械金属株式会社
- 決算短信 | IR資料室 | IR情報 | 信越化学工業株式会社
- IR資料室 | 住友電工
- 決算短信 | 株主・投資家情報 | 三菱マテリアル
- 決算短信 | IRライブラリ | IR情報 | JSR株式会社
- 決算短信 | IR資料室 | 東亞合成株式会社
- 決算短信 | 巴工業株式会社
- 決算短信 | 株式会社SUMCO
- 決算短信|東洋合成工業株式会社
- 決算短信|IR資料室|大阪有機化学工業株式会社
- 決算短信 | IRライブラリー | IR(投資家情報) | 長瀬産業株式会社
- アルコニックス株式会社|IR情報|IRライブラリー|決算短信
- 決算短信 | IR資料室 | 株主・投資家情報 | 富士フイルムホールディングス
済
histric
histroc-1
- 決算短信 | クリヤマホールディングス株式会社
- IRライブラリ : 決算短信 | 株式会社フェローテックホールディングス
- 決算短信 | 平河ヒューテック
- 決算短信 | IRライブラリー | 明電舎
- 決算短信 | 住友大阪セメント
- 決算短信 | 国際石油開発帝石[INPEX]
- 決算情報|株主・投資家情報|営業紹介|株式会社関電工 | 株式会社関電工
- 決算短信|イノテック株式会社
- 決算短信 | 株主・投資家情報 | 日本精線株式会社
- 物流の山九株式会社|IR資料 | 山九株式会社
- IR情報 | 日本パレットプール株式会社
- 決算短信 | IR情報 | 化学メーカー、石原産業
- 決算関連情報|株主・投資家情報|株式会社ナカノフドー建設
- 決算短信・補足説明資料 | 東和薬品
- 決算短信|IR情報|小野建株式会社
- 決算短信|カルビー
- 決算短信 | プリント基板設計・製造・実装|5G基板ならキョウデン
- 決算短信 | ケミカルポンプと流体制御機器のイワキ
- 決算短信|Nakamoto Packs
- 決算短信・決算説明資料|IR資料室|投資家情報 | ライオン株式会社
- 決算概況 | IR(投資家向け情報) | カワチ薬品
- 決算短信 | 財務情報 | 投資家情報 | アルチザネットワークス
- 決算短信 | IR情報 | 株式会社ダイセル
- 決算短信 | 株主・投資家情報 | レンゴー株式会社
- 決算情報 | 三桜工業株式会社 - Sanoh Industrial Co., Ltd.
- 決算短信 – 株式会社エノモト
- 財務情報 | IR情報 | トーモクグループ
- 決算短信関連|IR資料室・動画|株主・投資家の皆さま|参天製薬
- 決算短信|IR資料室|株式会社丸山製作所
- 決算短信 | 株式会社エイチワン
- 決算短信・説明会資料 | IRライブラリ | 株主・投資家情報 | タツタ電線株式会社
- 決算短信:株主・投資家情報:FREUND フロイント産業
- 投資家の皆様へ - IRライブラリー - 決算短信 | 暮らし、いきいき ジュンテンドー
- 決算短信|IR資料|IR情報|ハビックス株式会社
- JMS | IR情報
- 決算短信|トーカロ株式会社
- IR ニュース一覧 - 株式会社ETSホールディングス
- IR情報 - IRライブラリ | 株式会社J-MAX
- 決算短信 - 株式会社エフオン EF-ON|私たちEF-ONグループは、人々の生活を支える技術・社会の省エネルギーを支援します。株式会社エフオン EF-ON
- 決算短信 | 株主・投資家情報 | TORAY
- 決算短信 | SWCC 昭和電線ホールディングス株式会社
- 決算短信 IR情報 | 関東電化工業
- 決算資料|IR情報|愛三工業株式会社
運輸・その他の金融
その他
- QRコードはどんな技術で何が危険なのか? - GIGAZINE
- QRコードを生成できるだけでなく「作り方」まで理解できる「Creating a QR Code step by step」 - GIGAZINE
- au PAY不正利用相次ぐ 京都府警に相談202件 - ITmedia NEWS
- 高梨陣平さんはTwitterを使っています: 「PayPalが12ヶ月未使用のアカウントに手数料€10 EURを課金 メールの通知は行くらしい」 / Twitter
- 3Dセキュア2.0(クレジットカード本人認証サービス)とは | 決済代行のゼウス
- デビットカードなのに「後払い」ができる!常識を打ち破るサービス 「デビット後払いオプション」を提供開始|GMOあおぞらネット銀行株式会社のプレスリリース
Impress Watch
- 日本郵便が「空き家のみまもり」 郵便局ネットワーク活用 - Impress Watch
- キャッシュレスは災害に弱い? 「オフライン決済」導入の課題【鈴木淳也のPay Attention】-Impress Watch
- 携帯電話番号で送金できる「ことら」スタート 手数料無料も - Impress Watch
- コカ・コーラの電子マネー「Coke ON Wallet」開始 - Impress Watch
- ビジネスデビットカードに“後払い”機能 GMOあおぞら銀 - Impress Watch
- カード少額決済のCAFIS手数料を引き下げ 2000円以下は0.15% - Impress Watch
- ヤフオク! 自動車やトレカ出品は「本人確認」必須に - Impress Watch
- 注目されるデジタル通貨 海外の中央銀行デジタル通貨(CBDC)動向 - Impress Watch
SBI VC
- SBI VC Trade - ログイン
- FAQ・お問い合わせ
- 暗号資産入出庫 – FAQ・お問い合わせ
- 日本円の入金方法を教えてください。 – FAQ・お問い合わせ
- ログイン・パスワード・2段階認証 – FAQ・お問い合わせ
- e-consent.pdf
- manual_tt.pdf
- covenants_tt.pdf
- privacy_merge.pdf
- otherconsent.pdf
- 【佐川急便】輸送状況を調べる|荷物を送る・受け取る
- セイノースーパーエクスプレス お届け状況確認
- 西濃運輸|お届け状況確認
- ヤマトホームコンビニエンス | 家具家電配送・らくらく家財宅急便
- ログイン|住信SBIネット銀行
- SBI証券|株・FX・投資信託・確定拠出年金・NISA
- SBI証券|株・FX・投資信託・確定拠出年金・NISA
- SBI証券|株・FX・投資信託・確定拠出年金・NISA
- リクルートID・ポイント公式サイト - Pontaポイント・dポイントもたまる・つかえる!
- PontaWeb[Pontaカード/Pontaポイント]
- ローソン - 提携企業一覧 | PontaWeb
- TOP | au ID
- au PAY
- ログイン画面/auカブコム証券
- ゆうちょダイレクト ログイン(お客さま番号入力)
- ログイン
- 郵便局 | 日本郵便株式会社
- 94円普通切手・スミレ: 切手・はがきストア|郵便局のネットショップ
- レターパックライト(370円)(20部セット): 切手・はがきストア|郵便局のネットショップ
楽天
通信
ケータイ Watch
- 楽天モバイルが求めるプラチナバンド、携帯3社はどう反論したのか - ケータイ Watch
- ドコモ・au・ソフトバンク・楽天の電波状況、山手線や主要空港はどう? OpenSignalが調査 - ケータイ Watch
- 「プラチナバンド」再割当てで楽天モバイルと割れる3社、技術検証の結果を公開 - ケータイ Watch
- 5G人口カバー率は2022年3月末で93.2%に、総務省がデータ公表 - ケータイ Watch
- 楽天モバイルとNEDO、AI活用で「5Gスライス」を8割自動化する新技術 - ケータイ Watch
- 「プラチナバンド再割当て」の費用負担は? 総務省が報告書で考えを示す - ケータイ Watch
- 楽天モバイル、プラチナバンド再割り当てに関する報告書案に「主張が概ね反映された」とコメント - ケータイ Watch
- 楽天モバイル、2023年度中に基地局6万超、人口カバー率は99%超へ - ケータイ Watch
- 楽天モバイル、4Gの人口カバー率98%を達成 - ケータイ Watch
- 楽天モバイル0円終了&課金ユーザー100%、第3四半期の業績は - ケータイ Watch
- 楽天モバイル、「700MHz帯の未使用分」の携帯利用検討に「歓迎する」とコメント - ケータイ Watch
- 楽天モバイル、災害時に向けてNEXCO中日本や総務省九州総合通信局と協定 - ケータイ Watch
- 楽天モバイルが2四半期連続でシェア減、5G契約数は1年で約2倍に増加 - ケータイ Watch
- 総務省、「プラチナバンド再割当て」などに関する報告書を公表 - ケータイ Watch
- Cookieポリシー | 楽天グループ株式会社
- 楽天モバイル メンバーズステーション
- 通信・エリア | 楽天モバイル
- Rakuten Casa(楽天カーサ) | 通信・エリア | 楽天モバイル
- iOS14.4以降を搭載するiPhoneの楽天回線対応について | 製品のお知らせ | 楽天モバイル
- 迷惑メールを申告する方法 | お客様サポート | 楽天モバイル
- 【公式】楽天ひかり | IPv6対応の高速インターネット
- 楽天ひかりのIPv6(クロスパス)対応ルーター | 次世代規格IPv6とは | 高速インターネット | 楽天ひかり
- 楽天モバイルの5G/4G対応周波数帯(バンド)まとめ・解説
- 楽天モバイルも使う巨大通信衛星「BlueWalker 3」が明るすぎて天体観測を妨害&電波望遠鏡と電波干渉する可能性も - GIGAZINE
- “圧勝”の楽天モバイル、“虎の子”奪われる携帯3社 波乱となった「プラチナバンド再割り当て」(1/3 ページ) - ITmedia NEWS
- 楽天モバイルのプラチナバンド問題、「狭帯域700MHz帯」は解決策となるか - PHILE WEB
- 楽天がモバイル事業「緊急赤字対策」に着手!禁断のコスト削減が招く通信網“断絶”危機 | 楽天 解体の序章 | ダイヤモンド・オンライン
- 楽天 解体の序章 | ダイヤモンド・オンライン
- 楽天モバイル、ショップの大量閉店は“終わりの始まり”なのか?「仮設感がエグい」長机ひとつで開設可能な郵便局店への転換で今は耐え忍ぶ一手か | マネーボイス
- 大量閉店&リストラと苦境の楽天モバイル、社員には「1人5回線契約」の熾烈ノルマ? 提携先・日本郵政の伝統芸“自爆営業”復活かとの見方も | マネーボイス
- 取引時間/注文受付時間 | 取引ルール | 米国株式 | 外国株式・海外ETF | 楽天証券
- 楽天銀行(旧イーバンク銀行)|ネットバンク
- 楽天ペイのSuica - 楽天ペイアプリ
- ポイントが貯まる 使える 年会費永年無料の楽天カード|楽天カード
- 楽天Edyアプリ(iPhone)での残高照会 | 電子マネー 楽天Edy
- 楽天キャッシュ、セブン銀行ATMからの現金チャージに対応 - Impress Watch
- 楽天ペイとSuicaが連携開始。楽天ペイからSuicaチャージや支払い - Impress Watch
- JR東日本と楽天がSuicaキャッシュレス決済事業で提携したワケ【鈴木淳也のPay Attention】-Impress Watch
- 年間取引報告書について | 楽天証券
- 手数料0円ETF | 国内ETF/ETN/REIT | 国内株式 | 楽天証券
- JIS&TのiDeCo<イデコ>(個人型確定拠出年金)ポータル
- 日本インベスター・ソリューション・アンド・テクノロジー株式会社
- 楽天ウォレット会員ログイン|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
- セキュリティ対策について|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
- 楽天カード、ビザ・マスターのタッチ決済が「楽天ペイ」アプリで可能に - Impress Watch
- みずほと楽天証券が戦略的提携、ハイブリッド型資産コンサルを共同で実現へ - Impress Watch
- 楽天カード、MastercardのAmazon利用時のポイント還元率を変更 5分の1に 1月から - ITmedia NEWS
- 楽天キャッシュ、楽天Edyにチャージできるようになった - Impress Watch
- 新デザインの一体型決済ターミナルと“タッチ決済”で攻める「楽天ペイ」【鈴木淳也のPay Attention】-Impress Watch
- お店の「楽天ペイ」、クレカのタッチ決済に対応 - Impress Watch
- 証拠金取引所サービス | 楽天ウォレット
- 楽天ペイが「タッチ決済」を強化する理由 - Impress Watch
- 「JRE BANK」'24年春スタート JR東日本が金融サービス参入 - Impress Watch
通信
その他
ケータイ Watch
- ヤフー、フィッシングメール対策として「BIMI」を導入 - ケータイ Watch
- 通信障害時に期待される「事業者間ローミング」、IIJが動画でその仕組みと課題を解説 - ケータイ Watch
- iPhone→iPhoneへeSIMを移す「eSIM クイック転送」、携帯各社の対応状況は - ケータイ Watch
- 総務省、「事業者間ローミング」実現に向け28日に第1回検討会 - ケータイ Watch
- 第992回:通信障害や災害時でもスマホが使えるようになる?――「事業者間ローミング」とは - ケータイ Watch
- IIJ、1枚のSIMで複数キャリアに接続できる「マルチプロファイルSIM」を開発 - ケータイ Watch
- 大規模な通信障害に「ローミング」、警察/消防/海保ともに「呼び返し機能は不可欠」 - ケータイ Watch
- 総務省、携帯の電波割当に条件付きオークションを導入へ - ケータイ Watch
- 非常時の事業者間ローミング検討会、呼び返しなどなしなら前倒しで実現も - ケータイ Watch
- スマホ「白ロム割」にも規制、割引は中古価格を参考に――総務省で4キャリアが提案 - ケータイ Watch
- 総務省会合で「700MHz帯の未使用分」活用検討へ、ドコモが提言 - ケータイ Watch
- 総務省、接続料と利用者料金の関係に対する意見を基に指針を改定 通信会社に検証を要請 - ケータイ Watch
- 通信障害は30分以内に初報、利用者目線でわかりやすい発信を――総務省が方針案示す - ケータイ Watch
- 非常時ローミングで話題の“呼び返し”を自ら体験してしまった話 - ケータイ Watch
- au「povo2.0」で深刻なトラブル続く。強制解約、番号消失、絶対繋がらないサポート・・・ - Skyblue
- 【山田祥平のRe:config.sys】データ通信専用サービスはなくなるの? - PC Watch
- 総務省|テレコム競争政策ポータルサイト|端末販売の適正化等の取組に係る情報提供窓口
- 地方ならではのクラウドVDIの落とし穴 | IIJ Engineers Blog
- TwoFive メールセキュリティ Blog 第5回「短縮URLとダイナミックDNSは使わない方がいい理由」 | ScanNetSecurity
- “まだ作成していないユーザーアカウント”を先回りして乗っ取る攻撃 米Microsoftなどが指摘:Innovative Tech - ITmedia NEWS
- 10代のネット利用を追う: “青少年ネット規制法”で目指すもの~高市早苗・衆議院議員に聞く
- 今、求められるメールセキュリティ 〜パスワード付きZIPと送信ドメイン認証 「DMARC」(IIR vol.55 1章) | IIJ Engineers Blog
- なぜ、SSL-VPN製品の脆弱性は放置されるのか ~“サプライチェーン”攻撃という言葉の陰で見過ごされている攻撃原因について~ - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
- 放送はIP・クラウドに乗せられるか 総務省の思惑と放送局の正念場:小寺信良のIT大作戦(1/2 ページ) - ITmedia NEWS
- ドコモ、なりすましメールの判別精度向上。DMARC導入 - Impress Watch
- 「秀丸メール」でASAHIネットのメールサーバーへ接続できない問題 - 窓の杜
- ASCII.jp:拍子抜けするほど簡単なiPhone間の「eSIMクイック転送」を試す
- ASCII.jp:アップルはeSIM推進に向けて国内キャリアの尻をたたく(石川温) (1/2)
- 衛星インターネットサービス「Starlink」がユーザー数の増加に伴い通信速度が低下している | TEXAL
- SMS拒否設定 | お知らせ | NTTドコモ
- ドコモ iPhone/Android でSMSが届かない時の対処方法(画像あり)|てくめも@ecoop.net
- Route53のAレコードで所有していないEIP、パブリックIPが設定されていないか「Ghostbuster」を使って把握してみた | DevelopersIO
- 年末uさんはTwitterを使っています: 「ghostbusterこれか。Route53で管理している HostedZoneのAレコードに管理外のElasticIPが含まれていないかチェックするツール。 / “GitHub - assetnote/ghostbuster: Eliminate dangling elastic IPs by performing analysis on your resources within all your AWS accoun…” https://t.co/cMlkSciODW」 / Twitter
- assetnote/ghostbuster: Eliminate dangling elastic IPs by performing analysis on your resources within all your AWS accounts.
- 【買い物山脈】実測約8Gbps!自宅回線をNTTの10Gbpsサービスに変更したらSSD並みの爆速に - PC Watch
- Cloudflareが中国の“グレート・ファイアウォール”を越えて通信を行う方法を確立 | TEXAL
- Kazuho OkuさんはTwitterを使っています: 「VPNの @tailscale は、VPS用意せずに無料で自宅サーバ公開する機能もあるのか。HTTPS に限られるけど (SNI見てルーティングするため)。すごいなぁ https://t.co/SOX4U16JKf」 / Twitter
- Introducing Tailscale Funnel · Tailscale
- Microsoftが次世代光ファイバー技術「中空コアファイバー」を開発する「Lumenisity」を買収 - GIGAZINE
- Microsoft、次世代光ファイバー通信の要となる“中空コアファイバー”のスタートアップLumenisityを買収 | TEXAL
DNS
- 本の虫: CloudflareのDNSからArchive.isが解決できない問題について
- 1.1.1.1 — the Internet’s Fastest, Privacy-First DNS Resolver
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「なぜ "dig jp NS" は日本のネームサーバを返すのに、"dig ch NS" はスイスのネームサーバを返さないのか? digはインターネット(IN)以外のアドレスも受け付ける仕様になっており、"CH" はChaosnetを意味する。終端のピリオドを入れて "dig ch. NS" とやると正常に動く。 https://t.co/Syl0xsDSXy」 / Twitter
- DNS Esoterica – Why you can’t dig Switzerland – Terence Eden’s Blog
- インターネット用語1分解説~NAT64/DNS64とは~ - JPNIC
- 高梨陣平さんはTwitterを使っています: 「>RT Cloudflareが自社批判サイトを自社DNSで蹴ってしまったのは頭が痛いっすよね、実際。 8.8.8.8の代わりに1.1.1.1を使おうと言えなくなってきてしまった。」 / Twitter
- Kevin BeaumontさんはTwitterを使っています: 「If you can’t access this site critical of Cloudflare, it is because Cloudflare’s 1.1.1.3 DNS service is blocking it now.」 / Twitter
- bootlesshacker さんはTwitterを使っています: 「@GossiTheDog Doesn't resolve on 1.1.1.3 🤔」 / Twitter
- 高梨陣平さんはTwitterを使っています: 「結局、日本では大勢のエンジニアがCloudflareの技術はスゲェと言い続けるだけになりそう。 どんな問題が存在し、どのような議論が行われ、遂にCloudflareが折れた。それら全てが日本では報道されず認識されずに終わるのかもしれない。」 / Twitter
- Cloudflareが嫌がらせ特化型掲示板「Kiwi Farms」をブロック、LGBT差別が人命の危機に発展することを考慮 - GIGAZINE
- Cloudflare、フォーラムKiwi Farmsをブロック 「命にかかわる脅威と判断」 - ITmedia NEWS
- 海賊版サイトにパブリックDNSリゾルバ「1.1.1.1」から接続できなくするよう裁判所がCloudflareに命令 - GIGAZINE
- momokaさんはTwitterを使っています: 「https://t.co/vc8BFxulbC chrome 108 からIPv6-only環境(ただしDNS64/NAT64使ってる) からブラウザにグローバルIPv4アドレスを打ち込んでもつながるようになります。」 / Twitter
- GSoC chromium: IP address synthesis for an IPv6 only network to connect to an IPv4 address literal. - momokaのブログ
- momokaさんはTwitterを使っています: 「左:before 右:after (DNS64/NAT64 ありのIPv6-onlyネットワークでの検証) https://t.co/KTleLO74dZ」 / Twitter
- momokaさんはTwitterを使っています: 「自分が使ってるブラウザの正確なバージョンはこんな感じか。 左:Version 106.0.5249.119 (Official Build) (arm64) 右:Version 109.0.5406.0 (Official Build) canary (arm64) (いつも使ってる方107にまだあげてなかった) Nov 29, 2022からの108から変更が入る。」 / Twitter
ドメイン名
- 総務省|地方行政のデジタル化|地方公共団体における情報セキュリティポリシーに関するガイドライン
- 参議院議員通常選挙 | 愛知県
- 提供終了したアクセス解析ツールのドメインが他者の手に 不審なスクリプトが設置されている可能性も - ITmedia NEWS
- 主に東京都選挙管理委員会の方へ:政府・地方公共団体はドメインをどう取るべきか
- 一般ユーザに払い出すと危険なサブドメインやメールアドレス - ASnoKaze blog
- てくろぐ: インターネット・トリビア: 一度登録したドメイン名は大切に
- 忘れ去られたドメイン名に宿る付喪神 | IIJ Engineers Blog
- 「gmail」ドメインを「gmai」と誤記、10カ月気付かず2000件超の情報漏えいか 埼玉大が「ドッペルゲンガー・ドメイン」の毒牙に - ITmedia NEWS
10G PON
- 【アクセス回線10Gbpsへの道】(第5回)アクセス回線が10Gbpsに到達した「10G-EPON」、「IEEE 802.3av」として標準化【ネット新技術】 - INTERNET Watch
- 最大10Gbpsの「フレッツ 光クロス」が4月1日提供、月額6300円、NTT東西 - INTERNET Watch
- 10Gbps対応「フレッツ 光クロス」はIPoE方式でのみ提供開始。今後、PPPoE方式は縮小されていくのか? - INTERNET Watch
- いよいよ始まる10Gbps接続の「フレッツ 光クロス」、NTT東日本を直撃! - INTERNET Watch
- ネットを10倍速に! 10Gbpsのネット回線サービス一覧(7社) - INTERNET Watch
- 既存回線からの乗り換えは? 「ひかり電話」はないの?――10Gbpsの光インターネット「フレッツ 光クロス」の気になる点をNTT東西に聞いてみた - ITmedia Mobile
- 最大10Gbps「フレッツ光クロス」値下げ。神奈川/千葉/埼玉で開始 - Impress Watch
Spamhaus
- The Spamhaus Project
- グローバルIPアドレスが「SPAMHAUS」に登録されてしまった場合の対処方法を教えてください | KDDIクラウドプラットフォームサービス ナレッジサイト
- [共通] SPAMHAUSでのブラックリスト登録解除手順
- メール送信エラー発生~Spamhaus PBLにIPアドレスが登録されていたので解除申請で解決 | 稲葉サーバーデザイン
- メールを送信すると「www.spamcop.net/bl.shtml」または「www.spamhaus.org/」という内容が書かれたエラーメールが届きます。どうしたらいいですか。 – Q&A(よくあるご質問)
- メール送信したら、spamhausというサイトのURLがついたエラーメールが届いて送信できない。 – お客さまサポート
- メール配信のブラックリスト登録の原因と確認・解除方法 | メール配信システム「blastmail」Offical Blog
- メール送信後にSPAMHAUSからのエラーメールが届き送信ができない件について | お知らせ | JCOM株式会社 | J:COM
- 動く標的を追いかけて――「Spamhaus」約20年の歩み:セキュリティ・アディッショナルタイム(25) - @IT
CDN
- Kazuho OkuさんはTwitterを使っています: 「うーん、初期のCDNのユースケースって、ウェブ関連が多かったんじゃないかしら。だとすると、すぐにかつ確実に速度が出て、ブラウザで動作する仕組みじゃないと辛いから、P2Pだと要件にあわない気がする。 インストーラの配布とか、起動に時間がかかってもいい用途だと、実際にP2P使われていたわけで」 / Twitter
- Shinji KonoさんはTwitterを使っています: 「P2PがCDNに敗れ去ったのは政治的な問題であって、技術的な問題じゃないぞ。https にしろ圧力と、P2Pは違法とか、Winny のあれとか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そしてまた、(到達性の問題とか無視して)ネットワークトポロジに限っても、DSLのような上り回線が細い環境がある場合、クライアントからの上り帯域を消費するP2Pが正しい選択なわけでもない」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「トポロジ的に最適なのはISP内にキャッシュサーバを置く手法で、いったんキャッシュサーバが設置されれば、ユーザにとっても品質および帯域消費でP2Pよりも便利なわけで」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そう考えると、当時にしてもP2Pは、キャッシュサーバにお金を払うことができない「バイトあたりの利益が低いコンテンツ事業者」むけの「貧者のソリューション」でしかなかったんだと思う。 貧者のソリューションであるからこそ、ウェブでは不可能な大容量コンテンツを配信できるという夢はあった」 / Twitter
Wi-Fi
- サービス停止が続く「フリーWi-Fi」の現状とこれから - ケータイ Watch
- 【山田祥平のRe:config.sys】爆速に生まれ変わっていたキャリアの公衆Wi-Fi - PC Watch
- 【特集】ドコモユーザーでなくても使える無料のWi-Fiサービス「d Wi-Fi」がとにかく便利。パソコンでも使えて回線速度も良好 - PC Watch
- 災害時に誰でも使える無料Wi-Fi『00000JAPAN』の使い方や注意点|TIME&SPACE by KDDI
発信者情報開示請求
- 糟屋もふさんはTwitterを使っています: 「この指摘はまさにその通りで、発信元ポートが必要なのは、総務省での発信者情報開示にまつわる議論の中でもされてます。 もし、ポート記録してないよ!ってサービスの方がいたら、ぜひ検討してください。 --- 資料参考はこのあたり https://t.co/zydKhYiK6m https://t.co/tp5iHAiaPe https://t.co/H7ViZPVpFK」 / Twitter
- 年末uさんはTwitterを使っています: 「Twitterなどへ発信者情報開示請求した場合に得られるものって日時とIPアドレスだけなんかな。ふと思ったのはIPoEやキャリアグレードNAT構成を想定すると発信元ポート番号も開示が必要なのではと思っているが、皆さん記録してますか。」 / Twitter
- 000360558.pdf
- 000708777.pdf
- 年末uさんはTwitterを使っています: 「@KasuyaMofu おーなるほど、この言及知りませんでした。ちゃんと検討されてるんですね」 / Twitter
- 年末uさんはTwitterを使っています: 「なるほど https://t.co/H9Gja10OBW」 / Twitter
- 年末uさんはTwitterを使っています: 「おそらくCDNや各種ロードバランサが出力するログは接続元ポートが記録されてると思うのでそれをきちんと長期間保存しておけば問題ないと思われる。 CloudflareはEnterprise契約しかリクエストログを取得できないっぽい?ここは要注意か。」 / Twitter
GIGAZINE
- IoT企業が突然「夜逃げ」してアプリとサーバーが停止、照明やセンサーが操作不能に - GIGAZINE
- 「政府によるインターネットの遮断」は2016年以降に世界60カ国で935件以上も発生、安価な商業ツールが検閲に使われる実態も - GIGAZINE
- 手数料無料で自サイトを売ることができる「ラッコM&A」、一体どんなサイトが売買されているのか&実際にサイトの自動査定をやってみた - GIGAZINE
- Cloudflareのブロック対象になると大変なことになるという体験談 - GIGAZINE
- CloudflareがCAPTCHAの代わりとして「Turnstile」をリリース、ユーザーではなくブラウザをテストしてボットかどうかを見極める仕組みとは? - GIGAZINE
Twitter
histric
histric-1
- Kazuho OkuさんはTwitterを使っています 「あーなるほど。Slack の DNS 障害は、再帰リゾルバのキャッシュから問題のエントリが消えるまで待つ必要があるけど、既に消えてる再帰リゾルバを使うという解決策もあるという話。そりゃそうだ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「逆に考えると、今slack使えている人もリゾルバを変えることで 「つらいわーslackつながらないから仕事できないわー」 って言うことができるかもしれない。ちょっと試してみるか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「運用の問題とか DNSSEC の問題というより、DNS プロトコルに cache invalidation がないってのが今時設計古いんじゃないの? だからこそ「浸透待ち」とか言うんでしょ? という視点は必要だと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「CDNといっても、顧客のドメインを預かって運用しているようなケース(つまりホスティング)から、一般的なjavascriptやCSSを別ドメインから誰でも使えるように流しているケースまで、いろいろあるので、主語デカく語るの無理なんじゃない?」 / Twitter
- のびっこ㌠@お仕事がんばるさんはTwitterを使っています: 「固定電話の電話番号が他業者に同番移行できるかどうかって、最初にその番号を取得したときにアナログ電話で番号取得したかどうかなんですよな。 アナログ番号だった番号にのみ、ナンバーポータビリティ制度が適用されるっす。 J:COMとかフレッツでいきなり電話番号発番した人は移行できませんなり。」 / Twitter
- のびっこ㌠@お仕事がんばるさんはTwitterを使っています: 「これが嫌な人は、フレッツだと116のオペレーターの方に初回発番時に「アナログ発番したいです!」っていうと、+500円くらいの日割りがかかるけどダミーアナログ工事>デジタル工事って流れにできたりします・・。 逆に言うと最初にその+500円くらいを払ってないと移行ができないっす。」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「IPv6専用プランだと国内最安値の月額税込297円。メモリ768MB、vCPU1コア、SSD20GB。安い。円安効果もあって世界的にも安い部類になる可能性。 / “初期料金無料・従量課金制|VPS(仮想専用サーバー)はWebARENA Indigo” https://t.co/XneTvIvTe0」 / Twitter
- 初期料金無料・従量課金制|VPS(仮想専用サーバー)はWebARENA Indigo
- matsuu序二段さんはTwitterを使っています: 「IPv6専用プランだとIPv4でアクセスできなくて困ると思っているアナタ、cloudflareなどのipv6対応CDNを利用すればいいんですよ。CDN経由であればIPv4からでもアクセスできますよ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「日本のIPアドレスブロックのリスト。 (Postfix のSPAM対策で使うと便利) https://t.co/GpEhGlh39h」 / Twitter
- 🇯🇵 日本[jp]に割り振りされたIPアドレスの一覧 : ipv4.fetus.jp
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「JPNICのIPv6アドレス管理表、一か所だけ(addr::/N ではなく)addr://N になっていた。 手作業で作成してるのね、これ。 https://t.co/r6zKRywqIQ」 / Twitter
- JPNICが管理を行っているIPv6アドレス一覧 - JPNIC
- Takuo KihiraさんはTwitterを使っています: 「ビジネスの側面から言うと、xyz ドメインに関しては一部サービスでは TLD の段階でフィルタリングされるほど信用を失っているドメインであり、その TLD を利用するということ自体がビジネス上のリスクになる認識は持っておいた方が良いと思います。ソースとしてはこことか。 https://t.co/g9NgLMQTvo」 / Twitter
- The Perils of an .xyz Domain
- Yoshinobu MatsuzakiさんはTwitterを使っています: 「中国に設置したroot DNSのインスタンスが中国国外からの問い合わせに応答しちゃうと、途中にあるGFWが応答を書き換えちゃうかもしれないので、K-rootの中国インスタンスは全てローカルノード扱いだと。なるほどなあ。https://t.co/2YCVyI8FHp」 / Twitter
- APNIC Academy / Root Server Deployment and Operations
- Kazuho OkuさんはTwitterを使っています: 「なるほどー。そして辞書を引いて 輻=スポーク 輳=(スポークがハブ(轂)に)集まる って意味なのを知った。勉強になる」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています: 「「輻輳」って熟語てっきりcongestionの邦訳で近代以降の造語かと思いきや、奈良時代の道鏡が失脚した年には使われていた由緒正しい漢語だったとは。【輻湊・輻輳】*南天竺波羅門僧正碑并序−神護景雲四年(770)四月二一日 「於是道俗輻輳、闐城溢郭」精選版 日本国語大辞典 https://t.co/WxYnbfxLpF」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「「輻輳」完全に理解した。 最古の用例は、張儀が魏王に対し、秦と「連衡」することを説いた際の「魏地方不至千里,卒不過三十萬。地四平,諸侯四通輻湊,無名山大川之限。」 四方に平らに通じていて周辺諸侯が攻め込みやすく、名山大河の境界もない、みたいな意訳になるかしら?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@masanork 戦国策・魏策とありますが、(合従連衡の話で出てくる)張儀の用例が最古のもののようですね。紀元前からある言葉... https://t.co/ULy7GeP1vn」 / Twitter
- 史記 : 列傳 : 張儀列傳 : 13 : 相似段落 - 中國哲學書電子化計劃
- 巨峰くん@税理士会計士マッチングならfixpertさんはTwitterを使っています: 「楽天モバイル解約したはずなのに、毎月引き落としされてるなーっと思って電話したら、オプション料金だけずっと請求され続けてた。解約手続きが完了したら普通請求終わると思うじゃん。マイページ入っても何に課金されてるかすら書いておらず、「解約済」とだけ書いてあって、すごいなと思った。」 / Twitter
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「pingの応答遅延を確認できるサイト。緑は高速であろうhttps://t.co/dNklFapFnR、青はそここなhttps://t.co/G9pzEIcJgMへのping応答遅延。赤が記録される場合はあまりよろしくない状況を示す。手元の環境だと4G回線で安定せず赤が記録された。 / “Blip” https://t.co/XpHoJnkxi1」 / Twitter
- Blip
- Yosuke NagatomoさんはTwitterを使っています: 「楽天モバイルからpovoにMNPした電話番号で国際SMSを受信できなくて困っている。povoの公式回答がこれで詰む・・・ MNPした場合、HLRの照会に失敗して、国際SMSが端末へ到達できない。責任の所在はどこにあるのだろうか? https://t.co/aKMrndWI1a」 / Twitter
- ログイン | VALUE-DOMAIN(バリュードメイン)
- Yahoo! JAPANが配信する広告などへのパーソナルデータの利用
- スピードテスト - Google 検索
- 個人向けSIM・インターネットサービスのIIJmio
- IIJmio meeting 32 / iPhone「緊急通報ができない」問題とその周辺事情 - Speaker Deck
- IIJmio:DS-Liteについて
- サービス情報サイト
- EditNet
- フレッツのIPv6パケットフィルタが筒抜けだった件(ひかり電話あり/なしで異なる結果に) – アキバではたらくプログラマのBlog
- フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題 - tsutsuiの作業記録置き場
- フレッツ光回線でscpが遅かった話 - Qiita
- What Is My IP Address - See Your Public Address - IPv4 & IPv6
- ルーターのIPアドレスや初期パスワードなどを検索できるウェブサイト「Modemly」を使ってみた - GIGAZINE
- 個人開発でクローズドなチャットを作るので電気通信事業に届出
- パブリックIPをIPv6だけ持つAzure VMを立てて引っかかったポイント集 | cloud.config Tech Blog
鉄道
Wikipedia
- Help:早見表 - Wikipedia
- Wikipedia:拡張半保護の方針 - Wikipedia
- Skin:Vector-DarkCSS - MediaWiki
- Category:井戸端の話題 - Wikipedia
- Wikipedia:井戸端 - Wikipedia
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「RMSに傾倒して自由(で伽藍)な百科事典を作ろうとしたのがNupediaで、あまりに記事が完成しないのでWikiで記事を集めて補足しようとしたのがWikipedia。なのでWikipedia誕生には特に高尚な意味はないのだけど、Nupediaが消滅していることで歴史の改変が起きているのかもなぁとふと思った。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Wikipedia日本語版 (の一部) をどこの人が編集したかがリアルタイムで見れるマップ。Wikipediaは約1割強の編集が匿名ユーザによっておこなわれており、ここではそのIPアドレスから位置を算出している。(登録ユーザによる編集はここには現れない。) https://t.co/H7wAkok1Rj」 / Twitter
- Hatnote Recent Changes Map
- Wikipedia:保護依頼 - Wikipedia
サンライズ出雲・瀬戸
鉄道
- JR四国、スマホが切符になる「しこくスマートえきちゃん」 - Impress Watch
- 佐川駅 - Wikipedia
- 佐川文庫庫舎(旧青山文庫) | さかわのしおり[オフィシャル]さかわ観光協会
- 「うえまち駅」がオープンしました! | さかわのしおり[オフィシャル]さかわ観光協会
- 予土線 - Wikipedia
- 務田駅 - Wikipedia
- 近永駅 - Wikipedia
- 家地川駅 - Wikipedia
- 川奥信号場 - Wikipedia
- 補充券 - Wikipedia
- 伊予若宮信号場 - Wikipedia
- 牟岐線 - Wikipedia
- どーらくさんはTwitterを使っています 「大歩危駅周辺。険しい山の頂上付近に人家が多いのは、まだ鉄道や道路がなかった頃、人々は山の尾根伝いに移動していた時の名残り。 現代ではそれが逆に不便になってしまった。 https://t.co/V5iEH5ljkY」 / Twitter
- うずしお (列車) - Wikipedia
- むろと (列車) - Wikipedia
- 剣山 (列車) - Wikipedia
- しまんと (列車) - Wikipedia
- 南風 (列車) - Wikipedia
- あしずり (列車) - Wikipedia
- 宇和海 (列車) - Wikipedia
- 国鉄キハ185系気動車 - Wikipedia
- JR四国2000系気動車 - Wikipedia
- JR四国2600系気動車 - Wikipedia
- JR四国2700系気動車 - Wikipedia
- 踏切ないのにカン カン…なぜ警報機が? 予告信号ならぬ激レア物件「予告警報機」とは | 乗りものニュース
バス
- 四国カルスト - Wikipedia
- 松山高知急行線 - Wikipedia
- 久万高原町営バス - Wikipedia
- 久万高原町 - Wikipedia
- 仁淀川町 - Wikipedia
- 越知町 - Wikipedia
- 佐川駅 - Wikipedia
- 佐川文庫庫舎(旧青山文庫) | さかわのしおり[オフィシャル]さかわ観光協会
- 「うえまち駅」がオープンしました! | さかわのしおり[オフィシャル]さかわ観光協会
- 大栃線 - Wikipedia
- ジェイアール四国バス - Wikipedia
- ドリーム号 (東京 - 四国) - Wikipedia
- 松山エクスプレス号 - Wikipedia
- 高知エクスプレス号 - Wikipedia
- 大阪 - 高松線 - Wikipedia
- 高速バス運行状況のお知らせ
- 久万高原線(路線バス)|高速バス・路線バス「JR四国バス」公式サイト
- 路線一覧|高速バス・路線バス「JR四国バス」公式サイト
- JR西、ネット予約「e5489」刷新 ログイン不要・WESTER連携 - Impress Watch
- JR西日本 Club J-WEST 会員サポート
- お問い合わせ、ご意見・ご要望:JRおでかけネット
- お受け取り方法│e5489ご利用ガイド:JRおでかけネット
- 【検証】e5489で予約したサンライズのきっぷを東京駅で受け取る方法 - toremorの旅手帳
- WEST EXPRESS 銀河:JRおでかけネット
- えきねっと、サンライズ出雲・瀬戸の「ノビノビ座席」取扱開始 7月1日から - TRAICY(トライシー)
- 寝台特急「サンライズ」は寝られるのか? 雑魚寝からA寝台まで「寝比べ」 わずか5cmで大違い | 乗りものニュース
- 盛況な寝台特急「サンライズ」後継車両はまだか “儲かる列車”に変えるための提言 | 乗りものニュース
- “サンライズ”より豪華だった? 寝台特急「瀬戸」人気列車の50年 「出雲」との出会いは | 乗りものニュース
- 株主優待が「e5489」で適用OKに! 23年7月から 料金券は片道4列車まで JR西日本 | 乗りものニュース
- サンライズ出雲 - Wikipedia
- サンライズ瀬戸 - Wikipedia
- JR西日本285系電車 - Wikipedia
- 列車集中制御装置 - Wikipedia
- JR北海道の車両形式 - Wikipedia
- JR東日本の車両形式 - Wikipedia
- JR東海の車両形式 - Wikipedia
- JR西日本の車両形式 - Wikipedia
- JR四国の車両形式 - Wikipedia
- JR九州の車両形式 - Wikipedia
- ループ線 - Wikipedia
- 高崎線にE257系特急投入 自由席全廃 2023年3月以降は「草津・四万」&「あかぎ」 | 乗りものニュース
- ひたち (列車) - Wikipedia
- 大回り乗車で常磐線特急(ときわ・ひたち)に乗ってみよう | 関東大回り乗車の旅
- 常磐線特急「ひたち」「ときわ」 かんたんご利用ガイド - hitachi_tokiwa.pdf
- 利用可能エリア|Suica:JR東日本
- おトクなきっぷ:JR東日本
- お値段 | タッチでGo!新幹線:JR東日本
- 大崎支線 - Wikipedia
- 鶴見線 - Wikipedia
- 浜川崎駅 - Wikipedia
- 一般路線バス運行情報 | ジェイアールバス関東
- 一般路線バス時刻表・路線図 | ジェイアールバス関東
- バス情報|関東鉄道|地域のふれあいパートナー
- ジェイアールバス関東 - Wikipedia
- ジェイアールバス関東土浦支店 - Wikipedia
雑誌
その他
bit
- コンピュータサイエンス誌「bit」、1969年の創刊号から全386巻が電子復刻版としてAmazon Kindleで販売開始。1冊わずか198円 - Publickey
- 共立出版 コンピュータサイエンス誌『bit』
- bit | TechMag
- #:g1: 祝bit電子復刻 & bitのLisp記事まとめ
- 【楽天市場】jtb時刻表(本・雑誌・コミック)の通販
- Amazon.co.jp: JTB時刻表
- Amazon.co.jp: JR時刻表
- DOS/V POWER REPORT (1 / 3) - インプレスブックス - 本、雑誌と関連Webサービス
- 東京都立図書館
- 千葉県立図書館トップページ
- 図書館カレンダー:蔵書検索システム
- Tulips Search
- コンピュータソフトウェア | 岩波書店. | 雑誌/定期購読の予約はFujisan
- 情報処理 38%OFF | 情報処理学会 | 雑誌/電子書籍/定期購読の予約はFujisan
- 情報学広場利用方法(個人用)-情報処理学会
- 巻頭コラム-情報処理学会
- micomBASIC Magazine : Free Texts : Free Download, Borrow and Streaming : Internet Archive
ラジコン
- ラジコンマガジン | バックナンバー | 八重洲出版 公式サイト
- 電波社 / ラジコン技術
- ラジコン天国 土浦店/ようこそ!ラジ天土浦のページへ!
- つくばラジコンパーク | 世界最大級!ラジコンのテーマパーク
- TOPICS - ラジコンカー・RCカーのヨコモ/YOKOMO 公式サイト
- ラジオコントロールカー京商公式サイト | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
- IMPORTANT INFORMATION 重要なお知らせ | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
- WHAT'S NEW | 京商 | RC | Radio Control | ラジオコントロール | ラジコン
- NEWS&TOPICS一覧 | タミヤ
- 新着情報 | 双葉電子工業株式会社 ラジオコントロール
- SANWA
- ニュースリリース|マブチモーター株式会社
- RCK 一般財団法人 日本ラジコン電波安全協会
- Interface – CQ出版
- Software Design バックナンバー|gihyo.jp … 技術評論社
- WEB+DB PRESS バックナンバー|gihyo.jp … 技術評論社
- 検索結果|日本評論社
- 数理科学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 書誌検索 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 書誌検索 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 青土社 ||現代思想:2022年一覧
- 学会誌 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- コンピュータ ソフトウェア
- 「情報処理」オンライン 総目次一覧-情報処理学会
- 『TRONWARE』TRON & IoT 技術情報マガジン - パーソナルメディア書籍サイト
- Japan Military Review「軍事研究」
- イカロス出版オンライン書店 | 商品リスト
食品
その他
- マガジン9条〜40歳からの機動戦士ガンダム【第7回】〜
- ご利用可能なお支払方法|セブン‐イレブン~近くて便利~
- 利用できるお支払方法|ローソン公式サイト
自作
Amazon
容器・消耗品等
- Amazon.co.jp : 【Amazon.co.jp限定】 3M スポンジ キッチン キズつけない 抗菌 スクラブドット清潔 オレンジ 3個 スコッチブライト SDS-02KE-3P : ホーム&キッチン
- Amazon | アイリスオーヤマ ホットプレート 温度調節 着脱式 丸型 IHP-C320-B | アイリスオーヤマ(IRIS OHYAMA) | ホットプレート 通販
- Amazon.co.jp : 曙産業 返しヘラ 黒 2本組 日本製 ワイドサイズで返しやすい カットもラクラク フッ素加工をキズ付けにくい ホットプレートに最適 お好み返し二刀流 HS-269 : ホーム&キッチン
- Amazon | アイリスオーヤマ ホームベーカリー 1斤・2斤対応 選べる19メニュー レシピ付き パン 生地 ジャム 米粉パン ピザ 餅つき機 うどん ブラック IBM-020-B | アイリスオーヤマ(IRIS OHYAMA) | ホームベーカリー 通販
- Amazon.co.jp : タニタ クッキングスケール キッチン はかり 料理 デジタル 1kg 1g単位 ホワイト KD-187 WH : ホーム&キッチン
- Amazon|イワキ プリンカップ150ml KBT905[シリコン蓋付6個セット] (ブラウン)|ゼリー型 オンライン通販
- Amazon|iwaki(イワキ) 耐熱ガラス ボウル 丸型 外径25cm 2.5L KBC325|ボール オンライン通販
- Amazon | [Amazonブランド]Happy Belly パックご飯 新潟県産こしひかり 200g×20個(白米) 特別栽培米 [Amazonブランド] | Happy Belly (ハッピーベリー) | 食品・飲料・お酒 通販
- Amazon | ネスカフェ ゴールドブレンド エコ&シス 2コパック(95g×2) | ネスカフェ RSC | 食品・飲料・お酒 通販
- Amazon | ネスカフェ ゴールドブレンド 120g | ネスカフェ RSC | 食品・飲料・お酒 通販
- Amazon | マルハニチロ ゼライス13P 65g×5個 | マルハ | ゼラチン 通販
- Amazon | サラヤ ラカント ホワイト 1kg 砂糖 | ラカント | 砂糖・甘味料・製菓シロップ 通販
- Amazon | MCTオイル 360g / フラット・クラフト / ココナッツ由来100% / 中鎖脂肪酸100% | フラット・クラフト | ココナッツオイル 通販
- Amazon | 波里 お米の粉 薄力粉 1kg | 波里 | 米粉 通販
- Amazon | バニラエッセンス 28ml /共立(1個) | 共立食品 | 製菓・製パン材料 通販
- Amazon | ロイヤル ベーキングパウダー 450g | 鈴商 | ベーキングパウダー 通販
- Amazon | 日清フーズ 強力粉 1kg ×5袋 | 小麦粉(薄力粉・中力粉) | 小麦粉 通販
- Amazon | [Amazon限定ブランド] BAKING MASTER ドライイースト 赤 3g×30袋 | BAKING MASTER(ベーキングマスター) | ドライイースト 通販
- ゼライスで作る牛乳プリン by クック0I4B8Y☆ 【クックパッド】 簡単おいしいみんなのレシピが377万品
- 米粉100%ふわふわパンケーキ by arihopuko 【クックパッド】 簡単おいしいみんなのレシピが377万品
- トースターでできる!簡単米粉のクッキーの作り方。 | ゆうすぺーす
- MCTオイルにも副作用がある?初心者が安心して使う方法とは? | 仙台勝山館ココイル
- MCTオイルは料理に使える?加熱して大丈夫?OK例NG例を紹介
Wikipedia
- わかさいも - Wikipedia
その他
- 甲府駅 - Wikipedia
- 真鶴駅 - Wikipedia
- 湯河原駅 - Wikipedia
- 武生駅 - Wikipedia
- 敦賀駅 - Wikipedia
- 燕三条駅 - Wikipedia
- 水沢江刺駅 - Wikipedia
- 新花巻駅 - Wikipedia
- いわて沼宮内駅 - Wikipedia
- 二戸駅 - Wikipedia
- 徳山駅 - Wikipedia
- 新玉名駅 - Wikipedia
- 長崎駅 - Wikipedia
- 諫早駅 - Wikipedia
- 武雄温泉駅 - Wikipedia
- 中村駅 - Wikipedia
- 中村駅・こだわりの四万十うなぎ弁当 | 中国・四国地方の駅弁
JR 時刻表 単独掲載
- 池田駅 (北海道) - Wikipedia
- 新庄駅 - Wikipedia
- 赤湯駅 - Wikipedia
- 湯本駅 - Wikipedia
- 勝田駅 - Wikipedia
- 国府津駅 - Wikipedia
- 津和野駅 - Wikipedia
休廃止
北海道
- 室蘭駅 - Wikipedia
- 東室蘭駅 - Wikipedia
- 母恋駅 - Wikipedia
- 静内駅 - Wikipedia
東北
- 東能代駅 - Wikipedia
- 七戸十和田駅 - Wikipedia
- 北上駅 - Wikipedia
- 福島駅 (福島県) - Wikipedia
- 原ノ町駅 - Wikipedia
九州
- 長崎駅 - Wikipedia
- 吉松駅 - Wikipedia
- 川内駅 (鹿児島県) - Wikipedia
- 平塚駅 - Wikipedia
- 富士駅 - Wikipedia
- 清里駅 - Wikipedia
- 敦賀駅 - Wikipedia
- 高岡駅 - Wikipedia
- 紀伊勝浦駅 - Wikipedia
- 大洗駅 - Wikipedia
- 浅草駅 - Wikipedia
- 北千住駅 - Wikipedia
- 糸魚川駅 - Wikipedia
- 熊谷駅 - Wikipedia
- 佐久平駅 - Wikipedia
- 上田駅 - Wikipedia
- 新下関駅 - Wikipedia
- 浜坂駅 - Wikipedia
- 土浦駅 - Wikipedia
- 熊本駅 - Wikipedia
- 人吉駅 - Wikipedia
- 草津駅 (滋賀県) - Wikipedia
- 品川駅 - Wikipedia
- 東京駅 - Wikipedia
- 上野駅 - Wikipedia
- 水戸駅 - Wikipedia
- 軽井沢駅 - Wikipedia
- 神尾弁当 神尾弁当 新潟県新津駅の駅弁
- 富山県の名産「ますのすし本舗 源」の公式通販サイト
- 投稿 | 淡路屋
- 米田茶店 かに寿し - 【お弁当の淡路屋】全国配送 ONLINE SHOP
- お知らせ | 株式会社アベ鳥取堂
- お好みかに寿し | 株式会社アベ鳥取堂
- 東海道新幹線の旅を彩る「あれこれ」を通販で|JRCPオンラインショップ
- 【カステラの文明堂】WEBサイト&オンラインショップ
- わかさいも本舗オンラインショップ
- 〈公式〉六花亭オンラインショップ
- 元祖レイズン・ウイッチ|巴裡 小川軒 新橋・目黒 オンラインショップ【公式通販】
- ガトーレーズンFS | 商品情報 | ブルボン
- 雲丹 うにの通販・お取り寄せ‐豊洲市場ドットコム
- 日清食品グループ オンラインストア
Doc
- DeepL翻訳
- Readable
- お試し翻訳|AI自動翻訳『みらい翻訳』
- Google 検索オプション
- Google Scholar
- Search Console - ホーム
- Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
- Mathpedia
- 数学特化の情報共有サービス | Mathlog
- 【無料】PDFをWordに変換 - Adobe 公式 | Adobe Acrobat
- LibreOffice Writer のショートカットキー - LibreOffice Help
その他
その他
その他
その他
- no100
- 情報ではなく経験をアウトプットすること - lacolaco
- The Rise of "Worse is Better"
- 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
- 技術的負債とステークホルダと説明責任と / The Debt - Speaker Deck
- 何人いれば適切なの?:学術知と政策とテクノクラート - Take a Risk:林岳彦の研究メモ
- 人と同じものを作る - necobut 1週間遅れ日誌
- 松田未来 12/31冬コミ東マー05a TEAM FirebirdさんはTwitterを使っています 「「本当の多様性社会はそれなりに不愉快」 これを認めるところから、ポリティカル・コレクトネスの理解は始まるのではなかろうか。ありもしないグレー単色のユートピアではなく。 ここでも「寛容」が問われている。」 / Twitter
- ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
- Shiro KawaiさんはTwitterを使っています 「初期の恐れを乗り越える、Paulが挙げてない手法のひとつがあって、それは「ノルマを自分で決めてしまう」、例えば1日ひとつづつ何か作る、というのをしばらく続けるのは一定の効果があると思う。うまくできなくてもとにかく今日の分を上げないとならない、と言い訳できる。 https://t.co/AB5mfvCc4N」 / Twitter
- Early Work
- 伊津野 英克さんはTwitterを使っています 「普通に面白い。ビッグバンが点じゃないとか、ビッグバンと宇宙の始まりは違うとか、結構知らないことが出てくる https://t.co/D1oB15LzHt」 / Twitter
- 宇宙は物理法則に従っている Our universe is dictated by the laws of physics | UTokyo OpenCourseWare
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「伊達や酔狂に即時的利益を求めたらそりゃ無粋ってもんだよ。伊達も酔狂も一生かけて味わうもんだ。」 / Twitter
- ドリヤス工場さんはTwitterを使っています 「映画版に対してテレビ版を「アニメ」と呼ぶ人が増えたのと似たようで似てない話ではあるが、最近は「世界線」という言葉の使われ方が気になる。昔の作品の家電話や公衆電話が出てくるシーンに対し「携帯電話のない世界線」という言い方を見かけて、いやそれは単に過去なだけやんと思うのだが。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「期待値」みたいだよね。「期待」に「値」を付けただけ、みたいに「世界」に「線」を付けただけ、みたいな。本当はそれぞれ意味が違うのに >RT」 / Twitter
- 酒居敬一さんはTwitterを使っています 「広島焼で盛り上がってるのか。 偏執狂がちらほらいるけど、よその地域の創作料理をとうやかく言うてもしょうがないと思うが。アメリカンコーヒーとか台湾ラーメンとかナポリタンとか、由来のよくわからん定義もよくわからんものは世の中にいっぱいあると思うよ。」 / Twitter
- 酒居敬一さんはTwitterを使っています 「それよりも、御座候でも回転焼きでも今川焼でもない、特定の地域の物を指すことがない一般的な名詞をだれか発明してほしい。御座候とそれ以外を区別したいときに、それ以外を表す名詞が欲しい。」 / Twitter
- نۇرمۇقەددەسさん (@muqeddes100) / Twitter
- 在日ウクライナ大使館さんはTwitterを使っています 「今朝未明(ウクライナ時間)、プーチンがウクライナに対して大規模の戦争を始めました。ウクライナの複数の都市に空爆が続いています。これは侵略戦争です。ウクライナは戦って、勝ちます。世界はプーチンを止めなければなりません。行動するタイミングは今です。」 / Twitter
- 駐日ジョージア大使 ティムラズ・レジャバさんはTwitterを使っています: 「日本の多くの方に「ジョージア」という呼び方が定着していることを嬉しく思います。一方で日本での呼び方をグルジアからジョージアに改めてから日が浅いため、まだ慣れない方はよろしくお願いします。 蛇足ですがジョージアでは自分達の国を「საქართველოサカルトヴェロ」と呼びます。」 / Twitter
- Munechika NishidaさんはTwitterを使っています: 「「デジタルなんて残せない。すぐ消える」のはその通りなんだけれど、ちゃんと管理されてないと紙だって持たないし、フィルムもビネガー化するし、石板だって風化する。重要なのは「残す意志と環境」の方ではないか。その上で残しやすい順序はある。」 / Twitter
- テラ (Teller)さんはTwitterを使っています: 「@mnishi41 負への布石を唱えるのは簡単ですからね。何事もマイナスに転じるのは簡単で、プラスを積み上げることは大変で、マイナスと同等にすぐプラスになると思ってはいけませんね。現場猫がいっぱいいたら、マイナスから始まっているかもしれませんし。」 / Twitter
- (0)市川 真一にマシュマロを投げる | マシュマロ
- なるべく手作業を避けて動画資料を作る - YouTube
- 技術情報の調べ方 | フューチャー技術ブログ
- 国立国会図書館サーチ(NDL Search)
- Libreoffice Writer ページ移動:ubuntu & LibreOffice:So-netブログ
- Text to Speech | Microsoft Azure
- ビジネスインテリジェンスおよび分析ソフトウェア
- Overleaf, オンラインLaTeXエディター
- ドット絵エディター
- Crypko
- Skeb - Request Box
- Mozillaが有料サービス「MDN Plus」を正式発表、月額5ドルから | OSDN Magazine
- docin.com豆丁网-分享文档 发现价值
- Unified fj NetNews archive
- ancientfj Japanese USENET archive : Free Download, Borrow, and Streaming : Internet Archive
- 全国道路構造物マップシリーズについて(概要、利用上の注意点) | 全国Q地図(旧・九州Q地図)
- 「飲食店の制限だけでは1ヶ月で感染者は減らない」 8割おじさんが厚労省“非公開”のシミュレーションを公開
- 緊急事態宣言が効果を上げるか鍵を握る2つの変化 8割おじさんを悩ませる変数
- 「スペースコブラ」1話~10話
- ダム Advent Calendar 2020 - Adventar
- 足尾砂防堰堤 | ponkotuy-blog
- 学会の役割:難しい評価をすること
- 科研費の話
note
- 小池都知事のアラビア語力をどう評価したらいいのかわからない方へ|jaber|note
- 食品ロスは「安全余裕」|shinshinohara|note
- 表現者のために、抽象的なことを|山口尚|note
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256 今読んだこの記事良いです。この記事で言う「ブラックボックス化」というのを意識すると,オリジナルのコンセプトにフォーカスできます。 https://t.co/8ZCiSB9QGW」 / Twitter
- 才能ない人を観察してどうやったらできるようになるか考えてみた|牛尾 剛|note
GIGAZINE
- AIやロボットを導入した企業はむしろ雇用が増えるという研究結果 - GIGAZINE
- 世界中で利用される「D3.js」の開発者が10年間で学んだこととは? - GIGAZINE
- 過去20年間のテクノロジーの進歩を分析して得られた8つの教訓とは? - GIGAZINE
文化盗用
- Shiro KawaiさんはTwitterを使っています 「本来の「文化盗用」は、例えば「企業や公共団体が『日本文化に触れ合いましょう』という人寄せイベントで着付け教室やってるけど誰も詳しいこと知らないし知る熱意もなく、出鱈目な着付けや、下手すると韓国や中国の文化まで混ぜて教えてる」みたいな状況を肯定する社会への抗議のためにあります」 / Twitter
- 小森健太朗@相撲ミステリの人さんはTwitterを使っています 「アメリカには「白人は着物を着るな」「白人は書道するな」という文化盗用警察みたいなのが結構いるらしいが、それって彼らが劣位とみなす有色人種の文化を白人に嗜ませないことであって、差別反対を掲げつつの実態が差別的行為にあたるのでは。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「日本にゆかりのない人がやってても造詣が深い人だったりちゃんとリスペクトして色々調べてやってるなら問題ないですし、個人が楽しみのためにやるのを責めるものでもない。あくまで「リスペクトなしで利用だけしてやろう」という態度の問題。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「話がややこしくなった要因のひとつはSNSじゃないかと思ってて、個人の「インフルエンサー」がアクセス稼ぎのために物珍しい文化の表層だけを利用する、ってことがあると個人の楽しみを越えた影響があるんじゃないの、って考える人が増えてきたんじゃないかと。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ただ、そのせいで「文化盗用警察」が増えても不自由になるばかり。社会の無関心という無自覚な暴力に対抗するという本来の役割の重要性は無くなってないはずなんですが。」 / Twitter
過剰な変更労力
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「便利な rc.local をパージとか、潔癖 or 原理主義による大きなお世話な変更のたぐい、ロートルな私は閉口すること多いなぁ。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「めんどくさくて、なんでも rc.local に書いちゃうクラスタです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この件に限らず、潔癖/原理主義者は変更労力を惜しまないが、使えれば良い多数派は「消極的反対だけど、抵抗するのもダルい」という立場。 その非対称性によって、前者が現状を侵食する構造は多くの社会事象に見られる気がする。」 / Twitter
間違った情報の拡散
- LillianさんはTwitterを使っています 「分かっている人間が悪意で嘘をつくより、間違った理解をした不勉強な人間が情報を拡散しようとするのが、結果としては最も広範囲に害を及ぼすと思ってます。 本人は誠実な態度で、有益な情報を広めたいと思っているので、聞いた人が間違っていることを見抜けずに信じてしまう可能性が高いんですよね。」 / Twitter
- mumumuさんはTwitterを使っています 「うぅ…すみません…」 / Twitter
- mumumuさんはTwitterを使っています 「自分のことを棚上げすると、若者向けイベントとかで「アウトプットが大事」って主張するときに、同時にこれも説明すべきだと思う」 / Twitter
- mumumuさんはTwitterを使っています 「お前は間違った情報をアウトプットしとらんのか?→すみません…」 / Twitter
- mumumuさんはTwitterを使っています 「Qiitaのクソ記事を許さない会」 / Twitter
老害
- 7594591200220899443さんはTwitterを使っています 「たとえばgitを捨てられない人はgitにしがみつくしかなくなるし、そうなったらもはや老害に片足突っ込んだも同じである。今、我々が当たり前のように使っているgithub、newrelic、heroku、それらより良いものに明日、乗り換えられるか?常に新しいものを取り込んでいるか?」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「若者の足を引っ張る老害がいるのは事実だし対策も必要だが、過去の経験から言うと別にそれは老害自身が手遅れだからかどうかとはあまり関係ないと感じる。立派に成功した人や教育者にも老害はいた。手遅れだけ分断すれば万事解決という立場には与しがたい。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「@shyouhei 「Xした方が良い」は、それですべての問題が解決するという主張ではありません。「Xすれば万事解決」とは主張していないので、与しがたいという意見には同意します。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@nishio はい。まあ若者に近付こうとする大人がそもそも全員ダメという可能性も自分としては感じるので、そういう方向性の主張の一部としてであれば割と納得できます。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「そういう人は若者が成功しそうになると嫉妬して足を引っ張って「俺が助けなければこいつはダメなんだ」という構図を作ろうとするから、若者のことを最優先で考えるならそういう人を近づけてはいけない」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「環境が違えば俺だってもっといい人生を送れたはずみたいに思ってる人はどうせお前らの人生なんかもう手遅れなんだからそれよりまだ今救えば間に合う若者の人生をどう救っていくかの方を真剣に考えなよ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「むしろ我々だよ。若者が真に警戒すべきなのはさ。過去に他人に足を引っ張られてきた自覚がある我々。そういう経験が目を曇らせるんだ。「自分の経験が他人にも通用すると勘違いする」ってのが老害の構造なわけじゃん。そこ自分でも最近怖いよ。やっちまってないかな?っていうの。」 / Twitter
時代遅れ
- 7594591200220899443さんはTwitterを使っています 「「まったく同じシステムをPerlやらRubyやらで作るとJavaで作った時の10分の1とかの工数でも余裕で作れる」はさすがに十年前にはすでに鼻で笑われてたような主張で、今更言う人がいる事にそもそも衝撃を受けましたね。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Bruce TateのFrom Java to Rubyが原著2006年とかだもんねえ。まあ十年前にはもう賞味期限切れてたよね。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「プログラマーは業務の他にずっと勉強していないと時代に取り残される、のだとしても、別に時代遅れだったからといって即死するわけではないのだなあ。なるほどなあ。」 / Twitter
テレビ
- 岡田龍太郎/クーロンさんはTwitterを使っています 「チコちゃんに叱られる、で出てくる知識が不正確かどうかは正直あんまり気にならなくて、「知識がないと叱られる」という精神性がものすごく嫌い。」 / Twitter
- 岡田龍太郎/クーロンさんはTwitterを使っています 「番組のためににわか仕込みで大して重要でもない知識を一つ身につけては、それを知らない人にマウントを取る、という構図、醜すぎるだろと思いますね。」 / Twitter
- 岡田龍太郎/クーロンさんはTwitterを使っています 「まあでも個人的には「モニタリング」に比べると全然見られる。」 / Twitter
- セイラマスの名言セリフ集!意外なその後(最期)や名前の由来と歴代声優も | BEYOND THE GUNDAM(ビヨガン)
- Shiro KawaiさんはTwitterを使っています 「注意点は、ある程度慣れると惰性で量産できる段階に達して、そうなってくると効果が薄れるから、ゴールを設定しなおさないとならない。」 / Twitter
- Vさんのツイート: "そういえばこの間「インターネットで作り上げた自分」と「実際の自分」の技術力の差がすごいあって色々辛い人が存在するという話を聞いた。"
- Shinya KatoさんはTwitterを使っています: 「最近思うんだけど「目標を達成するためのロードマップを描くために必要な情報を集める」ってだけで十分な成果だよなぁって」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「手順は言語化しやすく検索もしやすい。インターネットで公開されていう記事にコンピューターの分野が多いのは、コンピューターを扱っている人が書き手として多いからだけでなく、コンピューターに関する課題には「手順が分かればなんとかなる」ようなものが多いからかもしれない。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「検索エンジンからの流入という「読み手が能動的に情報を取りに行く世界における記事」の話なので、SNSのような世界における書き手には適用できないか。SNSで多いのは何と言っても時事を含むネタだしな…。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「前々職時代、「このコードなんでこうなってるんだろう意味わからん」と思ってgit blameしたら「なんとかを追加」みたいなコメントしかない超でかビッグバンコミットだったんでよく前任者を恨んだけど、ここ数年、新しいものを作るのが主になった今は気持ちがとてもわかる😰」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幸いその「ここ数年」に私が書いたコードの大半は私しか触っていないので大きな問題はない😅」 / Twitter
- 首相官邸さんはTwitterを使っています 「2050年カーボンニュートラルへの挑戦は、日本の新たな成長戦略です。この挑戦を産業構造や経済社会の発展につなげ、経済と環境の好循環を生み出していきたいと思います。 温暖化対策推進本部を開催し、全閣僚に対し、「地球温暖化対策計画」などの見直しを加速するよう指示しました。 https://t.co/YdH3a31Vwt」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ソフトウェアエンジニアリングといっても分野が広いので、僕は検索チームとかではあんまり活躍できなかったわ。小気味よく動くものをチョロっと作るみたいなのは得意だけど、データサイエンスっぽいのはいまいちだし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「世の中実際、銀の弾丸で勝つんじゃなくて、ほとんどは、やるべきことを全部着実にこなして失敗しなかった人が勝つイメージ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たまたまだけど CPU にせよ何らかのシステム設計に関してもそうなんじゃないの、というか、コンピュータエンジニアってだいたいアムダールの法則なんてだいっきらいだーーーーー わーーーーーんん」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「機械(データ処理)による判断は画一的で結果に偏りが生じて外れ値となった人間の尊厳が阻害されるというのが1970年代の懸念で、データ保護法につながった。 奥平康弘・戸松秀典「国連事務総長報告書(抄)人権と科学技術の開発」ジュリスト 589号(有斐閣, 1975.6.15)105頁 https://t.co/oTXNOfJ7eM」 / Twitter
- Atsushi Oshio / 小塩真司さんはTwitterを使っています 「推薦試験の面接も同じで,受け答えを人間が判断しているだけですよね。その回答と退学に本当に関連があって,そのデータを人間が学習するか機械が学習すれば予測に使えます。人間の場合「こういう受け答えをする受験生は退学するんだよね」みたいな曖昧な直感になり,機械に学習させると確率を出す。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラマの間でよく語られる「法則」の一覧。後の方になると法則というより (SOLID、DRY、KISSなど) 原則っぽくなるけど、あなたはいくつ知ってる? 個人的に Cunningham's Law (「ネット上で正解を得るには、間違った答えを投稿すべし」) は初めて知った。いつか試そう。 https://t.co/kDAkmSh31Q」 / Twitter
- dwmkerr/hacker-laws: 💻📖 Laws, Theories, Principles and Patterns that developers will find useful. #hackerlaws
blog サービス
- Crieit - プログラマー、クリエイターが何でも気軽に書けるコミュニティ
- Zenn|プログラマーのための情報共有コミュニティ
- note ――つくる、つながる、とどける。
- DEV Community 👩💻👨💻
- Hashnode: A one-stop platform to start blogging as a developer.
- Medium – Get smarter about what matters to you.
企業
JR
- やわたじさんはTwitterを使っています 「流石に見に来たわ https://t.co/16Y9asS3gO」 / Twitter
- やわたじさんはTwitterを使っています 「WEST EXPRESS銀河一番列車 京都31番入線 https://t.co/nUhJoCxGZG」 / Twitter
人事
- Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「伝統的日本企業で、なぜ博士より、無知で無垢な若者の方が好まれるのか。それは年功序列の社内身分制度を前提にしているから。新入り<先輩、という不等式が成り立たないと秩序が乱れる。この不等式は、ビジネス上の市場価値とは無関係で、会社の村社会の秩序だけから来ている。それが問題。」 / Twitter
- Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「なぜ問題なのか。市場価値より村社会の秩序が優先されるような会社は(国は)、長期的に見て、必ず市場競争に負け、淘汰されるから。それこそ現に日本で起こりつつあること。死にたくなければ、既得権益死守勢力には退場願うしかない。企業はもちろん大学でもそうだよ。」 / Twitter
- 「給与で会社を選ぶ人とは働きたくない」 人事担当の投稿が物議 “実名アカウント”の炎上リスク浮き彫りに(1/3 ページ) - ITmedia ビジネスオンライン
- Makoto Kato ︎︎さんはTwitterを使っています: 「外資だってICがManagerになったとたん、Specialtyがとある分野のEngineeringからManagementになって、自分がよく知らない分野のManagerになるはめになるのを見るので、見当違いの別のチームの管理職へローテーションされるのはどの国でもあることだよ」 / Twitter
- 「ヨーロッパの人も見習ったほうがいい」フェルスタッペンも認める、ホンダを成功に導いた日本特有の“集団主義”とは - F1 - Number Web - ナンバー
外資
- とっとと噛む太郎さんはTwitterを使っています 「あー、あと外資と日本企業の決定的な違いは、現場で出来る人を「管理職」にしない、ってことかな。 エンジニアとして優秀だからって、人のマネジメントが上手いとは限らないじゃん。 日本企業って、管理職にしたがるっていうか、そうしないと給与を上げられない仕組みだったりするでしょ。」 / Twitter
- とっとと噛む太郎さんはTwitterを使っています 「外資だと、IC、Individual Contributor、つまり「ヒラ」でも、1,000万、2,000万って珍しくないんじゃない?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「外資は優秀なICがマネージャにさせられないと思うじゃないですか?外資だって今のマネージャ候補よりもチームにいる優秀なICをマネージャにした方がマシと思ったら、その人がマネージャにならざるをえない状況になるんですよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「自分がいたチーム、マネージャは全員チーム内の元ICだし、自分もマネージャになりたいなんて一言も言ったことなかったのに、外堀埋められてらマネージャにならざるをえない状況になったけどな。いたチームはUSのチームとの連携をふくめ特殊事情が多かったからというのもある」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「外資の一番の違いはマネージャからICへ戻るパスがあるということと、給料がマネージャよりもICの方が高いかもしれないだけ。自分がマネージャの時にICでももっと給料を上げられる施策をHRと組んで実行してたけど」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ただ実際マネージャからICに戻るか言えば、元のチームに戻るという事例は半分ないくらいかな?大概別へチーム移籍」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「もし自分会社に残る選択してたら、HQへ転籍しかありえなかったなぁ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「マネージャはICとは別の問題解決能力を問われるので、やったらやったで面白いロールではあった。ただ忍耐力は相当問われるから覚悟を決めてやるべき仕事」 / Twitter
企業文化
- Shinji KonoさんはTwitterを使っています 「この「これも自動化できるのではないか」ってのはTeal的な自律組織の特徴なんだよな。昔の日本な中小企業には普通にあった。破壊した人たちがいるんだよな。 https://t.co/wvJCNarQXe」 / Twitter
- 業務ハックしてクビにならないために|ふらふら|note
- エンジニアに独学を期待するのはもう時代遅れだと思う。 - ヨーロッパで働くIT土方社長のブログ
- Shinji KonoさんはTwitterを使っています 「経済止めてまでっていうけど、特に生活必需品には困ってないじゃん。 今までの消費競争とか無意味な仕事や通勤 がおかしかったってことでしょ。」 / Twitter
- ところてんさんはTwitterを使っています 「結局のところ、DXがわけわからん概念になっているのは、 経産省が2025年の崖レポートで、日本固有の問題をDXの一部だとしてしまったがために、グローバルにおけるDXの定義と、日本のDXの定義がズレてしまっていることにある なので、これを紐解いてあげると簡単な概念になる https://t.co/LyrKVA70bN https://t.co/MJfEGFN8J3」 / Twitter
- きしもとさんはTwitterを使っています 「ここから導き出される結論は、「IT業界」とはソフトウェア科学的な判断とは遊離した謎の予言だけをしてその予言の後始末さえしていないらしい、どこかにあるらしい謎の業界のことを指すらしい、ってことですよね」 / Twitter
- 備玉(36.7℃)さんはTwitterを使っています 「15年前にIT業界で言われてたこと ・開発はGUIベースになりコードは無くなりプログラマは不要になる 10年前にIT業界で言われてたこと ・ITはアジアにオフショアされ国内のプログラマは不要になる 5年前にIT業界で言われてたこと ・AIがコードを書くのでプログラマは不要になる」 / Twitter
- 成瀬さんはTwitterを使っています 「「プログラマ不要!」ってのをひっくり返すと「プログラマは不足してない!」になるわけですが、そう捉えるとΣプロジェクトの「1990年代にはプログラマが60万人不足する!」を思い出しますね」 / Twitter
- DXを妨げる要因と実現へのアプローチ / 20211022 - Speaker Deck
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「時々、技術者や技術系マネージャが勘違いしているのは「技術力」の意味。技術力というのは多くの技術を知っているかとか適用できるかとかじゃなくて、自分が知らない技術を学ぶ能力や、まだ存在しない技術を生み出す能力のことなので。ここを間違った「技術力が足りない」が多すぎるんですよこの業界。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「技術者をタコ部屋に押し込んで外界から遮断して仕事させたって技術力なんて身につかない。自組織の技術力を上げたかったら、仕事への当事者意識を持てる仕組みをつくって、十分に時間やリソースに余裕を持たせ、自己裁量で動ける環境や文化が必要なんですよ。エントロピーのない技術組織に未来はない。」 / Twitter
- 「無制限有給休暇制度」を導入した背景 | Autify Blog
CTO
- Keiji ARIYAMAさんはTwitterを使っています 「日本CTO協会の件、業界として政治に関わろうとする姿勢はとても良いと思うので、ぼくは今回の取り組みを応援しています。 また、この業界は、誰かの初手がイマイチだった時に厳しく当たりすぎるきらいがあるのは本当に改善した方がいい(Remember COCOA)と思っている。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「話題の提言をなんとなく読み始めたんだけど、「ITサービスで最初から完璧は不可能だからまずは最低限のベータ版を素早く利用者に届ける」という前提と、「技術的負債を生み出さぬようにしなければならない」とう話は、最近になった再発見された「技術的負債」という語の本来の含意にあっていないのでは」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「最初から全部はできないけどまずはリリースするために後で返せるところは負債にしておいて後でちゃんと返せばいい、というのが技術的負債だったはず。それを可能にするのは失敗を許容できる態度であり、透明性が必要なのもそれを可能にするため。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「次の「ソフトウェアファーストな法整備」の項目にある「要求仕様のリファクタリング」という表現も地味に引っかかりがある。法令を要求仕様としたら、これにはテストが書けないので、リファクタリングではなく単なる見直しであるはず。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「このへんのふわっとした用語は、かっちりした文書ではかっちりと使ったほうがいいです。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「少なくとも技術的負債とリファクタリングという専門用語の使い方が間違っているのでは、という指摘は置いておいて、おそらくCTO協会からの提言としてユニークな点は「デジタル庁長官にCTO人材を」にあると読みました。でもこれむしろ「CTO的な役割を置け」なんじゃないかなあ。https://t.co/aEPf70ubNw」 / Twitter
- デジタル庁の創設に向けた提言 | 一般社団法人 日本CTO協会
独禁法訴訟
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる https://t.co/9BgKVa3TG7」 / Twitter
- Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる - GIGAZINE
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「"Googleは検索エンジンとしてデフォルトの位置を守り、取引先が競業他社と契約することを防ぐために、毎年、Apple、LG、Motorola、Samsungなどの人気のあるデバイスメーカーを含むディストリビューターや、(略)そしてMozilla、Opera、UCWebなどのブラウザ開発者に数十億ドル(数千億円)を支払います"」 / Twitter
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「この訴訟、意図に反してMozillaを潰しそう…という気がしてきた」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@syuu1228 未だに大きな収入源ですしねぇ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「米司法省によるGoogleへの訴状。まだ訴状の段階であり、事実と認定されたわけではないが、かなりエグイことが書いてある。ようするに彼らは (Facebookとの) 出来レースと (Chrome, AMPを使った) ウェブの乗っ取りを広告事業の切り札として画策していたらしい。MSの「ハロウィーン文書」を彷彿とさせる」 / Twitter
- fasterthanlime 🌌さんはTwitterを使っています 「RT 🔒 (with permission): "Ok so, I just read through all 173 pages of the unredacted Google antitrust filing and I have to say that either Google is screwed or society is screwed, we'll find out which. Unordered list of fun things I learned:"」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「まあ個人的にはこれを聞いても全然驚かないんだけど...。むしろ驚くべきは、こうした企業に平然と勤めている人々の「見て見ぬフリをする能力」である。昔ホリエモンか誰かが言っていたように「人の心も金で買える」のは間違いなく本当だ。」 / Twitter
買収その後
- デジタルライブラリーのScribd、SlideShareをLinkedInから買収 - ZDNet Japan
- Welcome SlideShare to the Scribd community — Scribd Blog
- Microsoftが延命したYammerの今後は(上) - Microsoftが延命したYammerの今後は:CIO Magazine
- Microsoftが延命したYammerの今後は(下) - Microsoftが延命したYammerの今後は:CIO Magazine
- 【2018年6月版】プレゼンテーション共有サービス『Speaker Deck』の使い方 - 八雲文庫ブログ
- Fewer and Faster - Measure, Improve and Repeat
- 伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア宣言にはすごく同意するんだけど、結局、要件や仕様を決めるというソフトウェア開発の外部性が無視されている、あるいはそこに情熱がある人がいるという前提が抜けてんだろうね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「大規模業務システムのPMだとプロジェクト終わるまで実際の画面を触ってみたことない人もいるし、それは客側も同様。」 / Twitter
- アジャイル開発の外部委託が「偽装請負」だと疑われないためにすべきこと、厚労省が公表した疑義応答集を読み解く(前編)。Agile Japan 2021 - Publickey
- アジャイル開発の外部委託が「偽装請負」だと疑われないためにすべきこと、厚労省が公表した疑義応答集を読み解く(後編)。Agile Japan 2021 - Publickey
- Makoto Kato ︎︎さんはTwitterを使っています 「USと日本の違いは、断われるということくらいかと。どこの国に行ってもNetworking重要」 / Twitter
- Hiroshi WatanabeさんはTwitterを使っています 「最近の日本では会社の飲み会は忌み嫌われどんどん無くなる一方、渡米したら「週末は会社BBQ!皆で盛り上がろう!」「終業後はハッピーアワー!職場の交友を深めよう!」とか周りで滅茶苦茶やるし、何ならスタンフォードの経営の授業でも奨励されていて、私が見た米国はウェット、日本はドライだった。」 / Twitter
- 杉本啓さんはTwitterを使っています 「わかるんだけど、昔、そんなにコードを書いてなかった頃、技術者に、こんなソフトを作れないかって相談したら、そこまでする必要があるかって訊かれちゃったんだよね。で、自分で勉強して作った。ドメインがわからないひとは、作る情熱も湧かないんだよね。 結局、誰かが両方やるしかない。」 / Twitter
- やきにくさんはTwitterを使っています 「よく「エンジニアがビジネスを理解するべきだ」って言われるけど、僕は最近は逆に「すでにそのビジネスに精通してる人にエンジニアリングの都合をわかってもらう」ことのほうが簡単なんじゃないかと思っていて、そういう試みのほうに興味の対象がシフトしてきていると思う。」 / Twitter
- 「技術力は今でも世界一です。ただ…」USBメモリーの生みの親・濱口秀司に聞く、日本が“世界”で勝つには|新R25 - シゴトも人生も、もっと楽しもう。
- 登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(前編)。JaSST'22 Tokyo - Publickey
- 登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(中編)。JaSST'22 Tokyo - Publickey
- 登大遊氏、日本は「超正統派」のICT人材を育成すべき。そのために、自由な試行錯誤を許容するインチキネットワークの普及に取り組む(後編)。JaSST'22 Tokyo - Publickey
- Hideyuki TanakaさんはTwitterを使っています: 「(´・_・`)👇これMSだけあまりにも収益構造健全過ぎない?てかGoogleはクラウド事業赤字なのやばくない?良心的価格でやってるってこと?」 / Twitter
- 企業分析ハック -新しいビジネスの教科書を作る-さんはTwitterを使っています: 「続いてセグメント別営業利益です。 セグメント別の数値を開示している4社のみのピックアップですが、グラフにすることで何の事業で稼いでいるか一目瞭然です。 Amazonは「AWSで稼ぐAmazon」が顕著な決算となりました。 Metaは引き続きメタバース事業へ大きく投資しています。 https://t.co/E24v770z3r」 / Twitter
- 「“楽しくないけどお金のためにやる人”はやはり伸びない」 まつもとゆきひろ氏が説く“プログラマーに向いている人” - ログミーTech
- ところてんさんはTwitterを使っています: 「ベンダーを呼びつけて、事例を無限に要求し続けるおじさんだ 具象しか理解できなうえに不安耐性もないから、事例を集めて安心する(そして意思決定しない)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています: 「なるほどなあ。大本営の問題は、多くの場合には不安耐性のない人(抽象化された状態で問題を扱う訓練をうけてない人)が大本営の中にも混ざってしまうからな気がする https://t.co/tQreGNNfwb」 / Twitter
- 「不安に怯える普通の人」を統率するための「大本営」と「大本営発表」
- 情報労連「ITエンジニア労働実態調査」を見てみよう! その3 客先常駐の働き方 - 働き方を考えるITエンジニアの会
- 技術顧問との1on1で見積もりには3種類あることを教えてもらった - Qiita
教育・学習・スキル
その他
- 30年以上英語を教えてきた大学教授が「もっと早くテストで成績をつけるのをやめればよかった」と後悔、成績をつけない新しい評価スタイルとは? - GIGAZINE
- 越川慎司 17冊出版『トップ5%リーダーの習慣』は重版4刷さんはTwitterを使っています 「「知ってる」と「できる」は違う 「私はできる」と「あなたもできる」は違う 条件付きで良いので再現性のあるルールを持ってる人の話しを聞きたい」 / Twitter
- Island Life - Don't take it personally
- 7594591200220899443さんはTwitterを使っています 「心理的安全性というのはとびきり雑に言うとどれだけカジュアルに失敗できるかという話なので、コンテストとかそういうのとは若干食べ合わせがよくないんだよな。コンテストとかは構造的に失敗が許容されづらいから。」 / Twitter
- 基礎と低レイヤーは混同しがち。基礎とは何で、どう勉強するか。 - きしだのHatena
- 競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
- songmuさんはTwitterを使っています 「基本情報、MTTRとMTBF、RDBの正規化、OSI参照モデル、計算量、2進法とビット演算、などが網羅されてるので、何気にお得なのでは?」 / Twitter
- monaqaさんはTwitterを使っています 「これはいつも思ってるんですけど、科学的なリテラシーってのは「与えられた記事の真偽をすぐ見抜ける」ことじゃないんですよね。「与えられた記事が科学的に価値ある情報を含んでいるか判断できる」ことなんです。前者を目指そうとしてる人がいたらそれは筋が悪くて、本当に目指すべきは後者なんですよ」 / Twitter
- 出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?に対するYuki Sonodaさんの回答 - Quora
- Shiro KawaiさんはTwitterを使っています 「「登場人物の気持ち」については考えるに値する問題で(役者は常に考えてる)、回答に良し悪しは確実に存在する。「その解釈は無理ありすぎるだろ」から「作品に新たな光を当てる素晴らしい解釈」まで。まずいのはひとつの正解を当てるゲームにしてしまうことじゃないかと。」 / Twitter
- 河野真太郎/Shintaro Kono『暗い世界』発売中!さんはTwitterを使っています 「@mineotakamura @Cristoforou とりあえずこちらでしょうか。遠藤周作が自分の作品を使った入試問題(作者ではなく登場人物の気持ちを4択、みたいな)について全部正解だと言った話とか。https://t.co/85E7HE6t1r」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「解釈というか、演技では"choice"というんだけど。」 / Twitter
- shinshinoharaさんはTwitterを使っています 「「勉強できる子」は一度説明しただけで理解し、覚えてしまう。「勉強の苦手な子」は一度説明しただけでは理解できず、覚えることもできない。なんなら同じ説明を何度もしても理解できない。この現象をもって「頭が悪い」と決めつけてしまう「勉強のできる人」は多い。しかし私は見解が異なる。」 / Twitter
- shinshinoharaさんはTwitterを使っています 「観察してると「勉強のできる子」は、その言葉を聞く前にすでに知識のネットワークが準備されている。電流の話を聞く前に、モーターや電球の仕組みだとかに興味を持ち、すでにある体験ネットワーク、知識ネットワークの結節点の一つにその名称をあてはめるだけ。だからすんなり覚えてしまう。」 / Twitter
- ふろむださんはTwitterを使っています 「大人になってから勉強するとすごく楽しいのは、 勉強がジグソーパズルだから。 序盤はピース間のつながりがよくわからないから、あまり面白くない。だから、子供の頃の学校の勉強はあまり面白くない。 でも、後半は全体像が見えてきて、ピースをはめ込むたびに快感が走るようになる。」 / Twitter
- 白猫 PHPerさんはTwitterを使っています 「@fromdusktildawn 逆にいうと、先に全体像を把握すると、今何のために何を勉強してるかがわかり、面白くないとも思わないし、学習効率が飛躍的に向上する。しかしなぜか、ほとんど全ての授業や本のに全体像を示す説明はない(謎)自分がプログラミングを教える時は、まず全体像を把握してもらうことに最大限注力している」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「学校というところは、努力が線型的に評価される (つまり努力すればするほど成績が上がる) システムである。しかし現実社会では、ほとんどの努力は無駄に終わり、ごく一部だけが実を結ぶ (8:2の法則)。人生にとって重要なこの事実を学校はほとんど教えていない。 https://t.co/ou9gYYETFD」 / Twitter
- Life, School, and the 80:20 Rule - xsrus.com
- yudai.jlさんはTwitterを使っています: 「ちゃんと学部で勉強した人は、「教科書に書いてあることだけを理解する人は凡人」なんて言わないんじゃないかな。 教科書に書いてあることをちゃんと理解できるだけで十分に賢い部類に入ると思います。」 / Twitter
- yudai.jlさんはTwitterを使っています: 「頭がいい人って、1を聞いて1を理解する人であって、1を聞いて100理解した気になるやつはただのやばいやつです。」 / Twitter
- yudai.jlさんはTwitterを使っています: 「教科書に書いてあること以外を勝手に仮定しない能力が大事だなと思ってるので。 (学問の話です)」 / Twitter
- yudai.jlさんはTwitterを使っています: 「例えば大学での勉強なんていうのは、「100を聞いて1を理解する」ことの繰り返しなわけで、飛躍をせずに、この1を積み重ねていくことが大事と思います。 「1を聞いて1を理解するのは凡人」論者は一冊の専門書を一周で完璧に理解できるんでしょうか。 (繰り返しますが学問の話です)」 / Twitter
- On-demand learning is ruining the tech industry.
学習者自らが学ぶ
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「これは教師と学習者にも当てはまるし、なんなら任意の学びは全てこれ。学習者の脳みその中で積み上げるしかない。」 / Twitter
- Manabu UenoさんはTwitterを使っています: 「デザイナーはユーザーが知る機会を与える。しかし何を知るかはコントロールできない。デザインは糸口でしかない。ユーザーは自身の行為を通じて自らの内側から知るのであって、それ以外に何かを本当に知る方法はない。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「つまり、技術の底上げなんて無理。合わない人の口に無理やり捩じ込むのをやめて、自分から技術を食いまくるやつを引き込んで、そいつの姿を周囲に見せてやることで食欲を掻き立てるぐらいしかできない。ドキュメント?それ食えるのか?」 / Twitter
- 杉本啓さんはTwitterを使っています: 「設計者はユーザーがどう使うのかをコントロールできない。コントロールできないということを前提に設計した方がいい。コントロールしようしようとすると、そのうちに、細かく分岐した袋小路のような場所に追い込まれていく。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「ソフトウェアのフィーチャーを設計するときに、確固としたユースケースを想定することは大事だ。そうしたユースケースに従ってテストもする。ただ、フィーチャーが出来て見れば、ユースケースは、こういう使われ方もある、という程度の位置づけになるべきだ。これは矛盾しているようで矛盾していない。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「これはいえる。ひとの中に何かの知識や技能を刷り込もうとする教育は失敗する。そうではなくて、周囲で起きていることの不思議さに気付かせ、その起きていることに働きかけるために使えそうな(知的)道具を置く。よい教育者や指導者は、だいたい、そういうことをしている。」 / Twitter
基礎
- RyuseiさんはTwitterを使っています 「「基礎は大事だよね」的な当たり前の主張だと、やっぱり当たり前すぎてつまらないんですよね… 自分としては、そこで、じゃあ基礎ってなんだ? って方で掘り下げてほしい」 / Twitter
- RyuseiさんはTwitterを使っています 「「レトリックを覚える前にふつうの日本語を話せるようになれ」 なのか 「現代日本語を覚える前に古文を学べ」 なのか」 / Twitter
- RyuseiさんはTwitterを使っています 「「現代日本語は古文から発展して成立しているのだから、まず古文を学んでこそ、日本語を理解することに繋がるのだ」という主張はそれなりに筋が通っているようにも、非常識なようにも、どちらにも聞こえる」 / Twitter
- fujiwaraさんはTwitterを使っています 「基礎をやれ、言いたくなる気持ちは大変分かるんだけども、言われたほうはなんだかんだあって結局基礎が大事だと実感するまではモチベーションが湧かないというのがなあ。もっとできるようになるには結局基礎だな、って自分で思う前に人にやらされてるとそのこと自体嫌になるんだよね」 / Twitter
- fujiwaraさんはTwitterを使っています 「自分がいまランニングそこそこ頑張ってるのも、ある程度走れるようになって楽しくなってから本とか読んで、実際参考にしてやってみたらタイムが上がって楽しくなって、の繰り返しだし、自発的な動機がないなら真冬の夜明け前に起きて練習とかするわけないもんな」 / Twitter
積み木的な設計
- とき@engineerさんはTwitterを使っています: 「装置の設計をする時、昔は「無い物は自作しよう」だったのが、今は大抵が既製品として存在する。しかもポン付けで済むので、テクニカルな事なんて知らなくても使えてしまう。これらを上手く組み合わせ、効率化を図って設計するのが今風なんだろうけど、 なんだか馬鹿になっていってるような気がする…」 / Twitter
- マイタロー🐬(切子舞太郎)さんはTwitterを使っています: 「@toki_engineer なにかの専門家になるのなら、専門のメーカーで働くしか追求できませんし、かと言ってその分野だけ追求することが楽しいかと言われるとどうなんでしょうね🤔」 / Twitter
- とき@engineerさんはTwitterを使っています: 「@kirikomaitarou いや難しいですよね… 自社の注力すべきところに時間を割き、餅は餅屋に任せるのは正しいやり方なんですが、なんというか餅屋に任せすぎのような気もしますし… いや、ほんと難しい😅」 / Twitter
- bato@🔧📐さんはTwitterを使っています: 「@toki_engineer 積み木屋さんというか、物置くだけ屋さんというか... 自分も同じ危機感を持っています」 / Twitter
- とき@engineerさんはTwitterを使っています: 「@mech_eng_bt 確実に設計効率は上がったのですが。でもたんに繋いで使うだけではなく、その機能自体を深掘りして理解していくことも必要ですよね。」 / Twitter
- ゆーがさんはTwitterを使っています: 「@toki_engineer 全体構成のポンチ絵を描く仕事だけしてて技術者なのだろうか...という葛藤...」 / Twitter
- とき@engineerさんはTwitterを使っています: 「@yugaaaaaaa1 会社や、また同じ会社であっても部署によって設計業務の範疇は様々ですよね。 いっそのこと、てんしょ…」 / Twitter
- YAYAさんはTwitterを使っています: 「@toki_engineer その装置の強みの部分だけに注力して開発設計して差別化を図りその他は、購入品でパッキングする感覚でいます。」 / Twitter
- とき@engineerさんはTwitterを使っています: 「@YAYA91824215 おそらくそれが一番良いやり方なんでしょうね。 自社の武器となる「プロセス(製造工程で装置が行う特定の仕事)」を持っている会社であれば、そこだけに注力するのは正しいやり方ですね。」 / Twitter
- YAYAさんはTwitterを使っています: 「@toki_engineer つまらない部分もありますね。 インターネットや展示会で情報の幅を広げるのが 最適解みたいになってしまっている。」 / Twitter
- 住吉住吉さんはTwitterを使っています: 「@toki_engineer 仕事のペースが早くなって馬鹿になってる暇は無いよ。」 / Twitter
経験で獲得した方法論を、共通の土台で言語化するための枠組み
- Shiro KawaiさんはTwitterを使っています 「「体系的な知識」でTLが盛り上がっている。 体系的な知識の効用のひとつは、共通する参照の枠組みとして機能すること。例えば何かを「良い/悪い」と評するとき、何となくの主観ではなく、それはこういう要素が違っているためにこういう効果が生じている、ということを他人と議論できる。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「自分がこれを感じたのは近代演技術で。米国で演技の訓練を受けるとリアリズム演技術の体系を学ぶことになるんだけど、例えば米国の俳優の演技についてのインタビューを読んでると、体系に基づいた共通用語で語られるので話がとてもわかりやすく、また応用しやすい。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「一方、日本で語られる演技の話を読んでいると、個人個人のエピソードのばらばらな集積で、それぞれは「なるほど」となるいい話ではあるんだけど、なぜそれが良いか、別の状況でどう応用できるのか、というのがなんか見えないなと感じられていた。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「これは優れた演技をする名優でもそうなので、つまりその人が経験で獲得した方法論を、共通の土台で言語化するための枠組みが薄いせいだと思う。 言語化できないと、徒弟制で「見て盗む」形でしか継承ができない。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「もちろんそんな枠組みが無くても凄い人は自分で突き抜けていっちゃうんだけど、体系の有無は後に続く層の厚みに関わってくると思うんだよな。 体系を突き抜けて行った人が、どこをどう破ったかを知るにも、体系を知ってないとならないわけだし。でないと「あの人はとにかく凄かった」で終わっちゃう」 / Twitter
体系化するスキル
- nishio hirokazuさんはTwitterを使っています 「これ重要なポイントで「体系的に学びたい」って言う人「誰かが体系化したものを鵜呑みにしたい」って言ってるも同然で、それで学んだ気になっても新しいものを体系化するスキルはまったく身についてない」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「…一方、かつて上野宣(@sen_u)から、「なぜ徳丸は徳丸本が書けたのか」と質問されたことがあったのだけど、その時は答えられなかったけど、たぶん「徳丸が効率の悪い勉強法をし続けたので、自力で体系化する力が備わったから」ではないかと思う。当時ウェブセキュリティは体系化されていなかった…」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「…なので、「効率の良い学習法」を聞かれたら、「それは大学のしかるべき学科に行って勉強してください。それ以上の方法はない」と答えます。いろいろな事情でそれができない場合は、たぶんの一つの答えはなくて、目標やら使える資源ならで変わりますね。漠然と質問されても答えられない。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「短期的に見ると効率が良く見えるが、それは「体系化するスキル」を習得するためのコストを支払ってないから支払いコストが安く見えるだけである」 / Twitter
メタ学習スキル
- Shiro KawaiさんはTwitterを使っています 「これをするには、1.知らないことを調べて学ぶ、2.まとめて形にして晒す、3.ツッコミを受けて知らなかった世界が先に広がってることを知る、そして1に戻る、というサイクルをたくさん経験するのが良いと思ってる。→」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@golden_lucky 初中等教育で身に付けるべきは、人生のどの時点でも自分にない知識が必要になった時にそのことが分かり、学べる。というメタ学習スキルなんだろう。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「やってるとだんだん、ここらへんまでは自信を持って言えるけどこのへんから先は知らない分岐がありそう、みたいな勘ができてきて、新しい領域に踏みこむことになったら自分でサイクルを回せるんじゃなかろうか。→」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「このサイクル、自分が受けた初中等教育のカリキュラムで経験することはほぼ無かった。自由研究とかも大抵は2止まりで、3を経て練り直す機会がない。大学も大抵は出したら成績がついて終わり。出したものを添削されて練り直すってのは卒論くらいでようやくだった気がする。→」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@anohana なにしろ日本は他人に意見すると鉄拳制裁が飛んでくる国であり社会ですからね。CJK共通項目のような気もしますが。建設的なフィードバックループを回してもらった経験のある人は国内にはすごく少ないのではないかなあと思います。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ある程度基礎知識が無いと調べても大したことはわからない(から基礎知識を入れる方が先)、という理屈はあるんだけど、それにしても初中等教育の間ずっと、指定範囲の知識を獲得して使い方を覚えたら合格、という刷り込みをされてくると、そこ終わったらもう勉強いいやって気分になっても無理はない。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「うちの子の場合は逆に基礎知識がこんなに少なくて大丈夫なんだろうかと思うくらいなんだけど、調べて議論して練って書く、という訓練はしつこく受けていて、そのやり方で成功体験があると身につくんだろうなと思うけどどうなるだろうか。」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@anohana 米国の知の育て方ですね。 > 調べて議論して練って書く」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@jj1bdx 欠点として、基礎知識がごそっと抜けたままでも義務教育が終わっちゃって、その後に進めた人とそうでない人の差がめちゃ開いてしまうというのが。 時間が有限である場合、どこかでトレードオフのバランスを取らないとならないんですが。」 / Twitter
プログラミング教育
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング教育は数学に含めたほうが良い,は少なくとも数十年前からよくある意見で,実際に日本の高校数学教科書や,確かセンター試験数学にも含まれていた時期がありますが,日本の教育現場では残念ながらほぼ絶滅(?)したような.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「絶滅」(?)した原因はいろいろあるかもしれませんが,やっぱり「数学とCS・プログラミングは共通部分も空ではないけど包含関係にはない」で,その包含されない部分の中核が「手続き」という理解.「計算」量とか,「計算手続き」の記述たる「プログラミング言語」とか.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/JTdGG3lCfy」 / Twitter
- 高等学校共通教科情報科の大学入学共通テストでの実施に関する意見-情報処理学会
- 大学入学共通テストへの「情報」の出題について-情報処理学会
- 大学入学共通テストにおける教科「情報」の出題について | JSET NEWS | 日本教育工学会(JSET)
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@awellbottom https://t.co/bPYg7qbZmz とか https://t.co/IgLtwhathh とか https://t.co/i3p7Vr6kun とか声明が出ていますよね.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 僕はプログラミングの数学以外の部分こそがコンピュータの大衆化のキモだと思ってます.たとえば,HTMLを守らないで解像度固定でWebを作ったり,神EXCELだったり.こっちをCS側はもっと真面目にとりくむべきで,それがviscuitの立場です.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii なので「プログラミング的思考」だとその側面が欠けているので,僕は「表現としてのプログラミング」も大事だと言ってます.それがいま小学校でビスケットがいろんな授業で使われている理由です.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 表現の立場から見たときに,うちの渡辺さんは,いま執筆中の学位論文で,先生方の「手になじむ」という言い方をしています. https://t.co/N5vczA1Fyq」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@viscuit ありがとうございます.そういう部分も「プログラミング的思考」(≠「数学」)から排除されているものではないと思いますが,芸術表現等としての側面も確かに重要ですね!」 / Twitter
- Genichi KataokaさんはTwitterを使っています 「ITリテラシーって、「今知っている」ことより、見たこともないものも忌避せず使ってみるとか、知らないこともとりあえず調べてわかった範囲でやってみるとか、そういう姿勢のほうがずっと大切なんだな、ということを最近実感している。」 / Twitter
背景、原理、哲学的な意味を理解
- ytakanoさんはTwitterを使っています 「いい話。プログラミングも、手順だけじゃ無くて、背景、原理、哲学的な意味を理解してほしい。そうじゃないとエンジニアではなく、チェンジニアになってしまう。」 / Twitter
- MERさんはTwitterを使っています 「先日の講習会で根上先生が提示されていた「高校数学の負の影響」。非常勤先の工学部で教職課程とる学生さんたちに長く教えて見えてきたとのこと。数学を入試に使った学生さんでもこうなることにとても危機感を覚えているようでした。一つの大学の事例とはいえ、中高教員としては常に自戒したい実態。 https://t.co/uxzLApZTw2」 / Twitter
- MERさんはTwitterを使っています 「なお、先生は高校の数学授業を やり方を習う→そのやり方を練習する→そのやり方でできる問題を解く と見ていて、こうなるのはわかるが、意味の理解不足や学ぶ必要感不足を問題視されてました。要するに「上のやり方だと数学的に考える学生は(滅多に)育たない」と仰りたいのだと理解してます。」 / Twitter
- クロ・コーシさんはTwitterを使っています 「@MathEdr ものすごく同感します 個人的には小学生に◯✖️がすぐつく問題をさせるの禁止にすればと思ってます わかったかどうかより、あってるかどうかを気にする子が多すぎる…」 / Twitter
- thick_doomieさんはTwitterを使っています 「@MathEdr 大学受験を突破するにはそれが良いんですけどね」 / Twitter
- yamazaksさんはTwitterを使っています 「@MathEdr 中高でこれをしているところには猛省を促したいところですが、高校どころか初等教育の問題です。 小学校で6年かけて「理論的な正しさより、先生の言う通りに書かないと不正解」を叩き込まれてくる生徒がいるので、その呪縛を取るのには大変時間と労力がかかります。」 / Twitter
- さやか|オーガニック八百屋@東麻布さんはTwitterを使っています 「@MathEdr @manabist171 都合の良い構造を仮定する。。。に爆笑🤣問題として出されてる以上、それなりのスッキリした答えになるのでは?って言う小賢しさ!!(わたしもテストで考えたことあるなぁ。。。)」 / Twitter
- thick_doomieさんはTwitterを使っています 「@sayaka_merry @MathEdr @manabist171 逆に4択問題が全部Bとかだと不安になる」 / Twitter
教育
情報教育
- 青土社 ||現代思想:現代思想2022年4月号 特集=危機の時代の教育
- 吉田弘幸さんはTwitterを使っています: 「数学や理科の教科書は,それだけで完結して学習できるように必要十分な内容が書かれているけど,「情報Ⅰ」の教科書を読んでも何も学べない。どのページも文科省が好きなポンチ絵みたいな感じ。」 / Twitter
- 吉田弘幸さんはTwitterを使っています: 「しかし、これは専門書なら笑い事で済むけど検定教科書としては致命的な気もする。 https://t.co/rsznnQ9sMG」 / Twitter
- 吉田弘幸さんはTwitterを使っています: 「『現代思想』4月号の拙稿をお読みください。 組版のずれは内容とは直接関係ありませんし,それを根拠に批判しているわけではありません。しかし,こんなに慌ててく作ったような教科書は内容も信用できません。」 / Twitter
- 吉田弘幸さんはTwitterを使っています: 「「情報Ⅰ」は1つの科目としては扱う項目が多すぎる。『現代思想』でも「項目がこれだけ多くなると二単位では十分な扱いが不可能である。プログラミングを必修にするために無理をしたのではないだろうか。」と指摘したが,心配が当たってしまった。」 / Twitter
- 吉田弘幸さんはTwitterを使っています: 「「情報」を共通テストに加えるならば新課程の授業の下で数回の試行調査が必須だよ。」 / Twitter
- 吉田弘幸さんはTwitterを使っています: 「僕の批判を非難するならば,まずは教科書を読んでみて欲しい。そうしないと建設的な議論にならない。」 / Twitter
- ジロウさんはTwitterを使っています 「性にしても姓にしても、「自分の信じる価値観以外の価値観もOKになる」こと自体が耐えがたいストレスになる人がわりと多くて、自由や多様性そのものが人間にとってストレスをかける(不安にする)ということをスルーしていると、なかなかこれ以上前には進まないんじゃないかという気もしている。」 / Twitter
- 勝川 俊雄さんはTwitterを使っています 「リスクはゼロでも無限大でもないということや、様々なリスクが存在し、それらは往々にしてトレードオフの関係にあるということを理解できない人が多いですね。これは教育の失敗なので、リスク管理の考え方を学ぶ機会を作るべきと思います。」 / Twitter
- ytbさんはTwitterを使っています 「よく「学校で論理学を教えないから学生は論理的思考ができない」と言う人がいますが、論理学は人に論理的思考法を教える学問ではありません。論理的思考法そのものは論理学以外でも身につきます。 何をすれば「論理的思考」と言われるものをしたことになるのか、その条件を問うところです。」 / Twitter
- koji_nijikoさんはTwitterを使っています 「@ytb_at_twt @TigerSophia61 クリティカルシンキングってひと頃流行りましたが、何のことか説明できるひとは?と。」 / Twitter
- HBさんはTwitterを使っています 「@ytb_at_twt 教えるんやったらコンサルが使ってるような「思考のフレームワーク」使った方がいいやろな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「スタンフォードの授業で「え、ここまでそれわかってなくて聞いてたの?」という質問をしてる生徒はかなりいたし、教える方は驚くこともなく普通にそういう基本的な質問に答えていたので、ああいうのは見習いたい(どちら側も)。」 / Twitter
IPA
- hsjoihsさんはTwitterを使っています 「あー、そういう経緯で問題発生時に解決を図るための仕組みが2020年度は増えていたのですね。納得です」 / Twitter
- hsjoihsさんはTwitterを使っています 「2020年度に参加したとき「2018年度には影も形も存在しなかったやたら気合い入ったハラスメント通報システムが構築されてるな。問題発生時に解決を図る仕組みが整備されているのはとても素晴らしいことだけど、わざわざここまでしっかりやるということは何らかの前例あったのでは」とは実際少々思ってた」 / Twitter
- hikaliumさんはTwitterを使っています 「この件、正確に書いておくと、昨年の話ではなく、2019年の話です。(従って、昨年からシステムソフトウエア自作トラックのプロデューサーを担当されている @uchan_nos 氏は本件とは関係ありませんし、現在はこのような問題が発生した際にスムーズに対応できるよう仕組みが整備されています。念の為。)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「某キャンでCコンパイラゼミがなくなったのは、講師の上下関係(というほどのものは本来ないはずだが)でひどいイジメというか精神的追い込みがあったからですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「子供(大学生含む)にはニコニコしてるとか、自分を師と仰ぐひとたちには慕われているみたいなのと、自分の下の人間(みたいな階層はないはずだけど)が少しでも気に食わないことをすると、ブラック企業の理不尽上司かというレベルで執拗に追い込むみたいな二面性って両立するんですねぇ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「全員にとってあまりにも意外だったので対処がグダグダで、結局運営の方々には真剣に対処してもらえたとは思うけど、成り行き上さすがに続けるのが無理なのは仕方がないと思うのでご理解ください。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この時期の某キャンの自分の周辺では「自分は応募倍率しか評価しません。中身は関係ありません。とにかく応募者を集めてください」と、営業マンの成績表みたいなものが掲示板に貼られて、繰り返し発破をかけられた講師がダービーさせられてたんだよな。ここらへんでやばさに気づくべきであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「応募してくれるひとのこともバカにしている話である(が、そういうことをいった人がめちゃくちゃ反撃されているのとかを見ると、まあ何か言うのは難しい)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そもそも応募者集めは講師の仕事ではないし、広報にはそりゃ協力するけど、「倍率が低いですよ! 来年から首にするかもしれませんよ! 真剣にやってください!!」みたいに詰められたりするのはほんと何って感じだし・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「他にもひたすら個人攻撃をして、私はあなたのためを思って、私が言っていることをあなたがやるまでまで私は叩き続けます、みたいなことをやったり・・って、なんというか今から思うとほんと意味不明で、これを読んでる人もこのスレの意味よくわからんな・・となっているんでしょうけど・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「念の為に言っておくと、そういうハラスメントをする人はごく一部で、管理体制の穴になっていたみたいですが、その後体制も改善されたようですので、今は理不尽な扱いを受けたときにはちゃんと対処してもらえると思います。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ちゃんと対処してもらえない場合は、理不尽さには勝てないので、正そうとせずにさっさと逃げたほうがいいですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「某キャンではないな、セキュリティ・キャンプですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「「授業の内容も応募の内容も私は一切評価しません、応募倍率のみを評価します」と言われて、さすがにそれは本末転倒ではと言うと面罵される、みたいな意味不明なことをされていた。やっぱり改めて考えてみても完全におかしいよな・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「セキュキャンの話は2019年の話で、現役で教えている方(特に内田さん)は無関係(単に問題の人のツリーに属していない)か、むしろ被害を被ったほうですので、誤解なきよう・・(普通に内田さんは人格者です)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なぜ2年前のことを書いているかと言うと、また募集の時期がきて、何回も人格否定されていたのがフラッシュバックしたのと、なぜ悪意を持って人を攻撃する人が放置されてみんなが叩かれ続けなければならなかったのかという気持ちがこみ上げてきたからですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうことはあんまり書かないようにしていたのだけど、まあついに書いてしまったな。しかしその後運営も改善されたようですし、あんまり生産的でもないと思いますので、これくらいにします。」 / Twitter
- セキュリティ・キャンプ全国大会2018 プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2019 プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2020オンライン プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2021 オンライン プログラム:IPA 独立行政法人 情報処理推進機構
- Miura HidekiさんはTwitterを使っています 「いわゆる外面がいいって奴ですよね。凄くいっぱいいますよ(うちの親父もそうだった)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「身近に外面がいい人物がいたため、いくら社会的に評価が高くても、それだけでは完全な善人だとは思えなくなった。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そもそもの「善人」「悪人」って基準は主観ですからね。「万人に対して善人」という行為自体も客観的には定義できない可能性すらあったり。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 私の親父は大体誰に言わせてもいい人だったという評価を聞きます。相当ストレスがたまっていたんでしょうね。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 DV方面で話に聞くようなパターンですね...。うちの父はたぶん敵は作っているので外面が良いタイプではないです。商業的サービスの客として横柄だったりしますので :)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki DVとかは無かったですけどね。店とかでもよい客でした」 / Twitter
- hikaliumさんはTwitterを使っています 「セキュキャンのハラスメント防止宣言とCode of Conductが協議会のページで公開されたみたい。きちんと仕組みが整備されて、さらに外部に向けてもその内容が公開されたのは素直に良いことだと思う。(もちろん、これを実際にちゃんと回していく必要はあるけれどね。) #seccamp https://t.co/jBiQh7u9ko」 / Twitter
- セキュリティ・キャンプ協議会
評価基準
- Miura HidekiさんはTwitterを使っています 「学校って多様性とか個性とか言いつつ、きっちり全順序の評価基準を設定しているよね。社会もそうだけど」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 シリアライズしないと処理しきれないだけかと。ベストチームを編成する、みたいな場合にはシリアライズでうまくいかないってのは予想はつくけど組み合わせは爆発するから...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki シリアライズして順位を付けてその順位で態度を変えるのは 処理しきれないに入りますか?」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 態度を変えるってのはまた別の問題で、そういう人は明確な順位つけなくとも理由をつけて態度変えるんじゃないでしょうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki たしかにそんな気がする」 / Twitter
裾野の涵養
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ドローンにしても半導体にしても、その他の技術的な諸々ほとんど全ての「日本製」にロクなものがないんだよ。 それは、「裾野の涵養」を怠った結果だ。「○○については××研究所がやってる」じゃねーんだよ。それでは足りないんだよ。全てのことに「裾野の涵養」が足りてないんだよ。」 / Twitter
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「技術なんてのは、「世界的先端的研究所が1つある」ことより「その辺のガキが遊戯として遊んでる」ことの方が「未来」があるんだよ。「毎年××の大会があってママ達の目の色が変わってる」とかさ。 そーゆーのが「裾野の涵養」だよ。」 / Twitter
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ガキの興味を育み、そのための環境を整える。 これがおっさんどもの責務だと思う。 そして、女の子にも「女だてらに」とか否定しないこと。やりたい子にはやらせる。 日本の未来を心配するなら、こういったことを意識すべし。」 / Twitter
- Chuck TimberさんはTwitterを使っています 「半導体は,このあいだ経産省のなんとか課の課長が来て話してたけど,いまやってる研究所のアイテムを拾ってカタログにしてるだけだった.お金も2000億円つけるとかいってたけど,桁違いで足りない. まず先に,初ラ や ラ製 や EL が普通にある世の中に戻さないと.」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「目に浮かぶ…orz」 / Twitter
- もなかさんはTwitterを使っています 「「死に体の半導体業界ニッポン2021」とくに「ハンパにスジが悪い施策しか投入できず業界を凋落に導いた経産省」に 「裾野が大事!」 とかいうとなぁ…。 \国産 Raspberry Pi を GIGA スクールの目玉に/ とか言い出しかねないのでなぁ…。」 / Twitter
- もなかさんはTwitterを使っています 「そしてそれに乗ってくる国産半導体業界の姿も見えるのでなぁ…。圧倒的に出遅れた Arduino 互換ボードとかな…。(実名は挙げない)」 / Twitter
批判的フィードバック
- Shiro KawaiさんはTwitterを使っています 「「自分で考える」は、成果を晒して批判的フィードバックを受けてさらに練る(その過程で足りない知識や経験を実感する)までが1セットのはずなんだけど、そういうコーチングが普及してない?」 / Twitter
- 田口和行🦊さんはTwitterを使っています 「「自分で考える」ことが流行りすぎたんじゃないかな。勉強も経験も何もなくても、自分で考えることが励行される。もちろん匙加減ひとつなんだろうけど。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「知的訓練」ってこういうイテレーションプロセスだったはずで、知識を蓄えてそれをテストで確認するのは準備運動のはずなんだけど、後者だけが勉強だとする刷り込みが強烈すぎるんだろうな」 / Twitter
- artonさんはTwitterを使っています 「@anohana 「批判」は悪口ということになってしまった時代を生きている人たちにはハードルが高そう。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@arton ほんと、どうしてこうなった感が>「批判は悪口」」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「勉強だけできてもダメ」というのもその刷り込みの系で、知的訓練を受けた人は知的生産ができる人であるはずなんだよな。最初は未熟であっても。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「(ここで言ってる「知的」は単に「頭を使ってやること」って意味ね)」 / Twitter
手回し計算機
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「掛け算の順序が入れ替え可能でないと手回し計算機のハンドルをものすごい回数まわさないといけなくなる」 / Twitter
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「補足:最大 桁数×9回」 / Twitter
- ElectrelicさんはTwitterを使っています 「@houmei 8とか9だと逆回ししたりしません?」 / Twitter
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@electrelic あれ、そうでしたっけ」 / Twitter
- ElectrelicさんはTwitterを使っています 「@houmei もちろん上の桁に1足しておいて、 23×99 → 23×(100-1) みたいな「工夫」です。 # 一番最初にやると乗除の自動切換えが誤動作しますけど。」 / Twitter
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@electrelic 手回しの計算機、けっこう暗算での工夫みたいなことやりますよね。これがモーターを使った機械式計算機だとバカみたいに回すので大好きです(FRIDENとか) https://t.co/ohSfyMABfb」 / Twitter
- ElectrelicさんはTwitterを使っています 「@houmei 「工夫」って適用できたらラッキーみたいな例外処理だから人間の脳のような柔軟性がないと難しいですよね。」 / Twitter
- 大学以外で言語学を勉強する方法|長屋尚典|note
研究・論文
科学の発展
- Shinji KonoさんはTwitterを使っています 「間違いを正していくのが科学なのに間違ってる論文を撤回してしまったらダングリングポインタになると思うんだが。解法よりも問題提議の方が発展性があり重要なので、間違ってるというより問題提議した論文というのが良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学ってのは正しいものの積み重ねて単調増加していくようなものとは違う。互いに相容れない理論が同時に進んでいく。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「矛盾からはなんでも出るのだが、矛盾を含む理論でも、矛盾のない部分を切り出すことができる。それを見つけるのは難しい。集合論でも矛盾を突きつけたカントルに対する風当たりはかなり強かった。ラッセルはうまく立ち回ったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学は疑うからこそ科学なのであって、信じてる科学者は科学者じゃない。否定を信じるのもあり得ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学技術系では再発見ってのがあるので、昔あるってだけで研究をやめるのは良くない。今と昔ではパラメーターが違う。そういう風に昔の論文から今のが研究のアイデアを探すのも可。」 / Twitter
- jicchoさんはTwitterを使っています 「「でもテストとは違って、研究には正解がない。 失敗を積み重ねて、少しでも良い答えを見つけていくしかない。 だからうまくいかなかったとしても、そのぶん研究は進むから良いのだ。」 試行錯誤の結果、うまくいかなくても、そのぶん研究は進んでいるんだよね。 最近やっと分かってきたような気がする」 / Twitter
- 森野キートスさんはTwitterを使っています 「研究で失敗するのが怖い - いつか博士になる人へ https://t.co/bdhQlW7oQu」 / Twitter
- 研究で失敗するのが怖い - いつか博士になる人へ
- Tsuyoshi MiyakawaさんはTwitterを使っています 「知らなかったのですが、電気が発見(?)される前まで、ロウソクの改良のための改善に多額の投資がなされていたそうです。日本の科学への投資の現状というのは、まさに「ロウソクの改良」を目指している感じではないかと。 「ロウソクの改良」 使えるフレーズですね。」 / Twitter
- Tsuyoshi MiyakawaさんはTwitterを使っています 「「科学の歴史をいろいろと詳しく調べてみると、実は、私たちの生活を本当に変えた大発見の大部分は、その問題を解決しようとしている人たちによって成し遂げられたものではない、ということがわかります。」」 / Twitter
誰もやっていないところをやる
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「大隅先生「みんながやっていると怖くない,というのが科学にも入ってきている」 #役に立たない科学が役に立つ」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「誰もやっていないところをやる」ではなく「価値が認められるとわかっている部分を誰よりも先にやる」の傾向が強かったのは何となく学生時代にも感じていた... 僕は科学者じゃないですが,「自分がやらなくてもどうせ成熟するだろう」と思う仕事には手を出さないようにしよう.」 / Twitter
バンディットの理論
- 加藤さんはTwitterを使っています 「そこに指導教官らしき人物の「正直であるならば,我々の手法よりももっと簡単に実装できて,性能も良いアルゴリズムがあることを言うべきだが」的なコメントもあって,さらに闇を感じた. https://t.co/xeqR6piSbL」 / Twitter
- 加藤さんはTwitterを使っています 「バンディットの理論でもっとも重視されている論文のとある一本(2016年から300引用されている),arXivからそのlatexコードを落としてみたら,コメントアウトされた実験結果があって,その結果を見ると提案手法がむちゃくちゃ悪くて,闇を感じた.」 / Twitter
- 加藤さんはTwitterを使っています 「その論文の手法を拡張した研究も,ICMLやNeurIPSに何本も通っているのだけれど,全て実験が怪しいことになるかもしれない.」 / Twitter
histric-1
- Shinji KonoさんはTwitterを使っています 「少しでも新しい問題が出ると手も足も出ない。そうならないような授業をしてるつもりだが、そこを突破できるのは1/10くらいな感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「授業中でも、わざと自分の知らない部分に突っ込んでいくのが好きなのはそういう狙いもあるけど、自分が面白がってやってるだけでもある。そこで行き詰まったりしてるのを心良く思わない学生もいるだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「基礎からやるってのが間違ってる。それでは目標がない。最初にボスに当たって、それから必要な基礎をやるんだよ。基礎は無限にあるから優先順位がないと死ぬ。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新規性は,闇雲に追求しても着想できるものではありません。先行研究を踏まえて,それで出来ていないことをあげていきます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新しく作るのはコンセプトやテーマが決まってからですね。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
- なんで論文なんか書くのか - いつか博士になる人へ
- 森野キートスさんはTwitterを使っています 「研究の進捗報告で意識するといいこと ・やったことを説明する前に、何が知りたくてやったのか言う ・方法の説明は、有名な方法との違いを言うとわかりやすいし勉強になる ・結果を説明する前に、どんな結果になると予想してたか言う ・データを見せたら、その解釈を言う」 / Twitter
- 森野キートスさんはTwitterを使っています 「研究をどこまででまとめるか、最後は自分で決めるしかない。10年後また読んだときに、自分で恥ずかしくない論文が書けたらそれでいいと思う。学生のうちにいろんな人の論文を読むといい。ここが好きとか嫌いとか思うのがいい。自分の判断基準を作るのが大事だと思う」 / Twitter
- jicchoさんはTwitterを使っています 「論文投稿した直後に論文整理するの結構いいかもしれないな」 / Twitter
- 森野キートスさんはTwitterを使っています 「卒業研究は不安になるのが普通だと思う。初めてやるわけだし。うまくいかないのも普通。簡単にうまくいくなら研究する意味があまりない。自分は何もわかってないとか、もっと勉強しないと、とか思ったら、卒研はほぼ成功してると思う。自分が知らないことや知るべきことがわかるほど学んだということ」 / Twitter
- 文化勲章を受章した私が、83歳になっても研究を楽しめる理由(甘利 俊一) | ブルーバックス | 講談社(1/2)
- 岩田健太郎 Kentaro IwataさんはTwitterを使っています 「独学には独学の価値があります。が、独学には陥穽が多いのもまた事実。それは知識の多寡の問題ではありません。例外はありますが、独学者は意欲に優れ、自信家で(自信がなければ独学なんてしません)、勤勉で勉強熱心だったりします。問題は「知っていること」ではなく「知らないことを知らないこと」」 / Twitter
- 競争的研究費における各種事務手続き等に係る統一ルールについて - toitsu_rule_r30305.pdf
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そしてその製薬メーカーさんの技術力の凄さは、そんな有象無象の論文から重要な知見を取り出して実際に製薬に応用することができるところ。研究のビジネス応用は、論文を書く研究者だけの問題ではないということ。 https://t.co/d9JN80tFz1」 / Twitter
- 理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora
- るくすさんはTwitterを使っています 「大学院時代、イノベーションの研究って何(笑)つってクソ馬鹿にしてたけど今になって割とまともな講義してたんだなって思い始めました ごめんな()」 / Twitter
- CLINAMEN @cosmologyさんはTwitterを使っています 「研究,脊髄反射的な思いつき程度でこうなりそうって思ったことって,とっくの昔に誰かがやり終えてるか,そもそも思い違いのどっちかだな.ここをどう乗り越えていくかが第一のハードルっぽい.あまり焦らずじっくりいくか.ここさえ越えられれば自力で成果出せるようになるのだしな.」 / Twitter
- ここ最近の計算社会科学の動向 - Sansan Builders Blog
- おしぼりさんはTwitterを使っています 「論文を読んでいるとググるだけじゃ見つけにくい情報がかなり見つかるのだけど、なぜこれをまとめたりする人がいないのだろう。著作権とかの問題があるのかな。」 / Twitter
- mumumuさんはTwitterを使っています 「@oshiborii モチベーションの問題ではないですかね?論文は出版物として評価されるし,ある程度信頼できる著作物として扱われますが,個人ブログは仮に有益であっても,業績にはカウントされにくいので... 個人のメモはともかく,時間をかけて調べたなら,せっかくなら業績にしたいという気持ちも理解できます.」 / Twitter
- Hideshi KagawaさんはTwitterを使っています 「「基礎研究は役に立たない」というのがよくわかんないのですが、我々応用研究開発しかしてないので、なにかあると基礎研究者のところへ教えを請いに行くわけで、聞きに行くところがあって良かった。日本って凄いな。と毎回思います。基礎研究は宇宙に役に立っていると積極的な発言が重要です。」 / Twitter
- norioさんはTwitterを使っています 「そもそも、論文書いてなくても、大学とか出て無くても 立派な研究をしてる人は一杯いる。 それを分かってない人が、あまりにも多過ぎなんですよ 肩書しか信用してない。 本当は言いたくないけど、 つまり肩書でしか判断出来ないアホしかいない」 / Twitter
- 【悲報】尾身会長をディスった茂木健一郎、「Google scholar」で論文を検索され実績がバレる | まとめまとめ
- Akinori ItoさんはTwitterを使っています 「その昔は夜中まで教授が激詰めゼミをやったりすることがままあったが、どうしてそんなに暇だったのか いまは半日もゼミやってる暇ないよ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「深夜12時から始まるゼミは激詰めゼミなんだろうか?JAISTで結構あった記憶がある」 / Twitter
- ytakanoさんはTwitterを使っています 「オリンピックは役に立たない事にジャブジャブ金・人・時間を使って良い事を示してくれて活力を与えてくれた。」 / Twitter
- ytakanoさんはTwitterを使っています 「役立たない研究にもジャブジャブ金・人・時間を使っていくぞ!」 / Twitter
- jicchoさんはTwitterを使っています 「良い資料だ。 自分も向上心を絶えず燃やし続けたい。 https://t.co/9vPizTn197」 / Twitter
- hara75.pdf
- 研究で詰まっている時におススメな本 - Seitaro Shinagawaの雑記帳
- 一流論文誌に採択される 研究戦略と論文執筆 - 2-3-1_washio.pdf
- ザキ研の研究室運営の今 2021年版 〜ZACKY's Laboratory 強み x 教育 研究室
- くとのさんはTwitterを使っています 「いろいろ作業していてふと思ったのですが、「余技の多い」人が本当に減ったなぁと感じます。約20年、抱えたままで引き継ぎできない雑用が多い一因が、人数削減とともに多分これ。(人文系に限ったことならよいのですけど)」 / Twitter
- くとのさんはTwitterを使っています 「評価が専門の研究に全振りされたから当然ではあるのですが、その結果、人数削減も相まってタコツボ化が進行し新しい研究も出てこない、教育も劣化するという悪循環になっていないか、という話です。(人数削減&業務増大で仕事が回らなくなったというだけでは説明が付かない何かがありそう)」 / Twitter
- 田口善弘さんはTwitterを使っています 「昔から思っていましたが、アメリカの研究者がやっているサイエンスはテクノロジーで、ヨーロッパの研究者がやっているサイエンスは哲学で、日本人がやっているサイエンスは趣味、という印象があります(悪い意味でいっているわけじゃないです)。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「科学論文は発明だった。16世紀まで、科学の成果は私信か講義でのみで伝えられていた。初期の論文はどれも単純で門外漢にもわかりやすかったが、現在はどれも極端に専門化しており理解に時間がかかる。将来、科学論文はアルゴリズムを記述したコードとして発表されようになる。 https://t.co/vy4JE3Yen5」 / Twitter
- The Scientific Paper Is Obsolete. Here's What's Next. - The Atlantic
- アラクーさんはTwitterを使っています 「挑戦的だが荒削りな仕事を頭ごなしにはねのけるみたいな態度って学問に携わる者が一番嫌うべきもののはずだし, アマチュアの数学活動を理解し支えることを目指して活動してる人々が多くいる中で, 露骨なアカデミズムを振りかざしてアマチュアの活動を嘲笑するみたいなポーズの人が多いのは残念に思う」 / Twitter
- アラクーさんはTwitterを使っています 「それこそ, 既存の数学は間違ってる!!!!!みたいな粗雑な言説で擬似数学的内容の書籍を出版したり, 高校数学もままならない理解で数学をダシに使うというような, そういうタイプの「トンデモ」では絶対にないのは成果物をちょっと読めばわかると思うし」 / Twitter
- 松原隆彦さんはTwitterを使っています 「国立大学の事務員は、以前は大学教員が研究教育に専念できるようサポートするスタッフだったのだが、運営費交付金の削減に伴って教員よりも事務員の定員削減が優先された結果、教員が事務業務をしないと回らなくなり、大学教員が事務員の業務をサポートするスタッフになってきた。」 / Twitter
- 理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora
- Kazuyuki Shudo / 首藤一幸さんはTwitterを使っています: 「コラム「ソフトウェアと論文」、掲載されました。日本ソフトウェア科学会の学会誌。 『「研究に欠かせないソフトウェアを開発しているのに、研究業績として評価してもらえない。」 たまにそんな愚痴を聞きます。』 コラム本文は、こちら https://t.co/RbV74ksDWP https://t.co/bjvTY6OmqA」 / Twitter
- ソフトウェアと論文, コンピュータソフトウェア, 2022年 8月号
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「2019年に発表された世界初のブラックホール映像はmatplotlibで作成されたが、その5日後に米国科学財団(NSF) は「十分なインパクトがない」という理由でその開発支援を中止した。現代科学の進歩は無数のOSSプロジェクトによって支えられているが、いまだ認知は非常に少ない。 https://t.co/CnrBfsf8N9」 / Twitter
- How to support open-source software and stay sane
OSS
Open-source intelligence
- Masayuki HattaさんはTwitterを使っています 「つうか、厳密にはインテリジェンスの文脈でのOpen SourceのほうがソフトウェアのOpen Sourceより初出は早いよ」 / Twitter
- yosuke tanakaさんはTwitterを使っています 「https://t.co/epxAvDvH7t オープンソースインテリジェンスの記事を読んでいると、ソースをソースコードと決めつけるのも狭量だなという気がしてきた。「源」が公開されてるだけなんだからニュースソースやリソースの源とかでもいい。」 / Twitter
- Open-source intelligence - Wikipedia
- Masayuki HattaさんはTwitterを使っています 「ソフトウェアの文脈でのOpen Sourceという言葉が出来たのは1998年くらいだけど、例えば1995年の時点でOpen Source Intelligenceの論文ある https://t.co/91DKxhdT2z」 / Twitter
- STRATINT OSINT MIL.pdf
Code of Conduct
- Kazuho OkuさんはTwitterを使っています 「えっそうなのかな。今のやつはだいたい 2014 年頃からのカンファレンスでの問題に由来する系のものだと思ってた cf. https://t.co/5PG6H3a4iQ」 / Twitter
- The New Normal: Codes of Conduct in 2015 and Beyond by Coraline Ada Ehmke | Model View Culture
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「今では割とみかけるCode of Conductってのは、オープンソースの世界ではUbuntuが元祖なのだろうと思う。まあ、他にもあったのかもしれないが、2006年あたりの当時、Debianという世界でのフレームがあまりにひどい状態になって、そこへ救世主のようにやってきたので一気に受け入れられたのだろう。」 / Twitter
Supply Chain Attack
- 1週間で数百万回もダウンロードされる人気JavaScriptライブラリが乗っ取られる、Windowsデバイスはパスワード盗難の恐れも - GIGAZINE
- ぬるぽへさんはTwitterを使っています 「OSSに対するsupply chain attack, 実現可能性が机上のものではなく現実的であり(というかもう何回も起きた)、防御も検知も困難(問題が発覚してからエンド開発者が対策するまで現状1,2日かかるという意味で)本当に最悪の攻撃ですよね OSSエコシステムがかなり発展して、依存が爆発的に増えた結果..」 / Twitter
- ぬるぽへさんはTwitterを使っています 「そしてこれって昔いわゆる非web系のビジネスサイドが非常に気にしていた「OSSなんて無料の製品に依存してセキュリティは大丈夫なのか」というアンサーになっている節が少しあり気になている 昔あまりこの手の問題が話題にならなかったのってやっぱり依存先が両手で数えられる程度だったからか」 / Twitter
- ぬるぽへさんはTwitterを使っています 「いやなんか「依存が爆発的に増えた結果」じゃない気がするな 昔は「OSSに依存する」って言ってもaptやせいぜい大手ライブラリみたいな、管理されたパッケージ(検査済み)に依存することが多くて、npmやなんならGitHubみたいな、中央管理者のいないパッケージに依存するようになったのが最近な気がする」 / Twitter
- Daisuke IizukaさんはTwitterを使っています 「@nullpo_head OSSなライブラリの特定バージョンを社内検証して維持管理できる大企業や、Googleのように全部自社製非公開だけど優秀な開発者が大勢居るので素早く改良できる会社有利になるのかな。あとはiptablesやSELinux的機能を使ってコンテナ内でアプリの変な挙動を許さない事、が普通になるのかな」 / Twitter
- retrageさんはTwitterを使っています 「Supply Chain Attack、少し昔は特にハードウェアでの攻撃が話題の中心だったけど、ここ2年ぐらいから特にソフトウェアの依存関係の文脈で話題に上がることが多くなった気がする」 / Twitter
- goyoさんはTwitterを使っています 「OSSもよく他のOSSとのサプライチェーン形成してるし、難しい問題。高度なQAが求められるようになってる」 / Twitter
定義
- Shuji SadoさんはTwitterを使っています 「俺オープンソースの話題が出ると思うことだが、単に定義があるので正しく使おう、ということではなく、当時の有力開発者、著名人(RMS除く)が揃って今後はオープンソースという新語を使っていくと宣言したプロセスを踏まえてほしいなと思う。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「オープンソースという概念が最初にあってOSIが出来たのではなくて、ソースコードの共有文化が最初にあり、それを開発者ごとロックインしたプロプライエタリソフトウェアが発生し、これに対抗するためのフリーソフトウェア活動が生まれ、」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「プロプラへの対抗などの意味をなしに、中立的にソースコードを共有することを指す言葉としてオープンソース(という言葉)が人為的に生みだされた。 https://t.co/IrOe0WzSnK ので、自然発生語ではないんですよね。」 / Twitter
- History of the OSI | Open Source Initiative
- まさみさん⋈語りたいさんはTwitterを使っています 「寧ろメタ自然発生語としてはFOSSとかFLOSSの方が良いんじゃないだろうか。日本語にはなってないけど。 https://t.co/WfL578DtOL 日本語的にはフリーとオープンが区別しにくかったのかな。あとフリーソフトがその前にあったし。」 / Twitter
- Free and open-source software - Wikipedia
- ママレモンサワーさんはTwitterを使っています 「オープンソースの定義がどうこうの話時々聞くけどあれでどうにかなるのは著作権の話で、それとは別にパテントの問題が出てくるよね?」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「あの商標登録は「誰かがオープンソースという名称で登録して、この言葉を独占的に使おうとするアクションを起こされないように」という予防的な目的のみで行われているはずで、「オープンソース」という言葉の定義に権威を与える目的ではないはずだし、そもそもそんな機能は商標にはない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「テクニカルタームだからちゃんと使え、には賛成だけど、一般名詞だよなー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「僕はOSGJからライセンスをうけてオープンソースという言葉を使っているという認識はないなー。というか、そんなこと言われたら怒るでしょ普通」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「OSDJの商品もしくはサービスに言及する表現として使っているという認識はない、がより正確かな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そして、そのどちらでもないものに対する言及としての「オープンソース」が大多数の用例である以上、商標権行使できないのでは?という。商標を抑えておくこと自体は意味があるし、敬意を示すところではあるけれど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「OSI自身が「オープンソース」を商標登録して、認定外のライセンスを用いるソフトウェアに対して抗議してきた歴史ってあるの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実務上は、審査官に拒絶理由を可視化するのが目的で、それで十分なんだと思う」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho OSIは1999年に商標登録を試みたんですが、既にOpen Sourceという言葉が広まってしまっていたために、登録に失敗したようです: https://t.co/lFgKFz06kI」 / Twitter
- Open Source Certification:Press Releases | Open Source Initiative
- 私とOSSの25年
- Kazuho OkuさんはTwitterを使っています 「そうそう。改変の自由であって、改変をレビューしてもらう権利でもマージしてもらう権利でもないという」 / Twitter
- 徳永広夢さんはTwitterを使っています 「OSS は fork どんどんできるのが醍醐味なのに~」 / Twitter
Red Hat
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Red Hatのサイトにオープンソース誕生の経緯について書かれている文章をたまたま見かけたのだけど、うまい具合にVA LinuxとDebianの存在を消していて、これが勝者による歴史という奴かと感心してしまった。「ソースウェア」と呼んでた会社を吸収していることはどこにもないな https://t.co/YmUoXtc3JP」 / Twitter
- オープンソース (open source) とは - 特徴とメリット | Red Hat
- SODA NoriyukiさんはTwitterを使っています 「GNU toolchain のサポートで主に食っていて、いまでも cygwin に名を残している Cygnus Solutions ですな>Red Hat が吸収したオープンソースの著名企業。 当時OSS的には Red Hat よりも Cygnus の方が信頼されてたブランドだったのよねえ」 / Twitter
GNU
- SODA NoriyukiさんはTwitterを使っています 「ソースを見たいってのはプログラマーにとっては根源的な欲望だし、 若い頃にそれが可能な理想環境にいて、それが LMI vs Symbolics の揉め事で崩壊していく過程を経験したら、ああなるのも自然な気がするけどな… まあ僕も https://t.co/JFEBuqtIY8 を読んだ程度なのでそんなに詳しくないけど」 / Twitter
- ハッカーズ | スティーブン・レビー, 信子, 松田, 古橋 芳恵 |本 | 通販 | Amazon
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「週末に日米でソフトウェアに著作権が認められる経緯を調べてたのは、RMSがGNUにまで到達する時代背景をおさらいしたかっただけなのだけど、何と言うかベル研によるUNIXもLinusによるLinuxもその発展は理解できるが、RMSだけはやっぱり分からん。解脱しないと境地に達することはなさそうなので放置。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@shujisado わかりたくないだけなんじゃないですか」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「@shinji_kono 私は流されるままの凡人でいいです」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「発想自体は自然だけど、実際に実行してやり遂げちゃうのは普通じゃないです。」 / Twitter
- artonさんはTwitterを使っています 「@n_soda あれは後やっぱり70年代という時代背景(要はヒッピーのシェア文化――とにかくいろいろシェアする)も大きいんじゃないかなぁ。見てくれがヒッピー引きずっているし。」 / Twitter
- Norihiro KumagaiさんはTwitterを使っています 「@n_soda @a_saitoh あの通信線(接続)を切断するくだり、涙なしでは読めない(1回しか読んでませんが)。」 / Twitter
histric
histric-1
- 伊津野 英克さんはTwitterを使っています 「最近、OS作ったとか言語作ったとかそういう人多すぎて界隈怖いのよね。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「OSS活動」という表現がしばしば「既存の大きいライブラリや処理系などのソフトウェアにcontributeすること」*のみ* を指していて「ゼロから(多くの人が使える)大きいソフトウェアを実装していくこと」を含んでいないであろう使われ方をしているの若干片手落ちな感じがしないでもない」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「OSS言ってても、価値を生む場所はクローズドなんだから、これで素敵という認識をするのがマーケティング戦略に騙されやすい人だと思う。世の中を進化させたいのであれば、東大の加藤先生みたいに自動運転のソースを公開すればいいのにと https://t.co/NK0hM8sWfE」 / Twitter
- イーロン・マスクが特許をオープンソース化した理由がブっ飛んでてステキだった – ベルリンで働くソフトウェアエンジニアのブログ
- Makoto Kato ︎︎さんはTwitterを使っています 「個人的には保険会社対策として、自動運転関連はOSSでかつApacheライセンスじゃなくてMPLに近いライセンスにせざるとえなくなるのでは?って思ってはいる。それか保険会社向けに常にコードを公開することになるとか (MicrosoftのShared Sourceみたいな感じ)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「これはまったくそう。昔あるOSSのプロダクトに再現手順付きでバグを報告したら、「テストケースが付属してないから対応するつもりはない。テストケース付けろ」と言われて、そこまでする義理ないから無視してたら催促までされて本当にムカついた。」 / Twitter
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「こういう態度がOSS萎縮させる要因の一つだと思います。「言い出しっぺの法則」を言い出したら誰も物言わなくなる。 ニーズ・要望を気軽に出していきましょう。 ただしそれが他との整合性や実現可能性、優先順位などの理由で採択されなくても文句言わない、そこで文句言うなら自力でなんとかしましょう」 / Twitter
- めるぽん.acさんはTwitterを使っています 「OSS にある要望系の issue、とりあえず「なぜあなたが実装しないんですか?」って聞くのが最初のステップ」 / Twitter
- めるぽん.acさんはTwitterを使っています 「次のステップは「この機能を継続的にメンテナンスして貰えますか?」」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「対応するかは別としても、要望もバグ報告もありがたいけどなぁ。気に入らないなら放置すればいいのに。」 / Twitter
- Yu WatanabeさんはTwitterを使っています 「えー。。。いや、そんなぁ。要領を得なかったりルールを守ってないissueはさっくりcloseするから全然構わんのに。 そんなことより萎縮されちゃうほうが問題。 OSSなんだからIssueたてるのもPRたてるのも自由。開発者側も、無視するのもコメントするのもアクセプトするのも自由。それでいいじゃない。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「旬を逃さないうちに書き殴りました。 「issueを立てるな!」 - Qiita https://t.co/0AYTkhzvmy」 / Twitter
- 「issueを立てるな!」 - Qiita
- Yu WatanabeさんはTwitterを使っています 「元々大学にいたからかなぁ。素っ頓狂だったり的外れな質問や指摘にはものすごい耐性がある。「聞くは一時の恥、聞かぬは一生の恥」これはどんな分野にも当てはまると思う。もちろん、聞かれる方にもキャパシティはあるから、無視する権利もあるけどね。 いーじゃん、ワイワイとやれば。」 / Twitter
- Yukiharu YABUKI botさんはTwitterを使っています 「@yuwtnbe やり方が気に入らないなら、成功するかどうかはべつにしてforkする自由もある。大変だけど。」 / Twitter
- Yu WatanabeさんはTwitterを使っています 「@YukiharuYABUKI ですよねー。 それに、GitHubだと IssueやPRを受け付けるかどうかの設定もできるみたいですね。いじったことないけど。 煩いと感じるならその辺を設定しとけばいいですよね。」 / Twitter
- songmuさんはTwitterを使っています 「OSSも人間の活動だからプロジェクト毎に個性がある。 なのでOSSのお作法、みたいなものに捉われないで、それぞれのプロジェクトとどの様に関わればうまくいくのかを、個別に向き合っていく必要がある。 世知辛いかも知れませんが、僕達の苦手な人付き合いと同じなんですよね。」 / Twitter
- songmuさんはTwitterを使っています 「まずは、README等以外にも、issueやpull requestで雰囲気を掴んだり、メンテナの他のプロジェクトを見たり、類似プロジェクトをみたりして、どういう風にコンタクトすれば良いかを探る。」 / Twitter
- songmuさんはTwitterを使っています 「OSSだからこうすべきだ、みたいなのは、個に向き合わずに、楽さを求めようとしている。マナー講師と同じ。」 / Twitter
- songmuさんはTwitterを使っています 「コンテキストが(程度の差はあれ)オープンになっているからこそ、新たに関わりやすいのがOSSの面白いところなのだから、個々の違いを楽しまないと。」 / Twitter
- ソースコードを公開したソフトウェアで収益を得ている会社
- won't fix: Web Speech APIのSpeechSynthesisEvent.elapsedTimeは秒を返すのだけど
- OSSへの要望をカジュアルに提案することについて | うなすけとあれこれ
- オープンソースソフトウェアの保守を職業として成立させるために必要なアイデアとは? - GIGAZINE
- Rui UeyamaさんはTwitterを使っています 「オープンソースの古い機能がドロップできない意外な理由の一つは、少数でもめちゃくちゃ怒る人がいるっていうのがありそう。Unicodeも怖い界隈というイメージあるし・・。lld作ってるときも、Linuxカーネル開発者になぜこの機能必要なの?と聞いたら激しくキレられて理不尽ながらも圧はかなり感じた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Linuxカーネルの話は相手もGoogle社員だったので、仮にLinuxカーネル開発者界隈では許されている言動だとしても社内同士では完全にアウトだったと思うが・・。」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「@rui314 みんななかよく…」 / Twitter
- Taku KudoさんはTwitterを使っています: 「またオレオレOSSを振りかざして大迷惑。メンテナンスすることはOSSの要件に入っていない。放置するのも引っ込めるのも開発者の自由。こういうこと言われるとほんと嫌になるし萎縮するよ。何度も言ってるけど、OSSじゃなかったらソースすら見れないんだという反実仮想をして欲しい。」 / Twitter
- Yuta KashinoさんはTwitterを使っています: 「(´-`).。oO( 最近,数年前にある研究者が実装したOSSのプロダクトを使い始めたのですが,エンジニアと違って論文になってしまったらメンテする気が全くないの….イシューもバグも放置.せめて4年過ぎて全くメンテしないなら,リポジトリをプライベートにして公開ドキュメントを引っ込めて… )」 / Twitter
- 🐟☣☢️🍤🦀🐄🗡💻🦞🦐📶🎣さんはTwitterを使っています: 「@yutakashino privateにせえというのはウルトライカれた狂気の沙汰なので https://t.co/b6zDInBclQ メンテナンスが出来ないことが気になるメンテナーさんは一旦 Repositoryのarchive modeぐらいでいいんじゃないですかね...」 / Twitter
- Archiving repositories | The GitHub Blog
- s/vさんはTwitterを使っています: 「@yutakashino "AS IS" の提供という姿勢に納得いかないなら、それはライセンスに同意してないということですよね。 ライセンスに同意せずにOSSを使うのは違法ですよ。」 / Twitter
- 裏さんはTwitterを使っています: 「@yutakashino 何で文句言ってるのか全然理解できないすね。お金払って頭下げてメンテしてもらおうとして断られたんですか?そもそもOSSなんだからフォークして自分でメンテすればいいじゃないすか。」 / Twitter
- 裏さんはTwitterを使っています: 「@yutakashino こんな妄言間に受けて古いOSS引っ込めちゃうひとがいたら迷惑だからやめてほしいなあ。」 / Twitter
IT
その他
- やみとも(数学、プログラミング、畑)さんはTwitterを使っています 「ある統計本の回帰分析の説明で「パラメータをギリシャ文字、変数をアルファベットにして区別します」という説明にかなり価値を感じたんだが、こういう本質には関係ないけどこれからいろいろな数式を読む上で便利になる知識大切だと思う。」 / Twitter
- 令掛ベインさんはTwitterを使っています 「略語に複数形のsをつけると違和感がある問題の対策として略語+コレクションの名前(posList)を使うことがしばしばある」 / Twitter
- 「早くリリースして、早く改善しよう」の落とし穴―― 開発畑のプロダクトマネージャーの失敗から学べ (1/4):ProductZine(プロダクトジン)
- Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています 「古き良きLSI屋の会社はフルスタックで配置配線ツールやアナログのシミュレーターやら論理設計の言語と合成の処理系やらを内製してたんで、今どきの「低レイヤー」なんてのを「お高いんですね!」って鼻で笑えるレベルの低レイヤー。 あの部隊を何かに転用できなかったってのは割と国家的損失?」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「プログラミングというのはコンピュータに指示を出すこととよく言われるけど、実際には人間側の行動手順の規定しないといけないので、利用者も含めた処理手順を整理記述することなんだよな。」 / Twitter
- 今年新卒で大手のSIerに入社したものです。将来はPMの道に進みたいと思っているのですが、現在業務ではプログラミングをほとんどしません。業務時間外にプログラミングを勉強した方がよいでしょうか?に対するKuranami Koichiさんの回答 - Quora
- Shinji KonoさんはTwitterを使っています 「デジタル化とかDXとか仕事量を減らす楽にするとか考えてるのがいるのがなぁ。引き算としか考えてない。 もちろん、デジタル化DX化は高度化と生産性向上であって、ついていけないのは放り出されるんだよ。仕事が易しくなったりしない。 学ばない人の居場所はない。」 / Twitter
- take-cheezeさんはTwitterを使っています 「ものづくり、ものを作ってない時の方がずっと大事で、ものづくりだけ見ると全てを見失ってる」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「政治を「科学的事実」によって裏付けすることの危険性。もともと科学には完全な客観性などというものは存在しないにもかかわらず、人々はそれを期待している。そのため複数の相反する「科学的事実」が出てくると、人はどちらを信じるかをめぐってますます分断を深めてしまう。 https://t.co/gM5GfOEnox」 / Twitter
- Why Science Can't Settle Political Disputes | The MIT Press Reader
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「ある機能が欲しいか?」と聞かれるとユーザはほぼ例外なく "YES!" と答えるが、ユーザがすべての情報を与えてくれるわけではない。機能の仕様設計にはユーザのワークフローを理解することが不可欠で、それがないとたとえ実装しても全然使われないことがある。 https://t.co/ESq5f68UVc」 / Twitter
- When users never use the features they asked for - Austin Z. Henley
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「自分は「ベストプラクティス」という言葉が嫌いだ。多くの場合それは科学的根拠のないただの押しつけである。ほとんどのベストプラクティスは「伝統」「パターン」「標準」と呼ばれるべきで、つねに論理的な理由が必要だ。それを説明しないのは怠惰である。 https://t.co/dMgDRj0U5B」 / Twitter
- Best Practices (why I Hate Them)
- Makoto Kato ︎︎さんはTwitterを使っています 「自身の経験から思うのは、いかにバグ報告システムの入口をゆるくしても、報告せずに騒ぐ人は多いし、ゆるくすればするほどDon't workみたいな自分の環境で何かが動かないみたいな曖昧な話を報告するのが増えるし、どのくらいの塩梅がいいのか未だわからないということ」 / Twitter
- Tetsuya MorimotoさんはTwitterを使っています 「@makoto_kato 私は慣れてしまってわからない感覚なのですが、バグ報告システム (課題管理システム) の学習コストは使ったことがない人たちにとって高くて、一時的に使う目的で強いるのはやや敷居が高いのではないかと考えるようになりました。もし開発者にとってもそうであれば、非開発者にとっては無理だろうなとも」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「そういうシステムに対してDeep Learningで解決ある程度できるのかどうかと思ってたけど、ChromiumのMontrailとかMicrosoftのFeedback Hubとか見てると人力でしか未だになくて (Feedback Hubは裏でいろいろ解析してるかもしれないけど)、人間には未だにそれを解決する頭脳は伴ってないのかも」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「なので、Safari/iOSのバグってたぶん騒ぐだけ騒いでWebKitのBugzillaなりに報告する人ってそうとう少ないんだろうな感。Apple側も対応がまずいのはあるけど (radarに登録してあったとしても実際作業されているのかがわからないからね)。それはMozillaも同じではある部分もあるけど」 / Twitter
- プログラマー・岩田聡の“伝説的エピソード” 「MOTHER2」復活対談で裏側明かす - ねとらぼ
- 『MOTHER2』ふっかつ記念対談 はじめてのひとも、もういちどのひとも。 - ほぼ日刊イトイ新聞
- アマチュアアカウントさんはTwitterを使っています 「20年前と今で意味が変わった言葉 API 20年前:一連のクラス/関数のインターフェイス/シグネチャ 今:httpでJSON投げるとJSONが返ってくるやつ SDK 20年前:高水準のクラスライブラリ 今:httpで投げるJSONを作って投げるやつ →RT」 / Twitter
- syuntaさんはTwitterを使っています 「任意のSDK、実体はただのHTTPクライアントなのありがち。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債とか銀の弾丸という言葉を使うと、ポエムになりがち」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンピュータってもともと計算する人って言う意味だと考えると、5000年はさかのぼりそう。それは無いとしてもPascalの計算機か階差機関だろうか」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「講演者「一番じゃなきゃ意味がないんです。世界で最初のコンピュータがENIACだというのは皆さんご存知ですね」 聴講者1「違います、ABCです」聴講者2「Colossusです」聴講者3「EDVACです」聴講者4「EDSACです」を一度見てみたい。@rironriron」 / Twitter
- 不要なデータがなかなか捨てられない現代の病「デジタルためこみ症」とは? - GIGAZINE
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「先日高校生向けの本にインタビューを受けて「今後のデザイナーに必要なスキルは?」と聞かれ「AIに代替されないスキル」だと答えた。「表層」のデザインは恐らく代替されると思う。ただ、「プロジェクトをリードし、戦略を立て、人を巻き込み、方向性を決める」というスキルはAIには代替されないはず。」 / Twitter
- 要件定義を専門でやる技術者(Requirement Engineer)に関する雑感 - 勘と経験と読経
- 日経ウォッチャー・トレンド&インサイド
- Smalltalkによる伝説のプロジェクト - kなんとかの日記
セキュリティ
- ドコモ口座問題 - OAuth.jp
- MiyahanさんはTwitterを使っています 「大企業でありがちな「面倒になるだけで効果がほぼ無い(どころかむしろ悪化する」セキュリティ施策を海外では "security theater" (劇場型セキュリティ)と呼ぶと知りセンスあるなぁと関心している。 日本語の "セキュリティごっこ" も極めて的を射ているが毒が強すぎて当事者への説得に使えないのが難」 / Twitter
システム障害
- 「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る - Publickey
- 東証、障害の原因を特定 設定値に不備、切り替え失敗 - ITmedia ビジネスオンライン
- 品川 高廣さんはTwitterを使っています 「東証のシステム障害の原因が設定ミスと聞いて、ああよくあることだねとしか言えない。https://t.co/sKKKoWe2ro」 / Twitter
- An empirical study on configuration errors in commercial and open source systems | Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
- hrk先生さんはTwitterを使っています 「@utshina2 問題は、各パーツは品質が良いので多様な故障発生状況をあらかじめテストすることができないことと思います。故障解析で、通ってないパスが沢山あるのじゃないかな? 故障率が10000倍高いメモリとかストレージとかプロセッサチップが出来れば貢献するのかな?」 / Twitter
- 品川 高廣さんはTwitterを使っています 「@Prof_hrk 最近は software fault injection でソフトウェア的に擬似的な故障を発生させてエラー処理を検証する研究も幾つかなされていますね。手前味噌ながら、我々も BitVisor で実ハードウェア環境で疑似故障を挿入する研究をやっていました。https://t.co/yEaP5w4OXW https://t.co/u2AycsJCkf」 / Twitter
- Testing device drivers against hardware failures in real environments | Proceedings of the 31st Annual ACM Symposium on Applied Computing
- FaultVisor2: Testing Hypervisor Device Drivers Against Real Hardware Failures - IEEE Conference Publication
- hrk先生さんはTwitterを使っています 「@utshina2 それは知っているのですが、ソフトウェアは知っている壊れ方しか再現・擬似実現しないというところに限界があると思っています。 プロセッサ設計でも、ここが危ないと思ったところには普通バグが入らないです。」 / Twitter
- 品川 高廣さんはTwitterを使っています 「@Prof_hrk メモリの壊れ方を調べた empirical study はあるようですが(https://t.co/fwGYHNBfW8 等)、プロセッサの壊れ方を調べた論文はざっと見た限りはあまり見つからないですね。普通はあまり壊れなさそうな気がしますが、どんな壊れ方をするんでしょうか?」 / Twitter
- dsn07.dvi - hotdep2007.pdf
- (1) hrk先生さんはTwitterを使っています 「@utshina2 一番あるのは浮動小数点が温度や電圧の都合で値化けすること。次はPCIE等のI/Fかな?マザーボードによっては同じく温度・電圧でご機嫌がでそう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い。 同じCPU内で、整数演算系に比べて、浮動小数点が選択的に弱いとしたら、理由は何だろう?? (答えまでのパスが長くて、エラー検査間隔が長いとか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、科学技術計算(スパコンとAI?)とそれ以外(Web、金融、DB、業務系)では、前者が浮動小数点演算メイン、後者は整数演算メインという違いあると予想。 それが割当トランジスタ数と、実行時の処理割合にも反映して、確率的に前者なら浮動小数点エラー増え気味、とかはありそう?」 / Twitter
- 東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
- Shinji KonoさんはTwitterを使っています 「切り替えというけど、切り替わる条件は無数にあるので全部をテストするには、モデル検査するしかない。本番環境でのモデル検査は普通は不可能。この規模だと二系統は用意しないだろうし。」 / Twitter
- 10月1日に株式売買システムで発生した障害について | 日本取引所グループ
システムは自然と壊れる
- ところてんさんはTwitterを使っています 「企業の幹部向け研修用に、「ITシステムはなぜ『自然と壊れる』のか」というのを書かねばならん気がしてきたが、なんかいい資料ないかな…… - 外部環境の変化 - 脆弱性対応 - DBの肥大化、ディスク・メモリ容量不足 - 新規のコードの追加 - ハードウェア本体の故障 - ネットワークの故障 etc...」 / Twitter
- ところてんさんはTwitterを使っています 「2000年問題、2038年問題は分かりやすいので入れるとして、あとどーすっかなぁ OSのサポート切れ、開発言語のサポート切れ、あたりは入れるとして」 / Twitter
- 靴屋のスミスさんはTwitterを使っています 「@tokoroten 「サポートが切れるから」使えない、使ってはいけない、というのは、システムが自然崩壊する現象への対策が行えなくなるという、謂わば二次的な理由なので、システムが自然崩壊するのはなぜか、の理由の一覧に並列で記載しないよう、お願い申し上げたくござります。」 / Twitter
進捗・インクリメンタルな開発
- Yasunori GotoさんはTwitterを使っています 「あー… なんか似てるかも…。 テレワークになってから特に…。」 / Twitter
- ymmtさんはTwitterを使っています 「@satoru_takeuchi 1. こまめにアウトプットする。 2. 集中しないのがデフォルトだと割り切って焦らない。 なにがしかやってればそのうち興がのるタイミングがあって、そのとき大きく進捗します。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「私も,小さく試す,本格的に作る前にプロトタイピングするということをしょっちゅうしています。幼少の頃,レゴブロックで色々試行錯誤していたのと,小学校・中学校でプログラミングにて散々ハマりまくったので,自然とその習慣が身についたんだと思います。 https://t.co/O0okFVJ2gy」 / Twitter
- ついに達人がハマらない原因を見つけたかもしれない話|牛尾 剛|note
- 7594591200220899443さんはTwitterを使っています 「これだけは言っておかねばと思うのだけれど、右と左は別に品質面で差が出るような違いではない。ウォーターフォールが失敗した時には低品質の物が期限通りに出てくると思うべからず。そうなった時には期限日には何も出てこないのが実情である。」 / Twitter
- jMatsuzaki🔥さんはTwitterを使っています 「←期限ギリギリで低品質な物を作り上げる人のスケジュール →期限内に高品質な物を余裕を持って仕上げる人のスケジュール https://t.co/PUucITCacM」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「最後にジャーンと出来上がった物を比べた時にウォーターフォールが特段に低品質ということはないはずと理解している。ただ納期は破綻する。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「むしろ逆に低品質だろうが何だろうがともかく納期に何かが動いているというのが反復プロセスの特徴とも言える。」 / Twitter
クラウド == メインフレーム
- Shinji KonoさんはTwitterを使っています 「Cloudとか言ってるが、結局は課金制大型計算機センタなんだよな。JCLの代わりにLmbdaで戦ってるだけでさ。そこから抜け出したくて、マイコンミニコン、Unixだったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「インターネット上のスケールする分散アプリの代わりにCDNってのは退化だと感じる。メインフレームの第n次オンライン的な。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Cloudのダウンは、httpsとCDNで囲い込んだ報い。本来は蜘蛛の巣的なキャッシュあるいは自律サーバネットワークで止まらないはず。ただし、updateはリアルタイムではないがな。リアルタイムを求めるなら、そこに行かなくては。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Playstationの予約でサーバダウンとかやってた頃を繰り返してる」 / Twitter
意味のある技術
- Hiromitsu TakagiさんはTwitterを使っています 「思い出すのは、大学で研究室に配属になった1988年頃の話。当時の一つのブームは「データフローコンピュータ」だった。指導教授がその道で名を上げかけた方(米国で見てきたものを国内で再現的な)で、当時の第五世代コンピュータのテーマの一つでもあった(教授は枠外)ので研究室のテーマはそれ。で…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…で、データフロー型の謳い文句は「ノイマン型コンピュータには限界がある。データのフローを直接処理することで問題が持つ並列性をそのまま並列実行できるのだ、と言うのだけども、コスト度外視なのね。連想メモリ(content addressable memory、データを入力するとアドレスが出る)の回路を使って…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…使って作るというのだけど、規模はどうするよとか、条件分岐は?とかいろいろ問題あり。M1の頃にはすでにおかしいと気づいており、fjに書くなどしていたら、学会の懇親会で偉い先輩(今の大ボス)に「君さあ」的なことを言われたwのであった。自分の研究は教授から与えられたネタで、それ自体は…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…それ自体は、なんというか、思いつきの一つの設計例にすぎず、その有用性を語るなんてできないわなと思って、学部の卒論の時点で、どうにか意味のある内容に変更(データフローコンピュータはトークン(データ)をキューに流すのだけども、データはメモリにおいてキューのカウンタだけ使う)して…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…して凌いだ。その後、Mではその方式を一般化して概念を確立させ研究会デビュー、ちょうど国際的にも似てるけどちょっと違う方式が出てきていたので、それらと比較して一つの小分野を構築することができ、どうにかD論に持って行けたのは、幸いだった。ちょっとした違いで人生大幅に違っていただろう。」 / Twitter
- 富岳てるみさんはTwitterを使っています 「「スパコンでなければならないのか?グリッドでいいのではないのか?」というのは、ある意味真だし、ある意味偽でもある。まぁ原理的にはグリッドですべて賄えるといえば賄えるけど。明日の天気予報に一か月とかかけていいなら」 / Twitter
- 宇賀智之さんはTwitterを使っています 「日本のスパコンにかける情熱は素晴らしい。 しかし、どれほど有効活用されているのだろう。 そして僕は常々思うことに、家庭のPCをつなぎ合わせて、一つのコンピューターとして見なすことで凄まじい情報処理ができるのではないだろうか。」 / Twitter
- Masakazu SekijimaさんはTwitterを使っています 「@telmin_orca @sacred_fox SETI@homeやFolding@homeとスパコンが計算している“ならでは”のものの区別がついていないというか後者を知らないだけかもしれません。」 / Twitter
- 富岳てるみさんはTwitterを使っています 「xxはどれほど有効に使われているのか?(xxには結構な高値のあれこれを入れよう) というのは、結局ポジショントークでしかないのでやめたほうがいいですよ。世の中には、自分は知らないけど活用されているものって山ほどあるわけで」 / Twitter
- 富岳てるみさんはTwitterを使っています 「まぁどこかの世界には、1Exaの計算を実現するのに1PFlopsの計算機を1000倍長く稼働させればいいとかいうことを言っていたヤツもいるので、みなさんはそういうアホにならないように気をつけてください。今必要な計算を1000倍の時間かけてやっても意味はないです」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「テクノロジーとは物を作る能力ではなく価値を具現化することだという結論に至った」 / Twitter
単純から複雑にではなく、複雑から単純に進む
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「なるほど、と思った。オブジェクト指向に限らず、技術というのはそういうものだと思う。難しいことをしようとするから技術が必要になる。だから技術から遠い人ほど、新しい技術を入門者にわかりやすく説明しろ、普及の努力をしろと言う。でも技術は、学ぶ人が難しい実施をして初めて価値が理解される。」 / Twitter
- 杉本啓さんはTwitterを使っています 「複雑なコードが必要でない場面で、オブジェクト指向の価値はわかりづらい。 僕は、会計分野で、持分計算や配賦計算といった複雑な処理をオブジェクト指向的に書いて、あ、これはいいなと思った。そうすると、単純な処理にも使いたくなる。 単純から複雑にではなく、複雑から単純に進むんだな。」 / Twitter
- 杉本啓さんはTwitterを使っています 「だけど、オブジェクト指向の解説は、単純な例ばかり挙げる。それでオブジェクト指向のありがたみをわかれというのは、かなり無理スジだ。オブジェクト信奉者も、本当は分かっていないで、カッコよさげだから信奉している場合が多いのだろうと思う。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「形式仕様もそう。普及の努力はもちろん必要だけど、その努力が生きるのは、従来手法で本当に難しい開発をしていて、これは作る対象をガッチリ定義しないとどうにも手に負えないと観念して、その時に学ぶ方法を提供されていることが大事。必要としていない人に売り込んでも、誰も幸せになれない。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「この、一度手に追えなくて観念することが大事なんだと思う。そこから適切な技術に出会って、同じ対象を見る目が変わる。これが技術を理解するということなのだと思う。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まさにまさに (何か意見を言いたいのだがこれの話に足すことも引くことも出来なかった >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「でも、この場合はコンピュータサイエンスの面でのソリューションなわけだけどおそらく世の中の問題の解決方法が全てCSなわけじゃないから慢心はよくなと思う」 / Twitter
- Miura HidekiさんはTwitterを使っています 「IT系の人が思うほどにはITで解決できる問題は少ないと思うし、非IT系の人が思うほどにはITで解決できる問題は少なくないと思う」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 多いか少ないかはともかく、利用現場の調査もなくITで解決できると思うことは裏切られるし、ITの理解なく従来のやり方に拘っているのを少し譲歩してIT的合理化を取り入れれば効率があがるというものもそこかしこにありそうな気はします。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そう、そしてIT系の中でもソフトウェアだけで解決できる問題は思ったより少ない。でも、そのギャップがあるからこそ、ソフトウェア系の研究は面白い。ソフトウェア系でない人が思うよりソフトウェアでできることが多いから、ソフトウェア研究者にとって学際的な研究は面白い。」 / Twitter
新しい価値の創造
- ひさてるさんさんはTwitterを使っています: 「これは僕の持論なんですが、ソフトウェアによって新しい価値を創造するというのは天才の仕事なので、理屈を人に説明してやらせるものではなく、何ひとつ同じでないことを各自が勝手にやるものだから、知識と経験がある人がやるのは、実現の苦労でくじけない支えとなるベタな技術の伝達だけでいいかなと」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「自社サービス屋だけじゃなく、ドメインとIT屋であっても、それぞれが持つ固有の課題はたいがい社外秘なんですよね。結果価値を出してるところには、何かしらもうそんなのはあるんですよね。なので組織をまたいで共通して語れることは、ITなら支えるための技法だし、ビジネスでも無難な一般論とかしか…」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「売りやすい技法にしか目を向けていなくて、固有の価値の存在すら認識できていない、なんて実は、たいして生き残らないからほっとけばよくて、せっかく固有の価値を持ったもの(案外ある)が、保守コストの肥大化みたいなしょうもない理由で滅ばないようにするのが、設計論の役目じゃないかなと」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「ソフトウェアに限らず、すごい創作意欲ってたいがいは、商品になるまでに挫けて消えちゃうじゃないですか。モチベを超えるコストで疲弊して。無駄な苦労をせずに済むようにすることが、いちばん作品を世に出す確率を上げて、その支えがスキルと呼ばれるものだと思うんですよね」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「ひどい言い方をすると、ドメインモデルそのものを語りそこだけに意識を持って行かせるのは、ビジネスアイデアの出し方セミナーをやって何かをひねり出させては、参加者を起業してすぐ倒産に陥れるだけになっちゃう感じがして。そんなことより、明確な夢があると期待して、つぶれない経営を教えた方が…」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「とはいえ、対象者が、表向き明確な夢を持っていても、本心では実は、ネタは何でもいいから金になればいい、上場してチヤホヤされたい、なだけかもしれないというのはある。でね、僕の考えは、そんなん知らんがな、前提が欠落してる人は自業自得やろ、なんですわ。ひどいかもしれんけど」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「ある方法論を持ち上げて、何に対する熱意もない人でも、これをやればたちどころにビジネスアイデアが湧き出てきて、魔法の力で実現されます、みたいなものだと思わせる(悪意なくそう自分も自分に騙されている)人の出すノイズは、僕がこの形しかないよなと思ってる状況にとってさえマイナスだから反対」 / Twitter
- ひろゆきがティム・オライリーに直接きいた、「Web2.0ってなんだったの?」 - CNET Japan
- mattnさんはTwitterを使っています: 「今のソフトウェア開発界隈、普段の素振りで可能な限り浅く広く色んな知識を吸収しておいて、いざ業務でやるってなった時にどれだけの速度で専門家になれるかがエンジニアの評価基準になってしまった氣がする。流行り廃りが早いので1つの技術の専門家やっとけば食べれた時代は終わった。」 / Twitter
- 登さん、LAPRASをどう思いますか?そしてエンジニアは今後どうすべきですか? - LAPRAS NOTE
チェックデジット
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「これがチェックデジットあると1人1分が10秒以下になるんですよ…目視点検と読み合わせしなくても良くなるから。チェックデジットは正しく設計すると、入力誤りを極めて高率に捉えるのです。誤り混入率が1/10になるだけと思ってる人がいるようですが違います。人の入力誤りって奥深いんです(研究中)。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「単一桁誤りと、隣り合う数字の入れ替わりを確実に検出できるチェックデジットあるの知らなかった https://t.co/lKAhjNAxjZ」 / Twitter
- Verhoeff algorithm - Wikipedia
広く使ってもらうための戦略
- uint256_tさんはTwitterを使っています 「誰かに使ってもらえるものを作るにはどうすればいいんだろうね」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t ポイントは「巨人の肩」と「応用事例も作ること」そして「世界に向けて発信すること」だと思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「巨人の肩」というのは,既存のインフラとの親和性を良くすること,差別化点をはっきりすることが重要になってきます。既存のものに対する調査と,階層構造を踏まえることが大事になってきます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「応用事例を作ること」は,自分が発信したいプログラムを活用した事例を作り,それも含めて発信することが大事なポイントです。そうすると,もともとのプログラムをどう改良していけばいいかの指針も得られます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「世界に向けて発信すること」は,単にGitHubに公開し,Twitterでつぶやいているだけでは,誰かの目に止まることは難しいということです。もっと広く情報を発信しないと,注目を集めません。」 / Twitter
情報発信の利益・不利益
公私の境
- Shiro KawaiさんはTwitterを使っています: 「何がアウトな発言かの基準が変わってきて踏み越えない自信がない、というのをちらちら見たんだけれど、大きく変わってるのはむしろ公私の境目だと思う。 公でアウトな発言というのは、目前にいるエラい人が対象者でも言えるかどうかを考えればわかりやすいのでは」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「(例えば初対面の重要な取引先の社長とその娘さんがいる場で例の吉野屋発言ができるかどうか、とか)。 閉じた場ではアウトな線は共有する価値観でかなり変わってくるし、基本、価値観を共有してる私的な場では何を言っても自由。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「公私の境が大きく変わったのは、ひとつはネットと記録媒体の発達なんだけど。 もひとつ見えにくいけど大きいのは弱者が声を得てきたこと。格差が空気のようにある社会では、公の場で弱者を貶めても咎められない。弱者はいないことになっているから。この「本来アウトなのが弱者無視でOKだった」」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「というやつが通用しなくなってきた。今まで強者側にいたら、公的空間をまるで私的空間のように扱って許されてきたんだけど、公は公として振る舞わないとだめになってきた。 これ、従来の日本社会だとほとんどの場所が権力者の私的空間にされてきたので無自覚な強者には大きな変化だと思う。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「自分が何年も苦労して獲得した技術的ノウハウを誰でも簡単に学べる親切なオンラインブック(無料)を書くみたいなの、何も得してないみたいだけど、ここだけの話すごく得なんですよ。今は得になってないけど。どう得になるのかもわからないけど、損得でいうと相当プラスになる気がする(根拠なし)。」 / Twitter
- ogiwaraさんはTwitterを使っています 「例えば「OSの基礎がわからない」って言われてOS自作入門をすすめるの、正直なところにわかだと思う OSのコンセプトとか、もっと適した教材が他にもたくさんある」 / Twitter
- いわんこ(小学生)さんはTwitterを使っています 「@designpatterngf これは本当にそう。 OS自作入門とかそのへんは、OSを作ってCPUとかメモリを理解しましょう、って感じですよね。 OSの勉強するならタスクの管理とか権限とか、仕組み的な感じのものを期待してる人が多そう。」 / Twitter
- ogiwaraさんはTwitterを使っています 「適切な教科書って作るのめっちゃくちゃ大変なんですね…」 / Twitter
- ogiwaraさんはTwitterを使っています 「楽しく読め、かつとてつもなく効率的にキャッチアップできるので、本当に感謝しかないです… いつか自分も書く側になりたい…」 / Twitter
- ロボ太さんはTwitterを使っています 「任意の分野Xで僕よりずっと詳しい人がたくさんいるんで、「僕がXについて解説書いたりしていいんだろうか」といつも思うんだけど、その「僕より詳しい人」がみんな解説書いてくれるわけではないので……」 / Twitter
- ロボ太さんはTwitterを使っています 「まぁ、情報発信なんていいことないよね……」 / Twitter
- 杉本啓さんはTwitterを使っています 「自転車の乗り方を本に書いたら、それは単に情報だ。実際にどうやれば自転車に乗れるのかは、それぞれがやってみて習得するしかないし、得た tacit knowing はその人だけのもの。我々が何かを出来るかは全面的に tacit knowing に依拠している。形式知=情報は、むしろそれを生成するためのよすがだ。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング技術も同様で、習得する本人が自分の意思と試行から再発明するしかない。いくら教科書的なものを用意しても、それは練習メニューに過ぎない。練習する気がない人に練習メニューを見せても、うまくはならないんだよ。でも、世の中には、それで終っちゃってる「教育」が多い気がする。」 / Twitter
- ネオ高等遊民@哲学youtuberさんはTwitterを使っています 「YouTuberはいいですよ。 解説や研究を読んで知った面白い解釈を紹介すると 「受け売りしてすごいと言われて楽しいの?」などと言ってもらえますし、 自分で考えて面白いと思った解釈を話すと 「根拠のない思い付きより、最新研究分かりやすくかみ砕けよ」などと言ってもらえます。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「私自身は、アウトプットするとき何らかの意味で新規性が主張できることが重要だと思っているし、Getting Started をなぞっただけのブログ記事とかは無意味だと思ってるけど、実はそんなの受け手側は気にしてなくて、割り切って選挙カーのごとく同じ内容を連呼し続けるほうが歓迎されるのかもしれん。」 / Twitter
- κeenさんはTwitterを使っています 「趣旨とずれるかもしれないけど、自分の回りの人が自分の過去のブログ記事を全部読んで全て記憶してると思うのは完全な驕りで、伝えたいことがあるなら何度も繰り返し言わないと伝わらないってのは学んだ。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「@blackenedgold せやなとは思いつつ、多少驕っても許されるぐらいの特典が付いてないと誰からも認められない活動を続けるモチベーションが保たんのですよ。少なくとも、自分の場合は。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「だから結局のところ、コミュニティイベントで所属を伏せたまま登壇するという形式そのものが自分の目的に合ってないんだと思う。それはずっと思ってる。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「2 年前から似たような言ってた。 https://t.co/aUT9HJgxFi」 / Twitter
- チェシャ猫さんはTwitterを使っています 「他の人のプレゼンとかブログ記事とか見て「えーそれ README なぞっただけじゃん」みたいに思うことがたまにあるけど、よく考えたら世間ではわざわざマイナな OSS のドキュメント読んでるような人間は少数派なので、それぐらいのレベル感でちょうどいいのかもしれん。」 / Twitter
- Motonori ShindoさんはTwitterを使っています 「@y_taka_23 ですね。ただ自分の書く記事では「これで何を価値として提供できるか」を意識するようにしてます。なので、そんなに本数書けないのが辛いところ。」 / Twitter
- 尻P(野尻抱介)さんはTwitterを使っています 「あと、引用は本来無断でやるものなのに、許諾が必要だと思っている人が多い。許諾を求めると、許諾する側の責任になるので「なんだかしらんが責任負うのは嫌だからノーだ」となりがち。これは世の中の活性を落とすので安易に許諾を求めてはいけない。勇気をもって無断でやるべき。」 / Twitter
- 尻P(野尻抱介)さんはTwitterを使っています 「TV番組でもネット配信でも小説でもエッセイでもツイートでも、表現活動は人を喜ばせもするし不快にもする。意図どおりに伝わることもあれば誤解されることもある。それが表現の本分なので、作品そのものでコントロールすべき。安易な予防線や責任回避の許諾ですむことではない。」 / Twitter
伝達・理解・認識
histric
histric-1
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「事実は人の考えを変えることはできない。なぜなら「異なる事実を信じる」ということは、結局「異なる集団に属する」ということだからだ。ある人の考えを決めるのは、その人が所属する集団である。これはまさに、アッシュの実験を思い出させる。 https://t.co/vHp38tL66z」 / Twitter
- Why Facts Don’t Change Our Minds
- Ryo Chikazawa | Autify CEOさんはTwitterを使っています 「NetflixのNo rules rulesはすごい良い本だと思うけど、最終章のCulture gapの話がずっとしっくりきてなかった。自分もいろんな国の人と働いてきたけど、そうかな?でもそうじゃないことも多いよね?と言う気持ちが強く、モヤッとした違和感があったけど、その正体がようやく分かった。」 / Twitter
- Ryo Chikazawa | Autify CEOさんはTwitterを使っています 「これまで色々な国の人と仕事してきて、当たり前だけどコミュニケーションは十人十色。もちろん育った国の文化的な影響もあるけど、性格も大いにあるわけで、その違いを単純に国の違いと結論付けるのは、短絡的でしっくりこないということだった。国で見るんじゃなくて個人で見ようよと。」 / Twitter
- MasaTamさんはTwitterを使っています 「英語圏の人達が主張が強いという印象は、主張が強いと言うより、情報が100%伝わるわけじゃないという前提で話してるということな気がする。伝わってないと思ったらI meanで噛み砕くし、paraphraseで違う表現したり。例も挙げるし、一つかそうでないかも明確にする。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「ちなみに実装コスト以前の問題として、「ロジックに誤りがないとはどういうことか」を人間が認識するところがボトルネックになりがち。訓練されていない人間は本人が思っている以上に、頭の中にある仕様を検証可能な形で表現することができない。」 / Twitter
- satさんはTwitterを使っています 「丁寧に書くと「冗長」、簡潔に書くと「説明不足」、詳細に書くと「難しすぎる」、わかりやすく書くと「わかった気になるだけ」と誰かしらは言うので個々の評で一喜一憂してたら身が持たない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「東証会見について、記者の質が低いって怒ってるエンジニアの人たちの気持ちが正直わからない。だって非専門家だよ? わからないことを確認するのは、記事を書く上で記者の義務だよ。社内でも、営業とか新米の人が理解しようと質問してきたら、そうやって怒ってるの?って思う」 / Twitter
- 古川英光(やわらか3Dプリンターサイエンティスト)(Hidemitsu Furukawa)さんはTwitterを使っています 「「なぜかが分からないと先に進めない人」と「役立つことが分からないと先に進めない人」。 私は理学部と工学部の両方の経験がありますが、前者が理学部型、後者が工学部型、みたいに思います。 良し悪しではなく「思考回路」の違いですね。 https://t.co/6SQiW7INl1」 / Twitter
- 若者の「それ、何の役に立つんですか?」に隠された驚きの事実(幻冬舎ゴールドオンライン) - Yahoo!ニュース
- nishio hirokazuさんはTwitterを使っています 「「正解が書かれたものがどこかにある」という思い込みを持ってる人はそれを得ようとするが、経験者は「しばしば世の中のどこにも正解が書かれたものが存在しない」と思ってるため自分で正解を導く方法を教えようとする。魚を得たい人に釣りの仕方を教えるので、魚を得たい人が不満に思うのは当然。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「知的誠実さは居直り根性でもないし自主的な勉強の放棄の免罪符でもないよね。 離乳食のようなイントロが尊ばれ、本文に数式が一行でも入ると「わからないからもっと簡単に説明してほしい」とか「わからないけど難しいことしていて凄そう」とか宣うパーソンが散見される領域に居るからなおそう思う。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「伝える側がその説明を分かりやすくするために工夫をこらすことが大切なのと同様、伝えられる側も新しいアイデアなり概念なりを理解するために脳を絞る必要があるに決まってるだろ。「私にも分かるように説明して」は分かるための努力をし続ける者だけに許される発話。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ノートは書き写すんじゃなくて、自分の再発明を書き下す。再発明しない限り理解に達してない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミングもそういうところがあって、ライブラリを使ってるだけで再発明しないようだと次の段階に進めない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「言語の(最新の)機能をちゃんと活用した書き方とか、何とか指向とか何とか原則にきちんと従った書き方とか、そういうのを意識しているせいで、コードが不必要に難しくなってしまっているのをよく見る気がする。いいコードというのは別にそういうものではないと思うんだけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「難しいことをわかりやすく説明している文章みたいに、いいコードというのは、普通に読んで「なるほどわかりやすい」となるものだと思う。何とか原則に従っているかどうかみたいなのはどうでもいいし、あんまり最新の馴染みのない書き方をしても読者を置いてけぼりにするのでよくない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「他の人が自分のコードを読んでわかりやすいと思うのかどうかが唯一の重要なポイントで、それ以外のことはそれを達成するためのヒントにすぎないと思うんだけど、なんか手段と目的が逆転しているのをよく見る気がする。」 / Twitter
- 質の高い技術文書を書く方法 - As a Futurist...
- 7594591200220899443さんはTwitterを使っています 「「これまでに体験した最も難しかったバグ」とは即ち「当人がバグと認識できる程度には簡単だったバグ」のことである。世の中には人類の精神ではどうにも理解できないことというものは数知れず存在する。問題が起こるというのと問題が認識できるというのには思っているよりも密接な関係がある。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「そもそもQiitaとかに書いてある話のいくつかは (参照が多くても) 間違った情報だったりするし、そもそも自分が困っているissueはそもそも英語でもWebで見つからない話なので、「初心者が技術記事書くな!」って話、誰が言ってるの?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「人間の脳の記憶力から考えれば、文書でどこかに残すというのは正しいと思うし、それが間違った話でもいいと思うんだよね。問題は、それを見つけてきて検索結果の上位に置いてしまう検索エンジンではと。Google以前のAltaVistaとかの時代と変わらなくなってる」 / Twitter
- ++C++; // 管理人: 岩永さんはTwitterを使っています 「情報発信してみたいと思ってる人へのアドバイスとして言っておきたいの、「人に見られてる意識持ってやると自分の知識の延びもいいよ」、「何言われても『うるせー、だったらお前が書け』と思っとけ」、「何を見ようと『検索出るのこれだけかよ、だったら俺が書く』と思っとけ」の3点。」 / Twitter
- ++C++; // 管理人: 岩永さんはTwitterを使っています 「「だったらお前が書け/俺が書く」の行きつく先としてやっぱ技術文書もGitHubとかでpublicリポジトリ管理して静的サイト生成とかする方がいいんだろうなぁと思うんだけど、そうすると必要なのはレビューとかコミュニティマネジメントとか、より大変でできる人少なくて報われにくい仕事になるのよね。」 / Twitter
- 技術記事を書く人を大事にしよう
- 技術記事アウトプットの一事例
- 「仕事のコード」を残す際のチェックリスト|Uchio Kondo|note
- basic-operatability-checklist/ja at master · udzura/basic-operatability-checklist
- 江崎貴裕 | infonerv inc.さんはTwitterを使っています 「「理論・ロジックに頼って分かりやすい文章で(抽象的に)説明する」という方針と 「興味深い具体事例を多めに入れて面白く読ませて帰納的にも理解させる」という方針 があるとすると、後者はあまりやったことなかったけどこれはうまく使えればかなり強力な武器になりそう。」 / Twitter
- 池田紀行@トライバルさんはTwitterを使っています 「『本当に耳を傾けるべきは「プロのアドバイス」と「素人の感想」であって、最も耳を傾けてはいけないのは「プロの感想」と「素人のアドバイス」である』は本当に真理。さらに言うと『耳を傾けるべきは「ジャーニーのゴールに到着した人」と「途中で離脱した人」であり「無関心の人」ではない』とも。」 / Twitter
- 池田紀行@トライバルさんはTwitterを使っています 「マーケティングが仕事の人は自分の思考や発言が「個人の感想」なのか「プロとしての考察」なのか相当意識して使い分けないと大半が個人の感想になりキャリアが詰む。回避するには目や耳に入る具体を抽象化して本質を抽出する癖をつけなきゃならない。逆に言えば歳を取ったマーケターの仕事は抽象化のみ」 / Twitter
- jicchoさんはTwitterを使っています 「「頭がいい人はバカにも分かりやすく話せる」は偽で,「頭がいい人はバカにもなんとなく分かったような気にさせることができる」が真じゃないかな」 / Twitter
- 高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「わかりづらさから逃げたほうがいい場合とマジメに立ち向かわないとならない場合は両方あり、どっちも大事」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「エンジニアの人、言葉の厳密さにこだわるけど、事象を正確に記述しているかだけ気にして、ユーザーに正しく伝わるかに頭が回ってないこと多い。複雑な文章(0.5秒以下で判断できないもの)は、ユーザーは読み飛ばすので、100%正しい記述も、伝わるのは 0%になる。書いてないのと同じ。伝わってなんぼ。」 / Twitter
- 高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「エンジニアが用語の厳密さに敏感なのは、「細かいことより伝わることが大事」とおっしゃる人に仕事をひっかき回された(かつそういう人は難しい話になるとサッサといなくなる)トラウマがあるからじゃないかな。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「以前は人格攻撃をしていないのに、なんでこの人が非難されているんだろうと思ったこともありましたが、しかし、相当な訓練を積んでも、なお表現に乗っかる「きつさ」は受け手としての私も感じてしまうことがある。 なら、表現を工夫することを放棄していいわけじゃないよなあと今は思っています。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ただひたすら好きなものについて雑談するだけの場にするのなら「皆仲良く」はそこまで難しくないかもしれませんが、そこまで行くと趣味についてすら語れない気がするんですよね。趣味についてこだわりがある人だっているわけで、そこで対立が発生することだってありますし。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「最近ようやくはっきりと悟れたのは、たとえ人格攻撃をしなくても端的過ぎる言い方やある種の断定系な言い方は「きつく」感じられてしまうので(これはおそらく相手が音声的に言葉を再生するため)、特に相手の顔が見えないインターネッツランドでは柔らかい言い回しの重要性は高いということ。 ↓」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「“おまけ2:試行錯誤の様子は、わかりにくいからブログにも出てこない” とあるけど、むしろ逆で、だからみんなウェブ検索するときに "-qiita" するようになってしまったような https://t.co/jrX8C46sZA」 / Twitter
- わかりやすい説明をすると「結論を理解する労力」が「その結論を導き出した労力」と誤解されるときがある|柴田史郎|note
- keiichiro shikano λ♪さんはTwitterを使っています 「お仕事では、話の本筋はきれいに見せつつ、試行錯誤の仕方も伝えられるようになることを目指して工夫しております」 / Twitter
- mod_poppoさんはTwitterを使っています 「俺のブログは鬱陶しくならない程度に試行錯誤の部分も書いてるつもりだけど、どうかな(純粋に知識を伝える記事のつもりで書く場合は枝葉末節は省くけど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「米国企業でも会議に先立って根回しするというのは、まあそうだと思うけど、英語苦手勢には、ポジションペーパー(議題について自分の論点や資料を整理したもの)を書いて配布するのがオススメだと思ってる。英会話力のハンデを補うどころか、相手よりも説得力で優位に立てる可能性まである」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「もちろん勝ち負けじゃないんだけど、事前準備してテキストに落とすのは言語力の差を克服する手段として良いよ、という話。 というか、ひさしぶりに書いた。事前調査結果をまとめるついでに。」 / Twitter
- 正しく伝える技術入門
- The Need to Read
入門書
- ぱそほし(kzm)さんはTwitterを使っています 「いやそういうことじゃなくて、シェルだったり、アプリのインストールの方法だったり、インストールしたアプリのコードの読み方だったり、あるいはOSの機能(TCP/IP、ドライバ、DLL、メモリ、プロセス管理)だったり、GUIアプリケーションだったり、サウンドだったり、そういうのなんですよね https://t.co/xuUTaw9MZ1」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「プログラミング入門書を読んでも、一般的に知られているソフトウェアの作り方みたいな事が書いてない」とありますが、プログラミング言語の処理系もまた「一般的に知られているソフトウェア」の一つなので、プログラミングの入門でプログラミング言語を作ればいいんですよ。 https://t.co/ompL0KjN6l」 / Twitter
- プログラミングというかITが理解できない。
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「初心者向けプログラミングの教科書は間違っている。ほとんどは「型」「変数」「演算子」などを順に教えていくが、なぜそれが必要なのか、どのように役に立つのかを教えていない。 https://t.co/5mF48BM3NG」 / Twitter
- Teaching how to code is broken
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、プログラミング入門本で「なぜ変数なんてものが必要なのか」を真面目に説明している本を見たことがない。どれもいきなり「変数というものは容れ物で...」的な説明から始まる。おそらくほとんどの教員は、そんな疑問を考えたことがないのだろう。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@mootastic 関数型言語を入門に使う場合なら、「値/式を参照しやすようにつけておく名前/ラベル」と説明されることが多いと思います。元の式に置き換えても意味は変わらないけれど、長くなるからラベルで済ませると。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「@anohana ぼくも手続き型言語なら、おそらく最初に簡単なフローチャートというか、計算グラフ的なものから始めると思います。それを言語化したものがプログラムであると。」 / Twitter
用語・訳
- てらモス♋️さんはTwitterを使っています 「個人的には専門がちょっと違うだけで専門用語の使い方結構大きく変わりがちなので、正確な議論をするときは一つ一つ毎回定義して使え派だよ(´・ω・`)」 / Twitter
- みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)さんはTwitterを使っています 「IT界隈の人たちは楽屋ノリで「不正」って言葉をカジュアルに使いすぎ 世の中的にはほとんど「違法」と同義だから「不正な入力です」とか画面に表示しちゃダメだよ」 / Twitter
- chikoskiさんはTwitterを使っています 「recursiveを帰納と訳すこともあるのか」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「サーバーレスの-lessっていうやつ、個人的には、countlessの-lessと同じ意味合いだと思うと、むしろ、クラウド感があってよい。ないっていう意味じゃない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そうそう、あと WikipediaをWikiと略すのとか、 無限スコープ、動的エクステント を 動的スコープと略すのとかも取り締まるべき」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債って言葉がなんか好きではなくて、実際にはコードの老化が正しいと思うんだけど。X年でやりかたとして正しかったこと (ビジネスも含めて) がY年で正しくない(もっといい方法がある)ってことでしかないと感じるんだよね、みんな言ってること」 / Twitter
- Ignacio Enriquez GさんはTwitterを使っています 「@makoto_kato @piro_or 老化は技術的負債の原因の一つだと思います。 最初から技術的負債はあると思います。メンターや経験者が近くにいなくて生まれる。または技術的な理由以外で(政治的なビジネス的な狭いビジョン的な理由)Y年数立たなくても直ぐに生まれると思います。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「それはさておき、プログラマかエンジニアか、というのは割と国内だけの話で、英語圏だとエンジニアという大カテゴリの中に開発者(デベロッパ)やSRE(サービスリライアビリティエンジニア)やCSE(カスタマーサポートエンジニア)といった様々なエンジニアが存在する、と理解するのが普通だと思う」 / Twitter
- Watching_Big_BroさんはTwitterを使っています 「これは記事化する際の用語選択のためのすり合わせなんだよな。非専門家である読者に、記事では専門用語を使わず事象を説明するにあたり、不適切な言い換えになるリスクを避けるために当事者の言葉を求めている。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「日本語で」の質問について。実際専門用語に頼った説明は問題を生みがちで、今回も「フェイルオーバ」をactive-standby構成の説明を参考にしたのか「予備機に切替」という表現を使っている報道がある。自分の言葉で再説明する、というのはそういう問題を潰す効果がある cf. https://t.co/0m1aWv3ja8」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「障害が発生した記憶装置を切り離したあと、なぜ再起動が必要になったかについて明確な回答(うまく動作しなかったタスクが既に発生し、それらを確認修正するより再起動のほうが早い)を引き出した質問が「横文字を使わないで説明して」だったのは面白い」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
- uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
- ロボ太さんはTwitterを使っています 「「言語仕様警察」のことを英語で「language lawyer」と呼ぶのか……SOにもタグがある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「language lawyer、Jargonにも載っている由緒正しい単語ですからね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「世間一般で使われる期待値って平均と言う意味ではなく文字通り、期待される値(取らぬ狸のってニュアンスの)という意味で使われることが多くてそう言う使い方だとちょっとイライラする」 / Twitter
- (ISC)² Japan Chapter - 資料
- Miura HidekiさんはTwitterを使っています 「そういればLinuxとUNIXを厳密に区別するくらい言葉に厳密な人たちが、JITコンパイラという意味でJITと表記しても何も文句を言わないのだろう?」 / Twitter
- Tadachika OkiさんはTwitterを使っています 「@miura1729 関心について、 OS の方がコンパイラより強く、概念に対する解像度が異なるということではないでしょうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@salmoncrawler 多分そう言う話だと思います。正確にはOSの方がコンパイラより概念に対する解像度の高い人が多いと言うことですね」 / Twitter
- Shinya KatoさんはTwitterを使っています 「めんどくさいオタクなので「この言葉はこの規格でこう定められている」とか「このライブラリのドキュメントではこういう機能だと書かれている」とか「特に明確な定義はないけれど、こういう文脈では一般にこういう意味で使われることが多い(と思う)」は区別したいんだよね」 / Twitter
編集者が必要
- keiichiro shikano λ♪さんはTwitterを使っています 「これはポジショントークですが、散文をGitHubなどで管理するうえで重要なのはPull Requestやtextlintといった仕組みの有無ではないということがまた明らかになってしまったな…」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「つまり編集者がいないと難しいのですよ(執筆者が編集者でもいいけれど)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「もうちょっと具体的な話はこのへんで。 https://t.co/YSkxsbWcBB」 / Twitter
- k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
- keiichiro shikano λ♪さんはTwitterを使っています 「「俯瞰的な修正の作業は、かなり大きな範囲全体でコミットとして意味を持つので、他でコミットされたりPull Requestされた局所的な文章の修正をこのコミットの内容と調整するのはけっこう厄介です。」」 / Twitter
校正
- keiichiro shikano λ♪さんはTwitterを使っています 「これらの指摘をみた人がどう直すかが気になる。たとえばこの文の「思います」を断定にすればいいわけでないし、「サーバサイド」は文中で見えてる限りでは揺れてないし、「無い」が指摘されずに「例えば」が指摘されているのが気になるし(個人的には後者は許容できるが前者は許容しない)」 / Twitter
- suin❄️ TypeScriptが好きさんはTwitterを使っています 「textlintという、日本語のMarkdownを校正できるツールがあるのですが、これをVS Codeと組み合わせると、めっちゃ便利でした✨ あまり意識してなかった深いところまで、いろいろ教えてくれます。 ブログや社内文書を書くときなどに、一回textlint通すとよさげ。 https://t.co/BKnoBYi4yR」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「別のルールを使えばいいという話ではないと理解している。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「ルールベースの文章校正ツールに対する考え方をそのうちまとめたいと思っているのだけど、うまく言えないんだよなあ」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「文意はシンタックスでだいたい決まる」としても、「書き手が意図している内容」と「シンタックスで決まってしまう文意」との溝を、当のシンタックスから取り出せるかどうかといったら、たぶん無理ではないか。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「一方、プログラミング言語のコードだと、「シンタックスで決まってしまう文意」はコンピューターで計算できる解釈であり、書き手の意図もまたコンピューターにおける動作として形式化されうるので、シンタックス自体を検査する意味が多分にある。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「たぶんこんな感じの断絶があると思っている」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「そんなわけで、プログラミング言語におけるlintのように使うこと(≃質の悪い文章のパターン発見に使うこと)にもやもやが残る、という感じなんだと思う。単なるシンタックスエラーの発見として使うぶんには、文章校正ツールは間違いなく武器になるんだけど。」 / Twitter
Knuth reward checks
- Sophie AlpertさんはTwitterを使っています 「Knuth check https://t.co/am9fQjV57d」 / Twitter
- クヌース賞金小切手 - Wikipedia
- Knuth reward check - Wikipedia
- 中村さんはTwitterを使っています: 「神戸大の方らしい。Knuthの小切手が表彰リストに貼ってあるのすごいなぁ。 https://t.co/kwS4toUBD2」 / Twitter
- About Me – tamura70
何をやってきたか、これでいいのか
- Kazuho OkuさんはTwitterを使っています: 「うらやましいなんて話じゃなくて、自分たちは何をやってきたんだ、これでいいのか、ってこと」 / Twitter
- 市川 真一さんはTwitterを使っています: 「. @kazuho さんが出張で使ってる航空機の運航を支えるシステムや、病院の運営に必要なシステムをやってきました。国のためになっているという自負はあります。私個人には、これで良いとしか言えないのです https://t.co/v3lGCi3CMX」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@tenpoku1000 社会を支える仕事をして「これで良い」と思えるのはすばらしいことだと思います。いろんな関わり方があると思うので」 / Twitter
- 航空:航空交通管制情報処理システム - 国土交通省
- cab20181001-2.pdf
- スライド 1
- Wayback Machine
トレードオフ・動機
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそもトレードオフ(とモチベーション)を考えた結果ならどちらもアリだよなぁ。 単に「今時古い」的な思考停止で判定する人見るとオイオイと思うことも。」 / Twitter
- Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年前、本業そっちのけでやったのが今になって役に立ってるから、むしろお勧めしたい。」 / Twitter
- MiyahanさんはTwitterを使っています 「技術力がない人ほどDNSサーバーやメールサーバーを自前で立てたがる現象に誰か名前をつけてほしい。」 / Twitter
美意識
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「B1から配属可能な研究室の制度でやってきて感じることは、研究室で研究問わずまずは好きな活動やってもらって、教員側がそれを観察して、その学生がこだわる部分や強そうな部分を発見し、テーマからこういうのやってみたら?っていうマッチング測るのが良さそう。というのが見えつつ。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「まずはディープな自己紹介みたいなことも大事だなと。どういう環境で生きてきたか、どういう遊びをしているのかとか。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「ちょっと何かつくると、人によってこだわる部分が違う、つまりそういうことが美意識なんだと思うん。で、それって自分だと気づきにくかったりするんだけど、教員側は多くの学生を見ているから、すぐわかったりする。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「教員のエゴが強いと、その美意識は潰されてしまうけどね。だってそれってどうでもいいことって思うわけでしょう。だから逆に積極的に潰していくタイプの人もいるんでしょうけど。」 / Twitter
競争ではない・正解のない世界
- yhara (Yutaka HARA)さんはTwitterを使っています 「一方で狂人たちがどう考えているかというと、彼らは別に競ってはないのですよね。プログラミングの世界には無限に「やること」があるので、みんなそれぞれ違うことをしている。競争ではない」 / Twitter
- 古都ことさんはTwitterを使っています 「プログラマ、無策に愚直に上目指そうとすると「仕事でプログラミングやってるし休憩時間は気分転換のプログラミングやってるし退勤後は息抜きのプログラミングやってるし休日は趣味のプログラミングに全ぶっぱ」みたいな狂人との電流金網デスマッチが始まるので、自分なりの目標と適度な割り切りが必要」 / Twitter
- Miura HidekiさんはTwitterを使っています 「もうちょっと遅く生まれて未踏だセクキャンだ外資系IT企業だと選択肢のある世界が良かったなと思っていたが、「正解」のある世界は私には不利なのでまだ正解の定まっていない私の世代に生まれたのはよかったのだなと気づいた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、正解がある世界は安定するが革新的な進歩は無くなる。今後のITの世界の明日はどっちだ」 / Twitter
- 市川 真一さんはTwitterを使っています: 「Slack で自分の発言を参考にしてくれる人を見かけることもある。質問は自分のためだけではないし、資料やソースコードを作って置いておくのも、同じような感じ。自分よりも早く目的が達成できる人がいても、良いわけだ。競争ではない」 / Twitter
- 市川 真一さんはTwitterを使っています: 「研究者の人が作ってる実験ノートみたいな、きちんとしたものではないけど、作業 log を残すようにしている。Shell の log という意味ではなく、ツイートや Slack の投稿を含む、日本語で作業記録を書いている。行き詰ったときに見返すと、解決のヒントが残されていることが多い。一人作業だから重要」 / Twitter
- ロダン@バーチャル数学徒さんはTwitterを使っています: 「最近思うんだけど、他人と競争するというメンタリティは数学の研究というフィールドにおいては相性が良くない気がするんですよね。我々が倒すべきは他人ではなくて数学の問題なので…。」 / Twitter
- ロダン@バーチャル数学徒さんはTwitterを使っています: 「自分より優秀な人と比較して「自分はあの人には敵わない」って落ち込んでしまうことはほとんどの人にあってそれは仕方ないことだと思うんだけど、数学の研究の目標はその人を打ち負かすことではないので、その人の良いところをどうやって取り込んでいくかって方向に考えを転換していくのが大事だなと。」 / Twitter
- めーりんさんですよ🍊⭐さんはTwitterを使っています: 「@Rodin_math 敵強大すぎて人と競ってる場合じゃない」 / Twitter
覚悟
- 👻 道化師 🃏さんはTwitterを使っています: 「報われなくても構わない!って覚悟のないヤツは絶対にこれやっちゃあかんのよねぇ。」 / Twitter
- 吉村英崇@4/1〜/30で30万歩あるく _(:3 」∠ )_さんはTwitterを使っています: 「実は難しい才能に「愚」というものがある。 これは世間ではいっちょん流行らないぜ、ということでも『私はコレが好き!』と言えて、行動も一貫してそれに従うこと。 愚直とも言え、言葉では好きない人も結局、コスパに流されて『愚』を貫くのは難しい。 しかし、出来る人は強力な求心力がある。」 / Twitter
- 吉村英崇@4/1〜/30で30万歩あるく _(:3 」∠ )_さんはTwitterを使っています: 「ただ、これはただの馬鹿とか、頑固なのとは違う。 どこが違うのか?私には未だにわからないが、どうもコスパの対極にある、『愚』というものを性根に持っている人間は、強い 泥沼化した勝負、人間関係で最後に勝ちぬいたり生き抜く人間が持っているモノに感じる https://t.co/zlwqEu95Hy」 / Twitter
簡単に使えるようにする
- 7594591200220899443さんはTwitterを使っています 「プログラムを書くのに計算機科学の素養が必要かどうかで言うと現状必要なのは事実だが必要でなくしていくべきです。おばちゃんの作ったキッチュなアップリケとかが人類史に決定的なインパクトを与える事ができるようになるべく専門家以外をエンパワーしていくのが我々の仕事である。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「これ」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「結局金突っ込んだやつが順当に勝つみたいなつまらない世界をやりたくてwebやってるんじゃなかったはずだろ。今よりももっと間口を広くすべきです。素人が適当に作ったもので相応に戦えるべき。」 / Twitter
圏論入門
- 七誌さんはTwitterを使っています 「話題の『圏論入門』を入手しました! https://t.co/fWei06kAEM」 / Twitter
- 七誌さんはTwitterを使っています: 「第1章を読みました。動機が説明されていて読みやすいです。 Haskellの説明に数学を使うのではなく、数学の説明(具体例)にHaskellを使っています。この構成は新鮮で面白いです。 ただしHaskellは既知として、導入はありません。一応、Haskellは飛ばして、数学だけで読めるようにはなっています。」 / Twitter
- 七誌さんはTwitterを使っています: 「第2章を読みました。短い章でしたが、圏同値にはHaskellの例がなく、最後の証明も長くて苦戦しました。 例2.4は、初見では問題意識が分かりませんでした。しばらく考えて、擬似逆行列の話らしいと気付きました。あまり馴染みがなく、こういう捉え方をしていませんでした。 https://t.co/TXq28XYipO https://t.co/Uu9goJ9oct」 / Twitter
統計学:認識論・主義
- Ohkubo YusakuさんはTwitterを使っています 「前半は基本的に同意で、数学と論理に基づく理解を目指すのが健全な統計学かと考えます。 ところが、残念ながら「“科学的”に“常識”であるとはどのようなことか」という点が科学者の間でも合意されていないという深刻な事実が見過ごされている。これこそ科学哲学という領域で研究されていることです。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 私は * 数学的道具への理解 * 通常の論理的推論 * 科学的な常識 * 自分自身の専門分野固有の知識 を組み合わせて統計学を使える人が増えれば素晴らしいことだと思っています。要求が必要最小限で穏健な立場だと思う。 「主義」の重要性を語る人達は危険な過激派に見えて仕方がない。」 / Twitter
- Dr. Dr. Ken McAlinnさんはTwitterを使っています 「統計学はそれ(数学)を通して世界を認識することだ、ということを忘れてしまうと「主義」の意味もわからなくなってしまう。大事なのは世界を認識することであって数学ではない。」 / Twitter
- Jun OtsukaさんはTwitterを使っています 「これらの「主義」は数理統計学的学説ではなく、数学的理論が経験的事象の探求になり得るのかのはなぜなのか、というメタ的な関心についての学説だという理解です。だからベイズ/頻度「主義」の外延とベイズ/古典「統計」の外延は必ずしも一致しません(し、実際にしないと明記してる)。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「例の論争を見てると、学者 or 研究者と言えども内なる信念からは逃れられないんだなぁ、と。ボルツマンは原子の実在性を巡って論争の果て自殺に追い込まれたし、相対論、量子論、確率概念と専門家は自身の科学観が揺るがされる度、強く反発してきた。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「どっちが正しいと言うつもりはないけど、争点が数学や理論、実用性とかそういうところにないことを冷静になって認識した方がいいんじゃないかなぁ、と。主観ベイズの争点は単に主観や主義の存在を受け入れるか否かだけに思えるのよね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「最近読んだ「外来種は本当に悪者か?」なんてまさにそうで「外来種は悪である」という信念によっていかに学術的議論が歪められてるのか、って話だもんね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「現状を踏まえれば、すでに統計学は主義も主観性も受け入れているけど、「でも、あなたは受け入れないんですか」という状況だったりするわけだよね。」 / Twitter
- Masa Tadokoro / 田所雅之さんはTwitterを使っています: 「仮説思考と計画思考の 違いについて図で整理してみた https://t.co/RXS9KQDyfr」 / Twitter
翻訳
- Linguee | Dictionary for German, French, Spanish, and more
- GoogleのDocument Translationが一般提供へ
- Google 翻訳
- Google翻訳コミュニティの間違った使い方 - アラフォー女子大生キャリアカウンセラー日記
- PDFもウェブページもサクッと翻訳可能な「みらい翻訳」公式拡張機能を使ってみた - GIGAZINE
- Grammarly: Free Writing Assistant
- OmegaTのHTMLファイルフィルターを移行した話 - 水底の血
- Firefoxにローカルで動作する自動翻訳機能が追加される - GIGAZINE
- Mozilla、機械翻訳のアドオン「Firefox Translations」を公開 | OSDN Magazine
- Software – Bergamot
- chikoskiさんのツイート: "GitLocalize使ってみてるんですが、結構MLによる自動翻訳の精度が高くて驚いてる。https://t.co/GNzX93qosX ローカライズ前のファイル名とローカライズ後のファイル名の対応ルールを、もう少し柔軟にかけたら、もっといいのになー、って思いながら、1つずつファイルを追加してる。"
- GitLocalize – Continuous Localization for GitHub Projects
- chikoskiさんのツイート: "新規の翻訳は本当に楽でいい。更新された時の差分表示がわかりやすいといいなあ。MDNは差分の把握が本当に大変で、そのせいで原文の更新の反映作業をやろうって気になかなかなれずにいるし…"
- chikoskiさんのツイート: "GitLocalizeでローカライズ→GitLocalize場でレビュー→GitHubへpull request送信→GitHubでマージ、とういう流れ。自分でやった翻訳と、MLによる翻訳は別のコミットとして扱われている点が興味深かった。よくできてるな。"
- 腾讯翻译君 - 在线翻译
- オープンソースのコミュニティにNICT「みんなの自動翻訳」を提供 | NICT-情報通信研究機構
- 英語論文読みを爆速にする、超便利ツール集 - Qiita
- PDFやWord、Excelファイルを読み込み、レイアウトなどはそのまま内容だけを翻訳。Google Translation APIに新機能 - Publickey
- 小原圭司さんはTwitterを使っています 「PDFの英語論文をDeepLを使って日本語に訳して読んでいる方へ。Shaperという便利なサイトが改良され、PDFをコピペした際に自動で邪魔な改行記号を削除してくれるだけでなく、ワンクリックでDeepLのサイトに貼り付けることが可能になりました。素晴らしいサービスに感謝です!https://t.co/9WhVG7zqiu」 / Twitter
- Shaper
- Microsoft Translatorが100を超える言語と方言をサポート
- Hiroshi MatsuiさんはTwitterを使っています 「OCR化されてない論文をDeepLにかけたいとき、Sensible Pasterっていうapp storeから無料でいれられるツールがめちゃくちゃ便利な件。自炊した本読むときにも使えるな…。 https://t.co/EopC7jzukj」 / Twitter
- JIROさんはTwitterを使っています 「これやると英訳がずっとやりやすくなります! 英訳するときは、何を伝えたいのか、どう伝えたいのか、が最優先なので元の日本文には基本こだわりません。」 / Twitter
- 「メインの勝利」? Microsoft、開発ドキュメントの機械翻訳を頑張りすぎて変なことに - やじうまの杜 - 窓の杜
- けーさん/こまたん博士さんはTwitterを使っています: 「DeepL使ってる日本人多いと思うんですけど、同じような精度で、かつ無料でいろいろできたり、API使えたりする日本の国研開発のサイトがあります。欠点は最初にユーザー登録必要なことと、あまりにも知名度が低いこと みんなの自動翻訳@TexTra® - https://t.co/cNUQzG7Oy8」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Mozillaが開発中のFirefox翻訳機能。これはブラウザのみで翻訳を実行し、サーバを使わない。ただし現在のところサポートされているのは欧米系の言語 (+ スラブ諸語, ペルシャ語) のみ。 https://t.co/Pe9zAvnpg6」 / Twitter
- On-device browser translations with Firefox Translations | Ctrl blog
- [速報]文書のレイアウトやフォントはそのままAIで135カ国語に翻訳する「Translation Hub」、Google Cloudが発表。Google Cloud Next '22 - Publickey
Wayback Machine
- Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
- Internet Archive: Search Engine
- インターネット上のあらゆる情報を記録・保存する「インターネット・アーカイブ」はどのように運営されているのか? - GIGAZINE
- ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? - GIGAZINE
- 「インターネット・アーカイブのウェイバックマシンが記録した過去のウェブサイトの情報」に証拠能力があると裁判所が認める - GIGAZINE
- Cloudflareとインターネットアーカイブがウェブの信頼性をさらに高めるため提携 - GIGAZINE
- 新型コロナウイルスの影響で「インターネット・アーカイブ」の通信量が秒間60ギガビットに到達、月間通信量は20ペタバイト以上 - GIGAZINE
- フェイクニュースと戦うインターネットアーカイブの取り組みと問題 - GIGAZINE
- The University of Tokyo - General Library : Free Texts : Free Download, Borrow and Streaming : Internet Archive
- General Library | University of Tokyo Library System
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8gek9rrKSO Internet Archiveにstackexchangeの情報をmachine redableなXMLでダウンロードできるとは知らなかった。日本語サイトの情報もあるけど全体から見ると本当に小さいな」 / Twitter
- stackexchange directory listing
- 合計11.4TBもある1980年代~2000年代の貴重なファイルアーカイブにすぐにアクセスできる「DiscMaster」 - GIGAZINE
- DiscMaster
検索
その他
- AndroidのEUにおけるデフォルト検索エンジン指定に批判多数 | TechCrunch Japan
- Lumen
- DuckDuckGo — Privacy, simplified.
- HotBot - The Private Search Engine
- ウェブを検索
- Qwant - The search engine that respects your privacy
- Yandex
- GMX International - Search Engine
- Seznam – najdu tam, co neznám
- Givero - Search the web to raise money for good causes.
- PrivacyWall
- Ecosia - the search engine that plants trees
- 元Google幹部による広告ゼロの検索エンジン「Neeva」がスタート、検索エンジンとして異例のサブスク方式を採用 - GIGAZINE
- Brave Search
- ウェブブラウザ「Brave」独自の検索エンジンに詳細なカスタマイズ機能「Goggles」追加 - GIGAZINE
- プライバシー優先の検索エンジン「Brave Search」に検索広告追加、ユーザー追跡なしで便利さ重視設計 - GIGAZINE
Google
- Google、引用符による完全一致検索結果をフレーズを中心に表示するよう改善 - PC Watch
- 【本日のできるネット】【これは便利!!】Googleで「ライセンスフリー画像」を検索できるの知ってる? - PC Watch
- Masaki HaraさんはTwitterを使っています 「Google検索、日本語の内容を優先して表示してほしいときと英語の内容を優先して表示してほしいときがあるんだけど、ユーザー設定とかじゃなくて一時的に変えられないのかな」 / Twitter
- くりんぺっとさんはTwitterを使っています 「@qnighy URLに&hl=enを付けるとかでできませんか」 / Twitter
- Dataset Search
- Googleの検索結果、SEO特化型ではなく人間向けに作成された「役立つコンテンツ」を重視 - PC Watch
- Google検索の障害が一目で ~新しいステータスダッシュボードサイトが公開 - 窓の杜
Searchfox
- Searchfox
- bgrins/searchfox: Mozilla code search web site
- Searchfox | Bill McCloskey's Blog
日本
- 国立国会図書館デジタルコレクション
- 国立国会図書館インターネット資料収集保存事業
- サクラチェッカー | やらせ・サクラレビューを見抜けるレビューチェックシステム
- 特許情報プラットフォーム|J-PlatPat
- 全国法人リスト - 全国約500万件の法人企業を一覧で検索
GIGAZINE
- Microsoftが過去14年間・2億5000万件分のカスタマーサービスの記録をネット上に流出させてしまったことが判明 - GIGAZINE
- Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開 - GIGAZINE
- Dataset Search
- DuckDuckGoはMicrosoftのトラッカーを拒否できない契約を結んでいる - GIGAZINE
Twitter
- Twitterの高度な検索
- Takashi OkumuraさんはTwitterを使っています 「有益な情報。弊アカウントの過去ツイセレクションはこちら。面白い。歴史も感じる。 RT 過去にどんな発言をしてきたアカウントなのかチェックしたい時は、"from:user min_retweets:100"とすると、過去に100以上RTされた発言がざっと読めて、だいたい把握できる https://t.co/cGFZer4K0G」 / Twitter
- Twitter検索コマンド全まとめ。日付指定やアカウント内検索など23個 -Appliv TOPICS
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「死につつあるGoogle検索。人々は通常の検索ではもはや満足いく回答が得られないので、Redditなどのサイトを指定して検索している。あるキーワードでは検索結果の一覧がすべて広告で埋め尽くされる。またGoogleは"賢く"キーワードを推測するため、もはや正確な答えが得られない https://t.co/3m5HzduHL9」 / Twitter
- Google Search Is Dying | DKB
- goto@meta翻訳開発者さんはTwitterを使っています: 「検索エンジンの新しい形らしいけど、これ凄いな。 "Here’s a cool reserch paper about large language models"って入力すると、それらしき論文がずらって表示されてる... https://t.co/4YcPSPvCPa https://t.co/t9Xb8QjqSC」 / Twitter
- Metaphor
- Bing
- GitHub · Where software is built
- Stack Overflow - Where Developers Learn, Share, & Build Careers
- everyRFC
- researchmap
- Welcome | Computer History Museum
- メインページ - ウィクショナリー日本語版
- Mapbox
- 5star opendatamap
- TIMEMAP
- BinaryEdge
- AWS S3の膨大な公開データを検索できるQuilt Dataが脱ステルス、無料利用も可 | TechCrunch Japan
- Quilt is a versioned data portal for AWS
- ググり力、それはエンジニアには必須の能力である - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「URLと勘違いされちゃう問題は頭に ? を付ければいいんですよね確か。あと、普通に「Visual https://t.co/fyVQ1qvWoo」と正式名称で検索すればいいのでは... / 1件のコメント https://t.co/kMvyu2B7jy “「https://t.co/f7A93uzHZm」とかいう言語 - Qiita” https://t.co/dpDsw7PEDQ」 / Twitter
- 「VB.NET」とかいう言語 - Qiita
図形・数式
- VSCodeでDraw.ioが使えるようになったらしい! - Qiita
- Free AWS, Azure, GCP, Kubernetes Architecture Diagram Tool | CloudSkew
- クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 - Publickey
- AWS Perspective | Implementations | AWS Solutions
- AWSがアーキテクチャ図を自動作成できるソリューション実装「AWS Perspective」を公開 - GIGAZINE
- AWSがダイアグラムエディタの開発に便利なライブラリ「Diagram Maker」を公開 - GIGAZINE
- 最近のアイコンが似通ってきている問題 | デザイン会社 ビートラックス: ブログ freshtrax
- 最近のロゴが似通ってきている問題 - 第2弾 | デザイン会社 ビートラックス: ブログ freshtrax
- 無料&YAMLで豊富なアイコンからネットワーク構成図が書ける「drawthe.net」レビュー - GIGAZINE
- Excalidraw | Hand-drawn look & feel • Collaborative • Secure
- Diagram Software and Flowchart Maker
- jgraph/drawio: Source to app.diagrams.net
- えるエルさんはTwitterを使っています 「ひたすらMatplotlibでいろんな図を作る奥義集みたいな書籍が海外で出版され、実装と本の内容がWebで公開されているようです https://t.co/bf9UYD0uK1 https://t.co/GoX4Ph2zE8」 / Twitter
- rougier/scientific-visualization-book: An open access book on scientific visualization using python and matplotlib
- 数式用字体
- MathWills - 数式に特化した情報共有サービス
- Google Cloud純正のシステム構成図作成ツールが登場 作図通りのデプロイも可 無料 - ITmedia NEWS
- A5:SQL Mk-2に回帰した話 | フューチャー技術ブログ
- UMLとかAWS構成図とかを描くツール
- ASCIIFlow
- H_ShimizuさんはTwitterを使っています: 「BBCがggplotを使って記事を書いているそうですが、そのためのRパッケージであるbbplotについての説明です。ニュース記事にも使われるような大衆受けする図を手早く作るのに使えるかもです。 https://t.co/AKfhWvMDHl」 / Twitter
- How the BBC Visual and Data Journalism team works with graphics in R | by BBC Visual and Data Journalism | BBC Visual and Data Journalism | Medium
PDF 等
その他
- Microsoft Japan Code Labs
- ホーム
- JOSYORI|IPSJ情報処理カタログ|情報処理の用語をわかりやすく解説
- IDPro Body of Knowledge 日本語化プロジェクト | bok
- Online OXFORD Collocation Dictionary of English
- Aho/Ullman Foundations of Computer Science
- The Architecture of Open Source Applications
- クォータニオンとは何ぞや?:基礎線形代数講座 - SEGA TECH Blog
- 基礎線形代数講座
- 2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
- ミクシィの21新卒技術研修の資料と動画を公開します! - mixi developers
- 【全編無料】GoogleやAdobeなど実力ある講師が多数登場、マーケ・デザイン・プログラミング・ゲーム作成などが学べるオンライン学習プラットフォーム「Udemy」のおすすめ無料講座7選 - GIGAZINE
- 京大、教材の無償公開サイト「オープンコースウェア」を閉鎖へ 運営組織廃止に「残念でなりません」 - ITmedia NEWS
- 京大の授業を無料で受講できる「京都大学オープンコースウェア」終了に伴い「yt-dlp」で動画のダウンロードが推奨される - GIGAZINE
- 有名企業のエンジニア向け研修資料まとめ - Qiita
- 地球シミュレータ開発史 - Development_ES.pdf
- 資産運用から広島ラーメンまでを網羅する「とほほのWWW入門」に今度は「Unicode一覧」が追加 - やじうまの杜 - 窓の杜
- 「とほほのWWW入門」のコンテンツ拡充が止まらない、今度はショートカット入門が誕生 - やじうまの杜 - 窓の杜
- Source Codes - CPCWiki
- Z80 Number Cruncher
- 小学生から始める線形代数超入門!! | Mathlog
O'Reilly Japan
- jr4qpv/GNU_Make_3rd_jp: The GNU Make 3rd edition PDF of Japanese.
- O'Reilly Japan - GNU Make 第3版
- O'Reilly Japan - Real World HTTP ミニ版
- Real World HTTPミニ版 - Google スライド
情報Ⅱ
- データ分析のはじめの一歩を無料で学べる 総務省監修の高校教材『データサイエンス・データ解析入門』がpdfで公開
- Rejouiが制作した「高等学校における「情報II」のためのデータサイエンス・データ解析入門」の補助教材が公開されました | 株式会社Rejoui
- 高等学校学習指導要領の改訂のポイント - 1421692_2.pdf
- 【情報編】高等学校学習指導要領(平成30年告示)解説 - 1407073_11_1_2.pdf
- https://www.stat.go.jp/teacher/index.html
- https://www.stat.go.jp/teacher/model.html
- https://www.stat.go.jp/teacher/learning.html
- https://www.stat.go.jp/teacher/comp-learn-04.html
CS50x
- 米ハーバード大学のプログラミング授業 日本語訳が無償公開 誰でも聴講可 | ツギノジダイ
- CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
- LABOT Inc. | 株式会社LABOT
機械学習
- 000607858.pdf
- KOBA789さんはTwitterを使っています 「この言葉がかなり好き。もちろんこれは、まずはちゃんと勉強するということが前提なんだけれども。 「多くの場合ですね、理論が教えてくれるのはですね、よく考えればわかる程度のことなので、あんまり期待すると裏切られるんで注意してください」 https://t.co/bFJcXc9pGY」 / Twitter
- 裏口からのカルマンフィルタ入門 - YouTube
- 日本統計学会75周年記念出版
- 2021-3-3Open(S).pdf
- 国友直人のホームページ
- えるエルさんはTwitterを使っています 「東大の講義で使われている量子コンピューティングの入門教材が公開されています https://t.co/y2s46VJ8En 基礎となる数理的な部分の丁寧な解説に加え,「4兆通りの足し算を同時に行う」等の量子コンピューティングの課題をPythonで実装する部分など,無料で参照できる資料としては最も充実しているのでは https://t.co/B0ZTISDkVP」 / Twitter
- 量子コンピューティング・ワークブックへようこそ! — 量子コンピューティング・ワークブック
- 技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
- 「数理科学」記事
セキュリティ
- 無料で読めるセキュリティ定期発行物のまとめ - 午前7時のしなもんぶろぐ
- セキュリティ情報の集め方 ~しなもんの場合~ - 午前7時のしなもんぶろぐ
- 役に立つセキュリティ情報の宝庫! 「JPCERT/CC」発信の情報まとめ! - 午前7時のしなもんぶろぐ
- 脆弱性の情報収集! 「JVN」の見方を教えます! - 午前7時のしなもんぶろぐ
- クラウドを支えるこれからの暗号技術
- 『OpenSSLクックブック』提供開始のお知らせ – 技術書出版と販売のラムダノート
- セキュリティに関する情報源を整理してみた 2020年版 - トリコロールな猫/セキュリティ
- 2020年上半期に公開されたセキュリティ関連文書まとめ - トリコロールな猫/セキュリティ
Net
- HTTP/3 explained - The book
- 「プロフェッショナルIPv6」- 窓の杜
- LambdaNote/errata-professional-ipv6-1-1: 『プロフェッショナルIPv6』正誤情報
- 徹底解説 v6プラス | 日本ネットワークイネイブラー株式会社
- マイクロソフトが無料で『Azure Virtual Desktop 事例大全』を配布中 ~サービス解説から活用事例紹介まで掲載 - Book Watch/ニュース - 窓の杜
GUI・組版
- Ray Tracing in One Weekend Series
- ロボ太さんはTwitterを使っています 「NVIDIAの研究者、Peter Shirleyが書いた「週末でレイトレーシングを(Ray Tracing in One Weekend)」という本がソース(C++)込みで完全無料公開されてる。すごい。続編「次の週(THE NEXT WEEK)」と、「残りの人生(THE REST OF YOUR LIFE)」もある。 https://t.co/eX2YJ1JHfl」 / Twitter
- XML関連出版物トップ - AH Formatter V6
- 多言語組版について | 多言語フォント | モリサワのフォント | 株式会社モリサワ
- コンピュータグラフィックス特論Ⅱ 講義情報ページ
Git・ファイルシステム
- Git - Book
- Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア
論理・ソフトウェア
- 計算機プログラムの構造と解釈 第二版
- SICP Web Site for the Japanese Edition
- OpenDataStructures.jp
- ソフトウェアの基礎
- オンラインで入手できる数理論理学・数学基礎論のテキスト
- 導入 -
- サークル詳細 | 海洋軟件 | 技術書典
- free-programming-books/free-programming-books-ja.md at master · EbookFoundation/free-programming-books
Twitter
- Kazuho OkuさんはTwitterを使っています 「宣伝しとくと、ロングマン英英辞典は、約2000語の基礎語彙を使って全ての単語を説明していて、英語を英語のニュアンスで学ぶ際の決定版とも言われる英英辞典です。英和だと、どうしても単語の一対一対応になりがちで、文脈による言い回しに対応しづらいから、学習用として英英辞典が勧められる認識」 / Twitter
- Longman Dictionary of Contemporary English | LDOCE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブ線型代数。内容は普通の線型代数の教科書だが、各所にある例は実際に値を入れて3Dで視覚化できるようになっている。 https://t.co/W2FyonfL9M」 / Twitter
- Front Matter
- ABAB↑↓BAさんはTwitterを使っています 「ワイが真の初学者の為の学習サイトを立ち上げたる! ってことで、まだGatsbyの初期設定の残り香があるけどテスト投稿。 モットーは、初学者に環境を用意させない。その場で試せる。練習問題で必ずコードを触らせる。ツイートでコード共有しやすく。 感想とか指摘をください https://t.co/zreGEngtGz https://t.co/Ut3cobMtf1」 / Twitter
- Home | Gatsby Default Starter
- えるエルさんはTwitterを使っています: 「Slideshareが有料化されてスライドの閲覧が止まってしまう件,簡単なハックとしてブラウザのシークレットモードだと資料の公開設定に関わらずどんな資料も最後まで見れるというやり方がある 資料公開者側での公開設定はみんながやっているとは限らないので・・・」 / Twitter
- matsui528/math_writing: Introduction to mathematical writing for undergraduate students majoring in engineering
論文
その他
- 【プレスリリース】アンモニアをクリーンで画期的な燃料に変える新しい触媒を開発 | 日本の研究.com
- プラスチックを「食べる」酵素、研究室で偶然作成 | ナショナルジオグラフィック日本版サイト
- 遠山 祐典さんのツイート: "Nature公式、論文要旨の書き方。 授業でこれを扱うと国籍問わず大半の大学院生が知らなかったと言うので簡易和訳版を作成。 もちろん、Nature以外の論文にも流用する事が可能。 注目は、[結果]に使える文の少なさ(2~3文。全体の20~25%)。 和訳の修正案、大歓迎です。 英語版:https://t.co/RQEbeOWoNX… https://t.co/zdu9I9J24b"
- 2c_Summary_para.pdf
- F1000とビル&メリンダ・ゲイツ財団、オープンアクセス出版のためのプラットフォーム“Gates Open Research”を2017年の第3四半期に開始 | カレントアウェアネス・ポータル
- Gates Open Research
- 松田 栄治 Eiji Matsudaさんのツイート: "Nature Researchの松田と申します。このアブストラクトの書き方について、Nature日本法人の方で作っているPDFもありますので、よろしければご自由にお使いください。下記URLのp11となります。 https://t.co/7ze0gbfpCW… "
- Yasunori GotoさんはTwitterを使っています 「作り方でもあるけど、論文のサマリの読み取り方でもあるよね。」 / Twitter
- 遠山 祐典さんのツイート: "ありがとうございます。 既にNature日本法人公式の日本語版があるとは存じあげませんでした。 公式版の方が、はるかに分かりやすいですね。 皆さま、こちらの公式版をお使い下さい。 Nature投稿案内: https://t.co/Nr1VZzaLjG… https://t.co/8u0eAdgbnV"
- gta-2017.pdf
- SIGのスポンサーになって、プログラミングの英語論文を読みまくろう! - Fight the Future
- OS & システムソフトウェアの一流国際会議 - 品川高廣(東京大学)のブログ
- 工学系大学4年生のための論文の読み方
- 小川雄太郎さんはTwitterを使っています 「PyTorch Hubで各種メジャー論文のモデルをPyTorchで実行するためのデモコードが掲載されました 例えばYOLO v5は以下のページ https://t.co/6IrgskhHpK 有名モデルを使用したい場合は、このPyTorch Hubで検索して、使用方法などを確認するのが早そうです。 (リンク) https://t.co/EeNhpgj41j」 / Twitter
- For Researchers | PyTorch
- 小川雄太郎さんはTwitterを使っています 「Papers with Codeに「Reproducibility Reports」機能(再現性レポート機能)が追加されました その論文内容を別の人が実装してみて、きちんと結果が再現できるかなどが今後報告される(できる)ようになります 論文内容をうまく再実装できないときの調べ先として、重宝しそうな機能です」 / Twitter
- Papers with CodeさんはTwitterを使っています 「🎉 Reproducibility Reports are LIVE! Papers now link to reproducibility reports. Alongside code, this is a new signal for how reproducible a paper's findings are. Thanks to RC2020 participants, reviewers and ACs for their hard work! Example: https://t.co/wdm89qswKc https://t.co/EE6CkYNd8C」 / Twitter
- Training Binary Neural Networks using the Bayesian Learning Rule | Papers With Code
- Papers with CodeさんはTwitterを使っています 「You can find all the reproducibility reports for RC2020 on Papers with Code: https://t.co/NlLpIrL5At and on ReScience: https://t.co/LQihKp3y7p」 / Twitter
- RC 2020 | Papers With Code
- ReScience C
- CiNii 論文 - 出版における言説構成過程の一事例分析:―「江戸時代の識字率は高かった」という"常識"を例として
- 論文に何を書くべきか→これだけは埋めろ→論文作成穴埋めシート 読書猿Classic: between / beyond readers
- 「Microsoft Edge 97」が安定版に ~学生・研究者に便利なコレクションの引用機能を導入 - 窓の杜
- 無料で論文をシンプルに管理できて引用文献リスト作成もワンクリックな高性能文献管理ソフト「Zotero」レビュー - GIGAZINE
- 文献管理をMendeleyからZoteroに移行した | κeenのHappy Hacκing Blog
- 論文の書き方 - ジョイジョイジョイ
欧文
- arXiv.org e-Print archive
- ACL Member Portal | The Association for Computational Linguistics Member Portal
- AAAI Publications
- Open Access to ACM Digital Library During Coronavirus Pandemic
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ACMは設立75周年を記念して、1951年~2000年までに出版されたコンピュータ関連の記事117,500本をすべてオープンにすることに決定。記事はACM Digital Library https://t.co/AJOzxUFsgV からダウンロード可能。 https://t.co/8vFMhM9nKh」 / Twitter
- ACM Opens First 50 Years Backfile
- ACM Digital Library
- Home - Springer
- Home | Microsoft Academic
- jicchoさんはTwitterを使っています 「>RT これは知っておかないと最低限読んでもらえる英語論文は書けないと思う」 / Twitter
- 高橋 史 Fumito TakahashiさんはTwitterを使っています 「共著者が「英文校正を受けたのに査読者から英語の質を指摘された」と不満そうだったので、サバティカルのときに作った自分用メモを渡した。 年末年始に論文を書こうという方、ご笑覧ください。年始に執筆会やりたい。 https://t.co/koSG76i4Vs」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「米政府、税金を使って行われた研究結果はすべて発表直後からフリーでアクセスできるようにする方針。これまで研究機関の論文は発表後1年間は(有料の)学会誌に掲載されることが多かったが、今後このような風習は禁止される。 https://t.co/977FRpbNVq」 / Twitter
- OSTP Issues Guidance to Make Federally Funded Research Freely Available Without Delay - The White House
ResearchGate
- ResearchGate | Find and share research
- ResearchGate News
- ResearchGate - Wikipedia
- ResearchGate - Wikipedia
- ResearchGate (リサーチゲート) | お役立ち情報ページ | レタープレス株式会社
- 研究者向けSNS「ResearchGate」で研究者間のつながりや議論はどう変わるのか | 英文校正と論文翻訳の医学英語総合サービス
- ResearchGate 170万本の閲覧制限から見える著作権問題ー学術英語アカデミー
- 第303号 ResearchGateをめぐる動き(2) |ユサコニュース詳細 | 学術情報・論文作成支援【ユサコ株式会社】
- ResearchGateによる無許可掲載 | エディテージ・インサイト
賞
- Abel Prize - Wikipedia
- アーベル賞 - Wikipedia
- 数学ブレイクスルー賞 - Wikipedia
- Breakthrough Prize - Wikipedia
- ゲーデル賞 - Wikipedia
- Gödel Prize - Wikipedia
- ゴードン・ベル賞 - Wikipedia
- Gordon Bell Prize - Wikipedia
- チューリング賞 - Wikipedia
- Turing Award - Wikipedia
- フォン・ノイマンメダル - Wikipedia
- IEEE John von Neumann Medal - Wikipedia
- システム系論文の情報収集方法 - 睡分不足
- 出版料をだまし取る“ニセ学術誌”のリストが登場 本物と見分けがつかない詐欺サイト150以上を掲載:Innovative Tech - ITmedia NEWS
- CiNii Research
- 日本の研究.com
- CiNii Articles - 日本の論文をさがす - 国立情報学研究所
- J-GLOBAL 科学技術総合リンクセンター - 科学技術振興機構
- J-STAGE トップ
- JAC複製利用許諾システム |
- Kenichi Asai
- FrontPage - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
- IEICE ソフトウェアサイエンス研究会 (SIGSS)
- 情報処理学会 プログラミング研究会
- 情報学広場:情報処理学会電子図書館
- コンピュータ ソフトウェア
- 人工知能学会論文誌
- 情報通信学会誌
- 電子情報通信学会 基礎・境界ソサイエティ Fundamentals Review
- 電子情報通信学会 通信ソサイエティマガジン
- 情報学広場:情報処理学会電子図書館
- 無料で読める記事-情報処理学会
- 解説・論文等-コンピュータ博物館
- トップページ|日本漢字学会(Jsccc)
- JAIRO : Japanese Institutional Repositories Online
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「https://t.co/itM6vniDu5に掲載されている論文数が200万本を突破。成功の一方で、問題も抱えている。ArXivには分野ごとに提出論文の書式・分類を検査するモデレータがいるが、彼らの出身地は圧倒的に欧米で、論文数の多い中国・日本からのモデレータはほとんどいない。 https://t.co/6OtkSXjsS7」 / Twitter
- ArXiv.org Reaches a Milestone and a Reckoning - Scientific American
- なぞのくささんはTwitterを使っています 「数学書的表記(定義と定理でひたすら押す。)で教育しておいて、学位論文になったら、論文は体系的に、定義定理の羅列では論文になりませんとか急にいってくる数学科大学院。」 / Twitter
素材
アイコン素材
- IcoMoonの使い方・ライセンス一覧など!Webフォントで扱えるアイコン素材サイト | ホームページ大学
- FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト | ホームページ大学
- オリジナルのアイコンをWEBフォント化して使う【fontello.com】
- Network Topology Icons - Doing Business With Cisco - Cisco
- 図面とともにあらんことを!:第二面 - ネットワークのゲンバ(2014) | Interop Tokyo 2014
- Dia Shape Repository
- Bootstrapにとって初めての独自アイコン集「Bootstrap Icons」バージョン1.0が初公開 - Publickey
News
- 英BBC、個人および研究目的なら無料で使える約1万6000種類のサウンドライブラリーを公開中【やじうまWatch】 - INTERNET Watch
- 無償。明治時代の郡地図。Googleマップのマイマップ版も - PC Watch
- 郡地図 Ver 1.0 - 郡地図研究会 - BOOTH
- 「粗いドット絵」「UDフォント」「パワポアイドル」──新年度だから教えたい、2022年に出てきた商用利用可なフリー素材 - ITmedia NEWS
- 商用利用OKの音素材、600種以上無料公開 バトルの攻撃音も……「Springin’ Sound Stock」 - ITmedia NEWS
- 無料ダウンロード&商用利用もOKなクラシカルな装飾を集めた「Handbook of Ornament」作品集 - GIGAZINE
- 無料でゲーム・アプリの開発に使えるアイコンが2800種類以上ある「Game-icons.net」 - GIGAZINE
- 「3Dデジタル生物標本」1400点以上、九大が公開 ダウンロード自由、メタバースでも利用可 - ITmedia NEWS
- Lorem ipsum - Wikipedia
- NHKクリエイティブ・ライブラリー 素材をさがす
- ニューヨーク・メトロポリタン美術館、パブリックドメインになった芸術作品のデジタル画像をオープンアクセス化 | スラド オープンソース
- The Metropolitan Museum of Art makes 375,000 images of public domain art freely available under Creative Commons Zero – Wikimedia Blog
- ポーズビューワ | デッサンポーズ
- Googleが機械学習用データとして利用できる手書きイラスト5000万点をオープンに利用できる形で公開 | スラド オープンソース
- Quick, Draw! The Data
- googlecreativelab/quickdraw-dataset: Documentation on how to access and use the Quick, Draw! Dataset.
- ご利用について | いらすとや
- クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
- 今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
- WEB会議などで使える背景画像 - 古典に親しむ | 国文学研究資料館
- 「いらすとや」が1月で定期更新を停止 「今のペースで全てをやり続けるのは難しい」(1/2 ページ) - ねとらぼ
- 今後のサイトの更新について | かわいいフリー素材集 いらすとや
- ELYZA, Inc.さんはTwitterを使っています 「深層学習で使われる関数や手法,アーキテクチャの画像フリー素材が200種類以上あるリポジトリ。ブログやプレゼンなどで活躍しそう。 https://t.co/2kNs7FdiIG https://t.co/hL0I6foznV」 / Twitter
- dvgodoy/dl-visuals: Over 200 figures and diagrams of the most popular deep learning architectures and layers FREE TO USE in your blog posts, slides, presentations, or papers.
- Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「海外で流行っているフリー素材のサイトが、storyset(👉https://t.co/1EiYU5SlBU)。日本ではまだメジャーではないけど検索に加え、ブラウザ上で色を変えれるのが最高です👏。 https://t.co/slNCZbNGSN」 / Twitter
- Storyset | Customize, animate and download illustration for free
- Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「フリー素材のツールとして他にもよく使っているのが、 @unDraw_co (👉https://t.co/JO5vk9nVhu)。自分の好みとしては storyset より unDraw の方が好き😇。 https://t.co/rer16AqTRD」 / Twitter
- Illustrations | unDraw
- 今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
- 新しく、スタジオジブリ5作品の場面写真を追加提供致します - スタジオジブリ|STUDIO GHIBLI
- 無料で使える航空写真とOpenDroneMapを利用して、あなたの街の3Dデータ(点群)を作成する! - Qiita
予約済みドメイン等
- Example Domain
- Example Domain
- Example Domain
- Example Domain
- 予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io
- RFC 7042 - IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
- RFC 3849 - IPv6 Address Prefix Reserved for Documentation
- RFC 5737 - IPv4 Address Blocks Reserved for Documentation
チェックリスト等
- 技術書、それも売れるやつを書きたい人へ、編集者からのアドバイス | ツチノコブログ
- 技術系ブログを書いてくれてる人に申し上げたいこと6つ
- 論文等、書き物を他人に見せる前のチェックリスト – 上田ブログ
- ブログを書くときのアンチパターン集【Agent Grow Advent Calendar 2016:25日目】 | 自主的20%るぅる
- 第3回プロから学ぶ「わかりやすい文章の書き方」
- PDCAと5W1Hと4S
- k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
- ドキュメントの構造化による,良いドキュメントの作成方法:新春特別企画|gihyo.jp … 技術評論社
- 読まれるテキストは読者へのおもてなしの構造を持っている - mizchi's blog
- 失敗を学びに変える「障害報告書」の書き方 ─ RettyのCTOがGoogleで学んだ「問題を隠さない文化」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 本の虫: Bjarne Stroustrupのプログラミング入門書の査読の感想
- わかりやすい文章の10大原則(第2回) | Web文章入門(全7回) | Web担当者Forum
- sogitani / baigie inc.さんのツイート: "話が分かりにくい人の条件 ・前提の説明がない ・結論を先に言ってない ・質問に答えてない ・全体→部分という構造になってない ・抽象的な言葉が多い ・相手に合わせて使う言葉を選んでない ・言葉を省略しすぎてる ・事実と解釈がごちゃまぜ ・話が拡散したり脱線したりする"
- sogitani / baigie inc.さんのツイート: "分かりやすい文章の条件 ・前提の説明を丁寧にする ・結論をなるべく先に書く ・読み手の疑問を想定しそれに答える ・全体→部分という構造にする ・抽象的な言葉を避けて具体的に書く ・読み手に合わせて使う言葉を選ぶ ・言葉を省略しすぎない ・事実と解釈を区別して書く ・話の拡散、脱線を避ける"
- これだけ守れば見やすくなるデザインの基礎 - Speaker Deck
- Kazuho Okuさんのツイート: "どんな仕事でもそうだと思うけど、ソフトウェア開発でも実装の「how」でなく設計の背後にある「why」を共有しちゃえば、PRを細かく見る必要がなくなって楽になるんだよなーと思ってる"
- 事業計画書の作り方、新規ビジネスの考え方
日本語
読み
- 【みんなの知識 ちょっと便利帳】記号/符号の種類・名称・読み方 =キーボードの記号=
- 等幅フォントは「とうふく」「とうはば」どっち? - しろもじメモランダム
- 括弧 - Wikipedia
- 混乱する括弧の呼び方(パーレン?ブラケット?ブレース?) - ポンコツWebエンジニアのかっこ悪く生きる日記
- ハイアラーキー(はいあらーきー)とは - コトバンク
- 日本人が間違った覚え方をする「得意ではない」言葉について - GIGAZINE
- ハッシュタグ記号は「シャープ」じゃない? | 毎日ことば
- 既存(キソン)とは - コトバンク
- アキバで恥をかく禁句ワード Vol.5:アムド【あむど】 - ITmedia PC USER
- 不思議な読み方をするあの漢字 : KODOMO : 読売新聞(YOMIURI ONLINE) 1/2
- なかのん&マジックさんのツイート: "Wikipediaはwikiという聞き慣れない単語を固有名詞内に含めた時点で、マーケティング的には「wikiと略すな」は、逆に何言ってんのという感じある(言ってるのは外野なんだと思うけど)。"
- なかのん&マジックさんのツイート: "むしろ、wikiと言われてWikipediaが連想される状況って、Wikipediaにとっては誇らしい状況だと思うんだけど。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔からダイヤル、ワイヤレス、のように本来Yが発音にないのに「ヤ」と表記する由来は何かと思ったが、母音連続を避ける「介入子音」という概念があり、英語でも冠詞aがanとなったり、idea ofと発音する際、aとoの間にr音が発生するという話…面白い。 https://t.co/fZBTMBj0cF"
- contentscinii_20180414235118.pdf
- なかのん&マジックさんのツイート: "交野市私市って、大阪の人間でも読めない人多そうで、なんて地名だ。"
- なかのん&マジックさんのツイート: "かたのし、きさいち"
- 大西科学さんのツイート: "同じ難読市名でも、「まいかたかな……?」と間違って読んでしまうものも難読と言えますが、そもそも読めない、どう読んでよいかわからない市が千葉にあります。そこを訪れて初めて出会ったので、まったく読めない字というのがまだあるのだな、私はまだまだだなと思いました。匝瑳市というのですが。"
- suzakiさんのツイート: "「ちょうふく」と「じゅうふく」の読み方はMemory Deduplication (LinuxではKSM:kernel shared memory)を日本語で説明するのに苦労しました。 どちらを使っても大抵もう一方を指摘されました。… "
- まさみさんは語りたいさんのツイート: "代替と代替の議論も(笑)… "
- Shiro Kawaiさんのツイート: "「定数」はどっちがどっちだろう https://t.co/tYqmgeXybX"
- 「稟議=りんぎ」「消耗=しょうもう」ではない? 現代人には分からない“漢字の本来の読み方”(ねとらぼ) - Yahoo!ニュース
- 羊頭狗肉(ようとうくにく)の意味・使い方 - 四字熟語一覧 - goo辞書
- 三省堂 WORD-WISE WEB -Dictionaries & Beyond-
- 「まち」と読む町、「ちょう」と読む町(市区町村雑学)
- 「を」の音は「お」の音と違うか(基本的には同じだけど…) - 誰がログ
- 「目途」はどう読む? 「目処」との違いや使い方を解説|「マイナビウーマン」
- 理科の「pH」の読み方、「ペーハー」か「ピーエイチ」かで世代が分かるって本当? | オトナンサー
- 頁 | 漢字一字 | 漢字ペディア
- 和文通話表とは?知って得する!聞き間違えやすい単語の伝え方
毎日ことば
- 辞書にはない「大宗」の意味 | 毎日ことば
- 「訳」と「わけ」 | 毎日ことば
- 「多いに」 | 毎日ことば
- 「ありがたい」と「有り難い」 | 毎日ことば
- 「よい」と「良い」 | 毎日ことば
- 「多数」と「大多数」 | 毎日ことば
- 「任期を迎える」 | 毎日ことば
- 「臨む」と「望む」 | 毎日ことば
- 「なぜ新聞は閉じカッコの前に句点を付けないのか。」 | 毎日ことば
- 「濃(こま)やか」と「細やか」 | 毎日ことば
- 「無実」と「罪のない」の違い | 毎日ことば
- 「司令」と「指令」 | 毎日ことば
- 「シャッターを押す」 | 毎日ことば
- 「ため」とよむ「為」 | 毎日ことば
- 「目線に立って」 | 毎日ことば
- 「固定概念」 | 毎日ことば
- 「排外」と「拝外」 | 毎日ことば
- 各上位2位までが | 毎日ことば
- 辞書を、言葉をなんだと思っているのか | 毎日ことば
- なぜ新聞は「想う」を使わないか | 毎日ことば
- 約1万3249基 | 毎日ことば
- 「鋭い目線」を「鋭い視線」に直す理由 | 毎日ことば
- 「薄皮をはぐように」忘れる? | 毎日ことば
- ネットの類語辞典は辞書といえるか | 毎日ことば
- コトバ解説:「終息」と「収束」の違い - 毎日新聞
- 「メーン」か「メイン」か | 毎日ことば
- なむれすさんはTwitterを使っています: 「某IPAの事業、盛大な誤字の予感」 / Twitter
- 毎日新聞 校閲センターさんはTwitterを使っています: 「「前人みとう」の漢字表記は、「未到」は主として業績・記録に、「未踏」は主として土地に、と使い分けています。 https://t.co/5ky9jgA9os」 / Twitter
- 前人「みとう」は「未到」か「未踏」か | 毎日ことば
- 前人未踏(ぜんじんみとう)の意味・使い方 - 四字熟語一覧 - goo辞書
- 「してほしい」だけじゃない 漢字で書けるのに仮名にする言葉 | 毎日ことば
blog
- 医療法人申請における当用漢字 | yasuokaの日記 | スラド
- 恣意的の誤用
- ”たてつけ”??その使い方はあり?? : 生活・身近な話題 : 発言小町 : 大手小町 : YOMIURI ONLINE(読売新聞)
- 日本語は何故、どこが難しいのかー外国人から見る日本語のムズカシイ - 昭和考古学とブログエッセイの旅へ
- シャベルとスコップの呼び方が東日本と西日本で逆だと話題に 「小さい方がシャベル」「え、スコップだろ?」 - ねとらぼ
- ひとりふたりという数え方はなぜ三人めから「……り」とならないのか?→実は三人以上にも “り” はあるらしい「へぇ! 知らなかった」 - Togetter
- k16's note: 日本語の編集をしていてよく直すパターン15選(増えるかも)
- 漢字研究ブログ: 「函数」が音訳というデマと、本当の語源
- 「させていただけないでしょうか」禁止令 | ウェブ電通報
- 「なう」は接尾辞だけなのか?|まつーらとしお|note
- 「なう」小考 - 誰がログ
- 日本語の乱れの話|astral|note
- ★「職業に貴賎なし」を日本人のほとんど全員が誤解しているみたいだ | 一般公開された記事のきりぬき、保管。
Wikipedia
- 誤謬 - Wikipedia
- 以上・以下 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「() {} [] について。 ---- 世界的には {[()]} の順で用いられる方式が多数派。 JIS Z 8201-1981 においても「小括弧」「中括弧」「大括弧」という名称は廃止され、現在は「丸括弧」「角括弧」「波括弧」と表記。 https://t.co/vkCHgAkObS」 / Twitter
- 括弧 - Wikipedia
Twitter
ピンハネ
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「COCOAの件で多重請負を問題視する人が結構居るけど、「中抜きが問題だ!」って言ってる人は業界を全く知らないので無視して良いとおもう。 中抜きは中間業者をすっ飛ばすことを指すのであって、ピンハネのことではない。意味的には真逆なのよね。」 / Twitter
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「ピンハネがどれくらい発生してるかは論点として成立するとは思うけど、そこはお金の流れを見ないとなんとも。大きいプロジェクトを分割する時に多重請負構造は必要になるはずだし、構造自体が絶要らないと言えるものでは絶対に無い。」 / Twitter
- kokiさんはTwitterを使っています 「@chokudai 中抜きててそういう意味だったんですね。。ピンハネの方の意味なんだと思ってました。」 / Twitter
- 野生の男 WILDMANさんはTwitterを使っています 「@chokudai 日本語的には「中身を抜くこと」としての中抜きが先に存在していてその後に「中間業者を抜くこと」を中抜きと呼ぶ用法が生まれた感じですね https://t.co/V0jljdZ009」 / Twitter
- 中抜き/中貫き(なかぬき)の意味 - goo国語辞書
- Fumiaki Nishihara(西原史暁)さんのツイート: "これ、本当にそうで、なぜか「標本」のことを「母集団」と呼んでいる人、ネット上でも実社会でもよく見ます。たぶん、分母と混同しているんだと思うんですよね。 - 「母集団」の意味間違えてる奴多すぎ問題 https://t.co/0efNkMvOon"
- 「母集団」の意味間違えてる奴多すぎ問題
- 統計学における「母数」は"parameter"の訳語だってみんな知ってた?―訳語選択の失敗例
- なかのん&マジックさんのツイート: "「無学」だと知らないレベルのものが「共通の」言語プロトコルなのかというところには同意しかねますなぁ。… "
- 棚旗 織さんのツイート: "正しい敬称での呼び方は、敬意だけでなくそれ以上に、共通の言語プロトコルで会話できる旨を示します。わざわざ変な呼び方をして、己を育ちの悪い無学だと他者に思わせて何がしたいのでしょう。聞いてもらえる話も聞いてもらえなくなります。… "
- なかのん&マジックさんのツイート: "人それぞれ掘り下げたところ、掘り下げずに行ったところはあるわけで、「無学」という言葉自体、得意分野でマウントとりたい場合に使われるものと私は認識しています。"
- なかのん&マジックさんのツイート: "極端に言えば、昨今Twitterで叩かれてる「マナー講師の作り出すマナー」と何の違いがあるんだろうかと。言葉は誰かが作り出して広まるものなので。"
- Yusuke Teradaさんのツイート: "有名な「横書き句読点の謎」という文書https://t.co/8YjP40ma83 があるけれど,最新の調査結果として文化庁の「国語に関する世論調査」の資料 https://t.co/dOLJQfC4Wj が興味深い。うちの業界では「カンマ・マル」方式が主流だけれど,世間では「テン・マル」方式が主流になりつつある流れを感じる。… https://t.co/2wL2IsIPsG"
- ten.dvi
- r1393038_01.pdf
- Yusuke Teradaさんのツイート: "理数系の専門書では「カンマ・ピリオド」方式が圧倒的に感じるけれど,この調査では2.3%しかない。むしろ2.7%もあることになっている「テン・ピリオド」方式は一度も見たことがない気がする……(「横書き句読点の謎」では「まずないでしょう」と切り捨てられている)。"
- ショーンKY(ネット論客)さんはTwitterを使っています 「なまじ一般語と同じ言葉を使っているために勘違いされやすそうな言葉の例 医学「清潔・不潔」 数学「高々」 化学「雰囲気」 あと他に専門の方頼む」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「情報工学だと、低レベルとか。」 / Twitter
- 松野美穂💮さんはTwitterを使っています 「「そうゆう」を使う方は私は警戒してしまいます。お仕事の依頼のメールに使われていたらお引き受けしない可能性がグンと上がります…。言葉を扱う仕事の方には使ってほしくありません😢 この他に「延々と」を「永遠と」とされるのも嫌です… https://t.co/RkXhBeSPeT」 / Twitter
- マカオさんはTwitterを使っています 「@matsunom @kotoyoshi_y 一応をいちようと言われるのが個人的には苦手ですね。 言葉でいちようと言われて文字でどう書くんだろうって思ったら「いちよう」で苦笑いしました。」 / Twitter
- まこ🐁きめつ沼さんはTwitterを使っています 「@matsunom 『言わざるおえない』と書く人も結構多くて……どんなにいい文章を書かれるかただったとしても『ウッッ』ってなってしまいます。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ら抜き言葉みたいに、「間違い」(名詞)を「間違え」って言う/書くのもどっかの方言なんかな?」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「日本語の書き下しという問題をめぐっては、これまでに思考を何周も回してしまった結果、読み手に対して誤解がなさそうなら何でも正解でいいという心境にあり、あらゆる意味で「正解」の存在が怖い。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「いまのところの好みは、文部省がなんか昭和に出したやつを原則としつつ、副詞とか接尾辞はひらがなに倒して、ただし漢字による強い語感がほしい場合には漢字を使うことをいとわない、かなあ。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「これもどっかで文書化しておかないとなんだよな」 / Twitter
- 公文書の読点「,」から「、」に 半世紀以上前の通知変更へ | 共同通信
- Sho YokoiさんはTwitterを使っています 「句読点に「,.」を使うのは欧米かぶれだとか “理系” の論文ではそれが普通だとかいう声が飛び交っているので、みなさん是非まずこちらを: 渡部 善隆「横書き句読点の謎」(PDF) https://t.co/N9DvYZA5gs」 / Twitter
- ten.dvi - ten.pdf
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「英語だとboundになるのだがこの表現や律速の語源、どこからきたんだろう。 https://t.co/fatIw7nzhN」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「嫁(統計屋さん?)に「律速」が通じなかった。(電車の乗り換えを何回もするけど)「結局◯◯線律速だからここを急いでも着く時間変わらん」と言ったら「リッソク??」だった。 「律速」って理科系の方言なんか。普通に日常会話で使ってたわ。てか「りっそく」漢字変換で出ない。。。」 / Twitter
- あきぽち@とくになしさんはTwitterを使っています 「@dr_vegepamyu 理系だけど律速はじめて聞きました! ニュアンスが分からない😅 よく使う理系方言は、さちる。です笑」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@pochicoh 元は複数の化学反応が同時に起こる際の反応速度などに使う用語で、パンピー用語に直すと「ボトルネック」らしい。 個人的な印象だけの話ですが、例えば書類のスタンプラリーで部長があんまり席におらず判子がもらえない時「部長がボトルネック」というと「判子押しが一番遅いのは部長」という名詞?」 / Twitter
- 飯間浩明さんはTwitterを使っています 「「ことばの正誤を判定しないで、辞書が作れるのか」とよく聞かれます。私は、不確かな基準で正誤を認定するより、「この言い方は俗語的」「何年頃からの言い方」「文章では使わない」「すでに古い」などの情報を示したいと考えます。このほうが、ユーザーが主体的に使うかどうか判断できるからです。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「現地語」としての日本語は残るでしょう。危ういのは(1/3が事実なら)「国語」としての日本語。 「現地語」だけでも生活は送れるけど学問、知の蓄積がしにくい。かつてそれを「普遍語」が担ってた。近代になって「普遍語」で記述される高度な知を「現地語」で書けるようにすることで「国語」が生まれた」 / Twitter
- 林 譲治さんはTwitterを使っています 「日本人の3分の1は日本語の文章が読みとれない というのが事実とすると、日本語はほぼ存在しないことになる。社会の構成員の三分の一が理解できないのでは言語の役割を果たしていないも同然。 二人の人間が日本語がわかる確率は4/9つまり半分以下。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「日本語」という単一の言語が最初から存在してたわけじゃないってこと。知の蓄積ができなくなっても、日常生活やメディアにはずっと現地語としての日本語が使われ続けるでしょう。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみに日本では「メンタリティ」という言葉はよく用いられるが、英語でmentalityというと微妙に相手を見下してる感があるので (たぶんスラングの"mental"が悪い意味なため)、新山は "mindset" を使うようにしている。 https://t.co/L7MC7GcUQY」 / Twitter
- Urban Dictionary: mentality
- 椚座 くにゅくにゅ💉💉💉 淳介さんはTwitterを使っています: 「だいたい「希ガス」はネットスラングのみならず,元の化学用語としても使わない方向になってて,いまの教科書は「貴ガス」に置き換わってる」 / Twitter
- 飯間浩明さんはTwitterを使っています: 「「SmartFLASH」にもコメントしましたが、私が「辞書にあるのは定義でなく語釈、説明です」と繰り返すようになったのは5年ほど前からで、それ以前はけっこう「定義」「定義」と普通に言っていました。「用語に気をつけないと」と自覚したきっかけのひとつは『広辞苑』編集者の増井元さんの文章でした。 https://t.co/sUTU1crh87」 / Twitter
- News Up コロナ カタカナ 多いかな?ワクチン予約がディフィカルト! | 新型コロナウイルス | NHKニュース
- 員数 - 国語 解決済 | 教えて!goo
- 若者ことばの「やばみ」や「うれしみ」の「み」はどこから来ているものですか | ことばの疑問 | ことば研究館
- 15.変換機能のイタズラ――間違われやすい「同音異義語」 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
- 25.間違えるのには理由がある「にもかかわらず」の漢字表記 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
- 「5人のなかでCの“次に”背が高い人は?」 解釈の分かれる質問にあなたならどう選ぶ? - ねとらぼ
- 敷衍 - ウィクショナリー日本語版
- 文章作成の基本を学ぶための記事・学習コンテンツのまとめ - Qiita
- 「てふ」と書いてなぜ「ちょう」と読むのか知りたい。 | レファレンス協同データベース
- 「了解しました」より「承知しました」が適切とされる理由と、その普及過程について | 株式会社LIG
- 文化庁 | 文化庁月報 | 連載 「言葉のQ&A」
- エクスペリエンス(experience)とは - IT用語辞典 e-Words
- 日本語教育用アクセント辞典
- writing technical articles as you like - Speaker Deck
- k16's note: TUG 2013で日本語の巻末索引について発表しました
英語
Qiita
- IT業界で横行する恥ずかしい英語発音 - Qiita
- コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
- 要注意な技術英語 - Qiita
- 英語の技術文書を早く読むには - Qiita
- 英語(1) プログラマが知っているとよい英単語の語源 - Qiita
- 英語版 Wikipedia の Software Engineering の第1段落を解説してみた - Qiita
Wikipedia
- コンピュータ略語一覧 - Wikipedia
- List of computing and IT abbreviations - Wikipedia
- ISV - Wikipedia
- OSV型 - Wikipedia
- Numeronym - Wikipedia
- ヌメロニム - Wikipedia
- 和製英語 - Wikipedia
- 大母音推移 - Wikipedia
フォニックス
- ヒーホーくんさんのツイート: "英語でこれを教えないせいでどんだけ今まで無駄な時間を費やしてたのか… "
- 梓弓さんのツイート: "米国駐在中、娘がキンダーでフォニックスを叩きこまれてたのを見て目から鱗。 表音文字のくせにスペルと音が一致しない凶悪な英語でフォニックスを教えないのはアイウエオ表の読み方知らずに日本語(しかも旧仮名使い)習う様なモノ。てふてふでせうの読み方知らないんだから会話上手くなるはずない。… https://t.co/A7iF1p5teM"
- 梓弓さんのツイート: "小学生から英語を、で週一でハローとかやる全く時間の無駄。 文科省のアホ。 意味のない事を暗記出来るうちに九九の様に、フォニックスとサイトワードを関連付けて徹底的に暗記させるなら意味がある。 例えばcook, book, lookの塊、oil, off, openの塊でスペルの並び方と発音の法則を覚える。"
- まさみさんは語りたいさんのツイート: "フォニックスっぽい言い方はなんとなく身に着いちゃったなあ。多分文科省の人とかもそういう非自覚的な学び方しかしてないから、自覚的な学び方を教えられないのだろう。"
blog
- 英語ミーティングを乗り切るために身につけたバッドノウハウ - knqyf263's blog
- オープンなKindle用英和辞書 - 豪鬼メモ
- 中華なイパネマ vs 中華のイパネマ - 豪鬼メモ
- ”delete”と”remove”の使い分けについて | SDNA ローカライズチームブログ
- どうしても英語の綴りが覚えられない! 難しい「スペル」を覚えるための7つのヒント | DMM英会話ブログ
- TBAとTBD、TBCの違いがどうしても覚えられないのでメモ - インターネットの備忘録
- 日本人が陥りがちな英文メールの罠 - 人生の難易度が高すぎるのですが
Twitter
- ゲタ子🇺🇸国際結婚ネバダ州🏜️ベガスじゃないよさんのツイート: "中高の英語、こういう英語教えてほしかったわ… "
- 英語では「0個の」もの(名詞)は複数形で表現する | Weblio英会話コラム(英語での言い方・英語表現)
- Manabu Uenoさんのツイート: "18の時にアメリカに留学してまずESLのクラスに入った。そこで驚いたのは、日本の中高で習った発音は完全に間違いだったということ。そもそも母音の違いが分かってなかった。そこでアメリカ英語の母音16個を徹底的に練習した。そしたらどんな単語もだいたい通じるようになった。今も発音は褒められる。… https://t.co/icY1ZBPV5s"
- Manabu Uenoさんのツイート: "外国語の発音についてはどうしても子音の違いに注目しがちだけど、日本人が英語についてまず注目すべきは、母音の数が3倍もあるという点だと思っている。この「音の多さ」に自覚的でなければ、第二言語としてうまく習得できないだろう。発音にしても、聞き取りにしても。"
- Manabu Uenoさんのツイート: "英語の発音を練習する際は、自分が知っている全ての単語について、日本語の母音ベース=カタカナで覚えている音を一度全部「捨てる」こと。そして英語の母音を練習して、その母音ベースで全ての単語の音を一から知り直す。例えば bat とbut をはじめから違う音として覚える。"
- gr4vit0nさんはTwitterを使っています: 「今回の海外遠征でヨーロッパの人達が発音していた専門用語で驚いた発音は 「Ghidra」->「ジーハイドラ」 「ioctl」->「アイオクタル」 がダントツでした。 全員微妙に発音違うのにちゃんと会話がすぐに通じてるのすごい」 / Twitter
- hikaliumさんはTwitterを使っています 「まじか、OOBEはうーびーなのか、文字は見たことがあったけど、発音したりそれを聞いたことがなかった…。(えいごむずかしい。)」 / Twitter
- 今更聞けない会社の英語表記「Co., Ltd.」「Inc.」「LLC」「Co.」を解説!【保存版】 | English Lab(イングリッシュラボ)┃レアジョブ英会話が発信する英語サイト
- 青子守歌さんはTwitterを使っています 「「キリル文字の」という意味の英単語Cyrillicはセリリックと発音することを覚えた(ずっとキリリックって読んでた)」 / Twitter
- 英語の発音について概説する - Amosapientiam
- Anki - powerful, intelligent flashcards
- ELSA - Speak English fluently, easily, confidently
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「すでにかなり有名ですが、YouTubeを使って英単語の発音を確認できるサイト。米国、英国、豪州の発音でフィルタできる。"covfefe"のような新語も検索可能。 https://t.co/2DuhqbbBsU」 / Twitter
- Improve your English pronunciation using YouTube
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日知ったこと: アメリカ英語、イギリス英語などと同様に「ヨーロッパ英語」なる方言があるらしい。おもにフランス語やドイツ語話者の癖が入ったもので、たとえば "information"を "informations"と言う、三人称単数の"s"を落とす、進行形"~ing"の使用が多い、などがある。 https://t.co/FvMo3x8Jmu」 / Twitter
- Euro English - Wikipedia
- zehnpaardさんはTwitterを使っています: 「へえ、「X is not Y」形の再帰的頭字語ってGNUが最初じゃなかったんだ」 / Twitter
- Lars BrinkhoffさんはTwitterを使っています: 「DLW@MIT-AI 08/08/77 04:26:09 To: (BUG LISPM) at MIT-AI The Lisp machine editor has now officially been named "EINE", which stands for EINE Is Not Emacs. (Apologies to Ted Anderson, the creator of "TINT").」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@zehnpaard Jargonによると、TINTが最初のようです https://t.co/DyXmZOc7BG」 / Twitter
- recursive acronym
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「warningはウォーニング、Ubuntuはウブントゥ、って読むけどnullはヌルって読んじゃう。あとparserはパーサーって読むけどパーザー・パーサーの違いはイギリス英語かアメリカ英語かの違いである事を今日知った」 / Twitter
- KAZ先生(英語喉®︎)さんはTwitterを使っています: 「多くの人に知ってほしいです。英語を一生懸命勉強しているのに、英語が聴きとれないというかた、ぜひ、この動画を見て、音節の重要性に気づいてください。大人になってからでも英語はマスターできます。 https://t.co/LWiF2QdutE」 / Twitter
- まさみさんboostedさんはTwitterを使っています: 「ioctlって「アイアクト」という発音になるらしい。i-oct(l)」 / Twitter
- まさみさんboostedさんはTwitterを使っています: 「pidもピッドでいいらしい。」 / Twitter
- 圧倒的腹落ち感!英語の発音と綴りが一致しない理由を専門家に聞きに行ったら、犯人は中世から近代にかけての「見栄」と「惰性」だった。 | DMM英会話ブログ
- 【英語論文の書き方】第24回 because, since, as など 理由を表す表現 論文翻訳・英文校正 研究者専門の翻訳会社 ワールド翻訳サービス
- pseudo とは 意味・読み方・表現 | Weblio英和辞書
- mappedの意味・使い方 - 英和辞典 WEBLIO辞書
- mappedの意味 - 英和辞典 Weblio辞書
- ラストネームがファーストネームに? 海外でも日本式に「姓」が最初で起こる混乱とは【世界が変わる異文化理解レッスン 基礎編17】 | サライ.jp|小学館の雑誌『サライ』公式サイト
背景知識は異なる
- hsjoihs (はすじょい)さんはTwitterを使っています: 「スタンフォードの物理学科、「みんな背景知識は異なるんだから、『そんなこともできないのかよ』みたいなことを人に言わないこと、言ってしまったら即座に謝ること」とかがシラバスに載っていた授業がありますね。大事にしていきたい姿勢だと思っている」 / Twitter
- Hideo Oide🍜さんはTwitterを使っています: 「私は技術者のヒエラルキーのトップを高くするにはボトムの部分の裾野を広げるのが大事だと信じているので、低レベル帯の人達を切り捨てるような発言をするような人がトップに居るようなコミュニティは廃れてしまえば良いと思ってしまう。」 / Twitter
- hsjoihs (はすじょい)さんはTwitterを使っています: 「原文はこちら https://t.co/uUzoKOHIy8」 / Twitter
- hsjoihs (はすじょい)さんはTwitterを使っています: 「私がセキュリティ・キャンプで講師をやったときも、↑ のような姿勢をかなり心がけましたね https://t.co/VqaQ10dkgI」 / Twitter
- hsjoihs (はすじょい)さんはTwitterを使っています: 「はてなブログに投稿しました #はてなブログ 2022年セキュリティ・キャンプL3(Cコンパイラゼミ)の会話ログを全て公開します - hsjoihs’s diary https://t.co/FqrvGTTvKg」 / Twitter
- 2022年セキュリティ・キャンプL3(Cコンパイラゼミ)の会話ログを全て公開します - hsjoihs’s diary
GitHub
- 最新のJIS情報 (METI/経済産業省)
- OSDN Magazine -- オープンソースの話題満載
- InfoQ: ソフトウェア開発の最新情報、トレンドと事例紹介
- 自作PCニュース|自作.com
- 他人の空似
- tenpoku1000 (市川 真一)
- GitHub · Where software is built
- Trending C repositories on GitHub today
- Trending C repositories on GitHub this month
- GitHub Codespaces
- Welcome - dev [GitHub] - Visual Studio Code - GitHub
その他
その他
- GitHub の基礎 - 管理の基本と製品の機能。 - Learn | Microsoft Docs
- GitHub Next | Visualizing a Codebase
- iOS、AndroidのGitHub Mobileで新たな2要素認証 | TECH+
- 0から作るソフトウェア開発
- 記事一覧 - Jicchoの箱
- J
- GitHub、コード提供の全ユーザーに2要素認証(2FA)を義務付けへ 2023年末までに - ITmedia NEWS
- GitHubのユーザー名を変更した後のあれこれ - Speaker Deck
- 精巧な「偽GitHub」サイトに注意。ドメインなどを確認 - PC Watch
- Most active GitHub users in Japan
- GitHub、AIコード作成支援ツール「Copilot」に開発者が音声でコーディングできる新機能の追加を予告 | TEXAL
- JA0613_LFResearch_DEISurvey_Report_121321.pdf
法務
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Googleの法務がオープンソースの管理に政府も関与させるべきとか書いてたのはこの件か。log4jの件で安全保障上の脅威と見做したホワイトハウスとそれと結びつきたいBig Techという構図かな。ここに非営利組織の名がないところに怖さがあるね。」 / Twitter
- Jennifer JacobsさんはTwitterを使っています 「NEW: Google, Microsoft, Oracle, Amazon, Apple, Facebook, other tech co’s meeting with White House today. Agenda: log4j and how to improve security of open source software, which, because it’s used & maintained by volunteers, is “a national security concern,” @JakeSullivan46 says.」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「こういう動きに煽られて、公開免許とかセキュリティ監査義務付けとか一部の官庁が言い出さないか心配になってきた。」 / Twitter
- 全世界を揺るがした「Log4j」のようなオープンソースソフトウェアを無償でメンテし続けるという難題を解決すべくGoogleが立ちあがる - GIGAZINE
- 大企業は無償利用せず金銭的支援を行えと警告したのに改めないので作者がついに激怒、毎週2000万回以上ダウンロードされるcolors.jsとfaker.jsを破壊し使用不能に - GIGAZINE
- 作者自らによる破壊で世界中に被害を与えた「Faker.js」がコミュニティ主導のプロジェクトに変更 - GIGAZINE
- colors.jsとfaker.jsの作者が自らのライブラリを破損、背後にはオープンソースを悪用する企業への不満? | OSDN Magazine
- 「無料でLog4j対策を教えろ」と迫った大企業とオープンソース開発者の痛快なやりとりが公開中 - GIGAZINE
- オープンソースcURLの作者、某大企業から「24時間以内にこの質問に答えるように」との無礼なメールを受け取る - Publickey
不適切な名称
- Easily rename your Git default branch from master to main - Scott Hanselman
- VMwareがコネクターの「オス/メス」表記を非推奨にするとの報道 | スラド ハードウェア
- ゆうくさんはTwitterを使っています 「git 2.28 がリリースされて init.defaultBranch が追加されたらしい。git init で最初に作られるブランチ名を master から変えられるやつ。 https://t.co/fcG82vjppd」 / Twitter
- Highlights from Git 2.28 - The GitHub Blog
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もう英語を避けようぜ。 git push origin master のかわりに クソ野郎 突き倒す お前 俺 にしよう。」 / Twitter
- ギズモード・ジャパンさんはTwitterを使っています 「Github、人種差別を連想させるコーディング用語の見直しへ https://t.co/1EaS8H8esF」 / Twitter
- Github、人種差別を連想させるコーディング用語の見直しへ | ギズモード・ジャパン
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「クソ野郎 侮辱 クソ野郎 状態 頭 もがれたぞ」 / Twitter
- Twitter、コードやドキュメント内の用語「Whitelist/Blacklist」「Master/Slave」「Dummy value」などを好ましい用語へ置き換え、具体例も発表 - Publickey
- Linuxカーネルでの「master/slave」と「blacklist」禁止、トーバルズ氏が承認 - ITmedia NEWS
- Ichinose ShogoさんはTwitterを使っています 「すごい提案がやってきた 「"pull" はいじめに関連しており、気分を害する人がいるので、"pull request" を "get request" に変更しましょう」 https://t.co/VmLWY6PuM6」 / Twitter
- Renaming "Pull requests" into "Get requests" by fengertao · Pull Request #15 · github/renaming
- sksatさんはTwitterを使っています 「GitHubポリコレ部についていつも思うのは、「いやGitはいいんかい」ということですね」 / Twitter
- sksatさんはTwitterを使っています 「ポリコレ部のみなさん、Linux Kernelの不適切なコメント除去活動などに参加されるとよいのでは。知らんけど。」 / Twitter
- GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更 - Publickey
- 新しいGitHubリポジトリではmainブランチがデフォルトに
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「BLMの影響で、電子工作でよく見る MOSI/MISO (Master/Slave In/Out) が COPI/CIPO (Controller/Peripheral) になったらしい…後年「BLMにビビって、下らない言い換え流行ったよね(苦笑)」とか振り返るのかな? https://t.co/Z894bK0N66」 / Twitter
- A Resolution to Redefine SPI Signal Names - Open Source Hardware Association
- カイのオタク文化ラボ【⋈】さんはTwitterを使っています 「差別的だと思われる用語や呼称の使用を禁止すれば差別がなくなるわけではありません。それをやっても差別は「透明化」するだけです。見えない差別になるだけです。今度は隠語やジェスチャーが使われるだけ 差別をなくしたいなら「差別用語禁止」ではなく「人間は差別が好き」という闇と向き合うべき」 / Twitter
- y0gs0th0thさんはTwitterを使っています 「@kai_anime6420 「差別用語自体」ではなく、「差別する精神」…自体は無くしようがないが、「内在する差別する精神と、差別されて傷つく方らの存在(と差別を逆に使う存在)が居ることを自覚する」のは出来るよなぁ」 / Twitter
- 「アカデミー賞平手打ち事件」で悪質なジョークを言ったクリス・ロックと平手打ちしたウィル・スミスはどちらが支持されているのか? - GIGAZINE
- 「差別用語が含まれる」としてアメリカ全土の660以上もの地名が変更へ、当事者からは賛否両論 - GIGAZINE
GIGAZINE
- わかりやすくて役に立つリリースノートを書くための10のポイント - GIGAZINE
- GitHubのソースコードがGitHub上にリークされる、公開した人物は「GitHubのCEO」を偽装 - GIGAZINE
- オープンソースプロジェクトのセキュリティを1発で自動評価してくれる「Security Scorecards」が登場 - GIGAZINE
- GitHubがGit操作時のパスワード認証を廃止、今後はトークンによる認証が必須に - GIGAZINE
- GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー - GIGAZINE
- GitHubのサービスを駆使してウェブサイトの死活監視が無料で行える「Upptime」 - GIGAZINE
- Googleが提案するオープンソースプロジェクトのセキュリティを高めるための「Know, Prevent, Fix」とは? - GIGAZINE
- SSH接続でGitHubにアクセスする際にセキュリティキーによる認証が利用可能に - GIGAZINE
- Gitの操作を間違ってしまった時に簡単に元に戻せる「git undo」を使う方法 - GIGAZINE
- GitHub開発チームの開発環境がCodespacesに移行、セットアップ時間が45分から10秒に - GIGAZINE
- 田中裕一(Yuichi Tanaka)さんはTwitterを使っています 「Codespacesと似てるんですが、GitHubのリポジトリで "." を押すと、ブラウザ上のVS Codeがエディタとして起動します。これでブラウザ上でコードをさくっと編集できます。Codespacesと違ってこちらはエディタが起動するだけなので、ビルド等を行う環境が必要な場合はCodespacesを使うイメージです。」 / Twitter
- 脚光は浴びないが重要なオープンソースソフトウェアを維持する開発者に報酬を分配する「OpenFare」とは? - GIGAZINE
- テキストからグラフを自動で作成してくれるライブラリ「Mermaid」をGithubがサポート - GIGAZINE
- 「10年かけてGitHubリポジトリが集めた5万4000個ものスターをうっかりミスで失ってしまった」という体験談 - GIGAZINE
- GitHubで「npm」を含む数十のプライベートリポジトリに対する不正アクセスが発生、被害状況や対策方法は? - GIGAZINE
- ソースコードの「続き」を自動で補完する「GitHub Copilot」がすべてのユーザーに利用可能へ - GIGAZINE
- コード自動入力AI「GitHub Copilot」は「開発者のコードを勝手に売りさばくサービス」という指摘 - GIGAZINE
- GitHubの利用をやめるようオープンソースソフトウェア非営利団体が強く呼びかけ - GIGAZINE
- 多数のGitHubリポジトリでマルウェアを仕込んだ「セキュリティ検証用コード」が発見される、なんと10個に1個は悪意のあるリポジトリ - GIGAZINE
- Mastodonのように多くのユーザーがコンテンツをネットに公開するアプリをセルフホストする際にDMCAなど法的問題について知っておくべき事まとめ - GIGAZINE
窓の杜
- GitHub、中核機能をすべて無償化 ~チーム開発も無料で始められるように - 窓の杜
- Microsoft、「Visual Studio Codespaces」を「GitHub Codespaces」に統合 - 窓の杜
- GitHub、“Open Source Guides”の日本語訳を公開 ~OSSコミュニティのベストプラクティスを集約 - 窓の杜
- 「GitHub」がMP4/MOVビデオのアップロードに対応 ~不具合や要望の投稿に - 窓の杜
- 「GitHub Copilot」がプレビュー公開 ~関数名やコメントをみたAIが勝手にコーディング - 窓の杜
- 「GitHub Codespaces」が法人向けに提供開始 ~[.]キーでリポジトリを「Visual Studio Code」開くショートカットも - 窓の杜
- 「GitHub CLI 2.0」が公開 ~カスタムコマンドで機能を自由に拡張できるように - 窓の杜
- 「GitHub」から非公開リポジトリなどのデータが流出 ~「npm」にも被害 - 窓の杜
- 「GitHub Copilot」が一般公開 ~書こうと思っているコードをAIが勝手に具体化 - 窓の杜
- 「Git for Windows」v2.37.0が公開 ~不要オブジェクトを賢く管理するCruft Packが導入 - 窓の杜
Publickey
histric
histric-1
- 「GitHub Container Registry」パブリックベータとしてサービス開始。無料でコンテナのパブリックイメージ公開可能 - Publickey
- CNCF、Kubernetes用ソフトウェアパッケージなどの公開リポジトリ「CNCF Hub」を公開 - Publickey
- CircleCIがAWSやGoogle Cloud、Kubernetesなどへ自動デプロイするための共有パッケージ「Orb」を公開。クラウドへの自動デプロイが容易に - Publickey
- GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 - Publickey
- GitHub、電子掲示板でコミュニティ機能を実現する「GitHub Discussions」パブリックベータを開始。GitHub Universe 2020 - Publickey
- GitHub、自動でマージが実行される「Pull request auto-merge」機能を発表。GitHub Universe 2020 - Publickey
- Google、オープンソースソフトウェアの脆弱性をバージョンごとにデータベース化する「OSV」(Open Source Vulnerabilities)プロジェクトを開始 - Publickey
- GitHubが動画のアップロード機能に正式対応。バグの再現手順や機能のデモなどの説明が動画で容易に - Publickey
- AIとのペアプロへまた一歩前進、「GitHub Copilot」登場。AIがコメントからコード生成、書きかけのコードを補完、コードを見てテストコード自動生成など - Publickey
- マイクロソフト、オープンソースプロジェクトにAzureの無償クレジットを提供開始 - Publickey
- GitHub ActionsがOpenID Connectをサポート。GitHubからクラウドへのデプロイがより安全に - Publickey
- AIとペアプロする「GitHub Copilot」がneovimとIntelliJ IDEAでも利用可能に、テクニカルプレビューとして - Publickey
- GitHubがコード検索を強化。正規表現対応、プログラミング言語別、組織やリポジトリ、ファイルパスなど範囲指定、高速な結果表示 - Publickey
- GitHub Actionsの作成が容易に。リポジトリの中身に合わせておすすめのワークフローを一覧表示、検索機能も - Publickey
- GitHub、スポンサーだけが見られるリポジトリ「Sponsors-only repositories」発表 - Publickey
- GitHub、Markdown構文でフローチャートやクラス図、ガントチャートなどのダイアグラムを表示できる「Mermaid」をサポート開始 - Publickey
- GitHub、Wikiページにも画像をドラッグ&ドロップで追加可能に - Publickey
- GitLab.com、SaaS版の無料枠を最大ユーザー5人までに制限。6月から - Publickey
- Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能に - Publickey
- GitHub、コードのコントリュビュータに2要素認証を義務化、2023年末までに。パスワードレスへの対応も積極化 - Publickey
- マイクロソフト、AIが人間を支援する「Copilot for everything」を推進。3DアニメツールのMayaで自然言語による操作をAutodeskと開発中。Microsoft Build 2022 - Publickey
- マイクロソフト、ソースコードをAIが読み込んで自然言語で説明してくれる「Copilot Explain」を開発中。GitHub Copilotは今夏に正式サービスへ。Microsoft Build 2022 - Publickey
- GitLabがVisual Studio CodeベースのWebIDEへ移行すると発表 - Publickey
- GitHubの使い方を学ぶ「GitHub Skills」が無料公開。GitHubを実際に操作してMarkdown、Pages、Pull Requests、マージのコンフリクト解消などを体験 - Publickey
- GitHub、プロフィール欄に「Achievements」(実績)を示す各種バッジの表示をスタート - Publickey
- プログラミングをAIが支援してくれる「GitHub Copilot」が正式サービスに、VSCodeやNeovimなどで利用可能。月額10ドルから - Publickey
- AWSも、プログラミングを機械学習で支援する「Amazon CodeWhiperer」プレビュー公開。コメントを書くとコードを提案 - Publickey
- GitHubの機能や使い方を質問できるコミュニティ「GitHub Community」がオープン - Publickey
- Launching GitHub Community: Powered by GitHub Discussions | The GitHub Blog
- Discussions · community · GitHub
- 永久凍土化にコードを保存する「Arctic Code Vault」バージョン1.0達成、GitHubが報告。1.4トンの保管庫を設置 - Publickey
- GitHubのプロファイルでタイムゾーンの設定が可能に。他のユーザーにローカルの現在時刻を表示 - Publickey
- インフラのGitOpsを可能にする「Pulumi Deployments」登場。コードをGit Pushするだけでインフラの構成変更を実行 - Publickey
- [速報]「Hey, GitHub! 」、GitHubが音声認識による操作とコーディングを可能にする実験的機能をプレビュー公開 - Publickey
- [速報]GitHub Codespacesが全ユーザーに無料提供へ、毎月60時間分。JetBrainsとJupyterLabもIDEとして選択可能に - Publickey
- Pythonで環境に依存しないポータブルなCI/CDを記述可能に。「Dagger Python SDK」リリース - Publickey
- GitHub、無料のパブリックリポジトリユーザーにも、コード内のシークレットを検知してくれる「Secret scanning」を無料提供へ - Publickey
blog
その他
バージョン
- Semantic Versioningの闇 - knqyf263's blog
- セマンティック バージョニング 2.0.0 | Semantic Versioning
- ソフトウェアのバージョンと開発スタイルの関係について | フューチャー技術ブログ
histric
histric-1
- コードや Pull Request をコミュニケーションの手段として使ってほしい - Object.create(null)
- VSCodeのGitHubリポジトリに対する不正なPushアクセス - RyotaK's Blog
- AWS IAM Userアクセスキーのローテーションを自動化しました | Money Forward Engineers' Blog
- 日記 (2020 年 5 月)
- 日記 (2020 年 6 月)
- 日記 (2020 年 7 月)
- git で並列 fetch するオプション - HsbtDiary(2021-02-03)
- Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
- 同じソースツリーでテストが通っていたらテストをスキップする | おそらくはそれさえも平凡な日々
- 大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog
- リリースノートからコミットログを調べる
- Git管理下でローカル編集した差分を検知除外したい時にはgitignoreではなくgit update-indexを使おう | DevelopersIO
- MDN日本語版の覚え書き | フロントエンドBlog | ミツエーリンクス
- 新しいGitHubベースシステムにおけるMDN日本語版の翻訳が凍結解除 | フロントエンドBlog | ミツエーリンクス
- まともに使えるソフトウェアを作るためのチェックリスト - うさぎ小屋
- Keep a Changelog
- GitHub開発チームでのCodespacesの利用 - GitHubブログ
- Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
- Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
- コミットはスナップショットであり差分ではない - GitHubブログ
- Takafumi IkedaさんはTwitterを使っています 「ついに仕事用アカウントを個人とは別に作れるようになった / “Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog” https://t.co/SoVcB3Vj2c」 / Twitter
- Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog
- GitHub上のsensitive dataを削除するための手順と道のり | メルカリエンジニアリング
- Tailscale経由でGitHub ActionsのVMにsshする - masa寿司の日記
- GitHubからJenkinsとTerraformを使って仮想マシンをデプロイしてみた | IIJ Engineers Blog
- GitHubリポジトリの機密情報チェックツール - 電通国際情報サービス TechBlog
- Include diagrams in your Markdown files with Mermaid | The GitHub Blog
- Line-staging (Interactive Staging) - Visual Studio Blog
- トランクベース開発とデプロイ - Mitsuyuki.Shiiba
- GitHub Actions入門 ── ワークフローの基本的な構造からOIDCによる外部サービス認証まで - エンジニアHub|Webエンジニアのキャリアを考える!
- Commitizenを使ってgitのコミットメッセージをしっかり書こう | DevelopersIO
- philips-labs/terraform-aws-github-runner でオートスケールするセルフホストランナーの構築・運用 - Cybozu Inside Out | サイボウズエンジニアのブログ
- デプロイコマンドを作りながら気をつけたもの - STORES Product Blog
- Dependabot 運用を自動化したい | Money Forward Money Forward Engineers' Blog
- Github プルリクの添付画像はprivateでも認証なしで誰でも参照可能です
- Attaching files - GitHub Docs
GitHub
- 2 要素認証を設定する - GitHub Docs
- YurikaさんはTwitterを使っています 「オープンソースのメンテナー向けの脆弱性対応ポリシーやプロセスのつくり方ガイドはこっち:https://t.co/y7p8XmT2Gt オープンソースではなくても、自社製品の脆弱性を受け付け対応するプロセスの導入 (いわゆるPSIRTの導入) を検討しているところには参考になりそう」 / Twitter
- ossf/oss-vulnerability-guide: A guide on coordinated vulnerability disclosure for open source projects. Includes templates for security policies (security.md) and disclosure notifications.
- top-github-users/japan.md at main · gayanvoice/top-github-users
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「githubさん、登録したssh鍵を(1年以上使わないと)勝手に削除するのね…うーむ知らなかった。 ---- 「セキュリティ上の理由から、過去 1 年間使用されていない SSH キーを GitHubは自動的に削除します」 https://t.co/av1tHpjP4L」 / Twitter
- SSH キーの削除または紛失 - GitHub Docs
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「READMEの歴史から、良いREADMEの書き方まで。わいわい。日本語訳も用意されてる。 / “GitHub - hackergrrl/art-of-readme: Things I've learned about writing good READMEs.” https://t.co/SAInVGXqrq」 / Twitter
- GitHub - hackergrrl/art-of-readme: Things I've learned about writing good READMEs.
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「日本語訳 https://t.co/zBmryGSb9y」 / Twitter
- art-of-readme/README-ja-JP.md at master · hackergrrl/art-of-readme · GitHub
OSDN
- オープンソースプロジェクトと開発者を結びつけるサービス「OSS Port」 | OSDN Magazine
- Microsoft、オープンソースプロジェクトにAzureクレジットを付与するプログラム | OSDN Magazine
- 企業は社内で使うオープンソースコンポーネントの17%しか認識していないーー米Revenera調査 | OSDN Magazine
- オープンソースの利用は拡大、だがOSPO職を設ける企業はわずか15% | OSDN Magazine
- FSFのFree Software Awardsが発表、修理する権利のSecuReparisなどが受賞 | OSDN Magazine
- 「GitLab 14.10」が公開 | OSDN Magazine
- 「Git 2.36」が公開 | OSDN Magazine
- AIコーディング作成支援「GitHub Copilot」がGAに、オープンソースメンテナーは無料 | OSDN Magazine
infoQ
- GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より
- GitHubコードスキャンはベータ版終了
- GitHubは、CodespacesとDiscussions、およびその他のセキュリティ機能を導入
- Visual Studio CodespacesはGithub Codespacesに
- Githubが不必要なCookieをすべて削除
- GitHubが依存性グラフとセキュリティ警告を導入
- GitHubの依存関係グラフ~ 開発ワークフロー全体をセキュアに - GitHubブログ
- Git Cloneの脆弱性の分析
- Git 2.31がリリース、メンテナンスがバックグラウンドで実行可能に
- GitHubはトークンフォーマットを変更して、識別性、シークレットスキャン、エントロピーを改善
- GitHub、DMCAに対して開発者をサポートする独立的な法的支援機関を設立
- CodespacesがEmacsとVimをサポートしてGitHubの新しい開発プラットフォームになった
- エクステンションをサポートしたGitHub CLI 2.0
- GithubがGitプロトコル、Dsaキー、レガシーSSHアルゴリズムのサポートを段階的に廃止
- オープンソースのセキュリティを改善するGitHubアプリAllstarが発表
- GitHubがプロジェクトを導入、Codespace、Copilot、コードスキャニングなどをアップデート
- Universeイベントで発表されたGitHubのリリースで開発者フローが改善
- GitHubが機械学習を使って脆弱性コードスキャンを拡張した方法
- パフォーマンス向上のためにGitHub Codespacesがテンプレート化
- オープンソースソフトウェアのサプライチェーンの安全性確保
- Google Cloudがコミュニティセキュリティ分析を導入
- Veracodeの報告書に見る、ソフトウェアサプライチェーン保護の進展の兆し
- JRelaser 1.0:アーリーアダプタに聞く
- GitHub Enterprise Server 3.5ではセキュリティを改善し、GitHubアクションをアップデート
- GitHubがそのサプライチェーンセキュリティを拡張し、Rustに適用
Zenn
- 個人からチームまで、Notion での情報・タスク管理一元化完全解説
- ブラウザだけでOS自作入門しよう
- Docker ではじめる "ゼロからのOS自作入門"
- Check! GitHub の監査ログを知る
- Gitのインデックスの中身
- Gitのブランチの実装
- Gitのオブジェクトの中身
- GitHub Actionsの手動実行パラメータのUI改善について速報で解説する
- GitHubセキュリティ Organization運用のベストプラクティス
- GitHub Actions のデバッグをローカルで行う
- 【2021年版】GitHub の README に mp4 動画を追加する方法
- GitHubリポジトリ連携で画像をアップロードする方法
- リリース時にリリース内容をコメントする GitHub Actions のご紹介
- ubuntu-22.04 が GA ⚠破壊的変更注意⚠ [GitHub Actions]
- 【必ず確認するべし】開発・学習で役立つGitHubリポジトリ 10選
- GitHubのSlack通知がいきなりスレッドに投稿されるようになり不便なので苦情を送ったら、スレッド機能を無効化できるようになった話
- Renovate を dry-run する CI を作る
- GitHubリポジトリでZennのコンテンツを管理する
Qiita
- Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする - Qiita
- Visual Studio で日中韓台文字表示 UEFI アプリ作成のメモ - Qiita
- GitHubのClone数をAPIで取得する - Qiita
- GitHub「Personal access tokens」の設定方法 - Qiita
- gpg (GNU Privacy Guard)の使い方 - Qiita
- 君のGitHubリポジトリをもう一段階上のレベルに引き上げよう - Qiita
Twitter
その他
ARCHITECTURE.md
- ドッグさんはTwitterを使っています 「ARCHITECTURE.md ファイルのすすめ.コア開発者とコントリビュータの間の知識差を埋めるために,プロジェクトの構造を把握して「◯◯の処理をやっているのはどこか」が大体分かる小さいドキュメントを置く | 'ARCHITECTURE.md' https://t.co/3QL0196l8E」 / Twitter
- ARCHITECTURE.md
- ドッグさんはTwitterを使っています 「https://t.co/EP0qzByMt3 rust-analyzer の architecture.md がよく書けてるらしい.そういえば少し前に話題になっていたような」 / Twitter
- rust-analyzer/architecture.md at d7c99931d05e3723d878bea5dc26766791fa4e69 · rust-analyzer/rust-analyzer
- ブックマーク
- プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか? - GIGAZINE
- ARCHITECTURE.mdというものを書いてみた - maru source
Code of Conduct
- Tomoya Matsuura 松浦知也さんはTwitterを使っています 「@uint256_t Berlin Code of Conduct https://t.co/B814f6XJom とContributor Covenant https://t.co/xuKT4crnu0 辺りが日本語もあるし参考にしやすいと思います。とはいえ、CoCってライセンスと違ってどういうコミュニティを目指すかの表明みたいなもんなんで、参考にしつつオリジナル作った方がよいかなとも」 / Twitter
- ベルリン行動規範
- Contributor Covenant:
key already in use
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「githubで key already in use になった場合、「どこで使われてる?」というのが判らないと詰む。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ssh -T -ai ~/.ssh/id_xxx git@github.com と実行して "username/repo" と出る場合はそのdeployキー登録されてる、というFAQあった。 https://t.co/UA4LJC2RJl」 / Twitter
- Error: Key already in use - GitHub Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「もう少し詳細な議論 https://t.co/Gb2q4n4F93」 / Twitter
- git - GitHub Error: Key already in use - Stack Overflow
PR
- Kazuho OkuさんはTwitterを使っています 「"Merging changes into a tree is called a "pull", and is analagous to 'cvs update'." こういう慣習がBitkeeperの頃からあったというのはパッと出てくるけど https://t.co/roxkm8d32f」 / Twitter
- Documentation/BK-usage/bk-kernel-howto.txt - kernel/msm - Git at Google
- FUJI GoroさんはTwitterを使っています 「その理由はGit誕生以前からある用語だからだったと思いますが、もはやGitHub以前の "pull request" という言葉のユースケースを探すことも困難になっているような…。」 / Twitter
- uint256_tさんはTwitterを使っています 「pull request ってなんで pull request って呼ばれてるの」 / Twitter
- FUJI GoroさんはTwitterを使っています 「LinusがGitでLinux kernelを開発する際の作法について説明したメール(2005)を発見した: > A "release" tree into which tested patches are moved for final sanity checking, and as a vehicle to send them upstream to Linus (by sending him a "please pull" request.) https://t.co/R8CqoHG0U9」 / Twitter
- git/cogito workshop/bof at linuxconf au?
- uint256_tさんはTwitterを使っています 「@__gfx__ 以前からpull requestという言葉が存在していたんですね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@uint256_t @__gfx__ NetBSD の release engineering team では、開発ブランチからリリースブランチへのマージ要求を pull-up request と呼んでいて、webで確認できる限りでも 2000年からありますね: https://t.co/mXv6CYN2P9 (GitHub のサービス開始は2008年)」 / Twitter
- NetBSD Release Engineering: Pullup Requests
- Kazuho OkuさんはTwitterを使っています 「@n_soda @uint256_t @__gfx__ gitに限って言っても、git request-pull コマンドが2005年からありますね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そんなとこだと思うけど、細かなこというと 3 はおかしいというか、git pull 自体は「fetch from and integrate with」だし、pull の用法は「pull request」と同様の意味だと言うほうが自然だと思う。 pull = fetch + merge ってことかな」 / Twitter
- FUJI GoroさんはTwitterを使っています 「1. もともとVCSの "merge" は "pull" とも呼ばれていた 2. "pull request" は特別な用語ではなく単に「マージしてください🙏」という意味 3. Gitがmergeではない意味でpullを実装(ただしpullのデフォルトの挙動はmergeも含む!) 4. GitHubが一般用語としての pull request を機能名として採用」 / Twitter
- 𝔸𝕂𝕒𝕟𝕒𝕤𝕙𝕚𝕣𝕠 (カナやん)さんはTwitterを使っています 「@kazuho ちなみにGitLabの方は 'pull request' ではなく、'merge request' だったりします。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「pull requestって、bitkeeper以前で使われてたっけ?。Kernelコードやってたの2000年くらいまでだから記憶が曖昧 https://t.co/J1EE8C7SUj」 / Twitter
- pull | BitKeeper Documentation
Sigstore
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「お、GitHubがSigstore対応すんの?まじで? / “Why we're excited about the Sigstore general availability | The GitHub Blog” https://t.co/SBVwW8aLpH」 / Twitter
- Why we're excited about the Sigstore general availability | The GitHub Blog
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「以前Sigstoreに言及したときのはこれです https://t.co/wn0BX6fBO9」 / Twitter
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「sigstoreを使ったgit commit時の署名ツール。sigstoreはGitHub/Google/MicrosoftにOIDC認証を行い存在確認して署名するので手元はkeyless。現時点ではgithubがsigstoreのルート証明書を信用していないのでverifiedにならないが、将来なってほし / “GitHub - sigstore/gitsi…” https://t.co/pTetHSh5r4」 / Twitter
- sigstore/gitsign: Keyless Git signing using Sigstore
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「gitsignで署名したcommitのテスト。first commitはGitHubで認証、secondはGoogleで認証。git verify-commitでは区別つかない。 https://t.co/6U39zILFoM」 / Twitter
- matsuu/gitsign-test
- OpenSSFによるコンテナなどへの電子署名サービス「Sigstore」が正式版に。オープンソースのサプライチェーンをさらに安全に - Publickey
- Sigstore project announces general availability and v1.0 releases | Google Open Source Blog
histric
histric-1
- κeenさんはTwitterを使っています 「パッチベースの分散バージョン管理システムのPijulが1.0に向けた展望を示してる(まだ読んでない) Towards 1.0 https://t.co/SkAsUabx6Z」 / Twitter
- Pijul
- 👻 道化師 🃏さんはTwitterを使っています 「GitHub Desktop のイヤなバグを見つけてしまったなぁ。 GitHub 上で作りたてのリポジトリを GitHub Desktop でクローンすると、他の環境でコミット&プッシュした内容をプルできなくなる。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「あ、ブランチを切り替えようとする操作で問題を回避できた!」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/dfdNpNQKQn ずっと欲しかった GitHub の通知を org と author でフィルタできる機能が入ってる.これで通知の流量の多いリポジトリを watch してても,自分のリポジトリ宛の通知を見落とさなくなるはず.早速 Filters に登録した https://t.co/Y2YJHLLUQw」 / Twitter
- Organization and Author Filters for GitHub Notifications - GitHub Changelog
- 井山梃子歴史館さんはTwitterを使っています 「cherry-pickがidentityを保つの,達成されてほしい性質なんだよな」 / Twitter
- FadisさんはTwitterを使っています 「ちなみにGitHubはAPIの/metaに機能ごとに使用する可能性があるアドレスの範囲が書かれているので、hooksに列挙されている範囲のアドレスをallowする設定を生成するスクリプトをcronで時々走らせておけば良い感じに「GitHubは通って良し」が出来る」 / Twitter
- 入谷 優さんはTwitterを使っています 「GitHub Codespaces が dotfiles リポジトリから自動的に設定ファイルを引っ張ってきていることに気付きました。配慮が行き届きすぎていて怖いぐらいです。 https://t.co/dlYQP1pCZP」 / Twitter
- Personalizing Codespaces for your account - GitHub Docs
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ZeroVer運動。ソフトウェアにメジャーバージョンをつける時代は終わった。これからはつねに 0. で始まるバージョンにせよ。実際、オープンソースでは ZeroVerを使っているものが多い。たとえば React Native は6年以上開発されているが、最新バージョンは 0.65.0-rc.2である。 https://t.co/Hxaf0wiDVo」 / Twitter
- ZeroVer: 0-based Versioning — zer0ver
- Shiro KawaiさんはTwitterを使っています 「情報とメタ情報の線引きの問題かも。 メタ情報を全部情報内に含めようとするとすぐ破綻する(例: $Log$)。なので程度問題になるけど、メタ情報が手に入る前提なら情報は極力スリムにする方が良い。 ただ現状だと、ファイルとリポジトリが泣き別れしちゃうことを防げない。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「gitで管理されているファイルはファイルのデータを見ただけでは作成日付すらわからない。太古のSCCSからSubversionに至るまで、ファイルの中身を見ただけで雰囲気はわかるようになっていたのに。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ファイル自体にリソースフォークのようにメタ情報を付加する発想もあったけど、ファイルシステムによってサポートされてなかったり、複数のファイルに関連するメタ情報どうすべ、とか悩みは多い。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「git使い始めた頃は、$Header$相当が無いとtarballからコピーされてったファイルがどのリビジョンか分からなくなって管理むちゃくちゃにならない? とか不安だったんだけどいつしかそこは割りきるようになった気がする。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ただChangeLogの慣習はまだ捨てられてない。やっぱtarballだけ見て何が起きてるかどうか把握できるのはメリットだと思うし。 複数人分散開発だと衝突が起きまくるので少人数開発でしか使えないけど。(GaucheではPRにChangeLog変更は含めず、マージ後にメンテナである自分が適宜追加する運用)」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「CIのお世話、とても大変だし、多分他にも出来る人いるでしょ…俺がやらないといけないのはもっと他に…って気持ちになる」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「おそらく他で役に立たないヘッドレスmacOS運用の知見が溜まっていく」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GitHubのURLさ、Git内部の仕様を考えたら /tree/branch-name/path/to/dir がディレクトリーで /blob/branch-name/path/to/file がファイルのパスなのは 至って自然なんだけど、直接URL書いてアクセスするときは結構めんどいよね。」 / Twitter
- ドッグさんはTwitterを使っています 「@igrep /tree/ の URL はファイルだと勝手に /blob/ にリダイレクトしてくれる(逆もしかり)ので,常に /blob/ 使っておくとかで良いと思います」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Linda_pp なんと!ホントだ!ありがとうございます!」 / Twitter
- Masaki HaraさんはTwitterを使っています 「最近知って有用だったこと: git blameには --reverse オプションがあるし、 git logの -S オプションを使うと「指定した語句が増えたり減ったりしたコミットの一覧」が取れる https://t.co/r4ir1pBqQP」 / Twitter
- How do I "git blame" a deleted line? - Stack Overflow
- SODA NoriyukiさんはTwitterを使っています 「減ったタイミングが簡単にわかるのはすごくうれしいな…←cvs時代から減ったタイミングは二分探索で頑張って探してた人」 / Twitter
- 画力・博士号さんはTwitterを使っています 「GitHubのPRのURLにクエリパラメータ ?w=1 をつけると空白文字だけの変更をdiffから消してくれるようになっていることを知った」 / Twitter
- FUJI GoroさんはTwitterを使っています 「GitHub Actionsのインスタンスが CVE-2022-0001 (Spectreの亜種)対策で最近 kernel.unplivileged_bpf_disabled を真に設定したみたい。 回避するには capabilities(7) の CAP_BPF or CAP_SYS_ADMIN を設定するとよさそう。前者のほうが安全だけどLinux 5.8+が必要です。 https://t.co/gQqPFVHk3l」 / Twitter
- Add tests to run selective tracing tests where kernel.unplivileged_bpf_disabled is set to be true by gfx · Pull Request #2975 · h2o/h2o
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「あるセキュリティ研究者が、npmパッケージ "foreach" 作者のドメイン名が失効していることを発見し、取得する。いまや彼は foreach (と、それに依存する 36,826のnpmプロジェクト) に対して好き勝手できるようになった。ソフトウェアへのサプライチェーン攻撃はこうして行われる。」 / Twitter
- Lance R. Vick ( @lrvick@mastodon.social )さんはTwitterを使っています: 「I just noticed "foreach" on npm is controlled by a single maintainer. I also noticed they let their domain expire, so I bought it before someone else did. I now control "foreach" on NPM, and the 36826 projects that depend on it.」 / Twitter
- イスラエルいくべぇさんはTwitterを使っています: 「GitHubが新たなSBOMフォーマットを作ったので各種ツールが対応したという話です。ツールの生成したレポートをGitHubにアップロードしてDependency Graphで確認できます。 https://t.co/8ajvTBglNz」 / Twitter
- Extend your dependency information in the GitHub Dependency Graph with new GitHub Actions | The GitHub Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「GitHub Copilotにとって "gender" という単語は禁止用語らしい。この文字列が (たとえば変数名などで) コード中に現れると、一切コード生成がされなくなる。 https://t.co/yayZi2rrKH」 / Twitter
- Part of my code make copilot crash · Discussion #20273 · community · GitHub
- 「GitHubで大規模なマルウェア攻撃が広まっている」──海外エンジニアのツイートが話題 すでに対応中か - ITmedia NEWS
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「現在、GitHubで大規模なマルウェア挿入攻撃が発生中。約3,5000以上のプロジェクト (暗号、Go、Python、JS関連) が影響を受けており、npmスクリプトやdockerイメージ、インストール文書に悪意あるコマンド等が追加されている。」 / Twitter
- Stephen LacyさんはTwitterを使っています: 「I am uncovering what seems to be a massive widespread malware attack on @github. - Currently over 35k repositories are infected - So far found in projects including: crypto, golang, python, js, bash, docker, k8s - It is added to npm scripts, docker images and install docs https://t.co/rq3CBDw3r9」 / Twitter
- Shunsuke ShibayamaさんはTwitterを使っています: 「Fix #(issue番号)ってコミットメッセージに書いたら勝手に閉じてくれるんですね、便利」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「GitHubがSSH公開鍵によるcommit署名/検証をサポート。commitが検証可能なSSH署名を持っている場合は自動的に "Verified" タグが表示される。なお、SSH鍵はGPGと違って失効できないという欠点がある。 https://t.co/K7hpwOf1Ws」 / Twitter
- SSH commit verification now supported | GitHub Changelog
- Taku KudoさんはTwitterを使っています: 「piper/CitC は数年おきに話題になりますね。モノレポのシンプルさは圧倒的正義ですよ。外でイヤイヤ git 使いますが、その良さはいまいち分かりません。複雑だしいちいちcloneするし。数百TBのモノレポなら作業する前に日が暮れる。https://t.co/zJhzZ654GJ」 / Twitter
- GitHub Copilot · Your AI pair programmer
- Get Started - default (Workspace) - Visual Studio Code
- GitLens 12がVisual Studio Code for the Webのサポートを提供
- Customizing GitHub Codespaces for C++ Projects - C++ Team Blog
検索
- -from:tenpoku1000 github.com/tenpoku1000 - Twitter検索 / Twitter
- 自作OS gui - Google 検索
- 自作OS コンパイラ - Google 検索
- 自作OS UTF-32 - Google 検索
- OS開発予定 - Google 検索
- インテル ドキュメント - Google 検索
- 自作OS レガシー規格 - Google 検索
- 自作OS 仮定義 - Google 検索
- 自作OS NMI - Google 検索
- x64 uefi os自作 - Google 検索
- freetype uefi - Google 検索
- ovmf qemu ビルド - Google 検索
- コンパイラ WebAssembly JIT 自作 - Google 検索
- コンパイラ WebAssembly 自作 - Google 検索
Intel
Hertzbleed Attack
- Kazuho OkuさんはTwitterを使っています: 「あー、消費電力が閾値超えるとCPUクロックが低下することを利用して、Power Side Channel AttackをTiming Attackに変換してるのか / https://t.co/n22nydadSN」 / Twitter
- Hertzbleed Disclosed As New Family Of Side-Channel Attacks Affecting Intel + AMD - Phoronix
- ほとんどのCPUからリモートで暗号化キーを奪取できる攻撃手法「Hertzbleed Attack」が発表される - GIGAZINE
- Hertzbleed Attack
- INTEL-SA-00698
- Frequency Throttling Side Channel Guidance
- Intel、一部CPUに潜在的な脆弱性 - PC Watch
- Kazuho OkuさんはTwitterを使っています: 「なるほどHertzBleedこっちがIntelの論文で、aes-niを攻撃してる、と。クロック変化を観測しやすくするためにCPUの消費電力を思いっきり下げては、いるけど / https://t.co/rKyVKlrzmA」 / Twitter
- [2206.07012] Frequency Throttling Side-Channel Attack
- インテルプロセッサーに複数の脆弱性 ~DoSや情報漏洩の恐れ - 窓の杜
- CPUの新たなサイドチャネル脆弱性「Hertzbleed Attack」、Intel/AMDがアドバイザリを公表 - 窓の杜
- Intel/AMD CPUの省電力機能に脆弱性、サイドチャネル攻撃で暗号化キー流出 - PC Watch
- 【セキュリティ ニュース】intel製プロセッサに複数脆弱性、アップデートをリリース - MSやVMwareも対応(1ページ目 / 全2ページ):Security NEXT
Retbleed
- R. ShioyaさんはTwitterを使っています: 「重要なところで微妙に誤解がある気がするので,そこについてちょっと補足してみる」 / Twitter
- FadisさんはTwitterを使っています: 「x86 CPUのRetbleed脆弱性(CVE-2022-29900, CVE-2022-29901)に対するLinuxカーネルの対応について。RetbleedはretはBTBを使わないというRetpolineの前提が必ずしも正しくなく、RetpolineされたカーネルでもSpectre-BTI(v2)脆弱性を突けるというもの https://t.co/QPShbU8uVa」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「「Spectre-BTIは... 他のプロセスがBTBに書いた飛び先を見つけるサイドチャネル攻撃」は,そうではなくて,Section 1 にある branch poisoning という名前からも察せられるように「攻撃者が実行させたいコードを BTB を汚染することで投機実行させる」攻撃のはず https://t.co/fRa307h8VB」 / Twitter
- FadisさんはTwitterを使っています: 「Spectre-BTIはジャンプ先アドレスが確定する前にジャンプ先を投機的実行する為に「ありそうな飛び先」を記録するBTBを既知のゴミで埋めることで、他のプロセスがBTBに書いた飛び先を見つけるサイドチャネル攻撃。CPUに脆弱性があっても攻撃を回避する為の効率の良い方法としてRetpolineが知られている」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「Spectre 系の攻撃はこの辺わかりづらくて,狙った場所を投機実行させて,それによってデータキャッシュを汚して,さらにそれを他所から観測して最終的にデータを盗むのでややこしい」 / Twitter
- FadisさんはTwitterを使っています: 「Retpolineは間接ジャンプを「スタックに戻りアドレスを積んでret」に置き換える。ret以降を投機的実行する際はBTBではなくRSBの値が用いられる。RSBはcall時に戻り先を記録するバッファで、callでどんどん書かれるので事前にゴミで埋めてもアドレスの予想はできないと考えられている」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「「この状況になるとIntel CPUもAMD CPUもret先を間接ジャンプとして扱い」もちょっとちがって,AMD はインテルよりもっとやばくて,BTB を単に汚染するだけで RSB が使われなくなる的なことが書かれていると思う(Section 5.2 後半). https://t.co/cS67VmOxF3」 / Twitter
- FadisさんはTwitterを使っています: 「RetbleedはRSBのサイズが有限であることを利用する。callが深くなるとRSBは浅いcallの分から破棄されていく。この結果深い関数呼び出しからretしていくとRSBに戻り先のアドレスがない事がある。この状況になるとIntel CPUもAMD CPUもret先を間接ジャンプとして扱い、結果をBTBに記録する」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「これは普通にこの辺を作ると,BTB にはジャンプターゲット以外に分岐の種類も入れておいて「分岐の種類予測」をするので(「これはリターンだよ」と BTB が言ってきたら RSB を使う),BTB を汚染するだけで RSB が使われなくなるのは自然に思える」 / Twitter
- FadisさんはTwitterを使っています: 「Retbleedではリバースエンジニアリングでcallを16段重ねるとRSBが一杯になる事を発見、Linuxカーネル内の狙った所でRSBによる分岐予測が失敗しBTBに落ちるような深い関数呼び出しを行うシステムコールを見つけてSpectre-BTIを成功させる。論文ではローカルの一般ユーザがrootパスワードを見つけている」 / Twitter
- FadisさんはTwitterを使っています: 「RetpolineはSpectre-BTIに対する効率の良い緩和策なので、RetbleedできないようにRetpolineを拡張したい。Linuxカーネルはcallの深さを数えるカウンタを追加、このカウンタは16から安全マージンを取った12で飽和し、ret時に減らしていって0になったらRSBが溢れてBTBが使われようとしていると判断する」 / Twitter
- FadisさんはTwitterを使っています: 「BTBが使われそうになるとLinuxカーネルはcallを十分な回数呼んで、int3で投機的実行を切り、スタックポインタをcall前の位置に戻す。これによってRSBは新しい戻りアドレスで埋め尽くされる。この戻りアドレスは正しくないがRSBに値がある事には違いがないのでCPUはBTBを使わずRSBを使おうとする」 / Twitter
- FadisさんはTwitterを使っています: 「結果として投機的実行は盛大に外れるがSpectre-BTIによるサイドチャネル攻撃が成立する状態になることは回避される。尚RSBの振る舞いに着目する攻撃としては過去にもSpectreRSBが発見されたが、こちらはRSBを観察する手法でRetbleedとは別件、Linuxカーネルには別で対策が入っている」 / Twitter
- Transient execution CPU vulnerability - Wikipedia
- インテルのCPU/SSD製品などに脆弱性 ~最大深刻度は「HIGH」 - 窓の杜
- Intel製品に権限昇格や情報漏えいなど複数の脆弱性 - PC Watch
- CVE - CVE-2021-33149
- INTEL-SA-00648
- Intel、一部のプロセッサ製品に情報漏洩の脆弱性 - PC Watch
- Intel、2022年7月のセキュリティアドバイザリを公開 ~CPUの情報漏洩脆弱性に注意 - 窓の杜
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「先日発見された投機実行に対する新しい攻撃 Retbleedでは、Linuxカーネルメモリの内容を98%の精度で、(Intelの場合) 219バイト/秒で推測可能 (AMDは3.9KB/秒)。速度の違いはCPU内部のマイクロアーキテクチャの違いによるもの。 https://t.co/kTufjmTc9F」 / Twitter
- New working speculative execution attack sends Intel and AMD scrambling | Ars Technica
- -ENOMEMさんはTwitterを使っています: 「IntelのCVE-2022-26373とは別系統か。AMD Details "SQUIP" Side Channel Vulnerability For Zen's Execution Unit Scheduler https://t.co/loOHJul1b1 via @phoronix」 / Twitter
- AMD Details "SQUIP" Side Channel Vulnerability For Zen's Execution Unit Scheduler - Phoronix
- Linux Kernel Patched For "PBRSB" After Intel eIBRS CPUs Found To Be Insufficient - Phoronix
- Intel Releases New "20220809" CPU Microcode For Latest Security Vulnerability - Phoronix
- Intel Revs Its Linear Address Masking Patches For Linux - Phoronix
- Intel Working On New Hardware-Based Prevention For Spectre-BHI Attacks - Phoronix
- インテル製品に深刻な脆弱性 ~2022年8月のIntelセキュリティアドバイザリが公開 - 窓の杜
- Ryzen/EPYCの実行ユニットスケジューラに脆弱性が発見される - PC Watch
- AMD RyzenシリーズCPUにサイドチャネルの脆弱性『SQUIP』。Zen 1 ~ Zen 3に影響 | ニッチなPCゲーマーの環境構築Z
- Linux Gets New Patch To Fix AMD Retbleed Mitigation - STIBP Needed With IBPB - Phoronix
- AMD Posts Linux Patches For "LbrExtV2" Zen 4 CPU Feature - Phoronix
objdump
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
- ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
- ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter
Gist
2017
- 2 年以上かけて自作 OS 開発のための資料を集めた話
資料
- ワナビとは (ワナビとは) [単語記事] - ニコニコ大百科
- 日本規格協会 JSA Group Webdesk
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
- JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | 日本規格協会 JSA Group Webdesk
- JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0607:1996 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0607:1996/CORRIGENDUM 1:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 0610:2006 DVD-再生専用ディスクのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0610:2006/AMENDMENT 1:2017 DVD-再生専用ディスクのボリューム構造及びファイル構造(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
- JIS X 0613:2015 ユニバーサルディスクフォーマット(UDF)2.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0614:2015 ユニバーサルディスクフォーマット(UDF)2.60 | 日本規格協会 JSA Group Webdesk
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
- JIS X 4156:2005 ハイパテキストマーク付け言語(HTML) | 日本規格協会 JSA Group Webdesk
- JIS X 4168:2004 段階スタイルシート 水準1(CSS1) | 日本規格協会 JSA Group Webdesk
- JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | 日本規格協会 JSA Group Webdesk
- JIS X 3005-2:2015 データベース言語SQL 第2部:基本機能(SQL/Foundation) | 日本規格協会 JSA Group Webdesk
- JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
- JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
- JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
- JEITA 電子情報技術産業協会 / AV&IT機器部門
- CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
- 自作 OS で USB デバイスに対応するための調査メモ
自作 OS で USB デバイスに対応するための調査メモ
- BSUSRC06 USBシリアル変換ケーブル : USBケーブル | バッファロー
- USB-LAN100R|PLANEX
- USB-LAN1000R|PLANEX
- USB-LAN2500R
- ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
- LAN-TXU2C - ロジテック株式会社
- HL-L2360DN | レーザープリンター・複合機 | ブラザー
- MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
- BonjourPrinting
- Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
- Raspberry Piでイーサネットコンバータを作る
- Raspberry Piで無線LAN
- iPhone 6 Plus - 技術仕様
- BluetoothテクノロジWebサイト
- Launch Studio - Listing Search
- Launch Studio - Listing Details
- PIC
- HIDP ‐ 通信用語の基礎知識
- A2DP ‐ 通信用語の基礎知識
- PAN (Bluetooth) ‐ 通信用語の基礎知識
- BNEP ‐ 通信用語の基礎知識
- L2CAP ‐ 通信用語の基礎知識
- HOGP ‐ 通信用語の基礎知識
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Diego Giagio :: Personal Website - iPhoneEthernetDriver
- iPhone/iPadを有線LAN(Ethernet)で接続しよう
- if_ipheth(4)
- [MS-WINPROTLP]: Archive Documents | Microsoft Learn
- LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
- PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。
- LTE対応 USBドングル(PIX-MT110) | 株式会社ピクセラ
- URoad-Stick│超速モバイルネット WifiサービスはUQ WiMAX
- stick_linux_info_v1.0.pdf
- Huawei WiMAX 2+モデムをLinuxで使う
- BonjourPrinting - bonjourprinting-1.2.1.pdf
- 自作派の人のためのコンパイラ関連規格のメモ
自作派の人のためのコンパイラ関連規格のメモ
Unicode
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
C
- www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
- C++でCプリプロセッサを作ったり速くしたりしたお話
- Clarification Request Summary for C11
LSP
- language server protocolについて (前編) - Qiita
- Specification
アセンブリ/WebAssembly
- Linux のアセンブラー: GAS と NASM を比較する
- WebAssembly Specifications
- WebAssembly High-Level Goals - WebAssembly
ABI
- x64 software conventions | Microsoft Docs
- System V Application Binary Interface - DRAFT
- gabi41.pdf
- mpx-linux64-abi.pdf
PE/ELF/UEFI
- PE Format - Win32 apps | Microsoft Docs
- The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
- Linux Foundation Referenced Specifications
- Microsoft UEFI CA の署名ポリシーが更新されました | Microsoft Docs
- mjg59 | Secure Boot bootloader for distributions available now
- SecureBootとLinux
- openSUSE:UEFI - openSUSE Wiki
- HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
- RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
- CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
- Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
- RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
テスト・log
- 第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
- TAP
- LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
- Labeled Tab-separated Values (LTSV)
Debug
- デバッグ情報の歩き方 - Qiita
- DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- Download DWARF Standards
- LLVM Project Blog: LLDB is Coming to Windows
- 本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
- 本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
- The PDB File Format — LLVM 9 documentation
- microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
- CodeView.pdf
- x64 exception handling | Microsoft Docs
セキュリティ
- MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
- Software Design 2015年5月号|技術評論社
- SEH_Overwrite.pdf
- EMETReport.pdf
- /GS (Buffer Security Check) | Microsoft Docs
- スライド 1 - bh-japan-08-Ishiyama.pdf
- MR201412_Control_Flow_Guard_JPN.pdf
ECMAScript
- ECMA-262 Edition 5.1を読む - 秀和システム あなたの学びをサポート
- ECMAScript® 2018 Language Specification
- asm.js: 仕様と実装の今 - Qiita
- asm.js
- Rockridgeさんのツイート: "Firefox、Edge、Chromeの各開発ツールが利用するリモートデバッグ用のプロトコルを統合する動きがあるという。 / “Implementing a Chrome DevTools Protocol server in …” https://t.co/BuXEkgpQRS"
- ソースマップを使用する - 開発ツール | MDN
- Safx: JavaScriptのSource Mapの内部表現について
- Wayback Machine
- HAR ファイルの生成と Web リクエストの分析 - アトラシアン製品ドキュメント
- HTTP Archive (HAR) format
- HAR 1.2 Spec | Software is hard
- JavaScript ASTを始める最初の一歩 | Web Scratch
- estree/estree: The ESTree Spec
- tc39/proposal-binary-ast: Binary AST proposal for ECMAScript
- Il y a du thé renversé au bord de la table !
- binast/binjs-ref: Reference implementation for the JavaScript Binary AST format
- [2015-02] 最近のJavaScript AST標準化の動き | Web Scratch
- getify/concrete-syntax-tree: Defining a standard JavaScript CST (concrete syntax tree) to complement ASTs
Web IDL
- ESウェブブラウザ通信 - ESウェブブラウザでのWeb IDLの利用 | Shiki’s weblog
- Web IDL (第 2 版 — 日本語訳)
- Web IDL
- 自作 OS の GUI 開発のためのメモ
GUI
書籍
- 朝倉書店| グラフィクスの仕組み
- 朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
- マイナビ ブックス - 目次
- フルスクラッチによるグラフィックスプログラミング入門 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
- 2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
- Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
GUI ライブラリ
- Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library
- SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
- lc-soft/LCUI: A small C library for building user interfaces with C, XML and CSS.
- xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
- lvgl/lvgl: Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).
Desktop Entry Specification
- Desktop Entry Specification
- 本の虫: Desktop Entry Specification
EditorConfig
- EditorConfig
- EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
文字コード
- Downloading ICU - ICU - International Components for Unicode
- International Components for Unicode - Wikipedia
- google/compact_enc_det: compact_enc_det - Compact Encoding Detection
フォント
- Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
- googlefonts/noto-fonts: Noto fonts, except for CJK and emoji
- The FreeType Project
レイアウトエンジン
- fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
- fribidi/fribidi: GNU FriBidi
- GNU FriBidi - Wikipedia
- HarfBuzz – Y.A.M.A.P
- HarfBuzz - Wikipedia
- HarfBuzz - Wikipedia
- Page not found · GitHub Pages
文書・PDF
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- PDF.js
- mozilla/pdf.js: PDF Reader in JavaScript
- PDF.jsを設置する - Qiita
- Google Chrome PDFエンジンがオープンソース化
- pdfium Git repositories - Git at Google
- Issues - pdfium
- Full PDF SDK Developer Guides | Desktop, Mobile & Web
- にっき♪: PDFium
画像
- Independent JPEG Group
- libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
- libjpeg-turbo-2.0.5
- CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
- The libexif C EXIF library
- libexif-0.6.22
- libpng Home Page
- libpng-1.6.37
- GIFLIB download | SourceForge.net
- giflib-5.2.1
- memononen/nanosvg: Simple stupid SVG parser
- SVG 1.1 仕様 (第2版) 日本語訳
- JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
- memononen/nanovg: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
- NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
- NanoVG を CPU で描画する - Qiita
- NanoVG のソースコードを読んでみた - lriki’s blog
- Favicon - Wikipedia
- Favicon - Wikipedia
- ICO (ファイルフォーマット) - Wikipedia
- ICO (file format) - Wikipedia
- https://twitter.com/rockridge07/status/868125619963314176
- https://twitter.com/rockridge07/status/905787835357077504
音声
- WAV - Wikipedia
- WAV - Wikipedia
- Resource Interchange File Format - Wikipedia
- Resource Interchange File Format - Wikipedia
- Wave File Specifications
- WAVファイルフォーマットの読み込み – NecoTech
- wav ファイルフォーマット
- Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
- Vorbis - Wikipedia
- Vorbis - Wikipedia
- Ogg - Wikipedia
- Ogg - Wikipedia
- Xiph.org: Downloads
- git.xiph.org
- libvorbis-1.3.7
- git.xiph.org
- libogg-1.3.4
- The WebM Project | Developer Overview
- Opus (音声圧縮) - Wikipedia
- Opus (audio format) - Wikipedia
- Development – Opus Codec
- Opus-1.3.1
- FLAC - Wikipedia
- FLAC - Wikipedia
- FLAC - download
- xiph/flac: Free Lossless Audio Codec
- FLAC-1.3.3
- 2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
動画
- https://twitter.com/vyv03354/status/701022560759066624
- https://twitter.com/vyv03354/status/702818242482405377
- OpenH264
- Theora - Wikipedia
- Theora - Wikipedia
- Theora.org :: downloads - Theora, video for everyone
- git.xiph.org
- libtheora-1.1.1
- VP8 - Wikipedia
- VP8 - Wikipedia
- VP9 - Wikipedia
- VP9 - Wikipedia
- WebM - Wikipedia
- WebM - Wikipedia
- The WebM Project | Developer Overview
- webmproject/libvpx: Mirror only. Please do not send pull requests.
- libvpx-1.9.0
- AV1 - Wikipedia
- AV1 - Wikipedia
- AV1 specification を読む 2018-03-26 .. 04-17 - Qiita
- AOM-AV1-Video-Tech-meet-up.pdf
- aomedia Git repositories - Git at Google
- UTF-32 でも固定長で処理出来るわけではない
UTF-32
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- 符号点 - Wikipedia
- Unicode Terminology: English - Japanese
- 結合文字 - Wikipedia
- 異体字セレクタ - Wikipedia
- 表に出て来ない凄い人は、実在性の確認が困難である
2018
- x64 の 64 ビットモードのエンコーディング概略
x64
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- インテル関連ドキュメント・リンク集
インテル
書籍
- Amazon.co.jp: 新装改訂版 Linuxのブートプロセスをみる (アスキー書籍) eBook: 白崎 博生: Kindleストア
- 自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
- ゼロからのOS自作入門 | マイナビブックス
- 作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
- 30日でできる! OS自作入門 | マイナビブックス
- コンピュータの構成と設計 MIPS Edition 第6版 上 | 日経BOOKプラス
- コンピュータの構成と設計 MIPS Edition 第6版 下 | 日経BOOKプラス
- ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(John L. Hennessy David A. Patterson 吉瀬 謙二 佐藤 寿倫 中條 拓伯 中條 拓伯 天野 英晴 天野 英晴 鈴木 貢)|翔泳社の本
- プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
- コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- USB 3.0 ホストドライバ自作入門 - Hello uchan world - BOOTH
- USB 3.0設計のすべて
- USB 3.2のすべて
- USB Type-Cのすべて
- 組み込み機器へのUSBホスト実装技法
- USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
- O'Reilly Japan - Bluetooth Low Energyをはじめよう
- Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
- シリアルATAの基礎とFPGAへの実装
- [絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
- CUTT System:64ビットアセンブラ入門
- CUTT System:AVX命令入門
- CUTT System:512ビット・ベクトルプログラミング入門
- 低レベルプログラミング(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン, ジュニア, ヘンリー・S., Warren, Jr., Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販 | Amazon
- Linkers & Loaders | コンピュータ・一般書,UNIX,UNIX | Ohmsha
- リンカ・ローダ実践開発テクニック
- 【Code Reading Tシャツ付き】Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
- 【Code Reading Tシャツ付き】Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
- リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
- O'Reilly Japan - リバースエンジニアリング
- O'Reilly Japan - Hacking:美しき策謀 第2版
- O'Reilly Japan - Binary Hacks
- たのしいバイナリの歩き方:書籍案内|技術評論社
- デバッガによるx86プログラム解析入門【x64対応版】 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
SDM
- https://twitter.com/InstLatX64
- instlatx64
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol3_i.pdf
データシート・エラッタ・拡張命令
- Intel® Core™ Processors Technical Resources
- Intel® Xeon® Processors Technical Resources
- 6th Generation Intel® Processor Family Specification Update - 332689-025_6th Generation Intel Processor Family Spec Update.pdf
- Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
llvm-mca・oneAPI
- llvm-mca - LLVM Machine Code Analyzer — LLVM 12 documentation
- Intel® Architecture Code Analyzer
- Intel® Architecture Code Analyzer Download
- oneAPI: A New Era of Heterogeneous Computing
- インテル® FPGA テクニカル・トレーニング・カタログ | インテル
- インテル oneAPI ツールキット | 統一されたクロスアーキテクチャー・プログラミング・モデル | XLsoft
- インテル® oneAPI ツールキット | iSUS
- インテル® oneAPI 最新情報 | iSUS
- インテル VTune プロファイラー | C++ C# Fortran Java Python プロファイラー
チップセット
- Intel Chipset Products
- Intel® 100 Series Chipset Family Platform Controller Hub (PCH): Datasheet—Volume 1
- Intel® 100 Series Chipset Family Platform Controller Hub (PCH): Datasheet—Volume 2
- Intel® 100 Series and C230 Series Chipset Family Platform Controller Hub - 100-series-chipset-spec-update.pdf
- Intel® 200 Series Chipset Family Platform Controller Hub (PCH): Datasheet—Volume 1 of 2
- Intel® 200 Series Chipset Family Platform Controller Hub (PCH): Datasheet—Volume 2 of 2
- Intel® 200 (Including X299 Chipset) and Intel® Z370 Series Chipset Families Platform Controller Hub Specification Update
- Intel® 300 Series Chipset Family PCH Datasheet, Vol. 1
- Intel® 300 Series Chipset Families PCH Datasheet, Vol. 2
- Intel® 300 and C240 Chipset Platform Controller Hub (PCH) Spec Update
- Intel® 495 Series Chipset Family On-Package PCH Datasheet, Volume 1 of 2
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Volume 2 of 2
- Intel® 495 Series Chipset Family On- Package Platform Controller Hub (PCH) Specification Update
- Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
GPU
- Programmer's Reference Manuals | 01.org
- Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
- Intel® Processor Graphics
- インテル® プロセッサー・グラフィックス | iSUS
UEFI・ACPI・I/O 等
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
- ACPICA Documentation | The ACPI Component Architecture Project
- IA-PC HPET (High Precision Event Timers) Specification 1.0a - software-developers-hpet-spec-1-0a.pdf
- eXtensible Host Controller Interface for Universal Serial Bus (xHCI) - extensible-host-controler-interface-usb-xhci.pdf
- USB Type-C Connector System Software Interface Specification
- Specifications – NVM Express
- AHCI Specification
- Specifications | Bluetooth® Technology Website
その他
- 技術資料 | iSUS
- x64 アセンブリーの概要 | iSUS
- x64 の 64 ビットモードのエンコーディング概略
- 投機的実行サイドチャネルハードウェア脆弱性
- レガシー規格 SATA を振り返る
SATA
後半
- 忘却の彼方: SATA LPMって知ってますか?
- 忘却の彼方: SATA LPMの設定方法
- 忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
- 忘却の彼方: DEVSLP(Device Sleep)機能とは
- 【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
- Samsung HM020GI 1. Specification Summary
- Support policy for 4K sector hard drives - Windows Server | Microsoft Docs
- アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行 | Seagate 日本
- HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブ(4Kn)の違い - ぼくんちのTV 別館
- HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
- Toshiba MK6034GSX - hard drive - 60 GB - SATA-150 Series Specs & Prices - CNET
- Toshiba MK3276GSX - hard drive - 320 GB - SATA-300 Series Specs & Prices - CNET
- MQ04 シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
- Toshiba MG04ACA500A - hard drive - 5 TB - SATA 6Gb/s Specs - CNET
- MG04ACA シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
- HDD が AV コマンド対応か調べたい: ひでのブログ
- Seagate Mobile ST1000LM035 - hard drive - 1 TB - SATA 6Gb/s Specs & Prices - CNET
- Seagate Laptop Thin SSHD ST500LM000 - hybrid hard drive - 500 GB - SATA 6Gb/s Specs - CNET
- 玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
- シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
- TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 | サンワサプライ株式会社
- Amazon.co.jp: オウルテック 5.25インチベイ内蔵専用HDDケース 2.5インチ&3.5インチHDD各1台簡単増設 SATA接続 Windows8.1対応 ガチャポンパッダイレクト ブラック OWL-IE5CB: パソコン・周辺機器
- ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中
- 4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
- ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)
- CFastって何?
- コンパクトフラッシュ協会がCFexpress* 1.0仕様を発表 | Business Wire
- 最大転送速度2GB/sを実現する次世代カード規格「CFexpress 1.0」発表 ~将来的に8GB/sを目論む - PC Watch
- Storage Reviews - CNET
- Purchase SATA Specification | SATA-IO
- シリアルATAの基礎とFPGAへの実装
- [絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- AHCI Specification
- AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
- AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
- Microsoft Word - dg_sataahciip_refdesign_jp.doc - dg_sataahciip_refdesign_jp.pdf
- Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc - dg_sata_achi_ip_data_sheet_jp.pdf
- Reconf 201506
- CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
- CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
- USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
- 忘却の彼方: Linuxを使用したSecureEraseの手順
- 忘却の彼方: Crucial M500/M550/MX100とSecure Erase
- 一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
- ALL about Linux: SecureErase を実施してみた
- ALL about Linux: SecureErase のために frozen 状態を解除する方法
- ALL about Linux: 中古 SSD の SecureErase
- ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)
- ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)
- 【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
- HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
- AT Attachment 8 - ATA/ATAPI Command Set - D1699r4a-ATA8-ACS.pdf
- AT Attachment 8 - ATA/ATAPI Command Set - d2015r2-ATAATAPI_Command_set_-_2_ACS-2.pdf
- 内蔵SSD | 2.5" SSD | SATA-III 6Gb/s SSD220S - トランセンド|メモリ製品のスペシャリスト
- AT Attachment 8 - ATA/ATAPI Command Set - d2161r5-ATAATAPI_Command_Set_-_3.pdf
- CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
- di529r14-ATAATAPI_Command_Set_-_4.pdf
- Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Specs & Prices - CNET
- INCITS: INCITS 558-202x - Information technology - ATA Command Set - 5 (ACS-5)
- C のグローバル変数の仮定義とは
C
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- 45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
- 仮定義
- C言語のグローバル変数とexternについて - Gobble up pudding
- NMI に割り込まれたい
NMI
- https://bochs.sourceforge.io/techspec/PORTS.LST
- Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
- Intel® 300 Series Chipset Families PCH Datasheet, Vol. 2
- Low Pin Count - Wikipedia
- Wayback Machine
- [絶版2016.10.4] 改訂新版 PCIバス&PCI-Xバスの徹底研究
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- カーネルまたは完全なクラッシュ ダンプを生成する - Windows Client | Microsoft Learn
- ASRock Rack > E3C236D2I
- Amazon | KONDOLEN ブレッドボード?ジャンパーワイヤ(メス-オス)(20cm)40本 1 個 | KONDOLEN | PCパーツ 通販
- Amazon | アイネックス 実験用スイッチ・LEDセット KM-01 | AINEX | インターフェースカード 通販
- 32 ビット整数式の x64 JIT コンパイラを試作する
2019
- x64 の電力管理についてのメモ
2020
Intel
ALL
- Affected Processors: Transient Execution Attacks & Related Security...
- Guidance for System Administrators to Mitigate Transient Execution...
- Loading Microcode from the OS
- Security Best Practices for Side Channel Resistance
- Guidelines for Mitigating Timing Side Channels Against Cryptographic...
- How to Assess the Risk of Your Application
- CPUID Enumeration and Architectural MSRs
- Indirect Branch Restricted Speculation
- Single Thread Indirect Branch Predictors
- Indirect Branch Predictor Barrier
- Spectre mitigations in MSVC - C++ Team Blog
- Analyzing Potential Bounds Check Bypass Vulnerabilities
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
- Retpoline: A Branch Target Injection Mitigation
- KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
- Kernel page-table isolation - Wikipedia
- Meltdown (security vulnerability) - Wikipedia
- Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
- Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
- L1 Terminal Fault
- Foreshadow - Wikipedia
- Microarchitectural Data Sampling
- Microarchitectural Data Sampling - Wikipedia
- Intel® Transactional Synchronization Extensions (Intel® TSX)...
- Speculative Behavior of SWAPGS and Segment Registers
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
- More Information on Spoiler
- Spoiler (security vulnerability) - Wikipedia
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
- まさみさんboostedさんはTwitterを使っています: 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
- Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
- L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
- Processors Affected: L1D Eviction Sampling
- CacheOut
- Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
- Processors Affected: Vector Register Sampling
- LVI: Hijacking Transient Execution with Load Value Injection
- An Optimized Mitigation Approach for Load Value Injection
- Load Value Injection
- Processors Affected: Load Value Injection
- Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
- Snoop-Assisted L1 Data Sampling
- Processors Affected: Snoop-assisted L1 Data Sampling
- Special Register Buffer Data Sampling
- SRBDS Mitigation Impact on Intel® Secure Key
- Processors Affected: Special Register Buffer Data Sampling
- PLATYPUS: With Great Power comes Great Leakage
- Running Average Power Limit Energy Reporting CVE-2020-8694,...
- INTEL-SA-00389
- Affected Processors: Transient Execution Attacks & Related Security...
- Guidance for System Administrators to Mitigate Transient Execution...
Secure Coding
- Loading Microcode from the OS
- Security Best Practices for Side Channel Resistance
- Guidelines for Mitigating Timing Side Channels Against Cryptographic...
- How to Assess the Risk of Your Application
CPUID/MSR
- CPUID Enumeration and Architectural MSRs
- Indirect Branch Restricted Speculation
- Single Thread Indirect Branch Predictors
- Indirect Branch Predictor Barrier
(1) CVE-2017-5753 Variant 1 Bounds Check Bypass
- Analyzing Potential Bounds Check Bypass Vulnerabilities
- Spectre mitigations in MSVC - C++ Team Blog
(2) CVE-2017-5715 Variant 2 Branch Target Injection
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
- Retpoline: A Branch Target Injection Mitigation
(3) CVE-2017-5754 Variant 3 Meltdown:Rogue Data Cache Load
- Meltdown (security vulnerability) - Wikipedia
- Kernel page-table isolation - Wikipedia
- KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
(3a) CVE-2018-3640 Variant 3a Rogue System Register Read
- Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115
(4) CVE-2018-3639 Variant 4 Speculative Store Bypass
- Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
(5) CVE-2018-3615/CVE-2018-3620/CVE-2018-3646 L1 Terminal Fault
- Foreshadow - Wikipedia
- L1 Terminal Fault
(6) CVE-2018-12126/CVE-2018-12127/CVE-2018-12130/CVE-2019-11091 Microarchitectural Data Sampling
- Microarchitectural Data Sampling - Wikipedia
- Microarchitectural Data Sampling
(7) CVE-2019-11135 Transactional Asynchronous Abort
- Intel® Transactional Synchronization Extensions (Intel® TSX)...
(8) CVE-2019-1125 Spectre SWAPGS gadget vulnerability
- Speculative Behavior of SWAPGS and Segment Registers
(9) CVE-2019-0162 Spoiler
- Spoiler (security vulnerability) - Wikipedia
- More Information on Spoiler
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
(10) CVE-2018-3665 Lazy FPU Save/Restore
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
- まさみさんboostedさんはTwitterを使っています: 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
- Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
(11) CVE-2020-0549 L1D Eviction Sampling
- CacheOut
- L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
- Processors Affected: L1D Eviction Sampling
(12) CVE-2020-0548 Vector Register Sampling
- Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
- Processors Affected: Vector Register Sampling
(13) CVE-2020-0551 Load Value Injection
- LVI: Hijacking Transient Execution with Load Value Injection
- An Optimized Mitigation Approach for Load Value Injection
- Load Value Injection
- Processors Affected: Load Value Injection
(14) CVE-2020-0550 Snoop-assisted L1 Data Sampling
- Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
- Snoop-Assisted L1 Data Sampling
- Processors Affected: Snoop-assisted L1 Data Sampling
(15) CVE-2020-0543 Special Register Buffer Data Sampling(SRBDS)
- Special Register Buffer Data Sampling
- SRBDS Mitigation Impact on Intel® Secure Key
- Processors Affected: Special Register Buffer Data Sampling
(16) CVE-2020-8694/CVE-2020-8695 With Great Power comes Great Leakage(PLATYPUS)
- PLATYPUS: With Great Power comes Great Leakage
- Running Average Power Limit Energy Reporting CVE-2020-8694,...
- INTEL-SA-00389
- 投機的実行サイドチャネルハードウェア脆弱性
- 独自拡張 WebAssembly を生成し、UEFI アプリを出力するバックエンドを試作する
2021
- WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
- Windows で sudo なことをする。 | みむらの手記手帳
- 更新プログラムの検索、ダウンロード、インストール - Win32 apps | Microsoft Learn
- 山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)
- Intel CPU の Security & Reliability の各項目の概要を簡単に知りたい
Intel CPU の Security & Reliability の各項目の概要を簡単に知りたい
- Intel Core i512600K Processor 20M Cache up to 4.90 GHz Product Specifications
- white-paper-intel-hardware-shield.pdf
- Intel Security Features and Technologies Related to Transient...
- What is Intel® Secure Key Technology?
- Intel® Boot Guard - Understanding the UEFI Secure Boot Chain
- イマドキの C 言語の if 文では dangling(ぶら下がり・ぶらぶら・宙ぶらりん) else 問題は発生しない
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- Microsoft Word - C99RationaleV5-10.doc - C99RationaleV5.10.pdf
- プログラミング言語 C の新機能
- 新線計画
- コンパイラ・IDE・OS・VMM・IME の開発のためのメモ
- WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
- OS 開発予定(基本機能)
- やらないこと・低優先度のリスト
- テスト環境
- 正規表現を学習した際の問題点を掲載
- keybase.md
- MIT PGP Key Server
- C++ でグローバル定数を宣言する場合のイディオム。定数の唯一の定義をマクロ HEADER_H_ で指示することで実現する
- EFI 内部変数の CustomMode に CUSTOM_SECURE_BOOT_MODE:1 を書き込み後に再起動し、値を取得すると常に STANDARD_SECURE_BOOT_MODE:0 が返る
- Affected Processors: Transient Execution Attacks & Related Security Issues by CPU | 01.org API
- エヌユルさんはTwitterを使っています 「Type-Cのことをググれば分かるとか言ってる人、 分かりやすく簡潔な記事を書いたら需要がありますよ 多分2年ぐらいで時代遅れになって使い物にならなくなりそうですが…」 / Twitter
- エヌユルさんはTwitterを使っています 「最低でもType-CとType-Aの変換はどっち方向だと規格違反で危険なのか何故かを含めて解説できる人だけが日経の記事を批判してくれ 私は覚えてない」 / Twitter
リポジトリ
tenpoku-book
chapter-2
2.3
- 最近のruby-core (2017年3月) | Money Forward Engineers' Blog
- 引退するメインフレームプログラマたち - その対策は?
2.4・2.5・2.6
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- 岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系 | 佐々 政孝 |本 | 通販 | Amazon
- CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
- 手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
- Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
2.7
- プログラミング言語処理
- プログラミング言語処理
- WebAssembly Specifications
- Binary Format — WebAssembly 1.1 (Draft 2021-07-16)
- Binary Encoding - WebAssembly
- WebAssembly/wabt: The WebAssembly Binary Toolkit
- WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
- 【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | 株式会社ヌーラボ(Nulab inc.)
- WebAssembly(wat)を手書きする | Kabuku Developers Blog
- Writing WebAssembly By Hand
- WebAssembly逆アセンブルして調べるテスト
- WebAssemblyをはじめよう | WEBASSEMBLY USUI BOOK
- LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- LEB128 ‐ 通信用語の基礎知識
- 平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
2.8
Intel
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
書籍
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
- [絶版1999.4] 8086ファミリ・ハンドブック
- 80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
- x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
- x64 アセンブリーの概要 | iSUS
- Node.js
- x64 の 64 ビットモードのエンコーディング概略
- x64 でのソフトウェア規約 | Microsoft Docs
- x64 での呼び出し規則 | Microsoft Docs
- x64 でのスタックの使用 | Microsoft Docs
- x64 でのプロローグとエピローグ | Microsoft Docs
- Gamasutra - In-depth: Windows x64 ABI: Stack frames
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Saving Space When Saving Space - emsea
- データ構造アライメント - Wikipedia
- linux - How do I disassemble raw 16-bit x86 machine code? - Stack Overflow
- Writing WebAssembly By Hand
2.9
- 引退するメインフレームプログラマたち - その対策は?
chapter-4
4.1.1・4.1.2
- Windows7でもFastBootが効くってホント? - 週刊アスキー
- Interface (インターフェース) 2011年 11月号 [雑誌] | |本 | 通販 | Amazon
- Play with UEFI
- UEFI時代のブートローダ
- UEFI Spec 2_6.book
4.1.3
- Windows 10で素早くUEFIの設定画面を起動する:Tech TIPS - @IT
- GUIDとは何?Weblio辞書
4.1.4
- FreeType使用記録
4.1.5
- Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
- SecureBootとLinux
- mjg59 | Secure Boot bootloader for distributions available now
- openSUSE:UEFI - openSUSE Wiki
- Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- ACPI BGRT - 借り初めのひみつきち
- Advanced Configuration and Power Interface Specification
- Windows bitmap - Wikipedia
- Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
- グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon
- まえがき - x64 UEFI 対応 OS 自作入門 ~実機で動作する OS を作ってみよう~
- Spaces - GitBook
- tenpoku1000/tenpoku-book: 電子書籍: x64 UEFI 対応 OS 自作入門 https://www.gitbook.com/book/tenpoku1000/tenpoku-book/details
- Zephyrがおもしろい~OSSのRTOS~ - Qiita
- 数式の再帰的下向き構文解析
- FOLLOW()の計算を間違えにくくする工夫 – knsm.net
- 気まぐれな戯れ言の部屋 バックナンバー12
- LL(1) Parser Generatorを作ろう(1) – 腐った牛乳
- review-1.pdf
- Pandocで索引をどう作るか - golden-luckyの日記
UEFI
- tenpoku1000/UEFI_Start: DevicePath 文字列などの情報取得結果の表示・保存を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_SetupScreen: UEFI セットアップ画面への画面遷移を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_FreeType_MSVC: UEFI アプリケーションで、英日中韓台のアウトライン・フォント表示を行うサンプル・プログラムです。
- tenpoku1000/UEFI_SecureBoot: UEFI セキュアブートのサンプル UEFI アプリケーションです。
- tenpoku1000/UEFI_SecureBootMode: UEFI セキュアブートのモード表示を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_ACPI_Table_Disp: ACPI テーブルの取得結果の表示・ファイルへの保存を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_Ver_CPUID: UEFI version 等と CPUID 命令の取得結果の表示を行う UEFI アプリケーションです。
- tenpoku1000/PE_COFF: 独自拡張 64ビット WebAssembly と、PE32+ DLL や UEFI アプリを出力する C コンパイラ試作版
外部プロジェクト
Unicode
- Unicode License Agreement
- Unicode Terms of Use
- Unicode Character Database
- UAX #44: Unicode Character Database
- Unicode 12.1.0
- Index of /Public/12.1.0
UEFI
TianoCore
UDK
- UDK · tianocore/tianocore.github.io Wiki
- UDK2014 · tianocore/tianocore.github.io Wiki
- UDK2015 · tianocore/tianocore.github.io Wiki
- UDK2017 · tianocore/tianocore.github.io Wiki
- UDK2018 · tianocore/tianocore.github.io Wiki
- What is TianoCore?
- tianocore/edk2: EDK II
- EDK II · tianocore/tianocore.github.io Wiki
- BSD Plus Patent License · tianocore/tianocore.github.io Wiki
- EDK II Specifications · tianocore/tianocore.github.io Wiki
- Tasks · tianocore/tianocore.github.io Wiki
- Windows systems · tianocore/tianocore.github.io Wiki
- EDK II BaseTools User Guides · GitBook
- Getting Started Writing Simple Application · tianocore/tianocore.github.io Wiki
OVMF_DEBUG
- Hosts/Linux - QEMU
- Re: [edk2] Filesystem issues since "OvmfPkg: enable SATA controller"
- How to run OVMF · tianocore/tianocore.github.io Wiki
- How to build OVMF · tianocore/tianocore.github.io Wiki
- QEMU - ArchWiki
- [edk2] source level debugging of OVMF with gdb
- [edk2] using gdb on OVMF with symbols
- SYS$OUTPUT: GDB scripting example: reloading symbols for UEFI target
- SYS$OUTPUT: Using GDB to debug UEFI.
- Windows を EFI ベースのコンピュータにインストールする
UEFI shim loader
- mjg59 | Secure Boot bootloader for distributions available now
- Index of /~mjg59/shim-signed
- mjg59/shim: UEFI shim loader
- rhboot/shim: UEFI shim loader
- gnu-efi | SourceForge.net
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- The FreeType Project
- musl libc
- adobe-fonts/source-han-sans
- Doug Lea's Workstation
- ReactOS Project
- NASM
- LibreSSL
- MinGW - Minimalist GNU for Windows download | SourceForge.net
- MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
参考資料
WinDbg
MSDN_Driver
- テンプレートを使ったユニバーサル Windows ドライバー (KMDF) の作成 (Windows Drivers)
- コンピューターの手動ドライバー展開の準備 (Windows Drivers)
- Setting Up Kernel-Mode Debugging over a Serial Cable Manually - Windows 10 hardware dev
- Kernel-Mode Debugging in Visual Studio - Windows 10 hardware dev
- DevCon Install (Windows Drivers)
- DevCon Remove (Windows Drivers)
- アプリケーションからSCSIコマンドを発行する方法 - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF のディスパッチルーチンについて - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF Toaster で I/O Control を受け取る - Japan WDK Support Blog - Site Home - MSDN Blogs
- フレームワークを使用したドライバーの開発 (Windows Driver Kit)
- フレームワークベースのドライバーにおけるデバイスへのアクセスの制御 (Windows Driver Kit)
- 制御デバイス オブジェクトの使用 (Windows Driver Kit)
- デバイス インターフェイスの使用 (Windows Driver Kit)
- Defining I/O Control Codes (Windows Drivers)
- SDDL for Device Objects (Windows Drivers)
- デバイス オブジェクトのセキュリティ - Japan WDK Support Blog - Site Home - MSDN Blogs
- デバイス オブジェクトのセキュリティ その2 - Japan WDK Support Blog - Site Home - MSDN Blogs
- I/O コントロール発行に使うハンドルに必要なアクセス権限 - Japan WDK Support Blog - Site Home - MSDN Blogs
- Device Object と Device Stack - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF デバイス ドライバーの更新 - Windows 10 hardware dev
- KdPrint function - Windows 10 hardware dev
UserMode
- Communications Resources (Windows)
- Named Pipes (Windows)
- ハンドラ関数
- Amazon.co.jp: Windows95通信プログラミング (Microsoft programming series): Charles A.Mirho, Andre Terrisse, 梅原 系: 本
構造体
- windbg で EPROCESS 構造体と遊ぶ:Book of Days
- kernel-mode memusage - NyaRuRuが地球にいたころ
- ダンプ解析 (Windows) - 08th SE's Wiki
- WinDbg - マイクロソフト系技術情報 Wiki
- Debugger Commands - Windows 10 hardware dev
- Kernel and remote debuggers - tutorial - developer Fusion
- KD Extension DLLs & KDCOM Protocol
- j00ru//vx tech blog : Attacking the Host via Remote Kernel Debugger (Virtual Machines)
- https://www.blackhat.com/presentations/bh-usa-07/Stewart/Presentation/bh-usa-07-stewart.pdf
- ChangeLog-0.3.11 - ReactOS Wiki
- アプリケーションからのデバイスドライバの呼び出し、制御方法について
- 管理者権限でしかアクセスできません | WDDDC
- IoCreateDeviceSecure problem | Windows Vista Tips
- 0と1の欠片 : [Visual Studio]ドライバをビルドすると、"22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in \xxxx.inf."というエラーになる
TOML
- toml/toml-v0.4.0.md at master · toml-lang/toml
- TOML仕様和訳 - Qiita
- TOMLは人に優しい設定ファイル言語 - Qiita
- Cool Python Tips: TOMLを使ってみよう
- TOMLの日時形式
- Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
- 最強のC++実装TOMLパーサーが完成した - in neuro
- toml11を60倍高速化した話 - in neuro
- toml11をバージョンアップした - in neuro
- toml11 v3ができてきた - in neuro
- TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
- toml11をマイナーアップデートした - in neuro
- TOMLで型の異なる要素を持つ配列が許可された - in neuro
Twitter
- 酔漢 @🏍⛺📻さんはTwitterを使っています 「【緩募】中級向けベアメタル開発教科書はありませんか? - GCC / Clangとセクション - LDスクリプト -- 物理メモリ配置 -- 入力セクション -- 出力セクション -- VMA/LMA -- NOLOAD - ELFツール -- readelf/objcopy - 不要セクション -- function-sections, data-sections -- gc-sections -- keep()」 / Twitter
- 酔漢 @🏍⛺📻さんはTwitterを使っています 「- C/C++言語 -- 関数呼び出し規約 -- 名前マングリング -- extern "C" -- attribute -- volatile - 割り込み -- 割り込み禁止・許可 -- NMI - DMA -- DMAと割り込み - Cache -- Invalidate / Flush -- CacheとDMA」 / Twitter
- 酔漢 @🏍⛺📻さんはTwitterを使っています 「- CRT -- Data/BSS初期化」 / Twitter
- oooooさんはTwitterを使っています 「@suikan_blackfin 教科書は他の人が挙げているのでそれ以外の情報を。ベアメタル開発ではリンカにlldを使うとハマります。リンカスクリプトの解釈がldとは微妙に違うし特にVMA/LMAの挙動がおかしいです。コンパイラはclangを使う場合でもリンカはldをおすすめします。」 / Twitter
- 実践的低レイヤプログラミング
- Play with UEFI
- 技術者見習いの独り言: SecureBootとLinux
- openSUSE:UEFI - openSUSE
- Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
- UEFI - PhoenixWiki
- www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf
- ぽこつん研究所 » メモリ管理について考える#09 dlmallocの設定項目
- FreeType使用記録
- www.uefi.org/sites/default/files/resources/EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
- https://firmware.intel.com/sites/default/files/UDK_Debugger_Tool_User_Manual_V1.11.pdf
- www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf
ライセンス
その他
- GPLやMITやCCなど主要ライセンスの内容と意味のまとめ | ITキヲスク
- Google v. Oracle API著作権裁判
- ライセンスについての紹介 | VINTAGE Blog
- いまアメリカのソフトウェア特許に起きていること - what`s the 446?
- 【Cases & Trends】 アメリカ特許訴訟が急減 - ここにも見える最高裁Alice判決の影|知財情報|日本技術貿易株式会社
- Coop Lights - About
- fixedpoint.jp - なぜGCCのドキュメントはDebianでnon-freeなのか
- あなたのコード、違法かも? エンジニアも知りたい、弁護士が教える著作権と開発契約の法知識 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- よく見かけるあの©表示って何の意味なのかな? 【よくわかる音楽著作権ビジネス】 - INTERNET Watch
- GoogleやYahoo! JAPANでさえ間違ってる、Copyright(コピーライト) の正しい書き方 - 2016年版 | hajipion.com
- OSSライセンスとは~著作権法を権原とした解釈
- mjg59 | The Commons Clause doesn't help the commons
- Microsoft、OINに参加し、6万件以上の特許をオープンソース化 「Linuxを保護する」 - ITmedia NEWS
- MongoDBもクラウド事業者に対抗してライセンスを変更、AGPLから独自作成のSSPLへ | OSDN Magazine
- 他人の著作物を使用したアイコンの法的リスクについて(栗原潔) - 個人 - Yahoo!ニュース
- 上山浩 「OSSライセンス遵守のための基礎知識」 知財管理 Vol.68 No.5(NO.809)に掲載 | 日比谷パーク法律事務所
- c484e7e1251d2ed577a08fc47179d1e4.pdf
- GoogleとOracleが「APIの著作権」を巡って最高裁判所の口頭弁論で対決、Googleが不利との見方 - GIGAZINE
- 09 f9: A Legal Primer | Electronic Frontier Foundation
- 大手出版社に著作権侵害で訴えられた「電子図書館」を電子フロンティア財団が支持、デジタル世界の図書館は成り立つのか議論が白熱 - GIGAZINE
- AIが描いた絵の著作権は、誰が持つのか Midjourney画像の扱いを考える:小寺信良のIT大作戦(1/3 ページ) - ITmedia NEWS
ライセンス
- さまざまなライセンスとそれらについての解説 - GNUプロジェクト - フリーソフトウェアファウンデーション
- Welcome to The Open Source Initiative | Open Source Initiative
- オープンソースライセンスの比較 | YOSBITS
- オープンフォントライセンス | YOSBITS
- SIL Open Font License - Wikipedia
- License Library
- SPDX License List | Software Package Data Exchange (SPDX)
- 著作権の保有と譲渡
日本
ガイドライン事例
- サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
- Kazuho Okuさんのツイート: "僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員本人にとっても有益であろう、というあたりかしら… "
- Kazuho Okuさんのツイート: "あ、ちなみに株主です… "
- Kazuho Okuさんのツイート: "ありがとうございます。労働にあたることを明示した上で社員に自由に休日労働する権利を認めるの、あまりにホワイト企業で素晴らしすぎる / “業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | …” https://t.co/Gk9woMzDrA"
- 業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ
- 授業目的公衆送信補償金にかかる著作権法の改正 | yasuokaの日記 | スラド
- 「TPP11関連法成立で、著作権の非親告罪化と保護期間延長が確定」「漫画家個人がCloudflareに漫画村運営者の情報開示請求提訴」など出版業界関連の気になるニュースまとめ(2018年6月25日~7月1日):見て歩く者 by 鷹野凌
- 著作権の保護と制限の規定がもうすぐ変わる ~ 保護期間延長、非親告罪化、柔軟な権利制限、教育の情報化対応など、まとめて解説 – HON.jp News Blog
- Inada Naokiさんのツイート: "日本の著作権法にはフェアユース規定はないものの、基本的に親告罪だから、著作者の利益を損なわない、著作者が文句を言わない範囲での著作権違反の多くが明確な許諾なしに黙認されていて、それを前提に色んなことが成り立ってる。 その黙認されてるエリアに丸ごと網をかけちゃうような法律はNGと思う"
- DL違法化「文化庁は与党に正確な情報を提供していない」知財法専門家が批判レポート - 弁護士ドットコム
- 「これでいいのか! 2018年著作権法改正」出版にあたり――日本版フェアユース再考のすすめ - INTERNET Watch
- マンガワンのチート事案についてまとめてみた - piyolog
- 「知人の弁理士に相談した」、Pythonを商標登録した企業が理由を説明 | 日経 xTECH(クロステック)
- 著作権法改正の概要と「写り込み」に係る権利制限規定の対象範囲の拡大 - BUSINESS LAWYERS
- オープンソースのプロジェクトに商標登録の支援などを行い、不適切な利用から守る、「オープンソース商標イニシアチブ」が国内で発足 - Publickey
- heatwave_p2pさんはTwitterを使っています 「今回の騒動の発端になった井上大臣の会見。政府がコスプレイヤーをクールジャパン大使に任命して、著作権の啓蒙までさせるものだから、コスプレの適法性に疑義があっては困る。そりゃ「法的な整理が必要」になるよね。全然クールじゃない。 https://t.co/wNzAkQlgAh」 / Twitter
- 井上内閣府特命担当大臣記者会見要旨 令和2年11月27日 - 内閣府
- 「Python」の登録商標、米Python Software Foundationが再出願。アーク社の登録商標に対しては不使用取消審判を請求 - Publickey
- 著作権Q&A | 社団法人 日本書籍出版協会
- 意外なモノの商標登録一覧202選 - 社会人の教科書
- 「小中学生による無断転載の温床に」 小説投稿サービス「テラーノベル」が炎上 運営は謝罪し対処へ - ITmedia NEWS
- あおみさんはTwitterを使っています: 「現行著作権法はかなり進んでいて、まさにそのケースを想定した上で「問題ない」という立て付けになっているらしい “情報解析を適法に行うことができれ ば,これを通じて獲得された抽象的な知見を発表・利用 することに著作権等は及ばない” 上野達弘. (2021). https://t.co/nptJS3P2fI」 / Twitter
- 36_745.pdf
- Midjourney、Stable Diffusion、mimicなどの画像自動生成AIと著作権 | STORIA法律事務所
- 文化庁、誰でも無料で著作権侵害や海賊版対策の相談ができる「相談窓口」開設、「海賊版対策情報ポータルサイト」で - Publickey
EU
GDPR
CCPA
- 2020年から施行される個人情報保護法「CCPA」はGDPRよりも企業に厳しい内容である - GIGAZINE
- 日本企業も大きな影響を受ける「GDPR」--まずは「対象か」の確認を - ZDNet Japan
- GDPRの施行によりUnroll.meとPinterestのInstapaperはヨーロッパで利用不可に
- Do Not Track and the GDPR | W3C Blog
- GDPR:その目的と企業の責任 – カスペルスキー公式ブログ
- GDPRとは – カスペルスキー公式ブログ
- 結局何をすべき?GDPR対応3つの優先事項と解消すべき6つの疑問
- 知らないとマズい - 最大約 26 億円の制裁金や個人情報利用停止措置を伴う「GDPR」施行まであと一週間 | トレンドマイクロ セキュリティブログ
- GDPR 施行直後の対応に伴うリスクや、便乗したサイバー犯罪の可能性とは? | トレンドマイクロ セキュリティブログ
- 一般データ保護規則(GDPR:General Data Protection Regulation) - フォーティネット
- GDPR対策関連ホワイトペーパー集 | 日本オラクル | Oracle JP
- Rockridgeさんのツイート: "EUのGDPRやePrivacy Regulationに合わせて、Do Not Track(DNT)の仕様や実装もアップデートされていくようだ。 / “Do Not Track and the GDPR | W3C Blog” https://t.co/ajgFvTzRvF"
- GDPR変更でユーザトラッキングへの影響が際立つ
- SaaSがGDPRに準拠するには、オンプレミスが望ましいのか?
- ブラウザ新興企業Brave、グーグルなどによるGDPR違反を申し立て - CNET Japan
- Kazuya Gokitaさんのツイート: "GDPR、いろんなサイトで「当サイトでは利便性向上のためにcookieを…」みたいなダイアログが開いて、こんなの事実上同意せざるを得ないので、ただただインターネットが不便になっただけだな"
- Nerry さんのツイート: "なんちゃらなんちゃら法のせいで最近やたらとクッキーを受け入れますかって画面に表示されるサイト増えたけど、これって拒否選んでも選んだことがクッキーに保存されないから永遠に聞いてくるってこと?"
- mizchiさんはTwitterを使っています 「GDPR はEUアクセスブロックするだけじゃ足りなくてEUに所属してる国から日本に来てる人のアクセスも遮断しないといけなくて現実的に無理…」 / Twitter
- Ichiro OtaさんはTwitterを使っています 「GDPR の対応でひとつ面倒なのはリクエストがあったら「収集済み」のユーザデータを削除しないといけない点。さらに収集したデータがリークしたときの体制・対応なども確立しておく必要があります。体力がないと対応できない、と言われているのには理由があります。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「プログラマのための例示によるGDPR入門。 - 自分に関する情報を削除できる権利。 - "Cookie"法案 (実際にはlocalStorageなども含まれる) - 同意を求める際のルール、同意が必要なものとそうでないもの etc. https://t.co/znO6mRHHAC」 / Twitter
- GDPR For Developers By Example | Blether
- ハイパーリンクを貼るだけで著作権料がかかる通称「リンク税」がEUで導入されようとしている - GIGAZINE
- EUがインターネットをめちゃめちゃにする | ギズモード・ジャパン
- 「オープンソース開発に重大危機」--GitHubがEUの著作権法改正に反対する理由 - ZDNet Japan
- 欧州議会、著作権関連規則の改正案を否決 | スラド YRO
- Rockridgeさんのツイート: "MozillaはEUの著作権指令の改正に反対の立場。包括的なアップロードフィルターの導入はインターネットの文化を貧しいものにしてしまうし、リンク税の導入は知識へのアクセスと共有を困難にするからだという。 / “Mozilla r…” https://t.co/8qOcIgeUze"
- 出た、Google最終兵器。EU著作権法改正後の白抜き画面がリーク | ギズモード・ジャパン
- 「リンク税」などを含むEUの改正著作権指令案への大規模な反対運動が勃発 - GIGAZINE
- Tomoko Uchidaさんのツイート: "これ通っちゃったんか。。。meme と GIF は除外とされたらしい / EU passes divisive Article 13 copyright law https://t.co/mtlfHGMAKl"
- EU passes divisive Article 13 copyright law
BSDL
@kazuho
- Kazuho OkuさんはTwitterを使っています: "BSDL、昔は特許の使用権も付随してるに決まってるだろJKと思ってたけど、IIRC最近VP8とかFacebookとかBSDL+特許ライセンスの構成をとるものが増えてきてるので、そういう前提がいつか通用しなくなる可能性が出てきてるんじゃないかなと嫌な気分になってる"
- Kazuho OkuさんはTwitterを使っています: "BSDL は特許ライセンスが付属するか怪しい、MITL は暗黙に付随していると考えられる、Apache License は明確に付随する、の差"
- Kazuho Okuさんのツイート: "特許の使用許諾を別につけることが一番妥当なOSSライセンスがBSDLだし(文言内でライセンサーを意味する単語が「copyright holders」なため)、利用者としてもライセンサーとしてもBSDLは紛らわしいので避けるべき"
- Kazuho Okuさんのツイート: "BSDLなソフト見つけたらまず特許条項の存在を疑う。2010年代の常識です"
- Kazuho Okuさんのツイート: "AndroidにバンドルされてるOSSであるVP8がBSDL+特許ライセンスで、(電気機器メーカーが多い)MPEG4陣営がG社を特許侵害で訴えらづらくする毒饅頭として機能している話とか"
- Kazuho Okuさんのツイート: "以前にも炎上して改訂されてたんだけど、今回は改訂されず https://t.co/GkOqd1NRXb / “Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note” https://t.co/3xK1JwnNuA"
- Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note
- Kazuho Okuさんのツイート: "BSD+特許ライセンス問題にASFが介入いしてくるの、なるほどその手があったのかって感じ"
- https://www.apache.org/legal/resolved.html#category-x
- Kazuho Okuさんのツイート: "fbの特許ライセンス問題に耳目が集まっているうちに言っておくと、BSDLは主要OSSライセンスのうちで唯一、ライセンス提供者が「作者」でなく「著作権所有者」になっているがゆえに、特許ライセンスを別途指定しやすいという問題があり、それがゆえにBSDLを使うのは避けるべき"
- Kazuho Okuさんのツイート: "あと、パテントトロールに対してはOSSの特許条項は役に立たない(トロールは自社でOSSを使った業務をやらないので、OSSの使用権を失っても困らない)から、パテントトロール対策だって言い訳は説得力ない"
- Kazuho Okuさんのツイート: "つまりOSSの特許条項は、競合他社との競争において意味をもつものです"
- Kazuho Okuさんのツイート: "件の特許ライセンスについては、ああいうライセンスをBSDLにつけること自体は各個の自由だし、OSS配布は社会貢献活動ではないという立場からもアリだと思う。一方で、ああいうライセンスのソフトを使いたくないケースもあるから、もっとゆるい条項になるといいなとfbの中の人たちのために思う"
- Kazuho Okuさんのツイート: "Fbに限らずGoogleのvp8やwebmもそうだし、BSDLみたらpatent grantを疑えって話ですよ。その認識が広まるなら今回の騒ぎはいいことだと思う #毎回言ってる"
- ASFがReact.jsなどが使うFacebookのオープンソースライセンスを禁止、Facebookは「変更しない」と発表 | OSDN Magazine
@mhiramat
- まさみさんは語りたいさんのツイート: "OSSライセンスのMITライセンスやBSDライセンスについて、著作者の表示をすれば自由に使えるのだけど、これ多人数で開発するプログラムに適用した場合、全ての人のCopyright表記をするのか、ライセンスファイルにあるものだけでいいのかでもめそう。"
- KaiGai Koheiさんのツイート: "BSDライセンスのPostgreSQLの場合、Copyright表記は全て「PostgreSQL Global Development Group」になってるんだけど、『PGDGとはPostgreSQLの開発に貢献した全ての人です』という定義になってる。… "
- まさみさんは語りたいさんのツイート: "なるほど、comittersとかdevelopersとか、個人を特定しない方法がありますね。その辺り、個人の表記をどうしたいのかは本当ははっきりさせたほうが良い・・・。… "
- まさみさんは語りたいさんのツイート: "コントリビューターの一人が著作者名をどうしても表記して欲しいって言った場合は問題が起きちゃうんですよね。だから厳密には事前に方式を決め、コミット前に同意を取ったことを確認する手段(signed-offとか)も用意する必要があるんだけど、全部のOSSでやるのは難しいよなあと。… https://t.co/9KtW4HsTl6"
- KaiGai Koheiさんのツイート: "なので、"How to contribute"でも良いので事前にルール化・文書化しておく必要はありますね。アップストリームに入れたいのであれば、その流儀に従ってくださいと。… "
- まさみさんは語りたいさんのツイート: "この辺りのノウハウ、大手のOSSプロジェクトはみんな持ってると思うんで、そこからテンプレを起こして広めるのと、揉めた時の相談先としてLFなりが第三者機関として動けるようになると凄くありがたいですね。 Githubはライセンスファイルのテンプレしか用意しないし。… "
- Satoru Uedaさんのツイート: "このスレッド、大切な問題提起を含んでいると感じます。著作権表記をどうするかもOSSの配布をするシーンで悩みとして浮かび上がる。配布のシーンに直面する事が圧倒的に多い組み込み系は特に気をつかいたいところ。… "
- Satoru Uedaさんのツイート: "GPLだと、著作権表記もライセンス表記もソースコードと一緒に全部開示することになる。この点からも、Linuxのような大規模OSSに向いていると言えるのかも知れませんね。… "
- まさみさんは語りたいさんのツイート: "はい。しかし一般に寛容型と言われているライセンスはこの辺りがあやふやなので、大規模になった時に、「ライセンスの外側」で貢献同意の裏付けを取るプロセスとしてOpenStackとかでContributor License Agreement を交わすという方法がありますね。 https://t.co/ax5gG9REfC… https://t.co/lAKOcwx7Xh"
- まさみさんは語りたいさんのツイート: "このあたりは、OSSプロジェクトを進める上でのライセンス外だけどライセンスに絡む重要なノウハウなので、他の寛容型ライセンスを使う際の注意点と回避策として標準化していかないといけないんじゃなかろうかと思います。… "
- Satoru Uedaさんのツイート: "そのとおりだと思います。短いメッセージでは書ききれないことがたくさん思い当たります。BoFネタですね。… "
- まさみさんは語りたいさんのツイート: "昨日知ったというか理解したのは、寛容型ライセンスは法務的には全く寛容型とは言い切れない面倒くさいライセンスであるということだった。特に著作人格権が存在する日本では・・・。"
- nishio hirokazuさんのツイート: "著作者人格権はベルヌ条約を批准している地球上ほとんどの国に存在しているわけだが、一体どこの国の話をしているのか…… "
- henrichさんのツイート: "これはdebian/copyrightファイルでも悩む所であり、どうすればいいのかはまだベストプラクティスがない…。… "
- まさみさんは語りたいさんのツイート: "これはいいまとめ。やはりプロジェクト毎にライセンスがどう扱われるかをきちんと決めておけという話になるのかな? (CLAで。)… "
- Igaguriさんのツイート: "(まちがい) 日本には著作者人格権があるからめんどくさい (ただしい) なぜか米国は条約で保証しなければならない著作者人格権の制度がなく、米国法しか考えずに作られたOSSライセンスが多い… "
- まさみさんは語りたいさんのツイート: "なるほど米国だけ例外的で、例外的な条件に基づいてライセンスを作ってしまったから、本来保護されるはずの著作人格権の行使のあたりの取り決めが別途必要なのか。"
- nishio hirokazuさんのツイート: "僕の理解をまとめました https://t.co/KvOucRXa5p… "
- すぎむら45さんのツイート: "> ライセンスも「著作者が、他の人に、どういう条件で利用を許諾するか」を書いたものに過ぎないので、著作者が誰であるかを定めるための手続きではない。 この観点はとても重要だと思いました。 使用許諾の話と、著作者人格権の行使の話は混じっているのはよくないですよね。… https://t.co/3JGcfxruVs"
- 多人数で開発するOSSの著作者表記 - 西尾泰和のScrapbox
- mongrelP@もんぐれさんのツイート: "わかりやすいところだと旧GPLとかが該当するみたいね(記事による。今のGPL3とかはどうなってるかはわからぬ) https://t.co/X7HcTVFF8X… "
- GPLは契約として成り立つか---日本法との整合性を検証する - CNET Japan
- MAEKAWA Masahideさんのツイート: "著作「者」人格権ですね。… "
- 姉崎 章博さんのツイート: "あまり意識されていないが「多人数で開発する」は「全員、共同著作権者とは限らない」し「(元著作者以外が)二次的著作権者とは限らない」。 Contributer=(二次的)著作権者と思い込んでいる人が多い? 「二次的著作物として何を創作した」に答えられるプログラム記述が残っていれば権利者と言えるかな… https://t.co/th1z91D2vg"
- 姉崎 章博さんのツイート: "もちろん、プロジェクトリーダをやっている元著作者は、そんな厳しいことを言わずに、Contributeしてくれた人をリスペクトして、Copyrightを追加してくれている人が多いけど。 記述が類似性をもって取り込まれたわけでもないとか、著作物と言える規模でもないのに、著作権を主張するのはどうなんだろう… https://t.co/W2dxp1gV5y"
- 姉崎 章博さんのツイート: "「第三者から見て決める基準」が無いから、親告罪になっていると思っています。 釈迦に説法になりそうですが、 どのくらい他人のウチに踏み入れたら住居侵入罪になるか、何センチって決まっていないのと同じではないでしょうか。 どちらにしろ所有者(権利者)しだいかと。… "
- ぉゅぅさんのツイート: "姉崎さんに教示いただいたと思いますが、LGPLの3項に参考になりそうなサイズはありますね。10行以下のインライン関数やマクロ程度ならLGPLとしてのライセンスを要求していません。 とはいえ、それをもって著作権有無を判断できないでしょうけれど(各国の判例があれば もっと参考になるのかな)。… https://t.co/xDMyYhIJW9"
- ぉゅぅさんのツイート: "https://t.co/7BcoewUTMP 3. Object Code Incorporating Material from Library Header Files. >small macros, inline functions and templates (ten or fewer lines in length) このあたりがそういってるのかな、と。… https://t.co/Dt9PxcUpQj"
- 姉崎 章博さんのツイート: "親告罪になっている理由にももう一つあって、著作者本人が許している(お目こぼししている)のに、第三者の検察が問題視するものではないかららしい。 そういう意味でも、著作者次第。 著作者を無視したルール(基準)があるわけではない。… "
- vyv03354さんのツイート: "歴史的にはむしろBSDLはGPLがパクれない条文だった(宣伝条項付きだった)ところを、FSFからの働きかけに応じてわざわざパクれるように修正した(宣伝条項を外した)という経緯があるわけだが、哲学とか本来の意図とか一体何の話をしているのだろう。 #エアリプ"
Artistic License
- Artistic License - Wikipedia
- Artistic License - Wikipedia
MPL
- Mozilla Public License - Wikipedia
- Mozilla Public License - Wikipedia
- Mozilla Public License, version 2.0
- MPL 2.0 FAQ — Mozilla
- MPLの概要 | easy labo
- MPL2.0ライセンスのライブラリを使った開発 -MPL2.0ライセンスをうたっ- オープンソース | 教えて!goo
- Mozilla Public License(MPL)2.0が公開 | オープンソース・ライセンスの談話室
- Mozilla、Mozilla Public License(MPL)を10年ぶりにアップデート | OSDN Magazine
- MPL 2.0, copyleft, and license compatibility | Opensource.com
- Kazuho Okuさんのツイート: "MPL 1.1にあった、著作者に対し(その著作物に無関係でも)特許侵害訴訟を起こしたら、その著作物に含まれる著作者所有特許のライセンスがrevokeされるってのは割と好きなんだけど、なんで2.0で廃止されたのかしら"
GPL
Linux
- まさみさんは語りたいさんのツイート: "StackOverflowにGPLとカーネルモジュールについての詳細な引用回答を見つけた。結構具体的にソースを示して見解を示しているのが良い。しかも技術的な話だから、これは多分法務の人だけでは理解できない。 https://t.co/XPsEGkhyIm"
- how to make my own linux kernel driver closed(not open source)? - Stack Overflow
- まさみさんは語りたいさんのツイート: "GPLとしての要件は派生物であるかどうか。Linusの意見も派生物としてのカーネルモジュールはGPLにすべきであるという意見。ただし、他のOS向けに書かれたドライバを、単純に移植しただけである場合についてのみ、Linusの見解としては派生物でないからGPL出ないドライバも受け入れられると言う。"
- まさみさんは語りたいさんのツイート: "おそらく厳密に言えば、そのハードウェアが他のGPLでないOSで動くことが証明されていて、そのOS向けに書かれたドライバであるということが証明できるのであれば、GPLを適用しなくてもLinuxカーネルについてだけ言えば受け入れても良い。ただし他のGPLソフトウェアはそれぞれの事情で判断すべき。"
- まさみさんは語りたいさんのツイート: "ライセンスは書面の字面だけでは解釈が別れるものがあって、それをきちんと解釈しようとすれば、ライセンサに確認するしかないが、ここではライセンサ(Linus)の意志が明確に表現された発言がリンクされているのがポイント。"
- まさみさんは語りたいさんのツイート: "ちょっとややこしいのは、元々以前の世代のハードウェアはLinux以外のOSを動かしていて、Linuxもサポートするために移植したが、今世代のハードウェアではLinuxしか動かしておらず、しかも新世代のために修正を加えている場合はどうなるのかということ。"
- まさみさんは語りたいさんのツイート: "今ならいくらでもユーザ空間にドライバの機能を追い出す手段があるので、わざわざカーネルドライバにプロプラコードを突っ込むのは相当のマゾかN○IDIAだと思ってる。"
- まさみさんは語りたいさんのツイート: "armのmaliドライバはカーネル部分はGPLだし、まあ妥当でしょうこれ。"
- まさみさんは語りたいさんのツイート: "OSSライセンスに関わる話って見方が何種類かあって、Linuxのモジュールに関わるものはもう少し細かくて、あまり外野から口を挟むべきではないよなと思ったり。(なんでLGPLではなくてGPLv2だけどEXPORT_SYMBOL_GPLなど入れることになったのか、等の苦しさを汲み取れなければ止めたほうがいい)"
- まさみさんは語りたいさんのツイート: "このあたりの苦しさが伝わってくるから、いろいろ言われても「OSSライセンスの教科書」は好き。"
- Naoya HoriguchiさんはTwitterを使っています 「GPL が感染するというような表現する人がいるけど、Linux カーネル内ではプロプラのモジュールに対して tainted (汚染) フラグを立ててえんがちょしているので、実はどっこいどっこいなのではないか。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「プロプラのモジュールがあったら、ライセンス上解析できない(RE禁止)かもしれへんやん?そういうのをLKMLに送ってくんなよ、送っても無視する(か、最低優先度にする)ぞ、という意味のtaintedです。ライセンス違反で汚染されてるとかそういう話ではないです。」 / Twitter
histric
histric-1
- 姉崎 章博さんのツイート: "#osc18tk 世界中の弁護士が「GPLは契約」と言う愚かな理由 https://t.co/nGALPIVDHJ 一時限目より、ちょっと、ディープな話ですが、聞いていただけると幸いです。 言葉だけを鵜呑みにせずに、人がどういう認識で何のためにそういう話をしているのか調べると、結構あまり考えていないことがわかる:-(… https://t.co/BrJ52LdBvf"
- オープンソースカンファレンス2018 Tokyo/Fall - イベント案内 | 2018-10-27 (土): 世界中の弁護士が「GPLは契約」と言う愚かな理由
- GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
- Kazuho Okuさんのツイート: "@yukihiro_matz FSFは商用ソフトを「マルウェア」「ユーザを虐待するように設計された機能を有している」と非難している(https://t.co/0krqdpAztY)わけですし、松本さんの感情は別としてウイルスと呼ばれるくらいのことを問題視してもしょうがないかと"
- トーバルズ氏がLinuxとGPLについて真に思うこと - ZDNet Japan
- 「GPLv3」公開から10周年 | OSDN Magazine
- 米Red HatやGoogleなど、GPLv2やLGPL違反時の「治癒期間」の権利を約束へ | OSDN Magazine
- 本の虫: 自由ソフトウェア財団が技術的な指導力を失いつつある
- 米Red Hat、GPLv2やLGPLv2.1を利用するソフトウェアに対してもライセンス違反時の「猶予期間」を提供へ | OSDN Magazine
- 「Qt 5.7」リリース、本リリースよりLGPLv3およびGPLv3での提供へ | OSDN Magazine
- まさみさんは語りたいさんのツイート: "B2BのビジネスでGPLのソフトウェアを使った場合、ソースコードの提供義務はそのソフトウェアの頒布先になるんだけど、戦車とかにLinux使ったら自衛隊にだけに公開すればいいという話で、そこから先は組織の機密保持のため公開されることはない、という話になるな。"
- まさみさんは語りたいさんのツイート: "GPLは頒布に際してソースコードの公開を要請するけど、更に踏み込んで、レポジトリの公開を要請するライセンスって言うのはどうだろうか。"
- fjのYog教祖様さんのツイート: "GPLv4 としてRMSに提案する ( w )/… "
- まさみさんは語りたいさんのツイート: "WindowsやRTOSドライバとコア部分を共有したい場合はBSDとかMITにするのが良いと思いますね。GPL互換だし問題がない。… "
- だよもんフレンズは転職したいさんのツイート: "だからBSD(とMIT)ライセンスが無難。GPLは極端過ぎる。… "
- まさみさんは語りたいさんのツイート: "だけどBSDだと「このドライバはBSDだからソースコードは配布しないで下さい」とかいうB2B契約をしようとする輩が出てきてやっぱり炎上するかもなので、よっぽど隠したい理由がない限りGPLにしておくのが良いと思うよ。要するに、Linuxを育てた人たちの成果にフリーライドして平気かどうかという話。"
- まさみさんは語りたいさんのツイート: "過激と言われるかもだけどさ、そこの筋を通せるかどうかって、その会社が単なる寄生虫として生きるのか、社会のリーダー格として生きるのかの分岐点だと思うんだよね。 寄生虫は大きくなれないし日陰に生きるしかない、それで良いの?"
- まさみさんは語りたいさんのツイート: "https://t.co/tCtMZVhFk8 ごめん、Linusもアカンって言ってる。"
- Linusのカーネルモジュールのライセンスへのスタンス | スラド
- GNU GPL登場前夜 | OSDN Magazine
- 2019年9月27日 リチャード・ストールマン「FSFは辞めてもGNUは辞めない」:Linux Daily Topics|gihyo.jp … 技術評論社
- 著名なフリーソフト活動家が一通のメールで役職辞任に追い込まれたことに「危険な動きだ」と批判が寄せられる - GIGAZINE
- FadisさんはTwitterを使っています: 「FSFとGNUは今までRichard M. Stallman氏が双方のトップを兼任していた為その連携は必然だった。が、先の騒動でFSFを追い出された氏が依然としてGNUのトップを続けている状況で、今後FSFがGNUとどう付き合うべきかが悩ましい問題になっているらしい https://t.co/rgKBMGwEzg」 / Twitter
- The FSF Is Re-Evaluating Its Relationship With The GNU - Phoronix
- Stallman氏、GNU Projectトップを引き続き務めることを表明。プロジェクト内からは反発の声も | OSDN Magazine
- SNKのあまりにもデタラメな対応のせいで GPL違反状態になっているNEOGEO Arcade Stick Proの解析情報 - honeylab's blog
- SNKによるNEOGEO Arcade Stick ProのGPL逃れの手口と彼らのミス - honeylab's blog
- licenses/GNU_General_Public_License_version_3.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
- GNU General Public License - Wikipedia
- FadisさんはTwitterを使っています: 「GNUの主要なプロジェクトのメンテナが名を連ねてRichard Stallman氏をGNUのトップから降ろすように求めている声明文。なんというか、GNUの方も時間の問題って感じだ https://t.co/Xk8QSmFHbq」 / Twitter
- Joint statement on the GNU Project — 2019 — Blog — GNU Guix
- KOSAKI MotohiroさんはTwitterを使っています 「GPLはバイナリを使える正当所有者はソースコードも入手可能でなければならないというライセンスですが、そのソースコードを自分でコンパイルしたものを利用可能かどうかはその国の法律によります。ほとんどの先進国では Red Hatみたいな他者の商標は勝手には使えません。CentOSみたいな商標削除作業要」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「Xを静的にリンクしたバイナリYを配布したら私がXのバイナリを再配布した扱い?(ライセンス苦手おじさん)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「現代のストレージ事情において、共有ライブラリを使う必要性はほぼ無く、あげるとすれば暗号系のライブラリの更新だけど、これは本来OS側で面倒を見るべき事で、実際RHEL などは suite として提供している」 / Twitter
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t それは再配布した扱い(もちろん共有ライブラリを同梱しても再配布扱い)。ただし誤解が多いけど、GPL のバイナリと MIT なバイナリを同梱したら全部 GPL にしないといけないわけじゃないからな」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@termoshtt そこが難しい、、、 再配布するときは元の…みたいなやつに頭を悩ます」 / Twitter
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAが結構ややこしくて、リンクしたやつを再配布する場合はCUDAのライブラリはその本体を動かすためになら使って良いという条項がある」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@termoshtt なるほど、、、、、」 / Twitter
- 2021年6月2日 もうFSFにとらわれない ―GCC運営,FSFへの著作権移譲を開発者に求めないポリシーに:Linux Daily Topics|gihyo.jp … 技術評論社
- Grafana LabsがGrafana、Loki、TempoのライセンスをAGPLv3に変更
- FadisさんはTwitterを使っています 「GNU C Library(glibc)がコントリビュート時に著作権をFSFに譲渡する事を求めなくなったらしい。FSF発のプロジェクトの多くはコントリビュート時にFSFへの著作権の譲渡を求めていたが、少し前にGCCがこの条件を撤廃しており、glibcもこれと同じ方式に移行する形になる https://t.co/VbIX7X4TrK」 / Twitter
- GNU C Library Looking To Drop FSF Copyright Assignment Policy - Phoronix
- nishio hirokazuさんはTwitterを使っています 「CopilotとGPLの話、少なくとも日本の著作権法においては30条の4の「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合」について著作権が制限され自由に使える件を踏まえてない発言はミュートしたい https://t.co/AL7rRWALgn」 / Twitter
- 著作物に表現された思想又は感情の享受を目的としない利用 - 西尾泰和のScrapbox
- 7594591200220899443さんはTwitterを使っています 「github copilot はgplのコードを学習してんならgithub copilotが生成するコードはgplなコードのderivative worksでしかあり得ねえだろうが、という指摘がされており一考の価値がある」 / Twitter
- eeveeさんはTwitterを使っています 「github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying https://t.co/IzqtK2kGGo」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「元来GPLとはソフトウエアを自由化する運動だってわけだが。謎のAIとやらをかますだけでGPLの自由が毀損されて不自由なコードに化けてしまって良いのか。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「FSFEが運営する「税金で開発されたソフトウェアは、すべてフリー/オープンソースにすべき」という請願の署名簿。 こんな当たり前のことをなぜ今まで誰も言い出さなかったんだ? https://t.co/FokznqhyAf」 / Twitter
- Public Money, Public Code
- Kazuo MoriwakaさんはTwitterを使っています: 「GPLが契約として有効だという判例ができたらしい https://t.co/alH3I4qY0D」 / Twitter
- Software Freedom Conservancy right-to-repair lawsuit against California TV manufacturer Vizio, Inc. remanded to California State Court - Software Freedom Conservancy
- AGPLを理解する: もっとも誤解されたライセンス | フューチャー技術ブログ
- AGPLが適する場所、適さない場所 | フューチャー技術ブログ
CDLA
- Linux Foundation、機械学習やAI時代をにらみデータのための新ライセンスを発表 | OSDN Magazine
- Home - CDLA
Bluetooth
- Bluetooth ブランドを使用する - 登録
- Bluetoothロゴを使用するためには?〜①Bluetooth SIGメンバー登録編〜 | 無線化.com
- Bluetooth認証 | BLEDocs
- a10.pdf
Creative Commons
- クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
- Creative Commons — CC0 1.0 全世界
- クリエイティブ・コモンズ・リーガル・コード
- Creative Commons — CC0 1.0 Universal
- Creative Commons Legal Code
- Creative Commons — 表示 4.0 国際 — CC BY 4.0
- クリエイティブ・コモンズ (Creative Commons) — 表示 4.0 国際 — CC BY 4.0
- Creative Commons — Attribution 4.0 International — CC BY 4.0
- Creative Commons — Attribution 4.0 International — CC BY 4.0
- 本の虫: このブログのライセンスをCreative CommonsからGFDLに変更
- 本の虫: 邪悪なクリエイティブ・コモンズで起こるべくしておきた事件
- 本の虫: ますますクリエイティブコモンズが変な方向へ
- Choose a License
- Creative Commonsライセンスの作品は無条件で使って良いわけではない - yanok.net
- データ・資料 | クリエイティブ・コモンズ・ジャパン
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Creative Commonsライセンスの作品を利用するときの出典の書き方ベストプラクティス: - 題名、著者、ソースおよびライセンスを必ず明記。 - 修正した場合はどのように修正したかを明記。 - 派生の場合は「~の派生である」ことを明記。 https://t.co/Izz7YqtYYM」 / Twitter
- Best practices for attribution - Creative Commons
DMCA
- 漫画村が使っているCloudflareというCDNが著作権侵害ほう助で苦境に陥っている件 - orangeitems’s diary
- 楠 正憲さんのツイート: "CloudflareがDMCAで海賊版サイトをテイクダウンしないのは札付きだったのか / “Cloudflare: We Can't Shut Down Pirate Sites - Slashdot” https://t.co/w0PVacszQh"
- Cloudflare: We Can't Shut Down Pirate Sites - Slashdot
- フェアユースに対する不当なDMCA削除要請をめぐる「Dancing Baby」裁判、和解に達する | スラド IT
- まさみさんは語りたいさんのツイート: "DMCA申請する際に、予め誤った申請だった場合の保証金を積み立てる仕組みと、申請自身が正当な申請者により行われたことを保証する仕組みが必要なのでは。虚偽住所や詐称申請はできない仕組みを作ったら儲かる気がする。"
- 辻正浩 | Masahiro Tsujiさんのツイート: "私の投稿を検索結果から消そうと先月から色々やっている方へ。 私のブログを装った盗用ブログを作ってそれを元に私の投稿にDMCA申請するのは全部Googleに拒否されてるにしてもやりすぎですよ?全部気づいてますよ?既に警察からも指導されていますよね?まだ続けるならそろそろ動きますよ?"
- 光のインターネットの闇さんのツイート: "侍エンジニア塾、批判していたサイトをDMCAクレーム申請してGoogle検索に出さなくしている。。。 https://t.co/gn0UJ341JK"
- DMCA (Copyright) Complaint to Google :: Notices :: Lumen
- 高梨陣平さんのツイート: "インターネットアーカイブ、Waback MachineがDMCA対応で削除を開始。 とうとう個々人での保存が重要になりつつある。腐ったDMCA申告に対抗するのはコストが高過ぎる。… "
- 「最後の砦」崩れる? Internet ArchiveでDMCAによる削除要請に対応した痕跡見つかる【やじうまWatch】 - INTERNET Watch
- 「著作権者のクレジットを表記して」というDMCA通知に従ったら不正行為に加担しかねないという報告 - GIGAZINE
MS
- Microsoft Public License (MS-PL) | Open Source Initiative
- 使用条件
- Microsoft 開発者サービス契約
- マイクロソフトの主要なシェアードソースライセンスに関して « 来栖川電算
- 米Microsoft、オープンソースライセンス準拠の管理のためのOpenChain Projectに参加 | OSDN Magazine
- 2019年12月19日 欧CERNが進める脱Microsoftプロジェクト「MALT」,代替ソリューションが一部公開:Linux Daily Topics|gihyo.jp … 技術評論社
本の虫
- 本の虫: 高度に発展した特許業界はヤクザと見分けがつかない
- 本の虫: Javaの権利にまつわるまとめがすごい
- 本の虫: fair use権利を侵害するYouTubeのContent IDと戦うために著作権侵害するゲーム批評家の話
GIGAZINE
- Googleが「コードが著作権の対象になる」という裁判所判断はソフトウェア開発の未来を左右するとして対Oracle訴訟について嘆願書を提出 - GIGAZINE
- GoogleとOracleが繰り広げる訴訟で「APIは著作権保護対象か否か」について最高裁判所が審理に乗り出すことに - GIGAZINE
- Googleを著作権侵害で訴えているOracleもAmazonのコードをパクっているという指摘 - GIGAZINE
- 約1兆円の賠償金を巡るGoogleとOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? - GIGAZINE
- オープンソースソフトウェアの利用条項は法的に強制力があると裁判所で判決が下る - GIGAZINE
- ネット上の公開情報を自動抽出するスクレイピングは問題ないと改めて控訴裁判所が判断 - GIGAZINE
- まるで人間のアーティストが描いたような画像を生成するAIが「アーティストの権利を侵害している」と批判される - GIGAZINE
技術評論社
- 2018年10月11日 Linuxとオープンソースを守るために ― Microsoft,「Open Invention Network」に参加:Linux Daily Topics|gihyo.jp … 技術評論社
- 監訳者解説 山形浩生:ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険|技術評論社
- 2019年1月17日 SSPLはオープンソースライセンスにあらず!? Fedora,リポジトリからSSPLソフトを削除へ:Linux Daily Topics|gihyo.jp … 技術評論社
TechCrunch Japan
- MongoDBがそのコードのオープンソースライセンスを改定、オープンソースの“食い逃げ”に むかつく | TechCrunch Japan
- 世界を手中に収めたオープンソースソフトウェア | TechCrunch Japan
Publickey
- Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey
- クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス「SSPL」を理由にDebian、Fedora、RHELがMongoDBのバンドル取りやめを表明 - Publickey
- [速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲 - Publickey
- AWSがLinux関連OSSを特許リスクから守る「Open Invention Network」に加盟。全特許をパテントプールに提供すると表明 - Publickey
- Linux Foundationが「法律専門家のための WebAssembly ~ ライセンス・コンプライアンスにおける現在のパラメータを探る」日本語版ドキュメント公開 - Publickey
スラド
- OpenSSL、ライセンス変更に向けて貢献者の合意を求める | スラド オープンソース
- OSSを利用する多くのソフトウェアで脆弱性対応の不備やライセンス問題が存在する | スラド セキュリティ
- 著作権法における「引用」と「技術の開発又は実用化のための試験の用に供するための利用」と「情報解析のための複製等」 | yasuokaの日記 | スラド
- なかのん&マジックさんのツイート: "これはGoogleを支持するわ。APIの模倣がダメなら、プラットフォーム間等の移植の際に、元のAPI叩いてたところに抽象化したレイヤーをはさむこと自体が違法ってことになるよな。 / Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める https://t.co/UIoIwVmEZ0"
- Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める | スラド IT
- なかのん&マジックさんのツイート: "API呼び出し部分を同じ形のメソッドなりでラップして、自動テストでプラットフォームの色んな動作をエミュレートしてもやっぱり違法になるのかな?"
infoQ
- OSSライセンスの遵守を簡単にするGitHub Licensed
- グーグル、オラクルへの支払いは数十億の可能性も
- Bank of Ameriaのブロックチェーンデータストレージ特許が公開
- 最高裁判所は、GoogleによるJava APIの使用は公正利用であると判決
OSDN
- licenses/MIT_license - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
- オープンソースライセンス管理団体OSI、ライセンス情報を提供するAPI「Open Source License API」を公開 | OSDN Magazine
- スタッフ解雇を理由にFSFと対立していた「Libreboot」、GNU Projectから正式に離脱 | OSDN Magazine
- Black Duckが企業アプリで使われるOSSに関する調査結果を公表、6割以上で脆弱性が放置されているという結果に | OSDN Magazine
- 米Facebook、批判を受けて「React」のライセンスから特許条項を削除へ | OSDN Magazine
- 米GitHub、依存性ライセンス情報のキャッシュと確認を行う「Licensed」を公開 | OSDN Magazine
- オープンソース商標についての解説と不使用取消審判への対応のお願い | OSDN Magazine
- Redisがモジュールのライセンスを変更、商用利用に制限 | OSDN Magazine
- Kazuho Okuさんのツイート: "周辺モジュールをAGPLよりもリベラルなApache Licenseにしつつ、それ自体を商品として提供するのは禁止する、と。これは果たしてOSSなんだろうか... / “Redis’ License is BSD and wil…” https://t.co/K4IcvZRQrQ"
- Kazuho Okuさんのツイート: "変更前のライセンスがAGPLなので、クラウド事業者も開発に協力していたわけだし、今後も協力すると期待されるからこそApache License+αに変更したんじゃないのかしら… "
- Kazuho Okuさんのツイート: "AGPL+著作権譲渡でやりつつ、「別ライセンスは有償提供ね♡」といういつものモデルで始めてればよかったんじゃないの感は感じる"
- 米Redis LabsがRedisモジュールのライセンスを再変更、独自のRedis Source Available License(RSAL)へ | OSDN Magazine
- 分散SQLデータベース「CockroachDB」、「as a Service」としての提供を制限するライセンスに変更 | OSDN Magazine
- フリー・フォント・ライセンスの現状 | OSDN Magazine
POSTD
- MITライセンスを1行1行読んでいく | POSTD
Qiita
- 公開ライセンスの話 - Qiita
- そのライブラリは、本当にその著作権表記だけで良いのか? - Qiita
- githubでライセンスを設定する - Qiita
- ライセンスの選択を恐れる必要はありません - Qiita
- ちょっとユニークなライセンスたち・まとめ - Qiita
- Facebookと係争中の他社はReact.jsが使えない - Qiita
- プレゼン資料やアイコンやLGTMに、漫画・アニメを無許可で使うと日本では著作権侵害です - Qiita
- ライセンスをつけないとどうなるの? - Qiita
Twitter
特許
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2000年以降の出願で、特許として認められないもの。 「特許出願前に(略)外国において(略)電気通信回線を通じて公衆に利用可能となった発明」 https://t.co/YKhdZvBu4Y 例えばRFC等で既知の場合は、特許として認められない、となるはず。 (なのに特許成立している例が…無効審判にできそう)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "1999年以前の出願については、「外国において頒布された刊行物に記載された発明」が認めない条件となっていて、出版されているものに限っていた様子。"
- Kazuho Okuさんのツイート: "自己防衛とかナイーブすぎる。基盤技術をばらまいて他社に依存させて、それら他社の特許を自由に踏めるようにするための戦略でしょ。Androidを販売したければVP8のサポートが必須だから動画関係の特許侵害でGoogleを訴えることができなくなる、的な… https://t.co/QT8nIgkS7j"
- mattnさんのツイート: "PATENTS は特許侵害に対する自己防衛だと思います。Google は OPN にサインしています。 https://t.co/fBee4IHiw3 https://t.co/LyrpQBWQx0"
- Kazuho Okuさんのツイート: "まあGolangの特許条項はApache Licenseと同様の温和なものだとは思うけど"
著作権
- OS作れないマン 技術書典3 あ11企さんのツイート: "社内リポジトリにあるソースコードに著作権表示があって、編集するたびに年号の部分を書き換えるの面倒だから、米国も無方式主義となった現在では著作権表示を削除しても良いのではないかと提案した。"
- ぬるぽへさんのツイート: "著作権のこと全然考えてなかったんだけど、特に譲渡とかの取り決めをしてない状態でプルリクエストをどんどん受け付けると、ライセンスを例えばMITから独自のものに変えようみたいな話が出たときに全著作権者にコンタクトを取って了承を得なければいけなくなるのか、なるほどなー"
- Kazuho Okuさんのツイート: "著作権譲渡契約(CLA)がなくてcopyright書き換えられたのなら文句言うの分かるけど、CLAがあるのにsquash mergeのオーサー欄がとか言われるの辛い。そんなに自分の名前載せたいならCLAがあるプロジェクト避ければいいのに、と正直思います"
- Kazuho Okuさんのツイート: "なお僕はCLA嫌いです"
- Kazuho Okuさんのツイート: "実務的な話をすると、squash mergeをする場合というのは、複数人の変更を単一のコミットに変換するというケースが当然に想定されるわけで、その際、CLAで著作者の表示が不要であるにもかかわらず著作者の確認を行わなければならないとなると、作業上の負担が大きくなります"
- Kazuho Okuさんのツイート: "僕は 1) @mattn_jp さんの気持ちはわかる 2) MSのやり方が間違っていたわけではないし、実務上のメリットもある(https://t.co/NAYpIxbEAH) 3) である以上、謝罪と修正を要求すべき問題ではない という認識です"
- Kazuho Okuさんのツイート: "「僕はこうしてほしい」という希望を伝えるのはもちろんいいんだけど、どっちが正しいとか間違ってるとかそういう問題ではないということ… "
商標権
- Kazuho Okuさんのツイート: "商標権は製品の識別を保護するものだから、ソフトウェアやサービスとして商標登録がされているものを紹介する「書籍」を出したとしても商標権侵害にはならないんじゃないの? 教えて偉い人 / “ライセンスからみたOSSの商業出版の話。 -…” https://t.co/Q3qvGRmgek"
- ライセンスからみたOSSの商業出版の話。 - @rdlabo
- 成瀬さんのツイート: "その通りで、「商標的使用」じゃないので侵害にはなりません… "
OSSライセンスの教科書
- もうすぐ夏休み終わりさんのツイート: "OSSライセンスの教科書買ってきた。 JSONライセンスを実務上当然認めるべき、という主張には断固としてNoと言いたい。理解しかねる"
- まさみさんは語りたいさんのツイート: "JSONライセンスの言うEvilかどうかって主観的だし、ソフトウェアというツールを作った時点では保証しかねる。例えばカワンゴのOP53Bに利用されたらどうするか。これはインターネットの自由にとってはEvilだが、カワンゴにとってはGoodなのである。要するに確信犯に対しては全く意味がない。"
- まさみさんは語りたいさんのツイート: "その上意図的に差別的に自由を侵害しているのでフリーソフトウェアライセンスとしてもダメっていうね。似たような話にNihon Linuxで起きたGGPL騒動がある。 https://t.co/9XATNlB83S"
- nihonLinux - Wikipedia
- まさみさんは語りたいさんのツイート: "JSONライセンスよりGGPLの方が日本ローカルで騒動に面白みが会って良いんだけど、如何せん2002年のことだからみんな忘れちゃってるんだよなあ。"
- まさみさんは語りたいさんのツイート: "実務的に見てJSONライセンス使ったソフトウェアがあったとして、製品に使えるかどうかと言うと、製品がevilな使い方をされるはずはないから使っていいことになるのではないか?ただ、巡り巡って偵察兵器に使われる可能性は無いといえないが、ライセンス受けた時点で判断はできないよな。"
- まさみさんは語りたいさんのツイート: "後になって著作権者から、「それは俺にとってevilだ」とか言われたら著作権違反で訴えられる可能性もあるから、やはり判定に主観が入り込む可能性があるのは実務的にも無理だな。"
- まさみさんは語りたいさんのツイート: "これと全く同じ状況に陥るのは、ライセンスが付いてないソフトウェアね。誰かが書捨てたコードはすごく危うい。しかしそういうのを考えないで依存関係で勝手に使われるものもあるからなあ。"
- もうすぐ夏休み終わりさんのツイート: "全くそうです。Evilな人はそもそもライセンスなんて無視するから意味ないんですよ… "
- まさみさんは語りたいさんのツイート: "オープンソースの皮をかぶったハニーポットトラップ、というのも実は存在しうる。"
- もうすぐ夏休み終わりさんのツイート: "JSONライセンス大喜利〜 アジアの某大国では顔識別ソフトで人民を監視している。さて、この顔識別ソフトにJSONライセンスが使われていた場合、これはライセンス違反であると言えるか?違反である・違反ではない、それぞれに根拠を述べよ… "
スタックオーバーフロー
- κeenさんはTwitterを使っています 「スタックオーバーフローの問答はクリエイティブコモンズのなんかのライセンスで自由に使えたはず。あれを勝手に自動翻訳したサイトを作るのはライセンスの範囲内。問題なのはそれを上位に出すサーチエンジンの方では」 / Twitter
- κeenさんはTwitterを使っています 「> 2018-05-02 (UTC) 以降に投稿されたコンテンツは、CC BY-SA 4.0 の条件に基づいて配布されます。 投稿した内容のライセンスは? https://t.co/Lz5qMSG7Qm」 / Twitter
- 投稿した内容のライセンスは? - ヘルプ センター - スタック・オーバーフロー
- Makoto Kato ︎︎さんのツイート: "OSSってのはソースコードを公開するということがOSSじゃなくて、コードのコントリビュートや意見が開かれているということに使うべきだと思ってるんだよね。zlibとかその点ダメな部類だけど"
- まさみさんは語りたいさんのツイート: "OSSによらず、ソフトウェアのライセンスの話は、プログラミングを小学生から教えるのならば、リテラシとして扱わねばならない話なんですよ。これだけ気軽にweb上に文書を公開できるなら、著作権の知識がリテラシであるように。"
- まさみさんは語りたいさんのツイート: "何かを表現する権利とそれに付帯する注意点は、その表現方法の知識と、本来であれば表裏一体であるべき。これは道徳なんかより遥かに重要。"
- まさみさんは語りたいさんのツイート: "未だに読み書き算盤から基本のリテラシが進歩していないことが、日本の教育の問題だと思う。識字率が高いけど、バランスのいい互恵権利意識(fairness)の普及率はどうだろうか? 社畜の問題も、男女格差の問題も、OSSフリーライドの問題も、同根なのではないか。"
- まさみさんは語りたいさんのツイート: "道徳はそれを書いた人間や文化を背景にした「善悪」を教える教科なので、ここで言いたいfairnessとは真逆ですね。一方が善きことと思っても、他方はそう思わないかもしれない。これだけだと文化を同質に保つ事は出来ても、異文化との交流にとっては障害になります。… https://t.co/DFJPxQjwM9"
- ところてんさんのツイート: "超かっこいいEULAだ。そりゃー同意するよ。… "
- まさみさんは語りたいさんのツイート: "Copyright表記のオリジナル年と名前以外の部分については、つまり更新年のところについては不要な表記なので著作物の一部とみなせるので、つまりそこだけを毎年書き換えても、更新年記述の更新があったことを更新とみなせるから嘘は書いていないことになる。"
- まさみさんは語りたいさんのツイート: "ExFATだ。間違えた。ちなみにExFATのページにはまだ「製品適用にはMSの特許ライセンスを必要とする」旨書かれている。 https://t.co/Gsv0lRDAiA"
- まさみさんは語りたいさんのツイート: "MSがOINに提供したパテントにはexFAT関連の特許は含まれていないが、彼らの「善意の兆し」があるのだろうと期待してSoftware Freedom ConservancyがMSに話をし始めたようだ。 https://t.co/pj22b4ImKy"
- Shinji Konoさんのツイート: "マイクロソフトって「特許で訴えない契約」を強要してた会社なんだよな。結局、特許はクロスライセンスで相殺される方向。薬でも特許が切れるのを待つ的なところがあって。"
- 傳智之さんのツイート: "“知的財産権は,もともとイノベーションを促進するための手段ではある(「保護してあげるから,みんなに公開してくださいね」というのが知財だ)。でも,欧米日の先進国ではそれがいまや,既得権益の保護に使われるだけになっている。” https://t.co/DyBFWEerTC"
- henrichさんのツイート: "TechcrunchのMongoDB記事、タイトルから妙な匂いだなと思ったらやっぱりのhiwa案件(viewが増えてもアレなのでリンクなし)。MongoDBは風評被害で訴えてもいいと思うよ…あと本家Techcrunchのライターも。"
- まさみさんは語りたいさんのツイート: "マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意 @wired_jp https://t.co/Z2fOfGDJE1 まだだ、exFatが含まれていない限り、見せかけだけに過ぎないよ。"
- Thoughts on Microsoft Joining OIN's Patent Non-Aggression Pact - Conservancy Blog - Software Freedom Conservancy
- マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意|WIRED.jp
- Hideyuki Tanakaさんのツイート: "わかっててBSDとかMIT採用してたんじゃなかったのか。やっぱストールマンの言ってたことは正しかったんだなあ(´・_・`) / “redismongodbkafkaaws.html” https://t.co/VI6EnMNvCC"
- Hideyuki Tanakaさんのツイート: "オープンソースなんか広まったらソフト産業死ぬぞ ↓ これからはサービスで儲ける時代。ライセンスも緩くていいぞ。まだこの時代に適応できてへん企業おる? ↓ 結局IaaS持ってるとこしか儲かんないじゃん… ↓ 謎ライセンスでクラウド業者の利用を縛るぞ!フリーライドは許さん! (´・_・`)"
- henrichさんのツイート: "ふむ。『「今更聞けないシリーズ」にOSSの利用に関する法的リスクや係争事例の紹介およびOSSライセンス違反を生じさせないための基礎的な知識の解説が掲載されました。』 https://t.co/0QNkSNSCa1"
- κeenさんはTwitterを使っています 「著作権にあまり詳しくないので他人のコードの一部を拝借してきたときにどういう著作権表示したらいいのかよく分かってない。 元がMITライセンスとかならLICENSEファイルもってきてauthorに自分加えればよい?」 / Twitter
- よんたさんはTwitterを使っています 「@blackenedgold わからないのわかる。「一部のコードはこのかたのでライセンスはこれだよ」みたいな説明もあると良さそう。ライセンス表記をするヘルプ項目いれたり、他の人のコードとライセンスでディレクトリ切ったり、ソースコードコメントに書いたりかなあ。引用サイズによる。」 / Twitter
- ドッグさんはTwitterを使っています 「Rust の標準ライブラリのソースコードを使う場合,ライセンスは Apache 2.0 か MIT だけど,Apache 2.0 で取り込んだソースを大きく変更したら変更内容を書く義務があるのか」 / Twitter
- NPRさんはTwitterを使っています 「Just in: The U.S. Supreme Court, in a 6-2 opinion, found that Google’s use of Oracle's lines of code when creating its Android operating system constituted “fair use” under the copyright laws.」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今回のグーグルvsオラクル著作権訴訟の米最高裁判決は、API以外の用途(同人等の二次創作含む)にも影響がありそうというスレ」 / Twitter
- Charles DuanさんはTwitterを使っています 「Wow--SCOTUS doesn't just rule in favor of Google in @googlevoracle, but says that API reimplementation is fair use *as a matter of law*, meaning that the decision applies to all APIs https://t.co/AwRBGtZ5Pp」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「パブリックドメインのような法的解釈とかではなくオープンソースの定義の自由的にも自由/フリーの4条件にも反する形でオープンソースではなくなったソフトウェア/ライセンスを何と呼ぶか?単純な話でプロプライエタリと分類している。」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「オープンソースにしたいけどこれが困るので一部制限かけます、というのは大昔からプロプライエタリと呼んでいる。気に入らない何かを差別するライセンスはその時々の時代の情勢で出現するので珍しいことではない。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ライセンス違反のGoパッケージは広く出回っている。Goのバイナリは静的リンクされるため、あるプログラムは依存ライブラリのライセンスを継承する必要があるが「ライセンスのないコードを持ってきて適当なライセンスを貼り付けたパッケージ」が存在する。他言語でも同様な例。 https://t.co/3JqepyTklV」 / Twitter
- This Program is Illegally Packaged in 14 Distributions
- tenpoku1000/tenpoku
- tenpoku1000/int_calc_compiler: WebAssembly を中間言語に採用した、32 ビット整数式の x64 JIT コンパイラ
- Github新项目快报(2018-11-26) - 《统计学习方法》的代码实现
- tenpoku1000/first_follow_set: C 言語で文法の First 集合と Follow 集合を出力するサンプルコード
- tenpoku1000/OPML_bookmarks: コンパイラ・IDE・OS・VMM・IME の開発のための OPML・ブックマーク HTML ファイル
- tenpoku1000/jp-books: コンパイラ・IDE・OS・VMM・IME の開発のための和書
- tenpoku1000/Chocolatey.pkg.config: Chocolatey パッケージマネージャの pkg.config XML 設定ファイル
- tenpoku1000/.atom: テキストエディタ Atom の設定ファイル
- tenpoku1000/test: テスト用リポジトリ
- tenpoku1000/windbg_logger: カーネルデバッグ中の Visual Studio 内蔵 WinDbg の通信内容を記録するアプリケーションとデバイスドライバです。
- visualstudio · GitHub Topics · GitHub
- 602+ Best Webassembly Open Source Software Projects
- 電子書籍: x64 UEFI 対応 OS 自作入門 https://tenpoku1000.gitbook.io/tenpoku-book/ | LaptrinhX
- Uefi_freetype_msvc
- 格安のトラックパッド付き無線キーボード – Boot macOS
- Linux - PCのVRAMに直接アセンブリ言語でデータを書き込む。|teratail
- linux - write data in assembly language directly to pc vram
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ソフトウェア部品には意味不明な名前をつけるべきだ。「機能に合った名前」をつけるのはやめよ。なぜなら機能は時間とともに変わるので、人々が騙されるからである。たとえばdjango-htmlminはDjango向けじゃないし、TensorFlow Infra Validatorはインフラをvalidateしない。 https://t.co/6nc5HtIrjl」 / Twitter
- Software Component Names Should Be Whimsical And Cryptic | by Aaron Zinger | Sep, 2022 | Better Programming
Help
- GitHub.com Help Documentation
- Creating a commit with multiple authors - GitHub Docs
- GitHub Deceased User Policy - GitHub Docs
- ブランチの自動的削除を管理する - GitHub Docs
Git
その他
cherry-pick
- 4. cherry-pick【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
- cherry-pickコマンド備忘録 - Qiita
- git cherry-pickで特定のコミットのみを適用する| Gitテックラボ | [Smart]
- SourceTreeでgit cherry-pickを使う | アライドアーキテクツ エンジニアブログ
- [git]複数のcommitをまとめてcherry-pickする - dackdive's blog
reflog
- いざという時のためのgit reflog - Qiita
- `git reflog` についてまとめてみる
- Git - git-reflog Documentation
- [git]git reset を取り消す(git reflogの使い方) - dackdive's blog
- 【翻訳】Gitで様々なUndoを行う方法 - はらへり日記
- Git/git reflog (git resetを取り消す) - yanor.net/wiki
- Git Undo エイリアスを定義する | POSTD
- git log - What's the difference between git reflog and log? - Stack Overflow
docx
- 渋川よしきさんのツイート: "gitの内部構造的に、バイナリファイルの過去のすべてのバージョンをgzipしてローカルに保存していくのと変わらないので、これやるとgit clone数時間みたいなリポジトリができあがる。zipされているxlsxはgzipしてもファイルサイズほとんど変わらないし。git LFSはわかっている人じゃないと/でもつらい… https://t.co/mYRLJW2HP3"
- アーさん@疾風の雑魚プログラマさんのツイート: "WordやExcelが内部的にGit対応を行い、ファイルを保存すると自動的にGithub上のリポジトリにPushされるようになり、世界から日付管理されたExcelファイルを撲滅することができた日には、後世までMicrosoftを称える準備がある。"
- Arseny Tolmachevさんのツイート: "今でもできますけど https://t.co/Cl9b1IPGqV… "
- Gaelan/WordGit: Git diff and merge on Word docs, using Word's native support.
- TortoiseGit/contrib/diff-scripts at master · TortoiseGit/TortoiseGit
- 渋川よしきさんのツイート: "git、正確にはバイナリdiffで保存する仕組みはあるんだけど、まあそれが発動するときはgit gc起こりまくりの極限状態なことが多いはずで、ストレスフルなのは変わりない。"
stgit
- stgit Tutorial - エンジニアきまぐれTips
- まさみさんは語りたいさんのツイート: "stgit使ってるからなあ・・・… "
- Masaki Haraさんのツイート: "アンケート: gitでブランチを切り忘れてmasterにコミットしてしまったとき 1. masterをtopicにリネーム 2. topicにコピーしてmasterに戻ってreset 3. resetしてtopicを作って再コミット 4. その他"
- まさみさんは語りたいさんのツイート: "stgitのあかん所、CC: stableに # が使えんのじゃー。"
cruft pack
- FadisさんはTwitterを使っています: 「Githubがgitの到達不能な変更の保存方法を改良した話。到達不能な変更をpackできるようにして、大量の到達不能なコミットがある場合にストレージを大食いしたり性能を損ねたりする問題を解消したらしい https://t.co/2gsPnr5sHR」 / Twitter
- Scaling Git’s garbage collection | The GitHub Blog
- FadisさんはTwitterを使っています: 「gitではcommitが行われるととりあえずコミット時点のファイルの内容がそのままの形でloose objectと呼ばれるファイルに記録される。コミットが重なっていくとloose objectが増えていく。1コミットで変更される範囲はしばしばファイルのごく一部なので、これは殆ど同じ内容のファイルを大量に生み出す」 / Twitter
- FadisさんはTwitterを使っています: 「git gcが行われると複数のloose objectが1つのpackfileに統合される。packfileはファイルの差分だけを並べて記録した物で、沢山の変更が1つのpackfileに統合される事で変更をストレージ上に効率よく保存できるようになる。auto gcが有効な場合gitはloose objectが溜まってくると自動でgit gcを行う」 / Twitter
- FadisさんはTwitterを使っています: 「gitの歴史が改変されるとしばしば現在の全てのブランチまたはタグから到達できないコミットが生じる。このような変更は到達不能なコミットと呼ばれる。一度到達不能になったコミットでもそのコミットを含めたコミットの列をブランチにpushする等の方法で到達可能なコミットに戻す事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「git gcをすると到達不能なコミットを削除できる。ただ、git gcした瞬間に到達不能なコミットを到達可能に戻すpushがなされると、到達可能なコミットが削除される恐れがある。git gcではこれが起こる確率を下げる為に「いつ頃から放置されている」到達不能なコミットを削除するか指定できる」 / Twitter
- FadisさんはTwitterを使っています: 「gitは到達不能なコミットがいつ頃から放置されているかを知る為にloose objectの最終更新時刻を見る。これは言い換えると、到達不能なコミットを構成する変更はpackfileに統合されてはならない。実際gitは到達可能なコミットだけをpackfileに含めるように実装されていた」 / Twitter
- FadisさんはTwitterを使っています: 「この従来のgitの仕様では大量のコミットが到達不能になると、大量のloose objectが生じる。大量のストレージが無駄に消費され、大量のファイルが同じディレクトリに置かれる事でファイルシステムの性能は損なわれ、全てのloose objectを舐める必要がある操作には時間がかかるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「そこでGithubはgitにcruft packと呼ばれる仕組みを追加した。cruft packは従来のpackfileと同じフォーマットで到達不能なコミットの内容を1つのファイルに統合する。単純なpackfileとの違いはこのファイルとは別にpackfileのどの部分の最終更新時刻がいつかのリストを記録したファイルを作る点」 / Twitter
- FadisさんはTwitterを使っています: 「最終更新時刻のリストがある事で、git gcは到達不能なコミットをまとめたpackfileのどこまでを削って良いかを判断できるようになる。git gc時に—cruftを付けると、そのgit gcで生き残った到達不能なloose objectがcruft packになる。この機能はgit 2.37から使える https://t.co/Ejnb0gUkjy」 / Twitter
- Highlights from Git 2.37 | The GitHub Blog
- ~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう
- Gitハンズオン研修 / Git Hands-on - Speaker Deck
- Git - merge-strategies Documentation
- elfshaker/elfshaker: elfshaker stores binary objects efficiently
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「elfshaker - バイナリファイル用に最適化されたgitのようなもの。多数のバージョン違いのビルド (clangなど、数百MBあるもの) を高速で切り替えるのに使う。 https://t.co/Jry3xNQg42」 / Twitter
- Windows 10 - Using Git Bash With TMUX.md
- Gitea - Wikipedia
- Gogs
- リリースプロセス | Yarn
Git
OSDN
- 「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
- 「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
- 「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
- 「Git 2.6」リリース | OSDN Magazine
- 「Git 2.5」がリリース | OSDN Magazine
- 「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
- ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
- 「Git 2.0」リリース | OSDN Magazine
- バグ修正が中心のリリースとなる「Git 1.9.3」が公開される | OSDN Magazine
- 1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
- 「Git 1.8.5」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
- xdelta - Wikipedia
- こっそり始めるGit/GitHub超入門 - @IT
- Git
- git/git: Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
- libgit2
- libgit2/libgit2: The Library
- 渋川よしきさんのツイート: "git gcが内部でバイナリサイズのサイズ縮小で使っているアルゴリズムはこれかな?これをクリーンルーム実装しない限り、gitを非GPL v2にするのは難しいのでは。v3にしてくれないかねぇ。 https://t.co/2P1PCsxKV1"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "今のGnuPGはgpg-agentと通信すれば任意のアプリケーションから使えるようになっているので昔よりは扱いやすいはず"
- アトラシアン、Gitクライアント「SourceTree for Windows 2.0」リリース。UI改善、高速化、Git Virtual File Systemサポートなど - Publickey
- Introduction · Tig - Text-mode interface for Git
- jonas/tig: Text-mode interface for git
- .gitについて - Qiita
- 渋川よしきさんのツイート: "大学でgitを教えるかどうか、議論があるけど、あれのオブジェクトモデルはOSのファイルシステムをユーザランドで実現して、新から旧のスナップショットへのリンクを持っただけの素直な実装なので、Goならわかるシステムプログラミングを授業で扱ってくれたら一挙両得でお得ですよね #ステマ"
- ブラウザ上で完結するGit組み込みエディタ作っている - mizchi's blog
- ファイル更新に耐性のあるテキストタグ手法を考える - .mjtの日記復帰計画
- 高梨陣平さんのツイート: "Gitのメインな機能のみを500行のPythonで実装して学ぶとても便利な記事。 さらにHNのほうではGitの中身を学ぶための参考情報がこれでもかと紹介されている。Git以外の似た記事のまとめも https://t.co/ZbbGpYR6AT… https://t.co/tIEj1aX50t"
- danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here)
- Hacker News 100さんのツイート: "Write Yourself a Git (2018) https://t.co/G0XX7ql6iV (https://t.co/y0Hyhl4vxU)"
- Write yourself a Git!
- Write yourself a Git (2018) | Hacker News
- GitHubのプッシュ障害をほぼゼロにしたProject Cyclop
- Taku KudoさんはTwitterを使っています 「Google のPiper/CitC のエモさがあまり知られていないみたいなので紹介。クラウド上の単一コードツリーが CoW のファイルシステムとしてマウントされ、リビジョン番号(+開発者+作業領域名)が一意のディレクトリにマップされる。分散ビルドや自動テストがこの上で動く。 https://t.co/Nb43wPUDkc」 / Twitter
- コラム - グーグルのクラウドを支えるテクノロジー | 第20回 Googleのソースコード管理システム ― Piper/CitC|CTC教育サービス 研修/トレーニング
- Taku KudoさんはTwitterを使っています 「Piper/CitC の元論文。5年前なんですね。https://t.co/ZMSKLFIyBm」 / Twitter
- Why Google Stores Billions of Lines of Code in a Single Repository | July 2016 | Communications of the ACM
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Eden - Facebook (Meta) が内部向けに開発していたソースコード管理システム。Mercurialをベースにしているが、数百万ファイル+数百万コミットの巨大リポジトリにもスケールできるらしい。サーバ (mononoke) はRustで書かれている。 https://t.co/Blg5qHS5Re」 / Twitter
- facebookexperimental/eden: EdenSCM is a cross-platform, highly scalable source control management system.
脆弱性(Windows)
- FadisさんはTwitterを使っています: 「GitをWindowsで使っている場合にローカルの悪意あるユーザが他のユーザに任意の処理を実行するように仕向ける事ができる脆弱性(CVE-2022-24765)を修正したGitのセキュリティフィックスが公開された。修正は現在保守されている全ての古いバージョンに対しても提供される https://t.co/eEppYGwcnr」 / Twitter
- [ANNOUNCE] Git v2.35.2 and below for CVE-2022-24765 - Junio C Hamano
- FadisさんはTwitterを使っています: 「gitはカレントディレクトリから親に当たるいずれかのディレクトリに.git/configがある場合、そこから下がgitの管理下にあると判断する。一方WindowsのCドライブ直下は初期設定では一般ユーザ権限で誰でもディレクトリを掘れる。Cドライブ直下に.gitを掘るとその下の万物がgitの対象になる」 / Twitter
- FadisさんはTwitterを使っています: 「gitの設定の中には設定された文字列がコマンドとして実行されるものやフックのスクリプトが含まれている為、 攻撃者がC:\.gitを掘って実行させたい処理を仕込むと、他のユーザがgitで対応するコマンドを叩いた時に、そこが他のgitリポジトリの中でなければ攻撃者が用意したコマンドが実行される」 / Twitter
- FadisさんはTwitterを使っています: 「Windowsではgitコマンドを直接叩かずにGUIアプリケーション等に裏でgitを叩かせるのは珍しくなく、こうしたアプリケーションはディレクトリがgit配下なのを見つけると追加の情報を漁りに行きがちなので攻撃者が用意した処理を容易に踏む」 / Twitter
- FadisさんはTwitterを使っています: 「修正版ではカレントディレクトリがgit管理下かどうか確認する為に上へ辿っていく過程でディレクトリの所有者が変わった場合、そのディレクトリをgit管理下に無いと判断するようになる。この脆弱性の詳細とアップデートが困難な場合の対処法はgithubのblogで解説されている https://t.co/nR2E4h5Iwo」 / Twitter
- Git security vulnerability announced | The GitHub Blog
内部構造
- Amazon.co.jp: エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する eBook: 河村聖悟: Kindleストア
- Git の仕組み (1) - こせきの技術日記
- やさしいGitの内部構造 - yapcasia2013
- 内部構造から見るGit - Qiita
- Git の内部データ構造 - SSSSLIDE
- Git の内部構造を知っていたら、リモートリポジトリへアクセスできないホストへ差分を適用できた話(実話) - Qiita
- Gitのリポジトリの中身をなるべく正確に理解する | To Be Decided
- Git のコマンドだけでなく、その仕組みを学ぶ
- Gitの基礎知識をまとめたよ - tasuwo blog
- Gitを支える内部構造についての話 - Timers Tech Blog
- 「GitHub トレーニングチームから学ぶ Git の内部構造」のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/
- Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。 · DQNEO起業日記
- [Git].git/indexのデータ構造を詳しく調べてみた · DQNEO起業日記
- git graphを使ってターミナルで Git のツリー構造を表示する | ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
- » Gitの最低限必要な基礎知識
- 参加レポート【GitHub トレーニングチームから学ぶ Git の内部構造@名古屋】 - ton-tech-ton
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「あとで読む: gitの新しい sparse-checkout機能で使われる "sparse index"技術の詳細。Indexはgitのステージングで使われる重要なデータ構造だが、巨大なツリーをcheckoutすると非常に重かった。Sparse indexでは、各ファイルではなくディレクトリをblobのかわりに参照できる。 https://t.co/Q6fnudDVeD」 / Twitter
- Make your monorepo feel small with Git’s sparse index | The GitHub Blog
VFS for Git(ProjFS, GVFS)
- WalkingCatさんのツイート: "it looks like GVFS (Git Virtual File System) has been renamed to ProjFS🧐"
- GVFS: Git at Enterprise Scale
- Microsoft/GVFS: Git Virtual File System: Git at Enterprise Scale
- GVFS/Protocol.md at master · Microsoft/GVFS
- Releases · Microsoft/GVFS
- RavenFile | Windows Weekly 558: 150 Bottles of Ranch Dressing on the Wall
- 米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開 | OSDN Magazine
- Makoto Kato ︎︎さんのツイート: "SDのレポジトリにはSLM時代 (Windows 2000 RTMまで)のデータ入ってないから、言ってること間違ってるよ。 https://t.co/Yms96KiRhz"
- 大規模リポジトリの問題を解決するGit Virtual File System
- Gitのスケーリング(と、その背景) | プログラミング | POSTD
- SATO Naoki / さとうなおきさんのツイート: "WindowsのソースがGitに移行。350万ファイル、300GB、開発者4,000人、1,760デイリービルド。GVFSのおかげ。 The largest Git repo on the planet https://t.co/22nMZ9j6OH"
- The largest Git repo on the planet | Brian Harry's blog
- MicrosoftがWindowsのコードリポジトリをGitに移動
- 「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan
- Microsoft、Windowsの開発におけるGitの活用状況を説明 | マイナビニュース
- Where is GvFlt filter driver source code? · Issue #5 · Microsoft/GVFS
- いぐぞー!! ✈️ 旅するプログラマーさんはTwitterを使っています: 「単一製品で、地球上で最大のGitリポジトリはWindowsのソースコードを管理するリポジトリ。 1リポジトリに350万ファイルが入っており、容量は300GBにもなる。ブランチ数は440。約4,000人のエンジニアが関わっている。 https://t.co/noVWx3V0Sk」 / Twitter
- The largest Git repo on the planet - Brian Harry's Blog
- いぐぞー!! ✈️ 旅するプログラマーさんはTwitterを使っています: 「git pullとか、さすがに300GBのソースコードをダウンロードしてくるわけじゃなく、GVFSという専用のシステムを使っているとのこと。 必要な部分のコードを動的にダウンロードすることで開発を行っているようです。」 / Twitter
- 佐々木⋈和守さんはTwitterを使っています: 「@igz0 VFS for Gitへ改名だとか。(GNOMEのと被るので)」 / Twitter
- microsoft/VFSForGit: Virtual File System for Git: Enable Git at Enterprise Scale
- Microsoft、「GVFS」を「VFS for Git」へ改名へ - ソフトアンテナ
LFS
- 大容量ファイルもGitで管理。 Git LFSの使い方
- git-lfs/docs at master · git-lfs/git-lfs
- 過去のコミットでgit LFSを使うように歴史改変をする - 簡潔なQ
- すらりん日記 » Blog Archive » Git LFS を使ってみる|No:4390|すらりん日記
- 渋川よしきさんのツイート: "git lfsのファイルロックの仕様がわからん。.git/lfs/lockcache.db というファイルができる。ロック・アンロック時にHTTPのリクエストをサーバーに飛ばしている。リモートとローカルというモードがありそう。わからん。"
- 渋川よしきさんのツイート: "で、これロックしたところでだれがこの状態を見て「このファイルを編集しちゃダメだよ」って言ってくれるのか。そしてどうやってリモートとこのステータスを共有するのか。"
- 渋川よしきさんのツイート: "なるほど。lock対象にすると全部がreadonlyになるのか。"
- 渋川よしきさんのツイート: "あーわかった。積極的にはロック情報を取りに行かないのかもしれない。"
- 428Hさんのツイート: "git-lfs が 2.x だと認証を拾ってくれない気がする。 1.5.6 だとすんなり通る。 たぶんこれと同じ症状。 https://t.co/F946bdlsNZ"
- Git LFS on Windows requires credentials to be cached · Issue #1763 · git-lfs/git-lfs
- fu-jinさんのツイート: "git lfsは失敗する。というかもう失敗に終わった感がある。… "
- squirrelsさんのツイート: "この間ついにsouce treeが見限っていたような。 本家がバグありのまま更新止まってたしね。… "
- beepcap@エビからくり民(成年済)さんのツイート: "git lfsはそのアイデアが出回り始めた頃は期待してた。 まさか、lfsを追加してないgitからpushするとリポジトリ全体が崩壊するとは思わなんだ"
gitattributes
- .gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ - podhmo's diary
- Customizing how changed files appear on GitHub - GitHub Help
gitignore
- Git - gitignore Documentation
- github/gitignore: A collection of useful .gitignore templates
rebase
- あのコミットをなかった事に。git rebase -i の使い方 – karakaram-blog
- git svn rebase で conflict したときの解消手順 - 日曜プログラマがダラダラ書く
- Esewvi LoveさんはTwitterを使っています 「git squashとrebaseでいつもハマって、めんどくさいからgit push -f でごまかす」 / Twitter
- yoh2さんはTwitterを使っています 「せめて --force-with-lease にして😖」 / Twitter
filter-repo
- git filter-repoってなんぞ - Qiita
- Gitの履歴のメールアドレスを一括変更 (git-filter-repo) - Qiita
- git-filter-repo/INSTALL.md at master · newren/git-filter-repo
- newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)
- git-filter-repo(1)
switch/restore
- git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
- Git 2.23.0のswitchとrestoreについて - DEV
- git switchとrestoreの役割と機能について - Qiita
- Git - git-restore Documentation
- Git - git-switch Documentation
- Git - Gitの基本
git worktree
- git worktreeを使ってみる - Qiita
- ブランチの切り替えをしなくてよくなるコマンド git worktree がすごい! - Qiita
- 複数ブランチの同時並行作業にはGit Worktreeを - astamuse Lab
- git worktree についてのメモ - Webdelog
- worktree - [Reference/Git] ぺんたん info
- git worktreeで複数ブランチを並行させて作業する - いろいろ備忘録日記
- git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う - アジャイルSEの憂鬱
- Goリポジトリでgit worktreeは使えるか. gitの比較的新しい機能としてworktreeがあります。普段利用する機会はなか… | by Masaki Yoshida | Medium
- ワークツリーとインデックス|サル先生のGit入門【プロジェクト管理ツールBacklog】
- まさみさんは語りたいさんのツイート: "この問題、実は切実。確かにある程度のgotoはレビューしやすい差分ができるのでwelcomeなんだけども、後で最適化のためのパッチも作って欲しい。… "
- Urabe, Shyouheiさんのツイート: "個人的には「diffが小さくなるから」という理由によりgit以降でgotoは復権しつつあると肌感覚で感じるんだけど、どうなんだろうな。ちゃんと調査してみると面白いかも"
- まさみさんは語りたいさんのツイート: "個人的には原則として、機能追加とコードの最適化は別パッチにして欲しい。但し機能追加が完全な関数実装の変更を伴う場合は一緒にして欲しい。この当たり微妙な書き方だけど・・・。"
- まさみさんは語りたいさんのツイート: "あー、splitdiffはhunkレベルに分割してくれないのか・・・。"
- まさみさんは語りたいさんのツイート: "git add -pで手動でhunkに分けながらcommit"
- まさみさんは語りたいさんのツイート: "どうもkconfigに怪しい所があるのでうまく行くパターンと行かないパターンをgitに放り込み、hunk毎に別コミットにした上でgit bisectしつつカーネルビルドとテストを繰り返している。"
- まさみさんは語りたいさんのツイート: "gitのデータベースだけシンボリックリンクにして、複数の異なるバージョンをチェックアウトできないだろうか・・・。"
- Hiroaki Nakamuraさんのツイート: "git worktreeというサブコマンドで出来るらしいですよ。 https://t.co/IBtaqaj1gv… "
- Multiple working directories with Git? - Stack Overflow
- Hiroaki Nakamuraさんのツイート: ""Git - git-worktree Documentation" https://t.co/PuTHA6F6Dj さっきまでこれ知らなくて、gitの複数ブランチを並べて見たいときにgitのワークスペースディレクトリをまるごとコピーして片方ブランチ切り替えとかやってたんですが、これを使えばさくっと出来たんですね。"
- Git - git-worktree Documentation
- まさみさんは語りたいさんのツイート: "カーネルのgitが4つぐらい入っていて無駄すぎたので助かる。"
merge
- Kazuho OkuさんはTwitterを使っています 「圧倒的merge派。git logが綺麗でうれしいことはないけど(ツリーをたどりつつ、当該コミットで変更の理由を見ればそれで十分だから)、PRレビューしたあとにrebaseされるとレビューした文脈が消えるのが辛すぎる / https://t.co/msl9Yy5rQ9」 / Twitter
- あなたはmerge派?rebase派?綺麗なGitログで実感したメリット - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
- Kazuho OkuさんはTwitterを使っています 「ツリーが複雑になるのが嫌ならsquash mergeすればええねん」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「歴史改変」って言い方するなら、自分ひとりしか知らないツリー(ブランチ)の改変は好きにやったらいいねん。誰にも迷惑かからへんし。でも、PRレビューとかやったあとのやつを改変するのは危険。他のひとに迷惑がかかる」 / Twitter
blog
- cron から自動で git push する [Tipsというかメモ]
- git pushで本番環境に“自動デプロイ”できる環境を作ってみよう! | vdeep
- gitのコミットの記法 - Fixstars Tech Blog /proc/cpuinfo
- git grep を使う - Fixstars Tech Blog /proc/cpuinfo
- Github を Windows で利用する(Git GUI編): 小粋空間
- git入門 (全22回) - プログラミングならドットインストール
- Gitで特定のcommit idを指定してcheckoutする方法
- Git で現在チェックアウトしているコミットのID | そんなこと覚えてない
- Gitのインラインdiff (word-diffの進化型) - quattro_4's diary
- TortoiseGit で git add -p 相当できた
- Gitのdiffで差分の場所をメソッド/関数名で表示させる - 理系学生日記
- GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
- Windows 10の開発環境を整えた - YAMAGUCHI::weblog
- 本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
- Git 2.x シリーズの 6 つの素晴らしいフィーチャー | Atlassian Blogs
- Gitのリモート操作を5倍から50倍高速化するには | Yakst
- ブランチ、タグを指定してgit cloneする|DIGITAL SQUADブログ
- 「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
- apt-get upgrade gcc considered harmful - NyaRuRuが地球にいたころ
- 本の虫: git submoduleを含むレポジトリをGitHub Pagesで公開するときのsubmoduleのURLはhttpsでなければならない
- Kazuho's Weblog: Git で全ブランチから検索
- 本の虫: GCCのgit移行が難航中
- gitのrebaseでsquashをワンライナーで | κeenのHappy Hacκing Blog
- globalのgitignoreの設定をdotfilesでやるようにした - 脱力系日記
- gitでアレを元に戻す108の方法 - TIM Labs
- git logでソースのdiffを見る - 誰にも見えないブログ
- bare repositoryの初期化時に入り込んだ余計なファイルの削除 - 誰にも見えないブログ
- commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox
- 過去の Git コミットのコミッタを変更するには - Corredor
- Kazuho's Weblog: git blameでプルリクエストの番号を表示する
- gitで2つのリポジトリを混ぜる戦略を考える - golden-luckyの日記
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「強制的に共有させるような仕組みを作るとセキュリティー上の問題も発生するだろうし、これくらいが落とし所なんだろうなぁ / 1件のコメント https://t.co/TPYdzttmoN “チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社” https://t.co/VAsGejhr9v」 / Twitter
- チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社
- Gitワークフロー設計について - 電通国際情報サービス TechBlog
- git init したらメッセージが表示された (init.defaultBranch, 2.31.1) - いろいろ備忘録日記
- How to manage Linux passwords with the pass command | Enable Sysadmin
News
- “master”は不適切? デフォルトブランチ名の変更に対応した「Git for Windows」v2.28.0 - 窓の杜
- 「Git for Windows 2.29.0」が公開 ~セットアップ時にデフォルトブランチ名を設定可能 - 窓の杜
- プログラムの実行時間を99%短縮した「たった1行のコード」とは? - GIGAZINE
- 「Windows Terminal」「Sublime Text 4」連携を追加した「Git for Windows」v2.32.0 - 窓の杜
- 「Git for Windows」のシェルが「bash 4.4」から「bash 5.1」へ ~Vista対応も終了 - 窓の杜
- 「Git 2.35.2」が公開 ~2件の脆弱性を修正 - 窓の杜
- バージョン管理システム「Git」にセキュリティ上の脆弱性、Git for Windowsユーザーやマルチユーザー環境利用者が取るべき対処法は? - GIGAZINE
- 「Git for Windows」v2.37.2が公開、対応OSはWindows 7以降に - 窓の杜
- 「Git for Windows」v2.38.0が公開 ~新コマンド「Scalar」を導入 - 窓の杜
infoQ
- Facebookの大規模で高速なリリース方法
- Git2.17は移動したコードに対する差分表示やオブジェクト検索機能が向上した
- Git 2.18がGitプロトコルバージョン2のサポートを追加
- diff, branch、grepなどが改善されたgit 2.19
- ワークフローとパフォーマンスを改善したGit 2.20
- トポロジの保存とインタラクティブなりベースが可能になったGit 2.22
- MicrosoftがWindowsのコードリポジトリをGitに移動
- Git 2.26でプロトコルバージョン2がデフォルトに
- Git 2.29でSHA-256の実験的サポートを導入
- GitKraken開発者のHamid Shojaee氏に、Git GUI開発時の経験について聞く
OSDN
- 分散バージョン管理システムGitの使い方入門 | OSDN Magazine
- Gitを使いこなすための20のコマンド | OSDN Magazine
- Git 2.10リリース、表示の改善や細かい設定強化などが行われる | OSDN Magazine
- 「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
- 「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
- 「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
- 「Git 2.6」リリース | OSDN Magazine
- 「Git 2.5.2」リリース、軽微な修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.5」がリリース | OSDN Magazine
- 「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.3」がリリース、リモートリポジトリ側でチェックアウトしされているブランチへのプッシュが可能に | OSDN Magazine
- 「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
- ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
- 1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
- 分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
- 認証ヘルパ機能や細かい機能強化が加えられた「Git 1.8」がリリース | OSDN Magazine
- 「Git 2.14」リリース、細かな変更が多数加えられる | OSDN Magazine
- 「Git 2.16」リリース | OSDN Magazine
- 「Git 2.17」が公開 | OSDN Magazine
- 「Git 2.19」リリース | OSDN Magazine
- 「Git 2.20」リリース | OSDN Magazine
- 「Git 2.21」リリース | OSDN Magazine
- 「Git 2.22」が公開 | OSDN Magazine
- 「Git 2.23」リリース、「git switch」や「git restore」コマンドを実験的に導入 | OSDN Magazine
- 「Git 2.24」公開、複数の新機能が導入される | OSDN Magazine
- 「Git 2.35」が公開 | OSDN Magazine
POSTD
- コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD
- モノリシックなバージョン管理の利点 | プログラミング | POSTD
- GitトラブルをGetしてしまったら:バージョン管理のお話 | POSTD
Qiita
- gitでシンプルなデプロイ環境を作る - Qiita
- AdventCalendar - git bisect で問題箇所を特定する - Qiita
- Git blameを使って効率の良い犯人探し(w - Qiita
- インデントコミットで真犯人がわからなくなった場合の git blame - Qiita
- 気をつけて!Git for Windowsにおける改行コード - Qiita
- Git コマンドまとめ - Qiita
- Gitでやらかした時に使える19個の奥義 - Qiita
- detached HEAD から脱出する方法を git の内部構造から探る - Qiita
- gitで文字列検索、git grepとgit log -Sがとっても便利 - Qiita
- git grepでディレクトリを限定して検索 - Qiita
- git diff -bとgit diff -wの違いを調べた - Qiita
- git-lfsでコンフリクトしたらどうなるか - Qiita
- Git リポジトリの内容を zip ファイルにする - Qiita
- 【Git】ブランチの切り替えとかプルとか出来ないときの対処法 - Qiita
- 基本的なGitコマンドまとめ - Qiita
- ブランチ切って更新してマージするまでの流れ - Qiita
- git configをプロジェクトによって使い分ける - Qiita
- GitでVisual Source Safeの使い勝手を再現する!ロック機能 - Qiita
- gitのremote urlを変更する(レポジトリ移行時) - Qiita
- git tagの使い方まとめ - Qiita
- Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita
- Githubのリポジトリからファイルを削除 - tanaka's Programming Memo
- git最強のオプション filter-branch - Qiita
- Git ファイルの履歴を完全に削除する
- あのコミットをなかった事に。git rebase -i の使い方 | karakaram-blog
- git reset --hard の復元 - Qiita
- まだ git push origin するときに current branch 名を入力して消耗しているの? - Qiita
- Git で変更を patch ファイルにする / patch コマンドで適用する - Qiita
- [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
- [git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita
- git tagの使い方まとめ - Qiita
- GitコミットメッセージにMarkdownを使えるようにする - Qiita
- Gitで日本語長文のdiffをとる方法 - Qiita
- Git Subtree 事始め - Qiita
- git-subtree移行メモ - Qiita
- git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する - Qiita
- GitHub Desktopで新規リポジトリ作成後、Push/Pull/同期エラーが出たときの対処 - Qiita
- GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
- git gcの限度設定 - ゲームエンジニアな日々
- git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば
- Git LFS をちょっと詳しく - Qiita
GitHub
- Setting your username in Git - User Documentation
- Setting your email in Git - User Documentation
- Taeung/git-training: Don't think about git, just do git
- rgburke/grv: GRV is a terminal interface for viewing git repositories
- 瑣末u 🗹さんのツイート: "javascript実装のgit。ほう。ブラウザでも動作 / “isomorphic-git · A pure JavaScript implementation of git for node and browsers!” https://t.co/RSQhQv23Rq"
- isomorphic-git · A pure JavaScript implementation of git for node and browsers!
- isomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!
Twitter
その他
blame
- SODA Noriyukiさんのツイート: "cvs には blame はなくて「cvs annotate」なんだけど、少なくとも1999年の10月には、NetBSD 関係の chat で「cvs annotate」のことを「cvs blame」と呼んでたし、解説されなくても意味が通りました。1999年10月はsvnやgit… https://t.co/ZqtuAGmtrV"
- _さんのツイート: "SVN も svn blame だけど、どこらへんに由来するだろう"
- SODA Noriyukiさんのツイート: "この辺の話は、オッサン達にはジェラルド・M・ワインバーグの「プログラミングの心理学」のエゴレスプログラミング関係の記述で広まってる。名著なので若者にも読んで欲しい(最近の版の翻訳の質について悪い評判があるのが気になるけど。昔の版だと訳者は別の方) https://t.co/Db45ZlpKc6"
- _さんのツイート: "ちなみに一連の blame についての話は SRE 本に `Best Practice: Avoid Blame and Keep It Constructive` という項目があったことで呟きました。人を blame するのはやめよう。… https://t.co/z0we6tGJCq"
- Atsushi EnoさんはTwitterを使っています 「質問の意図はよくわからないけどgit blameしたらcommit出てくるのでそこから辿って意図を調べるのには十分だったかな…コードに書いてあってもいいけど邪魔な時もあるしコメントが適切に更新されないこともある(そしてそれをコードレビューで検出するのはきびしみある)ので一長一短」 / Twitter
- qwerty2501さんはTwitterを使っています 「コードでなぜそうなってるか説明したいときにcommit logでその説明を書くって人にそれで開発ちゃんと回せるのか聞きたいんだけど だれに聞けばよいのだろう」 / Twitter
- qwerty2501さんはTwitterを使っています 「@atsushieno git blameだとcommit後にファイル内の別のところを変更してフォーマッタかけると影響でてそれをcommitしてしまうとcommit logが隠れてしまいますよね。 あとファイル移動してcommit前にそのファイルに更新かけてしまうとrenameじゃなくてdelete/addになってしまって後で追うのが難しくなるかなって」 / Twitter
- qwerty2501さんはTwitterを使っています 「@atsushieno それと単純にチームメンバーがgit の履歴見ない文化だったりするとなぜそうなってるかが伝わらずその後の改修に影響を与えるリスクがあると感じてるのでそういう場合もコメントに書いて見られないよりはマシな状態にしてます。 コメントメンテされないよねってのはそれはそう」 / Twitter
- wataさんはTwitterを使っています 「へえええ、こんな機能が。後からPrettierみたいなスタイルフォーマッター入れるとblameが使い物にならなくなる問題解決じゃん https://t.co/wOVanqwCR0」 / Twitter
- Viewing a file - GitHub Docs
bisect
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「bisect がちゃんと機能するようにいい感じにコミットしてるの、えらい」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「コミット粒度の問題とか、開発ブランチで常にコンパイルが通るようにしておくとか、意識すべきことがそこそこある」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「より正確には「テストが実行可能なように」か」 / Twitter
- Miura HidekiさんはTwitterを使っています 「それ。あと、bisectがうまく動くようにテストが書いてあるってのも追加で」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「1st parentが常に本流だ、という運用ができない人に、mainブランチのコミット権限渡したらダメ」 / Twitter
- 非実在naka akiさんはTwitterを使っています 「そいや(よく知らんのだけど)、過去ブランチ(名)情報を消しちゃうgit文化だと、どの支流を辿るべきかを機械的に決定できる可能性がかなり減って、つまりbisectしづらい…ような気がするんだけど、違うんだろうか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「コマンドラインからgit使うマンだけど、bisectはgit bisect使わずに手動でコミットチェックアウトしてコード動かすことのが多いな」 / Twitter
- 非実在naka akiさんはTwitterを使っています 「@kazuho あーそうやって判別してるんですね…。 mainかあ。俺よりエライ人が変なマージしない人だった経験が無い人生だったorz」 / Twitter
- FadisさんはTwitterを使っています 「gitに提案されている新機能「確率論的bisect」について。git bisectはある時点で正常で今壊れているコードがいつ壊れたのかを二分探索で探す機能だが、必ず再現するわけではない不具合を調べる場合、1度正常に動いてもそこまでは正常という確信が持てないためうまく機能しない https://t.co/nrkuBM08NL」 / Twitter
- FadisさんはTwitterを使っています 「確率論的bisectでは現在のcommitが正常か異常かをgitに伝える際に、その判断にどの程度自信が持てるかを0.0以上1.0以下の値で指定する。gitは壊れている範囲を二分探索で絞り込むのではなく、疑いを晴らせない範囲を重点的にサンプリングして一番怪しいcommitを絞り込む」 / Twitter
- FadisさんはTwitterを使っています 「この変更の作者は1.0の自信を持てる場合(=通常のbisect同様決定論的に絞り込みが可能な場合)とそうでない場合の実装を可能な限り共通にするように実装を行なっているが、その結果決定論的なbisectの挙動が以前と変わってしまっている点がまずい、という指摘がなされている」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「bisectで濡着をかけられないように可能な限り細かくコミットを切る事だけが大事で他はそれを実現する為の方法論でしかない。ともかく全てのコミットは俺の無罪の証明の為にある。」 / Twitter
scalar
- FadisさんはTwitterを使っています: 「git 2.38がリリースされたらしい。git 2.38から新しいコマンドscalarが同梱されるようになる。scalarでcloneしたり既存のリポジトリをscalar registerするとgitに最近追加された性能に大きく影響するオプションがまとめて有効になる https://t.co/Za43Ri3hWC」 / Twitter
- Highlights from Git 2.38 | The GitHub Blog
- FadisさんはTwitterを使っています: 「scalarで有効になるBuilt-in filesystem monitorはgitにリポジトリ内のファイルの変更を監視させる。これが有効な場合gitは全てのファイルを比較しなくても変更されたファイルを知る事ができる為、沢山のファイルを抱えるリポジトリのgit status等が顕著に速くなる」 / Twitter
- FadisさんはTwitterを使っています: 「Multi-pack indexはpackfileのファイルの数を増やしても性能が落ちない新しいpackfileの保存方法を有効にする。Commit graphはコミットの列を辿る必要がある場合に高速に辿れるようにする追加の情報を記録したファイルcommit-graphを作るようにする」 / Twitter
- FadisさんはTwitterを使っています: 「Scheduled background maintenanceはgit gcやgit fetchを裏で行うデーモンを動かすようになる。fetchが定期的に行われる為リモートにしかないコミットが大量にあってfetchに時間がかかる状況が回避される。gcが裏で行われる為auto gcが必要と判断されてもユーザが叩いたコマンドをブロックしなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「Partial cloneはgit fetch時にコミットの情報とその接続だけをダウンロードする。実際のデータはcheckout時にそのHEADに必要な物だけをダウンロードする。使われていないブランチや過去の限られた期間に巨大なファイルがコミットされていたような場合にそれを避けてcloneする事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「こうしたgitを快適にするための機能はgitのバージョンアップで次々追加されているが、その多くは個別に有効にする必要があり、gitリポジトリを最新のgitで性能が出る設定にするのは意外とめんどくさい。そこで「現在のgitで最も性能が出る設定」を一発で行う為にscalarは用意された」 / Twitter
users
@fadis_
- Fadisさんのツイート: "gitに唯一guiが欲しくなる瞬間がある。大和西大寺駅みたいになったgit log --graphを目の当たりにした時だ"
- Fadisさんのツイート: "gitプロトコルv2: gitの通信は「通信路を確保する方法(http?ssh?)」と「通信内容の表現方法」の2層で構成されているが、後者についてGoogleが提案している新しいプロトコル。v2ではクライアントが関心の無いブランチをサーバでフィルタしてfetchできる。git-2.18から使える https://t.co/I1es9C2UOQ"
- Git Has A New Wire Protocol Yielding Much Greater Performance - Phoronix
- Fadisさんのツイート: "ローカルに転がっているgitリポジトリを今すぐgitwebで見たくなった時は、git instawebでgitwebを動かすためのhttpdが上がってきてブラウザが開いてそのリポジトリをgitwebで見れるようになる。git instaweb --stopしないとhttpdが上がりっぱなしになる https://t.co/3zqarBV1cR"
- Git - git-instaweb Documentation
- Fadisさんのツイート: "で、従来git instaweb時にgitが呼び出そうとするhttpdはapacheかlighttpdかmongooseかplackup(Perlモジュール)かwebrick(Rubyモジュール)だったけど、新たにPythonのモジュールhttp.serverにも対応したらしい https://t.co/lvKyQey3Z4"
- FadisさんはTwitterを使っています: 「gccのsvnからgitへの移行が今週末にも完了するらしい。gccのリポジトリをgitに移す試みは2018年からなされているが、20世紀から続く巨大な歴史相手に既存のツールではRAM 64GBでも足りずgcc移行ツールが新規に作られる、gitでの解釈が悩ましい歴史が発掘される等難航していた https://t.co/W7pmpA2kro」 / Twitter
- It Looks Like GCC's Long-Awaited Git Conversion Could Happen This Weekend - Phoronix
@shibu_jp
- 会社員さんのツイート: "@shibu_jp `git checkout -` で前のブランチに戻れますよ"
- 渋川よしきさんのツイート: "github、まちがって自分でマージボタンを押してしまって、revertコミットPRを作る機能を使ってもどしたんだけど、それだと最初に出そうとしたPRがマージ済みだと判定してしまうので再度PR出すのができなかった(ので歴史改変して完全になかったことにした)"
- 渋川よしきさんのツイート: "githubのsquash and mergeするとハッシュが変わっちゃう?git pullしてgit branch -dで消すときにハッシュが違うと、違うブランチ扱いになって強制削除じゃないとダメになるのかな・・・"
- INADA Naokiさんのツイート: "squash はまとめた別コミットを作るのでハッシュ変わりますね。1コミットだけのプルリクをハッシュ変えずにマージしたいなら rebase and merge 使うのかな。 master が1つでも進んでたら rebase もハッシュ変わるので、 -D になれるしか無いかと。… https://t.co/4OHb6teyDZ"
- INADA Naokiさんのツイート: "Github上でマージ後にプルリクのブランチを消して、git fetch methane --prune して、 deleted branch があったら git branch -v して git branch -D するという習慣を付けてます。もう少しうまくやりたい気持ちはある。… https://t.co/4YrVReKx3p"
- 渋川よしきさんのツイート: "git rebaseでコンフリクト →修正しているうちに乗ってきて、rebase中なのを忘れて作業してコミット(detachヘッダー発生) →git checkout →コミットが虚空に消える"
@msdmairitan
- Masaru Iritaniさんのツイート: "Windows ソースコードが Git に移行しました。計画を最初に聞いた時には夢物語のように思えましたが、日本の開発チームでもあっという間に Git が当たり前になったように感じます。 https://t.co/9ZYv3gvwRZ"
- Masaru Iritaniさんのツイート: "因みに Git の前は Team Foundation Server ですらなく、Source Depot と呼ばれる内製の集中型バージョン管理システムを使っていました。社外の豊富な情報が活かせるのも Git の大きな魅力です。"
- Masaru Iritaniさんのツイート: "GVFS で Windows のリポジトリを複製中です。Git が導入されてから開発ツールの更新も早くなったので、嬉しい反面追い付くのが大変です。"
@blackenedgold
- κeenさんのツイート: "コミット、ほぼ -mでやってる。むしろ複数行に跨らないといけないのはコミットが大きすぎるから分割しろって習った。"
- κeenさんのツイート: "そういえば世の中にはコマンドラインからgitを使わない人がいるらしいですねって言おうとしたけどgitって-m付けなかったらデフォルトでエディタが立ち上がるんだっけ。"
- κeenさんのツイート: "commit前にgit diff --cachedしてた"
@kazuho
- Kazuho OkuさんはTwitterを使っています 「規模というより、正確にはブランチの構成の複雑度によるんじゃないかなぁ。squashは特に、コミット粒度が大きくなって元の変更の意図が曖昧になるので、必然性がない限りやらないほうがいいと思う」 / Twitter
- はむこさんはTwitterを使っています 「色々言われて「大規模 OSS で cherry pick と revert がしにくくなるので、メンテナが泣いちゃう」は非常に理解できた。 僕も割と泣く係なんですが、隕石級確率の泣き案件のために、毎日の commit コストを上げるとのは、チーム全体の機動性が下がって生産性への影響があるかなというイメージでした。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、なぜpr単位でcherry-pickしたいかっていうと、master以外にもリリース用のブランチが(場合により)複数あって、バックポートが大量にあるからなんだと」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「github flowで開発してる分にはrebaseもsquashもなくて大丈夫だと思う。first-parentだけ辿ることは大抵のgitコマンドで可能だし。フローが違うと、、、(ツイートはここで途切れている)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「PRレビューがしやすいように、PR作る段階でコミット群が汚いなら整理してもいいと思う。やっちゃダメなのは、PRレビューが始まった後にforce pushとかrebase。文脈が消える」 / Twitter
- Kazuho Okuさんのツイート: "まさか-mで一行コミットログとかしたことのない真面目クンなの???"
- Syohei YOSHIDAさんのツイート: "git commit -mでエディタを立ち上げないというより, みなさん git commit -vで差分を見ながらコミットメッセージを書かないのかしら ?"
- Kazuho Okuさんのツイート: "git checkoutで別のブランチにうつるときに、submoduleのバージョンも切り替えてくれるハックってないのかな"
- hkobaさんのツイート: ".oO(… --recurse-submodules …?)… "
- Kazuho Okuさんのツイート: "ありがとうございます!!!!! gitをアップデートしながら… "
- Kazuho OkuさんはTwitterを使っています: 「プルリク、たいていmainブランチのHEADよりも古いのをフォークしてるけど、そういうなのを手元でレビューする時は git diff -r $(git merge-base HEAD main) とやると、共通祖先とのdiffが見れる。よし覚えた(いままでgit logして手で探してた)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「git diff -r main... で良いらしいです https://t.co/58qekCMO1o」 / Twitter
- 鷹羽さんさんはTwitterを使っています: 「たぶん triple-dotを使うと良い場面 https://t.co/zvA2BQfHX5」 / Twitter
- git diffコマンドで比較する時のダブルドット(..)とトリプルドット(...)の違いとは? | Yakst
- Kazuho OkuさんはTwitterを使っています: 「ちなみに、こいつの反対 git diff ...main も超絶便利で、今いるブランチ切ってからmainに入った差分を見ることができる」 / Twitter
histric
histric-1
- Ryou Ezoeさんのツイート: "非プログラマーのためのgit入門書、割と切実に啓蒙のために出版されてほしいし、実際私が書いてもいいんだけれど、gitを効果的に使うためには、プレインテキストで書く、CLIツールを使うといった作業も出てくるので、果たしてこれをどうすればいいのか。"
- にゃおきゃっとさんのツイート: "git diff で --color-words オプション付けると単語単位でdiffしてくれるのか!!!!めっちゃ便利!!!!!行単位じゃないから本当に変更点だけが分かりやすく出る!!!!もっと早く知りたかった!!!!"
- くまぎさんのツイート: "ふははは、貴様には git submodule init --update git submodule update --init のどっちが正しいか定期的にわからなくなる呪いをかけた。"
- なかのん&マジックさんのツイート: "バージョン管理システムってGUI化すると面倒すぎて使えたものではない印象がある。基本的には各アプリがそういう機能を内蔵するなり、連携するなりして自動化しないとあかんのだろうなと(そして意味が分からずに使ってもらえないオチ)。"
- 水島宏太さんのツイート: "実名は挙げませんが、プログラミング能力が高くて、コンピュータ・サイエンスの分野でとても高名な偉い人でもgitほとんど使えないか使いこなせない人ときどきいるんですよ。そういう人の肩の上に乗っている自覚があるので、たかがツール一つでそういった方々を馬鹿にするとか恐れ多くてできないです。"
- 水島宏太さんのツイート: "もちろん、情報系学生がgit触れないのが主題というのは理解してますが、git触れないこと程度のことを馬鹿にするってのはそういうのとたいして変わらないと思ってます。"
- qwerty2501さんのツイート: "git使ってるとここからここまでのcommitを一つにまとめたものを一つのcommitとして見れる単位が欲しくなる"
- vyv03354さんのツイート: "changesetのidは内容や更新日時などをもとに生成される(改竄防止の為) その情報の一部として「親changesetのid」も含む(途中だけ差し替える攻撃を防ぐため) なので途中を変えるとそれ以後も必然的に再計算が必要 gitも同様の仕様だったはず。分散バージョン管理では避けようがないのでは… https://t.co/t7AbIGY9ON"
- ドッグさんのツイート: "Git で 4b825dc642cb6eb9a060e54bf8d69288fbee4904 は特別なコミットハッシュで,最初のコミットの前の空のツリーを指すというのを初めて知った"
- ドッグさんのツイート: "特別なコミットハッシュというか,空のツリーだから常に同じハッシュになると言ったほうが正しいのかな(よく分かってない)"
- クニワッさんのツイート: "そうだと思います。オブジェクトの型ごとに prefix がつくので、先頭に tree でバイト数でみたいな感じになりますが、後続の内容が空なので一意になるはずです。https://t.co/SnjiyWYkYF にわかりやすい作成方法が載ってました。… "
- Is git's semi-secret empty tree object reliable, and why is there not a symbolic name for it? - Stack Overflow
- ドッグさんのツイート: "分かりやすいリンクありがとうございます.なるほど,first commit のツリーの sha は空だから固定値になるけれど first commit オブジェクトの sha は他の諸々が考慮されて別の値になるという感じですね… "
- あずりえるさんはTwitterを使っています: 「検索すると色々なことができることがわかるが、如何せん難しすぎる。 (コミットメッセージを上書きする方法、リモートにあるブランチ名を強制的に書き換える方法、プッシュを取り消す方法など)」 / Twitter
- nhoriguchiさんはTwitterを使っています: 「リリース用のタグは git-tag -a オプションで annotate tag (タグオブジェクト) 付きにして、ちょっと仮のタグを打ちたいときは -a なしにするのがよくある運用じゃないかな。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「git の GUI frontend はボタンとかメニューには、(git xxx)の様に対応するコマンドを書いてほしい。何を言ってるのかわからんのじゃ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Gitで、特定のコミットにおける特定のファイルの中身を表示する / 1件のコメント https://t.co/eIlTIibqL4 “git commands - How can I view an old version of a file with Git? - Stack Overflow” https://t.co/XvuO10xxR1」 / Twitter
- git commands - How can I view an old version of a file with Git? - Stack Overflow
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「git format-patch... まさに今欲しいコマンドじゃないか!」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「コミットをきれいにするために歴史を改変する文化はよくわからない。」 / Twitter
- tomoyaさんはTwitterを使っています 「違うちがう。本当に綺麗な人は、綺麗にしようとしてるんじゃなくて、息を吐くように普通にコミットしたら自然と綺麗になっているんですよ。生産性とか関係なく、単純にスキルレベルの話ですね。」 / Twitter
- yoh2さんはTwitterを使っています 「履歴をありのままに、それこそコミット直後の push 前に気付いた typo 修正のような fixup 的なものまで記録して、履歴の追いにくさははツールでカバーというのが理想なんだろうけどあいにくツールもそれを扱う人間もそこまで賢くないからまあまあ見れた形に直してる。」 / Twitter
- yoh2さんはTwitterを使っています 「あと、PR/MR 直前の rebase はそれとは違う理由でやってる。 コンフリクト起こしてるから直してと連絡受けて作業するのはロスがでかい。」 / Twitter
- ドッグさんはTwitterを使っています 「過去の履歴も含めて全てのテキストを git grep するには git rev-list --all と組み合わせれば良いのを知った https://t.co/N07vFEsV67」 / Twitter
- How to grep (search) committed code in the Git history - Stack Overflow
- Takashi KawasakiさんはTwitterを使っています 「gitの一番良いのは、とりあえず何も考えずにgit initしておけばいいということだと思う。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「これ今更聞けないGit入門的な質問だと思うんですが、Gitってあるコミットのコミットハッシュが同じだったらそれ以前の歴史も全部常に同じだと言えるんですっけ?確かに昔の歴史書き換えたらそれ以降のコミットも書き換わりますよね普通」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@nullpo_head 同じですね」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「理解し難いのは、デフォルトでcloneが--recursiveになってないこと、そしてsubmoduleがdetachedになる事。僕に言わせれば、内部設計こそ良くても、UI設計では間違えられるところを全部間違ってる。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
- 2014-onward.pdf
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SSHの公開鍵は、任意のデータを署名するのに使える。これは2019年リリースの OpenSSH 8.0から追加された機能で、ssh-keygenを使って署名・検証ができる。SSHはPGPよりもずっと普及しているし、Git 2.34からcommitをSSHで署名できるようになる。またGitHubは事実上の鍵配送だ。 https://t.co/5WFdAc74j3」 / Twitter
- It's Now Possible To Sign Arbitrary Data With Your SSH Keys
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、GitHubで各ユーザのSSH公開鍵が閲覧可能なのは意外と知られていない。 たとえば Linus Torvaldsの公開鍵は: https://t.co/WZIRwMJJz6」 / Twitter
- https://github.com/torvalds.keys
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Gitでよい commitメッセージを (英語で) 書くには: - 題名の後は1行あける。 - 題名は50桁以下。命令形にし、句点は入れない。 - 本文は72桁幅に。 - 説明には what (何が変わったか) と why (なぜ変わったか) を入れる。how (どう変えたか) はさほど重要ではない。 https://t.co/bKRdVPIVmj」 / Twitter
- How to Write a Git Commit Message
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「あとで読む: Gitデータベースの内部・詳細解説。Gitは基本的に分散グラフデータベースと見なすことができるが、Gitのcommitグラフは一般的な「グラフ」とはあまりにも違うため、いわゆる汎用グラフデータベースとは異なるアプローチがとられている。 https://t.co/7AhoUYrioW」 / Twitter
- Git's database internals II: commit history queries | The GitHub Blog
- Masaki HaraさんはTwitterを使っています: 「知っている人を増やしたいので何度も言うんですが、 git add -N で新規ファイルの存在だけ登録したあと git add -p で個別の差分を見ながら登録するのが便利なのでこの2つはぜひ覚えましょう」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「ところでworktree,かなり便利なのにそんなに知名度無い気がするからみんな使いましょう、ブランチ毎にフォルダを作って同時にチェックアウトする機能です」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「git,数年おきにめっちゃ便利な新知識を仕入れるイベントが起こる 何年もかけてbisect, add -p, worktree, triple dotを知っている...」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「そして.gitがないとgit管理下じゃないと勘違いするスクリプトが減ってほしい」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「最近覚えたものとして他にもHEAD@{1}とreflogもあった merge消すみたいな大事以外では、前いたコミットどれだったっけなってときに便利」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「あと考古学やるときに便利なのが git blame --reverse と git log -S と git log -G」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「削除された行の原因コミットはblame reverseで取れる。特定のキーワードに関連する変更を探るには git log -S / git log -G が使える」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「どうやって判断するのがいいんだろう? git log fileとかして、操作対象のファイルがgit管理下にあるか確かめるのが一番なのかな」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「gitコマンドには落とし穴が多い。たとえばシェルスクリプト中では git diff HEAD "$(REF)" と書くのは良くなくて env -i get diff HEAD "$(REF)" -- と書いたほうが良い。(REFがファイル名とみなされる可能性)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「gitを使ってUnixの設定ファイル群を管理する方法。 alias dotfiles='git --git-dir=/home/user/.dotfiles --work-tree=/' のようなエイリアスを定義しておけば、ルートディレクトリ(/)以下の任意の設定ファイルをgit管理下における。この方法はいいかも。 https://t.co/U8WX3NjXKs」 / Twitter
- Dotfiles Management - mitxela.com
- 𝘮𝘢𝘴𝘶𝘪 💙さんはTwitterを使っています: 「@mootastic ファイルシステム上の危険なファイル (e.g. ~/.netrc, ~/.aws/credentials) をうまく管理する方法を知りたかったりします。」 / Twitter
- Git - リベース
- Git - タグ
- Git - Git as a Client
- Git チュートリアルとトレーニング | Atlassian Git Tutorial
GitBook
プラグイン
- GitBookで外部ファイルの読み込み | 技術文書をソフトウェア開発する話
- azu/gitbook-plugin-include-codeblock: GitBook plugin for including file
- 練習問題の解答を折りたたんで表示できないか?(in HTML版) · Issue #63 · dwango/scala_text
- ymcatar/gitbook-plugin-sectionx: A GitBook plugin created for you to separate the page into sections, and add buttons to allow readers to control the visibility of each section
- gitbook-plugin-regexplaceを利用して、ブロックレベル要素でMarkdownを囲む - kmizuの日記
- markomanninen/gitbook-plugin-regexplace: Replace (RegEx) page section texts with given substitutes
- 書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch
- GitbookIO/plugin-mathjax - JavaScript
- gitbook-plugin-japanese-support
- gitbook-plugin-mermaid-2の導入 - Qiita
- mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
- ローカルにGitBookの環境を構築してmermaid.jsをプラグインで導入する | つくるログ
- gitbookのmathjaxプラグインが突如動かなくなる - in neuro
Qiita
- GitbookとGithubを連携して電子書籍を自動Publishする方法 - Qiita
- GitBookローカル開発環境セットアップ - Qiita
- GitBook MarkdownからPandoc+LaTeXで美しいPDFを生成する - Qiita
- [GitBook] GitBookから生成されるPDF・HTMLのデザインを変更する方法 - Qiita
- Gitbookインストール - Qiita
- GitBookでAnkerを使ったLinkのURLを使えるようにする - Qiita
- GitBookで体制図を書きたい - Qiita
- gitbookを使ってみてわかったこと - Qiita
- AsciiDoc入門 - Qiita
- GitBookのPDF出力で日本語フォントをIPAGothicにする - Qiita
- GitBook
- What is GitBook - GitBook
- GitHub - GitBook
- GitbookIO/gitbook: 📝 Modern documentation format and toolchain using Git and Markdown
- mizunashi_mana/TIL/tools/doc-aboutgitbook - 電気通信大学MMA
- Markdown · GitBook Toolchain Documentation
- Configuration · GitBook Toolchain Documentation
- Plugins for GitBook
- autocover | GitBook Plugins
- Introduction · GitBook Starter Kit
- Introduction | 技術文書をソフトウェア開発する話
- 技術文書をソフトウェア開発する話 - GitBook
- GitBook Starter Kit - GitBook
- Can I host my content on GitHub? · GitBook Help Center
- Kindle形式の電子書籍(.mobi)を手動でデバイスへ転送してプレビューする方法 | Thinking Salad
- gitbookで楽々ドキュメント作成
- VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話
- Gitbookで生成したファイルがGitHub pagesに無視される - in neuro
- How to fix HTTP 404 on Github Pages? - Stack Overflow
- ドキュメントは何で書けば良いのか - in neuro
Markdown
その他
- Daring Fireball: Markdown Syntax Documentation
- Markdown標準記法では物足りない開発者のためのMarkdown拡張記法まとめ(CommonMark、GFM、Extraなど) - NotePM
- CommonMark: A Formal Specification For Markdown — Smashing Magazine
- 正しく Markdown を書こうと思った | blog.ojisan.io
- command line - spec - GitHub風味のMarkdownをレンダリングするためのコマンドラインユーティリティはありますか?
- CommonMark仕様に従って、Markdownテキストを作成、解析、およびレンダリングします - wenyanet
- markdown のリアルタイムレンダリングツール markup をリリースしました - Block Rockin’ Codes
- Markdown の Table 記法を CSS で実現する | blog.jxck.io
- Daring Fireball: Markdown Syntax Documentation
- StackEdit – In-browser Markdown editor
- Simplenote
- なぜScrapboxはMarkdownを採用していないのか - 増井俊之
- Kibela キベラ| 人と情報に自由を|個人の力を組織の力にする情報共有ツール
- HackMD - Markdownで知識ベースを共作
- FadisさんはTwitterを使っています 「I❤️LA: 分数、添字、行列、積分等の面倒な表記を伴う数式をテキストで書く新しい言語。このような言語としては従来からLaTeX等があるが、I❤️LAはUnicodeの豊富な数学記号を活用して、一意に解釈できる記法でありながらテキストのままでも読める「数式のMarkdown」を実現する https://t.co/2yD1m5yv6r」 / Twitter
- I❤️LA: Compilable Markdown for Linear Algebra
- 電子計算機の沼さんはTwitterを使っています 「LaTeXが美しいことは認めるが、あんなものは書きたくない 数式以外はもっと楽に記述して変換したいが、Markdownがその答えかと言われると微妙なのが一番の悩み」 / Twitter
- 第709回 CodiMDでMarkdownをウェブブラウザーから共同編集する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- クロスリファレンスとは 「相互参照」 (cross-reference, x-ref, xref): - IT用語辞典バイナリ
- gihyo.jp編集部におけるMarkdown記法 | gihyo.jp
- オールインワンの万能ドキュメントアプリ「Notion」が日本で正式リリース - 窓の杜
- 第704回 高機能でMarkdownや作図もサポートするWiki.js:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 自作マークアップ言語からはじめる自作ブログ
Graphviz
- Graphviz - Graph Visualization Software
- graphviz / graphviz · GitLab
- graphviz / webdot · GitLab
- Graphvizとdot言語でグラフを描く方法のまとめ - Qiita
- Graphviz - Wikipedia
- テキストデータをグラフ画像に変換するツール「Graphviz」ことはじめ | DevelopersIO
- データのビジュアル化を最少の労力で: Graphviz
- Python上でGraphvizを使って綺麗なグラフを描く - プログラミング原人の進化論
- sphinx.ext.graphviz -- Graphvizのグラフを追加 — Sphinx documentation
- graphvizを使ってみる | ぬの部屋(仮)
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「図形記述言語 D2 (Graphvizのすごい版みたいなやつ) がオープンソース化される。ブロック図の記述などに最適。 https://t.co/oIxS1YcTlp」 / Twitter
- terrastruct/d2: D2 is a modern diagram scripting language that turns text to diagrams.
- ドッグさんはTwitterを使っています 「テキスト上でグラフが書きたいだけなら,適当なグラフエディタで描く → Graphviz の形式で吐かせる → dot-to-ascii とかでテキストに変換 が一番楽だと思う.これならレイアウトも勝手にやってくれるし https://t.co/AtWoqfEz55」 / Twitter
- ggerganov/dot-to-ascii: Graphviz to ASCII converter using Graph::Easy
- 1次B-スプライン曲線の制御点列をそのまま利用して2次B-スプライン曲線で1次B-スプライン曲線を近似する - にせねこメモ
- グラフ(ネットワーク)を奇麗に描画するアルゴリズム - mfumiの日記
- JavaScript - Fruchterman-Reingoldというグラフを描画するアルゴリズムを実装してみたが、すべてのノードが描画領域の右下に集まってしまう|teratail
- CiteSeerX — Graph Drawing by Force-directed Placement
- UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
PlantUML
- シンプルなテキストファイルで UML が書ける、オープンソースのツール
- PlantUML使い方メモ - Qiita
- Visual Studio Code で UML を描こう! - Qiita
- PlantUMLの基礎 | tracpath:Works
- PlantUMLの実践応用(シーケンス図) | tracpath:Works
- VSCodeで始めるPlantUML生活 | GMOインターネットグループ 次世代システム研究室
- OSSテストツールを知ろう「PlantUML」 | ハートランド・ザ・ワールド
- PlantUML - Wikipedia
- PlantUMLのレイアウトのコツと指定方法についてのまとめ
- チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ
- PlantUMLのテーマ(思わぬ展開) | フューチャー技術ブログ
Mermaid
- Takashi KawasakiさんはTwitterを使っています 「おや、今までMarkdown Preview Enhanced使ってたけど、GitHub形式の```mermaid しか対応してなくて、面倒なことをしていたんだけど、こっちだとAzure形式の::mermaidもサポートしているのか。」 / Twitter
- 稀Jr.さんはTwitterを使っています 「VSCode に "Markdown Preview Mermaid Support" がありあますね。編集はこれで十分かも。 https://t.co/axch2xz0cw」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@moonmile VS Codeで編集されたMermaidダイアグラムですけど、Wikiの方ではちゃんとグラフィカルに表示される手段があるんでしょうか? …と思って自分で調べてみたところ、一応ちゃんとあるんですね。これは良いなあ…😇 https://t.co/1iMlJIrQXn」 / Twitter
- SimonKenyonShepard/mermaidjs-github-svg-generator: This project allows you to generate and render mermaidJS diagrams and automatically include them in github README files
- 稀Jr.さんはTwitterを使っています 「@nakayoshix chrome だと GitHub + Mermaid 拡張があって SVG 表示してくれたりします。 https://t.co/Hn09aLHs5g ↓の図は見えるはず。 https://t.co/gi6SuQILFw」 / Twitter
- GitHub + Mermaid - Chrome ウェブストア
- COCOAシーケンス図
- Markdownでシーケンス図とかが書けるMermaid記法で業務フローを書いたら意外とイケたので自分なりのコツを紹介してみる | DevelopersIO
- MermaidはどのWebサービスで使えるのか
slideship.com
- slideship.com - Create a slide, ship immediately
- Markdownで手軽にスライドが作成・公開できるサービス「slideship.com」が始動:ニュースリリース|gihyo.jp … 技術評論社
Marp
- Marp - Markdown Presentation Writer
- yhatt/marp: Markdown presentation writer, powered by Electron.
- Markdown スライド作成ツール『Marp』の開発経緯裏話 - Speee DEVELOPER BLOG
- Electron で Markdownプレゼン作成ツールを作って公開するまで - Qiita
- 無料でプレゼンのスライドをマークダウン記法で作成できる「Marp」 - GIGAZINE
- marp - Google 検索
remark
- Remark
- gnab/remark: A simple, in-browser, markdown-driven slideshow tool.
- Home · gnab/remark Wiki
- Remark使い方メモ(Markdown でスライドを作るやつ) - Qiita
- markdown + remark.js + gh-pages でプレゼン資料を公開する - Qiita
- markdownからスライドを作るツールを調べてみた - UNIX的なアレ
- Remark.jsにMathJaxの数式を入れる方法 – はむかず!
reveal.js
- reveal.js – The HTML Presentation Framework
- hakimel/reveal.js: The HTML Presentation Framework
- Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita
- hakimel/reveal.js: The HTML Presentation Framework
Marked
- chjj/marked: A markdown parser and compiler. Built for speed.
- Marked.js で Markdown をクライアント側でパースして表示する - Qiita
- markdownをリアルタイムプレビューするWEBエディタを作ってみました(シンタックスハイライト、サニタイズあり) - Qiita
- 『marked.js』 を使ってブラウザ上で markdown を html に変換する方法 | phiary
- JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
- Marked.jsを使って社内ドキュメントを書きやすくしよう! – cybozu developer network
- node.jsでmarkdownからHTMLを生成する [2014-2-28 17:18]
highlight.js
- highlight.js
- marked.js で変換したコードを highlight.js でハイライト表示する方法 | phiary
- コードのハイライト表示用 JS ライブラリ highlight.js の使い方 - Qiita
- ソースコードをハイライトする軽量ライブラリ、Highlight.jsの使い方
- highlight.jsを言語毎にカスタマイズして使う
- highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研
- highlight.jsを全ての言語に対応させる - ncaq
- ソースコードをシンプルきれいにハイライト!highlight.jsを使ってみた | ぶちねこどっとうぇぶ
- WordPress に Markdown と highlight.js を導入 – アカベコマイリ
markdown-headings
- Markdownの見出しを抽出するツールを作った - EagleLand
- markdown-headings
- 1000ch/markdown-headings: Get headings in markdown.
markdown-it
- markdown-it demo
- markdown-it/markdown-it: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
- Markdown it!
- markdown-it
- markdown-it - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
- Node.jsでmarkdown-itを使ったMarkdown→HTML変換を行う - 情報アイランド
- Markdownをクライアント側でパースする(markdown-it利用) - LionHeart SD BLOG
- Markdown-Itで独自レンダリングする方法 – 踊る犬.netブログ (旧)
blog
- Markdown in 2016 - Hack like a rolling stone
- Markdownに目次(TOC)を表示させる - tsunokawaのはてなダイアリー
- Markdownテキストを整形するAngular Markedとコードをハイライト整形するAngular Highlightjs (1/3):CodeZine(コードジン)
- 【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜
- Big Sky :: GitHub 等で Markdown に画像を貼る時は代替テキストを意識しようと思った。
- k16's note: Markdown原稿をGitHubで管理して本にする仕組みが出版社で導入されないわけ
- k16's note: TeXと10年戦ってわかったこと
- AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch
- 機能紹介 - HackMD
- Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ
- MKDocsを使ってFPGA開発日記の記事まとめページを作り直した - FPGA開発日記
- MarkdownエディタならTyporaが最強であるという話 - FPGA開発日記
- Markdown ブロックの WikiWikiWeb 方式での書式変換 - Tociyuki::Diary
- Markdown ブロックの WikiWikiWeb 方式での書式変換 (その2) - Tociyuki::Diary
- Markdown ブロックの WikiWikiWeb 方式での書式変換 (その3) - Tociyuki::Diary
- 大量のテキストを食っても速い Markdown Editor 作った - mizchi's blog
- MarkdownBuffer の実行時間の計測とパフォーマンスチューニングの余地 - mizchi's blog
- mdbuf v1.0.0: 最高の Mardkown Preview を目指して - mizchi's blog
- Markdown コードブロックの JavaScript を bundle して実行するエディタを作ってみた - mizchi's blog
- MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター - mizdev
- MDsveX - Svelteの中のMarkdownの中のSvelte
- markdownがもっと捗るキーボード設定:全角入力時も記号はなるべく半角になるようにする - Yabu.log
- WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog
- MarkdownエディタTyporaでMarkdownテキストを用いて図を書く方法 - FPGA開発日記
- 自作 Markdown プロセッサベースの blog.jxck.io v2 リリース | blog.jxck.io
- Markdownでスライドを作る、Marpのすゝめ | IIJ Engineers Blog
- GitHubがMarkdown内で数式表記をサポート、TeX/LaTeX構文で記述 - Publickey
- 「GitHub」のMarkdownドキュメントで待望の数式表示がサポート - 窓の杜
- CommonMark v0.28 のイマイチなところ - Islands in the byte stream
Zenn
- 開発者のためのスライド作成ツール Slidev がすごい
- slidevjs/slidev: Presentation Slides for Developers (Public Beta 🎉)
- Markdown を拡張する MDX はドキュメント作成の新たな可能性?
- Pandoc謹製シンタックスハイライト機構Skylighting
Qiita
- Qiita - Markdown記法 チートシート - Qiita
- GitHub Markdown + TeX記法で数式を任意の位置で合わせたい - Qiita
- GitHub Markdown + Tex記法で任意の数式番号を書きたい - Qiita
- GitHub Markdown + TeX記法で数式に空白を入れたい - Qiita
- Markdownテキストでシーケンス図とフローチャートを描く - Qiita
- マークダウン中にコメント行を入れる - Qiita
- Markdown文法まとめ - Qiita
- GitHub Flavored Markdown は何であって何でないか - Qiita
- CommonMark
- CommonMark Spec
- A formal spec for GitHub Flavored Markdown - The GitHub Blog
- GitHub Flavored Markdown Spec
- QiitaやGitHubのコメントで折りたたみ要素を作る方法 - Qiita
- GitHub 上のマークダウンを Travis CI 経由で Qiita に記事として投稿する - Qiita
- 脱ExcelしたいMarkdownテンプレート目次 - Qiita
GitHub
- README.mdファイル。マークダウン記法まとめ | codechord
- markdown-cheatsheet-online
- higuma/markdown_cheat_sheet: Markdown cheat sheet
- markdown-memo/markdown.md at master · owlat7/markdown-memo
- OS作れないマンさんのツイート: "Atomのmakrdown-previewが使っているライブラリを使う手もあるか?https://t.co/vEBD63YBKL"
- gjtorikian/roaster: Turns a raw and crunchy Markdown file into nice and smooth output
- syntax-tree/mdast: Markdown Abstract Syntax Tree format
- github/markup: The code we use to render README.your_favorite_markup
- remark - markdown processor powered by plug-ins
- wooorm/remark: Markdown processor powered by plugins
- EFMarkdown on CocoaPods.org
- EyreFree/EFMarkdown: A lightweight Markdown library for iOS.
- commonmark/cmark: CommonMark parsing and rendering library and program in C
- thlorenz/doctoc: 📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
- joeyespo/grip: Preview GitHub Markdown files like Readme locally before committing them.
- ロボ太さんはTwitterを使っています: 「いつの間にかGitHubのMarkdownが数式をサポートしてた。これまで講義ノートをPandocでHTMLに変換してGitHub Pagesにデプロイしてたのが要らなくなるので助かる。 https://t.co/5UpsARIFEF」 / Twitter
- Math support in Markdown | The GitHub Blog
- ロボ太さんはTwitterを使っています: 「講義ノート、どういう形になるのが「未来的」なんだろうね。昔はLaTeXで書いてPDFで公開するか、HTMLに変換するかしてたけど、今はMarkdownで書いてGitHubにプッシュしたらそのまま読めるようになった。後は図とかを「バネでぶら下がった重り」みたいにDALL·E的に書けるようになれば完璧?」 / Twitter
- DALL·E - Google 検索
Twitter
画像追加
- 電子計算機の沼さんはTwitterを使っています 「記事(markdown)とか書いてるとき,スクリーンショットを撮って,保存してGUIでフォルダに置いて,gitに追加するのが死ぬほど面倒なんですけど,なんかいい方法ないですかね.. githubにCtrl + Vで貼り付けてUpできたりせん?」 / Twitter
- @yosukesand🐗さんはTwitterを使っています 「@Hishinuma_t xwd で出力して、.png に convert とかは?」 / Twitter
- xwd - Google 検索
- 電子計算機の沼さんはTwitterを使っています 「@yosukesand あー.....いけそう? ちょっと検討しますありがとうございます」 / Twitter
- 🍤🐟🦐🍤🦀🔝🌈🍽🇰🇵💻🎣さんはTwitterを使っています 「@Hishinuma_t git hubのissueにMarkdownモドキ書いてgithub wikiにコピペするっていうゴミ手法なら自分のところではやったことがあります(GithubWikiはなぜか画像のctrl+vができねえ)」 / Twitter
- おそろしく速い手刀さんのツイート: "MarkdownコンパイラがGithubと違う動きをする!このMarkdownはクソ!って言うまえに、Github Flavored Markdown という規格がいかに Commonmark から逸脱しているかをな…"
- ( ꒪⌓꒪)さんのツイート: "markdown でコマンドラインのコードハイライト指定する時に ```sh より ```console の方が良いという知見を得た。 https://t.co/PgYsVYYRXy"
- ドッグさんはTwitterを使っています 「Issue や PR に何か stats をコメントするタイプの bot でコメントを適宜更新する必要がある場合,生成する markdown テキスト内に <!-- ... --> で bot 向けの情報を JSON あたりで埋めておくの良さそう」 / Twitter
- 広江 克彦さんはTwitterを使っています 「文中の改行は無視してくれればいいのに、ブラウザが半角スペースとして表示してくれてしまうのはCSSで制御できるのだろうか?」 / Twitter
- yoh2さんはTwitterを使っています 「Markdown もこれなので、そのままでも読みやすいようにと適宜改行を入れてるとレンダリング結果にポツポツ空白が挟まって残念な気持ちになる。」 / Twitter
- yoh2さんはTwitterを使っています 「改行前後の文字種 (行頭の空白は無視) によって空白を入れるかどうか判断するようになるといいのかな。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「脚注をサポートしているmdの実装そのものは、Markdown Extra、Pandoc’s Markdown、Kramdownなどなど、たぶん有名どころがかなりある(ところでCommonMarkの脚注の現状はどうなってるんでしょうか…?)」 / Twitter
- ドッグさんはTwitterを使っています 「ついでに GitHub の markdown の描画のバグも見つけた. a <!-- -- --> この行でなぜかコメントがそのまま描画されてしまう.コメント内の -- を削除すると正しく動くので,コメントのパースのミスかな」 / Twitter
- ドッグさんはTwitterを使っています 「仕様見る限りでは -- は含んで良さそうに見える https://t.co/9rYbYED8fA コメントの中のテキストが <!- で終われないのと -> で始まれないの知らなかった」 / Twitter
- HTML 5.2: 8. The HTML syntax
- ドッグさんはTwitterを使っています 「結論から言うとこれは仕様だった.HTML 5.2 までに仕様変わったのかな? CommonMark の仕様には -- は含んではいけないと明示的に書いてあった > An HTML comment consists of <!-- + text + -->, ...(省略)... and does not contain --. https://t.co/tbbSWAgEvT」 / Twitter
- ドッグさんはTwitterを使っています 「"does not contain --" の後に HTML5 spec へのリンクが載ってるけど,そのリンク先にも -- を含んではいけないとは書いてないので,多分どこかで変わったんだろうなぁ」 / Twitter
- ドッグさんはTwitterを使っています 「HTML 5.1 → 5.2 の間で変わったのか.5.1 では -- は含められない仕様になってた https://t.co/xJzQODmbbv > nor contain two consecutive U+002D HYPHEN-MINUS characters (--)」 / Twitter
- HTML 5.1 2nd Edition: 8. The HTML syntax
- HTML Standard
- ドッグさんはTwitterを使っています 「例えば今回の <!-- -- --> みたいに markdown として不正な文字列に対してレンダラがどう動くべきなのか謎い.今回のだと,テキストの後だと一連のテキストノードとして扱われて,行頭とかだとコメント扱いになってる(コメントの終端が無い扱い?)っぽいのでパーサの気分次第にみえる」 / Twitter
- ドッグさんはTwitterを使っています 「markdown ではリンクのラベルをラベル定義より先に書けるから,そこを正しくパースしようとするとインクリメンタルパースができないのか.例えば [foo][bar] がある時,bar が存在するとリンクにしないといけないし,存在しないと [foo][bar] 全体をただのテキストノードにしないといけない」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Markdownでさ、行頭に書いた「>」を、なんか矢印みたいな意味に解釈しちゃうのか引用でもなんでもない補足的な文に使ってる記事を見るともやっとくるよね。「いやそれ引用じゃなくてお前の文じゃん」って。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「Markdownの仕様と戯れていて気付いたんだけど 空行を空けずに - ハイフン始まりの行があると - 段落をブレークしてリストになる という特別な仕様がある。ただし 番号付きリストの場合は 2. この行はリストを形成せず 1. 「1」始まりでしかこのリスト化が起きない。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「「1」始まりに限定しているのは、たまたま文章が「数字.」の直前で改行されてしまったときの「意図せぬリスト化」を防止するためらしい。 https://t.co/m8gxuLXmhC もし、たまたま行頭に「1.」が来ちゃう文章だと相変わらず壊れるけど、被害は小さくなるはず。」 / Twitter
- GitHub Flavored Markdown Spec
- Render mathematical expressions in Markdown | GitHub Changelog
- matsuu序二段さんはTwitterを使っています: 「Pryrite、名前から勝手にPython実装かと思い込んでいたがgolang実装だった。rubyのpryインスパイアだから、なるほど。」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「pryriteの良さそうな点 * 個々のコマンドを実行した日時が記録される * 個々のコードブロックの出力結果がログとして確認できる * 順番に実行できるほか、任意の場所にjumpして再実行できる * sudo実行時のパスワード入力プロンプトも問題なし * exec で記載のない任意のコマンドも実行できる 最高では」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「公式のREADMEに張り付けられてたデモ動画 https://t.co/vGgCVOHzwZ」 / Twitter
- 1xyz/pryrite: Pryrite, interactively execute shell code blocks in a markdown file
- matsuu序二段さんはTwitterを使っています: 「Markdownに書かれたコマンドを対話型でシェル実行するツール。誤解を恐れずに言えばコマンド実行に特化したCLI版Jupyter Notebook。デモ動画がわかりやすい。これ最高では。Markdownで手順書作ったら順に実行できるぞ! / “GitHub - 1xyz/pryrite: Pryrite, interactively …” https://t.co/CuCkbT0mnW」 / Twitter
- CommonMark Spec
- Markdown Variants
- RFC 7763 - The text/markdown Media Type
- Markdown - Wikipedia
- [GitHub] Markdownの「シンタックスハイライト」に対応している言語一覧
- Markdown の Table 記法を CSS で実現する | blog.jxck.io
Releases
- GitHubのリリース機能を使う - Qiita
- GitHubのリリース(Releases)を削除する - Qiita
- GitHubのAPIを使ってReleaseの最新バージョンを取得する - Qiita
- GitHub Releasesにリリースノートを自動生成する新機能。テンプレートでのカスタマイズも可能 - Publickey
- リリースノート自動生成テクニック - mizdra's blog
reject(CVE)
- Hiroshi SHIBATAさんはTwitterを使っています 「@__gfx__ @bulkneets 「脆弱性じゃない」というのを、https://t.co/jrxvm1HXa2 から reject というのを出すのが良いと思います。油断するとこの CVE id をもとに dependabot が動いたり、期待しない FUD なども出てきます(本当にだるい...)」 / Twitter
- CVE - Common Vulnerabilities and Exposures (CVE)
- FUJI GoroさんはTwitterを使っています 「@hsbt @bulkneets そうそう、dependabotとかが動き出すのを懸念してます。 ほぼメンテされてないモジュールだし、さらにいうとぼくはあまり関係もないのですが、エコシステムに対する攻撃…とまではいかないものの雑すぎるムーブでだるいですね…。」 / Twitter
AlphaCode
- 自動プログラミングAIの「AlphaCode」をDeepMindが発表、競技プログラミングレベルのコード生成が可能 - GIGAZINE
- DeepMindの問題解決型AIが競技プログラミングに挑戦、上位54%にランクイン | TECH+
- Kazuho OkuさんはTwitterを使っています 「面白い。問題とサンプルテストを入力に機械学習で直接答えを予測するやり方と比べて、プログラムを予測させるやり方にどの程度の意味があるんだろう。もし前者の方が精度高いなら、後者を経由するメリットは、人間になり済ます以外の何が残るんだろう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「小さな計算量で解けることがわかってる問題に対して、より優れた予測手段を提供してくれる、というのはあるのかな。実用的かはしらんけど」 / Twitter
- Kinuko Yasuda / 安田絹子さんはTwitterを使っています 「競プロ民(数千時間やってきたとのこと)による AlphaCode についてのコメントスレッド」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「Importantly, the vast majority of the programs that #AlphaCode generates are wrong (Figure 8). It is the filtering using example tests that allows #AlphaCode to actually solve something. Example tests are part of the input (App. F), yet most sampled programs can't solve them.」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「Using example tests is a fair game for comp. programming and perhaps for some of real world backend development. But for much of the real-world code (e.g. code that defines front-end behavior) crafting tests is not much easier than coding itself.」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「The paper emphasizes creative aspects of competitive programming, but from my experience it does involve writing lots of boilerplate code. Many problems involve deployment of standard algorithms: Levenstein-style DP, DFS/BFS graph traversals, max-flow, and so on.」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「Sec. 6.1 makes a point that #AlphaCode does not exactly copy sequences from training data. That’s a low bar for originality: change a variable name and this is no longer copying. It would be interesting to look at nearest neighbor solutions found using neural representations.」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「Let me also dilute these critical remarks with a note of appreciation. AlphaCode uses a very cool “clustering” method to marginalize out differently-written but semantically equivalent programs. I think forms of this approach can become a code generation staple.」 / Twitter
- Dzmitry BahdanauさんはTwitterを使っています 「To sum up: AlphaCode is a great contribution, and AI for coding is a very promising direction with lots of great applications ahead. But this is not AlphaGo in terms of beating humans and not AlphaFold in terms of revolutionizing an entire field of science. We've got work to do.」 / Twitter
- ドッグさんはTwitterを使っています 「AlphaGo で有名な DeepMind が,言語生成モデルを使って競技プログラミングの問題を解くシステム AlphaCode を開発してる.Codeforces の直近の10コンテストで平均程度の成績を出せてるらしい | 'Competitive programming with AlphaCode' https://t.co/r6O65LElBu」 / Twitter
- Competitive programming with AlphaCode | DeepMind
- ドッグさんはTwitterを使っています 「AlphaCode のサイトに行くとコードのアノテーションが見られて,問題文とコードの対応が面白い.トークンごとに生成なのか https://t.co/d6WjrQjtvr」 / Twitter
- AlphaCode
- ドッグさんはTwitterを使っています 「論文の preprint: https://t.co/DXDmcwQtow」 / Twitter
- competition_level_code_generation_with_alphacode.pdf
- ドッグさんはTwitterを使っています 「データセットは 715GB か.さすがに Codex と比べると少ない.生成してるのは Python みたいだけど,データセットには色々な言語のコードが入ってる https://t.co/pHTTFhwTWF」 / Twitter
- deepmind/code_contests
- Jun MukaiさんはTwitterを使っています 「ちょっと前にQuoraか何かで書いたと思うんだが、AIが発達してコード生成ができるようになっても、AIにコード生成させるための仕様記述は必要で、その仕様記述が「プログラミング言語」と呼ばれるだけだと思うんだよね。」 / Twitter
- Jun MukaiさんはTwitterを使っています 「もちろんプログラマという専門職として必要な人数が減ったりするなど業界的な変化はありうるし、プログラミングという活動の意味が激変するかもしれないけれど、プログラマ自体がいらなくなることはないんじゃないかな」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@jmuk AIの癖とかAIの気持ちを知り尽くし短い指示で的確なコードを生成させる、AI遣いと呼ばれる職人が台頭する。」 / Twitter
- IKeJIさんはTwitterを使っています 「@jmuk ユニットテストを書く仕事に戻るんだ。」 / Twitter
- Jun MukaiさんはTwitterを使っています 「@ikeji そうそう、プログラマの仕事はテストを書くだけになったりするかも」 / Twitter
- Shinya KatoさんはTwitterを使っています 「仕様を書くと AI がコードを自動生成してくれる →違うそういうことじゃないんだ!という挙動が発生する →AI に祈りを捧げながら仕様を書き換える試行錯誤がなされる →やっぱり人間がコード書いた方が早いんじゃね?となる ……みたいなとこを考えてた」 / Twitter
Copilot
- プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE
- GitHubのソースコードで学習したプログラミングAI「Copilot」は著作権侵害なのか? - GIGAZINE
- ytakanoさんはTwitterを使っています 「Copilot使ったら、勝手に文章が生えてきてワロタ https://t.co/pJn21Ernet」 / Twitter
- ytakanoさんはTwitterを使っています 「将来的には、プログラミングは「書く」と言う行為ではなくなり、AIという木からなった出来の良いソースコードを「収穫する」と言う行為になります。」 / Twitter
- ytakanoさんはTwitterを使っています 「Copilotの吐き出した文章、権利関係が怖すぎるぞ。」 / Twitter
- ソースコードの続きを自動補完するGitHub Copilotに「著作権で保護されたコードを出力している」という指摘が寄せられる - GIGAZINE
- 「GitHub Copilot」のAIが自動生成するコードはどのくらい安全か? 研究者らが脆弱性を検証:Innovative Tech - ITmedia NEWS
- ついにGitHubのコードで学習したAI「GitHub Copilot」が集団訴訟に直面 - GIGAZINE
- コード補完AI「GitHub Copilot」の集団訴訟をソフトウェアの知的財産権に詳しい弁護士はどう見ているのか? - GIGAZINE
コンパイラ
- Compiler Explorer
- WebAssembly Studio
- WebAssembly/proposals: Tracking WebAssembly proposals
- memory64/Overview.md at main · WebAssembly/memory64
- WebAssembly/component-model: Repository for design and specification of the Component Model
- component-model/FutureFeatures.md at main · WebAssembly/component-model
- TIOBE Index - TIOBE
- The RedMonk Programming Language Rankings: June 2022 – tecosystems
コンパイラ
その他
- OCaml - The OCaml Manual
- Forth思考 ―問題解決のための言語と哲学― — Thinking Forth 0 ドキュメント
- Google Open Source
- Repl.it - Haskell Online Compiler & Interpreter
- x86 and amd64 instruction reference
- opv86
- uops.info - Table
- 身代わり用さんはTwitterを使っています: 「Binary ninja の記事に公開されている『Decompiler Explorer』、decompile 結果の比較対象として Hex-Rays のサンプルまで表示してくれるの神すぎませんかね。。。 これで Ghidra にしか手が届かなかった人も他の decompiler の購入検討をすることができる。 https://t.co/I64gGHhfFS https://t.co/G3bIpyD6p8」 / Twitter
- Decompiler Explorer
- 電子情報通信学会知識ベース |トップページ
- SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ - ppl2017_c4_soh.pdf
- ランタイムシステムについて学ぶ - prog-lang-sys-ja
- 関数型言語の実装のチュートリアル - prog-lang-sys-ja
- 微分方程式と差分方程式(漸化式)
- プレースホルダとは - IT用語辞典
- プレースホルダ構文完全解説
- なぜ属性文法が重要なのか - 言語ゲーム
重点項目
浮動小数点数
その他
- 浮動小数点を利用する際に知っておきたいこと | Japan Developer Support Core Team Blog
- ビットで表す数字の世界~浮動小数点編~
- 浮動小数点数について本気出して考えてみた - 一から勉強させてください( ̄ω ̄;)
- 【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回 | 日経 xTECH(クロステック)
- 浮動小数点数型と誤差
- 浮動小数点計算の基本的事実 – 「浮動小数点数は実数ではない」ということ | POSTD
- 浮動小数点
- 浮動小数点数は実数ではない | プログラマが知るべき97のこと
- 電子工作
- 浮動小数点数型
- 浮動小数点数の内部表現(IEEE)
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
- 浮動小数点数内部表現シミュレーター - instant tools
- PEZY-SC2上における倍々精度Rgemmの実装と評価
- Comparing Floating Point Numbers, 2012 Edition | Random ASCII – tech blog of Bruce Dawson
- Ryu: Fast Float-to-String Conversion
- ちょっとだけ怖い三角関数のはなし
- WDM ドライバーでの浮動小数点の使用 - Windows drivers | Microsoft Docs
- Boost math constantsの変遷記録 - in neuro
- MIMD - Google 検索
- あるRISC-V CPUの 浮動小数点数(異常なし)
- 浮動小数点数の丸めの相対誤差を計算機イプシロンで評価する
言語
JavaScript
単位元
- mod_poppoさんはTwitterを使っています 「JavaScriptのMath.max()が-Infinityを返すことにキレる人は空配列に対するeveryがtrueなことにもキレそうだしx**0が1なことにもキレてそう(偏見)」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これの例も min > max もそうだけど、人々って意外と単位元に無頓着なの?」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「たとえば別の言語だけど Scheme でも (and) って true だし (or) って false だしそれ自体は自然で、 every と any なんて and と or みたいなものよね」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「and や every が対象の項がない場合 true でも false でもなく intermediate 的なものを返すべきだという話なら、まあそれはそれで一理あるけど。」 / Twitter
- mod_poppoさんはTwitterを使っています 「去年の暮れに悪名を轟かせた某記事もreduceに単位元(初期値)を与えない使い方をしていたなあ」 / Twitter
- mod_poppoさんはTwitterを使っています 「a.every(f) && b.every(f) は [...a, ...b].every(f) と等価であって欲しくて、そのためには空配列に対するeveryはtrueを返すべき」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あー面白い。IEEE 754でバッチリ決まらない、近似が必要になるやつ、関数呼出になってれば自分で差し替えて精度確保できるけど、演算子になると無理。で、「** だけ」が、この問題にひっかかるということか」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「見てる: https://t.co/B2jSQh8ZCM "ECMAScript® 2022 Language Specification"。なんてこった、 x ** y の実装は implementation-approximated なのね…。x ** y の出力を実装を超えて合わせようと思っても ** をオーバーライド出来ないから、ソースを手動で Math.pow に変更しないといけないのか。」 / Twitter
- ECMAScript® 2022 Language Specification
- Takuo KihiraさんはTwitterを使っています 「@kazuho そうなんですよ。配列の文字列化が自動で Array#join を呼ぶように、内部で自動的に Math.pow を呼ぶ仕様にしてくれればよかったのに。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira 演算子として定義するなら、そうすべきだった感ありますね」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho https://t.co/erI8H33LgD まだ Stage 3 ですね、提案してみればよいのかな?」 / Twitter
- tc39/proposal-exponentiation-operator: Progress tracking for ES7 exponentiation operator
- petamorikenさんはTwitterを使っています 「@tkihira @kazuho 残念ながら ES2016 で既に入ってますね。 https://t.co/E4PoFyfdAZ ただ互換性的にそこまで問題にならない気がするので提案するのはありだと思います!」 / Twitter
- proposals/finished-proposals.md at master · tc39/proposals
- Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho ご確認ありがとうございます、ちょうど @petamoriken -san にお伺いしようと思っていたところでした!さすがのアンテナ…ありがとうございます。この状態で提案するのは、どこでするのが筋でしょうか。」 / Twitter
- petamorikenさんはTwitterを使っています 「@tkihira @kazuho 公式の Discource がいいかなと思います。 https://t.co/vRzvQ9Guga ふと思ったのですが Exponentiation Operators は BigInt でも使えるのですが、Math.pow はそうではないという仕様になっているので、一筋縄にはいかないかもです……。」 / Twitter
- TC39 - Specifying JavaScript
- Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho なるほど、そうですね、たしかに」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira @petamoriken 仕様理解していないので外しているかもしれませんが bigint の ** は整数演算だから誤差がなく、従って特別扱いで良い気はします」 / Twitter
- petamorikenさんはTwitterを使っています 「@kazuho @tkihira 仕様を見てみたのですが 6.1.6.2.3 BigInt::exponentiate はそのままで 6.1.6.1.3 Number::exponentiate にのみ手を加える形で提案できそうですね。」 / Twitter
- petamorikenさんはTwitterを使っています 「@kazuho @tkihira 正確には 6.1.6.1.3 Number::exponentiate 21.3.2.26 Math.pow の両方でした。 特に大きな互換性やパフォーマンスの問題がなければ入れてもらえると思うので、あとは有用性をいかにアピールできるかですね。 https://t.co/UiIl0sXO9T」 / Twitter
- ECMAScript® 2022 Language Specification
- Shiro KawaiさんはTwitterを使っています 「Oops. Gaucheもバグってた。 https://t.co/ayu1BO7Zz3」 / Twitter
- Fix (abs -0.0) · shirok/Gauche@9a9b635
- 高梨陣平さんはTwitterを使っています 「実数の絶対値を求めるのなんて簡単だろうと思うでしょ? Javaは違うのだよ。Javaは :-) IEEE 754では+0.0と-0.0が別に存在、から色々と面倒な話に。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「One does not simply calculate the absolute value: https://t.co/bwX6nPTvlO Comments: https://t.co/ebPzH0rFJr」 / Twitter
- One does not simply calculate the absolute value / Habr
- One does not simply calculate the absolute value | Hacker News
- mod_poppoさんはTwitterを使っています 「Java関係ねえ、というのは置いておいて、俺が今朝遭遇したのはGHCのabs関数の話だったのでタイムリーだ(俺が困ったのは素朴な実装がNaNの符号を変えてくれない話で、元記事ではそこまでは扱っていないが)」 / Twitter
- JavaScript クイズ解説: NaN === NaN の結果はどうなる?
- mod_poppoさんはTwitterを使っています 「ECMAScriptのstrict modeで変数名に禁止されているのはevalとargumentsで、undefinedとNaNはshadowingできるのだったか」 / Twitter
- JavaScript:float32による小数演算最適化 | ψ(プサイ)の興味関心空間
- ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記
- mod_poppoさんはTwitterを使っています: 「☑️JavaScript(というかJava)のMath.roundは癖があるので他の言語をJSにコンパイルする際にround関数をMath.roundにしてはいけない」 / Twitter
Lua, LuaJIT
- mod_poppoさんはTwitterを使っています 「LuaJIT、負の0を表せないのか?どうなってやがる」 / Twitter
- mod_poppoさんはTwitterを使っています 「もしかして32ビット整数で表せそうな値は整数として持ってるとかそういうやつか」 / Twitter
- mod_poppoさんはTwitterを使っています 「仕様なのかバグなのか、それが問題だ」 / Twitter
- mod_poppoさんはTwitterを使っています 「LuaJITが内部的に32ビット整数を使うかどうかのモードがあって、AArch64ではdual number modeしか選べないようになっているのか」 / Twitter
- mod_poppoさんはTwitterを使っています 「x86_64のデフォルトでは-0がちゃんと-0になるっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています 「LuaJIT, アンダーフローで作った-0はdual number modeでも-0のまま維持されるっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています 「Lua、まさか5.3.xのマイナーアップデートで整数リテラルが64ビットで表現できなかった時の挙動を変えている?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Lua 5.3.1と5.3.2では十進整数リテラルが符号付き64ビットに収まらなかったときはwrap aroundするのに対して、5.3.3以降ではfloatリテラルとして扱われるっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています 「十六進数リテラルは常にwrap aroundするので安心」 / Twitter
- Lua 5.3以降の整数型 - Qiita
- Luaの数値型
- mod_poppoさんはTwitterを使っています: 「Luaのmath.modfはCのmodf関数を使ってないのか。名前詐欺じゃん(Luaのmath.modfはゼロの符号をきちんと扱えていない)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LuaJITのmath.modfはCのmodf関数を呼んでいるっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Luaがmodf関数を使っていないのはmodf{f,l}がC99以降の機能であることと関係してそうだな(Luaは一部の例外を除いてC89縛りをしてる+lua_Number型は普通はdoubleだがfloatでも動くように考慮されている)」 / Twitter
Haskell
- mod_poppoさんはTwitterを使っています 「GHC, x+0.0をxに最適化するのかよ(ゼロの符号を考えたときにこれは正しくない)」 / Twitter
- mod_poppoさんはTwitterを使っています 「GHCではNegativeLiterals+MagicHash下で-0.0##と書いても負のゼロにはならないのか……」 / Twitter
- mod_poppoさんはTwitterを使っています 「GHC, 最適化が有効だと 0.0 * (-1.0) が正の 0.0 になる……。」 / Twitter
- mod_poppoさんはTwitterを使っています 「処理系の演算がIEEE 754準拠かを見極めるには生成コードだけではなく最適化の規則も確認する必要がある」 / Twitter
- mod_poppoさんはTwitterを使っています 「GHCの定数畳み込み、結果が∞やNaNの場合はどうなるんだったかな」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「@mod_poppo ・ゼロ除算を起こす式は定数畳み込みをしない ・(0 / d) でdが負のときも定数畳み込みをしない ようですね 除算では負のゼロを気にしているので考慮漏れでしょうか・・・」 / Twitter
- mod_poppoさんはTwitterを使っています 「加算や乗算のオーバーフローは対策されておらず、最適化が有効な場合は0x1p1023+0x1p1023-0x1p1023や0x1p512*0x1p512/2.0が有限値になる、か」 / Twitter
- mod_poppoさんはTwitterを使っています 「オーバーフローしてできた無限大は0x1p1024扱いされるので、0x1p512 * 0x1p1023 / 0x1p512は最適化で0x1p512になります(0x1p1023ではなく)」 / Twitter
- mod_poppoさんはTwitterを使っています 「https://t.co/JRFushUMwU GHCのIEEE 754準拠状況のまとめを作り始めた」 / Twitter
- IEEE 754 conformance of GHC primitives
- mod_poppoさんはTwitterを使っています 「GHCの-fexcess-precisionオプション、最近まで存在を把握してなかった https://t.co/PO1bVUQrRX」 / Twitter
- mod_poppoさんはTwitterを使っています: 「GHCで0x1p-1074を表示させると5.0e-324と出てくるんだけど、0x1p-1074の真の十進表記は4.94…×10^(-324)なので小数第一位(?)まで出力するなら4.9e-324と出力するべきではないのか」 / Twitter
- mod_poppoさんはTwitterを使っています: 「整数部分(?)だけ表示して5e-324と表示するのはわかる(その辺のJavaScript処理系とかだとこれ)んだけど、小数点以下に最低一桁出力することにこだわるせいで変なことになっている」 / Twitter
- mod_poppoさんはTwitterを使っています: 「まあでも必要な数字を出力した後に後ろに0をくっつけるやつは普通にあるか……(釈然としないけど)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Haskellのbytestringパッケージでは浮動小数点数を文字列化するアルゴリズムとしてRyūを使っている https://t.co/Ij94NIh0A8」 / Twitter
- Implement floating point conversion with ryu by la-wu · Pull Request #365 · haskell/bytestring
- mod_poppoさんはTwitterを使っています: 「textパッケージではGHCのfloatToDigitsの亜種(Burger & Dybvig)を使っているようだ https://t.co/cpeEFFmUO9」 / Twitter
- https://hackage.haskell.org/package/text-2.0/docs/src/Data.Text.Lazy.Builder.RealFloat.html#floatToDigits
Rust
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「今のRustだとNaNをasで整数にキャストすると0, InfだとT::MAX, 1e20とかだとT::MAXになるみたい」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「panicすると思ってた」 / Twitter
C
RISC-V
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「昔、似たような議論をしたのを思い出しました、ご参考になれば... https://t.co/DcMDX6Bnnz」 / Twitter
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「a*b+cと書いて、RISC-Vのg++ で -std=c++11オプションの時FMA命令生成するのってC++の仕様に則ってるんでしょうか...?x86のg++だと分解されて生成された。C/C++の仕様に則ると、FMAが出てくるのは正解?不正解?」 / Twitter
- t3840さんはTwitterを使っています: 「@dev_msyksphinz 最適化オプションによるのではないかと? -O2以上でFMA出た気がしますよ」 / Twitter
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「@t3840 そうなんですけど、FMAとそうでないので厳密には計算精度変わるじゃないですか。それがC++の仕様的に受け入れられるんですかね?」 / Twitter
- t3840さんはTwitterを使っています: 「@dev_msyksphinz 仕様書にIEEE754に準拠しろとは書いてないと思いますよ と言うか、当然だと思って気にしてませんでした… ちょっと調べてみまーす」 / Twitter
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「@t3840 ありがとうございます。LLVM触ってると、バックエンドがナチュラルにFMA命令を出して良いものか、悩んでしまうんですよね...」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「@dev_msyksphinz @t3840 どうも C++ 11 の規約上では double や float などがどう表現されるのかも実装依存と読めるので,特になにも定められてなさそうな気がするのですが,どうでしょうか? > The value representation of floating-point types is implementation-defined. https://t.co/o1so763Ee3」 / Twitter
- [basic.fundamental]
- R. ShioyaさんはTwitterを使っています: 「@dev_msyksphinz @t3840 該当箇所はリンク先の8番です.値の表現方法が定義されなければ,演算時の丸めの指定もなにもできないなと思いました.というか,double は float より精度が高い & 表せる値がスーパーセットになっている,としか定義されてないんですね…」 / Twitter
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「@r_shioya @t3840 ありがとうございます。最適化によりFMAを出力するか分解するかで微妙に計算結果が変わるのは、C++の仕様としては関知しない、ということなのですね。x86のgccが-mfmaオプションをわざわざ用意するのは、その判断をユーザに委ねるためなのですかね。」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「@dev_msyksphinz @t3840 ちょっと値の表現の仕様からは間接的にはそのようだというきはするのですが,その通りですとは言う自信がないです.あと,x86 で fma がデフォルトで出てこないのは,まだ fma が乗ってないマシンもそこそこ現役なので,デフォルトではそれに気を使ってとかもあるかもしれません.」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「@dev_msyksphinz @t3840 過去の似たような話では IA32 の X87 が内部的に 80 bit 精度で値を保持しているので,どのタイミングでメモリに結果を戻すかで演算精度が変わるみたいな話があったのですが,その時は ANSI C(こっちでは IEEE 754 と定められている)に従うために演算毎にストアするオプションがあったきがします.」 / Twitter
- t3840さんはTwitterを使っています: 「@r_shioya @dev_msyksphinz 最初のTweetでは、"RISC-Vでは"というくくりがありましたが、それは何か特殊な話になるんでしょうか? x86-64とは文化が違うとか」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「@t3840 @dev_msyksphinz いま丁度そこを考えていたのですが,x86-64 が途中から fma が入ったのに対して,riscv は最初から入っていたのがあるかもしれません.仕様上は特に fma を使用しても問題なかったとしても,x86-64 では過去のコンパイラと演算精度の一貫を優先したとかもあるのかなとか.」 / Twitter
- Masayuki@FPGA開発日記さんはTwitterを使っています: 「@r_shioya @t3840 ありがとうございます。私もそこを考えていて、RISC-Vの場合はCPUによってハードFMAが無い、ということが考えられなかったのでデフォルトでFMAを出しているのかなという理解でした。x86はCPUシリーズによってとにかくオプション切替が難しそうですから...」 / Twitter
- Akira TsukamotoさんはTwitterを使っています: 「@dev_msyksphinz C言語を使う人の立場と、コンピューターを作る側の視点は違うのでそうなりますよね。 浮動小数演算は演算のたびに丸め誤差がでるので、使う立場からすると言語で計算順番を確定してほしいですが、作る側からすると CPU に依存する可能性がある部分は未定義にしてもらわないと実装で困りますし、、、」 / Twitter
ldexp/scaln
- mod_poppoさんはTwitterを使っています: 「Cのldexpみたいなやつをスクリプト言語で実装する際に x*2^n をやってしまうと|x|<1, n=1024の場合に不必要なオーバーフローで死ぬっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「nを適当に分割してやれば大丈夫かな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「分割が下手だとunderflow時にdouble roundingの危険があるから要注意だな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「ググって出てきたmuslのscalbnの実装がdouble rounding問題を踏んでいるように見えたが、ググって出てきたやつ(fork)は古くて、最新のmuslだと対策されてるっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「まあC11時点だとldexp/scalnのunderflow時に正しい丸めが行われることは要求されてなさそうなので、double roundingしていてもそこまで大きな問題ではないと思うが。一方C23のAnnex FではIEEE 754のscaleBに準拠すること(正しい丸めを行うこと)が要求されるのでdouble roundingだとやばい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「「浮動小数点数小話」は結構よく書かれているので、続編が出てほしい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「6.1.4の開区間の指数部が間違ってる気がするな」 / Twitter
- mod_poppoさんはTwitterを使っています 「glibcの新しいのが出て、C23で追加される浮動小数点数周りの関数が実装されたりしているらしい https://t.co/H6N6ri4V7X」 / Twitter
- The GNU C Library version 2.35 is now available
- mod_poppoさんはTwitterを使っています 「C言語の標準ライブラリーってOSと密接に関係していたり他の言語からも利用されてたりして異質というか、よくある「言語の標準ライブラリー」とは違うよな。何が言いたいかというとC23で追加される関数がLinux以外でいつ使えるようになるかわからないのがアレ」 / Twitter
- nan("is Not-a-Number") - yohhoyの日記
- 浮動小数点数比較マクロ - yohhoyの日記
- sqrt(dx*dx + dy*dy)とhypot(dx, dy) - yohhoyの日記
- Kazuho OkuさんはTwitterを使っています 「Cコンパイラにおける浮動小数点数の最適化 constA * variable / constB を (constA / constB) * variable に変換して constA / constB をコンパイル時に計算するって、一般的にやってくれるんでしたっけ? 何かできない理由があって、やらないんでしたっけ」 / Twitter
- Seiya YazakiさんはTwitterを使っています 「@kazuho C99 でいうところの 5.1.2.3 で示されているような理由でしょうか。 参考: https://t.co/3UEmgGQtxc GCC, clang では -fassociative-math や -funsafe-math-optimizations 等でオプトインできた記憶があります」 / Twitter
- FLP01-C. 浮動小数点式の演算の順序に注意する
- Kazuho OkuさんはTwitterを使っています 「@saiya_moebius ありがとうございます。そのあたりがドンピシャでほしかった情報でした。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C言語の場合はsinとかの数学関数がそもそもIEEE準拠かという問題があって、IEEE754を見に行く前にCの規格を確認するべき、みたいな話がある(Cの処理系がAnnex F準拠ならsqrtとかremainderは正しく丸められることが保証されるけど、sinは保証されない)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
- るふぁさんはTwitterを使っています: 「C言語の仕様書を見てもよくわからなかったのが、 1. double a = b + c + d; みたいなのでb+(c+d)に最適化してもいいのか 2. double a = b + c * d; みたいなのでfma(c,d,b)に最適化していいのか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「昔、LuaJITの作者のMike Pallさんから1の件についてアドバイスを頂いたことがあります https://t.co/NJgBRYADWM」 / Twitter
- Mike PallさんはTwitterを使っています: 「@miura1729 1. No compiler is allowed to make this optimization. Floating-point arithmetic ist NOT associative.」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@LuaJIT Thank you for your advice. I will benchmark over again with your advice.」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「つまり1のような最適化はダメってことですね」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C言語の浮動小数点数は変数に格納されない途中結果を名目上の型よりも高精度で保持することが認められている、みたいなやつはある」 / Twitter
- mod_poppoさんはTwitterを使っています: 「GCCが浮動小数点数の最適化をどうするか、みたいなやつ(FMAのやつは載ってないけどGCCはFMAがあるアーキではガンガンFMAを使う) https://t.co/36PtHcvfu9」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「C/C++での浮動小数点演算に関しては8087以来のクソ仕様&IEEE754ナニソレ的な歴史の中で生きてきたので、演算結果の一致性とかに関してはなんにも信用してないな。SSE2が普及したことで少し気が楽にはなったけど。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 gcc/clangの -ffast-math だとやってくれる (Cの規格外になるけど)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana fast-mathってそういう意味だったんですね」 / Twitter
- mod_poppoさんはTwitterを使っています: 「IEEE 754のRecommended operationsにはsinPi/cosPiがあるし、C言語にもsinpi/cospiが追加されるんだよな。「turn」という呼び方はあまり聞いたことがなかった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Cのscalbnのbnって「bのn乗」の意味なのか?今までbinaryのbだと勘違いしていた(scalbnはFLT_RADIXが絡んでくる方で、2のn乗をかけるやつはldexpだった)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「long doubleの記事に「Windows上のclangはABI (GNU vs MSVC)次第でデフォルトのlong doubleの幅を変える」みたいな話を追記した方が良いかもしれない」 / Twitter
C++
-mlong-double-128
- mod_poppoさんはTwitterを使っています: 「-mlong-double-128を指定してコンパイルしたコードはlong doubleがfloat128になり引数や返り値の受け渡しにSSEレジスターが使われるが、リンクしているlibcはlong doubleがx87だと思っているのでx87のレジスターで引数や返り値を読み書きする。ミスマッチが起こった結果、」 / Twitter
- [C++] gcc 12.1.0 - Wandbox
- [C++] gcc 12.1.0 - Wandbox
- mod_poppoさんはTwitterを使っています: 「最適化なしの方は「引数をそのまま返す関数」のように動作している(long double x=123.4とすると123.4がそのまま返ってくる)。最適化ありの方はGCCが定数畳み込みするので四倍精度で正しく計算された値が返ってくる(引数が定数じゃなくなると最適化なしの場合と同じになる)。」 / Twitter
- 中田真秀さんはTwitterを使っています: 「@mod_poppo ?このオプション、単に128bitアラインだけだと思います。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「@NakataMaho 「パディングを変えるだけ」なのは-m128bit-long-doubleですね」 / Twitter
- 中田真秀さんはTwitterを使っています: 「@mod_poppo ありがとうございます。新しいオプション入ってきたんですね。」 / Twitter
- hidesugar(9)さんはTwitterを使っています: 「俺はただfloat128が使いたかっただけなのに…… -O0 https://t.co/awS3qtOr2K -O1 https://t.co/YJzfHaQW1z」 / Twitter
- mod_poppoさんはTwitterを使っています: 「というわけで、-mlong-double-128は(x86_64 Androidのように)「ディストリが丸ごとそっちを選択」しているような環境じゃないと使い物にならない。float128を使いたいならGCC独自の__float128/libquadmathや、libcサポートが薄いけど_Float128を使う方がマシ。」 / Twitter
- mod_poppoさんはTwitterを使っています 「文脈がよくわかってないけど、totalOrderはNaNを含めて全順序を与えるやつなので、IEEE非準拠な場合でもそういう「NaNのようなunorderedなやつも含めた全順序」が期待されてるのでは」 / Twitter
- 夜糸さんはTwitterを使っています 「std::strong_order を is_iec559 が false な floating-point type に適応したらどうなるんだ…? https://t.co/dV4Je2hxC3」 / Twitter
- [cmp.alg]
- 夜糸さんはTwitterを使っています 「え、これ is_iec559 が false なら全順序関係が成立する前提…? 浮動小数点数型に対する三方比較は std::partial_ordering にしかならないハズなのだけれど……」 / Twitter
- 夜糸さんはTwitterを使っています 「std::partial_ordering::unordered な値のペアに関してどんな std:: strong_ordering の値が帰ってくるんだ」 / Twitter
- Microsoft Visual Studio 2022 and Floating-point to Integer Conversions - C++ Team Blog
- The /fp:contract flag and changes to FP modes in VS2022 - C++ Team Blog
- キノコになりたい🍄さんはTwitterを使っています: 「拡張浮動小数点数型の提案、C++23入りほぼ確してた https://t.co/ewLon1idY3」 / Twitter
- P1467 Extended floating-point types and standard names · Issue #227 · cplusplus/papers
MetaLibm
- mod_poppoさんはTwitterを使っています 「高級言語もいいけど、C言語を置き換えるレイヤーの言語も作ってみたい(具体的にはlibmを記述できる言語を作りたい)」 / Twitter
- mod_poppoさんはTwitterを使っています 「書いたコードに証明がつけられると良いんだろうけど依存型とかに関する勉強が足りない」 / Twitter
- mod_poppoさんはTwitterを使っています 「「libmを記述」について、MetaLibmというプロジェクトがあるのは知っている(けど中身はよく知らない)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「MetaLibm、ちょっと調べたら無茶苦茶強そうなプロジェクトだった」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/igZKzTnvBO」 / Twitter
- MetaLibm: code generators for the libm and beyond
round
- るとさんはTwitterを使っています 「各プログラミング言語において整数の丁度半分の値に対してround関数が返す値: C: 0から遠い方 (nearbyintやrintは指定可能) Fortran: 0から遠い方 (nint) Java系: 正の無限大に近い方 (rintは偶数の方) .Net系: 偶数の方 (パラメータで指定可能) JavaScript: 正の無限大に近い方」 / Twitter
- るとさんはTwitterを使っています 「Scheme: 偶数の方 Common Lisp: ? Emacs Lisp: 実装依存 Go: 0から遠い方 (RoundToEvenは偶数の方) Rust: 0から遠い方 Swift: 0から遠い方 (パラメータで指定可能) Ruby: 0から遠い方 Python: 偶数に近い方 PHP: 0から遠い方 (パラメータで指定可能) Perl: ? Lua: 無し」 / Twitter
- るとさんはTwitterを使っています 「Prolog: 正の無限大に近い方 (SWI-Prologは0から遠い方) Erlang: 0から遠い方 Smalltalk: ? Haskell: 偶数の方 Standard ML: 偶数の方 (toIntは指定可) OCaml: 0から遠い方」 / Twitter
min/max
- mod_poppoさんはTwitterを使っています 「浮動小数点数の min / max https://t.co/9kI1D5nmxM 前にこんな記事書いたけどJavaScriptの可変長引数で0引数の時の話までは書いてなかった」 / Twitter
- 浮動小数点数の min / max - Qiita
- mod_poppoさんはTwitterを使っています 「モノイドとしてのmin/maxの話はこっちに書いた https://t.co/If7llOfCfG」 / Twitter
- Haskellerのためのモノイド完全ガイド | 雑記帳
- Shiro KawaiさんはTwitterを使っています 「「引数に不正確数が混じってても結果が正確であることが証明できれば正確数を返しても良い」とされていて、例えば+inf.0を「DBL_MAXより大きい不正確数」と解釈するなら、(min 0 +inf.0) は正確な0を返せる。 んだけど、正確数はDBL_MAXより大きな数も表せるので、やっぱり+inf.0を単位元にはできない」 / Twitter
- でこれきさんはTwitterを使っています 「ちなみにSchemeだと数値に正確/不正確の別があり、min, maxは不正確数が引数に含まれると結果も不正確数になる(例えば (min 0 -1) => -1で(min 0.0 -1) => -1.0)、かつ、無限大は不正確数でありminの単位元にならないため、 (min) は無限大を返さずにエラーになったりする https://t.co/np2pXjlbZA」 / Twitter
- Revised^6 Report on the Algorithmic Language Scheme
- Kazuho OkuさんはTwitterを使っています 「「0個」以上の数値のminmaxを定義として自然なのは「含まれる数字のどれよりも大きく(小さく)ない最小(最大)の数」で、したがってmin()は+Infinity、max()は-Infinityになるからですね」 / Twitter
- mattnさんはTwitterを使っています 「仕様の理解が十分でなく理由を説明できなかった。 https://t.co/XPj3v2uJZG」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「JavaScriptの変な挙動を見て「知らなかった」という反応をする気持ちがよくわからない。JavaScriptは未開のフロンティアか何かなのか。ちゃんと「仕様の理解が十分でなく理由を説明できなかった」と言ってほしい(?)」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「具体的に言うと昨日流れてきたparseInt(0.0000005)のやつ。これが5になることだけ知っていてもさすがに役に立たない。プログラミング言語に帰納的推論を挑むな。この場合真に必要な知識は「parseIntは引数を文字列にする」と「数値が文字列に変換される際に指数表記が使われることがある」だよ(?)」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「「仕様を知らなかったんだから知らなかったでいいだろ」みたいなコメントが付いていてまあそれはそうなので補足しておくと、仕様を知らなかったと言うのはいい。具体的な変な結果ひとつに対して「知らなかった」とだけ言うのが無意味だということを言いたかった(?)」 / Twitter
- mattnさんはTwitterを使っています 「なお Math.max には「引数が与えられなかった場合は -Infinity が返されます」、Math.min には「引数が与えられなかった場合の結果は Infinity です」と書かれています。」 / Twitter
LLVM
- mod_poppoさんはTwitterを使っています 「昔のLLVMにはfnegがなくて-0.0-xで代用していたのか(入力がNaNの場合を考えるとfnegは組み込みの演算子である必要がある)。LLVMにfnegが導入されたのはバージョン8のようだ」 / Twitter
- mod_poppoさんはTwitterを使っています 「入力がNaNの場合の他、丸めモードが-∞方向に変更されていた場合も-0.0-xと-xで挙動が違う(x=-0.0の場合)」 / Twitter
- mod_poppoさんはTwitterを使っています 「LLVMは今でも-0.0-xに対してfnegを出力するっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています 「LLVMの浮動小数点数に関する最適化のスタンスがまとまってるドキュメント、どっかにないのかな。sNaNは考えないとか丸めモードの変更は考えないとかそういうやつ」 / Twitter
- mod_poppoさんはTwitterを使っています 「あるいは呼び出す際のオプション次第なのか」 / Twitter
「十進文字列をparseして最近接丸めした時に正確に意図した値が得られる」ような文字列化
- mod_poppoさんはTwitterを使っています 「浮動小数点数を正確に十進表記するための簡便なアルゴリズムってなんだ。多倍長整数を使える、コストは重要視しない、という条件でなるべく単純なものがいい」 / Twitter
- mod_poppoさんはTwitterを使っています 「Dragon4が古典的なアルゴリズム(多倍長整数を使う)で、GrisuとRyūが比較的最近っぽい?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Dragon4の論文のタイトルは「How to print floating-point numbers accurately」で、ググるとPDFを拾えるようだ」 / Twitter
- mod_poppoさんはTwitterを使っています 「「正確に」と言うか、「十進文字列をparseして最近接丸めした時に正確に意図した値が得られる」ような文字列化」 / Twitter
- mod_poppoさんはTwitterを使っています 「そういえば以前JavaScriptのparseIntが話題になった際に「浮動小数点数の表記が範囲によって指数表記になったりならなかったりするのはどうなんだ」みたいな意見を観測して俺は「1e300に対して300文字以上出力されるのが嬉しいものなのか」と思ったわけだが、」 / Twitter
- mod_poppoさんはTwitterを使っています 「Rustは1e300に対してデフォルトで300文字出力する側の言語だった https://t.co/mJctAg9087」 / Twitter
- Rust Playground
- mod_poppoさんはTwitterを使っています 「Rustは当世のプログラマーの間で人気のイケイケ言語なのでそのデフォルトであるという事実には重みがあるし、Rustは浮動小数点数の十六進表記に標準対応しないので浮動小数点数の十六進表記はオワコン」 / Twitter
- mod_poppoさんはTwitterを使っています 「書き忘れた条件として、「なるべく短い表記を生成する」というのもある。念頭にあるuse caseは「ソースコードを生成するコンパイラー(トランスパイラー)で出力部に使う」なので、数百桁のリテラルを出力するのは望ましくない。」 / Twitter
文字列化
- 浮動小数点数の文字列化(基数変換)
- mod_poppoさんはTwitterを使っています: 「浮動小数点数を文字列化するアルゴリズムを実装してみたはいいけど非正規化数に対応してないなこれ」 / Twitter
- mod_poppoさんはTwitterを使っています: 「アルゴリズムの理解を深めれば、対応するのはそんなに難しくない気もする」 / Twitter
- mod_poppoさんはTwitterを使っています: 「雰囲気で非正規化数に対応させてみたけど、思った結果が出てこないな」 / Twitter
Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数の曖昧な比較」の適切なやり方はケースバイケースなので、言語標準でそういう関数や演算子が提供されていても考えなしで使ってはいけない。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「浮動小数点数から文字列への変換。Ryuというアルゴリズムがあるのか / 1件のコメント https://t.co/7yZxeJ5xiu https://t.co/OrG1TP67qr」 / Twitter
- [B! rust] https://crates.io/crates/ryu/
- ryu - crates.io: Rust Package Registry
- だめぽラボ@技術書典9さんはTwitterを使っています 「自作SML処理系での数学関数(Math.sinとか)のテストをどう書いたものか悩んでいたが、「MPFRで真の値±100ULP(適当)な区間を事前に計算して、テストコード中にその値を埋め込んで結果がその区間に収まっているか確認する」みたいなのが一番現実的な気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の数学関数は一部を除き厳密な等式が成立することは期待できないが、sinとcosを取り違えるようなやつは流石にテストで弾きたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「libmを実装するわけでもないし「原点から遠いところでの三角関数」みたいなやつはテストしない。とは言ってもULP基準だと値が0に近い時にアレだな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数のunordered周り、何らかの方法で提供したいのはわかるけど言語組み込みの演算子で提供するほどじゃなかったね」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語ではisunorderedみたいなアルファベットからなる名前が使われている」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「使用するlibc (libm)がAlpine Linuxではmusl, Debianではglibcなのが差異の原因ではないかと思います。四則やsqrt等の一部の関数はいいのですが、sinやexpを含む多くの数学関数の精度はlibcの実装に依存します。」 / Twitter
- ぜり (zeriyoshi)さんはTwitterを使っています 「何が原因なのかわからないけど -O0 の -fno-fast-math なのに Alpine Linux と Debian で倍精度浮動小数点の誤差が違って泣いてる gcc のバージョン違うけどなんか変わったんかな…」 / Twitter
- えびちゃんさんはTwitterを使っています 「@mod_poppo これらの関数の精度に関して IEEE 754 ではどう規定されてるんでしたっけ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@rsk0315_h4x この場合重要なのはIEEEよりもむしろC言語の規格の方で、C99のAnnex Fでは「sqrtやremainder等の一部の関数はIEEE準拠、他の多くについては精度を規定しない」としています。」 / Twitter
- mod_poppoさんはTwitterを使っています 「そもそも1/3は二進浮動小数点数では正確に表現できないのでアレという問題もあった。C言語のcbrt関数なら指数部の表現の問題を受けずに1/3乗できる。」 / Twitter
- mod_poppoさんはTwitterを使っています 「GCCは数学関数の定数畳み込みにはMPFRを使っているという認識で良いのかな https://t.co/R7a36tCgv1」 / Twitter
- 29335 – transcendental functions with constant arguments should be resolved at compile-time
- mod_poppoさんはTwitterを使っています 「mingw(-w64)のように数学関数の精度が良くないところがターゲットだと、コンパイル時の計算と実行時の計算で値が全然違うということになる」 / Twitter
- κeenさんはTwitterを使っています 「Rustの浮動小数点数型にIEEE 754で定義されている「次の値」を求める関数を追加する提案。実装はビット演算っぽい。 Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs https://t.co/FUGoXa9wBw」 / Twitter
- Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs
- mod_poppoさんはTwitterを使っています 「その辺のスクリプト言語で「浮動小数点数と整数の乗算」が提供されていることがあるけど、内部的には整数を一旦浮動小数点数に丸めてから乗算を実行しているので、「浮動小数点数と整数をそれぞれ数学的な実数と解釈して積を計算し、結果を丸めたもの」とは結果が異なることがあるんだな」 / Twitter
- mod_poppoさんはTwitterを使っています 「例えば0x1.fffffffffffffp0 * 0x100000000000008は数学的には0x1.ffffffffffffffffffffffffff8p56なので倍精度に丸めると0x2p56が返ってくるべきだが、実際には整数の方が先に0x1p56に丸められるので積は0x1.fffffffffffffp56となる」 / Twitter
- mod_poppoさんはTwitterを使っています 「静的型言語の多くでは浮動小数点数×整数のプリミティブを提供しないのでこれはエラーになるか、暗黙の型変換が働くことが明確になる」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の環境依存の話、「ソフトウェアエミュレーションされた浮動小数点数なら安心と思っていませんか?GMP MPFは計算結果がアーキ(ビット数)依存になります!MPFRを使いましょう!」も追加で」 / Twitter
- 女さんはTwitterを使っています 「7 桁から指数表記になって最高!!!!!!!って人いるんですか?いますか?本当に?」 / Twitter
- mod_poppoさんはTwitterを使っています 「そうそう、誰だってNumber.MIN_VALUE.toString()が300文字以上の文字列を返すことを期待するに決まっている」 / Twitter
- mod_poppoさんはTwitterを使っています 「これに加えて、「参照の同一性」という非直感的な概念も演算子をやめて I_do_understand_reference_equality_and_really_want_to_test_them 的な名前の関数にするべき(過激派) https://t.co/bFeGpi82PT」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の比較は組み込みの演算子じゃなくて I_do_understand_the_behavior_of_floating_point_numbers_and_really_want_to_compare_them みたいな名前の関数を使わせるようにするべきだった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「MinCamlの仮想マシンコード生成、浮動小数点数の定数テーブルのルックアップにイコールを使ってるから0.0と-0.0が同一視されそう」 / Twitter
- mod_poppoさんはTwitterを使っています: 「MinCaml, 浮動小数点数の不等号な比較を全部<=でやってるから片方がNaNの場合をちゃんと扱えないのでは。まあこれは単純さのために犠牲にしたと解釈できる」 / Twitter
- mod_poppoさんはTwitterを使っています: 「SMLのREAL signature, 指数部の範囲を手軽に取得できるやつがないのか(toManExp maxFiniteとかtoManExp minNormalPosすればいいんだけど)」 / Twitter
- mod_poppoさんはTwitterを使っています 「コンパイラーの最適化と浮動小数点数のあれこれについて知りたい方は https://t.co/36PtHcvfu9 に目を通しましょう」 / Twitter
- FloatingPointMath - GCC Wiki
- PHP: 浮動小数点数 - Manual
- Go言語の浮動小数点数のお話
- PythonのNaN周りの挙動とIEEE754についてのメモ - Arantium Maestum
- マシンの中のリアル : Dの浮動小数点数 - プログラミング言語 D (日本語訳)
- Java 入門 | IEEE754 浮動小数点数表現
- mod_poppoさんはTwitterを使っています: 「定理証明支援系でサクッと浮動小数点数関連の定理を証明できるようになりたいね」 / Twitter
- mod_poppoさんはTwitterを使っています: 「浮動小数点数をかっちり扱いたい状況(文字列化)で浮動小数点数を使った対数の計算(誤差が出る)をなんとか安全に利用したい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「浮動小数点数の文字列化、出力の基数が固定ならまだいい(対数の近似値を好きな精度で埋め込める)んだけどHaskellのfloatToDigitsは出力の基数が引数として与えられるタイプだから辛い」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Pythonの/演算子に整数を適用した場合、オペランドを浮動小数点数に変換してから割り算するのではなく一旦有理数として解釈してからそれを一回の丸めで浮動小数点数に変換しているという認識でいいのかな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「検証 https://t.co/f1tjOsZgEd」 / Twitter
- mod_poppoさんはTwitterを使っています: 「一方Lua 5.3は0x1FFFFFFFFFFFFFFF / 0x100000000000008が0x1.fffffffffffffp+4じゃなくて0x1p+5になるので先にキャストしてから割り算していると思われる」 / Twitter
- mod_poppoさんはTwitterを使っています: 「関連トピック https://t.co/PKF2Hsf6l6」 / Twitter
- mod_poppoさんはTwitterを使っています: 「多倍長(あるいは64ビット)整数同士の割り算で浮動小数点数が返ってくる言語はそこまで多くない(RubyやJSは整数除算になるし、Schemeは有理数が帰ってくる)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Swift, 3 / 2と書くと整数型の文脈では1になって浮動小数点数型の文脈では1.5になるっぽい?Haskellで1+2と書いた時に期待される型によってリテラルと演算の型が変わるみたいなやつか」 / Twitter
- mod_poppoさんはTwitterを使っています: 「PureScriptは(Haskellと異なり)整数除算と浮動小数点数の除算で同じ/を使うんだよな、と思って確認したけど整数リテラルは浮動小数点数型にならないっぽいのでSwiftと同じようにはいかなかった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「俺はHaskellやMLみたいに整数除算と浮動小数点数の除算が分かれているのが好きです」 / Twitter
NaN boxing
NaN
- pshiko@クレイジーマンさんはTwitterを使っています: 「https://t.co/zX1rTUAYXy 浮動小数点のNaNはexponentのbitが全部立つ&仮数部非0だから、まぁまぁの領域冗長に確保してるけど何に使うの?って話で、ここではNaNに起因する情報伝達のpayloadとして使う想定と書かれてるけどホンマ?という気持ちが。HW側の実装が単純になるとかいう説明はないものか」 / Twitter
- floating point - Why does IEEE 754 reserve so many NaN values? - Stack Overflow
- pshiko@クレイジーマンさんはTwitterを使っています: 「https://t.co/mM80EE2Mhf NaN同士の演算は可換か」 / Twitter
- 浮動小数点数の足し算と掛け算は可換か - Qiita
- uint256_tさんはTwitterを使っています: 「@p_shiko 本来の想定とは違うかもしれませんが、よく NaN boxing で使われていますね」 / Twitter
- pshiko@クレイジーマンさんはTwitterを使っています: 「@uint256_t おーありがとうございます!! 結果として最適化の余地になるのは分かるのですが、そレ目的で表現できる値の範囲狭めるのかなぁ?FPU側のメリットなかったのかなぁ?って気になってました! でもまぁここを数値表現に使えなくて困るケースレアだと思うんで、割とカジュアルに潰した可能性も感じてますw」 / Twitter
- 複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
- NaN boxingとsizeof(mrb_value) - mirichiの日記
- NaN boxing - 枕を欹てて聴く
- NaN Boxingというテクニックを知った
- mrubyのJITの64bit対応 - Qiita
- 3. NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
- C#でNaN Boxing - RoundWide Systems
- Yukihiro MatsumotoさんはTwitterを使っています 「NaN boxingの代わりに、int 31bit, float 30bitを32bitに詰め込むboxing方法を見つけた。mrubyのメモリ節約のため採用しようかどうしようか迷う」 / Twitter
- κeenさんはTwitterを使っています 「RustでEmacs LispのVMを書いた人の記事。NaN BoxingとかGCとライフタイムの話とか、真面目にやろうとすると困る問題がピンポイントで書かれてて真剣に取り組んでるんだろうなということが伺われる Building an Emacs lisp VM in Rust • Core Dumped https://t.co/98MDDOfyjz」 / Twitter
- Building an Emacs lisp VM in Rust • Core Dumped
- κeenさんはTwitterを使っています 「「GCのバグはこの世で一番大きな無脊椎動物の一種である」好き」 / Twitter
- NaN boxing
- NaN Boxing - albertnetymk's notes
- zuiderkwast/nanbox: NaN-boxing in C
- design patterns - What is the purpose of NaN boxing? - Software Engineering Stack Exchange
- NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
- value representation in javascript implementations -- wingolog
- NaN-Boxing [sean.cm]
- Yukihiro Matsumotoさんのツイート: "@miura1729 NaN boxingはそのうちやってみたいんですが。64bit対応が難しそうです。LuaJITの対応方法がどうにも理解できない。どうせ自分はまだ32bit環境だから32bitだけ対応するかなあ。"
- Internals - SpiderMonkey | MDN
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「NaN boxing: JavaScriptの型 (int32/float/string/null/boolean/object) の値を8バイトだけで表す技法。ポインタの特性と IEEE754の "NaN" 表現を使うことによって、型を表すタグが必要なくなる。賢いなあこれ。 https://t.co/ZbXrZUmLlF」 / Twitter
- NaN boxing or how to make the world dynamic - Blog by Piotr Duperas
strtod
- だめぽラボ@技術書典9さんはTwitterを使っています 「そのうち「十進小数から二進浮動小数点数への変換が(各種処理系で)何桁まで正しく行われるか試してみた」みたいなやつをやる必要があるな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数型がどっちのビット列表現を使っているか判断するプログラムも書きたいね」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「0x1.00000000000008pN の形の数の正確な十進表記と、それを若干ずらした物を手元の環境のstrtodに与えてみたが、用意した例については全て正しい丸めが行われた。意外」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「普通に十進変換しても800桁未満にしかならないので、もっと末尾の 000...0001 を長くして文字列長を稼ぐか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「MacもLinuxも(libcの)strtodが真面目に実装されすぎてて面白くねえ。一方MSVCは極端なケースで間違えてくれた(規格準拠の範囲ではある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Cのstrtodは結構真面目に実装されていることがわかったので、他のプログラミング言語処理系も試すべきかな。といっても内部的にCを呼んでいたら同じことだけど」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数周りの関数が「真面目に実装されすぎてて面白くねえ」ってひどい言い草だな」 / Twitter
atof
- 文字列少数点数表記を IEEE754 倍精度浮動小数点数にエンコードする方法|Sukesan1984|note
- きしもとさんはTwitterを使っています 「atof に関してはラスボスが居てですね……そこまで要求されることは普通は無いにしても https://t.co/bhnYhi2qdV」 / Twitter
- Gauche:浮動小数点数をどこまで読むか
- きしもとさんはTwitterを使っています 「このパターン、atof が実のところ一番簡単な use case で、2進小数でちょうど境界になる場合、「厳密に計算した後、正しく丸めた」結果を得るには、関数によってはどれだけ計算が必要か予め決められないとして、Table Maker's Dilemma と、カハン先生によって命名されています https://t.co/c2RfXrW9eB」 / Twitter
- Introduction to the Table Maker's Dilemma
- きしもとさんはTwitterを使っています 「@ksmakoto このテーブルというのはイケアで売ってるような木工とかのことではなくて、「数表」のことですが、余談ですが以前、数表に関してこんなツイートを見ました(2重丸めに注意という話)」 / Twitter
dtoa.c
- 島鉄雄さんのツイート: "libc を使わ(え)ない環境で strtod (古くは atof)が必要になった場合に、ネットにある GPL じゃない実装を比較検討したところ、1つ以外全部 glibc の strtod と結果が合わなかった。(要するに精度が悪い) 以下のページの this code のリンク先にある dtoa.c が唯一の解だね。 https://t.co/6R2VfOHHAI"
- How strtod() Works (and Sometimes Doesn't) - Exploring Binary
- https://www.ampl.com/netlib/fp/dtoa.c
- rounding.pdf
- 島鉄雄さんのツイート: "コンパイルする時は $ gcc -c -DIEEE_8087 dtoa.c のようにする。 紹介したページの解説をみたり、this paper のリンク先の論文をぱっと見したりすると、strtod は素人が実装出来るしろもんじゃない事が良く分かる…"
- 島鉄雄さんのツイート: "Ruby も 2019/2 に strtod を dtoa.c のに変えたようだ。 (勿論 libc の strtod が有ればそっちを使うはず) https://t.co/J8Amrv3zv7"
- History for missing/dtoa.c - ruby/ruby
- 島鉄雄さんのツイート: "Windows の場合は libc が msvcrt.dll になるけど、strtod の挙動は微妙に違うようだ。 なので、マルチプラットフォームなインタプリタを実装している場合は dtoa.c のものに統一する方がいいだろう。 インタプリタは strtod を使いまくるので、複雑な計算をした場合に OS 毎に結果が違う事態を防げる"
- 島鉄雄さんのツイート: "Rust や Go はセルフホストなので、strtod のような処理を自前で実装してるので見たところ、文字列→10進浮動小数(いわゆる decimal)→2進浮動小数(通常の double)としているようだった。 (ちなみに Rust のコードはぱっと見訳が分からないw Go は atof.go と物凄い分かり易かった) 続く"
- 島鉄雄さんのツイート: "先の論文も decimal → double へ変換する際の誤差を減らすというもののようだし、結局以下の事が言えそう。 ・double だけ使って実装された strtod は全てなんちゃっての可能性が高い ・セルフホストする言語を実装するには decimal を実装した方がいいだろう(浮動小数のパースに使う為)"
- 島鉄雄さんのツイート: "dtoa.c もざっと見てみると、必要最小限の10進浮動小数(のような?もの BigInt)が実装されていた。"
例外
- Microsoft Visual c 浮動小数点の最適化 | Microsoft Docs
- cfenv - cpprefjp C++日本語リファレンス
- 浮動小数点例外Cなぜそしてそれは何ですか。 - コードログ
- HiPEとclangの浮動小数点例外 - Qiita
- 浮動小数点例外 - 数理計画用語集
- 浮動小数点例外
- 次のプログラムをコンパイルしたところ、”浮動小数点演算例外です... - Yahoo!知恵袋
- 浮動小数点例外の処理
- 浮動小数点例外処理 (-fpe) オプションの使用
- 実行したところエラーがでました - プログラマ専用SNS ミクプラ
- 概要: 浮動小数点例外の制御
- 浮動小数点環境 - cppreference.com
- 浮動小数点演算ではまった話 - bkブログ
- 整数除算のオーバーフローについて - やた@はてな日記
- 浮動小数点の最適化
- WGC1 第4章 浮動小数点表現 4.6 浮動小数点の例外 - みちしるべ
- Exception handling
- ieee - 浮動小数点例外モードを設定
用語
- 浮動小数点数(フドウショウスウテンスウ)とは - コトバンク
- 浮動小数点演算(フドウショウスウテンエンザン)とは - コトバンク
- IEEE 754 ‐ 通信用語の基礎知識
IEEE754
仮数部に1の補数表現
- Miura HidekiさんはTwitterを使っています 「IEEE 754が仮数部に1の補数表現を使っているのは、-0を表現したいからだろうか?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 乗除算中心なら符号別の方が都合が良いからかなあ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど、ただ増えるのは排他的論理和と1の足し算が1回ずつだけですよね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 あと加減算はどうせ桁揃えが入るし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど、確かに2の補数にしても意味が無いですね」 / Twitter
- Dan KogaiさんはTwitterを使っています 「符号ビットがあると±0の逆数が±Infinityになるなど都合がいい。整数で2の補数が使えるのは値が整数で閉じているということも大きい。IEEE754だとInfinityやNaNのように数値でない値も表現できる必要がある」 / Twitter
- IEEE754 について
- κeenさんはTwitterを使っています 「へー。NaNも含めた順序って決められてたんだ」 / Twitter
- κeenさんはTwitterを使っています 「wikipediaでも言及あった https://t.co/1NyjGzfynP」 / Twitter
- IEEE 754 - Wikipedia
- あちゃぴーの自転車通勤: 32-bit float IEEE 754 浮動小数点数について
- IEEE754について。モダンなコンピュータはどのように少数を扱っているのか - Yabu.log
- IEEE 754-2019 - IEEE Approved Draft Standard for Floating-Point Arithmetic
- 黒澤亮二さんはTwitterを使っています: 「浮動小数点の仕様IEEE 754が少し改訂されたらしい。2008年にも改訂されていて、ほぼ10年ごとのサイクル?2008ではdecimal floatの追加があったようだが今回はそこまで大きい追加はなさそう。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「2の補数表現以外の符号付き整数表現をするハードウェアは滅びたと思っていたが、IEEE-754の指数部ってoffset binaryなんだな。」 / Twitter
- dif_engineさんはTwitterを使っています 「IEEE754はよく考えられた規格で,一見不合理だったり冗長だったりするように見える規則を捨てて実装するとたいていどこかおかしくなる. (高速化を目的として多くのチップメーカーがIEEE754の変形実装をしたけど,それで評判を落としたことが多い).」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@dif_engine だが一番普及してしまってるintel x87がカハン教授が加入する前の草案で見切り発車してクソ実装してしまったから。速い代わりに計算精度低くて、カハン教授のコンプラ試験ソフトでボロカスにエラー出る。」 / Twitter
- dif_engineさんはTwitterを使っています 「Kahanさんがこの規格を作るのに相当貢献していたはず.Kahanさんの研究を無視した浮動小数点演算のクソ実装をするとこんなふうに(https://t.co/fwqZO7ttCV)処刑されます.」 / Twitter
- JAVAhurt - JAVAhurt.pdf
- IEEE 754-2019 浮動小数点の仕様書を購入 - FPGA開発日記
- IEEE754-2019 メモ : 竹下世界塔の計算機よもやま話
- セクスィ・ナカナカピエロさんはTwitterを使っています 「@Hishinuma_t @7danmoroboshi 現状の浮動小数点の精度 IEEE float64で不満がある方はdouble-double型で実装されたもの(long double)を使うのではなくIEEE float128 (binary128)を使うのが良いかと。浮動小数点の精度を上げるために積むのは徳ではなく、レジスタのビット数ですかね。笑。」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「訳:お前俺に浮動小数点の基礎を講釈した挙げ句,Double-double型じゃなくてIEEE754 binary128を勧めてくるとかどうなってんだ それとレジスタのビット数なんか積めるわけねえだろ何考えてんだ」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「> double-double型で実装されたもの(long double) そもそもlong doubleはdouble-doubleじゃねえよ」 / Twitter
- にゃんにゃん@日本に帰りたいさんはTwitterを使っています 「@NakanakaPierrot @Hishinuma_t float128をハードウェアサポートしてる環境がほとんどないからdouble-doubleを使うんですが、、、」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellでIEEE 754-2019準拠な浮動小数点演算を提供するライブラリーをHackageに上げた(基本的にRealFloatの範疇でやっているので一部制限あり) https://t.co/EDnHsvbog3」 / Twitter
- fp-ieee
- だめぽラボ@技術書典9さんはTwitterを使っています 「制限事項: ・NaNの符号やペイロードを扱うには専用の型クラスが必要 ・浮動小数点環境に介入することはできない(純粋&遅延評価と相性が悪い) ・十進浮動小数点数のexponent周りは非対応(RealFloatクラスが対応してないので)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進浮動小数点数を富豪的データ構造として実装する分にはそんなに問題はないと思うけど、IEEEの十進交換形式みたいに32*kビットになるべく詰め込もうとするとアレ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式には同じ符号の無限大を表すビット列が複数ありうる」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式は ・そもそも一本化されていない(DPD vs binary) ・正規化されないので一つの値に対して複数の仮数部・指数部がありうる ・一つの仮数部・指数部の組について複数のビット列が対応する場合がある など、二進と比べて大変愉快な仕様となっているぞい」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE 754ができるまでの歴史。70年代の浮動小数点演算は、誤差やゼロの扱いが環境によってばらばらだった。数値演算の誤差はバグとは考えられておらず、プログラマは値の補正に X=(X+X)-X などというトリックに頼っていた。このままいけば破綻するのは目に見えていた。... https://t.co/s5VGR2Mm4q」 / Twitter
- https://people.eecs.berkeley.edu/~wkahan/ieee754status/754story.html
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「1976年、8086用の数値演算プロセッサの開発を始めたIntelは、本当に使えるチップを作るためには浮動小数点の業界標準が不可欠ということに気づいた。こうしてIEEE 754委員会が結成され、数値演算の専門家であるバークレーの William Kahan教授が中心となって作った "K-C-S案"が提出された。...」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE754にはIntelのほか、DEC、Motolora、Zilogなど多くの半導体メーカーが参加した。標準化委員会は各メーカーの思惑が入るのが普通だが、IEEE754委員会はまれにみる利他的な団体で、多くの参加者がまともな標準を作ろうと努力した。Kahan教授はこの業績で1989年のチューリング賞を受賞している。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「IEEE 754のsignaling NaNの知識、CPUとコンパイラー作成者にしか役に立たなさそうだし恩恵がコンパイラーのある種の最適化を阻害することしか知らない(それは恩恵ではない)」 / Twitter
x87
Twitter
sizeof
- だめぽラボ@技術書典9さんはTwitterを使っています 「sizeofを比較しても同じ型かどころか、同じ浮動小数点形式かすらわからないから……(80ビットのlong doubleがsizeofで測ったら16を返してきたりするし)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/uvtZjvyuFb」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GCCのドキュメントと挙動が食い違っているのを発見してしまったかもしれない(ドキュメントでは__float80は_Float64xのエイリアスだとされているが、実際は(-mlong-double-80の下では)long doubleのエイリアスになっているっぽい) https://t.co/2tCMVPCdNn」 / Twitter
- Floating Types (Using the GNU Compiler Collection (GCC))
- だめぽラボ@技術書典9さんはTwitterを使っています 「昨日の_Float64xの話題で思った(というか前から思ってた)んだけど、extended precision formatに対応する型をわざわざ標準化する必要あるのか?非自明な拡張ナントカ精度って実質x87のアレしかなくない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「TF32は拡張じゃなくてむしろ縮小でしょ」 / Twitter
- hsjoihsさんのツイート: "IEEE754の乗算は交換法則の方は成り立つんだっけな(結合法則はそりゃ成り立たない)"
- uint256_tさんのツイート: "IEEE754, Nan boxing すごいってくらいの知識しかない"
- Zıᴘʜıʟ Sʜᴀʟᴇıʀᴀꜱ ╹ω╹さんのツイート: "交換するけど結合しないって数学的には珍しい?"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "そういえば前2chで「浮動小数点数は何が起きるか分からないから精度いらない場面でも絶対使うな」って騒いでるやついたなぁ 乱数じゃないんやぞ…"
- 白山風露@ᗣᘎᘄさんのツイート: "8087互換FPUは状態を内蔵しているので「何が起きるか分からない」はある意味正しい。 丸め方向やゼロ除算例外の扱いなどが変更される可能性があるので本当に厳密に使うならチェックしないといけない。… "
- tkr@合格0,不合格6,発表待ち1さんのツイート: "状態持ってるまじ?"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "IEEE754なら大丈夫だよね?"
- 白山風露@ᗣᘎᘄさんのツイート: "まあゼロ除算はそもそもC++だと未定義だけど"
- 白山風露@ᗣᘎᘄさんのツイート: "IEEE754の規格からは外れていないが、そもそも規格に丸め方向等が複数種類存在し、その切替をFPU内部のフラグで行うことができる… "
- tkr@合格0,不合格6,発表待ち1さんのツイート: "え、これまじですか 規格っていうから必ずこうなるって決まってるのかと…… "
- yuyabuさんはTwitterを使っています: 「https://t.co/0HWDwOgyrz AArch64(arm)はsin,cosとか計算する機械語あるのか。java 11以降のmathではこいつら(CPU専用命令)を直接使うらしい。 #javareading」 / Twitter
- yuyabuさんはTwitterを使っています: 「intel系のCPUにはsin,cosなどを計算する命令は8087などにあるらしいけど、普通に計算した方が早いのでgccなどはfpuなどを使わずにソフトウェア的に計算しているらしい。」 / Twitter
- FadisさんはTwitterを使っています 「LLVMでMMX intrinsicsをSSE2に落とす改良が提案されている。MMXはx86のSIMD命令で、SSEと異なりx87とレジスタを共有する。この為MMX使用後片付けずにx87を叩くと動かないが、LLVMは容赦無く命令を入れ替えるので片付け前にx87が使われない事を保証出来ない問題を抱えていた https://t.co/dpDlvvk6eK」 / Twitter
- LLVM Developers Looking At Phasing Out Intel MMX Support - Phoronix
- ママレモンサワーさんはTwitterを使っています 「まあMMX intrinsicsからSSE2を吐くようにしようぜって今さら言われたら、もうサポート自体やめるわってなるよな…」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「sinやcosの精度絡みでは、x87 FPUにはsinやcosや底2の指数関数・対数関数を計算する命令があって、あれらは精度が実装依存っぽいので再現性が必要なら使っちゃダメな系のはず(同じ命令列を実行しても異なる結果が返る可能性がある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「実際、Intel SDMにはPentiumでそれらの命令の精度が向上したようなことが書かれている(つまり、それ以前のCPUとは異なる結果が返ってくる)。AMDは知らん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SSE系には逆数や平方根の逆数の近似を返す命令があるけど、相対誤差しか規定されてないっぽいし、あの辺もCPUによって返る値が違う可能性のあるやつかな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「(異なるマシン間での再現性の観点でいうとx87 FPUは煮ても食えない(Control Wordをいじったとしても非正規化数の計算にコーナーケースがある)ので初手切り捨てが最善ですね…)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語での浮動小数点数の評価方法(FLT_EVAL_METHOD周り)をテストするやつを書いた。x87 FPUが使用されると出力が変わる系のやつ。 https://t.co/nSSKGD6jZS」 / Twitter
- floating-point-test/eval-method.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「これまでに書いた浮動小数点数周りのテストコードがあちこちに散らばっているのをどうにかしたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「IEEEで例外発生の有無が実装に委ねられているやつ」をテストするコードも追加した(FMA(0, ∞, qNaN)でinvalidが発生するかどうかと、アンダーフローの判定が丸めの先か後か)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「NaNのペイロードの伝播の仕方を確認するやつも書いた。入力の両方がNaNだった場合に常に左側を返すやつ、演算が可換になるように両方見て決める奴、常にペイロードが0なNaNを返すやつなどがある https://t.co/XD0oBQOScj」 / Twitter
- floating-point-test/nan-propagation.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUの呪い [C言語] on @Qiita https://t.co/bLfIx7zR7t」 / Twitter
- x87 FPUの呪い - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「Javaのstrictfpは何のために存在するのか、C言語のFLT_EVAL_METHODは何を表しているのかがわかる記事を書きました: https://t.co/w3YBXz2foh」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUで倍精度演算がアレなのはこの前の記事に書いた通りだけど、x87 FPUを拡張したような感じのItaniumでは命令ごとに精度を指定できたりFPSRで指数部の範囲を拡張するか選択できたりしてそういう「呪い」はないという認識で良いのかな」 / Twitter
- kashiさんはTwitterを使っています 「Intel80bitというか、_Float64xな定数ってどう書くのがいいんだろ。 https://t.co/53gyEs26TO によれば、 x = 0.1f64x; って書けそうだけど、手元の環境ではgcc:○、g++:×、clang:×、clang++:×みたい。昔ながらの x = 0.1L; は大丈夫そうだけど、これでいいのか? もちろん、単に0.1ではまずい。」 / Twitter
- Floating Types (Using the GNU Compiler Collection (GCC))
- mod_poppoさんはTwitterを使っています 「C++に(C言語で言う_FloatNみたいな)浮動小数点数型を追加するプロポーザルの最新版を見てみたけど、C言語で言うところの_FloatNxは入らないのか https://t.co/hWmZDbWwC1」 / Twitter
- P1467R5: Extended floating-point types and standard names
- mod_poppoさんはTwitterを使っています 「80ビット浮動小数点数、どうせ環境依存な代物なんだし環境依存な書き方(long doubleとして使えると仮定する or GCC拡張の__float80を使う)でいいんじゃないの感がある」 / Twitter
- mod_poppoさんはTwitterを使っています: 「x86 (x87)の三角関数命令を真面目に使ってるの、MinGWくらいしかないんじゃないかな」 / Twitter
- サイン、コサインをインテルの CPU で計算すると少しバグっているらしい – tomeapp
- x87 FPU で厳密な単精度演算を行うコスト - NyaRuRuが地球にいたころ
- x87 FPU で厳密な単精度演算を行うコスト (2) - NyaRuRuが地球にいたころ
- Shiro Kawaiさんのツイート: "#tcfm https://t.co/9L8G8XZaBY 第10回 IEEE754の数学関数は数ULPくらいの誤差は許されていたような気がする。 sqrtは基本演算扱いで完全に指定されてたかもしれない。"
- Rui Ueyamaさんのツイート: "浮動小数点数フォーマットは最近学校で習ったので2^-1022近辺の浮動小数点数は特別にバグりやすい罠があるというのをすぐに理解してしまった。"
- スタックマシン ‐ 通信用語の基礎知識
- Tips x87 FPUプログラミング
- ロボ太さんのツイート: "そうそう、x87命令とかSSEについてもちょっとだけ書きました。なぜx86に64ビットの浮動小数点レジスタが無いかとか、long doubleが80ビットな理由とか・・・。あんまし深掘りしてないけど・・・ https://t.co/eX0vwsSaB0"
- sevendayshpc/README.md at master · kaityo256/sevendayshpc
- Island Life - 拡張浮動小数点数の扱い
- 作って理解するOSを読んだ感想とメモ - Qiita
- 浮動小数点数の呪われた世界(x87 と C/C++) - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「対処は、コンパイラオプションで SSE2以降を指定できれば、それが一番楽かな。 (今時のVC++ x64だとそれがデフォルト)」 / Twitter
- 加藤公一(はむかず)さんはTwitterを使っています 「インテルのCPUは、レジスタで倍精度計算をするときは内部的に80ビット使うので、C言語の最適化オプションによって途中結果をメモリに置く手順が変わって結果が微妙に異なることがあるぞ。昔それが原因のバグを入れてしまったことあるぞ。」 / Twitter
- H.Torii (fully vaccinated)さんはTwitterを使っています 「@hamukazu /fp:precise」 / Twitter
- 自作OSにおけるFPUの制御 - Qiita
- 自作OSにおけるFPUの制御(複素数編) - Qiita
SSE
- 謎の SSE 例外 - 借り初めのひみつきち
- 鈴木友紀さんはTwitterを使っています 「なぜ Legacy SSE 命令は YMM/ZMM の上位を保持する仕様にしたのか調べていたら Microsoft の所為ということになった。 assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow https://t.co/gXCIIKLeGF」 / Twitter
- assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow
- 鈴木友紀さんはTwitterを使っています 「Using Floating Point or MMX in a WDM Driver https://t.co/nfoEiV6XFq」 / Twitter
- Using Floating Point or MMX in a WDM Driver
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMのCVTTS[SD]2SIの説明に "When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register." って書いてあるけどこれは間違い?(常にtruncateするはず)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「_mm_cvttsd_si32 (SSE2)と_mm_cvttsd_i32 (AVX512)の違いがわからないんだが、命令のエンコーディングが違うみたいなやつか?でもclangで-mavx512fの下ではどっちもvcvttsdsiになっているように見える」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのintrinsicsなんもわからん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Apple Clangは最近のmacOS上では自動で-msse4.1が有効になるっぽい(ceilとかfloorとかの関数が1命令にコンパイルされる)」 / Twitter
- κeenさんはTwitterを使っています 「ジョークかと思ったら真面目な記事だった…。主にSIMD(CPUによって命令があったりなかったりする)との付き合い方について。 Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files https://t.co/WhxEVWmzk5」 / Twitter
- Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files
- κeenさんはTwitterを使っています 「tacはファイルを逆順に表示するコマンドで、シェル芸でしか使わんだろって思ってたらログを最新順にみたいなどの需要がある。これも数GBクラスのログを逆順に表示したいというモチベーションからはじまってる。確かに言われてみればネタ扱いしたのも動作が遅くて使いづらいからだ。」 / Twitter
- ストリーミングSIMD拡張命令 - Wikipedia
- MMX ‐ 通信用語の基礎知識
- SSE ‐ 通信用語の基礎知識
- SSE2 ‐ 通信用語の基礎知識
- SSE3 ‐ 通信用語の基礎知識
- SSE4 ‐ 通信用語の基礎知識
- SSE 4.1 ‐ 通信用語の基礎知識
- SSE 4.2 ‐ 通信用語の基礎知識
- IDF Shanghai 2008 - Nehalem情報を総まとめ、コアの内部構造からプラットフォームまで (9) | マイナビニュース
- 15群(○○○)-8編 - 06gun_05hen_04.pdf
- インテル(R) アーキテクチャ (IA) 浮動小数点ユニット (FPU)、ストリーミング SIMD 拡張命令 (SSE)、ストリーミング SIMD 拡張命令2 (SSE2) を使用した浮動小数点算術演算 - w_fp_precision_j.pdf
- x86/x64 SIMD命令一覧表 (SSE~AVX2)
- x86/x64 SIMD命令一覧表 (SSE~AVX512)
- ./note008.html
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「ところがそうでもなくて,SIMD命令やGPUを前提にすると,複数データを一度に処理するために1つあたりのデータサイズを抑えたほうがかなりの速度が出ます。」 / Twitter
- fumiさんはTwitterを使っています 「いまやマイコンもFPGAもリソースもりもり森鴎外なので、1byteを削るために最適化したりする必要もなく、ガンガン32bitで計算すればいいし、ガンガン除算すればいい。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「高速行列演算パッケージのBLASは非常に複雑だと思われているが、実際には100行程度のCでほぼ同等の速度が出せる。やっていることは: - SIMDを使ったベクトル化 - ブロック化によるキャッシュの最大活用 - マルチスレッドによる並列化 https://t.co/mzpeio7lOF」 / Twitter
- BLAS Tutorial
- Kazuho OkuさんはTwitterを使っています 「@miura1729 x86とかでもSSEとかは即値ロードないので…」 / Twitter
AVX
AVX512
SIMD 最適化
- Hideyuki Tanakaさんのツイート: "それはそうとavx512の命令セットはなんであんなグッチャグチャになってしもたんや?まあx86自体がグッチャグチャやという話もあるが"
- Tsukasa #01 [要出典]さんのツイート: "opmask というある意味では GPU 的な演算制御を手動でやるために用意されたとしか思えない仕組み。"
- Hideyuki Tanakaさんのツイート: "まあ要するにそういうことだよなあ(´・_・`)…てかもうこれ人間が書くんじゃなくて、#pragma omp simd とか、オートベクタライズ期待とかそういうの前提なんじゃないのか。コンパイラ死にそうだけど"
- Tsukasa #01 [要出典]さんのツイート: "手で書くことはもちろん可能だけど、ある程度以上はコンパイラ任せに……したいんだろうなぁ (にしては opmask の演算命令の中に不穏なものがあるけど)。"
- Hideyuki Tanakaさんのツイート: "絶対インテルコンパイラ以外ではまともな性能出ないことが目に見えててキビC~"
- Hideyuki Tanakaさんのツイート: "少なくともインテルコンパイラではまともに動いてるのかは気になるところ(´・_・`)"
- Hideyuki Tanakaさんのツイート: "いやそれかインテルコンパイラ開発してる人からのこれもないとまともにコード生成できひんでっていう命令がごっそり入った結果あんなグッチャグチャな命令セットになったという可能性もある"
- Hideyuki Tanakaさんのツイート: "まあ実際PEZY-SCでのプログラミングはあんま考慮することが少なくて、ワイドSIMDにまつわる問題はなくて楽といえば楽。フラッシュと同期を使いこなして、キャッシュヒット率を上げるだけやからな。(それが難しい)(でもそれは何でも一緒な気はする)"
- AVX2/AVX-512を用いたLennard-Jones系 ポテンシャルの力計算のSIMD化 // Speaker Deck
- 【CEDEC 2020 フォローアップ】 マルチプラットフォーム環境で実現するLLVM ClangによるSIMD自動ベクトル最適化 | Cygames Engineers' Blog
Converting integers to decimal strings faster
- Daniel Lemire 🥕🥕🐇さんはTwitterを使っています 「Converting integers to decimal strings faster with AVX-512 https://t.co/Cmx8VMpo0h The AVX-512 approach is 3.5 times faster in my tests... credit @InstLatX64」 / Twitter
- Converting integers to decimal strings faster with AVX-512 – Daniel Lemire's blog
- InstLatX64さんはTwitterを使っています 「@lemire Free source of #AVX512F, #AVX512IFMA based implementation of _ultoa, _ltoa, _ui64toa, _i64toa functions: https://t.co/0sTn8WccqG https://t.co/Ce4AgfjDgl」 / Twitter
- AVX512F, AVX512IFMA based implementation of _ultoa, _ltoa, _ui64toa, … · InstLatx64/InstLatX64_Demo@25baddb
histric-1
- AVX512での逆数近似と精度補正 - Qiita
- kaityo256/rcp28_sample: Sample code of vrcp28pd
- 或るプログラマの一生 » AVX-512 がアナウンスされていた
- Fadisさんのツイート: "SIMDで一度にたくさんのベクトルや行列を扱う場合、個々のベクトルや行列を順番に並べてメモリに置いていると、今すぐに必要な要素の値が広範囲に散らばって配置されることになって、パフォーマンスの低下を招く、という現象がSIMDがとてもとても長いマシンで時々観測される"
- AVX-512(フォーマット)詳解
- きしもとさんのツイート: "(vp)ternlog命令の説明に関して考えていたのですが、この ternary は「三値論理」のように繋がるのではなく、「三項」ではないでしょうか(続… "
- herumiさんのツイート: "ご指摘ありがとうございます。iSUSの翻訳は三値でしたが、三項の方がよいですね。修正します…と思ったのですが、slideshareはupdateできないのでした。orz #x86opti… "
- インテル® Xeon® スケーラブル・プロセッサーのインテル® AVX-512 のベクトル長の拡張機能 | iSUS
- Hideyuki Tanakaさんのツイート: "SIMDはAVX512とか見てるとやっぱもう末期だよなあというか、というか、なんで長さ変えるだけで命令セット新しいの使わないと活かせないとか、これわざと最適化リソースかけさせて、x86から離れるのを惜しませているマーケなんじゃないのかとか、普通にAVX2をDual Issueでいいんちゃうのとか、謎は多い"
- CPUID に AVX-512 デープラーニング用命令のフラグが追加 - 教育は参考ブログ
- __int128にvpternlogdしたい - Qiita
- InstLatX64さんのツイート: "#AVX512_VNNI is 1|.5 L|T… "
- melancholic afternoon
- InstLatX64さんのツイート: "#TigerLake/#AVX512_VP2INTERSECT extended Venn-diagram about the 19+1 levels of #AVX512 in #Intel processors The importance and significance don't correlate with the area (the number of instructions is shown in parentheses) MICs are starting to fade out....… https://t.co/al4b7Pt9wW"
- SIMDプログラミング入門(AVX-512から始める編) - Qiita
- AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita
- herumiさんはTwitterを使っています 「指数関数expのAVX-512によるベクトル化 https://t.co/hzsvtuAreu の記事を書きました。 >標準関数std::exp(float)に対する相対誤差は2e-6、速度は10倍ぐらいです。 コードはこちら。 https://t.co/qDVxSujr5K」 / Twitter
- 指数関数expのAVX-512によるベクトル化 - Cybozu Inside Out | サイボウズエンジニアのブログ
- fmath/fmath2.hpp at master · herumi/fmath
- herumiさんはTwitterを使っています 「https://t.co/OdN6YvJUxE ここで書いたやり方で実装してみました。https://t.co/y5f1T5NJMy float16個あたり5.44clk(Xeon Platinum 8280 2.70GHz)でした。@k_nitadori」 / Twitter
- herumiさんはTwitterを使っています 「@k_nitadori vpermt2ps面白いですね。頭に入れときます。x∈[1,2]なら2^x={exp(x log2 /4)}^4で{}を私の記事の5次近似して1mul+5fma+2mulもありですかね。」 / Twitter
- misc/two-pow.cpp at master · herumi/misc
- Keigo NitadoriさんはTwitterを使っています 「@herumi ありがとうございます。 直列に依存する命令列に対してこれは速いですね。」 / Twitter
- herumiさんはTwitterを使っています 「logもAVX-512で書いてみた。3D Now!時代(20年以上前!)に考えていたアルゴリズムを再実装したけど、もっとうまい方法あるのかな(あるんだろうなあ)。 https://t.co/GTDyR0p6DB」 / Twitter
- melancholic afternoon
- herumiさんはTwitterを使っています 「AVX-512によるlogの実装、いろいろ試したら結局素直な方法が一番よさけな感じ。試行錯誤のメモ。 https://t.co/spzgjOrIYJ」 / Twitter
- fmath/log.md at master · herumi/fmath
- FadisさんはTwitterを使っています 「Linus Torvalds氏が「AVX-512は苦しんで*んで欲しい」と言った事で各方面が盛り上がっている。AVX-512は512bitレジスタを用いるSIMD拡張命令で、多くのベンチマークでAVX2より高い性能を示すが、同じ拡張命令でもプロセッサによって対応がまちまちで使い辛い問題を抱える https://t.co/2Qu1ZyKVLq」 / Twitter
- Linus Torvalds: "I Hope AVX512 Dies A Painful Death" - Phoronix
- FadisさんはTwitterを使っています 「この発言はIntelが新しいマイクロアーキテクチャAlder LakeがAVX-512をサポートしなかったことを受けてなされたものだが、Intelは今後AVX-512対応プロセッサを作るのかについては何も明言していない」 / Twitter
- てらモス♋さんはTwitterを使っています 「AVX512命令って広大なんやな…(´・ω・`) https://t.co/19nVsqxA7p」 / Twitter
- Implement AVX-512 intrinsics · Issue #310 · rust-lang/stdarch
- Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)👇これ見たらAVX512をよく知らない人でもリーナスのお気持ちが多少は理解できるんじゃないかな(適当)」 / Twitter
- herumiさんはTwitterを使っています 「IntelのマニュアルによるとAVX-512が使えるかの判定はXCR0レジスタの5-7ビットが111を確認することになってるのだけど、macOSではオンデマンドでAVX-512を有効にする(使われるとUD例外でOSで処理して戻る)のでそのフラグを見てはいけないらしい。 https://t.co/zXGfIp6Ala」 / Twitter
- fixed incorrect detection of AVX-512 on macOS by atafra · Pull Request #110 · herumi/xbyak
- herumiさんはTwitterを使っています 「こういうコンテキストスイッチのコストを減らすためのテクニックをみると、2018年のLazyFPUの脆弱性を思い出す。 https://t.co/45vlGTCuhR まあ今は2020年だし大丈夫なんだろうけど。 https://t.co/40oXJDf72b」 / Twitter
- LazyFP vulnerabilityの紹介
- herumiさんはTwitterを使っています 「XbyakがAVX-VNNI命令に対応しました。 https://t.co/gplgSKCuFB AVX-512用のvpdpbusdなどの積和演算命令をAVX-512非サポートなCPU(Alder Lake以降)でも使えるようにした命令群です。VexEncodingを明示して利用します。アセンブラ泣かせ。こんな細切れに命令増やしてていいのだろうか。」 / Twitter
- InstLatX64さんはTwitterを使っています 「GFNI_Demo.h, VBMI2_Demo.h: wrapper headers for emulating the missing byte/word shift and rot instructions with the new #AVX512 extensions (in notation of the great officedaytime site) https://t.co/yOrubv5wCT Free source: https://t.co/u7BbdTjmBt https://t.co/6QJiipRBtF https://t.co/ZrSuSV4JPJ」 / Twitter
- InstLatX64さんはTwitterを使っています 「Other non-crypto use of (V)GF2P8AFFINEQB in GFNI_Demo.h: - revbit, bit-broadcast, prefix-xor bytes; - rotate, mirror, multiplication for 8x8 bit matrices; - entire register pospopcount; #SSE #AVX #AVX512 https://t.co/u7BbdTjmBt https://t.co/4CdNRQquBx」 / Twitter
- InstLatX64さんはTwitterを使っています 「VPCLMULQDQ_Demo.*: experimental entire register prefix-xor operation w/ VPCLMULQDQ (ymm version for #AMD #Zen3) #SSE #AVX #AVX512 https://t.co/Ecvy2CSs1W」 / Twitter
- HPC Phys-20201203
- FadisさんはTwitterを使っています 「Intelの第11世代Core i9でAVX、AVX2、AVX-512を使った場合の性能の比較。AVX-512を使った場合AVX2と比較して多くのベンチマークでほんの僅かに性能が向上するが、猛烈に消費電力が増える事が示されている。えぐいケースではAVX2で180WがだったのがAVX-512で270Wに達する https://t.co/00OUE0C62w」 / Twitter
- AVX / AVX2 / AVX-512 Performance + Power On Intel Rocket Lake - Phoronix
- herumiさんはTwitterを使っています 「AVX-512とSVEって同じ512bit SIMDでもgatherとFMAの比率が結構違う感じ。AVX-512だとFMAで押し切った方が速い部分が、SVEだとテーブルルックアップした方がよいときがある。アルゴリズムが変わるので大変だな。」 / Twitter
- 或るプログラマの一生 » AVX512 による並列ハフマン符号処理
- 或るプログラマの一生 » AVX512 による並列ハフマン符号処理(その2)
- AVX512/VBMI2: A Programmer’s Perspective
- InstLatX64さんはTwitterを使っています 「https://t.co/bCv3yqMcW0 "The leaked documents show the appearance of EVEX instructions in Genoa, which are actually an AVX-512 type of instruction, indicating an AVX-512 engine in these new processors." Anyone skeptical still? #AMD #Genoa #AVX512 (EVEX is an #AVX512 encoding)」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD logo and #AVX512 on same page: https://t.co/9WhVlwKsz1 https://t.co/nN8A0UNez0」 / Twitter
- Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
- Intel Contributes AVX-512 Optimizations To Numpy, Yields Massive Speedups - Phoronix
- Faster bitset decoding using Intel AVX-512 – Daniel Lemire's blog
- NN112233さんはTwitterを使っています: 「@Locuza_ @FelixCLeClair @CtrlSt4rk @Buildzoid1 @intel @InstLatX64 No, 12400 does not downclock at all. I tested with Prime95. AVX2/FMA = 95 watt. AVX512 = 85 watt. No downclocking at all in both cases.」 / Twitter
- NimdaさんはTwitterを使っています: 「AVX512VLって何かと思ったらAVX512用のレジスタの後半をAVX2用のレジスタとして見せかけてくれるのか」 / Twitter
- wunkさんはTwitterを使っています: 「Hey new blog post. I'm capturing this utilization of `vfixupimmss`(AVX512) to implement a fast signum(sign) function. https://t.co/d4kBRHT1lm https://t.co/FKLi799sp9」 / Twitter
- vfixupimm: signum – Wunk
- AVX-VNNI-INT8 & AVX-IFMA Land In GCC 13 - Phoronix
- Intel® Advanced Vector Extensions 512 (Intel® AVX-512) - Permuting Data Within and Between AVX Registers Technology Guide - intel-avx-512-permuting-data-within-and-between-avx-registers-technology-guide-1668169807.pdf
- Miura HidekiさんはTwitterを使っています: 「https://t.co/CzjsiLcUC0 勉強になる。特に VGF2P8AFFINEQB 命令の件は興味深い。ハッシュ関数を高速化するのに使える可能性が有る。しかし私はAVX512が使えるPCは持っていない」 / Twitter
- Why Is AVX 512 Useful for RPCS3? – Whatcookie's blog
- Use AVX512 Galois field affine transformation for bit shuffling
- /arch (x64) | Microsoft Docs
- Intel AVX ‐ 通信用語の基礎知識
- Intel AVX2 ‐ 通信用語の基礎知識
- ホイール欲しい ハンドル欲しい » Intel AVX その3 命令
- AVX-SSE 切り替えペナルティーを回避する | iSUS
- インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 組込み関数の詳細
- Intel® Advanced Vector Extensions 512 - FP16 Instruction Set for Intel® Xeon® Processor Based Products Technology Guide - intel-avx-512-fp16-instruction-set-for-intel-xeon-processor-based-products-technology-guide-1651874188.pdf
- From IA-32 to avx-512
- Shirouzu Hiroaki(白水啓章)さんのツイート: "簡単な実験中。AVX2のgather命令、手元のCoffeeLakeだと十分速い。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "動作が不完全だった。完動したら、別段速くないというオチに。 8つのindexが別々のキャッシュラインにアクセスする場合、AVXのvgather命令を使っても、遅いものは遅いという印象。"
- x86/x64 SIMD命令一覧表 (SSE~AVX2)
- 「GNU Binutils 2.32」リリース | OSDN Magazine
- CPU命令セット“AVX-2”の活用で大幅な性能向上を果たした「EmEditor」v18.7.0 - 窓の杜
- まさみさんは語りたいさんのツイート: "んー??wgetがAVX2命令実行中にsegv起こして落ちた。しかも多分終了作業中??(99%)"
- まさみさんは語りたいさんのツイート: "rep stosでavx2命令を使ったメモリクリア中にdstアドレスが化けたっぽい。バグなのかどうかはまだ不明。"
- AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
- ./note122.html
- yohさんはTwitterを使っています 「何かに似てるなとおもけど SIMD命令でデータ加工するやつだなこれ マァnumpyはSIMD相当だし当たり前か」 / Twitter
- yohさんはTwitterを使っています 「forループ回せば(コーディングは)早いんだけど numpyのindexingやらを駆使してゴニョゴニョやっていくの 完全にパズルだなこれ」 / Twitter
- cpuidでAVX2に対応しているか調べる - 睡分不足
- herumiさんはTwitterを使っています 「Alder Lake, AVX-512は使えないのにAVX2でもVNNIを使えるようにしたから、Xbyakでvpdpbusdを使うときはVexEncodingを指定するという苦肉の策で対応。他のアセンブラはどうしてるのかな。 https://t.co/K5m4TY4kAJ vpdpbusd(xm0, xm1, xm2); // AVX-512 vpdpbusd(xm0, xm1, xm2, VexEncoding); // AVX2」 / Twitter
- FadisさんはTwitterを使っています 「12年ぶりのメジャーバージョンアップとなるcoreutils-9.0がリリースされた話。9.0ではcp mv installがFICLONEやcopy_file_rangeを積極的に活用するようになり、wcは行数カウントにAVX2を使えるようになり、cksumはCLMUL命令を使って高速にCRCを計算できるようになる https://t.co/ZTM7L84O6N」 / Twitter
- GNU Coreutils 9.0: cp Now Enables CoW By Default + Copy Offload, wc Now Uses AVX2 - Phoronix
- FadisさんはTwitterを使っています 「GNU CoreutilsはLinux環境でよく使われている基本的なコマンドの詰め合わせで、dd ls mkdir cat sort date env nice sleep uptime yes等のシェルスクリプトの入門書に大抵書いてあるようなコマンドのうち結構な割合がこれに含まれている https://t.co/c9sMiKfCeF」 / Twitter
- Coreutils - GNU core utilities
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ…copy_file_range(2)と。 fd に O_DIRECT を指定で OS-cache 不使用でコピーとかは、流石に無理かな。」 / Twitter
- mod_poppoさんはTwitterを使っています 「AVX/AVX2による浮動小数点比較命令 https://t.co/2jsnBpKzgj O/U/Q/Sの説明がわかりづらかったからIntel SDM見に行ったけど、O/UはオペランドにNaNが来たときに何を返すか、Q/Sはオペランドにquiet NaNが来たときに例外を出すかどうか、か」 / Twitter
- AVX/AVX2による浮動小数点比較命令 - Qiita
- Kazuho OkuさんはTwitterを使っています: 「avxでpacked表現使う時、配列として見た場合の添字の小さい方をlsb側に置くのが慣習なんですよね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そりゃそうか、shuffleとか無駄だしな。big endianでどのみちshuffleが必要な現場に慣れすぎ」 / Twitter
- intro-to-intel-avx-183287.pdf
- GCC 13 Compiler Merges Support For Intel AVX-NE-CONVERT - Phoronix
FMA
QEMU
- だめぽラボ@技術書典9さんはTwitterを使っています 「Rosetta 2は浮動小数点演算の細かいところをどのぐらい正確にエミュレートしてるんだろう(x86とAArch64ではアンダーフロー例外の発生条件が微妙に違う)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUはアンダーフローの発生条件についてはしっかりやっているようだ。実行したのはこれ: https://t.co/qVwojFzUJE https://t.co/KS4iNPqJDA」 / Twitter
- floating-point-test/exception.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUは fma(0, inf, nan) での例外の発生の有無がなんか変だな。アーキテクチャ的にはどうなるのが正しいんだ」 / Twitter
- i-saintさんはTwitterを使っています: 「float の計算をコンパイル時に定数に畳み込むとき、AVX の命令 (FMA) の有無で実行時の計算と結果に違いが生じるそうな。msvc でも clang でも gcc でも起きる。(教えてくれた同僚に感謝) https://t.co/PksaMrJ58z」 / Twitter
- Compiler Explorer
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haswell以降の(FMA命令を持つ)Intel Macでfma関数は常にハードウェアFMAを使うようだけど、-mfmaの有無でNaNのペイロードに関する挙動が若干違うな(コンパイラーの選んだ命令とlibSystem内部で使われている命令が違うのか)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMを読んだ感じ、x86_64のFMA命令はfma(0, inf, nan)について例外を投げないのが正しいっぽい。Linux上で例外フラグを立ててるのはglibcのfma関数かな。-mfmaの他に-O2を指定すると例外を投げないようになった」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「AArch64はfma(0, inf, nan)についてinvalid例外を発生させるっぽいな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754-2008のFMAは当時すでにあった実装(PowerPCとItanium)でFMA(0, ∞, NaN)の例外の有無が食い違ってたから規格ではその場合の例外の有無を定めない(実装に委ねる)ことにしたみたいな話をどこかで読んだ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数こそこそ噂話!」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「PowerPCはFMAのこの場合に例外を投げるっぽい。ItaniumはSDMを読んでもよくわからん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA4は入力と出力を合わせて4オペランドであって、入力の数的にはあくまで3項演算子なのでは(z←x+yを3項演算子と呼ぶ流儀だったらごめんなさい)」 / Twitter
- 富岳てるみさんはTwitterを使っています 「Intel「AVX世代のFMAは4オペランドにしよう!」 AMD「ほーん。そうやって作るわ」 Intel「(チッなんだよこいつ…) やっぱ3オペランドにするわ」 AMD「えぇ…(困惑)」 そしてFMA4という拡張は忘れられていくのじゃ…」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そういやFMA命令は使うと丸めの出方とか変わるんだよな。そのうちいっぺん初期値鋭敏性のある挙動でどんな感じで差が出るか or 意外と安定かとか比べてみたいな。また暇な時にでも」 / Twitter
- 和積演算(FMA) - yohhoyの日記
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA (fused multiply-add) の話 https://t.co/34TUwDJPYJ この記事に「__builtin_fmaは最適化目的で存在するのであり、ハードウェアFMAが使用されるとは限らない」って注意書きしておいた方が良いのかな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「俺もよくわかってないけど__builtin_fmaの役割は ・定数畳み込み ・ハードウェアFMAが利用可能な場合にその命令列を吐く ぐらいでいいのかな。fma(x, 1.0, y)みたいなやつをx * yに変換するようなことはあるのだろうか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ISAによっては浮動小数点数の乗算や加算専用の命令を持ってなくてFMAだけがある、みたいなやつもあるみたいだが」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そういえばFMAの記事で使ったこのコード、volatileをつけ忘れたせいで賢いコンパイラーだとコンパイル時に全部計算してしまって実行時にfma関数を呼び出さなくなるという重大な不具合があるんだよな https://t.co/csJG3TEwjG」 / Twitter
- test-fma/test-fma.c at 9d656d5940478625317d9b0833a061a5a78144ef · minoki/test-fma
- だめぽラボ@技術書典9さんはTwitterを使っています 「fma(x, 1.0, y) と等価なのは x + y だった。clangはこの最適化をやるけどGCCはやらなさそう」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/UJTIa6g7Qq を見た感じ、通常は__builtin_fmaとfmaは全く同じ意味で、-fno-builtinを指定した場合のみ後者に対する最適化が抑制される、という感じかな。」 / Twitter
- Other Builtins (Using the GNU Compiler Collection (GCC))
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA(融合積和演算)を使ったら計算が遅くなった話 https://t.co/6aysE7vdPu これ多分命令のサイクル数(?)がどうのこうのみたいな話になるんだろうけど自分はその辺詳しくないのでコメントできない。Haswellでの結果のようだけど、違うマイクロアーキテクチャだと違う結果になりそう」 / Twitter
- FMA(融合積和演算)を使ったら計算が遅くなった話 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「Ice Lake搭載Macで試したらFMA使用・不使用でほぼ同じ実行時間になった」 / Twitter
- mod_poppoさんはTwitterを使っています 「FMAは浮動小数点数の乗算と加算を兼ねるので、FMAをソフトウェア実装する際は乗算の面倒くささと加算の面倒くささの両方と対峙することになる」 / Twitter
bfloat16
- だめぽラボ@技術書典9さんはTwitterを使っています 「bfloat16の演算ってfloat32でエミュレートする際は掛け算が素直にできないやつか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「これ反例が作れなさそうな気がするし実は問題ない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのbfloat16の実装は非正規化数を扱わないのか。ふーむ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同人誌でbfloat16を安易に「IEEE準拠」と分類したのは早まったかなあ。少なくとも注意書きは必要」 / Twitter
AMX
- FadisさんはTwitterを使っています 「Intelが新しいCPU向けの拡張命令AMXのサポートをGCCとLLVMに投げているらしい。AMXでは新しいレジスタTMM0~7が追加される。レジスタ長は1KiB(8192bit)で512bitレジスタx16行の2次元配列で1本のレジスタを構成し、このレジスタに対して行列演算を行う命令が追加される https://t.co/wPmT8V1LRH」 / Twitter
- GCC Compiler Support Posted For Intel AMX - Phoronix
- FadisさんはTwitterを使っています 「これBFloat16とINT8に対応してるあたりからして、ニューラルネットワークの学習に使う気満々で、要するにIntel版のTensorCoreか…」 / Twitter
- herumiさんはTwitterを使っています 「XbyakにIntel AMX命令の追加pull reqが来たのだけど、TMMレジスタって何? 全然知らなかった。というか仕様が公開されたの昨日? え? https://t.co/7SmMzq2jcq」 / Twitter
- Add support of Intel® AMX instruction set by nshustrov · Pull Request #95 · herumi/xbyak
- herumiさんはTwitterを使っています 「Intel AMXをざっくりと読んでみた。AVXを置き換えるものではない。現状bfloat16かint8の大きな行列の積のタイリング専用演算TMUL。TMMはタイルを表すレジスタ。tileloaddで部分行列読み込み、tdpbf16psなどで行列積の足し込みをする。行列パラメータはldtilecfgで設定 https://t.co/M8N4ISlX47」 / Twitter
- blog/amx.md at master · herumi/blog
- Intel Advanced Matrix Extension(AMX)とは何なのか - FPGA開発日記
- FadisさんはTwitterを使っています 「IntelがAMX拡張命令のサポートをLinuxカーネルに入れるべくパッチを更新している話。AMXはint8またはbfloat16を大量に並べた8本の8192bitレジスタを使って行列演算を1命令で行うIntel最新のふぁっきんクレイジー命令セット。 https://t.co/xwjgR7To5x」 / Twitter
- Intel Sends Out Latest AMX Support For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「@KuniSuzaki パッチを見る限り、コンテキストスイッチする際に8KiBものレジスタを待避する領域を常に用意するのは勿体ないから、必要な時だけこのレジスタを復元できるようにする為のものっぽいです」 / Twitter
- FadisさんはTwitterを使っています 「で、複雑な命令をトランジスタ数でゴリ押す最先鋭であるAMXは、コンテキストスイッチでレジスタを退避させる時に必要なメモリが大きすぎて、常にAMX分の退避領域を確保したくないって事でユーザ空間からAMXする気がある事をカーネルに伝えるシステムコールが議論されてる https://t.co/5IfjDzNq9v」 / Twitter
- Intel Posts Newest Advanced Matrix Extensions Patches For Linux (AMX Patches v7) - Phoronix
- FadisさんはTwitterを使っています 「AMXはIntelプロセッサに8192bitのレジスタを8本追加し、このレジスタ上を2次元配列と見做して1命令で行列演算を行う拡張命令。ALUは既存の物とは独立している。xsaveで退避するには追加で8KiBのメモリが必要、ということになる」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これを見て「うわーなつかしの手抜きレイジーコンテキストスイッチや!俺も書いたことある!」などと思うロートル」 / Twitter
- とみながたけひろさんはTwitterを使っています 「たかだか512byteのコンテキストやったんやけど当時としてはでかかったので、スレッド作るときとかにこの命令使うぞと指定しないと未定義命令例外で落とす(そこで自発的に使用可能にはしない)、とかしてた。未定義命令ハンドラでメモリ確保して〜、も出来るのだけど、間違って使うのを防ぐため」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なおすごく真面目な、多重ネストできる割り込みハンドラでもFPU使えるっていうレイジーコンテキストスイッチも実装したことがある。なかなか辛かったがストレージ読み込み性能とかで1割以上は稼げたので嬉しかった記憶 今じゃみんな何でもSSE使うから意味が殆どないよなー」 / Twitter
- 第4世代Xeon SP、新命令AMXを活用するとDL推論性能が4.5~6倍に - PC Watch
- LLVM Clang Begins Picking Up AMX-FP16 Support For Granite Rapids - Phoronix
四倍精度
- てくのたのしーさんはTwitterを使っています 「ところでi128やu128はあるのにf128が無いのはなんで?」 / Twitter
- 白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「binary128がまともにハードウェアサポートされてるアーキテクチャあるんです?」 / Twitter
- てらモス♋️さんはTwitterを使っています 「POWER9…(´・ω・`)?」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Power9+V100構成であるSummit他のユーザー氏〜(´・ω・`)」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「これはdouble-double precisionの方で,IBMは昔コンパイラに入れてた. ただ,この方式はIEEE 754-2008で正式に4倍精度が策定されてからは4倍精度と名乗れなくなったので現在は区別してdouble-double型とかいう. ただPower9はちゃんとIEEE754-2008の4倍精度のはず」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「あー、コンパイラ側がソフトウェア実装としてサポートしてたのとアーキテクチャがネイティブでサポートしてたのが両方とも 128 bit だけど内容が別みたいな感じなのか」 / Twitter
- The saga of the Power ISA 128-bit long double
- 電子計算機の沼さんはTwitterを使っています 「あっ!こんなところに4倍精度の関連研究に詳しい論文が!! https://t.co/8Hwo1sXcsH」 / Twitter
- SIMD演算を用いた高精度疎行列計算ソフトウェアの高速化 , hpc::numa.blog()
- 電子計算機の沼さんはTwitterを使っています 「IBMのやつ https://t.co/iBcLaUKLTa」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「IBM方式とか言ってるのは倍精度2つ使って,指数部をずらして長い桁を表現する.仮数部は2倍,指数部は変わらない. 指数部を増やそうと思うと表現範囲を増やさないといけないので作るのが大変だけど,仮数部を増やすだけなら指数部を15桁分ずらして誤差を拾えばいいから簡単」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「The saga of the Power ISA 128-bit long double https://t.co/drW8AOY1P4 ㍂」 / Twitter
- C言語で四倍精度浮動小数点数 (binary128) を使う - Qiita
- うわの空さんはTwitterを使っています 「@mod_poppo @Qiita FYI ですが最近 icc 周りのパッケージの名称が変わって、ついでに無料で手に入るようになったようです: https://t.co/LwB9eZ41gC」 / Twitter
- Intel® oneAPI Toolkits
blog
- -OfastはNaNチェックを無効化する - in neuro
- エラーフリー変換の紹介 および FastTwoSum アルゴリズム の紹介と証明 -- glibc のコードを読むための参考に -- - 小清水さんとコンピューター数学
- 作る側の気持ちで理解する浮動小数点数 - in neuro
- QEMUはどのように浮動小数点命令をエミュレートしているのか - FPGA開発日記
- Binary Translation型エミュレータを作る(浮動小数点演算の検討) - FPGA開発日記
- Binary Translation型エミュレータを作る(浮動小数点演算の実装) - FPGA開発日記
- Binary Translation型エミュレータを作る(softfloatクレートの実装変更) - FPGA開発日記
- 複素関数記述DSLについて | 雑記帳
- 文字列から浮動小数点数に変換する、なるべく速く - toge's diary
- 複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
- 半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる - cvl-robot's diary
- 非数と無限大のメモ | 可音月堂
- 浮動小数点数の等値判定 - fujieda's tech blog
- 作って理解する浮動小数点数① 基本編 - in neuro
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「やっぱこういうの苦しむのを避けるためにも浮動小数点数はなるべく控えた方がいいわね / 1件のコメント https://t.co/LMV8c8RDnx “小数第四位までの小数を10000倍して整数に直せるのか - 北海道苫小牧市出身の初老PGが書くブログ” https://t.co/8HZGbj0Id5」 / Twitter
- 小数第四位までの小数を10000倍して整数に直せるのか - 北海道苫小牧市出身の初老PGが書くブログ
- 浮動小数点数の文字列化(基数変換) | 雑記帳
- mod_poppoさんはTwitterを使っています: 「文字列(十進小数)の浮動小数点数(二進)化のアルゴリズムもいつか立ち向かうことになるのかな」 / Twitter
- 不必要に浮動小数点数を使うの怖い - えびちゃんの日記
- 浮動小数点数の10進表記についてまとめてみた - kubo39's blog
- 浮動小数点数の指数部と仮数部への分解とその逆:logbとscalbn | 雑記帳
- mod_poppoさんはTwitterを使っています: 「浮動小数点数であれこれするのに十六進リテラルがないと不便だから浮動小数点数の十六進リテラルを導入してない言語は反省してほしい」 / Twitter
- 2^53+1 は素数か | 雑記帳
Wikipedia
- 浮動小数点数 - Wikipedia
- Floating-point arithmetic - Wikipedia
- NaN - Wikipedia
- NaN - Wikipedia
- IEEE 754 - Wikipedia
- IEEE 754 - Wikipedia
- IEEE 754における負のゼロ - Wikipedia
Qiita
- 娘に分かりやすく浮動小数を教えるシナリオ - Qiita
- long doubleと拡張倍精度浮動小数点数フォーマット - Qiita
- 0.1は浮動小数点で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
- 浮動小数点数の min / max - Qiita
- 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
- 浮動小数点数の16進表記 - Qiita
- 理想の浮動小数点数である「浜田のURR」を理解する - Qiita
- Javaの strictfp が実際に意味を持つ環境を用意する - Qiita
- ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
- Haskell/GHCでの浮動小数点数の扱い - Qiita
- yohさんはTwitterを使っています 「float型では123456789すらも表現できない話 - Qiita https://t.co/BnYlrG6cgK IEEE Binary32だと FLT_DIG==6 だよなと思ったら https://t.co/Wc697GXaD0 また小難しそうな話が」 / Twitter
- float型では123456789すらも表現できない話 - Qiita
- C++ `digits10` is 6 for IEEE float, but the first non-representable integer already has 8 digits? - Stack Overflow
- 閲覧者のユーザーエージェントを三角関数で判定可能か? - Qiita
- mod_poppoさんはTwitterを使っています 「浮動小数点数の比較についての記事が要るのではないか」 / Twitter
- mod_poppoさんはTwitterを使っています 「引数がNaNの場合の返り値と例外発生について」 / Twitter
- 浮動小数点数の比較について - Qiita
- 10年後のために「私自身が」今勉強しておきたい技術〜Elixir, Nx, SIMD/ベクタ命令, GPU, FPGAプログラミングの高速化を極めたい! - Qiita
- 浮動小数点数オタクがM1 Macを触ってみた - Qiita
- C/C++ で浮動小数点値を高速に文字列化したいメモ - Qiita
- Windows 11 22H2 で〔半角/全角〕キーを押すとアプリケーションがクラッシュする - Qiita
- 浮動小数点演算について - RAD Studio
- 浮動小数点の例外 - Win32 apps | Microsoft Learn
- mod_poppoさんはTwitterを使っています: 「浮動小数点例外のトラップ、実用してる環境あるんだ……」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Windows on Armのx86エミュレーションって浮動小数点例外のトラップはどう処理しているのかな(Snapdragonチップはハードウェアによる浮動小数点例外のトラップを実装してない気がする)」 / Twitter
Twitter
その他
環境依存
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点演算の結果が環境依存なのはどんなとき?」みたいな記事を書こうと思ってまだ書いてない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「まずlong doubleは環境依存。sinとかexpとかの数学関数も環境依存。コンパイラーの最適化で結果が変わるやつが有効になっていると環境依存。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同じバイナリーの実行したときの結果は同じか?実行時にcpuidとかを見て使う命令を変えていると環境依存。コア数とかを見て結合法則に頼りつつ並列度合いを変えていると環境依存。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同じ命令列が実行されたときの結果は同じか?一部のCPU命令は近似値を返すので、CPUによって結果が違うかもしれない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「みたいな内容を膨らませて例も挙げつつ論じる記事にしたい。」 / Twitter
Rust
- 熨斗袋さんはTwitterを使っています 「Rust で最近困ったこと f64 に入ってる正の数を切り上げて i64 にしたいんだけど、ceil して cast するときに誤差で -1e-10 されてたら floor になっちゃうし +0.5 して cast するのもなんか違うよなという感じでもやもや」 / Twitter
- 熨斗袋さんはTwitterを使っています 「多分 ceil したときに内部表現が整数になる保証があると思うんだけど記述見つからないし、そういうのに頼りたくない気持ちがある」 / Twitter
- 熨斗袋さんはTwitterを使っています 「@TumoiYorozu 例えば元の値が 1.5 だとして、ceil して 1.9999 になって cast したら 1 になりました、は嫌じゃないですか? 浮動小数点数の内部表現と密に関わりたくないというか、うまく説明できないのですが」 / Twitter
- 百千万億 萬さんはTwitterを使っています 「@noshi91 要するに ceil で得られる数に,小数点以下の情報がない保証が見当たらないって話ね.まぁ回路的に小数点以下を切り捨てる回路は難易度低そうだし,信じていい気がするけど」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「普通の浮動小数点形式では(少なくとも、IEEEで規定されているようなものは)、「ある浮動小数点数の両隣の整数」はその形式で厳密に表現できるので、floorやceilは(入力が正確だとして)正確な結果を返す」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点型を経由せずにfloorやceilを計算するにはC言語なら丸めモードを変更した上でlrint/llrintを呼び出すという手があるが、普通はそこまでしない」 / Twitter
- kashiさんはTwitterを使っています 「@mod_poppo 細かいことですが、「ある*整数でない*浮動小数点数の両隣の整数」ですかね。浮動小数点数xが整数であった場合は、(floorやceilはそのまま返せばいいですが) 両隣の整数が表現できないことはよくあると思います。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@mkashi おっしゃる通りです(細かいので端折ってしまいました)」 / Twitter
- かにかまさんはTwitterを使っています 「浮動小数点って全順序集合だと思ってたけど、NaNがある言語だともしかして前順序ですらないのか…?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko そうっすよ。その辺考慮してRustではPartialOrdというtraitのインスタンスになっています」 / Twitter
- かにかまさんはTwitterを使っています 「@igrep おー、まさに半順序的なtraitがあるんですね。i32は比較可能だからOrdなのか。面白いですね。」 / Twitter
Java
- Takahiro YAMADAさんはTwitterを使っています 「浮動小数点演算でstrictfpがデフォルトになると。(Java 1.2時代と同様に戻る意味でRestoreなのかな) 昔(1990年代)のCPUだと厳密な演算はオーバーヘッドがかかってたが、Pentium 4(懐かしい)以降のSSE2だと特に問題ないのが理由とか。この辺りは正直あまり気にしたことがなかった。」 / Twitter
- OpenJDKさんはTwitterを使っています 「Proposed to target JDK 17: JEP 306: Restore Always-Strict Floating-Point Semantics: https://t.co/ppADvu1gRq #jdk17 #openjdk #java」 / Twitter
- JEP 306: Restore Always-Strict Floating-Point Semantics
Itanium
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる https://t.co/2V9Ga4l1NX」 / Twitter
- IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumには浮動小数点数の除算や平方根の命令がないのマジかーと思った(近似値の命令とFMAでソフトウェア実装するらしい)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを調べてみると、浮動小数点数レジスターの内部形式がx87より指数部が2ビット多い82ビットらしくて、なかなか変態的だ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを見るとかなり変態的というか尖った設計になっているようだ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「加算・乗算専用の命令はFMAがあれば要らない(加算での符号付きの0の扱いは一部のレジスターを特別扱いして対処する)」「除算と平方根は近似命令だけ用意して正確な値は複数の命令を組み合わせて頑張ってもらう」「浮動小数点数レジスターの指数部の幅はx87の15ビットから2ビット増やす」」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「x87と違ってbinary32やbinary64の本来の指数部の範囲で計算することができる」「FPSRの一部のフィールドは複数通り用意しておくことができて、命令ごとにどれを使うか選択できる」」 / Twitter
倍精度
- hrk先生さんはTwitterを使っています 「これに関する研究は太古の昔からたくさんあり、多くの計算は短精度で十分だが、データ依存で事前に見分けるのがむずかしいから全部倍精度というのが現状だと思います。まあ、電気代の無駄ですね。」 / Twitter
- Yuki NagaiさんはTwitterを使っています 「なぜ物理の計算は倍精度計算で行われているのだろう?実は単精度でも問題ないとかないのかな」 / Twitter
- Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys 最終結果は単精度で良いとしても、計算の途中で容易に精度が落ちますね。例えば、条件数が10^3程度の「良条件」の逆問題を解くと、有効桁数が3桁落ちるので、単精度だと残り2桁。」 / Twitter
- Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys あとは、sumをとる変数を単精度にすると誤差が徐々に蓄積とか。精度落ちが伝搬しないように、単精度を使えるところを探す必要がありそうです。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@Prof_hrk 今時はSIMDベクトル演算器が沢山並んでるから、単精度の演算器を2個使って倍精度、…n個使って多倍長精度、ってできないかと悩んでるが現状ソフトでやった方が現実的なのが悔しい。」 / Twitter
桁落ち
- だめぽラボ@技術書典9さんはTwitterを使っています 「桁落ち、誤差が発生するとしたら引き算そのものではなくその前にすでに発生してるんだよな」 / Twitter
- kashiさんはTwitterを使っています 「この話、なかなか伝わりにくい。近い数同士の引き算は桁落ちが起きるとか言って脅されるのでヤバい演算みたいな先入観があるけど、近い数同士の引き算はむしろまったく誤差が発生しないことが知られています。 https://t.co/XnOJLsxbui」 / Twitter
- kashiさんはTwitterを使っています 「これなあ。0.28-0.27が0.01にならないみたいな例で浮動小数点演算に誤差が入ることを説明してるけど、それ、0.28や0.27を浮動小数点数に変換するときの誤差が100%で、減算では「全く」誤差は入っていないんだが、例として適切なのかな。 https://t.co/5cJiSzV9ve」 / Twitter
- 個人的な感想さんはTwitterを使っています 「高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア #note https://t.co/VV4AJwlfeT」 / Twitter
- 高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア|note
- kashiさんはTwitterを使っています 「どのくらい近いと無誤差になるかというと、浮動小数点数a,bが同符号で絶対値の差が2倍以内、すなわち|b|≦|a|≦2|b|であれば、a-bの計算に誤差は入りません。例えば199-99.5みたいな、3桁で差が2倍以内の引き算は、必ず答えが3桁以内になります。200-99.5=100.5みたいに2倍以上開いていると反例が。」 / Twitter
- kashiさんはTwitterを使っています 「この性質は、twosumみたいな変換が無誤差になるために重要な役割を果たしています。」 / Twitter
- kashiさんはTwitterを使っています 「せっかくなんでもう少し補足。浮動小数点演算で絶対値の差が2倍以内の引き算が無誤差になるという性質、厳密に言うとアンダーフローで指数部が下限を突破してしまうと成り立たないんだけど、IEEE754では非正規化数があるためこの破綻は決して発生しない。ここまで考えてたとしたらKahan先生すごい。」 / Twitter
誤差
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数で演算結果の真の値がその形式で表現できないこと」と「真の値に最も近い浮動小数点数(または、正しく丸めた値)とは異なる値が返ってくること」を(単に「誤差」と一括にするのではなく)区別して指す言葉があると嬉しいような気がするし、そんなに嬉しくない気もする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「前者は「丸め誤差」では?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「広い意味で量子化誤差じゃないかなーって思うけどどうだろう?」 / Twitter
- zakkiさんはTwitterを使っています 「前者は量子化誤差で、後者は近似計算誤差?後者はなんか違う気がする。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数を正しく恐れる」ようになるにはどのぐらいの知識があればいいのかなあ。実装のバグまで考慮すると「この演算(のソフトウェア実装)はバグっている可能性が無視できない程度に存在する(例:FMA)」みたいな知識も要る」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「例えば数学関数のsinは多くの環境では「真の値に最も近い浮動小数点数が返ってくる保証はない」わけですが、sinを呼ぶ側からすると関数呼び出しを一回しているだけなので「累積」とは呼びたくないんですよね」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「結局前者が累積して後者になるのが本当の問題なので両方とも「誤差」でいいと思っている どうしても区別したいときは前者を「丸めたときの誤差」、後者を「累積した誤差」と呼ぶかな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「無限級数や積分で表される関数を有限和で近似するときは丸めによる誤差以外に「打ち切り誤差」みたいなやつも出てくるから「和を計算する際に丸め誤差が累積するから最終結果に誤差が出る」という考え方は正しくない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754のレベルではそうなんですが、C言語では(Annex Fの下であっても)sinがIEEE準拠であることは要請していないので、その辺に転がっているsin関数がIEEE準拠とは期待できないのですよね」 / Twitter
- たいやき🥐さんはTwitterを使っています 「あんまり詳しくないんですけど,IEEE 754 で sin は correctly rounded であるべき(shall)とされているので,それなりに多くの環境で期待通りの答えが得られたりしないんでしょうか. https://t.co/gTBxb6gYtH」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数での三角関数の実装、初手「入力をπで割った余りを計算する」みたいなことをすると思うんだけど、πは有限桁の浮動小数点数では表現できないし、多倍長に頼らずに正確にやるのは辛そう」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「職場のTさん「あれ?マシンを変えたら精度が悪くなったな」 沼にひきずりこむオタク「現行のほとんどのアーキテクチャはIEEE 754-2008のbinary64に準拠した演算器なのでマシン実装のせいではなく並列度が変わったことによる演算順序の違いが丸め誤差に影響をしているんじゃないでしょうか例えば..」」 / Twitter
libmのsinの実装が正しく丸めた値からどのくらい乖離しているか判定
- だめぽラボ@技術書典9さんはTwitterを使っています 「libmのsinの実装が正しい値(正しく丸めた値)からどのくらい乖離しているか判定するコードを書いている(「正しい値」はMPFRで計算する)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「2^nの形の入力に対し、macOSのlibSystemは概ね真の値の1ulp以内の値を返すが、1ulp以上離れるケースもちょいちょいある。AArch64でのglibcはほとんどのケースで正しく丸めるが、0x1p25と0x1p938に対しては1ulp以内のズレがある。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ソースはこれ(書き殴りなので雑) https://t.co/SgltkVNV18」 / Twitter
- libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
- だめぽラボ@技術書典9さんはTwitterを使っています 「実行環境にMPFRを要求するのはアレなので値をソースコードに埋め込む形にしたいが、そういうのは時間ができたらだな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「いくつかの環境でlibmのsin関数の精度をチェックしてみた結果をGitHubに上げた: https://t.co/Tuv6dMZDhg」 / Twitter
- minoki/math-func-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「使用したlibcのバージョンとかも明記した方が良いのだろうけど、そういうのは追々」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptの数学関数の精度を検証(ブラウザー間での差異の比較)するのも同じ要領でできそうだけど、JavaScriptには十六進浮動小数点数リテラルがないのでアレ。十進リテラルで埋め込むか、文字列として埋め込んで手動でパースするか、あるいは53ビット整数と2の冪の積の形で埋め込むか。」 / Twitter
平方根
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の平方根をソフトウェア的に正確に(正しい丸めで)計算したいんだけどどういうアルゴリズムがいいのかね。ジェネリックな関数として書きたいので、反復の回数とかは決め打ちできない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「多倍長整数や有理数は使って良いものとする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「有理数の平方根を連分数表示するコードは書いてみたけど、結局何らかの方法で整数の平方根(のfloor)を別途計算する必要があるから、にゃーん」 / Twitter
ECMAScriptのMath.powや**演算子
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptのMath.powや**演算子って 2**n (nは整数)に対して正確な値を返す保証がないな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語もpowについてのそういう保証はないけど、C言語にはldexpとかscalbnとかがあるからなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで正確に2の冪乗を計算したいなら Number(2n ** BigInt(n)) が一つのやり方としてあり得そう(BigIntからNumberへは正しく丸められる保証がある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで十進小数リテラルは20桁以内なら正確に丸められることが保証されてる感じか?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数を書くの、初手ArrayBuffer/DataView経由でビット列に変換するのが一番手っ取り早いな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数、ざっくりこんな感じかな。表記のスタイルはいろいろカスタマイズの余地があるけど https://t.co/BxD5qWwVUi」 / Twitter
シンタックスハイライト
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数関連のコードや記事を書いてると、各所のシンタックスハイライターが浮動小数点数の十六進リテラルに対応してなくてにゃーんという気持ちになる」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaもGitHubも対応してない。VSCodeは単体のソースファイル表示時とMarkdown中のソースで違ったかもしれない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「セルフ先行研究 https://t.co/XalT9ePP6d」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのC言語のシンタックスハイライト、16進浮動小数点数リテラルに対応してない気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのシンタックスハイライトはRougeというやつを使っているらしい https://t.co/OqJiiVnYPy」 / Twitter
- Qiitaでシンタックスハイライト可能な言語一覧 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdown中のCのシンタックスハイライトも16進浮動小数点数リテラルに対応してないっぽい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdownプレビューのMarkdown処理にはmarkdown-itが使われていて、他の言語のシンタックスハイライトにはhighlight.jsが使われているという感じかな https://t.co/YYn0bGh6rm」 / Twitter
- vscode/package.json at 9bd54c15ae0c2017f4ea251e9eb9a88fb38d62c9 · microsoft/vscode
ゼロ除算ができる数、輪
- だめぽラボ@技術書典9さんはTwitterを使っています 「ゼロ除算ができる数、輪を実装してみたので解説 https://t.co/4uImnCh1ns #Qiita wheelを考える動機付けがこの記事だけだと弱い気がする(元ネタの文書では代数幾何への応用を考えてる感じ?)。」 / Twitter
- ゼロ除算ができる数、輪を実装してみたので解説 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「あと、元ネタの文書によると「wheel ⨀」の由来は「実射影直線(円と同相)に1点を付け加えたように見えるから」らしいけど、この記事だとその辺ちょっと誤解がある気がする。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の「正負の無限大を同一視」「NaN同士は等しい」とするとwheelっぽくなるんかな」 / Twitter
構成的な環論
- だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellのNum周りの型クラス階層がアレなのは事実だけど、Monoid => Semiringは良くないでしょ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「(+)についてのMonoidインスタンス」と「(*)についてのMonoidインスタンス」を独立に扱えるような言語機能を作るか、通常のMonoidの他に「AdditiveMonoid」「MultiplicativeMonoid」みたいなクラスをそれぞれ用意するか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「PureScriptの階層はメソッドのデフォルト定義がなくてnegateがzero - xと定義されているのが浮動小数点数的に良くないのと、あとはまあアーベル群みたいなやつは想定してないみたいで加法と乗法が分かれてない。あと除算周りもこれはどうかなあという仕様があった」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「いろんな環をうまく型クラス階層として定式化するには環論、それも普通のPIDとか言ってる方じゃなくて構成的な理論を勉強する必要がある」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「誰かが考えた数の型クラス階層は大抵他の人には満足のいくものではないので、満足のいくものが欲しかったら再発明上等というスタンスでやっていくしかない」 / Twitter
乗算のMitchellの対数乗算の近似
- Shiro KawaiさんはTwitterを使っています 「これは賢い。仮数部からのオーバーフローも指数部に+1することになるからオーダーは合う。指数部のオーバーフローはバイアス引く時にキャンセルされる。ただ加算後の指数部が127以下だとまずくないってのと、int加算のオーバーフローってUDじゃなかったっけ?」 / Twitter
- Dan KogaiさんはTwitterを使っています 「なるほど。すでに符号と仮数以外は対数表現になっているので足せば掛け算になる。計算尺の原理。符号もintならMSBの位置にあるので-×-はオーバーフローして+」 / Twitter
- nikqさんはTwitterを使っています 「へええええ~~~!IEEE754をintにキャストして加算すると、乗算のMitchellの対数乗算の近似になるのか…」 / Twitter
- Ikemen Mas KotさんはTwitterを使っています 「Deep Neural Network Training without Multiplications https://t.co/ow0HlEh6mt #maskotlib」 / Twitter
- [2012.03458] Deep Neural Network Training without Multiplications
- nikqさんはTwitterを使っています 「Cost-Efficient Approximate Log Multipliers for Convolutional Neural Networks https://t.co/fWa9qcqJ9n より、Fig2.1 https://t.co/eKr0seAUJ3」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@anohana intオーバーフローは例外で落とす処理系も確かにあって、例えばSwiftの整数演算はそう(オーバーフロー通す演算は&+とか&*とか&を頭に付けたのが別に用意)。けどオーバーフローを全く通せない処理系もまた見かけないし、整数キャストの理由自体MLの高速化なので指数は十分足りてると見立てたのでは?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@dankogai 論文には明記されてなかったと思うけど(見落としたかも)指数範囲は前処理とかで別途対処でしょうかね。signed intのオーバーフローがUDというのは論文にC++コードがあったからだけど、実装はC++である必要は確かにないですね。」 / Twitter
machine epsilon
- ドッグさんはTwitterを使っています 「浮動小数点数の比較のマージンに machine epsilon を使う (abs(a - b) < epsilon) のを推奨するのは良くないのではという話 https://t.co/o2znSYgCMg」 / Twitter
- EPSILON is a bad error margin and should not be recommended [float_cmp] · Issue #6816 · rust-lang/rust-clippy
- ドッグさんはTwitterを使っています 「そもそも浮動小数点数の精度は値に依存するので abs(a - b) < delta の delta に常にフィットする値が存在しないのはそれはそうだと思う.下手すると machine epsilon が何なのかすら分かってないケースとかもありそう」 / Twitter
加法の単位元
- Masaki HaraさんはTwitterを使っています 「Q. 加法の単位元としてふさわしいのはどちらでしょう? (JSに限らずIEEE754を使う処理系に共通の話として) https://t.co/gIo9DEdFrV」 / Twitter
- Masaki HaraさんはTwitterを使っています 「というか (+0.0) + (-0.0) が +0.0 なのが良くなくて実は(IEEE754策定時に) -0.0 とするべきだったという可能性はないだろうか。整数も 0b10000000 を 128 とするよりも -128 にするほうが合理的だったりするしありえない話ではない気がする。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「そうすると各処理系のsumの実装が気になるな。Rustは0.0スタートだった。 https://t.co/kjLhDTkMmy」 / Twitter
- Rust Playground
- Masaki HaraさんはTwitterを使っています 「@TETUONE100416 「浮動小数点数は実数のようで実数ではない」ということですね。その心構えは重要ですが、ここではそれは当然の前提とした上で浮動小数点数の浮動小数点数としての代数的な性質について議論しています。」 / Twitter
- mod_poppoさんはTwitterを使っています 「丸め方法がroundTowardNegativeかそれ以外かで変わるやつだ」 / Twitter
- mod_poppoさんはTwitterを使っています 「GHC の Num Float / Num Double のインスタンスのドキュメントに「0.0+(-0.0)=0.0 なので Float は加法に関する単位元を持たない」と書かれてるんだけど、実際のところ最近接丸めの下では -0.0 が加法の単位元として振る舞うんだよね https://t.co/wXODVugHIC」 / Twitter
- mod_poppoさんはTwitterを使っています 「(例によって signaling NaN は無視する)」 / Twitter
- mod_poppoさんはTwitterを使っています 「丸めモードが変化しうる状況では -0.0 が単位元とはならない場合がある(-∞方向の丸めの場合は 0.0+(-0.0)=-0.0 となる)けど、純粋関数型言語であるHaskellから見えるところで丸めモードを変化させるのは悪手だろう」 / Twitter
sqrt
- mod_poppoさんはTwitterを使っています: 「https://t.co/uTdhR6nQ5P なるほど、4.5*10^18程度の整数(完全平方であると仮定して良い)の平方根を求めたい感じか」 / Twitter
- D - Happy New Year 2023
- mod_poppoさんはTwitterを使っています: 「浮動小数点数のsqrtは不安なので、伝家の宝刀†二分探索†を使わせていただきますぞ〜〜〜! https://t.co/7uX6yYuKbw」 / Twitter
- 提出 #37866084 - AtCoder Beginner Contest 284
- mod_poppoさんはTwitterを使っています: 「浮動小数点数のsqrt (round . sqrt . fromIntegral) でも通るのか https://t.co/IXQeCtIhnH」 / Twitter
- 提出 #37866130 - AtCoder Beginner Contest 284
- mod_poppoさんはTwitterを使っています: 「ああ、x86の80ビットlong doubleが使える環境ならsqrtlで一発(誤差も出ない)だな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「machine epsilonを使って誤差評価する議論をやれば倍精度のsqrtとroundで問題ない証明ができるかもしれないけど、面倒だな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「今回のやつはroundじゃなくてtruncateでも良さそうな感じがするが、証明できるかな」 / Twitter
- mod_poppoさんはTwitterを使っています: 「truncateでも問題ない証明できたかもしれないけどどうするかな。記事にするのも面倒」 / Twitter
- mod_poppoさんはTwitterを使っています: 「書いた / 浮動小数点数オタクがAtCoder Beginner Contest 284のD問題をガチで解説してみる https://t.co/6HzB6N9TKd」 / Twitter
- 浮動小数点数オタクがAtCoder Beginner Contest 284のD問題をガチで解説してみる
- mod_poppoさんはTwitterを使っています: 「浮動小数点数の相対誤差を計算機イプシロンで抑えるやつ、「基本定理」みがある」 / Twitter
- bo9chanさんはTwitterを使っています: 「昨日のDでstd::sqrtでも問題ない件、これかなあ。(引用元の paper を読む能力がないのに tweet してしまうのは本来良くないけど) > 二乗してから平方根を取るとどうなるか > なんと必ず元の値に戻ることが証明されているようです。 https://t.co/SNLfHZLeEi」 / Twitter
- IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
- mod_poppoさんはTwitterを使っています: 「昨日の記事の解法4の証明ではpが整数であることは特に使ってないはず」 / Twitter
- mod_poppoさんはTwitterを使っています: 「浮動小数点数の性質を形式的に証明するやつをやりたいなあと思いつつ幾星霜」 / Twitter
histric
histric-1
- taklさんのツイート: "#tcfm 19 11:58~ レジスタウィンドウみたいなものが廃れたのは、レジスタ割当技術が進歩してコンパイラにやらせた方がいいということになったから、という説明をどこかで聞いた記憶があります。"
- Miura Hidekiさんのツイート: "https://t.co/ha96GdyoRl #tcfm 大変面白かったのだけど、IBMのマシンをもって昔はスタックが無かったというのだけはもやもやした。バローズのスタックマシンとかもあったわけなので"
- Toru Hisaiさんのツイート: "そういえば昔 GDC で聞いた講演で、C++ の最も素晴らしい機能はデストラクタで、なぜならそれは決定論的だから、というのを思い出した。 https://t.co/wjnrpFTKT8 ここの「The Beauty of Destruction」という講演。 https://t.co/QpeC1gj3XG #tcfm"
- Kazuho Okuさんのツイート: "そもそもIEEE754は実用上の理由に基づいたもので気持ち悪いところはいろいろあるよね。小さい数の場合はだんだん精度が悪くなってくけど、大きい数の場合はいきなり無限大に切り替わるとか"
- Ryou Ezoeさんのツイート: "入門書に書く浮動小数点数の詳細、IEEE-754がデファクトスタンダードなので解説するとしても、完全に詳細にはやらないかな。"
- Ryou Ezoeさんのツイート: "符号ビット、仮数部、指数部、+0.0と-0.0、+∞と-∞、2種類のNaNぐらいで十分だが、正直NaNはQuiet NaNだけで十分かもしれない。"
- Shiro Kawaiさんのツイート: "NaNはNaNでありNaN以上でも以下でもない! gosh> (list (nan? +nan.0) (>= +nan.0 +nan.0) (<= +nan.0 +nan.0)) (#t #f #f) だがNaNでもない! gosh> (= +nan.0 +nan.0) #f… https://t.co/zpKbzMG9jI"
- Shiro Kawaiさんのツイート: "おお、丸めモードの違いが目に見える形で現れたケースとして興味深い。… "
- 小学ニ年生 別冊付録さんのツイート: "#tcfm 向きの話題だ https://t.co/TVGQAngDEe"
- なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
- Ryou Ezoeさんのツイート: "16bit浮動小数点数型、機械学習用途以前は、HDR用途に使われていた経緯がある。"
- KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
- Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
- x86/x64における小数から整数への丸め処理命令の変遷 - Cybozu Inside Out | サイボウズエンジニアのブログ
- Fadisさんのツイート: "浮動小数点数から整数への変換はC言語の場合C11 §6.3.1.4.1でゼロに近づける方向にtrancate、C++の場合C++17 §7.10.1で小数部を破棄するのと同義になるようにtrancate(つまりC言語と同じ)、という風に定められてるよ"
- Fadisさんのツイート: "ただし浮動小数点数から元の値をそのまま表現できない浮動小数点数への変換を行う場合、近傍の2つの表現可能な値のうちどちらをとるかは実装が決めて良い事になっている(つまりどちらかになる事をプログラマは期待してはいけない) C++17 §7.9.1"
- Fadisさんのツイート: "Intelが将来のプロセッサで利用可能になる新しい浮動小数点数フォーマットBF16を公開した。BF16は既にある半精度浮動小数点数FP16と異なり、指数部8bit仮数部7bitになっている。Intel曰く、このくらいの方がディープラーニングにおける学習で欲しい範囲に合うらしい https://t.co/tTPfqMCXLa"
- Intel Publishes Whitepaper On New BFloat16 Floating-Point Format For Future CPUs - Phoronix
- Tsukasa #01 [要出典]さんのツイート: "参考までに、BF16 (bfloat16) は Google TPU (v2 以降) の演算形式で、かつ binary32 (IEEE single) の上位 16 ビットを切り取ったものです。――というか何故今ニュース記事になってるんだろう。 https://t.co/6h3XyUQMWj… https://t.co/h9aws20YxD"
- bfloat16 floating-point format - Wikipedia
- Tsukasa #01 [要出典]さんのツイート: "NVIDIA は単純な (tensor core で使用できる) IEEE FP16 (half) だと勾配消失を起こして学習が進まないことがあることを指摘しており、学習時のロスを大きくすることでこれを防ぐ手法を必要に応じて推奨している。BF16 は精度の代わりに表現範囲を増しており、この手法の必要性を低くする……のかな。"
- 島鉄雄さんのツイート: "浮動小数点も2進数で計算されてて ︙ 2^2 = 4 2^1 = 2 2^0 = 1 2^-1 = 0.5 2^-2 = 0.25 2^-3 = 0.125 ︙ 少数の方はどう頑張っても2のマイナスべき乗の組み合わせじゃ表現できない10進数が出てくる 0.1 をどうやって表現するか?小さい数を足していけばいいけど、小さくするにもビット数に限界がある… https://t.co/nsR9P1U0Gy"
- mはげさんのツイート: "誤差の原因は2つです。実は2つ目の方が支配的です。 また2つめは多め少な目どちらも起こりえます。 1. 10進数を2進数の32bit浮動小数点に変換した際の丸め誤差(表現誤差) 2. 大きい数(今までの合計)と小さい数(これから足す数)の足し算時の桁落ち誤差… "
- Hisaki Oharaさんのツイート: "bfloat16 (指数部が単精度と同じ8-bit) のwhite paperが出ていた (PDF) https://t.co/JzKq5iRGAR"
- bfloat16 - Hardware Numerics Definition
histric-2
- Masaki Haraさんのツイート: "https://t.co/4hmu15zgrv Rustのpowfは1.0のNaN乗を1.0とするが、これはIEEE754のpowではないもののPOSIXのpowf(3)の規定には準拠しているらしい。そういうこともあるのか。"
- powf for NaN returns 1 · Issue #60468 · rust-lang/rust
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Rubyにはこんな節約技が使われているのね。 (ちなみに「仮数部がすべて 1 の場合に NaN」というのは、「指数部」の誤記ではないかしらん?) ---- NaN Boxingというテクニックを知った - 不確定特異点 https://t.co/xQOhkVc076"
- NaN Boxingというテクニックを知った - 不確定特異点
- Fadisさんのツイート: "IEEE754の-0とかbitwiseで異なるNaN、浮動小数点数の山の中に別の情報を埋め込むのに使えるから数値計算系のデバッグで稀に役に立つ"
- 島鉄雄さんはTwitterを使っています: 「NaN === NaN //falseはそれでいいと思うけど? Cでも(というか機械語レベルで)nan == nan => 0となる。 逆にd !== dがtrueになる時はdがNaNになっていると判定出来る。(昔のCにはisnan()が無かったからd != dと判定した) NaNになった時にトラップ出来ない環境だと、NaNのデバッグは地獄だけどねw https://t.co/Nm3xh5tNlx」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「言語の実装でセルフホストにしたい時に、最難関な部分が浮動小数点の入出力だと思われる。 例えば 123456789012345678901234567890123456789012345678901234567890.0 を読み込んで 1.2345678901234567e+59 と出力して、それを更に読み込んだ時に内部でビットレベルで一致している事が求められる。 続く」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「C で普通にやると strtod() と printf() を使う事になるけど、printf() は正しい値を出力せずに、指定した桁か暗黙に決められてる桁数(6とか)しか出力しないから、入力⇔出力でビットレベルで一致させる事が常に出来ない(たまたま合う事はある)。 Emacs Lisp の場合はどうしてるかというと、」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「出力にgnulibのdtoastr()を呼び出しているけど、それは内部で 1.snprintf() を少ない桁数で文字列化 2.それを strtod() で読み込む 3.ビットレベルで一致しているか判定 4.一致してれば出力、してなければ桁数を増やして1へ と涙ぐましい努力をしているw セルフホスト用に自前実装する場合は」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「入力:AlgorithmM,AlgorithmR,Bellerophon 出力:Dragon4 あたりのアルゴリズムを使うけど、Mは簡単に理解出来るけど、それ以外はボヤっとしか理解出来ないw 特にDragon4は公開されてる実装が世の中に3つしか無いから俺が実装したよってサイトから拝借したw それでうまく行った 長文失礼しました」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double) を Gist に登録しました。 C言語で正確な浮動小数を出力するには、こんな感じにすればいいよというサンプルコードです。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「URLを忘れた… https://t.co/kJrYHVh2l5」 / Twitter
- リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double)
- 島鉄雄さんはTwitterを使っています 「JavaScirpt は数字は全て倍精度浮動小数で何だこれwと思ったけど、よく考えたら、普通の言語だと(i: 整数, f: 浮動小数) i + i, i + f, f + i, f + f の4通りを割り出す条件分岐が必要だけど、JavaScirpt は f + f の1通りで良い。 条件分岐が要らないからインタプリタ実行が高速になる。 天才だろ!」 / Twitter
- 島鉄雄さんはTwitterを使っています 「CPU レベルで考えたら、整数演算を倍精度演算器で実行するとか有り得ないけど、昔の CPU が非力でしかもインタプリタ実行しか無い時は、少しでも高速に実行したい訳だから、良く考えられた仕様だった。 という事に今気付いた。」 / Twitter
- κeenさんはTwitterを使っています 「Rustは浮動小数点数をMapのキーに出来ないように作られてる https://t.co/1Nnq6ZUDkv」 / Twitter
- ぽけばさんはTwitterを使っています 「はてなブログに投稿しました NaNとMap - pocketberserkerの爆走 https://t.co/sHSLwGKffR」 / Twitter
- NaNとMap - pocketberserkerの爆走
- くいなちゃんさんはTwitterを使っています 「整数と浮動小数点数では、メモリ上の配置が全然違うため、整数をむりやり浮動小数点数として読むと 値が大きく変わってしまいます。 逆にこれを活用して、ビットが0の個数を瞬時に数えたり、平方根を瞬時に求める方法が編み出されたりしていて、こわい黒魔術がたくさんあるのです…。」 / Twitter
- TokusiNさんはTwitterを使っています 「@kuina_ch 整数浮動小数点の変換回路をlog2の計算に使うのは実際にやったことがある・・・」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「浮動小数点の謎テクニックだと、こんなのも。 ---- 「IEEE 754形式では、float a, b が与えられたとき、a>b>0なら*(int*)&a>*(int*)&bとなる」 https://t.co/96ewE7pAaT https://t.co/ve2f0VfUSF」 / Twitter
- 基数ソート - Wikipedia
- Hideyuki TanakaさんはTwitterを使っています 「あとsqrtの丸め方向調べたいなら、printfで%gで表示するんじゃなくて%aで表示すべきじゃないんですかね…」 / Twitter
histric-3
- だめぽラボ@技術書典9さんはTwitterを使っています 「@Hishinuma_t MPFRで所定のビット数を指定して、演算ごとにmpfr_subnornalizeを呼び出せば、非正規化数の扱いを含めてbinary256相当になるはずです(NaNの扱いを除く) https://t.co/eGqZOcuShP」 / Twitter
- GNU MPFR 4.1.0
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数小話を読み返してたけど、二段階丸めのところで奇数丸めからの最近接丸めがうまくいく条件が書いてないな(桁数の差が1だとうまくいかない。1.4999→(奇数丸め)→1.5→(最近接偶数丸め)→2みたいなやつ)」 / Twitter
- ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
- きしもとさんはTwitterを使っています 「ヤバいのはアレね、Rubyとかのような一部の言語にある「小数点以下、十進でn桁」(←ヤバい)を指定できる奴」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数を二進浮動小数点数にするやつ、最初の700桁ぐらい読んで判断できない場合は残りの部分が0より大きいかどうか判断する、って感じで行けたりする?そもそも700桁も読みたくない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「【特に深い意味のないアンケート】「演算の順序」と聞いたときにどっちを思い浮かべますか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「昨日のアンケートだけど、「掛け算の順序」と言った時には x*y vs y*x を指していて、「浮動小数点数の演算の順序(どちらを先に計算するか)」と言ったときには結合法則の方を指してるんだよね。なので「演算の順序」って曖昧な言葉だな〜〜と思ったのでした(実際にアンケート結果は綺麗に割れた)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「だからHaskellのEqクラスが(==)と(/=)の両方をメソッドとして持ってるのは完全に冗長なんだよね。x /= y = not (x == y)以外の定義が有意義な状況を俺は知らない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の等号・不等号について成立しないのは x == x や x < y ⇔ not (x >= y) であって、 x == y ⇔ not (x != y) は普通に成立します」 / Twitter
- ドッグさんはTwitterを使っています 「だから Rust で f32 や f64 は Eq ではなく PartialEq なのじゃ…」 / Twitter
- てらモス♋️さんはTwitterを使っています 「ほんとだ NaN != NaN は ture だ」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「自分が何をしているかもわからないまま浮動小数点数の等号比較で許容する誤差として計算機イプシロンを使う人の話はやめろ!!!」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「計算機イプシロンは「浮動小数点数の四則演算1回の相対誤差の上限」みたいな感じの特徴を持つ量です。確か。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「元のツイートでは省略しましたがもちろん非正規化数が反例になります。確か。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あと知恵だけど、PythonはBCD演算を採用しておけばよかったかもね。後々事故が起きそう。どうせパフォーマンスは重視されないし」 / Twitter
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「浮動小数点って何? - Qiita https://t.co/s7FziMCvTJ この話、年に1回くらい誰かにしてるんですが、コンピューターサイエンスやってない私のような文系卒は余計こういうところ注意しておきたいですね」 / Twitter
- 浮動小数点って何? - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「検定について質問に来た若者にR使って説明したら「あんちべさんPythonじゃないの…」って言われたけど、適宜タスクに応じて使い分ければいいと思うし、超雑な説明として「Rの方が多分CSやってない人は意外性少ないと思う」って話の例で0.05*0.05の結果見せたら納得してもらえた(上がpython、下がR) https://t.co/F2K815Tkfy」 / Twitter
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「私含め浮動小数点の誤差がどうこうとか知らないまま大人になった勢、CSの人と話すの厳しいこと多くて、私は入り口としてここから本読んでいった。今もっといい本あるかもだけど、今読んでも楽しいし、夜長の(あくまで読み物として)読書におすすめ https://t.co/Yfyg9jE6ic」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「MS謹製のFMA実装が古いマシンだと間違える件、VS Feedbackを探したら「Closed - Not a Bug」になっているのを見つけた / [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback https://t.co/LIROJmSGjj」 / Twitter
- [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback
- だめぽラボ@技術書典9さんはTwitterを使っています 「誰もバグ報告してないようなら自分がバグ報告するつもりでいたけどこういうの見かけると萎えちゃうなあ。無償で他人を説得するほどのコミュニケーション能力は持ち合わせていないので」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA3を実装していないx86 CPUがこの世から一掃されれば解決する(=放っておいても時間が解決する)問題ではあるのだが、気持ち悪い」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「浮動小数点数の数式を渡すと誤差が小さくなるように式変形してくれるツール Harbie、便利だ https://t.co/VSYLUztGwY」 / Twitter
- Herbie: Automatically Improving Floating Point Accuracy
- ぽんこつさんはTwitterを使っています 「浮動小数点の四捨五入、浮動小数点は0.5は正確に表現できるけど0.05は正確に表現できないから指数部2桁目以降で四捨五入系のアルゴリズムだとバグるんですね、知らんかった」 / Twitter
- mod_poppoさんはTwitterを使っています 「PowerPCではfloatをdoubleにキャストしてもsignaling NaNがquiet NaNにならないのか?と思ってQEMUで確認したけどそんな感じがするな」 / Twitter
- mod_poppoさんはTwitterを使っています 「signaling NaNとquiet NaNのビット列としての表現でquiet NaNの方にビットを立てるのが好まれる(MIPS以外は全部これ)の、多分quiet化するときにpayloadをいじらずに済むからだな」 / Twitter
- mod_poppoさんはTwitterを使っています 「signaling NaNにビットを立てて区別する実装だと、ペイロードが0のsignaling NaNをquiet化するときに(infinityにならないように)どれか一つ恣意的に選んだビットを立てなくてはいけない」 / Twitter
- mod_poppoさんはTwitterを使っています 「確認に使ったコードはこれ https://t.co/l0piTPPGri」 / Twitter
- floating-point-test/float-to-double-and-snan.c at master · minoki/floating-point-test
- RたんさんはTwitterを使っています 「@lotz84_ 強いて言えばブール代数です。数独のあるマスに1..9を入れられるかどうか、というのを各1ビット(計9ビット)で表現すると、論理演算とpopulation count (1であるビットがいくつあるか数える)で数独を解けます(難問はバックトラッキングを併用)。こうするとSIMD並列化できて分岐処理を減らせます。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE754によれば、NaN (Not a Number) には2種類のビット表現がありうる。これを利用して NaNだけであらゆるデータを表現しようというおバカプロジェクト。 https://t.co/hiyngwVoRt」 / Twitter
- thoppe/NansAreNumbers: An esoteric data type built entirely of NaNs.
- ドッグさんはTwitterを使っています 「GCC の -ffast-math で行われる最適化の解説.x + 0.0 → x の最適化ができない(-0.0 があるので)とか,浮動小数点例外があるから投機的に計算を実行できないとか,結構面白い | 'Optimizations enabled by -ffast-math' https://t.co/7D4wuIX9uJ」 / Twitter
- Optimizations enabled by -ffast-math – Krister Walfridsson's blog – Compilers, programming languages, etc.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「指数と仮数」とかいう用語を使わない視覚的な浮動小数点の説明。指数部は 1, 2, 4, 8, …というスライドする窓のひとつを選ぶと考え、仮数部はその窓の中における相対的な位置を表すと考える。 たとえば 3.14は「2~4」の窓の中で57%の位置にあるから仮数部は0.57×2^23。 https://t.co/QMHQ6ouzjA」 / Twitter
- Floating Point Visually Explained
- mod_poppoさんはTwitterを使っています 「浮動小数点数の四則演算と言えばこれ」 / Twitter
- mod_poppoさんはTwitterを使っています 「皆さんお馴染みの四則演算といえば、+, -, *, /, sqrt, FMAですね」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の計算に再現性を持たせるための注意事項みたいな記事を書きたいと思いつつ一年以上経過した」 / Twitter
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@yasuo_ozu NaN の絡む分かりやすい例だと a = 2 b = 2^127 c = 2^-126 とすると、 (a * b) * c = NaN a * (b * c) = 4 です。」 / Twitter
- mod_poppoさんはTwitterを使っています 「これは単精度の例で、倍精度だと a=2 b=2^1023 c=2^(-1022) とかになる。あとこの場合はNaNじゃなくてInfinity(NaNにしたかったらcを0にする)」 / Twitter
- mod_poppoさんはTwitterを使っています 「オーバーフロー・アンダーフローが絡まない、「浮動小数点数の乗算が非結合的である例」は a=1.0000000000000002 b=c=1.9999999999999998 とかかな。 (a*b)*cは3.9999999999999996でa*(b*c)は4になる」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の足し算と掛け算の非結合性、足し算は掛け算とexp/logで移り合う関係だしどっちかだけが結合的・非結合的ってことはないやろ、と思いそうになったけど 微少量+1-1 みたいな例はexpで移すと潰れちゃうのでアレだった(例を用意するならちゃんと考えないといけない) https://t.co/0l10PGuqjv」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の同人誌にNaNのsignaling/quietの区別について書いた気がしたけどMIPSとは書いてなかった https://t.co/P8O9cpXke0」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「今日知ったこと: マルウェアが検出を避けるためコードをモーフィングする技法のひとつに "Shikata-Ga-Naiエンコーダ" というものがあるらしい。これはFPU命令を使ってデコーダ自体も検出しにくくできるという優れた? 特性がある。 https://t.co/5AjR9FW8c1」 / Twitter
- Shikata-Ga-Nai encoder
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「3D処理などでsin/cosを多用する場合、回転角としてラジアンを使う必要がない。ほとんどのsin/cosは内部的にはテーブル参照によって実装されているので、回転を0~1で表す方が結果的にコストは少なくなる。πを掛ける手間も省ける。 https://t.co/RoBm1pn6mK」 / Twitter
- Turns are Better than Radians - by Casey Muratori
- 02.pdf
- 2020年振り返りと来年に向けて | 雑記帳
- 『浮動小数点演算について計算機科学者は何を知っておくべきか』の付録 - Oracle® Solaris Studio 12.4: 数値計算ガイド
- kashiさんはTwitterを使っています 「面白いな。ODEをあえてただのEuler法、超低精度、積み残しが起きそうな小さなstep sizeで解いてるという特殊な状況とはいえ、最近点丸めよりも確率的丸めを使った方がずっといい結果が得られる、なんてことがあるんだな。 https://t.co/pMhjxz1g5I」 / Twitter
- Numerical Linear Algebra GroupさんはTwitterを使っています 「Plotting Circles to Test Low Precision Arithmetics and Rounding Modes https://t.co/w2zQqQbDrs」 / Twitter
- Plotting Circles to Test Low Precision Arithmetics and Rounding Modes | Numerical Linear Algebra Group
- kashiさんはTwitterを使っています 「同じ人か。ODEとかでいい精度出ることあるし、確率的丸めをハードウェア化しようぜみたいなこと言ってる。こんなのが普及したらますます精度保証に利用しづらいハードウェアが増えてしまうではないか。 https://t.co/q00d6ZysS7」 / Twitter
- [2001.01501] Stochastic Rounding: Algorithms and Hardware Accelerator
- kashiさんはTwitterを使っています 「そうか。確率的丸めって、単に切り捨て切り上げを確率1/2、もあるけど、例えば3.14を2桁に丸めるとき確率0.6で3.1、確率0.4で3.2みたいにすれば期待値は3.14、みたいなことができるのね。これは計算重そう。twosum/twoproductを使って捨てる部分の大きさを見れば(多倍長よりは)高速な実装できそう。」 / Twitter
- kashiさんはTwitterを使っています 「これって、例えばRumpの例題みたいなのでも、期待値は真値になって、多数回計算すると平均は真値に収束するのかなあ。そりゃそうだろという気分と、そんなわけあるかという気分が半々だ。試してみたい。」 / Twitter
実数
- 結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても -a < x < a が成り立つならば、x = 0 である」というのを初めて知ったとき、強い驚きがありました。印象深いので何度も思い出します。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「確かに考えたら、数値計算で理論上は0になるけど微妙に0にならないやつの判定の時って無意識的にこれやってるわけだな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「数学的な言い回しって、個人的には「まどろっこしい表現だなあ」と感じがちだけど、コードに実装した後に俯瞰すると、ああ結局その言い回しの通りになるんだな、あれは確かに絶妙な表現なんだな、ってなるみたいな感じある」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「あの分野の人たちは言い回しそのものがめっちゃリファクタリングや最適化されつくした後のコードみたいになってる感」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「なので直感イメージそのままのラフい言い回しをすると怒られが発生する。でもコードだったらって考えたら納得」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「ああでもこれ無限大でもどうですかって言われたら直感だけで考えるの危険だな、やっぱしっかり確かめないといけないんだろうな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「無限は怖い。怒られるイメージしかない」 / Twitter
- 結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても、-a ≠ x かつ x ≠ a が成り立つならば、x = 0 である」というのをいま知って、強い驚きがありました。印象深いので何度も思い出しそうです。 https://t.co/SMF7MWM5ed」 / Twitter
- ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています 「-a<x<aを「x≠-aかつx≠a」に弱めても成り立つ、つまり0以外のどれと等しい可能性も潰されるので0しかない……ので実数の完備性とか極限の話とか、実はあまり関係ないのよね。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「ああそっか、等しくないというのは安全に言えるのか」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「大きい/小さい、ってそもそもなんなんだろうな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「自然数としてはペアノの公理から出発して0からインクリメンタルに生成されてく、そこで大小(というよりは前後)の順序が付いて、そっから負の数、実数と広げてく感じかな?」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「でも自然数に0を入れない派もあるけどそっから出発して拡張するとどうやって0近傍の大小関係を引っ張り出すんだ?最初に0→1の順序決まってないと (-1,+1) で大小未定義みたいな謎空間にならんのかな? 負の数→実数→...の拡張考えるとやっぱ自然数の時点で0入れとくのが手っ取り早いのかな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そう考えるとやっぱ0から生成すんのが奇麗に思うな自然数は」 / Twitter
GPU
SPIR-V
LLVM
- FadisさんはTwitterを使っています: 「LLVMにSPIR-Vバックエンドを追加するための最初のパッチがLLVM 15に入る流れになっているらしい。SPIR-VはGPUで実行するコードをベンダ非依存かつ素早くパースできるように作られたバイナリ形式の中間言語。Vulkan等を使ってGPUのネイティブコードに落として実行する https://t.co/m3RjSSAcgi」 / Twitter
- Initial SPIR-V Backend Code Lands In LLVM 15 - Phoronix
- FadisさんはTwitterを使っています: 「このバックエンドでSPIR-Vを吐くためにはSPIR-V固有の情報をフロントエンドから与える必要があるため、このバックエンドがあっても直ちに任意の言語をSPIR-Vに落とせるようになるわけではない。ただし、GPU向けに作られた言語以外の言語をGPU向けのコードを吐けるように拡張するのは以前より容易になる」 / Twitter
- FadisさんはTwitterを使っています: 「このバックエンドは以前からIntel、ARM、Khronos等が開発を進めていた物で、LLVMに「適切な場所に実装された」SPIR-Vバックエンドを追加する事を目指している。適切でない場所というのはMLIRの実装にくっついているSPIR-Vバックエンドを指している」 / Twitter
- gfx-rs/rspirv: Rust implementation of SPIR-V module processing functionalities
histric
histric-1
- すらりんさんのツイート: "OpenGL 使い(自分) が求めていたのは GL_ARB_get_program_binary ではなく GL_ARB_gl_spirv 。コードからコンパイル済みの中間データなのでおそらく他環境へ持って行っても大丈夫なはず(未検証"
- Fadisさんのツイート: "OpenGLではシェーダはGLSLという高級言語の状態でランタイムに渡し実行時にコンパイルするが、大量のシェーダを使う今日のグラフィックではこのコンパイル時間が深刻な問題になっていたため、事前にコンパイルしておける中間言語SPIRを後付けで規格化し、拡張で対応していた"
- Fadisさんのツイート: "VulkanではSPIRの後継にあたる中間言語SPIR-Vがランタイムが要求するシェーダの形式になっており、Vulkanに対応した環境ならどこでも事前にシェーダをコンパイルできる。Vulkanの規格は高級言語に何を使ったかは問わない"
- Fadisさんのツイート: "で、使い慣れたGLSLをVulkanで使いたい人の為にGLSLをSPIR-Vにコンパイルする拡張が用意されてる https://t.co/fLUP7rhFd3"
- Fadisさんのツイート: "これ、VulkanにGLSLを足す拡張ではなく、OpenGLランタイムがVulkan用のSPIR-Vを吐けるようにするOpenGLの拡張なんだなw"
- Fadisさんのツイート: "MesaのAMDGPUドライバのGLSLコンパイラをNIRに対応させたい→Vulkan側にSPIR-V→NIR→マシン語の実装が既にあるからGLSLをSPIR-Vにコンパイルしよう→MesaにARB_gl_spirv実装の機運 https://t.co/S00U7UHxz1"
- Fadisさんのツイート: "ARB_gl_spirvってのはOpenGLランタイムがGLSLをコンパイルして、それを自分で実行するのではなくVulkanの中間言語形式SPIR-Vで出力できるようにする拡張。これを使えばGLSLで書いたシェーダをコンパイルしてVulkanに食べさせる事ができる"
- Fadisさんのツイート: "今年のGSoCに「SPIR-VをLLVM IRにコンパイルしてCPUで走るVulkanレンダラ」を目指す学生さん登場。メンターはMesaのRADEON用Vulkanドライバの人。まだ殆ど何も無いけどgithubにリポジトリが出来てる https://t.co/42YzLu8KMq"
- The Git Repository For The Vulkan Software Renderer In Development - Phoronix
- google/clspv
- SPIR-Vシェーダー拡張を統合した「OpenGL 4.6」が公開 | OSDN Magazine
- Christopheさんのツイート: "SPIR-V back-end in Microsoft HLSL compiler: https://t.co/GdN1DC0nP8"
- Fadisさんのツイート: "HLSLをSPIR-Vにコンパイルする場合の機能の対応関係について https://t.co/B9LNM9RfgW"
- DirectXShaderCompiler/SPIR-V.rst at master · Microsoft/DirectXShaderCompiler
- GPGPU戦争の歴史を紐解く ―勃発から現在に至るまで― - syghの新フラグメント置き場
- OpenGL 4.6の進化点やOpenCLの将来について,Khronos Group代表のNeil Trevett氏に聞いてみた - 4Gamer.net
- いぐにすさんさんのツイート: "GPGPU黎明期に飛びついて少し触った人(の一部)、「自分もGPGPUの経験あるけどメモリ足りないしhost/deviceのメモリ転送コスト高い」と言い出すんやけど、現代は1枚10GB搭載グラボ簡単に手に入るので知識をアップデートして欲しい"
- Fadisさんのツイート: "マッピングでややこしいメモリ転送が簡単になったし、カーネル内からカーネル呼べるようになって動的な並列度の変更もしやすくなったし、コンパイラは初期より正しくC++を読むようになったし、ちょっとした用途なら便利なライブラリが揃ってるし、確かに初期のCUDAの感触は微塵も役に立たないな"
- Fadisさんのツイート: "クロノスグループ、LLVM IRとSPIR-Vの双方向の変換を行うトランスレータを公開。LLVM IRに落とせるプログラミング言語を使ったシェーダの記述やLLVMがサポートするアーキテクチャ上でのシェーダの実行等への応用が期待される https://t.co/WYUcm2otdF"
- Khronos Officially Announces Its LLVM/SPIR-V Translator - Phoronix
- FadisさんはTwitterを使っています: 「RustのサブセットをSPIR-Vにコンパイルする猛者が現れた。SPIR-VはGPUで実行する処理の中間表現で、従来GLSLやHLSLをコンパイルして作る物だった。Vulkan等はこれを食べてGPUのネイティブバイナリを作る。サブセットはRust Like Shading Language(略してRLSL)と呼ばれている https://t.co/hHFlGkCoJp」 / Twitter
- RLSL Allows Running A Subset Of Rust On Vulkan/SPIR-V Enabled GPUs - Phoronix
- FadisさんはTwitterを使っています: 「W3CがWeb Gameに関する進捗報告の中で、WebGPUでSPIR-Vをシェーダの形式として利用できないかクロノスグループと議論した事が述べられているのがPhoronixの記事になっている。SPIR-VはVulkan等で使われているシェーダの中間表現、WebGPUはWebGLの後継とされるグラフィックAPI https://t.co/cr9bwswUPp」 / Twitter
- Khronos + W3C Collaborating On SPIR-V Potentially Being The Shading Language For The Web - Phoronix
- KhronosGroup/SPIRV-Cross: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
- KhronosGroup/SPIRV-Headers: SPIRV-Headers
- KhronosGroup/SPIRV-Tools
- KhronosGroup/SPIRV-LLVM: LLVM framework with SPIR-V support. It's intended to contain LLVM <-> SPIR-V converter and serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
- Khronos SPIR-V Registry
- OpenGL で SPIR-V のシェーダー
- HPVM: Heterogeneous Parallel Virtual Machine についてのメモ - FPGA開発日記
- FadisさんはTwitterを使っています 「HPVM: GPUのような並列度で性能を稼ぐアーキテクチャは現状それぞれの実装でPTXやHSAILといった中間言語を持っているが、これではアーキテクチャ非依存の最適化を実装しにくいので、LLVM IRを拡張してこの種の中間言語が持っている機能の和集合となるような物を定義したらしい https://t.co/NzRpbFLbCi」 / Twitter
- HPVM - Heterogeneous Parallel Virtual Machine
- FadisさんはTwitterを使っています 「HPVMで書かれたコードを、NVIDIAのPTXに落とすことも、AMDやARMで使われるHSAIRに落とすことも、OpenCLの中間言語形式SPIRに落とすことも、CPUのSIMD命令で実行する命令列に落とすこともできる、と」 / Twitter
- てらモス♋️さんはTwitterを使っています 「コンパイラとは、実装とは別に形式論理的に定義されるプログラミング言語という制約条件下で最適化を行うプログラムなので、言語拡張というものは醜悪で、プログラミング言語上で並列化に関する構文を作りコンパイラがそれに基づいてコードを生成するというのは本筋だと思うですよ(´・ω・`)」 / Twitter
- Cure-RiceさんはTwitterを使っています 「”謎の半導体メーカー”のコンパイラが指示行なしで種々の Fortran 構文を自動 GPU 並列化してくれるようになるらしい。 DO CONCURRENT は前にもニュースになっていたけれど、かなり広い範囲に適用されそう。 https://t.co/G7eFueIQZD」 / Twitter
- てらモス♋️さんはTwitterを使っています 「もうハードウェアがあってソフトウェアがある時代じゃなくて、ソフトウェアがあってそれが高速に動作するハードウェアを作る時代やからな(´・ω・`)」 / Twitter
- FadisさんはTwitterを使っています 「SPIRV-Reflectを使うとSPIR-Vを自力でパースするより楽にSPIR-Vのバイナリが持っている入力の型と個数、出力の型と個数、デスクリプタセットに並べる必要があるリソースの型と個数を取得することができる https://t.co/IiaY9Li0AK」 / Twitter
- KhronosGroup/SPIRV-Reflect: SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
- FadisさんはTwitterを使っています 「マイクロソフトが古くなってきたDirectX Shader Compiler(dxc)の近代化を計画している話。DirectXのシェーダの中間言語DXILはほぼLLVM IRで、オリジナルのdxcはllvm-3.7(とclang-3.7)をforkして作られていた。今回の変更はdxcの機能を最新のLLVMの上に実装し直すらしい https://t.co/2f4GUy5ACU」 / Twitter
- Microsoft Wants To Add DirectX + HLSL Support To The Upstream LLVM/Clang Compiler - Phoronix
- FadisさんはTwitterを使っています 「マイクロソフトは新しいdxcはLLVMをforkするのではなく、dxcに必要な機能を本家に入れていく事で実現したいという提案をLLVM側に対して行っている。dxcはSPIR-Vへのコンパイルも行うため、両者のコードベースの統一によってマイクロソフトはLLVMのSPIR-Vサポートの改良にも貢献できるとしている」 / Twitter
- FadisさんはTwitterを使っています 「DirectXとVulkanで違う言語でシェーダを書きたくないというのは人類共通の願いなので、Vulkan 1.2でHLSLからSPIR-V作った場合の挙動に関する規格が整備されて、Vulkanは広く使われてるしSPIR-Vも広く使われているけどGLSLは絶滅危惧種みたいな状態になってる」 / Twitter
- Initial SPIR-V Backend Code Lands In LLVM 15 - Phoronix
- FadisさんはTwitterを使っています: 「MesaのV3DVにVulkan 1.2のサポートに向けた拡張が続々と実装されている話。V3DVはRaspberry Pi 4に積まれているGPUであるVideoCore VIをMesaから使うためにオープンソースで開発されているドライバで、昨年秋にVulkan 1.1のサポートが完了した https://t.co/H2xkmhKR0U」 / Twitter
- Raspberry Pi's Vulkan Driver Has Been Adding More Extensions, Multi-Sync Support - Phoronix
- FadisさんはTwitterを使っています: 「V3DVはその後も活発に開発が続けられており、今回新たにVK_KHR_timeline_semaphore、VK_KHR_driver_properties、VK_ KHR_shader_float_controls、VK_KHR_spirv_1_4に対応した。これらの拡張はVulkan 1.2で標準に取り込まれた機能でV3DVをVulkan 1.2に対応させるために準備を進めている事が読み取れる」 / Twitter
- FadisさんはTwitterを使っています: 「OpenGL時代の文法が濃く残るGLSLと比べてHLSLの方が書きやすくなっている今日、Vulkan向けのSPIR-VはHLSLで書かれる事が多い。HLSLからSPIR-Vにコンパイルする場合SPIR-Vのバージョンは1.4以上でなければならないが、SPIR-V 1.4をVulkanの実装が読むにはVK_KHR_spirv_1_4のサポートが必要になる」 / Twitter
KTX 2.0
- FadisさんはTwitterを使っています 「KTX 2.0が発表されたらしい。KTX 2.0はKhronosが標準化したテクスチャ画像を1つのファイルにまとめるコンテナ形式で、Basis Universal形式(GST)による圧縮がサポートされる。これは何種類もあるGPUが直接読める圧縮形式に変換できる中間表現で、変換をGPU上で行えるのが特徴 https://t.co/pklsAZVOWz」 / Twitter
- Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets - The Khronos Group Inc
- FadisさんはTwitterを使っています 「KTX 2.0はテクスチャストリーミングを想定して小さいmipmapを先出しできるファイル形式になっている他、glTFからKTX形式のテクスチャを参照する為の拡張 KHR_texture_basisu がglTFに追加される。」 / Twitter
- FadisさんはTwitterを使っています 「KTX 2.0のファイルのmagicが面白くて、KTXである事を確認するKTX 20の他に、7bit文字しか通らない伝送路でバイナリが壊れていない事を確認する\xab、改行コード変換でバイナリが壊れていない事を確認する為のCR LF、文字列と誤認するソフトウェアを減らす為の\x1aが入ってる https://t.co/w2Qgu2NyCn」 / Twitter
- KTX File Format Specification
MIAOW
- 【連載】Hot Chips 27 - ウィスコンシン大学のOpen GPU「MIAOW」 | マイナビニュース
- MIAOW GPU
- VerticalResearchGroup/miaow: An open source GPU based off of the AMD Southern Islands ISA.
- Raghuraman Balasubramanian's research works | University of Wisconsin–Madison, Wisconsin (UW) and other places
- Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU | Request PDF
- Enabling GPGPU Low-Level Hardware Explorations with MIAOW: An Open-Source RTL Implementation of a GPGPU: ACM Transactions on Architecture and Code Optimization: Vol 12, No 2
DirectStorage
- Microsoftがついにゲームの読み込み時間を高速化する「DirectStorage」をWindowsに導入すると発表 - GIGAZINE
- ゲームのロード時間を大幅に短縮する「DirectStorage API」がPCで利用可能に - 窓の杜
- Windowsゲームのロードを高速化するDirectStorage技術が一般公開へ - PC Watch
- FadisさんはTwitterを使っています 「DirectXの新しいAPI DirectStorageについて。DirectStorageは元々XBOX Series X|S向けに提供されていたストレージ操作のためのAPIをPCに持ち込んだ物で、大量のI/O要求を非同期で投げてバッチで結果を取得する新しいファイル操作APIを提供する https://t.co/CfecURXRUt」 / Twitter
- DirectStorage API: Windows 10* and 11 catch up with Xbox Series X|S
- FadisさんはTwitterを使っています 「近代的なビデオゲームではテクスチャストリーミング等の為にストレージからGPUに対して沢山のデータを送る必要がある。これらのデータは個々には小さく、同時に沢山必要になるので、ストレージは大量の小さいファイル操作要求を受けることになる」 / Twitter
- FadisさんはTwitterを使っています 「NVMeはこのような状況で高い性能を発揮するハードウェアだが、OSのファイル操作APIでは個々の操作で生じるCPUのオーバーヘッドが大きすぎてその性能を活かす事ができない。そこでカーネルに手を入れて大量のI/O要求を効率よく流せるキューと、複数のI/Oの結果をまとめて取得できる仕組みを作ったらしい」 / Twitter
- FadisさんはTwitterを使っています 「具体的なAPIはまだ公表されていないが、おそらくLinuxのio_uringのような物をWindowsに生やしたのではないかと思われる。DirectStorageのAPI自体はWindows 10またはWindows 11で使えるが、カーネルの支援を伴う最適化されたI/O要求はWindows 11でのみ行われる」 / Twitter
- FadisさんはTwitterを使っています 「DirectStorageはGPU上での圧縮テクスチャの展開の面倒も見るらしい。GPUが直接サンプリングできる圧縮テクスチャの圧縮率はあまり良くないので、テクスチャは「より圧縮率の高い形式でストレージに置いて、GPUが読める程度に圧縮された形式に展開する」ということがよく行われる」 / Twitter
- FadisさんはTwitterを使っています 「XBOX Series X|Sはこの展開を行う専用ハードウェアを備えているが、PCにはそういうものが無いのでDirectComputeで普通のGPU上で高速に展開できる新しい形式を用意したらしい。そういう手法としては以前からGSTが知られている。詳細は不明だがこれの亜種か何かじゃなかろうか https://t.co/h6ZYHXlnmx」 / Twitter
- FadisさんはTwitterを使っています 「DirectStorageのAPIはNDAを結んだ開発者に対して以前からプレビュー版が提供されていて、Windows版Forspokenが実際にこのAPIを使っているらしい。今年のGDCでこのゲームの中の人が実際の製品でDirectStorageを活用するノウハウの話をするらしい https://t.co/7HOnIYwWI2」 / Twitter
- DirectStorage API Now Available on PC - DirectX Developer Blog
- masafumiさんはTwitterを使っています 「サンプル https://t.co/MK6vFYenHo」 / Twitter
- microsoft/DirectStorage: DirectStorage for Windows is an API that allows game developers to unlock the full potential of high speed NVMe drives for loading game assets.
- Windows 11とDirectStorageでゲームロード時のCPU負荷が最大40%低減 - PC Watch
VMA
- FadisさんはTwitterを使っています 「Vulkan Memory Allocator(VMA) 3.0がd出たらしい。Vulkanではmallocではダメな特殊なメモリの確保をvkAllocateMemoryで行うが、メモリ確保がページ単位、用途に合うメモリの選択が手動等不便なので、より便利なメモリ確保のためにVulkanとアプリケーションの間に入るのがVMA https://t.co/vcXtuc4kl3」 / Twitter
- AMD's GPUOpen Releases Vulkan Memory Allocator 3.0 - Phoronix
- FadisさんはTwitterを使っています 「VMA 3.0ではアプリケーションがどんな用途のメモリを欲しているかを表すフラグがより詳細になる。従来のフラグも互換性の為に残されるが、新しいフラグを使うことで特定用途向けに特殊な振る舞いをするメモリを持っているGPUでよりハードウェアを活用したメモリの選択が期待できる」 / Twitter
- FadisさんはTwitterを使っています 「VMA 3.0ではメモリアロケータのアルゴリズムが従来のリニアアロケータから、より高速でよく研究されているアルゴリズムであるTwo-Level Segregated Fitに変更されたらしい。また、なんとなく動いていたけど実はサポートしていなかったVulkan 1.2と1.3が正式にサポートされた」 / Twitter
- FadisさんはTwitterを使っています 「VMA 3.0ではVulkanがVK_KHR_buffer_device_address拡張に対応している場合、GPU側でのアドレスを取れるメモリをVMA経由で確保できるようになる。GPU側のアドレスはGPU上で木構造や連結リストを作る際に必要になりがちで、Vulkanでレイトレーシングを行う場合必須になる」 / Twitter
- FadisさんはTwitterを使っています 「またVMA 3.0はアロケータに優先度を付けられるようになる。VK_EXT_memory_priority拡張に対応するGPUでは、限られた高速なメモリにデータが乗り切らない時、透過的にページを低速なメモリに移動させるが、このとき優先度が高いページほど高速なメモリから落ちにくくなる」 / Twitter
PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第1回 ~固定機能からシェーダへの移り変わり - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第2回 ~GPGPUへの最適化や電力効率向上へ進んだNVIDIA GPUの歩み - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第3回 ~ビッグGPUから効率重視へ、そしてGCNへと繋がるAMD GPUの歴史 - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
- Apple、macOS/iOSで「OpenGL/CL」の利用を“非推奨”に - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GTCでKhronosが明らかにしたAPIアップデート - PC Watch
マイナビ
コンピュータアーキテクチャの話
310-324
- コンピュータアーキテクチャの話 (310) 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理 | マイナビニュース
- コンピュータアーキテクチャの話 (311) 現在のGPUの主流となっている「ユニファイドシェーダ」 | マイナビニュース
- コンピュータアーキテクチャの話 (312) 固定小数点の演算から、浮動小数点の演算へ | マイナビニュース
- コンピュータアーキテクチャの話 (313) 1つの命令で複数の演算器を動かす「SIMD」 | マイナビニュース
- コンピュータアーキテクチャの話 (314) Teslaアーキテクチャが採用した「SIMT方式」 | マイナビニュース
- コンピュータアーキテクチャの話 (315) ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式 | マイナビニュース
- コンピュータアーキテクチャの話 (316) GPUが高性能な理由 | マイナビニュース
- コンピュータアーキテクチャの話 (317) 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU | マイナビニュース
- コンピュータアーキテクチャの話 (318) GPUはどうやってマルチスレッド処理を行っているか | マイナビニュース
- コンピュータアーキテクチャの話 (319) CPUに比べて圧倒的に多いレジスタ数 | マイナビニュース
- コンピュータアーキテクチャの話 (320) なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか? | マイナビニュース
- コンピュータアーキテクチャの話 (321) GDDR5の後継として検討されるHBM | マイナビニュース
- コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
- コンピュータアーキテクチャの話 (323) GPUで用いられるメモリのエラー検出手法とその訂正手法 | マイナビニュース
- コンピュータアーキテクチャの話 (324) GPUのエラー発生頻度はどの程度のものであるか? | マイナビニュース
325-349
- コンピュータアーキテクチャの話 (325) エラーの検出方法 | マイナビニュース
- コンピュータアーキテクチャの話 (326) 1ビット訂正ハミングコード | マイナビニュース
- コンピュータアーキテクチャの話 (327) CMOSにおける消費エネルギーと動作速度の関係 | マイナビニュース
- コンピュータアーキテクチャの話 (328) 「GPU」はスループット重視のプロセサ | マイナビニュース
- コンピュータアーキテクチャの話 (329) GPUは膨大なバンド幅をどうやって実現しているのか? | マイナビニュース
- コンピュータアーキテクチャの話 (330) レジスタファイルとシェアードメモリ | マイナビニュース
- コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性 | マイナビニュース
- コンピュータアーキテクチャの話 (332) シェアードメモリとキャッシュメモリは何が違うのか | マイナビニュース
- コンピュータアーキテクチャの話 (333) GPUにおける1スレッドあたりのキャッシュ容量の考え方 | マイナビニュース
- コンピュータアーキテクチャの話 (334) キャッシュのコヒーレンスはどのように保たれているのか | マイナビニュース
- NVIDIA GPUのキャッシュを考える (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA | マイナビニュース
- GPUのコアと2次キャッシュの関係性 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
- CPUと異なるGPUのキャッシュ活用 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
- 実はGPUは低速処理のプロセッサ!? (338) 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU | マイナビニュース
- コンピュータアーキテクチャの話 (339) よくわかっていないGPUのハードウェアの造り | マイナビニュース
- NVIDIA GPUの基本的な実行方式 (340) NVIDIAのGPUにおける実行方式 | マイナビニュース
- 事実上標準のGPUの実行方式とは? (341) GPUの事実上の標準となりつつある実行方式 | マイナビニュース
- GPUで用いる2つの変数の大きな違い (342) 「nBlocks」と「nThreads」、2つの変数の大きな違い | マイナビニュース
- NVIDIAの「ギガスレッドエンジン」 (343) 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」 | マイナビニュース
- ワープスケジューラの仕組み (344) ワープスケジューラの仕組み | マイナビニュース
- Kepler GPUの構成を読み解く (345) Kepler GPUの構成 | マイナビニュース
- GPUの演算単位を推測する (346) Kepler GPUとMaxwell GPUの演算単位を推測する | マイナビニュース
- レジスタ対応が固定ではないGPU (347) CPUとは異なり、レジスタ対応が固定ではないGPU | マイナビニュース
- GPUにおけるメモリアクセス (348) 複数のデータの処理を一度に行うGPUのメモリアクセス | マイナビニュース
- GPUにおける条件分岐の方法 (349) GPUにおける条件分岐の方法 | マイナビニュース
350-374
- コンピュータアーキテクチャの話 (350) NVIDIAの世代別GPUに見るハードウェアの違い | マイナビニュース
- GPUでスレッドを同期させる手法 (351) GPUでスレッドを同期させる手法 | マイナビニュース
- コンピュータアーキテクチャの話 (352) GPUで用いられるシェアードメモリの原理 | マイナビニュース
- コンピュータアーキテクチャの話 (353) GPUにおける1次キャッシュのコヒーレンシ | マイナビニュース
- GPUのデバイスメモリの考え方 (354) GPUのデバイスメモリのアドレスの考え方 | マイナビニュース
- GPUにおけるECCの考え方 (355) GPUにおけるECCの考え方 | マイナビニュース
- なぜHBMが期待されるのか (356) 積層することで性能向上を図ったHBM | マイナビニュース
- コンピュータアーキテクチャの話 (357) CPUとGPUの通信 | マイナビニュース
- HPCでのCPU-GPU間データ転送方法 (358) HPCにおけるCPU-GPU間のデータのやり取り | マイナビニュース
- コンピュータアーキテクチャの話 (359) GPUプログラミングを難しくするCPUとGPUのメモリの分散 | マイナビニュース
- コンピュータアーキテクチャの話 (360) CPUとGPUで処理を分担する場合のメモリのコピー手法 | マイナビニュース
- コンピュータアーキテクチャの話 (361) 仮想化で1つのGPUを複数ユーザで活用する | マイナビニュース
- コンピュータアーキテクチャの話 (362) ATIを買収してGPUを手に入れたAMD | マイナビニュース
- コンピュータアーキテクチャの話 (363) VLIW命令をSIMD実行することで効率を高めたATI | マイナビニュース
- コンピュータアーキテクチャの話 (364) AMDの新GPUアーキテクチャ「GCN」 | マイナビニュース
- コンピュータアーキテクチャの話 (365) GCNのブロックダイヤグラムを読む | マイナビニュース
- コンピュータアーキテクチャの話 (366) GCNのスカラユニットとベクトル演算 | マイナビニュース
- コンピュータアーキテクチャの話 (367) GCNの性能を活かすのに必要なコンピュートユニット内蔵メモリ | マイナビニュース
- コンピュータアーキテクチャの話 (368) GCNアーキテクチャにおける1次データキャッシュの構造 | マイナビニュース
- コンピュータアーキテクチャの話 (369) AMDのGPUが用いているデバイスメモリの種類 | マイナビニュース
- コンピュータアーキテクチャの話 (370) ディープラーニングを支えるGPU | マイナビニュース
- コンピュータアーキテクチャの話 (371) AlexNetの構造を読み解く | マイナビニュース
- コンピュータアーキテクチャの話 (372) ディープラーニングの入力の重みの値を決める「学習」 | マイナビニュース
- コンピュータアーキテクチャの話 (373) 「推論」の精度 - INT8でも性能低下は僅か | マイナビニュース
GPU MEMORY BOOTCAMP
- GPU活用のためのMEMORY BOOTCAMP (1) 新人のCUDAプログラマを一人前に育て上げるGPU MEMORY BOOTCAMP | マイナビニュース
- 輸送機で考えるGPUのメモリ移動 (2) 輸送機で考えるGPUのメモリバンド幅とレーテンシ | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (3) 行列の転置を行う場合のメモリアクセス | マイナビニュース
- NVVPでGPUアプリの性能を改善 (4) プロファイラの活用で、性能改善を図る | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (5) グリッドを大きくする方法 | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (6) メモリバンド幅の解析を実行し、さらに並列度を上げる | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (7) スレッドのメモリ読み出し要求の仕組みを知る | マイナビニュース
- GPUにおける行列の転置を考える (8) 行列の転置では書き込みは飛び飛びアドレスになる | マイナビニュース
- GPUのシェアードメモリを活用する (9) シェアードメモリ中での転置で、連続アドレスへの書き込みを実現 | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (10) バンクコンフリクトを避けるには? | マイナビニュース
GIGAZINE
- オープンソースのニューラルネットワーク向けプログラミング言語「Triton」をOpenAIが公開 - GIGAZINE
- Chromeの新API「WebGPU」ではどれだけパフォーマンスが改善されるのか? - GIGAZINE
- ゲームや映画でより現実に忠実で美麗な3D映像をレンダリングできる「パストレーシング」についてNVIDAが解説 - GIGAZINE
blog
- 本の虫: vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス
- OpenCLやる前にSIMD使い切れっていう幻想 - aokomoriuta's blog
- Vectordash: GPU instances for deep learning
- ハードウェアの速度をどう評価するか考える(2) ~メモリ、メモリ律速~ - arutema47's blog
- GPUの温度と性能低下 - Fixstars Tech Blog /proc/cpuinfo
- Intel GPU専用言語C for Metalの解説 - Fixstars Tech Blog /proc/cpuinfo
- OpenACC vs OpenMP GPU Offloading (環境構築編) - Fixstars Tech Blog /proc/cpuinfo
- OpenVINOでIntel HD Graphicsを活用する(導入編) - 少ないリソースを酷使する
- LLVM IRからGPUの実行可能ファイルを出力するコンパイルフローのまとめ - Jicchoの箱
- GPU向けコンパイラの最適化の紹介と論文のサーベイ - Jicchoの箱
- cuDNN の CUDA API の紹介 | フューチャー技術ブログ
- NVIDIAついにlinux kernel moduleをオープンソースに(GPL_v2) | スラド Submission
- Yellow Carp/Rembrandt APU の対応コーデックについて | Coelacanth's Dream
- Intel OSS OpenGL/Vulkan ドライバーが "Compute Engine" に対応 | Coelacanth's Dream
- 軽率にGPUを使っていこう、OpenCL入門 - VVVVVVVVVVVVLSI
- Implementing Hardware Extensions for Multicore RISC-V GPUsを読む - VVVVVVVVVVVVLSI
- OpenVDBを用いてフォトリアルな雲をシミュレーションする(Houdini, Redshift) - ISID テックブログ
- OpenVDBを用いてフォトリアルな雲をシミュレーションする(Houdini, Redshift) - ISID テックブログ
- CPUとGPUのマルチスレッディングの違いについて - arutema47's blog
Wikipedia
- GPGPU - Wikipedia
- General-purpose computing on graphics processing units - Wikipedia
- FLOPS - Wikipedia
- FLOPS - Wikipedia
- ANGLE (software) - Wikipedia
Zenn
- C++ AMPの死について
- Rustで始めるVulkan Raytracing
Qiita
- GPUSound入門 - Qiita
- 研究が"飛ぶ"瞬間 - Qiita
- Clang で CUDA コードを NVPTX に変換するメモ - Qiita
- PTX Compiler API のメモ - Qiita
- GPUでIFを使うな!? - Qiita
- CUDA on WSL 2のすすめ - Qiita
Twitter
その他
分岐
- okuokuさんはTwitterを使っています 「GPU上で動くRISC-Vエミュレータのコード公開されたのか https://t.co/3U92nNK0tF VRChatのワールドまである。GPUと言えども今や巨大なswitch-case https://t.co/3D6t2QbAeM を実行できるわけで、何でも行けるのか。 / 手作りGPUの前に自前のシェーダコアのエミュレータをGPUで動かす手も行けそうだな。」 / Twitter
- PiMaker/rvc: A 32-bit RISC-V emulator in a shader (and C)
- rvc/emu.h at 4bf645734e676bc8254d10dba0bfa8a37b006c44 · PiMaker/rvc
Julia
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 の特徴に関する質問を見たのだが、流れて行ってしまった。もう遅いかもしれないですが、以下のリンク先のネタを再現してみました。 マンデルブロ集合をGPUを使ってCPUの1スレッドの100倍以上の速さで計算する方法。 ポイント:GPU用の特別なコードを書く必要がない。続く https://t.co/i5yt2oHL8C」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 ソースコードは https://t.co/8n5qsdoW8y にあります。 添付画像はそのCPU用のコードです。マンデルブロ集合の定義を知って入れば特別なことをしていない陳腐なコードであることが分かるはずです。 どこにも具体的な型名が書かれていないことにも注目。続く https://t.co/Kp66p4tLTp」 / Twitter
- public/mandelbrot by cuda.ipynb at main · genkuroki/public
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 GPUではFloat32を使いたいので、インプットの複素数の配列をFloat32の複素数の配列にしています。この段階ではまだCPUで計算しています。 https://t.co/4crLOE6W5J」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 これがGPUを使った計算です。 CPUによる計算で使ったmandelbrot(c)函数をそのままGPUでの計算で使っていることに注目! cu(z32)はGPUで計算される配列を作る操作で、collectは通常の配列に戻す操作です。 その結果が100倍以上の計算の高速化! このように非常に気軽にGPUを使えます。 https://t.co/ZQ5LjNcj7l」 / Twitter
GPGPU
- 猫 a.k.a INAさんのツイート: "これ読むとPEZYがあのL1でやれてるのが不思議なんだけど隣の読みに行けるとか階層キャッシュのテクニックとかソフトウェア的なあれこれがあるんじゃろか"
- Hideyuki Tanakaさんのツイート: "1コア当たり8スレッドにすることでレイテンシーを隠蔽しようとしてて、実際L2のレイテンシまでは完全に隠せるように行列乗算コードを書いているから、L1は現在のコードならば、どんだけ小さくてもそれなりの速度は出ますね…"
- Hideyuki Tanakaさんのツイート: "700Mhzで、4サイクルに一回しか実行回ってこないし、ロード隠ぺいするための裏スレッドを使ってるので、まあそこらへんは一応頑張れば隠せるように用意はしてありますね…"
- Hideyuki Tanakaさんのツイート: "GPGPUだと死ぬほど多いスレッドを使って勝手にレイテンシ隠そうとしてる感じだけど、まあ、PEZY-SCのでもそんなに大変なわけじゃないよ(大変)GPGPU向けのGEMM書いたことないからわかんないけど…"
- Hideyuki Tanakaさんのツイート: "ほんとは4x2じゃなくて、8スレのラウンドロビンにしてくれ~って感じだけど、無理らしいからまあいいかという(´・_・`)"
- Hideyuki Tanakaさんのツイート: "@objectxplosive うーん、パイプライニングなのかなあ?命令のレイテンシはMAD以外全部1命令分のサイクルだけど、メモリのレイテンシー隠蔽だけでそういうものなのかな?"
- Hideyuki Tanakaさんのツイート: "@09SEPGR スレッド増やせば増やすほど簡単になるけど、増やし過ぎてもリソース食いすぎるし、そもそもレイテンシを隠すためだけにスレッドたくさん使うのもなんかよくない気がする(多分ハードウェアリソース的に?)んでまあその辺のバランスをとってるんだと思う"
ライセンス
- VさんはTwitterを使っています 「自分が調べた限りハードウェアエンコーダで特許料支払われているのはほぼありませんよ。ちゃんと払っているのは Raspberry Pi くらいです。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「普通はハードウェアエンコーダつかうし当然そのハードウェアで特許料支払いされてるので関係ないのだけど、Dockerとかで動画エンコード機能を持ったツールを公開したいときとかにはハードウェア前提にしたり商用エンコーダ同梱できないから無償ソフトエンコーダ必要なのよね。」 / Twitter
- VさんはTwitterを使っています 「NVIDIA や MPEG-LA にきちんと確認しているので間違いないです。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas ええぇ、ハードウェアエンコーダ屋さん、ライセンス料払ってなかったの!!! まぁ買う側で何とかしてくれ責任持たねぇって言いたい気持ちも分かるけど。 といっても、私がここでいうハードウェアエンコーダってチップやSBCレベルじゃなくて商用エンコーダ機器レベルのつもりだったのだけど。」 / Twitter
- VさんはTwitterを使っています 「@dynamitter ARM / Apple / Intel / NVIDIA / AMD に搭載されているハードウェアエンコーダを商用で利用する場合はすべてライセンス取得が別途必須という認識です。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas まぁエンコード専用チップではないので、その機能使うなら自分でライセンス払ってねと言うのが自然よね。 組み込みのルネサスとかもSoC側で払ってなかった気がする。 エンコード専用チップの方は例えばソシオネクストとか払ってたりするのかな。やはりそれも採用側に任せてるのかな。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas そうか、Jetson Nanoちゃん...」 / Twitter
libcu++
- FadisさんはTwitterを使っています 「NVIDIAがlibcu++のソースコードをApacheライセンスでGitHubに上げたらしい。libcu++はC++標準ライブラリに似たAPIをcuda::の下に生やすライブラリで、標準ライブラリと異なり定義された型や関数はデバイス側で使用する事ができ、値はホストとデバイスで直接やり取りできる https://t.co/WIEoSJLEsU」 / Twitter
- NVIDIA C++ Standard Library Now Available Via GitHub - Phoronix
- Overview - libcu++
AMD
- R. ShioyaさんはTwitterを使っています: 「AMD の GPU は SIMT アーキテクチャだと色々なサイトや本にも書いてあるけど,これ多分ちがうな. GCN のマニュアルのコード例とか Inria の講義資料からしてこれは SIMD 命令を使ったものであって SIMT ではないようにみえる.後継の RDNA も大枠では GCN と同じぽいし.https://t.co/7AbXCpZHS5 https://t.co/Qm65ffjw38」 / Twitter
- ada2020_gpu_2.pdf
- R. ShioyaさんはTwitterを使っています: 「というかスカラ命令とベクトル命令が存在してる時点で SIMT じゃないんだよな.そもそも AMD 自身は SIMD だとしか書いてないし.」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「さっきの講義資料にすごいまとまった図が描いてあった.これが見たかった.AMD の GPU はあくまでこれの右側だわ. https://t.co/4cZwCGWhG6」 / Twitter
S3TC
- FadisさんはTwitterを使っています: 「MesaにS3TCで圧縮されたテクスチャをGPUがハードウェアで処理できない場合にソフトウェアで展開してからGPUに食べさせるパッチが現れたらしい。S3TCはかつてPCではメジャーな圧縮テクスチャの形式だったが、特許問題があった為モバイルGPUではほぼサポートされていない https://t.co/gWlV6MPHKL」 / Twitter
- Mesa Preparing Software Fallback For S3TC Texture Compression - Phoronix
- FadisさんはTwitterを使っています: 「S3TCは4x4ピクセルを1ブロックとして、ブロック内には代表色2色とその補間でできる色しか現れない事にして非可逆圧縮をする画像形式。PCのGPUはこの形式をハードウェアでデコードできる事が多い。4x2に代表色1のETCより複雑な色の組み合わせで劣化が起きにくく、ASTCよりはシンプル」 / Twitter
- FadisさんはTwitterを使っています: 「2010年代の頭にAppleと訴訟合戦を繰り広げたHTCは、S3TCの開発元だったS3 Graphicsを買収し、S3が持っていたS3TCの特許をAppleが勝手に使っていると文句をつけていた。この争いに巻き込まれない為にモバイルGPUはどれもS3TCを全くサポートしなくなった」 / Twitter
- FadisさんはTwitterを使っています: 「S3TCの特許は2017年に切れた為、今日ではS3TCを使う事にリスクは無くなっているが、今日のモバイルGPUではより高品質な圧縮テクスチャ形式であるASTCが使える為、もはやS3TCをサポートするモチベーションは無くなっている」 / Twitter
- FadisさんはTwitterを使っています: 「しかしPC向けのアプリケーションはS3TCが使える事を前提に作られている事があり、そうしたソフトウェアをモバイルGPUで動かそうとすると困る。そこでMesaに「S3TCな画像が来たら自動で展開して非圧縮な画像としてGPUに置く」機能を追加してS3TCを読めているように見せかけようというのが今回の変更」 / Twitter
WebGPU
- FadisさんはTwitterを使っています: 「Webにも低レイヤーグラフィクスAPIをという動きはありWebGPUの策定が進んでいる。WebGPUはコマンドバッファをキューに流し非同期で結果を貰う、パイプラインをコンパイルしてbindingにリソースを付けてレンダーパスを開始して描く辺りはVulkanのような低レイヤーAPIと似ている https://t.co/ol2yo4IhR1」 / Twitter
- WebGPU
- FadisさんはTwitterを使っています: 「ただし既存のWebGLとWebCLから大きく離れたGPUの使い方はあまり考えられておらず、その分APIはシンプルになっている。例えばレンダーパスは常にVulkanのdynamic renderingのような方式で、シェーダステージは頂点シェーダとフラグメントシェーダしかない」 / Twitter
- FadisさんはTwitterを使っています: 「更に大きな特徴としてWebGPUでは専用のシェーディング言語WebGPU Shading Language(WGSL)が用いられる。APIはWGSLを直接読み、バイナリ形式の中間言語はない。新しい言語を採用した大きな理由は悪意あるシェーダがGPU上で暴れる事がないように厳しめの制限をかけるためらしい https://t.co/AmRwdDROsm」 / Twitter
- WebGPU Shading Language
メッシュシェーダ
- FadisさんはTwitterを使っています: 「MesaのRADV(AMD GPU用ドライバ)のVK_EXT_mesh_shaderがどう実装されているかについて。メッシュシェーダは元々NVIDIAが提案していた拡張で、グラフィクスパイプラインのラスタライズより前の全てのステージをタスクシェーダとメッシュシェーダの2つのシェーダで置き換える https://t.co/xqZehFDFL7」 / Twitter
- The State Of RADV's Vulkan Mesh Shading Support - Phoronix
- FadisさんはTwitterを使っています: 「メッシュシェーダはあらかじめ決められた数のプリミティブの集合(メッシュレット)を1つのローカルグループから出力するようなコンピュートシェーダライクなシェーダ。テッセレーションやメッシュの量産も含めてどこから形状の情報を読んでどんな頂点を吐くかは丸ごとプログラマブルになる」 / Twitter
- FadisさんはTwitterを使っています: 「タスクシェーダはメッシュシェーダをいくつ実行するかを決定する。1つのメッシュシェーダが扱えるプリミティブの数は決まっているので、タスクシェーダはLoDやカリングを考慮して、描きたいものを幾つのメッシュシェーダで描くか、ここのメッシュシェーダにどんなパラメータを与えるかを決定する」 / Twitter
- FadisさんはTwitterを使っています: 「メッシュシェーダでは好きな数のスレッドを実行して、その結果としてメッシュレットの最大サイズ以下の好きな数のプリミティブを吐く事ができるが、AMDのGPUではラスタライズにまわすプリミティブまたは頂点は専用のレジスタに書かなければならない」 / Twitter
- FadisさんはTwitterを使っています: 「このレジスタは1スレッドにつき1つ用意されているので、各スレッドが1つづつプリミティブまたは頂点を吐かなければならない。メッシュシェーダは任意のスレッド数で、各スレッドが任意の数のプリミティブのうち任意の物の値を決定する為、プリミティブとスレッドを1対1に対応させることができない」 / Twitter
- FadisさんはTwitterを使っています: 「このためRADVではmax(スレッド数,プリミティブ数)だけスレッドを走らせ、プリミティブ数の方が多い場合余分なスレッドを待機させる。各スレッドが計算したプリミティブは一度共有メモリに書かれ、同期を挟んでから各スレッドが自分の出力レジスタに共有メモリ上のプリミティブを1つ書き込む」 / Twitter
- FadisさんはTwitterを使っています: 「スレッド数とプリミティブ数の比によっては沢山のスレッドが待機することになる為、RADVでメッシュシェーダを使う場合はできるだけ両者が一致するようにメッシュシェーダを走らせるべき、とされている」 / Twitter
- FadisさんはTwitterを使っています: 「タスクシェーダは更に厄介で、このシェーダは実行の過程で好きな数のメッシュシェーダの実行を開始し、走らせたメッシュシェーダとタスクシェーダの実行は同時に進行することになっている。AMD GPUでこれを効率よく行うにはasynchronous computeを活用する必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「asynchronous computeでシェーダを実行するにはシェーダの実行をACEで行う必要がある。AMDのGPUのハードウェアのキューはグラフィクスを扱えるGFXキューと計算に特化したACEキューに分かれている」 / Twitter
- FadisさんはTwitterを使っています: 「Vulkanのグラフィクスキューはコンピュートパイプラインの実行も受け付ける事になっているが、GFXキューはコンピュートシェーダを扱えない為、AMD GPUのドライバはグラフィクスキューに流れてきた要求を内部で2つのハードウェアキューに送り分けている」 / Twitter
- FadisさんはTwitterを使っています: 「タスクシェーダはACEキューで実行する必要があるが後ろにラスタライザが控えている必要があるメッシュシェーダはGFXキューで実行する必要がある。この為メッシュシェーダの実行はドライバ内でキューを跨ぐ同期を生じさせる」 / Twitter
- FadisさんはTwitterを使っています: 「ACEキューに流した処理とGFXキューに流した処理はそれぞれのキューの中で順序を入れ替えて実行されることがある。これはカーネルのドライバの中で行われる。メッシュシェーダを使うパイプラインが2つ以上グラフィクスキューに流された場合、これは容易にデッドロックを生じさせる」 / Twitter
- FadisさんはTwitterを使っています: 「RADVではこれを回避する為にカーネルにACEキューに流した特定のタスクとGFXキューに流した特定のタスクはセットでスケジューリングされなければならない事を指示するgang submit機能を追加したらしい」 / Twitter
VK_EXT_descriptor_buffer
- FadisさんはTwitterを使っています: 「Vulkan 1.3.235で規格に記載された拡張VK_EXT_descriptor_bufferについて。この拡張が利用可能なGPUではデスクリプタセットはただのメモリ上のデータであると見做して良く、VkBufferのメモリにデスクリプタのエントリを並べたものをbindしてデスクリプタセットとして使える https://t.co/QzICCdCchj」 / Twitter
- Khronos Blog - The Khronos Group Inc
- FadisさんはTwitterを使っています: 「デスクリプタセットはシェーダのbindingの番号とVulkanのオブジェクトを結びつける為の情報で、Vulkanでシェーダを動かす際には必ず必要になる。PCのGPUではこの情報はGPUのメモリ上に置かれたテーブルで、シェーダがbindingの番号を持つリソースにアクセスする際に参照される」 / Twitter
- FadisさんはTwitterを使っています: 「PCのGPUではデスクリプタセットはただのメモリ上のデータなのでVkBufferで扱うのが妥当なように見えるが、そうなっていないのはデスクリプタセットが「ただのメモリ上のデータ」ではないGPUがあるから。一部のモバイルGPUではデスクリプタセットの値の更新はI/Oレジスタへの値のセットに訳される」 / Twitter
- FadisさんはTwitterを使っています: 「このようにデスクリプタセットはメモリではない事がある為、Vulkanではデスクリプタセットをメモリとは異なるオブジェクトとして抽象化し、ヒープではなくデスクリプタプールと呼ばれる専用のオブジェクトから確保する。デスクリプタセットの更新には専用の関数を使う」 / Twitter
- FadisさんはTwitterを使っています: 「デスクリプタセットの何番目に何のリソースが並んでいるかはデスクリプタセットレイアウトで定義され、シェーダは特定のデスクリプタセットレイアウトに合わせてデスクリプタにbinding番号を指定しなければならない。レイアウトが違えば同じ処理のシェーダでも書き直す必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「この仕様ではシェーダが欲しいリソースにアクセスする為にデスクリプタセットレイアウトまでセットで設計する必要があるため、エンジンとシェーダの開発の分業が難しくなる。近年のVulkanを使うゲームエンジン等ではこの問題を避ける為にbindlessと呼ばれる手法が広く用いられている」 / Twitter
- FadisさんはTwitterを使っています: 「bindlessではVulkan 1.2で標準に入ったdescriptor indexingを使って巨大なデスクリプタの配列を持つデスクリプタセットレイアウトを作る。全てのリソースは単一のデスクリプタセットの上に並べられ、シェーダはその中から自分が必要なリソースに添字でアクセスする」 / Twitter
- FadisさんはTwitterを使っています: 「シェーダにはpush constants等の方法で使用するリソースのindexを渡す必要があるが、デスクリプタセットレイアウト自体は全てのシェーダで共通にできる為、シェーダの開発がエンジンの実装に食い込まなくなる。GPU側で動的に参照するリソースを変更するようなシェーダも書けるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「bindlessの台頭はデスクリプタセットの操作がI/Oレジスタの操作に訳されるGPUの終焉をもたらした。一般にアプリケーション全体で用いられるデスクリプタを全て並べられるデスクリプタセットのエントリ数は数万になるが、モバイルGPUが外のリソースを扱うためのI/Oレジスタの数はせいぜい数百だった」 / Twitter
- FadisさんはTwitterを使っています: 「bindlessで作られる近代的なアプリケーションを動かすために、新しめのモバイルGPUではデスクリプタセットが単なるメモリ上のデータに訳される。こうしてデスクリプタセットの抽象化はあまり意味がなくなり、この抽象化によって損なわれる性能が大きな問題になった」 / Twitter
- FadisさんはTwitterを使っています: 「VulkanのAPIはデスクリプタセットがメモリ上のテーブルだったとしてもそのメモリに直接アクセスする事を認めてないため、デスクリプタを書き換えたい場合変更内容を専用の構造体に書いてVulkanに書き換えてもらう必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「巨大なデスクリプタの配列を切り売りして使っているとフラグメンテーションが起こるので、デスクリプタを再配置する必要が生じる。この時たくさんのデスクリプタが書き変わる事になるが、VulkanのAPIを介してデスクリプタを書き換えると無視できないオーバーヘッドが生じる」 / Twitter
- FadisさんはTwitterを使っています: 「VK_EXT_descriptor_bufferは「デスクリプタセットはメモリ上のテーブルである」という前提のもと、デスクリプタセットとのより効率の良い付き合い方を定義する。この拡張が有効なVulkanの実装ではVkImageViewやVkBufferといったリソースから「デスクリプタセットのエントリ」のバイト列を取得できる」 / Twitter
- FadisさんはTwitterを使っています: 「GPUから見えるメモリを確保してこのエントリを並べ、VkBufferに結びつけ、このVkBufferをbindしてパイプラインを実行する。以降のシェーダ内でのデスクリプタの使い方は従来と同じだが、デスクリプタセットはただのメモリなのでマップして自由に並べ替えや書き換えができる」 / Twitter
- FadisさんはTwitterを使っています: 「この拡張がパワフルな点は、このデスクリプタセットの編集をGPU側でしても良い事。デスクリプタの内容自体はGPU依存だが、使用中でないデスクリプタセットのVkBufferをストレージバッファとしてシェーダに見せれば、シェーダはデスクリプタの並べ替えや別のメモリへのダンプ、リストアを行える」 / Twitter
- FadisさんはTwitterを使っています: 「つまりbindlessで問題になるデスクリプタの配列のフラグメンテーションの解消をコンピュートシェーダで行えるようになる。またDirectX 12は最初からデスクリプタセット相当の物をメモリと見做していて、Vulkan上にDirectX 12を実装する場合のオーバーヘッドを抑えるのにも役に立つらしい」 / Twitter
- FadisさんはTwitterを使っています: 「PhoronixによるとVK_EXT_descriptor_bufferのサポートは既にRADV(MesaのAMD GPU用ドライバ)のmasterに入っているらしい。NVIDIAも最新のBetaドライバでこの拡張をサポートしている https://t.co/gx6R5xw03U」 / Twitter
- RADV Wires Up VK_EXT_descriptor_buffer, VKD3D-Proton Usage Pending - Phoronix
histric
histric-1
- Out-of-Domain Awardさんのツイート: "今まで踏んだ一番ひどいエラーは、数千個あるCUDAコアのどれか1個だけバグでNaNしか返さなくなっていて、運悪くそのコアがアサインされるとbackpropagationで伝播してモデルが台無しになる。NaNを弾くコードを入れていないと数日経ってから気づくことになる"
- Rockridgeさんのツイート: "Blinkの開発チームがWebGPU(新3DグラフィックスAPI)の実装を開始。WebGL/WebGL 2の後継となるもので、Safariが既に実験的に実装しているが、EdgeやFirefoxでも採用されるらしい。 / “Int…” https://t.co/elmcqYDaTl"
- 渋川よしきさんのツイート: "WWDCの話で1番やべえなってのは、Metal推奨でOpenGL非推奨化へ、という話ですね。"
- Dustin Westphalさんのツイート: "OpenGL is deprecated in 10.14 Mojave. /eyetwitch… "
- Apple Deprecates OpenGL & OpenCL - Phoronix
- Jun Mukaiさんのツイート: "MetalとVulkanの関係ってどうなってるんだっけ?と思って調べたらhttps://t.co/InEoEGsj4b こういうのあるのか。OpenGLがなくなっても、こういうのをつかえばよいのかな"
- Molten | Vulkan, and faster OpenGL ES, on iOS and macOS
- Makoto Kato ︎︎さんのツイート: "MS has stopped investment for OpenGL at Windows 2000 era, then their API moves to DirectX. Apple wants to control APIs for GPU like MS..."
- Fadisさんのツイート: "いまのAppleのOpenGLの扱いに対して、ジョブズの時代はこうではなかったというのは全くの間違いで、ジョブズ氏の時代からAppleのOpenGLの扱いは酷かった。ただ彼にはOpenGL2を強いられたあの時代でさえ、それを世界で最も先進的なグラフィックと言い切る能力があった"
- ハガさんのツイート: "モバイルGPUのタイルベースなレンダリングとか複雑になるだけじゃん要らねーよと思ってたけど、タイルごとにラスタライズの解像度を変えられると知って急にとても良いものに思えてきた・・・。"
- 次世代のWebGPUの可能性 - WebGLと比較して理解する描画機能の違い - ICS MEDIA
- Makoto Kato ︎︎さんのツイート: "自分の知ってる話と他の情報からすると、WebGPUはプロトタイプはAppleが作ったけど、正式なAPIは作り直し (他のOSやブラウザ的にありかないかも含めて) になるかもって話なので、今はAPIを覚えるのはフィードバック用でしかないと思うんだ"
- Makoto Kato ︎︎さんのツイート: "No more Canvas API的な"
- Makoto Kato ︎︎さんのツイート: "誰もVulkan -> Metalのトランスパイラ作りたいなんて思ってない (ANGLEのGLSL -> HLSLみちゃうとね)"
- Fadisさんのツイート: "Vulkan 1.1で利用可能になったsubgroupは、同一Warp内の別のスレッドの計算結果を覗き見して演算を行う事が出来る。これによってイケてるハードウェア上ではWarp内でのreductionのような計算がシェアードメモリを使った場合より高速に行えるようになる。 …何この後ろのハードウェアが透けて見える機能"
- chikoskiさんはTwitterを使っています: 「WebGPUの紹介記事。まだ先かな、と思っていたけどChromeでenable-unsafe-webgpuのフラグを立てると使える模様。簡単なコードとGPUの説明が続く。最後に行列の掛け算を使ったベンチマーク。256x256以上はGPUの方が早く、512x512以降は大きな差がつく。という内容: https://t.co/YtW91JmNES」 / Twitter
- Get started with GPU Compute on the Web | Web | Google Developers
- FadisさんはTwitterを使っています: 「プログラミング言語Taichi: 空間的に疎なデータを処理するコードを汎用的な言語で書くのが煩雑過ぎるから、データの保持方法の定義と、何らかの方法で保持されたデータを操作する処理を分離して書いて、CPUやGPUで効率よく実行出来るコードに落とせるDSL https://t.co/przYp05IzO」 / Twitter
- Taichi
- FadisさんはTwitterを使っています: 「あれば便利には違いないけど、これがオーバーヘッドなくライブラリで実現出来ないか、という点についてはC++なら出来んことはない気がする」 / Twitter
- FadisさんはTwitterを使っています: 「Mitsuba2: オープンソースのグラフィックレンダラーMitsubaの後継。Mitsubaとの違いはメタいC++で書かれたレイに対する処理をCPUだけでなくGPUでも実行できるようになった点、それを自動微分して逆レンダリングができるようになった点、スペクトルレンダリングに対応した点等 https://t.co/MLf4BPe30G」 / Twitter
- RGL | Mitsuba 2: A Retargetable Forward and Inverse Renderer
- FadisさんはTwitterを使っています: 「いろんなプラットフォームで効率の良いSIMDな実行可能バイナリを生成する為の最適化はMitsuba2本体から分離されていて、Enokiなるライブラリにまとめられているらしい https://t.co/eNkdTLTII2」 / Twitter
- mitsuba-renderer/enoki: Enoki: structured vectorization and differentiation on modern processor architectures
histric-2
- FadisさんはTwitterを使っています: 「学習済みのニューラルネットワークを使って評価を行う際に、重みの精度は出力の品質に影響を与えにくい事が知られている。このためGPUの命令は精度を下げて一度に計算できる行列のサイズを大きくするように拡張されており、NVIDIA Turingでは4bit整数で出来た行列の演算を高速に行う事ができるらしい」 / Twitter
- FadisさんはTwitterを使っています 「今は昔ほどGPUが多様でないから低レイヤーAPIでいけるというのは間違ってて、メモリの構成はGPU毎に異なるし、タイルベースGPUがでかい顔してるし、TensorCoreみたいなの生えてくるし、出ていく先はsRGBじゃないかもしれないし、VRでマルチGPU(以下略)で、控えめに言って世紀末なんだよな」 / Twitter
- FadisさんはTwitterを使っています 「じゃあ何でVulkanみたいな薄いAPIで多様なハードウェア抽象化できるかと言うと、抽象化出来てないんだ。Vulkanはハードウェアの違いを吸収しない。Vulkanは世の中には色んなGPUがあるという現実をそのままプログラマにつきつけてくる。プログラマは倒れる。」 / Twitter
- FadisさんはTwitterを使っています 「VulkanとOpenGLの方向性の違いがわかりやすく出てるのがVK_KHR_surface拡張で、この拡張は普通の画面とはどんな物で、どうすれば画面に描画結果を表示できるかを定義する。これが拡張であるという事は「Vulkanが動く」だけでは画面表示能力は無いかもしれない、という意味になる」 / Twitter
- FadisさんはTwitterを使っています 「@RKX1209 Bounding Volume Hierarchy。AABBを再帰的に重ねた木構造で、logオーダーである範囲に存在する要素を探せる。これを作っておくとある直線と交差する面を高速に求める事ができるからリアルタイムレイトレーシングには欠かせない。」 / Twitter
- FadisさんはTwitterを使っています 「@RKX1209 動くシーンのレイトレーシングでは動きに合わせてBVHを素早く更新できる必要があって、これがリアルタイムレイトレーシング実現のための難題だったんだけど、ナウいGPUはBVH作る専用ハードウェア積んで解決してしまった」 / Twitter
- FadisさんはTwitterを使っています 「netgpu: 1つのマシンに収まらないニューラルネットワークを扱うにはGPUの計算結果をネットワークに載せ、別のGPUを積んだマシンで受ける必要がある。このデータの移動をCPUが行うとボトルネックになるので、GPUとNIC でバッファを共有させ送受信の要求だけをCPUから行うLinuxカーネルのパッチがnetgpu」 / Twitter
- FadisさんはTwitterを使っています 「netgpuの作者が、このパッチをバニラカーネルに入れようと提案したら激しく燃えた話。netgpuは現状nvidiaのGPUのみをサポートしており、nvidiaのプロプリドライバに付いてくるカーネルモジュールのコードが所定の位置にインストールされている事を期待しているのが原因 https://t.co/oNSAK4U0Ow」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CPUよりも高速に計算させようと思うと意外と大変です。ボトルネックがCPUとGPUの間のI/O転送にあるので。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CUDAやMetalの潜在能力を出し切るようなコーティングも結構大変ですね。」 / Twitter
- FadisさんはTwitterを使っています 「GL_NV_command_list: OpenGLでGPUへのコマンドを記録して何度も繰り返し流せるようにする拡張。ランタイムのAPIから実際にGPUで実行するコードへ落とす作業はCPUを要する処理で、コマンド列を塊にする事でこの作業を事前に行いフレーム毎のCPUの負担を抑える。なにこのVulkan https://t.co/NX07BdsLEi」 / Twitter
- https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
- FadisさんはTwitterを使っています 「Linux 5.11からTTMの実装が変わるらしい。TTMはGPUが触るメモリの管理を行うDRMのアロケータで、書き直された実装はロックの回避でメモリ確保がより高速になり、出来るだけ連続したメモリを塊で割り当てる事でTLBキャッシュヒット率が向上、AMDGPU等で性能の向上が期待できる https://t.co/MsDyLXhf9W」 / Twitter
- New TTM Allocator For AMDGPU Graphics Memory Landing With Linux 5.11 - Phoronix
- Ryo SuzukiさんはTwitterを使っています 「大量の三角形を、CPU で色や座標の情報を決めずに GPU だけで描画する機能を追加 #OpenSiv3D (v0.6) 複雑な形状を早く処理できる。 https://t.co/Tmg7VXhbcK」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「いわゆる null vertex buffer.」 / Twitter
- FadisさんはTwitterを使っています 「ZLUDA: Intel oneAPI Level Zeroの上に実装されたCUDA Driver API。早い話がIntel GPU上でCUDAするための実装。ちなみにIntelはoneAPIをプラットフォーム非依存でアクセラレータを利用するためのAPIとしているが、Intel以外は乗り気ではない為事実上Intel専用になっている https://t.co/uuYSYSDQbD」 / Twitter
- vosen/ZLUDA: CUDA on Intel GPUs
- Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「機械学習のエントリー勢向けに計算性能は抑え目でもVRAMを多めにしてミドルレンジ価格帯のグラボって需要があると思うけど、そういうのが存在しないってことはグラボの値段ってVRAMが支配的なんだろうな…。」 / Twitter
- FadisさんはTwitterを使っています 「GPUってIOMMUが適切に設定されたホストのメモリを触れるから、性能無視でメモリだけ広いマシンが欲しいならホストのメモリを使えば良いんじゃないかな」 / Twitter
- FadisさんはTwitterを使っています 「コンピュータグラフィクス向けにGPUを使う場合も、GPUのデバイスメモリが狭くて必要なものが乗り切らん時は次善の手としてホストのメモリをスワップ領域として使うというのが割とよく行われる」 / Twitter
- FadisさんはTwitterを使っています 「Mesaからswrastが削除されるらしい。MesaはOpenGL等のAPIのオープンソースな実装で、GPUが無い場合に備えてソフトウェアラスタライザを持つが、llvmpipeやOpenSWR等の新しいソフトウェアラスタライザの登場により初期の最も素朴な実装であるswrastは殆ど使われなくなっていた https://t.co/YEYShhhaWr」 / Twitter
- Mesa 21.0 Has Finally Killed The Classic "SWRAST" Software Rasterizer - Phoronix
- FadisさんはTwitterを使っています 「3DグラフィクスをCPUで処理するためにSSEだ3DNow!だとか言ってた時代があったなぁ。3Dグラフィクスをデバイス側で処理するGPUが家庭のPCに普及し出すのは90年代の終わり頃だし、DirectX 7時代のGPUはラスタライザから先はハードウェアで処理するけど座標変換はCPUでやれっていう仕様だったんだよな」 / Twitter
- とみながたけひろさんはTwitterを使っています 「そのSSEでレイトレは高速に、、、と思ってたらいつの間にかレイトレもGPU側に入るようになったのであった(笑)」 / Twitter
histric-3
- FadisさんはTwitterを使っています 「メッシュの頂点数を減らすのはいいけど、その為に細長い三角形を生み出すのはやめよう。その三角形は接平面空間で計算するプログラマに刺さる」 / Twitter
- FadisさんはTwitterを使っています 「NVIDIAがVulkanでCuBINを実行する拡張を作っている話。CUDAはホストのコードとデバイスのコードを同じバイナリの異なるセクションに置くが、新しめのnvccはデバイスのコードだけを別ファイル(CuBIN)に吐く事ができる。この拡張はそれをVulkanからロードして実行する為のもの https://t.co/VPheiKtwtJ」 / Twitter
- NVIDIA Adding Experimental Vulkan Support For Executing CUDA Binaries - Phoronix
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAからか... OpenMPが生成した PTX をどうやってオブジェクトファイルに格納するかについては(GCC の場合は) https://t.co/NeePioon3a ここにまとまっているわけで、これを真面目にパースしたらいけるはず........」 / Twitter
- Offloading - GCC Wiki
- jicchoさんはTwitterを使っています 「GPU最適化、GPUを使って何かの計算を最適化するのか、ある計算をGPUに合わせて最適化するのか、GPU上で行われる処理を最適化するのか」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 どれも興味ありますね。ただ,それぞれが戦略的に大きく異なるということは理解しているつもりです。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 最初の二つは、主に工学の分野で盛んに行われていますよね。最後の一つはハードウェア/ソフトウェアの観点からGPUを速く動作させようということなので、理学と工学が複雑に絡み合っている感じです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私は,まず3つ目の道を探究し続けて,そこから,第1・第2の道を探りたいです。」 / Twitter
- ABAさんはTwitterを使っています 「C#のコードをGPU上でパラレルに動かせるようにしてGPGPUをC#プログラマに簡単に扱えるようにするためのライブラリComputeSharp / https://t.co/f6livgelDN」 / Twitter
- Sergio0694/ComputeSharp at dev
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「GPUに詳しい人知ってたら教えてください。 OSのsched_yield(2)みたいな感じで、あるwarpの実行中に強制的に別のwarpにスケジューリングする命令とかありませんかね? (GPUで自前mutexを作る場合、同一Warpの別スレッドがロックを取った時、そのスレッドに実行を渡さないと永遠にロック待ちになる…。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@gogotea3 ただ、その後アセンブラ命令の一覧も見てみたんですが、それっぽい命令はない(nanosleepはVolta以降)ので、ちょっと期待薄かもしれませんね。 https://t.co/K1ewHAb9FP」 / Twitter
- PTX ISA :: CUDA Toolkit Documentation
- FadisさんはTwitterを使っています 「Intelが次のIntel GPUからASTCのサポートをやめるらしく、Mesaに新しいIntelのGPUでASTCのテクスチャのロードを要求されたらCPU側でDXT5に変換する変更が現れている。DXT5に変換すると画質はやや悪くなるが性能面ではASTCより有利としている https://t.co/7H2zGMS8x5」 / Twitter
- Intel Removes ASTC Hardware From Gen12.5+ Graphics - Phoronix
- FadisさんはTwitterを使っています 「ASTCはARMとAMDが共同で開発した圧縮テクスチャ形式で、同種の直接サンプリングできる圧縮テクスチャ形式の中では比較的圧縮による劣化が目立ちにくい。ASTCのデコードは従来の圧縮テクスチャより複雑なハードウェアを必要とするが、メモリ帯域が何よりも貴重なモバイルGPUではよくサポートされている」 / Twitter
- NishikiさんはTwitterを使っています 「まじで??確かにそんな負担なのかと思ってたけど > 多くのVulkanチュートリアルではコマンドバッファを一度記録して再利用していますが、パフォーマンスのメリットはほとんどありません。実装が複雑になるため、新しいコマンドバッファを記録してしまう方がいいでしょう。 https://t.co/sWK8B5gmfT」 / Twitter
- Vulkan-Guide/common_pitfalls.adoc at master · KhronosGroup/Vulkan-Guide
- 山田てるみさんはTwitterを使っています 「https://t.co/qLWKqU5yIk NVIDIAがめっちゃ強いのはこういうものをちゃんと作るというところにある…」 / Twitter
- Legate
- 電子計算機の沼さんはTwitterを使っています 「結局、HTMLを自動で作るとのかと同じで、OpenACCとかOpenMPもCUDAやpthreadのコードを作らせてるだけ 達人はACCコードの裏にCUDAが透けて見えてるけど、CUDAが全くわからない人がOpenACCからスタートして複雑なコードを超速にできるかと言われるとちょっと分かんない」 / Twitter
- FadisさんはTwitterを使っています 「WebRays: CPU側で作ったBVHを使ってWebGLのGLSLの中からRayQueryできるようにするライブラリ。Webブラウザ上でリアルタイムレイトレーシングしたくなった時に使う https://t.co/VHiVkFzFoD」 / Twitter
- phasmatic3d/webrays: WebRays - Ray Tracing on the Web
- FadisさんはTwitterを使っています 「Vulkanレイトレ、TLASとBLASを繋ぐのにデバイスアドレスが必要で、シェーダがシーンの全てのリソースに同時にアクセスするためにbindless化がほぼ必須で、GPU上のリソースはデバイスアドレスを持っていて、そのアドレスで一意に指せるようなハードウェアでないと成立しなくて」 / Twitter
- FadisさんはTwitterを使っています 「どうせそういうハードウェアでないと動かないんだから、と言わんばかりに関連する雑多なリソースもハンドラじゃなくてデバイスアドレスで指定するようになってて、もしも過去との互換性を考えなくて良いVulkan2的な物が作られたら、そこにはもうVkBufferなんて物は存在しないかもしれないな、と思った」 / Twitter
- FadisさんはTwitterを使っています 「GLSLではエントリーポイントの関数名はmainって決まってるから、Vulkanでエントリーポイントの関数名に明示的に"main"って指定しないといけないの何でって感じなんだけど、HLSLだとエントリーポイントの関数名は自由だからこれないと困るんだな」 / Twitter
- FadisさんはTwitterを使っています 「MesaのAMD GPUのドライバにVulkanのVK_NV_mesh_shader拡張が実装されたらしい。この拡張はNVIDIAが提案し、同社のドライバには以前から備わっている新しいシェーダステージで、グラフィクスパイプラインのFSを除く4つのシェーダを新設する2つのシェーダで置き換える https://t.co/VDAF4Vjjll」 / Twitter
- Mesa's Radeon Vulkan Driver Lands Experimental Mesh Shaders - Phoronix
- FadisさんはTwitterを使っています 「追加されるシェーダの1つTask shaderはメッシュの組み立てをコンピュートシェーダのスタイルで行う物で、もうひとつのMesh shaderはTask shaderが吐いたメッシュにテッセレーションがかかった物をコンピュートシェーダのスタイルで処理する」 / Twitter
- FadisさんはTwitterを使っています 「頂点シェーダやジオメトリシェーダが別れているのも無駄に厳しい制約がかかっているのも歴史的な理由以上の意味がないので、今のGPUを素直に使えるシェーダで置き換えてシンプルにするのが狙いだが、今までAMDのGPUで使えなかったため普及率はイマイチだった。」 / Twitter
histric-4
- FadisさんはTwitterを使っています 「GoogleがStadiaの一環でVulkanの新しいレイヤーGraphics Flight Recorder(GFR)を公開していた話。GFRはVukanのコマンドの実行中にVK_ERROR_DEVICE_LOST等の処理を継続できない問題が起きた場合に、直前にどんなコマンドを投げていたのかのログを吐く https://t.co/nuS60hHLzQ」 / Twitter
- Google Has Been Quietly Developing "GFR" To Debug Vulkan GPU Hangs/Crashes - Phoronix
- FadisさんはTwitterを使っています 「GFRはクラッシュ時にコマンドバッファ内のどのコマンドまでが完了していたかを知るために1コマンド毎にvkCmdWriteBufferMarkerAMDを挟んで進捗をバッファに記録する。vkCmdWriteBufferMarkerAMDはVK_AMD_buffer_marker拡張に対応したGPUでしか使えないため、GFRが使えるのは主にAMDのGPUに制限される」 / Twitter
- FadisさんはTwitterを使っています 「VulkanのイメージのFormatは沢山あるけど、データの並びとしては同じ物が結構ある(例えばRGBA各8bitとBGRA各8bitは4つの8bit値が並んでいるという点では同じ)。Vulkan 1.2ではこういう時に「これらのうちのどれか」Formatでイメージを作り、実際にイメージを読むときにFormatを1つに決められる」 / Twitter
- FadisさんはTwitterを使っています 「この機能を使うと「今ロードしたイメージの中身はリニアな値として読むべきか、非線形の変換がかかった値(例: sRGB)として読むべきかは読むときに判断するから、とりあえず何も考えずにロードだけしておいて」が綺麗にかける」 / Twitter
- FadisさんはTwitterを使っています 「ZinkのOpenGLと拡張のサポート状況がMesaのドライバの中でもトップクラスになったらしい。ZinkはVulkanで実装されたOpenGLで、GPUベンダーがVulkanしか提供していなかったとしてもZinkを使うことでOpenGL 4.6のAPIを生やすことができる。 https://t.co/TS00SIPcee」 / Twitter
- Zink OpenGL-on-Vulkan Now Offers Broader OpenGL Coverage Than RadeonSI, Intel - Phoronix
- FadisさんはTwitterを使っています 「Vulkan 1.3が出たらしい。1.3ではレンダーパスとフレームバッファなしで簡単に描画を行うdynamic renderingと、パイプラインを作った後変更できるパラメータが猛烈に増えるextended dynamic state系の拡張が標準に入る https://t.co/2JxJQSyeNu」 / Twitter
- Vulkan 1.3 and Roadmap 2022 - The Khronos Group Inc
- FadisさんはTwitterを使っています 「さらにVulkan 1.3ではバリアの対象となるステージをデータ毎に個別に設定できるvkCmdPipelineBarrier2と、将来の拡張のためにpNext付きの構造体で引数を渡すようになったvkCmdCopyBuffer2等の関数が標準に取り込まれる。機械学習でよく使う整数の内積のサポートも標準に入る。」 / Twitter
- FadisさんはTwitterを使っています 「Vulkan 1.3で標準に取り込まれた機能は新機能というより既存の機能のめんどくさいところをめんどくさくなくする為の物が多いな。今までのすっぴんのVulkanはよく言って超めんどくさいからこれは大変良い」 / Twitter
- FadisさんはTwitterを使っています 「OpenGLが残念だったのはステートフルだったからじゃなくて、ステートがグローバルでプロセス中に1個しか作れなかったからなんじゃないかな。そのせいでパイプラインステートを一括で切り替えるだとか、コンテキストを複数作って複数のGPUの相手をするだとかいった事をするのにVulkanを待つ必要があった」 / Twitter
- FadisさんはTwitterを使っています 「s/コンテキスト/インスタンス/」 / Twitter
- FadisさんはTwitterを使っています 「GPUは複数のパイプラインを同時に処理して性能を稼ぎたい。一方OpenGLのAPIは唯一のパイプラインを逐次処理するのに適した形になっている。この結果GPUのドライバはプログラマには逐次処理しているように見せかけながら中ではアウトオブオーダーでパイプラインを捌くようになった。」 / Twitter
- FadisさんはTwitterを使っています 「APIはそのままで済んだんだから良いじゃないか、となりそうなところだけどゲーム屋さんは性能をすごく気にするからGPUが性能を出しやすいようにしたいわけだけど、こうなると逐次処理しているかのようなAPIで要求した内容がドライバによってどう捌かれるかをエスパーするの能力が求められる」 / Twitter
- FadisさんはTwitterを使っています 「こういう無理ゲーの時代を経て、やっぱり無理だよねってなってVulkanのような新しいAPIが生まれた」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「ところがそうでもなくて,SIMD命令やGPUを前提にすると,複数データを一度に処理するために1つあたりのデータサイズを抑えたほうがかなりの速度が出ます。」 / Twitter
- fumiさんはTwitterを使っています 「いまやマイコンもFPGAもリソースもりもり森鴎外なので、1byteを削るために最適化したりする必要もなく、ガンガン32bitで計算すればいいし、ガンガン除算すればいい。」 / Twitter
- FadisさんはTwitterを使っています 「IntelがLinuxのDRMのメモリ管理にNEEDS_CPU_ACCESSフラグを追加している話。ディスクリートIntel GPUはResizable BARが使えない場合GPUのメモリのうち256MBの範囲だけがCPUから見えるようになるが、このCPUから見える範囲は上記のフラグが立ったメモリ確保に優先的に使われる https://t.co/MDx6qNpkjt」 / Twitter
- Intel Working On "Small BAR" Linux Driver Support For DG2/Alchemist - Phoronix
- FadisさんはTwitterを使っています 「現行のPCではCPUから256MBを超えるメモリに直接アクセスできるようにするResizable BARに最初から対応したUEFIが載っている事が多く、IntelのディスクリートGPU DG2もResizable BARに対応しているため、この変更は主に古いPCにGPUが接続された場合の為のものではないかと思われる」 / Twitter
- FadisさんはTwitterを使っています 「CuLE: NVIDIAのGPUを使って動くAtari 2600のエミュレータ。古のゲーム機Atari 2600は強化学習の研究でベンチマークとして広く用いられている為、膨大な数のエミュレータを高速に実行する事には大きな需要がある。そこでAtari 2600のエミュレータをCUDAで実装した、と https://t.co/7zLOvAKK3D」 / Twitter
- New Open Source GPU-Accelerated Atari Emulator for Reinforcement Learning Now Available | NVIDIA Technical Blog
- FadisさんはTwitterを使っています 「GPUで処理を高速にするには並列度が必要だが、CuLEでは大量のエミュレータを個々のスレッドに割り当てて同時に実行する。また、実行結果は通常DNNで評価するためにGPUに送られるが、この方法なら実行結果は最初からGPU上にあるので帯域を節約できる。記事によるとGPU4本で44900fpsで結果を吐けたらしい」 / Twitter
- KOBA789さんはTwitterを使っています 「3D CG の技術、GPU の機能や Graphics API の機能をアーティストが再解釈しまくっており、機能の本来の意図や原理をガン無視しているものの結果的にはいい感じの絵が得られるみたいな謎テクが大量にあるな」 / Twitter
- たたさんはTwitterを使っています 「@KOBA789 グリッチ表現周りのテクとかヤバいですよね」 / Twitter
- KOBA789さんはTwitterを使っています 「@8picoz 真っ当な演繹だけではたどり着けない世界ですね」 / Twitter
- Yuichiro MinatoさんはTwitterを使っています: 「正直これで本物の量子コンピュータ開発のハードルすごい上がる。これまで量子コンピュータでしかできないといわれてた計算を簡単にGPUで計算できてしまうので、量子の存在意義が問われる。 NVIDIA,量子コンピュータ向けのプログラミングプラットフォーム「QODA」を発表 https://t.co/lId7xY0BpM」 / Twitter
- NVIDIA,量子コンピュータ向けのプログラミングプラットフォーム「QODA」を発表
- PCLOSさんはTwitterを使っています: 「@MinatoYuichiro これ、「量子計算ができるアクセラレータはまだ実用段階じゃないからデータの出入り口だけ決めて計算はGPUでやる」記事だと思います。先にGPUで作っといて、後からQPU?に取り替える的な。」 / Twitter
- Yuichiro MinatoさんはTwitterを使っています: 「@PC50052101 まぁ、取り替えられるかどうかかなり微妙です。GPUでかなりできちゃうので。」 / Twitter
- Shinpei Kato (加藤真平)さんはTwitterを使っています: 「気づいたらこれをプラズマ融合の研究に使うというツヨツヨな人が出てきてTokamakを4ナノ秒で制御できるようになりましたって論文発表してたんですがGPUって誤り訂正できないから原発に使うのは絶対危ないしさらにハックしたドライバ使うのもっと危ないよと言っておきましたw https://t.co/aXF3HLURP7」 / Twitter
- High-speed, multi-input, multi-output control using GPU processing in the HBT-EP tokamak - ScienceDirect
- kobe20220713.pdf
- 電子計算機の沼さんはTwitterを使っています: 「なんでもできますよ..?(私はOpenMP Offloadingから自作のCUDAカーネル呼んでるだけ」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「ちなみにハードウェアの違いを吸収するソフトウェアレイヤーっていうのは、OpenACCみたいに全部裏側に隠して見た目を同じようにするっていうゴミクソ設計の事じゃないですからね…(´・ω・`)?」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「GPUとCPUのハードウェアの違いを吸収するようなフレームワークが大惨事なのでなんとかしてください(´・ω・`)」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「やっぱりコンパイラ拡張はどうしても限界だがMPIを再定義してデータ転送を全部MPIに載せるのがいいんじゃないかと思いつつあるが,それなんか5年くらい前に別のところで聞いたなってなってるしMPIはMPIでMPIなのでMPI」 / Twitter
- kashiさんはTwitterを使っています: 「この中に入っている、いつの間にかfreeになってたPGIコンパイラ(nvc, nvc++がたぶんそれ)でopenaccを使ってみた。gccのそれよりはさすがにちゃんと出来てて速い。 https://t.co/f7atHhXEWl」 / Twitter
- NVIDIA HPC SDK | NVIDIA NGC
- kashiさんはTwitterを使っています: 「openmp使って高速化してたとあるパズルsolverみたいなやつ、pragma ompをpragma accに変えただけで100倍速くなった。すげー。」 / Twitter
- FadisさんはTwitterを使っています: 「スマートフォン向けのGPUはタイルベースレンダリングで性能を出すように作られている。Vulkanではレンダーパスのサブパスを使ってマルチパスレンダリングをする事でこうしたハードウェアで高い性能を引き出せる事になっている。しかしそれは「ドライバがタイルベースレンダリングをしていれば」の話だ」 / Twitter
- FadisさんはTwitterを使っています: 「Mesaに実装されているQualcomm Adreno用のドライバTurnip、ARM MaliのドライバPanVk、Broadcom VideoCoreのドライバv3dv、これらのGPUはいずれもタイルベースレンダリングで性能を出す作りをしているが、Mesaのドライバはタイルベースレンダリングで期待される最適化をサポートしていない」 / Twitter
- FadisさんはTwitterを使っています: 「Androidスマートフォンでは通常ベンダーが提供するGPUのドライバが使われるが、ベンダーのドライバの品質が著しく低かったり、使いたいカーネルと組み合わせられなかったり、そもそも提供されていなかったりするとMesaのドライバが使われることがある。例えばGoogle Pixelは3から5までMesaを使っている」 / Twitter
- FadisさんはTwitterを使っています: 「結果としてAndroidスマートフォンだったとしても、Vulkanのレンダーパスを活用して性能を出るかどうかは、物によるとしか言えない状態になっている」 / Twitter
- 002: HW Validation List · heterodb/pg-strom Wiki
- Deno 1.8が、WebGPUサポート、動的アクセス許可などと共にリリースへ
- FadisさんはTwitterを使っています: 「グラフィック畑にはよく「こんな状態のシーンを描きたいんだけど、物理シミュレーションの結果この状態に至る初期状態は何でしょう」という難題が生じて、昔は職人さんがトライ&エラーしてたんだけど最近は物理シミュレーション全体を微分可能にして誤差逆伝播で初期状態まで遡る猛者論文が増えた」 / Twitter
- いまどきのVulkan - Speaker Deck
- FadisさんはTwitterを使っています 「ここだけの話カーネル/VMで発表したやつ、当時のfadisさんのVulkanレイトレの理解が間違ってて思いっきり間違ったこと言ってるんだけど、本の方では修正されている…」 / Twitter
- Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜
- Vulkan 1.3がリリース。新追加機能はオプションではなく実装を義務付け - PC Watch
- FadisさんはTwitterを使っています 「Vulkan SC 1.0の規格がリリースされたらしい。SCはSefety Criticalの略で「リソースが足りんから実行できんかった」をされると大惨事に繋がるような航空機などの乗り物の表示器、軍事、医療、産業機械等の表示のレンダリングのためのAPI。OpenGL SCの後継として規格化された https://t.co/egCLZuXY6G」 / Twitter
- Vulkan Ready To Take On Safety-Critical Market With Vulkan SC 1.0 - Phoronix
- FadisさんはTwitterを使っています 「Vulkan SCは通常のVulkanと異なりパイプラインを実行時に組み立てる事を認めない。事前に組み立てて静的解析によって必要なリソースを明らかにしたパイプラインを実行時にロードして実行する事で、特定の量のリソースを持つGPU上で描画を行なった場合にリソース不足で描画に失敗しない事を保証する」 / Twitter
- FadisさんはTwitterを使っています 「Vulkan 1.3.210でVK_EXT_graphics_pipeline_library拡張の情報が記載された。これはgraphics pipelineの設定を4段階に分割し、1つ以上の段階の設定を含むpipeline libraryを作れるようにする。4つの段階が揃うようにライブラリをリンクするとgraphics pipelineができる https://t.co/yswxHZXPA2」 / Twitter
- Vulkan 1.3.210 Released With Two Notable Extensions - Phoronix
- FadisさんはTwitterを使っています 「4つの段階は「先頭から頂点シェーダの前まで」「頂点シェーダからライスタライザまで」「ラスタライズ後からカラーブレンドの前まで」「カラーブレンドから最後まで」で、一部の段階だけ設定が異なる複数のパイプラインを作る場合に過去にコンパイルしたライブラリを使って高速にパイプラインを作れる」 / Twitter
- FadisさんはTwitterを使っています 「この拡張ではpipeline libraryのリンク時にLTOをかけるかどうかを指定できる。LTOを使わない場合パイプライン全体を一度に設定する場合やLTOを使う場合と比べていくらかの最適化の機会を失う可能性があるが、ランタイムはできるだけ高速に行える方法でライブラリをリンクしようとする」 / Twitter
- Shinpei Kato (加藤真平)さんはTwitterを使っています: 「GPUにもMMUがあってMMIOからそのページテーブルを操作できるのでNICのDMA転送先をPCIのどこかのアドレスに設定してそれをGPUメモリにremapしておけばイーサでパケット受信した瞬間にGPUで処理するということはできてこれはさすがに論文で発表しました https://t.co/jlQ1rY2NP4」 / Twitter
- Zero-copy I/O processing for low-latency GPU computing | Proceedings of the ACM/IEEE 4th International Conference on Cyber-Physical Systems
- Vulkan-Guide/README-jp.adoc at master · KhronosGroup/Vulkan-Guide
- ティアリング、スタッタリングについて | ドスパラ サポートFAQ よくあるご質問|お客様の「困った」や「知りたい」にお応えします。
- doitsujin/dxvk: Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine
MLIR
FPGA開発日記
- MLIRについての勉強 (チュートリアルをベースとした自作言語作成) - FPGA開発日記
- MLIRについての勉強 (チュートリアルをベースとした自作言語作成) - FPGA開発日記
- MLIRについての勉強 (チュートリアルをベースとした自作言語作成2) - FPGA開発日記
- MLIRの勉強 (2. チュートリアルをベースとした自作言語作成) - FPGA開発日記
- MLIRの勉強 (3. 自作言語のMLIR変換とダンプ) - FPGA開発日記
- MLIRの勉強 (4. 自作言語のMLIR変換とダンプ) - FPGA開発日記
- MLIRの勉強 (5. MLIRGenにおけるスコープ) - FPGA開発日記
- MLIRの勉強 (5. MLIRGenにおけるスコープ) - FPGA開発日記
- MLIRの勉強 (6. 演算を定義する) - FPGA開発日記
- MLIRの勉強 (7. rewriterの勉強) - FPGA開発日記
- MLIRの勉強 (8. rewriterの勉強2) - FPGA開発日記
- MLIRの勉強 (8. rewriterの勉強3) - FPGA開発日記
- uint256_tさんはTwitterを使っています 「MLIRのMLってMachine LearningっぽいけどMulti-Levelなんだよね」 / Twitter
- FadisさんはTwitterを使っています 「LLVMがMLIRをSPIR-Vにコンパイル出来るようになったらしい。MLIRは計算グラフを表現する中間言語で、TensorFlowが最適化の為のターゲット非依存の表現として生み出した。既にCUDAに落とす実装があったが、これでNVIDIA以外のGPUでもVulkanが動けばMLIRを実行できるようになる https://t.co/Wd195YHV2R」 / Twitter
- LLVM Adds MLIR-Vulkan-Runner To Run MLIR On Vulkan-Enabled GPUs - Phoronix
- FadisさんはTwitterを使っています 「ただし時々実行できないCUDA PTXを吐き出す…(白目」 / Twitter
- Fadisさんのツイート: "MLIR: LLVM IRにすると失われる情報を利用した最適化の為に言語固有の中間言語で最適化を行う言語が増えていて、機械学習フレームワークもそうしたいけど沢山のフレームワークが個別にこの実装をするの無駄だから共通の実装を作ろうぜ、とTensor Flowの人が作った中間言語 https://t.co/BZEXUi6HhI"
- MLIR Is A New IR For Machine Learning That Might Become Part Of LLVM - Phoronix
- Makoto Kato ︎︎さんのツイート: "いや、Tensorflowじゃなくて、LLVM作った人だから、彼。"
- ドッグさんはTwitterを使っています 「MLIR 中間言語の設計の紹介論文が Chris 筆頭著者で出てる | 'MLIR: A Compiler Infrastructure for the End of Moore's Law' https://t.co/F7DGu2NeU9」 / Twitter
- [2002.11054] MLIR: A Compiler Infrastructure for the End of Moore's Law
- てらモス♋️さんはTwitterを使っています 「LLVM を実行時に必要とするのは辛いのでコンパイル時に MLIR まで使えるようにしておいて、rustc 内で ptx-kernel 見つけたらそれは MLIR 経由で PTX にコンパイルして最終的な ELF のどっかに埋め込むような事がしたい...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「SPIR-V でも PTX でもそうだけど、ホストコード用の ELF にアクセラレータ向けのバイナリを埋め込む為の標準化を RedHat の人か誰かが提案してなかったっけ...」 / Twitter
- MLIR を Vulkan で動かすメモ(mlir-vulkan-runner) - Qiita
- google/iree: 👻
- MLIR のメモ(主に Vulkan で推論実行をターゲット) - Qiita
- (ソースコードメモ)UbuntuでMLIR入門 - Qiita
- PyTorch, ONNX, Caffe, OpenVINO (NCHW) のモデルをTensorflow / TensorflowLite (NHWC) へお手軽に変換する - Qiita
- 20190529_xSiG_public - imai_20190529_xSiG_public_s.pdf
- 'llvm' Dialect - MLIR
- LLVM IR Target - MLIR
- amshafer/Pinch: A simple borrow-checked language built using LLVM's MLIR
- ドッグさんはTwitterを使っています: 「Facebook が Clang に高レベルな中間言語 ClangIR 導入を提案してる.Swift でいう SIL,Rust でいう HIR や MIR.LLVM IR に lower した後では低レベルすぎ,AST のままではデータフロー解析がしづらいので,MLIR ベースで新たに設計 | '[RFC] An MLIR based Clang IR (CIR)' https://t.co/mmLrnOEgUX」 / Twitter
- [RFC] An MLIR based Clang IR (CIR) - Clang Frontend - LLVM Discussion Forums
- ドッグさんはTwitterを使っています: 「クリスも「Clang に中間言語を導入せず直接 LLVM IR に落としたのは良くなかった」と以前言ってたから,これは妥当な気がする」 / Twitter
- ドッグさんはTwitterを使っています: 「リポジトリ: https://t.co/mmXDmgprVK」 / Twitter
- facebookincubator/clangir: A new high-level IR for clang.
セキュリティ
その他
security.txt
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「セキュリティ脆弱性を機械可読な形式で記述する "security.txt" 形式がRFC標準に。これによって脆弱性の報告・収集が一部自動化され、迅速な対応が可能になる。」 / Twitter
- EdさんはTwitterを使っています: 「After 5 years of work, security.txt is officially an RFC. I am pleased to announce RFC 9116: https://t.co/uIqSRo28ak. I would like to use this opportunity to thank those who made this possible. Thank you. ❤️ https://t.co/Z8SNxd81ZO」 / Twitter
- RFC 9116: A File Format to Aid in Security Vulnerability Disclosure
OpenSCAP
- SCAP on Windows - Qiita
- OpenSCAP Base | OpenSCAP portal
- OpenSCAPを使用してみる | 猫とセキュリティ
- OpenSCAPで脆弱性対策はどう変わる? - @IT
- OpenSCAP の代替および類似のソフトウェア - ProgSoft.net
- Using openscap for scanning Windows · Issue #1280 · OpenSCAP/openscap
- openscap installation on windows
- 明日はじめるOpenSCAP - d1-3-moriwaka-2.pdf
- セキュリティ設定共通化手順SCAP概説:IPA 独立行政法人 情報処理推進機構
- Windows用の無料のOpenSCAPの代替 — Altapps.net
- 第8章 OpenSCAP を使用したコンプライアンスおよび脆弱性のスキャン Red Hat Enterprise Linux 6 | Red Hat Customer Portal
- 8.3. 設定コンプライアンススキャン Red Hat Enterprise Linux 7 | Red Hat Customer Portal
- Guide to the Secure Configuration of Red Hat Enterprise Linux 7 | OpenSCAP Security Guide
- Make a RHEL7 server compliant with PCI-DSS | OpenSCAP portal
- OpenSCAP(脆弱性スキャン)のインストールと使い方メモ | あぱーブログ
- CentOS 7 : OpenSCAP : セキュリティ監査 : Server World
- OpenSCAP を使ってみる - Qiita
- Osc2018 tokyo spring_scap
- OSがCentOS 7かどうかを判定するサンプルで、SCAPの構成要素XCCDFとOVALの構造を理解する:OpenSCAPで脆弱性対策はどう変わる?(5)(1/2 ページ) - @IT
- Download | OpenSCAP portal
- Ubuntu Oval | Security | Ubuntu
- Using OpenSCAP on Ubuntu 18.04 LTS
- How to perform security audits on Ubuntu server with OpenSCAP - TechRepublic
- OpenSCAPとは | OSSのデージーネット
- How to Audit Linux Systems using OpenSCAP - Knoldus Blogs
- openscap package : Ubuntu
XML・ASN.1 の脆弱性
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「当時は仕方なかったと思うのだけど参照関係が厄介なXML署名や暗号はXXEの影響受けやすいよね。ASN.1のバッファローバラン脆弱性が無くならないのと同じで、SAMLを含むXMLの脆弱性は一生無くならないよね https://t.co/yMAWPb8GOk」 / Twitter
- SAML — what can go wrong? Security check | by Natalia Trojanowska | SecuRing | Oct, 2021 | Medium
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「SAMLの署名検証しない問題は、証明書チェーン検証しないとか失効検証しない問題と似てますね」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「たいぽ 誤:バッファローバラン脆弱性 正:バッファオーバーラン脆弱性」 / Twitter
ASAN
- Kazuho OkuさんはTwitterを使っています 「「main から抜ける時にリソース解放してない、みたいなこと言われないように _exit 呼んでる」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ひょっとして「asanでリーク発見しました」みたいなことを言う人たち、_exit呼べば黙るのでは(asanがリーク報告するのはおそらく_finiの中だから)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シグナルとmainの話なんだけど、たとえばmain抜けた後で_fini動いてる途中とか、その後でシグナル来ることってありますやん。そういう時にシグナルハンドラでできることってなんなんやろ。どうやって皆、動作保証してるんやろ。_exit呼んでる? シグナルハンドラをunregisterしてる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「普通はこんなタイミング問題どうでもいいんだと思うけど、asanが_finiの中で、グローバル変数の監視解除するのに時間かかってて発覚した」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho _exit は副作用強すぎるので、その症状だけならunregisterかblockが無難ですよねえ…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho もっとも、本当に _exit で良いと分ってるならそれが一番高速ですけど…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。一般論として、_fini中にシグナルハンドラが動く場合は、共有ライブラリの関数も呼べない可能性がある、とかそういう制限はあるんでしょうか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda LeakSanitizerが動かない!ってissueたてられそうなので、それはやめとこうかなと思ってます」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho たとえばシグナルハンドラでは async-signal-safe として規定されている関数を呼んでるのみであれば問題ないような… 今回は自前の実装と相互作用のある処理をたぶん呼んでいるんですよね…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda あいや、今回は main のローカル変数のアドレスが、グローバル変数のポインタに登録されていました。そして、_fini -> __asan_unregister_globals呼び出し中に、シグナルが配送された結果、ASANがstack underflowを深刻しabortしていました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda うーん、ASANと組み合わせて動くようにしておきたいという前提があるなら、_fini呼び出し前にシグナルハンドラをblock/ignにしておくべきな気がしてきた。ASANが自身を登録解除中に正しく動作する保証あるのかって話になるし」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho なるほど、そういうケースならmain()の最後で #if 1 /* not strictly necessary, but make ASAN happy */ global_var = NULL; /* unref local_var for ASAN */ #endif としとくのが将来もその処理の理由を忘れなくていいような気がします。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda んー、シグナルハンドラが正しく実装されていれば、それで良いですが、ASANはバグを検出するためのツールじゃないですか。で、ASANは__asan_unregister_globalsが呼ばれている間も正しく動作する保証があるのか。保証ないのであれば、mainを抜ける前にシグナルハンドラを登録解除するほうがいいかなと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕が誤解しているかもしれないんですが、シグナルハンドラでは、mainのローカル変数をグローバル変数経由で参照しているんですよね? だとするとこのケースに限定すれば問題が実際に存在しASANは正しくそれを報告しているので、粛々と問題に対応するのがいいような気がしてます。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。正しいコードとしてはそれでもよいのですが、今回みたいなバグがあった場合に、ASANが発狂しないか、ということを気にしています。ASANが発狂して悩むくらいなら、シグナルハンドラをunregisterしちゃっていいんじゃないかと。ちなみに https://t.co/QEzTjeNf78 これです」 / Twitter
- [server] [bug-fix] Crash in h2o_multithread_send_message() when on_sigterm() is called twice by nalramli · Pull Request #2913 · h2o/h2o
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕もASANの仕様は分からないです。 あとmain()の最後でunref する処理がけっこう面倒なら、unregisterを不正な参照対策として行うってのも(ASANの仕様に関わらず)アリですね。」 / Twitter
KMSAN
- FadisさんはTwitterを使っています: 「LinuxカーネルにMemorySanitizerをかけられるようにするKMSANがメインラインに入りがたがっている話。KMSANは今の所メインラインに入っていないが、syzkallerと組み合わせて既にカーネルの300以上のバグを発見しているらしい https://t.co/Ml8sYis33a」 / Twitter
- KMSAN Patches For The Linux Kernel Updated For Catching Uninitialized Memory Problems - Phoronix
- FadisさんはTwitterを使っています: 「LLVMには未初期化の値を読んだ事を検知するためのコードを挟むMemorySanitizer(MSAN)があるが、これをカーネルで使えるようにしたのがKMSAN。KMSANはカーネルがメモリを確保すると一定距離離れたアドレスにshadow memoryを確保する。shadow memoryは1で初期化され、値に何か書かれると0が書かれる。」 / Twitter
- FadisさんはTwitterを使っています: 「値を読む時は常に対応するshadow memoryの値がチェックされる。1だったら未初期化の値を読んでいる。未初期化の値を読む事は何が読まれるか分からないのはもちろん、読めてはいけないデータを漏らす原因になったり、未定義動作(n2176他§6.2.6.1-5)なのでコンパイラが驚きの最適化をしたりと色々まずい」 / Twitter
Pwn入門
- Fadisさんのツイート: ". @megumish さんの「Pwn入門」が始まります #kernelvm"
- Fadisさんのツイート: "Pwnとは: サーバを攻撃して制御を奪う。シェルとかを実行する #kernelvm"
- Fadisさんのツイート: "メモリ上の命令列を書き換えるのがPwnを行う最も簡単な方法だが、今日のプロセッサではメモリ領域に対して行える操作が設定されていて普通は実行可能バイナリを直接書き換える事はできない #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "Pwnするにはメモリの値を書き換えたい。そのためにバッファオーバーフローや書式文字列の攻撃を使うわけか。ROP(Return Oriented Programming)もその一つ。 #kernelvm"
- Fadisさんのツイート: "バッファオーバーフロー、ROP、Format String Attackなどを使ってPwnを行う #kernelvm"
- Fadisさんのツイート: "スタックの変数の範囲外に書き込める不具合があるとリターンアドレスを書き換えられる→retで実行可能バイナリの好きなところに飛ぶ事ができる #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "ASLRがあるとスタック領域の場所がわからないので、.bss領域を使う #kernelvm"
- Fadisさんのツイート: "バッファオーバーフローでリターンアドレスが.bssを指す状態にしてbssにシェルコードを書いておく → NXbitが有効に使われているとこの方法は使えない → そういうときはROP #kernelvm"
- Fadisさんのツイート: "任意のサイズのmallocが可能 かつ Heap Over Flowができる状況では File Stream Oriented Programmingが可能になる #kernelvm"
- Fadisさんのツイート: "発表者「正しく知識として身につけるためにはmallocの実装を理解する必要がある」 #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "小崎先生のmalloc動画を見ていたお陰でmain arenaが何なのかはなんとなく分かるぞ。見といてよかったmalloc動画。 #kernelvm"
Beyond Zero-day Attacks
- Beyond Zero-day Attacks - @IT
- 脆弱性と攻撃をめぐる事件と話題 (1/2):Beyond Zero-day Attacks(1) - @IT
- スタックに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(2) - @IT
- ヒープに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(3) - @IT
- Use After Freeとヒープスプレー (1/3):Beyond Zero-day Attacks(4) - @IT
- DEPの仕組みとその回避手法 (1/3):Beyond Zero-day Attacks(5) - @IT
Automatic Fortification
- バッファオーバーフローへの対策技術入門
- 2017年10月25日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
- Advances in Information and Computer Security: 13th International Workshop ... - Google ブックス
- Fortification of IT Security by Automatic Security Advisory Processing - IEEE Conference Publication
- Bread and Its Fortification: Nutrition and Health Benefits - Google ブックス
- gcc4 on cygwin - BOOLEANLABEL
MiraclePtr
- Kentaro HaraさんはTwitterを使っています: 「2年がかりでチームで取り組んだChromeのプロジェクトMiraclePtrをローンチしました!Chromeの大量のC++生ポインタを「みらくる」なポインタ(use-after-freeを無効化する特殊なポインタ)に書き換えてセキュリティを大幅に向上しています!性能低下も最小限に抑えています。 https://t.co/zCJ3KtaYBo」 / Twitter
- Google Online Security Blog: Use-after-freedom: MiraclePtr
- Kentaro HaraさんはTwitterを使っています: 「現時点ではWindowsとAndroidだけですがこれから全OSに広げていきます。現時点でブラウザプロセスの約65%のC++ use-after-freeセキュリティバグが無効化されてて、がんばれば80%くらいまでいけそうな予感。」 / Twitter
- FadisさんはTwitterを使っています: 「GoogleがChromeでuse-after-free脆弱性を防ぐ目的で導入したMiraclePtrについて。基本的な仕組みは参照カウント型スマートポインタだが、Chromeが自前でアロケータを持っている事を利用してアロケータ側に参照カウントを持たせる点がshared_ptrと異なる https://t.co/Lz9IpHVLs5」 / Twitter
- FadisさんはTwitterを使っています: 「MiraclePtrではraw_ptr<T>と呼ばれる型が用意される。生ポインタの代わりにこの型を使うと、コンストラクタ、代入、デストラクタでアロケータに置かれたアロケーション毎の参照カウントがインクリメント/デクリメントされる。この型はstdのスマートポインタより暗黙に生ポインタにキャストしたがる」 / Twitter
- FadisさんはTwitterを使っています: 「Chromeに実装されているメモリアロケータPartitionAllocはfreeやdeleteが行われてもそのアロケーションの参照カウントが0になるまでメモリを再利用しなくなる。これによって解放済みの領域を指すポインタがあってもその参照先を書き換えて攻撃に使う事ができなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「アドレスが一致していれば同じ参照カウントの値を読み書きできる為、stdのスマートポインタと異なりraw_ptrから生ポインタをget()し、その生ポインタを別のraw_ptrに渡しても2つのraw_ptrは同じカウンタを操作する。従って生ポインタを渡すしかない辛いコードが挟まっていてもその両端で使う事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「MiraclePtrは手法こそ同じだが、あくまでuse-after-free脆弱性を防ぐ為の仕組みであってGCではない。deleteされたが参照カウントが切れていない領域を指しているraw_ptrのデリファレンスはplacement deleteされたインスタンスを触るのと同じである」 / Twitter
- [2103.04952v1] Prime+Probe 1, JavaScript 0: Overcoming Browser-based Side-Channel Defenses
- Security/Binary Transparency - MozillaWiki
- seclang01 - essen-wiki
- ipa ファイル レースコンディション - Google 検索
- 自分のこと、知れてますか。 〜自分のPCをフォレンジック〜 - Qiita
- webshell - Google 検索
- クラウドセキュリティ・アドバイザリー | 脆弱性診断(セキュリティ診断)のイエラエセキュリティ
- メモリー破壊 ‐ 通信用語の基礎知識
- 「Chrome」は「MiraclePtr」でさらに安全に ~Googleが「解放後メモリ利用」対策を開設 - 窓の杜
- xss 脆弱性のあるサイトを作ってセッションハイジャックを試す - Qiita
- セキュリティエンジニアにセキュリティ技術情報収集のやり方を聞いてみた - ラック・セキュリティごった煮ブログ
OWASP Top 10
- とある診断員さんはTwitterを使っています 「OWASP Top 10 https://t.co/DZOkpcWyFu OWASP Top 10の2021版がリリースされたようですね。SSRFがランクインしてますね。なんか段々一つの項目に従来の複数項目が沢山インクルードされてきている印象かな。そもそも10個の項目に収めるのが難しいってことなのかもしれないけど。」 / Twitter
- OWASP Top 10
- とある診断員さんはTwitterを使っています 「https://t.co/Tdd8w4e7rm 知り合いに指摘されて気づいたのですが、一応現段階ではドラフト版のようですね。」 / Twitter
- Notice - OWASP Top 10
- Yosuke HASEGAWAさんはTwitterを使っています 「OWASP Top 10 2021年版、目次部分の前半ざっくりと日本語に訳しました。 https://t.co/DDE915gfvH」 / Twitter
- OAWSP Top 10 2021 ja
システムコール
proot・fakeroot
- 中村さんはTwitterを使っています: 「prootはptraceベースらしい。 fakerootはLD_PRELOADベースなのか」 / Twitter
- Tsukasa #01 (3x vaccinated)さんはTwitterを使っています: 「この記事を見て一番ビックリしたのは、proot という疑似 root プログラムの存在。fakeroot と立ち位置が似ているが、これは……より深い介入を行うんだろうか? よく分からん。」 / Twitter
- ぬん。さんはTwitterを使っています: 「まじか。。 #linux #Ubuntu /Playストアからダウンロードできるもう1つのAndroid上Linux!「UserLAnd」 ~起動直後からいきなりUbuntu 20.04な環境でより便利に - PC Watch https://t.co/9cxE6dzN8Y https://t.co/Uvd8SCUCzY」 / Twitter
- 【西川和久の不定期コラム】Playストアからダウンロードできるもう1つのAndroid上Linux!「UserLAnd」 ~起動直後からいきなりUbuntu 20.04な環境でより便利に - PC Watch
- 中村さんはTwitterを使っています: 「心の師、大山さんのptrace入門(買ったけど読めていない) 研究室時代にこのへん色々とお話を伺ったなぁ。 https://t.co/g3HTl4Q97j」 / Twitter
- Amazon.co.jp: ptrace入門: ptraceの使い方 eBook : 大山恵弘: 本
- 中村さんはTwitterを使っています: 「牧歌的な時代なら、システムコールテーブルを書き換えるというのが速かった(先輩がやってた)けど、今のカーネルだとシステムコールをフックするには、どんな手段が網羅的かつ高速なんだろうか。やっぱりバイナリ書き換え?」 / Twitter
- 新たな形態のLinuxマルウェアが見つかる--検出は「ほぼ不可能」 - ZDNet Japan
- FadisさんはTwitterを使っています 「OpenBSDが「libcのようなシステムコールを使うことが意図されたライブラリの置かれたアドレス以外から飛んでくる不審なシステムコールは拒否しよう」という仕組みを導入したら、不審なGo言語で作られたバイナリが全く動かなくなってしまった話良い」 / Twitter
- FadisさんはTwitterを使っています 「で、それに対するOpenBSDの対応が「Go言語がきちんとlibc経由でシステムコールを呼ぶように修正する」なのが更に良い https://t.co/8eoSVQEjtr」 / Twitter
- κeenさんはTwitterを使っています 「システムコールは叩きたいけどC FFIは用意する気がない言語を作りたいときに非常に困る。極論、OSは場を提供する親なので逆らえないし嫌なら出てけって話なんだけど…」 / Twitter
- 鯉江さんはTwitterを使っています 「@blackenedgold システムコール直にたたくと移植性が落ちません?」 / Twitter
- κeenさんはTwitterを使っています 「@koie 移植すればいいだけです。それに、Cそのまま呼べる特殊な言語でない限りABI気にしないといけないのでどのみちプラットフォームごとの処理は必要です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「syscallレベルで「も」互換性確保しようするとOSの変化の足かせになる、というのはあるのかな。brk廃止できないとかvdsoに移行したあと古いsyscall消せないとか。またtcpみたくライブラリとして提供されがちな機能もあるわけで(Solarisや最近のApple)、syscallで機能がそろうと期待するのがそもそもry」 / Twitter
- DrumatoさんはTwitterを使っています 「keenさんほどハイレベルなこと考えているわけじゃないけど,気持ちはよくわかります. 今作っているPeachili言語ではC FFIを用意する代わりにインラインアセンブラみたいな構文を用意して標準ライブラリに組み込んである. (かなり大変だった) (そういう話じゃなかったらすみません」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ページ属性に特定のビットが立ってないとシステムコールが発行できない、という仕組みがあったCPUってなんだったっけ…とhttps://t.co/KPAIFeCYVJ をみてそうだPA-RISCとIA-64だと思い出した」 / Twitter
- 仮想メモリ方式の分類
- dancerj 🗾さんはTwitterを使っています 「@takehiro_t sysenterもまあそういうノリな気がします」 / Twitter
- FadisさんはTwitterを使っています 「Linuxにシステムコールを呼べるメモリの範囲を制限する仕組みを追加する提案がなされている。ただ、攻撃者の妨害を狙ったOpenBSDの同種の機能と異なり、Linuxの狙いはWindowsの実行可能バイナリをLinux上で実行したときに発行されたシステムコールを捉える事らしい https://t.co/US0EbzPndP」 / Twitter
- FadisさんはTwitterを使っています 「WindowsバイナリをWindowsじゃないところで実行するWineは従来Windows APIを自前で実装する事で実現されていたが、近年Windows APIを使わず自分でシステムコールを投げるアプリケーションが増えていて、この方法ではWindows用のシステムコールが飛んでしまうらしい」 / Twitter
- FadisさんはTwitterを使っています 「そこでmmapのオプションにシステムコール禁止フラグを追加し、Windowsの実行可能バイナリをロードした領域だけシステムコール禁止にして、Windowsの実行可能バイナリ内から行われたsyscallを捕捉してエミュレーション用のコードを実行しよう、という魂胆らしい」 / Twitter
- FadisさんはTwitterを使っています 「先日のPolkitのローカル権限昇格脆弱性(CVE-2021-4034)(これ自体はPolkit側で塞がれる)を受けてLinuxカーネルで「引数なしでexecveのシステムコールが飛んできたらそもそも蹴るべきでは」という議論が起きている話 https://t.co/CMJcyBCMJ7」 / Twitter
- FadisさんはTwitterを使っています 「Linuxが引数なしのexecveを認めなければPolkitのようなミスをするソフトウェアが居ても直ちに環境変数の実行に繋がらない。argv[0]にプログラム名が入っていることを期待するプログラマは多いためPolkitだけの修正で済ますより包括的な再発防止策をとる事は有益ではある。」 / Twitter
- FadisさんはTwitterを使っています 「ただ、argv[0]にプログラム名が入っているというのは多くのソフトウェアで行われている慣習でしかなくPOSIX含む諸々の標準規格はargv[0]にプログラム名を入れることを要求していない。この変更は実際に雑に書かれたソフトウェアの互換性を壊す事が分かっていて、入れて良いものかどうかで揉めている」 / Twitter
- 2022年2月1日 Qualys,主要Linuxディストリビューションに「Polkit」の脆弱性を警告:Linux Daily Topics|gihyo.jp … 技術評論社
- 20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog
- Dirty Pipe(CVE-2022-0847)の発見経緯が面白かった - knqyf263's blog
署名
ASN.1
- 自堕落な技術者の日記 : オススメASN.1ビューアaatool - livedoor Blog(ブログ)
- www5d.biglobe.ne.jp/stssk/asn1/index.html
- もいちど知りたい、セキュアコーディングの基本(5):見落としがちな整数関連の脆弱性(後編) (1/2) - @IT
- ASN.1 バイナリ変換規則 (BER, CER, DER)
- ASN.1 データ生成/解析の事始 — SOUM/misc
- Tools
- vlm/asn1c: The ASN.1 Compiler
- Lev Walkin → ASN.1 Exposed
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- RFC3641 ASN.1での一般的文字列コード化規則(GSER)
- RFC 3641 - Generic String Encoding Rules (GSER) for ASN.1 Types
- RFC 4792 - Encoding Instructions for the Generic String Encoding Rules (GSER)
- Specification # 36.331
- 2-3_urushima.pdf
- Application fields of ASN.1
- FFASN1 Compiler
- ffasn1dump ASN.1 Message Converter
X.509
RFC
- RFC 2459 - Certificate and CRL Profile
- Internet X.509 PKI Certificate and CRL Profile
- RFC 3280 - Certificate and CRL Profile
- RFC 4325 - Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension
- RFC 4630 - Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
- RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
EternalWindows
- MakeCert Functions
- 証明書の形式
Qiita
- certificate - RSA鍵、証明書のファイルフォーマットについて - Qiita
Wikipedia
- 自己署名証明書 - Wikipedia
- Self-signed certificate - Wikipedia
- X.509 - Wikipedia
- X.509 - Wikipedia
Twitter
- Kazuho Okuさんのツイート: "PKIの証明書の時間的分解能は、時差がないから24時間以下とかにはできないのか。なるほど #ietf96j"
- Kazuho Okuさんのツイート: "「どうせ短寿命証明書はやる方向なんだし、それに乗っかるんだったらLurk WGは不要だよね」 #ietf96j"
- 情報セキュリティ入門 - PKI(後編)---X.509証明書とPKIの仕組み:ITpro
- X.509証明書
- 電子証明書のデータ形式 - RFC3289 X.509 Public Key Infrastructure Certificate and CRL Profile
- X.509 の解説
- 暗号技術基礎
- 公開鍵基盤(PKI)の概要
BLS署名
- BLS署名と秘密分散を組み合わせる - Qiita
- BLS署名の紹介と実装 - Qiita
EternalWindows
- 署名の格納
- ファイルと署名
- 副署名の設定
- 署名と属性
- 署名の構造
- 署名の取得
Wikipedia
- 電子署名 - Wikipedia
- RSA暗号 - Wikipedia
- Abstract Syntax Notation One - Wikipedia
- Abstract Syntax Notation One - Wikipedia
- X.690 - Wikipedia
Qiita
- 公開鍵暗号と電子署名の基礎知識 - Qiita
- 電子署名のファイルフォーマット - Qiita
- コードサイニングとは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
- コードサイニングの複数署名とハッシュアルゴリズムの異なる証明書の無償発行 -SHA-1署名のみのためインターネットからダウンロードする際に警告されていたりSHA-2署名のみのため旧バージョンのOSで問題が起こっているソフトウェアの作者へ-
- デジタル署名とデジタルID用のコード署名デジタル証明書
- セキュリティー関連の規格 のメモ
- extract-authenticode/README.ja.md at master · trueroad/extract-authenticode
- HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第1回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第2回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第3回:最終回) - livedoor Blog(ブログ)
- RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
- 署名を作成する
- 署名を検証する
- セキュリティー関連の規格 のメモ 署名アルゴリズム
- 自堕落な技術者の日記 : 図説RSA署名の巻 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : RSAとECDSA、署名生成と署名検証どっちが速い? - livedoor Blog(ブログ)
- RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
- 改良型Winternitz one time署名の提案と安全性評価
- Hash-Based Signatures Part I: One-Time Signatures (OTS)
- jedisct1/minisign: A dead simple tool to sign files and verify digital signatures.
- Criminal use of code signing certificates | Firmware Security
- macOSにコード署名チェックをバイパスできる脆弱性 - PC Watch
/GS
MS
- /GS (バッファーのセキュリティ チェック)
- コンパイラ セキュリティの徹底調査
- コンパイラ セキュリティの徹底調査
- safebuffers
- __security_init_cookie
- C++ - Visual C++ Support for Stack-Based Buffer Protection
- WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる - ももいろテクノロジー
- Beyond Zero-day Attacks(2):スタックに対する攻撃とその対策 (3/3) - @IT
- スライド 1
- /GS ‐ 通信用語の基礎知識
- IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
- C言語系/memos/VC++/09, スタック破壊の検出・防止("/GS", "/RTC", "/GZ") - Glamenv-Septzen.net
- __security_check_cookie | すなのかたまり
- C言語系/memos/VC++/10, "/NODEFAULTLIB"使用時の注意 - Glamenv-Septzen.net
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017でカナリアを有効(/gs)にすると、atoi(0) がスタックオーバーフロー扱いで、例外ハンドラへの遷移を許さずに即時終了する様子。 atoi内部で使っている、パラメータ検査ルーチンにはこんな記述が。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SetUnhandledExceptionFilterは無視されるが、_set_invalid_parameter_handlerを仕込んでおくと、こちらが呼ばれる様子。 うーん、統一的なハンドリング方法を提供して欲しいところ。"
Control Flow Guard
Control Flow Integrity
- Control-flow integrity - Wikipedia
- Control-Flow Integrity - Microsoft Research
- Control-Flow Integrity - Microsoft Research
- ccs05.pdf
- Control Flow Integrity — Clang 7 documentation
- Control-Flow Integrity: An Introduction
- Control-flow integrity
- Out Of Control: Overcoming Control-Flow Integrity
- usenix13.pdf
- Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM – Google AI
- SSTIC2015-Article-control_flow_integrity_on_llvm_ir-fontaine_chifflier_coudray_esfrDAl.pdf
- Let’s talk about CFI: clang edition | Trail of Bits Blog
- Practical Control-Flow Integrity
- Google Online Security Blog: Compiler-based security mitigations in Android P
- Kostya Serebryanyさんのツイート: "New security hardening in Android P: CFI and [un]signed-integer-overflow checks. (my team is responsible for the LLVM side of these things) https://t.co/zgylJE9AjW"
- Android Developers Blog: Compiler-based security mitigations in Android P
- まさみさんは語りたいさんのツイート: "Control Flow Integrityって、コンパイラ屋なのにCFIって略称使うの気持ち悪くないのかな?Call Frame Informationの略でもあるんだけど。"
- Google Online Security Blog: Control Flow Integrity in the Android kernel
- mumumuさんはTwitterを使っています 「Control-Flow Integrity [CCS '05] いわゆるCFIを最初に(?)提唱した論文.共著でMSに人たちがいて,実装はWindows上でやってるのは面白い.全ての命令の遷移を,instrumentにより,予め与えられたCFGに基づいて妥当かどうか実行時に判断する戦略,直感的でわかりやすい. https://t.co/nvojQmYhqx」 / Twitter
- Abadi et al._2005_Control Flow Integrity.pdf
MS
- Control Flow Guard (Windows)
- Windows 10 Memory Protection Features | Ask Premier Field Engineering (PFE) Platforms
- -guard (有効にする Control Flow Guard) | Microsoft Docs
- ガード (ガード チェックを有効にする) | Microsoft Docs
- -guard (Enable Control Flow Guard)
- -GUARD (Enable Guard Checks)
- -HIGHENTROPYVA (Support 64-Bit ASLR)
- Memory Management Reference (Windows)
- Memory Management Functions (Windows)
- Memory Management Registry Keys (Windows)
- Memory Management Structures (Windows)
- Memory Protection Constants (Windows)
- Memory Protection Constants (Windows)
- SetProcessValidCallTargets function (Preliminary)
- VirtualProtect function (Windows)
- VirtualAlloc function (Windows)
- LoadEnclaveData function (Windows)
- CreateFileMapping function (Windows)
- Memory Protection (Windows)
- VirtualAllocEx function (Windows)
- Control Flow Guard (Windows)
- Control Flow Guard - Win32 apps | Microsoft Docs
- MSRC-Security-Research/BHUSA16_Weston_Miller_Windows_10_Mitigation_Improvements.pdf at master · microsoft/MSRC-Security-Research
- Announcing Changes to Microsoft’s Mitigation Bypass Bounty - Microsoft Security Response Center
- 「Microsoft Edge 97」が安定版に ~学生・研究者に便利なコレクションの引用機能を導入 - 窓の杜
- MR201412_Control_Flow_Guard_JPN.pdf
- Windowsのセキュリティ機能Control Flow Guard解説 « 他人の空似
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CFG export suppression~ « 他人の空似
- Run-TimeErrorChecksとBufferSecurityCheck « 他人の空似
- Windows開発はclang+lldでも実用レベルか?セキュリティ面から調べてみた « 他人の空似
- Rockridgeさんのツイート: "Fx60:Windows版で、firefox.exeがControl Flow Guardに対応。Windows 8.1 Update以降の環境でセキュリティが強化されるという。参照:https://t.co/25VQMWSHXZ https://t.co/J1IuXmnWy5"
- Gadgets Zoo: Bypassing Control Flow Guard in Windows 10 - Rafal Wojtczuk Jared DeMott Derbycon 2015 (Hacking Illustrated Series InfoSec Tutorial Videos)
- Exploring Control Flow Guard in Windows 10
- Manual Control Flow Guard in C « null program
- Let’s talk about CFI: Microsoft Edition | Trail of Bits Blog
- DerbyCon: Former BlueHat prize winner will bypass Control Flow Guard in Windows 10 | CSO Online
- mumumuさんはTwitterを使っています 「Code-Pointer Integrity [OSDI '14] データのRWができる攻撃者からのControl Flow Hijackを防ぐために,Control Flowに影響があるポインタ(Sensitive Pointer)のみ別のメモリ空間に保存し,Instrumentによる安全性の担保を行う.CFI等の既存手法よりも低オーバヘッドで強い保障を与えられるのが売り.」 / Twitter
CET(Control-flow Enforcement Technology)
- Fadisさんのツイート: "gcc8からIntel CETに対応する模様。CETはCALL RET等の一部の命令だけが読み書きできるリターンアドレスだけが積まれた裏スタックを作り、従来のスタックとリターンアドレスの比較を行う事でROPを検知する https://t.co/ZQFPQrSZYo"
- Control-Flow Enforcement Technology Begins To Land In GCC 8 - Phoronix
- るくすさんのツイート: "戻りアドレスをチェックしてROP等の攻撃を防ぐControl-Flow Enforcement Technology (CET)がGCCに追加される予定とのこと。 https://t.co/DKJEXYlI9U"
- Intel Posts Control-Flow Enforcement Support For GCC - Phoronix
- Rui Ueyamaさんのツイート: "@RKX1209 そういやABI拡張が提案されていた。 https://t.co/zRo7Z2CX23"
- RFC: Update x86 psABIs to support IBT
IBT
- FadisさんはTwitterを使っています: 「Linux 5.18から利用可能になったカーネルのIBTサポートについて。Tiger Lake以降のIntelプロセッサでは間接ジャンプが意図したアドレス以外に飛んだ事を検知するIBTが使える。これが有効だと攻撃者はジャンプ先アドレスを書き換えて任意のコードを実行するのが難しくなる https://t.co/DVCIYY1Q53」 / Twitter
- FadisさんはTwitterを使っています: 「IBTが有効な場合間接ジャンプで飛んだ先がendbr命令でない場合例外が飛ぶようになる。間接ジャンプで飛んでくる事が想定されるコードの先頭にだけendbrを置いておく事で、攻撃者が飛び先を書き換えられる不具合があったとしても、そこから選べる飛び先が著しく制限される」 / Twitter
- FadisさんはTwitterを使っています: 「カーネルのIBTサポートは基本的にコンパイラのサポートを利用するが、アセンブリで実装された部分には手作業での対応が必要になる他、ファームウェアなどの外のコードの実行前に一時的にIBTを切る処理が必要になったらしい。変更はカーネル空間のみを対象にした物でユーザ空間に移る時はIBTが切られる」 / Twitter
- FadisさんはTwitterを使っています: 「endbrのオペコードは従来からx86_64で効果が無いので事実上nopと解釈されていた物で、IBT非対応のCPUでは単純に無視される。IBTはretに対しては働かない為retpolineと互換性がないが、Alder Lake以降のIntel CPUではIBTが有効な間接ジャンプは投機的実行が制限される為、retpolineを使う必要がなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「lwnの記事にobjtoolで間接ジャンプ先になり得ない関数を見つけてendbrを潰しておく、って話がさらっと書かれてるんだけど、ある関数が間接ジャンプ先になり得ない事をバイナリの静的解析で保証するのって無茶苦茶難しいのでは…」 / Twitter
- まさみさんさんはTwitterを使っています: 「@fadis_ あれ、そういう話でしたっけ?特殊な関数にマーキングはしますが、基本静的コールはコンパイラでendbrを飛ばしたところを呼び出す、そうでない呼び出し方をされる関数は、関数ポインタから呼ばれるので間接コールになるということかと思ってましたが。」 / Twitter
難読化・ROP
- pRETzel logic
- pRETzel logic
BranchScope
- CPU攻撃の新たな手法「BranchScope」、Intel製CPUで実証 - ITmedia NEWS
- BranchScope: A New Side-Channel Attack on Directional Branch Predictor
- Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」 ~Haswell/Skylakeなどで実証に成功、Intel SGXを突破 - PC Watch
- まさみさんは語りたいさんのツイート: "BTB対策の時にBPU(BPB)も対策(分離)されてると思うんだけど、どうだろうか。… "
- まさみさんは語りたいさんのツイート: "BPBじゃないBHBだ。SpectreBustersのスライドP25にあるやつ。 https://t.co/zh9yE5dYjb"
- まさみさんは語りたいさんのツイート: "SpectreもBranchScopeも、Intelの分岐予測実装が、分岐結果を共有しても意味がない、異なるコンテキストに対して共有しているから、そこをサイドチャネルにしてリークしてる、ということかと思うんで、HWの対策としては同じなんじゃないの?と。"
- まさみさんは語りたいさんのツイート: "攻撃側でBHBを読み取る試みをする場合は、ソフトウェアで出来ることは殆ど無いから、攻撃手法として強力なのは分かる。HTをオフにした上で、マイクロコードでCR2変更時にBHB消せるようにするしかないんではないかと。"
- まさみさんは語りたいさんのツイート: "あるいはカーネルのスケジューラにisolationレベルを導入して、isolation levelが高いプロセスは、他のプロセスと同じコアを使わせないとか、コンテキスト切替時に只管クリーンナップするとか、特別な手立てを講じることになるんじゃないかな。"
- CPUの脆弱性を突く新たなテクニック "BranchScope" の仕組みを読み解く (1) - FPGA開発日記
- CPUの脆弱性を突く新たなテクニック "BranchScope" で何が攻撃できるのか?(2) - FPGA開発日記
Spectre
Spectre
Spectre:Variant 1: bounds check bypass (CVE-2017-5753)対策:array_index_nospec(array_ptr)
NetSpectre
- Fadisさんのツイート: "NetSpectre: よくある通信プロトコルがリクエストで要求された位置が配列内かをチェックするのを利用して、リモートからSpectre V1を踏ませる。通信の応答時間はSpectre V1以外にも様々な理由で揺らぐが、大量のリクエストを投げて統計的な方法でキャッシュに当たったか判別 https://t.co/o97bcB6P04"
- NetSpectre Vulnerability Can Reveal Arbitrary Memory Over Network - Phoronix
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei Daniel Grussさん (Graz, University of Technologyポスドク) 等から NetSpectre: A generic remote Spectre variant 1のペーパーが公開されました https://t.co/lFERTGpr6T"
- NetSpectre: Read Arbitrary Memory over Network
- 20180728
WebKit
- webkit/Source/WTF/wtf at master · WebKit/webkit
- webkit/Poisoned.h at master · WebKit/webkit
- webkit/Poisoned.cpp at master · WebKit/webkit
- webkit/PoisonedUniquePtr.h at master · WebKit/webkit
- webkit/JSCPoison.cpp at master · WebKit/webkit
- webkit/LowLevelInterpreter.asm at master · WebKit/webkit
@xharaken
- Kentaro Haraさんのツイート: "世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。"
- Kentaro Haraさんのツイート: "こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } un… https://t.co/jqU6n6Gyk4"
- Kentaro Haraさんのツイート: "ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)"
- Kentaro Haraさんのツイート: "CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへ… https://t.co/fC9k45cW0j"
- Kentaro Haraさんのツイート: "よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpe… https://t.co/0gQGqguJu9"
- Kentaro Haraさんのツイート: "CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで… https://t.co/FYYt5Nnu1F"
- What Spectre and Meltdown Mean For WebKit | WebKit
- c - Branchless Overflow Handling - Stack Overflow
- End-of-buffer checks in decompressors | The ryg blog
- A Branchless UTF-8 Decoder « null program
- skeeto/branchless-utf8: Branchless UTF-8 decoder
- A Branchless UTF-8 Decoder : cpp
- まさみさんは語りたいさんのツイート: "先週末に出てきた別の機能 Array_ptr https://t.co/dkgIBes9Fm これはSpectreV1対策だけど、境界条件チェックをif文なしで行うためのマクロ。境界条件を超えるとNULLが返ってくるようになるので、投機的実行で任意のアドレスにアクセスさせることが出来なくなる。"
- LKML: Dan Williams: [PATCH v4 00/10] prevent bounds-check bypass via speculative execution
- まさみさんは語りたいさんのツイート: "1月初めに出てきていた Array_ptrの元になったマクロ https://t.co/8OnV6FqMtD これはARM64版のアセンブラを使った実装になっている。CSDBというバリア命令を使う。これはどうやらIntel/AMDがマイクロコードに追加したIBPBみたいな命令らしい。以下のARMのWPにある。 https://t.co/zUOOIHceDk"
- LKML: Mark Rutland: [RFC PATCH 0/4] API for inhibiting speculative arbitrary read primitives
- prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v2 00/19] prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v3 0/9] core, x86: prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v4 00/10] prevent bounds-check bypass via speculative execution [LWN.net]
- まさみさんは語りたいさんのツイート: "最後のミスだけ補足したのは、gccでretpolineを有効にしても、array_ptrを必要なライブラリなどが使わなければ、Spectre V1に対しては脆弱なままだからです。array_ptrは明示的に使う必要があるため、ソースコードの修正も必要になります。"
- まさみさんは語りたいさんのツイート: "retpolineについて調べていたはずが、array_ptrの方が闇が深かったという結果になった。"
- まさみさんは語りたいさんのツイート: "あっ、この2週間でarray_ptrがarray_index_nospecに変わってる。"
- 米Red Hat、Spectre脆弱性変種1向けのスキャンツールを公開 | OSDN Magazine
- SPECTRE Variant 1 scanning tool - Red Hat Customer Portal
Spectre:Variant 2: branch target injection (CVE-2017-5715)対策:Retpoline
LLVM
- [PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- ⚙ D41760 Introduce __builtin_load_no_speculate
- ⚙ D41761 Introduce llvm.nospeculateload intrinsic
Intel
- Intel Analysis of Speculative Execution Side Channels
- Intel® Product Security Center
- Google Online Security Blog: More details about mitigations for the CPU Speculative Execution issue
- SpectreBustersあるいはLinuxにおけるSpectre対策
- https://docs.google.com/document/d/e/2PACX-1vSnV92CM3w9n_IWCGbqb2txXBDNRgkTmQ5LKQEFkCCMMteLH0AHTm79e8z3a0tMx7_u1xc7u42tcZq7/pub?embedded=true
- まさみさんは語りたいさんのツイート: "いっそのこと、retpolineのコード(__x86_indirect_thunk)をVDSOでLinuxカーネルから渡すようにしたらいいのではないか(おい)"
- まさみさんは語りたいさんのツイート: "残念なお知らせだ。retpolineで遅くなると思って関数ポインタからSwitch-caseベースに変更したprobe eventだが、かえって数ナノ秒遅くなってる。例外はメモリアクセス。"
- Makoto Kato ︎︎さんのツイート: "昨日のx86/x64最適化勉強会とか、前のフロントエンドカンファレンスでも思ったけど、SpectreがJITエンジンにも同じ対策を求められることってみんな理解してないのね。コンパイラな解決方法はすべてJITにも言えることで。。。"
- 鈴木光宏さんのツイート: "https://t.co/W9RAFezHc2 Spectre 脆弱性の実験コード(論文https://t.co/QSBSfSmutm)、FreeBSD-current / Intel Core i5 で見事動作。メモリ上の文字列の取得に成功してます。 git clone して… https://t.co/LL1zO6Paau"
- Eugnis/spectre-attack: Example of using revealed "Spectre" exploit (CVE-2017-5753 and CVE-2017-5715)
- Retpoline: a software construct for preventing branch-target-injection - Google ヘルプ
- はてなブックマーク - Retpoline: a software construct for preventing branch-target-injection - Google Help
- Spectre example code
- ⚙ D41723 Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- [PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- Is MSVC also being updated to include the retpoline mitigation? : cpp
- Meltdown/Spectreの脆弱性、リスク、対策
- Ubuntu 17.10 その195 - MeltdownとSpectreについて知っておくべきこと(前編) - kledgeb
- Ubuntu 17.10 その196 - MeltdownとSpectreについて知っておくべきこと(後編) - kledgeb
- プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー – がとらぼ
- CPUの脆弱性におけるEC2(Amazon Linux、Windows)とECSの対応 - Qiita
- SODA Noriyukiさんのツイート: "in-order でも、分岐予測とそれに基づいた命令プリフェッチはあるので、Spectre Variant 2 は可能という話ですかね。… "
Spectre:Variant 4: Speculative Store Bypass (SSB)(CVE-2018-3639)
Twitter
- LWN.netさんのツイート: "Spectre variants 3a and 4 https://t.co/9LZeAQYrfq"
- Hisaki Oharaさんのツイート: "Variant 4について: Addressing New Research for Side-Channel Analysis https://t.co/PaoH1AepPx"
- Hisaki Oharaさんのツイート: "Analysis and mitigation of speculative store bypass (CVE-2018-3639) https://t.co/eBAdoCuRbY"
- まさみさんは語りたいさんのツイート: "https://t.co/y3DiunBczh あー、Variant4が出てるなあ。OoO技術、実はボロボロやんけ、というのが2018年にわかった事実。"
- まさみさんは語りたいさんのツイート: "Spectre Variant4はMemory Disambiguatorが、他のストア命令に依存しないであろうロード命令を予測するのを騙して、実は依存するロード命令を投機的実行させることにより、それに続く命令をL1キャッシュのデータを元に投機的実行させることが出来る。"
- まさみさんは語りたいさんのツイート: "予測機構をだまくらかして、あとで反故にされるデータを利用して投機実行し、足跡をキャッシュに残すというところはSpectre v1/v2と全く同じなのでSpectre v4と呼ばれる。"
- まさみさんは語りたいさんのツイート: "Spectre v1はまだソフトウェア的に回避しようがあった(array_ptrとか)けど、このV4のいやらしい所は、完全にプロセッサ内部の機構が勝手にやってることなので、このMDと呼ばれる機能を停止させる他無いっていうところ。"
- まさみさんは語りたいさんのツイート: "ハードウェア的に改善するなら、MDで投機的実行をある程度許可してもいいけど、その投機実行中にメモリアクセスがあったら一端投機実行を停止する、という処理になるのかなあ。"
- Spectre Variants 3A & 4 Exposed As Latest Speculative Execution Vulnerabilities - Phoronix
- Fadisさんのツイート: "Spectre Variant4: いくつかの投機的実行を行うCPUが、書き込み先アドレスが未知のwriteの後ろにあるreadを「多分同じアドレスを読まない」と期待して読んで、writeとアドレスが被っていたらreadをやり直す、という処理をするのを利用して分岐の無い所でSpectreする手法 https://t.co/GKKsCMqMaQ"
- Spectre派生の新たな投機実行脆弱性が発表。多数のCPUが攻撃対象に - PC Watch
- 「Spectre」「Meltdown」脆弱性に新たな変種 - CNET Japan
- CPU由来の脆弱性情報(CVE-2018-3639 – Speculative Store Bypass (SSB) (Variant 4) / CVE-2018-3640 – Rogue System Register Read (RSRE) – (Variant 3a)) – 脆弱性情報ブログ(仮)
- Kernel Side-Channel Attack using Speculative Store Bypass - CVE-2018-3639 - Red Hat Customer Portal
- 投機的ストアバイパスを使用したカーネルのサイドチャネル攻撃 - CVE-2018-3639 - Red Hat Customer Portal
- Spectre/Meltdownに続くCPU脆弱性、GoogleとMSが「Variant 4」公表 | マイナビニュース
- Intel製およびARM製CPUに新たな脆弱性「Variant 4 SpectreNG」 | マイナビニュース
- 1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
- INTEL-SA-00115
- CPU脆弱性、新種「Variant 4」の存在が明らかに - CIOニュース:CIO Magazine
- CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
- “Spectre”脆弱性の新しい亜種、各ベンダーが一斉に製品への影響と回避策を案内 - 窓の杜
- Spectre/Meltdown脆弱性の新バリアント2件が公表される | スラド ハードウェア
- 新たに「Meltdown」「Spectre」関連の脆弱性、IntelはBIOSアップデートの準備 - ITmedia エンタープライズ
- Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み - FPGA開発日記
- SpectreNG および Variant 3a 脆弱性の WebClass への影響に関して|メンテナンスのご案内|サポート|WebClass|日本データパシフィック株式会社
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
Spectre SWAPGS(SWAPGSAttack)
- New Windows hack warning: Patch Intel systems now to block SWAPGSAttack exploits | ZDNet
- 【セキュリティ ニュース】「Spectre」に新亜種、「SWAPGS攻撃」受けるおそれ - MSは7月に対処済み(1ページ目 / 全2ページ):Security NEXT
- Bypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction – Bitdefender Labs
- CVE-2019-1125: Spectre SWAPGS gadget vulnerability - Red Hat Customer Portal
- FadisさんはTwitterを使っています: 「CVE-2019-1125: x86_64のLinuxはGSをユーザ空間とカーネル空間で別の用途で使う → システムコール時にSWAPGSでGSを切り替える → カーネルはSWAPGS前にそれをすべき状況か確認する → この分岐の予測を失敗させCPUに誤ったGSを食べてカーネル空間で何かした夢を見せるSpectre https://t.co/EAzoTz5HYq」 / Twitter
- Ivy Bridge以降のIntel CPUに投機実行に脆弱性 - PC Watch
- More information on SWAPGS and Speculative only Segment Loads
- Deep Dive: Intel Analysis of Speculative Behavior of SWAPGS and Segment Registers
- Processors Affected: Speculative Behavior of SWAPGS and Segment Registers
Spectre 1.1/1.2
- 品川 高廣さんのツイート: "Spectre1.1 と Spectre1.2。進化してる。https://t.co/NRjcocZE7t"
- [1807.03757] Speculative Buffer Overflows: Attacks and Defenses
- 「Spectre」関連の脆弱性、また新たに発覚 IntelやARMのプロセッサに影響 - ITmedia エンタープライズ
- 2018年7月20日号 18.04.1 Server InstallerのCall for Testing,“Spectre” Variant 1.1/1.2。Bounds Check Bypass Store (BCBS):Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Spectre 1.1および1.2の脆弱性が公開された
- Spectre 1.1 (CVE-2018-3693) の論文を読む - FPGA開発日記
- ROP(Return-Oriented Programming)についての勉強 - FPGA開発日記
SpectreRSB
- CPUの脆弱性を突く新たな攻撃手法「SpectreRSB」 - CNET Japan
- 「Spectre」関連の新たな脆弱性、米研究チームが発表 - ITmedia エンタープライズ
Spectre/MeltdownPrime
- Meltdown-Spectre flaws: We've found new attack variants, say researchers | ZDNet
- まさみさんは語りたいさんのツイート: "LLC使った攻撃か。違うコアで実行した投機的実行の結果を知ることが出来る攻撃手法というわけだ。> Spectre/MeltdownPrime"
- まさみさんは語りたいさんのツイート: "KPTIで防げるのかな?"
- satさんのツイート: "新しい脆弱性の名前、MeltdownPrimeとSpectrePrimeだそうです。絶対ふざけて決めただろ https://t.co/IKpZRYZyiA"
- 1802.03802.pdf
- まさみさんは語りたいさんのツイート: "消して埋めさせる方法と、埋めて上書きさせる方法、の違いというか。… "
- ZDNet Japanさんのツイート: "CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 https://t.co/TWhDfKj8tH"
- まさみさんは語りたいさんのツイート: "元の方法だと「遅い遅い遅い速い遅い遅い」が Primeだと「速い速い速い遅い速い速い」になる、という感じで良いんだろうか。"
- まさみさんは語りたいさんのツイート: "MeltdownPrime→KPTIで防げる(アクセス先がない) SpectrePrimeV1→array_index_nospecで防げる(アクセス先が安全) SpectrePrimeV2→retpolineで防げる(V1が防げればOK) 今回はサイドチャネルの作り方の工夫なので対策法はこれまでと同じ。"
- まさみさんは語りたいさんのツイート: "そもそもPrime+Probeにハードウェアサイドの対処ってあったっけ?"
- CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 - ZDNet Japan
- MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols
- Meltdown and Spectre
- spectre.pdf
- 図解でわかるSpectreとMeltdown // Speaker Deck
- 本当にわかる Spectre と Meltdown
- chikoskiさんのツイート: "Spectre対策でSharedArrayBufferは無効化されたと思っていたけれど、Chrome68から再び有効になってたのね。c.f. SpectreとSharedArrayBuffer https://t.co/S2XKSFIE0e"
- fantastictimers.pdf
- chikoskiさんのツイート: "Site Isolation(Rendererプロセスが保持するdocumentを最大で1つに制限する)ことで、iframeを使ったサイドチャネル攻撃に対処したと。https://t.co/kaCAWOsCry"
- Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome
- SGX After Spectre and Meltdown: Status, Analysis and Remediations | Firmware Security
- SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution | Firmware Security
- Windowsアーキテクチャー、Meltdown and Spectre、メモリ、オブジェクト
- 20180505
- 【CPU】 Intel CPUに新たな脆弱性『Spectre Next Generation』?ドイツメディアが報じる : ニッチなPCゲーマーの環境構築
- インテル® コンパイラーを使用して投機実行サイドチャネルの問題を緩和 | iSUS
- 日記 (2018 年 1 月中旬)
- Long-Term Web Browser Mitigations for Spectre - Google ドキュメント
- 【連載】SperctreやMeltdownを根本から防ぐSafeSpec | マイナビニュース
micro-opキャッシュ
- FadisさんはTwitterを使っています 「新種のSpectreの話。x86プロセッサのmicro-opキャッシュの振る舞いを観測することでSMTでこのキャッシュを共有する隣のスレッドからプロセスの動きを覗き見する。既存のmitigationはこのキャッシュに対する攻撃を想定しておらず、この攻撃はIntelでもAMDでも有効らしい https://t.co/p72yTNMXuf」 / Twitter
- New Spectre Variants Discovered By Exploiting Micro-op Caches - Phoronix
- isca2021a.pdf
- FadisさんはTwitterを使っています 「x86は命令が複雑なため、CPUは内部でx86の命令列をより簡素な命令列(micro-op)に翻訳しながら実行している。頻繁に実行する命令列に対してこの翻訳を省略するためにCPUは翻訳済みのmicro-opのキャッシュを持っている。キャッシュにヒットすれば命令が片付くのが速くなるので、あとはいつものSpectre」 / Twitter
- FadisさんはTwitterを使っています 「micro-opキャッシュはCPU毎に仕様が異なり、ドキュメント化されている情報も少ないため今まで安定したサイドチャネル攻撃には使えなかったが、ドキュメント化されていない部分を気合のリバースエンジニアリングで何とかして安定してサイドチャネル攻撃を行えるようにしたらしい」 / Twitter
- FadisさんはTwitterを使っています 「まぁ、やっぱりハイパースレッディングはオワコン、という話でしかないわけだが」 / Twitter
- とみながたけひろさんはTwitterを使っています 「よーわからんが、uops cacheに入ってると全ビット一致しなくても実行してしまう、みたいなのを使ってるの? しかしDefenselessとはなかなかすごい名前だ」 / Twitter
- Computer scientists discover new vulnerability affecting computers globally -- ScienceDaily
- New x86 micro-op vulnerability breaks all known Spectre defenses | Hacker News
MS
その他
- 投機実行の脆弱性修正、Haswell世代以前では性能への影響大 ~I/O集中型アプリケーションを利用するサーバーは慎重な選択を。AMDはほぼ影響受けず - PC Watch
- Microsoft、Intelの脆弱性対策を無効化する緊急アップデートを配信 ~適用で再起動問題を回避、Windows 7/Haswell以降が対象 - PC Watch
- 【特集】Spectre V2対策による性能低下を緩和する「Retpoline」の効果を確認する - PC Watch
- Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
- Microsoft、Skylake用のSpectre V2対策コードを提供開始 - PC Watch
- Windows月例更新でVIAプロセッサにもSpectre/Meltdown対策が盛り込まれる ~ただしAvast、Avira、Sophosと競合する不具合 - PC Watch
- 「Windows 10 19H1」、「Spectre Variant 2」対策にグーグルの「Retpoline」を採用へ - ZDNet Japan
- 「Spectre」攻撃、インテルの「SGX」保護機能に影響 - ZDNet Japan
- 緊急パッチだけではプロセッサ脆弱性対策は不十分――Spectre&Meltdown対策状況を再チェック:山市良のうぃんどうず日記(117:緊急特別編) - @IT
- 山市良のえぬなんとかわーるど: 仕事始めは Windows Update から(例の Intel/AMD/ARM CPU 問題に関する追記あり)
- 山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題にフルアーマーな PC
- 山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題の Windows 関連の続報(リンクまとめ+α)
- Project Zero: Reading privileged memory with a side-channel
- Mitigating speculative execution side-channel attacks in Microsoft Edge and Internet Explorer - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
- Update on Spectre and Meltdown security updates for Windows devices | Windows Experience Blog
- Windows Analytics で Meltdown と Spectre への対策状況が評価可能に - Windows Blog for JapanWindows Blog for Japan
- Windows クライアントで投機的実行のサイドチャネルの脆弱性から保護する
- Protect your Windows devices against speculative execution side-channel attacks - Windows Help
- CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護 | Microsoft Docs
- Windows システム上の Spectre および Meltdown に対する緩和策のパフォーマンスへの影響について - Microsoft Security Response Center
- 2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Intel Prepares "Enhanced IBRS" As Better Spectre V2 Protection For Future CPUs - Phoronix
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community - 295618
- Spectre mitigations in MSVC | C++ Team Blog
- Spectre mitigation changes in Visual Studio 2017 Version 15.7 Preview 3 | C++ Team Blog
- Spectre diagnostic in Visual Studio 2017 Version 15.7 Preview 4 | C++ Team Blog
- Mitigating speculative execution side channel hardware vulnerabilities - Microsoft Security Response Center
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) - Microsoft Security Response Center
- Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
Google
- Project Zero: Reading privileged memory with a side-channel
- Google Online Security Blog: Today's CPU vulnerability: what you need to know
- Google、CPU脆弱性“Meltdown”“Spectre”の緩和策を「Google Chrome 64」へ導入 - 窓の杜
- Site Isolation - The Chromium Projects
- Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects
- Product Status - Google ヘルプ
- RealJTG/Meltdown: Meltdown PoC for reading passwords from Google Chrome.
- 「Google Chrome 66」が正式版に ~新しい開発者機能とセキュリティ・安定性の向上策 - 窓の杜
- 「Google Chrome 67」が正式版に ~“Spectre”脆弱性の緩和策“サイト分離”をテスト - 窓の杜
- なかのん&マジックさんのツイート: "Site Isolationでメモリ使用量1割増、か…… / Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome https://t.co/Akgcac45is"
- なかのん&マジックさんのツイート: "Spectreはプロセス境界どころかそれ以上に越境できてしまうのが問題という認識だったんだけど、Site IsolationでSharedArrayBufferを復活させても大丈夫なもんなの?"
- なかのん&マジックさんのツイート: "とっとと対策したCPU出てよ、とは思う、そもそも。"
- Google Developers Japan: Chrome の Site Isolation で Spectre のリスクを軽減する
- Googleの研究者ら曰く、Spectre脆弱性の修正は難しい | スラド
- 1902.05178.pdf
- Google Says Spectre And Meltdown Are Too Difficult To Fix
- CPU脆弱性「Spectre」の概念実証と脆弱なエンドポイントを探す拡張機能「Spectroscope」をGoogleが公開 - GIGAZINE
Mozilla
- Meltdown と Spectre
- Rockridgeさんのツイート: "MozillaはSpectre/Meltdown問題への当面の対策をFirefox 57.0.4に投入する模様。対策にはSharedArrayBufferの無効化が含まれる。参照:https://t.co/wMmPg7YCtU https://t.co/bN5nYqiV3t"
- Mitigations landing for new class of timing attack | Mozilla Security Blog
- sharedarraybuffer webassembly - Google 検索
- Kazuho Okuさんのツイート: "Meltdown / Spectre 脆弱性の悪用防止のため、高精度のタイマー実装に使うことのできる SharedArrayBuffer が一時利用不可能に / “Mitigations landing for new clas…” https://t.co/rHZAnVN8Og"
- more on Meltdown and Spectre | Firmware Security
- Mozilla、「Firefox」v57.0.4を公開 ~CPU脆弱性“Meltdown”“Spectre”へ対策 - 窓の杜
- Ryou Ezoeさんのツイート: "SharedArrayBufferを高精度タイマーに使うのってどうするんだろ。"
- Kazuho Okuさんのツイート: "@EzoeRyou ServiceWorker(要は別スレッド)でビジーループでカウンタアップテードさせる"
- Rockridgeさんのツイート: "Fx59:Spectre対策として、デフォルトのタイマー解像度を2ミリ秒に落とした。従来は0.02ミリ秒だった。 / “1435296 - Reduce Timer Resolution to 2ms” https://t.co/TJWWKoS4GM"
- Rockridgeさんのツイート: "Project Fissionでは、サイト単位でcontentプロセスを分離することによって、Spectre問題への対策とする。 / “Project Fission - MozillaWiki” https://t.co/LjbKftTgA1"
- Project Fission - MozillaWiki
- Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE
- 「Firefox 94」正式版リリース、期間限定の公式カラーテーマが登場 - GIGAZINE
Linux
- Mitigation Status by Kernel Version | Intel® Software
- 2018年1月10日 Linus,Intel相手に“おこ始め”―「メルトダウン」で幕開けの2018年:Linux Daily Topics|gihyo.jp … 技術評論社
- 2018年1月22日 Meltdown/Spectreの影響は大きく… Linus,Linux 4.15のリリースを1週間延期しRC9を公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 - Red Hat Customer Portal
- Red Hat Enterprise Linux パラメーターで、CVE-2017-5754、CVE-2017-5715、および CVE-2017-5753 で提供されているマイクロコードおよびセキュリティーのパッチによるパフォーマンスへの影響を制御する - Red Hat Customer Portal
- LinuxカーネルにおけるMeltdownとSpectre問題の脆弱性対策が出来ているかどうかを調べるコマンド: Project Valkyrie
- OSがMeltdownとSpectreに対応しているか確認する | 普段使いのArch Linux
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年前のSpectre対策(Retpolines)で、Linuxのファイルシステム用AES暗号(AES-XTS)が 1/2~1/3に速度低下していたが、最近の数行パッチでほぼ回復という話。 https://t.co/2VNdIYbnFP」 / Twitter
- AES-NI XTS To See 2~3x Performance Recovery After Regressing Hard From Retpolines - Phoronix
- Satoshi TandaさんはTwitterを使っています 「Linux/KVM gets the core scheduler for L1TF/MDS with SMT configuration. For other hypervisors, this talk has a nice summary of their states (in the slide 31) https://t.co/IWuseV6XPz」 / Twitter
- KVM Forum 2019: Core-Scheduling for Virtualization: Wher...
- Satoshi TandaさんはTwitterを使っています 「For the basic mitigations through flushing caches, here is a handy list of implementations in some of major HVs: (I was supposed to be working on entirely different things this weekend but ended up discovering myself compiling this list somehow🤷🏻)」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「KVM: vmx_l1d_flush/mds_clear_cpu_buffers Xen: vmx_add_msr (*) VMware WS: HVResumeLowLevel vbox: INDIRECT_BRANCH_PREDICTION_AND_L1_CACHE_BARRIER ACRN: cpu_l1d_flush/cpu_internal_buffers_clear bhyve: vmx_init (*) (*) uses the MSR load list, avoiding a race with NMI」 / Twitter
BSD
- SpeculativeExecutionVulnerabilities - FreeBSD Wiki
- 第131回 影響範囲広大プロセッサバグ「Meltdown」と「Spectre」,各プロジェクトの対応現状ほか:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第133回 OpenBSD on iTWire:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第136回 FreeBSDのMeltdown/Spectre対策:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第137回 FreeBSDのMeltdown/Spectre対策,11系にマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第138回 OpenBSD,Meltdown対策機能をマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第139回 OpenBSD,Meltdownバイナリパッチ提供開始:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第142回 FreeBSD Meltdown対策機能による性能影響ベンチマーク:BSD界隈四方山話|gihyo.jp … 技術評論社
blog
- Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
- コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama|note
- Meltdown、Spectre、およびシスコのクラウド コラボレーション セキュリティ
- Spectre & Meltdown を防ぐマイクロアーキテクチャSafeSpecの論文を読む - FPGA開発日記
- 2015年以降のインテルCPUの脆弱性チェックプログラム - 発声練習
- 山市良のえぬなんとかわーるど: Intel マイクロコード アップデートが再配布?(自動的な再起動にご注意)
- CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
- Google Online Security Blog: A Spectre proof-of-concept for a Spectre-proof web
- SharedArrayBuffer と過渡期な cross-origin isolation の話
News
BHI(Spectre-BHB)
- CPUの脆弱性「Spectre」に対応してAMDがリリースしたパッチに問題があることをIntelが発見 - GIGAZINE
- AMD CPUは、改訂されたSpectre-v2緩和策によるパフォーマンスの低下が10%未満であると見ています|自作.com
- 2022年3月14日 Linux 5.17-rc8が公開,新たな脆弱性判明で正式リリースは3/20以降に:Linux Daily Topics|gihyo.jp … 技術評論社
- 【連載】新たな脅威 - SpectreとMeltdown | マイナビニュース
- 動的プロセス分離はクラウドシステムでSpectreの対処に役立つ
- Intel、Arm、AMD CPUのハードウェア軽減策がSpectre v2に対して効果がないことが明らかに
- 【pwn 36.0】Intel CETが、みんなの恋人ROPを殺す - newbie dive into binary
- 2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Mitigating Spectre and Other Security Threats: The Cloudflare Workers Security Model
- Dynamic Process Isolation: Research by Cloudflare and TU Graz
- [2110.04751] Dynamic Process Isolation
- 現行のSpectre防御を無効にする新たなエクスプロイト、修正はパフォーマンスに影響
- Intel、第8~6世代CPUで脆弱性対策後のベンチマーク結果を公開 ~性能低下はおおむね数%以内 - PC Watch
- Intel、Sandy BridgeからKaby Lakeのシステムで“再起動問題”が発生中 ~投機実行脆弱性アップデートが影響 - PC Watch
- Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 - PC Watch
- Spectre/Meltdown脆弱性を利用したマルウェアが発見 - PC Watch
- Intel、Skylake向けのSpectre脆弱性対策マイクロコードの提供開始 ~Sandy Bridge以降向けも近く提供か - PC Watch
- Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
- 「LLVM 6.0」リリース | OSDN Magazine
- SpectreとMeltdownの詳細
- CPU“脆弱性問題”の現状と対策 ~セキュリティは? パフォーマンスは? ユーザーへの影響を確認する - PC Watch
- 「Spectre」攻撃、インテルの「SGX」保護機能に影響 - CNET Japan
- 大原雄介のエレ・組み込みプレイバック:収束しない現代的CPUの脆弱性と、苦境を脱せないQualcomm (1/3) - TechFactory
- IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
- 20180616
- Boffins offer to make speculative execution great again with Spectre-Meltdown CPU fix • The Register
- Your Title Here
- まさみさんは語りたいさんのツイート: "かなりストレートな解法ですが、まあそれしかないのかも。… "
- fjのYog教祖様さんのツイート: "シャドウキャッシュの管理の仕方次第ではあるだろうが、ほぼ間違いなく「シャドウキャッシュの内容による速度変化」を引きずり出す方法が発見されて終わるだけだと思う。… "
- まさみさんは語りたいさんのツイート: "そうですね。SpectreはL2以下のキャッシュの方が影響が大きい気がするんだけど、L1だけで大丈夫か??という。… "
- Debian10アートワーク募集中🍥さんのツイート: "IntelのCPUセキュリティバグ、どうやらIntelはDebianとOracleには事前に開示しなかった&Red Hat・SUSE・Canonicalには情報の共有を禁じていたようですね。いやはや。。。 https://t.co/0VWEyQLU51"
- Linus Torvalds talks frankly about Intel security bugs | ZDNet
- Debian10アートワーク募集中🍥さんのツイート: "結局、現在はきちんといつもどおりの情報共有ができるようになり対応がスムースになってるようなので、今回の件をハンドリングしたIntelの中の人がおかしな判断をした、ということなのですが。"
- IT業界を根幹から揺るがした脆弱性「Spectre」「Meltdown」はCPUのパフォーマンスにどんな爪痕を残したのか? - GIGAZINE
- FadisさんはTwitterを使っています 「Phoronixによる「各世代のCPUでCPUの脆弱性の対策を行なった場合と行わなかった場合で、どのくらい性能に差が出るか」を計測したベンチマーク。7ページ目のシステムコール、コンテキストスイッチが頻発するタイプのワークロードの場合が大惨事 https://t.co/hqVcWPTD5f」 / Twitter
- A Look At The CPU Security Mitigation Costs Three Years After Spectre/Meltdown - Phoronix
GitHub
- mniip/spectre-meltdown-poc: A semi-demi-working proof of concept for a mix of spectre and meltdown vulnerabilities
- ryanlayer/giggle: Interval data structure
- crozone/SpectrePoC: Proof of concept code for the Spectre CPU exploit.
- lgeek/spec_poc_arm: Dump privileged ARM system registers from usermode using variant 3a of Meltdown
- paboldin/meltdown-exploit: Meltdown Exploit PoC
- ryoさんのツイート: "https://t.co/xzyDUqtftW だとN/core-i7でもkernel領域読めた。思ったより成功確立低い。というか特定のアドレスしか成功してないように見える。Intelの謎キャッシュポリシーの影響もあるんだろうなぁ。https://t.co/6kqdx398ux"
- HarsaroopDhillon/Meltdown: Meltdown POC
- Intel Ivy Bridge Cache Replacement Policy « Blog
- IAIK/meltdown: This repository contains several applications, demonstrating the Meltdown bug.
- lsds/spectre-attack-sgx: Spectre attack against SGX enclave
- GitMirar/meltdown-poc: A PoC implementation of the meltdown attack described in https://meltdownattack.com/meltdown.pdf
- ionescu007/SpecuCheck: SpecuCheck is a Windows utility for checking the state of the software mitigations against CVE-2017-5754 (Meltdown) and hardware mitigations against CVE-2017-5715 (Spectre)
- idea4good/spectre: Demo Spectre with 70 lines code
Qiita
- MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap) - Qiita
- LinuxコアメンバーによるMeltdownとSpectre 対応状況の説明 - Qiita
Wikipedia
- Spectre - Wikipedia
- Spectre (security vulnerability) - Wikipedia
- Spectre (security vulnerability) - Wikipedia
Twitter
その他
dynamic function
- まさみさんは語りたいさんのツイート: "あー、休み中にSteveがdynamic functionとかいうのを作ってる。ちょっと調査中。 https://t.co/Q6cS65C7gG"
- [POC][RFC][PATCH 1/2] jump_function: Addition of new feature "jump_function"
- まさみさんは語りたいさんのツイート: "retpolineで遅くなるので、代わりに固定long jumpするトランポリンコードを作っておき、それを使う、というアイデアなんだろうか?なんかSpectre対策になら無さそうだけど。"
- まさみさんは語りたいさんのツイート: "多分これはtracepointがretpolineに置換されてしまうという問題に対する回答だけど、これだとalternativesで良くね??"
- まさみさんは語りたいさんのツイート: "またマルチスレッドで実行される場合でも、全スレッドを対象にして実行パスを書き換える用途でしか使え無さそうなので、spectreに対するgenericな解ではないと思う。強いて言えば、プレースホルダ付きoptprobeみたいなものへの置換。"
- まさみさんは語りたいさんのツイート: "同じツッコミをPeterZがしてた(笑)。… "
- まさみさんは語りたいさんのツイート: "あー、なるほど。合点がいった。関数コールをあとから埋め込もうとすると、引数を渡すコードを事前に生成しておかないといけない。それを作らせるために最小関数をアセンブラで作り、それをコールするコードをコンパイルすれば引数準備のコードは実装できると。"
- まさみさんは語りたいさんのツイート: "optprobeは性質上あとからレジスタなどを保存して参照できるようにするけど、これは呼び出し元で引数を保存する。本当にretpolineを避けるためだけの構造のようだ。"
- まさみさんは語りたいさんのツイート: "retpolineの問題は、対象となる間接参照呼び出しが、スレッドコンテキスト依存の呼び出しなのか、単にplugableな呼び出しなのかを区別せずに適用されてしまうこと。前者はretpolineが必要だが、後者はlivepatchで静的呼び出しに変更できる。これは後者の問題を解くもの。"
- まさみさんは語りたいさんのツイート: "Livepatchと違い、consistencyを考慮しないでいい部分についてはこの dynamic functionを使えば良いわけだが、そのためにjmpするトランポリンを設けなくても良いのではないか、というコメントを入れておいた。そもそもデフォルト関数を実装するならそれを変更したら良いと。"
Spectre
- さてはGentooだなオメーさんのツイート: "RHELがパッケージとして配布したSpectre variant 2対策のmicrocodeは一部環境で問題があったので差し戻し、今後RHELとしてvarant 2対策のmicrocodeをリリースする予定はない。CPU製造元に問… https://t.co/8Tm70ZTI2s"
- What CPU microcode is available via the microcode_ctl package to mitigate CVE-2017-5715 (variant 2)? - Red Hat Customer Portal
- Hajime Tairaさんのツイート: "一律同じ microcode を配ったところ、大量のメモリーを搭載できるハイエンドサーバーの一部に影響が出まして…。… "
- さてはGentooだなオメーさんのツイート: "恐ろしやー。ちなみにこのリンク先、英語は全公開なのに日本語は隠れてて悲しいです。… "
- まさみさんは語りたいさんのツイート: "IBPBって何かと思ったらIndirect Branch Speculation Barrierっていう新しいマイクロコードなんだね。ていうか、新しいマイクロコードの命令を直接使うコードが追加されたぞ・・・。"
- まさみさんは語りたいさんのツイート: "Spectre対策を色々探っていると非常に深い。この3週間ぐらいで色んなテクニックが試されている。んで、決定版になっているのがどれかと言うとよくわからない。"
- まさみさんは語りたいさんのツイート: "ひとつだけ確かなのは、Spectre V2対策は未だに決定版がなく、いくつかのテクニックを駆使して修正が行われている最中であり、しかもカーネルだけじゃなくユーザアプリも修正が必要で、コンパイラを変えるだけではなくソースコードも修正が必要になるっていうことで影響が大きい。"
- まさみさんは語りたいさんのツイート: "昨日出てきた新機能。IBPB https://t.co/9WrTuIzfCV AMD/Intelが導入した新しいマイクロコード命令を使うためのマクロ。MSR越しに呼び出すと、間接分岐命令の分岐先がロードされるまで、投機的実行を止めるものらしい。"
- LKML: KarimAllah Ahmed: [RFC 00/10] Speculation Control feature support
- Hiromichi Itouさんのツイート: "IBRSを利用するために必要なmicrocodeを導入すると再起動する確率が上がるという問題が解決していないので、代替案としてretpolineによる対策を準備しないといけない勢なので、先週からコンパイルばかりしている。"
- IntelによるSpectre対策のアップデート、Core iシリーズのほぼ全世代で不具合が出る可能性 | スラド セキュリティ
- Intel Sightings in ESXi Bundled Microcode Patches for VMSA-2018-0004 (52345)
- まさみさんは語りたいさんのツイート: "IBRSはSpectre V2向けのマイクロコードで提供される機能のようだが、プロセッサによってはうまく動かない模様なので、Retpolineによる緩和策を使うほうが低リスクかもしれん。やることは多くなるけど。"
- まさみさんは語りたいさんのツイート: "IBPBのパッチシリーズの先にIBRSの機能も追加されていた。IBRSはこれも新しいマイクロコードの機能で、Indirect Branch Speculationを止める。提出されたパッチではカーネル空間に入る時に全てのIBSを止めるっぽい。"
- まさみさんは語りたいさんのツイート: "RetpolineがあるからIBRSなんて要らないじゃーん?って思ったあなた、大体あってる。問題はRetpolineは半分コンパイラのお仕事になるんだけど、コンパイラが古いと対応できないこと、CONFIG_RETPOLINE=nでビルドされちゃうかもしれないことから、IBRSが必要になる。"
- まさみさんは語りたいさんのツイート: "Spectre V2緩和策のオプションとして、IBRSかRetpolineかを選べるようになる模様。基本的にはAutoでいいけど、コンパイラの更新(Retpoline)か、マイクロコードの更新(IBRS)をした上で、カーネルの再構築が必要になる。"
- まさみさんは語りたいさんのツイート: "おっと、重要な情報です。この脆弱性はLivepatchでは対処できません。"
- まさみさんは語りたいさんのツイート: "たしかにこのシリーズ、indirect_branch_prediction_barrier(IBPB)と(un)restrict_branch_speculation(所謂IBRSの有効・無効コード)が混ざっていて分かりにくいんだよね。最初の4つはIBPB、後の6つはIBRSで、それぞれ使う所が違う。"
- まさみさんは語りたいさんのツイート: "両方共Intel/AMDがマイクロコードでSpectre V1とV2に対応しようとして追加した機能なんよ。"
- まさみさんは語りたいさんのツイート: "ごめん、IBPBもIBRSもIndirect Branchを安全にするためだからどっちもSpectre V2向けだった。"
- まさみさんは語りたいさんのツイート: "もしかして、ARMはSMTサポートしていないから、スレッド間でBTBを共有する可能性がないので、Spectre V2対策はプロセス間とプロセス/カーネル間で逐次BTBフラッシュするだけでOKなのか?"
- satさんのツイート: "SpectreとMeltdownはモノがモノだからしゃあないんだが、ソフトの対策、石の対策が入り混じってて何が何だかわかりにくい"
- まさみさんは語りたいさんのツイート: "ソフトウェアの緩和策は可能だけど適用されるのに時間がかかるし、石の緩和策もソフトウェアの更新は必要だし型番によってはリスクもある。ハイブリッドで環境によって選んでくださいっていうのをもりもり入れているのが現状ですね。… "
- satさんのツイート: "これ、こないだひらまつさんがついーとで言及してたamazonのような情報が集まる位置に居続ける企業でなければ、相当対応がキツいでしょうね… "
- まさみさんは語りたいさんのツイート: "IBPBとIBRSについては、ハードウェア(マイクロコード)側で妥協できるならあのラインだろうと思うので、機能が無意味だとは思わない。 が、あんなものでお茶を濁そうとしてるなら、Linusのように怒っていい。いずれにしても新しい世代ではもっとスマートなBTBを導入する必要がある。"
- まさみさんは語りたいさんのツイート: "Hyperthreadに対応したBTBと、リングによってBTBを切り替える機能、およびページテーブル切り替え時にBTBを消去する機能があれば、全体的な性能の低下はあってもV2対応は可能だろう。"
- まさみさんは語りたいさんのツイート: "めんどくさいのはV1対応なんだよなー。リタイアしてない命令が引き起こしたキャッシュアクセスをなかったことにする、とかが根本解決になるけど、これはめんどくさそう。"
- まさみさんは語りたいさんのツイート: "IBPBのパッチは最終的に取り込まれた模様?ちゃんと追いかけないとだけど、IntelかあらIBPBシリーズ前提で拡張パッチが出されている。"
- Re: [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
- まさみさんは語りたいさんのツイート: "https://t.co/3HeYfQA9Wp Intelの今後の動向がすけて見えるコミット"
- [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
- 高梨陣平さんのツイート: "VancouverでのLinuxカンファレンスにおいてLinusが対談。IntelのCPUの脆弱性Spectreについて語った。彼は投棄実行自体には問題が無くやるべきで、やるべきでない問題のある投棄実行も知られていたと語った。Intelの当初の対応は酷く彼は自分達が原因でないのに働くのは不公平に感じたと主張(続… https://t.co/lBFzbaEATS"
- 高梨陣平さんのツイート: "2つ、3つしか存在しなかったと振り返った。SpectreのLinusに対する影響は多大で4.19のマージウィンドウは通常、2週間で終わるものの、公開できないパッチを含んだためにとてもストレスの大きなものだったと述べた。しかしこの問題を超えて良い結果としてLinuxとWindwosの開発者がCPU脆弱性について協力"
- 高梨陣平さんのツイート: "できるようになったとKroah-Hartmanは述べた。我々は素晴しい裏ルートを手に入れた。御互いに議論し、バグを潰していると言う。5年前に誰が予想できただろうか?(終)"
- まさみさんは語りたいさんのツイート: "うーむ、static callのパッチをレビューしようとしたけど、前提条件として役に立つかというと微妙すぎるのでコメントしづらい。indirect callがretpolineのせいで遅くなるのでstatic callに自己書き換えしようという話だけど、適用先が限定的すぎる(コンテキスト依存な場所では使えない)。"
- まさみさんは語りたいさんのツイート: "コンテキストに依存しないindirect callってどれだけあるのかというと微妙すぎるし、pv_opsぐらいかなあ。tracepointは関数の引数を準備するところをスキップするjump labelを使っているので意味がある。"
- まさみさんは語りたいさんのツイート: "jump labelと併用すればいいんだっけ?いや、ないか??"
TLB
- まさみさんは語りたいさんのツイート: "うーん、speculative page table walker問題というのがあり得るのか。投機的にTLBをフィルする挙動がテンポラリにマップしたページをTLBにキャッシュするらしい。"
Linux
- とみながたけひろさんのツイート: "Linuxといえどもガチヤバい脆弱性だったらコア開発者だけで公開MLとかなじゃない、非公開のメールのやり取りでパッチ作成するよね…しないのかな(←わかってない)"
- KOSAKI Motohiroさんのツイート: "もちろん非公開でやります。非公開MLでだけ、なぜやばいのかを「具体的に」説明してLinusの承認をもらいます。というか、securityをハンドルするMLはコア開発者もあんまり入ってなくて専業メンテなとdistro security屋がハンドルしつつ、関係ある人が個別にCCされて… https://t.co/o7mJ87X2Xu"
- とみながたけひろさんのツイート: "@kosaki55tea なるほど。パッチができることよりもパッチを適用することのほうが困難かつ重要だったりするので、そういう運用になるのはよくわかります"
- Kazuki Oikawaさんのツイート: "Threadripper + 4.14.14 bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2… "
- Kazuki Oikawaさんのツイート: "あ、/proc/cpuinfoの情報もいつの間にか変わってた bugs : cpu_meltdown spectre_v1 spectre_v2"
- このコード、オシャカルトっ!さんのツイート: "/proc/cpuinfoのbugs欄の出方が変わってる 前 bugs : cpu_insecure 4.14.13-300.fc27 bugs : cpu_meltdown spectre_v1 spectre_v2"
- このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ sysfsの/sys/devices/system/cpu/vulnerabilitiesというディレクトリにcpuの脆弱性情報があるということを知った… "
- まさみさんは語りたいさんのツイート: "KPTI有効にしたカーネルつかっても、デスクトップだとそれほど有意な違いを感じない。多分グラフに取ってないとわからない。"
- まさみさんは語りたいさんのツイート: "PTIはCONFIG_PAGE_TABLE_ISOLATIONで、Security optionsに含まれているがデフォルトで有効になる。"
- henrichさんのツイート: "いやいや、マイナーリリースごとにバイナリリビルドするバイナリディストロなんて聞いたことないんですが。。。… "
- henrichさんのツイート: "私が知らないだけで実は存在してるのかしら?(開発版をFTBFS洗い出しでビルドし直しはテストとして実施はするだろうけど。。。)… "
- hitoさんのツイート: "しない状態で今まで来ていて、「Repolineするためにはもしやこれは全部リビルドしてリリースせんといかんのではQAどうしよう」つーてみんな頭を抱えてる認識。… "
- henrichさんのツイート: "そう(リビルド)すべきもんだろ?という立場から言ってるのであれば、実施する際のトレードオフ考えたら妥当な結論(毎度リビルドしてリリースとかあり得んだろ)ということで… "
- Fadisさんのツイート: "現在Intel CPU上で動くLinuxはSpectre/Meltdown対策がデフォルトで有効だが、Atom N270等のin-order実行のCPUにはこれらの脆弱性は無いから、これらのCPUでは対策をデフォルトで無効にして貧弱なネットブックが不必要に更に貧弱になるのを防ごう、という提案がなされている https://t.co/xMyBKxG4kc"
- Spectre V2 & Meltdown Linux Fixes Might Get Disabled For Atom N270 & Other In-Order CPUs - Phoronix
microcode
HT, ベンチマーク
- インテルがセキュリティパッチの影響示すベンチマーク公表禁止に?--オープンソース界の著名人が批判 - ZDNet Japan
- Intel、脆弱性パッチ適用前後のベンチマーク比較禁止の規約を撤回 ただしパフォーマンスはお察しの模様 | ジサクテック
- Hideyuki Tanakaさんのツイート: ">Intelが沈黙の誓いを立てているのには、仮想マシンをForeshadowの脅威から保護するためにHyper-Threading機能をオフにする必要があり、それによりパフォーマンスに大きな影響が出るからである。 (´・_・`)なるほどなあ…"
- Hideyuki Tanakaさんのツイート: "IntelのHTはもう終わりです…(´・_・`)次の何とかレイクが8コア8スレは正解(´・_・`)Intel自身が一番分かってたんだな"
- Hideyuki Tanakaさんのツイート: "TLBleedだけじゃなくて今回見つかったForeshadowも結局HT無効化しか対処法がなくて、実質的にもう現アーキのHT死んでるんすね(´・_・`)"
- Tsuzuさんのツイート: "HTTって全然効果実感したことないんだけどそんなに効果あるんですかね"
- Hideyuki Tanakaさんのツイート: "(´・_・`)どーなんだろ?レイテンシ隠しには使えるんじゃないんすかね。僕が昔実感した例としては、めっちゃでかいメモリから二分探索を超大量に行うようなアプリでは、ほぼ演算器が回らないので、HTで性能倍になりましたけど、まあこんなのはよっぽどなケースですよね"
- Hideyuki Tanakaさんのツイート: "まあそれに最近はHT前提で平均的なコードの命令レベル並列性よりも多くの演算器搭載してるかもしれないし?いやあれ1スレで使い切れる前提なのかな?よーわからんすけど"
- Tsuzuさんのツイート: "いまいちどういう場面でHTTが効果を発揮するかわかってないんだけど、以前clangのビルドをした時は並列数を論理コア数でやるより物理コア数でやったほうが早かったので良くわからなかった"
- Hideyuki Tanakaさんのツイート: "clangのビルドとか整数演算器しか使わない上に、コンパイル自体はそんなに巨大なメモリを必要としないから、ほぼキャッシュに入って演算器もフルで回るようなタスクになってるんじゃないんすかね。あまりHTきかないタスクだと思う。"
- Hideyuki Tanakaさんのツイート: ">Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading. 新しいバグ(TLBleedとT1TF)を解決するには、新しいマイクロコードと、コーディングワークアラウンド「と」、SMT/ハイパースレッディングの無効化を要する。 (´・_・`)とな"
- Hideyuki Tanakaさんのツイート: "https://t.co/AJLWIRLIt8 >Disable SMT/Hyperthreading in all Intel BIOSes >2018-08-23 18:35:22 (´・_・`)ふーん"
- Lucas Holtさんのツイート: "Performance is so bad on the latest spectre patch that intel had to prohibit publishing benchmarks https://t.co/Et8FfNr6EZ"
- Intel Publishes Microcode Security Patches With No Benchmarks Or Profiling Allowed - Slashdot
- まさみさんは語りたいさんのツイート: "よし、HTが使えない今がARMサーバ飛躍のチャンス・・・"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "1/5とはすごい速度低下。 でも、ページ単位かそれ以上でのまとまったI/Oだとすると(=TLBに優しく、ユーザ/カーネル間の遷移も多くない?)、MeltdownやSpectre対策がどう具体的に影響したのか、想像がつかない…… "
- SODA Noriyukiさんのツイート: "これ、仕事関係で問題になったことがあって、業務に差し支えるんですが… https://t.co/KAKhYw4JO6 meltdown/spectre のパッチ当てたら RAID の BBWC へ同期書き込み性能が 1/5 以下に低下したことがあった。"
- Hideyuki Tanakaさんのツイート: "(´・o・`)・・・。 / “Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック” https://t.co/fcdgMTSq3q"
- Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック
- SODA Noriyukiさんのツイート: "これは512バイト単位でO_BINARYモードで書き込む計測でした。そのマシンは(RDBじゃないんですが似たような)ジャーナリング・ファイルの書き込みがボトルネックになるので、write(2)がRAIDのメモリキャッシュに書き込む部分の性能が最重要で、システムコール性能の低下が強烈に出たようです… https://t.co/BX7RhItZCj"
- SODA Noriyukiさんのツイート: "あ、間違えた。O_BINARYじゃなくてO_DIRECTです。(O_BINARYってMS-DOS時代から数十年使ってないオプションなのに、なぜここで出てくるのか…^^;… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、小さなO_DIRECTはそれ自体でやたらと遅いですよね。(大きくするか非同期I/Oと組み合わせないと、実用的な速度にならない) でも、Meltdown/Spectre対策をすると、それも目でないくらい、write自体の(トランザクションの?)オーバーヘッドが大きくなると。 うーん、不思議…… https://t.co/6tRnbchfvK"
- SODA Noriyukiさんのツイート: "普通ならすごく遅いんですが、対象がジャーナルファイルで容量が限られていて、かつRAIDがバッテリバックアップつきのDRAMキャッシュを載せているので、この応用の場合に限ればやってることの本質はメモリコピーに過ぎず、すごく速いです。14000~19000 iopsくらい出てました。… https://t.co/DtTgv91Ft4"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、少し判りました。 それで、syscall自体のオーバーヘッドが分かり易く出てしまう、と。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そうだとしても、1/5はすごいなぁ。… "
- SODA Noriyukiさんのツイート: "1/5でも 3000iops 越えなので遅くはないんですが、遠隔地でのactive-standby 構成で性能が揃ってないと足をひっぱられるのに、standby側として予定していたほうを更新したらこうなっちゃって問題になってました…… "
- Kazuho Okuさんのツイート: "なんとですね。秒間syscall数がダイレクトにパフォーマンスに影響するネットワークサーバ系ソフトウェアで大きな問題になっていないことを考えると、単純にsyscallのオーバーヘッドではなく、なにかwrite+O_DIRECT特有の事情がありそうですね… https://t.co/c9M073GS0x"
- Kazuho Okuさんのツイート: "httpd とかだと 200k network io calls / sec.core くらい出るわけです"
- Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!:その知識、ホントに正しい? Windowsにまつわる都市伝説(117) - @IT
#x86opti
- とみながたけひろさんのツイート: "ああそうか、Spectreでページサイズぐらいの間隔にしてたのはページ境界をまたいだプリフェッチが働かないのを使っているのか。TLBのヒット差も入れるためかなあと思ってたんだけど、そっちだったのだな #x86opti"
- まさみさんは語りたいさんのツイート: "KPTIで処理速度が落ちる話、カーネル側の処理はこれまで通りじゃなかったっけ?ページテーブル切り替えでオーバヘッドはかかるんだけど、実際のアクセスについては出来るような。"
- まさみさんは語りたいさんのツイート: "Unixプログラムの場合Sigsegvは無視できるんだよね。"
- まさみさんは語りたいさんのツイート: "Meltdownは本当に大変な問題なんだよね。簡単に出来るから。 #x86opti"
- とみながたけひろさんのツイート: "本当にVariant3は怖いよなあ。SELinuxとかでプロセスの権限とか削りまくってもほとんど回避できないからなあ #x86opti"
- まさみさんは語りたいさんのツイート: "KPTIのオーバヘッドの話。ページテーブルの切り替えオーバヘッド+TLBフラッシュ、あとはTLBミスとかの増加か。"
- まさみさんは語りたいさんのツイート: "PCIDの話もするのかー。"
- まさみさんは語りたいさんのツイート: "INVPCIDがないとPCIDを使い回すことができなくなっちゃう(使いまわすと前のTLBとかそのまま使ってしまうので)ので使いようがないよな。 #x86opti"
- まさみさんは語りたいさんのツイート: "ああ、なるほど。TSXをつかったらシグナル関係ないからな。その前に実行失敗したかどうかが分かる。 #x86opti"
- とみながたけひろさんのツイート: "ああ、サイドチャネル攻撃、TSXが最速だったのか。現状イマイチTSXが有効利用されてないことを考えると、このままでは攻撃専用命令扱いになってしまうな…(ぉぃ #x86opti"
- まさみさんは語りたいさんのツイート: "通常 アクセス→例外→カーネルが処理→signal飛ばす→ユーザアプリに戻る TSX アクセス→TSXミス→TSXミスハンドラ(ユーザ定義)に飛ぶ"
- とみながたけひろさんのツイート: "TSX使えばシグナルハンドラに飛ぶまでもなく失敗したかどうかがわかるから爆速になる、ということかな #x86opti"
- shinichiro hamajiさんのツイート: "というか失敗は常にするけどシグナルハンドラで無視するよりTSXで無視した方が速いっていうだけの話じゃないかなと。TSXを手法の一部と言うの違和感ありました… "
- とみながたけひろさんのツイート: "https://t.co/2gHq6FSXnO シグナルハンドラが呼ばれるのは一緒だけどカーネルを経由しない、ということか。なるる"
- satさんのツイート: "TSX: 503KB/s signal handler: 123KB/s です。数倍程度早いです P12 #x86opti https://t.co/f9iXXJg3XW… "
- satさんのツイート: "最適化勉強会、客層が読めなかったので前提知識として - サイドチャネルアタック - Flush+Reload攻撃 - 分岐予測による投機的実行 - OoO実行 あたりを説明したんだけど、その間半分くらいの人の目からハイライトが消えてたので「なるほどね?」っておもった"
- ほろころさんのツイート: "Branch Predictionの機能を既に知っているか否かによりますね。 https://t.co/j2zLG3H26t"
- x86/x64最適化勉強会8 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
users
@utshina2
- 品川 高廣さんのツイート: "Meltdown はアウトオブオーダー実行、Spectre は分岐予測の実装の問題を突くという違いはあるけれど、どちらも本来権限のないメモリ読み込み命令を投機的に実行させて、その結果キャッシュに残ったサイドエフェクトから値を読み取るという点ではよく似ている。"
- 品川 高廣さんのツイート: "Meltdown は今のところ Intel CPU 固有の問題だけど、ユーザ空間から簡単にカーネル空間のメモリを読み出せる(多分JavaScriptとかでは難しい)。これを防ぐには、ユーザ空間とカーネル空間でページテーブルを分ける Kernel Page-Table Isolat… https://t.co/08pPUzRZVb"
- 品川 高廣さんのツイート: "Meltdown の本質ってC言語で書くとこれだけだよね。 a = *kptr; b = array[a<<12]; aにカーネルメモリの値が入って、arrayの対応する部分がキャッシュに乗る。もちろん例外を起こして実行は取り消されるけど、キャッシュはそのままなので、arra… https://t.co/PX1Em76srz"
- 品川 高廣さんのツイート: "Spectre のような投機的実行の脆弱性があるCPU上では、共有アドレス空間内で言語処理系の機能によって機密性を担保することは事実上不可能であるという主張ですかね。アドレス空間を分離するしかないと。https://t.co/uDgMpzYZ4a"
- [1902.05178] Spectre is here to stay: An analysis of side-channels and speculative execution
- 品川 高廣さんのツイート: "(1) タイマー機能(解像度によらず)と、(2) 投機的 pointer crafting を可能にする様々な言語機能(の実装)との組み合わせで、共有アドレス空間内の任意の1bitが読み込める universal read gadget が実現可能であると。これらを包括的に防ぐ方法は見つかっていない。"
- 品川 高廣さんのツイート: "この種の side-channel が生じる根本的原因は、CPUの1つの(外部)アーキテクチャ的状態が、複数の(内部)マイクロアーキテクチャ的状態にマップ可能であることであり、投機的実行をおこなう任意のCPUで起こりうる。これはCPUの設計上の欠陥というより、理論的な「計算」の基部にある問題であると。"
- 品川 高廣さんのツイート: "平たく言うと、Chrome の JavaScript エンジン V8 で Spectre 対策いろいろ頑張ったけど、もう無理だからあきらめるで、って感じ?"
- hrk先生さんのツイート: "これが原因でLLCのShareは止める方向に向かうのではないかと思います。Shareしていて、今後あるであろう種々のアタックに耐えられるとは思えないので。それだけで、CPU問題が解決するわけではないですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コア間でキャッシュを共有しないと…本当にそんな日が来るのかしらん?(SMT無効化くらいにしておいて欲しいなぁ)… "
- satさんのツイート: "まずはOpenBSDでLLC共有するコアは一個を除いて全部殺されるところあたりでしょうか… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "確かにありえそう。SMTを無効化した実績もあるみたいですし。 「OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化」 https://t.co/O4m4rK98Uu… "
- satさんのツイート: "はい、それを念頭に置いてのコメントでした… "
@r0ktex1209
- るくすさんのツイート: "んん、バグというか仕様というか 結構前からある話だけどなー 特にWindowsカーネルとかはKASLRのエントロピーが低くて、初期から叩き台にされてたり"
- るくすさんのツイート: "@a4lg いえ、エントロピーは関係あるはずです。 https://t.co/hIVtE6P1aA これの事ですよね? 基本的にカーネルのロードされる場所の候補が絞れる前提かと。WinにせよLinuxにせよKASLRはスライドさせる感じの実装なんですよ。"
- るくすさんのツイート: "@a4lg まあ正直KAISERより、KASLRの実装を見直すのが本質的な対策かなと思ってます。まあかなり難しそうですが...."
- るくすさんのツイート: "@a4lg 読みました。 なーるほど。 あるアドレス変換に対してページレベル毎のキャッシュ情報が取れるから、幅優先的に探索していけるんですね。 これめちゃくちゃ強いっすね...."
- るくすさんのツイート: "普通に勘でも思いつかなかった.... 流石ac4lgさん.... 確かにこれで出来るならエントロピーは殆ど関係ない。"
- るくすさんのツイート: "出回ってるPoCの多くはbrute forceなんすよね でも言われてみれば確かに階層まで分かるなら、自明に枝刈りができる"
- るくすさんのツイート: "正直初めてKAISERのパッチ見た時は、ええこれまたLinus大激怒するんじゃないの.... だった。まあマージされるまでの細かい議論は追ってないから何ともだけど、パフォーマンス大低下させてまでやるべきなのかというか...."
- るくすさんのツイート: "KPTI(KAISER)はカーネルエリアをUnmapする事でサイドチャネルを防ぎますが、カーネルエクスプロイターにはあまり影響ないです。 こいつはあくまでユーザーモード実行中の話で、カーネルモード実行中は今まで通りユーザー空間がMapされたままのモデルだからですね。"
- るくすさんのツイート: "要するにret2usrもret2dirも基本的には今まで通り使えるはず。 そもそもKAISERの目指すモデルはARMアーキテクチャのTTB0/TTB1のような完全にユーザー/カーネルでテーブルが分離された"Stronger Kernel Isolation"モデルだったんだけど、… https://t.co/wZHTZiOrlF"
- るくすさんのツイート: "Intel CPUの性能低下、何がクリティカルな要因かまでは知らないけど、大体PCIDとかで何とかならないの?と思ったら、何とかなってる事例がMacなのね。"
- るくすさんのツイート: "KPTIはユーザー/カーネル空間を完全に排他的にマップする訳では無いんだけど、仮に完全排他"Strong Kernel Isolation"を実現するとどの程度パフォーマンスが落ちるかについてはGruss et al. https://t.co/TCTJEJMH7L に一応書い… https://t.co/jBTMGG1SrC"
- prefetch.pdf
- るくすさんのツイート: "なので、件の論文はおそらくPCID無効でやってる気がするんですけど、なんでこんなオーバーヘッド少なくなってるんだろう... わけわかんね..."
- ファッション自作OSマンさんのツイート: "その筋の専門家=るくすさん https://t.co/6hFDxuzvJO"
- るくすさんのツイート: "いやマジで、Spectre/Meltdownとその対策云々については一回その筋の専門家が真面目に検証,解説記事を書いた方が良い気がしてる。 今回のは特に、表面的にもそれなりに理解できてしまう内容だから、正直真に欲しい情報が書いていない事が多い。"
- まさみさんは語りたいさんのツイート: "variant5も打ち込んできたなー"
- まさみさんは語りたいさんのツイート: "そういえばgregがspectreで上げた脆弱なコードの例は、脆弱性にならないんだよね。話はもっとややこしい。2つの異なる配列をアクセスしないと、結果が読み取れないからね。"
- Thread Reader Appさんのツイート: "Saluti you can read it here: Thread by @ogawa_tter: "Meltdown, Spectreで学ぶ高性能コンピュータアーキテクチャ、 @dev_msyksphinz 、2018/1/6 https://t.co/9fA0aWza4I… 勉強になります 分岐予測 d […]" https://t.co/HtrV9pxEoC Have a good day. 🤖… https://t.co/6b7uIIPICx"
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei HPCアプリケーション (WRF/GROMACS/NAND/GSI) での Meltdown/Spectre Patchesの影響について、 TACC (Texas Advanced Computing Center) の報告です https://t.co/CBAQtk1YXk IXPUG (2018/3/5): Intel eXtreme Performance Users Group"
- まさみさんは語りたいさんのツイート: "CD/DVDのデバイスIOについてカーネル内の配列を直接悪用するspectreのexploitを読んで、これだとユーザ空間から直にindexを渡される配列のアクセスについてはすべからく危険だなあと思った。 https://t.co/ViUQBwvHiQ"
- linux-exploit/leak_pkt_devs.c at master · jinb-park/linux-exploit
- まさみさんは語りたいさんのツイート: "ユーザ空間のメモリをキャッシュアウト→カーネルの配列アクセスに巨大な値を埋め込んで投機的実行させ、キャッシュが乗るかどうかを確認→キャッシュが乗ったら、その配列のvaddrが確認できる。これはカーネルのデータがリークするわけじゃないけど、アドレスはリークするのでKASLRを破れる。"
- まさみさんは語りたいさんのツイート: "Spectreを使ってカーネル内のデータを取得するには2つの配列アクセスが必要で、ほとんど無理ゲーだけど、カーネル内のアドレスを取得するだけなら1つの配列アクセスだけで済むので、結構簡単に出来てしまう、という話。"
- suzakiさんのツイート: "NDSSマルウェア五つ目。マルウェアを隠すためにSpectreを使うExSectreの発表(Colorado Bouder)。実行を検出することできず、またCPUの状態を覗いてもわからない。 ASN-NI命令がガジェットに使えるのが面白い。Loadは使えるが、Storeはダメ。またsyscallは使えない。 https://t.co/gcfcYmv2eZ"
- ndss2019_02B-5_Wampler_paper.pdf
- suzakiさんのツイート: "確かSpectreをcovert Channelに使う研究があったけど同じ系統ですね。 そういえば、ARM TrustZoneのCovert ChannelであるPrime+Countの発表がACSAC18であった。"
- InstLatX64さんはTwitterを使っています 「Can the HRESET instruction mitigate the Spectre-vulnerability (present in the latest Sunny/Willow Cove cores too)? https://t.co/OeAW4yZQFD」 / Twitter
- Daniel FernandezさんはTwitterを使っています 「@InstLatX64 Funny how we end with hinting to undo things done implicitly instead of just doing them only explicitly in first time」 / Twitter
- FadisさんはTwitterを使っています 「Kasper: 投機的実行が実行する可能性があるパスを実際に実行してみて漏れると困るデータを触るかどうかを調べる事でSpectre-PHT脆弱性のgadgetとして使えるコードを探し出す手法。従来のパターンマッチな探し方では見つけにくかったgadgetを見つける事ができるらしい https://t.co/ugIZWFz4UR」 / Twitter
- kasper - VUSec
- FadisさんはTwitterを使っています 「Spectre-PHTの回避はオーバーヘッドを伴う為Linuxカーネル等では実際に攻撃に繋がる可能性がある箇所に限定して回避を挟んでいる。このためこうした回避に漏れがないかを機械的に調べる手法には大きな需要があるが、従来の手法はfalse positive/false negative共に大きくこの用途で使い難かったらしい」 / Twitter
- まさみさんboostedさんはTwitterを使っています: 「kprobesの修正だん。INT3がカジュアルに使われるようになったせいで、命令デコーダ使って解析すると、誰が入れたのか分からんINT3が大量に発生するようになってしまっていたので、他のジャンプ命令がその次のアドレスに飛ぶかどうかをチェックするようにした。」 / Twitter
- まさみさんboostedさんはTwitterを使っています: 「全部投機的命令実行回路が悪いんや。(INT3で引っ掛けることでそれ以降の投機的命令実行がストップする)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深いけど、今のところ結論はこれだよなぁ。 また Spectre自体、低コストな範囲で確率低下させて、あとはダチョウ・アルゴリズム(見なかったことにする)という印象も。 ---- 「すべてのウェブ開発者のみなさんがこれらを理解し、ヘッダーを実装するのは現実的ではないように思います」」 / Twitter
- Eiji Kitamura / えーじさんはTwitterを使っています 「CPUの脆弱性Spectreが発見され、ブラウザは大きな変化を余儀なくされました。それが一体どういったものだったのか、どういう対策を行うことで自分のウェブサイトの安全性を保つことができるのかをまとめました。 // Spectre の脅威とウェブサイトが設定すべきヘッダーについて https://t.co/2oFZpeL7kz」 / Twitter
- Spectre の脅威とウェブサイトが設定すべきヘッダーについて
- ChromeとFirefoxの新しいCOOPとCOEPはセキュリティを高めるクロスオリジンポリシー
- Spectre/Meltdownとその派生
- security rhel disable - retpolineとは何ですか?どのように動作しますか? - CODE Q&A 問題解決
- Kazuho Okuさんのツイート: "retpoline「Spectreは俺が倒した」Intel「ペナルティが必ずかかると思ってた?馬鹿め」retpoline「ぐぬぬ」って流れじゃなかったでしたっけ… "
- _ko1さんのツイート: "え、そういう話だったんだ(全然調べてない)。call cache があるとかないとか。… "
- Kazuho Okuさんのツイート: "return address stackがret命令の分岐先予測に失敗したら、確実にストールするというのがretpolineの設計の前提なんだけど、最近のIntel CPUだと別の予測も組み合わせているのでそうとは限らないみたいな話だったような気がするなーと… "
- _ko1さんのツイート: "まじすか最近のプロセッサすげーな… "
- Kazuho Okuさんのツイート: "もともと https://t.co/rnFUx2bnP4 みたいな話はあるのですが、これ以外になんのために、なにをやってるんでしょうね… "
- はじめてのにき(2010-07-06)
- Kazuho Okuさんのツイート: "そういえば、関数ポインタを nullable にして if (p) (*p)() とやるより、non-nullable にして空関数を (*p)() にするほうが速いことがあるって @herumi さんが言ってたのも、call-ret使ってeip取るイディオムを最適化する関係なのかなぁ"
- Kazuho Okuさんのツイート: "あーそうか Intel CPU が RET 命令について Return Stack Buffer 以外にも分岐予測を組み合わせてるって件、例外処理とかコンテクストスイッチでずれてフラッシュした際のバックアップなのかなと考えると納得いく"
- Kazuho Okuさんのツイート: "分岐「先」予測"
- KOSAKI MotohiroさんはTwitterを使っています 「Intelは性能劣化するパッチは全ベンダが性能劣化する形で作ってきますね」 / Twitter
- matsuuさんはTwitterを使っています 「KVMにおいてIntel CPUの脆弱性対策パッチが、必要ないはずのAMD CPUにも適用されており性能劣化がおきているらしい。oh。今後修正&バックポートされる見込み。 / “Linux KVM Virtualization Had Mistakenly Been Applying L1TF Workaround To Unaffected CPUs - Phoronix” https://t.co/empisPTwjN」 / Twitter
SPOILER
- インテル製チップに新たな脆弱性「SPOILER」--修正は困難との指摘も - CNET Japan
- 1903.00446.pdf
- インテル製チップに新たな脆弱性「SPOILER」--AMD、armにはない固有脆弱性。: なんとなく綴ってみた
- Fail-Safe C: Top Page
Checked C
- Checked C - Microsoft Research
- Microsoft/checkedc: Checked C is an extension of C that adds bounds checking to C. This repo contains the specification for the extension, test code, and samples.
- Microsoft、C言語を拡張する「Checked C」を開発中 | マイナビニュース
- Microsoft、C言語を拡張した「Checked C」をオープンソース化 | スラド デベロッパー
- Microsoft、C言語に静的/動的チェック機能を加えた「Checked C」を公開 | OSDN Magazine
- LLVMを拡張してメモリ空間安全性をCで実現するChecked C
- Security | すなのかたまり | ページ 2
ASLR Cache(AnC)
- 既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される ~アドレス空間配置のランダム化を突破 - PC Watch
- JavaScriptでASLRを無効化する攻撃「AnC」 | スラド セキュリティ
- vusec/revanc: Reverse Engineering Page Table Caches in Your Processor
ASLR Cache
- int $0x03@SNS部さんのツイート: "cpuの分岐予測のキャッシュ機能がASLRをバイパスするキーになると / “121412” https://t.co/sX6tgMiVHB"
- Bypassing ASLR in 60 Milliseconds | Threatpost | The first stop for security news
Stack Smashing Protection
- 単純なスタックバッファオーバーフロー攻撃をやってみる - ももいろテクノロジー
- Buffer overflow protection - Wikipedia
- Stack Smashing Protector - OSDev Wiki
- 000013695.pdf
- stack smashing | スタック破壊 - Qiita
- Stack-smashing Protection (SSP) - OWASP
- Security Technologies: Stack Smashing Protection (StackGuard) - Red Hat Customer Portal
- What is the meaning of "Stack smashing protect failure"? · Issue #1455 · espressif/arduino-esp32
- Prevent Stack-Smashing Attacks - Network Security Hacks [Book]
- ubuntu - is stack-smashing protection on on Debian? - Unix & Linux Stack Exchange
- FadisさんはTwitterを使っています 「stack protectorのカナリアはexec毎に異なる値になるが、forkしただけでは変わらないため、子プロセスに通信の相手をさせて子プロセスが落ちたら親プロセスが作り直すようなサーバアプリケーション(よくある)では子プロセスのスタックを破壊して漏らしたカナリアの値が、次の一撃に使える、と」 / Twitter
News
GIGAZINE
- Appleが「プライバシー上の懸念あり」としてSafariへの一部ウェブAPIの実装を拒否 - GIGAZINE
- HDDのコントローラーをハッキングするとデータの傍受やHDD基板へのLinuxインストールが行える - GIGAZINE
- Microsoftがオープンソースの機械学習セキュリティフレームワークをリリース - GIGAZINE
- ソフトウェアの「パッケージ」を利用してAppleやPayPalなどの大企業をハッキングする方法とは? - GIGAZINE
- 技術革新が世界にもたらす危機とは? - GIGAZINE
- Googleがオープンソース脆弱性のデータベースをPythonやGoにまで拡大 - GIGAZINE
- Mozillaが「スパイウェアを見つける方法」を解説 - GIGAZINE
- Did you hear about Apple’s security vulnerability? Here’s how to find and remove spyware.
- アメリカがハッキングツールの「Pegasus」開発元など4社をブラックリスト入りに - GIGAZINE
- 半導体への攻撃が容易になりセキュリティ対策の必要性が高まっているとの指摘 - GIGAZINE
- SMSに届く認証番号を使った「2要素認証」はもはや安全ではない - GIGAZINE
- 5億8500万件以上のパスワードをイギリス国家犯罪対策庁が個人情報流出確認サイト「Have I Been Pwned?」と共有 - GIGAZINE
- 年間5000億件起きるサイバー攻撃やランサムウェアの“リアルな実情”を最前線で対応するフォレンジック調査のプロに聞いてみた - GIGAZINE
- 中国のネットショップで買った中国製マシンにマルウェアがプリインストールされていたとの報告、制御ソフトのスキャンだけでは発見できない巧妙さ - GIGAZINE
- Linuxでルート権限を自由に取得できる脆弱性が発覚、「悪用されるのは時間の問題」と専門家 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「おとといLinuxで発見されたpolkit脆弱性 (CVE-2021-4034) に関する問題は2013年にすでに発見されていた。 argcが0のとき、 int n; for (n=1; i < argc; n++) { ... } exec(argv[n]); /* argv[1] == env[0] */ で、任意のバイナリがroot権限で実行されてしまう。 https://t.co/OZbmY8HseU」 / Twitter
- argv silliness | ~ryiron
- 善意のハッキングを行うセキュリティ研究では訴えられない新方針を司法省が発表 - GIGAZINE
- Windowsイベントログを利用したファイルレスマルウェアの手法が観測される - GIGAZINE
- セキュリティ専門家の40%以上が「2030年までにAIに仕事を奪われる」と予想している - GIGAZINE
- ステルス性の高い新たなLinuxマルウェア「シキテガ」についてサイバーセキュリティ会社が解説 - GIGAZINE
- GitHubでホストされていた「Windowsのロゴ画像」にマルウェアを隠して感染させるという恐るべき手口が発覚 - GIGAZINE
- Lenovo製ノートPCのUEFIに脆弱性が発見される、セキュリティ企業がアップデートを強く推奨 - GIGAZINE
- MicrosoftやAvastなどの人気アンチウイルスソフトがPCのデータを完全破壊してしまう脆弱性「Aikido(合気道)」が見つかる - GIGAZINE
OSDN
- Linuxカーネル4.13リリース | OSDN Magazine
- Googleがオープンソースの安全性改善に総額100万ドル出資ーー「Secure Open Source Rewards」 | OSDN Magazine
- Windows向けパスワード監査ツール「L0phtCrack」がオープンソースに | OSDN Magazine
@IT
- 「“拡張子を表示”にしていても表示されない拡張子」を使った攻撃を確認 デジタルアーツがEmotetに関するレポートを公開:侵入経路は従来と同じ「メールの添付ファイル」 - @IT
- CVSS(共通脆弱性評価システム)3.0から3.1への変更点:OpenSCAPで脆弱性対策はどう変わる?(7) - @IT
- HTMLとCSSだけでWebブラウザにサイドチャネル攻撃を仕掛ける手法 - PC Watch
- 【セキュリティ ニュース】2022年における危険な脆弱性タイプのトップ25が明らかに(1ページ目 / 全2ページ):Security NEXT
- ミズーリ州知事「ウェブページのソース表示はハッキング」。脆弱性指摘した人物を起訴の意向 - Engadget 日本版
- AvastとAVGのアンチウイルスソフトに重大な脆弱性、OS破壊の恐れも | TECH+
- ネットに接続していないPCをハッキング 超音波で機密データを盗む攻撃 イスラエルの研究者が発表:Innovative Tech - ITmedia NEWS
- Linux標的の新マルウェア「Shikitega」 「Shikata Ga Nai」でステルス攻撃 - ITmedia NEWS
- 「Chrome」からメモリ関連の脆弱性を取り除くには? ~Googleがその取り組みを解説 - 窓の杜
- オープンソースセキュリティへの取り組みを集約した“Open Source Security Foundation”が設立 - 窓の杜
- Go、D言語、Nim、Rust製マルウェアが増えている怖いワケ:マイナーなプログラミング言語がなぜ選ばれるのか - TechTargetジャパン セキュリティ
- メガネの反射からWeb会議中の画面を盗み見る攻撃 閲覧中のサイトを特定する精度は94%以上:Innovative Tech - ITmedia NEWS
- 悪意のあるペイロードをWindowsロゴ画像に隠す攻撃手法が報告される - PC Watch
- 「Google Chrome 107」にセキュリティ更新 ~解放後メモリ利用や型混乱、ヒープバッファーオーバーフローなどの欠陥 - 窓の杜
- インテルのWiFi・プロセッサーなどの製品に権限昇格やDoSの恐れ ~2022年11月のIntelセキュリティアドバイザリが公開 - 窓の杜
- 複数のUEFI実装に危険な脆弱性 ~最悪の場合バックドアなどが仕込まれたり、システムが起動不能に - 窓の杜
- 一部UEFIに任意コード実行につながる脆弱性 - PC Watch
- Call Depth Tracking Coming To Linux 6.2 To Help Recover Performance On Skylake-Era CPUs - Phoronix
- 脆弱性に附番されるCVE番号を管理する「cve.mitre.org」がリニューアルへ - やじうまの杜 - 窓の杜
- Armが6年以上かけて開発したセキュリティ向上型アーキテクチャ「CHERI」対応のボード「Morello」を発表 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Capabilityベースのアーキテクチャである"Morello"の最初の試作版がARMからリリースされる。 ポインタは128bit幅になり、プロセス内のすべての独立したメモリ領域が区別できるため違反アクセスを防止できる。CapabilityはPDF-11に実装されたが、長らく顧みられてこなかった。 https://t.co/Nz4D258oDl」 / Twitter
- An Armful of CHERIs – Microsoft Security Response Center
- 「password」や「admin」など安易なパスワードをデフォルトに設定することを禁じる法案をイギリス政府が提出 - GIGAZINE
Wikipedia
- Transient execution CPU vulnerabilities - Wikipedia
- Hardware security bug - Wikipedia
- Return-oriented programming - Wikipedia
- Sigreturn-oriented programming - Wikipedia
- JIT spraying - Wikipedia
スライド
- "どこ"から脆弱性を発見するか
- セキュリティとプログラミング
- スタックの歩き方 - Speaker Deck
- マクロな視点から捉える Web セキュリティ / Web Security from the Macro Perspective - Speaker Deck
- 趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求/seccamp2021-b5 - Speaker Deck
- 君のセキュリティはデプロイするまでもなく間違っている #CICD2021 / CICD Conference 2021 - Speaker Deck
- SPAセキュリティ入門~PHP Conference Japan 2021
- IoTセキュリティ概観 (供養)
- AWSセキュリティは「論理」に訊け! Automated Reasoning の理論と実践 - ログミーTech
- Attacking and Securing CI/CD Pipeline - Speaker Deck
- バックドアの発見と検証 - Speaker Deck
PDF
- 嶋田 創のページ
- Microsoft PowerPoint - lecture_slide0525_rev05.pptx - lecture_slide0525_rev2.pdf
- Microsoft PowerPoint - lecture20160524v03.pptx - lecture20160524_1up_rev1.pdf
- Microsoft PowerPoint - lecture0427_rev06.pptx - lecture_slide0427.pdf
- Microsoft PowerPoint - IScompendium2016rev13.pptx - IScompendium2016.pdf
- スライド 1 - MR201406_A Re-introduction to SELinux_JPN.pdf
- スライド 1 - MR201408_SE for Android Overview_JPN.pdf
- MR201411_SELinux_in_Virtualization_and_Containers_JPN.pdf
- MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
- windows10_security_ja.pdf
- windows10_セキュリティ評価支援報告Phase2 - windows10_security2_ja.pdf
- Threat_Analysis_Method_Reducing_costs_and_variability_in_results.pdf
- Using_surface_information_from_PE_files_for_Static_Machine_Learning_Based_Malware_Detection.pdf
- 情報学広場:情報処理学会電子図書館
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Web上のスクリプトから有害な(プライバシー侵害する)部分を自動的に検知し、それを無害な(sugarcoatされた) ものに置換する研究。従来のコンテンツブロッカーではサイトの不具合を防ぐため除外ルールを使っていたのが不要になる。著者らはBraveに組み込んで評価した。CCS'21 https://t.co/jJlP9XD4Oh」 / Twitter
- SugarCoat: Programmatically Generating Privacy-Preserving, Web-Compatible Resource Replacements for Content Blocking | Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security
- しゅーとさんはTwitterを使っています 「アカデミックでは日本のサイドチャネル攻撃技術は高いのに、なぜ産業分野まで降りてこないのかと思ったがIPAがこんなことを書いていた。 隠した結果、国内メーカのセキュリティは低下し、海外では研究者がオープンなので日本製品が海外のハッカーに攻撃されまくっているの、なんとかならんかったのかな https://t.co/8y8t3oCKaP」 / Twitter
- しゅーとさんはTwitterを使っています 「出典は「ハードウェアセキュリティ ―IoTの時代に向けて」P58。 https://t.co/nsrgtouCsG 2015年と少し古い情報なので今は改善されているかもしれない」 / Twitter
- スライド 1 - [JRFWS]Dec2015_3. IPA_S. Sato_Presen+ForWeb.pdf.pdf
- セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
- 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
- 9_188.pdf
blog
Project Zero
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- Project Zero: Searching statically-linked vulnerable library functions in executable code
- Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
- Project Zero: Trashing the Flow of Data
- Project Zero: Déjà vu-lnerability
- Project Zero: Hunting for Bugs in Windows Mini-Filter Drivers
- Googleの脆弱性発見チーム「Project Zero」が開示ポリシーを変更、パッチ適用までの猶予が設けられる - GIGAZINE
- Project Zero: Policy and Disclosure: 2021 Edition
- Project Zero: Fuzzing Closed-Source JavaScript Engines with Coverage Feedback
- Project Zero: How a simple Linux kernel memory corruption bug can lead to complete system compromise
- Project Zero: Using Kerberos for Authentication Relay Attacks
- Project Zero: Windows Exploitation Tricks: Relaying DCOM Authentication
- Project Zero: A walk through Project Zero metrics
- バグの修正にかかる時間は年々短くなっている、一番修正が迅速なのはどこ? - GIGAZINE
- Project Zero: An Autopsy on a Zombie In-the-Wild 0-day
- Project Zero: 2022 0-day In-the-Wild Exploitation…so far
- Project Zero: Exploiting CVE-2022-42703 - Bringing back the stack attack
FFRIエンジニアブログ
- GPS spoofingの紹介 - FFRIエンジニアブログ
- Emotetの再帰的ローダーを解析する - FFRIエンジニアブログ
- ランサムウェアMaze解析レポート - FFRIエンジニアブログ
- AI-Embedded Attackについての考察 - FFRIエンジニアブログ
- RISC-V の普及に伴うサプライチェーン攻撃の可能性 - FFRIエンジニアブログ
- RISC-V での簡単なアンチ逆アセンブル - FFRIエンジニアブログ
- RISC-V で JIT-ROP をやってみる - FFRIエンジニアブログ
- x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
ももいろテクノロジー
- WindowsでIDT overwriteによる権限昇格をやってみる - ももいろテクノロジー
- IAT書き換えによるAPIフックをやってみる - ももいろテクノロジー
- ROP検知手法RAPについてまとめてみる - ももいろテクノロジー
- JIT-ROP緩和手法Heisenbyteについてまとめてみる - ももいろテクノロジー
- x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- x64でROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- ROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避 - ももいろテクノロジー
- ROP stager + read/writeによるASLR+DEP回避 - ももいろテクノロジー
- ROP stagerによるシェルコード実行をやってみる - ももいろテクノロジー
- Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
- Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIX
- osdi16_slides_williams-king.pdf
- Amazon EC2のGPUインスタンスでハッシュ解読をやってみる - ももいろテクノロジー
- Pythonでネイティブコードを実行する - ももいろテクノロジー
- glibc malloc exploit techniques - ももいろテクノロジー
- plain RSAに対するLSB decryption oracle attackをやってみる - ももいろテクノロジー
- The Malloc Maleficarum (Bugtraq 2005) - ももいろテクノロジー
- Exploit系複合テクニックのメモ - ももいろテクノロジー
- 「Can We Prevent Use-after-free Attacks?」というタイトルで発表した - ももいろテクノロジー
- Can We Prevent Use-after-free Attacks?
- x64でSigreturn Oriented ProgrammingによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- Windows x64でReturn-oriented Programming(ROP)によるDEP回避をやってみる - ももいろテクノロジー
- Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる - ももいろテクノロジー
- ROP stager + Return-to-dl-resolveによるASLR+DEP回避 - ももいろテクノロジー
yohgaki's blog
OWASP
- 2017年版OWASP TOP 10 – yohgaki's blog
- 2017年度版 OWASP TOP 10 で変るWebセキュリティのルール – yohgaki's blog
- OWASP Secure Coding Practices – Quick Reference Guide – yohgaki's blog
- OWASP Secure Coding Practices – Quick Reference Guideの訳語 – yohgaki's blog
- OWASP TOP 10のセキュリティ対策 – yohgaki's blog
- 知っておくべきITセキュリティ概念Top 10 〜ショート版〜 – yohgaki's blog
- 当たり前?非常識?開発者必修のセキュリティ概念 Top 10 – yohgaki's blog
構造・原理・原則・基本・基礎
- セキュリティの原理、原則、ベストプラクティス – yohgaki's blog
- 攻撃可能面の管理 – セキュリティの基本 – yohgaki's blog
- アプリとライブラリの違い – セキュリティの基礎 – yohgaki's blog
- プライバシーの8原則 – yohgaki's blog
- ITセキュリティ対策の構造化 – yohgaki's blog
- アプリケーションのセキュリティと必要十分条件 – yohgaki's blog
- セキュリティを論理的に構築する方法 – yohgaki's blog
- 究極のセキュリティ要求事項とは? – yohgaki's blog
分析
- データフロー分析とセキュリティ – yohgaki's blog
- 無視されているリスク分析 – yohgaki's blog
- リスク分析とリスク対応をしよう – yohgaki's blog
脆弱性・攻撃
- まだ誰も知らない脆弱性/攻撃に備える方法 – yohgaki's blog
- コード”だけ”に着目すると脆弱性が量産される – yohgaki's blog
- 脆弱性を呼ばれた側の責任にする、は通用しない – yohgaki's blog
- インジェクション攻撃は3種類ある – yohgaki's blog
対策
- セキュリティ対策が論理的に正しいか検証する方法 – yohgaki's blog
- OSコマンドのエスケープ – yohgaki's blog
- JavaScript文字列のエスケープ – yohgaki's blog
- そもそもエスケープとは何なのか? – yohgaki's blog
- 完全なSQLインジェクション対策 – yohgaki's blog
- JSONのエスケープ – yohgaki's blog
- PHPとXML eXternal Entity(XXE)対策 – yohgaki's blog
- 本当にプリペアードクエリだけを使っていますか? – yohgaki's blog
- クロスサイト攻撃からローカルネットワークのシステムを守る簡単な方法 – yohgaki's blog
- PHPのHTMLエスケープ – yohgaki's blog
- validate-phpのPHPスクリプト版 – yohgaki's blog
- hash_hkdf()でわざわざバイナリキー/バイナリSaltを使うことに意味はない – yohgaki's blog
- SQLクエリと識別子エスケープの話 – yohgaki's blog
- PHPでCSRF対策を自動的に行う方法 – yohgaki's blog
- ソーシャルメディアフィンガープリントとその対策 – yohgaki's blog
- ”雑”なソフトウェアセキュリティ対策 – yohgaki's blog
- データのセキュリティ対策が無いセキュリティ対策?! – yohgaki's blog
- 実は知られていない?リスク対策の原則? – yohgaki's blog
- 出力対策の3つの役割 – yohgaki's blog
- PHPセッションとSameSiteサポート – CSRF, XSS対策 – yohgaki's blog
- 何故こうなった?プログラムの動作原理を無視したセキュリティ対策 – yohgaki's blog
認証
- 間違いだらけのHTTPセッション管理とその対策 – yohgaki's blog
- 解答:まちがった自動ログイン処理 – yohgaki's blog
- 今すぐできる、Webサイトへの2要素認証導入 – yohgaki's blog
バリデーション
- Yasuo Ohgaki (大垣靖男)さんのツイート: "結局ところ、セキュリティホールを無くそう、と考えて作るよりも、正しく動く事を保証しよう、考えて作る方が近道。 #セキュアコーディング"
- バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 – yohgaki's blog
- バリデーションですべきこと – yohgaki's blog
- エンジニアなら分かる文字エンコーディングバリデーションの必要性 – yohgaki's blog
- 数値のバリデーションは無意味なのか? – yohgaki's blog
- 入力値の種類は3種類しかない – yohgaki's blog
- 出力対策の3原則 – yohgaki's blog
- ”形式的検証”と”組み合わせ爆発”から学ぶ入力バリデーション – yohgaki's blog
- 入力バリデーションで許可した文字で発生するリスク – yohgaki's blog
- 入力バリデーションが甘いソースコードの検査は本当に大変 – yohgaki's blog
- ドイツ人と入力バリデーションについて議論した話 – yohgaki's blog
- 入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0 – yohgaki's blog
- ゼロトラストとフェイルファースト – yohgaki's blog
- 「フェイルセーフ」とは何なのか? – yohgaki's blog
- データ検証をしない仕様には「脆弱性名」を付けた方が良いのでは? – 未検証入力 – yohgaki's blog
アンチプラクティス
- ベストプラクティスもどきのアンチプラクティス TOP 10 – yohgaki's blog
- 「脆弱性を局所的に潰す」はアンチプラクティス – yohgaki's blog
- 第一のソフトウェアセキュリティ原則さえ普及しない最大の理由とは? – yohgaki's blog
- ホワイトリスト派とブラックリスト派 〜 セキュアコーディングが行われない理由 – yohgaki's blog
- 「出力対策だけのセキュリティ設計」が誤りである理由 – yohgaki's blog
- ソフトウェアは「入り口ノーガード設計」のままで良いのか? – yohgaki's blog
プログラミング言語
- X-Content-Type-Options: nosniff はIE以外にも必要 – yohgaki's blog
- JavaScriptでインジェクションリスクがある関数/機能など – yohgaki's blog
- PHPの危い関数リスト – yohgaki's blog
- JSONPは危険なので禁止 – yohgaki's blog
- PHPのserialize()/unserialize()を安全に利用する方法 – yohgaki's blog
- セキュアコーディングは言語を問わず適用できる – yohgaki's blog
- PHPのPharを使ったコード実行 – yohgaki's blog
- PHP 5.6.38他で修正された任意コンテンツ送信脆弱性について – yohgaki's blog
- PHP用のCookieセッションセーブハンドラー – yohgaki's blog
- Railsのリモートコード実行、今昔 – yohgaki's blog
- Risk of the session adoption – yohgaki's blog
- PHP 7.3 – yohgaki's blog
設計・コーディング
- プログラムから「想定外」を無くす方法 – yohgaki's blog
- 構造化設計とセキュアコーディング設計の世界観は二者択一なのか? – yohgaki's blog
- コマンド実行時、コマンドと引数を分離すれば完璧? – yohgaki's blog
- 命令と引数を分離すれば安全、と考えてしまう”とんでもない誤解”はどこから生まれるのか? – yohgaki's blog
- 今さら聞けない「コード」と「データ」の話 – yohgaki's blog
- 今のソフトウェアセキュリティが不十分である原因とは? – yohgaki's blog
- 正しく動作するソフトウェアの作り方 – yohgaki's blog
- APIを過信するとおかしな事になる例 – SAML認証成り済まし – yohgaki's blog
- プログラミングを覚えたら先ず知るべきコーディングプラクティス – yohgaki's blog
- データのコンテクスト – セキュリティ対策の基本 – yohgaki's blog
- セキュリティに拘ってもセキュアにならない – 開発環境セキュリティ – yohgaki's blog
- 開発者の自由を許容するセキュリティ、自由を束縛するセキュリティ – yohgaki's blog
- セキュアコーディングの構造/原理/原則 – yohgaki's blog
- ファイルパスを安全に出力可能か? – yohgaki's blog
RDBMS
- RDBMSから学ぶデータセキュリティ – yohgaki's blog
- PostgreSQLの文字列型の最大長は? – yohgaki's blog
- SQLインジェクション対策保証付きソースコード検査はじめました – yohgaki's blog
- IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – yohgaki's blog
- IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構
- なぜWebセキュリティはここまでダメなのか? – yohgaki's blog
- それは”ただのバグ”なのか?それとも? – yohgaki's blog
- 知らないと勘違いする「合成の誤謬」の罠 – yohgaki's blog
- とあるネットワーク技術者の防御法 – yohgaki's blog
- セキュリティ対策の目的 – yohgaki's blog
- 危険なコードを書くメカニズム – yohgaki's blog
- 遅すぎるサニタイズではダメな例 – yohgaki's blog
- コードで学ぶセキュアコーディング 〜 SQLインジェクション編 – yohgaki's blog
- IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – その2 – yohgaki's blog
- マイクロサービスアーキテクチャーのSSRF問題とセキュアコーディング – yohgaki's blog
- CWE-20は知られているか? 〜 開発者必修のNo.1脆弱性のハズが知られていない 〜 – yohgaki's blog
- 正規表現をより安全に使う方法 – yohgaki's blog
- エラーと例外とセキュアコーディング – yohgaki's blog
- IPAの「安全なWebサイトの作り方」は安全な作り方のガイドではない – yohgaki's blog
- MITREがCWEを大幅更新 – yohgaki's blog
- 開発者必修の7PKとは? – yohgaki's blog
- コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則 – yohgaki's blog
- セキュリティソフトウェア ≠ ソフトウェアセキュリティ – yohgaki's blog
- 7PK – APIの乱用とは? – yohgaki's blog
- 欧州の個人データ移転規制が日本は対象外となる件について – yohgaki's blog
- セキュリティ機能の利用はソフトウェアセキュリティではない – yohgaki's blog
- ソフトウェアには入力バリデーションは必要ない 〜 ただし条件付きで – yohgaki's blog
- おかしなCWE-20の読み解き方 – yohgaki's blog
- データ型とセキュアコーディング – yohgaki's blog
- コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
- マイクロソフト、バグや脆弱性の検出を自動化する「Project OneFuzz」をオープンソース公開。すでに同社内でWindowsやMicorosoft Edgeのデバッグに利用中 - Publickey
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CallerCheckとSimExec~ – 他人の空似
- 【インターンレポート】LINEクライアント内に見つかった脆弱性について - LINE ENGINEERING
- セキュリティ・キャンプ全国大会「マルウェアの暗号処理を解析しよう」の紹介, Hiroki Hada
- スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帖
- Intel 社製グラフィックス アクセラレータ用の Intel Unified Shader コンパイラで発見された脆弱性
- Google Developers Japan: Android の FORTIFY
- 確率的並行ファジング - arahori.exeの日記
- experiments/windows-defender/ASR at master · commial/experiments
- Advanced ROP techniques. Rop or return-oriented-programming is… | by Aneesh Dogra | Aneesh Dogra’s Blog
- daem0nc0reさんはTwitterを使っています 「このWindows Kernel Exploitの記事、めっちゃいいですね。 WNFはしばらく触ってないから勉強し直さないとな https://t.co/rKASxMKPWv」 / Twitter
- CVE-2021-31956 Exploiting the Windows Kernel (NTFS with WNF) – Part 1 – NCC Group Research
- 【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
- κeenさんはTwitterを使っています 「Chromeの脆弱性の70%以上がメモリ起因ということで、どうにかしたいという話。C++の静的解析は限界があるのでパフォーマンスを犠牲にして動的解析するか移行コストを払って安全な言語にするか Google Online Security Blog: An update on Memory Safety in Chrome https://t.co/22CshtXqzS」 / Twitter
- Google Online Security Blog: An update on Memory Safety in Chrome
- κeenさんはTwitterを使っています 「どちらも検討している。動的解析ではMiraclePtrが有望で50%くらいのuse-after-freeが消そうだが、モバイルではリソースが厳しいなど。静的解析ではRustが有望そうで単体では安全そうだがどうやってC++とのインタフェースを切るかなど。」 / Twitter
- REST API用のファジングツール “RESTler” で始めるお手軽ファジング | IIJ Engineers Blog
- Amazon.com、同社内で使われていた従業員向けのセキュリティオンライントレーニングを無償で一般公開、日本語版も提供 - Publickey
- Ricerca Security: ARM CoreSightを用いた効率的なBinary-only Fuzzing
- IDAPythonによる解析の自動化をやってみる - Snoozy
- Log4Shell: RCE 0-day exploit found in log4j, a popular Java logging package | LunaSec
- セキュリティツールの評価は難しい - knqyf263's blog
- glibcでRIP取得に使えるシンボルまとめ | kam1tsur3-web
- CTFで出題されるmusl libc問あれこれ - 過密です
- An Introduction to Speculative Optimization in V8
- Return-oriented Programmingとは何かを学ぶ|株式会社レピダム
- 米国 OMB M-22-09 米国政府のゼロトラスト・サイバーセキュリティ原則への移行についての覚書: まるちゃんの情報セキュリティ気まぐれ日記
- 動的解析によるメモリ破壊の発見 - ラック・セキュリティごった煮ブログ
- ゼロトラストセキュリティの基本概念 - falsandtruのメモ帳
infoQ
- 情報漏洩の定量化によってシステムを保護する
- Android Pがコンパイラベースのセキュリティ対策を拡大
- セキュリティ研究者を狙う持続的標的型攻撃、US-CERTが警戒呼びかけ | TECH+
- GitLab Protocol Fuzzer CEがオープンソースに
- 継続的セキュリティテストを有効にしてテストにセキュリティを追加する
- インフラストラクチャ脆弱性スキャナーのCheckovがコンテキストアウェア評価を追加
- クラウドプロバイダがランサムウェア軽減戦略を公開
- Azure Firewallに新しいセキュリティ機能を導入
- マシンラーニングがセキュリティにできること
- Linuxカーネルの新たなサイドチャネル脆弱性により、DNSのキャッシュポイズニングが可能に
- Googleのネットワークベースの脅威検出サービスクラウドIDSが一般向け提供へ
- OpenSSFがFuzz Introspectorをリリースして、C/C++ファズテストのカバレッジを改善
Twitter
その他
fuzzuf
- Ricerca SecurityさんはTwitterを使っています 「[NEWS] Today, we released our new fuzzing framework, fuzzuf as an OSS. It allows you to easily define a fuzzing loop by assembling the building blocks of fuzzing primitives. It's already supported AFL, VUzzer, and libFuzzer. https://t.co/f4445Jg6t6 https://t.co/2wkaX3JPR2」 / Twitter
- fuzzuf/fuzzuf: Fuzzing Unification Framework
- Ricerca SecurityさんはTwitterを使っています 「Here is our blog post: fuzzuf: Fuzzing Unification Framework by (@RKX1209 and @hugeh0ge) https://t.co/8Ug60bCA3z」 / Twitter
- Ricerca Security: fuzzuf: Fuzzing Unification Framework
- Ricerca Security: fuzzuf: Fuzzing Unification Framework
code randomization
- まさみさんは語りたいさんのツイート: "intelの人のcode randomizationのセッションに来た"
- まさみさんは語りたいさんのツイート: "honkey tonkだ。"
- まさみさんは語りたいさんのツイート: "kaslrはエントロピーが少なすぎてブルートフォース攻撃を許してしまうと。"
- まさみさんは語りたいさんのツイート: "あー、これは来るぞ"
- まさみさんは語りたいさんのツイート: "日立のときに最後に出した特許と同じ話するんじゃないかなー。"
- まさみさんは語りたいさんのツイート: "関数単位でのreorderingか、少し期待はずれだけど、多分このあと変わるんじゃないか。"
- まさみさんは語りたいさんのツイート: "function bodyをbasic blockに分割し、初期化時あるいは実行中にBBをreorderあるいはshiftすることでROPを防ぐ、という話を書いたことがある。symbol tableや関数アドレスはそのまま使えるがコードが別の場所に飛んでいる。"
- まさみさんは語りたいさんのツイート: "うーむ、タイトルからspectre系の話だと思ってたのに。"
- まさみさんは語りたいさんのツイート: "質問したいけど次の発表が隣だから"
CFI
- FadisさんはTwitterを使っています 「LinuxカーネルがclangのCFIを有効にしてビルドできるようになったらしい。CFIはサニタイザの一種で、関数呼び出し時や戻り時に呼んで良い(or 戻って良い)アドレスに正しい型の引数を付けて飛んでいる事を確認する。ROPのgadgetを呼ぶような操作が検知される https://t.co/e9H0CEsZZz」 / Twitter
- Clang CFI Support Upstreamed For Linux 5.13 - But Only On ARM64 For Now - Phoronix
- FadisさんはTwitterを使っています 「LinuxカーネルをCFI付きでビルドするのは元々GoogleがAndroidの開発の為に内部で使っていた物で、現時点では64bit ARMのみが対応していてx86_64版は準備中らしい」 / Twitter
ゼロ知識証明
- 仮想医学生ナノ.ethさんはTwitterを使っています 「Zinc(亜鉛笑笑)ていうゼロ知識証明を走らせるためのプログラミング言語が公式にα版の発表を公開したみたいです。 ゼロ知識証明は知ってる事を内容を一切出さずに知っている!って言うための暗号学の手法なんですね? e-決済とかこれからの時代Cryptographyは大事そうですよね」 / Twitter
- Matter LabsさんはTwitterを使っています 「Excited to announce the long-awaited alpha release of Zinc framework — a programming language and execution environment for easy creation of safe zero-knowledge proof circuits (programs to run on ZKPs). https://t.co/ZCqwSLDY5P」 / Twitter
- Release of Zinc v0.1. Safe-by-default ZKP programming… | by Alex Gluchowski | Matter Labs
- suzakiさんはTwitterを使っています 「4つ目。ゼロ知識証明を記述できるプログラミング言語のZKPDL(Zero-Knowledge Proof Description Language)の提案P2Pファイルシェアを応用したe-Cacheによる最適化の発表。」 / Twitter
フィッシング訓練
- kokumօtօさんはTwitterを使っています 「実際にメールを送るフィッシング訓練は逆効果と、スイス・チューリッヒ工科大学の博士課程学生が従業員数数万人規模の企業と行った共同研究。訓練メールに引っかかった被験者は、実際のフィッシングにもより引っかかりやすくなったとのこと。 https://t.co/oUUClMtPNc」 / Twitter
- How a few PhD students revealed that phishing trainings might just not work: Lock and Code S03E03 | Malwarebytes Labs
- todkm IT系さんはTwitterを使っています 「@__kokumoto この記事で言及されているものかも(論文への直リンクあり) https://t.co/HUtFUMYhTC」 / Twitter
- ETH Zurich フィッシング大規模調査:従業員に対するトレーニングには効果が無い – IoT OT Security News
- todkm IT系さんはTwitterを使っています 「ポッドキャストに出演しているのがDaniele Lainさんなのでこの論文で間違いないですね。」 / Twitter
kernelvm
2017-11-18
CTF
No.1
- Fadisさんのツイート: ". @Charo_ITCODE さんの「BLUE CTF 2017で出した問題の話」が始まります #kernelvm"
- Fadisさんのツイート: "プログラムを乗っ取るために書き込みを試みる対象: 関数ポインタ、スタック上のリターンアドレスなどそれらを保持する配列のポインタ等、ジャンプ先を司っている値 #kernelvm"
- Fadisさんのツイート: "関数呼び出しはほとんどのアーキテクチャにおいて関数が置かれたアドレスへの特殊なジャンプ(アーキテクチャによっては本当にただのジャンプ命令)だから、飛び先のアドレスが書き換わっていれば違うものが実行される #kernelvm"
- Fadisさんのツイート: ".got.pltのポインタを書き換えて本来と違うコードの実行を行う。最近のアーキテクチャではデータ領域に置いた任意のデータの実行を阻む仕組みが備わっている事があるが、プロセス中に実行可能バイナリとしてロードされている他の実行可能バイナリなら実行できる #kernelvm"
- Fadisさんのツイート: "ASLR PIEなどを使ったバイナリでは関数はランダムなアドレスに配置され、攻撃者が狙って特定の関数呼び出しを行う事が難しくなる #kernelvm"
- Fadisさんのツイート: "バッファオーバーフローによってリンクリストのデータの次にあるnextの値が書き換えられる時、nextのアドレスを書き換えて次の要素に書き込みが起こるような処理を行えば任意の箇所に書き込みを行うことができる #kernelvm"
- Fadisさんのツイート: "ASLRがある場合ライブラリ関数の配置がわからないため、アドレスリークが可能な脆弱性が無いと確実な乗っ取りは行えない #kernelvm"
- Fadisさんのツイート: "偽のstrtabを用意してdynamicセクションを書き換えてライブラリ関数のアドレス解決時に別のアドレスが返るようにする #kernelvm"
- Fadisさんのツイート: "strcmp関数を読んだ時実際に実行される関数がsystem関数になるような偽のstrtabを用意し、strcmpに実行したいコマンドを渡してシェルを得る #kernelvm"
- Fadisさんのツイート: "CTFで8/554チームがこの問題をクリア → まずまずの難易度 (まずまずとは) #kernelvm"
No.2
- Fadisさんのツイート: "printf("%3$d",2,1,0); // 0が出る printfでは指定した位置の引数を$で引っ張ってくる事ができる #kernelvm"
- Fadisさんのツイート: "printf( "%3$*4$d%5$n", 2, 1, 0, 5, &a ) // 文字数を出力することもできる #kernelvm"
- Fadisさんのツイート: "printfのformat stringで足し算ができる!!! #kernelvm"
- Fadisさんのツイート: "format stringで処理系を作るwww #kernelvm"
- Fadisさんのツイート: "プログラムカウンタ、リンクレジスタ、汎用レジスタ、関節参照アドレスレジスタ等を用意し、全てprintfに引数として渡し、format stringを駆使してこのレジスタ上で計算を行う #kernelvm"
- Fadisさんのツイート: "引き算: 2の補数の足し算ができれば良い → 補数を求めるテーブルを用意 #kernelvm"
- Fadisさんのツイート: "このprintfの問題は狂気じみた問題にもかかわらずCTFで11/554チームが解けた #kernelvm"
users
@fadis_
- Fadisさんのツイート: "最近のメモリで見られる 同じ行に連続してアクセスすると直接アクセスしていない領域の値が化ける現象(RowHammer問題) を利用してLinuxで権限昇格ができる模様 http://t.co/10kwCTzMyJ"
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
- Trojan Source Attacks
- Fadisさんのツイート: "「バッファオーバーランによる脆弱性の仕組みを学びましょう、まずここのリターンアドレスが潰れるようにシェルコードを… stack-protector「スタック破壊を検知しました」 NXビット「そもそもそこ実行できんで」 ASLR「シェルコードの中で呼んでるその関数、そこにはないよ」 「」"
- Fadisさんのツイート: "スタックに任意の書き込みが出来る状態から任意の処理を実行出来るようにするためには、popでレジスタに値をロードして、retで走らせたい命令列がある場所にジャンプする、と"
- Fadisさんのツイート: "そんなわけでROPはまず目当てのレジスタにpopしてretqしてるところを探す事から始まる、と"
- Fadisさんのツイート: "よっしゃ、ROP動いた"
- Fadisさんのツイート: "retを使わない事でReturn Oriented Programmingを阻止する話を探してたら、retじゃない命令でReturn Oriented Programmingする論文を見つけちゃったところ https://t.co/pkdYlxJYAr"
- Return-oriented programming without returns
- Fadisさんのツイート: "CRIU: Linuxで実行中のコマンドのダンプと復帰を行うツール https://t.co/HbYJgGHVn4 #kernelvm"
- Fadisさんのツイート: "範囲外参照の不具合とWebCore::CSSSelector::specifyを組み合わせて1bitだけ書き込むことができる → ArrayBufferのサイズの情報を書き換える→ArrayBufferから範囲外の値を読み書きできるようになる #kernelvm"
- Fadisさんのツイート: "自由に書き換えられるようになった領域にさらにArrayBufferViewを作って、ベースアドレスを書き換えてさらに広い領域を自由に書き換えられるようにする、と #kernelvm"
- Fadisさんのツイート: "そのままこの領域にバイナリを書いてvtableを書き換えてジャンプしてもNXビットが立ってて実行されない → Return Oriented Programmingだ! #kernelvm"
- Fadisさんのツイート: "stack pivotを使って書き換え可能な領域がスタックだったことにする #kernelvm"
- Fadisさんのツイート: "iretが#SS例外を投げるとユーザ空間のGSのままカーネルが実行されるバグがLinuxカーネルに見つかる → その後呼び出される関数がGSが指す構造体に0を書き込む → ユーザ空間から指定した位置に0を書き込むことができる #kernelvm"
- Fadisさんのツイート: "PS4はFreeBSD4で動いている → ページフォルトハンドラが書き換え可能になっているため、ここを書き換える #kernelvm"
- Fadisさんのツイート: "Linuxの場合は割り込みテーブルがリードオンリーになっているため、カーネル内でROPをして各種保護を切って書き換える #kernelvm"
- Fadisさんのツイート: "A Turing complete ROP compiler https://t.co/olv8tOFzBR #kernelvm"
- download;jsessionid=7BE7708C4BC9D07131666776F6159B34
- Apple、iOSやmacOSなどの脆弱性を多数修正 | スラド アップル
- Fadisさんのツイート: "stack-protectorはスタック破壊を「検知」することはできるけど「修復」することはできなくて、従ってカーネルのstack-protectorは攻撃者がring 0で任意のコードを実行しうる脆弱性を、攻撃者がカーネルパニックさせられる脆弱性に弱める物で、スタック破壊による攻撃を無力化する働きはない"
- FadisさんはTwitterを使っています 「stack protector同様ASLRもforkしただけでは配置を変えられない。攻撃者はバッファオーバーラン脆弱性を使って既知のカナリアの後ろのリターンアドレスを書き換える事で「子プロセスがクラッシュしたかどうか」でASLRで配置換えされたページがどこに行ったかを探る事が出来る。これがBlind ROP、と」 / Twitter
- FadisさんはTwitterを使っています 「で、ここまでの手法はいくらでも子プロセスをクラッシュさせられる場合専用だったわけだけど、BlindSide(https://t.co/xeEaTxQ5f5)はこれにSpectreを組み合わせて、ないかもしれないページを読んだ後で無かったことにしてその時の応答を観測する事で、プロセスをクラッシュさせずにASLRを乗り越える」 / Twitter
- BlindSide - VUSec
- FadisさんはTwitterを使っています 「SyzkallerによるLinuxカーネルのファジングの問題についての話。カーネル開発にsyzkallerが使われだしてから多くのバグがファジングで見つけられてきたが、その中には直ちにセキュリティ上の問題に繋がらない物も多く、発見数が多いことからそうしたバグは放置されがちだった https://t.co/wDQu2xpNDA」 / Twitter
- FadisさんはTwitterを使っています 「しかしsyzkallerはあるパスでバグを見つけるとそのパスの実行を打ち切る為、最初に発見されたのは漏れても困らない情報のリークだったので放置されたが、実際にはその後ろで漏れてはいけない情報も漏れていた、といった形での脆弱性の見落としが悩ましい問題になっている」 / Twitter
- FadisさんはTwitterを使っています 「ファジングが活用される時代にソフトウェアに脆弱性を仕込むコツは「軽微なバグの後ろに深刻な脆弱性を並べる」というものになるのか…」 / Twitter
- るくす(転送届)さんはTwitterを使っています 「@fadis_ こういう研究があります https://t.co/lboSl3rNsJ」 / Twitter
- Fuzzification: Anti-Fuzzing Techniques | USENIX
- FadisさんはTwitterを使っています 「Googleが新しいファジングの使い方SiliFuzzを開発している話。SiliFuzzはCPUシミュレータでカバレッジを上げられるような実行可能バイナリを探し、それによって得られた「CPUの様々な機能をつつく」バイナリを実際のCPUで実行してみることで、効率よくCPUの実装ミスを発見する https://t.co/6XzGM80NVW」 / Twitter
- Google Developing "SiliFuzz" For Fuzzing CPUs To Uncover Electrical Defects - Phoronix
- FadisさんはTwitterを使っています 「直接カバレッジをとることができない実装と同じ機能を提供するカバレッジを取れる実装で多くのパスを発見できる入力値は、カバレッジをとれない実装においても多くのパスを通っているに違いない、というファジングの手法を"fuzzing by proxy"と呼ぶらしい」 / Twitter
@tanimocchi
- もっちぃさんのツイート: "Side Channel Analysis via Model Counting Constraint Solvers https://t.co/YbVLNq3pur Side Channel Analysis Using a Model Counting Constraint Solver and Symbolic Execution https://t.co/wXQx1WHOhl String Analysis for Vulnerability Detection and Repair https://t.co/lQsOs1Sb5p… https://t.co/nBTZiopJN6"
- もっちぃさんのツイート: "サイドチャネル攻撃耐性のあるコード設計&バイナリ生成技術も既に研究されていて、その紹介スライドは下記が良いかなと。 Verifying Cryptographic Implementations with F* https://t.co/4CEBFBDlPt… "
- Verifying Cryptographic Implementations with F*
histric
histric-1
- 港務部長オルミンの温冷鮭サンドイッチさんのツイート: "CVE-2014-9322 #kernelvm [sokutenable]"
- OS作れないマン WalB担当さんのツイート: "ROPは、コード領域で自分が欲しい命令列になるアドレスを頑張って探してジャンプする #kernelvm"
- るくすさんのツイート: "久しぶりにヒープ系のエクスプロイト書いた。 WebKit OOB 1byte-writeでよろしくやるコードですね。これで分かる人は分かると思う。 (pwn2own 2014のやつ)"
- $Hell on Sony Snatch the Kernel privilage from Browser // Speaker Deck
- suzakiさんのツイート: "バイナリが本当のソースから作られたことを検証するdiffing Toolsに関するブログ。IDAProに類似度比較のPlugInを入れる。 https://t.co/OP4rHkMeTR Hacktivity18の”Diffing C Sources to Binaries”で発表される。 https://t.co/yJN3HNbi64"
- Histories of comparing binaries with source codes | Unintended Results
- OSC2019東京・春出展さんのツイート: "HMAC(key, msg) == signature; のどこが問題かという話.比較関数==は(大抵の実装では)先頭から調べて一致しなくなったらfalseを返すので,1文字目が一致するかしないかで応答時間が微妙に異なる.そこを計測できるとMACを推定することが可能."
- uint256_tさんはTwitterを使っています 「Anti hacking compiler ってなんだろう」 / Twitter
- uint256_tさんはTwitterを使っています 「https://t.co/FMlgTMBDMR」 / Twitter
- DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
- mumumuさんはTwitterを使っています 「AddressSanitizer: A Fast Address Sanity Checker [ATC '12] 所謂Asanの比較的初期の頃?の仕組みと実装をまとめた論文.コンパイラのInstrumentation + Shadow Memory.スライドのSummaryに"C++ is suddenly a much safer language"って書いてあって:thinking_face: https://t.co/779BlbNITw」 / Twitter
- serebryany_atc12_slides.pdf
- daem0nc0reさんはTwitterを使っています 「このWriteupは面白いですね。 どういう条件が揃っているとXSSから遠隔コード実行まで持っていけるかが勉強できて良いと思います。 https://t.co/FrosfsYgW5」 / Twitter
- Stored XSS to RCE Chain as SYSTEM in ManageEngine ServiceDesk Plus | by Chris Lyne | Tenable TechBlog | Aug, 2021 | Medium
- るくすさんはTwitterを使っています 「2年ぐらい前にアメリカにいた時に「ゼロデイを見つける時代は終わりだ。これからはいかにバレないようにゼロデイを"埋め込んでいくか"の時代が来るんだぜ」って言われて、んなアホなと思ってたが最近マジでそうなりつつあるな」 / Twitter
- るくすさんはTwitterを使っています 「当時ですら既に国防総省肝いりのきな臭そうな(?)バックドア挿入の研究プロジェクトあったから今とかもっと凄そう」 / Twitter
- 品川 (utshina2)さんはTwitterを使っています 「これは ring 0 に対してはやってなかったか。」 / Twitter
- Microsoft Word - exoshim.docx - tr15-001.pdf
- Tsukasa #01さんはTwitterを使っています 「まさかのこの性質を使っている論文を見つけてしまった。 Brookes et al. https://t.co/vQHHUeI3kM」 / Twitter
- 品川 (utshina2)さんはTwitterを使っています 「Readactor の方が先かなぁ。 https://t.co/XniM2nuPsH」 / Twitter
- Readactor:メモリ開示に強い実用的なコードランダム化| IEEEカンファレンスパブリケーション| IEEE Xplore
- daem0nc0reさんはTwitterを使っています 「WindowsのAMSI Bypassの手法は、ゆっくりではあるけど対策はされている印象なので、定期的に調査結果をまとめてくれる人がいるのはありがたいですね https://t.co/7Gs3qj9pCe」 / Twitter
- Defense Evasion Series Part 1 AMSI Bypass | Dazzy Ddos
- daem0nc0reさんはTwitterを使っています 「このJavaScript EngineのExploitの問題は面白そうです https://t.co/cCSKo2KMYY」 / Twitter
- TCTF 2021 Promise
- daem0nc0reさんはTwitterを使っています 「自作EDR、良いですね。 Windows Kernelの知識を深めたい人は読むべし https://t.co/KT05fdgB1J」 / Twitter
- Blinding EDR On Windows - Red Team Blog
- daem0nc0reさんはTwitterを使っています 「Remote Desktop ProtocolのFuzzingについての記事。 かなり詳しく書いてあります。 じっくり読んでいきたいと思います。 https://t.co/4d9gqyqjHd」 / Twitter
- Fuzzing RDP: Holding the Stick at Both Ends
- 伊藤 彰嗣 / Akitsugu ItoさんはTwitterを使っています 「ここにも Bug Crowd が出てきていますね。https://t.co/EBggdGta12 なども含め、この手の報告者を保護するための活動に積極的に参加されている印象です。」 / Twitter
- The disclose.io Project | Open-source tools for a healthy Internet Immune System.
- Sen UENOさんはTwitterを使っています 「セキュリティエンジニアが訴えられたり捕まるリスクはどの国にでもあるのね。 バグハンターが企業から訴訟を起こされないようにする法律を提唱するWGを作成 https://t.co/D1droTCnHB」 / Twitter
- Cyber-security threat hunters seek legal protections • The Register
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「パスワードなど秘密の情報が表示されたスクリーンショットを公開するとき、決してモザイク (ピクセル化) を使ってはならない。モザイクのかかった文字は解読可能である。 https://t.co/XsLLhODotS」 / Twitter
- Never Use Text Pixelation To Redact Sensitive Information | Bishop Fox
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Spook.js - Chromeのサイドチャネル攻撃を使って、悪意あるページからブラウザ中で開かれている別のページの内容を盗み見できる。LastPass機能拡張の内部状態からマスターパスワードを復元することすら可能。 https://t.co/xic7jvIYMO」 / Twitter
- Spook.js
- 太一さんはTwitterを使っています: 「対応策としては、基本的にSOCやCSAの日本版が出来て、パッケージベンダやSaaSベンダは顧客に対して必要ならそこからダウンロードしてくださいと案内する形になるのが望ましいと考えます。」 / Twitter
- 太一さんはTwitterを使っています: 「ちなみに、CSAのチェックシートは地獄のExcelです。誰でもダウンロードできますので、例としてGitHubの入力結果を紹介します。https://t.co/PI1dCD1WAy https://t.co/FScZ6i42Ii」 / Twitter
- STAR Registry Listing for GitHub | CSA
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SATAn: 新しいデータ漏洩 (攻撃) の方法。SATAケーブルは6GHz帯のアンテナとみなせるため、攻撃者はこれを使ってエアギャップされたマシンからでも周辺のマシンにデータを送信できる。この方法はroot権限を必要としないため広範囲に利用可能。 https://t.co/n1sIbdA7cU」 / Twitter
- [2207.07413] SATAn: Air-Gap Exfiltration Attack via Radio Signals From SATA Cables
- daem0nc0reさんはTwitterを使っています 「このFuzzingの記事はいいですね。 IPCは今、一番注目されているAttack Surfaceのひとつだと思うので、もっと詳しく勉強したい https://t.co/2yDycR7U0D」 / Twitter
- Fuzzy Snapshots of Firefox IPC – Silent Signal Techblog
- Kazuho OkuさんはTwitterを使っています: 「はー ubsan 嫌い。これで反転の場所で array index out of bounds 言われる。普通のCプログラムやのに、ちょっと末尾をunionに入れただけやのに... https://t.co/uOpz3q8M9O」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「これどうにもならんな。 * あちこちで使われてる型だから関数単位でattributeつけるのもよくないし、 * 型定義の配列サイズを大きくして malloc で絞ると、全てのメンバアクセスがハネられる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「結局、subtyping しました https://t.co/BbcP70TyoT」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「自分のパスワードには常にカンマを含めておけ、そうすれば漏洩してCSVになったときにうまく動かなくなるから」」 / Twitter
- vx-undergroundさんはTwitterを使っています: 「Insert commas into your password so when your credentials are dumped into a CSV it breaks it」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Anti-Virusソフトウェアって、Webブラウザのプロセスクラッシュさせてるのに「自分のところにはレポート来てない」と言い張ったりするんで (そりゃそんな切り分けできるユーザーほぼいないだろ)、彼らのソフトウェア毎無効にするはめになるよな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「IPAに関してはいろいろ仕事したけど、結論として未踏と情報処理試験だけやってろですね。脆弱性の受付は機能するはずないんで、独立行政法人じゃなくてNPOかJPCERTでやれよが自分のスタンスです」 / Twitter
コード分析
その他
- コード分析ツールを利用する - プログラマが知るべき97のこと
- 冗長コードの検知と解析
- 日記 (2014 年 2 月下旬)
- Software rot - Wikipedia
- NetBeans IDE Javaエディタでの静的コード分析
- ルール ベース分析
- Google Developers Japan: サニタイザーによる Android のバグ退治
- プロならゲーム開発で品質保持/CIは当たり前:C#/C++の本格的なゲーム開発において品質を高めるために知っておきたい静的解析とは - @IT
- ElectricCommander
- バグハンターのためのクライアントサイドJavaScriptの静的解析 - No1zy Web Security Blog
- golang.org/x/tools/go/analysisで静的解析ツールを自作する #gounco / how to create the static analysis tool for go - Speaker Deck
- Mozilla、Firefox開発プロセスにUbisoftのAI技術を採用へ | OSDN Magazine
- MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能 - Publickey
- 米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
- 国際会議 SOSP 2019 - 品川研究室のブログ
- プログラム解析の目的 - uchan note
- 静的解析の育て方 / How to make your static analysis strong - Speaker Deck
- CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
- JetBrains は IntelliJ 2020.2 をリリース
- ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(前編) - Publickey
- ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(後編) - Publickey
- 開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE
- Sonatype LiftがFacebook Infer、Google ErrorProne等のコード分析ツールを統合
- Coverity - 検索
- 高速なPythonの静的コード解析ツールを作った話
MS
- クイックスタート: C/C++ のコード分析 | Microsoft Docs
- チュートリアル: C/c + + コード分析による欠陥の分析 | Microsoft Docs
- C++ Core Guidelines チェッカーリファレンス | Microsoft Docs
- C/c + + のコード分析の警告 | Microsoft Docs
- 「Visual Studio 2019」がリリース候補(RC)版に ~CodeLens機能がCommunity版にも開放 - 窓の杜
- Visual C++の静的解析を利用する方針 | iwadjp's Blog!
Clang-Tidy
- clang-tidy - Google 検索
- 冬休み到来! clang-tidy で安心安全な C/C++ コーディングを極めよう! - Qiita
- clang-tidyで命名規則のチェック(&自動修正) - Qiita
- Visual Studioでも最新のClangが使いたい! - Qiita
- 【C++】VisualStudioの標準機能の静的解析ツールについて | PeLoProject
- Clang-Tidyインテグレーション - 公式ヘルプ | CLion
- のClang-Tidyを使用Visual Studio | Microsoft Docs
- Visual Studio プロジェクトでの Clang/LLVM のサポート | Microsoft Docs
- Clang-Tidy — Extra Clang Tools 14 documentation
- clang-tidy - Clang-Tidy Checks — Extra Clang Tools 14 documentation
- Clang-tidy IDE/Editor Integrations — Extra Clang Tools 14 documentation
- Getting Involved — Extra Clang Tools 14 documentation
ポインタ解析
- FadisさんはTwitterを使っています: 「みんな戻ってきたので少し早いですが @kristopher「Kiyomizu: LLVM IRを解析によってコードの脆弱性を防ぐ」が始まります #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「「清水の舞台から飛び降りて無事だったら、願いが叶う」→「チェッカを通して無事だったら、安全なコードである」 Project Kiyomizu #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「LLVM IRのレベルでメモリアクセスの解析やコールグラフ解析を行う事で、様々な言語を安全に書けるようにする、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「社会インフラを構成するシステムに存在する脆弱性の多くが正しくないメモリアクセスを原因としている、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「ポインタ解析ではある関数がアクセスして良いアドレスの範囲の情報を作って、それに違反していないかをチェックする、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「言語に型の条件チェックを付けて安全なコードを書けるようにしました、という話を目撃する度に「それC++で(以下略)」というお気持ちになってる」 / Twitter
- FadisさんはTwitterを使っています: 「でも実行時にならないと確定しないようなものをテストと結びつけてチェックできるのは羨ましい」 / Twitter
Snyk
- 渋川よしきさんのツイート: "アカウント登録必要だけど、snykを別に使えば、セキュリティチェックを別に行うことは可能。これはnode.js以外のGoとかにも対応してる。audit入る前からこれ使ってた(vulsの神戸さんに教えてもらった) #ll2018jp"
- Open Source Security Platform | Snyk
- Scan Your Code and Open Source for Vulnerabilities for Free | Snyk
- オープンソースコードのセキュリティチェックと問題修復を開発のワークフローに組み込むSnyk、GitHubとの統合も可能 | TechCrunch Japan
- オープンソースのライブラリのセキュリティチェックと脆弱性フィックスを代行するSnykが$7Mを調達 | TechCrunch Japan
- snyk/snyk: CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
- Snyk
- snyk/vulnerabilitydb: Snyk's public vulnerability database
SCALe
- カーネギーメロン大学、ソースコード解析ツール「SCALe」を公開 | マイナビニュース
- SEI CERT Division Releases Downloadable Source Code Analysis Tool
- cmu-sei/SCALe: SCALe (Source Code Analysis Lab) is a static analysis aggregator/correlator which enables a source code analyst to combine static analysis results from multiple tools into one interface, and also provides mappings for diagnostics from the tools to the SEI CERT Secure Coding standards.
- コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開 - Publickey
KMC Staff Blog
- KMC Staff Blog:sparse チェッカーを使ってみる。
- KMC Staff Blog:GCC の名前付きアドレス空間サポート
- KMC Staff Blog:GCC の profile mode を試してみる。
Twitter
- κeenさんはTwitterを使っています: 「ここ2年のMiriの動向。MiriはRustの中間表現のインタプリタで、valgrindやその他の動的解析ツールより正確に未定義動作を発見できる。最近のトピックとしては並行のサポートが入ったりポインタの扱いが上手くなったりなど色々な改善がある。 The last two years in Miri https://t.co/hrkSotIFPL」 / Twitter
- The last two years in Miri
- κeenさんはTwitterを使っています: 「これ自動でみつけてくれるのすごいなー https://t.co/bnAGrGFbWm https://t.co/fraUcNVrL7」 / Twitter
- Rust Playground
- 高梨陣平さんのツイート: "正規表現ライブラリに動的にメモリ破壊の可能性を解析するlibFuzzerを使ったら5つも問題を見つけたとの話。C/C++を用いるOSSには定期的に検査をかけてくれるOSS-Fuzzというのもある。利用申請が必要。 https://t.co/kWENHQIqCq https://t.co/lGAoq90Njo"
- Masakazu Asamaさんのツイート: "Clang の ML に「Clang の static analyzer 使って Linux の TCP/IP スタックの検証してみたいんだけど」みたいなスレあって色々調べてたら FreeBSD は Wiki にカーネルの static analyzer にかける方法が載ってた。"
- Masakazu Asamaさんのツイート: "@m_asama 「これで潰せたバグの一覧」とかあったら個人的にめちゃくちゃ興味あるんだけどどうなんだろ。 https://t.co/8vggEG1lHH"
- Rockridgeさんのツイート: "MozReviewに送信されるすべてのパッチに対し自動的に静的コード解析が行われるようになる模様。解析の結果指摘された問題点を解消しない限り、パッチのチェックインができなくなるそうだ。 / “Intent to Enable: …” https://t.co/vyQR5pNHTq"
- Kazuho Okuさんのツイート: "Cの静的解析ツール、false positiveの管理が辛くて、その点Coverity Scanはウェブベースだからグループ開発にむいてる"
- Kazuho Okuさんのツイート: "Cコードのregressionを見つける比率で言うと、CI : fuzzer : 静的解析 = 100 : 10 : 1 くらいの僕的印象"
- 眼力 玉壱號さんのツイート: "@kazuho code flow はよく見ている印象。C++11〜 の対応が弱いのが少し辛い> Coverity"
- とみながたけひろさんのツイート: "ふつーのコンパイラの警告, cppcheck, coverity, fortifyあたりを併用しているけど、まあどれも一長一短な感がある。お値段とか精度とか速度とかいろいろ"
- 鯵.pngさんのツイート: "ソースコードとコンパイラが吐いたバイナリが同じ挙動をするかどうか、ハードウェアみたいにフォーマルベリファイアで確認することが必須になる未来を見てみたい"
- Kentaro Haraさんのツイート: "Googleの2億行のソースコードを解析した結果、関数に渡す引数の順番を間違える系のバグは、引数の個数が6個以上になったときに著しく増えるので、引数の個数は5個以下が望ましいことがわかったという話。 https://t.co/R5yy31pDyu"
- なかのん&マジックさんのツイート: "CheckSomething()って名前のメソッドはプロジェクト問わずだいたいダメ。"
- なかのん&マジックさんのツイート: "Checkすることで何が起きるのかよく分からない、つまり、実装する人によってそのメソッドの性格が変わるということを意味してる、非常に良くない単語。"
- FadisさんはTwitterを使っています: 「gcc 10からC言語のコンパイル時に-fanalyzerをつけることで静的解析をかけられるようになる話。さしあたってはまずいメモリ確保/解放を見つけるようになるらしい。コンパイラの中間表現を使って静的解析を行う試みは既にclangで行われていたが昨年末にgcc向けの実装が登場した https://t.co/orYlhY267F」 / Twitter
- GCC 10 Introduces A Static Analyzer - Static Analysis On C Code With "-fanalyzer" Option - Phoronix
- mumumuさんはTwitterを使っています 「Finding Error Handling Bugs in OpenSSL using Coccinelle OpenSSL特有のある種のバグをLinuxで使われているC言語ソースコードのパターンマッチツールで検出する試み.あくまで静的解析でデータフロー解析などはできないが,それでも30個見つけている. https://t.co/1ZFGlzTd7e」 / Twitter
- Finding Error Handling Bugs in OpenSSL Using Coccinelle - IEEE Conference Publication
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ruff - Rustで書かれたPython用コード検査ツール。pyflakesやpylintより50倍近く速い。近年、JavaScript用のツールが飛躍的に速くなっており (たとえばGoで書かれたesbuildなど)、同様のアイデアをPythonにも適用した例。 https://t.co/7LcZqTpfe2」 / Twitter
- Python tooling could be much, much faster
- returntocorp/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
- FacebookがSuperpackでコード分析を活用してAndroidアプリを圧縮
- 「Thunderbird」や「LibreOffice」などに影響か ~Mozillaが「NSS」の致命的な脆弱性を公表 - 窓の杜
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Mozillaが保守している Network Security Services (NSS)で固定長フィールドによる単純なバッファオーバーフローが発見された。NSSは長年保守されている高品質なコードだが、それでもこうしたバグは存在する。しかも既存のfuzzerやCoverityなどでも発見できていなかった。 https://t.co/eB4JO93Zsr」 / Twitter
- Project Zero: This shouldn't have happened: A vulnerability postmortem
- 静的アナライザRudraがRustクレート内に200件のメモリ安全上の問題を検出
- Detector Libraryとログインジェクション脆弱性のためのセキュリティ検出器を特徴とする新たなCodeGuru Reviewer
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コードを入力すると、その説明を自然言語 (英語) で表示するサービス。かなり多くの言語をサポートしている。Pythonで簡単なDijkstra法を書いてみると、ときどき"This code finds the shortest path."と返すが、まったく同じコードで意味不明な説明のときもある。確率的らしい https://t.co/Rsi2mHnU6Z」 / Twitter
- Denigma - AI that reads and explains code in understandable english
- 米Intel、自動バグ検出ツール「ControlFlag」をオープンソースとして公開 | OSDN Magazine
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「NASAソフトウェア検証部門が開発した、抽象解釈にもとづく静的プログラム解析器。Z3などのソルバは使っていないが、多面体解釈や不動点をサポートしており、制御フローや関数呼び出しも考慮してバグを発見できる。C/C++を対象としているが、LLVMでもいけるらしい。 https://t.co/pSrrwKMEqf」 / Twitter
- NASA-SW-VnV/ikos: Static analyzer for C/C++ based on the theory of Abstract Interpretation.
- Kinuko Yasuda / 安田絹子さんはTwitterを使っています: 「先日少し講義的なものをする機会を頂いたのですが、そのときに作った資料、せっかくなので抜粋・編集したものを公開します。プログラム解析(静的解析多め)、C++、チョットダケRustみたいな内容です🦀 https://t.co/xF7TtCyacq」 / Twitter
- プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話 - Google スライド
- MATE: Interactive Program Analysis with Code Property Graphs - Galois, Inc.
- hsjoihs (はすじょい) @ 12月18日から東京さんはTwitterを使っています: 「「100 行ぐらいで Rust の linter を実装できる、名付けて minippy」の実演を 5 月頃に京大マイコンクラブで見て以来「これすごいな」と思っていたので、こうやって記事として公開されてうれしい Rustプログラム解析入門 ― @tamaroning https://t.co/k8lfbefqJa」 / Twitter
- Rustプログラム解析入門 | tamaron
Define and Run
- てらモス♋️さんはTwitterを使っています: 「ユーザーが書いた演算に対してそれをその場で実行せずに計算グラフとして持っておき、後で実行する前にコンパイルして実行する、という仕組みは現代だと何て呼ばれてるんですかね(´・ω・`)?」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「@termoshtt え,現代でも遅延評価じゃないの..?」 / Twitter
- てらモス♋️さんはTwitterを使っています: 「@Hishinuma_t 遅延評価っていうと並行処理の方をイメージしがちじゃない(´・ω・`)? https://t.co/7RjER5foCb」 / Twitter
- launch - cpprefjp C++日本語リファレンス
- 電子計算機の沼さんはTwitterを使っています: 「@termoshtt @qtker あーーー...うーん... なるほど現代.たしかに現代はそうかもしれない. Eigenもublasも遅延評価と呼んでて,僕の現代はそこで止まっていた」 / Twitter
- ノーンさんはTwitterを使っています: 「@termoshtt Define and Run ......? https://t.co/VK3oVioB9a」 / Twitter
- まっくすさんはTwitterを使っています: 「(2/3) https://t.co/9Js7bSaUoW」 / Twitter
- てらモス♋️さんはTwitterを使っています: 「@nkowne63 なるほど確かにそれは意図が明確(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています: 「@Hishinuma_t @qtker 現代情報です(´・ω・`) https://t.co/xGh7t6nnJm」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「@termoshtt @qtker あー、、、、 あーー、、、? うーん。まぁ、なるほど、、、」 / Twitter
JIT
その他
- GDB JIT Interface · v8/v8 Wiki
- 早稲田大学リポジトリ
- Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
- esbasic0011 - essen-wiki
- SML#でJITコンパイラを作る軽い話 | κeenのHappy Hacκing Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「わずか100行程度のCで書ける超簡易JITコンパイラ入門。まずマンデルブロー集合を計算する簡易言語を設計し、単純なx86アセンブラも実装する。あとはmmap()でPROT_EXECした領域にコードを書きこんで呼び出せばおしまい。 https://t.co/YRK5NShMn7」 / Twitter
- spencertipping/jit-tutorial: How to write a very simple JIT compiler
- Miura HidekiさんはTwitterを使っています 「そういればLinuxとUNIXを厳密に区別するくらい言葉に厳密な人たちが、JITコンパイラという意味でJITと表記しても何も文句を言わないのだろう?」 / Twitter
- Tadachika OkiさんはTwitterを使っています 「@miura1729 関心について、 OS の方がコンパイラより強く、概念に対する解像度が異なるということではないでしょうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@salmoncrawler 多分そう言う話だと思います。正確にはOSの方がコンパイラより概念に対する解像度の高い人が多いと言うことですね」 / Twitter
- UNIXシェルの並列化により最大34倍高速化する「PaSh」、米MITなどが開発 プログラム結果も正確:Innovative Tech - ITmedia NEWS
- Caches and Self Modifying Code - Architectures and Processors blog - Arm Community blogs - Arm Community
JIT 無効化
- MicrosoftがEdgeでJITを無効化し安全なブラウジングができる「Super Duper Secure Mode」をテスト - GIGAZINE
- 一ノ瀬 いろはさんはTwitterを使っています 「JavaScript の JIT (V8 実装に限らず)はバグが多い割に速度上のメリットも少なくなってきたので無効化しても問題ないんじゃね?と言う所か。」 / Twitter
- Andreas KlingさんはTwitterを使っています 「Microsoft Edge is experimenting with disabling the JavaScript JIT in order to greatly improve browser security. I am 100% in favor of this. As fun as it is to compete on benchmarks, end user benefit has hit diminishing returns a long time ago IMO. https://t.co/ix1nC9Yq4l」 / Twitter
- Super Duper Secure Mode | Microsoft Browser Vulnerability Research
- 一ノ瀬 いろはさんはTwitterを使っています 「JIT が複雑で実装が難しいと言うのは当初PHP7で実装される予定だった物がPHP8に持ち越された事を考えてもある程度想定出来る。 以前はそれでもメリットの方が大きかったんだろうけれど。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「JITがUnsecureになりうるのは、Optimize JITのデバッグが大変辛いという話なので、それはWASMであってもOptimize JITが実行されれば、同じ理論が発生するだろうし、InterpreterやTemplate JIT (Baseline JIT)みたいなデバッグしやすいものよりも安全ではないというだけの話としか」 / Twitter
- Microsoft Edgeに“スーパースゴイ”セキュリティモード - PC Watch
- JavaScript性能低下よりも大事なEdgeの新セキュリティ機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
V8
- Miura HidekiさんはTwitterを使っています 「https://t.co/OMwoQQE6Gk mrubyのJITにそっくりな位置づけのコンパイラ。のぞき穴最適化しかできないと書いてあるけど、一応基本ブロック内で型情報を渡して自明なガードを削除するとかはできますよ。」 / Twitter
- Sparkplug — a non-optimizing JavaScript compiler · V8
- Short builtin calls · V8
- Super fast super property access · V8
- Faster JavaScript calls · V8
- Slack tracking in V8 · V8
- Faster initialization of instances with new class features · V8
- Discontinuing release blog posts · V8
- V8は、パフォーマンスを向上させるために最適化しないコンパイラステージを導入
PyPy
Tracing JIT
型アノテーション
- アノテーション - Wikipedia
- 26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント
- Pythonの関数アノテーションと型ヒント、typingモジュール | note.nkmk.me
- Pythonではじまる、型のある世界 - Qiita
- Python の型アノテーションと ast モジュールで, python コードから C/C++ コード生成に思いを馳せる - Qiita
- Python と型アノテーション
- 型アノテーション · GitBook
- PythonのTypeHints ~型アノテーション~ - Tocyukiのブログ
- Pythonと型 〜 Docstring、関数アノテーション、型推論 〜 - Blank File
- [翻訳] PEP 0484 -- 型ヒント (Type Hints) - Qiita
- RPython 型付け器 — pypyja 1.7 documentation
- PyPy - RPython toolchain — PyPy 1.6 documentation
- トレーシング実行時コンパイル - Wikipedia
- Tracing just-in-time compilation - Wikipedia
- PyPy Status Blog JA: 部分評価とトレーシングの比較 Part 1
- PyPy Status Blog JA: FlowGraph 言語のための単純なトレーサ
- PyPy Status Blog JA: FlowGraph 言語のトレースの最適化
- より大きなフローグラフ言語の例
- web.archive.org/web/20130122090621/http://www.longsleeper.com/
- Wayback Machine
- #3 PyPyについての講演,ハンズオン,スプリント:そうだ! EuroPython 2011へ行こう|gihyo.jp … 技術評論社
- Tracing the Meta-levelとは?PyPyのJITコンパイラについて - TECH-MICCHON.jar
- 流行りのJITコンパイラは嫌いですか? — PyPy Advent Calendar 2011 v1.0 documentation
- 言語のJITコンパイラをその言語自身で作る事の意義とは - Togetterまとめ
- どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
- Tracing_JITs11_tracing_the_meta_level.pdf
- The Essence of Meta-Tracing JIT Compilers.pdf
- BoCuFiRi09_246.pdf
- Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation
- Tracing the meta-level: PyPy's tracing JIT compiler | Request PDF
- Runtime feedback in a meta-tracing JIT for efficient dynamic languages | Request PDF
- Trace-based just-in-time compiler for Haskell with RPython
- pycket-draft.pdf
- 34
RPython
- Frequently Asked Questions — RPython Documentation
- Getting Started with RPython — RPython Documentation
- Welcome to RPython’s documentation! — RPython Documentation
- rpython 0.1.4 : Python Package Index
- PyPy - RPython toolchain — pypyja 1.7 documentation
- PyPy - RPython toolchain — PyPy 1.6 documentation
- Building An Interpreter In RPython - PyCon Japan 2016 // Speaker Deck
- Pyrlang: RPythonを用いた高性能仮想機械 – 増原英彦研究室
- PyPyの基礎知識まとめ その1 - Qiita
- RPythonの情報とRPythonで実装されている言語処理系 - rokujyouhitoma's blog
- RPythonToolChainでOok!を実装した時のノウハウ紹介。PyPy Advent Calendar 2011 7日目 - rokujyouhitoma's blog
- Shibu's Diary: PyPyよりも5倍高速な最速のPython処理系
- RPythonで書かれたRuby処理系Topazで遊ぶ
- RPythonについて軽く | κeenのHappy Hacκing Blog
- Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
- Hideyuki TanakaさんはTwitterを使っています: 「なるほどMesaPy(´・_・`) / 2件のコメント https://t.co/40dKogXBMU “GitHub - mesalock-linux/mesapy: A Fast and Safe Python based on PyPy” (11 users) https://t.co/itU9MPPTVE」 / Twitter
- mesalock-linux/mesapy: A Fast and Safe Python based on PyPy
- Hideyuki TanakaさんはTwitterを使っています: 「RPythonのCの部分はFormal Verificationして、外部ライブラリはRustのものに置き換えてメモリ安全という話なの(´・_・`)」 / Twitter
- RPythonについて軽く | κeenのHappy Hacκing Blog
continulet
- 覚え書き: Pausable Unittest その1 (continulet と tasklet)
- アプリケーションレベルのスタックレス機能 — pypyja 1.7 documentation
- Emerge Technology: pypyのスレッドとかgreenletとか何か
OSDN
- Python処理系「PyPy 4.0」リリース、起動時間を大きく改善 | OSDN Magazine
- 「PyPy 5.0」リリース、起動時間やメモリ使用量の短縮が行われる | OSDN Magazine
- Python実行環境「PyPy 5.1」公開、ウォームアップ時間やメモリ要求をさらに強化 | OSDN Magazine
- 「PyPy2.7 v5.6」リリース | OSDN Magazine
- 「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
- 「PyPy 7.0」リリース、アルファ段階の機能としてPython 3.6対応を追加 | OSDN Magazine
- aarch64に対応した「PyPy 7.2」が公開 | OSDN Magazine
- PyPy - Wikipedia
- PyPy Advent Calendar 2011 6日目 Frequently Asked Questions - YAMAGUCHI::weblog
- ryu22eBlog跡地:第八回ありえるえりあ勉強会 ~PyPyのキホンの気 に参加しました #arielarea
- PyPy 紹介
- 次世代言語 Python による PyPy を使った次世代の処理系開発
- PyPy開発へようこそ — pypyja 1.7 documentation
- Coding Guide — PyPy documentation
- PyPyのPyObjectの実装が謎い - Togetterまとめ
- PyPyの論文つぶやき - Togetterまとめ
- Python を速くする取り組み - methaneのブログ
- PyPyがCより速いケース - karasuyamatenguの日記
- PyPy 4.0登場 - SIMDベクトル化機能付きJIT搭載 | マイナビニュース
- PyPy 5.0登場 - 起動処理が30%高速化 | マイナビニュース
- さらに高速化、PyPy 5.1登場 | マイナビニュース
- PyPy ソースコードリーディング事始め - プログラマのネタ帳
- PyPy Advent Calendar 15日目 - 低レベルっぽいことをやってみる - プログラマのネタ帳
- PyPy Status Blog: PyPy JIT for Aarch64
- Miura HidekiさんはTwitterを使っています 「インタープリタをコンパイラに変換する射影は、例えばインタープリタの実行コードをそのままコピーするとかで比較的簡単に出来ると思う。もちろんそれで例えばインタープリタに勝てるくらいの効率のいいものとなると難しいわけで、つまりpypyはすごい」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「インタプリタがあればコンパイラが生成できるし、なんとなれば「インタプリタを与えるとコンパイラを出力するプログラム」も生成できる二村射影って凄い発明。(ただし部分計算系αの構築は激ムズ)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンパイラを作ったことの無い人は信じられないかもしれませんが、カリカリにチューンされたインタープリタに勝てるコンパイラを書くのは結構大変なことです」 / Twitter
バイトコード
- Miura HidekiさんはTwitterを使っています 「会議で夕飯が遅れたので夕飯食べていました。これからその詳細を話したいと思います。もちろん、これは会議中に思いつきました 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「バイトコードインタープリタでも使えそうなくらい高速な気がするデータフロー解析が出来るバイトコードの表現方法を思いついた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「バイトコードの表現を オペコードの配列(これは普通のバイトコード命令列と同じですね)とオペランドのビットマップ配列に分けます。オペコードの配列は今までの通りです。 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「とりあえずバイトコードを64bit(じゃなくてもいいけどこの辺があつかいやすいでしょ)単位に分けます。オペランドについてはソースとディスティネーションに分けられるかと思います。 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ソースとディストネーションについて64命令をひと単位にしてその命令に当たる位置で使われていたら1を立たせるようなビットマップを用意します。 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「前ツイートのビットマップは全レジスタについて用意します。最初に説明したオペコードの配列とこのオペランドのビットマップ配列でバイトコード命令列を表現します。 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「賢明なフォロワーさんにはオペランドが命令列を串刺ししたビット列になっていることから命令間の生存情報とかがビット演算で表現できるのでは?って思われると思います。しかし、これだけでは私の貧弱なビット演算能力では不十分なので、このビット演算をリバースした配列も用意します。 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「たとえば今解釈しているアドレスpが設定しているr3がどの命令列まで有効か知りたいとします。続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「この場合、r3のビットマップb1(下位ビットが若いアドレス)があったとして、b1 ^(b1 - (1 << p))とすることで今の命令で設定したr3の範囲に1が立つことになります」 / Twitter
- Miura HidekiさんはTwitterを使っています 「こうしてできたマスクビットはソースとandとって使用箇所を得たりと色々使うことが出来ます。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まだいろいろ書けますけど、9時もすぎて眠いので気が向いたら明日書くかもしれませんし、書かないかもしれないです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「図で書いた方がわかりやすそうなのでここに書いていきます。随時更新予定 https://t.co/Gz3TDnOpId」 / Twitter
- meirei - Google スライド
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 図の1枚目ですが、SRCのR1とR2の下(右)3桁はそれぞれ010,100じゃないかと思うのですが、どうでしょう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo はい、その通りです。 2行目をR2 → R1と勘違いしていました。ありがとうございます」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo 早速直しておきました」 / Twitter
- バイトコード - Wikipedia
- Javaバイトコード - Wikipedia
- プログラミング言語を作る/静的・バイトコード実行型言語を作る
- 簡易スタック型VM(バイトコードインタプリタ)でのフィボナッチ数計算速度 - sileのブログ
- Rubyist Magazine - YARV Maniacs 【第 2 回】 VM ってなんだろう
- チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (2/2) - @IT
- Javaバイトコードの読み方 - わらばんし仄聞記
- Java VMとバイトコードとマイコンの親和性は良好? - Lynx-EyEDの電音鍵盤 新館
YJIT
- 「Ruby 3.1.0」がリリース ~プロセス内JITコンパイラー「YJIT」をマージ - 窓の杜
- Ruby 3.1正式リリース。Shopify開発のJITコンパイラ「YJIT」をメインラインにマージ - Publickey
- Ruby 3.1.2 with YJIT vs Ruby 3.2.0-dev with YJIT - くりにっき
- Miura HidekiさんはTwitterを使っています 「今考えている高速インタープリタ、yjitの位置に乗っけられるのでは?と考えてyjitを読んでいた。少しyjitが理解出来た」 / Twitter
- Miura HidekiさんはTwitterを使っています 「yjit完全に理解した (大ウソ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、あるコンパイルされたコードで型が決まっているかいないかでバージョン分けして、もっともスコアの高いコードを選択する部分はなるほどーって思った。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あと、ヒープに乗っけているのか、ポインタに組み込まれた即値なのかで分けるのも、なるほどー。こうすればガードのコードが簡単になる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「今考えているプログラムは、スタックの上に乗ったオブジェクトも考えているけどこのblock versionの考え方の延長線できれいに出来そう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「yjitのおかげで進むべき道が見えてきた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「こんな感じだろう yjitとよく似たアプローチだがyjitに比べて最適化をリッチに行う。もちろん、スタートアップが遅くなるなど弊害があるがそれは0にはできないが軽減出来る方策を取る。そして、最適化のための主な武器はもちろん抽象解釈」 / Twitter
- FadisさんはTwitterを使っています 「copyright trollならぬcopyleft trollの台頭についての論文。Creative Commonsが正しく理解されないまま広く適用されているのを利用して、CC-BY-SAで配布した写真が不正確なライセンス表示で再利用されているのを見つけて訴訟をふっかける https://t.co/cT29c0BjDQ」 / Twitter
- Rise of the Copyleft Trolls: When Photographers Sue After Creative Commons Licenses Go Awry by Daxton Stewart :: SSRN
- FadisさんはTwitterを使っています 「古いCCはライセンス違反は直ちにライセンスの失効となっており、表示ミスは写真を無断で使った状態になる。これによるトラブルを避けるためにCC 4.0からはライセンス違反の指摘からそれを解消するまでの猶予期間が定められたが、copyleft trollは意図的に古いCCを使うことで直ちに訴えられるようにする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「最適化を速度向上するためにバイトコードの情報のビットマップ化を利用する。基本的な考え方は https://t.co/9R3BRLd245 ただし、YARVはバイトコードだからバイトコードに合う形に変える必要がある」 / Twitter
- meirei - Google スライド
- Miura HidekiさんはTwitterを使っています 「yjitと違い抽象解釈で解析すれば型が厳密に決まる可能性が高いことが期待できる。これによるガード軽減がどのくらい効果があるか興味がある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「さらに完全な型解析が可能になった先にはエスケープ解析によるスタック割り付けが見えてくる。これが可能になると2桁倍の速度向上が期待できる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そんな感じのロードマップ。想像するのはタダですわね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あ、もちろんoptcarrotでキャキャウフフするのが一番の目的です」 / Twitter
- Miura HidekiさんはTwitterを使っています 「バイトコード × スタックマシン ○」 / Twitter
- ワナベ(wanabe)さんはTwitterを使っています 「yjit についてメモ書き https://t.co/vWQRfM42MQ だんだん手抜きでコード引用だけになってきたので終了しました。概形とか気になっていたところはなんとなくわかった気になった気がするようなきざしを感じなくもないので、まあいいんじゃないかと思います。メモ書きでなくまともな文章にしたい」 / Twitter
- gist:3ef8747868ac126c30f94888425eb56d
- YJIT コードリーディング - Google スライド
- Ruby が YJIT でなんで速くなるのか? Lazy Basic Block Versioning をサクッと理解してみた - estie inside blog
- Alan Wu氏「YJITはRubyプロセス実行から終了まで全体のパフォーマンス向上を目指す」 ~RubyKaigi 2022 3日目キーノート | gihyo.jp
- Ufuk's explanation of Ruby 3.2 achievements by Shopify
- WebAssembly版Rubyが正式に登場、YJITが実用段階に。「Ruby 3.2.0」正式リリース - Publickey
- 「Ruby 3.2.0」が正式リリース ~WebAssembly/WASIをサポート、YJITは試験扱いを卒業 - 窓の杜
Tracing JIT
- Miura HidekiさんはTwitterを使っています: 「関口宏「JITコンパイラに興味があるのですね」 わい「はい」 関口宏「Tracing JITにも詳しい?」 わい「そうですね、LuaJITとか…」 関口宏・渡辺正行「LuaJIT!」 わい「!?」 関口宏「Tracing JITを用いた処理系を”LuaJIT”以外で5つ答えよ」 渡辺正行「走って!」」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「pypy, TraceMonkey あと私が作ったmrubyのJITくらいしか思いつきません...」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています: 「@miura1729 Wikipedia を覗いてみると、後は SPUR (https://t.co/YdoPKZedd5 ) 位しか出てこないスねえ。 # そういえば #Haskell で tracing JIT やったら上手くいかなんだみたいなのはあったなあ https://t.co/eLhfytX5eU とか https://t.co/mDSZLKb7DR とか」 / Twitter
- SPUR: A Trace-Based JIT Compiler for CIL - Microsoft Research
- tracing-jit-haskell-schilling.pdf
- thomasschilling.pdf
- Miura HidekiさんはTwitterを使っています: 「@objectxplosive MS Researchもやっていたんですね。MS Research、地道に基礎研究をやっていて、金儲けに慢心していたころのMSを考えるととても信じられない」 / Twitter
メソッド・キャッシュ
- メソッド実行結果をキャッシュする - うなの日記
- rubyのメソッドをキャッシュするコードです。詳細はブログで紹介してます。 http://ameblo.jp/syou007/entry-11468918541.html
- インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
- The Story of Method Lookup - Qiita
- 第15章 メソッド
- API キャッシュを有効にして応答性を強化する - Amazon API Gateway
チューニング(キャッシュ)
- herumiさんのツイート: "https://t.co/ge6QtuNysQ MKL-DNNはそのあたり(キャッシュサイズを見て実行時コード生成のパラメータを変える)のことをやってるようです。 https://t.co/gLmXqSEPfS ただcpuidはAWSなどのVM環境(のせい?)では結構適当な値が返ることがあるようでときどきトラブってます。 https://t.co/TV80bXyBnK"
- yohさんのツイート: "正直 キャッシュ階層とかメニーコアNUMA構成を活用した"最適"性能チューニングを考え出すと 髪の毛が何本あっても足りないので お近づきになりたくはない領域..."
- yohさんのツイート: "#nakamecpp L1$ラインサイズの話題ででてきた L3$による性能ペナルティの話 https://t.co/kzY6aSdzeP このあたりで図解されてて面白いかも x86だとCPUID命令で情報とれるやつ→ https://t.co/wDDyMZn1Lb"
- Gallery of Processor Cache Effects
- The CPUID Explorer: Part 2
- yohさんのツイート: "#nakamecpp で指摘のあった「既存std::lock_guardを複数Mutex対応しないの?」 https://t.co/BOtardjiuQ 当初提案ではまさにその通りで、ABIを壊すからscoped_lockとして新規導入したよとのことでした。ちゃんと書いてありましたね m(_ _;m)"
- Variadic lock_guard (Rev. 2)
- nakameguro_feature.cpp vol.8
- docs/nakamecpp8_20180913.pdf at master · yohhoy/docs
- mkl-dnn/jit_avx512_core_fp32_wino_conv_2x3.cpp at 19588d1484911a3dc7933b32ce71d2f1b9bbbb78 · intel/mkl-dnn
- Prevent cores_sharing_data_cache being zero on Intel Xeon E5 v2 by playertwo · Pull Request #67 · herumi/xbyak
C3線形化
- The History of Python.jp: メソッド解決順序(MRO)
- よくわからないので実装して理解するRubyのメソッド解決順序 - Qiita
Threaded code
- スレッデッドコード - Wikipedia
- Threaded code - Wikipedia
- 第一級ラベルを持たない言語におけるDirect Threaded VMの実装 | κeenのHappy Hacκing Blog
- Rubyist Magazine - YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
- direct threaded code - imHo
- Direct Threaded Code
- Threaded Code - moiの頭の中
- 楓 software: direct threaded code
- ICFP Programming Contest 2006 “The Cult of Bound Variable” に挑戦してみる | 雑記帳
- Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals
computed goto
トランポリン
trampfd
- FadisさんはTwitterを使っています 「libffi等の厄介な関数呼び出しをするソフトウェアは実行時に関数呼び出しを変換するトランポリンを作るが、トランポリンはexecutableかつwritableなページを要する為、攻撃者に絶好の任意のコード置き場を与える。そこでLinuxに新機能trampfdが提案されている https://t.co/iG7mBWegnU」 / Twitter
- Microsoft Engineer Proposes "TRAMPFD" For Improving Linux Security - Phoronix
- FadisさんはTwitterを使っています 「trampfdは「レジスタを書き換えスタックに何か積んで飛び先に飛ぶ」トランポリンをカーネルに作らせる。trampfdを作成し、レジスタとスタックの操作と飛び先を設定し、mmapして割り当てられた領域にジャンプすると、レジスタとスタックの操作が行われ、飛び先に飛ぶ。この領域への書き込みは禁止される」 / Twitter
- トランポリン - 兼雑記
- 独自CPU開発で学ぶコンピュータのしくみ - 伊藤剛浩, 川田裕貴 - Google ブックス
- アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
- セキュアなプログラマー: バッファー・オーバーフローに対抗する
- GHCのバックエンドについて | 雑記帳
- mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
- mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLのJavaScriptバックエンドに、トランポリンによるTCOを実装したぞい」 / Twitter
- LunarML進捗・2022年4月 | 雑記帳
- An argument against call/cc
- DSAS開発者の部屋:インタプリタ型言語を高速化する computed goto
- computed goto - MEMO:はてな支店
- Goto - Wikipedia
- Labels as Values (Using the GNU Compiler Collection (GCC))
- κeenさんはTwitterを使っています 「インタプリタを作るときのテクニックにVM化とかThreaded VM(computed goto)とかDirect Threaded VMとか色々あるんだけど、gotoが使えないRustでどこまで工夫できるか調べた記事。 Virtual Machine Dispatch Experiments in Rust https://t.co/lcMT86LsHw」 / Twitter
- Peter Liniker by pliniker
- κeenさんはTwitterを使っています 「それに関する反応も面白い。LLVMがloop {match{}}でほぼThreaded VMと同等のコードを吐いてくれるらしい。 Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals https://t.co/LqpX5skeCI」 / Twitter
- Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals
- mod_poppoさんはTwitterを使っています 「GCC拡張のcomputed goto, GCCは同じ関数内に&&labelがなくても通るけどClangは何らかの&&labelがないと通らない」 / Twitter
- GHCのバックエンドについて | 雑記帳
VM
- vmgen で簡単なレジスタベースの VM を作る(1/2) - Qiita
- vmgen で簡単なレジスタベースの VM を作る(2/2) - Qiita
- VMの本を見てみた: なつたん
- Dalvik仮想マシンのアーキテクチャ
- Software Basic
- Java SE Specifications
- Java仮想マシン - Wikipedia
- Java仮想マシントリビア - JVM仕様のベリファイアの説明がPrologで書かれている! - Qiita
- JVMの中身を可視化してみた
- JVMのメモ | Java好き
- Kazuho Okuさんのツイート: "何度でも言うけど this[n] って C++ だと合法的なテクニックだし実際に使われるから! 僕のMacBookの中にあるコードを検索するだけでも用例が見つかる。ちなみにこれは JavaScirptCore(SafariのJS実装)の CallFrame.h https://t.co/toppExfr7t"
- Kazuho Okuさんのツイート: "メモリ上に連続に一次元として配置されるオブジェクトかつ隣接するものの参照が必要になる場合に有用なテクニックであることを考えると、言語処理系以外にエディタの文字処理(バリアントセレクタ)とかでも使ってそう"
- Kazuho Okuさんのツイート: "なんでこれが良いか解説すると、言語処理系のVMスタック上の値はそれぞれ異なる型をもつ(例:呼出フレーム、リターンアドレス、引数)ので、たとえば呼出フレームからリターンアドレスを参照するのは this[OFFSET_OF_RETURN_ADDR_FROM_FRAME] になる"
- Kazuho Okuさんのツイート: "スタックフレーム上の各値をそれぞれ異なる「正しい型」で表現しているから、コーディングミスを抑制することができるわけで、良いコーディングパターンなわけです。もちろんコンストラクタの呼出をprivateにしたり、サブクラスでメンバ変数の追加を禁止するなどの前提があるけど"
- Kazuho Okuさんのツイート: "他の用例としては MySQL のクエリプラン構築コードに this[-1].next_select = sub_select_op; ってのがある。jon用のクエリプラン生成時に、直前の命令の属性を書き換えてる感じなのかな"
- Kazuho Okuさんのツイート: "まあ正直mysqlのコードはアドホックなところが割とあるのでアレだけど"
- Kazuho Okuさんのツイート: "クラスファイル内のLineNumberTable削除してから比較すればコメントやインデント変更の影響を検知することはなくなると思うけど、それが簡単にできるツールないのかしら / “Javaのリファクタリングした際にclassファ…” https://t.co/7hvYnGXD9u"
- Javaのリファクタリングした際にclassファイルの差分比較をしてテスト要否を判断したい - Qiita
- [調査]JVMのスタックサイズについて - Akira's Tech Notes
- 眼力 玉壱號さんのツイート: "JVM、中に interpreter 持ってるけど、byte code 解釈する部分は立ち上がりの時点で template の穴埋めして動的生成していたりもする cf. https://t.co/LFbIMbouhG… "
- openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html#Interpreter|outline
- 今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Future
- Javaは今も無償です - Google ドキュメント
- YARV命令ごとの実行コストを知るには - なるせにっき
- JVMことはじめ その1: クラスファイル - Qiita
- report.pdf
- Nextcloud
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「Pharoのツヨツヨ兄ちゃんがSlang(Smalltalk VMを記述している、CにトランスレートされるSmalltalkサブセット)でのVMプログラミングについて「2つの異なる意味論を持つ言語の両方でたまたま同じ動作をするソースコードを書くというパズル」と言っていたのを思い出した。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「分かる気がする。確かにそんな感じ。私の場合はソース言語のサブセットではなく、内部構造(ASTや型情報)からターゲット言語(C)の変換メソッドだけど」 / Twitter
スライド
Sea of Nodes
- TurboFan TechTalk presentation - Google スライド
- Semantic reasoning about the sea of nodes | Proceedings of the 27th International Conference on Compiler Construction
- Java仮想マシンの実装技術
- 静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
- mrubyのJIT
- V6でJIT・部分適用・継続
- object-shapes
- Meetup#31 - Google スライド
- 機械語で書くRuby処理系 - Google スライド
- Towards Ruby 4 JIT / RubyKaigi 2022 - Speaker Deck
- YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022 - Speaker Deck
- prosym64: Rubyの高速なインタプリタ及び実行時コンパイラの開発 - Google スライド
- kernelvm6: 機械語で書くRuby処理系のその後 - Google スライド
blog
- Scheme インタプリタにおける仮想マシンアーキテクチャの最適化
- Gauche:VMの最適化:JIT:予備実験
- DSAS開発者の部屋:最近のPython-dev(2017-04)
- won't fix: JIT platform by major browser vendor (Feb 2013)
- 米国から見た日本のRuby事情(翻訳)
- VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話 - k0kubun's blog
- CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
- ヒープメモリに実行権限を与える件 - syuu1228's blog
- LL Future, tracing jit, IBM Java Just-in-Time Compiler - NyaRuRuが地球にいたころ
- Binary Size, Partial Memory Mapped File, Just In Time Compile, Latency and Throughput - NyaRuRuが地球にいたころ
- JIT コンパイラの Dead Code Elimination を利用して,同一の CIL から複数の実装を生成する - NyaRuRuが地球にいたころ
- Kazuho Okuさんのツイート: "局所性が悪い(TLB miss)というよりcache line collisionじゃないのかな / “RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog” https://t.co/DFVdPtX0Cc"
- RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
- YJIT: CRuby向けの新しいJITコンパイラを構築する(翻訳)|TechRacho by BPS株式会社
- JITあれこれ | κeenのHappy Hacκing Blog
- 自作JavaScriptエンジンの進捗 - uint256_t's blog
- 論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
- code bloat - Google 検索
- JITコンパイル時の関数呼び出しの扱い方 - 茅の下
- melancholic afternoon
- melancholic afternoon
- https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
- v8 "Launching ignition and Turbofan" 和訳 - kakts-log
- How JIT Compilers are Implemented and Fast: Pypy, LuaJIT, Graal and More | Carol's Blog
- Project Zero: JITSploitation I: A JIT Bug
- Project Zero: JITSploitation II: Getting Read/Write
- Project Zero: JITSploitation III: Subverting Control Flow
- The MIR C interpreter and Just-in-Time (JIT) compiler - Red Hat Developer
- 眼力 玉壱號さんはTwitterを使っています 「https://t.co/SPvtlNiWb3 Modern JS engine が何をしているか、低い startup cost、高い実効性能をどうやって実現しようとしているかを一望出来るこの blog entry は一読の価値がある。 # 高性能 JIT engine はこの entry に出て来る様な事を大体実装してる…膨大な engineering resource を費やして」 / Twitter
- Speculation in JavaScriptCore | WebKit
- 眼力 玉壱號さんはTwitterを使っています 「@tanakh 長い時間回る様な奴でないと startup cost が高いのでねえ > JIT # その辺りのバランスを何とかすべく各社鎬を削ってたので、dynamic typed language の JIT に関する知見が溜まったとも言えるのだけど」 / Twitter
- Documentation · V8
- Sparkplug — a non-optimizing JavaScript compiler · V8
- AArch64でJITしてみる | 雑記帳
- Universal MachineのJITコンパイラーを書いた | 雑記帳
- ICFP Programming Content 2006: ADVENTURE | 雑記帳
- ICFP Programming Contest 2006進捗 | 雑記帳
- 累積レジスタマシンで命令単位JITコンパイラの夢を見る - 一人一党党
- JavaScript で CPU が Intel かどうかを判定する(ついでに JIT を検知する)
infoQ
- Lua: 組込みスクリプトエンジン、新しい高性能VMを搭載したLuaJIT 2.0
- Javaの新JITコンパイラ、Graalを解説
- Safari、新しい低レベルコンパイラB3 JIT導入 | TECH+
- WebKitがWebAssemblyを完全にサポートした
- AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
- Unladen Swallow 回顧録 - YAMAGUCHI::weblog
- Introducing the B3 JIT Compiler | WebKit
- AzulがJavaクラウドコンパイラを起動
Qiita
- LuaJIT 解析 - Qiita
- かRuby 2.6のJITで実装か検討を行なった最適化集 - Qiita
- Kinx での JIT、そして MIR の話 ... Ruby だけでは勿体ないネ - Qiita
- Ruby 3.1でJITを有効化したときにRailsアプリケーションは速くなるのか - Qiita
- JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
POSTD
- JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
- JITコンパイルでの冒険 パート2:x64 JIT | コンピュータサイエンス | POSTD
GitHub
rhizome
- Miura HidekiさんはTwitterを使っています 「これはすごい。ひょっとしたら、最高のJITコンパイラの教科書なのでは? https://t.co/6fDaUuHwRN」 / Twitter
- chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby
- Jay Kumogata🔢さんはTwitterを使っています 「そんなことできるんだ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@jay_kumogata はい、RubyでRubyのJITコンパイラを書くことは可能です。すごく簡単なものですが、私も書いたことがあります。 https://t.co/yASTkcD6S8」 / Twitter
- どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 処理系標準機能でその処理系のJITコンパイラを書けるようにした場合、ユーザコードが適当なバイナリ作って呼び出すってこともできちゃうんだけど、あんまり気軽に触って欲しくないと時にうまく権限管理する定番ってありますかね。外部ライブラリリンク可能なら結局何でもできるからみんな気にしてない?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata FFI(JNI)を禁止するのは大前提として、JVMのJava bytecode verifierが一番の定番じゃないかと思います。ちょっと保守的でしょうからもう少し自由があり得るかもしれませんが」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata なるほど、しかしverifierまでやるのはネイティブコード対象だとちと手間がかかりますね。完全なsandboxを提供したいわけじゃなくて、内部状態をぶっ壊しちゃうコードをうっかり書いちゃうのを防ぎたいって思うんですが、徹底しないとあんまり意味が無いのかなあ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata ネイティブコード対象だとあるバイトコードをどういうコードに落とすかは任意なのであまり意味がない気がします。バイトコードで悪意を持ってバッファオーバフロー攻撃とかを防ぐにはverifierは必要な気がします。うっかりだとどうなんでしょうかね? 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata 自明に無限ループになりえる条件さえ検出できれば(完全にやるのは不可能ですが)何とかなる気もします。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 心配してるのは、JIT用内部ルーチンのネイティブコード組み立て→実行可能ページに置いてcall、というのがユーザから気軽に呼べちゃうと、ちょっとでもミスるとABI守らずにスタック壊したりヒープ壊したりしちゃうコードが実行できちゃうなあ、というとこなんですよね。安全マットが欲しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata なるほど。実行可能ページのアクセスを許した時点でJITとか関係なくまずい気がします。悪意が無い場合だとどうなるんだろう?決められたAPI経由(Xbyakみたいな感じ)でしか機械語命令を書き込めなくてその時点でVerifilerが動くという仕組みにすればよいのかな?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata リフレクションのある言語だと内部的に使ってるルーチンが呼べちゃったりするので、処理系内部で権限管理してユーザからの直接呼び出しを禁止するとかかなあ。Gaucheで試してるFFIは動的コード生成があるんですが、実行可能ページへのネイティブコード書き込みやジャンプ、というユーティリティ→」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata にはアクセスさせたくないので、「初期化時のみ束縛が存在→内部ルーチンは定義時に束縛をクロージャ内に取り込む→初期化ルーチンの最後で危ないユーティリティへの束縛を消す」というのをやってみてはいるんですが。他の処理系で何かやってるのかなあと。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata これはエレガントですね。この手の危ない機構は公開されないのかもしれないですね。例は全く知らないです。」 / Twitter
- Morgan-Stanley/hobbes: A language and an embedded JIT compiler
- k0kubun/llrb: LLVM-based JIT Compiler for Ruby
- Links.md
- vnmakarov/mir: A light-weight JIT compiler based on MIR (Medium Internal Representation)
- runtime/docs/design/coreclr/jit at master · dotnet/runtime
Twitter
その他
CacheIR
- ドッグさんはTwitterを使っています 「Firefox の JIT コンパイラが大きく改善されたらしい.昨年開発された Baseline コンパイラの inline cache を利用することで型情報を削減し,多くのサイトで 5-15% の高速化.Nightly で試せる | 'Dogfooding Warp' https://t.co/fUjJa0ra43」 / Twitter
- ドッグさんはTwitterを使っています 「Firefox のインラインキャッシュ CacheIR について: https://t.co/EaAh7b4k04」 / Twitter
- CacheIR: A new approach to Inline Caching in Firefox
- ドッグさんはTwitterを使っています 「s/多くのサイトで/多くのメトリクステストで/」 / Twitter
smi
- R. ShioyaさんはTwitterを使っています 「v8 の JIT トレース見てたらたまに型の一貫性がとれなくなったとかで deopt が起きてて不思議だったのだけど,どうも整数が31ビット範囲を超えると内部的に倍精度型に型が切り替わるのでそのあおりをくらって構造体全体やそれを見てる関数の最適化コードが根こそぎ破壊されてたと言うことがわかった」 / Twitter
- R. ShioyaさんはTwitterを使っています 「これ,メンバが必要とする値の範囲の変化に応じて動的に構造体の再構築と関連する部分の再コンパイルをしてるわけで,そう思うと結構すごいことやってるなと思う.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 最初から8byte確保して、適応的にint64 or double切り替えとかではダメなんですかね、、、」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu smi (small integer) というのが定義されていて,union 的にポインタに埋め込む感じの実装になっているからのようです.31 ビットなのは互換性のためらしく,64bit アーキなら本来は 63? ビットまではいける気もします. https://t.co/j9PLf2ntEC https://t.co/3RDJOsANt5 https://t.co/EovPvfPhXK」 / Twitter
- Elements kinds in V8 · V8
- V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
- V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど。 64bitだと63bitまで行けるにしても、int -> double についてはサイズだけでなく、ポインタ埋め込みから、ヒープ確保なdoubleオブジェクトに変わる感じなのですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まあこの辺はmrubyのJITでもやっているからこの手のJITコンパイラでは普通かと。mrubyのJITはコードを破壊するコードを使わなくなったメソッドのコード跡に置いておくって方法」 / Twitter
部分評価
- Shuhei KadowakiさんはTwitterを使っています 「Dartの話がめちゃくちゃ魅力的。AOTとJITの良い部分を使い分けられたらいろいろな楽しいことできるよね。開発の柔軟性とリリースでのパフォーマンス両立できるとかめちゃくちゃいい。 #camphor_day」 / Twitter
- Miura HidekiさんはTwitterを使っています 「どういう話か気になる。Rubyの究極のコンパイラはAOTで徹底的に解析さえれた後、プログラムコードと共にそのプログラムにカスタマイズされたJITもAOTのコンパイル時に生成する形だろうなって今の所思っている。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 部分評価を取り入れた感じですね。わかります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@zacky1972 なるほど、そう言う考え方も出来ますね。コンパイラのサブセットなどをランタイムの一環として持つみたいなイメージでいました。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 Pelemayでも近々同様の仕組みは必要だと見越しています。できるだけAOTで生成し、プロファイラー情報をもとに最小限のJITコード生成をする感じにしたいです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@zacky1972 やはり必要ですよね。実際に実行しなくてもおそらく抽象実行で必要な情報が集められる気がします。コンパイル速度が非現実的になるかもですが。再定義が起きうるとか、evalが実行される・evalでサポートが必要な言語仕様(数値のみとか)、が得られるんじゃないかと思います。」 / Twitter
Java
- ABAさんのツイート: "Javaで2 * (i * i)が2 * i * iより速くなる理由。JITのループアンローリングによって生成されるアセンブリコードが大きく変わるため https://t.co/fo92ZP5xwo"
- FFFumihiro MMMatsuiさんのツイート: "演算順序変わるからバイトコード変わるまではうんそうだよなって感じだけどその段階では速度差の原因が自明ではなくてJIT生成コードまで掘り下げにゃならんのな"
- FFFumihiro MMMatsuiさんのツイート: "確かにスクリプト処理系のVM高速化の時とかもある程度以上はjavap結果からのイメージと素直に繋がらなくなってそれ以上はJVMともっと下側のやり取りまで見えないとわからんなって感じした"
- FFFumihiro MMMatsuiさんのツイート: "for文にJVM側でSIMD効かしてくれる挙動も、確かfor文の中身がちょっと複雑になるとJREバージョンによって速度違ったし。そういうシビアさを気にして結局そこは高速化はほどほどにして、部分的には元に戻したりもした"
- FFFumihiro MMMatsuiさんのツイート: "ほんとに特定環境で突き詰めたらVnanoのベクトル演算は倍精度8GFLOPS近く出せたんだけど結局5GFLOPSあたりの感じで着地した"
- FFFumihiro MMMatsuiさんのツイート: "配列の算術演算を複数コンボで連ねる時に a[ i ] = b[ i ] + c[ i ]; みたいなパックしてSIMDに投げやすそうな雰囲気の単位に切って回した方がいいのか a[ i ] = b[ i ] + c[ i ] + d[ i ]; みたいに詰めた方がいいのかとかそういう試行錯誤だったっけ 確かどっちが速いか環境によってた"
- FFFumihiro MMMatsuiさんのツイート: "あくまでも特定の1つのコード内において試しただけなのでこの書き方だけ抜き出して有利不利は言えなさそうだけど、ちょっと前の環境だと後者が結構伸びて数割有利で、今の環境だと両者トントンで、なので後者はなんかシビアそうなので演算器オブジェクト実装したけど無効化して前者が動くようにしてる"
- FFFumihiro MMMatsuiさんのツイート: "これだ。 高速化のために実装したもののFLOPSが環境で結構大きくブレるっぽいので無効化してる2連ベクトル加算器オブジェクトの処理: https://t.co/BsHRxKVOhv 代わりに動いてるのは普通に1連のこっち: https://t.co/Vm2MeSsz6h 4~8GFLOPSくらいの間の変動幅なのでたぶんSIMDの効き方が違う?"
- FFFumihiro MMMatsuiさんのツイート: "このあたりのやつ演算対象データ全体がCPUの何次キャッシュまでに載りきるかどうかで速度何倍も違うけど、一応は前者も後者も両方全部1次キャッシュに乗り切る領域で測ったはず、確か"
- FFFumihiro MMMatsuiさんのツイート: "後者のベクトル長を横軸にしたFLOPS値のグラフはこれ https://t.co/b34UZTqdZK SIMD 有効/無効はjava実行時のオプションでUseSuperWord(だっけ?)有効(確かデフォ)にしたり無効にしたり"
- FFFumihiro MMMatsuiさんのツイート: "そんななので、やっぱJava上だけで速くする時って、普段はバイトコード読んで効率的か?はそれなりに有用な情報と思うけど、結局JVMはスタックマシンで、CPUというレジスタマシンにJITして、んでCPUの機能も使ったりするので、バイトコード見た印象から乖離した不思議な速い遅いは確かにあるっぽいなと"
- FFFumihiro MMMatsuiさんのツイート: "さっきの記事に納得したのでした。 着地できた"
- FFFumihiro MMMatsuiさんのツイート: "そういえばProject Panamaだっけ? JavaでSIMD機能のAPI叩けるようになるとかいうやつ超期待してる"
Erlang OTP24
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ErlangはOTP24でJITコンパイルされるようになったが、JITを入れるまでの経緯がなかなか興味深い。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「OTP24で入ったJITはとても愚直なJITだ。最適化は考えない。とりあえずネイティブコードはどんなコードであれ早いのだから愚直にネイティブコードに置き換える。結果としてだいぶ早くなった。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そのアプローチだと計算主体のトイプログラミングだと効果あるけど、大きなプログラムだとワーキングセットがでっかくなって逆効果な気がする >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「JITコンパイラはネイティブコードを置き変える効果より、命令の粒度が小さくなって最適化しやすいことによる効果の方が大きいような気がする」 / Twitter
users
@RKX1209
- るくすさんのツイート: "DalvikVM、最初はDEXインタプリタとプロファイラ動かしつつ、ボトルネックな所をJITにするのは知っていたけど、最近のARTはAOT(Ahead-of-Time)で最初にコンパイルしてしまうのか。加えてランタイムな情報を元に一部だけコンパイルし直すと"
- るくすさんのツイート: "けど全てAOTだとコスト高すぎるので最初はJITにしておいて、充電中とかのアイドル時にコンパイルするみたいな仕組みに変わった? いずれにせよすごいチューニング力だな..."
- るくすさんのツイート: "@slankdev BSD含め、kernel interpreterは大体JIT対応してるはずですね"
- るくすさんのツイート: "ああそういえば今年のセキュキャンには"セキュアなCPUを作ろう"なんてコースがあって、データの型チェックとかUse-After-Free防止のためのシグネチャの仕組みなんかをCPUがやってくれるという中々アツい物っぽいです。興味のある人ぜひ #seccamp"
@kazuho
- Kazuho Okuさんのツイート: "歴史的に言うと、インタプリタの歴史においては逐次パース&実行のほうが、CPUとメモリが潤沢になった近年までは一般的な形式だったんじゃないの"
- Kazuho Okuさんのツイート: ".@ockeghem @mattn_jp たとえばシェルスクリプトの処理系は今でも行単位だと思います"
- Kazuho Okuさんのツイート: "JITの中間表現にCコード使うアプローチ、アムダールの法則との戦い辛そうなの以外にも、エリアシング関連の無駄なオーバヘッドがコンパイル時と実行時にある気がするんだのね"
- Kazuho Okuさんのツイート: "crubyのJITがCコンパイラ経由なの、今まで得心が言ってなかったけど、今日の話聞いて納得したというか、競争がある中で段々と速くしていくのは正しいんだろうなと思った"
@shinh
- shinichiro hamajiさんのツイート: "MJITのdlopenを置き換えるパッチ書いてたりしてた話について書いた https://t.co/J1mfh50erH まとめるとdlopenのオーバヘッドを調べる程度の役には立つんじゃないの、という気持ちで作ったという感じです。あと .o て定期的に直接ロードしたくなる (https://t.co/cuRJhCqjNm とか tinycc はそれできる)"
- MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話 - 兼雑記
- Dynamic Test Runner 0.0.3 - 兼雑記
- Shiro Kawaiさんのツイート: "Cコード動的に生成してコンパイルしてdlopenという手は20年以上前にシミュレーションツール作った時にやったことある(シミュレーションの式が変更される度にコンパイル)。ずっと使ってるとメモリ食いつぶすのは再起動してねで済ませた。自力でロードはさすがに考えなかったなあhttps://t.co/TdAbFyRMOG"
- Shiro Kawaiさんのツイート: "いや、メモリ食いつぶすのは、処理系のGCの都合でdlcloseできない事情があったせいだったような気がする。だとしたら自力でマップしてても同じことだったかもしれん。"
- shinichiro hamajiさんのツイート: "Mach-O とかならともかく、 ELF の arch 追加はたぶんそれほど大変ではないかな…ということで x86:https://t.co/sPnxLg24CD と arm:https://t.co/gAqR0QZyYa やってみた。 MJIT で動くかは謎… https://t.co/bNphJDuJ8C"
- Add support for 32bit x86 · shinh/objfcn@fc6d8db
- Add support for ARM · shinh/objfcn@92e5047
- NeoCatさんのツイート: ".so経由で読むのが不都合ならバイナリを自力で読めば…とは思うけどarch依存もありそうだしやっぱり実用的ではないですよね…。RubyKaigiでLightWeight-JIT作ってるという話もあったけどこれもMRI並のarch対… https://t.co/i7YFGDdUjp"
@blackenedgold
- κeenさんのツイート: "VMとかJITとかのテクニックが色々載ってて良い資料だった。所でJITのコードの goto **buf;のインパクトが凄くて… Virtual machine and javascript engine https://t.co/DiFH3mTa6z"
- Virtual machine and javascript engine
- κeenさんのツイート: "インタプリタを作る本がないとは言ってないですよ。少ないと。そして欲しいのはただ作るだけじゃなくて高速なものを作る本が欲しい。シンプルなインタプリタとVMの話から命令フュージョン、Threaded VMやJIT、word boxingやNaN boxing、global dbとメソッドキャッシュなんかの話が載ってる本が欲しい"
histric
histric-1
- Miura Hidekiさんのツイート: "mrubyのJIT、インテルさんの言うとおりにしたら速くなったのでインテルすげー https://t.co/QKwwuxomP0"
- 小倉唯さんのツイート: "あと JIT compiler だと runtime に cpuid に query かけて best op 選ぶチャンスがあるか."
- Rockridgeさんのツイート: "JavaScript JITエンジンへの新機能追加をRust言語で行えるようにするメタJITコンパイラをMozillaが実験的に開発中。名をHolyJitという。安全なコードを書けるメリットがある。 / “HolyJit: A …” https://t.co/MUfaa2wq7n"
- HolyJit: A New Hope | JavaScript
- とみながたけひろさんのツイート: "コンパイラの本はいっぱい(?)あるけど、インタプリタの本ってあんまりないよねえ…。あとバイナリトランスレーションとかCPUじゃなくてGPUとかのエミュレーションとかも。まあ真面目に実装すると色々特許とかリバースエンジニアリングとかが絡んで政治的に面倒くさいからな…"
- 瑣末u 🗹さんのツイート: "動作中のプロセスを解析してJITコンパイラでメモリ上のプログラムを書き換えてCPU性能を改善するツールらしい。現在対応しているのはMySQL系だが今後増える模様。 / “Dynimize: CPU Performance Vir…” https://t.co/CpLQ4oNwmw"
- Dynimize: CPU Performance Virtualization
- ロックフリーのkumagiさんのツイート: "JITの効果の結構大事な部分が関数のインライン化だからそれを阻害するネイティブ関数呼び出しは鬼門っていうの、pypyでmsgpackのC拡張動かしてベンチマーク取った時に痛感したな。"
- 眼力 玉壱號さんのツイート: "JavaScript 界隈でも似たような話は出てましたね(cf. https://t.co/HIBHHtHpRe ) 言語境界を跨いで inlining 出来ないと速くならない(に対する1つの approach が #GraalVM なのかもしれない)… "
- ぼうくんさんのツイート: "Js の Array sort と自前 quick sort のパフォーマンス差は JIT がかかればかかるほど大きくなるし、これは V8 とかの JS エンジンがより効率化するほど広がる http://t.co/g0oroGZu"
- yemotoさんのツイート: ""HHVM JIT: A profile-guided, region-based compiler for PHP and Hack" https://t.co/7tPa8JC6SP #engineer #feedly"
- HHVM JIT: A profile-guided, region-based compiler for PHP and Hack | the morning paper
- 渋川よしきさんのツイート: "関連研究?では日本語入力で使うLOUDSも簡潔データ構造だし、あれは木構造だから言語処理系の中でも使い所が多そうな気がする。 : 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ https://t.co/GpBB4RW0z1"
- 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
- 渋川よしきさんのツイート: "JIT、ネイティブにするしない、ではなくて、アルゴリズム選択みたいなのもあると楽しそうだなあって少し思ってる"
- Shiro Kawaiさんのツイート: "Gaucheはrequireされるfeatureごとに「まだrequireされてない」「require解決中」「providedされた」の状態を持ってる。この状態テーブルは排他制御されるので一つのスレッドが解決中なら参照しようとした他のスレッドは待たされる。循環は検出してエラーにしてる https://t.co/qTJ8urw8uL"
- 2019-04-20-akr-autoload-rubykaigi-after-party.pdf
- Shiro Kawaiさんのツイート: "循環というか相互依存か。自分がrequire中に他のfeatureをrequireしようとしてそれが既にrequire中になってたら諦める。既にそれまで読んで実行されちゃった分は巻き戻せないんだけど、そもそもそういう関係を作るのが設計ミスってことにしてる。"
- Fadisさんのツイート: "Webサーバの性能向上の為に度々破天荒な物を作るFacebookが今度はC++をJITコンパイルしてスクリプト言語扱いする手法を編み出したらしい。ソースはコンパイル済みヘッダと共にLLVM IRに変換されOrcJITで実行される。この手法はEuroLLVMで発表されているがOSS化はされていない https://t.co/KRLU1QcQ9C"
- Facebook Is JIT'ing C++ Code To Treat It Like A Crazy Fast Scripting Language - Phoronix
- FadisさんはTwitterを使っています 「JavaScriptでは関数の引数の型が実行するまで確定しない為、ある型で実行された際に作られたJITコンパイルの結果が以後の関数呼び出しで再利用できるかを実行環境は常にチェックしている → WebAssemblyの関数は型が確定している為この処理を 丸ごと省略できる、を #kernelvm」 / Twitter
- R. ShioyaさんはTwitterを使っています 「スクリプト言語では組み込み関数はCとかで書かれてるのでそっちのが高速ってのが相場だと思うけど,javascript に関しては「ネイティブの(特定のパラーメタに)専用化されたコード > JIT された js の専用化コード > ネイティブの汎用コード」があったりして,自前で書いたほうが全然速いことあるな」 / Twitter
- R. ShioyaさんはTwitterを使っています 「node.js だと,parseInt(16)(10 は専用化ルーチンが実装されてるのでそっちのが速い),split(入力があんま長くない時),readline あたりは注意深く組めば数割から倍以上のレベルで自前の方が速いね.ただ,古代C言語文字列プログラミングみたいなことを今更やるはめになる…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「あとルーチン自体は自前の方が速くなっても,変数の使用量が増えるせいか Minor GC の回数が豪快に増えてかえって遅くなるとかもあるのでなかなかムズカシイ」 / Twitter
- κeenさんはTwitterを使っています 「Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS https://t.co/1yikKpSmwf」 / Twitter
- Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS
- Miura HidekiさんはTwitterを使っています 「JITコンパイラのデバッグ、Xbyakを使ったネイティブコードを直接生成とC言語生成では、Xbyakを使った方が簡単で、期待しないコードが出てきたときはワッチポイントを掛けるだけでいい。一方、C言語生成ではどこで生成されたものか分からないから、例えばコメントを生成するとかやるけど、めんどくさい」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「mjitのようなC言語に落とすパターンは、それで速く出来るならUSENIX ATCなりに論文通せるレベルのアイデアなんだけど、実際jscで見た感じ (遅いからllvm IR辞めた)、新規アイデアない限り、愚直にJIT実装したほうが速いとは思うんだよな。専門家ではない自分の考えだけど」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ベンチマーク的なので速くするには、おそらく最低でも2-tier必要で (baseline interpreterとhigh optimize JIT)、JavaScript VMは全社そのパターンに落ち着いているので、たぶん実環境での正解はこれなんだろうな感はずっとしてる」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 @_ko1 deoptは最適化した前提が崩れたから「インタプリタへ戻る」話と思います。OSRは現在実行中のコンパイルターゲット(関数なりループなり)の「実行中に」JITコードへ移行する技術を指すのが一般的な気がします。 (ループの実行中にJITコードへ移行するとか) https://t.co/VPwTmh3Sul」 / Twitter
- On-Stack Replacement (OSR)
- _ko1さんはTwitterを使っています: 「@s_isshiki1969 @miura1729 そうかも(osr は双方向ある」 / Twitter
- sumimさんはTwitterを使っています: 「なるほど。Graalが他の JITと違ってIn-Processでない数十~数百回の実行で「じわじわ」効いてくるのはそういう理由なのですね。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています: 「@nakayoshix @sumim @neuecc GraalはJITをJavaで書く=セルフホストって点で面白いプロダクトなんですけど、性能安定までに時間がかかってかなり不利ですね。でも、AOTでNative Imageとして使うのは人気で、Graal自体もNative Image化したものを使うといいのではって話がでてますね。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています: 「@sumim JIT自体にJITが必要って面白いんですけど、なかなか使いどころが難しいですね。常駐サーバーなら問題ないとも最近は言えなくなってるし。 GraalPythonやTruffuleRubyも同じ性質あるかもです。 5年以上前ですが、TruffleRubyでNESエミュの起動時は2FPSだったりしてますね。 https://t.co/rrTNN6eI35」 / Twitter
GC
nursery
- uint256_tさんはTwitterを使っています 「うん? https://t.co/pPoEGLXNjS」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@uint256_t スタックポインタをスタック種類分管理しないとならないのが面倒そうです。 スタックをnurseryとして使う(popせず、一杯になったらgcする)という処理系がありますが(Chicken Scheme)、そこからの発想で特定の種類のオブジェクトのnurseryを設ける、というのはGaucheでやってます。」 / Twitter
- _ko1さんはTwitterを使っています 「@anohana @uint256_t 溢れたら全体でgcですか?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@_ko1 @uint256_t nurseryは溢れたらそこだけgcします。一種の限定的な世代別で、nurseryを指すポインタはVMのレジスタやスタックなど限られた場所にしかないので軽いgcです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t つまり、nurseryはBOXINGされたオブジェクトを格納するというイメージですか?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t ヒープの第0世代みたいな感覚です。単にポインタ移動でアロケートできるから速い+ほとんど一時的オブジェクトだから溢れてgcする時点では本当のヒープに移す生きてるオブジェクトは少ない、という。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど!すっきりしました。ありがとうございます」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t これを徹底したのがChickenで、オブジェクトはまずCスタック上にアロケートされ、関数はリターンでスタックをポップせず、スタックが溢れそうになったら活きてるのだけヒープに移して先頭にlongjmpします。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど。スタックマップの実装を工夫すればスタック上はUNBOXに出来そうですね」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t tcfmで話されていたネタですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @anohana @_ko1 @uint256_t あれ?どの回でしたっけ?」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t https://t.co/Viq5jXjSNO」 / Twitter
- Turing Complete FM:Apple Podcast内の19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
- Miura HidekiさんはTwitterを使っています 「ヒープの第0世代、新しい目線を頂いた。この目線で次期プロジェクトを検討しなおしたい >RT」 / Twitter
リージョン推論
- Orumin de Izumoensisさんのツイート: "参照カウンタの GC とかはあったほうがいいとおもうけど"
- ぶんちょうさんのツイート: "まあ普通に自動でやりたいのでリージョン推論でもGCでもいいのだけど"
- Orumin de Izumoensisさんのツイート: "リージョン推論、静的にメモリ管理されるし自動的によくやってくれて最高っぽい"
- Experimental Rhino develop-log: 徒然なるままにrust書いて;スタックベースのリージョン推論とGCの話
- 定義 RBMM: リージョン推論に基づくメモリ管理 - Region-Based Memory Management
- リージョンについて | κeenのHappy Hacκing Blog
- 静的なメモリ管理の話。リージョン推論とλ計算からRustまで | κeenのHappy Hacκing Blog
- The GC Handbook - 10.2 Region inferencing(リージョン推論) その1 - 毎朝ほんを30分くらいよむますブログ
- The GC Handbook - 10.2 Region inferencing(リージョン推論) その2 - 毎朝ほんを30分くらいよむますブログ
- Non-Lexical Lifetimes - Qiita
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「rustc は中間表現のコントロールフロー上でリージョン推論するらしくて、えっそれコンパイルの再現性とかそういうのは大丈夫なんですかね」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「assert x is not None を書くと型検査が通ったり通らなかったりする Python とか TypeScript と同じような不安感が」 / Twitter
スタックGC
- Shiro KawaiさんはTwitterを使っています 「スタックは第0世代のヒープにすぎない---スタックGCがあればね。」 / Twitter
- IPSJ-TPRO0305004.pdf
- ガベージ コレクションの基礎 | Microsoft Docs
- 第5章 ガ-ベージコレクション
- ガーベッジ・コレクターについてのよくある質問 - IBM Documentation
- ガーベッジ・コレクターについてのよくある質問 - IBM Documentation
- C# のメモリ管理 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
- メモリ(スタック、ヒープ、GC) - かまてく ブログ
- GoのGCを10分で学ぼう - Qiita
Boehm GC
- Boehm GC - HoneyComb
- Boehm GCの使い方
- Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう
- Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう(1)
- LinuxC | GC
- A garbage collector for C and C++
- Boehm garbage collector - Wikipedia, the free encyclopedia
- BoehmGCでC++でもガベージコレクション♪ - きままにブログ
- Boehm GC人門 - snipsnipsnip
- Lush Green
- LLVMで動くオブジェクト指向言語を作ってレイトレした - 近&況
- boehm gcを触ってみた - 近&況
- Shiro KawaiさんはTwitterを使っています 「プロセス「内」通信なんだけど、Boehm GCはOSによってはGCスレッドの同期にSIGUSR1/2を使ってる。」 / Twitter
- satさんはTwitterを使っています 「よく使われているプログラムでSIGUSR1とSIGUSR2を使い倒してプロセス間通信しているものってあるんかな」 / Twitter
WebAssembly
- mizchiさんはTwitterを使っています 「最近 wasm の gc proposal ちゃんと読んでるんだけど、「wasm 内のセマンティクスとして gc 導入したい」という大目標に対して、いくつもの仕様に分割して個別にMVPしつつ統合していく流れがとても綺麗で、VM実装の進め方としてとても参考になる」 / Twitter
- mizchiさんはTwitterを使っています 「こんな感じに分割されてる - 参照型を定義する reference types - 外部から import した関数への inteface-types と type system - wasm 同士で動的リンクするための module link 仕様 - JS API で型 struct を定義 tc39 proposal structs との協調 - 新しく追加する heap のセマンティクス」 / Twitter
- mizchiさんはTwitterを使っています 「とにかく野心的なので最終的に GC が乗るかは五分五分だしかなり遠そうなんだけど、その過程で生まれたものは無駄にならないようになってる」 / Twitter
- mizchiさんはTwitterを使っています 「GC 追加されるにしても新しく作ったメモリ空間でやるので、既存のものがすべて gc 対応する必要はないようになってる」 / Twitter
- mizchiさんはTwitterを使っています 「実際に自分で仕様策定の流れを追うには overview を読みつつ、meeting log で何考えたり考慮してるか、みたいなのを読むのがいいです https://t.co/DIkWqcgbVJ https://t.co/48sQ3nSj8c」 / Twitter
- gc/Overview.md at master · WebAssembly/gc
- mizchiさんはTwitterを使っています 「gc proposal の中でも参照型の externref と anyref は正式に仕様になって、wasmtime とか各ブラウザでフラグつけると動くようになってますね」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GC proposal, GC typesとしてWasm自身ではなくホストが管理できる高レベルな型を導入しましょう、くらいの認識だったけどそこまで大きなものなのか。やはり自分十分に追えてないねぇ >RT」 / Twitter
Java
- Java VisualVM
- Javaガベージコレクションのエッセンス
- AppleがGCGCをオープンソース化:JavaGCログの分析ツール
- JavaVM監視・解析ツール HeapStatsを使ってみた | キャスレーコンサルティング 技術ブログ
- Java 8リリースの変更
- www.is.titech.ac.jp/~sassa/kenkyuu-memo/agesen-garbage-collection-PLDI98.010308
- G1GCのログの読み方 - sugarlife's blog
- チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT
- チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (1/2) - @IT
- インフラエンジニアのメモ : GCログが再起動のたびにログが上書きされてしまう
- Java VisualVM
- IBM Knowledge Center - 並行マーク
- PowerPoint Presentation
- 正確なGCへの道
- 第5回 Java VMの情報を取得する(前編):Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識|gihyo.jp … 技術評論社
- Java における Scavenge GC と Full GC の違い - スタック・オーバーフロー
- ZGC - オラクルの巨大ヒープ向けガベージコレクタ
- Java 10 Release Candidate 1 公開
- Javaの超低レイテンシなGCアルゴリズム、ZGCをコンパイルして動作を試す - くろの雑記帳
- 島鉄雄さんのツイート: "Java で開発中の ZGC が驚愕のスペックなんでビビった。 TB 単位のヒープでも止まる時間が 10ms 以下というと、十分ゲームで使えるレベルに思える 代わりに通常の処理が少し遅くなるようだが、少しぐらいなら大した問題ではない 同様のものが自前で実装出来れば最高だが… https://t.co/HZNcbz1L2l"
- The Z Garbage Collector - An Introduction
- 「Java 12」リリース | OSDN Magazine
- 島鉄雄さんのツイート: "Java 12 の ZGC の性能評価の記事があったけど、やっぱ凄いわ…これ以外の GC が必要なのかと思ってしまう。 メモリが大量に載っている環境用みたいな触れ込みだったけど、8GB でも良好な結果だ。 これを C とかでも使えるようにライブラリ化されないかな。 https://t.co/4hy3x7CJQH"
- サマーインターンシップでHBaseをJDK 11で動かしZGCとの性能を評価してもらった話 - LINE ENGINEERING
- 島鉄雄さんのツイート: "良く考えたらライブラリ化は無理だった… こういう最新の並行 GC は read barrier の様な部分をコンパイル時に仕込まないといけないから、コンパイラ込みの実装が必要なんだよなぁ。"
- Switch式とShenandoah GCを試験的に備えたJava 12がリリース
- 島鉄雄さんのツイート: "Java11のZGCはポインタの上位数ビットにフラグを埋め込んでるけど(いわゆるtagged pointer、ZGCではcolored pointer)、仮想記憶を使う事でマスク不要にしてる。 ポインタを0x0fとすると0x1fや0x2fを0x0fにマップする事で0x0f, 0x1f, 0x2fは同じメモリにアクセス出来る。 だから現状Linux専用のようだ。"
- 島鉄雄さんのツイート: "64bit ポインタ基本的に 58bit しか使われておらず、上位 16bit が空いている。 ここに型情報やらフラグを埋め込んだりしてるけど、ポインタとして使うたびにマスクして上位ビットを 0 にする必要がある。 使ってない部分は CPU が無視してくれれば、仮想記憶を使ったトリックなんて必要なかったんだ。"
- 島鉄雄さんのツイート: "おかげで、ZGC は家庭用ゲーム機や組み込み機器などに移植する事は出来そうにない。 なので、もし次世代 GC を移植したくなった場合は、Java12 の Shenandoah GC が候補になるかな。"
- 島鉄雄さんのツイート: "> 58bit しか使われておらず、 48bit の間違いだった…"
- 島鉄雄さんはTwitterを使っています: 「コンパクションのあるGCの場合は、大抵ポインタのポインタを使ってるよ。(Java12のshenandoahとか) JavaVMは参照の実装方法を規定してないから、そういう実装も出来ると思うけど、C++も別にコンパイラがそういう風にコンパイルすれば良いだけだと思う。 https://t.co/AVYdETuc5H」 / Twitter
- oooooさんはTwitterを使っています: 「@yuyabu2 GCがコンパクションするとオブジェクトのアドレスが変わります。つまりGCのある言語ではポインタが使えません。そのためJavaではポインタよりも抽象度の高い参照という概念を導入しています。ちなみにC++の参照はポインタのシンタックスシュガーでしかないのでJavaの参照とは別物です」 / Twitter
- oooooさんはTwitterを使っています: 「@shima_tetsuo そうですね。だからポインタ=アドレス値という関係が壊れるという話しです」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@ooooo いや壊れてないよ。 ポインタ=アドレス(オブジェクトのアドレス) ポインタ=アドレス(GCが管理している領域のアドレス)→アドレス(オブジェクトのアドレス) と間接参照が1つ増えてるだけで。」 / Twitter
- oooooさんはTwitterを使っています: 「@shima_tetsuo それは言葉遊びでは?ポインタがオブジェクトのアドレスを直接指さないならCで言う所のポインタとは言えないでしょう」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@ooooo 自分が言いたいのはC++とJavaの参照はCのポインタと同等という事ですが、C++やJavaでコンパクションを実装するにはポインタのポインタが必要といったけど、もしCで実装する時も同じようにポインタのポインタを使います。 要するにアセンブラ的に全く同じコードになるでしょう。」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo ダブルポインタも一応ポインタでは?」 / Twitter
- oooooさんはTwitterを使っています: 「@yuyabu2 @shima_tetsuo そういう意図の話しではないのです。わかりにくかったらごめんなさい」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo うーん理解不足なのでダブルポインタがポインタかどうかという話をしているようにしか見えません。すいません。 https://t.co/8zVH614ZvT (やっぱりこういう論争についていけません...)」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「参照、参照渡し、参照の値渡し あたりの論争はあんまり理解してない」 / Twitter
- 「Jakarta EE 8」リリース、Java EE 8と完全互換 | OSDN Magazine
- [速報]Java 13が登場。ZGCの改善やSwitch文の実現など新機能。 Oracle Code One 2019 - Publickey
- 高梨陣平さんはTwitterを使っています: 「JDK11にはGCが無ければどれだけ速いかを検査するための何もしないGC、Epsilonが用意されている。 https://t.co/bkiSg689Cj」 / Twitter
- Heapothesys - Amazon Corretto によるオープンソース GC レイテンシベンチマーク
- OpenJDK 16のShenandoahガベージコレクション:並行参照処理 - 赤帽エンジニアブログ
- JVM における G1GC とヒープの雑な話 - それが僕には楽しかったんです。
- Microsoft、JVM GCログを活用するGCToolkitをオープンソースとして公開
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Java 17 はどれくらい速いのか? デフォルトのG1GCを使った場合、Java 11と比べて約8.7%速く、Java 16 と比べて約2.4%速い。なお、ParallelGCを使うとさらに16%ほど速くなるが、旧バージョンとの差は小さくなる。 https://t.co/9gyi8jFfMa」 / Twitter
- OptaPlanner - How much faster is Java 17?
- 【技術解説】進化したJava VM ガーベッジコレクション | DevOps Hub | SB C&S
- OpenJDK Shenandoah GC 日本語情報まとめ - 赤帽エンジニアブログ
Android
- 富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
- Eclipse Memory Analyzer Tool と Android 環境での Out of memory デバッグ | Drowsy Dog's Diary
- アンドロイドアプリのThreadがリークするとき « 大阪のアンドロイド/iOS・ Webアプリ開発会社 ノーティス
- Leak canaryで メモリリーク調査
C#
- [sos]!GCRoot:オブジェクトを参照しているオブジェクトのパスを表示
- Microsoftが.NETの手動メモリ管理機構をSnowflakeとして公開
- .NET の「実行時型情報」は immutable かつ GC 不可能 - NyaRuRuが地球にいたころ
- .NET GC & Memory (1) - NyaRuRuが地球にいたころ
- .NET GC & Memory (2) - NyaRuRuが地球にいたころ
- 変数スコープの最後までオブジェクトは生きているという誤解 - NyaRuRuが地球にいたころ
- write barrier - NyaRuRuが地球にいたころ
Ruby
Twitter
高速化(Ruby)
- Miura HidekiさんはTwitterを使っています: 「RubyのGCの高速化、うまいこと考えるなーと思ってコード読んだのだけど、もっと速くなりそうな気がして考えたのだけど、なかなか難しい。 https://t.co/VXyJzw1U0c」 / Twitter
- Speed ISeq marking by using a bitmap and rearranging inline caches by tenderlove · Pull Request #6053 · ruby/ruby
- Miura HidekiさんはTwitterを使っています: 「とりあえず、2通り考えて1つは簡潔データ構造のrand操作のような付加情報を付けること。もう1つは、bit & (bit - 1)で1bitを取りだしてfloatに変換して指数部を取りだす方法」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「ちっと調べたらもっとすさまじい方法が見つかった。これ使えばもうちょっと速く出来そう https://t.co/DwM75niyi8」 / Twitter
- 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
- Miura HidekiさんはTwitterを使っています: 「命令中にGC対象のリテラルが入る割合は少ない(疎のビット配列)と仮定しています」 / Twitter
- κeenさんのツイート: "CoWさせるためにBitMapで管理ってRubyで結構前から取り組んでるよね。 Island Life - GC切って性能向上 https://t.co/lMSGajMKMA"
- Kazuho Okuさんのツイート: "ruby専用のarenaを作っとくのが一番いい解決策なんじゃないのかな(そこはGlobal VM Lockとるからひとつでいいわけだし) / “Malloc Can Double Multi-threaded Ruby Prog…” https://t.co/LcY7hq33y9"
- Malloc Can Double Multi-threaded Ruby Program Memory Usage
- Kazuho Okuさんのツイート: "色んなスレッドに紐付いたarenaに、gc対象のオブジェクトから紐付いたmalloc領域を作っちゃうのが問題、というのが正しいかな。それらの領域のほとんどは短命なオブジェクトなのでgc時に解放されるが、一部は長命なのでスラブは解放されない。というのがいくつものarenaで発生する"
- Yukihiro Matsumotoさんのツイート: "Rubyも malloc で確保するメモリについてはやってるんですが、GPU のメモリは対象外ですね。… "
- Kazuho Okuさんのツイート: "なるほどありがとうございます。任意のクラスのオブジェクト(GPUメモリ、ファイルデスクリプタ、etc)について、それぞれカウンタをもち、どれかが閾値を超えた時点でGCを動かすのが理想なんだろうなぁと思いました… "
- Urabe, Shyouheiさんのツイート: "malloc以外でもrb_gc_adjust_memory_usage() っていう最近追加されたAPIはあるんですよ。 https://t.co/dKQukYvTyU ただGPUみたいなアドレス空間から違うやつは厳しい。あくまでメインメモリのプレッシャーしか計測してないので。… https://t.co/j2VEmprEBM"
- Urabe, Shyouheiさんのツイート: "ファイルディスクリプタに関しては一応一発open(2)してみてerrnoがEMFILEとかで失敗したときはGCしてみる、みたいな処理は入ってますね… "
- Kazuho Okuさんのツイート: "プロセス単位のfd制限がない場合にosの資源使い切ったりします?… "
- Urabe, Shyouheiさんのツイート: "とくに考慮してないから使いきれると思われます。… "
- Kazuho Okuさんのツイート: "V8とかだとGC外に確保されたメモリ量のカウンタがあって、それをベースにGC起動するようになってるって話は前にしましたっけ… "
- そのっつ (Naotoshi Seo)さんのツイート: "RubyなどGCな言語でGPUを使っていると、GPUメモリを大量に使っていてもメインメモリ上では全然使っていないように見えてGCしなくてもまだ良いんじゃね?って処理系に思われてしまうんだけど、Pythonなど参照カウントな言語だと参照がなくなった瞬間にGPUにメモリを返却できるので嬉しいのです。"
- Kazuho Okuさんのツイート: "共有オブジェクトの生成と管理に制限を設けることで、マルチスレッド環境でのGC等の並列性がどう高まるのかが鍵だと思うし、そのへんの話を楽しみにしてる #rubykaigiA"
- Kazuho Okuさんのツイート: "共有オブジェクトは専用のGCアリーナにプロモートしてそこで適宜GCするみたいなやり方なのかなぁと想像"
- Kazuho Okuさんのツイート: "複数のアリーナをもつGCにして、共有オブジェクトから参照されるオブジェクトは専用のアリーナに移動させるみたいなやりかたではないのか... #rubykaigiA"
- Kazuho Okuさんのツイート: "実装としては移動もしくはコピーによるmessage passingなのね #rubykaigiA"
- Kazuho Okuさんのツイート: ""shared object" って言い方をしてるけど、"no shared" なmessage passingだって言った方がわかりやすいのでは(内部では必要に応じてデータ共有するんだろうけど) #rubykaigiA"
- Kazuho Okuさんのツイート: "immutableなオブジェクトを交換するメッセージパッシングなら意味論的にはメッセージは全部コピーでよくて、GuildごとにVM別で良いし、GCやVMを共有する背景にはメッセージパッシング以外にやりたいことがあるからだと思うんだけど、具体的に何なんだろう #rubykaigiA"
- Kazuho Okuさんのツイート: "kh_mt_t をラップする型をつくって、その型の中にROMテーブルへのポインタを追加し、RClass から参照するのはラップされた型にすればうまくいきそう #rubykaigiC"
- Miura HidekiさんはTwitterを使っています 「Rubyのコンパクションってどうやって参照元を書き変えているのかな?とずっと疑問だったけど解決した。多くのアプリケーションで効果がありそうな気がする。」 / Twitter
- Yukihiro MatsumotoさんはTwitterを使っています 「Link: Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff https://t.co/jHdanerOEZ」 / Twitter
- Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff
- Rubyist Magazine - レアでアレなGCの話
- 第5章 ガ-ベージコレクション
- GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
- 最近のruby-core (2016年2月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年9月) | Money Forward Engineers' Blog
- RubyでOSやGCを書く野望 - Qiita
- 週刊Railsウォッチ: RubyのGCコンパクション改修、jemalloc、ReDoSの自動検出修正ほか(20220419後編)|TechRacho by BPS株式会社
D
- D言語のGCの仕組み
- ガベージコレクション - プログラミング言語 D (日本語訳)
Go
- Go言語の低レイテンシGC実現のための取り組み | プログラミング | POSTD
- 本の虫: Goは32bit開発に不適
- Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD
- GolangのGCを追う | SOTA
- 論文紹介:The benefits and costs of writing a POSIX kernel in a high-level language | ブログにしてブログにあらず
- go gc algorithm 101 - Speaker Deck
- UberのエンジニアリングチームがGo GCのチューニングにより70kの削減に成功
- GoのGC (garbage collector)について理解する - Speaker Deck
Mozilla
- ServoのDOMバインディングの話 - snyk_s log
- Garbage collection - SpiderMonkey | MDN
- Rockridgeさんのツイート: "Fx54:マルチプロセス機能(e10s)有効時、ユーザーの入力中はインクリメンタルGCの処理は停止時間の最も少ないものだけを実行するようにした。 / “1338518 – Consider to not run 40ms GC …” https://t.co/tYITC2kaeA"
- Rockridgeさんのツイート: "Fx58:ガベージコレクションに関する処理の一部を非同期化した結果、メモリ解放の処理能力がアップした、ということのようだ。 / “1298018 - Investigate allocating nursery chunks i…” https://t.co/aDjcs0HF1G"
- Rockridgeさんのツイート: "Fx63:ガベージコレクションの処理を改善した件について、詳細な内容が綴られている。最近のCPUで効果が高いらしく、Intel Core i7-6600Uの環境でSpeedometerのスコアが2.5%アップした。参照:… https://t.co/QUBapMkcRi"
Cycle Collector
- なかのん&マジックさんのツイート: "最近見たクラッシュバグを見てると、Cycle collectionは仕組みかGeckoでの実装のどちらかがまずい感じしかない。普段のrefcountのincrementのコストを無視できるゆるいプロダクトなら良いんだけど。"
- GC and CC logs - Mozilla | MDN
- Interfacing with the XPCOM cycle collector | MDN
- 言語の GC 機能と参照カウント (中編) - muddy brown thang
- A Cycle Collector on Gecko - Backnumbers: Steps to Phantasien
Google
ポインタ圧縮
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2019年にV8にポインタ圧縮(タグ付きポインタ?)が入ったのね…意外と最近だった。 (Rubyは昔からこれだよね…Pythonが3でも導入しなかったのって何か理由があるのだっけ) https://t.co/Emea1vGjw7」 / Twitter
- オープンソースのJavaScript/WebAssemblyエンジン「V8 release v8.0」が公開:ポインタ圧縮の効果が大きい - @IT
- R. ShioyaさんはTwitterを使っています 「v8 にポインタ圧縮が入って以来ヒープ最大 4GB の壁ができてしまい,自前アプリで巨大ファイル読みこむと落ちるにようになって困ってたのだけど,ちょっと思ってたのと落ちる原因が違ってた」 / Twitter
- R. ShioyaさんはTwitterを使っています 「v8 では ArrayBuffer(生バイト列)はヒープを消費せずに別の場所に確保されるらしく,このアプリでは読み込んだデータをブロック単位で圧縮して ArrayBuffer に突っ込んでたので,アプリ全体としては 4GB を全然超えてデータを保持できてた」 / Twitter
- R. ShioyaさんはTwitterを使っています 「落ちてたのは,あまりにデータがでかくて圧縮ブロックの管理情報だけでも 4GB を超えてたせいだった.なのでブロックサイズを大きくしたらヒープサイズでは落ちなくなったのだけど,今度は最大生成可能オブジェクト数の壁?にぶつかって落ちるようになってなかなかムズカシイ」 / Twitter
- R. ShioyaさんはTwitterを使っています 「なんかもう v8 メモリ耐久試験大会みたいになってるな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「V8のポインタ圧縮は、タグ付きポインタ(数値等をポインタに押し込める類)とは別物だった。後者は昔から入っていた様子。 前者は 64bit化にともない導入された仕組みと。 https://t.co/5hegD7BEsz」 / Twitter
- Pointer Compression in V8 · V8
- V8 5.4ではJavaScript Engineのガベージコレクタ改善でヒープメモリ使用量を最大40%削減、パーサ性能も向上 - Publickey
- どどんとふ公式鯖中の人さんのツイート: "Ciscoのサーバーは、BIOS設定に標高ってパラメーターがあって、設定値に応じてメモリーのバックグラウンドチェックの頻度が変わるのを最近知った。 会社ぐるみで割と本気で宇宙線気にしてる。 https://t.co/rWosoTuieb"
- ロボ太さんのツイート: "宇宙線問題、BlueGeneは例外飛ばしてプログラマ側でチェックポイントリスタートかけるんで、どこで例外が来ても大丈夫なようにコードを書くのが大変だったと聞いたけど、京コンピュータはハード側に命令リトライ機構を備えているので、プログラマはそこを気にしなくて良かった。"
- Kentaro HaraさんはTwitterを使っています: "「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユ
- Kentaro Haraさんのツイート: "Oilpan(BlinkのGC)でヒープコンパクションが有効化されました。アプリによっては数MBのメモリ削減になります。Operaで先駆けて実装されたものを(Operaブログ:https://t.co/ruZu1wRswf)、Operaのお友だちがBlinkに移植してくれました!"
- Kentaro Haraさんのツイート: "ちなみに、そのヒープコンパクションのパッチがこれ(https://t.co/s0hfSf8hmr)。まるでC言語の教科書みたいにポインタのポインタをめまぐるしく駆使した技巧的な実装で、レビューするだけで丸々3日以上かかりました(やってることの複雑性からしてやむをえない)。"
- Rockridgeさんのツイート: "本記事ではWebコンテンツの表示のカクつきをジャンクと呼び、Chrome 46時点までにこのジャンクを減らすべくガベージコレクションの一部処理を別スレッド化するなどの改良を加えたことを説明している。 / “V8 JavaScri…” https://t.co/801xJuIaKf"
- Rockridgeさんのツイート: "GoogleはChrome搭載のV8にOrinocoと呼ばれる新しいガベージコレクション機構を組み込もうとしている。これまで以上に処理の別スレッド化を進め、スイープすべきオブジェクトの選別手法も洗練させた。 / “V8 Java…” https://t.co/TAuj8oIEJT"
- Rockridgeさんのツイート: "Chrome 51ではOrinoco(新しいガベージコレクション機構)の一部機能が実装されているほか、WebAssemblyの初期段階のサポートも行われている。 / “V8 JavaScript Engine: V8 Relea…” https://t.co/9rm2ShZREn"
- Kentaro Haraさんのツイート: "Chromeのメモリヒープを眺めてると、Gmailを長時間放置すると3〜5割くらいのフラグメンテーションを起こしている。C++なのでコンパクションするのは難しいのだが、オブジェクトの割当を賢くするだけでもフラグメンテーションは大幅に減らせるはずで、"
- Kentaro Haraさんのツイート: "たとえばオブジェクトを割り当てるときに、型やサイズをヒントに寿命を予測して、短寿命のものと長寿命のものを別ヒープに振り分けるだけでも相当マシになる気がする。これこそ機械学習させたいのだが、if文ひとつを挿入することも許されない性能カチカチのmallocの世界でどうやるか。"
- Kentaro Haraさんのツイート: "(っていうか一般論として、ブラウザがページを読み込むときに発生するオブジェクトのアロケーションパターンなんてだいたい似通っているはずで、dynamic profilingベースで割当アドレスを最適化できれば相当マシにできる気はする。勝負はいかにそれを軽く実現できるか。)"
- V8 JavaScript Engine: Concurrent marking in V8
- Kentaro Haraさんのツイート: "Oilpanプロジェクトを始めてほぼ6年、ついにBlinkとV8の統合GCをローンチしました!!(๑˃̵ᴗ˂̵)و https://t.co/KahYum19aQ https://t.co/EXabaWg2lu さて次はBlink側のコンカレントGCを作るか・・・。"
- unified-heap: Enable per default (I473f85bb) · Gerrit Code Review
- Towards a Unified Blink and JavaScript Heap // slidr.io
- Unified V8-Blink Garbage Collected Heaps - Google グループ
- nhirokiさんはTwitterを使っています 「講演する機会を頂きました。Chrome (Chromium) がウェブ特有の実行モデルやセキュリティモデルを守りながらどのように V8 と協調しているのか、そのアーキテクチャを紹介する予定です。他にもチームメイトが C++ / JS を跨ぐクロスコンポーネント GC と Web IDL コードジェネレータについて話します。」 / Twitter
- Blink GC API reference
- Cross-Component Garbage Collection – Google Research
- High-performance garbage collection for C++ · V8
- Pointer Compression in V8 · V8
- Oilpan library · V8
Apple
- Rockridgeさんのツイート: "Riptideは次期Safariに搭載される新しいコンカレントGCシステム。ガベージコレクション処理の非同期化と並列化を進めるなどし、長い停止時間の発生を極力抑えたという。 / “Introducing Riptide: Web…” https://t.co/vx33WpTcFX"
- コミさんさんはTwitterを使っています 「AppleがJavaのGarbage Collectionのログを解析するツールをOSSとして公開したらしい(ライセンスはApache 2.0) インターフェースとしてはJupyter NotebookでPythonのPandas使って描画、統計処理ができるらしくてすごい https://t.co/zYqY1Ahw0m」 / Twitter
- apple/GCGC
- コミさんさんはTwitterを使っています 「Appleって自社プロダクトの関連エコシステムとは遠いものは全く興味ないイメージだったから(Swift系とかiOS系以外は興味ないと思ってた)、なんかこういうツール出してくるのビックリだな」 / Twitter
blog
Shenandoah GC
- JDK 13のShenandoah GC パート1:ロードリファレンスバリア - 赤帽エンジニアブログ
- JDK 13のShenandoah GC パート2:転送ポインタワードの廃止 - 赤帽エンジニアブログ
- JDK 13のShenandoah GC パート3:アーキテクチャとオペレーティングシステム - 赤帽エンジニアブログ
- JDK 14のShenandoah GC パート1:自己修正バリア - 赤帽エンジニアブログ
- JDK 14のShenandoah GC パート2:並行ルートとクラスアンロード - 赤帽エンジニアブログ
- Shenandoah GCのサポート概要とバグ報告について - 赤帽エンジニアブログ
- Shenandoah GCの実装概要 - 赤帽エンジニアブログ
- Shenandoah GCの性能指針と診断 - 赤帽エンジニアブログ
- Shenandoah GCの機能診断 - 赤帽エンジニアブログ
κeenのHappy Hacκing Blog
- WebAssemblyでGC | κeenのHappy Hacκing Blog
- Thoughts on GCs | κeenのHappy Hacκing Blog
- Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
- Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
- Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
- Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
Tociyuki::Diary
- Oberon システムのゴミ集め - Tociyuki::Diary
- 型記述子ごとの Cheney Copying ゴミ集め (その 2) - Tociyuki::Diary
- DSAS開発者の部屋:最近のPython-dev(2018-06)
- ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
- clearstackの話 - 兼雑記
- LUA 5.1 の GC - NyaRuRuが地球にいたころ
- Island Life - GC切って性能向上
- Flashのガベージコレクション – 遅延参照カウント « Rest Term
- 本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
- Memory allocation (& GC 処理) : メモリの確保処理 (GC 処理) : slow-path の処理 (4) GC 処理 : ParallelScavengeHeap の場合 : Minor GC の処理
- 簡単なGCを書いてみたらメモリ使用量が1/1000になって驚いた話 · うさぎ小屋
- GCアルゴリズム詳細解説
- ガベージコレクションの実装法と評価
- GCが止まらない - Documents
- メモリリークが起こってしまう原因は?予防策もご紹介します! | Qbook
- BlinkOn 9: Towards a Unified Blink and JavaScript Heap - Google スライド
- 最近読んだもの 21 - Please Sleep
- Implementing the Perceus reference counting GC - DEV Community
- JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開 - Publickey
スライド
- Miura Hidekiさんのツイート: "GCでメタデータを省略すると言えば、Precise garbage collection for Cという論文があって面白いよ、手前みそだけど紹介のスライド作っているので見てみて https://t.co/RDfj88iarb #tcfm"
- Precise garbage collection for c
- GCと1bit | κeenのHappy Hacκing Blog
- introduction-to-modern-gc // Speaker Deck
- WebAssemblyでGC | κeenのHappy Hacκing Blog
- make of MiniGC
- shinjuku.rs#12:ruruby_2 - Google スライド
- Rustでつくるガーベジコレクタ - Speaker Deck
- GCと1bit | κeenのHappy Hacκing Blog
- 実行時のデータ型の表現手法
POSTD
- Haskell、OCaml、RacketでGCのレイテンシを測る | コンピュータサイエンス | POSTD
GitHub
- nyuichi/gc.h: Header file-only Non-moving & Precise GC for C (< 100LOC w/o comments)
Qiita
- C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
- MiniLispのガベージコレクションを解説する - Qiita
- rurubyのガベージコレクタとアロケータ - Qiita
Twitter
その他
パフォーマンス
- mattnさんはTwitterを使っています 「あのグラフは単純に言語スイッチしただけで出た結果でなく、ついでに施した施策が影響したものと思っています。そしてその幾つかはスイッチ前でも出来たかと。(もちろん速くなるのは同意した上で) https://t.co/F7dp2ygViJ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔のGCの呪いは stop the world として有名だったけど、今も spike が避けられないGC多いのかな…? (goの場合、通常GC動作以外に、2分に一度 mark/sweep 的な動作してたのがネックと)」 / Twitter
- 最速配信研究会 山崎大輔さんはTwitterを使っています 「goをrustで書き直したら速度が1000倍になったってのは、GCでCPU使い切って反応できなくなったのが解消したという話で、数割の改善が劇的な効果を生む待ち行列的な話だと思う。なので超速度が要求されるシチュエーションではGC言語は厳しいというのは本当に同意。」 / Twitter
- アマチュアアカウントさんはTwitterを使っています 「Why Discord is switching from Go to Rust by Jesse Howarth https://t.co/SwVYP8M0nw なるほどなあ。 これは結局巨大なオンメモリキャッシュのようなソフトウェアをGC言語で書くのは厳しいという話に見える。」 / Twitter
- Why Discord is switching from Go to Rust | by Jesse Howarth | Discord Blog
- Dai MIKURUBEさんはTwitterを使っています 「GC のレイテンシに対する影響なんか 20 年以上前から議論も改善もされ続けている話だと思うんだけど、単なる言語対言語の話に収斂されちゃうのも、なんだかなあ…」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「言語対言語みたいな話は bikeshed として盛り上がりやすいのは、まあわかるんだけどねえ…」 / Twitter
- ǝʞɐɔpuɐsʇɹıɥsʇさんはTwitterを使っています 「@dmikurube 世の中は確率〜」 / Twitter
- uint256_tさんはTwitterを使っています 「プログラミング言語同士の、意味のない比較が多い」 / Twitter
Learned Garbage Collection
- Masahiro SakaiさんはTwitterを使っています 「Learned Garbage Collection https://t.co/JVH3M4pHi2 CPythonのGCタイミングを強化学習で。状態はアロケーションを行うバイトコードのアドレスと現在の使用メモリ量、アクションはGCしないかk以下の世代のGCで、報酬は時間あたりのリクエスト処理数などで、(DQNではなくテーブルを用いる)Q学習。」 / Twitter
- Learned garbage collection | Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
- Masahiro SakaiさんはTwitterを使っています 「いくつか工夫を入れたバージョン&ベンチマークプログラムではCPythonのデフォルトよりも良い結果。Webサーバの例で、GCをOSのI/Oとオーバーラップするような方策が学習出来てたりするの面白い。 スライド: https://t.co/tbBO5kN7Wi 講演動画: https://t.co/RcLvn1zbJd」 / Twitter
- Learned Garbage Collection - Google スライド
- Masahiro SakaiさんはTwitterを使っています 「CPythonではGCはあくまでリファレンスカウンタの補助で、(回収可能な)サイクルが存在しない状態でGCしても無意味というのがやっぱり特殊なのと、あと一般にはコンテキスト(=コールスタック)の情報を何らかの形で状態に含めないとうまくいかないんじゃないかと思った。」 / Twitter
ハザードポインタ
- Ryou Ezoeさんのツイート: "ハザードポインターの概要は理解した。ハザードポインターというのはGCの手段だ。ロックフリーデータ構造では複数のスレッドが同時にポインターを参照していることがあるので、メモリーを破棄するには何らかのGCが必要になる。"
- Ryou Ezoeさんのツイート: "GCをどうやって実装すればいいのか。参照数をカウントしてしまえばいいが、他の方法としてハザードポインターが考案された。"
- Ryou Ezoeさんのツイート: "ハザードポインターの仕組みは簡単だ。 1. スレッドはポインターを使う前にスレッドに紐付けられたハザードポインターにポインターを格納する 2. ポインターの参照するメモリを破棄する前に、すべてのハザードポインターに同じ値のポインターが存在しないことを確認する。"
- Ryou Ezoeさんのツイート: "ハザードポインターにポインターが存在するポインターはどこかのスレッドが使っているので破棄してはいけない。あとで破棄する。ハザードポインターに存在しないポインターはすぐに破棄してよい。"
- Ryou Ezoeさんのツイート: "問題は、スレッドごとにハザードポインターを確保し、必要がなくなったら解放する仕組みを効率よくしかもロックフリーで実装するのが難しいということだ。"
- Ryou Ezoeさんのツイート: "正直ハザードポインターがロックフリーで実装できるならリファレンスカウントもロックフリーで実装できるのでは。"
users
@blackenedgold
Rust
- κeenさんのツイート: "ふむ。メモリ管理やスレッドセーフティに厳格なRustの上になんでもありなGCを実装するのはかなりの苦しみなんだけどやってのけたのか Shifgrethor I: Garbage collection as a Rust library https://t.co/NdA6XdM1K7"
- withoutboats/shifgrethor: research
- κeenさんのツイート: "withoutboats/shifgrethor: research https://t.co/JIPM4BNW5B"
- Shifgrethor I: Garbage collection as a Rust library
- κeenさんのツイート: "これ使ってkappaLisp作り直してみるかな"
- κeenさんのツイート: "そういえばブログ記事、なんか勢いで書いたのでCopy GCのゴミ回収が速いって書いてたけどあれ、多くの場合嘘だよね"
- κeenさんのツイート: "そうか。分散合意しようとすると1つのノードでGCが走ると他のノードにも影響があるのか。 Rust in TiKV · TiDB Blog https://t.co/vTRg2l2TuO"
- κeenさんのツイート: "CopyGCについても言及しようと思ったけど巨大なTree育ててる時点で既にGCコスト払ってるのでいっかと思って放置してました"
- κeenさんはTwitterを使っています 「全てイミュータブルで使われるときにコピーする、それでGCレスにできると思うけどコピーコストが嵩んで恐ろしく遅くなるんじゃないかな?例えばconsなんて何回コピーが走るか怖くてできなくなる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「たとえば、線形論理っていう理論を使って注意深く参照数を高々1にすることでGCを無くしたLisp、liner lispってのがあります。昔、その記事を書いたことがあるので、良かったらどうぞ https://t.co/PN4xfy9RZy」 / Twitter
- GC撲滅への道 - GC Advent Calendar - miura1729の日記
- ACM Sigplan Notices 27, 8 (Aug. 1992), 89-98.
- 1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Let's try ML Kit with Regions
- Home Page
- だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「メモリ管理の手法としては ・スタックのみ ・手動メモリ管理 ・参照カウント ・GC ・リージョン推論 などがあって、それぞれメリットデメリットがあるわけで、既存の手法にあるような欠点を持たない全く新しい手法が無から生まれることは考えづらい」 / Twitter
- だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「もしも全く新しい方法が登場するとしても、いきなり実用的な言語に実装されるのではなく、先に論文が出てそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「処理をトランザクションとして見て、そのトランザクションを終了したらそれに関わるメモリを開放するって言う感じのメモリ管理は組み込みでは一杯やられていそうだし、あんまり論文は無さそうな気がする」 / Twitter
- uint256_tさんはTwitterを使っています 「計算理論 破綻しそう」 / Twitter
- ╹ω╹linguini.leanさんはTwitterを使っています 「@uint256_t どういうふうに」 / Twitter
- uint256_tさんはTwitterを使っています 「@1inguini 事前にどのようにメモリが消費されるのかわかるなら, 停止性問題解けそう (適当)」 / Twitter
@anohana
- Shiro Kawaiさんのツイート: "#tcfm 16回 https://t.co/JfkqRA6N4P VMWareの二重スワップ問題、二重丸め問題とかデュアルGC問題とか、「賢い二者がお互いに相手のことを気づかずに手を出してダメダメになる」みたいなメタな問題構造があるようなないような。"
- Shiro Kawaiさんのツイート: "いや二重丸めやGCは乱択化(一方の賢さを減じる)では解決にならないから別のクラスの問題と考えるべきかな。"
- Shiro Kawaiさんのツイート: "今主流のアーキテクチャ(CPUで選べる場合はOS込み)で、上方向に伸びるのを採用してるのってありますか? 自分でGC書いてた頃はautoconfマクロでチェックしてた覚えがありますが最近気にしたことないなあ… "
histric
histric-1
- Fadisさんのツイート: "shared_ptr、計測してみると割と無視できないオーバーヘッドになってたりするから、激しくポインタをつつくループの前とかでは、「shared_ptrをローカルスコープに置いてその範囲での寿命を保証」した上で「同じアドレスを持つ生ポインタを同じスコープに置く事でオーバーヘッドを回避」は良くやる"
- INADA Naokiさんのツイート: "昨日 #tcfm のQ&Aで紹介していたGCのデバッグ(エンバグしたところからずっと後で問題が起こる)に使ったツール、これです。 https://t.co/lJCIEDXOSB"
- 渋川よしきさんのツイート: "参照カウントも、カウンタの増減を自動化できるかどうかで、GCとしての使い勝手はだいぶ変わるよね。"
- Kentaro Haraさんのツイート: "同僚「去年、家をコピーGCしたときにさー・・・」(邦訳:去年、家を引っ越したときにさー) マイナーGC => 毎週のお掃除 フルGC => 大掃除 コピーGC => 家のお引越し コンサーバティブGC => また使うかもしれないから取っておこうと断捨離できないタイプのお掃除"
- NaOHaq(仮性ソーダ)さんのツイート: "Copying GCだと解放されるTreeのtraverseは起きない。けど代わりに生きているTreeがcopyのためにtraverseされる。 https://t.co/wUbatymBiQ"
- Rockridgeさんのツイート: "Fx57:インクリメンタルGCのスライス時間を調節し、応答性に影響を及ぼすような長い処理停止を抑制。 / “1368972 - Increase slice time for long-running incremental G…” https://t.co/zTA79nT3lL"
- INADA Naokiさんのツイート: "#tcfm Python の GC は言語仕様じゃなくて、実際に PyPy は参照カウント使ってないので with 文使わないとリソース開放が遅延して問題起こしますね。"
- shinichiro hamajiさんのツイート: "世代別GCと命令融合を持ち、従来の最速実装の2倍速く2倍省メモリなインタプリタすごい!(ただし言語はUnlambda)… "
- iroriさんのツイート: "はてなブログに投稿しました Unlambdaインタプリタを作った - iroriの日記 https://t.co/CnBPs0q648 #はてなブログ"
- Unlambdaインタプリタを作った - iroriの日記
- hikaliumさんのツイート: "主流のアーキで上方伸長スタックを採用しているものは聞いたことがないです。(「熱血アセンブリ入門」曰く、xstormy16というマイコンは上方伸長のようです。) 上方伸長だとスタックオーバーフローでreturn pointerを書き換えられずに済むという利点があると知って、なるほどと思いました。… https://t.co/Kx1yOaFH9u"
- Kazuho Okuさんのツイート: "mrb_str_catが非破壊結合だから非効率ってのはそのとおりだろうけど、なんで12GBもメモリ使ったんだろう。GCはlive objectのメモリ使用量の定数倍しかメモリ使わないように設計してると思うんだけど、なにか秘孔があるのかな #builderscon"
- 島鉄雄さんのツイート: "Unity の GC がどうなってるか調べたら Boehm 使ってるのかよ… これじゃゲームがカクカクになるだろうと、更に調べたらみんな苦労して GC が発生しないように頑張ってるようだ。 ゲームプログラマは、ホントによく訓練されてるよ… https://t.co/q3BN03ngjq"
- UnityのGCはどんな実装になっているのか │ Aiming 開発者ブログ
- 島鉄雄さんのツイート: "インタプリタを実装する時には C を使う事が多いけど、例えば Lisp の場合 Object form = list(...); eval(form); の様に書くけど、こうなると form はレジスタやスタックに載ってる可能性があって、GC を行うときにルートから辿れなくなり、コード実行中での GC がほぼ不可能になる。(続く)"
- 島鉄雄さんのツイート: "Bohem GC は、アセンブラを使ってレジスタやスタックにアクセスしてこの問題に対処しているけど、C だけで実装したい場合は、自前のスタックを用意して PUSH(list(...)); eval(); ← 引数はスタックから取り出す こんな感じで全てのオブジェクトを自前のスタックに積むことにより、(続く)"
- 島鉄雄さんのツイート: "コード実行中でも全てのオブジェクトを走査する事が出来て GC が実装可能になる。 要するに、スタックマシーンを実装する事になり、GC の観点からもバイトコードにコンパイルする事は必要な事だという結論に至った。"
- 島鉄雄さんのツイート: "PS4版ドラクエ11の記事だけど、 > まだガベージコレクションに絡む画面のカクつき問題が残ったままになっていました。 > さっき言った画面のカクカク問題の対策は1月から始めて5月まで続いて、すごく時間がかかりましたね。 GC は罪な奴だぜ… https://t.co/j6JneI70KP"
- 島鉄雄さんのツイート: "一方、UE4 ドキュメントには > UE4 のガーベジ コレクションは高速かつ効率的です。 ホントかよ… リアルタイム3Dゲームでカクつかない GC が出来ればいいけどね。 Java11 に実装された ZGC がそうであるんじゃないかと思ってる。 https://t.co/n472hA2m6O"
- 島鉄雄さんのツイート: "でも、ドラクエ11 の成果が UE4 に盛り込まれたらしいから、今の UE4 は大きめのプロジェクトを動かしても、カクカクしないのかもね。"
- Kazuho Okuさんのツイート: "GCの有無の基準は、「いつ回収するか」を意識する必要があるかどうかで決まるんだろうな。その基準でいうと、refcountは「穴があるGC」。Rustの所有権は、いつ回収するかを明示するための手法であって、意識しなくてよくなるわけではない"
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Cのコード生成系をいじって正確なGCをサポートして、LinuxにGCを入れた例がありますね。 (https://t.co/dX31V8jVjT (PDF)) この論文紹介を私が発表したことがありますのでよかったこっちも... https://t.co/RDfj88iarb」 / Twitter
- ismm09-rwrf.pdf
- monochromeさんはTwitterを使っています: 「@miura1729 なるほど!面白いですね。今だとGoで書き直せ、って話になるんでしょうけど。 CRubyには全く使えないな〜と思って読んでいたら、論文中でも動かそうと頑張ってみたけど全く動かないのでさじを投げた唯一の例として挙げられていました。まあそりゃそうだ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにGoで書き直す方が現実的ですね。あの論文を読んでからOSはむしろGCのある言語で書くべきと思っています。CRubyはまあポインタでビット演算しているから無理でしょうね」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 gVisorみたいなバリバリに使われているシステムソフトウェアがGoで書かれて普通に動いているので、実用上も問題なさそうですね。あとはRustみたいな方向性ですかねえ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Rustみたいな方向性は制約が強すぎてリファレンスカウントの山になって却ってよくないと思うんですけどね。定量的な評価がみたいです。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 GoでOS作る話はdrumatoさんが論文紹介していました。ちょっと遅いけどまあまあ良い、という話。 https://t.co/RL8aZUKUP4」 / Twitter
- The benefits and costs of writing a POSIX kernel in a high-level language
- DrumatoさんはTwitterを使っています: 「この論文ではHLLの機能の中でもGCについてフォーカスしていて、 自動的メモリ管理による「安全性」と「パフォーマンス」はトレードオフの関係にあると主張しているんだけど、 あれ、じゃあRustでOSカーネルを実装してC実装と性能比較したみたいな論文って無いのかな? と思ったらあるっぽい https://t.co/8ReN7PGFVe」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 Rustはunsafeなコードを認めていないわけじゃなくて、必要なら範囲を明示して使えるし、unsafeなライブラリ関数も多数用意されているんですよね。あと、標準でスレッド安全が保証されているのは大きいと思っています。(まだ勉強中なので見当違いかもしれませんが」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど、静的解析。昔はOSを高級言語で書くなんてって言われたわけですから変っていくんじゃないでしょうかね」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 OSだとunsafeじゃない部分がどのくらいあるのかな?って思いましたが、結構あるのかな?unsafe割合しだいですが、スレッド安全はありがたそうです。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 リフレクションタワーはリフレクション話で一番面白いところですからね。Rubyはこの辺で出てきた知見を取り入れていますが、タワーが無かったり当初より美しくないですね。まあ、当初のは実装がすごく難しいですけど」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 Ruby、クラス定義とかが不必要なまでに動的に可能で処理系作りながら何なんだこれは…と思っていたんですが、動かしながら自分自身に機能を追加したり変更したりするモデルが念頭にあったんだとすると、なるほど~と感じました。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 この手の話はもともとLispが発祥なんですけど、30年くらい前に色々混乱していたのを整理してリフレクションって名前を付けたものです。この時整理したものをまともに実装すると凄く重いのでいまではリフレクション機能っていうとRubyも含めて昔のLispのもののようなものが多い気がします。」 / Twitter
- ドッグさんはTwitterを使っています 「ガベコレで Eden 領域というのがあって,何だろうと思ったらいわゆる Nursery のことなのか.オブジェクトが生まれるところが Eden で,Young 領域に"追放"される(一度 Young に行くともう戻ってこれない).オブジェクトが犯した罪とは…」 / Twitter
- Shinya KatoさんはTwitterを使っています 「GC が当たり前の言語を使っている人に malloc とか free とかの話しても「何それ?」ってなりそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「GCが当たり前の言語を使っているユーザ、なぜかGCやメモリ管理のアルゴリズムに詳しいという説があってな ... >RT」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonがついに「真の並列化」を達成か? PythonのGCは参照カウントを使っているが、これまで Py_INCREF/DECREF は効率の問題からatomicな処理にできなかった。新しいパッチでは参照カウントを所有スレッド用と別スレッド用に分けることにより、この問題を解決している。 https://t.co/TXaJhNEPsk」 / Twitter
- Yuta OkamotoさんはTwitterを使っています 「Python から GIL (Global Interpreter Lock) がなくなるかもしれないらしい。 https://t.co/49t1XCWQqk」 / Twitter
- Mailman 3 Python multithreading without the GIL - Python-Dev - python.org
- Yuta OkamotoさんはTwitterを使っています 「解説記事。 https://t.co/snp98HkCsW」 / Twitter
- A viable solution for Python concurrency [LWN.net]
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「メモリ管理に関する膨大な資料をまとめたすごいサイト。メモリ管理の概要から、用語集 (500個以上)、研究論文 (約200本)、FAQなど。 https://t.co/sOykoa8guo」 / Twitter
- Home — Memory Management Reference 4.0 documentation
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「H. Bakerによる "Treadmill" ガベージコレクタの解説。よくある stop-the-worldのガベージコレクタと違い、この方式では alloc()するたびに古い領域の回収が行われるため、リアルタイムな処理で使うことができる。 https://t.co/q918UGGtsI」 / Twitter
- a very occasional diary: Treadmill
- 𝔸𝕜𝕚 | logico 💙💛さんはTwitterを使っています: 「キャッシュ局所性を考慮した、GC時のメモリ再配置の最適化手法に関するお話。 https://t.co/uv1YrgGVew」 / Twitter
- Mitigate the relocation degradations for cache locality improvement algorithm – Logico Inside
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「リンディ効果「あるモノ (生物をのぞく) が長生きすればするほど、それはさらに長生きする」 世代別ガベージコレクションが有効な理由。 https://t.co/6hNqH9cAur」 / Twitter
- Lindy effect - Wikipedia
- _ko1さんはTwitterを使っています: 「らんだむほどではないですが、使ってるかもしれんけど使ってなさそうなのを解放、というのは既存研究にありますね」 / Twitter
- まろ@関数型言語作曲機械学習勉強してないさんはTwitterを使っています: 「画期的なGCのアルゴリズムを考えました たぶん今までの手法よりも速いです CPUの投機実行にアイデアを得たんですが、 「ランダムにメモリを開放してみてプログラムが落ちたら戻す」」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「意外といいかも。例えばキャッシュなど無ければ無いでいい領域はほぼ自明で出来るよね。他もプログラム解析と組み合わせると思ったより荒唐無稽な話ではない気もする」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「むしろ一番難しいのは、悪い時に確実に落とすことだな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「wwwwそれGCちゃうスワップや」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「スワップ戦略としてランダム使うの、実際悪くないという話だったなと思ってググってみると ARM Cortex-R のキャッシュはランダムなのか https://t.co/nCxa8D8mm5」 / Twitter
- Cache replacement policies - Wikipedia
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 再利用しちゃったところを参照しに行ったら「落ちずに妙な動きをする」という厄介なパターンになりますよね。 128bitくらいのアドレス空間にして、一度使ったアドレスは二度と再利用しないことにしたらいけるかも。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana 案を考えてみました。メモリ領域を昔のMacOSみたいにハンドル経由でアクセスするようにします。ハンドルはアドレスではなくアロケート時に作る乱数(キー)とxorを取ったものとします。ポインタはハンドルへのアドレスとキーのペアとします。こうすると64bitでは高い確率で落ちてくれると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana 速いかは知りませんが...」 / Twitter
- tracing GC - Google 検索
- 井山梃子歴史館さんはTwitterを使っています 「自動的/手動的 暗黙的/明示的 大域的/局所的 の3軸ぐらいで分類するのが良い」 / Twitter
- GCアルゴリズム詳細解説
- Goでの並行処理を徹底解剖!
- PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ - Google スライド
- 伊津野 英克さんはTwitterを使っています 「GC付きのRustがほしいのは、ほんの一部で限定的にGC使いたいというニーズがあるからだと思うので変な主張ではないと思うけど。w3mは文字列管理にGC使ってたはずで同じように自己参照とか不変だけど可変長データオブジェクトとかはGCの対象にした方が便利だよね、という話ではと。」 / Twitter
- [2110.01098] Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment
カバレッジ測定
gcov
- gcov の使い方 - まめめも
- OpenCppCoverageによるカバレージの計測 (1/2):CodeZine(コードジン)
- gcov(1) FreeBSDドキュメントJMan
- GCCでC言語の分岐カバレッジを試す。思ったのとちょっと違った。 CodingFirst
- gcovでカバレッジテストをしてみる: 綺麗なコードが良い
- タダでソフト開発の生産性と品質を上げる方法(7):高機能な単体テストツール「GoogleTest」を使いこなす(その2) (1/3) - MONOist(モノイスト)
- Cutterでカバレッジ……改良しちゃいます - しがないSEのブログ
- EM+PLS|IoT|サイバートラスト株式会社
- rubyhackchallenge/6_coverage.md at master · ko1/rubyhackchallenge
- Linuxにおけるカバレッジテスト | ~Rhythmical Life~
- C/C++開発環境 - Qiita
- GCC 7 | 10.2 gcovの呼び出し - 初心者入門サンプル
- GCC 7 | 10.4 gcovデータファイルの簡単な説明 - 初心者入門サンプル
- gcov.txt - kandamotohiro
- Dialy & Material book: gccとgcovコマンドを使ってCソースのcoverage(カバレッジ)を測定する
- GCCのコードカバレッジオプションはどのように機能しますか? - コードログ
- QEMU / GDB経由の.gcdaカバレッジファイルの生成 - 埋め込みコードカバレッジ、gcov
- Samuel Jacob's Web Log: GCOV internals overview
- Linux Test Project / Re: [Ltp-coverage] gcov's data files format
- セグメンテーション違反が発生した場合でも、どうすれば“ gcov”を使用できますか? - コードログ
- Gcov - Wikipedia
- Gcov Data Files - Using the GNU Compiler Collection (GCC)
- Coverture
gcov_log_マージ
- gcovのログファイルをマージするツールを拾った && 手直しした - 新・日々録 by TRASH BOX@Eel
- code-coverage – 2つのgcovファイルを1つにマージする方法はありますか - コードログ
- g – gcov/gcovrを使って2つの実行ファイルのカバレッジデータをマージすることは可能ですか? - コードログ
- plugin gcov 警告: サマリーのマージの不一致 - 初心者入門サンプル
- Parasoft Blog: テストを複数回実施したカバレッジのログをマージする
- Using and Porting the GNU Compiler Collection (GCC) - gcov: テスト・カバレッジ・プログラム
- On-line Manual of "gcov"
- 猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう (4/4) - MONOist(モノイスト)
- ブログズミ: [C++] Coveralls でコードカバレッジ - その2
- 「gcov: テスト・カバレッジ・プログラム」 (Using and Porting the GNU Compiler Collection (GCC)) - メモの日々(2006-07-09)
動的コード生成
- Miura HidekiさんはTwitterを使っています 「動的にコードを生成していれば可能かと。この場合カバレッジってどう定義するのか知らないけど」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「カバレッジ100%を超えるということは…実行可能コメントか!!」 / Twitter
- しいたけさんはTwitterを使っています 「カバレッジ……60……75……90…100……120%……!? まだ上がるというのか……っ!?」 / Twitter
- 肉まんさんはTwitterを使っています 「@yuroyoro 開発者「これは……不可能な分岐(vanishment path)を通過した!!!??」」 / Twitter
- hideshisさんはTwitterを使っています 「@yuroyoro 「「超え」」ちまったようだぜぇ。。」 / Twitter
- 中村 実さんのツイート: "100%コードカバレッジの悲劇 / “The tragedy of 100% code coverage | IG Labs” https://t.co/myt2ldH9F0"
- The tragedy of 100% code coverage | IG Labs
- Makoto Kato ︎︎さんのツイート: "テストカバレッジできてないコードは大概怪しいとか、comm-centralでしか使えないコード (absolutely position editor) とかいろいろあるよ https://t.co/jS0TG2oqRj… "
- Using gcov with the Linux kernel — The Linux Kernel documentation
- まさみさんは語りたいさんのツイート: "ftraceのgcovをコンテナ内部で取れるようになった。良い。"
- まさみさんは語りたいさんのツイート: "これでカバレッジテスト増やすんじゃー。"
- まさみさんは語りたいさんのツイート: "lcovの結果を眺めながら、テスト漏れしてる関数を叩くにはどういうテストを掛けばいいかを考えて追加する簡単なお仕事。"
- まさみさんは語りたいさんのツイート: "gcovを使ってftrace内のftracetestとboottestでカバーされる関数を調べ、足りないテストケースを能動的に探し出して追加するというアプローチに出ているが、結構ややこしいケースがあるなあ。"
- まさみさんは語りたいさんのツイート: "GCOVでテストを走らせながらソースコードを読むと、消し忘れたヘルパー関数っていうのが見つかることがある。何かの処理のためにヘルパーを作って使ったけど、使った方のコードが書き直されたせいで使われなくなったhelper関数。これからはトマソンと呼ぼう。"
- まさみさんは語りたいさんのツイート: "トマソンを探せ"
- まさみさんは語りたいさんのツイート: "トマソンというかジャンクコードというかで人文学科か生物学科かが分かる。"
- まさみさんは語りたいさんのツイート: "カバレッジ出来ないコードを削除していくスタイル"
- まさみさんは語りたいさんのツイート: "GCOVはプログラムをコンパイルする時にカウンタを埋め込み、C言語の各行に対応する機械語の生成時にこのカウンタをインクリメントする、という動作をするようだ。問題はarmとかだと規模が大きいカーネルのようなプログラムの場合、カウンタを置く場所が離れてしまい1命令ではインクリメント出来ない"
- まさみさんは語りたいさんのツイート: "なので、恐らくカウンタのテーブルを分割し、コード領域の近くに埋め込んで、一命令でインクリメント出来るようにしている。しかしLinuxカーネル内には.text.exitという領域があって、これは終了時にしか利用しないコードをビルドするんだけど、最終的にリンク時に削除されるようになっている。"
- まさみさんは語りたいさんのツイート: "そうすると、このexitコード用のカウンタテーブルも一緒に削除されちゃうんだけど、当然そんなことを想定していないGCOVの関数からこのテーブルは参照されているので、リンカがエラーを吐きよるわけですよ。"
- まさみさんは語りたいさんのツイート: "多分同様の問題が他の機能にもあったのか、armのリンカスクリプトで、CONFIG_GENERIC_BUGとかCONFIG_JUMP_LABELが定義されていたらtext.exitを削除しないようにするスイッチがあるのを見つけたから、これにGCOV_KERNELを追加したら案の定エラー消えた。"
- uint256_tさんのツイート: "(ASTカバレッジ..?"
- uint256_tさんのツイート: "カバレッジが行数なの, 疑問に思ったことなかったなぁ"
- ccov: printfデバッグを支援するツール - Blog posts by @retrage01
- C・C++用のコードカバレッジツールを自作してみた話
- Rust 1.60.0で安定化されたSource-based Code Coverageを試してみる - matsu7874のブログ
プロファイラ
パフォーマンス計測
その他
- 小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
- 本の虫: cpの速度を計測する方法
- 本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)
- DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
- Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
- 命令単体の性能を計測する
- インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
- Android Studio 3.2 Canaryはトレースサポートの改善、Lintチェックなどを提供
- はじめてのにき(2018-02-19)
- 2018年11月22日 Oracle,eBPFによるDTraceエンハンスのプランを公開:Linux Daily Topics|gihyo.jp … 技術評論社
- パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
- Linuxのパフォーマンス計測ツールの違いとか - Yabu.log
- Makoto Kato ︎︎さんのツイート: "ETWを使ってDTrace likeなのを動かすようにしただけなのか"
- DTrace on Windows - Microsoft Tech Community - 362902
- Next Windows release will include DTrace support | Ars Technica
- 2019年3月12日 Microsoft,「DTrace on Windows」をCDDLで公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 3.3 アプリケーションへのUSDTプローブの追加
- 3.4 USDTプローブの使用
- パフォーマンスカウンタを読んでみる - ziita’s blog
- レイテンシの直感的な理解のためのメモ書き | Qrunch(クランチ)
- 俺の仮想マシンルーターがこんなに遅いはずはない/ KernelVM online 1 - Speaker Deck
- Grafanaが分散トレースシステムGrafana Tempoを発表
- LTTng - Wikipedia
- プロファイラの比較(+簡単な使い方) - Qiita
- Indicium: V8 runtime tracer tool · V8
- ゴリラ@最近🍌食べてないさんはTwitterを使っています 「これ、リプレイ出来るのか 便利そう https://t.co/9tI7Ttl8mZ」 / Twitter
- evilsocket/uroboros: A GNU/Linux monitoring and profiling tool focused on single processes.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ITシステムの性能を測るうえで重要なのは平均ではなく分散である。分散が大きなシステムはピーク時の性能低下も大きい。ユーザは通常よりちょっと遅い程度では気にしないが、大幅に遅かった経験はよく覚えている。災害はつねに「分布の中央ではなく終端で起こる」のだ。 https://t.co/wsPu7zW8lx」 / Twitter
- Why Disaster Happens at the Edges: An Introduction to Queue Theory – The New Stack
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「待ち行列理論はおもに上のような問題を扱っている。使用率 (utilization) が高い状態ではわずかな変動が致命的な遅延にエスカレートすることがわかっている。一般的にシステムの使用率は75%以下をキープし、使用率が高い時は可能な限り分散を抑え、中間層で調整弁的な機能を実装することが重要である。」 / Twitter
BPF
MS
- Making eBPF work on Windows - Microsoft Open Source Blog
- microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows
- FadisさんはTwitterを使っています 「MicrosoftがWindowsのカーネル空間でeBPFの実行を試みているぞ、という話。eBPFはLinuxカーネル空間に専用の中間コードで書かれた命令列を送って実行する為の仕組み。ユーザ空間プロセスのように空間の分離は行われないが、静的解析によってカーネルを破壊しない事を保証する https://t.co/fS2Op5X22p」 / Twitter
- Microsoft Bringing eBPF Support To Windows - Phoronix
- FadisさんはTwitterを使っています 「eBPFのフルネームはextended Berkeley Packet Filterで、元になったBPFはパケットフィルタのルールを記述するために考え出された物だが、カーネルの振る舞いを容易に拡張できるという特徴はあまりにも便利な為、今日のLinuxカーネルではネットワークに限らずeBPFを挟める箇所が大量に用意されている」 / Twitter
- FadisさんはTwitterを使っています 「しまった、BerkeleyでもPacketでもFilterでもないeBPFは今はもうextended Berkeley Packet Filterの略じゃなくて「eBPF」という技術用語なんだった…」 / Twitter
- Miura HidekiさんはTwitterを使っています 「セキュリティーのために(おそらく)消えてしまった(多分)ActiveMessageが名前を変えてまだ生きているのか。胸熱」 / Twitter
- Miura HidekiさんはTwitterを使っています 「静的解析でも抽象解析でも何でも使ってセキュリティーを担保したActiveMessageは分散環境のメッセージパッシングの中で最速だと思う。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Morris Worm、bitの解説記事を見て、すごく感心した記憶がある」 / Twitter
- WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ - Publickey
- MicrosoftがeBPFのWindowsへの導入に向けて取り組んでいる
- microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows
libbcc
- Kazuho OkuさんはTwitterを使っています 「libbcc 使って h2o/quicly/picotls のイベント記録して通信パターンの可視化ツールに放り込んでトランスポート層のデバッグやる話 / https://t.co/TbzssfjHPX」 / Twitter
- Debugging QUIC with H2O and QLog | Fastly
- libbcc - Google 検索
BPF CO-RE
- FadisさんはTwitterを使っています 「OracleがgccでBPF CO-REを吐けるようにしている話。eBPFはカーネルの構造体を直接触る為従来特定のバージョンのカーネル向けにコンパイルする必要があったが、CO-REはコンパイル済みのバイナリに付加情報を載せてロード時に変換することでバージョン間の違いを吸収する https://t.co/xnBmHnDqr1」 / Twitter
- Oracle Working On BPF CO-RE Support For GCC To Easily Run BPF Programs On Any Kernel - Phoronix
- FadisさんはTwitterを使っています 「LLVMには既にBPF CO-REを吐くための対応が入っているらしい」 / Twitter
- 第694回 libbpfとclangでポータブルなBPF CO-REバイナリ作成:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第695回 入門BPF CO-RE:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
睡分不足
- BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
- BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
- BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
- BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
- macでbpftraceを試す - 睡分不足
- bpftrace 2020 - 睡分不足
- SpectreとeBPF - 睡分不足
- cBPFプログラムをLLVM IRに変換する - 睡分不足
- LinuxのBPF : (1) パケットフィルタ - 睡分不足
- LinuxのBPF : (2) seccompでの利用 - 睡分不足
- LinuxのBPF : (3) eBPFの基礎 - 睡分不足
- LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
- LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足
資料
- mumumuさんはTwitterを使っています 「今からeBPFで性能解析とかで遊ぶならどの資料読むのが最短なんだろうか?」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm BPF Performance Toolsとかは?」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm 一方でくそ分厚いのでやりたいベクトルが決まってるならiovisorやbccのissueやフォーラムとかで調べた方が早かったりするかなーー」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm もし全然書いたことなくよくわかってないなら今年のebpfサミットのそれっぽいタイトルのスピーカーの話を聞いてから進めたら楽かも https://t.co/9qzywBBDPj」 / Twitter
- eBPF Summit 2020
- mumumuさんはTwitterを使っています 「@takemioIO うおー,ありがとう.とりあえず何ができるかわかってないので,本買ってみます」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Brendan Gregg 氏の著作では」 / Twitter
- mumumuさんはTwitterを使っています 「@kotatsu_mi あざます,さっそく買って読んでみます!!」 / Twitter
blog
- bcc/eBPFのtraceの使い方を調査 - ソフトウェアプラットフォーム屋のメモ帳
- bcc – BCC – BPFベースのLinux IO分析、ネットワーク、監視などのためのツール – GitHubじゃ!Pythonじゃ!
- Cloudflare architecture and how BPF eats the world
- BCCでBPF toolsの開発をするための基礎知識 - Islands in the byte stream
- h2ologにみるBPF toolsの構造と設計 - Islands in the byte stream
- Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 - Publickey
- BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
- BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
- BPF Performance Toolsを読んだ感想 - go_vargoのブログ
- RustでLinuxカーネルの機能を拡張しよう!Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。 | nttlabs
- RubyKaigi takeoutでRuby to BPF compilerの話をした話 - ローファイ日記
- Linux eBPFトレーシング技術の概論とツール実装 - ゆううきブログ
- eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
- クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた - Publickey
- eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場 - Publickey
- Linux eBPFトレーシングのツール実装に必要な知識の体系化と動機 – さくらインターネット研究所
- Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植 - Publickey
- Linxuカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開 - Publickey
- 詳説 eBPF 概論編 - VA Linux エンジニアブログ
- セキュリティキャンプ講義の復習 - writeUP ↑↑↑
- 詳説 eBPF 実装編 - VA Linux エンジニアブログ
- eBPFに3日で入門した話 - CADDi Tech Blog
- eBPFでお手軽?ファジング - ラック・セキュリティごった煮ブログ
- eBPFを用いたネットワーキングやセキュリティなど、AWS、Azure、Googleの3大クラウドが採用。Isovalentが明らかに - Publickey
- IETFでeBPFの標準化の議論 - ASnoKaze blog
- 「eBPF」がクラウドネイティブを超強力にする。eBPFとは何か? 何ができて、どんな利点があるのか? Cloud Native Days Tokyo 2022基調講演から - Publickey
技術評論社
- 第688回 eBPFのコンパイラーに対応したツールでさまざまな挙動を可視化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第690回 BCCでeBPFのコードを書いてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第692回 sysfsやbpftoolを用いたeBPFの活用:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 2022年に注目したいCloudNative関連技術:新春特別企画|gihyo.jp … 技術評論社
infoQ
- eBPF FoundationがeBPFの機能と採用のさらなる進展を目指す
- eBPF と Wasm: サービスメッシュデータプレーンの未来を探る
- Solo.io、eBPFの開発を容易にするBumbleBeeをオープンソース化
@IT
- BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方 (1/2):Berkeley Packet Filter(BPF)入門(5) - @IT
- Berkeley Packet Filter(BPF)入門 - @IT
- BPFのアーキテクチャ、命令セット、cBPFとeBPFの違い:Berkeley Packet Filter(BPF)入門(2)(2/2 ページ) - @IT
Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm BCC - BPF Compiler Collection https://t.co/jtyVfOQPY6」 / Twitter
- brendangregg/bpf-perf-tools-book: Official repository for the BPF Performance Tools book
- iovisor/bpftrace: High-level tracing language for Linux eBPF
- FadisさんはTwitterを使っています 「eBPFをコンパイルしてカーネルに流すBCCはPythonでラップされていてPythonから使うのが一般的だけど、RubyistだからRubyラッパーを作ってRubyから使ってみた、と #kernelvm」 / Twitter
- udzura/rbbcc: BCC port for MRI - this is unofficial bonsai project.
- FadisさんはTwitterを使っています 「LinuxのBerkeley Packet Filter(BPF)の実行環境は元々パケットフィルタをユーザ空間で書いてカーネル空間で実行するために導入されたが、カーネル空間に任意の処理を安全に突っ込めるのはとても便利なので今日ではカーネルのありとあらゆる任意の処理を書きたいところに応用されている。」 / Twitter
- FadisさんはTwitterを使っています 「色々な用途で使うとBPFの中でブロックする必要がある処理を書きたくなってくるが、現在のBPFの実行環境は処理を中断できるように作られていない。そこで、一部の用途に限りBPF_F_SLEEPABLEをつける事で中断可能な実行環境で実行されるようにしよう、という提案がなされている https://t.co/0ijGZ9cpVg」 / Twitter
- FadisさんはTwitterを使っています 「中断可能なBPFが再開時にRCUでアップデートされるリソースの古いデータを握り続けていると解放済みのデータを参照してしまうため、中断可能なBPFでは代わりにリソースに対するアクセスに制限がかかり、BPFのロード時のチェック内容が変化する」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.13から使えるようになった「BPFからカーネルの関数を呼ぶ機能」についての話。eBPFはカーネル空間で実行されるものの、従来カーネルの関数を呼べないようになっていた。Linux 5.13からeBPFを実行するcontextが認める関数に限り、eBPFの中から呼べるようになる https://t.co/GTHYT0g4Qq」 / Twitter
- FadisさんはTwitterを使っています 「これは「BPFでTCPの輻輳制御を使うのに、カーネルの実装が使えずBPF用を実装する必要があるのが辛い」問題を解決する為に入った物だが、カーネルの関数は将来ABI互換を壊さない事を保証していない、雑なcontextがチェックを省略するとカーネルの万物がユーザ空間に公開される等色々な懸念が生じている」 / Twitter
- GDBがeBPFのデバッグをサポートした
- GNU Debugger Adding eBPF Debugging Support - Phoronix
- Takekazu Omi 🖖さんはTwitterを使っています 「USENIX LISA2021 BPF Internals (eBPF) https://t.co/7zLiXWwOJy eBPFは、BPFと呼ばれるようになりました。 https://t.co/OrErxaZ0j0」 / Twitter
- USENIX LISA2021 BPF Internals (eBPF)
- daem0nc0reさんはTwitterを使っています 「eBPFを用いたRootkitの検知手法。eBPF for Windowsを使えばこの手法がWindowsに使えるのかは気になるところ https://t.co/2bqLKu4KFM」 / Twitter
- Detecting Kernel Hooking using eBPF | pat_h/to/file
- Early Patches Bring BPF To The Linux Scheduler - Phoronix
- FadisさんはTwitterを使っています 「米国の小売大手Walmartが同社の通販サイトで使っているL3AFをOSS化した話。L3AFはLinuxのXDPでパケットを操作するeBPFのコードを複数連結し、その構成を複数のサーバにオーケストレーションする物。OSS化に伴いL3AF準拠のeBPFモジュールのマーケットプレイスも作るらしい https://t.co/cMe1BtjSg1」 / Twitter
- Walmart Pushes Open-Source L3AF To Help Out eBPF Ecosystem - Phoronix
- FadisさんはTwitterを使っています 「XDPはLinuxに数多くあるeBPFを挟める箇所の1つで、NICのハードウェアにパケットが入ってくるとあらゆるネットワークスタックの処理よりも先にXDPのコードが実行される。DDOS攻撃の回避や別のホストへのパケットの転送を重いネットワークスタックに入る前の段階で行うのによく用いられる」 / Twitter
- FadisさんはTwitterを使っています 「LinuxのeBPFにループを作るための新しい方法が提案されている話。eBPFはLinuxのカーネル空間で実行されるコードをユーザ空間から挿入する仕組みで、範囲外のメモリを触らないか、ハングしないか、といったチェックをカーネルが静的に行う事でカーネルを破壊しない事を保証する https://t.co/wDYJxflTah」 / Twitter
- FadisさんはTwitterを使っています 「eBPFのコードが終了するかを確認するのはeBPFのコードにループがあると難しくなる。eBPFのコード上では高級言語のループの情報は失われているため、ループのチェックではプログラムがとりうる状態の木が分岐の回数に比例して増えていく。この結果ループを含むeBPFのチェックには時間がかかりがちだった」 / Twitter
- FadisさんはTwitterを使っています 「この問題を避ける為にeBPFの新しい関数bpf_loop()が提案されている。bpf_loop()はループ回数とコールバックを引数に取り、その回数コールバックを実行する。bpf_loopのcallがeBPFに残る為、カーネルはコールバックをカウンタが指定された範囲の値になりうるループと見做して効率よくチェックできる」 / Twitter
- yuuk1さんはTwitterを使っています 「ついにきてた。eBPFによるサイドカーなしのサービスメッシュの実装。Observabilityでは、OpenTelemetry & Jaegerの連携をサポート、ゴールデンシグナルメトリックの公開。TLS終端やHTTP認証にはPer-Node Proxyが必要。 / “How eBPF will solve Service Mesh - Goodbye Side…” https://t.co/t13VHpzBKK」 / Twitter
- How eBPF will solve Service Mesh - Goodbye Sidecars
- yuuk1さんはTwitterを使っています 「認証じゃなくて認可か」 / Twitter
- FadisさんはTwitterを使っています 「RedhatがLinuxの入力デバイス(HID)サブシステムにeBPFを挟めるようにするパッチを投げている話。eBPFはカーネル空間で実行するコードをユーザ空間から安全に挿入する仕組みで、HIDにeBPFを挟む事でおかしい動きをするデバイスの為にドライバに対応を入れる必要がなくなる https://t.co/LJXFGYj28K」 / Twitter
- Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
- FadisさんはTwitterを使っています 「入力デバイスは基本的に同じプロトコルを喋るデバイスを沢山のベンダーが作っている為、共通のプロトコルを喋っているようで一部で標準的でない動きをするデバイスが多数存在する。これらの違いに対応する為のコードをeBPFにしてカーネルから分離する事で、新しいデバイスに素早く対応できるようになる」 / Twitter
- BCC(BPF Compiler Collection) for Ruby - Speaker Deck
bpftrace
- 高梨陣平さんのツイート: "DTrace 2.0なる、bpftraceについての紹介記事。freeBSDのbpfがeBPFとしてLinuxに搭載。DTraceの大ファンがそのVMを利用する形で一から実装。まだDTraceの全ての機能がある訳ではない。歴史の部分が面白い。Sunが体力に物を言わせてDTraceを実装するもLinuxはRHが先行するも普遍的なものが無しに。… https://t.co/XkwfmBxF3q"
- まさみさんは語りたいさんのツイート: "トレーサでスクリプト書きたい場合はbpftraceがメインになるだろうなあ。stapは結局カーネルと一体化していないし。ただ、トレーサって実装が必ずカーネルと乖離するので、その上でどうマネジメントしていくかは思案のしどころ"
- まさみさんは語りたいさんのツイート: "ところでbpftracer、ローカル変数アクセス機能ちゃんとつけたんだっけ?いつも忘れてしまう。Huaweiの人を昔手伝った記憶があるんだけども・・・。"
- まさみさんは語りたいさんのツイート: "Diamonとかいろいろな動きがあるんで、トレーサは群雄割拠している感じがすごい。基本的にはみんな協力していて、ユースケースが違うだけなんだけど。"
- まさみさんは語りたいさんのツイート: "この前もなんかプローブポイントを設定すると、バージョンが変わったりコンフィグ変わったりすると使えなくなるんだけど、どうしたらいい?とか聞かれたから、それはstable ABIじゃないし、ソースコードが変わると変えざるを得ないよね、っていう話をした。"
- まさみさんは語りたいさんのツイート: "Dtraceに引き続き、SystemtapもeBPFベースに実装を変えてくれないだろうか・・・。まあそうするとStapgamesは多分全滅すると思うけど。"
- まさみさんは語りたいさんのツイート: "stapgamesで厄介なのはループを多用するっていうところだから、その点をなんとか出来れば解決できるのではないか。"
- bpftraceを使ってバイナリの謎の性能劣化を突き止めろ - Cybozu Inside Out | サイボウズエンジニアのブログ
strace
- strace コマンドの使い方をまとめてみた - sonots:blog
- 第11回「 strace ノススメ」 | NTTデータ先端技術株式会社
- straceコマンドの使い方 - Qiita
- straceを使ったデバッグ | OSDN Magazine
- strace - Wikipedia
- straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
- プログラムから呼ばれるシステムコールを確認する:strace:Technical tips:Media hub
- よく使う strace のオプション - Qiita
- kati とか依存関係とか strace とか - straceが遅い
- naoさんのツイート: "Linuxで動くとあるシミュレーターの評価版がアホほど遅くて評価にならないのでstraceかけて眺めてみたら馬鹿みたいにusleepを発行。ptraceで特定のパターンのみusleepを無視するラッパを作成・実行して本来の性能なら問題ないと確認できたのでめでたく購入、ということがあった。"
- Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する - hibomaの日記
- strace 5.2 で追加された -z -Z オプション - hibomaの日記
- strace -c を使う際に -w オプションを使い分けよう - hibomaの日記
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「たまに、strace の unfinished と resume を繋げたログを見たいことある」 / Twitter
ltrace
- dlopen()した共有ライブラリ内の関数呼び出しをltraceする - Qiita
- Debian -- sid の ltrace パッケージに関する詳細
- ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ
- tips – ltrace で共有ライブラリの関数呼び出しをトレースする|てくめも@ecoop.net
- ltrace - Wikipedia
- ltrace(1): library call tracer - Linux man page
- straceとltraceでトレース - Szarny.io
- AWSがElasticsearch Serviceに分散トレースを追加
- sltrace.dvi
- 第17章 システムモニタリングユーティリティ
- IBM Knowledge Center - 一般的なデバッグ手法
perf tools
- perfの使いかた
- perf - Wikipedia
- perf使ってみた - Qiita
- :matsuu:さんのツイート: "Linux perf profilerのGUIクライアントらしい。ほう / “hotspot - a GUI for the Linux perf profiler - KDAB” https://t.co/2GoKwlWmGs"
- hotspot - a GUI for the Linux perf profiler - KDAB
- Linuxのperfプロファイラ向けGUI「hotspot 1.0」が公開 | OSDN Magazine
- Dockerコンテナが遅くなるもう一つの原因 | POSTD
- まさみさんは語りたいさんのツイート: "バックトレースも一緒に取る? ちなみにどのロックインスタンスが、というのはたとえアドレスが出たとしても難しい。その場合そのインスタンスに関わる別のオブジェクトのインスタンスを調べないといけなくて、その意味をさらに追いかけないといけない。… https://t.co/SzF0ktKSoI"
- まさみさんは語りたいさんのツイート: "perf probeでinline関数をプローブすると、場所的にはcallerの方の行が表示されちゃうのか。ややこしいな。"
- Linux perf Examples
- Kazuho OkuさんはTwitterを使っています 「perf って定期的にプロセス止めてスタックをトラバースしてるのかな。だとすると遅いCPUでは、スタックが深い奴ほど重たく表示される?」 / Twitter
- 成瀬さんはTwitterを使っています 「@kazuho 多分途中まで取ってあとで合成してるんじゃないかなって気がするのと、call-graphオプションでスタックトレースの取得方法を選べますが、dwarfの場合は遅いかもですがlbrは速いです https://t.co/X32R7pRx0X」 / Twitter
- perf-record(1) - Linux manual page
- てらモス♋️さんはTwitterを使っています 「perfがカーネルに依存しているのはカーネルがCPUのPMUの違いを吸収していてくれるからなので、コンテナ内で使うにはむしろnvidia-smiみたいにホスト側のperfコマンドをコンテナ内から見えるようにするのが筋ですね…(´・ω・`)」 / Twitter
- Perf Tutorial 1
- てらモス♋️さんはTwitterを使っています 「perfのプロファイラとしての利点は元のプログラムに変更を加えずにCPU側から情報を取ることで本来の状態に近い状態でプロファイルが取れる、そもそもCPUしか知り得ないキャッシュミスとかの情報をとってこれるなどがあるはず(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「gprofみたいに-pgフラグをコンパイル時につけることで関数呼び出しにフックをつける見たいな事をせずに済むわけだ...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「逆にgprofはあくまでglibcまでのレイヤーで頑張るのでユーザー空間のみで完結するのが利点と言えるですかね?」 / Twitter
- perf を使った性能分析 - VA Linux エンジニアブログ
ベンチマーク
AMD と Intel
- Kazuho OkuさんはTwitterを使っています 「Ryzen 向けの governor 信頼してないから、いいっちゃいいんだけど、なんで最大周波数セットできる値がコアによって異なるの? 同一物理コアのハイパースレッドですら違うw https://t.co/y6jBHB6Y1H」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「速度制限無視する奴の速度制限読み取り能力を云々してもしょうがないんじゃないんですか」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「IntelのCPUだとデチューンして確実に、分散の小さな綺麗なベンチマークが取れるし、Intel CPUのことだけ考えてチューニングしたい」 / Twitter
- satさんはTwitterを使っています 「@kazuho ハードウェア固有のところに踏み込んだRASを含めた細かいところはまだまだIntelの独壇場だと感じます。AMDの石はperfの結果すらあってるのかどうかわからなかったりしますし」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@satoru_takeuchi 昔はプログラムが時々落ちるレベルで泣いて直したって聞きました!!!」 / Twitter
スーパーコンピュータ
- Hideyuki Tanakaさんのツイート: "なんか何一つ正しいことが書いてなくてやばいですね…これ書いた人は一体どこで勉強して書いたのか、あるいは何かの目的のためにうそを自覚しながら記事を書き連ねたのか…?… "
- 新国産スパコン開発 日本製はGreen500で上位独占
- Hideyuki Tanakaさんのツイート: "やばすぎる記事だ(´・_・`) / 1件のコメント https://t.co/lehpuGBNbI “新国産スパコン開発 日本製はGreen500で上位独占” (1 user) https://t.co/15VN7jrGcp"
- Hideyuki Tanakaさんのツイート: ">違いはTOP500は簡単な計算を繰り返す理論上の最大能力、Graph500は複雑な計算をさせることで、TOP500のほうは低性能機材でも高い数値が出る。 Top500は密行列の連立一次方程式を解く速度、Graph500は無向グラフの幅優先探索をする速度、別にどっちも複雑な計算ではない。必要なリソースが違うだけ。"
- Hideyuki Tanakaさんのツイート: ">TOP500はスパコンを構成するユニット1個の理論上の性能から全体の数値を推測し、100倍だなとか1万倍だななどと計算しています。 >たとえ本物のコンピュータは1個だけで他は段ボールを並べただけであっても、TOP500では世界一を取れます。 違います。Top500は巨大な方程式を解くタスクの実行性能です"
- Hideyuki Tanakaさんのツイート: "ちゃんとスケールするように構成しなければTop500で世界一は取れません。現在のスパコンでは、特にネットワークがボトルネックになってくるので、ほかの典型的なアプリと比べても少なくないネットワーク帯域が必要だと思います。"
- Hideyuki Tanakaさんのツイート: ">中国のスパコンは段ボール製なのか、「神威太湖之光」や「天河2号」は一度も全体を稼働させたことがありません 全体というのがよくわからないですが、昨今の巨大システムでは常時数%は死んでいるのを許容する方向性なので、そういう意味ではそうかもしれないけど、基本的には全系動いてましたよ。"
- Hideyuki Tanakaさんのツイート: ">一つ一つのユニットが低性能でも数をたくさん並べれば数字が大きくなるのがTOP500で、しかも実際にユニットが存在するか誰も確かめていないのです。 二度目だけど、これは嘘です。"
- Hideyuki Tanakaさんのツイート: ">もうひとつのGreen500はユニット単位の省エネや計算速度を競うもので、実はこれが本当のスパコンの性能です。 Green500のスコアっていうのは、Top500のスコアを単に消費電力で割ったものです。Top500が無意味というなら、自動的にこれも無意味です。この人Green500のことわかってないでしょ"
- Hideyuki Tanakaさんのツイート: ">中国スパコンがやっているのは「市販のパソコンでも数多く並べれば合計で世界一」のような手法で、だから段ボールコンピューターになります。 そういうのやってるのはXeonとV100ならべてるやつに行ってあげて欲しくて、中国のTaihuLightは独自アーキの独自チップ並べてるからその批判はおかしい。"
- Hideyuki Tanakaさんのツイート: ">日本がやっているのはユニット単位の性能を向上させて少ないユニット数にする手法で、このほうが実用的です。 そんなことはやっていませんね。ポスト京のチップを一度見てみるといいですよ…。"
- Hideyuki Tanakaさんのツイート: ">Green500は日本製のスパコンが上位を独占していて、すべてが実際に稼働し利用されています。 これは好ましいことだし、まあそうあってほしいんだけど実際にはその中の最大級のシステムが、なぜか殺されましたね…"
- Hideyuki Tanakaさんのツイート: ">中国の「神威太湖之光」や「天河2号」は先ほど書いたように製造以来現在まで、一回もユニット全体を稼働した事がありません。 天河2号はしらないけど、神威太湖之光は実際に動いていましたよ。まあこんな記事に対して超絶今更だけど、一体どういう根拠なんだろ。"
- Hideyuki Tanakaさんのツイート: "(´・_・`)いやしかし一行ごとにでたらめが書いてあるこの記事やばすぎひん?"
- Hideyuki Tanakaさんのツイート: "いや大げさじゃなくまじで1行ごとにうそが書いてあるんだけど、このブログのほかの記事はどうなんだ(´・_・`)…詳しくない分野はわかんないから、詳しくない分野でこういうブログがあるんじゃないかと思うと、怖くなってきたゾ…(´・_・`)"
- Hideyuki Tanakaさんのツイート: "よく誤解される?のか変なプロパガンダ流してる人がいてそれの影響受けてる人がいる?のか知らないけど、Top500が単純な演算の繰り返しで、Graph500が複雑なタスクとかいうのは、全然そんなことはなくて、Top500はLU分解、Graph500はBFSというどっちもシンプルなアルゴリズムで、"
- Hideyuki Tanakaさんのツイート: "1コアCPUで動かすならどっちも10行程度のCのコードで書けるものです。並列化する際にボトルネックになるところが違ってくるので、計算機のどの辺が一番先に問題になってくるのかを測る指標の一つとして使われとるっちゅー話ですよ。Graph500が一番ボトルネックになるのはネットワークですね。"
- Hideyuki Tanakaさんのツイート: "Graph500では演算性能はほとんどいらないので、スコアはシステムの総インターコネクト帯域にほぼ比例すると思われて、京はそういう意味では6次元メッシュトーラスのTofuがいまだに世界1という話で、ほかのスパコンはそこまでのネットワーク帯域はいらないだろうという判断になっているという話では"
- Hideyuki Tanakaさんのツイート: "というか、Graph500、いったいどういうアプリに関係する性能なのか(ビッグデータ云々と宣伝してるけど、こんな恣意的に並列化しやすい形した無向グラフを単にBFSすることなんてあるか?)謎なのか?、500という名前なのにエントリーが248しかないのを何とかしてあげて"
- Hideyuki Tanakaさんのツイート: "単一始点最短パスの要するに枝に重みがついたバージョンも最近できたんだけど、エントリー数が21しかないので何とかしてあげてほしい(´・_・`)"
- Hideyuki Tanakaさんのツイート: "Green Graph のエントリー復活してた(´・_・`) IBM Moscow && MSU Alex Kolganovなるサイトのマシンがトップなのか(´・_・`) https://t.co/eE7RtJJZZh"
- Hideyuki Tanakaさんのツイート: "しかしスケール30(わずか10億頂点)、1ノードのマシンがトップ…というかランキングのほとんどが1ノードっていうの、完全にコンセプトとして破綻していますよね…"
- Hideyuki Tanakaさんのツイート: "10位にマックブックプロが入るスパコンベンチがあるらしいな(´・_・`)… "
- Hideyuki Tanakaさんのツイート: "スパコンの実用性能ランキング10位にマックブックプロが入ったらしい(棒)"
- くそでかいイリエワニがみたい!@転職活動中さんのツイート: "https://t.co/7Yx3Y2RYSr ベンチマークのとり方うんぬんの話が出たので、そっとこれを置いておきます。"
- How to run a stable benchmark // Speaker Deck
- SODA Noriyukiさんのツイート: "RTしたスライドにもちょっと出てるけど、環境変数の量の違いでスタックのアライメントが変て性能が変化したみたいな話もあったなあ。"
- 前田敦司さんのツイート: "https://t.co/dxsyGqWs34 に同じような話があります.(図1(b)や,4.2節)… "
- Producing Wrong Data Without Doing Anything Obviously Wrong!
- Hideyuki Tanakaさんのツイート: "どのベンチにするかと言っても、結局は理論演算性能とB/F比とネットワーク帯域のバランスで一番先にボトルネックが来たとこに引っ張られるだけなんだから、この三つの要件どこが一番厳しいのかもアプリにもよるから、どれそれが実アプリ性能だなんて宣伝してたらそれは全部嘘ですよ。"
- Green500 Lists | TOP500 Supercomputer Sites
- TOP500 Lists | TOP500 Supercomputer Sites
- SODA Noriyukiさんのツイート: "今回のIntelの件で言うと、firmwareの更新前と後での比較なので、ハードウェアその他含め厳密な比較が容易にできるのでこの論理じゃ弁護できないと思う。… "
- SKSの申し子さんのツイート: "ベンチマーク非公開ねぇ.俺も反対ではあるんだけど,ベンチマークって正確に取るのって難しいんですよね.特に世の中には他の人が再現出来ないベンチマーク記事を公開する人はそれなりにいて,更にセットアップとかが間違っていることが結構あって,そしてそれを信じてしまう人が結構いる.悩ましい…"
- SODA Noriyukiさんのツイート: "ベンチマークの取り方が悪いのって確かにホントに多いんだけど(例えばディスクベンチでディスクじゃなくて、カーネルの持つpage cacheからユーザ空間へのメモリコピー性能計測しているのってホントによくある)、今回のケースでは、そういうベンチマークで差がでてもやはり問題なわけで。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windows系でも、本当に多いのですよね、これ。 さらにキャッシュの影響を排除した後も、HDDだと物理的なアロケート位置の変化=速度変化、SSDだとユーザ要求以外の処理がSSD内部で不定期に発生(+温度問題)などは、試行回数を増やして誤差を減らすしかなかったり。… https://t.co/zRdsLEqCCz"
- SODA Noriyukiさんのツイート: "ディスクの割り当てブロックの問題は、umount して毎回 newfs して mount し直してから測るとか、UNIX系なら raw device で計測するとかいろいろあるけど、SSDのケースは厳しいなあ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "HDD/SSDのデバイス性能を調べたい時はその通りなんですが、一方で、コピーソフトの性能を調べたい時は、真っ新な状態でのテストだと実用的な計測になりづらいんですよねぇ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、適度に使用したファイルシステムのrawブロック群を、ddで毎回復元してから…が最強なんでしょうけど、1回のテストに掛かるコストが厳しい(笑)"
- SODA Noriyukiさんのツイート: "newfsまでするのは稀で何回か測ってバラつきが少なく整合性のある結果が出ればそれでヨシにしちゃうことが多いです。自分で測る時はraw deviceに対するバンド幅/レイテンシ計測みたいに簡単に測れてベースラインとして使える値は必ずとるんですが、人にお願いするときにはそれも面倒なことがorz… https://t.co/uxQe5y68ez"
- Huawei製スマホで3DMarkの自動ブーストが発覚 - PC Watch
- OPPO製スマホのアプリ名による3DMark最適化は「ある意味妥当」 - PC Watch
- 本の虫: コンパイラーを負かす
- 404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark
- Kazuho OkuさんはTwitterを使っています 「ベンチマーク取る際に「CPUの割り当てを〇〇にして、クロックを△△Hzに固定します」って言うと、その時点で「えっ」って言われることがあって、こっちが「えっ」ってなる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ロードアベレージ見る場合とかクロック固定必須じゃないですか...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ひさしぶりにテスト機にログインして「おっそいなー」とか思ってると、CPUコア1個のみ、1GHz固定、みたいな状況のまま、前回の実験から放置されてるとか、ありがち」 / Twitter
B/F比
- B/f値とキャッシュ | Pravdaの日記 | スラド
- チュートリアル資料2.key
- 第一原理計算入門 計算機科学 理解への道
- SC11 - 京の技術を向上させた富士通の新スパコン「PRIMEHPC FX10」 (1) ピーク演算性能が前世代比で約2倍に向上したSPARC64 IXfx | マイナビニュース
- 0613watanabe.pdf
- どの分野の開発難易度が低いのか?(最新HPC事情に思うこと。)
- SODA Noriyukiさんのツイート: "そりゃ勿論、メモリバンド幅を向上させること自体は(それが妥当なコストでできるなら)望ましいことだからですよ。京の次世代がHBM載せるのもそういう理由。ただし、コストは上がるし、トレンドとしてメモリバンド幅を要求するアプリは徐徐にHPCの主流から外れていくという話です。… https://t.co/5FHRUypJb9"
ptrace
- るくすさんのツイート: "多分ptraceレベルで出来ると嬉しいのって、breakとかmalloc/freeみたいなツールによって決められたタイミングごとのインスペクトを回避してオレオレができちゃう所だと思っていて、それってなんだろうなぁ...結局よくできたトレーサーで出来ちゃうんじゃないの?とか"
- Kazuho Okuさんのツイート: "言語によらず手軽に障害解析できて便利… "
- るくすさんのツイート: "そこを推すのもありですねぇ… "
- Kazuho Okuさんのツイート: "あとはオーバーヘッドが小さくて実環境で使えるところですかね。 https://t.co/AJFflFrYok にあるように、プロファイルを取り続けるとか… "
- DeNAインフラの今とこれから - 今編 -
- るくすさんのツイート: "そう。インフラ屋さんとかいかにもケースに応じたプロファイラとか書いてそうだなと思ってたんだけどやっぱやってんすね"
OProfile
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ぬぬ、最近は oprofile を debian の apt 経由でインストールできないのか…"
- OProfileの使い方備忘録 - hogeなlog
- Oprofileによるボトルネックの調査 メモ - Qiita
- 第23章 OProfile - Red Hat Customer Portal
- About OProfile
- OProfile - A System Profiler for Linux (News)
- Oprofile | IT用語辞典 | 大塚商会
- Oprofileを使用してプロファイルを取る | 組み込みLinuxのArmadilloサイト
- OProfile - Wikipedia
- OProfile | 日経 xTECH(クロステック)
- openSUSE 13.1: 第8章 OProfile—システム全体に対するプロファイラ
ipftrace
- ipftrace: A Linux Function Tracer for Network People - Speaker Deck
- FadisさんはTwitterを使っています 「SystemTapは指定したカーネル関数の実行を見張るが対象がはっきりしないと使いにくい→ftraceはカーネル全体の関数を見張れるが、出力が多すぎてつらい→ネットワーク屋が見たいのは特定のパケットが通った関数だ→ipftrace #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「ipftraceの戦略: Linuxでパケットを処理する関数はだいたい引数にsk_buffをとる→この構造体を引数にとる関数を全部フックする→ターゲットのパケットにマークをつけておいて、フックはsk_buffにマークが付いていたら出力 #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「iptablesのアクションでマークをつけるからiptablesのルールでいろんなマークのつけ方が出来るのめっちゃ賢い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「Linuxカーネルはキャッシュヒット率を上げるためにsk_buffをできるだけ使いまわそうとするため、アドレスが再利用されてトレースが続いてしまう事がよく起こる、と #kernelvm」 / Twitter
- YutaroHayakawa/ipftrace2: A Linux function tracer for network people
SystemTap
- SystemTap - Wikipedia
- SystemTap とは何ですか? どのように使用しますか? - Red Hat Customer Portal
- SystemTap ビギナーズガイド
- SystemTap
- 第14回「 SystemTap ノススメ」 | NTTデータ先端技術株式会社
- SystemTap メモ - myokotaの日記
- Linux のイントロスペクションと SystemTap
- systemtapを使った動的追跡 | Let's Postgres
- SystemTap - Wikinote
- Linux向け追跡ツール「SystemTap 4.2」リリース | OSDN Magazine
DTrace
- まさみさんは語りたいさんのツイート: "モダンと言っていいのかどうか・・・方向性が違うのだと思う(誰が使うかを含め)。ちなみにR社内ということは、Linuxに移植されたDTraceと言ってるのはSystemTapのDTraceラッパーですね。DTraceスクリプトをSystemTapスクリプトに変換してから使う。… https://t.co/wRpBgI7kYv"
- まさみさんは語りたいさんのツイート: "これややこしくて、実はO社の人は今でもDTraceをLinuxに移植しようとしているんです。あとDTraceはアドミンがシステムモニタをスクリプト化するためのツールだけど、Linuxのftraceとかはカーネルハッカーがデバッグするためのツール。eBPFはその中間かなあ。"
- まさみさんは語りたいさんのツイート: "なぜこうなるかと言うと、DTraceはトレースするイベントの種類が規定されている(そうでないとスクリプトが環境依存になってしまう)けど、Linuxはカーネル実装をコロコロ変えたいから、そこで代表的な挙動が規定されてしまうと困るわけです。デバッグ用途ならそういう規定は緩くてもいい。"
- まさみさんは語りたいさんのツイート: "つまりOSの代表的な挙動というものを想定するか、それともデバッグ用途と考えて挙動の規定はいつでも変わると想定するか(あくまで可能性や自由度の話)、それによってツールの性質が変わる。挙動を想定する場合、実装にまで踏み込んだイベントは規定できない。"
- まさみさんは語りたいさんのツイート: "でも実装に踏み込んだイベントを導入しなければOS自体のデバッグ用途には使えないので、どうしても2種類の実装が必要になってくる。eBPFやSystemTapはスクリプト言語は規定するけど、イベントは規定していないはず。これは苦しい解で、実装が変わるとスクリプトが動かなくなる可能性はある。"
- まさみさんは語りたいさんのツイート: "今私自身はftrace/probe-eventのメンテナンスをしているけど、これは本当にデバッグ用途だけを指向しています。OS実装のデバッグをするためにbreakpointを追加したいという用途。はっきり言ってアドミンには不向きなツールだけど、OS開発には役に立つ。"
- まさみさんは語りたいさんのツイート: "逆にアドミン向けにDTraceみたいなのが必要になるとは思うけど、それをネイティブに実装するか、SystemTapやeBPF上に実装するかは、どれだけネイティブ実装するメリットがあるかという話になるんじゃないだろうか。(個人的にはいくら聞いてもそのメリット部分がよくわからない・・・)"
- Takafumi Yonekuraさんのツイート: "Dtraceでdebugに使うのはほぼfbtプロバイダ だけで、スクリプト用途はシステム系のプロバイダで割とうまく共存してると思います… "
- Takafumi Yonekuraさんのツイート: "でも、fbtプロバイダは若干貧弱なので、もう少しリッチな独自プロバイダが欲しいな、となると途端にめんどくなる印象。"
blktrace
- blktrace User Guide
- VOYAGE GROUP エンジニアブログ : blktraceによるI/Oトレース
- 6.3. ツール
- blktrace(8) - Linux manual page
- Etsukata blog: blktrace で block IO の分布を可視化する
- Disk I/O性能測定するときに活躍する道具たち - お菓子食べる部
ftrace
Qiita
- ftraceについての勉強メモ - Qiita
- Ftraceでカーネルの一部の処理を追いかける方法 - Qiita
Twitter
- まさみさんは語りたいさんのツイート: "ftracetestで出来ることに限界があった。(bpfとperf関係はツールが必要・・・)"
- まさみさんは語りたいさんのツイート: "うーん、ftrace内部をkprobeでトレースしてみてるけど、イベント記録中の処理からは多重にイベント記録が出来ないのか。取り敢えず各所に置いてみてどこを経由してるかだけでも調べるなど。"
- まさみさんは語りたいさんのツイート: "ftraceをコンテナ内部から操作した場合、pid filterが使えないことに気がついた。(当たり前だが) コンテナ内部から使えちゃう時点で問題な気がしなくもない。"
- まさみさんは語りたいさんのツイート: "clangでLinuxのクロスコンパイルする話を聞いていたらftrace on armを有効にするとビルド失敗するっていう話があって、それmcountのシーケンスがちゃうからやでーっていうコメントしてた。"
- まさみさんは語りたいさんのツイート: "recordmcount.cっていうベタなプログラムを走らせて、各アーキテクチャ毎のmcount呼び出しシーケンスを確認しながらnopに変えるという処理をしているけど、コンパイラ実装が違うとシーケンスが違うから失敗する。あとはclangがどういうコード生成するのかに依存。"
- まさみさんは語りたいさんのツイート: "clangを使ってビルドしても、自動的にlldは使われない(gccのldが使われる)ので並列リンクは実行されないけど、誰かがそれとは別にlldを使うパッチを書いているらしい。探さないと(主にDeveloperBox向けに)"
- まさみさんは語りたいさんのツイート: "ftraceの中でmutex依存関係の地獄に悩まされている。リソースをget/putしない造りだからだ・・・。"
- まさみさんは語りたいさんのツイート: "まあ、Linuxだと簡単な統計データを取る用途だったら、DTrace要らないからなあ。既にevent-based histogramはftraceに実装されている。"
- まさみさんは語りたいさんのツイート: "kprobesをworkqueue関係の関数に突っ込んで10分ぐらいしたらrcuでエラー起きるっていうバグが報告されているんだけど、どうもredhatカーネルの上だけで起きているのではないかという気がする。あとこのあたりの関数は突っ込んでも全てftraceになるんだが・・・。"
- まさみさんは語りたいさんのツイート: "念の為全部+5したアドレスでもプローブしてみた。10分待ってみよう。"
- まさみさんは語りたいさんのツイート: "これ豆知識だけどx86-64のftraceは基本的にfentryの機能のため関数の最初5バイトにjmp命令が入るので、kprobesでその5バイトを避けると確実に命令境界になる上ftraceの対象にならない。"
- Kazuho Okuさんのツイート: "trqce-bpfccはコマンド指定して動かすオプションがないからbpftraceをsnapで入れたらオプションはあるけどexecveが見つからんとか言うから自分でビルドしてデバッグするかと思ったらubuntuのclangの付属ファイルが足りなくてupgradeで直る予定って書いてあったからアプグレしたけもダメ"
- Kazuho Okuさんのツイート: "MySQL が Userspace DTrace Probe を deprecate する決断をした翌年に linux 界隈が bpftrace で(DTrace 2.0だって)盛り上がるの皮肉だなぁ"
- Kazuho Okuさんのツイート: "bpftrace、masterで-cオプションがだいたい動くんだけど、probeが有効になる前に実行開始するから取りこぼしが発生してて、単純にexecveを遅延するとプロセス起動前だからprobeがセットできなくて、つまりはptraceでexecveタップしてほげほげやればいいんだけどめんどくさい"
- まさみさん⋈語りたいさんはTwitterを使っています: 「ふーむ、ClangにShadowCallStackという機能があるのか。これのkernel implementationでkretprobesが使えなくなるっていう話が出ている。 https://t.co/a1DWiGQGYt」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「スタックとは別の場所に影のコールスタックを用意しておいて関数呼び出し元を記録、戻る時にスタックを使わず、影のコールスタックを用いるとのこと。あれ?これfunction graph tracerじゃね?」 / Twitter
- function graph tracer - Google 検索
- まさみさん⋈語りたいさんはTwitterを使っています: 「kprobesを関数の頭にセットすると自動的にftraceが使われる機能は実装されてる。ただしkprobeの呼び出しに変更するためのトランポリンが使われる。今回のは、これをbpfにも適用できるよう変更したってことかな。多分レジスタセットを作らずにBPFで使うcallar savedレジスタだけ保存するのだろう。」 / Twitter
- トレーサ関連に大きな進展、ftraceがデファクトに?(1/2) - @IT
- 3.8. レイテンシ追跡用の ftrace ユーティリティの使用
- 6.5. ftrace
- https://www.kernel.org/doc/Documentation/trace/ftrace.txt
- 組み込み Linux - ftraceのトレースログをお持ちいただくには
- ftraceの仕組みとアーキテクチャ - テストステ論
- 第4回 Linuxイベントトレース最前線:LinuxCon Japan 2013 Preview|gihyo.jp … 技術評論社
- Ftrace と Systrace - steps to phantasien
- perf, ftraceのしくみ - 睡分不足
- 2019年4月26日 関数トレースをグラフィカルに実行する「KernelShark」,正式リリースに向けロゴ募集中:Linux Daily Topics|gihyo.jp … 技術評論社
- Fadisさんのツイート: "KernelShark初の安定版となるバージョン1.0が近くリリースされるらしい。KernelSharkはLinuxカーネルのftraceをtrace-cmdでダンプした物をGUIで表示するツール。カーネルの関数のcallやreturnがいつ発生したかをズームしたりフィルタしたりして眺めることができる https://t.co/xpXTZdD2jE"
- KernelShark 1.0 Soon Being Released For Visualizing "Trace-cmd" Linux Kernel Tracing - Phoronix
- perf, ftraceのしくみ - 睡分不足 (1)
バウンド
- :matsuu:さんのツイート: "CPUバウンドならWSLの方が高速、I/OバウンドならVirtualBoxの方が高速。なるほど。 / “Windows 10 WSL vs. VirtualBox Ubuntu Performance On An Intel C…” https://t.co/dFgfewLApr"
- チャネル・コントローラ - Wikipedia
- コンピュータ・アーキテクチャ - Wikipedia
- CPUバウンド - 英和辞典・和英辞典 Weblio辞書
- CPU boundの意味 - 英和辞典 Weblio辞書
- I/O boundの意味 - 英和辞典 Weblio辞書
- サーバ負荷を確認する方法 - Qiita
- CPUバウンドとGPUバウンド – ひにけにGD
- Node.js - nodeでのCPUバウンドな処理、分散処理への考え方について(child_processを使う?clusterを使う?)(31995)|teratail
- CPU バウンド・サービス
- コマンドによる「負荷」の原因切り分け
- I/O バウンド・サービス
- サーバ/インフラを支える技術4 Linux単一ホストの負荷を見極める 2 負荷とは何か - by shigemk2
- Clojureのいろんな並行処理の使い分け - tyano's Techlog
- サーバが重いときの対策メモ - 目の前に僕らの道がある
Twitter
その他
Intel PCM
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 64bitでドライバ開発は署名問題で若干面倒というのはあるが、それ以上に、そもそもIntel PCMをVS2017+WDKでビルドしようとすると、あちこち手直しが必要で骨が折れる。 Intelさん、最新VSに追随する気が薄いのかな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "リリースビルドプロジェクトに_DEBUGが付いていたり、CLR必要なものとそうでないものが入り混じっていたり、warning大量発生したり…linuxやMacと共通コードしようと頑張っている風だが、だったら極一部だけCLR利用とか中途半端感が。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ようやくIntel PCMドライバをカーネルに入れて、関連サービスも登録して、パフォーマンスモニタで監視。だが、いまのところ決め手になる情報は取れていない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "上記の図を解説すると…。 キャッシュライン版とAVX2版のIPCは同レベル。 そして、AVX2のほうが L2/L3のキャッシュミス率はずっと高い。 しかし恐らくReadキャッシュのために実効的なペナルティとしては、キャッシュライン版の方が影響が大きく、AVX2の方が2倍高速だった、というところ。… https://t.co/TwTUKx387Z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この時点ではメモリ帯域用のドライバが入っておらず(これはgithubのgoogle配下にあるsysを入れる必要)、Read/Write帯域は0のままだった。"
histric
histric-1
- とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
- まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
- とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
- まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
- まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
- まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
- とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
- とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
- とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
- とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
- satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
- まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
- まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
- satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
- まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
- satさんのツイート: "perf最強です。もう頭が上がらない… "
- まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
- まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
- satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
- satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
- まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
- まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
- C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
histric-2
- まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
- まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
- まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
- まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
- まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
- まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
- まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
- まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
- Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi bcc-toolsにはいってるcachestat、キャッシュメモリの利用状況みるのによさそうです。ディストリビューションによって微妙に名前がちがったりするのが難です。 https://t.co/bKfHTxjsPA」 / Twitter
- sat📒さんはTwitterを使っています 「@moriwaka ubuntuだとbpfcc-toolsのようですね。べんりそう。ありがとうございます。perfよりはとっつきやすそう」 / Twitter
- H1karu SA1T0@クソ雑魚インフラエンジニア🐈さんはTwitterを使っています 「linux performance tool 👀 メッチャ良いなこの資料 https://t.co/nnCe2M9J4z https://t.co/YHVX2LAx5W」 / Twitter
- linux_perf_tools_full.png (3000×2100)
- 令掛ベインさんはTwitterを使っています 「Iteratorがループごとにアロケーションするのが気になったので、ベンチマークを取ってみた。ループ中にはアロケーションしないような抽象と比較した。数百万回のループでこの差なら許容範囲っぽい / https://t.co/amtG9ktKsc」 / Twitter
- playground/2022-01-18-iter-loop-benchmark-ts at 00a94dbc6d451bd155dabd3fa0417e0f6fc9df72 · vain0x/playground
- Kazuho OkuさんはTwitterを使っています: 「システムパフォーマンス解析の友である flamegraph だけど、そういえば ruby のプロファイラも対応してるのかなと思ったら、ちゃんとあった。すばらしい https://t.co/cA3xZcboF5」 / Twitter
- oozou/ruby-prof-flamegraph: Easily find bottlenecks in your Ruby code. A ruby-prof printer that prints fold stacks compatible with FlameGraph
- Kazuho OkuさんはTwitterを使っています: 「スループットの話に戻る。全力ダウンロード中のflamegraphみるとこんな感じ。[unknown]のうちヒゲが生えてない部分がrubyコード実行中(ヒゲは受信処理のsoftirq)。カーネル内でのパケット送信処理に割と時間食ってることがわかる。 https://t.co/nTLJobirVj」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「細かく見ていくと、ipip6トンネル経由で送ってるv6パケットは、v4パケットの半分くらいの量なのに(v6で出ていくのはackだから)、時間がv4の4倍くらいかかってるとか。ひょっとするとv6化までrubyでやると良いのかもしれない。 あと、tun_rx_batchedって名前が怪しいなと思ってググると、...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「パケットごとの書出がボトルネックになるから対応したいみたいなコミットが出てくる https://t.co/DsUCS8YZRf NATの場合、一度に複数パケット読んで書きたいから、sendmmsg / recvmmsg 使いたいとこだけど、ruby にありましたっけ...」 / Twitter
- [net-next,V3,3/3] tun: rx batching - Patchwork
- Kazuho OkuさんはTwitterを使っています: 「先例を探すと tailscale が似たようなことやったブログ記事書いててすばらしくて、TSO, GSO, GRO あたりのキーワードがひっかかるけど、segmentation offload はNATにはあまり意味がない気がするんですよね(バルクフローが単一の場合に最適化するの?という) https://t.co/ZoepTV1b99」 / Twitter
- Userspace isn't slow, some kernel interfaces are! · Tailscale
- Kazuho OkuさんはTwitterを使っています: 「あー上掲 flamegraph の svg は https://t.co/ThWehJBMOh にあります」 / Twitter
- https://gist.githubusercontent.com/kazuho/e8fef79568a21bcd23063c838fef1b86/raw/c2ed50900300cfc3e62ee12fc534e973c7378e6c/rat.svg
- Kazuho OkuさんはTwitterを使っています: 「サーバのメトリックとか取る時に便利なやつ」 / Twitter
- matsu卯さんはTwitterを使っています: 「ああ、これらのアルゴリズム知らなかった。参考にさせていただく。 / “インクリメンタルに複数の時系列データに対する平均・標準偏差を計算する” https://t.co/jUs4GcIr8L」 / Twitter
- インクリメンタルに複数の時系列データに対する平均・標準偏差を計算する
- Kazuho OkuさんはTwitterを使っています: 「一方で分位数(パーセンタイル値)をインクリメンタルに概算するアルゴリズムもあって、論文は https://t.co/sZnpG1jz53 で実装は https://t.co/V7d7CArIvQ」 / Twitter
- sigmod01_quantiles.pdf
- h2o/gkc.h at master · h2o/h2o
- RyotoさんはTwitterを使っています 「gdbやstraceはptrace(2)を呼んでて、実行を止めてしまうので副作用が大きい #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm 代表的なツール gdb, strace: ptrace(2)を利用(実行パフォーマンスに影響大) perf: perf_event_open(2) (ユーザーランド側の処理が多くパフォーマンスに若干影響あり) bpftrace, BCC: bpf(2), perf_event_open(2) (カーネル側で実行されるのでオーバーヘッドが小さい)」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「ftrace/systemtapもフィルタリングをカーネルで実行するよ。 #kernelvm」 / Twitter
- 各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安 - Qiita
- 計算の高速化のために必要なこと: メモリの観点 - Qiita
- 𝘼𝙧𝙧𝙖𝙮-𝙨𝙖𝙣さんはTwitterを使っています 「このページ、知見の塊やんけと思ったら、詳解システムパフォーマンスの著者だった。 https://t.co/uGQUy63JyN」 / Twitter
- Brendan Gregg: Overview
- ytakanoさんはTwitterを使っています 「複雑性の科学、大まかなパラメータはわかるんだけど、それをパフォーマンスチューニングとかにどう活かせば良いのかがわからない。」 / Twitter
- ytakanoさんはTwitterを使っています 「ある構造にフラクタル性を持たせて、1次元上のスケールでパフォーマンス向上させるとかになるのかな。」 / Twitter
遅いコードの改善
- herumiさんはTwitterを使っています 「@kazuho @syohex 遅くなってるときはfrontend_retired.dsb_missの値が極端に大きい。 https://t.co/TiuEAKRAI2」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @syohex ありがとうございます!!!!!! これはつまり、uop cacheでコリジョンが発生してるってことなんでしょうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「やっぱり gcc -O3 に頼るとコードがデカくなりすぎるから、 -O2 で同等に動作するように、自前でループあんロールとかするのかなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「uop cache collision ってそういうことだよね。facebook の bolt とか使うとマシにはなるんだろうけど、コードサイズでかいのはそもそもよくない」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kazuho __attribute__((hot)) 使うとかどうでしょう? 特定の関数だけ、他より積極的にアライメント取ってくれないかな。」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho @syohex コリジョンというか、ptls_fusion_aesgcm_encryptの最内ループでアンロールできてないところが足かせになってパイプラインがつまっていた感じです。 こんなふうにしたら大分ましになりました。 https://t.co/Qz13rOFyH9」 / Twitter
- unroll · herumi/picotls@cadd1e4
- herumiさんはTwitterを使っています 「@kazuho -O3でも先程の手動unrollはread-modify-writeが並列実行しやすそうに並んでました。いくつか試す限りでは顕著に遅くなるということは減ってるようです。https://t.co/Byh0OTf8tq のO3-before.txtとO3-after.txt 変動が大きいですが元のコードはストールすることが多いです(with-2.png)。」 / Twitter
- picotls/result at master · herumi/picotls
- Kazuho OkuさんはTwitterを使っています 「@herumi ありがとうございます。手動アンロールとuop cacheへのプレッシャーという示唆をいただき https://t.co/uzbKp3SzmI を作りました。僕の環境で、手動アンロールは -O3 の自動アンロールと速度差がなかったのですが(続く)」 / Twitter
- Optimize for size, while unrolling the hottest loops by kazuho · Pull Request #308 · h2o/picotls
- Kazuho OkuさんはTwitterを使っています 「@herumi 、大きなループの手動アンロール廃止と組み合わせることで、半分以下のコードサイズで同等の速度がでるようになりました」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi 当初の問題 https://t.co/gh0JxvBq4A についても、コードサイズが大きく変わったから確かなことは言えませんが新コードの -O2 -fno-unroll-loops では問題が発生しないことは確認できました」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @syohex このスレにやってきた人が解決策にたどりつけるように貼っておきます。問題を修正したPRはこちら https://t.co/uzbKp3SzmI 原因は端的にいうと、コードがでかいわりに無駄が多くて、あちこちに負荷がかかっていたことでした」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今はCPU系の高パフォーマンスのためには、disasで眺めても、perfでキャッシュミスを観察するだけでもダメで、遂に uop-cacheの効きを観察せねばならんのか、、、面白すぎる(笑) StackOverflowにも uop-cache絡みの話が出ていた。 https://t.co/KdcRmh496p https://t.co/24yQj82qp3」 / Twitter
- performance - 32-byte aligned routine does not fit the uops cache - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そのうち、コードを書いていると「これだとuop-cacheの効きが悪くなりそうだ」とかピンと来るようになるのかしらん? 下記レベルやTLB, L1, pagingなどは意識していたが、uopレベルはさすがに気にしていなかった。 https://t.co/X5UIyCl0nH」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「しかし(データならともかく)プログラムコードのアドレスがちょっとずれただけで30%も性能が落ちることがあるなんて、イマドキのCPUでの最適化作業って辛いすぎ… https://t.co/2PnxVPe5HH」 / Twitter
- Improving LLVM-Generated Code Size for X86 Processors - Ansari-Code-Alignment.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @herumi @syohex このあたりの コードの32byteアライメント問題で良いのですかね。 https://t.co/3QCZHChS9i https://t.co/KdcRmh496p」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho @herumi @syohex https://t.co/87fJsE6Yd1 という話なので DSB が問題ってとこまでは間違いなさそうです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「uop意識したループのコツ解説があった。 コード整列に問題がある場合、1-2clock / iterのペナルティがある感じかな…最悪値は 1ループのuop数が23,24の場合で、6 → 8clock / iter となり、33%の性能劣化と。 (この周辺以外だと差は相対的に小さい) https://t.co/JA8qYHjy8C https://t.co/5w9f7a5DzI」 / Twitter
- assembly - Is performance reduced when executing loops whose uop count is not a multiple of processor width? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ループ内を融合済uop数でカウントして(一覧資料あり)、33~63opsで4N+1 や 4N+2 ならループ展開したほうがいいとか、そこまでやるか的なコツが書いてある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CPU外部から見えないはずの uOp / uOp-Cache が、僅かな命令位置依存の性能変化でその輪郭が顕在化する様子は、物理学で直接見えない / 取り出せない存在を間接的な輪郭から推測 / 確認する姿と似ているかも(笑)」 / Twitter
- herumiさんはTwitterを使っています 「みなさん、いろいろ情報ありがとうございます。 Intelの最適化マニュアル3.4やB.5.7章にフロントエンドのストールの細かい話や調査方法が載ってるのですが、複雑です。元の問題は@kazuhoさんが解決されてるので時間を見て調べてみようと思います。 https://t.co/LmxipbOUzs https://t.co/bfvojMN3zK」 / Twitter
- xxqiさんはTwitterを使っています 「DSBだとこのエラッタを踏んでいそうな気が https://t.co/dmuo3bW6IG https://t.co/YKhJXwwMiH」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「https://t.co/VnDfTOsrIf 命令が間に合わなくなるの、 PS3 の cell のバグ(?)を思い出した。あれも 128B の空間に load/store がたまたま集まってしまうと命令フェッチが間に合わなくてストールするとかで、一切使ってない関数を消したら遅くなったりして大混乱してた思い出 https://t.co/sWA0ZzqyBP」 / Twitter
- Hack the Cell - なんとなく全く使ってない関数消したら速くなった/遅くなった!
パフォーマンスチューニング
負荷試験
- Kazuho OkuさんはTwitterを使っています: 「CPUがメモリアクセスでストールしているか気にすることは大切だけど、それ isucon (で対象となるようなウェブアプリ)で必要なチューニングなの? という疑問。もっとSQLクエリの書き方ミスってるとかスケールアウトの設定できてないとかそういうやつじゃないの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「http の負荷試験に関して僕が言いたいことがあるとすると、ab は使うな、くらいかなぁ。遅いのでクライアントサイドがボトルネックになってないか確認しながら使う必要があってめんどくさい。イベントドリブンなマルチスレッドで動くwrk、あるいはhttp2ならh2loadあたりがオススメかと」 / Twitter
- \助けよや/😱さんはTwitterを使っています: 「確かに ab はクライアント側でサチるので、クライアントPCを4台くらい用意して一斉に動かしてサーバ負荷の実験してた思い出。」 / Twitter
- \助けよや/😱さんはTwitterを使っています: 「そういえば、PC性能よくなった今はハブのネックが気になったりするのだろうか。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「wrk とか使ってても、受信側は原理的に送信側よりもメモリ負荷がでかくならざるを得ないので、(ネットワークボトルネックじゃない場合は)クライアント複数台必要になる印象です。まあよほどいいNIC使ってなければネットワークボトルネックになるけど https://t.co/H0THOs8awo」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「定量的な話をしておくと、僕の開発環境で ab は 100k reqs/sec くらいでサチる。サーバ側が50スレッドだとするとリクエスト生成時間0.5msくらい」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「結局、サーバの全てのcpuコアを1スレッドのabで相手にすることになる問題なので、サーバが小規模だったりアプリかなり軽くない限りは問題にならないし、SREの人なら見たらクライアントボトルネックと気づくと思うんだけど、まあ最初からwrkで複数スレッドからリクエスト投げた方が楽だよねと」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「「topだとCPUがメモリストールしてるのかわからない」という批判は良いとして、irqが偏ってる例を上げるなら、それこそまさにisucon本が言うようにtop -1したら気づく問題だし、まあperf使って気づいてもいいんだけど、perf使うとしても時間測定だからメモリストール無視する使い方だよね、とは思った」 / Twitter
- くまぎさんはTwitterを使っています: 「「つっこみことがたくさんあったからQiitaにまとめてたけど多すぎてやめた」とあるけど、単純に突っ込んでるうちに自己矛盾に気づいてしまって自分に実はつっこめるだけの知識が無いことに気づいたから書籍マウントなツイートでごまかしてるように見える。言い訳せずに長文のまとめ記事を書きあげろ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「恐れていた通り、パフォーマンスチューニングと負荷対策がごっちゃだ… 二つは別です。 性能対策 … パフォーマンスチューニング 負荷対策 … スケールアウト戦略」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「性懲りもなくSynthetic Monitoringを外形監視って書いている。もうどうしようもないな。 Syntheticの意味が分かってない。 フィッシャー三原則も分かってない。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「topはもう使ってはいけないのだよ。 topは正しい数値を取れないから。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「結局、M/M/1は出てこなかった。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「ポアソン分布/指数分布も出てこなかった…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「何で勉強してから書かないんだろうね…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「結構な数の引用元が記載されているんだけど、ベンダーの都合に合わせて書いてる技術情報を参照してはいけないです。 その技術情報が「正しい」という保証は無いのだから、検証して確認しないと… 結局ベンダー情報寄せ集め本になっていて、これじゃ高速化しないよね…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「何が正しいかは、結局は基礎から学ぶしか判断方法はないんです。 パフォーマンスチューニングの基礎理論の本は洋書で何冊も出てる。 統計的品質管理、ポアソン分布、M/M/1キューイング理論、実験計画法… 何のために本を出すのか? 日本の技術者に誤った教育をしたいのですか?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「ベンダーは自社で実装されたものについて、正しい情報を出すけど、それが効果があるかどうかは、話が別です。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「言っとくけどAPMを停止するだけで、コンテキストスイッチ、25〜30%削減できて、高速化するんよ。 観察者効果って学んで、そういう弊害があると知ってAPMをデプロイするのと、知らないでやるのでは全然違う。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「同時並行処理性能という謎な用語の説明に、 ・並行処理(Concurrency) ・並列処理(Parallelism) が混ざってます。 レスポンス受信完了までの時間はレスポンスタイムと云います。 pingに代表されるように、RTTは、Acknowledgementが返ってくるまでの時間です。 https://t.co/Mc5flzGTOz」 / Twitter
- Round-trip delay - Wikipedia
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「topについては、2017年にNetflixのパフォーマンスエンジニアがBusyの値にWaiting("stalled")が含まれると指摘して、以降パフォーマンスカウンタを見るのが一般的です。 VMwareでも、パフォーマンスカウンタを仮想マシンから見られるオプションが入ってるでしょ。 https://t.co/a2VWtkJvFZ」 / Twitter
- CPU使用率は間違っている | Yakst
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「CPUとメモリの間のI/Oのボトルネックを解消すべく生まれてきたのが、AppleのM1を始めとするCPU群なわけですよ。パフォーマンス界隈では、メモリのボトルネック解消が焦点になってるんです。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「コンピュータの基本動作は、Function Point法でアレン・J・アルブレヒトが示したように、 ・EI ・EO ・EQ ・ILF ・EIF の5つで示すことができるのですから、そういう先人の知見を使いましょう…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「「図1 Webアプリケーションのレイテンシを時系列に並べたグラフの例」では、Y軸はちゃんとレスポンスタイムになってる。RTTどこいった?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「負荷試験の箇所も、私はファーストフード方式とレストラン方式って呼んでるけど、ファーストフードみたいに、次から次へとリクエストを捌く場合の試験結果と、レストランみたいに待機時間を挟んだリクエストの試験結果って違うわけで、アメリカの商用負荷試験ツールはそこがきちんと分かれてる。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「perfは、パフォーマンスチューニングで必須なんだけど、記載がない。eBPFは紹介だけ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「それで、負荷テストの「特異点」って何? すっごく気持ち悪いんだけど。 システム理論の特異点の事? 負荷テストのコンテキストで使われるのは、初めてみるんですが…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「JMeterだって、定数タイマーやガウス乱数タイマーが実装されて、ファーストフード方式の負荷テストをしなくなってるのに…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「パフォーマンスチューニングの実務において、折れ線グラフは使わないです。 基本的には散布図を使います。 どうしてかというと、データの散らばりの「構造」を確認したいからです。 散布図は、層が形成されていると分かりやすいのです。 層の数だけ、要因があります。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「このようなグラフだと、これがどのような構造のデータか分からないんですよ。 また、パフォーマンスはパターンはあるので、このような短期分析だと日次パターンかどうかの判断が下せない。 また週次パターンもあります。 https://t.co/P5VwxfBxId」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「もし、これがパターンとして現れている場合には、放置できず、何が要因になっているか、詳細を調べたほうがいいんです。 でも、大した差じゃないからって、調べないでしょ? それが後々、何かの負荷増大とかで、遅延や大きな障害を引き起こすトリガーになったりするんです。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「実務では、CPU使用率より、実行待ちの数の方を見ることが多いです。 CPUが使えるなら、どんどん使って高速に計算処理させた方がいいからです。 だからCPU使用率を低く抑えることが必ずしも良いわけではない。 そこで空間計算量と時間計算量のバランスの話になる。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「それにCPUの割当の問題がある。 手動で明示的にAffinityさせる場合と、自動でAffinityされている場合で違う。 だから、CPU使用率なんて、役に立たなくて、CPUのコア単位で見なくちゃいけないし、そのコア毎のプロセス単位で分析しないといけない。 手動CPU Affinityのせいで遅延とかあるし。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「そのプロセス単位の分析の時に、どうやっても、perfは欠かせないのですよ。 perfなしに、どうやって遅延の関数を特定するんかい?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「たとえばこれを鵜呑みにしてたお客様がいたの。 "Coherenceの場合、クラスタ・メンバーをホストするすべてのサーバーにイーサネット・カードの割込みをバランシングすることで、大幅なパフォーマンスの向上が得られる可能性があります。” https://t.co/xNL3DwJ0P0」 / Twitter
- パフォーマンス・チューニング
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「でさ、perfで分析したら、ネットワークの処理待ち時間でストールしてんの。 CPU使用率低いのにおかしい、なんでだ?って調べたら、あるCPUにネットワークのIRQ Affinity設定していて、他のCPUは空いてるのに、そのコアだけ使用率高くて、ネットワーク処理がボトルネックだったわけ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「このようにperf抜きで、サーバ側のパフォーマンスチューニングはできるわけないのよ。 なのに、どうして、それを抜いてるの?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「APMを入れても、Observabilityは獲得できんよ。 パフォーマンスチューニングは、総合格闘技みたいなもので、幅広い分野の大量の知識と豊富な経験がないとできないから。 ツールがあれば、お手軽にできるなんて、そんな夢を抱いてパフォーマンスチューニングやるなら、時間の無駄だから止めなよ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「でも、その果てしない鉄人レースみたいな世界が好きだっていうなら、歓迎だから、統計学、統計的品質管理、コンピュータサイエンス、ソフトウェア工学など猛烈に学んで欲しい。 「達人が教える」ってつけたのは技術評論社の商売の都合かもしれないけど、達人ならそういう内容の本であって欲しい。」 / Twitter
histric
histric-1
- Kazuho OkuさんはTwitterを使っています 「イベントループが何かの処理でひっかかることってあると思うんだけど、linuxのプロファイラでその原因を特定することってできるのかな。gprofが定期的に集めるスタックトレースのスナップショットに、イベントループの何回目の呼び出しかを記録しておけばできそうな気がするけど」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出てこなくなってからが本番やで?」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出て来てるところがメモリコピーとかの必要なコストだけになって来てから、もう、アイデア勝負。どれだけ汚くない最適化をほどこすか。」 / Twitter
- 0から始めるNode.jsパフォーマンスチューニング | kohsweblog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「プロファイリングとメトリクスの違い: メトリクス: 短い間隔でとられる、自由に選ばれた時系列データ プロファイリング: あらかじめ決まった指標を長い期間でとられる、スタックトレースと紐付けられる統計 #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「自由に」と言うより「自発的に」と言うべきか #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうプロファイリングの結果表示方法初めてだ。網羅的で分かりやすい #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「継続してprofilingするために、バージョンとrevisionをビルド時に埋め込んでおこう。」 / Twitter
- k0kubunさんはTwitterを使っています 「perf-profile既に爆裂に便利だけど、(インライン化されてて存在しない) インライン化元のフレームをdwarf読んで計算してカウントできれば更に便利な気がするが、できるのかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「これ、当初は割と荒いサンプル取ってて 「パケットサイズが1320バイト超えるあたりで特性が変わるのは何かTCP/IPスタックにMTUサイズに近いパケット向きの最適化が入ってるんじゃないか」 みたいな推論してたし、統計から裏にあるモデルを推論するのは常に注意が必要。 https://t.co/7wiU0l5Ejp」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ワークセットが27KBあたりになるあたりで数%速度が低下するの、これL1キャッシュの壁なんだろうなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そして、ソフトウェア実験だから仮説を確認するためにサンプル増やした結果、当初の仮説を棄却することができた、という話。他の分野だと、なかなかこうはいかない。 なお、結論としては、パフォーマンスカウンタの値も見ずにL1キャッシュのせいにするようなエンジニアは信用ならない、です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックプレッシャーなしでデータ書いてるからメモリ不足に陥りそうなものなのに、なんでCPU利用率100%でサチるのかなーって思ったら、バッファ量が増えてmemmoveのコストが支配的になる、という変なバックプレッシャーが働いてた」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Ryzenに対する最大の不満は、linuxで使う際にCPUクロックの細かい制御ができないところです(できないよね?)。ベンチマーク条件いじりづらいじゃん!」 / Twitter
- Intel VTune Profiler の使い方 - Qiita
- 144447146.pdf
- ドッグさんはTwitterを使っています 「tracy っていう C++ のフレームプロファイラ便利そう | 'wolfpld/tracy - Bitbucket' https://t.co/wZx7l0ndJx」 / Twitter
- wolfpld / tracy — Bitbucket
- New RelicがJFRを利用したリアルタイムJavaプロファイラを提供
- [Ann] ABBench: Lightweight Microbenchmarking Library | Weekly news about Pharo
- hurutoriyaさんはTwitterを使っています 「記事でも参照させていただいた @hagino3000 さんとの会話、もう一年前なのか。時が経つのは速い。」 / Twitter
- システムの応答速度は本質的な価値提供であることを示す A/B テストの実例 | Shunya Ueta
- hurutoriyaさんはTwitterを使っています 「システムの応答速度は速いほど正義ですが、実際にどれ位速くなれば定量的にどの程度ビジネスインパクトがあるかを示したA/Bテスト事例についてまとめた。誰もが信じる直感を定量的に検証する姿勢が素晴らしい / “システムの応答速度は本質的な価値提供であることを示す A/B…” https://t.co/RyYIfEm5cZ」 / Twitter
- sjiさんはTwitterを使っています 「プロファイラ作ってるとわりといかようにも情報つけたり足したり整形したりできるコールトレースが得られ、このコールトレースというのは簡単にデータ量を沢山手に入れられる比較的有機的な感じのデータであり、なにか面白い使い方があるような気がしているものの思いつかない」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 「20%のコードが80%の時間を使っている」ボトルネック論はほんの入り口で、プロファイラでどのコンポーネントも均等に2%づつ時間使ってるようになってからが本番」 / Twitter
- プロファイラのしくみ - Backnumbers: Steps to Phantasien
- プロファイル測定 | VA Linux Systems Japan株式会社
- VS2017 15.8プレビュー2でCPUプロファイリング、F#サポートが改善
- flamegraph プロファイリング - Google 検索
- 無料でウェブページのパフォーマンスを一発可視化できるツール「Firefox Profiler」レビュー - GIGAZINE
- Choosing a .NET Memory Profiler in Visual Studio - part 1 - Visual Studio Blog
- 計測ことはじめ 〜アプリケーションを知るために〜 / Introduction to Measurement - To know the application - Speaker Deck
- DDR4の書込みレート計測
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「継続的プロファイリングのためのデータベースGrafana Phlare。flamegraphを継続して記録する用途かな。データ保存先はS3などのオブジェクトストレージになるらしい。 / “Announcing Grafana Phlare, the open source database for continuous profiling at massive scale |…” https://t.co/CyccHPb7bi」 / Twitter
- Announcing Grafana Phlare, the open source database for continuous profiling at massive scale | Grafana Labs
最適化
その他
その他
ポインタ解析
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「"sub-cubic algorithm"というのが出てきて何かなと調べていたら「グラハム数を超える巨大数の一覧」なるページを見つけた。sub-cubicとはここに登場するくらい大きな数を扱うアルゴリズムらしい? https://t.co/jx4elSKCM8」 / Twitter
- グラハム数を超える巨大数の一覧 - Wikipedia
- kinabaさんはTwitterを使っています 「@uchan_nos cubicというのは3乗のことなので、sub-cubic algorithmというと単に、O(n^3)より速いアルゴリズムくらいの意味だと思います。(行列の掛算や文法の構文解析など、普通にやっちゃうと3乗になるアルゴリズムの話をしてる時に、この単語が出てきます。)巨大数で出てくるsub-cubic graphはまた別の話かも」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@kinaba なるほど。ニュアンスが分かりました。対象はプログラム解析(のポインタ解析)なので、グラフとはちょっと違うのでした。文脈から、おそらくO(n^3)のことだと思います。」 / Twitter
最適化・動的型付け・データフロー解析
- Miura HidekiさんはTwitterを使っています: 「データフロー解析の結果が前提になるコード生成だとそう言う事態がありそうだなと思う。特に動的型付けだと強制的にそうなりそう」 / Twitter
- uint256_tさんはTwitterを使っています: 「往々として、最適化を有効化するよりも無効化するほうが面倒」 / Twitter
- uint256_tさんはTwitterを使っています: 「TIL: s/として/にして/g」 / Twitter
- uint256_tさんはTwitterを使っています: 「無効化するオプションを見つけるのが面倒orそもそもない」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@uint256_t 未定義動作を踏むと、無制限に最適化できるという流儀と、独立した概念であってほしいもの」 / Twitter
末尾再帰最適化
Clang の musttail 属性
- mod_poppoさんはTwitterを使っています 「Clangに実装されたmusttail属性が面白い。VMの実装が捗りそう。 / Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C https://t.co/Z3t1dFetQ5」 / Twitter
- Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C
- mod_poppoさんはTwitterを使っています 「wasm3はCコンパイラーによるTCOを期待するVMを書いているが、そういうのが恩恵を受けそう https://t.co/0u6CptOTKu https://t.co/SgQ2FX3TcS」 / Twitter
- WASM3の末尾呼び出しVMがかしこい - Qiita
末尾再帰最適化
- Tanaka AkiraさんはTwitterを使っています 「OCaml での tail recursive な map (逆順にもならず、無駄にメモリを確保しないやつ) https://t.co/jPix5aoHiK」 / Twitter
- 天泣記
- Shiro KawaiさんはTwitterを使っています 「@tanaka_akr f内で継続捕まえて後で再起動すると破壊がばれるやつですね」 / Twitter
- Tanaka AkiraさんはTwitterを使っています 「@anohana Lisp と書くか Scheme と書くか迷ったけど、Lisp と書いてよかった」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@tanaka_akr :-) あとCheney on the M.T.A.方式 (スタックをnurseryとみなす)だと普通に再帰しても頑張って工夫してアロケートするのとあんまり変わりませんね。Scheme以外の言語で同方式の実装ってあるのだろうか」 / Twitter
- κeenさんはTwitterを使っています 「Lispでtconcって呼ばれるテクニックだ。Obj.magic使えばできるんだ。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLのJavaScriptバックエンドに、トランポリンによるTCOを実装したぞい」 / Twitter
- LunarML進捗・2022年4月 | 雑記帳
- An argument against call/cc
末尾呼び出し最適化
- FUJI GoroさんはTwitterを使っています 「こういう経緯だったのか。暗黙のTCOはダメだよなーと常々思っていたけど、Syntactic Tail Callだったらいいと思う。 / “末尾呼び出し最適化とJavaScript - Speaker Deck” https://t.co/qljvqhVju9」 / Twitter
- 末尾呼び出し最適化とJavaScript - Speaker Deck
- FUJI GoroさんはTwitterを使っています 「JavaScript、かなり浅いはずの再帰でも実ブラウザ環境では "Maximum call stack size exceeded" が発生しうるので、再帰は使うべきでないんだけど、再帰で書くほうが素直に書けることも多いし、STCがあれば解決できる。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptのTCO事情、そんなことになってたのか / 末尾呼び出し最適化とJavaScript https://t.co/5QRvbrChnH」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptみたいに「コンパイル先」として使われる言語はTCOがないと関数型言語が辛い」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaのTCOの話はこの辺か? https://t.co/9C965yfZQB」 / Twitter
- TailCalls - TailCalls - OpenJDK Wiki
- 尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であると何がうれしいのかというと、 末尾の節の最後へ来て再帰のpが呼ばれる時に、 q1,q2, ... ,qn の情報が必要なくなる。もしスタックに積まれているとすれば、その情報はなかったことにして、上書きしても大丈夫。従ってスタックが伸びない。オーバーフローが起きなくなる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であるかどうかの見分け方。引数は捨象して、 p. p :- q1,q2, ... ,qn,p. ・このようにpゴールが述語の最後の節の最後のゴールとなっている。 ・q1,q2, ... ,qn, が実行時に全て決定性(もう次の選択肢がない)になっている。 このような述語は末尾再帰であるという。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '小説が「大菩薩峠」とか「徳川家康」だったとしたら、末尾再帰版を使ったほうが無難。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版 少し重くなった。 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/rvbSxfpmeg').」 / Twitter
- nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_2_utf8.html
- 尾崎隆大さんはTwitterを使っています 「% Prolog 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/MUq1bEVKqR').」 / Twitter
- nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_utf8.html
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologの述語は基本、非決定性に作るので、q1,q2, ... ,qn が決定性に終了しているという状態を求め難い。それでスタックオーバーフローの危険があるため末尾再帰にしたい場合は、q1, 以降の述語をカット等を駆使して決定性に終了させるという課題に挑むとことになる。'.」 / Twitter
- NaruTo@うなぎ食べない教さんはTwitterを使っています 「手続き型言語に於いて、 「末尾再帰は繰り返しに置き換えられる」 って話がある。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@KAZAMAI_NaruTo % Prolog 'スタックに積むより、固定枠に変数を代入して繰り返す方が速い。できればそうしたい。ところがPrologではゴールが決定性に終了したかは実行時でないと解らない。それでスタックに積む。 結局、Prologのプログラムに於いては、この積み方が速い遅いよりも遥かに大問題となっている。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイル時に繰り返しに変換できるような末尾再帰はないのかというとそうではない。末尾に至るまでのゴール全てが決定性であることが明白ならできる。単にn回繰り返す為の制御の再帰とか。これはゴールが決定性のis/2しか出てこない場合があり、この場合繰り返しに変換できる。'.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Prologの静的解析ってどのくらい出来るのかしらん?カットを自動で入れるくらいのこと出来るのかな?」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miura1729 % Prolog p(X) :- q1(X). p(X) :- \+q1(X),q2(X). p(X) :- \+q1(X),\+q2(X),q3(X). 'これを p(X) :- q1(X),!. p(X) :- q2(X),!. p(X) :- q3(X). に書き換える課題は面白そう。'.」 / Twitter
- mod_poppoさんはTwitterを使っています 「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要!(素振り)」 / Twitter
- mod_poppoさんはTwitterを使っています 「伸びているようなのでマジレスするとJVMやJavaScriptをターゲットとする一部の関数型言語はTCOが部分的にしか実装されてなかったりするので、あまり「関数型言語にはTCOが必要!」みたいなことは大声で言わない方が良いかも。末尾再帰くらいは必須扱いしても良いかもね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「末尾呼び出しを厳密に実装しようとすると、スタックGC前提とか実装の自由度がかなり制限されそう」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLのJavaScriptバックエンドに、トランポリンによるTCOを実装したぞい」 / Twitter
- LunarML進捗・2022年4月 | 雑記帳
- An argument against call/cc
- TCO 関数型プログラミング - Google 検索
- 齊藤敦志さんはTwitterを使っています: 「私はアセンブリ言語での最適化テクニックの資料で末尾呼び出しの最適化について読んだことがあって (それには末尾呼び出しという用語は使われていなかったが) スタックに積んだものを直後に取り出すならどっちも省略できるという即物的な説明の仕方だった。 それが出来る状況を末尾文脈だと理解してる」 / Twitter
- branch folding - Google 検索
- const folding - Google 検索
- プログラム融合変換 - Google 検索
- llvm metadata - Google 検索
- Lengauer-Tarjan - Google 検索
- CPI Cycles ALU - Google 検索
- 最適化レポートの制御方法 | インテルソフト あるある情報局
- インライン・メソッド・キャッシュによる動的ディスパッチ高速化(2/3) - @IT
- 富士通C++コンパイラの最適化機能の改善について
- メニーコア時代のアプリ性能検討WG 成果報告書 | サイエンティフィックシステム研究会(SS研)
- コンパイラの構造を解説 | Shinta's Site
- Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
- bitwise-simd
- KAKEN — Research Projects | 2019 Fiscal Year Annual Research Report (KAKENHI-PROJECT-17H01764)
- プログラミング言語のPythonの速度は遅いことで有名だが、C言語くらい速さにすることは可能なのか?に対する十河 伸一郎 (Shinichiro Sogo)さんの回答 - Quora
- kinabaさんはTwitterを使っています 「https://t.co/zbFij803jg (OOPSLA'21) コンパイル時間爆速で、-O1ほどではないが-O0よりかなりいい出力をだすコンパイル技法。要はよく出てくる構文木片を最適化コンパイルした結果を沢山予め生成しておいて、実際のコンパイル時にはレジスタ割当の辻褄とか合わせつつ生成済バイナリをペタペタ並べる」 / Twitter
- Copy-and-patch compilation: a fast compilation algorithm for high-level languages and bytecode | Proceedings of the ACM on Programming Languages
- kinabaさんはTwitterを使っています 「いやーでも普通のトラディショナルなコンパイラも細かい内部挙動を無視すると本質的には遠目に見ると同じことをしていると思うんだけど、何が一番効いている違いなのかが直感的によくわからんようなわかるような」 / Twitter
- ドッグさんはTwitterを使っています 「SIMD を使った CSV パーサのアルゴリズム解説面白い | 'Fast CSV processing with SIMD' https://t.co/8bjyyVMFJe」 / Twitter
- Fast CSV processing with SIMD
- 新たなカスタマーカーボンフットプリントツールで、AWS上での処理が環境へ与える影響を軽減
- Optimizing C Code with Neon Intrinsics
- Opaque Pointers — LLVM 15.0.0 documentation
- 先輩エンジニアから「メモリを意識してプログラムを書かないやつは三流だ」と言われたのですが、今は令和ですよと言いたかったです。メモリを意識してプログラムを書く必要性を分かりやすく教えて頂けませんか? - Quora
- プログラミングで「C言語」が難しいとされる理由は何ですか?に対するShiro Kawaiさんの回答 - Quora
- V8 release v8.0 · V8
- Compressed pointers in V8 (public doc) - Google ドキュメント
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
- Bytecode Alliance
インライン展開
- uint256_tさんはTwitterを使っています 「unroll して sccp すると scev とか考えなくてもいいってことか。おもしろい」 / Twitter
- インライン展開入門 - Advanced Technology Lab
- Inlining 101
- monochromeさんはTwitterを使っています 「ruruby、複数のcrateに分割する作業を進めていたら、突然2割ほど速度が低下した。どうも別crateにした関数がインライン化されなくなった様子。明示的にアトリビュートつけることで元に戻った。 コンパイラが勝手になんとかしてくれるもんだと過信してた。」 / Twitter
- ドッグさんはTwitterを使っています 「@s_isshiki1969 コンパイラがインライン化するかどうかは関数ごとにスコア付けて決めてるので,翻訳単位またぐとそのスコアが下がってしまうんだと思います」 / Twitter
- monochromeさんはTwitterを使っています 「よく考えるとcrateをまたいだインライン化ってどうやっているんだろう。まさか.oファイルからバイナリをコピペするとかじゃないだろうから、LLVMのlink time optimizationの一環としてやっているのであろうか。」 / Twitter
- take-cheezeさんはTwitterを使っています 「@s_isshiki1969 bitcodeが.oのどこかに入っててそれを使うんじゃなかったでしたっけ?」 / Twitter
- monochromeさんはTwitterを使っています 「@take_cheeze 確かにRustコンパイラのスイッチでbitcodeをembedできて、その情報をLTOに使うみたいですね。 それがcrateをまたいだインライン化に使われるのかどうなのか…(それ以外にやりようがない気がする) https://t.co/yyDYsY14yL」 / Twitter
- Codegen options - The rustc book
- ドッグさんはTwitterを使っています 「LLVM のインライン化コストの計算,昔見た時よりかなり複雑になってる https://t.co/nx5K8dymph」 / Twitter
- llvm-project/InlineCost.cpp at ecd25edfc5d908a1010fdf81419d779e8347de79 · llvm/llvm-project
- ドッグさんはTwitterを使っています 「うーん見た感じリンケージは呼び出し箇所が1箇所しかないかどうかのチェックぐらいでしか使われてなかった.(閾値の計算は https://t.co/DhJp8rj7gA この辺)」 / Twitter
- llvm-project/InlineCost.cpp at ecd25edfc5d908a1010fdf81419d779e8347de79 · llvm/llvm-project
- Shuhei KadowakiさんはTwitterを使っています 「https://t.co/HV7niYPrxM で書いたようにそれなりのローカルな最適化を得るためには、インライン展開がほぼ必須なんだけど、他のLLVMバックエンドの言語がどんなインライン展開をしてるのか気になる。Juliaの場合だとLLVM IRにする前の段階でインライン展開をして (続く」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「LLVMのレベルではinterproceduralな最適化は行わない。一応LLVMにもIPO用のAttributorなるシステムがあるらしいけど、とてもJITで使えるパフォーマンスじゃないらしい。」 / Twitter
- monochromeさんはTwitterを使っています 「Rustにおけるインライン化 https://t.co/DDC7qRbumf どこに#[inline]をつけるか? ・private fnには不要 ・crateをまたぐインライン化は標準では行われないので、ライブラリ内の頻回に呼ばれる小さくてnon-genericな関数には積極的につけた方がいい 特にderef,as_refなど ・geniricな関数は文字数」 / Twitter
- Inline In Rust
Micro + Macro Fusion
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
- assembly - What is instruction fusion in contemporary x86 processors? - Stack Overflow
- MacroFusion in Intel CPUs. | Easyperf
- Macro-Operation Fusion (MOP Fusion) - WikiChip
- Micro-op fusion in x86 | Hacker News
- Microsoft Word - msoC5849.doc - Performance_Characterization_SPEC_CPU_Benchmarks.pdf
分岐予測のヒント
配列化による順次アクセス
- MasaTamさんはTwitterを使っています 「'L1キャッシュから値をロードするにはわずか3から4サイクルのレイテンシで済むのに対して、メインメモリから値をロードする時のレイテンシは数百サイクルを要することもある。アプリケーションは典型的には時間的局所性(temporal locality)を示すため、キャッシュによってアプリケーションの性能は"」 / Twitter
- MasaTamさんはTwitterを使っています 「"向上する。つまり、メモリ中のある位置が最近アクセスされたのであれば、すぐに再び同じ位置がアクセスされる可能性が非常に高い。(中略)アプリケーションは空間的局所性(spatial locality)も示すことがある。つまり、メモリ中のある位置がアクセスされれば、その近くも近いうちにアクセスされやすい"」 / Twitter
- MasaTamさんはTwitterを使っています 「ガベージコレクションより Parallel Programmingの授業を思い出した。キャッシュの観点からも配列は順次アクセスされる場合、非常に効率がいい。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 最近のSDRAMのプロトコルを見ても,順次アクセスの方がランダムアクセスより効率良くなるように出来ています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 データだけでなくプログラムコードも,順次アクセスになるように,つまり分岐なしに処理する方が高速になります。どうしても分岐する場合は分岐予測のヒントを与えると高速になります。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 ちなみにPelemayの高速性の源泉は,リストを配列化して順次アクセスすることと,生成するコードに徹底的に分岐予測のヒントを付与することにあります。」 / Twitter
- Fadisさんのツイート: "DPDK、同梱のサンプルプログラムがカジュアルに「指定したレベルのキャッシュまでデータをプリフェッチする」と「分岐予測にヒントを付ける」を活用してて、ネットワークプログラミングには使っているプロセッサに対する深い理解が必要です、的なアレを感じる"
- インテル アーキテクチャ 最適化
- 分岐予測 - Wikipedia
- 条件分岐のヒントとしてlikelyやunlikelyを指定してみる - Qiita
- C++ SIMD クラスの機能
- fnami: Assembler
- Tips IA32(x86)命令一覧 補足
- repz ret - repz ret
- コンパイラは分岐情報を使って何ができますか?
- Kazuho OkuさんはTwitterを使っています 「分岐予測器に優しいコードを書くの、21世紀の最適化の鉄則だと思ってる。分岐がほぼ一方に倒れるようなコードにするとか、マージしたあと再分岐みたいなのを減らす(インライン展開のタイミング含む)とか、できることは色々ある」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mrubyのJIT、型のガードはほとんどの場合成り立つことが期待できるから、それをCPUに伝えると速くなるのでは?と思って、Jccの分岐ヒントプリフィクスを入れてみた。あまり効果は無いようだ(CPUは昔のi5です) https://t.co/SLtf0aVVD6」 / Twitter
- Tips IA32(x86)命令一覧 補足
- Miura HidekiさんはTwitterを使っています 「mrubyのJIT、間接ジャンプの後にud2命令を入れると速くなったような気もするし、変わらないような気もする」 / Twitter
プリフェッチ
- インターネット・ストリーミングSIMD拡張命令
- The 3 key challenges in programming for MC
- プリフェッチ - Wikipedia
- SIMD 演算におけるキャッシュ制御方法とか - kawa0810 のブログ
- ASCII.jp:キャッシュの実装方式から見える AMDとインテルの置かれた状況 (2/3)|ロードマップでわかる!当世プロセッサー事情
- プリフェッチのサポート
Profile Guided Optimization
機械学習
- Nadav RotemさんはTwitterを使っています 「We uploaded our work on PGO without profiles to arXiv. The idea is simple. We let ML insert branch probabilities, instead of relying on a real profile. w/ @iamchriscummins」 / Twitter
- Nadav RotemさんはTwitterを使っています 「arXiv paper: https://t.co/u5gG7u25w7 code: https://t.co/EZctLbZGuv」 / Twitter
- [2112.14679] Profile Guided Optimization without Profiles: A Machine Learning Approach
- nadavrot/pgo_ml
- Hideyuki Tanakaさんのツイート: "profile guided optimizationをRustでやるやつらしい(´・_・`) / “GitHub - Geal/pgo-rust: Testing LLVM's profile guided optimizat…” https://t.co/Skcuk2aauP"
- Hideyuki Tanakaさんのツイート: "profile guided optimizationをCargoのサブコマンドとしてお手軽にできるようにするやつみたい(´・_・`) / “GitHub - vadimcn/cargo-pgo: Supercharge you…” https://t.co/AoA3QjaQUX"
- Hideyuki Tanakaさんのツイート: "実際んとこprofile guided optimizationってそんな速くなんの?(´・_・`)"
- Hideyuki Tanakaさんのツイート: "2,3割も速くなるケースもあるみたいだけど自分でやってそんな速くなったためしないんだよなあ(´・_・`)"
- [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
- Profile-guided optimization - Wikipedia
- Profile Guided Optimizationが.NET Coreでも利用可能に
- rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
- koie blog : PGO: Profile Guided Optimizationをためしてみた
- [Options (オプション)]: [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
- ガイド付き最適化のプロファイル
- 15%の高速化を達成。Windows版「Google Chrome」でMicrosoftのPGO技術が採用される - 窓の杜
- Rust で Profile-Guided Optimization やってみた - はやくプログラムになりたい
Polly
- Hideyuki Tanakaさんのツイート: "これなんだろ(´・_・`) / 他1コメント https://t.co/qAZ1G8NXkr “Polly - Polyhedral optimizations for LLVM” https://t.co/l3yHixsSwP"
- はてなブックマーク - Polly - Polyhedral optimizations for LLVM
- Polly - Polyhedral optimizations for LLVM
- Hideyuki Tanakaさんのツイート: "https://t.co/MyJn2qXtl0 ここのグラフ観てるとpollyに掛けるだけでGEMMのコードが死ぬほど早くなってるけどそんなことできるなら使ってみたいしPEZY-SCで動かすコードに簡単に使えたりせんのかな"
- Hideyuki Tanakaさんのツイート: "普通に書いたら当然だけどGEMM全然性能出ないみたいだけどpollyに掛けるだけでたぶんハンドチューンされたBLASとかの2割引きぐらいの性能になるとかすごすぎんよお…"
- Hideyuki Tanakaさんのツイート: "“Polyhedral Compilation Techniques”なんてのがあるのか / “IMPACT 2017 - International Workshop on Polyhedral Compilation Tec…” https://t.co/qh3AYAad0E"
- IMPACT 2017 - International Workshop on Polyhedral Compilation Techniques
マルチグレイン並列処理
- マルチグレイン並列処理
- ipsj2003_1.pdf
- 高速化 | オスカーテクノロジー株式会社
- IPSJ-ARC02150007.pdf
- マルチグレイン並列処理の意味・用法を知る - astamuse
- マルチグレイン並列化技術 オスカーテクノロジー | イプロスものづくり
自動ベクトル化
- 自動並行化と自動ベクター化
- SIMD - primitive: blog
- Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム - HPC/並列プログラミングポータル - OSDN
- コンパイラー最適化入門: 第4回 自動ベクトル化はどんな時に行われるか | iSUS
- 自動ベクトル化の使用
- ロボ太さんのツイート: "環境やターゲットに強く依存するのだと思いますが、科学技術計算に話を限ると、そんなに「コンパイラが賢いコードを吐く」印象はないですね・・・。わりと残念なコードを吐いててがっかりすることが結構あります。ただ、x86系では(他の石に比べて)特異的にコンパイラが賢い印象があります。… https://t.co/AopKgh6kl3"
- SODA Noriyukiさんのツイート: "SIMD命令まわりの使い方の話かな?"
- 梅澤威志/ゆーむさんのツイート: "自分が書きたい分野(画像処理)のコード(のベクトル化)だとコンパイラが全く当てにならないので結果として人間(=俺)がintrinsicで適当に書いたコードの方が圧倒的に速くて悲しい>RT https://t.co/OjAjEKizyI"
- ロボ太さんのツイート: "DEC Alphaはコンパイラが賢かった記憶があり、Cell/B.E.は触ったことないけどコンパイラがまともなコードを吐ける気がせず(違ったらすいません)、逆にIA64的なVLIW系ではコンパイラより賢いコードをかける気がしないので、石というか、ベンダーのコンパイラ部隊のやる気に強く依存している気が・・・。"
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi こちらは 2015年の Cray User Groupでの Sandia National Labによる Intel・Cray・gccコンパイラの x86ベクトル化の比較報告です https://t.co/3xpbYCAXjX TSVC (Test Suite for Vectorizing Compilers) Benchmark LCALS (Livermore Compiler Analysis Suite) Benchmark… https://t.co/KNYzaZGc2s"
- インテル® Advisor ユーザー向けベクトル化リソース | iSUS
- 2018年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
- Elixir におけるC言語コード生成・最適化の試み - Speaker Deck
- Exploiting superword level parallelism with multimedia instruction sets | Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
- [Abstract: simd] AND [Abstract: generation] AND [Abstract: optimization] AND [Publication Date: (01/01/2000 TO 12/31/2021)] : Search
- Posts | Easyperf
- TokusiNさんはTwitterを使っています 「SIMD並列化とスレッド並列化って相性が悪いんだな・・・。特に大量のデータを右から左へと流すタイプのプログラムだと、恐らくメモリ律速になって並列化しても伸びなくなる。」 / Twitter
最適化レポート
- えびちゃんさんのツイート: "わけわからんすぎる コンパイラしゃんは最適化するときに「これはこんな理由でこんな風に最適化できるんだよ〜」ってコメントをつけといてほしい"
- TIke / Ti11192916さんのツイート: "gcc って最適化レポート吐けませんでしたっけ… "
- えびちゃんさんのツイート: "うーん、別物を見ていそう(Intel 製だと -opt-report があるらしい?) ループをアンロールしたよ、とかベクトル化したよ、とかくらいの簡素なものしか出なかったです… "
エスケープ解析
- エスケープ解析 - Wikipedia
- Golang エスケープ解析 - Qiita
- Javaのエスケープ解析についていろいろと実験してみる - Qiita
- Java HotSpot仮想マシン・パフォーマンス向上
- Linuxはじめました & エスケープ解析の検討 - miura1729の日記
- エスケープ解析による御利益: #include <fujita.h>
- エスケープ解析 - Google 検索
Self
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 動的型付け言語の最適化だとselfで用いたテクニックが大体標準かなって思います。動的も静的もLLVMのような話は過去一杯あったけど失敗しています。LLVMはありったけのリソースを投入できるので、静的だからではなくLLVMだから成功したのだと思います。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 これですね。勉強になる。 https://t.co/OufsOKRhTO 静的型だとどの言語でも似たような中間表現に変換しうるようなイメージがあるんですが、私の勘違いなんですかね。データの持ち方も基本的には共通のような。」 / Twitter
- A Self Bibliography — Self Papers 4.5.0 documentation
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 SSAが出来てからはそれに収束した感がありますね。その前はいろいろバライティに富んでいましたが。おそらく動的型付き言語もSSAに収束すると思います。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 SSAは様々な最適化に適した中間表現と思いますが、もっと素朴な奴でも動くもの(かついろんな静的言語からコンパイルできるやつ)は作れそうに思います。動くけどネイティブの処理系より遅いので意味ないよね、ていうのがLLVM登場以前の話だったのですよね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おお、selfの論文がまとまっているページがあるんですね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 動的型はオブジェクトの(最適な)内部表現が言語仕様によって異なる(例えばRubyとJS)ので、SSAの手前の段階で既にunifyするのが厳しいんじゃないか、という気がします。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おそらく、色々な言語に対応しようとするとバカでっかくなり、その開発に耐えられなくなるってのが大きいと思います。LLVMってすごくたくさんの機能や命令があるわけですが、結局そういうのが必要になってくると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 そうでもないと思ったのですが、考えてみると得意分野によって高速化するデータタイプが速くなるように内部表現を変えますね。この辺を抽象化するって言う手はありますけど(mrubyがそうやっているように)」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 A + B みたいな基本的な演算でもAやBの型によって全く違うことやるわけですから、どの言語でも共通に使える(かつ高速な)フレームワークを提供するってのはなかなか困難ですよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 その通りと思いますが、動的型だと「そのバカでかくなり具合」がより一層爆発的なものになる気が。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 確かにそうかもしれない。本当の所はどうなのか気になります」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 動的型、静的型関係なく対応すると称しているGraalVMとかありますよね。どうなってんだろう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 GraalVMですか。すごいですね。もし、RubyKaigiで開発者の方がお見えになるならお話したい(どうやって?)ですけど、RubyKaigiがあるのだろうか・・・」 / Twitter
mem2reg
- LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
- 7.3. LLVMにおけるメモリ – 日曜研究室
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@esumii mem2regもLLVMオリジナル版とCoq版で生成されるコードの性能はほぼ同じ(LLVMオリジナル版は内部allocaも知ってるので僅かに有利)。LLVM -O3と-O1はあまり変わらないがmem2regはかなり速くなるので重要(だからCoqで実装&証明した)」 / Twitter
- きつねさんとおぼえるLLVM の訂正個所【2013年2月24日追記】 - 餅ちゃんの備忘録
- 最適化抑制属性(optnone) - Design x Verification
- clang - LLVM SSA形式を生成する方法 - ITツールウェブ
- Rui UeyamaさんはTwitterを使っています 「@uint256_t mem2reg、定数式畳み込み、レジスタ割り当てくらいがあれば、めちゃくちゃ素直でナイーブなフロントエンドでも普通によいコードが出せるのではという気がしてる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t 計算の途中結果は全部メモリ上の変数に書き出していって、変数は使い捨て。明らかな冗長さは定数式畳み込みで消えるからフロントエンドではまったく気にしない。みたいな方針でなんとかなるんじゃないかなと。(僕がいま作っているのも)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「mem2regの後半の処理の本質はmutableな基本ブロックからimmutableな基本ブロックに変換するCPS変換なのだな。 https://t.co/WKSV0XCSLw」 / Twitter
- 120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita
レジスタ割付
SSA
- uint256_tさんはTwitterを使っています: 「#cilk なんか動かないなぁと思ってたら,関数呼び出しをまたいで使用されるvregの保存を実現するために呼び出し前にスタックに退避・後で新しいvreg(SSAなので)に代入してたけど,古いvregのuseを新しいので置き換えるときにbasic blockにループが存在する可能性のことを考えてなかった」 / Twitter
- uint256_tさんはTwitterを使っています: 「レジスタ同士を紐付ければいいのかしら」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t Basic block でループがあるとは?」 / Twitter
- uint256_tさんはTwitterを使っています: 「@zacky1972 これで伝われば嬉しい: https://t.co/i85rxk6LWN」 / Twitter
- problem.txt
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t φを用いないんですか?」 / Twitter
- uint256_tさんはTwitterを使っています: 「@zacky1972 どこでどのように使うと良いのでしょうか」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t まず Wikipedia の説明を読んでください。 https://t.co/WVqdkKgYLK」 / Twitter
- 静的単一代入 - Wikipedia
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t たぶん,こんな感じ? https://t.co/bT9aeZDCgo」 / Twitter
- solution.txt
- uint256_tさんはTwitterを使っています: 「@zacky1972 わざわざありがとうございます.phi自体はすでに理解できていたみたいです. 物理レジスタ割り当てのことで頭がいっぱいで,phiを使ってコードをまとめ直すことができるという考え方が浮かびませんでした.」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t SSAではphiは基本なので,活用してください。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t 「Basic block にループが存在する」という表現は矛盾している (なぜならば basic block はループを含まないというのが定義だから) ので,表現は正確に。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t この例では「basic blockを複数つなぎ合わせてループを構成する」が正しい表現ですね。」 / Twitter
- uint256_tさんはTwitterを使っています: 「basic block '間' にループがある」 / Twitter
- ssa-nyumon.pdf
- monochromeさんはTwitterを使っています 「@zacky1972 ああ、それはそうですね。ASTをバイトコードに落とす前の段階でSSAっぽいIRを挟んでおき、インタプリタ用にはバイトコードへコンパイル、JITする場合にはSSAに戻って機械語へコンパイルするイメージでした。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 SSAだと評価の途中結果がID付きでずらっと(仮想レジスタとして)並ぶ形になるので、型(RubyなのでClass)の評価がやりやすいのかな?という想像です。 動的型付け言語の場合、型の推論とかプロファイリングが重要かつ一番の難関と考えてますので。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 あとは、一時的に使用されて捨てられるオブジェクトと、生き残るものが明確になるという点もあるかなと。 というのも、アロケーションのコストとGCへの負荷を下げる意味でも、捨てる値が分かってると有り難いんですよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 つまり、a-eが文字列のようなヒープアロケートされるオブジェクトだとして、 a = ((b+c)+d)+e みたいな処理があった場合、b+c、b+c+dという2つのオブジェクトが生成され、評価完了とともに不要になります。これらを後からGCで回収するのではなく、その場で開放したい、というモチベーションです。」 / Twitter
- Modern Compiler Implementation in C 19章後半(451ページから) - ppt download
- uint256_tさんはTwitterを使っています 「SSAだろうと値は変わるんだなぁ」 / Twitter
- 市川 真一さんはTwitterを使っています 「wasm のローカル変数のアドレスが取れないから線形メモリを使わないといけなかったりして不便なので、ローカル変数は線形メモリへのアクセスのためのベース・レジスタ的な使い方しかしてない」 / Twitter
- YutakaAokiさんはTwitterを使っています 「@tenpoku1000 そういえば、Wasmの母体になることが多いLLVMの場合、レジスタがそれと似ていて、SSA方式なので一度書き込むと二度と書き換えられず、Cのローカル変数はほぼ必ずレジスタではなくallocaされたメモリー領域に対応し、レジスタはその先頭アドレスとしての役割が多いです。」 / Twitter
- YutakaAokiさんはTwitterを使っています 「@tenpoku1000 何度も書き換える働きを持つローカル変数は必ずallocaされたメモリー領域に対応し、レジスタは、四則演算の途中経過や、メモリーからメモリーへload,storeするの間の仲介役を担うことが多いです。ただし、phi nodeという方法を使うとこの限りでは有りませんが。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@YutakaAoki3 私の場合、LLVM は使わずスクラッチ開発していますが、そんな感じですね。最適化は実装してないので、SSA や phi は無いのですが: tenpoku1000/PE_COFF: 独自 WASM64 を生成し、PE/COFF や PE32+(UEFI アプリ)に変換するバックエンド試作版 https://t.co/8cElIwUZt0」 / Twitter
- 静的単一代入形式に基づく最適化に関する研究
- 25_1_2.pdf
- Miura HidekiさんはTwitterを使っています: 「コンパイラ書いているとこんな抽象的な命令じゃなくてμ命令見せろって思う時もあるけど」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 ふと、VMのIRコードをマイクロ命令レベルにして、展開するとそのマイクロ命令列になるようなネイティブコード列を生成したらどうだろう、と思いました。大体は生成不能だろうけど、たまにニンゲンには理解不能な爆速ネイティブコードになるかも。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tomooda ある意味、SSAとかも機械語より命令が低級じゃないでしょうかね?」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 そうですね、1つの機械語命令で複数の代入を持ってたりしますから、粒度は細かい感じがします。一方でSSAは変数の抽象が強いですね。なんたって無限に湧いて出てきますから。レジスタじゃこうはいかない。」 / Twitter
Wikipedia
- 和集合 - Wikipedia
- 数学記号の表 - Wikipedia
- レジスタ割り付け - Wikipedia
- データフロー解析 - Wikipedia
- Data-flow analysis - Wikipedia
- 制御フローグラフ - Wikipedia
- Control flow graph - Wikipedia
- 大域値番号付け - Wikipedia
- レジスタ・リネーミング - Wikipedia
- ソフトウェアパイプライン - Wikipedia
- Reservation Station - Wikipedia
- Tomasuloのアルゴリズム - Wikipedia
- レジスタファイル - Wikipedia
- 連想メモリ - Wikipedia
- Set
- 東北大学電気通信研究所 大堀・上野研究室 - レジスタ割り付け
- 電子情報通信学会知識ベース |トップページ
- 06gun_03hen_03.pdf
- 8-w.pdf
- www.cs.is.noda.tus.ac.jp/~mune/master/10/m2010.pdf
- www.is.titech.ac.jp/~sassa/lab/papers-written/08B24652-mori.pdf
- データフロー解析(DFA)とはなんですか? | 東陽テクニカ
- フロー解析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社
- Compiler Construction Lecture 2/1
- コンパイラ講義をなんとなく監視 - Togetter
- レジスタ割り付けをしたい(1)データフローを作る - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- レジスタ割り付けをしたい(2)生存情報を求める - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- Liveness Analysis - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- 累積レジスタ割付による仮想マシンの高速化 - 一人一党党
- LLVM Register Allocation (2nd Version)
- LLVM Project Blog: Greedy Register Allocation in LLVM 3.0
- dominance frontier - Google 検索
- iterated dominance frontier - Google 検索
- uint256_tさんはTwitterを使っています 「Dominance frontier, いまは愚直に求めてて遅っいから改善したい (llvmが使ってるアルゴリズムの論文読むのが早い」 / Twitter
- uint256_tさんはTwitterを使っています 「LLVMが使っているアルゴリズムの論文に書いてある手法をそのまま実装すると遅いよなあ, と思ってLLVMのコードを見てみたら, より良い手法が使われていた時の気持ち.」 / Twitter
- Yatsina-LLVM Greedy Register Allocator - Yatsina-LLVM Greedy Register Allocator.pdf
- uint256_tさんはTwitterを使っています 「dominator treeのrootから下へ降りて行って, ある時に注目しているnode dominates its predならloop?」 / Twitter
- uint256_tさんはTwitterを使っています 「reducibleなcfgでloop検出, まだ理解できていない」 / Twitter
- mem2regを解説してみる - Qiita
- 静的単一代入形式を用いた最適化(導入編)
- A linear time algorithm for placing φ-nodes | Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
- Rui UeyamaさんはTwitterを使っています 「@uint256_t これって常にSSA形式になってるようにやってるんだと思うんですが、SSAじゃなくなるように単純に書き換えてからSSAに戻すアルゴリズムを走らせるのと比べてどっちがいいんですかね?」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 storeやload は元々SSAからはみ出しているような気がしますが, それ以外の部分も先にSSAじゃないように書き換えるということでしょうか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t レジスタも複数回代入してもいいからとりあえず変換してしまって、その後でSSA形式に再度戻すというやり方もあると思うのですが(それがいいかどうかは別問題で)。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 再度SSAに戻すと言う操作それ自体がmem2regに相当するのではないかと思いました (見当違いだったらすみません)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t そうか、たしかに。」 / Twitter
- DrumatoさんはTwitterを使っています 「虎本だとIR生成とベーシックブロックの生成を別のフェーズでやっているような記載があるんだけど,確かにこのほうが実装しやすい気もするな.」 / Twitter
- LLVM Spiller 关键代码剖析_Enorsee的博客-CSDN博客_inlinespiller
- Partitioned Boolean Quadratic Programming (PBQP)
- uint256_tさんはTwitterを使っています 「SATソルバで最適なレジスタ割付をできたとしても, 現実は厳しいのであんまり速くならない」 / Twitter
- lstm reg alloc - 1912.03700.pdf
- [2204.02013] RL4ReAl: Reinforcement Learning for Register Allocation
CFG
- gccを使って、制御フローグラフを作成 - Qiita
- _pdf
- 制御フローグラフ - Wikipedia
- 無限ループ - Wikipedia
- 201303tanabe.pdf
PDG
- 26_3_109.pdf
グラフ書き換え系
- グラフ書換え系 - Google 検索
- 33_1_126.pdf
- uint256_tさんはTwitterを使っています 「あまり関連性はなさそうな気もしますが,詳しくないのでよくわかりません.色々なCFGがあったときにそれらが同型かを判別できると便利そうですが,最適化に使えるのかなあ. #マシュマロを投げ合おう https://t.co/3qYCxCoxdJ」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t 僕の先輩でCFGの同型性判定に基づいてコードクローンを見つけ出し、他のコード最適化に利用するってことをやってる人がいました。 詳しいところは忘れてしまいましたが。」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど,関連性は一応ありそうですね.ありがとうございます」 / Twitter
blog
Jicchoの箱
- 自作Cコンパイラができつつある報告的な。 - Jicchoの箱
- コンパイラのコード最適化や解析手法の論文のサーベイ - Jicchoの箱
- Lazy Code Motion - Jicchoの箱
- Reaching Definition - Jicchoの箱
- Common Sub-expression Elimination(共通部分式削除,CSE) - Jicchoの箱
- Dead Code Elimination(無用コード除去, DCE) - Jicchoの箱
- CFG,トポロジカルソート,Bit Vector,ワークリストアルゴリズム - Jicchoの箱
Fixstars Tech Blog
- RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
- ソフトウェアパイプラインの手書きをDRYで行う - Fixstars Tech Blog /proc/cpuinfo
- ソフトウェアパイプラインを考えてみる - Fixstars Tech Blog /proc/cpuinfo
- x86/x64最適化勉強会7 で発表しました - Fixstars Tech Blog /proc/cpuinfo
本の虫
- 本の虫: コンパイラーを負かす
- 本の虫: なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと
- 本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
- 本の虫: とても賢いコンパイラーの逆襲
in neuro
- 基本ベクトルの場合の最適化(3次元幾何) - in neuro
- コンパイラの最適化と専用命令について - in neuro
- コンパイル時ルックアップテーブル生成について - in neuro
- reluを分岐無しで実装する - in neuro
Return Value Optimization
- Return Value Optimization | 闇夜のC++
- 値のコピー省略を保証 - cpprefjp C++日本語リファレンス
- NRVO(Named Return Value Optimization)が適用されたか判定するマクロ - ビットハイブ
- C++ 関数の戻り値のコンストラクタ呼び出しとRVO(Visual Studio 2019 Community 16.7.0 Preview 2.0) - Qiita
- Return Value Optimization (RVO)の話 【KMCアドベントカレンダー20日目】 - KMC活動ブログ
- 実践C++入門講座 第37回目 ムーブの使いどころ | Theolizer®
- c++ : コピーの代わりにRVOを確実に実行する方法はありますか?
- c++ 11戻り値最適化または移動? [重複]
- C++17 右辺値参照とRVO - potisanのプログラミングメモ
- Return Value Optimization | Shahar Mike's Web Spot
- DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
- x86/x64最適化勉強会7レポート | Cybozu Inside Out | サイボウズエンジニアのブログ
- Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
- SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions - ScienceDirect
- Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
- Cコンパイラの末尾呼び出しを活用した 効率的命令ディスパッチ手法の研究開発
- 高性能プロセッサの分岐予測のサーベイ論文を読んで分岐予測について学ぶ (4. 予測が難しい分岐のための分岐予測器) - FPGA開発日記
- 日記 (2019 年 10 月下旬)
- Swiftにおける所有権付きSSA形式 | メルカリエンジニアリング
- A JavaScript optimizing compiler | Carlo Piovesan | leaningtech
- RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary
- 命令単体の性能を計測する
- Dependency Analysis入門 | κeenのHappy Hacκing Blog
- adv intro
- Aug. 2017
- Google Summer of Code 2021 を終えました :: Hello
- a21_opt - essen-wiki
- Optimization of Wasm’s indirect calls for SpiderMonkey | Dmitry Bezhetskov
- golangコンパイラ(cgo)のスケジューリングパスについて - KazuminEngine
- AoSからSoAに代えたら2倍ぐらい速くなった – 日曜研究室
- Implementing a Toy Optimizer | PyPy
スライド
- SIMD化とは何か / Basics of SIMD - Speaker Deck
- 人間でもわかるLLVMバックエンド入門 // Speaker Deck
- Elixirにおける データ並列スケルトンに基づく SIMD並列化の性能評価 - Speaker Deck
- Microsoft Word - coins-rensai-ssa-transbacktrans-57.doc
- 融合変換による最適化の理論的基盤と正当性 (2006-06-27)
- LLVM Register Allocation
- Utilizing LLVM LTO for Swift - Speaker Deck
PDF
- COINS 解説
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap2-1.pdf
- 248966-024JA.pdf
- SSA-based Compiler Design
- Branch Divergence Reduction Based on Code Motion
- [PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
- Miura HidekiさんはTwitterを使っています: 「https://t.co/Yc7FPw5Zi4 (PDF)これのデータフロー解析の説明凄くわかりやすい。」 / Twitter
- 144446962.pdf
- Miura HidekiさんはTwitterを使っています: 「データフロー解析をビット演算で高速化するめどが立った気がするが、抽象解釈の型レベルの実行はまた別の動作だからもっと考えないとコーディングが出来ない。」 / Twitter
GitHub
- x86opti/readme.md at master · herumi/x86opti
- kaityo256/mdacp: MDACP - Molecular Dynamics code for Avogadro Challenge Project
- Getting Started — CompilerGym 0.1.7 documentation
- Play with LLVM-IR, without LLVM :: Hello
- dgryski/go-perfbook: Thoughts on Go performance optimization
- google/ml-compiler-opt: Infrastructure for Machine Learning Guided Optimization (MLGO) in LLVM.
Zenn
- 最適化コンパイラへのいざない (1) 導入 | Zenn
- LLVMのレジスタアロケータについてまとめた
- The 8 Compiler Optimizations
Qiita
- MDループのソフトウェアパイプライニング:ステップ・バイ・ステップ - Qiita
- インテルコンパイラのアセンブル時最適化 - Qiita
- 関数ポインタと関数オブジェクトのインライン展開 - Qiita
- 定数配列がからんだ定数畳み込み最適化 - Qiita
- ZEAM開発ログ2018年総集編その2: Elixir 研究構想についてふりかえる(後編) - Qiita
- WASM3の末尾呼び出しVMがかしこい - Qiita
- C++コンパイラはあなたよりも良いコードを書く - Qiita
- 最適化コンパイラを作りたい人にとって必要な解析器の数学的基礎を与えてくれそうな An Introduction to the Theory of Optimizing Compilers の斜め読みのしかた - Qiita
- 最適化コンパイラへのいざない (1) - Qiita
- 最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
- 最適化コンパイラへのいざない (3) 定数に関する最適化 - Qiita
- 最適化コンパイラへのいざない (4) プログラムの構造 - Qiita
- オーバーライドされた仮想関数にまつわる最適化 - Qiita
- 末尾呼び出し最適化についてあれこれ - Qiita
- mrubyの可変引数最適化 - Qiita
- Goのコンパイル時の最適化結果を確認する(インライン化の条件についても記載) - Qiita
- Chapter 11: Tips and Tricks | Go Bootcamp | Softcover.io
- SSA変換とSCCP最適化をJavaScriptで実装してみた。 - Qiita
Wikipedia
- Interprocedural optimization - Wikipedia
- Category:コンパイラ最適化 - Wikipedia
- Category:ソフトウェア最適化 - Wikipedia
Twitter
その他
ソート・制約・コード生成
- Miura HidekiさんはTwitterを使っています 「メモ化とかしてオーダーが下げられないか考えたけど無理そう。事前・事後・インバリアント条件を求めてソート処理であることを推定して別のアルゴリズムに置き換えるってのは可能かなと思う >RT」 / Twitter
- hrk先生さんはTwitterを使っています 「横からすみません。バブルソートを書くと速いソートに書き換える最適化コンパイラは無いのか気になります。」 / Twitter
- κeenさんはTwitterを使っています 「-O3は-O2より遅くなることがあるからあんまり使われないんだけど、こういう有名なアルゴリズムが実例になってるのが面白い。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バブルソートを gcc -O3でコンパイルすると、-O2でコンパイルするより遅くなるというバグ。-O3ではベクトル化が有効になり、intをスワップさせるたびにforwarding stallが起きるが、バブルソートではこれが連続するため速度が低下するらしい。 https://t.co/q7YWd8ROzD」 / Twitter
- c - Bubble sort slower with -O3 than -O2 with GCC - Stack Overflow
- κeenさんはTwitterを使っています 「全然関係ないけどGCCに-O4とかの3より大きい数字渡すと-O3として処理するらしい」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 例えば渡される比較関数が実は副作用持ってたとか、コンパイラだけで置換可能かどうか判断するのは無理っぽい気がする。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど。プログラマがソートしたいのか、比較のタイミングで副作用を起こしたいのか判断出来ませんものね」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 それも制約に書けるならいけるかな。 しかしそこまできっちり制約で記述できるなら、ソート程度なら制約だけ書いとけばコード生成してくれそうな気もする。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana 逆にコードから制約を推定することを考えていました。プログラムを解析して副作用の制約が分かればよいのですが、分かった所で大したことはできないかなと思います。」 / Twitter
命令選択
- kateinoigakukunさんはTwitterを使っています 「中間言語からネイティブ命令を選択する際には複数の中間言語命令が一つのネイティブ命令に畳み込めるパターンがあるのでBasicBlockの下から選択していきたい」 / Twitter
- uint256_tさんはTwitterを使っています 「下から舐めてって、DAG作りがち」 / Twitter
- uint256_tさんはTwitterを使っています 「craneliftもそう」 / Twitter
volatile
- ryoさんはTwitterを使っています 「MCOUNT_ENTERで定義してるasm()にvolatileつけ忘れてて、https://t.co/3AbZtShgM5 の MCOUNT_ENTER と __cpu_simple_lock() の順序が入れ替わってたせいだった。以前も似たようなことがあったな。https://t.co/q6GV1ljMsT まるで学習していない…」 / Twitter
- Cross Reference: /src/common/lib/libc/gmon/mcount.c
- ryoさんはTwitterを使っています 「asm()でやってるシステムレジスタの読み込みにvolatileが付いてなくて読み込み結果が使いまわされてた。よく今まで動いてたなw」 / Twitter
強化学習
- κeenさんはTwitterを使っています 「面白い。機械学習エンジニアが強化学習でコンパイラの最適化問題を解くための環境を用意している。 普通、コンパイラの最適化はどのパスをどの順番で適用するかは手作業で決める facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations https://t.co/HlelTYg0Tv」 / Twitter
- facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations
- κeenさんはTwitterを使っています 「探索空間は思ったより広くて、LLVMでパスが数百くらいあったはず。それにABABみたいに同じパスが何度も出ることもあるし、パスにパラメータがあったりもする。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/ptgCu42vFJ https://t.co/I2t8qRS6zP https://t.co/sh4w7ZPJZW "Machine Learning in Compilers: Past, Present and Future", FDL 2020 PDF https://t.co/DlQzZB4aeJ PACT 2017, Best Paper https://t.co/yLUrgHg8jl https://t.co/aK82FqQeQR」 / Twitter
- ChrisCummins (Chris Cummins)
- Resume | Chris Cummins
- FadisさんはTwitterを使っています 「FacebookがOpenAI Gym互換の新しいenv、CompilerGymを作った話。コンパイラには膨大な最適化オプションがあり、どれを有効にすれば効率よく高品質なバイナリが得られるか予想するのは囲碁並に難しい …ので適切に選ぶAIを強化学習で作るために、コンパイルをenvにしたらしい https://t.co/ZKjc57tM1Y」 / Twitter
- Facebook Is Aiming To Make Compilers Faster Using Machine Learning With CompilerGym - Phoronix
- FadisさんはTwitterを使っています 「コンパイルオプションがアクションで、コンパイルにかかった時間とコンパイル結果に含まれる命令数をもとに報酬が計算される。短いコードが常に良いとも限らないので、ビルド結果の詳細を覗き見もできるようになっている」 / Twitter
- FadisさんはTwitterを使っています 「ビルド職人も機械学習でやる時代なのか…」 / Twitter
- FadisさんはTwitterを使っています 「これ観測できる状態にソースコードが含まれているから、エージェントは「このソースならこの最適化が効くんじゃないかな」を学習することになって、アクションの順番で結果に違いは出ないから、学習が上手くいくと初手で有効なオプションを全部つけるようになって、通常のビルドに組み込めるって話か」 / Twitter
- CompilerGymを試してみた
VM
- Kazuho OkuさんはTwitterを使っています 「面白い。入力が高級言語で書かれたプログラムなら、whileとifを使うJavaScriptを生成できると思うけど、switch-caseに展開するのと速度差が出るのか(出ないのか)気になる / https://t.co/KjHhM2GczH」 / Twitter
- JavaScript における VM の高速化手法
- Kazuho OkuさんはTwitterを使っています 「実際にはその前に stack や local variable に配列使うのやめろって話になるか」 / Twitter
LICM
- uint256_tさんはTwitterを使っています 「#sericum LICMしてもstoreとかloadが移動してくれないから、そんなに速くならない。早くエイリアス解析を実装しないとどうしようもないね。」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t エイリアス解析をしなくても、load命令で読み込む先のメモリ番地にあるデータを変更するような命令があったらkillするというような保守的なデータフロー解析をすれば、LICMできますよ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 確かにそうですね。 (最終的にエイリアス解析をパスのような形で実装しないと、後々面倒だよなぁと考えていました)」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t まぁエイリアスを全部解析するのは中々難しいですね😔」 / Twitter
PGO
- κeenさんはTwitterを使っています 「面白い。Rustコンパイラ自身をPGOで高速化する試み。rustcはRust部分とC++部分(LLVM)がありちょっと複雑だができなくはないと。十数%高速化するらしい。 Exploring PGO for the Rust compiler | Inside Rust Blog https://t.co/JXDhAkaICU」 / Twitter
- Exploring PGO for the Rust compiler | Inside Rust Blog
- κeenさんはTwitterを使っています 「PGO(Profiler Guided Optimization)はコンパイルしたコードを一度走らせてみて遅い部分などを特定してそこを重点的に最適化するよう再度コンパイルする仕組み。その複雑な仕組みから公式配布するrustcのコンパイルに使うのは簡単ではなさそうと.」 / Twitter
- κeenさんはTwitterを使っています 「1つ注意しておくと、これはrustc自身をPGOで最適化する話。普通のRustのコードのPGOは既にサポートされてるよ。 Profile-guided Optimization - The rustc book https://t.co/h0mUbn6pSC」 / Twitter
- Profile-guided Optimization - The rustc book
- ガイド付き最適化のプロファイル | Microsoft Docs
- プロファイルに基づく最適化の概要
PGO(Linux)
- retrageさんはTwitterを使っています 「Linux kernelでPGOなんてデータどうするのかと思っていたらsysfs経由で見られるようにするらしい。」 / Twitter
- PhoronixさんはTwitterを使っています 「Profile Guided Optimizations (#PGO) Likely Coming To #Linux 5.14 For #LLVM #Clang https://t.co/4gHRuHPfye」 / Twitter
- Profile Guided Optimizations (PGO) Likely Coming To Linux 5.14 For Clang - Phoronix
- retrageさんはTwitterを使っています 「ぱっと見た感じリンク時にプロファイルデータ用の領域をシンボルと共に確保しておいて実行時にそこにためたデータをdebugfsでアクセスしたときにシリアライズしてユーザ空間に見せる、みたいなことをしているっぽい https://t.co/SqtG1Gqj0b」 / Twitter
- kernel/git/kees/linux.git - Various feature branches
basic block parameter
- uint256_tさんはTwitterを使っています 「basic block parameters を知りました.Phiより良いかもしれませんね.」 / Twitter
- uint256_tさんはTwitterを使っています 「#cilk 難しい. basic block parameter を実装しようとしたけど, そもそもbasic block間をまたいで使われる変数が許容されなくなるのか. だから data-flow analysis しやすい,と. extended basic blockに以降したほうが良さそうだし, 色々仕様を変えないと実現できなさそう.」 / Twitter
- uint256_tさんはTwitterを使っています 「#cilk とりあえず, PhiとAllocaだけ扱いを変えよう.」 / Twitter
関数分割
- 7594591200220899443さんはTwitterを使っています 「あっ、関数を勝手に二個に分けてコールドパスっぽい箇所を別のセクションにしちゃうやつだ。2.33% runtime improvement with a ~32% reduction in iTLB and sTLB misses 強いなー」 / Twitter
- Hacker News 200さんはTwitterを使っています 「LLVM merges machine function splitter for reduction in TLB misses https://t.co/9m4HHQIPZ4 (https://t.co/4xFIgNV2mz)」 / Twitter
- [llvm-dev] [RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
- LLVM merges machine function splitter for reduction in TLB misses | Hacker News
- _ko1さんはTwitterを使っています 「@shyouhei Unlikely にレベルが欲しくなるね...」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@_ko1 えっ、普通にありますけど…」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@_ko1 https://t.co/T7PYXyxYoT __builtin_expect_with_probability」 / Twitter
- Other Builtins (Using the GNU Compiler Collection (GCC))
- _ko1さんはTwitterを使っています 「@shyouhei gcc 9 からか」 / Twitter
- ドッグさんはTwitterを使っています 「LLVM にこんなパッチ出てたのか.profile data から関数の中で cold なパスを見つけ,リンカがそれらのコードを関数の外にまとめて配置.hot なパスの凝縮度が上がってキャッシュ効率が上がる.2%以上のパフォーマンス改善 | '[llvm-dev] [RFC] Machine Function Splitter' https://t.co/3JEoJZ71DL」 / Twitter
- ドッグさんはTwitterを使っています 「Google では profile data driven なアグレッシブなインライン化をやっていて,それによってコードの肥大化と実行コードの fragmentation がひどくなっていることの対策.最も hot な関数のコードの実に50%は(hot なのでキャッシュに乗ってるにも関わらず)実際は実行されてないらしい」 / Twitter
- エヌユルさんはTwitterを使っています 「C++だとコンパイラはインライン展開が得意な割にキャッシュヒットのための関数分割が苦手な傾向あるし関数は分割していった方が良いんですが JavaScriptのJITエンジンはどうなんですかね」 / Twitter
支配木
先にcritical edgeを除去
- uint256_tさんはTwitterを使っています 「途中でブロックを追加したりするから支配木を再計算しないといけない. 効率が悪いので良い方法を探したい」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t 先にcritical edgeを除去しておくってのはどうでしょう?」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど. ループのヘッダを計算しなくても critical edge を除去することはできますね. ありがとうございます」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 (ループのヘッダを計算するのは, プリヘッダを追加するため)」 / Twitter
- uint256_tさんはTwitterを使っています 「CFGで,ブロックxからブロックyへの経路があるかっていうのはどうやって調べるのでしょうか 支配木を使って, xがyを支配する or xの支配辺境がyを支配する, でいいんだろうか」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t それだと2回流入があるケースに対応できないです。 \ \ x--df1--df2-y xがyを支配する or xの支配辺境の支配辺境の…と辿った集合がyを支配するの条件が必要です。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold なるほど. それ以上簡単に判別する方法はないのでしょうか」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t これ以外ないかと言われると自信ないですが、支配木を使ったアルゴリズムは私はこれしか知らないです。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold ありがとうございます.」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t 余談ですが支配辺境の支配辺境の…と辿った集合はiterated dominance frontier(反復支配辺境?)という名前がついているそうです。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold 聞いたことあります. なるほど, こういう場合に役立つのか...」 / Twitter
- Basic Block Reordering - GNU Project - Free Software Foundation (FSF)
BOLT
- uint256_tさんはTwitterを使っています 「BOLT: a practical binary optimizer for data centers and beyond」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t 並び替えるだけでこんなパフォーマンス変わるとは。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t あとディスアセンブルして並び替えてアセンブルすると元と同じように実行できるバイナリになるっていうのが結構すごい(細かいところを実装するのが大変そう)。」 / Twitter
PRE
- uint256_tさんはTwitterを使っています 「partial redundancy elimination よくわからない.これもdominator treeとか使えば綺麗に実装できるのだろうか」 / Twitter
- uint256_tさんはTwitterを使っています 「なんか先にglobal value numberingの事を考えた方がいい気がしてきた」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t PREの一つであるLazy Code Motion(LCM)の実装方法が、以前に紹介したBuilding an Optimizing Compilerに載ってますよ。まずLCMの元の論文を読んでみてもいいかもしれませんね。PREはド専門なので、わからなかったら是非聞いてください(^^)」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 ありがとうございます.(今コンパイラの構成と最適化を読んでいて,SSAの場合どうするのが楽なのか考えていました)」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t SSAPREという手法が実は既に提案されています。ちょっと自分で考えてみてから論文を読んでみるといいかもですね。 https://t.co/AK8cMSBIst」 / Twitter
- A new algorithm for partial redundancy elimination based on SSA form | ACM SIGPLAN Notices
in-order 発行+out-of-order 完了
- R. ShioyaさんはTwitterを使っています 「去年ぐらいから in-order な CPU(正確には in-order 発行+out-of-order 完了)の性能解析をする機会がちょくちょくあって,out-of-order な CPU との性能差の要因の1つとして,分岐命令の処理方法の違いが大きいってのがあんま本とかでは見た覚えがなかったので面白かった」 / Twitter
- R. ShioyaさんはTwitterを使っています 「out-of-order 発行だと,分岐命令はディスティネーションがないので(予測が当たっている限りは)全体の実行を遅らせることは基本ないけど,in-order 発行だとロードに依存する分岐とかは依存元の値が取れるまで発行を止めないといけないので,ここで性能差がごりごり出ることが多い」 / Twitter
- R. ShioyaさんはTwitterを使っています 「分岐予測が当たってる限りは分岐命令は性能に影響与えないよねとか思っちゃうんだけど,それとは別に in-order 発行の場合は真の依存があると止めないとダメだってのがあって,当たり前ではあるんだけど見落としがちな感じ」 / Twitter
Optimize frozen/sealed objects
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「意外と知らないことが多かった。V8なりSpiderMonkeyなり各種処理系はこの辺の情報を最適化に使ったりしてないのかな? / 1件のコメント https://t.co/EfBfzOhyiZ “Diving Deeper in JavaScripts Objects” https://t.co/OTwwr5Ikzl」 / Twitter
- Diving Deeper in JavaScripts Objects | by Arfat Salman | Bits and Pieces
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「少なくともV8はしてるみたいだね。AltJSが生成するコードとかで使うといいかもなぁ https://t.co/07xSGh8xOJ」 / Twitter
- 6831 - Optimize frozen/sealed objects - v8
x86 C
- 相沢陽菜さんのツイート: "この間、「x86ターゲットだと謎の計算式に置き換えられるけど、ARMだと普通に計算されちゃう。謎の計算式のほうが速いとおもうけど、最適化のための重み的なのあってるのかなこれ」みたいなことを某学生がいってた"
- 相沢陽菜さんのツイート: "intの変数を定数でわる関数とか作ってO3とかかけるとなぞの処理になるんだよ(なぜそうなるかはよく考えるとわかるらしい"
- 相沢陽菜さんのツイート: "コンパイラ「 movl %edi, %eax movl $1717986919, %edx sarl $31, %edi imull %edx sarl %edx subl %edi, %edx movl %edx, %eax ret 、はい、5で割れました」 PG「は???」"
- hoge.c
C++ vtable
- 島鉄雄さんのツイート: "vtable の中身ってインスタンスが生成された時点で決まってるし、オフセットも定数だから、ストールとか発生するはずが無いと思われる。 仮想関数呼び出しが遅く感じるのは、インライン化されない影響の方がデカい気がする。… "
- Masayuki Ishikawaさんのツイート: "大昔C++を初めて使い始めた時、会社の先輩がC++の呼び出しオーバーヘッドが気になるって言われた事があります… "
- iruka3さんのツイート: "仮想関数のvtableをなるべく手前でloadするようにコンパイラ(か、人間)が工夫するしかないです。 分岐先が直前まで未定のjmpやcallはストールせざるをえない・・・… "
- iruka3さんのツイート: "C言語で書けば、(アルゴリズム的に無駄やってないなら)今のCPUは十分早いです。 問題は、C++で仮想関数使い始めてからですねぇ・・・ (呼び出しがレジスタ間接になるけど直前にしかロードされないので投機出来なくてストールとかそんなやつです)… https://t.co/xcVHtcwU4y"
- 島鉄雄さんのツイート: "パイプラインがストールする案件ってのは、飛び先が分からないからじゃなくて、フェッチした飛び先が実際にジャンプする前に書き換わった時でしょ? フェッチからやり直しになるのをストールという。 vtable の中身は書き換わる事が無いから、ストールしないよ。… https://t.co/XC0Kvm0gMu"
- iruka3さんのツイート: "その通り >vtable の中身ってインスタンスが生成された時点で決まってる vtableから、呼び出し先アドレスを得るフェッチをするまで飛び先が分からないので、CPUの命令フェッチパイプラインがストール C++コンパイラが、これを先回りロードしてレジスタに保持出来ればいいけど、そうなるとは限らない… https://t.co/KZv7bsFUoV"
- iruka3さんのツイート: "https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); CPUの命令フェッチパイプラインの問題だけであって、命令ステップ数的には、べつにどうということはない感じ"
- [雑記] 仮想関数テーブル - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- iruka3さんのツイート: "もしかしたら今のintel CPUは間接分岐命令のアドレス予測をやっているのかもしれないけど。"
- 島鉄雄さんのツイート: "0:フェッチ→解釈 →実行 →書き戻し 1:解釈 →実行 →書き戻し→フェッチ 2:実行 →書き戻し→フェッチ→解釈 こんな感じでパイプラインがオーバーラップしてるけど、0は実行するまでに2が何かを書き換える可能性があるから、2次第では0はまたフェッチからやり直しになる"
- 島鉄雄さんのツイート: "フェッチからやり直しになるストールは発生しないけど、プリフェッチがされてなくてL1キャッシュミスでストールするという事を言いたかったのか。 それ言ったら、C++はobj->child->data->func()みたいな長い間接参照しつつ関数呼び出しされまくるからvtableだけ特別遅いとも思えない。… https://t.co/crdPdwLPJt"
- iruka3さんのツイート: "それはそうなんですけど、 https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); を普通にマシン語で並べると、呼び出し先アドレスをレジスタに取ってきて、間接call発行なので、命令プリフェッチが効かない場合が多いのです。… https://t.co/DmeaHkGBs8"
- iruka3さんのツイート: "仮想関数を呼び出すクラスがほぼ固定されていたら、分岐予測キャッシュに溜まる可能性が高いですけど、多態性を多く持たせている(呼び出される可能性のあるクラスが沢山存在する)場合はそうでもないとかそんな感じ"
- 島鉄雄さんのツイート: "auto data = obj->child->data; data->func1(); data->func2(); の方が速そうだけど一々手間なんで obj->child->data->func1(); obj->child->data->func2(); と書くけど、これはコンパイラが最適化してくれてるはず。 それと同じで同じオブジェクトの連続した仮想関数呼び出しも最適化されてるはず。"
AoS
- 電子計算機の沼さんはTwitterを使っています: 「何かを共通で使ってしまってダブってるようなクソAoSの話してんのかな、、」 / Twitter
- KOBA789さんはTwitterを使っています: 「@Hishinuma_t Python だと実質 Array of HashMap みたいなクソ AoS になるから、ってことですかね?」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「@KOBA789 あー、なるほど。そういう誰がどう見てもクソみたいなやつと比較して喋ってるのか、、、」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「AoSとSoAで,SoAのほうが本当にSIMDに良いかと言われるとまぁ確かに良いしSoAが良いぞって博士論文にめっちゃ書いたけどSoAは嫌いだよ」 / Twitter
- 電子計算機の沼さんはTwitterを使っています: 「あとSoAのほうが良いシチュエーションって実は稀で,complexみたいなたすき掛けするやつはSoAにしてもダメだし,元々メモリネックなアプリケーションだとSoAにしても変わんない むしろ要素アクセスとかFFIがしにくいから言語レベルでSoAを採用するのが正解かはちょっと謎」 / Twitter
users
@Jiccho96
- jicchoさんはTwitterを使っています 「以前にこんな感じのことできたらなぁと考えてたやつがCGO 2020に出てた https://t.co/oCLK3f5Z6u」 / Twitter
- Speculative reconvergence for improved SIMT efficiency | Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 おお,読んでみます! この研究の提案手法と, @Jiccho96 さんの以前紹介してくださった提案手法との違いは何ですか?」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 ほとんど別物ですね。 分岐発散を低減したいというところだけ共通しています。 僕が以前ご紹介した手法は分岐発散の性質を利用して式を投機的に巻き上げるのに対し、この研究では直後支配節より早い点で投機的にreconvergenceして分岐発散自体を抑える手法になっています。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 こんなことできたらなって妄想してましたが、NVIDIAはさすがですね。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 とてもよく理解できました。感謝します。」 / Twitter
@telmin_orca
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「「この位置にprintfが無いとなぜか動かないんだ。」 https://t.co/Crr7nvXnJg 注釈の解説が本編だった。 恥ずかしながらTSTの中にもこれと大差ない(副作用に期待した)コードがある。「ここで一回イベントループを終わらせてFirefox側の処理完了後に回さないと動かない」とか。」 / Twitter
- 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
- 富岳てるみさんはTwitterを使っています 「これと直接同じ話ではないけど、コンパイラが賢いせいでスタックを大量に消費するから最適化を無理やり切るために変なブロックを打ち込むとか、レジスタを消費しすぎて割り付けの自由度が著しく低下してるから関数に切り出すとか、世の中には色々辛い話がある(?)」 / Twitter
- 富岳てるみさんはTwitterを使っています 「最内ループでスピルしまくると涙ちょちょぎれちゃう」 / Twitter
histric
histric-1
histric-1
- とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
- まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
- とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
- まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
- まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
- まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
- とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
- とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
- とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
- とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
- satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
- まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
- まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
- satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
- まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
- satさんのツイート: "perf最強です。もう頭が上がらない… "
- まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
- まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
- satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
- satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
- まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
- まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
histric-2
histric-3
- C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
- まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
- まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
- まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
- まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
- まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
- まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
- まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
- まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t PLDI, CGO あたりを読むのが良さそうですが,どうでしょうか?」 / Twitter
- FadisさんはTwitterを使っています 「LLVMに新しい最適化パスMachine Function Splitterが提案されている。この最適化は関数の中の実行される可能性が高そうな部分と低そうな部分を分離し別々のsectionに吐く。実行される可能性が高いマシン語の列が密に配置され命令キャッシュのヒット率が上がり、性能が向上する https://t.co/soUjc9eLmA」 / Twitter
- Google Engineers Propose "Machine Function Splitter" For Faster Performance - Phoronix
- Fadisさんのツイート: "gccに新しい最適化フラグ-O1gを追加しようという提案がなされている。-O1gでは-O1で行われる最適化のうち、デバッガで覗いた時に悲しみが溢れる物を除外した最適化を行う。最適化するとデバッグが捗らないけど、最適化しないと遅すぎてデバッグが捗らない時に役に立ちそう https://t.co/woaqbvpahc"
- New "-O1g" Optimization Level Proposed For The GCC Compiler - Phoronix
- chikoskiさんはTwitterを使っています 「仮定をいくつか置くことでも最適化できる。例えば、今見てるアドレスよりも引くアドレスにはアクセスしないという仮定ができれば、アドレスの足し算を消して、オフセットを使ったメモリアクセスに書き換えられる。これも効く」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「共用体メンバ」じゃなくて、「共用体メンバのうち、アクセスが無いメンバ」だな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、gcc側の問題のような気も。似た落とし穴に嵌る人も多そうだなぁ…"
- ゆたかさんさんのツイート: "Infinibandドライバでstruct sockaddrのアクセス方法が変更となりましたが、元のコードだとなぜダメなのかよく分かりませんでした。共用体は沼が深いです。 × &sgid._sockaddr ○ (struct sockaddr *)&sgid https://t.co/ZYTCUvG3iI #カーネルパッチ勉強会… https://t.co/INOsrww15L"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 ローカル&static関数でしかアクセスしない共用体メンバは、存在しないものとして最適化が走るんだろうなぁ。… "
- とみながたけひろさんのツイート: "https://t.co/gKiaPJMdZ3 コンパイル時間との絡みでどこまでやるかよく議題になる定数・値域伝搬最適化ですな。 f(a,b){int r=a;while (++a<b) r*=a; return r;}はa<0<bとかだと0にできるけど、やります?みたいな"
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
- Kazuho Okuさんのツイート: "「コンパイラは、異なる型の仮引数についてaliasingされているとは考えなくてよい」っての、割と一般的な strict aliasing の説明だったと思うけど、それが問題になってるの..."
- Kazuho Okuさんのツイート: "Cに落とすことで実装さぼりたいという意図で言うと、aliasingで最適化無効になるの避けたいしスタックベースの中間表現さけたいのはよくわかる"
histric-4
- κeenさんのツイート: "「SSAをハッシュして持っとくと共通部分式が見付けやすい」へー。 #compiler_study"
- κeenさんのツイート: "「SSAだとGlobal Variable Numberingがやりやすい」 #compiler_study"
- κeenさんのツイート: "link time optimizationとwhole program optimization、LTOの方がコンパイル時間が短いけど諸々の理由で中間ファイルにメタデータを埋め込めなかったらWPOになっちゃうよね。"
- もっちぃさんのツイート: "形式検証では不変量の自動抽出が鍵になり、Invariant is holy glory of formal verification なんて言われます。で、この不変量、当然最適化にも利用可能です。その意味で、最適化と形式検証は表裏一体であり、ともに協調して発展していく事が大事です https://t.co/BCYQa4kkwM"
- Kazuho Okuさんのツイート: "スタックをグローバル配列じゃなくローカル変数な配列でもつようにしたら速くなるはず... っていうけど、そもそも遅いのはエリアシングじゃないのかな。だとすると、ローカル変数な配列にしても関数呼出が発生しうるパスがあるとダメな気がするけど"
- もっちぃさんのツイート: "値番号に基づく部分冗長性除去 https://t.co/7PceHkvgGO https://t.co/uoYsZdcu0q #compiler_study"
- herumiさんのツイート: "岩永さんによる最近のC#の概要。stackalloc, Span構造体, ref周りの拡張など、C++が無法地帯からなんとか安全な方向を目指すのと逆向きでC#が安全なところからぎりぎりを攻める感じが面白い。if (uint)x < y)みたいな最適化を2018年に見るとは思わなかった。https://t.co/QBcf7GtiNu #decode18 #ad19"
- Jacob Torreyさんのツイート: "Still one of the strangest things I've learned from the x86 manuals. ADDING dead/redundant code will improve prefetching and overall performance!… https://t.co/ne5YEHo3oc"
- Nerry@さんのツイート: "いまどきのCPUはほぼOoO動作していて、そのとき空いてるユニットにぶち込んで依存性のない命令はどんどん勝手に実行されていくのに、命令生成の段階で命令の順序に気を配る必要性あるんだろうか?"
- Nerry@さんのツイート: "いくらコンパイラが頑張って命令配置してもCPUが無理って思った命令は後回しにされるし逆に行けるって思った命令はどんどん実行されちゃうから並べ方に気をつけても???"
- Nerry@さんのツイート: "いくらコンパイラが頑張って命令並べてもCPUのOoOの方が優秀で重要ってのがVLIWの知見なわけで…"
- hsjoihsさんのツイート: "「言語仕様を盾に、コンパイラが非直感的な最適化をどんどんしてくるようになってきた頃から」なのでは、というのはいろんな話を聞いていて思う… "
- デダルス・ユメノさんのツイート: "あるスーパープログラマが「最近の若い人は言語仕様に拘るよね、昔はコンパイラが仕様に従ってないことがざらにあって、現物でちゃんと動くコードを書く(たとえ仕様違反でも)ことに価値があった。」と言っていたのを思い出した。いつ頃から言語仕様が神格化されたのか。"
- hsjoihsさんのツイート: "時系列的にはこっちの要素の方が先かも https://t.co/lQ8HkmTHp7"
- yoh2さんのツイート: "「現物でちゃんと動くコード (言語仕様違反)」がコンパイラのバージョン違いで動かなくなる地獄に遭遇したからだよ。 かと言って言語仕様通りでもコンパイラのバグで動かないことも稀にあるので、言語仕様+コンパイラの独自拡張通りかつ現物で動くものが大事。 https://t.co/41hEhHEt2p"
- 電子計算機の沼さんはTwitterを使っています 「ちなみに自動並列化・最適化されてほしいねえという話をさっきからしていますが... 最適化や並列化をすると演算順序の変更により誤差の入り方も変わって答えが変わって...みたいな沼の話もあって楽しいんですが皆さんどうですか」 / Twitter
- 伊丹十三世さんはTwitterを使っています 「@Hishinuma_t CT再構成はまさにそこですね…並列処理をきちんと考えないと誤差を含んでボケた画像になるので…故に基本GPUは使ってはいけない…」 / Twitter
- uint256_tさんはTwitterを使っています 「https://t.co/dBL7fQ4ghB ここらへん眺めながら,面白そうなのを実装していきたいね」 / Twitter
- LLVM’s Analysis and Transform Passes — LLVM 12 documentation
- uint256_tさんはTwitterを使っています 「- 命令選択マクロは便利だけど、似たような記述が増えていって不便 (正規表現でマッチするものを自動生成してもいいけど、proc-macroが複雑になりすぎる) - DAGをunsafeなノードのグラフとして表現するのはどうなのか - IRのBasic Blockがliveness情報を持っているのはどうなの (Functionとかに渡そう)」 / Twitter
- uint256_tさんはTwitterを使っています 「拡張基本ブロックは偉大だなぁ...」 / Twitter
- uint256_tさんはTwitterを使っています 「LLVMでいうSelectionDAGみたいなのをどうやって表現すれば一番適切なのか」 / Twitter
- uint256_tさんはTwitterを使っています 「動的な命令選択パターンマッチャを作る。costは多分アーキテクチャごとに命令のlatencyやらを考えながら決めるんだろうけど、今は面倒だから cost=1/どれだけ多くのノードをカバーできたか でいいか。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「RT 元の表や元のブログ記事はちょっと勘違いがある気がして(ROB とスケジューラの区別がたぶんついてないかも),でも文字では説明がしんどいので絵を描いてみた・・・ らえらいごちゃごちゃになった. インテルや IBM がいろいろ呼び方変えててめんどくさいのは,そうだなぁと思う. https://t.co/W28eoKuOnb」 / Twitter
- R. ShioyaさんはTwitterを使っています 「たとえばこの Zen2 の AMD がだしてるブロック図は Scheduler が分散になっているのでそこが少し違うけど,おおむね自分の描いた図と一致しているとおもう. ちなみにサイズは Scheduler が合計92命令,ROB が224命令で,最近はだいたいこんなもんかも. https://t.co/uWnxjWeSV7」 / Twitter
- 拡大画像 photo12l | Ryzen Deep Dive! 「Zen2」の内部構造を分析する - 第3世代Ryzen+NAVI徹底攻略 (1) | マイナビニュース
- Shinji KonoさんはTwitterを使っています 「Cは実は関数呼び出しかなり重くて、関数展開しまくってようやっとなんとかなってる。なので、native compiler な言語なら勝てる余地はいろいろある。」 / Twitter
- FadisさんはTwitterを使っています 「今日殆どのC++コンパイラは末尾再帰最適化を行うが、C++の規格は末尾再帰最適化を行う事を特に要求していない為、末尾再帰最適化がかからなければスタックが溢れて死ぬようなコードはコンパイラとコンパイルオプションが指定されない限り「互換性に問題のあるコード」ということになる」 / Twitter
- そすうぽよ(早寝早起き)さんはTwitterを使っています 「最適化するとデバッグできなくてしんどいが、最適化しないと遅くてつらい、という悩みを軽減するために、GCCにはデバッグをあまり妨げないような最適化のみ行う、-Ogオプションがあって便利です」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「なおローレンツ方程式というのは初期値鋭敏性という性質を示す微分方程式で、微小な差が時間発展に伴って急速に成長するので、どっかで誤差の出方が変わる最適化とかを暗黙的に行ってしまっていないかと言う確認とかによさそうな気がするやつです(もっといいのたくさんあるはずだけど書き慣れてるので」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「にもかかわらず数学関数を一切呼ぶ必要ないからそのへんの実装依存の精度差を食らわんって点も好きで、実際C/C++でも誤差桁まで同じ結果出たので、IEEE754準拠で同じ丸めモードで同じFPU/CPU使ってれば少なくとも手元環境ではそれくらい合ってくれるっぽい?」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda 次にコンパイラ技術が進んだら VLIW でどうにかなるのかというと,個人的には無理だと思います.これは VLIW というかコンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda あとは,静的にコンパイラでどうにかする技術は,プロセッサがアップデートされて構成が変わった際に追随できないと言うことがあります.新製品で動かすとキャッシュのレイテンシが伸びて再コンパイルしない限りは毎サイクルストールする,なんてことがありえると思います.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なるほど、うなづくしかないが、「コンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」は果たして本当にそうなんだろうか?って思った」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、その際にはつねに裏でプロファイラが走っていて必要に応じてOSRするって感じになるだろうけど、コア余っているからそれもいいよね?という」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Clang/LLVMは、アホなO(n)関数 (ループを使って偶数かどうか判定する) をビット演算を使った O(1)関数に最適化できてしまう(!)。アホな再帰関数も同様。これは - ループがある1つの変数のみを計算する目的であり - ループカウンタが前もって計算可能 のときに起こる。すごい https://t.co/TcZhvw6dXW」 / Twitter
- Exploring Clang/LLVM optimization on programming horror
- daem0nc0reさんはTwitterを使っています 「あからさまに非効率な関数を書いてビルドする場合に、LLVMがどうやって最適化してくれるのかというのを検証したという記事。 https://t.co/Jiy6iYBUxs」 / Twitter
- FadisさんはTwitterを使っています 「gcc 12から-O2でvectorizationがかかるようになるらしい。vectorizationはループを展開してSIMDで実行する最適化で、従来から-O3には含まれていたが、SIMDが性能向上に寄与するかはループの内容や条件に依存し、最適化を行う判断が高コストな為-O2には含まれていなかった https://t.co/H6HUgT1u9A」 / Twitter
- GCC 12 Enables Auto-Vectorization For -O2 Optimization Level - Phoronix
- FadisさんはTwitterを使っています 「gcc 12ではvectorizationの判断の方法にvery cheapモードが追加される。これはループの回数が明らかで、かつそれが4の倍数なら展開してSIMD命令を使う、という物で極めて雑だがそこそこ性能向上に繋がる事が示されている」 / Twitter
- FadisさんはTwitterを使っています 「gcc 12で-O2で最適化をかけるとvectorizationにvery cheapモードが用いられ、これによって-O2に求められるコンパイルの速さを損ねずにvectorizationが行われる。-O3で最適化をかけた場合は従来通りの方法でvectorizationが行われる」 / Twitter
- FadisさんはTwitterを使っています 「まぁ、うちのGentooのCFLAGSは -O2 -pipe -march=armv8-a+crc+simd -mtune=cortex-a72 -fforce-addr -ftree-vectorize -fomit-frame-pointer -fstrength-reduce -fno-strict-aliasing -funroll-loops -fstack-protector だからあんまり関係ないわけだが」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「CPUの気持ちとかいうの、外面 (命令セット) だけ見て、内面 (uOPなどの内部の命令セット。Pentium Pro以降は命令セットのデコーダーが内部での別OPに変換してる) を見てくれない的な話じゃないの? 外面の話されてもねぇ。」 / Twitter
- uint256_tさんはTwitterを使っています 「どうでもいいけど sparse conditional constant propagation って何かの必殺技っぽい」 / Twitter
- コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「エントリー書きました。うだうだ。 コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog https://t.co/7ua1tCPhX8」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Itaniumはコンパイラの開発が追いつかなかったと言われるけど、実際はもともと無理筋で、単に数値計算みたいなコンパイラが並列化しやすい特殊な用途の研究成果を見て、一般的にこれくらい性能向上できると勘違いしてしまったというのが正確だと思うんだよな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そういえば、Itaniumのコンパイラって実際にはどういうレベルだったんだろう?って気になって調べてみたら面白い記事を見つけた。おそらく機械翻訳で文がこなれていないが面白い https://t.co/00jfMr4x3x」 / Twitter
- history — Itaniumプロセッサがコンパイラを書くのが難しいのはなぜですか?
- Miura HidekiさんはTwitterを使っています 「ネイティブコード生成してオーバフローチェックを省くとこんな速度向上するのは驚き」 / Twitter
- Chris SeatonさんはTwitterを使っています 「Is it possible to safely turn off overflow checks for integer arithmetic in Ruby? Yes! You just have to write a proof for the compiler that they're not needed. https://t.co/NyIkCU3Ol9 https://t.co/awkt4QfdPw」 / Twitter
- Stamping Out Overflow Checks in Ruby
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GCC (Clang) の -ffast-mathオプションには注意せよ。その名のとおり数値演算を高速化するが、正確さが犠牲になる。これは実際にはいくつかのオプションの集合であり、具体的には無限大やNaNを扱えなくなる、SIMD有効化のために演算順序が変わる可能性がある、などである。 https://t.co/X4qlmReiQ9」 / Twitter
- Beware of fast-math
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「なぜコンパイラの最適化が間違えることもあるのかを解説した記事。基本的に最適化とは「パターンを発見し、それを一定のルールで置換すること」である。これらのルールには特定の条件下でしか使えないものがあるが、繰り返し適用していくと何が使用可なのかワケわかんなくなる https://t.co/QlWgCoc56R」 / Twitter
- Compiler Optimizations Are Hard Because They Forget - Faultlore
- すねいるさんはTwitterを使っています: 「#Z80 の高速乗算を調べてたら素晴らしいコードを見つけました: https://t.co/EgcfjQukdy a*b = ((a+b)^2-(a-b)^2)/4 なので, x^2/4 をテーブルから検索し,通常の倍の速度で乗算します. コードがまた超絶技巧で読むのに苦労します. ...乗法の公式,階差級数...中学数学の知識がよみがえる.... https://t.co/FNykwO7NiU」 / Twitter
- Programming:Integer Multiplication - CPCWiki
- M.KさんはTwitterを使っています: 「https://t.co/AQwE0fAwt8 高速に文字列を整数にする方法 なるほど」 / Twitter
- Faster Integer Parsing
データフロー解析
JIT
- monochromeさんはTwitterを使っています: 「@miura1729 僕も今自作Ruby with JIT処理系で浮動小数点数演算の最適化に取り組んでいて、まあまあいい感じの機械語が吐けてそれなりに速くなったのですが、」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 基本ブロックの出口で全てのxmmレジスタをスタックに書き戻すようになっていて、これが(double→Rubyオブジェクトへの変換)結構なオーバーヘッドになっています。(特にループだと一回転ごとに書き戻しが発生するので) 今、フロー解析でこれを極力減らすように考えています。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 NaN Boxingにすればオブジェクトはxmmに入れておいてガードを発行するだけじゃないかなって思います。ただ、Tracing JITでないと型の予想がめんどくさいのでこの辺はTracing JITが有利な点かなとおもいます。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Tracing JITにするか、型のプロファイル情報を取るのか、抽象解釈で推定するのか、メソッドキャッシュの情報を引っ張ってくるのか、面白いところだと思います。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 今はCRubyと同じで下位ビットをタグにしています。NaN boxingだとより頻度の高い整数の型チェックが遅くなるんですよね…」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 MethodJITですが、VMが実行時に型情報を収集してバイトコード(固定長)に書き込むようにしています。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 確かに...。XMMレジスタを整数として扱うことも出来ますが、貧弱ですよねー。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほどー。たしかLuaJITもバイトコード(正確にはより低レベルの物)に型情報を書き込むんですよね。あれはTracing JITですが」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 ポインタ取り出すにも一手間かかるし、その辺りが今はあまり使われていない原因なんですかねえ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 NaN Boxingの話でしょうか?それなら48bitマスクすればいいだけでは?48bitしか使えないのはこの先問題になりそうです。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 そうですね、固定長のレジスタマシン・バイトコード、アセンブリで書くVMなど、LuaJITを参考にしてデザインしています。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほどー」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Tracing JITにしなかったのはなぜですか?」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 それは特に理由はなくて、MethodJITの方が構造が単純になるかなと思っただけです。トレースを記録するのが面倒かなと。 MethodJITでハマったのは、再帰関数では特に顕著なのですが、VM実行で通らなかったコードについては型情報がない状態で機械語生成するハメになることですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 確かにそうなりますね。この辺はデータフロー解析が欲しくなりますね」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 型情報のない枝にはスタブを置いておいて、yjitみたいに将来踏んだ時に初めてコード生成するような方法もあるかなーと」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 それだとtracing JITと変わらないような気がしますが、どうでしょうか?私が何か勘違いしている気もしますけど」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 基本的にはメソッド単位、ループ単位でコンパイルするので、Method JIT (+ Tracing JITによる補完)ということになりますかね?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど。プロファイリング結果の扱いを工夫すると双方のメリットを補完出来ていいかもしれないですね。でっかいメソッドの中のホットスポットを見つける効率的なアルゴリズムが必要になりますけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 @uint256_t goはエスケープ解析をしてスタックに割り付けていますね。このツイートではもう少し踏み込んで強制はしないけど所有権ルールを守っていればRustみたいにメモリの解放を行い、ここをコピーすればその条件が満たせるのになという場合はサジェストするような処理系を妄想しました。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「実行順序配列をつかてループ内かそうではないかを区別する方法が分からない。別にフラグを入れるべきなのか https://t.co/2ILvl116Ka」 / Twitter
- 高速データフロー解析案 - Google スライド
- Miura HidekiさんはTwitterを使っています: 「ジャンプ元の実行順序値と比べればいいことに気づいた」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「実行順序って半順序なので一概に数値付け出来ないことに気づいた。実行順序を求めたたい場所ごとに配列を用意することで解決できるような気がするけど、これから検討する」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「もっと単純に基本ブロックごとにこの先到達可能なブロックのビットマップを持てばよかった。こうすれば自分自身のブロックが0か1かでループ内かも判別できる。ブロックではなく命令のビットマップを持つことも考えられるがそうすると多倍長が前提になる」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「データフロー解析をビットマップ演算で高速化する話、いま、各基本ブロックごとにこの先実行されるブロックをビットマップ化するという問題を考えているのだけど、ダイクストラ法とかトライの高速化みたいな私の嫌いな競プロっぽい話が続出でつらい」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「いまやりたいことは、各基本ブロックから到達可能な基本ブロックのリストをビットマップとして得る効率的な方法。nを基本ブロックの数としてO(n^2)なら簡単だが、o(nlogn)あたりのアルゴリズムがありそうな気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「ループを含むデータフロー解析の方法(ある基本ブロックから到達可能なブロックを求めるアルゴリズム)が思いついてドキュメントを更新しているのだけど、popcntと掛け算を多用しそうでこの辺が高速なCPUが欲しいなと思っている(まだ具体的なアルゴリズムは書いていないです) https://t.co/Jyl6RljA4X」 / Twitter
- 高速データフロー解析案 - Google スライド
- Miura HidekiさんはTwitterを使っています: 「しまった、また 動的型付け原理主義 に投稿しようとした記事を一般向けに投稿してしまった。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「抽象解釈による型推定が実用上気にならないくらい高速に実行出来るようになれば、動的型付け言語の方が便利って思う人が出てくると信じているのだけどどうなのかな?さっきの投稿はその一環で高速な抽象解釈を目指して考えているものです」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「他の投稿と紛れてしまって後で見返せなくなるので基本的にこの話は、動的型付け原理主義コミュニティに投稿しています。興味ある人は参加してください。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「データフロー方程式を代数的に解く方法ってないのかしらん?」 / Twitter
- cobwebさんはTwitterを使っています: 「@miura1729 広範に書いてありますが数学の道具は押さえてある文献です。文献9にbdd,ほかにmso,μ計算など。ただgithubにコードはなさそうでもし探すならbddの実装やμ計算の実装を探すと言語は何かわかりませんがありそうな気がします https://t.co/T2gJ2ReLee」 / Twitter
- 13_6_439.pdf
- cobwebさんはTwitterを使っています: 「@miura1729 コンパイラのフロー計算の雛形なら教科書や事例コードがありそうですが木計算は21世紀に入ってからは先の論文みたいになるかレガシーなプッシュダウンになりそうです。riscのコンパイラの変数などのデータフロー、まさかいまさらコンパイラ作る気にはならないから分析しなかった(計算機科学でパタヘネ)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@cobwebkanamachi 実際のコンパイラのコード調べるのが一番ですね。」 / Twitter
- cobwebさんはTwitterを使っています: 「@miura1729 データフローと変数のコンパイラ処理の教科書、アムステルダムコンパイラキットで私は止まっており調べても的外れになりそうです。コンパイラの教科書でコード付があるとよいですね」 / Twitter
- cobwebさんはTwitterを使っています: 「@miura1729 これにはコンパイルできるコードがあるようです。データフロー処理の単元もありました。しかしお求めのフロー処理かはわかりません。 https://t.co/IElVMmi928」 / Twitter
- IT Text コンパイラとバーチャルマシン | Ohmsha
- cobwebさんはTwitterを使っています: 「@miura1729 mlとかあり?ですがマニアックそうな品です https://t.co/9mllv6ExNU」 / Twitter
- 最新コンパイラ構成技法 | カーリル
- Miura HidekiさんはTwitterを使っています: 「@cobwebkanamachi これは英語版持ってます。ちょっと読んでみます」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「休みの間、暇があるとブロックをまたいだレジスタの寿命解析をビットマップで高速化する方法を考えているがいいのが浮かばない。ブロックの先頭と後方にwrite/readのダミービットを立てるとよさそうだけど、色々穴がある。」 / Twitter
- RFC 2828 - Internet Security Glossary
- PLDI2022参加体験記 - Jicchoの箱
- 「RISC-V+LLVM本 付録1. 関数呼び出しのバリエーションと高度な機能」を無償公開しました - FPGA開発日記
- 「RISC-V+LLVM本 付録2. 浮動小数点命令」を無償公開しました - FPGA開発日記
- Return-oriented Programmingとは何かを学ぶ|レピダム
- 連分数についてのメモ
- おまどんさんはTwitterを使っています: 「Kernel Exploitation、極めてとっつきにくい印象を持っていたんですけど、このページを読んでいると自分もやってみたくなってくる https://t.co/On3nLcGIL5」 / Twitter
- Linux Kernel Exploitation | PAWNYABLE!
- おまどんさんはTwitterを使っています: 「gdbでカーネルデバッグしたり、rootfsの内容を書き換えたり、自力でやると詰まりそうなポイントをサクサク試せてほんと素晴らしい。神サイト」 / Twitter
設計・方法論
GraphQL バックエンド開発
Prisma
- Naoya ItoさんはTwitterを使っています: 「TypeScript ではないプロジェクトでデータベースを使う必要があって、スキーマの管理とか開発時のデータの確認とか面倒だなと思ったんだけど、敢えてそこで prisma を使ったら案外良かった」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「要するに prisma スキーマ、マイグレーション、prisma studio を使ってるってことなんだけど、マイグレーションがないと DB スキーマを宣言的かつ冪等に管理できないってことと、データの確認のためにその DB 専用のクライアントの使い方を覚えないといけないのを解消できてよかった」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「prisma のいいところは、言語に依存しない形でスキーマを宣言できて、そこからクライアントライブラリなりデータベーススキーマを生成できるところ。GraphQL のスキーマファースト的な。その部分だけ使ってるってことになるかな」 / Twitter
- naoyaさんはTwitterを使っています: 「2017年ころに Python でバックエンドを作る時に、良いデータアクセス層ライブラリがないのでデータアクセス層は自前で記述したんですが、そうするとマイグレーションとかどうするの? それも作るの? という問題が出る」 / Twitter
- naoyaさんはTwitterを使っています: 「我々の場合 SQLServer を使っていたこともあって、そもそもそれに対応した、マイグレーションも持っているいい実装は知る限りなかったんですが。」 / Twitter
- naoyaさんはTwitterを使っています: 「そういう苦労もあって、きちんとしたマイグレーションや言語に依存しないスキーマ定義を備えていて、かつあくまでデータアクセスライブラリとしては汎用的な部品に留まりより上位のフレームワークとしての機能は敢えて提供しない (ように見える) Prisma はとても重宝する」 / Twitter
- Prisma
- Prisma: Node.js & TypeScript向けの完璧なORM
- Next.js(TypeScript) で Prisma を使って API を作る - Qiita
- Node.js(Express.js)環境でPrisma ORMを使いこなすための基礎 | アールエフェクト
- Prism.js 使ってみた - Qiita
- Next.js × Prisma を CRUD アプリケーションでざっくり理解する。 - Qiita
- Prisma導入メモ - Qiita
- 次世代の Node.js ORM 、Prisma を試す
- TypeScriptでORMのPrismaに入門した - Qiita
- フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発 - Speaker Deck
- naoyaさんはTwitterを使っています: 「https://t.co/LYmMxjbgFH 本日の発表資料です。ありがとうございました! #postdev」 / Twitter
- naoyaさんはTwitterを使っています: 「また10/14のイベントで詳細を説明しようと思いますが、いくつか捕捉しておきます。 まず、この資料で説明しているのは基本的に更新系の処理、つまり GraphQL の mutation を対象にしています。」 / Twitter
- naoyaさんはTwitterを使っています: 「GraphQL の場合 Query の方は、クライアント側がユースケースを組み立てるので、DDD の集約でデータを取ってくるのと相性があまりよくないです。そこで、CQRS を前提にします。」 / Twitter
- naoyaさんはTwitterを使っています: 「経験的に Query 側は、だいたいのものはデータベースからリソースをとってきてそのままクライアントに返却するだけの処理になるのでドメインレイヤーが必要になりません。Prisma でデータとって Nexus に渡して終わり」 / Twitter
- naoyaさんはTwitterを使っています: 「一方で、mutation は常にドメインモデルを使って更新します。資料にもあるとおり、更新は集約 + Repository でやっているので従来のパターンと考え方は同じです。」 / Twitter
- naoyaさんはTwitterを使っています: 「総じて、実はアーキテクチャ全体の構成は、これまで通りの Clean Architecture と変わっていないと思います。CQRS して、更新には Repository を使う。コアドメインの周りにドメインロジックを集めて、それを使ったユースケースを組み立てる。このユースケースに相当するのが workflow です」 / Twitter
- naoyaさんはTwitterを使っています: 「総じて、アーキテクチャスタイルとしては従来手法から大きくかけ離れているわけではなく、よりミクロな部分、特にモデルの状態の宣言と処理フローの構成の仕方が違っています。従って、永続化に関する考え方も、これまで通りです。」 / Twitter
- naoyaさんはTwitterを使っています: 「https://t.co/dhxH3skvsc これは実際その通りで、どちらかという私も先に興味が沸いたのは Domain Modeling Made Functional の内容の方でした。その後にフロントエンドとのパラダイムの共通性に気づき、話を整理したのが先のスライドです。」 / Twitter
- CubbitさんはTwitterを使っています: 「それは「フロントエンドのパラダイム」というより、関数型プログラミングで培われたものがフロントエンドに取り入れられて、フロントエンドを経由してバックエンドにも関数型プログラミングの良さが伝わってきたね、という話のような気がします https://t.co/VTZ8M7MsnA」 / Twitter
- naoyaさんはTwitterを使っています: 「https://t.co/wktyXrXdjV ここは悩ましいところですね。実際、私も持ち込んだのは Result 型のみに留めています。fp-ts を使わなかったのは、その他の部分まで持ち込むのは控えたかったため。データフロープログラミングをするために計算を堅牢に繋げる部品が欲しかったわけですが、」 / Twitter
- CubbitさんはTwitterを使っています: 「TypeScriptに関数型プログラミングの知見を持ち込むのは私は控えてます Result型なんかまさにそうで、標準ライブラリもその他のライブラリも結局Result型を使っていないので、何かと食い合わせるのが面倒で Resultが素晴らしいと本当に信じて使いたいなら、TypeScriptは使うの止めたほうがいいかなと」 / Twitter
- naoyaさんはTwitterを使っています: 「面倒に感じることはゼロではないです。 よりよい手段があればなあと思いつつ、いまのころは現状に留めています。標準ライブラリとの噛み合わせは、それほど面倒に感じることは少ないですかね。」 / Twitter
- naoyaさんはTwitterを使っています: 「どちらかというと面倒なのは Result が入れ子になったときに、中身に手を突っ込む手段が Result.combine ぐらいしかないことですね。Haskell の do記法と <- が欲しいです」 / Twitter
- naoyaさんはTwitterを使っています: 「あとはテスト書いてるときにテスト用のデータ作るの横着して _unsafeUnwrap() 呼びがち、というところですね」 / Twitter
- naoyaさんはTwitterを使っています: 「なお、Result 型はエラーの返値の表現やその後のパターンマッチのために使うというより、文脈 (失敗) のある計算を一本道にする強制力を持たせたいために使っています。」 / Twitter
- naoyaさんはTwitterを使っています: 「Result 型を使わずによりカジュアルにドメインイベントとドメインイベントを一本道で接続して単方向データフローを作るよりよい方法があればいいなあと。全く何もなしでは、チーム開発でルールだけを守り続けるのは難しい」 / Twitter
- naoyaさんはTwitterを使っています: 「関数型でがっちりやるならそもそも TypeScript ではなく関数型言語を使う方がよい、というのは私もそう思うときもあります。ただ現実にはGraphQLバックエンド開発はデータアクセスの実装やマイグレーションがスムーズに行えるかがかなり大事で、いまはそこに Prisma を使いたいという意図が大きいです」 / Twitter
- naoyaさんはTwitterを使っています: 「今回やってみた手法は、あくまで2022年現時点の (自分自身の知識も含めた) ベターな選択だというところで、まだベストだとも思えません。これを足場によりよい実装方法や選択が将来見えて来るだろうなあと思っています。」 / Twitter
- naoyaさんはTwitterを使っています: 「ひとまずしばらくやってきた方法を離れて前進できたのは、とても良かったと思っています。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「すごい既視感。データモデリングでも同じ議論あったぞ>フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発 https://t.co/lkzKw2rJTF」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「しかし、だとすると結論はそのやり方はうまく行かない、かなぁ。直感的でない仕組みはメンバーの技術力と意識統一が必要でそのコストは実装よりも高い。フレームワーク側でのサポートがあれば別なんだけど。」 / Twitter
- TypeScript による GraphQL バックエンド開発 - Speaker Deck
- naoyaさんはTwitterを使っています: 「直和型でモデルの状態ごとに型を定義した実装をレビュー依頼されると、最初は型が多くて一瞬身構えるんだけど、いざコードを読みはじめると値の組み合わせ数が相対的に少ないので頭の中でスタックに積んで、ここがこうなったらこうなって、とやる必要がない。トータルではレビューが楽」 / Twitter
- naoyaさんはTwitterを使っています: 「処理も一直線に上から下に向かうだけなので、同様に脳内スタックを使わずにコードを読み下していける」 / Twitter
- naoyaさんはTwitterを使っています: 「要するに、認知負荷が低い」 / Twitter
- Validation 等で複数のエラーを扱えるように
クリーンアーキテクチャ
- クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方) - プログラマのはしくれダイアリー
- Clean Architectureにおいてバリデーションはどこでやるべきか
- naoyaさんはTwitterを使っています: 「集約ルートに集約されたエンティティ群をアトミックに Repository で保存したいという欲求が最初にある。でもエンティティだけだと業務フローがコントロールできないから、それを扱う層が欲しくなってユースケース層が登場する。ユースケース層を IO から切り離したい、となって DI することになる」 / Twitter
- naoyaさんはTwitterを使っています: 「そのユースケース層に対する in と out をどう扱うかというので変換層が欲しくなれば登場するし・・・みたいな感じでクリーンアーキテクチャになっていくというのが、自分の経験から思うことです」 / Twitter
- naoyaさんはTwitterを使っています: 「あくまで集約ルートと Repository パターンというのが中枢にあって、その周辺に必要な機能を配備していった結果かなあと」 / Twitter
- naoyaさんはTwitterを使っています: 「なのでその中枢になるものがないところで、クリーンアーキテクチャみたいなことをやるのは悪手なんだろうなと思うわけです」 / Twitter
DDD
- Domain Driven Design(ドメイン駆動設計) Quickly 日本語版
- DDDの正体は実装パターンとモデリングの組み合わせ - パンダのプログラミングブログ
- ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌
- 「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌
- 「DDDで複数集約間の整合性を確保する方法 Rev2」に対する考察 - かとじゅんの技術日誌
- Re: Re: ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌
- メモ:値オブジェクトの定義と差異について - かとじゅんの技術日誌
- naoyaさんはTwitterを使っています: 「B to B のサービスで DDD を適用すると割と綺麗に、ドメイン境界を発見できるし、集約を定義するときにもあっちとこっちで被るんだけど、みたいなのがあんまりない」 / Twitter
- naoyaさんはTwitterを使っています: 「こないだ t-wada さんから Evans の DDD 本は現代の B to B to C のような C 側がハイトラフィックで参照系主体みたいなものを想定していないという (2003年出版だから当たり前) 話を聞いたんだけども」 / Twitter
- naoyaさんはTwitterを使っています: 「B to B to C だと、どうもコンシューマ側と供給側といっていいのか、まあその両者が登場する業務をうまく境界をみつけるというのが難しいなと、実は長年思っていた」 / Twitter
- naoyaさんはTwitterを使っています: 「BtoBtoC の Web サービスを前提にして、どうドメイン境界や集約境界をみつければいいのかは、FAQ のようでいて案外知られていないのか、自分が不勉強なだけなのかどっちなんだろう」 / Twitter
- naoyaさんはTwitterを使っています: 「Cがハイトラフィックなサービスだと、どうしてもコンシューマ側の機能開発が盛んになって B サイドのシステムがレガシー化するということが起きやすい」 / Twitter
- naoyaさんはTwitterを使っています: 「結果、C と B をシステム的にも切り離してライフサイクルを変える、ということをやるんだけど、これはドメイン境界ではなくてシステム的な境界であったりプレゼンテーションの境界でシステムを切っていることになる」 / Twitter
- naoyaさんはTwitterを使っています: 「実際にはその C と B との間にまたがる業務、一休だったら予約業務というものがあって、ドメイン境界的にはそこでは C と B が共通のドメインモデルを使うべきなんだろうけど、前述のとおりでそうでない軸で境界を切ってしまうと、それができなくなる」 / Twitter
- naoyaさんはTwitterを使っています: 「この辺 DDD がうまく取り扱えない問題なのか、自分のやり方がうまくないのか、何なのか未だによくわかっていない。けど、C と B の間でシステムを切り離したいというのは現実的な要請なので少なくともそれをアンチパターンだとすることは、実際には難しいと思う」 / Twitter
- naoyaさんはTwitterを使っています: 「最近 B to B の開発を主体にやっていて、そういうことで悩まないから自分の理解レベルが上がったんではと思って浮かれていたがそれは勘違いだったという・・・」 / Twitter
- naoyaさんはTwitterを使っています: 「別のパターンとしては予約を2つのコンテキストにわけてC側の予約と、B側の予約でドメインモデルが二つになるというのはあるんだけど、実際にはその二つだいたい同じ業務をするしデータも同じエンティティを参照するので、ほんとにそれでいいのか? という気持ち」 / Twitter
- naoyaさんはTwitterを使っています: 「思っていたことをぶちまけてすっきりした」 / Twitter
- naoyaさんはTwitterを使っています: 「たぶん、セオリー通りにいかなくて妥協せざるを得ないという結論なんじゃないかなとおもっとります」 / Twitter
- naoyaさんはTwitterを使っています: 「BtoC で参照系がハイトラフィック、みたいなものに DDD をそのまま適用すると死ぬ (参照パフォーマンスが必要なユースケースで集約が使えない) ので CQRS しましょう、みたいなのもここ最近聞くようになった話であって、Webサービスに DDD を適用するのは案外まだ未発見の話題が多いんじゃないかと思う」 / Twitter
- naoyaさんはTwitterを使っています: 「結論: ソフトウェア開発難しすぎです」 / Twitter
クラス指向のオブジェクト指向による DDD の戦術パターンは、いつか解体される
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「正確には - Reactive System - Unidirectional Data Flow - 状態とイベントの分離 イベント発行からのレスポンスを期待しないことと、レスポンスからの状態更新をしないことが、システムをシンプルに保つ だからActorモデルの技術基盤の成熟に期待している」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「フロントを React Hooks で、 urql や Recoil を使って状態管理。一方、ヘビーな業務を処理するバックエンドの はオニオンアーキテクチャよろしく戦術的DDD。クラス指向なOOで UseCase層あり、集約をきちんとつかったドメインモデルと、それに応じた Repository パターンみたいに実装する (続く)」 / Twitter
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「自分はHooksというよりはReactiveであることが大きな違いの1つで、Reactive Systemがバックエンドの大きな転換点だと考えています また最終的にReactive Systemが進んだ先には、DDDから離れるのではなく、より自然にDDDを実現できる世界が待っていることを期待しています」 / Twitter
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「ここで指しているDDDは、冗長なアーキテクチャのことではなく、domain層のソースコードでドメイン仕様を表現できる世界のことです」 / Twitter
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「現状GoのエコシステムでのDDDは冗長になると思っています 弊社はこれを避けていて、 DDDではなくDBを読み書きするものとして扱う Clean Architectureではなく最低限のインターフェース 最低限のレイヤー DTOの詰め替えはmutationのinputのdomainへの変換のみ、domainをDBに保存しレスポンスに返す」 / Twitter
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「弊社がバックエンドをDDDではなくDBを読み書きするものとして扱っているのは、DDDを軽視しているのではなく、ツイート元のようによりシンプルにDDDが実現できる基盤が成熟するのを待っているためです ドメイン仕様をdomainでソースコードで表現できるということは目指したい目標です」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「言語は例えばフロントは TypeScript 、バックエンドは Python。 この構成で実装した場合、フロントエンドは関数指向でなるべくフックを使ってレイヤーは薄く、エンティティに相当するイミュータブルなデータを関数を通してその状態を変化させながら画面に伝搬するみたいな実装になる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「一方のバックエンドは、入力をDTOでドメイン層に渡してドメインロジックを実行して、集約からデータを取り出して Repository 層で保存して、結果を DTO で返してみたいな感じであちこちにたくさんクラスを書いて、DTO を作る実装になる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「このケースでやるとフロントエンドを実装するときと、バックエンドを実装するときのスタイルが大きく違う。簡単にいうとバックエンドの方の実装が、すごく冗長に感じる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「バックエンドではDTOを作って値を右から左に詰め直すところ、レイヤをまたぐところの依存性を逆転させるためにインタフェースをわざわざ用意すところ、あたりが、なんか書いてて「なんでこんなこといちいちせなあかんねん」感が強い」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「でも、引いた目でみてみるとバックエンドもフロントエンドと、本質的にはやってることはかわらない。いまある状態を、入力された状態を使って別の状態に遷移させて、それをデータストアに保存する。それだけ。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「いまはまだ、バックエンドの業務処理・・・ DDD でモデリングされたドメインモデルを React Hooks のような設計で実装するパターンが発見されていないけど、いずれそういうパターンが発見されて、クラス指向のオブジェクト指向による DDD の戦術パターンは、いつか解体される」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なんか、いちぶのひとがオブジェクト指向は解体されるというのを何年か前から言ってたけど、こういうことかというのがようやくわかりました。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「Hooks のような設計が、戦術的DDDの設計よりも優れてるかどうかかがアーキテクチャ転換の契機になるんじゃなくて、フロントエンドのテクノロジーの進化圧の方が強い現状、そっち側からバックエンドにも進化圧がかかっていくから、結果、フロントエンドに近いパターンに寄っていくというのが予想です」 / Twitter
- TakepepeさんはTwitterを使っています: 「フロント(React)に関して言えば、設計論の前にライブラリを正しく使うことが大事。〜層を無理矢理作る前に、レンダリング回数で考えて。」 / Twitter
- TakepepeさんはTwitterを使っています: 「設計が〜だから、という理由でチャンク肥大化して TTI の足引っ張るようなやつもダメです。定量指標で判断しましょう。」 / Twitter
- KennyさんはTwitterを使っています: 「@takepepe 全くもってその通りだと思います。拡張性、メインテナンス性はとても大事ですが。結局はフロントエンドなので、軽量性、レンダリングの回数などが最も重要なファクターになってくるかと思われます。」 / Twitter
- おばあちゃんのプログラミング教室(ばあプロ)【旧式】さんはTwitterを使っています: 「@KenMikuny @takepepe ほんまよね」 / Twitter
- 🈚️うひょ🤪✒📘 TypeScript本発売🫐さんはTwitterを使っています: 「というか、設計は言語仕様やライブラリの仕様を前提に組まれなければならないと思う。いつでも汎用的な設計は存在せず、Reactを正しく使うことを目標にしていないものはもはやReactアプリの設計ではない(?)」 / Twitter
- KennyさんはTwitterを使っています: 「@uhyo_ 本当にその通りだと思います モデルに対して向いてるアーキテクチャーや言語を選択し、それを元に設計ですよね。 現場では使うUIライブラリをデザインに反映させるなんてこともあります。 理想はありますが、結局はビジネスなので予算、開発効率、保守性が一番になりますよね」 / Twitter
- そな太@GraphQLの記事を書くぞさんはTwitterを使っています: 「アーキテクチャの前にライブラリを正しく使うというのは本当に大切 ライブラリが熟考して設計してくれているのだから、それを理解して従うのが吉」 / Twitter
予約変更
- naoyaさんはTwitterを使っています: 「予約にまつわる業務ロジックを扱っていると、システムの複雑性に関与してくる大部分は、新規予約やキャンセルではなく、予約の変更に起因している キャンセルして取り直し、で済めば業務ロジックを冪等にできるんだけど、日々料金や在庫が変動する世界ではそういう設計にはできず」 / Twitter
- naoyaさんはTwitterを使っています: 「やはり既にあるものを変更する・・・つまりミュータブルな変更というのは、なにかと色々複雑性をもたらすんだなあと。イミュータブルで冪等に済ませることができれば、単純化できる この辺はプログラミングの実装においても、業務フローにおいても同じだなと思います」 / Twitter
- tsnrymst.ethさんはTwitterを使っています: 「@naoya_ito こちらは、注文処理とキャンセル処理を同じ関数の中で、INSERT SELECT内の条件分岐使いながら処理してるのをリファクタリング中。マネジメントのあいまにやってるので、一ヶ月が経過してる。」 / Twitter
- Studio_NANDさんはTwitterを使っています: 「@naoya_ito > キャンセルして取り直し 実装するなら、新規予約を入れてキャンセルの順でわ?」 / Twitter
- ひばり Sa 💉PPMさんはTwitterを使っています: 「@Studio_NAND @naoya_ito 新規予約でオーバープッキングを考慮しないといけないので、それはそれでなかなか。 あと料金変更があるとそもそも。。」 / Twitter
- ひばり Sa 💉PPMさんはTwitterを使っています: 「@naoya_ito しかも変更トランザクションは全体に占める割合は少ないにもかかわらず。 在庫枠と料金が異なれば料金計算も一筋縄ではいかないし、キャンセル待ちもあればなお複雑。」 / Twitter
- naoyaさんはTwitterを使っています: 「ちなみにホテル予約の世界で、ホテルや旅館から直接空室情報 (在庫) を入力してもらっているシステムはもう希です。間に在庫を一括管理する SaaS が存在していて、そことホテルのフロント、在庫一括管理システム、予約システムが全て API で非同期に連携している」 / Twitter
- naoyaさんはTwitterを使っています: 「非同期、というところがポイントで、オーバーブッキングしてはいけない在庫を複数事業者による分散システムにおいて結果整合でなんとかしている、という。よく考えると結構おもしろい」 / Twitter
- naoyaさんはTwitterを使っています: 「飲食店予約の世界も、徐々に同じような方式に移行していってます。ホテル業界の方が、こういうデジタルフォーメーションは先に起こりました。」 / Twitter
- naoyaさんはTwitterを使っています: 「デジタルトランスフォーメーション」 / Twitter
- naoyaさんはTwitterを使っています: 「この辺の予約システム周りは結構面白い話が多いですね。例えば開発者視点では、飲食店予約の予約をオーバーブッキングが発生しないように必至に厳密に考えるわけですが、飲食店側からすると「今席準備しているので少し待っててください」とか「隣の席と繋げて6人席にしますね」という運用が可能」 / Twitter
- naoyaさんはTwitterを使っています: 「その飲食店でどうい運用が可能か、までを考慮にいれるとシステムが取り得る設計の制約が変わってくる、という。ただし、高級店ではお客さんを待たせることはできなかったりと、お店によって運用の事情も違う」 / Twitter
- naoyaさんはTwitterを使っています: 「様々なお店の運用事情を考慮しながら、緩められる制約はどこなのかを見極めながら予約システムの設計をしていく・・・というのが、面白いところでもあり一筋縄でいかないところでもあります」 / Twitter
- naoyaさんはTwitterを使っています: 「ホテルや飲食店予約の空室・空席管理の分散システム連携が結果整合でどうにかなっている背景には、そもそもホテルや飲食店には、オーバーブッキングに対する運用フローがあるというのがポイントですかね」 / Twitter
- naoyaさんはTwitterを使っています: 「大きなホテルでは、そもそもキャンセル率がだいたいわかっているのでキャンセルを考慮して空室を実際の部屋よりも多く見積もって管理しています。そのキャンセル用のバッファを上手く使って、オーバーブッキング発生時に運用で整合させる」 / Twitter
- naoyaさんはTwitterを使っています: 「逆に小さな飲食店ではオーバーブッキング発生時のバッファが少ないので、ある程度予約が埋まってきたら早めにクローズしたり、直接お客さんと会話することでうまく調整したり様々なノウハウを持っています」 / Twitter
- naoyaさんはTwitterを使っています: 「結果整合で物事を着地させるにはこういうところまで勘定に入れて考える、ということですね。開発者がそのドメインに詳しくなればなるほど、そういう芸当ができるようになっていって、ユーザーに喜ばれますね。」 / Twitter
- naoyaさんはTwitterを使っています: 「予約変更の話ずいぶん反響があるなあ こういうの考えるの好きな人多いのかな そういう方は、ぜひ弊社へ🐸」 / Twitter
トランザクションスクリプト
- 伊津野 英克さんはTwitterを使っています 「業務システムならトランザクションスクリプトの方が明らかに設計もメンテナンスも楽なのに、なんでドメインモデルなんかが流行ってしまったんだろうなぁ。データモデルと処理がくっついてて嬉しいのはCollectionとかアルゴリズムが隠蔽されてる方が嬉しいやつだけでは。」 / Twitter
- トランザクションスクリプト - Google 検索
- しんぺいくんさんさんはTwitterを使っています: 「トランザクションスクリプト自体はべつにダメじゃないってずっと言い続けている。ダメなのは複数の選択肢を比較検討しないこと。複数の選択肢を比較検討した上でトランザクションスクリプトが適切なら自信持ってトランザクションスクリプト書けばええ」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「守破離の精神でトランザクションスクリプトでやっていくってのがこれから先のテーマかもな」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「https://t.co/hgpV8G2POM これね。 Reinventing the Transaction Script」 / Twitter
- Reinventing the Transaction Script | F# for fun and profit
- Naoya ItoさんはTwitterを使っています: 「ADT と関数合成が前提になってるパターンなので単純に、他の言語でそのままってわけにはいかないけど、多いに参考にはなる」 / Twitter
- 渋川よしきさんはTwitterを使っています 「大体のフレームワーク、リクエストとレスポンスはオブジェクトだよね。 : 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ https://t.co/n1oZfhqzY1」 / Twitter
- 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ
関心の分離
- 関心の分離 - Wikipedia
- 関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
- 責任(関心)を意識したアプリケーション設計 - Qiita
- 「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
- ryoheyさんはTwitterを使っています 「MVVMでモデルを頑張って分けすぎてモデル間の依存が多くなって良くない感じになるのと同じことが起きそう。最初のうちはあんまり分割しないで素直に書くのが良いかもな」 / Twitter
DIではなく継続で依存性の逆転を行う実例
- 依存性逆転の原則 - Google 検索
- がくぞさんはTwitterを使っています 「DIではなく継続で依存性の逆転を行う実例だ https://t.co/tWLI9vMpFJ」 / Twitter
- phenanさんはTwitterを使っています 「記事を投稿しました! 令和版: 依存関係逆転の法則の実現方法 [Scala] on #Qiita https://t.co/wbWLuEqDGe」 / Twitter
- 令和版: 依存関係逆転の法則の実現方法 - Qiita
- phenanさんはTwitterを使っています 「@gakuzzzz その通りです。 ただ、継続を強調すると難しいと思われそうなので、あまり継続の話であることを意識させないように書いたつもりです。 (データ型の方に意識が向くように書いた)」 / Twitter
- がくぞさんはTwitterを使っています 「@phenan 読んでてその意図をひしひしと感じました!取っ付きやすくてその誘導がめっちゃ成功してると思います!」 / Twitter
- phenanさんはTwitterを使っています 「@gakuzzzz 良かった! 成功してるなら嬉しいです!」 / Twitter
PoEAA
- ひさてるさんさんはTwitterを使っています: 「DDDな、あれ、実装を得る開発技法じゃなくて、実装コードを使って反復的に独自設計を得る手法なの。どんな物を作るといいか、模索して決めていく仕事する人のやること。それにコード使うってことは、品質これぐらい要るんやでってことがしつこく書いてある。ただし、20年前の水準で、だけどね」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「実装を得る技法の選択肢が知りたければ、PoEAA のほうがいい。ぜんぶ書いてあるし、足りてないこともっと深掘りしてるし、別の選択肢もある。実際 DDD 本はリポジトリを使うこと言ってるけど、作り方はぜんぶ書いてない。だからみんな、抽象依存って真意が見えなくて、入出力ゲートだと思っちゃう」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「PoEAA には作る方法の要素パターンも書いてあるし、ActiveRecord のことも書いてあるんやで。ただ問題がひとつあって、日本語訳がクソなせいで意味わからんって意見の多いことといったら…」 / Twitter
- プログラミングをするパンダ@Beer Break 開発中🍺さんはTwitterを使っています: 「@tanakahisateru わかります。初めて読んだとき「直列化」の意味がわからなくて当時の特有のなにかかなと思ってたら、友人が「シリアライズだよ」って教えてくれたので助かりましたw」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@Panda_Program DTO(Data Transfer Object)の訳が「データ変換オブジェクト」になってるとか、ロックを普通に悲観的/楽観的って言わないとか、なんでこんなことになってしもうたんや… って感じですよね https://t.co/q2CT8pyCJ1」 / Twitter
- JapanesePatternNames
- magnoliak🍧さんはTwitterを使っています: 「@tanakahisateru 先週はじめてPoEAA読んだんですけど、前半ひたすら「分かり合えない…」という感想しかなかったです…」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@magnolia_k_ こちらをどうぞ https://t.co/nSmkGq6wIA」 / Twitter
- Patterns of Enterprise Application Architecture
PoEAA の訳語
- ひさてるさんさんはTwitterを使っています: 「PoEAA もなんとかしないと。エンティティやらリポジトリやらバリューオブジェクトやらの語彙を、当時複数の人が言ってたただの共通語じゃなくて、DDD 本をオリジナルだと誤認してる感じにつながっている気がしている」 / Twitter
- 杉本啓さんはTwitterを使っています: 「翻訳があっても、訳がどうしようもない場合もありますね。昔の話になるが、XP白本第1版は衝撃的だった。あれで、日本におけるXP理解はだいぶ損なわれたと思う。原書を読む練習しましょう。」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「アンチパターンはがんばったけど最後まではできてない (このあとだんだん会社の愚痴みたいになっていって面白くない) https://t.co/bNj5mtgnZ7」 / Twitter
- ちょうぜつ Advent Calendar 2020 - Qiita
- 杉本啓さんはTwitterを使っています: 「@tanakahisateru 日本語版読んだことがないですが、あれもあれなんですか?」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@sugimoto_kei こんな感じで… https://t.co/q2CT8pyCJ1」 / Twitter
- JapanesePatternNames
- 杉本啓さんはTwitterを使っています: 「@tanakahisateru 軽オフラインロック/重オフラインロックって、OptimisticOfflineLock, PessimisticOfflineLock なんですね。謎解きのセンスが求められます。」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@sugimoto_kei Data Transfer Object を「データ変換オブジェクト」と訳すのがかなりヤバいです。軽ロック重ロックならまだ推理しないとと思える違和感があるけど、転送と変換を言い換えるのは自然すぎて、そこに誤訳があると誰も気が付かないんじゃないかなって意味で」 / Twitter
- 杉本啓さんはTwitterを使っています: 「@tanakahisateru 訳者は、辞書見たんですかね。普通に考えて transfer に「変換」の意味はないですよね。移送や転送であって。変換なら transform と言うでしょうね。」 / Twitter
- magnoliak🍧さんはTwitterを使っています: 「@sugimoto_kei @tanakahisateru あー、先日読んでてあまりに謎だった用語ナンバーワンのやつですw」 / Twitter
- 杉本啓さんはTwitterを使っています: 「@magnolia_k_ @tanakahisateru Optimistic (楽観的)なら心もロックも軽いし、 Pessimistic(悲観的)なら心もロックも重いんですよ。 どこが謎なんですかw」 / Twitter
- magnoliak🍧さんはTwitterを使っています: 「@sugimoto_kei @tanakahisateru あまりに楽観的な人を見ると、こっちの気が重くなるときだってあるじゃないですかーw」 / Twitter
- 杉本啓さんはTwitterを使っています: 「@magnolia_k_ @tanakahisateru スミマセン m(_ _)m」 / Twitter
モデリング
- 画力・博士号・油田さんはTwitterを使っています: 「めちゃくちゃ地味な話だけどもCLIツールを実装する際に「渡されたコマンドラインオプションに相当するデータ」をどう保持する実装にするか悩ましいなと思う,例えば --verbose が指定されたか否かはプログラムの広範囲に亘って必要なので引数で持ち回るのは面倒になるし」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「「1回限り書き込んでそれ以降は読み出すだけの,グローバル変数的に機能する機構で保持する」というちょっとマヌケな解決はあるけど,ちょっとマヌケよね.」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「“Reader モナド” という選択肢はあるけれども,言語によってはパフォーマンスを著しく損なわずに実装できるとも限らなさそうだし,かつインターフェイスとしても(そんなことのためにプログラム全体に亘ってモナドに持ち上げなあかん?)という心象を禁じ得ない側面もある」 / Twitter
- KOBA789さんはTwitterを使っています: 「verbose という CLI オプションの事情を知っているべきかどうか次第かなぁ。CLI ツールをモデリングするなら verbose はグローバル変数でもいいけど、なんらかのビジネスロジックをモデリングしそれの実体としての CLI ツールを実装するなら各モデルにはより具体的なオプションに翻訳してもち回すかも」 / Twitter
- KOBA789さんはTwitterを使っています: 「たとえば ls を実装するなら ls のビジネスロジックとかいうあるのかないのかわからんものをモデリングするより ls 自体をモデリングしてしまったほうがいいと思うし、そうであれば verbose はグローバルでいい」 / Twitter
- KOBA789さんはTwitterを使っています: 「「どの側面からモデリングすると嬉しいか」みたいなことってあまり語られない気がする」 / Twitter
- KOBA789さんはTwitterを使っています: 「汎用的なライブラリはデータ形式やプロトコル、アルゴリズムなどをモデリングしたもので、フレームワークはアプリの構造をモデリングしたものですが、業務アプリの実装の大半はそうではなく、対象業務の手続きやルールのモデルが多くなるでしょう。でもそれらの境目はどこでしょうか?」 / Twitter
- KOBA789さんはTwitterを使っています: 「当然ですが、ソートアルゴリズムのライブラリが MVC アーキテクチャを採用することはありません。でもそこに設計はあり、アルゴリズムをモデリングしてます。高速化のために計算機の構造や性能特性を強く意識した設計かもしれません。ではここで「変更容易性」の重要性はいかほどでしょうか?」 / Twitter
- イミュータブルデータモデルの極意
- ソースコード生成機能・ソースコードの読み込み機能について - UML/SysML/BPMNモデリングツール Enterprise Architect
- ステートマシン図からのコード生成 - UML/SysML/BPMNモデリングツール Enterprise Architect
- コード生成 - MATLAB & Simulink - MathWorks 日本
- RGen: Rubyのモデリングとコード生成フレームワーク
- E4-3.pdf
- MetaEdit+ 各種資料と動画デモ
- 11種類のソースコードを自動生成できる新UMLツールが登場 | 日経クロステック(xTECH)
- codegeneration | astah in 5 min
- SelexES_CaseStudy.pdf
- まちカドおるみんさんはTwitterを使っています 「結局オブシェクトの相互関係でモデリングできて何がうれしいのっていうのは何かしらの問題をオブシェクトでモデリングするという practice なしで伝わらない気がするし、」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「その上でこういう問題はこうモデリングする、という定式化がデザインパターンとして存在してる、という組み立てじゃないとわからないと思うし、わからなかった」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「もっと単純な話で、順番がある掛け算のほうは、あれは算数ではなくて一種のモデリング言語なの。そのモデリング言語では単位を扱っていて、掛け算の引数の順番が違うとsemantic errorになるの。小学校の問題は、そのモデリング言語に名前を付けて教えずに、算数だと言って教えているところ。かもねー。」 / Twitter
- 国内航空機製造業界にモデルベース開発は浸透するのか、MBACの挑戦:MATLAB Expo Japan 2021(1/2 ページ) - MONOist
- モデル化可能開発: カスタムツールがシステムを説明可能にする方法
デザインパターン
- Kazuho OkuさんはTwitterを使っています 「プリーのメタパターン知らずにデザパタ語っていいのは中2まで / “オブジェクト指向におけるデザインパターン” http://t.co/UsvsOi0h」 / Twitter
- オブジェクト指向におけるデザインパターン
- Shiro KawaiさんはTwitterを使っています 「メタクラスがある言語ならFactoryパターンって単にメタクラスのメソッドなんだよね まあ、デザパタって実装技術というよりもコミュニケーションツールと考えるべきだと思う。」 / Twitter
- 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか? - Quora
- Data Mapperパターン - Google 検索
MVC・MVP・MVVM
- Model View ViewModel - Wikipedia
- MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT
- ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
- MVVMを勉強するときに参考になった 概要まとめ & アンチパターン & リンク集 - Qiita
- » [WPF] MVVMパターンについて -入門編- 技術ブログ
- Vue.jsが採用しているMVVMパターンとは【目的を重点に解説】 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- プログラミングな日々: MVVMとは何か
- いまさら学ぶMVVMパターン
- MVVMとはなんぞやを公理から求めてみる - 滅入るんるん
- 【C#活用】WPFでMVVMパターンを実装する際の注意点 | .NETコラム
- Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita
- 現場で選ばれているiOSアーキテクチャ - Qiita
- 完璧なモデルビュー-どんなアーキテクチャでもRyanKay(MVP / MVC / MVVM)
- 開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓 - ログミーTech
- 開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT
- MVPとかMVVMとか - ゆうなんとかさんの雑記帳的な。
- Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する - エンジニアHub|Webエンジニアのキャリアを考える!
- 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳
- Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に
- MVVMのModelにまつわる誤解 - the sea of fertility
- Kouji MatsuiさんはTwitterを使っています 「いや、WPFのようなXAMLベースのフレームワークだと、コレクションの表示とか極端に実装しにくいからMVVM使うわけで、ボタンとテキストボックス一個と言うのは、趣味の開発でも想定外なのではという...」 / Twitter
- Epoxy/README.ja.md at main · kekyo/Epoxy
- なかのん&マジックさんのツイート: "observer (listener)って綺麗にデザインできるけど、runtimeコスト高いなーと思う今日この頃。"
Loan Pattern
- Loan Pattern - 借りたら返す | Scala Cookbook
- Prolog にて、ローンパターン(Loan Pattern) を簡潔に実装したい - スタック・オーバーフロー
- Loan Patternいろいろ(using, scalazのwithResource, scala-arm) - tototoshi の日記
- Scalaで一番よく使うローンパターン - Qiita
- JavaでLoan Pattern(をやってみたかった) - terazzoの日記
- 【Day 10】トランザクションを実現【じゃんけんアドカレ】 - Qiita
- Scala using(Hishidama's Scala loan-pattern Memo)
- [翻訳] Shopifyにおけるモジュラモノリスへの移行 - Qiita
- DI って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
- Controller, UseCase, Service (および Model) の役割分担についての考察 - Qiita
- もうAPIを自分で開発するのは古い?Hasuraの強烈な有効性について紹介する - Qiita
- チェックリスト作成のためのチェックリスト - GIGAZINE
論理と計算
関数型プログラミング
その他
- 数学における「自明」の意味|さのたけと|note
- 関数型言語の実装のチュートリアル - prog-lang-sys-ja
- Category:関数型プログラミング - Wikipedia
- 関数型プログラミング – OCaml
- Curryで関数論理型言語を体験してみた - Qiita
- nobsun/fpday2021
- Toy Machine Simulator
- https://arowm.github.io/domain-specific-library-example/
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@mo_naqa (左右にオペランドを敗する)二項演算子じゃないと左右結合は関係ない気がするのですが。優先順位は確かに関数型言語の適用順とかで一般化できそうですね」 / Twitter
- がくぞさんはTwitterを使っています 「DSLがS式でよければLispは最強感ある。とはいえ一定以上の静的型付言語ならDSLのADTをFunctorにするだけでfree-monadやfree-applicativeで合成可能なDSLが作れてしまうけれども……」 / Twitter
- 焼肉系インフルエンサーさんはTwitterを使っています 「あとはまあ、個人的にはだけど、メタプロというか内部DSLの作りやすさは結構大事にしてて、その観点のみで言えば動的型のほうが有利なことが多い気がする。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@gakuzzzz S式だと具象構文考えないで良い分楽ですよね。とはいえ、S式で書いてもらえるケースがそれほど多くなさそうなのがネックかもです。」 / Twitter
- がくぞさんはTwitterを使っています 「なるほど。 まずはFunctorからはじめて、次にFoldableでcatamorphismをやり、そこからparamorphismに拡張した上で、Traversalにたどり着く、と。ネタで翻訳したけどわりと現実的にアリな気がする?」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「プログラム組めるという人でもAPI叩けるだけでロジック組めない人がわりといるので、ロジックが組めるようになるための学習パスとしてforeachで要素ごとの処理->reduce要るやつ->隣の要素に用事があるやつ->状態管理いるやつ->スタックいるやつ->再帰->分割統治->DPみたいなのを考えている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 MinCamlのようにif式は最後まで残ってもいいのかもしれませんがどうなのでしょうね? 少なくともネストした式は展開された形にしたほうがいいでしょう。 SSA形式はレジスタがimmutableな形式になるので関数プログラミングに近くなりますね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 基本ブロックを基本としたコードフロー以外の形式ですと、継続渡し形式の関数によるコードフロー表現は可能です。gotoの代わりに関数呼び出しでそれぞれが自由変数を持たない或いは同じ環境を共有する形で表現できますよね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 生存解析をして生きている変数を継続する関数呼び出しにすれば環境を共有しない形になる。一方でファイ関数を挿入する代わりに関数引数を挿入して1つの関数群は同じ環境を共有すれば無駄な生存解析なしでSSA形式をCPS形式に変換できるはずです。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「イラストでわかる圏論入門。集合論から始めて関数、圏、モノイドを解説し、実際的な例として命題論理を圏論の枠組みで説明している。 https://t.co/lUKaDkyZXE」 / Twitter
- Category Theory Illustrated - index
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「とくに興味ぶかい部分: 「科学や数学の世界では、物事の関係を説明するのに図を使うことがよくある。圏論はこの図による表示をさらに抽象化・定式化して、あらゆる概念を説明できる言語を作り上げたものなのである」」 / Twitter
- 「関数型プログラミングが『銀の弾丸』であるという非常識な常識2022」の感想 - Qiita
- 関数型プログラミングが『銀の弾丸』であるという非常識な常識2022 - Google 検索
- 関数型言語のウソとホント - Qiita
- 宣言型プログラミングとは何かをJavaとElmで考えてみる(前編) - Qiita
言語
言語
GUI プログラミング言語とテキストの同型写像
- mizchiさんはTwitterを使っています: 「GUIベースのプログラミング環境が生成するコードはテキストのプログラムと1:1に変換できるべきだと思ってる。その意味で現在のノーコードツールはほぼ全部間違ってて、まずノーコードGUI<=>プログラムの変換基盤を作るとこからはじめないといけない、とずっと主張してる」 / Twitter
- 島国大和さんはTwitterを使っています: 「俺がノードベースプログラムに苦手意識があるのは、人が書いたコードの読みにくさ、というか。 テキストコードはこれ全部読めばなんとかわかるはず、てのがあるが、テキスト外に記述される量が増えるほど、覚えねばならぬルールが増えるから。 だからゲームエンジンもそういう進化が苦手。」 / Twitter
- 島国大和さんはTwitterを使っています: 「Unityで、メカニムとコードで記述すると、両方見ながら追わねばならぬので、完成後はメンテも含め優秀だと思うが、描きかけは割と地獄を見る。(俺の理解が足りないだけかもだが)」 / Twitter
- mizchiさんはTwitterを使っています: 「この過激派としてデータ=コードの同型写像の red や lisp がいるけど、あいつらはテキスト寄りすぎる」 / Twitter
定数のスコープ等
- ひさてるさんさんはTwitterを使っています: 「ベターなコーディングのあらゆるプラクティスは、パッケージ、クラス、関数といった名前空間に複雑さを閉じられる言語のパワーがあるからこそ、現実的なんだよね。なので、スコープを閉じることは何よりも優先する最重要プラクティスだよね、って思ってるところ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「たとえば、複数の箇所で同じグローバル定数を共有しまくるやつ。あれだいたい、似た手続きを毎回書いてたりする。同じ設定値を使いたい理由をまるっとうまく抽象にして、バラの値を自由に使えなくした方がいいはず。なんだけど、グローバルスコープしかないと、そういう技巧が散らかるほうがきつくなる」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「定数の型はだいたい int か string なんよ。意図を取り違えてもたまたま値が同じなら通るんよ。抽象の型はそれぞれユニークだから、はまるとこにしかはまらんし、ポリモーフィズムにも期待できるのよ。こういうのね。スコープがグローバルしかないと、要素数が増えたとき後者が負債になる」 / Twitter
AST 言語
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 プログラミング言語がチューリング完全である必要はないと思います。汎用言語から機能が非常に限定されたDSLまでのスペクトルの中で、どこまでが「プログラミング言語」かと決めるのは難しそうです。HTMLだって用途の限定されたプログラミング言語と言って良いのでは。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 言語Lがプログラミング言語であるということは、Lの語P(=プログラム)について何らかの「計算」が定義できると考えてもいいかも知れません。HTMLもwebページの構成を計算だと考えればいけるかも知れません :-)」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 JSONがプログラミング言語かという議論もあるみたいですが、これはS式がプログラミング言語かというのと同じですね。情報の構造を記述していますが、計算を記述するにはもう1段階必要だと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo 確かに、SyntaxのみでSemanticsを定義されていないものをプログラミング言語と呼ぶかという話のような気がします。JSONもS式も適切にSemanticsを定めればプログラミング言語になると思いますが、その時は別の呼び名になりますからね。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 はい。JSONやXMLで適当にASTを表現して、それに意味を与えることはできますし、処理系を作ることもできますね。おそらくそうやっているプログラミング言語もあると思います(自分でパーザ書かなくてよいので楽ですよね)。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@wtakuo @miura1729 JSONやS式はわかりやすいですが、yamlやmarkdownになるとレンダリングに参照解決も含むことになるので、かなり計算の領域に近い気がします。けっこう微妙ですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda @wtakuo HTML/CSSだとレンダリングのボックスの大きさとかで四則演算は定義出来そうな気がします。ループや再帰が実現できるかは分かりませんが。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「以前の勤務先の所属講座(ボスは代数仕様記述言語の専門家)ではプログラミング言語、仕様記述言語、マークアップ言語等をまとめて「計算機言語」(computer language)と呼んでいました。」 / Twitter
- 星にゃーんさんはTwitterを使っています 「HTMLやJSONなどとプログラミング言語をまとめて表す、「コンピュータが解釈することを想定した形式言語」ぐらいの気持ちのキャッチーな専門用語が欲しい」 / Twitter
関数引数の括弧
- 関数型プログラミング言語における関数適用構文の歴史的経緯についてのメモ - Arantium Maestum
- sounisi5011/プログラムさんはTwitterを使っています 「Haskellとかの関数型言語を使用しているプログラマの皆様にお聞きしたいんですけど、「関数名 引数 引数 ...」みたいな関数呼び出し構文って見にくくは無いですか?「関数名(引数, 引数, ...)」に慣れたこちらからすると、丸括弧が無いからコード中のどこが関数呼び出しなのかパット見で把握しにくい。」 / Twitter
- mod_poppoさんはTwitterを使っています 「ラムダ計算は関数適用に括弧いらないよな」 / Twitter
- mod_poppoさんはTwitterを使っています 「関数の引数が常に一個な言語(複数の引数を受け取るにはカリー化かタプルが必要)では関数適用にカッコを要求すると煩雑になるんだと思う」 / Twitter
- mod_poppoさんはTwitterを使っています 「や、タプルを記述するのに括弧が必要ない文法を採用すれば関数適用に括弧が必須でも括弧が一重で済むな」 / Twitter
- zehnpaardさんはTwitterを使っています 「History of Standard MLを流し読みしたところ、LCF/MLはカッコつきだったようだ: let gcd(x,y) = ...;; https://t.co/6ulOvsfsxz」 / Twitter
- The History of Standard ML - SML-history.pdf
- zehnpaardさんはTwitterを使っています 「OCamlやHaskellでPartial Applicationがあるからf(x)(y)のようになって煩雑、というのは微妙な気がするな。そもそも言語処理系は実際には関数を1引数なものとしては扱ってないはず(とても非効率になるため)」 / Twitter
- zehnpaardさんはTwitterを使っています 「Hopeあたりから関数呼び出しにカッコが使われなくなるのか。やはりラムダ計算やSKIコンビネータを意識してのことだろうか」 / Twitter
- mod_poppoさんはTwitterを使っています 「イマドキのML系言語でも let gcd(x,y) = ... は普通に書ける(タプルを受け取る関数とみなされる)のでそのコード片だけを見て括弧が要求される文法かどうかはわからないと思う」 / Twitter
- zehnpaardさんはTwitterを使っています 「@mod_poppo 確かに・・・ ただMilnerのこちらの資料だとやはりf(x)という形式のようです(null(e1)などの式が出てくる) https://t.co/elef2MABv5」 / Twitter
- A Metalanguage for Interactive Proof in LCF - GordonMMNW78.pdf
- mod_poppoさんはTwitterを使っています 「@zehnpaard その資料の124ページ左側には where F y = ... という宣言が、右下には mkconsttype`integer` という式が、125ページ左側には GEN x th や repthm th という宣言や式があるので、関数宣言や関数適用は括弧なしでも書けたように見えます。誤植じゃなければの話ですが」 / Twitter
- zehnpaardさんはTwitterを使っています 「@mod_poppo うーん、なるほど。120ページのlet f(x,y,…) = eの解説や単一の引数に対するカッコつきの関数適用の例がけっこうありますが、確かにいくつか無しでもいけそうな例もありますね」 / Twitter
- zehnpaardさんはTwitterを使っています 「@mod_poppo LCFのマニュアルがありました。 https://t.co/TjFTZvzfrB」 / Twitter
- AD0785072.pdf
- zehnpaardさんはTwitterを使っています 「@mod_poppo 3ページ目に”this strict syntax is relaxed in the machine implementation… to allow a saving of parentheses and brackets”、29ページの最初に“AP(AP X Y, Z) is a <simpleterm> abbreviating AP(AP(X,Y),Z) …”とあるのでカッコは省略できたようです」 / Twitter
- mod_poppoさんはTwitterを使っています 「「関数と引数をスペースで区切る文法は読みにくくないか?」という問いに対する俺の答えは「読みにくくない」。慣れというのもあるし、呼び出される関数は関数っぽい名前がついていることが多い(慣習)というのもありそう。」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellのレコードアップデート式 record { field = newValue } は関数適用じゃないし関数適用よりも優先順位が高いから要注意かもしれない」 / Twitter
- 重城良国さんはTwitterを使っています 「「構文拡張の余地」という話には納得感があった。 Haskell だと、構文の拡張に記号を使うか、予約語を使い回すかみたいなところがある。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「関数呼び出し構文の議論、いい機会なので自分の「やや f(x, y) 派」としての論点を書きました。 https://t.co/FCjiTVDEBM」 / Twitter
- 並置による関数適用に関する所感
- 重城良国さんはTwitterを使っています 「まあ、これは「いい席」を何のために使うかみたいな話。 「並置」みたいな単純な構文は一桁のユーザIDみたいなもので、Haskell ではそれを関数適用にあてたという話。」 / Twitter
- mod_poppoさんはTwitterを使っています 「並置を乗算に使う言語があったな」 / Twitter
- mod_poppoさんはTwitterを使っています 「関数適用にバッククオートを前置する関数型言語とかあったな」 / Twitter
- mod_poppoさんはTwitterを使っています 「自作言語の関数適用にカッコを要求するかどうかの俺の考え(暫定)は、「関数は常に引数が一つ」にするならカッコ省略可、「複数の引数を取る関数をプリミティブに表せるようにしたい」のであればカッコを要求するのが良いと思います」 / Twitter
構文とライブラリの認識
- mizchiさんはTwitterを使っています: 「これブラウザでも困ってて jQuery を構文だと認識してる人にどうやって node を書けるようになってもらうかを10年ぐらい悩んでる」 / Twitter
- とりすーぷ@メタバースつくってるさんはTwitterを使っています: 「ぱっと動く画面が出てきてわかりやすいからプログラミングの入り口としてゲームエンジンを使うのはありではあるんだが、ゲームエンジンと言語機能の切り分けが初心者にはできないので「プログラミング言語の学習」には向いてないんだよな…。」 / Twitter
- とりすーぷ@メタバースつくってるさんはTwitterを使っています: 「プログラミングを体験してみるのにUnityを使うのはいいんだけど、「C#の言語学習」のためにUnityを使うのは微妙。」 / Twitter
- AsPu!se / あすぱる!さんはTwitterを使っています: 「@mizchi $から始まるような関数はjQueryってやつの機能で、それはここでは使えないよ、で済ませてます…」 / Twitter
変数とは
変数とは
- Miura HidekiさんはTwitterを使っています: 「「変」数 とは...?」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 f = λx. x+1 で f 1 と f 2 の場合のx」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 考えてみたら元はvariableだから数とは限らないですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana 確かに。変数と言う訳語が出来たのがFORTRANの頃でCHARACTERも数の一種という扱いだったんでしょうかね?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana @tomooda 確かに引数のパラメータはApplyごとに変わりますね。こういうのを変わると言うのかよくわかりませんが。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 @tomooda 実装側からみるとf 1の時のxとf 2の時のxは固定値を持つ別の実体とも考えられるし、関数の中身x+1にとっては呼び出しごとにxに違う値が入ってくるからxは固定されてない=変わり得ると考えることもできる、のかな。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana @tomooda このレベルになると変数の値が変わるとはどういうことか、機械語レベルの操作的意味か表示的意味で定義しないと議論にならない気がしますが、その変数の指すメモリが変わると言う定義なら最適化の方法で変わってしまう気がします。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 @tomooda そこまで実装寄りの話ではなく、前半は例えば (let loop ((x 0)) (loop (+ x 1))) において x はループの度に再束縛されるので、「イテレーションごとに別の実体」と考えることができる、というあたりを想定してました。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana @tomooda なるほど。外側のループの変数をおなじアドレスに割りつかるかは実装次第ですものね。そう言う意味では違うアドレスに割り付ける可能性も想定すると実装とは独立になりますね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 @anohana 極端に言えばinline展開すれば名実ともに別の「x」になりますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tomooda @anohana 確かに!」 / Twitter
単一化で破壊的代入
- Miura HidekiさんはTwitterを使っています: 「「変」数 とは...?」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 Mirandaで id :: * -> * id x = x とした時の型変数「*」ですね。 id 0の時にはnumになって id "0"の時には[char]になります。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 何を言いたいかというと、unificationでも「代入」があるよ、ってこと。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tomooda たしかに、Prologでも代入後の破壊的代入は出来ないけどバックトラック時に別の値を入れることは出来ますものね。変数の値が変わるの定義って難しいですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「変数の値が変わらないという状況の定義は難しいと思うけど、それを口にしたら絶対に変わり者扱いだろうなと思う」 / Twitter
- zehnpaardさんはTwitterを使っています: 「変わらないし数でもない、神聖ローマ帝国みたいになってる “…neither Holy nor Roman, nor an Empire.”」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「「変」数 とは...?」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「OCamlやErlangに飼い慣らされた結果Rust書くときでさえ破壊的に変更可能な変数について不要な忌避感を持ちがちで,油断するとお茶大OGの「ループってよくわからなくて…… 再帰じゃダメなんですか? 途中で変数の指す値が変わるっておかしい……」になってしまう.」 / Twitter
CPS IR
- zehnpaardさんはTwitterを使っています: 「そういえばCPS IRの話題に関してINRIAのブログでインターンしてた人が粗いサーベイ書いてた https://t.co/01FMtKIwGH」 / Twitter
- Gagallium : Reading papers on CPS, SSA, ANF and the likes
- でこれきさんはTwitterを使っています: 「関口宏「継続、お詳しいそうですね?」 私「嗜む程度には」 関口宏「有名な論文もお詳しい?」 私「そうですね、Compiling with continuationとか」 関口宏・渡辺正行「Compiling with!!」 私「!?」 関口宏「Compiling.*continuation.*な論文、with以外で5つ答えよ」 渡辺正行「走って!」」 / Twitter
- でこれきさんはTwitterを使っています: 「s/continuation/continuations/」 / Twitter
ロスレス構文木
- 令掛ベインさんはTwitterを使っています: 「ASTがカッコ式のようなノードも捨てずに持っていて、各ノードの開始・終了の位置を正確に記録していれば、トークン列とASTの構造からロスレス構文木を復元できそう #milone_lang」 / Twitter
- 令掛ベインさんはTwitterを使っています: 「既存のパーサーを拡張して、カッコ式を捨てないようにし、ノードの開始・終了に位置するトークンの位置情報を持つようにすることで、ロスレスなパーサーを作れるだろうということ」 / Twitter
- 令掛ベインさんはTwitterを使っています: 「ロスレスなトークナイザーもいる。それは簡単に実装できるはず」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@vain0x それは、具象構文木(解析木, CST)とも異なるものですか」 / Twitter
- 令掛ベインさんはTwitterを使っています: 「@tenpoku1000 少し調べたかぎりでは具象構文木と抽象構文木の違いがカッコの有無ぐらいの違いとしか書かれていないので、なんともいえないです。ロスレス構文木はスペースやカンマも含めて維持するのでLSPサーバーを作るのに便利なものです。参考: https://t.co/8x2eVtREEW」 / Twitter
- rust-analyzer/syntax.md at ad6df5b12e61cb7779bfc92c08f1ff0ee37c4f2d · rust-lang/rust-analyzer
- 市川 真一さんはTwitterを使っています: 「@vain0x CST + 構文トリビアと同じものと思いますが、構文トリビアについては以下のような説明があります: .NET Compiler Platform SDK 構文モデルを使用する | Microsoft Docs https://t.co/AdlyJkz9s7」 / Twitter
- .NET Compiler Platform SDK 構文モデルを使用する | Microsoft Docs
- 令掛ベインさんはTwitterを使っています: 「@tenpoku1000 Roslynもロスレス構文木を使っていますね」 / Twitter
推移則の成り立たない二項関係など
- Miura HidekiさんはTwitterを使っています: 「1< x < 10 とかやりたいからだろうけど、やっぱりきもいな」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「>>> 1 < 2 < 3 True >>> 1 < 2 < 3 < 4 True >>> 1 < 2 > 1 True うーん、キモい。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「Pythonではa op1 b op2 cは(a op1 b) and (b op2 c)と解釈される。(a op1 b) op2 cとかではない。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 全順序の不等号とかならいいけど、推移則の成り立たない二項関係とかではその表記は許したくないなぁ」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@y_futatuki 推移律の成り立たない比較って数学だといくらでも考えられるけどコンピュータだと多重継承の継承関係くらいしか思いつかないけど、他にあるかな?継承だけなら別の記号を使えばいいと思うので」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 例えば、DNS の SOA のシリアル番号の大小比較(RFC1982)。 3項で比較したい場合が思い付かないけど :) https://t.co/c1OiPqS8hZ」 / Twitter
- RFC 1982 - Serial Number Arithmetic
- Miura HidekiさんはTwitterを使っています: 「@y_futatuki なるほど、シリアル番号空間から外れる場合もあるから三項で比較すると推移律が成り立たない場合もあるわけですね。一つ賢くなりました」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 これの場合、むしろ推移則を成り立たなくなるように作った、という順序かと思います。DNSのシリアル番号は慣習的に YYYYMMDDnn みたいな形にすることが多いのですが、うっかり日付間違えたとかで巻き戻したいけどシリアル番号は増加させることしかできないので2回増加させることで巻き戻します。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@y_futatuki なるほど」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「関数型言語でステートマシン(ステートパシング)的なものを書くの大変だろうな」 / Twitter
式指向・行指向
- monaqaさんはTwitterを使っています 「Vim script 書いてると式指向で書けるエディタが羨ましくなるよね」 / Twitter
- きりえさんはTwitterを使っています 「式指向言語と文指向言語。式は値を持ち、文は何かを行う。Rust は式指向言語で、すべての文が式であり値を返す」 / Twitter
- 式指向構文が言語処理系にもたらす複雑性 - ベインのブログ
- 関数型プログラミング言語の構文は「すべてが式」ではない - ベインのブログ
- 近況 2019-04-30 - ベインのブログ
- HSP3 でスクリプト言語の処理系を書く - ベインのブログ
- Pattern Matching - p1371r3.pdf
- Rustの文でセミコロンを省略してよい条件 - 簡潔なQ
- 式指向プログラミング言語
- LISP - Wikipedia
構文
- Kota Mizushima (on a diet)さんはTwitterを使っています 「最近の言語は、値を返さないものも返すものも「関数」として一緒の構文で定義するのが主流ですが、VBとかPascalみたいに別構文の方が多少構文複雑になっても認知的負荷は下がるんではという仮説を考えてる。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「procedure next() だったら、先頭1トークン読んだ時点で、副作用起こすのだけが目的なのがわかるけど、function next(): Unit だと、型の部分を見て、さらにそれがUnitである事まで確認してようやくわかるんですよね。 構文が単純である事だけを重視したデザインって人間に優しいのだろうか。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kmizu ナント、C のような型を前置するような言語だと、早期に procedure か function か確認できるんです」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@tenpoku1000 一理ありますね。ただ、前置の型宣言はそれを考慮してもジェネリクスとか関数ポインタ(関数型)とか色々入れると解釈がめんどくさいとかいう問題があるので、最近の言語は軒並み後置の型宣言になってる気がします。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういう意外とよくあるケースのために簡潔に遅延評価するための糖衣構文みたいなのがほしくなるなぁ https://t.co/dESjEGMIwN」 / Twitter
- Remove some uses of `foo.expect(&format!(...))` anti-pattern by fitzgen · Pull Request #3472 · bytecodealliance/wasmtime
- for文のforはなぜforなのか? - yapattaのブログ
- てらモス♋️さんはTwitterを使っています: 「え、データ競合をコンパイラが教えてくれる言語があるって...(´・ω・`)?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「VerilogとかRace Condtionを解決しないとハードウエアが一意に決まらないので検出できそう」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「今や、クラス設計の半分ぐらいは、開発環境でどう振る舞うかみたいな話になってきてるのではないかと思う。メソッドの探しやすさとか、デバッガとの相性とか。開発者フレンドリーじゃない設計は駄目だ。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「そういう意味で、C/C++のデータに対して生えてないメソッド軍みたいなのは辛い。文字の連結とかソートってどうするんだっけ?みたいな。」 / Twitter
検査例外と async
- kmizuさんはTwitterを使っています: 「論点としては既出だけど、"all exceptions as unchecked exceptions is a backward compatible change" この方向はちょっと凄い。検査例外を全部非検査例外とみなしても後方互換だから、はそのとおりだけど実際にやるなら過激な変更だという印象。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています: 「「検査例外は机上ではよい考えだったけど実際にはよい考えでないことを認め、検査例外をJavaから廃止するよう取り組むべき」 おーRemi Foraxさんがこんなこと言ってる!どうなるかな https://t.co/XeW2YhLjjq」 / Twitter
- Retiring Checked Exceptions Was: Throwing Functions
- kmizuさんはTwitterを使っています: 「しかしまあ、現実問題として、検査例外を迂回するために変なハックが横行してるわけだし、単に消してしまおうは一周回ってありなのかもしれない。 検査例外ってcomposabilityの他に、asyncとの組み合わせで相性が悪いのは割と致命的な気がする。」 / Twitter
- kmizuさんはTwitterを使っています: 「なんていうか、Java 7のBGGAの提案に入っていたexception transparencyの議論を放置したツケではという気もしている。どういう経緯で議論が錯綜したのか未だによくわかってないけども。」 / Twitter
- kmizuさんはTwitterを使っています: 「BGGAはfunction typeもあったしexception transparencyもあったしで検査例外が絡んだ問題を真剣に解決していたのに、色々あってお流れになったのを未だに時折惜しく思うことがあります。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「throws句に検査例外が書かれているときだけ検査例外扱いにすれば完全に後方互換保てそう。」 / Twitter
宣言的? Declarative?どういうこと?
- 宣言的? Declarative?どういうこと? - Qiita
- RyuseiさんはTwitterを使っています: 「関数を組み合わせてプログラムを書くことと、数学の証明を書くことは、構造としては同じことである(カリー=ハワード同型対応)わけで、まあプログラムが書ける人は証明も書けるし、証明が書ける人はプログラムも書けるでしょ(極論)」 / Twitter
- RyuseiさんはTwitterを使っています: 「厳密には↑は正しくなく、これはプログラムの型についてだけしか考えていない」 / Twitter
- RyuseiさんはTwitterを使っています: 「実際のプログラミングは型とか考えないで書かれたりするし、型で表現しきれない仕様があるし、まあ数学の証明と同じではない」 / Twitter
- RyuseiさんはTwitterを使っています: 「厳密にはバグっているが、自分の使う範囲では問題にならないプログラムというのも普通に存在するし、許容されるわけで、それは数学の証明とは違う。」 / Twitter
- RyuseiさんはTwitterを使っています: 「でも仕組みとしては、既存のプログラムをつなぎ合わせて新しいプログラムを作ることと、既存の定理から新しい定理を証明することは、だいぶ似ている」 / Twitter
- RyuseiさんはTwitterを使っています: 「宣言型プログラミングは撞着語法って記事書こうとしたけど、べつにそんなこともない気がしたのでやめます…」 / Twitter
- RyuseiさんはTwitterを使っています: 「そもそも declarative programming って言い方がちょっと微妙だという気持ちはあって、たとえば「道路を渡るときは、手を挙げて渡れ」という文は、条件が指定されていたとしても命令文 imperative sentence なわけで、手続き的proceduralではないとしても、平叙的declarativeではない。」 / Twitter
- RyuseiさんはTwitterを使っています: 「Prologでプログラミングするとき、別に「AならばBである」という平叙と、「AのときBをしろ」という命令の間で、セマンティクス上、区別があるわけじゃないですよね。実は、Prologは、命令的/平叙的という点で他の言語と違っているわけではない。」 / Twitter
- RyuseiさんはTwitterを使っています: 「自然言語の、ひとつの言語の中で命令文と平叙文が両方存在しているように、プログラミングにだって、平叙的な要素と命令的な要素の両方が存在していて当然であるわけで、命令型/宣言型プログラミングをパラダイムとして考えるとだいぶ変なことになってしまう。」 / Twitter
- RyuseiさんはTwitterを使っています: 「それはそれとして、プログラムを、上から順番に実行する逐次構造を持つ手続きとして記述するのか、逐次構造を使わないで記述するのかという区別の仕方もあるのだけれど、これが命令型/宣言型という区別と混同されて語られている。」 / Twitter
- RyuseiさんはTwitterを使っています: 「declarativeを宣言型と訳すのはよくないと思う。平叙的。」 / Twitter
- RyuseiさんはTwitterを使っています: 「文脈を考えないで、辞書の一番上に出てくる訳語で訳すの、よくないよ」 / Twitter
- RyuseiさんはTwitterを使っています: 「imperative/declarativeの対比はもう文法では命令文/平叙文という訳があるのに、どうしてプログラミングでは命令型/宣言型って訳しちゃうんですか…」 / Twitter
- RyuseiさんはTwitterを使っています: 「日本語の「宣言」だと、誰か別の人に伝えて、コミットメントするニュアンスが出ちゃうけど、imperativeとの対比で言ってるdeclarativeは、そうじゃないじゃん」 / Twitter
- RyuseiさんはTwitterを使っています: 「プログラムのimport文とかuse文、英語上は命令文に見えるけど、どっちかといえば、依存関係の宣言(まともな訳語で言えば平叙です!)と読みたいんだよね」 / Twitter
- RyuseiさんはTwitterを使っています: 「もう「宣言」って用語で定着して身についてしまっているので、へんな訳語だと今指摘しても、くつがえしづらいのである…」 / Twitter
- 関数型言語向けの抽象機械
- 超関数型プログラミング
関数型
- KoryさんはTwitterを使っています 「また人にBoehm-Berarducci encodingを布教した https://t.co/oZBt5MliwM」 / Twitter
- KoryさんはTwitterを使っています 「rank-1多相がある言語なら直和を埋め込めるといういつもの話をした」 / Twitter
- ユーザーブログ:Hexirp/(2020-07-17) lambda 3 の解析 | 巨大数研究 Wiki | Fandom
- オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの
- mumumuさんはTwitterを使っています 「関数型言語のめっちゃ基本的な疑問でどなたか教えて欲しいのですが,一般論として 副作用がない ⇔ 純粋 は正しいですか? それとも,文脈におけるそれぞれのタームの定義に依存する話ですか?」 / Twitter
- mumumuさんはTwitterを使っています 「> 文脈におけるそれぞれのタームの定義に依存する話ですか? というのは,「純粋」とか「副作用がない」というのは厳密な定義ができない,みたいなニュアンスです」 / Twitter
- mumumuさんはTwitterを使っています 「自分の理解では,そもそも純粋であることの定義が「参照等価性がある」ということだったのですが,これも文脈依存なのでしょうか...?」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm あ、というか副作用+参照透過性=純粋なのかと思っていました。」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm もとい、副作用なし、の意です。」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm で、おそらく嘘なので無視してください。参照透過で副作用あり、というのは参照透過性の定義を逸脱しているような気がしてきました。」 / Twitter
- mumumuさんはTwitterを使っています 「独自定義と厳密定義が混じり合ってる気がしていますわね」 / Twitter
- mumumuさんはTwitterを使っています 「定義が文脈によって変わる系の話かもしれない」 / Twitter
- mumumuさんはTwitterを使っています 「@buri17 本でかじっただけですが,「純粋 = 参照等価性」という定義が存在することは間違いなさそうです. しかし,そもそも世間では色々な定義が混在しているのかもしれなくて困っている,という感じです...!」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm たとえば乱数を返す関数は参照透過ではないけど副作用がないという立場もありそうですが、乱数を返す環境に影響を与えているという立場ならありとみなすような気がするので文脈依存といえばその通りなきがしています。」 / Twitter
- とりさん@腹筋が弱いさんはTwitterを使っています 「式は値を返せば良くて,それ以外の環境を変化させるような余計な振る舞いは全部*副作用*だから.(過激派」 / Twitter
- mumumuさんはTwitterを使っています 「みんなが使ってる副作用にも広義、狭義みたいな話がありそうで、もはや関数型言語がアカデミアだけのおもちゃでないことを考えると、厳密な定義を求めないで文脈ごとに定義を明示するべきであるという結論に達してしまった」 / Twitter
- mumumuさんはTwitterを使っています 「(ちなみに、自分の理解では「副作用=プログラムの任意の状態変化」だったので、副作用はもっと緩い定義をすることもあるという事を知れただけでも収穫)」 / Twitter
- timelerさんはTwitterを使っています 「高階関数のないプログラミング言語だとこういうの多く作られがち😰 https://t.co/7Ji9uMJs8Z」 / Twitter
- プログラムを勉強している人の毒舌な妹さんはTwitterを使っています 「お兄ちゃん、なんで8割方同じ内容の関数が3つも4つもあるの?」 / Twitter
- きしもとさんはTwitterを使っています 「@TakaoOzaki そんなことはないでしょう。必要なのは高階関数というよりも、関数(ないし手続き)がファーストクラスでないという制限のために、コードの複製が多発しやすい、というのが元のツイートの言っていることの要点ではないかと思います」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@ksmakoto % Prolog 'なるほど。高階関数を使うという話ではなくて、高階関数が存在しないようなクラスの言語ではと、読むべきだと。'.」 / Twitter
- 水無麻那さんはTwitterを使っています 「関数型は第一級関数を先取りしててすごいという言説を聞くが、オブジェクト指向もオブジェクトにより高階関数が自然な形でエミュレート出来るの、十分すごいし綺麗だと思う」 / Twitter
- 島鉄雄さんはTwitterを使っています 「Lispで (let ((a hoge)) ...) と書くべき所を (let (a hoge) ...) と書いてしまうとハマる… Cの if (a = hoge) ...; と同じレベルの落とし穴がLispにもある。 (ちなみに後者は、(let ((a nil) (hoge nil)) ...) と同じ)」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これ論文のどこにも書かずに10年経ってしまった (実装してすぐITPLに就職してしまった) 誰かが理論にしてるのかも知れないけどまだ見たことがない。安直な方法ではある」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn Haskell'08はunsafeCoerceを使ってるのがアレですが、うまいことやれば型安全なエンコーディング(かつRevisitedのようなチャネル渡しを伴わない)も可能です(例えば https://t.co/qQrv9rj3ZL のように一つのセッションチャネルを複数の単純型付きチャネル(ここではIOモナド)の列で実現するとか」 / Twitter
- betty-book-haskell-sessions/Types.hs at master · dorchard/betty-book-haskell-sessions
- El Pin AlさんはTwitterを使っています 「MacQueen "Modules for Standard ML"の1985年版(functorと言う用語が初めて出てくる)、入手困難かと思っていましたが、 https://t.co/l14H7pKBaB から入手できる(72 MBのPDF)と知りました」 / Twitter
- Full page fax print - Polymorphism Vol II, No 2.pdf
- El Pin AlさんはTwitterを使っています 「https://t.co/dVjE4eDFTr」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「関数型プログラミング、早期リターンができないのがつらいんだということに気付きはじめた。Rust は結構、関数型押しなんだけど、Try演算子も入ってほとんど普通の言語と同じように扱えるんだけど、Kotlinのinlineクロージャがないから、そこだけ早期リターンができない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「逆方向のリストは和田先生もなんか言ってたが、ほんと再帰で扱いにくい。順方向と対称にならない。coinductionするべきかもしれない。 a . (b . (c . ... と ((((a . b) . c ) ... の差。なぜか、Agdaの演算が後者で…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLのリストは再帰で書いてるが本質的にはループ。ループの最大値と途中の値がすべてあることを確認できれば良い。」 / Twitter
- ニャーニャーとなくどうぶつさんはTwitterを使っています 「分かりみ。Immutable は大抵の言語でやろうと思えば出来るだろうけど、Immutable コレクションや 所謂 copy メソッド等、言語がそれを推してるかでやり易さ変わってくるよなぁと思ったり。複雑なドメインで値オブジェクト等やって行くのが重要なら実装方法云々の前に言語の選定も重要よねと思ったり」 / Twitter
- mod_poppoさんはTwitterを使っています: 「gotoの代わりにifやforを使うのを構造化プログラミングというけど、ループの代わりにmapやfilterやfoldを使うのはどう呼ぶのが良いんだろう」 / Twitter
- mod_poppoさんはTwitterを使っています: 「mapやfilterやfoldはループの代わりなのか、(手で書く)再帰関数の代わりなのか」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@mod_poppo 個人的にですが、Haskellでfoldは最初から何気なく使っていても、副作用的ループをfoldMで書けるようになるまで少し時間が必要でした。」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@mod_poppo 大元のつぶやきを見ずに書いてしまいましたが、map/filter/fold どれも関数型プログラミングでいい気がするのですが、関数的なfold と 副作用的ループのfoldMの間にはギャップがあるような気がする... てことになります」 / Twitter
- GNUE(鵺) 💉PPMさんはTwitterを使っています: 「関数型プログラミング? https://t.co/9W8nj1uffv」 / Twitter
- なぜmapやreduceやfilterなのか〜前編|こわくない関数型プログラミング
- mod_poppoさんはTwitterを使っています: 「高階関数を使うので関数型プログラミング、それはそう」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「非破壊プログラミング 宣言的プログラミング 累積的プログラミング」 / Twitter
- Nobuo YamashitaさんはTwitterを使っています: 「Applicative プログラミング?」 / Twitter
- 日比野 啓 (Kei Hibino)さんはTwitterを使っています: 「@nobsun Inductive プログラミングとかどうでしょう」 / Twitter
- がくぞさんはTwitterを使っています: 「これなー。例えばopaque typeを使って篩型のようなものを簡単に定義しより静的検査を活用していこう!みたいなアプローチも、本来あまり関数型とか関係なく、どちらかというとsubtyping活用するしOOPLに親和性高いアプローチなのだけど、小難しい関数型のテクと思われてそうな節を感じるんですよね……」 / Twitter
- Naoki TakezoeさんはTwitterを使っています: 「実態はどうあれ最近Scalaコミュニティが関数型プログラミングに偏りすぎている(非関数型Scalaを使ってるユーザも多いとは思うけどそういう話はもうあまり目立たない)というのは実際のところ結構深刻な問題のような気がする。 https://t.co/S2IjZgqg9U」 / Twitter
- Scala became Typelevel/Zio only ecosystem? : scala
- がくぞさんはTwitterを使っています: 「例えのはこういうやつ https://t.co/CYrU66IMpX https://t.co/UmYSmHxzdf」 / Twitter
- opaque type NonEmptyString <: String = String object NonEmptyString { def apply(s: String): Option[NonEmptyString] = if s.isEmpty then None else Some(s) } val v: Option[NonEmptyString] = NonEmptyString("wWai wai") // ちゃんと String のメソッド呼べる v.map(_.toUpperCase) - Scastie
式指向
- がくぞさんはTwitterを使っています: 「if の {} 必須層は else if もNGで else { if {} } じゃないと一貫性が無いように思うのだけど、 else if は else if なの?」 / Twitter
- いたにぃさんはTwitterを使っています: 「@gakuzzzz ifの{}必須っていうのは、間違って複数の文を書いちゃった時にバグが起きるとかそういう話で、else ifは定型分みたいなもので、elseの後が必ずif文の1文で済むので、大丈夫って人も居ると思います。」 / Twitter
- がくぞさんはTwitterを使っています: 「@itanii333 この辺やっぱりifが文ベースで副作用前提の複文になったときに問題が起きがちな言語と、ifが式ベースで複式になったら式が成り立たなくなるので問題が起こりにくい言語とを一緒くたに語るのは危なそうですねー」 / Twitter
- いたにぃさんはTwitterを使っています: 「@gakuzzzz 複式になったら式が成り立たなくなる云々っていうのは、恐らくそれが理由で言語構造を理解するきっかけになるってことを含んでのことですよね? その場合は理解できるのですが、そうでない場合は、ifが式であっても返り値を必要としないケースが多いのであんまり関係ないと思います」 / Twitter
- がくぞさんはTwitterを使っています: 「@itanii333 あー後者のifが式ベースの方は「副作用を前提としない」というのを入れ漏れてましたね、すみません。 式ベースで副作用を使わない場合、返り値を必ず利用するのでそういう事故が少ない印象です」 / Twitter
- いたにぃさんはTwitterを使っています: 「@gakuzzzz ちょっと読解ができなくてすみません。 副作用ってどういった事象のことを指してますか?」 / Twitter
- がくぞさんはTwitterを使っています: 「@itanii333 ここで言っている副作用は、関数/メソッドにて引数・戻り値以外に影響を与える全ての事を指してますね。IOだとか環境からの現在時刻の取得だとかetcです」 / Twitter
- いたにぃさんはTwitterを使っています: 「@gakuzzzz 理解しました。」 / Twitter
S式の改変
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています: 「S式好きなんだけど、あっても無くてもよい付け足しの要素を表現することが出来なくて困ることがあるので、新たな構文として <expr> { ':' <expr> } を付け加えたらどうだろう (define (f x:frac g:(-> frac frac)) (g x)) とか (map x:1 y:(1 2 3) (a b):"abd") みたいなのが書けるようになる」 / Twitter
- ほたてさんはTwitterを使っています: 「@na4zagin3 Clojure の metadata reader macros は割と近いことを実現できてそうな気がします(mapの例がピンと来ていないので的外れなことを言ってるかもしれません)。https://t.co/s5SMdg0HMK」 / Twitter
- Clojure - Metadata
- ほたてさんはTwitterを使っています: 「@na4zagin3 (自分もあまり詳しくないですが、と前置きしつつ……)S式の要素にメタデータを付与して、普通のsemanticsには影響しないけどマクロ(とか他のメタプログラミング?)が参考にしたければ読み出すというやつですね」 / Twitter
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています: 「@zptmtr Clojureにはそんなリーダマクロ(字句解析時に特別扱いされる奴)があるのですか。JVMとの相互運用の都合か分かりませんが、変わった機能が多くて面白いですね。」 / Twitter
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています: 「@zptmtr 後半の例は完全に蛇足だったのですが、これはメタデータ用の構文を足したらそれを濫用することで、ついでに連想配列を綺麗に表せるのではという発想です。 S式をデータ記述言語として見たとき、現代的な視点だと配列と連想配列は構文上区別したい動機があります(故、意味論はS式とは変わりますね)」 / Twitter
拡張メソッド・Factory
- がくぞさんはTwitterを使っています 「Extension MethodもIDEがちゃんと補完してくれる言語を使えばその呪縛から解き放たれるのでみんなで幸せになりましょう」 / Twitter
- がくぞさんはTwitterを使っています 「まぁJavaで interface Foo<A> { <B super A> Foo<B> bar(); } みたいな下限境界ができるようになればわざわざ拡張メソッドでみたいな事考えなくて済むのだけど……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz んー。 拡張メソッドなあ……🤔」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 拡張メソッドもそれはそれでドキュメント追い辛いよねみたいなのもありつつ。JavaのGenericsの範囲だとインスタンスメソッドではAPIの柔軟性を確保し辛い部分があるので一部staticメソッドにせざるを得ないみたいな所があるんですが、その辺を拡張メソッドにすると補完効くようになって嬉しい的な」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz そういうのもあるでしょうね。 ただ、元ツイは、引数に渡すオブジェクトを生成するためのbuilderクラス分からん!みたいなモノを念頭においてるので、そのあたりは解決仕切れなさそうだな、みたいな感覚もあります」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise オブジェクトの生成は最初のレシーバになるべきオブジェクトが存在しないからその辺は確かにアレゲですね……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz 起点がなんとかなれば、そこから補完、補完でいけるんですけどね。 最初の起点がわからんくなってるやん、みたいなのがbuilderにはあって。 newだとまあ分かりやすくはあるんですが」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise その辺はfactory methodも同様の問題を抱えてますよねー そういう意味だとデータコンストラクタやスマートコンストラクタが他の関数と区別つけ辛い言語勢だとどうやって解決してるんでしょうね? HaskellとかOCamlとかはデータコンストラクタが大文字から始まるからその辺で区別している……?」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz コンストラクタ、該当型を生成するという強い文脈を持っていますが、staticメソッドや、builder等から調達してくるみたいなときに、何らかの補完のヒントがあれば……というのが安直な解決策なんですよね ライブラリ側で誘導できるならそれで十分なのかもしれません。 今だとドキュメントで誘導ですね」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise builder生成メソッドやfactoryメソッドに 🍥Construct アノテーションつけておくと new TypeName って入力したときにIDEがサジェストしてくれるとかなら実現可能な範囲かもしれません?」 / Twitter
- uharaqoさんはTwitterを使っています 「@nagise @gakuzzzz 最近の流行りは、エントリーポイントとなるクラスを一つ定義してfactoryやbuilderをstaticメソッドで提供する感じだと思います。HttpClient.newBuilder()...みたいな。あとは流れるようにw https://t.co/MarV9ggZot」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@uharaqo @gakuzzzz そのエントリーポイントが分かりにくいというか。 まあ、そこは型じゃなくてドキュメントで誘導になってるな、と。」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise @uharaqo Rubyみたく通常のコンストラクタが TypeName . new なのが基本だと TypeName.newBuilder は補完が効かせやすそうなんですけどねー。KotlinやScala3のように TypeName(...)でnew キーワードすら使わないのがデフォルトの場合、ファクトリメソッドとコンストラクタの区別をつけなくて良かったりしますが」 / Twitter
nullをやめてOptionalを使う
- κeenさんはTwitterを使っています 「nullをやめてOptionalを使った方がいいと言われるけどパフォーマンスの影響はどうなの?ということで計測した記事。Javaは(予想に反して)最適化が不十分で遅くなる。Rustはzero costだった Overhead of Returning Optional Values in Java and Rust | Piotr Kołaczkowski https://t.co/v1EmQsDqY7」 / Twitter
- Overhead of Returning Optional Values in Java and Rust | Piotr Kołaczkowski
- みさわさんはTwitterを使っています 「Java には OptionalLong というものもあってだなと思ったけれど、OptionalLong でもあまり変わらないらしい。そして自分で実装しなおした OptionalLong の方が(このテストでは)かなり早いとか。 https://t.co/mOFFDxG3bu > https://t.co/Jq6FyhvezC」 / Twitter
- Rust Option 30x more efficient to return than Java Optional : rust
名前付き引数
Fluent interface
Fluent interface
- 流れるようなインターフェース試行錯誤メモ - Qiita
- Fluent interface - Wikipedia
- 流れるようなインタフェース
- 流れるようなインターフェース (Fluent Interface) とメソッドチェーン (Method Chain) - Neo's World
- ジェネリクスを活用して、FluentなインターフェイスをC#で実装してみた - SE(たぶん)の雑感記
- software1-1.pdf
- Fluent Interface
- FluentInterface
- Method Chain と Fluent Interface - .NET 開発基盤部会 Wiki
- がくぞさんはTwitterを使っています 「型はあくまで値の集合を表現するのでその点では問題は無いのだけど、理論上の集合概念を計算機上の型として表現する際にある種の切り捨てが発生してるよね、みたいな話かな?」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz はい。 そして、上手く切り捨てると、便利なんじゃないかっていう」 / Twitter
- がくぞさんはTwitterを使っています 「完全に良くわかってないで書いてますが、制約を型で表現することは良く行われていて、制約の合成を union type や intersection type で表現する事も良くされてる気がします?」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz Javaのキャプチャで、inだけ許す、outだけ許す、みたいなとこに注目しています」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise ふむむむ。完全に僕が何も理解できてないという事が理解できました!」 / Twitter
- ruimoさんはTwitterを使っています 「@gakuzzzz @nagise これのcopy()メソッドのところとかですかね。datはoutなので、TがStringだとすると、List<Object>にも格納できる的な。 https://t.co/jiadmbipTI」 / Twitter
- Javaの道:ジェネリクス(3.ワイルドカード)
- がくぞさんはTwitterを使っています 「@ruimo @nagise use-site variance notationを上手く活用してなんかしよう、という話なのか、use-site variance notationはあくまで一例で型システム上にそういった制約を表現するための新しい機構があるといいよね、という話なのかすら自分が正しく認識できていないという状態ですね」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「流れるようなインターフェイスのbuilderパターンで、生成に使うBuilderオブジェクトから、最後build()ってやって型を作ってるけど、検索に使うCriteriaとかだと同型でも問題ないやろか? immutableじゃないというのはあるけども」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「Criteriaを引数に渡すメソッドがあったとして、じゃあ引数に渡すCriteriaオブジェクト作りましょうって思ったときにnew出来なくてCriteriaBuilderクラスを起点にオブジェクトを構築しないといけない、みたいな野嫌なんですよね CriteriaはCriteriaなんだからBuilder兼ねてて良いような気もするなあ🤔」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「名前付き引数があればBuilderパターン要らないか?というと名前付き引数側もなんというか機能不足感もある」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「流れるようなインターフェースはIDEでの入力補完が気持ちいいんですよ」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「型を道標にコードを書いている」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「IDEの入力補完的にこういうインターフェイスがいい!みたいなの、オブジェクト指向としては邪道な気もしてきた(それはそう」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise Fluent Interfaceは必ずBuilderにしなければいけないという縛りがある訳ではないのでCriteriaの構築も普通にFluentで良い気がしますね。Criteriaの場合はand/orの選択があるからちょっと厄介ですが、通常のVOのwitherでメソッドチェーンするのと大差無いイメージ」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise SQLのCriteriaをイメージしてたので勝手にand/orを想像しちゃってましたが別にそんな前提は無かったですね。失礼しました><」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz いや、概ねシチュエーションはあってます。 検索条件によってはいろいろと複雑な排他条件があったりするのでしょうが、実行時バリデーションでエラー出すとかが妥協点かなぁ。 型システムで頑張っても勝手がいいわけでも無いですし」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 排他条件が絡むとJavaの表現力ではなかなか厳しいものがありますね…… 全てAnnotationで構築してAnnotation Processingで静的検査するとかも厳しいですしねぇ……」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise あとはFluentはあきらめてCriteriaをcomposableにするアプローチとかですかねー。Comparatorみたいな感じで構成するイメージ。排他になる条件は型を分けておくことで合成メソッド側で型が一致してないと使えないようにしておく、とか static <C extends Criteria> C and(C c1, C c2) みたいな」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise サブタイプにすると面倒だからPhantom Typeの方が便利かもしれません? static <P> Criteria<P> and(Criteria<P> c1, Criteria<P> c2) Bottom型が欲しくなって来ますね……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz ほほう。そういうアプローチもありますか」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise Fluent InterfaceほどIDEの入力支援を受けられないのが辛いとこではありますけどねー」 / Twitter
- uharaqoさんはTwitterを使っています 「@nagise プロジェクト内で使う分には名前付き引数+コピーコンストラクタでほぼ問題ないですね。 けれど引数の追加が破壊的変更なので、公開するならやはりビルダーなのでは。」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@uharaqo あー。破壊的変更。 オーバーロード足すわけにもいかないか」 / Twitter
- uharaqoさんはTwitterを使っています 「@nagise もちろんコンストラクタ追加すればよいのですが、引数追加を想定していなかったことがバレてダサいですよねw」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@uharaqo 確かにw」 / Twitter
- 非実在naka akiさんはTwitterを使っています 「@nagise 変な事をさせないよう縛り付ける力としては、Builderのほうがやや上でしょうねえ。」 / Twitter
- Yuta SAWAさんはTwitterを使っています 「@nagise わかります。 名前付き引数自体の問題ではないと思うものの、多値とかをもうちょっとうまく扱えればいいのだけど。引数aから引数bとcが決定されるみたいな時とか。」 / Twitter
- 右近忠重さんはTwitterを使っています 「流れるようなインターフェースって ①視認性を良くする ②手続き (メソッド) の順序性や関係性を定義 (固定) する という2つのメリットがあって、共通部品を作る立場としては②のメリットが嬉しいと思ってる。 ちなみに SQL のビルダーは TYPO 防止くらいしか役に立たんやろって思ってる。」 / Twitter
- 右近忠重さんはTwitterを使っています 「@nagise そうですね。 それも含めて②に書いたつもりでしたが、利用者的に直接的に嬉しいのは IDE 補完ですねw」 / Twitter
- 右近忠重さんはTwitterを使っています 「嘘ついた。 SQL のビルダーは SQL インジェクション対策が一番のメリット。」 / Twitter
- 右近忠重さんはTwitterを使っています 「@nagise でも「変数名を省略するな」みたいな話もIDE補完を前提にしてるとこありますし、その言語でデファクトスタンダードになってる IDE を前提にするのは別に良いのでは? 10年後とかに IDE の主流が変わっている可能性は確かにありますが。。。」 / Twitter
- 右近忠重さんはTwitterを使っています 「@nagise 投稿後に気づきましたが、「オブジェクト指向としては」という部分を読み抜かしていた。。。😅」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@ukontadasige1 話題として「オブジェクト指向」の範疇ではないですよね、的な」 / Twitter
- あるかなむJP・おっさんさんはTwitterを使っています 「流れるような〜というのを久々に見たんだけど当時、すごいと思ったと同時に、SQLとしての視認性ってなんか悪いよねってなってあんまり良いとは思わなくなった。実際にそれに似たORマッパ使ったプロジェクト、なんか苦労したなと。実際にはどうなんだったんだろ」 / Twitter
- [Swift] 関数ラベルの使い方を学ぶ - YoheiM .NET
- Swiftの関数のパラメータ【引数ラベルなどについてわかりやすく解説】 | 楽水
- 【Swift入門】ラベルについてまとめてみた - Qiita
- Swiftにおける名前付き引数 - Qiita
- [Swift 3.0] 関数ラベルのルールが変更になった話 | DevelopersIO
- Swiftでいこう -- 引数ラベルなど。|donguri|note
- Swiftの関数の基本的な取り扱い | Think IT(シンクイット)
組み込み可能なリテラル
- Miura HidekiさんはTwitterを使っています: 「相変わらず「動的型付け」で検索して動的型付けのdisりを楽しんでいるのだが、たまによくある 数値型の足し算だと思ったら文字列連結になっていた は動的型付けではなく言語デザインが悪いんじゃない?って思う」 / Twitter
- まりもさんはTwitterを使っています: 「@miura1729 そういえば別にC#でも起こりうるな。やったことないですが。単に書いた人が悪いんじゃ?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@potimarimo C#でも起こりうるんですか。やはり暗黙の型変換がらみでしょうか?なぜあんな落とし穴な暗黙の型変換を採用してしまうのか?」 / Twitter
- まりもさんはTwitterを使っています: 「@miura1729 stringの+演算子が2項目にobject型をとってToStringしているので単なるオーバーロードの話ですね。静的だから大丈夫になる要素がない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@potimarimo デバッグprintなんかでメッセージを組み立てるためでしょうかね?+演算子を使わなくても...って思いますが」 / Twitter
- まりもさんはTwitterを使っています: 「@miura1729 いや便利でいいんじゃないですか?それをおかしいという感覚を持つのは、Javaプログラマーくらいだと思ってましたけど。」 / Twitter
- まりもさんはTwitterを使っています: 「@miura1729 群論とかやってる人にも評判が悪かったか。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@potimarimo 出力などのメッセージを組み立てるなら別の記法(組み込み可能なリテラルとか)の方がいいなと思う派です」 / Twitter
- まりもさんはTwitterを使っています: 「@miura1729 それも最近ついたので、今は演算子はあまり使いませんね。まあ組み込み文字列の方が抵抗は強かった気がしますが。」 / Twitter
- がくぞさんはTwitterを使っています: 「個人的な意見ですけど2022年現代でプログラミング言語を学ぶなら ScalaでOOPとFPの基本的なとこ学んで Rustで所有権やメモリについて学んで Idrisで依存型や証明について学んで TypeScriptで構造的部分型について学ぶ と良いんじゃないでしょうか? 他言語にも応用効かせやすいし広い分野で働けると思」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「* あらゆる環境に処理系がある * 速い * アセンブリとの親和性 * ランタイムなし環境にもコンパイルできる このあたりか(´・_・`)てかこの辺を無視すると置き換えは不可能になるんだよな。ポストC謳ってても普通に無視してる言語も多い(知らんけど)」 / Twitter
- yoh2さんはTwitterを使っています: 「enum、言語によって結構違いがあって面白い。 単なる定数一覧なやつ、直和型的なやつ、strategy pattern 実装ヘルパーみたいなやつ……」 / Twitter
- yoh2さんはTwitterを使っています: 「単なる定数一覧なやつ : C とか 直和型的なやつ : Rust とか strategy pattern 実装ヘルパーみたいなやつ : Java とか」 / Twitter
- がくぞさんはTwitterを使っています: 「Monoidの知識があるとjava .util .stream .Collectors の各メソッドが一瞬で理解できるようになるのでJavaやる人もその辺の押さえとくと良いと思いますですよ」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「#SATySFi のパーサをtree-sitterで実装しようとする人もいれば、tree-sitter上の #OCaml のパーサを利用してbindgenを作成しSATySFi処理系を #Rustlang から使おうとする人もいるよね」 / Twitter
- エヌユルさんはTwitterを使っています: 「JavaScriptとかPython見ると分かるけど依存関係を動的に解決することを許した時、それは地獄への直行だ」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「実行時にパッケージをロードする事が悪なのではなく、実行時にどのパッケージをロードするかが変わる事が悪(´・ω・`)」 / Twitter
- がくぞさんはTwitterを使っています: 「Java/Scala/Kotlin だと polyvariadic は定義できないけど、subtyping で無理やりなんとかしてるという感じだなー」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「foldl foldr とか reduce() とか畳み込み関数に渡す関数のアキュムレーターが一番目か二番目かどれだけやっても覚えられない病」 / Twitter
- くちた|じゃば〜貧血百合猫さんはTwitterを使っています: 「カリー化と部分適用の違いを噛み砕けない……違うことは分かるのだけれど……」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「実は「抽象化」という単語の意味は難しい。辞書引いたら、自分の思っている感覚と微妙にズレてた。まあ、その辺も以てして抽象的なんだろうが。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています: 「実はオブジェクト指向あたりのabstractを抽象化と訳したのが失敗で、抽出されたとか要約とかの意味だったのかもしれない可能性。 abstract data typeも「抽象データ型」より「抽出されたデータ型」くらいのほうがしっくりくる」 / Twitter
- がくぞさんはTwitterを使っています: 「今日もTLで継承がdisられてますが、subtypingが存在することでrefinment typesが楽に定義できたり、union types や intersection typesが活用できるので、subtypingとsubclassingは分けてdisりましょうね (なおsubtyping自体も悪だとする派閥も存在する)」 / Twitter
- tscをGoに移植 | POSTD
- mod_poppoさんはTwitterを使っています: 「Orderingの二項演算、短絡評価されないと嬉しくない。デフォルト遅延評価のHaskellでは短絡評価が自然にできるが……」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「Lispで最初にやることはeqでequalを定義することだと思っている (ちょっとスパルタ気味」 / Twitter
- ひさケットさんはTwitterを使っています: 「型が合えば完全に問題なく動くせいで、プログラムの挙動とか完全にスルーしてただ型パズルを解くことだけを考えることになるのだが、すると「なぜかよくわからないがこれをやるとパズルが解きやすくなる」みたいなパターンが頻出してきて、さながら数学の図形問題の「補助線の引き方」の様相である」 / Twitter
- ひさケットさんはTwitterを使っています: 「「型が合えば完全に問題なく」はもちろん盛りすぎで型を上手く(制約をきちんと表現しているように)設計できればの話」 / Twitter
- ひさケットさんはTwitterを使っています: 「たぶんIdrisとかだともっとこの感じが濃くなってくると思う」 / Twitter
- プログラマーを惑わせる3種類の委譲(委譲・Delegation/転送・Forwarding/.NET Delegates) - Qiita
クロージャ
- 実装から理解するクロージャ | κeenのHappy Hacκing Blog
- 島鉄雄さんのツイート: "Emacs Lisp だとクロージャが何なのかより分かり易いと思う。 この画像の連想リスト(alist)の ((count . 0) t) が、いわゆる環境で、メタファーでなくて実際に本物の連想リストを保持している。 で、setq がこの中身を直接書き換えてる。 実際に書き換わってるのが分かると思う。 Emacs は勉強になるな… https://t.co/No7IoW1GOy"
- 島鉄雄さんのツイート: "ちなみに、これはバイトコンパイルされてない関数の場合で、バイトコンパイルされると、クロージャの持ち方は全然別物になる。 へーそうなんだと言う感じだけど、近々バイトコード完全解説記事を公開予定なので、少々お待ちを…"
- Kota Mizushima (on a diet)さんはTwitterを使っています 「オブジェクト指向言語でオブジェクトを渡すのは、実質的に高階関数を渡している(そういうオブジェクトは固有のメソッドを持つので)のであって、OOPL使っている皆さん、すでに高階関数使っているのだ。クラス使わずに1メソッドだけのオブジェクト便利に渡せると思えばいいのでは。」 / Twitter
再帰とループ
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ソースを幅優先探索で読む人は再帰が理解しやすく、深さ優先探索で読む人はループが理解しやすそう説。本当にそうかは知らない。」 / Twitter
- ichimalさんはTwitterを使っています 「数学的帰納法でわかりやすく定式化出来る計算ならむしろ再帰の方が「見た感じ」簡単のように思うけど、一般的かは謎。 そも、再帰関数は原理的に単純なループより複雑な事ができる(例:アッカーマン関数)わけだが、そういうのも関係あるだろうか。」 / Twitter
- pokarimさんはTwitterを使っています 「ループはかんたんだけど再帰はむずかしいってなる理由についてあらためて考えてみたけど、再帰呼び出しがつくる任意の深さの入れ子構造というものが認識に負担をかけるようなところがあるのかもしれない。ループならあくまでフラット。」 / Twitter
- KojimaさんはTwitterを使っています 「手続き型言語に慣れていて関数型言語に慣れてない人の「ループしたいだけなのになんで再帰を書かないといけないのか」に対する違和感をうまく表現できないでいたんだけど、「あなたは総和を求めたいのではなく部分和の値をレジスタに書き込むことを繰り返したいのですか」とかいう感じかもしれない」 / Twitter
- ぽんこつ@Z6/Z7さんはTwitterを使っています 「関数型言語でも再帰書いたら負けっていう派閥なんですが」 / Twitter
- ぽんこつ@Z6/Z7さんはTwitterを使っています 「@haruo31 末尾再帰最適化前提でコード書けるの、Haskellぐらいしかなくね、みたいなイメージだった。Scalaも末尾再帰最適化失敗でコンパイル失敗させられるから一応入れてもいいかもしれないけど」 / Twitter
記号と再帰
- Naoya ItoさんはTwitterを使っています: 「何気なくこの本の読み始めたんだけど、めちゃくちゃ面白い… https://t.co/FoweIG8fIP」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「関数型は外在的、オブジェクト指向は内在的。関数型では、意味が内容に全てが含まれているわけではなく、内容に外在する使用がそこ識別子にさらに意味を与える。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「関数型における識別子の意味は、その外にある関数によって意味が与えられるものだから、ある意味事後的に、意味与えられるモデルだといえそう」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「一方のオブジェクト指向は、ある内容がどう使われるのかはクラスに含められる。その意味は、クラスの内包によって説明される。つまり、関数型との対比でいくと事前に意味が確定していると考えるのがオブジェクト指向のモデルといえそう」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「アドホック多相とサブタイプ多相も、外在・内在の観点でとらえるといいような気がするな」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「再帰を書くときに何気なく関数に名前つけたり let で束縛したりしてたけど「再帰には三項関係が必要でありその実現には記号が本質的に関わる」とあり、名前づけの行為が必然だったことが分かった。プログラミングするときの視点が変わるな」 / Twitter
- INA LintaroさんはTwitterを使っています: 「@naoya_ito 不動点コンビネータを使うと再帰関数に直接名前をつけなくても再帰を実現できますね。ただ引数名を使って再帰呼び出しをするので、どのみち名前はつけることになりますが。 https://t.co/zAyUHk10VJ」 / Twitter
- 無名再帰 - Wikipedia
- Naoya ItoさんはTwitterを使っています: 「@oarat ありがとうございます。不動点関数を利用して再帰を非再帰的にするとき、その不動点関数が三頂関係を持っていて、その三次性を持つ対象を分節する上で記号が大きな役割を果たすとのことでした。まだ完全に理解できてませんが、名前づけと不動点関数を利用することに、本質的な繋がりがありそうです」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「@oarat おそらく、再帰をするには三項関係を記述できる特性が必要で、不動点関数を使うか記号をつけるかが必須、ということだと思います。」 / Twitter
- INA LintaroさんはTwitterを使っています: 「@naoya_ito そうですね、自己言及のためになんらか追加の特性が必要で、ただ任意の名前づけは必須ではなく(記号が要るのは同意)、たとえばJavaScriptのarguments.calleeとか、クラスベースの言語のthisも再帰を実現する作用があります。(thisが再帰を実現するのはこういうイメージです: https://t.co/USUV3GXFip )」 / Twitter
- println((new Function1[Int,Int] { def apply(n: Int): Int = if n <= 1 then 1 else n * this(n-1) })(5)) - Scastie
- Naoya ItoさんはTwitterを使っています: 「@oarat なるほど、ありがとうございます。名前づけ、不動点関数以外にもいくつかの手段があるのですね。理解が深まりました」 / Twitter
- naoyaさんはTwitterを使っています: 「「記号と再帰」読み終えた。とても面白かった。計算機を扱っていると、何かと何かが同じような構造をしていて既視感を感じることがあよくある。例えばプログラミング言語のコンパイラが同じプログラミング言語で書かれていること、とか、エディタのソフトウェアが、そのエディタで開発されていること等」 / Twitter
- naoyaさんはTwitterを使っています: 「再帰とforループが同じ結論に帰着したりとか。パイプ & フィルタで入力と出力が同じように連結してくとか、モナドで文脈計算が合成されていくとか。」 / Twitter
- naoyaさんはTwitterを使っています: 「こういう計算機やプログラミングの概念にあるあるな「なんかこれあれに似てるな」みたいなものの根底を、記号論の枠組みで解き明かして、その必然性を論じているというのがこの本。」 / Twitter
- naoyaさんはTwitterを使っています: 「普段何気なく記述していたプログラムが、どうしてそういう構造になっているのか、をこれまでと違う目で見ることができるようになる、すばらしい本だと思いました。」 / Twitter
- naoyaさんはTwitterを使っています: 「将来のための備忘録: 「記号が投機的媒体であることは、記号論の範囲では機械でも人間でも変わらない。その一つの必然的な帰結が再帰である」」 / Twitter
- naoyaさんはTwitterを使っています: 「@Tanaka9230 この本では自然言語においてもプログラミングにおいても、記号を、その意味が確定する前に系に投入し、事後的、再帰的にその意味が明らかになっていく、みたいなことを投機と言っていますね。」 / Twitter
Recursion Schemes
- κeenさんはTwitterを使っています: 「ASTみたいな再帰データ構造を効率的に扱う話。再帰呼出を使うと遅いからrecursion schemesみたいに再帰してないデータ構造を定義して…とやっていく。 Elegant and performant recursion in Rust :: [ https://t.co/VsRBNaBQ0a ] https://t.co/ByqkPGmnpR」 / Twitter
- Elegant and performant recursion in Rust :: [ recursion.wtf ]
- κeenさんはTwitterを使っています: 「recursion schemesを分かりやすく理解できる資料があんまりない。圏論勉強会のスライド読んだあとにHaskell荘園見ればいいのかなぁ。 圏論勉強会 @ ワークスアプリケーションズ https://t.co/ft8AsnkADK Recursion Schemes - haskell-shoen https://t.co/h5n8taAELN」 / Twitter
- 圏論勉強会 @ ワークスアプリケーションズ
- Recursion Schemes - haskell-shoen
基本はatomと直積と直和でデータ構造が表現される
- がくぞさんはTwitterを使っています 「オブジェクト指向なデータ構造に限らず、FPで一般的に使われるものも含めて基本はatomと直積と直和でデータ構造が表現されることが殆どな気がしますね? 後はnominalかstructuralかの差だとか、classベースだと基本的にopen recursionがくっついてるとかそういう差異の話になりそうな気がします」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@gakuzzzz というかもっとつまらない実装の話で、ツリーノードに枝と葉があるのにポリモーフィズムがちょうどいい以外に、OOPだからとくに作りやすいものってない気がするなあと思って」 / Twitter
- がくぞさんはTwitterを使っています 「@tanakahisateru 一般的には、OOPだと枝と葉以外のものを足したくなった時に既存の操作を変更せずに足すことができる、という所にメリットを見出してる感ありますねー」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@gakuzzzz 抽象さえ合っていれば要素の詳細に多態を入れてもいいのは OOP っぽいですねー。ただそれだと、OOP はどこでも何でもそうなので、着目したいなと思ったのは、構造そのものが多態性による実装ととくに相性がいいと言えるのはどれかなと思ったんです」 / Twitter
- がくぞさんはTwitterを使っています 「@tanakahisateru なるほど。そういう意味で言うと、構造として相性がいいみたいなのは無さそうな印象ですねー」 / Twitter
- ひさてるさんさんはTwitterを使っています 「いかにもオブジェクト指向なデータ構造って突き詰めると Composite パターンしかないよなってならない? こいつは Node が Leaf か Branch でポリモーフィックっていうオブジェクト指向らしさが効いてくる。あとは結局、要素が抽象を介して実体を参照している部分がOOPで、構造自体はそうでもない」 / Twitter
- ひさてるさんさんはTwitterを使っています 「で、振る舞いを持つ小さなコールバックをクラス定義していたのは、いまどきなら変数を束縛した関数でもいけるので、アルゴリズムのためのOOPって方向性でいくと、わざわざ名前付いたクラスを設計する必要性は下がってきてる」 / Twitter
- ひさてるさんさんはTwitterを使っています 「だからあまり役に立たないではなく、むしろ何でもかんでもOOP言ってたのが落ち着いて、人が認識するために名前を持つ概念モデルとして、および、依存チェーンに存在するモジュール単位として、という本領が見えきたんじゃないのという考え」 / Twitter
- ひさてるさんさんはTwitterを使っています 「すでに構造化プログラミングで語られていたことにオブジェクト指向のラベルを付けて語る独自理論については除外して考えています」 / Twitter
- union types - Google 検索
数学
圏論・群論
- wint 𝄆 揚げ出しエンジニアさんはTwitterを使っています 「圏は、ただの有向グラフの(必ず自己ループがあるという特殊な)サブクラスだよ。なにか問題でも?」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 群は特定の性質を満たしている集合と演算のペアを群と呼ぼうって感じのアレアレで圏はそっからさらに抽象化した感じのアレアレです」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz その程度の雑理解から先になかなか進めないので真面目に勉強しろ的なアレですね……」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 真面目な話、現在プログラミングで活用されている事例をなぞって使うだけならその程度の雑理解で十分なんですよね……僕も同程度の理解しかできてないですし。さらに現状まだ活用されてない概念をプログラミングに適用したり応用的な活用するためには先に進んだ方がいいんでしょうが……」 / Twitter
集合と演算の組み合わせ(群・環)
- がくぞさんはTwitterを使っています 「むしろ数値や文字列だけじゃなく全ての半群の加算を + 演算子で実装しましょう」 / Twitter
- がくぞさんはTwitterを使っています 「クラスという概念、集合と演算の組み合わせというものを表現しやすそうで群とか環とか表現しやすそうなのに単位元みたいなのが表せないのでアレアレ」 / Twitter
- ruichiさんはTwitterを使っています 「積も結合的だから半群を成すのだけどそれも+になってしまいそう」 / Twitter
- がくぞさんはTwitterを使っています 「掛け算するためには (Product(2) + Product(3)).value // 結果 6 しなきゃいけない言語不便すぎるw」 / Twitter
- pxfnc(ぴくすふぁんく)さんはTwitterを使っています 「言語によってsemigroupの演算として<>を用意して、それとは別にSemiringが(+),(*)を提供してたりという設計があったり。PureScript最高や」 / Twitter
- がくぞさんはTwitterを使っています 「言語標準でsemiring欲しいよね」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「@gakuzzzz purescriptやりましょう」 / Twitter
- がくぞさんはTwitterを使っています 「@xuwei_k yes, purescriptいいよねという旨のついっとでした」 / Twitter
- がくぞさんはTwitterを使っています 「モナドやれば嫌なこと(副作用とか状態管理とか)みんな忘れられるよ」 / Twitter
- がくぞさんはTwitterを使っています 「演算子overloadの問題とimplicit conversionの問題をごっちゃにすると話がややこしくなりそう」 / Twitter
- がくぞさんはTwitterを使っています 「Scala だと trait Semiring[A] extends Semigroup[A] で表現できるのでどちらも + でいけそう PureScript で class (Semigroup a) <= Semiring a にしてないのは何か理由があったりするんですかね?」 / Twitter
- CubbitさんはTwitterを使っています 「半群は <> 、半環の加算は + で抽象化していこう! https://t.co/FYKkpt5FCZ」 / Twitter
- Data.Semigroup - purescript-prelude - Pursuit
モノイドや半群の概念
モノイドや半群の概念
- がくぞさんはTwitterを使っています 「あなたの書いたそのコード、加算で説明できますよ!的なやつエンタメコンテンツとして成り立たないかな?」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz チューリング完全みたいな話?」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise そこまで行かねども多くの操作が半群やモノイド操作で表現できちゃうよーみたいな紹介ですね https://t.co/bw0PDYPNwi」 / Twitter
- がくぞさんはTwitterを使っています 「ぎょむに自分の手で書く範囲だとだいたい群とか環とか体っぽい概念で整理できちゃうから四則演算だけと言われても、それはそうってなっちゃう……なんならほぼ加算だけまである……モナディックな合成も加算やろみたいな」 / Twitter
- きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz ぎょむコードで代数的データ型は定義してもそこに代数的構造を見つけられたことがないのですが、例えばどんな代数的データ型に構造を付けられますか?」 / Twitter
- がくぞさんはTwitterを使っています 「@curelemonade2 モナディックな合成もリストの変換も文字列の結合も全部加算やろ的な雑なアレです」 / Twitter
- きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz IO { println("なるほど") }」 / Twitter
- きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz 例えば動画のエンコード状態を wait / running / success / feiler みたいに定義したとして、こういうのに当てはまる代数的構造ってあるのでしょうか?」 / Twitter
- がくぞさんはTwitterを使っています 「@curelemonade2 基本的に群とか環とかは集合と演算の組なので、エンコード状態を集合とした時にどういう操作に対して構造を求めるのかみたいな話ですかね? 状態に対しての操作というのがあまりイメージつかないので何ともですが……」 / Twitter
- きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz んー。例えばエンコードの状態はwait -> runnnig, running -> success, running -> feiler に しか操作できないとかですかね?代数的構造というよりグラフ構造?なんですかね」 / Twitter
- がくぞさんはTwitterを使っています 「@curelemonade2 すみません、ちょっときゅあれもねーどさんが求めてる事を僕が掴めてない感じっぽいです……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz 現実には「うるせー!」って殴られるやつだw」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise そうそうwなので雑学的なエンタメ方向ですね。 (実際的にはHadoop/MapReduceを上手く使えるようになるとかあったりしますが)」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「リストが自由モノイドで、リストに合同関係を定義したのが表示にあるモノイドか。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「同値類の集合が商集合というのすぐ忘れるな。なんで商なんだ。」 / Twitter
- ytakanoさんはTwitterを使っています 「リストは自由モノイドで、状態機械は有限集合に対する自由モノイドの作用。なるほどとも思うが、だから何だという感もある。」 / Twitter
- がくぞさんはTwitterを使っています 「Scala使うのに無理にFPごりごりに倒す必要は無いよね。 それはそれとしてFPとか関係なくモノイドや半群の概念とかを把握しているとJavaでもKotlinでもRubyでもPythonでもPHPでもTypeScriptでも他の言語でも楽に書ける処理が増えたりするよ」 / Twitter
- がくぞさんはTwitterを使っています 「具体的に言うとこういう応用が効くようになるよ https://t.co/qX7prYqVlO」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「知っていると「あっ、これ...!」ってなる瞬間あるよね。SemigroupやMonoidこそデザインパターンじゃなかろうか >RT」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「本当にものすごく的確にMonoidの性質を応用した例としてはこれが面白かった。結合則を満たすから並列に実行した結果をどの順番で足し算しても問題ないように計算を分割していく例 https://t.co/idYRlXihsP」 / Twitter
- Beating C with 80 lines of Haskell: wc
- がくぞさんはTwitterを使っています 「この例だと入力がフラットなだけじゃなく順序に強い制約があるので、確かにスタック積んでループ回す方が読みやすいかもですね ただ、foldMap知ってるとこちら問題 https://t.co/82uH6jn6M5 も全く同じ構造の問題として捉える事ができて同様にして解けるんですよね https://t.co/ouoDVWDsXK なので(続」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#JavaScript こういうフラットな配列から木構造を作るのってどうやったらいいんだろう? https://t.co/upGEJK5Wxi」 / Twitter
- NAKAMURA AtsushiさんはTwitterを使っています 「ひどいLINQコードを書いてしまった。 でも、できるだけイミュータブルにしようとするとこうせざるを得ない。元のデータが悪いんだよなあ。 https://t.co/xVh9QdGckc」 / Twitter
- https://twitter.com/matarillo/status/1302048512771645440 フラットなデータ集合からネストしたグルーピングするのに foldMap が便利だよというお話
- がくぞさんはTwitterを使っています 「なので問題を見て進○ゼミでやったところだ!的に簡単に解ける問題だと認識が広がるのでお勧めですよ的な事が言いたかった感じですね。 副次的効果として入力の列が長い場合に並列化して実行効率があげられたりしますし(入力列が短いと単純にループした方が効率いい場合多いでしょうが)」 / Twitter
- がくぞさんはTwitterを使っています 「最近Foldable/Traversableが(僕のTLで)話題になりましたが、これも典型的な foldMap で楽に書ける問題ですね。残念ながらTSだと標準で foldMap 無いので map().reduce() で代替してますが発想は同じです https://t.co/SdOOVIeT2m」 / Twitter
- TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
- がくぞさんはTwitterを使っています 「不要なchildrenは除去する必要がありましたね https://t.co/jOrEFmeXKT」 / Twitter
- TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
- がくぞさんはTwitterを使っています 「https://t.co/xlu8HMF5Wx」 / Twitter
- まろ@関数型言語作曲機械学習勉強してないさんはTwitterを使っています 「関数言語が得意な人は本当にこの木構造のレベル合わせるTypeScriptのコードが読みやすい(コードの綺麗汚いではなくすんなり頭に入る)のですか? 読めるけどmap, fold(reduce)よりもループと再帰で書いた方がわかりやすくないですか?」 / Twitter
- がくぞさんはTwitterを使っています 「なるほどmergeSortを二項演算としてモノイドを定義できるのか https://t.co/zTaHMyoF5e」 / Twitter
- Monoidal Sorting
- taklさんはTwitterを使っています 「業務システム開発では四則演算しか使わないということは、業務システムは体として抽象化できるのでは。」 / Twitter
- mod_poppoさんはTwitterを使っています 「モノイドとしてのmin/maxの話はこっちに書いた https://t.co/If7llOfCfG」 / Twitter
- Haskellerのためのモノイド完全ガイド | 雑記帳
- ytakanoさんはTwitterを使っています 「今日は、モノイド準同形をやった。」 / Twitter
- がくぞさんはTwitterを使っています 「これは自分も最初に仕様を知った時は戸惑ったものですねー JavaScriptに限らず大抵の言語ではこの仕様ですが。 Math.max()が-Infinityを返すのと同様に、every等もFoldableの関数の典型例で、foldMapで実装できる事を把握すると自然に思えてくるのですよね。やはり皆Monoidを知ると便利なのでお勧め」 / Twitter
- こーじ@何かを1日1褒めさんはTwitterを使っています 「JavaScript嫌いやわぁ。。。 こんなんだからTypeScriptも嫌いなんだよ。。。 https://t.co/IseczPlK8D」 / Twitter
- がくぞさんはTwitterを使っています 「minやmaxも典型的なFoldableの関数で、MonoidとfoldMapで実装できる事を把握してると、空引数のときにInfinityや-Infinityが返る事も自然に思えるよね」 / Twitter
- がくぞさんはTwitterを使っています 「https://t.co/sVRipKNtin」 / Twitter
- がくぞさんはTwitterを使っています 「沢山の要素がある集まりから - 合計を求めたり - 件数を数えたり - 最大値/最小値を求めたり - グルーピングしたり するのを全部同じ処理でできるようになるし、何ならそれらを組み合わせて合計と最大値とグルーピングを同時に求める、みたいな事も簡単になるのでモノイドはいいぞ」 / Twitter
- がくぞさんはTwitterを使っています 「ReaderもStateもContも実体は全部Function1みたいな」 / Twitter
集合論
- Shinji KonoさんはTwitterを使っています 「ブール値に値を持つ論理の代わりにトポスに値を持つ集合論とか書いてたが、トポスはSubobject classifierで論理値を決めるので、結局はその問題になるはず。CCCで良いやんと思うと∨がある場合(biproduct)は命題論理以外は矛盾してしまう。なので工夫が必要らしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CCCはGraphで力尽きてて、biproductの矛盾まではやってなかった。CCCと演繹定理はクライスリ圏を使うのだけやるべきだった。圏の圏はAgdaだとレベルの問題が出るってのを発見したのだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Toposもやるべきだな。Osius先生の集合論とか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「来年はチコノフもやってみたい。選択公理やりまくったし、チコノフは選択公理と同値なので面白いだろう。基底の存在が選択公理と同値とかもできそうではある。HODな集合論が手に入ったのでいろいろできる。と言っても、色々残ってるのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「残してるのは、濃度を定義する時のベルンシュタイン。ℵが冪集合で上がるやつ。Generic Filter。それから強制法だが… Toposの方が良さそう。聞き逃したの残念だったな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合とはなんですかという質問に対して今は割と明確に答えられる。無限のモデルとして自然数を二次元にした順序数が考えられる。この部分集合を集合だとしたい。でも、それでは集合が循環論法になってしまう。そこで順序数方程式(OD)を考える。その解のうち最大値を持つもの(HOD)を集合と定義する。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODの要素は順序数で集合(HOD)ではないが、HODはゲーデル数的に順序数に対応すると考えられる。簡単のためにこれを仮定すると、集合を要素に持つ集合を定義できる。順序数がメモリで、そのアドレスが個々の集合。つまりCの*と&のように集合と順序数の対応がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この時に集合HODは順序数としての順序を持つが、順序数と違って全順序にはならない。これは古典論理的には矛盾してるが直観主義論理ならば整合する。集合には∈からでる自明な順序があるが、それを対応する順序数の大小から導出することはできない。∈ならば順序数の順序はそれに従う必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「つまりHODは自明な順序を持つので整列定理は成り立っているが、排中律がない状況では、それを選択公理(この場合は空でなければ要素が取れる)に対応させることはできないというわけ。排中律があれば選択公理=整列定理。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「実際に反例を構築するためには選択公理を否定したモデルを構築する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値を持たない順序数方程式の解はProper class、つまり集合ではない集りになる。順序数は自分自身を含むので、それを集合Sとすると、class全体はその中で集合になる。もちろんSは、そのclassには含まれない。つまり、Sはclassの中にない集合ということになる。out of memoryだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、順序数を含むHOD(可算順序数を考えれば具体的構成できる)をモデルとする集合論がある。これはHODでは順序数が自身を含むことから自明。古典集合論だと割と面倒な条件になる。Sの要素の冪集合がSに含まれるとか正則だとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「VとLはHOD内で超限帰納法を用いて定義できるが、Lは定義可能集合を冪集合の部分集合として与える必要がある。ODは定義可能なのだが、そのうちのad-hocな定義可能集合があるとする感じ。いやODだろとするとV=Lとなる。 https://t.co/YIn5bE5luE」 / Twitter
- Members/kono/Proof/ZF-in-agda: 9b0630f03c4b VL.agda
- Shinji KonoさんはTwitterを使っています 「実際にV≠Lな集合論のモデルを作るためには整合的な Df : Definitions → (x : HOD) → HOD Df D x = Power x ∩ Definition D x を具体的に作る必要がある。元の順序数が非可算だとできないらしいんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODに最大値が必要な理由は「集合は階層的な無限を構成してほしい」というのと「集合を要素とする集合」を定義したからだな。最大値のないODが集合の要素になると階層的な無限にならない。冬のプロシンではそこまで気が付いてなかった。なので、そこに突っ込まれると面白かった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値がないとすると矛盾になるので超気まずい。数学者がいたら確実につっこまれたと思われる。まだ、間違いがある可能性もある。ODに全順序があると思ってた時期もあって、それだとODは順序数になってしまう。だいたい一週間くらいでリカバリしてるらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値があるというHODの定義は古典集合論の HOD = { x | TC x ⊆ OD } とは異なる。なので違う名前の方が良いだろうな。おそらく同じものだが。 TCは推移閉包。古典集合論だとxは集合なので意味がある。うちの場合だと自明であまり意味がない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「たぶん、bounded OD」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ClassがBoundedなら集合だってのはどっかにあったような。ZFでの集合は公理から生成されるものなのでBoundedなはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Classの定義は「単なる論理式」ってことらしい。でも、ほとんど集合と同じように使えるので共通のシンタックスを使うのでややこしくなってる。Agdaの場合はODとHODなので明解。型が違うって良いよね。V αが集合でVはOD。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「古典集合論だとなんかclass(条件)持ってきて「集合とは限らない」とかやるのでいらっとする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFの公理は導出できるので、集合論の別公理ってことね。ブール値モデルとかToposだと公理化はしないみたいなんだけど。なんでかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「全順序と半順序が準同型になるってのは古典論理ではなくて、直観主義論理だから可能。もちろん、これは圏論的な概念だな。なんかそういう名前があるんだろうか?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コーエンモデルでは順序を持つ可算モデルから、順序を持たない可算モデルを生成してるので、そんなもんらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントルは直観主義論理は知ってたのかな。40年くらい差があるのか。知っていておかしくない。この頃はまだ記号論理は確立されてないが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントルの晩年にはラッセルホワイトヘッドのあれが出てたのだが、ラッセルに会うことはできなかったのか。ラッセルは集合論を救った人なので会いたかったろうな。ただ、ラッセルの多層型理論は複雑。でも、まぁ、だいたい今のAgdaと同じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントールの生涯は英語版と日本語版では量が全然違う。クロネッカーがカントールをネチネチいじめた的に書いてあるが… クロネッカーは構成主義的な立場だったらしい。カントールはむしろ非構成的な数学の重要性を確立した人なんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODとODは、もちろん同時に知ったのだがHODがさっぱりわからなくて。Bounded ODだとわかったのは今年になってから。推移閉包とBoundedの関係はなんか書けるとは思うが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「全順序と半順序の準同型っていう言い方はおかしいよな。AからBは順序が保存するが、逆は決定できない。なので半準同型みたいな感じ。」 / Twitter
写像・集合
- mod_poppoさんはTwitterを使っています 「部分集合の記号についての話題を見たので」 / Twitter
- mod_poppoさんはTwitterを使っています 「真部分集合よりも部分集合の方がよく使うし、真部分集合よりも部分集合の方が基本的な概念だから、部分集合の記号には真部分集合とかいうのに遠慮しないでなるべく書きやすいものを使いたい」 / Twitter
- mod_poppoさんはTwitterを使っています 「「準同型写像」って「同型写像」よりも基本的な概念のはずなのに「準」みたいなパチモンみたいな名前なのはおかしいと思うんですよね。より基本的な概念にはより単純な名前や記号が割り当てられるべきだと思うんです(熱弁)(キメ顔)(ろくろ手で差をつけろ)」 / Twitter
- mod_poppoさんはTwitterを使っています 「https://t.co/yJjfRUCiv3」 / Twitter
- mod_poppoさんはTwitterを使っています 「「準同型は同型よりも基本的な概念なのに『準』をつけて呼んで紛い物扱いするのはおかしい」」 / Twitter
- mod_poppoさんはTwitterを使っています 「そういえば学部1年の時に受けたS先生の抽象数学のなんとかっていう授業では、群の準同型のことを(圏の)射と呼んでいたなあ」 / Twitter
- reroさんはTwitterを使っています 「@mod_poppo 準仮想化と完全仮想化とか、特殊相対性理論と一般相対性理論とか思い付いた。合ってるかはわからん。古典力学と量子力学とかもそうなのかな?あと、準チョコレートとか。」 / Twitter
- ゲーン・マッサマンさんはTwitterを使っています 「@mod_poppo @morinomichi_311 homomorhismに対するmorhismで型写像ってどうだ!って思ったら 同型射に対して型射という言い方が既にあるようで、悔しい。」 / Twitter
- jeeemaさんはTwitterを使っています 「2つの実数値関数の積とって積分したら内積になるの、やっぱ関数は成分が無限個あるベクトルなんやなあって感じでキモチいい」 / Twitter
- jeeemaさんはTwitterを使っています 「まあ集合論ぽく考えたらベクトルとか数列も自然数から何かへの写像だから、むしろこっちが特殊なんかもしらんが」 / Twitter
二項関係の関係性と性質
- Shuhei KadowakiさんはTwitterを使っています 「二項関係の関係性と性質について、これまでwikiを読んでぼんやり理解してただけだったけど、この記事でカジュアルな理解が深まった気がする。実際自前で定義した≤を使うような場面で、≤の性質をちゃんと理解してないと<を誤って定義しちゃったりとかする。 https://t.co/BuwhrYZ29C」 / Twitter
- 半順序?弱順序?二項関係・順序関係まとめ - ぬぬろぐ
- Shuhei KadowakiさんはTwitterを使っています 「したりするというか、つい昨日のことで: #Julia言語 のコンパイラのコード書いてて、既に定義されてるnon-strict partial order: ≤を使って、ぼやっとstrict partial order: a<b = !(b≤a) を定義したら、≤が全順序じゃないとこれやっちゃダメだよって指摘された: https://t.co/hcx1ZXbiFK」 / Twitter
- inference: form `PartialStruct` for extra type information propagation by aviatesk · Pull Request #42831 · JuliaLang/julia
- Shuhei KadowakiさんはTwitterを使っています 「wiki読み返してみたら、"When referring to partial orders, ≤ should not be taken as the complement of > (...) but > is equal to the complement of ≤ iff ≤ is a total order"ってガッツリ書いてあった :P https://t.co/MJqOOAp34t 数学便利!」 / Twitter
- Partially ordered set - Wikipedia
multi-stage programming (多段階計算)
multi-stage programming (多段階計算)
Twitter
- κeenさんはTwitterを使っています 「多段階計算ってとりあえずこれ読んどきゃいい? Multi-stage programming: axiomatization and type safety | SpringerLink https://t.co/pmNSOOAbTE」 / Twitter
- ほたてさんはTwitterを使っています 「@blackenedgold 基礎的な部分であれば https://t.co/iXdQbL0G48 と https://t.co/1bqFCZWpBn が参考になると思います。前者は時相計算、後者は様相計算を多段階計算の文脈で論じてます。」 / Twitter
- A Temporal Logic Approach to Binding-Time Analysis | Journal of the ACM
- A modal analysis of staged computation | Journal of the ACM
- がくぞさんはTwitterを使っています 「@nobkz それを多段階でできるイメージですね。 https://t.co/DXPdRzU8Zv」 / Twitter
- Runtime Multi-Stage Programming
- はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「他段階計算って、確か、事前計算にも型検査して、吐き出されたコードにも型が付いて型計算するやつだっけ??」 / Twitter
- はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「s/型計算/型検査」 / Twitter
- がくぞさんはTwitterを使っています 「静的型付言語でのメタプログラミング、結局メタプログラム上のどの実行タイミングで静的検査を行うかというのがキモになってくるので、Multi Stage Programming に」 / Twitter
- はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「静的型付けの言語で、メタプログラミングやると、毎回微妙な気分になるのなんなんだろう。」 / Twitter
- はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「いや、まぁ、メタプログラミングなんだけも、私がやりたいLispのそれとは違うというかね....」 / Twitter
- Multi-stage programming - Wikipedia
- 科学的に美しいプログラムを追及するプログラミング科学リサーチユニット – COTRE(コトリ)|COmmunity of Tsukuba REsearchers
- 28_1_217.pdf
- general7-2.pdf
- Multi-Stage Programming、そして脆弱性レジリエンス × Clean Architecture 〜 ScalaMatsuri2020 登壇者インタビュー - Visional Engineering Blog
- scalamatsuri2020/intro-msp-with-dotty.pdf at master · knih/scalamatsuri2020
- Runtime Multi-Stage Programming
- download
- A Gentle Introduction to Multi-stage Programming | SpringerLink
- Multi-stage programming with explicit annotations | Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
- (PDF) A Gentle Introduction to Multi-stage Programming.
- ppl7-2.pdf
- ppl3-4.pdf
- 多段階計算 - mrsekut-p
- lambdaCB-PPL05.pdf
- BER MetaOCamlで始めるメタプログラミング(MSP) - Qiita
- 25280020 研究成果報告書 - kaken.nii.ac.jp_25280020seika.pdf
- 亀山 幸義(カメヤマ ユキヨシ; Kameyama, Yukiyoshi) | TRIOS
ステージング 多段階計算
- ステージング 多段階計算 - Google 検索
- 多段階計算 - Google 検索
- 多段階計算 - Google Scholar
- 多段階プログラミング - Google Scholar
- その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
- 多段階計算の型システムの基礎
- julia入門で多段階計算 - ::Eldesh a b = LEFT a | RIGHT b
- Juliaコンパイラ開発レポート | Advanced Technology Lab
- 多段階法 [JSME Mechanical Engineering Dictionary]
- SATySFiに多段階計算を入れる構想 · gfngfn/SATySFi Wiki
- SATySFiコード中で整数を16進数で書きたい - Qiita
- BER MetaOCamlで始めるメタプログラミング(MSP) - Qiita
- [OCaml] MetaOCaml で IDE (Merlin) を使う方法と簡単な紹介 - Qiita
- (PDF) MetaOCamlによるGPGPUプログラミング
- lambdaCB-PPL05.pdf
- asai14.pdf
- ppl3-2.pdf
- ppl3-4.pdf
- PPL6-3.pdf
- ppl7-2.pdf
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「多段階計算も互換性壊さないし、新しい moduleも大丈夫そうなので、SATySFiも意外と互換性問題に強い? (ただどこかのバージョンで一気に破壊的変更を加えるとアナウンスされているが)」 / Twitter
組み込み関数
- だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系を作るにあたって、組み込み関数はどういう風に定義するのがいいのかな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@mod_poppo “特定の識別子(或いはそれをモジュールでくるんだもの)だけ最初から型環境に入っている” という方式が自然な気がします」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn その「型環境に入れる」のをメタ言語のコードとしていちいち書いていると面倒だなあと思っているのです」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@mod_poppo どうしても “オブジェクト言語で書けるように外部化したい” 場合は external "foo" のような構文をオブジェクト言語に加えて「この識別子はターゲット言語の "foo" にコンパイルする」というFFIを与える方法はある気がします(拙作のSesterlでも似たことをやっています: https://t.co/QIjF0Axeus )」 / Twitter
- Sesterl/list.sest at 6e61703a1090c6b65d3ecf111f682cfc8ab945e4 · gfngfn/Sesterl
- だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn やはりそうなりますか。ありがとうございます」 / Twitter
- El Pin AlさんはTwitterを使っています 「こういうの、メタ言語が多段階計算をサポートしていれば解決できそうだと思ったりもします」 / Twitter
マクロ
- Scheme 入門 15. 構文の定義
- Rustは構文解析をしてからマクロを展開する - 簡潔なQ
- talk.key - JSSST2016_slides.pdf
- Weird Languages
- Keigo ImaiさんはTwitterを使っています 「マクロでリフレクションの話。 [Chiba, OOPSLA'95], [Tatsubori, OORaSE'99]」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Java 触ってて javassist-*.jar みたいなファイル名は昔からチラチラ目にしていたけど、それがプログラミング言語研究から出ているのを知ったのはわりと最近だったかもしれない」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Multi-stage Programming in the Large with Staged Classes https://t.co/op1s9KaDtm Scala のメタプログラミングライブラリ Squid の staged class 拡張. メタプログラミングで Programming in Large. SQL の DDL からクラス群を生成し、さらにSELECT文から効率のよいクエリを生成する(ポスターより」 / Twitter
- Multi-stage Programming in the Large with Staged Classes (GPCE 2020 - - 19th International Conference on Generative Programming: Concepts & Experiences) - GPCE 2020
- Keigo ImaiさんはTwitterを使っています 「https://t.co/Z4Lr7ehvb6 まだ Github にこの拡張は来ていないということだったと思う」 / Twitter
- epfldata/squid: Squid – type-safe metaprogramming and compilation framework for Scala
- Keigo ImaiさんはTwitterを使っています 「C++メタプログラミングは沢山使われているのにマルチステージプログラミングは研究以外で使われないよね…→ Staged Classes! という流れがよかった」 / Twitter
- κeenさんはTwitterを使っています 「Scalaで多段階計算でクエリからC吐くやつの関連か?って思ったけどこれはSQLからScalaだから方向逆か」 / Twitter
- κeenさんはTwitterを使っています 「自分が言ってるのはこれね https://t.co/gnRmfs2C6S」 / Twitter
- Building efficient query engines in a high-level language | Proceedings of the VLDB Endowment
パターンマッチとガード
fold
- 帰国RTAさんはTwitterを使っています 「パターンマッチと関数型言語なんも関係なくないですか?(単純に構造化されたデータをスッとケース分けできる機能としてパターンマッチが欲しい)」 / Twitter
- 帰国RTAさんはTwitterを使っています 「ケース分けが本質かと言われると微妙で、変数に束縛もして欲しいので、「ケース分けしたうえで内部のデータをすぐに取り出すまでセットになった構文が欲しい」に集約されそう」 / Twitter
- kisaragiさんはTwitterを使っています 「@Kory__3 structual binding」 / Twitter
- 帰国RTAさんはTwitterを使っています 「@ksrg_tech ネストした構造へのパターンマッチは例えばKotlinのwhen-is分岐とstructural bindingではそのままは実現できないはずです(ネストが深くなればなるほど分岐のネストが深くなってしまう)」 / Twitter
- ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 https://t.co/g1eSFrFOch 関係ないと思うけど、より向いてるかなとは感じてる」 / Twitter
- ABAB↑↓BAさんはTwitterを使っています 「つまり関数型プログラミング言語かどうかよりも再帰が最適化されるかどうか? だけど関数内に副作用の無いほうが好ましいので、関数型プログラミング向きの機能ではあるのかな」 / Twitter
- 帰国RTAさんはTwitterを使っています 「@ababupdownba ん~、再帰と組み合わせるのはパターンマッチの応用例の一つであるだけで、そこにパターンマッチは必要無いと思うんですよね(実際データ型側にfoldさえあれば等価なコードは書けるわけですし…) 単に直和型のデータを操作するための構文だと思っています」 / Twitter
- ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 foldって再帰前提だと思ってた()」 / Twitter
- 帰国RTAさんはTwitterを使っています 「@ababupdownba そんなことは全くないです(例: scala.Option#fold)」 / Twitter
- ABAB↑↓BAさんはTwitterを使っています 「@Kory__3 なるほど確かに。 まあ再帰しないとパターンマッチ全然使えないよとは思ってないすけども 応用例というよりは基本例くらいの恩恵何じゃないかなかくらいの感覚でした」 / Twitter
- はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@Kory__3 私の中では、「代数的データ型」と「パターンマッチ」が対の概念なのかな、というイメージになってきました。」 / Twitter
ADT + 素直にパターンマッチの方が…
- Kota Mizushima (on a diet)さんはTwitterを使っています 「クラスベースOOPLであることと、多重ディスパッチがないことも実のところ関係ない。たとえば、199xに出たNice https://t.co/XuA9162vj1 はクラスベースかつ多重ディスパッチ(マルチメソッド)を持った言語。」 / Twitter
- The Nice programming language
- Kota Mizushima (on a diet)さんはTwitterを使っています 「そんなこんなで、Expression Problem解決出来る言語機構に憧れたり試してみたりしたけど、これ、ADT + 素直にパターンマッチの方がよほどメンテ楽だしいいんじゃね?←イマココ という心情です。なんか、The real expression problemみたいな感じで、新しく面白そうな例が出てくるといいんかもですが。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、NiceのASTのルートクラスはこんなんです。buildScopeとかresolveScopingとかtypeResolve()とかなんか、処理系のフェーズぽいものがASTに生えてる。 でもって、式のルートクラスである(はず)https://t.co/70TSmCRCQx 見ると、void computeType();とか生えてる。 ↓ https://t.co/0LvUvyzx48」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「規模の大きな処理系でInterpreterパターンやられるとめっちゃ読みにくくなる&(たぶん)メンテもめちゃくちゃ大変というパターン。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、Interpreterパターン使ったそれなりに大きな言語(処理系)の一つがNiceで、構文木ノードに compileとかいうメソッド生えてるので滅茶苦茶読みにくかった(興味がある人は、https://t.co/yn63oJU5wQ からソースダウンロードして、 src/gnu/expr/* 辺り読んでみるといいです)。 ↓」 / Twitter
- The Nice programming language
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あ、ちょいミスです。 src/bossa/syntax/*.nice の方です(src/gnu/expr/* の方は、中間表現の方だったぽい)。構文木にそれはもう色々な処理が書かれてて、ぐんにょりでした」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「たぶん、10年以上前に、Niceのソースコードに興味を持って読んだ覚えがあるんだけど、その時も、compile処理が各構文木ノードに散逸しているのに嫌気がさして、「拡張性があればいいというものではないんだな」と思った記憶。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、知る限り、Scalaは比較的早期から、Expression Problem「も」解決出来るような言語として開発されていたけど、e.g. https://t.co/0knLtm2MmC じゃあ、abstract typeがこういう用途に使われているかというと、多くのケースでtype alias代わりにしか使われてない。」 / Twitter
- Independently Extensible Solutions to the Expression Problem - IC_TECH_REPORT_200433.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Expression Problemは、かなり前から何度となく関連する記事、実装、論文とか見た覚えがあるんだけど、一方で、Expression Problemを解決できる言語機構って意外にも活用されてない(たとえば、Scalaにおける https://t.co/G9W2uZ68YB とか)の見るに、現実的にはあんまし要らない気がしてる。 ↓」 / Twitter
- Scalaによる Expression Problemの解決 (Visitor編) - kmizuの日記
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、言語処理系を構成する2大パターン(?)のInterpreterとVisitorの内、(経験上)後者が圧倒的なのも、処理系のフェーズを追加したいことはあっても(たとえば、ある種の最適化)、ASTの種類を外から追加出来てもしょーじき微妙ってところに由来してるんじゃないかと思ったりする。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「現実にASTを追加したいって要求って、言語仕様拡張したいってタイミングがほとんどなわけで、処理系の都合で最適化をかけたいって要求に比べれば圧倒的に少なそうとおもう。」 / Twitter
タプルとパターンマッチ
- Aruneko@OSC21doさんはTwitterを使っています 「React Hooks の返り値ってどうして配列になってるんだろう🤔」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「型さえ合ってれば名前は何でも良いよねっていう思想なんだろうかね」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「いやでもあれじゃん、TSってタプルのサポートが微妙だからアンパックするときに事故起こる可能性もあるじゃん。」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「タプルとパターンマッチが使える言語ならアレで全然いいと思うんだけど」 / Twitter
Guard
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「型で値に関する性質を表したいときにGuardって言葉を使うし、match式の腕で使うifもガードと呼ばれてるけどガードっていったい何?」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「あと関数の冒頭で処理の前提条件を判定する処理をガード節という?」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「https://t.co/1UhLIIpWL1」 / Twitter
- Guard (computer science) - Wikipedia
- ガード (プログラミング) - Wikipedia
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「TypeScriptの型ガードも動的検査だからおっちだな」 / Twitter
- でこれきさんはTwitterを使っています 「Standard MLのrefは参照の同一性いなるのか - ref 1 = ref 1; val it = false : bool - let val x = ref 0 in x = x end; val it = true : bool」 / Twitter
- でこれきさんはTwitterを使っています 「同一性に」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
- mod_poppoさんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
- ytakanoさんはTwitterを使っています 「パターンマッチ、過去に自作の多相型言語に実装してみたけれど、参考資料がまったく無くて、バックトラッキングで実装したなあ。 https://t.co/M0eJtwAh52」 / Twitter
- BLisp: Lispっぽい静的型付け言語
- パターンマッチの網羅性検査
- コンパイル技法: パターンマッチ
- mod_poppoさんはTwitterを使っています 「前半部分はn月刊ラムダノートのやつの再掲ということだけど、当該n月刊ラムダノートを積んだまま読んでいなかったという事実を突きつけられている」 / Twitter
- mod_poppoさんはTwitterを使っています 「04より > SMLでは、SundayやMondayのように、コンストラクタの先頭を大文字にします。 SMLの文法には(Haskellと異なり)そういう制約はない。あるとしたらせいぜい「慣習」あるいは「ローカルルール」」 / Twitter
- mod_poppoさんはTwitterを使っています 「04節、printPathnameの2回目の定義のDirectory (name, entries)の周囲の括弧が抜けている。」 / Twitter
- mod_poppoさんはTwitterを使っています 「05節より > いま、以下のようなSMLの式を考えます。 > case x of > Empty => 0 + 1 > Full _ => 1 + 1 Fullの前の | が抜けている」 / Twitter
- mod_poppoさんはTwitterを使っています 「08節 enumのコンパイル結果のWHITEの定義の右辺の " が閉じられていない。 recordの例のEmpty()の後のinterfaceはimplementsの間違い?」 / Twitter
- mod_poppoさんはTwitterを使っています 「後半は後で読む」 / Twitter
- mod_poppoさんはTwitterを使っています 「11節、 ・「式のデータ表現」ではboolを大文字始まりTrue | Falseとしているがそれ以後は小文字? ・「式のデータ表現」xorの例に(True, True)が2回出現して(False, False)が抜けている ・s/descriminant/discriminant/g ・「上記で登場した、」の段落、「れに対応した〜」→「こ」か「そ」が抜けてる」 / Twitter
- mod_poppoさんはTwitterを使っています 「14節、caseのコンパイル。condの計算のコンパイル後の(switch言語の)コード、other := tmpはother := condのことか?」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「pattern synonyms や view patterns でも足りなくて第一級パターンがほしくなって Template Haskell に手を出してるし、もういっそ Racket という気分すらある」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「局所的なパターンマッチだけでプログラミングされる機械としての Turing 機械」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLではdatatypeとsharingを使うことによって矛盾するsignature(いかなるstructureにも当てはまらないsignature)を作れるけど、矛盾したdatatypeに対するパターンマッチはどうなるのか確認してみた https://t.co/Y0ICZZpZ3U」 / Twitter
- mod_poppoさんはTwitterを使っています 「MLton: 警告なし、SML/NJ: redundantでエラー、HaMLet: redundantで警告、Poly/ML: redundantで警告」 / Twitter
- mod_poppoさんはTwitterを使っています 「SML#はHomebrewでのビルドエラーの確認のために消したんだった……と思ったけどその問題は自前で修正したんだった。SML#は矛盾したsignature自体に対してエラーを出すらしい」 / Twitter
- mod_poppoさんはTwitterを使っています 「パターンマッチをちゃんとコンパイルする時にこういうやつの扱いをどうするべきか考えたいんだけど矛盾したsignatureを受け取るfunctorという時点でunreachableだからコード生成しなくていいな?」 / Twitter
- mod_poppoさんはTwitterを使っています 「自作SML処理系のパターンマッチ、真面目にやるならどうするのがいいのかな。現状のターゲットであるLuaにはgotoはあるがswitchはない(他のターゲットでは逆かもしれない)。Successor MLもサポートするならor patternやguardもある。exceptionのマッチはswitchは意味なくてifの羅列でやるしかないか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「第7節:JavaScriptでパターンマッチするライブラリーがあるのか……。あと、パターンマッチは「マッチさせる式」と「パターン」「マッチした場合の処理」の3つの構成要素があると思うんだけど、それも二項演算として解釈するのか」 / Twitter
- パターンマッチ使ってるかい?/use-ruby-s-pattern-matching? - Speaker Deck
- Hideyuki TanakaさんはTwitterを使っています 「いや、nimのcaseがパターンマッチ相当なのかもしれんが、見た感じ違うし、パターンマッチの本質はデータ構造の部分的な束縛だぞ・・・。」 / Twitter
Lazy K
- Lazy K - Wikipedia
- Church encoding - Wikipedia
- Lazyk
- cormoran's note - Lazy K 〜インタープリタの導入〜 (Mac)
- cormoran's note - LazyK HelloWorldを目指す
- λ計算から始める Lazy K
高階関数
- Kota Mizushima (on a diet)さんはTwitterを使っています 「私の知る限りでは、引数/返り値の両方を含めるのが標準的かなと思います。cf. https://t.co/QZenBn3RGI し、そもそも、引数で関数を受け取るもののみをそう呼ぶのは非対象ですし。 ↓」 / Twitter
- Higher-order function - Wikipedia
- がくぞさんはTwitterを使っています 「逆に後者を含めずに引数にだけ限定して呼ぶ流派があることにびっくりしました。どこかでそういう定義がされてたりするんでしょうかね? 自分の観測範囲だと後者も含めた定義しか見たことなかったので新鮮ですねー」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「業務で高階関数の話をしていて、関数を引数に受け取る関数だけでなく関数を返す関数のことを高階関数と呼ぶ流派があることにしぬほどびっくりした。しかもWikipediaやそれ以外の複数の情報源にそう書いてあるんだ(?)」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あえて、引数に限定した「定義」をしてもいいのですが、高階関数でのメリットや、その時のみ発生する問題を論じる上であんまりメリットがない気がします。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、そもそも、カリー化というテクニックが、 (A, B) -> C ==> A -> (B -> C) に変換するといった感じで、基本的には「返り値が関数になる」という意味での高階関数を利用しているので、これを含めないとしたら、議論がややこしくなる気も。」 / Twitter
- なたがわさんはTwitterを使っています 「@_marony 少なくとも単純型付ラムダ計算の文脈では陽に定義があって (https://t.co/YjgNFvmaaE) それなりに意味のある値なんですが、(少なくともこのあたりの分野では) これが2以上であることを higher-order と呼びます。」 / Twitter
- Simply typed lambda calculus - Wikipedia
- Kota Mizushima (on a diet)さんはTwitterを使っています 「なるほど。単純型付きラムダ計算(とその拡張)でorderの定義が、 https://t.co/gfkk4bKKoW なのは以前見た気がした。ただ、K山先生の講義資料にも https://t.co/S4qyDc7soS "および、返り値が関数である関数*1を総称して" とあるし、論文で高階関数を扱うときは両者を総称する事が多い気が。」 / Twitter
- 7.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「(おそらく)狭義には、(A -> B) - >C のような形のみを高階関数と言うらしい(?)。K山先生とかはその辺り知らないわけではないにも、A -> (B -> C)みたいなのも高階関数と説明してるのは、学部生への便宜上なのか、慣用法として既にどっちも高階関数になってるのか。どうなんだろう。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、高階関数のある言語である種の検査が難しくなる、という時に、返り値に関数が出てくるケースも想定しているような気がするんだけど、勘違いしてたりするだろうか。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「CSにおける高階関数ってどの辺りが初出なのかなあと調べてたけど、とりあえず1972の論文では"higher-order function"が「普通に」出てくるな。 https://t.co/Yqy3WQufzC それ以前でも出てくるけど、数学関係の論文が多い感じが。数学における"higher-order function"を調べた方がいい?」 / Twitter
- Definitional interpreters for higher-order programming languages | Proceedings of the ACM annual conference - Volume 2
データフロー指向
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「個人的には記法の問題だと思う。テキストで制御構造を「上から下に流れる」「インデントでネスト構造」の表現力と比較可能なレベルで、データフローのグラフ構造を表現可能な記法がない。図法だとスケールしない。テキストだとグラフの接続関係を把握できない。(ああわが青春のPARTS Workbench https://t.co/d5WzhDxH2C」 / Twitter
- Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
- データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
- Miura HidekiさんはTwitterを使っています 「@tomooda たしかに。木構造以上の複雑なグラフ構造をテキストで表現するの急に難易度が上がりますよね」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 プログラムで扱う時にも木構造からDAGで一気に難易度が上がるので、単純にニンゲンの脳ミソの特性というだけでなく、やはり木とDAGでは問題そのものの難易度に本質的な差があるんじゃないかなーと思います。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 制約プログラミングになると依存関係がDAGに収まらないのでちょっと難しくなります。ただドメインに合うとむしろ可読性が上がるわけで、例えばiOSのGUIレイアウトに使われているAutolayoutはDeltablue以来の歴史を持つ制約解消系の実用例です。」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 識者じゃないし、答えでもないけど、関数型言語ってある意味データフロー指向のようにも思えますが、そういうのじゃないんですね!? (データフローコンピュータが何故あまり一般化…というと、また別の回答になると思いますが)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@nfunato たしかに。このあたりは定義がはっきりしないのですが、引数が非同期に決まってくるってのが暗黙の条件に入るのかなって思っています。そうすると、Haskellが微妙です。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 最近FRPをやっている経験からは、ドメインを上手く限定すれば、テキストでも図式でもDAGに収まっている限りはそれほど難しくはならない気がします。そうでなければMatlab/Simulinkなんてこんなに使われていません。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @nfunato 関数リアクティブプログラミング(FRP)はデータフロープログラミングの再来みたいなものですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo @nfunato FRPはあまり知らなかったのですが、調べてみたら確かにデータフロープログラミングですね。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@miura1729 Elixirは実質的にデータフロー指向の言語だと思っています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@miura1729 そしてこの性質によりSIMDアーキテクチャによる最適化が抜群に効きます。」 / Twitter
Listの結合
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「Geckoもたいがいやけど、Blinkも複雑なブロック間をまたぐselectionの削除の動作は一貫性が無くてバグりまくってる感じがある。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox すごく分かる・・・ やっぱ依存性の整理が難しい処理なんだろうなぁ・・・」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap ネストしたリスト同士の結合とか何が正解かさっぱり分かりませんわ。リストのタイプが違うとなおさら。テストケースをなんぼ書いてもカバレッジが不十分と思える強迫性障害に陥りそうです(実際、足らん訳ですが)。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox なんかその辺もしかしたら仕組みそのものが更新される必要があるかもですね。 ネスト構造の明確なルール化(明確に1次元化し、かつ戻せる)とか。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap 問題はそういう細かい互換性に最大手のGoogleは興味が無いという……」 / Twitter
- エヌユルさんはTwitterを使っています 「@d_toybox @beepcap Listの結合とかは純粋なデータ構造ですらMonad(Monoid?)の教本とかでも「複数の自然な実装がある…」とかしれっと書かれるぐらいなので自然な方法が分からなくても当然な気もしますね あっしまった釈迦にセポーしてしまいましたね」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@ncaq @beepcap いや、泣きたい話です(別にこれを専門にやってきた訳ではないので」 / Twitter
パーサコンビネータ
パーサコンビネータ
- κeenさんはTwitterを使っています 「これへーってなった Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳 https://t.co/Tmf8t4UdMc」 / Twitter
- Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold モナドでやってると最初のvが失敗したら次のmany vには行かないと思うんですが、Applicativeだけどモナドにしないパターンがある?」 / Twitter
- κeenさんはTwitterを使っています 「@anohana これはリストに対する操作のsome/manyじゃなくてパーサコンビネータのsome/manyなので失敗したらパース打ち切りで正しい動作だと思います」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold はい、なので some v = do { x <- v; xs <- many v; x:xs }なら正格でも無限ループしないと思うんですが、vの結果を待たずにmany vの評価に行っちゃうのってどういう時かなと。」 / Twitter
- κeenさんはTwitterを使っています 「@anohana むむっ、確かに言われてみればそうですね。実際PureScriptのパーサコンビネータライブラリでdo記法で実装しているものもありました。Haskellだとapplicativeの方がすっきりしてるから使ってるけどpurescriptに移植するときにあまり深く考えず字面を似せたとかですかねー。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold あっそうか。Applicativeの表記を無意識にモナドに置き換えて読んでたんですが、<$>が正格評価だと単純な置き換えになりませんね。」 / Twitter
- κeenさんはTwitterを使っています 「@anohana はい。モナド使うと順序が保証されちゃうんで効率まで考えると一般には<$>と<*>を単純にdo記法(bind)に置き換えられないはずです。」 / Twitter
- ドッグさんはTwitterを使っています 「このコンパイルエラーメッセージ用ライブラリの表示かっこいいな… 手元で試してみた | 'zesterer/ariadne' https://t.co/dMXQ7ti06A https://t.co/fCYBBq58Rc」 / Twitter
- zesterer/ariadne: A fancy diagnostics & error reporting crate
- ドッグさんはTwitterを使っています 「ちなみに chumsky というパーサコンビネータライブラリのエラー表示に使うために実装したっぽい https://t.co/fLzzX17qHI」 / Twitter
- zesterer/chumsky: A friendly parser combinator crate
- megaparsec: Monadic parser combinators
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「パーサコンビネータで式の処理ってどう書くんだろう。再帰下降パーサのノリで書くとパーサが無限に入れ子になってしまう。。。」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「そういう時のために、 rust combine には parser! {} というマクロが用意されているらしい どういう仕組みなのだろう」 / Twitter
- Winter GuysさんはTwitterを使っています 「@yasuo_ozu パーサーの生成そのものを遅延するコンビネータがあります」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@raviqqe なるほど..複雑なことをしてるんですね...」 / Twitter
エラーメッセージ
- mod_poppoさんはTwitterを使っています 「パーサーコンビネーターで良い感じのエラーメッセージを出す方法 [検索]」 / Twitter
- mod_poppoさんはTwitterを使っています 「parsecをパk……参考にするか」 / Twitter
- mod_poppoさんはTwitterを使っています 「ソースの位置情報もどうにかしないとな」 / Twitter
- アッキーだよ✨さんはTwitterを使っています 「@mod_poppo 手前味噌ですが Parsec のパ……参考にしたのあります https://t.co/hi8MyZwe3g」 / Twitter
- kirisaki/prototype-B
- mod_poppoさんはTwitterを使っています 「@A_kirisaki ありがとうございます」 / Twitter
- Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
- Java パーサコンビネータ 超入門 - Qiita
- パーサコンビネータで構文解析をより身近なものにする | mediba Creator × Engineer Blog
- Java - パーサコンビネータとは、何なのでしょうか|teratail
- パーサジェネレータ - Wikipedia
- 第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- Chapter4.pdf
- Parser Combinators in Swift
- Scalaのパーサコンビネータにふれる - Uzabase Tech
- パーサコンビネータ - mrsekut-p
- ytakanoさんはTwitterを使っています 「Rustでポーランド記法の計算機作った。すぐできた。」 / Twitter
- ytakanoさんはTwitterを使っています 「パーサコンビネーター、ADT、rustylineのおかげ。」 / Twitter
- rustyline - Google 検索
- ytakanoさんはTwitterを使っています 「ストリームもパーサコンビネーターでパースできるってすごいよ。昔C++でやろうとしてだいぶ苦労した。」 / Twitter
- パーサコンビネータ - tasuwo's notes
- 面倒くさいパーサの実装もDSLで書くだけ!そう、Scalaならね - Qiita
- 論理式パーサをscala-parser-combinatorsで楽々実装 - Qiita
- otajisan/scala-parser-combinator: パーサーコンビネータの学習
モナディック・パーサー
- 知我麻社さんはTwitterを使っています 「モナディックパーサでパーサ書いたら「手続き型の言語なんて二度使うかよ~~! な~にがポインタだクソくらえ~~!」ってなる(個人の感想です)」 / Twitter
- モナディック・パーサー - あどけない話
- 『ふつうのHaskellプログラミング』サポートページ
- 4702.pdf
- 状態モナド遊び - あどけない話
- お気楽 Haskell プログラミング入門
- 続くといいな日記 – 遅延評価でデバッグが困難になる状況
- kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「パーサを綺麗に実装することだけを考える本です 最終的には F# でモナディック・パーサコンビネータを実装します」 / Twitter
- [B! haskell] モナディック・パーサー - あどけない話
- [B! F#] F#でモナディックパーサコンビネータを書いた | a posse ad esse
- Megaparsec tutorial from IH book (翻訳)
- haskell/parser.md at master · lotz84/haskell
- pearl.pdf
- Happy ユーザーガイド(Happy User Guide) - Pac Learner
- sec-monads.html - Pac Learner
- 実例によるPureScript
モナド(Unix Shell)
- ひさてるさんさんはTwitterを使っています 「Unix のコマンドはモノイド (cat | grep | more は cat | grep を more しても cat を grep | more しても同じだし、パイプしても結果に影響しないコマンドもありえる) なのでこの対象となる標準入出力はモナドだし、シェルは自己関手の圏 ← 乱暴な解釈」 / Twitter
- wint 𝄆 9月病 𝄇さんはTwitterを使っています 「@tanakahisateru 自分もファイルの圏はいけるのか考えてみましたが、識者によるとそのままモナドに対応付けられるようです: https://t.co/NoTP6bidlK」 / Twitter
- UNIX pipes as IO monads
- ひさてるさんさんはTwitterを使っています 「@wint7 とりあえずエラー出そうとビルドしたら一発でコンパイル通ったときの気持ちです」 / Twitter
遅延評価(log)
- Kazuho OkuさんはTwitterを使っています 「Cの場合は if で囲まれたコードを出力するマクロ書きますねぇ」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「コレ、logger あるあるで、正格評価しか無い場合はどうにかして全体を if で囲んだり、無理矢理 closure に押し込んで渡したり」 / Twitter
- 山本和彦さんはTwitterを使っています 「うぉー! 遅延評価が本当に役に立つ事例をもう一つ発見したぞ! ロギングだ! 正格評価だと、ログを記録しないログ関数を指定しても、引数のロギングの文字列を生成しちゃう!」 / Twitter
- https://twitter.com/objectxplosive/status/1301363081939791874
- How do I implement assertions?
- Kazuho OkuさんはTwitterを使っています 「dtrace とかでも、probe には必ず同名の probe_enabled って関数があって、実際に probe がアクティブな場合だけ引数構築ができるようになってる」 / Twitter
bright-ml
- El Pin AlさんはTwitterを使っています 「言語作ってます。割と動く https://t.co/vcW7v9bs5S https://t.co/hQOJO5rGQn」 / Twitter
- elpinal/bright-ml: A statically-typed programming language based on "F-ing modules"
- El Pin AlさんはTwitterを使っています 「Moscow MLの再帰モジュールをふんだんに利用して実装しています」 / Twitter
- El Pin AlさんはTwitterを使っています 「ああ、あとlexer / parserは、Karl CraryのHygienic Source-Code Generation Using Functors (2018)を試しに使っています 基本的にyaccだけどfunctorが生成される https://t.co/9j5Qvu74jd」 / Twitter
- cmtool.pdf
コンビネータ
- Miura HidekiさんはTwitterを使っています 「SKIコンビネータでS演算はスタックの交換が無いと実装できないので(引数渡しをスタックで行う場合)、それは無いと思う。個人的にはスタックだけで完結していれば関数型言語、他の変数領域があれば手続き言語って所だと思う。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「というかYコンビネータみたいな奴は理論的に型がつけられないわね」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「おっと、Yコンビネータをそのままでは評価できないeagerな評価戦略な言語をdisるのはそこまでだ!」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 無名関数があるから、それを無名関数にすればいいだけじゃん (マジレス」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 Yコンビネータ(λf . (λx . f (x x)) (λx . f (x x)))はそのままだとcall by valueで評価すると無限ループになるので、Zコンビネータとかにせんといかんです。lazyな評価戦略ならYコンビネータのままでいいのですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda eagerに評価すると困る所にlambdaをかぶせればいいのでは?って思ったけど(Schemeのdelay/forceのように)それではこの場合はうまくいかないわけですね。この手の話の勉強不足が良くわかりました。ありがとうございます。」 / Twitter
infoQ
- 価格とパフォーマンスの比率が向上するAWS Graviton2 プロセッサを使用したAWS Lambda関数
- SlackにおけるAPI設計の原則とプロセス
スライド
- Walk around functional web frontend programming - Speaker Deck
- 関数型言語作成のチュートリアルをやってみる - Google スライド
- 形式検証の視点から再確認したいMaybe/Option型からnull許容データベースへのデータ変換
- 関数型とはなにか? - 第二回関数型プログラミング(仮)の会 - Google スライド
blog
- 函数論理プログラミング言語 Curry - Ryusei’s Notes (a.k.a. M59のブログ)
- 数学全然わからないけどElixirでApplicativeを作ってみる - やわらかテック
- 【JavaScriptで解説】部分適用って何?カリー化との違いは? - やわらかテック
- Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ
- 2021年現在、かなり強い開発手法〜ルール駆動開発 - 赤帽エンジニアブログ
Twitter
高階型
GATs(Rust)
- Rustでモナド
- RustでFunctor書いてみる - Qiita
- Rustでのモデル駆動設計について - Chatwork Creator's Note
- Hideyuki TanakaさんはTwitterを使っています 「RustにGATsが入るとこういうダミーのstructにたいしてimpl実装することで、Haskellの型クラスみたいに高階型を疑似的にtraitのインスタンスにすることができなくもない感じになるっぽいけど、RustのいうところのHKTを入れるのは無理なんか? https://t.co/u1MI1bnFHc」 / Twitter
- Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
- がくぞさんはTwitterを使っています 「主題とは異なるのだけど、JavaでこうやってAPIをインターフェイスで閉じてるとAPIの利用側が実際のデータ型が何なのか意識しないし、複数のデータ型(ArrayListとemptyListとか)が混在するのも普通なんですよね。なので混在しても問題が起きないようにインターフェイスとしてlawが定められている(続」 / Twitter
- いろふさんはTwitterを使っています 「順序関係ないCollectionでなくてもList使うよねぇ、って話から読み返すなど。 / ArrayListじゃなくListを使うという話 - 日々常々 https://t.co/QXn2MTIfGI」 / Twitter
- ArrayListじゃなくListを使うという話 - 日々常々
- がくぞさんはTwitterを使っています 「ところがHaskellとかだと、APIは抽象化されていても具体のデータ型に何を使うかはAPI利用側が指定する感じなのですよね。なのでデータ型が混在する事があまり無い。 この辺の特性の違いについて整理すると面白そうなのだけど上手く言語化ができないのだよなー」 / Twitter
- がくぞさんはTwitterを使っています 「JavaにはHKTが無いから戻り値同型の原則をImmutableにやろうとすると非常に難しいのだよなー」 / Twitter
- RustのHigher-Kinded type Trait | κeenのHappy Hacκing Blog
- [Rust]HKTに対して関数定義 - Qiita
- Rustでの関数型プログラミング - teruuuのブログ
- TypeScriptで高カインド型(Higher kinded types) | Tkr Blog
- TypeScriptとHigher Kinded Type(高階型) - These Walls
- Lightweight Higher-kinded Polymorphism - herp-technote
- Higher Kinded Types - herp-technote
- TypeScriptの高次タイプ関数?
- Monad in TypeScript - DEV Community
数学の話題
- SODA NoriyukiさんはTwitterを使っています 「高校の数学で習う集合の話(必要十分条件とかド・モルガンの法則とかあのあたり)はプログラミングでめっちゃ使ってるなあ。 そんなの習わなくても(数学の上での名称を知らなくても)分かってるよっていう人がいっぱいいるのは知ってる。自分も中学の時には本を読んで身につけてたし…」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「少数派の意見かもしれないけど、プログラミングしてるときはでっかいピタゴラ装置を作ってるみたいな感じで、数学が関係ある感じがあんまりしない。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「プログラミングに数学は要るか論争、「数学」で想定する範囲に差があって議論百出だけど、「問題を分割して再帰できたらステップ数は対数関数」「いくつかの可能性のあるものを繰り返したら総組み合わせは指数関数」くらいはいつかかならず出会うので高校数学の途中くらいまでは回避不可な気がする」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「実際に要るのは式の操作よりも関数の振る舞いの感覚なんだけど。身についてる人にとっては自然なことなのでそれをいちいち数学とは思わないかもしれない https://t.co/Up2DoEgBnh」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@rui314 ピタゴラ装置って、物理をある程度内面化してないと作れなさそう(厳密に計算しないでも、これを動かすにはこのくらいの重さがこの速さで当たらないと、みたいな感覚)。それと似た数的感覚というのは要る気がする。これするとO(n^2)でやばそう、とか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@anohana それはあるかもしれませんねぇ。ただ数的感覚なので数学とはちょっと違うかもですけど。数的感覚だけだと人に説明するときは大変そう。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@rui314 私も全然厳密に考えてなくて感覚的にやってるんですが、さてその感覚をどう身につけたかと考えるに、一度は辛抱してステップを追いかけたことで身についたのかなあって気がするんですよね。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqの証明もピタゴラ装置っぽいし、そもそも数学の証明自体もピタゴラ装置なのでは?」 / Twitter
- 解答略さんはTwitterを使っています 「あんまり考えたことなかった。普通に数学で ∀ a∈X ; P(a) のことを for all a in X; P(a) と発音するのと同じノリかと思っていた」 / Twitter
- やぱったーさんはTwitterを使っています 「アドカレで書こうと思いつつ最終日に書くのとも何か違うと思って取っておいた記事の放流 はてなブログに投稿しました #はてなブログ for文のforはなぜforなのか? - yapattaのブログ https://t.co/8oXIKPUkf2」 / Twitter
- for文のforはなぜforなのか? - yapattaのブログ
- ぶんちょうさんはTwitterを使っています 「OCaml+cargo+goruntime+型クラス→顧客が本当に欲しかったもの」 / Twitter
- ねっけつさんはTwitterを使っています 「@yutopp 型クラスの代わりに module とファンクタじゃ駄目ですか」 / Twitter
- チェシャ猫さんはTwitterを使っています 「対象を定義する、定式化する、特徴付ける、記述する、分類する、といった問題設定は自分がナイーブに考えていたほど普遍的なものではないらしく、理学系(※諸説あります)以外の人と話すとき、内容以前にそれが Research Question として成立し得ること自体がうまく伝わらなかったりする。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「なんていうか、例えて言うならオートマトンの理論の話をしたのにおすすめの正規表現ライブラリについて訊かれるような感じ。無関係とまでは言わないけど、研究の主眼というか、興味があるところはそこじゃない感。」 / Twitter
- kinabaさんはTwitterを使っています 「お、これは確かに本質的にはそういう話な気がする。 (今https://t.co/jSY5PvMJdj などを読みながら勉強している) 多相型のデータ構造のどこに居るかindexできるだけの情報を全部ぶち込めればそれより大きい型を見ても仕方がない」 / Twitter
- Representable Functors | Bartosz Milewski's Programming Cafe
- mod_poppoさんはTwitterを使っています 「VMのgetChar/putCharを好きなモナドで定義しておいてContTをうまく使ったら「関数を呼び出す感じで入力を与える」形に変形できんかな、と思ったけどそもそもHaskell製VMが遅すぎて実用的じゃなさそう」 / Twitter
- El Pin AlさんはTwitterを使っています 「Semantic signatureを使わないことがいいことかは微妙なところではあります(avoidance problemや、型健全性の証明の難しさなど)」 / Twitter
- 画力・博士号さんはTwitterを使っています 「A syntactic type system for recursive modules [Im, Nakata, Garrigue & Park 2011] を7割方読みました,別にsemantic signatureとか考えずに構文的対象で完結して再帰モジュール扱えるでという内容で面白い」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「ちなみに所謂関数型言語でもリストは扱いにくいのですが、これはシステム言語とは異なりimmutable性に全振りしているためですね。」 / Twitter
- 🍊🍀💉💉さんはTwitterを使っています 「GroovyだとExclusiveが..< でInclusiveが.. だな」 / Twitter
- がくぞさんはTwitterを使っています 「range operators 統一して…… https://t.co/sCC5cYGMXk」 / Twitter
- ytakanoさんはTwitterを使っています 「チャネルを使っても容易にデッドロックになる。マルチパーティセッション型が必要だ。」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellerが本当に欲しかったのはsingletonsじゃなくてDependent Haskell,みたいなのもありそう」 / Twitter
- 画力・博士号さんはTwitterを使っています 「理論を実際的な課題に適用するとき, - 理論が理想的な強い前提を仮定しており実際の課題では成り立たないので適切に緩和する - 理論の一般性の高さゆえに単に理論を適用するよりも課題の特殊性を使ってより良い結果が出るかもしれないと吟味する という非自明さがあるよなとはよく思うようになった」 / Twitter
- 画力・博士号さんはTwitterを使っています 「その意味では別に “理論的結果を精密に把握していること” は重要ではなく “いざとなれば理論が導出された過程を追って自分用に加工できる” ことが重要だろうし,多分研究者が「勉強モード入っちゃダメですよ」と言うのはこういう旨に近いように感じる」 / Twitter
- mod_poppoさんはTwitterを使っています 「何番煎じかは知らないがStandard MLでパーサーコンビネーターを書いた https://t.co/uH3X65qzDS」 / Twitter
- mod_poppoさんはTwitterを使っています 「書いてみた感想。SMLでは関数しか再帰的になれない、演算子の右側にfnを書く場合はカッコが必要、do記法がない、などでHaskellとは結構書き味が違う(違う言語なんだからそりゃそうだ)」 / Twitter
- ytakanoさんはTwitterを使っています 「自動検証、証明はしなくていいけど、左辺に-1したら検証が通らなくて、代わりに右辺に+1したら通るとかがあって難しいな。」 / Twitter
- El Pin AlさんはTwitterを使っています 「Noam Zeilberger. Fibrational views on typing, proving, and parsing. 2021. https://t.co/JC2ZTL6iCB」 / Twitter
- mfps.2021.08.31.pdf
- El Pin AlさんはTwitterを使っています 「William J. Bowman. Compilation as Multi-Language Semantics. LFCS Seminar, 2021. https://t.co/idhY0rL8g9 https://t.co/CUjnA6m8mx」 / Twitter
- Compilation as Multi-Language Semantics - wjb2021-lfcs-talk-multi-lang-comp.pdf
- がくぞさんはTwitterを使っています 「Immutableを推すのは良いんですが、現代的なImmutableを支える技術(LensとかMonadとかTraverseとかとかとかとか)についても一緒に紹介して欲しいですね」 / Twitter
- RyuseiさんはTwitterを使っています 「ifやforのブロック省略すんな問題、そもそも副作用に頼ってプログラム書くから制御構造が壊れていても気づかないという話なんで、副作用を使わないプログラミングスタイルだと型エラーでだいたいわかるじゃんっていう温度感(まあみんな副作用使うんだけど)」 / Twitter
- interfaceとtypeの違い、そして何を使うべきかについて
証明支援系
- 不健全さんはTwitterを使っています: 「証明支援系のtrustwothinessみたいなやつはLCFで少数の信頼できるルールを選んでますよてのと依存型で型チェックアルゴリズムは枯れてるからOKってのをきいたことある」 / Twitter
- 不健全さんはTwitterを使っています: 「これとかだっけ https://t.co/rwcPxbeyzQ」 / Twitter
- A Trustworthy Proof Checker | SpringerLink
- 不健全さんはTwitterを使っています: 「いやまぁ絶対は無いしTCBの話くらいしかでき無いが」 / Twitter
- 不健全さんはTwitterを使っています: 「んで色々新しい自動化がある実装とか出来るけど長く使われてて枯れたツール(e.g. Coq)の上で出来るとfoundationalでいいよねみたいな」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「余帰納法はリアクティブシステムなどの「ずっと(無限に)走り続ける」系の性質の証明に使う…のだけれど、定式化の方法には定理証明支援系Coqで使われるCoInductiveと、Tarskiの不動点定理による最大不動点の二つがあり、自分はよく分かってなかった。Coqのアレはproof theoretic approachというらしい」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「両者のアプローチの等価性が Leroy and Grall, Inf. Comp., 2009 の一部で証明されていて、腑に落ちた。 https://t.co/4roScrxYR8」 / Twitter
- Coinductive big-step operational semantics - ScienceDirect
- Keigo ImaiさんはTwitterを使っています: 「Coqで余帰納的な証明をやろうとすると「余帰納法の仮定」(コンストラクタでガードして使わないと最後に怒られるアレ)が出てくるのだけど、最大不動点による定式化との直接の関係がよく見えてなかった。最初の証明は第二著者のフランス語のD論にあるらしい。DeepLに放り込んだら翻訳は一応できた(!)…」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「その双対で、Coqで再帰を書く時にelimを使うのでなく[引数をパタンマッチで小さくして再帰しないと怒られるアレ]が導入されるのは Coquand (1992) らしい。ここに少し説明がある Barthe et al., Math. Struct. in Comp. Science (2004) https://t.co/mQG2uuRZwQ」 / Twitter
- msc412.dvi - barthe-frade-gimenez-pinto-uustalu-mscs04.pdf
- Keigo ImaiさんはTwitterを使っています: 「しかしCoqでcoinductiveな証明を作ろうとすると、このガード条件が大きな壁になる。解決策は色々提案されていそうだけど、中でも自分が意識しているPL(というかプロセス計算)分野で提唱されたup to techniqueという証明法をCoqで応用する論文を見つけた: https://t.co/RJrisJBVHT」 / Twitter
- Circular Coinduction in Coq Using Bisimulation-Up-To Techniques | SpringerLink
- Keigo ImaiさんはTwitterを使っています: 「実際、「余帰納法の仮定」を使う証明を紙の上で試していても何かまずいことをやっていそうで危なっかしい。というか早速ガード条件が少なくとも構文的に壊れていることに気づいた。R⊆F(R) なるR を見つけてR∈gfp(F) を示そうとし、さらにup to を考えるとか他の方法を探している」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「帰納法の原理を使う場合、どの仮定で回すか選択の余地があるが、選んだら大体において再帰のごとく回る (簡単な型付け規則とかなら…)。一方、余帰納法の原理は、証明したいこと=回す対象、なのでそこに選択の余地はないものの、それを一般化したRを作ってR⊆F(R)を示すところがまだ全然慣れない」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「しかし記号操作のみに着目すると今やってる(条件をチェックしたり構成したりする)ことはほぼ帰納法と同じなので似たような直観が背後にあるんだろうという気はする」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「今はvim/emacsとか、静的型つき/動的型つきなどがよくネタにされるが、2030年頃には「証明支援系でプログラムを書いて通常のプログラミング言語にエクスポートする派」と「通常のプログラミング言語で書いて証明条件を抽出して証明支援系で示す派」がプログラマの鉄板ネタになる」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「前者の例としてはCoqからOCamlへのextractionとかがあって、後者の例としてはWhy3からCoqへの証明条件抽出とか、Frama-CでCからCoqへの証明条件抽出とかそういうのがあります (Coqの例しかあまり知らないだけで他にも色々あると思います)」 / Twitter
- アラクーさんはTwitterを使っています: 「定理証明支援系を数学屋が使う場合に最初にぶち当たるのが ZFC は実はかなり使いづらい公理系だという事実ですね」 / Twitter
- アラクーさんはTwitterを使っています: 「レコードを構成するのも一苦労な公理系があるらしい」 / Twitter
- アラクーさんはTwitterを使っています: 「つまり, ZFC では「すべてが集合」なせいで変数のプリミティブ型が o (命題)と i (集合)しか存在しない 群や環などの代数系や写像などの対象もすべて i なので, 付加的な構造を定義するには集合演算の組み合わせでそれらをエミュレートするしかない」 / Twitter
- アラクーさんはTwitterを使っています: 「なので普通は ZFC の代わりに普通の関数型言語の要領で書ける HOL (高階型論理)をバックエンドにおいて進めます」 / Twitter
- アラクーさんはTwitterを使っています: 「とりあえずみなさん強力なリッチテキストサポートと型推論と自動証明によって通常の数学と遜色ない記述性を誇る定理証明支援系 Isabelle のことをもっと知ってあげてください 見てこのほとんど自然言語なレベルで読める証明文を https://t.co/3wx2Ao6CpC https://t.co/XAuFsmPwdE」 / Twitter
- NimdaさんはTwitterを使っています: 「任意の言語、Juliaみたいに数学で使う程度のUnicode使うの当たり前にならへんかな ほかに推奨しているのはIsabelleくらいしか知らん(証明支援系のコードをプログラミング言語と呼ぶのかというと微妙だけど」 / Twitter
- 七誌さんはTwitterを使っています: 「Coqで対偶の証明をまねて裏の証明を試みたけど見事に失敗した。知識として成立しないのは知っていたけど、定理証明支援系なしで確認しようという気にはならなかった。高校で逆・裏・対偶を習ったときに定理証明支援系を知っていれば、人生が変わったかもしれないなどと妄想する… #readcoq」 / Twitter
- 七誌さんはTwitterを使っています: 「詰んだ状況 https://t.co/TzVuYPXDp9」 / Twitter
- 鴎海さんはTwitterを使っています: 「証明支援系使わない限り数学ではスケッチしか書かないし、等号の4種類の用法?というのも述語記号=ではなくてスケッチのパーツの事を明らかに指しているので別に間違ってないと思う」 / Twitter
- NimdaさんはTwitterを使っています: 「Microsoft、証明支援系も作ってるのか https://t.co/PpZ31PqrJz」 / Twitter
- Lean
- ⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています: 「最近まで勘違いしてたんだけど、証明ってその構造に沿って、各々明らかになるまで進めるものであって、なんかパリティチェックみたいにそれを絶対的に保証する概念みたいなのを作るわけじゃないんだね (定理証明支援系言語とかを使わない限りはかな?)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「定理証明支援系で学ぶ圏論、3章くらいで「そろそろobjectの同一性の扱いがつらいことがわかってきたと思いますのでHoTTを導入しましょう」ってなりそう」 / Twitter
ソフトウェア検証
- ytakanoさんはTwitterを使っています: 「セキュアにソフトウェアを実装したいときの現状の解は、モデル検査なりで形式仕様&検証して、Rustあたりで実装すると、答えは出ていて、あとはやるだけなんだよ。」 / Twitter
- ytakanoさんはTwitterを使っています: 「実コードそのものを検証したり、定理証明なりで証明を与える、といのはまだ研究の余地があって実現はなかなか難しい。逆に言うと、ちょっと発展させることができると研究論文になる。」 / Twitter
- 【入門】述語論理とは。命題論理との違いも解説【日本一わかりやすい】 | Golden-Database
- 命題論理 証明図 - Bing images
- AzさんはTwitterを使っています 「call/cc が直観主義論理と古典論理の橋渡しになる理由を考えたが、停止しない計算を許す事で「計算できない」ものの証人を偽装できるからという理解になった」 / Twitter
- ytakanoさんはTwitterを使っています: 「ソフトウェア検証も、型システム、モデル検査、定理証明とここ数年で軽くやってみたけど、多少わかってきた。」 / Twitter
- ytakanoさんはTwitterを使っています: 「セキュリティ実装で重要な要素技術は、OS、型システム、暗号な気がするな。」 / Twitter
- ytakanoさんはTwitterを使っています: 「一階述語論理の充足可能性は決定不能なのか。」 / Twitter
- ytakanoさんはTwitterを使っています: 「型に順番をつけて、限量子による限量の順番が型の順番と同じなら、決定可能になるっぽいことを書いてあるが、仕組みが謎。」 / Twitter
- 木村すらいむさんはTwitterを使っています: 「「円周率が3.05よりも大きいことを証明せよ」「加法定理を証明せよ」みたいな証明系の問題が難問として一部の大学でしか出されないの、教育格差を感じる。「計算しかできない」人は弾かれる。 論理や証明が問えるのは、良い教育を受けて数学に親しんだ上位勢のみで、過半数の人は慣れてない。」 / Twitter
- 木村すらいむさんはTwitterを使っています: 「記述式の計算問題は、回答を通して計算だけでなく、計算過程の論理力があるかを間接的にチェックしているだろう。選抜としてはそれで十分。 しかし「数学とは計算」と中学高校時点で多数の人が思うのは、それで良いのかという気持ちになる。「計算はコンピュータでやればいい」と思っているから。」 / Twitter
- ytakanoさんはTwitterを使っています: 「同期処理のアルゴリズムがわけわからんのでモデル検査に頼った。低レイヤ実装する人の必須ツール。」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「証明があるときにその証明に対して「難しさ」を定義するのは普通に出来そう(例えば長さでも取ればいい)けど、証明無い状態からそれ入れるのはだいぶ無理ゲーっぽいが…(´・ω・`)」 / Twitter
- 数学女子さんはTwitterを使っています: 「@termoshtt 単純に「長さ」によるとしても「大定理によって自明」と直接証明でどう判定するかがなかなかつらいのではないか感があります。」 / Twitter
- 作業員さんはTwitterを使っています: 「@termoshtt あらゆる命題に特徴量を与える式」 / Twitter
論理と計算
論理
その他
- hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt
- (PDF) CAPEレクチャー 論理学上級I 古典論理の推件計算と計算的内実(途中版) | Shunsuke Yatabe - Academia.edu
- 論理型言語に基づく構文解析システムSAX
- Learn just enough about linear types
- がくぞさんはTwitterを使っています 「forall(∀)とexists(∃)の2つをまとめて呼びたい時ってなんて言えば良いんだろ?」 / Twitter
- がくぞさんはTwitterを使っています 「Logical connective も違う気がするし」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@gakuzzzz 量化ですか?」 / Twitter
- がくぞさんはTwitterを使っています 「メソッドの総称として呼ぶなら quantifier の方が適切なのかな?」 / Twitter
- Kazuyuki TAKASEさんはTwitterを使っています 「@gakuzzzz 量化子 (Quantifier) では無いでしょうか?」 / Twitter
- zehnpaardさんはTwitterを使っています 「@gakuzzzz Existential quantifier, universal quantifierと呼ばれているのは見たことがあるので、quantifier で良さそうです」 / Twitter
多相か否かで、二階か一階を使い分け
Hoare論理が分離論理になる過程
- Masaki HaraさんはTwitterを使っています: 「Hoare論理や分離論理はプログラムの正しさを証明したい人のための道具だけど、それって実は「コンポーネント間の規約をどう設計すれば事故なく責任境界を設定できるか」というインターフェースの話なんですよね (結局、証明というのはプリミティブの性質まで還元することに過ぎないので)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「そしてHoare論理が分離論理になる過程でわかったのは、ミュータブルリファレンスに関する責任境界の設定方法だった。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「それはまさにRustでいう所有権やライフタイムに相当する概念で、しかし既存の(普及していた)手続き型言語はそのような表現力を持たなかった。 じゃあそういった言語では所有権やライフタイムはないのかというと、あるけどコード上になくてふんわり管理されてるんですよね。そしてたまに事故る。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「そういう、手続き型プログラミングにおけるコンポーネント設計の根幹にかかわる概念を、実用的なレベルで表現できるようになったのがRustなわけで、だからマルチスレッドとかシステムプログラミングとかとは別の次元でRustはすごい言語だと自分は思っているというわけです。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「それを手続き型言語2.0と呼びたいと思っていたけど、むしろ今までが0.xでRustが手続き型言語1.0かもしれない。」 / Twitter
- H. Miyoshi (ALC Japan is rescheduled in 2025)さんはTwitterを使っています: 「Rustの所有権が分かり難い気持ちはわからないでもないけれど,並行分離論理で所有権の概念に辿り着くまでの試行錯誤を知るとよくできた抽象化に思えてくる。分かり易くしようとして下手にいじると良い性質が崩れるという意味でも。 https://t.co/dBpPZxF1oD」 / Twitter
- Concurrent separation logic | ACM SIGLOG News
二階論理 埋め込み
多相 二階 カリーハワード
Wikipedia
- カリー=ハワード同型対応 - Wikipedia
- Curry–Howard correspondence - Wikipedia
- System F - Wikipedia
- System F - Wikipedia
- 二階述語論理 - Wikipedia
- Second-order logic - Wikipedia
- 命題論理 - Wikipedia
- Propositional calculus - Wikipedia
- Second-order propositional logic - Wikipedia
- Proofs of Strong Normalisation for Second Order Classical Natural Deduction on JSTOR
- Proofs of strong normalisation for second order classical natural deduction | The Journal of Symbolic Logic | Cambridge Core
- 型 命題 - Google 検索
- 二階述語論理 system f - Google 検索
- 二階命題論理 system f - Google 検索
- ssrcoq2.pdf
- IPSJ-Z68-7B-01.pdf
- 9.pdf
- IPSJ-MGN300605.pdf
- ゲーム意味論 - Wikipedia
- 直観主義論理 - Wikipedia
- 依存型 - Wikipedia
- 型理論 - Wikipedia
- 型システム - Wikipedia
- 量化 - Wikipedia
- Coq - Wikipedia
- 9.pdf
- www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
- IPSJ-MGN300605.pdf
- yrigk02568.pdf
- d.y.d.
- https://syllabus.adm.nagoya-u.ac.jp/data/2021/25_2021_Y010602550048.html
- tapl ch 23
- 型システム入門 プログラミング言語と型の理論 - Benjamin C. Pierce - Google ブックス
- Curry-Howard同型対応 - mrsekut-p
- 多相型付きラムダ計算 - mrsekut-p
- Haskell/カリー=ハワード同型 - Wikibooks
- 66_0661078.pdf
- ユーザーブログ:Hexirp/(2021-11-05) ラムダ計算の体系の強さ | 巨大数研究 Wiki | Fandom
- カリー=ハワード同型対応 - 自然演繹とラムダ計算との間の対応 - Weblio辞書
- カリー・ハワード対応とは コンピュータの人気・最新記事を集めました - はてな
- System F
- Haskell で LINE Bot を作った
- 【研究課題】λμ計算の表示的意味論に関する研究 A study on denotational semantics of λμ-calculus ID KAKENHI-PROJECT-14540119 | 学術DB 日本の研究
- なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
- 型付きラムダ計算 - ユニオンペディア
- カリー=ハワード同型対応 - ユニオンペディア
- TypeScriptでカリー=ハワード同型対応(?)
- 6-3-1-04_(14)シラバス.pdf
- Microsoft Word - 完成.docx - 1_cms191226.pdf
- 北海道苫小牧市出身の初老PGが書くブログ
二階論理 証明
- 二階述語論理 - Wikipedia
- 第13回「不完全性定理」 - 14.pdf
- 1301-5.pdf
- 述語論理のことを理解しよう | 実用的な数学を
- Yoichi HiraiさんはTwitterを使っています 「@esumii 集合論や二階論理はどう共有するんですか? 帰納関数で証明チェッカが書けないような言葉を使うとか、矛盾している(が気持ちは伝わる)言葉を使うとかしないと、また不完全性定理の証明が移植できてしまうような。」 / Twitter
- 述語論理.pdf
- Boolean valued higher order logics - Ikegami.pdf
- 9.pdf
- 整数の不思議(その1) - predicate_logic.pdf
- 論理と計算 講義ノート - logic2018spring-draft.pdf
- D:\情報処理学会学会誌\multi\0022\0011\in\00260038.PDF - IPSJ-MGN221105.pdf
- <5461726F2D88C09594924296E790528DB897768E7C2E646F63> - 123116b.pdf
- tujfersrs0301_133.pdf
- w b _ T } [ X N [ 2015 _ P s S _ - ss2015kurahashi1.pdf
- yokou_l.dvi - 02mm032.pdf
- æ閰ç邆èꮖç邆å궦 - predicate-logic-ss11.pdf
- <96BC8FCC96A290DD92E82031> - 147422422.pdf
- 49_292.pdf
- 述語論理の証明について -述語論理の証明について ∃x∀y(p(x)<- | OKWAVE
- iiars_workshop9_special.pdf
- 離散最適化基礎論 第 10回 木幅と論理:オートマトン - handout10.pdf
- 概要4-6 数理論理
- 2009-JMSmeeting-abst.pdf
- 二階述語論理ってめちゃくちゃ便利なのに、数学屋さんが議論の範... - Yahoo!知恵袋
- 完全なものから一部を取り除いたら不完全 - Skinerrian's blog
- Kazuyuki Tanaka
- PowerPoint プレゼンテーション - 2015_aki_kikuchi-p.pdf
- 二階述語論理 - miniwiki
二階論理 決定可能性
- 決定可能性 - Wikipedia
- 二階述語論理 - Wikipedia
- 決定可能性(論理)
- 第13回「不完全性定理」 - 14.pdf
- 17_15.pdf
- 決定不能問題から始める計算可能性理論入門 - resume.pdf
- 情報論理 - tsubo4.pdf
- 「コンピュータの理解を越える論理式」? - 論理学FAQのブログ
- I211 ¿ôÍýÏÀÍý³Ø - 2020logic11.pdf
- (PDF) 述語論理の決定不能性 についてのノート.
- incomp2.dvi - incomp2.pdf
- incomp.dvi - incomp.pdf
- PowerPoint プレゼンテーション - 2015_aki_kikuchi-p.pdf
- æ閰ç邆èꮖç邆å궦 - predicate-logic-ss11.pdf
- w7.pdf
- 論理と計算のしくみ - 岩波書店
- main.pdf
- w b _ T } [ X N [ 2015 _ P s S _ - ss2015kurahashi1.pdf
- LaTeX with hyperref - E9-4.pdf
- IPSJ-MGN201112.pdf
- 形式論理探求 第1巻 古典論理のタブロー - tableau01classical_logic.pdf
- www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
- 「二階述語論理」の用例・例文集 - 用例.jp
- 知識工学 - ke.pdf
- 2017年度 | 情報論理 - TOKYO TECH OCW
- tuecb6_1.pdf
- computation-fall2-arithmetic.pdf
書籍
- 論理学をつくる « 名古屋大学出版会
- 復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
- 論理学への数学的手引き | Herbert B. Enderton, 笹井一個, 嘉田 勝 |本 | 通販 | Amazon
- 嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
- <書籍紹介> 数学基礎論序説(田中一之 著)【数学】
- 論理と計算のしくみ - 岩波書店
- 53_3.pdf
PDF
- 15_107.pdf
- Boolean valued higher order logics - Ikegami.pdf
- 2009-JMSmeeting-abst.pdf
- tujfersrs0301_133.pdf
- cs2012ch1.dvi - cs2012ch1.pdf
- birth.dvi - birth.pdf
- 論理と計算 講義ノート - logic2018spring-draft.pdf
- PSSJ-JSRNPS1(2018)_Hiromi_Tanaka.pdf
- ‘W“⁄Ÿ_‡ÆŸA‚±‚Ì›¼’à - ikegami3.pdf
- IPSJ-MGN270811.pdf
- /Users/Sakae/TeX/lectures/fuchino/ss15/logic-tokuron-ss15/forcing-LN-2015.dvi - forcing-LN-2015.pdf
- 107katoh.pdf
- wakatenokai_FY2020_program.pdf
- 227464769.pdf
- 数学の哲学におけるシャピロの構造主義 - 40_LP45-63.pdf
- hs33-01.pdf
- 二階述語論理 - Wikipedia
- 情報科学における論理 - mrsekut-p
- www.cs.gunma-u.ac.jp/~fujita/Thomas/research/index.html
- SLACS98 program
- <書籍紹介> 数の体系と超準モデル(田中一之 著)【数学】
- 命題論理の自然演繹 [数学についてのwebノート]
- 巨大数論に現れるよくある間違い | 巨大数研究 Wiki | Fandom
- 数理論理学 - Wikiwand
- 論説
- d.y.d.
- 様相述語論理のKripke bundle semanticsに関する不完全性(非古典論理とそのKripke意味論に関する諸問題)
解集合プログラミング
- 46-L.pdf
- 論理プログラミングから解集合プログラミングへ
- モデル生成型定理証明と要素技術
- 解集合プログラミング(<特集>論理に基づく推論研究の動向)
- 解集合プログラミングによる様相命題論理Kの充足可能性判定
- 解集合プログラミングによる決定木アンサンブルからのルール抽出
- 解集合プログラミングに基づく系統的探索と確率的局所探索の統合的手法に関する一考察
- 解集合プログラミングを用いた多目的車両装備仕様問題の解法
- 解集合プログラミングによるソフトウェアテストケースの生成
- 組合せテストケース生成問題に対する制約解集合プログラミングの適用
- モデル列挙とモデル計数(<特集>最近のSAT技術の発展)
- SATソルバーの基礎(<特集>最近のSAT技術の発展)
- OS-3 SAT技術の理論,実装,応用(オーガナイズドセッション,<特集>2015年度人工知能学会全国大会(第29回))
- 古典的プランニングにおけるAxiom自動抽出について
- ストリーム推論(<特集>Linked Dataとセマンティック技術)
- アブダクションとインダクション(<特集>論理に基づく推論研究の動向)
- アクション言語(<特集>論理に基づく推論研究の動向)
- レクチャーシリーズ:「人工知能の今」〔第4 回〕推論とAI プログラミング
- 論理コンピューティング(<レクチャーシリーズ>知能コンピューティングとその周辺〔第10回〕)
- 数理議論学の発展 : 動向と今後の展望(<特集>論理に基づく推論研究の動向)
- 論理計算の線形代数化について
- 制約充足問題のASP符号化に関する一考察
- 対立を用いた法的知識の整合性検証
分離論理
- 分離論理入門のようなもの - Sokratesさんの備忘録ないし雑記帳
- SL.pdf
- 25_3_135.pdf
- Coqで分離論理(separation logic) - keigoiの日記
- Microsoft PowerPoint - Construction of Secure Internal Networkswith Communication Classifying System_ver2 (1).pptx - ppl2020poster-cone.pdf
- GPGPUのための並行分離論理のCoqによる健全性証明 – 増原英彦研究室
- KAKEN — 研究課題をさがす | 分離理論による現実的なプログラムの形式的証明 (KAKENHI-PROJECT-21700048)
- KAKEN — 研究課題をさがす | 分離論理を用いたソフトウェア検証の基礎理論 (KAKENHI-PROJECT-15K00027)
命題論理・述語論理・コンパイル
述語論理・CNF・SAT
- 一階述語論理をCNFに変換する - ja.pays-tarusate.org
- 暇人の暇人による暇人のためのブログ | 一階述語論理式の冠頭標準形
- 述語論理をやろうず - Qiita
- 充足可能性問題SAT (Satisfiability Problem) - ppt download
- 帰納論理プログラミングのSATによる表現 - yamamoto-kondo.pdf
- B-C31.dvi - 27_271.pdf
- KJ00005931312.pdf
- untitled - predclausal07.pdf
- text.pdf
- A-002.pdf
- chap1.dvi - AI-SAT-1.pdf
- SAT.pdf
- 数理言語 - ke-8-slide.pdf
- ke-8.pdf
- Introduction to Mathematical Logic
- nyumon_logic.pdf
- 06gun_03hen_01.pdf
- 連言標準形 - Wikipedia
- ホーン節 - Wikipedia
- 述語論理.pdf
- 命題論理.pdf
- 7_130.pdf
- 16_202.pdf
- IPSJ-ICS91076006.pdf
- KJ00001303130.pdf
- 0902-10.pdf
- lecture7-dist.pdf
- riron.pdf
- 2000_2a1etc.pdf
- logic.pdf
- D2-2.pdf
- 人工知能のこれまで(2)――論理を越えて - Beyond_Logic.pdf
- PowerPoint Presentation - OGAWA.pdf
- 人工知能概論 13
- shiryo4.pdf
- 情報に関する技術の理解を目的とした数理論理学の導入 - gijutsukyoiku21924.pdf
直観主義命題論理の命題を投げると解いてくれるbot
- ipc_botの紹介 - 簡潔なQ
- Theorem Prover Advent Calendar 2013 - Qiita
- IPC botさん (@ipc_bot) / Twitter
- buho305.pdf
- 東京大学コンピュータ系サークル TSG
- qnighy/ipc_solver: O(N log N)-space IPC solver in OCaml
- Proving Decidability of Intuitionistic Propositional Calculus on Coq
- qnighy/IPC-Coq: Intuitionistic Propositional Calculus
- qnighy/proofline0: study for making programming language, with linear logic
ハイティング代数
- 続くといいな日記 – ハイティング代数の性質
- ハイティング代数 - Wikipedia
- Heyting_algebra.pdf
- ハイティング代数
- msj07.dvi - msj07.pdf
- summer2013.dvi - summer2013.pdf
- 直観主義論理とHeyting代数 - ちょーさんメモ出張版 気まぐれブログ
- ハイティング代数
- blog/heyting-algebra-properties.rst at master · mizunashi-mana/blog
KL1
ICOT
Twitter
- Miura HidekiさんはTwitterを使っています 「PrologといってもCommit Choice型の言語のでバックトラックの仕組みとか実装しなくてもよいのでそれほど変態的じゃない気もする。むしろ、低レイア部分はOccamに近い実装じゃないかな?」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「これ、OSもUIもPrologで書いてある謎マシンなんだぜ。。 https://t.co/gkhLmG2EX5」 / Twitter
- MELCOM PSI-コンピュータ博物館
- 夢の図書館+マイコン博物館+模ラ博物館(公式) Microcomputer Museum JapanさんはTwitterを使っています 「通商産業省所管の新世代コンピュータ技術開発機構が、1982年から進めた国家プロジェクトである「第五世代コンピュータ」の実物を寄贈いただきました 人工知能コンピュータの開発が目的でした 560億円の開発費が投入されましたが、実在しているのは、多分「マイコン博物館」に在るこれ1台です https://t.co/oce9zVeeHS」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「もう謎すぎるよな。 "PSIのハードウェアは,Prologと同じ構造を持った機械語であるKLO(Fifth Generation Kernel Language Version-O)をマイクロプログラムにより直接実行する"」 / Twitter
- Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 実際に使われていたのはKL1では?」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「@sadakato KL1と書いても誰も分からないし。。w このマシンの世代ではPSIっていう逐次型Prologみたいです。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「@sadakato 間違えたESPだ。」 / Twitter
- Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 隣の部署がPIM作ってたんで、なんか気になっちゃう」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「@sadakato 我々世代は反応しちゃいますよねw」 / Twitter
- Sadayuki KATOさんはTwitterを使っています 「@kazunori_279 しかし、ハードはともかく言語すら残っていないんですね」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「@sadakato まさにロストテクノロジー。。」 / Twitter
- Akinori ItoさんはTwitterを使っています 「第5世代のPrologマシンを今作ったらどの程度のものになるのかなあと考えることはある」 / Twitter
- Miura HidekiさんはTwitterを使っています 「今はタグマシンよりは静的型付けにするか、がんばって型をつける方がよさそうだな。または、タグ付けるにしてもページングでセグフォを起こすとかやったほうが速そう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「オーバーフロー起こすとトラップが発生する四則演算命令とかあると捗りそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/NoUasO9riI TransputerのWikipedia、内部の機械語の命令セットまで載っていてすごい (命令32個しかないのだけど)」 / Twitter
- Transputer - Wikipedia
- ポストGHCにむけて ― 21世紀の計算モデルと実装
- 第五世代コンピュータプロジェクトの記録
- Index of /~ueda/bit-special-issue-5G
- Fuchi Memorial Colloquium
- Fuchi Memorial Colloquium
- Microsoft PowerPoint - hayashiNov25.ppt
- Abduction and Induction: Logical Framework
- (私的)海外研究事情
- Microsoft PowerPoint - furukawa.ppt
- モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
- PowerPoint Presentation
- PowerPoint Presentation
- Microsoft PowerPoint - Fuchi-colloquium3.ppt
- Microsoft PowerPoint - matsu071020.ppt
- Microsoft PowerPoint - 渕記念コロキウム-横尾.ppt
Kima
- d-resist2.pdf
- main.dvi
- https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/Readme-kima220-j
- Research
- ローテクと向き合う
- 早稲田大学 研究者データベース
- Kazunori Ueda, Prof.
- GHC-intro.pdf
- Contrtact Research by AITEC in 1996 FY
- Contrtact Research by AITEC in 1998 FY
- https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/use-of-software-J
- KLIC's page
- Inside KLIC Version 1.0
- KLIC 講習会テキスト KLIC システム編
- KLIC 講習会テキスト KL1 言語編
- dklic: KL1 による分散 KL1 言語処理系の実装 - PowerPoint PPT Presentation
- CiNii 論文 - 並列論理型言語KL1の最適化手法
- 修士論文
- Shinji KonoさんはTwitterを使っています 「PSIも触ったことがある。ESPというObject指向なPrologが動く。かっこいい。一応販売されたのかな。ESPもSparc版があり、かなり速かった。KL/1は、もっと流行っても良かったんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「KL/1 は人間のプログラミング能力を越えてる感じがはっきりあった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もっもと、PIMOSは触ったことはない。あれはどうだったんだろう? 実在したのだろうか? PSIクラスタは動いていたんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「近山先生にPIMOSの話を聞きに行くべきかも」 / Twitter
Prolog
Prolog
- The GNU Prolog compiler
- How do I make an executable?
- Creating a Windows console application from SWI-Prolog
- SWI-Prolog -- Manual
- GNU-Prolog Manual
- O-Prolog
- WAM: Warren's Abstract Machine (Japanese)
組み込み述語
- Prolog の組み込み述語一覧が欲しい - 電脳スピーチ blog
- AZ-Prolog ユーザーズマニュアル
- AZ-Prolog ユーザーズマニュアル
- ncaq/prohell: Prolog like programming language
- M.Hiroi's Home Page / Prolog Programming
- Prolog Programming / 制約論理プログラミング超入門
- Prolog Programming: List Processing (in Japanese)
- 144565694.pdf
- prolog_main.pdf - prolog_main.pdf
- 28_4_108.pdf
- Prolog Cafeで組込述語を作る方法 〜Prolog言語で実装する場合〜 - Qiita
- IPSJ-PRO88048004.pdf
- r5.pdf
- Skyley Networks / マイコンでProlog
- 3年生勉強会 - Prolog (2)
- SIG-SWO-A402-01.dvi - SIG-SWO-A402-01.pdf
- 05_3_Prolog.txt - Prolog.pdf
- C:/‘C”mŸ_ٶ/‘C”m™ƒ−Ô/‘C”m™ƒ−Ô(‚å›ïŠp).dvi - B_25.PDF
- SWI-Prolog 7.1.3の組み込み述語 'term_string / 3'のモジュール名は何ですか? - モジュール、プロローグ、述部、swi-prolog、組み込み
DCG
- Definite clause grammar - Wikipedia
- Prolog DCG Primer
- SWI-Prolog -- Manual
- Tutorial -- Using Definite Clause Grammars in SWI-Prolog
- Learn Prolog Now!
- DCG入門 - Qiita
- Prologの動作原理と自然言語処理 | 東京工業大学デジタル創作同好会traP
- https://home.hiroshima-u.ac.jp/katsuiwa/nlp.html
- 549.pdf
- Prolog Programming: Language Processing (in Japanese)
- 構文解析
- Prolog の Definite Clause Grammar を試す:Rainy Day Codings:So-net blog
- プロローグ-解析 - parsing - Dev4App's Blog
- prolog - DCGパーサのPrologを書くために他の抽象構文であいまい性を取り除く - 答えた
- Prolog のプログラムのことで疑問があります。 - 問:次のことを行うPro... - Yahoo!知恵袋
PDF
- Microsoft PowerPoint - searchtree-2007.ppt
- _pdf
- oksn_065_065.pdf
- 情報数学III 2001年度後期 担当:守屋
- prolog.pdf
Qiita
- PrologによるPrologインタプリタ - Qiita
- Prologで型クラス実装 - Qiita
- Prologで様々な多相型推論 - Qiita
- Miura HidekiさんはTwitterを使っています: 「ISO-PrologからGHC,独自拡張Prologへ https://t.co/zCxfsDC0tJ GHCをハスケルコンパイラではなく、ガードされたホーン節の意味で使う記事をネットでは初めてみた。面白い、ただただ面白い。いろいろ言いたいことがありそう」 / Twitter
- ISO-PrologからGHC,独自拡張Prologへ - Qiita
- Miura HidekiさんはTwitterを使っています: 「α変換のところで、変数として変数名と番号のタプルを使っているとのことだけど、単なる名前なしオブジェクトでよいと思う。名前が必要ならインスタンス変数に名前を入れておけばよいし。つまり、ユニーク性だけが必要なものにちょっとオーバーヘッドが大きすぎじゃないかと思う」 / Twitter
- Pure Prolog in Elixir - Qiita
- Elxghc -Elixir によるGHC実装の試み- - Qiita
- Elxghc -中断の実装- - Qiita
- Elxghc -並列動作とその測定- - Qiita
- Elxlog シンプルでわかりやすい論理&関数型をめざして - Qiita
- Elxlog 実行効率の測定 - Qiita
- エジンバラ文法内でのAND並列の試み - Qiita
- O-Prologの仕様、覚書 - Qiita
- O-Prologのコンパイラ - Qiita
- sasagawa888/Prolog
- sasagawa888/Elxghc
- sasagawa888/Elxlog
- sasagawa888/opl
- Prolog で実装するモデル検査器の心臓部 - Qiita
- Prolog実践入門 - AIに特化した老舗言語 - Qiita
- Prolog 入門 - Qiita
Twitter
その他
- 尾崎隆大さんはTwitterを使っています 「@hatsugai % Prolog 'Prologに関しては、実は非常に単純なことをやっているんだと分からせてくれる解説本がない。どの本も何かに繋げたくての解説になっている。繋いで楽しませてやろうと思っている内容が少々高度なので、理解の進み具合との間にギャップが生じて難しくなる。'.」 / Twitter
- prolog_sukiさんはTwitterを使っています 「質問掲示板とかのPrologの質問、かなりの割合で大学の授業で「やらされている課題を解くための」質問で、本当にPrologに興味持った人が質問しているわけではないので、萎える。一時期積極的に回答してたけどもうやってない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '注意するまでもないと思うが、私はリストという言葉が大嫌いだから、これを「ならび」と表現している。時にリストと表現している述語もあるが。'.」 / Twitter
- 竹渕瑛一さんはTwitterを使っています 「Prologは再帰定義やカットがなければ,マルバツゲームみたいな言語だからわかりやすい」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性の述語 '1文字の出現頻度'(_文字列,_文字,_出現頻度) :- bagof(_,'1文字取り出す'(_文字列,_文字),L), length(L,_出現頻度). '1文字取り出す'(_文字列,_文字) :- sub_atom(_文字列,_,1,_,_文字).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これは私の7-8年前のツイートですが、誰でもが当たり前にこう思う時代は何時来るのか。'( 'https://t.co/8RyeB7WyqG').」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「Prologで何ができるかという話ですが、手つかずの領域が多すぎて。コンピュータで処理する。プログラム言語で記述する。それに相応しい領域の常識というのが狭すぎて。それから外れたら、そこは全部Prologの領域です。要するにコンピュータで動くかどうかなんて最初から問題にしていない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologは型どころか、構造体をつくらないな。述語以外には。'.」 / Twitter
- prolog_sukiさんはTwitterを使っています 「論理学の本読んでるんだけどカット除去理論のカットとPrologのカットって全然別物なのね・・・」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '数式の話が出ましたが、Prologというのは is/2 の第二引数に数式を閉じ込めている。と書くて正確ではない。比較演算子の両辺には数式を書くことができます。ただ言語として遠ざけていることは感じます。私はその先鋒かな。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ほとんどのプログラム言語でPrologを組み込もうとすると、AZ-Prologのような専用の処理系に速度的に勝てない。組込述語の充実など使い勝手でも勝てない。さらにPrologのコードは数理論理学の専門家でない限り、突然に書くことは難しい。それで作っても使われなくなってしまう。'.」 / Twitter
- zimmy_yさんはTwitterを使っています 「Prologでニューラルネットとか計算量が多いプログラムを作る場合、Visual Prologが有力候補です。 Visual Prologは型定義ありで、C言語並みの処理速度です。 私の持っている円周率プログラムでの 1万桁計算時間(AMD 3400G) SWI Prolog 201.813s LPA Prolog 104.823s Visual Prolog 16.875s」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@daigakusenyoo % Prolog 起動プログラムは swipl です。 -q オプションでopening messageが抑制されます。 $ swipl -q ?- append([3,4],[a,b,d],L). L = [3, 4, a, b, d]. ?- halt. $」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog Ubuntuで動かしています $ cat >https://t.co/dDe59M8LRc hello :- write('Hello World!\n'), halt. :- hello. ctrl-d $ swipl -q -f https://t.co/dDe59M8LRc | wc 1 2 13 $」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの起動ですが、 Windowsの場合は、実行ファイルとして \Program files\swipl\bin\swipl.exe と \Program files\swipl\bin\swiwin.exe の二つがありますが、swiplをPower Shellで呼び出せばよいでしょう。'.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Prologもパターンマッチは賢いif文だし、バックトラックはちょっと気のきいたgotoだよね (暴言」 / Twitter
操作的意味論
インタプリタ
- h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologを使うメリットは単一化や非決定性、集合、一階述語論理などを理解するのに有益だからである。 Prologを理解していれば、CoPLやTAPLの図は理解しやすいし、型推論も理解しやすい。 証明まで行おうとするとPrologは力不足なのでCoqを使う。 その前に、OCamlを使って置くと良いのかな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「i(I,I):-integer(I). i(E1+E2,I):-i(E1,I1),i(E2,I2),I is I1+I2. :- i(1+2+3+4,R),writeln(R). :- halt. Prolog による整数の足し算ができるだけのインタイプリタはこのようにかけて短い。この簡潔性と、構文=抽象構文とできる能力は述語論理の特徴であるので使い慣れると便利だ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「型推論は t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). :- t(1+2+3,int). :- halt. と書ける。簡潔に書けて意味も宣言的で明確である。Prologがわかればね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「今書いたPrologのインタプリタは 評価規則 ーーーーーーーーーーー (E-Int) i => i e1=> i1 e2=>i2 i1 + i2 is i ーーーーーーーーーーー(E-Plus) e1+e2 => i 型付け規則 ーーーーーーーーーー(T-Int) i : int e1 : int e2 : int ーーーーーーーーーー(T-Plus) e1+e2 : int と書ける。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologにハマった高校生というのは見たことがないのだけど、Prologを使いこなす高校生がいたら天才だと思うよ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「表記は若干違うけれども、型理論で用いられる形式的言語を自動処理できるのがPrologだ。難しいことはないのでちょっと遊びに挑戦して、スタックマシンのコンパイラを書いたりしてみると世界の見方が一気にトップレベルの研究者のレベルに引き上がると思う。」 / Twitter
histric
- 状態(の変化)*さんはTwitterを使っています 「REST APIの作りとか見てると型付き操作的意味論というのが表示的意味論に寄せてく理由はわかる」 / Twitter
- 3^5さんはTwitterを使っています 「夏休みに全3回くらいの意味論勉強会をやっても良いかもしれない 操作的意味論と表示的意味論の両方から単純なインタプリタを実装する感じで」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
- Tomoaki KobayashiさんはTwitterを使っています 「Standrd MLの操作的意味論感も好きだったが、Haskellの表示的意味論感もだいぶ好きになってきた 特にモナドですよねえ(まあより深淵な分、かなり重い概念にはなってしまっているよなあ)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論の図とかただのPrologだと思ってみると簡単なのだけど、すごそうに見せるものになってて残念だな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「言語作成の、お手軽ツールがOCamlやPrologなのだよな。 お手軽ツールは論文でも多用されており操作的意味論や型理論では述語論理が図に使われている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論と型システムの本格ならやっぱり新しいPrologの型システム作ってからにしたいと思うけど難しいのだよなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「C言語のコンパイラが作れたら、次に勉強したほうがいいのは操作的意味論だ。操作的意味論に使われる言語は一階述語論理であり、論理型言語のPrologを使えば実装は簡潔にできる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Formalizing the LLVM Intermediate Representationfor Verified Program Transformations https://t.co/M7XWzftAOT POPL12 で Vellvm という話で操作的意味論などの形式化がされてたんだな。」 / Twitter
- Architecture and Compilers Group | Main / HomePage
- h_sakuraiさんはTwitterを使っています 「XMLはDSLを作るには冗長すぎる。S式は単純すぎる。C言語のような表現力が欲しい。関数型言語の代数的データ型は悪くないけど表現力不足だ。Prologみたいなものがいいよなぁと自作するも、操作的意味論の意味も論理型言語で自然に書けるしPrologで良いと気がついて自作は辞めてる今日この頃。」 / Twitter
- muratakさんはTwitterを使っています 「どうでも良いけど Prolog の SLD 反駁は誰がどう見ても操作的意味論だと思うし、出来上がる反駁木は証明っぽい。一方よくある成功集合を不動点で求めるタイプの表示的意味論(宣言的意味論?)は、結局コンパイル先が論理式の集合なので、あんまりモデルっぽくない。(個人の感想」 / Twitter
- Jun InoueさんはTwitterを使っています 「@emptst どっちかというと公理的意味論が証明論に対応してて、操作的意味論は対応するものが無いと思います。論理系では普通考えない「計算手順」を指定するものなので。ただ、さうした手順(遷移関係)を証明したい論理式と捉えると操作的意味論も証明論に対応します。」 / Twitter
- H. M. (ALGI2020@Kyoto, ALC2021@Kyoto)さんはTwitterを使っています 「公理的意味論は表示的意味論や操作的意味論と比べてそれほど定義が明確ではありませんが,基本的にはFloyd-Hoare論理の発展形で,Hoare三つ組などのassertionに対する推論システムだと思います。 https://t.co/rHof4YRj4K https://t.co/IRwOep4A4J」 / Twitter
- Axiomatic semantics - Wikipedia
- Chapter11.pdf
- h_sakuraiさんはTwitterを使っています 「プログラミング言語を設計してよく説明するにはBNFを書いて説明できるのが良いし、言語の仕様を説明するには操作的意味論を説明できるとよい。一階述語論理の規則で説明出来て理解できればそれ以上に難しいことはない。Prologで実装出来てれば自然に一階述語論理は身につく。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Haskell は操作的意味論が明確だし、型の単一化は実装に隠れてるし、型を理解するのはどうせ必要だしで、初心者的には楽なんじゃないかと。」 / Twitter
- らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「表示的意味論はプログラムを数学の関数とか写像みたいなのに写すやつ 操作的意味論はプログラムを状態と状態遷移で規定するやつ 公理的意味論はプログラム全体が証明木みたいになるやつ というクッッッッソ雑な説明」 / Twitter
- Shinji KonoさんはTwitterを使っています 「面白いのは数学の基本は操作的意味論を持つ直観主義論理であって、問題を記号的に読み、それを機械的に処理することが数学そのものだってこと。それを算数の文章題に当てはめて文句を言ってる人たちは数学をなんだと考えてるのかってこと。」 / Twitter
- でこれきさんはTwitterを使っています 「@taqenoqo 公理はその体系の中で、証明木の根になれるやつ的なの。意味論はある体系を別の他の何かに言い換えて意味を説明するの(表示的意味論)とか簡約規則みたいなので意味を説明するの(操作的意味論)とか」 / Twitter
- けこさんはTwitterを使っています 「@dico_leque じゃあ推論規則は操作的意味論?」 / Twitter
- でこれきさんはTwitterを使っています 「@taqenoqo そう思ってる」 / Twitter
- けこさんはTwitterを使っています 「@dico_leque なんかモヤモヤしてネットで色々調べてたけど結局前授業でもらった亀山先生の講義資料がめちゃわかりやすかった〜 https://t.co/FckCVHwyTf」 / Twitter
- 画力・博士号さんはTwitterを使っています 「アクターモデルに基づく並行計算の言語を設計するとして,Erlangのreceive式による選択的受信は別に核言語の機能に入れなくていい気がしてきた,型つけはともかく操作的意味論上は “全部一旦受信して,期待するメッセージではなかったら自分自身に送信し直す” でエミュレートできる気がする」 / Twitter
- 画力・博士号さんはTwitterを使っています 「いやしかし型つけがややこしくなるだけか(メッセージの分解をパターンマッチングに帰着させると必然的に強い依存型が必要になりそう)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「技術者として生きる自信急速に潰えてきた,わいは操作的意味論と型システムの各導出規則について思案してこねくり回していればそれで満足なんかもしれん…….」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prolog使って、ラムダ計算の操作的意味論から述語作るとか、構文木の構文検査を作るとか、型推論規則から型検査述語作るとかならすぐできるよね。BNFからコンパイラコンパイラで構文解析は1時間でできるか出来ないかかなぁ。 https://t.co/1uVfB8fTtI」 / Twitter
- h_sakuraiさんはTwitterを使っています 「e ::= i | e+e な言語で ーーーー (E-Int) i => i e1=>i1 e2=>i2 i1+i2 is i ーーーーーーーーー(E-Add) e1+e2=>i から e(I):-integer(I). e(E1+E2):-e(E1),e(E2). e(I,I):-integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. :- e(1+2+3). :- e(1+2+3,6). みたいなかんじだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「答えをパッといって嫌われる老害扱いだろうな 他に、型付け検査、部分型付け、レコード、ヴァリアント型、うんぬんとPrologで様々な型システムを実装すると面白いよ。 複雑すぎると1時間で実装できなくなるけどw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Hackerson 的なことで2週間くらいあれば、型クラスとか、多相レコード、多相バリアントができたりするようになれたりするはず。 線形型、アフィン型なんかも結構短く実装できる。Prologならね。 なぜならば、抽象度が関数型言語より高い、論理型言語だから。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「S式やXMLはプログラミング言語を記述するには不向きなデータ記述言語だ。Prologのエジンバラ記法はなかなかプログラミング言語を記述するためのデータ記述言語として優れているので、プログラミング言語の実装実験に向いている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「集合論的型システムは型演算結果の正規化が難しい。 a | b は b | a | a と同じ型だ。 a | b - b は a | b & !b 型であり a 型というような演算を高速に行う必要がある。それに加えてグラジュアルな型システムを導入しないと現状のPrologのプログラムと共存しずらい。型演算をどう高速に正規化するか。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「アルゴリズミックな規則を実装してみるだけならPrologをおすすめします。例: %評価規則 e(I,I):- integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. %型付け規則 t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). r(E,T,V):-t(E,T),e(E,V). :-r(1+2+3,int,6). :-halt. https://t.co/QYmgQ7RsDd」 / Twitter
- h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Rustは低レベルなのでHaskellのほうが抽象度が高くかけて良いけど、Prologのほうがさらに抽象度が高く短く書けることがある。型システムを実装する場合などはPrologを使ったほうが短く書ける。なぜならば、単一化変数やバックトラックがあり、推論規則をそのまま書けるからだ。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「表示的意味論なら式は値を表すし、操作的意味論なら計算の仕方(の一部)も表すけど、「式で場面を表す」というのは論理的に不可能なのでナンセンス。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「自動的に推論規則を動作させることができるということは、型理論で用いられている一階述語論理の操作的意味論を自動的に実行しプログラミング言語として実行できるということである。しかしそれは順番に実行できるように推論規則の順番に気を使って書く必要があるということになる。」 / Twitter
- muratakさんはTwitterを使っています 「ラムダ計算の操作的意味論程度ですら「意味論」と呼んでいるんだから,証明体系による論理式の分類も「意味論」と呼んでなんの問題もなさそうに思える.」 / Twitter
- 相川千穂さんはTwitterを使っています 「操作的意味論、意外と構文論的だという印象を受ける方が多いんですね」 / Twitter
- yaxbellさんはTwitterを使っています 「意味論と証明論の差については、まだ、時間が自分のために使えた時に考えたことがあった。意味論という時には、明示的に、無限の操作を認める場合であって、証明論のときには、有限回の操作しか認めていない、という差がある。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「操作的意味論は意味論じゃない」「項モデルはモデルじゃない」「ゲーム意味論は(簡単な場合を除き)商が出てくるからモデルとして不十分」等々は半世紀以上にわたる現在進行形の論争。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「前向き推論は幅優先探索の操作的意味論においては完全であるけど、実際のPrologの処理系は深さ優先探索をするので不完全なのではないかなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「表示敵意味論では、プログラミング言語の性質を理解するには不十分なのではないかな。型があっていても実行してみないと停止するかどうかはわからないように、意味は通っていて人間には理解できて計算を完了出来る数式でもPrologの操作的意味を考えると計算が無限ループしてしまう可能性がある。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論としてLispを実装したらこうなりますみたいなのが、PrologでLisp実装だと思うといいと思う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Lispのプログラムの証明に使う公理の証明だった。公理の証明って変な気もするけど、Lispの操作的意味論(モデル)をAgdaで作って、公理が真であることを示すってことね。Lispの項の等式とその性質を証明するのが面倒。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「#IPSJPRO 条件式, 再帰関数, quasi-quote の言語機能を HLisp 自身で定義できる.{Landin, '64] の SECD機械の拡張でできている.必要最小限の操作的意味論とはどのようなものか,という興味に基づいている. https://t.co/7JnYGq6TBP」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「#IPSJPRO [Plotkin '75] の流れをフォローします. 操作的意味論. evaluation context で引数部分にちょっとside condition がある (関数部分がマクロのとき引数を評価しないように).https://t.co/vrwFCzJa38」 / Twitter
- はかりさんはTwitterを使っています 「2+3=5を"2+3を計算したら5"と読むか"2+3と5は同じ"と読むかの違いは操作的意味論と表示的意味論の違いっぽい。λ計算ではこの2つは同じになるけど、そういうところの整合性が取れてるのも改めて意識してみるとちょっと楽しい」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
- 2014-onward.pdf
バックトラック
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ならびを昇順に整列して順位を振る。ただし値に重複はない。'(_ならび,_順位,_値) :- sort(_ならび,_整列したならび), append(L1,[_値|_],_整列したならび), length([_|L1],_順位). 'ならびを昇順に取り出す。ただし値に重複はない。'(_ならび,_値) :- bagof(_,member(_値,_ならび),_).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これで分かることは、Prologは順位を振るという作業は得意ではありません。その理由は非決定性の述語をバックトラックで処理しようとすると、今何位目というカウント情報がバックトラックにより無効となってしまうからです。この観点からappend/3の偉大さを感じさせられます。'.」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの限界は評価順が深さ優先探索しか選べないことにあるので、それ以外の戦略をオプショナルに選択できると嬉しい。遅延評価だったり、幅優先探索だったりしていいし、バックトラックなしにできたり、変数の単一化ができなくなるオプションとかあっていいと思う。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの遅さの原因はバックトラック、単一化や、静的型システムがないための最適化能力不足にある。Mercuryみたいな言語は論理型言語に1つの型システムを加えるけど型にハマったプログラムしかかけなくなるので困ることもある。場合によって型システムを選択できると嬉しいのだよなぁ。」 / Twitter
カット
- 尾崎隆大さんはTwitterを使っています 「% Prolog カット(!)が何故必要か 成績を判定する(_成績,不可) :- between(0,59,_成績),!. 成績を判定する(_成績,可) :- between(60,79,_成績),!. 成績を判定する(_成績,良) :- between(80,89,_成績),!. 成績を判定する(_成績,優) :- between(90,100,_成績),!. 成績を判定する(_,異常値).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog もし以下の定義であると 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_,異常値).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績(84,_成績). _成績 = 良 ; _成績 = 異常値 ; false. ?- 'のようなことが起こってしまう。最後の定義節の頭部の第一引数が変数であるため、ここがどんな値でもこの節は真になる。カットがあれば、この節に到達しなくなるから、「異常値」という解がでることは避けられる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog これならOK 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_成績,異常値) :- \+(between(0,100,_成績)).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績を判定する(59.5,_成績). _成績 = 異常値. 'さて、between/3の第三引数に生成される値は実は整数である。したがって、整数でない値の59.5が入力されると \+(between(0,100,_成績)) が真となって、「異常値」が返される。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologのマニュアルでは、between/3のような組込述語でも、第一引数の型のような情報は載っていない。そもそもPrologでは型という概念が事実上存在しない。関数評価する為の式はあるから計算可能なものかどうかの判定はしている。整数とか浮動小数点数とか。しかしこれは「特例」。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '本来ならば、整数も浮動小数点数も必要なく、全部アトムでよかったはずだ。>,<,>=,=<,=:=,=\=,is。これら全て二引数の述語であるが、この引数にある特殊なアトムは計算可能だと。それだけで済む。そのアトムがどんな可能性を持つアトムであるか問う述語としてinteger/1があってもよいが。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '組込述語 forall/2 ですが、 第一引数を実行して、真になった条件で、第二引数を実行します。そして、この条件での第二引数の実行が全て真になった場合、forall/2の実行は真になる。 第一引数が偽で第二引数が実行されない場合は、 ?- forall(fail,true). true. は、真となります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ということは、 'Pの否定'(P) :- forall(P,fail). と書くことができる.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '否定の定義にカットが必須だと言う話。 forall/2で書くことができるではないかとなりますが、forall/2の定義の中にカットが必要ないならば、胸を張れますが、そういうわけにはいかないでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。これ、 ?- forall(fail,fail). true. という例にするべきでした。それから、 「そして、この条件での第二引数の実行が全て真になった場合、」は 「そして、全ての第一引数の実行が真になった条件で第二引数の実行が真になった場合、」でした。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'forall/2の定義を論理的にPrologで定義するならば、当たり前に (\+)/1 が使われているだろうという意味ですね。(\+)/1 を使わなくても、それにあたることを述べる時にやはり、カットが必要になるだろうと。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog カット ! ?- findall(_行ストリング,(repeat, (at_end_of_stream(current_input),!,fail; read_line_to_string(current_input,_行ストリング))),_行ストリングならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'findall/3,setof/3,bagof/3,forall/2などの事実上のループからの脱出用のカットです。'.」 / Twitter
単一化
- 尾崎隆大さんはTwitterを使っています 「% Prolog (a,b) は ','(a,b) という項と同じです。 , という関数子を中置きしているのは、 ?- current_op(A,B,','). A = 1000, B = xfy. 演算子定義されているからです。xfyの意味は左側にはこの関数がもはや来ることはない。右側には再帰的にこの項を持つことができるという意味です。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ですから a,b,c は ','(a,','(b,c)) という結合であると解析されます。(a,b,c) の ()は (a,b,c) = X だとイコールの左側とXが単一化されますが、 a,b,c = X だとXと単一化されるのはcだけで、a,bは目標だと解釈されます。それは意図に反するからここからここまでの「連言」だと指定する。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'その目的の為に()が使われています。従って、ここで大事なのは , の方で()は便宜的なものだと考えることができます。これで、 ?- (X,Y) = (a,b,c). X = a, Y = ','(b,c). の意味がお分かりでしょう。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- (X,Y) = (a,b,c,d). ならば X = a, Y = ','(b,','(c,d)). ですが、 ?- (X,Y) = (a,b,c,d). ならば X = a, Y = (b,c,d). でも構いません。要は項の(インタプリタによる)見せ方の問題です。 大事なことは , が演算子定義で xfy の形式だと定義されているということです。」 / Twitter
アトム
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでSWI-Prologのprolog_flagの使い方の話をしましょう。 ?- current_prolog_flag(allow_dot_in_atom,X). X = true. 'だと、 尾崎.隆大 というようなアトムが可能になります。昨日、整数とか浮動小数点数なんてなくてもよいという話を書きましたが、この話が前提になっています。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これが、 X = false. SWI-Prologの起動時(初期値)はfalseになっていますが、 3.14 のような文字列はアトムになり得ません。基本的に数字から始まってもアトムだとPrologを設計し直そうとした場合、この小数点のドットの扱いが問題になるのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '基本的にアトムにドットが含まれていても問題ないというモードのもとで、数字と文字の区別をしないというルールにPrologを改めた時に、型の片鱗もないPrologが実現するのでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' =:= や 大小符号の両辺。それに is/2 の第二引数の中にある評価しなくてはならないアトムの検査はどうするの?型が必要ではないかと言われるかも知れないが、そういうことはErlangやElixirにでも委託してしまえば良いのではないか。Prologで計算しなくても良いのではないか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '他言語との連携の遅延を0にすることはできないし、他言語側で計算可能かどうかアトムの評価をしてもらわねばならない。やはり、難しいか。PrologとErlangが一体のものであるのならともかく。'.」 / Twitter
append
- 尾崎隆大さんはTwitterを使っています 「% Prolog 分解/3は、append/3の第三引数を第一引数に持ってきたもの。 分解( L1 , [] ,L3) :- L1 = L3. 分解([A|L1], [A|L2],L3) :- 分解(L1, L2 ,L3). '第二節で第一引数の頭を削った残りを第一節の第三引数として取ることができる。第二引数は・・・頭からコピー。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog もちろん実行は. ?- 分解([1,2,3],X,Y). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] ; X = [1,2], Y = [3] ; X = [1,2,3], Y = [] ; false. となる.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ふたつのリストを結合した新たなリストを生成するのがappend/3だった。 append(L1,L2,L) このappendから、図らず思いがけず、分解/3の機能が発見された。非決定性に、双方向性に。 結合のappendが書かれてから、分解のappendの全てが解明されるまでに3-4ヶ月が掛かったということだ。'. https://t.co/DweT0hYnqt」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すげえ美しい定義だ。これが動くのだから、Prologってスゲーなと思う。(オレのボキャ貧に絶望」 / Twitter
- それさんはTwitterを使っています 「@KISUGI_JINEN @TakaoOzaki 動作は分かるのですが append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). の定義で、何故そうなるのか想像するのが難しいです」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog 'Prologを開発したコルメライワのグループは1972年の12月頃には、Prologが使えるようになり、appendの書き方も発見されたのですが、この述語の可能性を全て理解するのに四ヶ月くらいは掛かったという伝説があります。彼らにしてそうですから、やはり正直難しいのでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog '神話とはしましたが、実際の話のようです。'. append([],L,L). append([A|L1],L2,[A|L3]) :- append(L1,L2,L3). select(A,[A|L],L). select(A,[B|L1],[B|L2]) :- select(A,L1,L2). '下は非決定性のパターン。この二つを理解できれば、Prologの再帰述語は怖くない。'.」 / Twitter
- 来生自然さんはTwitterを使っています 「@miyako_yayo @TakaoOzaki 何となく分かる。。。 https://t.co/jiyto20QPZ かも。。。」 / Twitter
- [Prolog][Memo] append/3 | Basic Werk
select
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' append/3 はもしかして神様というものがいるのかと思わせる作品ですが、昨今これ以上に使われているのが select/3 です。定義は select(A,[A|R],R). select(A,[B|R1],[B|R2]) :- select(A,R1,R2). 一個取り出して、それ以外の要素も参照できる非決定性の述語です。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- select(A,[1,2,3],R). A = 1, R = [2,3] ; A = 2, R = [1,3] ; A = 3, R = [2,3]. false. ?- member(A,[1,2,3]). A = 1 ; A = 2 ; A = 3 ; false. に似ていますね」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- append(L1,[A|L2],[1,2,3]). L1 = [], A = 1, L2 = [2,3] ; L1 = [1], A = 2, L2 = [3] ; L1 = [1,2], A = 3, L2 = [] ; false. ですから. ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). 'これでA,Rに関しては先程のselect(A,[1,2,3],R)と同じ結果が順に得られます'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'この最後の ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). ですが、「やっ」と一瞥すると、その途端に 何をやっているのか分かってしまう。 そういう動きとかに交渉をもたない理解が生まれる。宣言的とか言ってしまうと面白くないのですが、この脳内で何も動かすことのない理解。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これがPrologの醍醐味ということでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'select/4が大変重宝だということは何度も書いた。 select(_取得値,[_取得値|R],_更新値,[_更新値|R]). select(_取得値,[A|R1],_更新値,[A|R2]) :- select(_取得値,R1,_更新値,R2). という定義になる。取得値をキーにして取り出し、これを更新値に置き換えるという使い方になる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、それでは取得値をキーにするのではなく、何番目の要素であるかを指定してこれを更新する組込述語はというと、ないらしい。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 何番目の要素かを指定してならびを更新する(_ならび,_何番目,_更新値,_取得値,_更新されたならび) :- length([_|L1],_何番目), append(L1,[_取得値|L2],_ならび), append(L1,[_更新値|L2],_更新されたならび). 'これで書くことができているがselect/4のようにappendを使わず再帰で書くと'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog こんな感じかな nth1_select(_nth1,_取得値,L,_更新値,L2) :- nth1_select(1,_nth1,X,_取得値,_更新値,L2). nth1_select(N,N,_取得値,[_取得値|R],_更新値,[_更新値|R]). nth1_select(M,N,_取得値,[A|R1],_更新値,[A|R2]) :- M2 is M + 1, nth1_select(M2,N,_取得値,R1,_更新値,R2).」 / Twitter
findall
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の分解の例(_分解された文字列) :- findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), atomic_list_concat(_文字ならび,w,_分解された文字列). https://t.co/IBes0l34km」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '1980年頃には知られていた findall/3 ですが、 findall/4 は相当に新しいと思います。第四引数に差分リストがくるのがこの述語ですが、 atomic_list_concat/3 が第二引数を植木算的に間にしか入れないために不十分で、空文字を番兵的に差分リストの中に使って最後のwを挿入しています。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 文字列の分解の例(_分解された文字列). _分解された文字列 = 大w草w原w不w可w避w . ?-」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '実は、 findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), の部分は本来、 atom_chars(大草原不可避,_文字ならび), でよいのだが、それだと _分解された文字列 の最後にwを付ける機会が一番最後になってしまう。それでfindall/4という凝った組込述語を使ったわけだ。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '一旦、 大w草w原w不w可w避 という文字列を作り、その最後に atom_concat/2 の第二引数をwとして実行して完成するというのは、癪なので。'.」 / Twitter
行入力
- 尾崎隆大さんはTwitterを使っています 「% Prolog 空白区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列," ","",_文字列ならび). カンマ区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列,",","",_文字列ならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ということで '文字列を区切り文字列で分割する。ただし、区切り文字列も要素として残す。'(_文字列,_区切り文字列,_置換された文字列) :- 文字列を区切り文字列で分割する(_文字列,_区切り文字列,L), ならびの空文字要素を置換文字列に変換する(L,_区切り文字列,_置換された文字列ならび). https://t.co/2HcnrAWB4M」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 今の所こんな迂遠な方法しか思いつかない。 ?- 文字列を区切り文字列で分割する(尾崎隆大,崎隆,L), ならびの空文字要素を置換文字列に変換する(L,崎隆,_置換された文字列ならび). L = [尾,'',大], _置換された文字列ならび = [尾,崎隆,大].」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 基本的にはこれでよいのでは。私はStringは使いませんが。 '入力 1行に1つ そのまま変数へ'(_変数) :- read_line_to_string(current_input,_変数). https://t.co/Pgnk42mDR1」 / Twitter
- Prolog競プロ用チートシート - Qiita
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ファイルから情報を読み取る場合、Prologでは see(_ファイル名), としてストリームを形成してきました。 読み込み述語が read/1 の場合、end_of_fileを読み込むことによってファイルの終了を認識しました。そのことから、ひとつ不都合が生じました。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それは、読み込み述語の第一節に停止節を起きたい場合に起こります。 読み込み([]) :- read(end_of_file),!. 読み込み([A|R]) :- read(A),読み込み(R). のようなコードを実行すると、第一節で read が空転して、結果一つ跳びに情報が取れてしまう。副作用の弱点が出る。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これを解決するのが、伝統的な、そう、先読みですということになる。COBOLではあるまいし。ここでは先読みのコードは載せませんが、実は解決策がある。第一節を、 読み込み([]) :- at_end_of_stream(current_input),!. ・・・ とするのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' see(_ファイル名), で作られたストリームが後に変更になっていない場合は、現在のストリームをcurrent_inputで参照できます。そしてそれを使って、at_end_of_streamを認識できる。いわばpeekできる訳です。これも副作用だが、覗くだけなら悪さはしないということになります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これで、先読みのような不自然なコードから解放されます。ところが、実は事務処理のプログラムなどでは、この先読みによって、ひとつ前の情報が常に引数にあって、それをプログラムの中で自然に参照できて、情報の比較をすることの役に立っているいうこともあるのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ただ、現在のPrologのコードスタイルとしては、情報はできるだけ、データベースに展開するか、全データをリストに取り込んで処理に行くというのが主流で、ファイルを読み込みながら何かをすることは少ない。私も先読みで処理するコードを書く機会はほとんどなくなりました。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'split_stringに訂正。 read_line_to_integers(L) :- read_line_to_string(current_input,String), split_string(String," ","",LL), maplist(integer_string,L,LL). integer_string(Integer,String) :- number_string(Integer,String), integer(Integer). となる。'. https://t.co/mL5NlwhO7N」 / Twitter
CSV
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび) :- read_line_to_string(_入力,_ストリング), split_string(_ストリング,",","",_ストリングならび), maplist(string_to_atom,_ストリングならび,_項目ならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), findall(_項目ならび,( repeat,(at_end_of_stream(_入力),!,fail; 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび))),_項目区切り行ならび), close(_入力).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 再帰で 'csvファイルの項目区切り行を全て読み込む'(_入力,[]) :- at_end_of_stream(_入力),!. 'csvファイルの項目区切り行を全て読み込む'(_入力,[_項目ならび|R]) :- 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび), 'csvファイルの項目区切り行を全て読み込む'(_入力,R).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), 'csvファイルの項目区切り行を全て読み込む'(_入力,_項目区切り行ならび), close(_入力). '再帰だと、文字数制限の為すこし不自然なところがありますが、ざっとこんな感じになります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列からカンマで区切られたアイテム数を得る(_文字列,_アイテム数) :- split_string(_文字列,",",",",_アイテムならび), length(_アイテムならび,_アイテム数).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog アイテムをアトムとして取り出したい 'CSV形式の文字列から任意のアイテムを取り出す'(_文字列,_アイテム) :- split_string(_文字列,",",",",_アイテムならび), member(S,_アイテムならび), string_to_atom(S,_アイテム).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 副文字列(_文字列,'"',_取り除いた文字列,'"'). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 両端の文字はダブルクォーテーション(_文字列), sub_atom(_文字列,1,_,1,_取り除いた文字列). 両端の文字はダブルクォーテーション(_文字列) :- sub_atom(_文字列,0,1,_,'"'), sub_atom(_文字列,_,1,0,'"').」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologで最も簡単なsplit処理は ?- atomic_list_concat(L, ',' ,'abc,def'). L = [abc,def]. だろう。これにはSWI-Prologではの但し書きが付く。'.」 / Twitter
エラーと偽の区別など
- 尾崎隆大さんはTwitterを使っています 「% 翻訳は 'プロパティベースのテストでは、反例を縮小すると他のバグが明らかになる可能性があります。 優れた実装は、これらの他のバグも報告します。 しかし、論理プログラミングはこれを本質的に困難にします。バグはしばしば失敗を引き起こし、失敗は有益ではなく、区別することができません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの主張はPrologが日本に紹介された頃から言われていたことで目新しさはないのだが、この続きが読みたい。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'コメントすると、Prologではエラーと偽の区別がし難いということが言われます。ここでは、それとは少し違って、 「確信をもって偽としたもの」と、非決定性述語の解をすべて取得する際に(一時的に)偽になったものが、同じ制御上に乗ってしまうため区別をつけられないの意味だと思います。'.」 / Twitter
DB
- Sadayuki FuruhashiさんはTwitterを使っています 「RDBMSって視点によっては「プログラマブルなデータストア」で、データモデルはリレーショナルモデルに基づいていて、SQLでプログラムできる。一方、アプリケーションってプログラマブルじゃない。今その間が必要とされている。RDBMSほど柔軟性があっても困るけど、プログラマブルなデータストア。」 / Twitter
- 市川 真一さんはTwitterを使っています 「Prolog インタプリタに永続性を追加したもの、みたいな https://t.co/YXYiPrQBM8」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「RDBMSよりずっと柔軟性が高い、GemStone/Sはいかがでしょう?Smalltalkというプログラミング言語処理系がまるっと載ってます。 https://t.co/nKSlUd7ZYS」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'インメモリデータベースに採用される索引機構で書き込み速度の速いものはどんなものがあるのだろうか。Prologデータベースの弱点というよりも、Prologの弱点は定義節の追加が定義節数が多くなるに従って目に見えて遅くなることなので。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologでは、同一述語の定義節数が数千万を超えると書き込み速度が落ちる。これは第一引数に暗に、索引が振られていて、それがハッシュで、ハッシュテーブルの作り直しを強いられているのではないか。第二、第三、・・第n引数にも索引は欲しいのだから設計の変更が必要ではないか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '私の現在使っているマシンは物理10コアですが、 SWI-Prologで8-threadで並行処理をすると、逐次的に処理するのに較べ、7.74倍速くなります。メッセージ交換がない場合ですが。threadを気楽に使うことができるようになりたいものです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは何故8倍にならないかですが、これは唯一箇所にある1億節のデータベースを各スレッドが共通して参照しているからです。データベースをコアのcacheに収まるくらい小さくして、8-threadにすれば、8倍に極めて近くなるはずです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% prolog 'Prologデータベース(頭部のみで本体がないもの)の定義節のn番目を取得するためには nth_clauseという組込述語を使います。この述語の使い方は少々難しいので、 ''from:@TakaoOzaki nth_clause'' とツイッター参照をしてみてください。結構書き込んであります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの場合、予め、以下の定義をしておく。 第n節の頭部(_n,_頭部) :- nth_clause(_頭部,_n,Ref), clause(_頭部,_,Ref). ?- 第n節の頭部(2,氏名(X)). X = 東竜太郎 . '. https://t.co/s7UUAqHvQ3」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog の問題です ' 氏名(尾崎行雄). 氏名(東竜太郎). 年齢(60). 年齢(67). 氏名と年齢をばらばらに定義してしまいました。これを [[尾崎行雄,60],[東竜太郎,67]] のように定義順にまとめたい。そのためにはどんな述語を定義すればよいか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- findall([_氏名,_年齢],( 第n節の頭部(_n,氏名(_氏名)), 第n節の頭部(_n,年齢(_年齢))),L). L = [[尾崎行雄,60],[東竜太郎,67]]. ?-」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '現在インタプリタに動的に定義されている述語の定義節、その10001節目から20000節目までを切り取りたい。こんな場合、 ?- tell(temp),listing(述語名),told. のように仮ファイルに書き出して、vimのようなエディタで処理するのが普通。そうではなく、これを直接処理したい場合もある。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologを高速に動かすためには 給与_社員名('026',尾崎隆大). 逆_給与_社員名(尾崎隆大,'026'). 給与_総支給('026',150000). 逆_給与_総支給(150000,'026'). のように持てばよい。 泣き所は_idの管理の難しさと、大量のassert時の第一引数のハッシュテーブルの更新が原因の遅延。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'foo/2が1億節定義されているとする。その第一引数に2000のアイテムがランダム(平均50000)に選択されて現れる。さて、 ?- bagof(_,B ^ foo(A,B),_). Aをキーとして取り出す。第一解が現れるまで550秒掛かった。何度繰り返してもほとんど変わらない。この時間では実用にはならない。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '要するに1億要素の重複を取り除いた結果2000要素となるソートの実行時間が9分間掛かったということだ。バッチ処理で、このキーが取得できさえすれば処理を完了できるというのならば、9分掛かっても構わないというになるのだろうが。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'なんで1億節というような、普通Prologでは扱わないような述語定義の話になるかというと、一昨日かな、失業保険のシステムの話が出たから。日本の場合は、1億人を管理することもあるのだろうから、述語定義もそういう単位になる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog データべースの解を再帰で集める(P,L) :- データべースの解を再帰で集める(1,P,L). データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R),!. データべースの解を再帰で集める(_,_,[]).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog これだと末尾再帰 データべースの解を再帰で集める(M,P,[]) :- \+nth_clause(P,M,_),!. データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'このcopy_term/2が必要な辺りがキワモノっぽい。 copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), clause/3の第二引数(本体の部分)を匿名変数にしているが、clauseはcallではない。定義は参照されるが、本体が導出される訳ではない。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '言うまでもないことだが、こんな定義は本来必要ない。 データベースの解を集める(P,L) :- findall(P,P,L). だけで済むのだから。nth_clause/3の使い方の例として示してみただけ。'.」 / Twitter
規則外の意味比較
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 命題を真偽判定可能な単位に分割し、単位毎に既知の知識に照合して推論するのがPrologだと理解していますが、設問をもって「既知の知識」を自己拡張する能力って持ってましたっけ?」 / Twitter
- JO3ALTさんはTwitterを使っています 「@uchujin17 当然、規則外の意味比較には対応していないはず。なので、あまり結果は良くなかったような記憶があります。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 僕も卒研はいちおう「人工知能」だったんですが、当時の人工知能は教授がモデルを作り、学生はひたすら既知データを打ち込んで、そこに設問を入れて正解率を見てみる、という原始的なものでした。正解率の上下で一喜一憂するけれど、その原因が何なのかは解析できていませんでした。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 打ち込んだ既知データがどれだけ正しいのか、打ち込み時にミスが無かったかどうかの検証も怪しいもので、GIGOをこねくり回している感がありました。だから僕は「人工知能」に絶望して、それが21世紀になってこんなに発展したことに驚いています。」 / Twitter
flatten
- Shinji KonoさんはTwitterを使っています 「Prologを書けるようになったと感じたのはflatten書いてから。木構造を平らなリストに展開するやつね。そこから簡単な並列言語を作るまで2ヶ月くらい。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 昨日@shinji_kono先生が言及されていたflatten/2 my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten(V,L,[V|L]) :- var(V),!. my_flatten([],L,L). my_flatten(A,R,[A|R]) :- \+list(A),!. my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). list([_|_]).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'やはり、my_flatten/3の第三節の第二・第三引数のやり繰りが難しい。先生の感想もここら辺りを発見/理解できて、自信が付いたということなのでしょう。差分リストの類ですが、quick_sortの中に現れるそれよりは易しいと思います。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。間違い。 my_flatten/3の第四節になりますね。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さらにすみません。 この第四節の第一引数のなかにR1となっているところがありますが、ここはRとしてください。R1でも構わないのですが、そして第一引数を強調しての1なのですが、他にRなんとやらが現れない場合はRだけにした方がよいでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '細かなことはともかく、 my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). この第二引数・第三引数の ・・,L2,L) :- ・・,L3,L), ・・,L2,L3). というパターンは頭に入れておくとよいですね。append/3の定義を覚えておくとよいように。'.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@TakaoOzaki 変数なし想定で書いた方が良いです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@TakaoOzaki これで学ぶのは差分リストの使い方なので。変数が入る場合は最初にnumbervarsで変換してしまうのが楽です。理論でもそうするみたいです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「差分リストはPrologを使うプログラミング的な利点なのだが、Prologの持ってる論理的基礎とは相性がよろしくない。まったく合わないってわけでもないんだが、希望を砕くくらいにはずれてる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「上田先生のX’talは自身でモデル検査できるので、もう少し注目されても良かったが… まだ、ギリギリPrologと言える感じ? いや、別物?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここからたどれるのかな。KL1Cがあるな。 https://t.co/a9OnMrdA6w」 / Twitter
- Kazunori Ueda, Prof.
- 尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten([],[]). my_flatten([[A|R]|R1],L3) :- my_flatten([A|R],L2), append(L2,R2,L3), my_flatten(R1,R2),!. my_flatten([A|R1],[A|R2]) :- my_flatten(R1,R2). '変数を除外しましたが、append/3を差分に使ったこのコード。意外なことに最速かも知れない。'. https://t.co/CN5FcXuXav」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten([],L,L). my_flatten([[A|B]|R1],L2,L) :- my_flatten([A|B],L3,L), my_flatten(R1,L2,L3),!. my_flatten([A|R1],R,[A|R3]) :- my_flatten(R1,R,R3). 'これが最速コード。先程のappend/3を使ったコードとの差は3%程度です。'.」 / Twitter
ソケット
- 尾崎隆大さんはTwitterを使っています 「% Prolog udpを書いたから今度はtcp tcpソケットの準備(_接続用ソケット,_ポート) :- tcp_socket(_接続用ソケット), tcp_bind(_接続用ソケット, _ポート), tcp_listen(_接続用ソケット, 5).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog サーバーサイドはこんな流れ 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd) :- tcp_open_socket(_接続用ソケット,AcceptFd,_). tcpインタプリタ(AcceptFd) :- repeat, 行を読みだして実行(AcceptFd), fail.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ストリームを準備するのはこの段階 行を読みだして実行(AcceptFd) :- 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out), 一行読み出し項に変換(In,_項,_エラー情報), インタプリタの実行(_実行用ソケット,In,Out,_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out) :- tcp_accept(AcceptFd, _実行用ソケット, _Peer), tcp_open_socket(_実行用ソケット, In, Out), set_stream(Out, encoding(utf8)), set_stream(In, encoding(utf8)).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog インタプリタの実行(_ソケット,In,Out,_項) :- 親タスクで実行(In,Out,_項), 子タスクで実行(_実行用ソケット,In,Out,_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 親タスクで実行(In,Out,_項) :- 項は親タスクで実行するべきもの(_項),!, 親タスクで実行(In,Out,_項,_エラー情報), fail. 親タスクで実行(_,_,_項) :- 項は子タスクで実行するべきもの(_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 話が前後するが、トップレベルは サーバ(_ポート) :- tcpソケットの準備(_接続用ソケット,_ポート), 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd), tcpインタプリタ(AcceptFd).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 以下のような流れに 子タスクで実行(_実行用ソケット,In,Out,_項) :- thread_create(項を実行して結果を返す(In, Out, _項),_,[]). 項を実行して結果を返す(In, Out, _項) :- 目標評価(In, Out, _項), '項を書き出し、空行を送信する'(Out,_項), ストリームを閉じる(In,Out).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでは、tcp/ip関係の組込述語がどのような順序で使われるかを見ていただきたい。'.」 / Twitter
引数の数
- み。さんはTwitterを使っています 「本タワーの一つにErlangの本があって読んでいるけど、大学の時のPrologの記憶が意外と残っててびっくりする。「関数に引数の数をarityと呼ぶ」というのを見て、ああarityねみたいになったけど、よく考えたら他で使ったことない単語だ。」 / Twitter
- み。さんはTwitterを使っています 「arityって英単語として関数が取る引数の数という意味があるみたいだけど、これまで全然見なかったのは単に自分が勉強した範囲でたまたま使ってないだけかな。日本語だったら引数の数って表現すればいいから使う必要がない説もある。」 / Twitter
- み。さんはTwitterを使っています 「数学とか論理学の英語論文とか読んでる人には馴染みのある単語なのかもしれない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'そうです。誰もがすぐに覚えることができます。堀江さんが書かれたことしかありません。 つけ加えるならば単一化をしっかり学ぶこと。 バックトラックですが、これは確定節で考えてみること。 家族関係が例題によいのは、確定節(Prologの場合本体がないもの)が定義の主体になるからです。'.」 / Twitter
- 堀江 伸一さんはTwitterを使っています 「Prolog言語布教。 Prologは事実と規則と計算式の判断をAndで結んで、全部満たすものを深さ優先探索で探します。 幾つか候補がある時はバックトラックして全部探します。 何だか言葉で書くと難しそうですが、定番入門の家族関係のコードを自分で写経すればすぐわかります。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '一方、少し変なところもあります。昨日の書いたものを例にとります。 P(_) :- Q1(_),Q2(_),Q3(_). Q1の真偽が確定して、真なってから、Q2に進み、これも真なったらQ3へ、Q3も真になった場合、Pが真になります。 順番があります。あたかも時間的な順序があるかのように。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Q1->Q2->Q3の順ではなく、 Q3->Q1->Q2の順だってよいではないか?ということが当然あるわけです。 これは多分ですが、Prolog成立時に 「論理式がプログラム言語になる!!!」 という驚きが先行してあり、その時点でのプログラム言語の像が FORTRAN,ALGOL,PASCAL に代表されるものだった。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '乃ち基本的に書かれた順にコマンドは解決される。サブルーチンはそれが解決されてから次に移る。それがプログラムの像でした。 それに合わせることが優先された。 「Q1 and Q2 and Q3 を手続きとしてみればいいじゃないか」 そのためには、Q1が解決してQ2に進むという順序が必要だった。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '論理式の連言を手続きに見做そうというのだから無茶です。でも、その無茶が通るように、真を求める探索は深さ優先に固定されました。それをバックトラックしながら探す。 もちろん、当時の貧弱なメモリ資源の制約があり、やむを得ずこうなったという側面もあろうかとは思いますが。'.」 / Twitter
- Prolog - Wikipedia
- Haskellが数学だとすれば、Prologは国語だ
- Prologで構文解析という昔話
- 構文解析
- は、PrologでシンプルなC言語を実装していますか? - VoidCC
- Prolog Programming: Language Processing (in Japanese)
- Prolog Programming: Database (in Japanese)
- #:g1
- 神戸 Swi-Prologを使ったエキスパートシステムのメタルールやメタインタープリタの作成方法 - 初心者入門サンプル
- 大学 Swi-Prolog を使用したエキスパート システムのメタルールおよびメタインタプリタの作成方法 / 逆引きリファレンス
- Multi-Paradigm Language TAO
- プロローグ:ビルトイン付きの「バニラ」メタインタプリタ - コードログ
- Prolog: "Vanilla" metainterpreter with builtins - Stack Overflow
- metaprogramming - Depth limited search in prolog (vanilla meta-interpreter) - Stack Overflow
- Prolog Guide - Metainterpreters
- A Couple of Meta-interpreters in Prolog
- Prologによる簡単なモデリング例
- Prolog入門
- 事実と質問
- UTF-8からUnicodeへの変換
- Prolog入門
- Prolog - Wikipedia
- bitlaw-jp
- The birth of Prolog | The second ACM SIGPLAN conference on History of programming languages
- Haskellが数学だとすれば、Prologは国語だ
- prolog-link
Prolog の知識を外部の知識で自動生成
- python 3.8.2でprologを動かしてみた - Qiita
- Koji von IgarashiさんはTwitterを使っています 「PythonとPrologとの連携 https://t.co/QH7THYSFOE」 / Twitter
- AZ-Prolog | トピック: PythonとPrologとの連携
- Koji von IgarashiさんはTwitterを使っています 「PythonからSWI-Prologの機能を呼び出す https://t.co/EezGH0Xzx4」 / Twitter
- Pythonを応用した活動の紹介 - Qiita
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Pythonで書かれたDeep Learningや機械学習のコードや結果を統制する為のプログラム言語としてはPrologは最適なものだろう。今後はこの需要に答えるためにPrologプログラマが大量に養成されることだろう。 これがPythonからPrologを呼び出す方向。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、どんな需要があって、PrologからPythonを呼びだすインターフェイスが欲しいのか。 Prologで知識を蓄えるのには実は膨大なコストが掛かる。これを外部の知識で自動生成したい。データマイニングや機械学習でこの部分をなんとかできないか。この要請はずっと前からある。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '2日前に示した https://t.co/fgJeNGnkL1 程度の易しいPrologプログラムはルール節も含めて、機械学習で自動生成できるのではないか。もしできるとなれば、Prologは現在の地平を一気に飛び抜けてしまう。'.」 / Twitter
- nojiriko.asia/prolog/fuufu_dousei_mondai_20151219_utf8.html
単一化
- ユニフィケーション - Wikipedia
- Unification (computer science) - Wikipedia
- Unification
- 2051-19.pdf
- unify.pdf
- ppl4-3.pdf
- Microsoft PowerPoint - prolog-2007.ppt
- ja
- ppl4-3.pdf
- proofsummit.pdf
- CiNii 論文 - A unification algorithm for typed λ-calculus
- unify.pdf
- 機能単一化文法 - English translation – Linguee
- 7-6. Unification
- ppl6-4.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、色々な言語がパターンマッチを言語の第一級構文として入れようとしている(入れている)のを見ると、言語の進化としてパターンマッチはやっぱり正解だったんだろうな。そこから、さらに双方向のパターンマッチとしてPrologのような単一化が入ったりしないだろうか。」 / Twitter
- 小さいMLの型推論機を書いた - TypoTypoTypo
- 画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
- Efficient and Insightful Generalization
- Masaki HaraさんはTwitterを使っています 「束縛変数を考慮した単一化は実はそんなに難しくないような気もしてきた。単一化変数に何回shiftしたかの情報も置いておくと、shiftよりも小さいde Bruijn indexの束縛変数とは単一化できないみたいなルールが作れる。単一化変数同士の場合はshiftの大きい方にあわせる」 / Twitter
パースの法則
- パースの法則 - Wikipedia
- Peirce's law - Wikipedia
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- ch.pdf
- d.y.d.
- popl90.pdf
- HOSC-double-barrel.pdf
- lambdamu.pdf
線形論理・π計算
線形論理
- kenkyu0290100690.pdf
- ゲーム意味論 線形論理 - Google 検索
- PowerPoint プレゼンテーション - ppl-summer-2015.pdf
- 1525-7.pdf
- msj07.dvi - msj07.pdf
- 001_16.pdf
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- π計算
- El Pin AlさんはTwitterを使っています 「https://t.co/zTdBJTgXS8 『線形論理についての軽い調査』を公開しました」 / Twitter
- linear_logic.pdf
アフィン型
- Rustの所有権、ライフタイム、参照、型、しがらみ | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「アフィン型と線形型でどう違うのか分かってなかったけど線形型はリソースは正確に1回使われないといけないのに対してアフィン型は最大1回使われる、つまり使われないこともあるという違いらしい。」 / Twitter
- ゆっち〜 (Yuichiro MUKAI)さんはTwitterを使っています 「@blackenedgold アフィン型とアフィン変換にてる」 / Twitter
- κeenさんはTwitterを使っています 「@yucchiy_ 同じアフィンから来てると思うねー。」 / Twitter
- アフィン写像 - Wikipedia
- アフィン群 - Wikipedia
- アフィン空間 - Wikipedia
- AffineStateSpaceModel—Wolfram言語ドキュメント
線形論理 π計算
π計算
スライド
- π計算
- PI-calculsu
- pi-calculus.ppt - pi-calculus.pdf
- other-calculi.ppt - other-calculi.pdf
- concurrency.ppt - concurrency.pdf
プロトコル記述
- IPSJ-TPRO4308019.pdf
エージェント
- CiNii 論文 - π-計算を用いたエージェントのプランの形式化に関する研究
- IPSJ-JNL4209002.pdf
分散オブジェクト
- CiNii 論文 - π計算からJavaへの変換系を用いた分散システム開発手法
- IPSJ-Z67-1S-03.pdf
- abst062.dvi - IPSJ-TPRO0101009.pdf
- IPSJ-TPRO4711012.pdf
リアルタイム・オブジェクト
- IPSJ-JNL4506002.pdf
- CiNii 論文 - 時間付きπ計算における有限プロセスの時間動作抽象化 (計算機科学の理論とその応用 RIMS研究集会報告集)
- CiNii 論文 - π計算に対する時間拡張と合同的性質
GUI・視覚化
- CiNii 論文 - π計算に対する視覚化システム
- CiNii 論文 - π計算に基づくプログラミング言語Nepi のためのGUI機能
- IPSJ-TPRO4512011.pdf
Haskell
- k9694.pdf
- IPSJ-TPRO4716003.pdf
仕様検証・論理体系
言い回し:数学的な証明
- チェシャ猫さんはTwitterを使っています 「> TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
- ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
- The Amazon Builders' Library
- チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
- チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter
- IPSJ-TPRO4611006.pdf
- CiNii 論文 - 線型論理・π-計算による構成的プログラミング・システム
- k9694.pdf
- pi calclusを学ぶにあたって参照したドキュメントとその紹介その一 - けいぞうのメモ帳
- A Very Brief Introduction to the Pi-Calculus (in Japanese)
- CiNii 論文 - M-pi計算 : モジュール記述を持つ計算体系
- CiNii 論文 - π-計算の名前制限の名前生成による実装の正しさ
- KAKEN — 研究課題をさがす | π計算の圏論的意味論と論理的解釈 (KAKENHI-PROJECT-19K20211)
- 06gun_03hen_05.pdf
- Parallel and Distributed Systems: Winter Semester 2013
- Foundation of Software: Winter Semester 2006
- 授業ホーム | 並行分散計算特論 | 情報科学研究科 | 名大の授業 (NU OCW)
- 54-2-3_特集_06-1.qxd - 0601.pdf
- PowerPoint Presentation - DNaward.talk.jp.final.pdf
- IPSJ-TPRO4611006.pdf
- 07gun_01hen_01.pdf
- j-1-1.pdf
- j-1-2.pdf
- j-1-3.pdf
- j-2-1.pdf
- j-2-2.pdf
- j-2-3.pdf
- okada.pdf
- Computersoftware Vol.20, No.5 - 20_502.pdf
- コンピュータソフトウェア18巻1号 - 18_195.pdf
- ipsjPRO01.pdf
- 21_74.pdf
- 30_2_83.pdf
- 001_16.pdf
- print-3-phase.pdf
- kenkyu0290100690.pdf
- other-calculi.ppt - other-calculi.pdf
- π計算 - 数学とプログラミングとくだらないこと
- A Very Brief Introduction to the Pi-Calculus (in Japanese)
- π計算
- PPL7-4.pdf
- IPSJ-TPRO4716003.pdf
- resume8.pdf
- resume9.pdf
- process-pi-calculus - process-pi-calculus.pdf
線形論理 停止性
- summer1.pdf
- birth.dvi - birth.pdf
- IPSJ-TPRO4611006.pdf
- toyama-final.dvi - toyama-final.pdf
- 07gun_01hen_02.pdf
- 1875paper.pdf
時間付きπ計算
- IPSJ-JNL4506002.pdf
- 1554-01.pdf
プルーフネット 線形論理
- jssst01k.pdf
- ipsjPRO00t.pdf
- paper.pdf
英文
重点項目
- Linearity and the pi-calculus | ACM Transactions on Programming Languages and Systems
- An exact correspondence between a typed pi-calculus and polarised proof-nets - ScienceDirect
- On the π-calculus and linear logic - ScienceDirect
- Linear Logic Propositions as Session Types
- Session Types as Intuitionistic Linear Propositions | SpringerLink
- The π-calculus as a theory in linear logic: Preliminary results | SpringerLink
- DROPS - Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication
- Linear Logical Relations for Session-Based Concurrency | SpringerLink
- A New Linear Logic for Deadlock-Free Session-Typed Processes | SpringerLink
- On linear logic planning and concurrency - ScienceDirect
- "The Pi-Calculus as a Theory in Linear Logic: Preliminary Results" by Dale Miller
- The Pi-Calculus as a Theory in Linear Logic: Preliminary Results - fulltext.pdf
CiNii 論文
- CiNii 論文 - 線形論理と論理プログラミング
- CiNii 論文 - 線形論理に基づく計算モデルの理論概説
- CiNii 論文 - ペトリネットモデルに対する線形論理の完全性
- CiNii 論文 - 型付きλ計算の古典線形論理の計算的解釈への埋め込み
- CiNii 論文 - 名前通信プロセス計算の並行コンビネータ
Wikipedia
- 線形論理 - Wikipedia
- シークエント計算 - Wikipedia
- 適切さの論理 - Wikipedia
- ゲーム意味論 - Wikipedia
- 直観論理 - Wikipedia
- GC撲滅への道 - GC Advent Calendar - miura1729の日記
- summer1.pdf
- birth.dvi
- kenkyu0290100690.pdf
- Brief introduction to linear logic
- ipsjPRO00t.pdf
- ja
- 1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記
- 「線形論理」の検索結果一覧 - 檜山正幸のキマイラ飼育記
- 線形論理。 - いもあらい。
- Ryo HaruyamaさんはTwitterを使っています 「中止になった修論中間発表のスライド等です。内容は線型論理の相意味論についてです。 https://t.co/p00n1OEuOe」 / Twitter
- rharuyama/soundness-for-linear-logic-regarding-phase-semantics: 修士論文中間発表用提出物
- Ryo HaruyamaさんはTwitterを使っています 「ググると出てくる照井先生の「線型論理の誕生」が二種類[1][2]あって、内容が少し違うのだけど、後者[2]の方の参考文献の紹介が参考になると思う。 [1]: https://t.co/Th5lHpqVpg [2]: https://t.co/M6zZkZPlJN」 / Twitter
- 1525-7.pdf
- Ryo HaruyamaさんはTwitterを使っています 「やっぱり証明をちゃんとやろうとするとGirardの1987年の論文[3]が良いですかね。The Blind Spotという本もあるけど、1章の哲学パートは難しそうなので、頭から読むものではないかもしれない。形式的な部分だけなら参考になる。 [3]: https://t.co/QMwFZb3TXP」 / Twitter
- Linear logic - ScienceDirect
- ko0307.pdf
- 62_0621115.pdf
- とりとめのない GHC 線形型メモ - 趣味はデバッグ……
- El Pin AlさんはTwitterを使っています 「線形論理において、!はコモナドで各!Aはコモノイドであり、?はモナドで各?Aはモノイドである。一方、uniqueness typeにおける、non-uniqueness modality ∘はモナドであり各∘Aはコモノイドだという」 / Twitter
様相論理・時相論理
線形論理と時相論理
- 情報学広場:情報処理学会電子図書館
- 30_2_83.pdf
- jssst01k.pdf
- PowerPoint Presentation - modal-temporal.pdf
- B-028.pdf
- 1966paper.pdf
- lambdaCB-PPL05.pdf
- ai_03_001.pdf
- 07gun_01hen_02.pdf
制約充足問題・LTL
- リアクティブシステム仕様を実現可能にするための環境制約の抽出
- 平均利得時間論理とそれを用いた検証・最適化手法
- 充足可能性判定を利用したモデル検査
- UMLに基づくRTOS設計検証のための環境自動生成法
- Formal Method Europe (FME) 2001 参加報告
- 抽象化を用いた検証ツール
- 制御システム分野におけるモデル検査の応用
- IEICE Trans - モデル検査の実行順序制約の図式表現と試験ケースの自動生成
- IEICE Trans - 記号モデル検査によるスマートオブジェクトの近接連携シナリオの効率的な検証
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 千葉商科大学学術リポジトリ
- http://t2r2.star.titech.ac.jp/rrws/file/CTT100667201/ATD100000413/
- 1-FPAI107-20180807-B801_01-06.pdf
- 2-FPAI101-20160807-B504_07-14.pdf
- Honbun-t3606u021.pdf
- KJ00005931319.pdf
- tanabe_dsw06.pdf
- 147691361.pdf
- 235184037.pdf
- 3635paper.pdf
- 90001267.pdf
- ippan4-5.pdf
- ppl9-2.pdf
- paper.pdf
- 紀要34号片山3(校了).indd - KJ00010099963.pdf
時相論理
時相論理・余帰納的手法
余帰納的手法
- テスト集合余帰納法を用いた振舞等式の検証
- 無限の入出力を行う関数型プログラムの K正規化の形式的検証
- 第34回大会受賞者の声
- 帰納法と余帰納法にまつわる伝承 - 秋津早苗の備忘録
- 双対的にみる余帰納法 1.イントロ - Qiita
- 余帰納法についての質問と回答 - Togetter
- 情報学広場:情報処理学会電子図書館
- 始代数 - Wikipedia
- 余論理式,再帰型,循環的言語 - Coformulas-recursive-type-circular-language.pdf
- general13-1.pdf
- <30392D91E6343589F191E589EF838F815B834E835683878362837695F18D902E706466> - 46_85.pdf
- ws1_2.pdf
- 2019-5-4-4.pdf
- cs2019hoshino.pdf
- algPLJapaneseJan2014.pdf
- 4.pdf
- 井山梃子歴史館さんはTwitterを使っています 「時相論理」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「あと余帰納的手法がよく効きそう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「あと基本的にはsafety, liveness, fairnessでググればいいかな」 / Twitter
- ogiwaraさんはTwitterを使っています 「@sanjutsu_yu 他二つはオートマトンだけで説明できるのかな?と思い…」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「@designpatterngf Deadlockは項書き換え系において、受理状態でない状態で書き換え規則が適用できなくなった…とかで定義できそう ほかはぼくがそもそもどんなものか知らないので何とも…」 / Twitter
- ogiwaraさんはTwitterを使っています 「これはObstruct freeとLock freeとWait freeの区別にもつながる」 / Twitter
- ogiwaraさんはTwitterを使っています 「DeadlockとLivelockとStarvationをどう形式的に定義できますか?って話になって」 / Twitter
- ogiwaraさんはTwitterを使っています 「@__pandaman64__ どこかに参考になる文献ありますか?」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@designpatterngf わからん…」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@designpatterngf https://t.co/SxWhz6oZh2 SEPでも読む…?入門に良いかは分からない」 / Twitter
- Temporal Logic (Stanford Encyclopedia of Philosophy)
- 時相論理 - Wikipedia
- 線形時相論理 - Wikipedia
- 計算木論理 - Wikipedia
- 様相論理 - Wikipedia
- クリプキ・モデル - Wikipedia
- 可能世界論 - Wikipedia
- Modal μ-calculus - Wikipedia
- model-checking.ppt - model-checking.pdf
- プロセス論理 時間 - Google 検索
- μ計算 - Google 検索
- 12gun_02hen_07.pdf
- 0902-10.pdf
- 自作言語の型システムの話 - Qiita
- オートマトンの概要
- 時相論理 排他制御 - Google 検索
- 時相論理 ベクタークロック - Google 検索
- 時相論理 ベクトルタイムスタンプ - Google 検索
- 時相論理 デッドロック - Google 検索
- 時相論理 ロック - Google 検索
- 時相論理 入門 - Google 検索
- 時相論理 モデル検査 - Google 検索
- ロックコンボイ - Google 検索
- レースコンディション - Google 検索
- レースコンディション 時相論理 - Google 検索
- ロックコンボイ 時相論理 - Google 検索
時相論理 オートマトン ペトリネット
論理式とオートマトン
- kinabaさんはTwitterを使っています 「十進数どうしの足し算は定数サイズの記憶領域でできる(普通に筆算すれば繰上りを覚えて1桁ずつ出すだけ)。大小比較とかも。けど掛算は無理。でもこれは、十進表記という表記法が悪いせいかもしれない。色んな実数を表現できて色々な演算も定数メモリな数の表記法を探そう、という分野がありまして」 / Twitter
- 病気の美少女さんはTwitterを使っています 「kinaba さんが POPL モードなので追いかけよう。その前にこれ、まずツイートの内容がわからなかったので精進せねば…いやプログラマじゃないんですがもう…」 / Twitter
- kinabaさんはTwitterを使っています 「https://t.co/KdI78F9Bqw 1/2と√3を含む加算と乗算の半環の元(実数)の文字列表現で、加算と大小比較と任意の定数倍がオートマトンで表現可能なのを見つけるよという話。実際1/2と√3に限らずもうちょい色々できる。この辺の話どこまで既知なのかわからんな」 / Twitter
- Ordered Semiautomatic Rings with Applications to Geometry | SpringerLink
- kinabaさんはTwitterを使っています 「定数記憶領域で書ける=オートマトンで書けるということで、すると、そういう表記法がある数と演算に関する論理式はオートマトンに変換して、マッチする文字列がある⇔論理式が真みたいにできるので、論理式の静的検証ができて嬉しい。件の論文は√3と1/2が書けるので30°回転が登場する幾何の検証とか」 / Twitter
- CiNii 論文 - 有限オートマトンと表現等価な正則時相論理とその論理設計検証への応用
- 0902-10.pdf
- ja
- 線形時相論理 - Wikipedia
- 時相論理 - Wikipedia
- PowerPoint Presentation
- hagiya-jssst03.pdf
- オートマトン
- Microsoft PowerPoint - RS2010-spin2.pptx
- 研究会 - 線形時相論理式からイベントベースオートマトンへの変換を利用したペトリネット検証ツールHiPS向けon-the-flyモデル検査器
- 07gun_01hen_03.pdf
- modelcheck.pdf
- jssst05.pdf
- techrep.dvi
- ai_03_001.pdf
- Microsoft PowerPoint - 20110911_swest11.ppt
- モデル検査ツールSpinによる組込みソフトウェアの検証 受講メモ
- 10-6-B4-4.pdf
- afreeSat050215.pdf
- _pdf
- CiNii 論文 - 線形時相論理による組込みシステムの仕様記述とペトリネットによる実装法 (情報システム研究会 数理的アプローチと情報システム、その他一般)
- 17th_nagata.pdf
- Dr.Uchihira's PhD Thesis
- lambdaCB-PPL05.pdf
- 59160283.pdf
様相論理
- IPSJ-MGN300607.pdf
- 14_61.pdf
- Introduction_to_Modal_Logic.pdf
- afreeSat050215.pdf
- 入門・様相論理(第1回目)|山口尚|note
- 入門・様相論理(第2回目)|山口尚|note
- 入門・様相論理(第3回目)|山口尚|note
- 入門・様相論理(第4回目)|山口尚|note
- 入門・様相論理(第5回目)|山口尚|note
- 入門・様相論理(第6回目)|山口尚|note
- 入門・様相論理(第7回目)|山口尚|note
- 入門・様相論理(第8回目)|山口尚|note
ゲーデル変換 様相論理 古典論理
- 直観主義論理 - Wikipedia
- ja
- Math club public
- no16
- _pdf
- (PDF) カリー・ハワード対応と直観主義論理の意味論入門 | Shunsuke Yatabe - Academia.edu
- 第13回「不完全性定理」
- 1525-7.pdf
- 1532jabstract.pdf
- bookA4.dvi
- 計算機向きの様相論理の公理化
- fom-mu-with-func.dvi
- 1602-11.pdf
- Microsoft Word - 評価センター関先生・奨励研究_23C050_
- afreeSat050215.pdf
- 論理学FAQのブログ
- Substructural Negations | The Australasian Journal of Logic
- 様相演算子としての二重否定 - 論理学FAQのブログ
- 様相を「ならば」と「かつ」で定義する - 論理学FAQのブログ
- 20190527.pdf | Powered by Box
- 直観主義論理を理解した(してない) - Qiita
- 5分でハイデガー『存在と時間』|山口尚|note
- チェシャ猫さんはTwitterを使っています 「何らかの充足可能性問題になりそうだというのはわかるけど、なんで LTL になるんだろ?」 / Twitter
- Tomonori SHINDOHさんはTwitterを使っています 「形式手法(モデル検査)などで使う、時相論理のLTL記述からロボットアームの動作を生成する技術について日経Robotics 最新号で書きました 《日経Robotics》NEC、形式的記号論理でロボットが行動を「考える」技術、時相論理のLTLから知的な把持手順生成 https://t.co/3WGQLcxcAX」 / Twitter
- NEC、形式的記号論理でロボットが行動を「考える」技術 | 日経クロステック(xTECH)
- 様相論理 カリーハワード - Google 検索
- 様相論理 証明 - Google 検索
- 様相論理 証明可能性 - Google 検索
- staged computation - Google 検索
- staged computation - Google 検索
- monadic types for effects - Google 検索
- monadic types for effects - Google 検索
- 情報学広場:情報処理学会電子図書館
- 1539paper.pdf
- 正規様相論理のためのCurry-Howard対応
ループ・再帰
- ループを再帰関数にする考え方 - Qiita
- R:whileループを再帰に変換する - 初心者向けチュートリアル
- JavaScriptでループ関数を再帰関数に変換する - 初心者向けチュートリアル
- ppl8-2.pdf
- 相互に定義された末尾再帰
- 授業資料/09 - Experimental Mathematics 1 (2010)
- cpp-intro/008-loop.md at master · EzoeRyou/cpp-intro
意味論・直観主義
圏論
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうのに「関数型の基礎」というタイトルを付けるのは全力で止めていただきたいのだが、説得力のあるよい例えはないものか。 / 1件のコメント https://t.co/lv2uzQCf9k “【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita” https://t.co/YlfvhA1JdH」 / Twitter
- 【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そりゃ遠い繋がりはあるけど、遠すぎるんだよなぁ。強いていうなら「プログラミングの基礎」だよ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「うーん、やっぱたとえ話はこういうときよくないな。 そもそも例えが適切かどうかで話が発散してしまう。」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「違います > 結論からいうと圏は集合です. https://t.co/DHGlZvpIWG」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏自体はほとんど集合を意識した構造を持たないので、圏を集合というのは語弊が大き過ぎる(cf. 集合圏の性質)。 圏は一般にかなりデカいので、扱いやすい小ささに収めるために Grothendieck universe を持ち出して議論してるという印象だった。」 / Twitter
- ⿻あいや⿻ 技術書執筆「せつラボ」さんはTwitterを使っています 「大きい圏(対象の集合(と|か)社の集合がユニバースな圏)の話かー。 ユニバースが集合なのか集合でないかという問題に依存しそう🤔✨ (明示的に言及されてない限り、ユニバースは集合ではない……という曖昧な感覚があります)」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏論はプログラミングという営みからも遠くて、プログラミング言語の意味論の基礎の基礎という感じがしますね」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏だけ使うなら圏論は要らない?」 / Twitter
- [2010.05167] A Categorical Programming Language
- 圏 論 に よ る プログラミング と 論 理
- 20200325.pdf
- 8_1_34.pdf
表示的意味論
圏論
- トビ🍷ペンギン村さんはTwitterを使っています 「圏論、無秩序な世界に”特定のルール”を課すことで、”同じ構造とみなせる”モノ達ができ、それによって”同一のルールで扱える”、って点ではプログラミング言語における”型”や”プロトコル”とかと似たようなモチベーションなんだろうなって思った。 いや、知らんけど。」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「言い換えると、すべての数値に対応する関数を f(1), f(2), f(3) ・・・って全部定義するより、 "Int"って型を用意して f(Int) な関数を1つ用意するようにしたいとか、List<Int>, List<Bool>, List<String> って個別のリストを用意するより、 "List<Element>" を1つ定義するようにしたい、とかとか。」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「たぶん、圏論はその扱う対象の抽象度が極めて高いから、難解に感じるだけで、モチベーション自体は極めてシンプルなんだと思う、”同じようにみなせるようにしたい”っていう。 そういう意味では、”ポリモーフィズム”みたいなものだ、って説明もありなのかもしれない。OOP ユーザには。」 / Twitter
- Kosuke YOSHIMOTOさんはTwitterを使っています 「@tobi462 Haskell、モナドのインスタンスになれば、do記法を使って「命令型で記述ができる」ようになるっていう仕組みが不思議ですよね。(do記法を実現する方法としてモナドが導入されたのでしょうが。)」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「@ysn551 んー、私も詳しくないので断言は避けたいのですが、”モナド”という文脈を保って計算する仕組みが先に存在して、バインド関数?(==>)のシンタックスシュガーとして”do記法”が用意された、という順ではないですかね・・・? Haskell はモナドがなければ I/O すら扱えないわけですし。」 / Twitter
圏論と型付きラムダ計算
PDF
- RelevantTheories
- 5.pdf
- H28-hasegawa.pdf
- wakimoto3.pdf
- intro.pdf
- https://www.sci.kagoshima-u.ac.jp/mcs/archive/116-abst.html
- 20500010 研究成果報告書
- jabstract.pdf
- 052.pdf
- 2009w202.pdf
- 職業プログラマが圏論をスルーすべき理由
- 圏論とプログラミング読書会#2 資料
- 圏 論 に よ る プログラミング と 論 理
- 圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- デザイナーに憧れて: 型付きラムダ計算を関数型プログラミング言語と見做す
- Modegramming Style: 関数型プログラミング技術マップ2015
- なぜ、プログラムは書けるのか:計算論からゴールによる様相論理、意味論まで俯瞰してみる - ウィリアムのいたずらの開発?日記
- typed lambda calculus型付きラムダ計算 ←・← (型を持たない「ラムダ計算」を改良したもの?! ・・・) | 隠れ家 - 楽天ブログ
- yuwki0131-blog: ラムダ計算の使い方
- 技術者/プログラマのためのラムダ計算、論理、圏第2回
- 2017年振り返り - The curse of λ
- d.y.d.
- d.y.d.
- katsumata.pdf
- 並列論理和の続き - sumiiのブログ
- 表示的意味論に基づくパターンマッチングコンパイル方式の構築と実装
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「圏論の「圏」はなんで「圏」なんだろうとずっと思ってたけど可換図式が輪っかを描くからだってことに最近やっと気づいたよ」 / Twitter
- nkamlさんはTwitterを使っています 「型付きラムダ計算とカルテジアン閉圏の対応は理解できた(と思う)ので他の例を見てみたいなど...」 / Twitter
- OddieさんはTwitterを使っています 「型付きラムダ計算から得られる圏C(λ_→)は基底型(基本的なデータ型のこと)の集合Xから自由生成されたカルテジアン閉圏になっており、任意のカルテジアン閉圏Cがに対し基底型の対応する対象を指定することで、カルテジアン閉圏の構造を保つ関手C(λ_→)→Cが唯一つ決まる(ラムダ計算の意味論)」 / Twitter
- https://twitter.com/shinji_kono/status/1307988467096326144
ホーア論理・意味論
Incorrectness Logic
- Masahiro SakaiさんはTwitterを使っています 「Incorrectness Logic https://t.co/DUWxMRaaeT ホーア論理は「QはPのもとでのCの実行後の状態の過大近似である」という関係 {P}C{Q} の導出に関する体系なのに対して、Qが過大近似ではなく過小近似である [P]C[Q] という関係の導出に関する体系 incorrectness logic の提案。 #POPL2020」 / Twitter
- Incorrectness logic | Proceedings of the ACM on Programming Languages
- Masahiro SakaiさんはTwitterを使っています 「ホーア論理(correctness logic)は不具合が存在しないことを証明する体系なのに対し、この incorrectness logic は具体的な(特に不具合を表す)実行例の存在を証明する体系になっていて、テスト、記号実行、バグ発見ツール等で使われている概念を捉えている。 動画: https://t.co/P4ef3AwSuk #POPL2020」 / Twitter
- Incorrectness Logic - YouTube
- Masahiro SakaiさんはTwitterを使っています 「過大近似と過小近似で双対的なんだけど、意外と直観が 働かなくて、でもテスト、記号実行、バグ発見ツール等で使われている概念をうまく捉えることができるよう形式化されていて、面白いな。 #POPL2020」 / Twitter
- main.pdf
ミーリーオートマトン・意味論
- 2019-5-4-4.pdf
- ムーアマシンとミーリーマシン - Google 検索
直観主義論理
- summer2013.dvi - summer2013.pdf
- jms.dvi - jms.pdf
- cm_of_mell.pdf
- 直観主義論理入門 - resume.pdf
直観主義論理 停止性
- summer2013.dvi - summer2013.pdf
- 直観主義論理 - Wikipedia
- 4.pdf
- 40_1.pdf
- 62_0621115.pdf
- msj07.dvi - msj07.pdf
- ko0307.pdf
- ppl2020.pdf
- winter05.pdf
証明支援系・直観主義論理・圏論
- Shinji KonoさんはTwitterを使っています 「最近の学生は定理証明支援系から数学に入る。それはつまり圏論から入るってこと。Agdaがお勧めだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最近はすっかり 排中律込みの一階述語論理? だめだめ、あんなの。やめとけ。 って気分だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「学生の頃は「選択公理使わないとどうなんですか」ってな感じで、吉田先生が「微分方程式の解の存在とかが出ませんね」で そんなのいらね だったんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「今は排中律=選択公理で、非構成的な仮定の一つだというくらいの気分なので いや、別にいいから、どんどん仮定して使えよ って感じ。排中律でも選択公理でも。どこで使ったかがわかるなら問題ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そして、排中律の証明があると思った瞬間に矛盾。それは不完全性定理に当たると思っても良いし、圏論的な問題だと思っても良い。あくまでも 仮定 だとすれば問題ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律を完全に排除して議論するのはAgdaならそうなるが、煩雑であることも確か。常に二重否定がかかってるみたいな逃げ道もある。つまり排中律を気にせず議論して、あとから、どこに非構成的な推論があるか調べても良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので直観主義論理で微分方程式の解の存在が証明できないというのは間違いで、非構成的な仮定から存在を導くことはできる。そもそも非構成的な命題なんだから、それで良い。だから 数学は全部、直観主義論理で良い ってことね。非構成的な仮定/公理も躊躇なく導入して良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律込みだと非構成的な仮定が曖昧で探す羽目になる。例えばドモルガン。片方向が非構成的。高階論理でないと公理の有限性とかに気を使うことになる。それは時間の無駄。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、圏の圏とかはlevelの抽象化が必要なので、ちゃんとはできないらしい。このlevelがhigher orderってことなのだが、圏論本には出てこない。Agda/Coqの問題。Level合わせは結構めんどい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「公理はえてして矛盾するのだが、解消は矛盾した公理のループを切れば良いのでわりとたやすい。切った部分は構成的な推論として正しい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、うちの学生を見てるとあんまりわかってない感はあるよな。自分でも学生の頃に学んだLKは面白いなくらいだったので、その感じはわかる。」 / Twitter
意味
- Sho YokoiさんはTwitterを使っています 「何かを知り何かを作ろうとする諸科学はむしろ意味(形式的な表現から現実世界や興味の対象への対応付け;解釈)に強く興味を持っており意味をできるだけ切り捨てて形式的な体系を追い求める数学が特例的という状況で相手方に discipline を強要してしまった、というよく見る悲しい案件に見える。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「数理統計はきっとつらい分野で、人間の活動や科学の言語として用いられるときは意味の問題は不可分なのに、一見数学なので「意味を持ち込むな」マンが登場してしまうのかもしれない。 (勿論数学として深められるのは良いことだと思う。論理学が人の論理的推論から離陸して新しい世界を作ったように)」 / Twitter
- A. OkunoさんはTwitterを使っています 「@sho_yokoi 自分は意味を持ち込むな派ですが,解釈が大事だからこそ解釈をする回数や範囲を絞るべきだと思っています.数式と解釈の変換(語の対応)には十分気を使うべきで,件のプロレスなど既存の語の定義を日常語からの類推に置き換えている時点で語るに落ちている・・・」 / Twitter
- A. OkunoさんはTwitterを使っています 「@sho_yokoi AICが未来を予測している,みたいな話もそうなんですが,(伝言ゲームは必ず失敗するので)情報はできるだけ正確な形でだけ変換して最後にだけ解釈するのがよさそうに思うところです・・・」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門外の話だと書き放題だな わっはっは(死」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
確率論理
- 確率論理 - Wikipedia
- ファジィ論理 - Wikipedia
- 砂山のパラドックス - Wikipedia
- 誤った二分法 - Wikipedia
- ラフ集合 - Wikipedia
- <30312D88CB978A985F95B62D927C93E090F290E690B62E706466>
- 論理的推論への確率論的アプローチ
- 反証主義に対してAyer50) やLakatos51) が繰り広げた批判の一つとして取り上げられたり,またそれらに答えるSir Karl Popperの議論2-4)でも注意されている事ではあるが,彼らの議論を待つまでもなく13),確率的言明はどの様な結
- スライド 1
- 07.pdf
非古典論理
- 非単調論理 - Wikipedia
- 自己認識論理 - Wikipedia
- 無限論理 - Wikipedia
- 矛盾許容論理 - Wikipedia
- 中間論理 - Wikipedia
- 多値論理 - Wikipedia
- クリプキ・モデル - Wikipedia
一階述語論理 一階命題論理 変換
- 一階述語論理 一階命題論理 変換 - Google 検索
- 数理言語 - ke-8-slide.pdf
- 知識工学 - ke.pdf
- nyumon_logic.pdf
- IBMが深層学習と記号論理をつなぐ技術、画像の内容を1階述語論理に変換しソルバで解く | 日経Robotics(日経ロボティクス)
- Introduction to Mathematical Logic
- 1.dvi - 1.pdf
- 4.dvi - 4.pdf
- 21_622.pdf
- CiNii 論文 - Unsupervised Grounding of Plannable First-Order Logic Representation from Images
- Microsoft PowerPoint - fol.ppt - fol.pdf
blog
- 含意の真理表はどうして決まるのか : tnomuraのブログ
- 論理包含の定義に関する違和感について - 七誌の開発日記
- フィッチスタイルの自然演繹のやり方 - Yabu.log
- タブローの威力 - 誰にも見えないブログ
- 論理学をつくる練習問題80(2)解答 - Yabu.log
- 今日の論理学:極大無矛盾集合に成り立つ5つの同値関係の証明 - 誰にも見えないブログ
- 今日の論理学:極大無矛盾集合の充足可能性補助定理の証明~APLの完全性証明 - 誰にも見えないブログ
- 今日の論理学:ハゲのパラドックス,連鎖推論のパラドックス,誤植など - 誰にも見えないブログ
- 今日の論理学:数学的プラトニズム、直観主義論理、排中律の廃止、NJ、誤植など - 誰にも見えないブログ
- 今日の論理学:直観主義論理続き,対偶の部分的な成立,排中律/背理法/二重否定除去の相互変換 - 誰にも見えないブログ
- Avendia
Qiita
- Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita
- テクニクシャンマンさんはTwitterを使っています 「Scalaで論理体系を作る話 - 2. 命題論理その2 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強力な論理である古典論理… https://t.co/OnVeM2Od5F」 / Twitter
- qiitascalaさんはTwitterを使っています 「https://t.co/jTuF0mz5cf Scalaで論理体系を作る話 - 2. 命題論理その2 #scala 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強」 / Twitter
- Scalaで論理体系を作る話 - 2. 命題論理その2 - Qiita
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
Twitter
第一不完全性定理
- ytakanoさんはTwitterを使っています 「第一不完全性定理 https://t.co/IL1yzAC26O」 / Twitter
- ytakanoさんはTwitterを使っています 「S式をつくってevalしていくとゲーデル文Gができると言う寸法か」 / Twitter
- ytakanoさんはTwitterを使っています 「こっちがいいかな。cadrとevalを繰り返すと無限に同じ式が出てくる。 https://t.co/Ubbe1FZOvp」 / Twitter
- ytakanoさんはTwitterを使っています 「Provableの綴りまちがってたw」 / Twitter
- ytakanoさんはTwitterを使っています 「S式はデータでありプログラムであるからできるのか」 / Twitter
- ytakanoさんはTwitterを使っています 「Schemeで実装する不動点と第一不完全性定理、もう少し綺麗にできた。 https://t.co/yv0MZIbVgD」 / Twitter
- ytakanoさんはTwitterを使っています 「不完全性定理、ペアノ算術やらをすっ飛ばしても、Lispと嘘つきのパラドックスが理解できると、重要な点は理解出来る事に気がついた。証明まではできないけれど。」 / Twitter
- Schemeによる第一不完全性定理の実装 - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「ゲーデル文があるところからなら、直感的に理解できるな。」 / Twitter
論理と型
- Shinji KonoさんはTwitterを使っています 「型=論理式、λ項=証明で、仕様記述は証明を含んでる。 仕様を型なしλ計算で書くと矛盾する可能性はある。 型のない仕様記述が何かってのは面白い問いだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「testing typeless specification by type evaluation かな。まぁ、Unification だが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Prologは型なし。しかし、一階述語論理。それが面白いところ。型は一階述語論理には含まれてない。appendが書けるというのはPrologのアイデアから10年かかってる。appendの正しい仕様を書けなかったってこと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「型とは何かってのに戻ってくるな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「仕様記述は論理式なので、その変数は単なる記号。その中身にはあらゆる可能な値が入る。値とは、スコーレム関数を含む関数と値の任意の組だな。エルブランモデルの値ね。型がないとはそういうこと。型なしλ計算。Prolog」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は一階述語論理で展開するから型がない。集合ってなんでも入るからな。なので x∈A とかを毎回書く必要がある。それが型。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理は型付λ計算を使って、命題は型、推論は型付λ項、真偽は証明で決める。ベースになる型 Set にはレベルが付く。逆説的だがSetには型はないとも言える。レベル以外の型はない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので型のない仕様記述とは、一階述語論理のことだろうな。それに証明を付けると仕様記述が型になる。恒真あるいは充足可能な一階述語論理式は正しい型を持つ感じか。それを評価/evalとみなせるのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaで、a : ? みたいにして論理式を書くことはできる。ただし、関数型 f : ? → ? は書かないと f a とか書けない。その状態で論理式を書くと型のない仕様記述に見える。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「?の代わりにSetと書くと通るのかな。それはないな。全部?で型検査することはできる。その時点でも型のエラーは出る。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「関数の継続は関数のopenな部分になるのだが、データ型にも最後にSetを入れてopenなデータ構造にするというのを考えたことがある。その部分にメタな計算が入る。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの?は便利なのでプログラミング言語にも欲しいな。IDEが持つべき機能かも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「誰が考えたんだろ。初出は?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は数学のC言語というのを提唱してる。集合のアドレスは取れて整列できるのだが、そのアドレスにある集合に何が入っているかは不明。SEGVあり。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「圏論はもちろん関数型言語」 / Twitter
ホーア論理
- uint256_tさんはTwitterを使っています 「ホーア論理って実用的(?)に使われてるんですか (この問いが意味あるものなのかすらわかっていない)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t Eiffelにホーア論理にそって、事前条件、事後条件、不変条件何かを指定してチェックできるんですけどね。そういうの流行らないですね。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 面白そうなので調べています」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t 有用だと思うんですけどね。型を書くのすら避けたい私にはいらないものですけど。それでも、assertを一杯入れるのはやろうとしたことがある。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 そういうことがコンパイラ基盤レベルでできると面白いかなと思ったのです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t それ面白い。コード生成の正当性のチェックとか事前条件・事後条件だけ指定してコードを推定させるとか夢が広がる」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 絶対に便利だと思うので頑張って実装します」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@uint256_t 実用面だと、既存の重要なプログラムの verification などの話は一時期ぼちぼち耳にしました。テクニックとしては、coq などでは素朴な state monad が使い物にならないので hoare state moad と呼ばれる物を使ったり等があります。」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@uint256_t hoare state monad もそのままの定義で使うと transformer(https://t.co/9sHABxeibp)が必要になったりするので、問題領域にあわせた独自の monad を作ることが多い、らしい、です。 software foundations(https://t.co/vgGPfKiz7x) でも扱われています。coq で記述する際は参考になると思います。」 / Twitter
- IPSJ-TPRO0502002.pdf
- Software Foundations
古典論理
- 古典論理 直観主義論理 排中律 - Google 検索
- ytbさんはTwitterを使っています 「論理学を勉強しだした学生で、「真理表が難しい」と嘆く人結構多いじゃないですか。 最初は奇異に聞こえるんです、だってあんな表、小学生でも覚えることができるじゃないですか。 でも、そもそもあの表は何を表現し、なぜあの値に決まったのか、って誰も何も説明しないし、そりゃ分からないですよね」 / Twitter
- ytbさんはTwitterを使っています 「入門的な教科書って日常言語との自然な類推で論理的概念を導入しますよね。初めはいいんです。 まず「真理値は1/0の値で、これは日常言語で『真』と『偽』を表します」って言うじゃないですか。一見自然に見えます。 実はここで古典論理を密輸していて、後で躓く原因になるんですよね。」 / Twitter
- ytbさんはTwitterを使っています 「「かつ」 ∧ と「または」∨は問題がなくて、個々で躓く人はあまりいないと思います。「AかつB」が真なのは、Aが真で同時にBが真のときだし、その逆も成り立つ。そりゃそうだ、という感じで。 否定「でない」¬も実はきな臭いんですが、これも一応自然に見えます。」 / Twitter
- ytbさんはTwitterを使っています 「だけど、「ならば」⇒、問題はコレなんですよ。 A, Bが真ならば「A⇒Bは真」、つまり「草が緑ならば安倍晋三は内閣総理大臣である」が真、明らかに変に見えます。さらにAが偽の時「A⇒Bは真」、「今日が晴れていれば今日東京オリンピックが開催された」、おかしいですよね。」 / Twitter
- ytbさんはTwitterを使っています 「これ、排中律を仮定すると、直観主義論理上、A⇒Bと¬A∨Bが同値になってしまうために起こる現象で、日常的な「ならば」と意味的に大きくかけ離れているように見えるんですよ。 なんとなく自然言語の意味の類推で真理表を導入するると、ここで分からなくなるのではないかと思います。」 / Twitter
- ytbさんはTwitterを使っています 「だから、私は、古典論理を教える時は、 ①自然言語における推論と関係がない、純粋な代数系のひとつとして教える ②証明論的に、直観主義論理+(便利な)排中律という体系として教える(でも変なことも起きるのは我慢してと言う) のどちらかにしないと概念的な混乱を招くと思うんです。」 / Twitter
- ytbさんはTwitterを使っています 「そうですね、「または」というのは命題論理において実はあまり重要な結合子ではないので、たんなる言葉の定義の問題のように見えるからじゃないでしょうか。 一方、「ならば」はまさしく論理的推論の今回を表す言葉で、その意味のブレは看過できないからではないのだと思います。」 / Twitter
- dorompaさんはTwitterを使っています 「@ytb_at_twt A∨Bも自然言語の排他的論理和とは違いますけど、初学者でもそれほど違和感なく理解できて、A⇒Bの方が圧倒的に誤解が多いのはなぜなんでしょう。」 / Twitter
- ytbさんはTwitterを使っています 「今回→根幹」 / Twitter
- Masaki HagaさんはTwitterを使っています 「真理値表は古典命題論理の意味(解釈)を定義しているわけだけれど,その意味の意味がわからないですよね」 / Twitter
- Masaki HagaさんはTwitterを使っています 「日常生活で同じ記号(言葉)がもっと曖昧で異なる意味を持っているから「とりあえず古典論理ではこういう意味だよ」とか言われても困ってしまうんだろうか.なんで「りんご」はりんごって意味なんだろうとか普段過ごしてても思わないわけだし.」 / Twitter
- Masaki HagaさんはTwitterを使っています 「いまは便宜上「りんご」と言われたら,現在目の前にあるこのりんごのことを意味することとします(現在スーパーに売られているりんごや,あなたが昨日食べたりんごは「りんご」ではありません)とか言われたらそりゃ「は?」ってなりますよね.」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「〈⇒だけの論理〉 古典論理において、 P∧Q ⇔ ¬(P⇒¬Q) P∨Q ⇔ ¬P⇒Q が成り立つため、命題論理の命題は、演算子を⇒と¬だけにしても表現できる。」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(パースの法則)[古典論理] ((P→Q)→P)→P ※この公理は排中律と同値である。」 / Twitter
- インターネットさんはTwitterを使っています 「古典論理の意味論の方で真理値を集合(ただしこのときクリプキフレーム上の順序の入った集合でも位相空間の開集合でもなく一般の集合)とすることもできて, 集合演算はブール代数になるので2値に帰着できる (話がとっ散らかってしまった)」 / Twitter
- ukikagiさんはTwitterを使っています 「「古典論理(や直観主義論理)では仮定が偽の命題は自明に真だから反実仮想的な言明には意味がない」というのはナンセンスで、単にこれらの論理が自然言語のそのような側面を捉えられていない(あるいは意図的に削ぎ落としている)だけである」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「そういえば、僕はほとんど直観論理といっても意味論の方はやったことないんだけど、「Heyting代数意味論ぐらいは多少知っとくと良いよなあ」って感じで考えたら少し面白い直観が生えて、 古典論理だと二重否定をつけても「情報」が減らないからLKの右と左だけで議論できて矛盾(空シーケント)に対しての」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「強さを考えれば良くて、それがまさに「極大充足可能集合」というアイデアな訳だけど、直観論理はそういうことができなず「右シーケントを壊さない極大な左シーケント」みたいなのをシーケントごとに用意しなきゃいけないという風に考えると、妥当ですかね」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「s/壊さない/示さない」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「ex falso quodlibet 矛盾から任意の論理式が帰結されるという爆発律は、自明ではない気がします。 少なくとも、僕にとってはあまり納得感が無いのですが、皆さんはこれを素直に受け入れているのでしょうか?」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「尤もらしく思える二重否定除去を認めると、爆発律が導かれてしまいます。 古典論理では爆発律を認めざるを得ないし、直観主義論理も(納得できるかは別にして)爆発律を推論規則としています。 ¬や⊥の解釈、またはそれらに関する推論規則を変えることで、納得感のある説明ができるのでしょうか?」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「二重否定除去 ⇒ 納得できる ハイチュウ律 ⇒ 美味しそう もとい、排中律 ⇒ 納得できるけど、成り立たないのもアリだと思う 爆発律 ⇒ いまいち納得できない」 / Twitter
- みくぺ ⍤⃝さんはTwitterを使っています 「@The_Maya_Hiker 私もすごい違和感あった どうやら、直観主義論理での証明図の''¬''と''⊥''がそれぞれ 最小論理での証明図(画像)の''→M''と''M''と入れ替えられるみたいで、 ¬の導入と¬の除去はそれぞれ→の導入と→の除去のひとつだと考えられる、というのが前原さんの論理学の本の付録で紹介されてた https://t.co/ImuMIeAgZe」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「@Cubism_FM ありがとうございます😃 なるほど、そういう捉え方もできますね。 僕の持っている戸次先生の本では、そもそも¬P をP →⊥の省略形と定義しています。 最小論理や直観主義論理では、古典論理とは否定の意味が違うので、確かにこう定義すると推論規則が上手く体系化できるようです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Union自体にはsupは使わないのだが、Unionの公理で否定形を使う必要がある。 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ... 古典論理なら、存在記号からsupが取れるわけだが、直観主義論理はそれを許さない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「似たような理由で選択公理と整列定理は直観主義論理だと別物になる。逆に正則公理は選択公理と同じになる。その差は存在記号の位置にあるのだが、直観主義論理では存在記号ないから。代わりにε-inductionを使う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りは80年代に研究されたらしいのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理も連続体仮説もPowerを含む一部の命題の話なので、それだけ議論すれば良い気もする。ZFのモデルなのは自明なので… 真実性定理みたいなのは命題全体の中身に関係するから難しいかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ODに関してはNもMもまったく同じ(一対一な順序数を入れ替えただけ)なので真実性定理が成立してると言っても良いのか。そもそも選択公理も連続体仮説もODの外にあるから。」 / Twitter
- エヌユルさんはTwitterを使っています 「多数の人間は古典論理で会話してないし古典論理で自分の命題を証明しようともしてないとTwitter論理学者たちは気がつくべきでは?」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(爆発律) 間違った命題からはどんなことも証明できる。 ※これを採用しない論理体系を矛盾許容論理という。」 / Twitter
SAT
- mr-csceさんはTwitterを使っています 「めちゃくちゃたくさんのものが命題論理式や一階述語論理式が充足可能かどうか、という問いに落とせること、凄いなという気持ちになった。 この間のn-colorable問題を充足可能性問題にreduceできるというのは単にNP完全の証明なだけではなくて、SATソルバでその問題を解けるということだしね。」 / Twitter
- mr-csceさんはTwitterを使っています 「同様に他の多数の問題が充足可能かどうかという問題に落とし込めるということは、それらは全てSATソルバやSMTソルバで解けるということだから凄いなぁと思った。 こういう研究でもよかったかもしれない。笑」 / Twitter
- ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
- でぃぐさんはTwitterを使っています 「命題論理のコンパクト性を使ってなにか証明するの、計算の問題をSATに帰着させる過程に似ている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理と直観主義命題論理だと普通に判定方法違いますからね。古典命題論理は証明図に沿ってやるならDavis-Putnamみたいになって、高速にやるならSATソルバー(はCDCL)ってことになるけど、直観主義だとその手ではうまくいかない」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「各原子論理式を命題変数でおき、全ての原子論理式の連言をFMで変数消去、生成された各制約条件(の命題変数)が元になった制約条件(の命題変数)の連言から含意されるという命題論理式を生成。すべての変数の消去後に、生成された命題論理式と元の論理式の原子論理式を命題変数にしたものをSATソルバに。」 / Twitter
- quiver2kさんはTwitterを使っています 「@yuyabu2 すごく雑に言えば、元の問題をどんなに複雑でも命題論理式に変換すれば良いと言っているようなもので、SAT側も受けは広いですけどね。」 / Twitter
- p進大好きbotさんはTwitterを使っています 「@j_tGAP またすみません。クラスモデルMでは論理式φの相対化φ^Mのメタな証明可能性ZFC⊦φ^Mは確かに独立命題があるのでφと¬φのどちらも偽になるかもしれませんが、φ^Mそのものと充足関係Sat(M,φ)は同値であり、こちらに関してはMが1つ与えられれば真理値が参照できるのではないでしょうか?」 / Twitter
- なたがわさんはTwitterを使っています 「ふと思い出してTwitterで答えを得たいシリーズその2 「ちょうど片方のみが充足できる命題論理式のペアを受けるとどっちが充足できる方か教えてくれる神託付きの機械でSATを多項式時間で解く」(教えてください...)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@mt_tilde 個人的にはHeyting代数も結構好き(古典論理におけるbool代数のように、各命題に1つずつ値を割り当てるだけでよいし、直観主義論理のLindenbaum代数になっている)なんですが、KripkeモデルのほうがSATに落としやすかったのでipc_botではKripkeモデルを採用しています。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Existential Quantification as Incremental SAT https://t.co/rIuuIC0OnW : 命題論理式の量化子除去をやるのにBDDとか使うのではなくSATソルバでという話。 https://t.co/wYypHYim6A」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの胡散臭い宣伝をした後、Prolog入門の説明をわっとする。DCGでパーサ作る。ラムダ計算を作り、型を付け、型推論し、Fether Weight Javaを実装する。ホーア理論を実装して証明し、命題論理を変換し、SATで解く。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologを使えばという話の流れを考える。 アフィン論理を理解するには線形論理等の基本となる命題論理を理解しないとー。 命題論理を解くにはSATで解くのが良くて、Prologを使えばSATも作れるし、変換も簡単に書ける。それで、、、なんだっけ?っていう。。。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「アフィン論理と線形論理を理解しようと思ったら、命題論理がわからなくてSATなら解けるらしく、Z3だと関数のnotを取ればいいだけなのでいちいち書き換えしなくてもいいっぽいので楽そうだけど、よくわかってないのでした。結構チュートリアル長くて眠くなってきた。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「PrologでSATとかSMTの実装も短く書けるみたいだけど中身わからないし、命題論理は奥が深いんだなぁ。ググると論文とかPDFが出てくるのは非常にいいかんじなので、twitterで俺が荒らしてる感じもするのでローカルなところで話したいけど、誰もいなくなると嫌だ。うううっていう。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「SATが完全かどうかとかもよくわからんのだけど、けっこう素晴らしいんだな。 完全ではないけど健全な命題論理言語をPrologで作るのは多分簡単なんだろうなぁ。 しかし、出来ない焦るイライラするw 日本シリーズ見るw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「命題論理を解くにCNFにするとよくてCNFを解くのはSATが便利で、SATのすごいのがZ3などのSMTなのだな。」 / Twitter
- Akira SugiuraさんはTwitterを使っています 「あ。前見たスライドに載ってた・・・orz SATは命題論理。SMTは述語論理。> https://t.co/kJEZt97V97」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理の問題に対して直観主義命題論理のソルバーを使うのは牛刀なので、もう少し良さげな方法としては、論理式の否定をとって充足可能性に帰着して、Tseitin transformationでCNFに変換して各種SATソルバに解かせるのがよい。これなら理論的な計算量も落ちるし速い」 / Twitter
- yoriyukiさんはTwitterを使っています 「命題論理に限れば、SATがすごく速くなった。制限があるけど述語論理もSMTでなんとか。一般の量化や帰納法が課題。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理の証明可能性は、論理式の否定をとったあとに変数を増やしながらCNFに変換してSATソルバーに入れるのがいいと思いますけど、二重否定をとってipc_botに投げても解けます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理は比較的簡単(SATの補問題なのでco-NP complete)だけど一階述語論理は決定不能で、そこをどうにかうまくやるソルバはいくつもある」 / Twitter
- h_sakuraiさんはTwitterを使っています 「SATが論理命題で、SMTは算術演算があるやつで、z3はマイクロソフトの高速なSMTなんだな。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理のソルバー、判定するだけならSAT solverというソフトウェア群が知られている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@ukikagi run {} for 8 なので、位数8以下という前提を立てて、そうするとドメインが有限になるので命題論理式に落とせて、あとはSATで解くという感じですね。必ずしも小さい方から出力されるわけではないようです。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「論文のネタにしようかと思ったけど明かしてしまうと、The ILTP Libraryの直観主義命題論理のデータセットのうち証明不可能なもののほとんどは、菱型のKripkeフレームを用いてSATに変換すると一瞬で反駁できる。」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「SATとか詳しくないけど https://t.co/HEcex0YXbb 関係あるような話題として、sbtのAutoPluginのためのこんなコードが既に入ってるので https://t.co/UG7Y0TtfIZ 依存関係管理に命題論理が役立つ? #ScalaMatsuri」 / Twitter
- mti@さんはTwitterを使っています 「充足可能性問題(じゅうそくかのうせいもんだい、satisfiability problem, SAT)は、一つの命題論理式が与えられたとき、それに含まれる変数の値を偽あるいは真にうまく定めることによって全体の値を'真'にできるか、という問題をいう。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理、解きなさいって言われたらSATソルバーにかけるだけなのに、証明図を書きなさいって言われた途端めんどくさくなるから理不尽ですね」 / Twitter
算術
- Shinji KonoさんはTwitterを使っています 「不完全性定理は実際に決定できない命題pを構成するけど、p∨¬pの仮定とは両立する。それを場合分けすると、両方で⊥になる。あんまりよろしくない。でも自己言及してるはずだから直観主義論理での⊥の導出は停止性に引っかかるのか。対角線論法側は?」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「〈一階算術の公理系〉 有名な公理系を挙げる。 1.ペアノ算術:ペアノ公理+加法+乗法 2.ロビンソン算術:(1)-数学的帰納法 3.プレスバーガー算術:(1)-乗法 1と2は不完全性定理より真偽が決定不可能な命題が存在し、3は量化子消去ができるため全命題の真偽が決定できる。」 / Twitter
- プレスバーガー算術 - Google 検索
- プレスバーガー算術 - Wikipedia
- プレスバーガー算術は本質的なのか? - martingale & Brownian motion
- プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
- 原始帰納的算術 - Wikipedia
- 原始再帰関数 - Wikipedia
- 初等関数算術 - Wikipedia
- ペアノの公理 - Google 検索
無理数と集合
- Miura HidekiさんはTwitterを使っています 「どうせ無理数は関数の結果から得るしかないから、式を式のままで扱えばよいと思う」 / Twitter
- ╹ω╹linguini.leanさんはTwitterを使っています 「@miura1729 式の結果で表せる実数の集合になんか名前付いてないんでしょうか」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @1inguini なんらかの新しい表現(=式)を与えて新たに特定の数を示すことによって式の結果で表すことが可能になっていくため、集合としては成り立たない気がします。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局なんらかの「表現」を持って来て記号処理で、という話になりますよね。」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「“一般の無理数を表すデータ構造” をつくるのは無理なはずです(そもそもプログラムは可算無限個しかないのに対して無理数は非可算無限個ある)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「無理数には二種類あって、一つは述語論理的な記述を持つもの。そして、それ以外。まぁ、それ以外っていう記述は持つのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一つの実数と特定できるか、範囲を限定できるもの。」 / Twitter
集合論・位相・表示的意味論
histric-1
- Shinji KonoさんはTwitterを使っています 「集合論使ってると、ポインタとキャスト使いまくりのCとSQLの組合せみたいで最低だな。でも、それは偶然ではなくて、当時、論理的な記述にしようと思うと、述語論理とそれに基づく集合論の記述を使うしかなかったってことね。既に圏論もあったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論と排中律の組合せだと、まず、 x なんか集合がある A x B ∋ x かどうか排中律で調べる。そうだったら A ∋ a をxから取り出せる。どっかでみたCのプログラムみたいだろ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんかの集合Aから分出公理で select A (λ x → ... ) でいろいろ抜き出す。もちろん、それがSQLのselectの元なので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「置換公理のわけわかなのは、どんなに大きな集合で入れ換えても怒られないところ。まぁ、それ含めてUnionとれば良いじゃんってことなんだろうけど。構成主義とはほど遠い。でも、そこは上界があるのいう明示的な仮定で。上界はHODで取ってこれる仮定なので、まぁ、どうってことない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、置換公理は ε-inductionには関係しないはずだな。その辺りがHODの便利なところ。なので、いけそうな感じだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「V=Lって最近まで記号モデルに制約する的に読んでたんだが、VはあらゆるPower Setを含んでるので、むしろ、どんな部分集合でも完全に定義できるだけの定義可能な述語を持ってるって話なので、まぁ、無理っぽい。HODも同罪に見えるが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HOD自体にはPower Setを作る能力はなくて、そこはsup(上界)に押し付けてる。supは構成的ではないのだが、構成主義論理は寛容なので「それがあるとすれば」的なものは許してくれる。もちろん「矛盾しても知りません」なのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので HOD=V ってよりは HOD+ sup=V みたいな感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろ謎な部分は多いけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HOD=ORD的な仮定を入れてるのは田中先生の本に書いてあったからなのだが、かなり微妙。定義可能なものを数えた順序数を使います的な。なので可算に落ちてしまう。sup で入れたPower Setも「それは記述可能だからOk」的に入ってる。実際の部分集合すべて的な記述は超限帰納でしかアクセスできない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「基数も見かけは簡単に書けた。これがなんなのかは、これから調べる感じ。この手の存在量化は recordで書くべきだな。 Card : OD Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ Bijection a x }」 / Twitter
- Shinji KonoさんはTwitterを使っています 「∃x∈A→P x は ¬ ¬ ( ∃x∈A→P x ) = ¬ (x∈ A → ¬ P x ) なので、二重否定を入れれば構成主義論理で問題なく議論できる。 この辺りが強制法で様相論理を入れる理由。なので構成主義論理でやる限り。必要ないらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は集合とその関係∈なので、Agda的には二つのLevelがある。圏だと対象と射と射の関係ななで三つ。ODは順序数とその方程式なのでLevelは一つ。つまり∈のLevelに制約が付く。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Trans finite induction は順序数と述語を含むのでLevelは二つ。可算順序数なら実際に証明できる。単なる帰納法に落ちるので。なんだが、OD側では一つしかLevelがない。足せば良いのだが、排中律と選択公理の関係で排中律の対象となる述語のLevelを限定する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ってことはTrans finite induction の述語はn に相対的に決まるのでn、suc n、… ってことになる。可算順序数なら、そのどれでも証明できる。使用するのはnとsuc nの二つ。suc nが多いのだが、排中律から選択公理を出すのにnがいる。なので二つ用意してた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超限帰納法TFが可算順序数に対して証明できるってのは面白い。整数論の整合性はTFで示せて、不完全性定理的には示せないのだが、それはTFは非可算順序数に対しては証明できないから。TF自体はモデルがあるから無矛盾。Pの無矛盾と証明があるのとは別なのか。 ¬ ∃ ¬ Pと ∃ P だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りの議論のはぎれが悪いのは、メタ数学を議論するのに古典論理を使ってるからなのか。そこは直観主義論理を使うべきところなわけね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理の独立性でも、選択公理を否定しても無矛盾を先に示してる。え、それで証明終わりじゃないのと思ったものだが。」 / Twitter
histiric-2
- Shinji KonoさんはTwitterを使っています 「古典集合論だと集合持ってきて、それをモデルにするとかやるのだが、ODによる連続体仮説だと直接Lを構築するので、それは要らないみたい。問題は集合と順序数との対応だから。V=Lから連続体仮説を出すのが既にできるはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理の方はよくわからない。排中律から行くのではないはずだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論の中からは∋があれば順序は決まる。対応するアドレス(順序数)の絶対値は知り得ない。問題は部分集合間の順序なので、Power Setの問題になる。もちろん、それらはODの世界では絶対アドレスがあるので順序がある。⊆も排中律がないので、どっちかは決まらない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドは、どうもZFでない自明な集合論があると思ってるらしく。選択公理は自分たちのsetでは正しいとか書いてる。yの部分集合の要素z(y)を<y,z(y)>の順序対にして、それ全体を取ると自明に選択関数になる。そのz(y)が取れないから泣いてるんですが。setは要素から徐々に作られる的。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドのsetは要素から順々に作られるので整列定理も自明。でも、それでは実数は作れない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドでは直接的にPower ωの選択関数を否定する感じか。ωの選択関数は最小値を取れば良いのでZFである。ωの部分集合なら帰納法が使える。Power ωだとそうはいかない。でも超限帰納法と排中律で見つけることはできる。整列してるから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「だったら排中律に制限を入れれば一発か。選択公理が成立しないような排中律の反例を入れておく感じかな。LではPower ω はL ωの要素でもあるから、L ωにそういうものを入れられるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もっとも、それが入るのはPower Setだけか。 (x : Power P ) → L P ∋ x ってだけだな。L P = Power P だと自明に成立する。他には影響しないから、ベキ集合の公理を邪魔しなければ良いってこと?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ベキ集合の公理を出そうと思ったらネットが落ちてるんだった。github側があるな。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x ) power← : ∀( A t : ZFSet ) → t ⊆ A → Power A ∋ t 二重否定が入ってるのは直観主義論理だから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これはPower Aが構成的でないことが原因。なので、A ∋ x に証明がなくても許される。これは都合が良いかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFもだいぶ見えてきた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律から選択公理を導出するところでは二箇所で排中律を使ってる。普通に使うところと ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B だな。x がないと、B を作れない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここで二重否定が入るのは Power Aが構成的である必要を外すため。そうでないと、Power AはA ∋ xを構成する方法を全部知ってる必要がある。A=ωとかなら良い。A = Power ω だとちょっと。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x )」 / Twitter
- Shinji KonoさんはTwitterを使っています 「D : HOD → HOD つまり定義をHOD として Df x = Power x ∩ D x を使ってLを構成するってideaなんだが、 L ω = V ω なDでないとだめ。Lに自由度があるので V = L にも自由度がある。 V = HOD ⊇ L だがDをPower xにするとV=Lになる。 ても、そこからは何も出ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「record L : Set (suc n) where field ldef : (x : Ordinal) → odef D x ∧ Set n とするとDに適切な制約を入れれば D → ZF とできそうな気はする。Vとかωとかがちゃんとできれば。Dが強制条件でGeneric Filterとかになれば。もっと簡単な条件もありそう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なのだが、このV=Lから選択公理=排中律を出すのはなぁ。整列定理はHODでは成立してる。古典集合論だと排中律の方が仮定されてるから… 順序数方程式で排中律が成立する条件みたいなのを探さないとダメか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「連続体仮説の方はDをそういう風に定義できるできると思われる。もともと、それに近い仮定は入れてしまってるのだが。古典集合論のHODでもそれに近いは仮定はあるみたい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もしかして、Dの定義に排中律を書けるのかな。 lem : D lem x = record { od = record { def = λ x → & (Power x )∧ (λ y → Dec ( odef x y )) }} うーん、どうかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「で、そこに対角線論法を書くと選択公理を否定できる的な?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コーエン先生は「数学は選択公理と連続体仮説抜きで議論されるようになる」ってな考えだったみたいだけど、直観主義論理と圏論はそういうものだな。同じものだし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Dec は強過ぎるが、¬ ¬ Dec ってのもなぁ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「¬ ¬ Dec ( x ∋ y ) ってもしかして、何も言ってない?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「表示的意味論と集合論は、位相空間論の重要な応用」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、それはわかるんだが、論理そのものが可算に閉じてるので、いろんなものを自然数にencodeするのが数学ってことだと思うと少し虚しいところがあるな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そして数学者は数論に回帰するわけね」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、可算無限の本当の大きさを人は知らない」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は、整列定理と選択公理が排中律で分離できるってのを最初に教えてくれれば、もっとずっと早く理解できたと思う。まだ、チコノフの定理やってない。」 / Twitter
自然演繹・原論
- Shinji KonoさんはTwitterを使っています 「もともと集合論で数学自体論理自体に疑いが出てきた時に、論理とはこういうものと疑えない操作的意味論を持つ、つまり 単なる記号ゲーム として提案されたのが自然演繹、Natural Deduction 。そして今の定理証明支援系につながってる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然演繹以前の論理学は、単なるそれっぽい文学。もちろん、モデルがあれば整合性があるのだが。ユークリッドとかニュートンとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「吉田先生がいきなりユークリッドの原論を言語で読もうと言い出したのは、自然演繹を越える何かがあると思ったからだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然演繹NJは記号の処理だけだが、原論は図と作図操作がある。作図操作は物理制約なので記号的な操作とは異なる可能性がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「図に関する推論も結構研究されて補助線を導出するとかあった。回転とかの幾何学的推論を記号に落とす方法はデカルトの解析幾何、つまり、線形代数がある。確かにそれは原論のモデルになるのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「原論の推論に対応するものは自明には見えない。」 / Twitter
定理発見
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「定理発見は演繹操作では無理で、モンテカルロ法的な手法が必要。 数学の法則は無限に存在するはずだが、たぶん99.99...%がゴミ法則という罠。」 / Twitter
- モンテカルロ法 - Google 検索
直観主義論理・一階述語論理
- Shinji KonoさんはTwitterを使っています 「集合論と一階述語論理で数学を記述すると、∀ x . ω∋x → ... ってしつこく書くとこになるので煩雑。高階直観主義論理で書くと明確になる。要するに圏論/Dudective Systemでやれってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「数学的帰納法はAgdaではdataの分解になる。そこに、なんの曖昧性も出てこない。一階述語論理でやるとかなり悲惨。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超限帰納法も教科書通り極めてsimpleに書ける。 TransFinite : { ψ : ord → Set (suc n) } → ( (x : ord) → ( (y : ord ) → y o< x → ψ y ) → ψ x ) → ∀ (x : ord) → ψ x これは可算順序数上で証明可能。可算順序数は構成的存在物ってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaで書いたので、今更、Model に関する理解が深まった。そして、等式述語を入れる難しさも理解した。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「All X => All Y => (( Exist Z => ( ( father ( X , Z ) ∧ father ( Y , Z ) ))) ⇒ brother ( X , Y) ) は brother ( X , Y) :- father (X , Z) , father (Y , Z) に正しく変換された。ちょっとうれしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理のinterpretationは個々の述語の審議値の定義。公理をすべて真にするのはModelという。矛盾があると命題は全部真になってしまうので、無矛盾性は偽な命題があること。あるいは非自明なModelがあること。公理がなくても恒真な命題は任意の interpretationに対して真。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの実装でこの辺りを調べるだけでも面白かった。Modelの構築で見落としがあると、なかなか公理が真にならない。公理には∀が入ってることが多いから。ってModelを手で作るからだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「恒真な命題は割と簡単に真になる。トートロジーと恒真を区別するのはやめろ〜 区別してるのはダメな本認定で。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理の∀と∃はカッコに対する位置に過敏で間違えやすい。初学者泣かせ。幸いなことにプログラミングには出てこない。節形式にすればなくなるので幸せになれる。∃を関数に置き換えるだけでも。εδも関数明示でわかりやすくなる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「εδでも実際の証明では関数使うが、一般的に∃が関数です置換え可能ってのに自力で気がつくのは難しいかも。ただしscopeがずれることがあって… 正則公理と選択公理の区別がなくなったり。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「正則公理のミニマルは自分自身との共通部分が空な自分の要素だから、空でない集合の要素を取ってきてるので確かに選択公理っぽいのだが、排中律があれば「取れるか取れないかどちらか」なので特になにも付け加えられないのでセーフ。直観主義論理では関数を作る必要があるのでアウト。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理の方がはっきりわかりやすしいし、定式化も楽。そういう風に記述するべきだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理はモデルを使って意味付けるが、直観主義論理では証明があることが真の意味になる。モデルの構築は面倒だが、証明は限定的。公理に矛盾があるとモデルは全部おじゃんだが、証明は無矛盾に触らない限り有効。証明があるなら恒真ってのはわかりやすい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理で非構成的な議論ができないわけじゃなくて、二重否定で包んで議論すれば良い。非構成的な存在物、例えば選択関数でも、明示的に仮定すれば良い。今の数学だと選択公理はそうなってる。排中律でもそうするべきだってのが一番の違いかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデルは排中律が成立しない命題を自然数を使って実際に構築するわけなので、排中律は明示するべきってのは説得力がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「整列定理と選択公理が同値なのは排中律があるからなのだが、整列定理は公理っぽい。実数でも右から左の順序あるし。二次元だとあんまり自明じゃないが…」 / Twitter
- ゆかたゆさんはTwitterを使っています 「ところで慣れていない人が物事の「本質」をモデル化しようとする時にはunionを取ってしまいがちという偏見があるのですが、intersectを取った方が嬉しいことが多いです。」 / Twitter
- intersect - Google 検索
histric-1
- SUHARA Hiromichiさんのツイート: "アトミックな命題についてはその通りなのですが、Prologで定義できるすべての命題についていうと、無限再帰や無限バックトラックを起こすことができ、つまり、真偽の決定できない命題が書けるのですね。これをもって、Prologの不完全性をいうことができます。… https://t.co/Qjwk2ZomeB"
- Тургеневさんのツイート: "Prolog(論理型プログラミング言語)においては、真であると明示的に宣言されていない命題はすべて偽として扱う(閉世界仮説と呼ぶ)ということを今日習ったんだけど、「そこになければないですね」って店員が言うのはダイソーが閉世界仮説を採用しているからだとわかってすっきりした"
- yuyabuさんはTwitterを使っています: 「フレーゲの公理系すごいな。6つのトートロジーと2つの規則から任意のトートロジー導けるとかヤバすぎでしょ。」 / Twitter
- yuyabuさんはTwitterを使っています: 「10章入った。任意のトートロジーを扱いたいので公理系をつくる、という話。公理=自明なトートロジーを置き換え規則を適用することで任意のトートロジーを導くことができる。例示されたフレーゲの公理系では6つ!のトートロジーから任意のトートロジーを導くことができることが証明されている https://t.co/3JD1gEMtFf」 / Twitter
- チャーチ数 - Google 検索
- 帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
- Miura HidekiさんはTwitterを使っています: 「クリティカルパスを短くするのとカルノー図を用いた論理圧縮は独立な事象だと思うけど、HDLを使っていればその程度の論理圧縮はやってくれる気もする。」 / Twitter
- 解答略さんはTwitterを使っています: 「こういう図を見るたびに思うのですが、微細加工技術の進歩した現代の半導体回路設計の現場においては 「論理素子の少ない(面積の小さい)回路図」 はそれほど求められて無い気がする。むしろテクノロジーマッピングを考慮して 「動作速度の速い(クリティカルパスの短い)回路」 を作る方が重要なのでは https://t.co/FoBBISedMS」 / Twitter
- 論理回路学たんさんはTwitterを使っています: 「<論理回路学・要点のつながり> 論理関数の簡単化 複雑な論理式を簡単化すれば 回路の部品が減って,良い回路になる。 論理式の簡単化は方法が2つ ・ブール代数で計算して簡単化 ※下図(3)→(6) または ・カルノー図で出力をまとめて簡単化 ※下図(3)→(4)→(5)→(6) https://t.co/ZpXOK8f4Hl」 / Twitter
- FadisさんはTwitterを使っています 「再帰は末尾再帰最適化が行われない場合1回まわる毎に少なくともリターンアドレスがスタックに積まれ、再帰回数が多すぎるとプロセスはスタックを使い切る。末尾再帰最適化はコンパイラの気分でかからない事がある為、ループ回数について予想がつかない場合の再帰への書き換えはおすすめできない」 / Twitter
- FadisさんはTwitterを使っています 「再帰でスタックを使い切ってページ未割り当てのアドレスに値をpushしてSEGVしたメモリダンプは画像で見ると縞模様が出やすいので目grepビギナーにオススメ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「一般論としてまったくその通りなんだけど、関数型言語の中には言語仕様で末尾最適化を保証しているものもあったり。Scheme (R5RS) なんかはその例。 ただし以下の階乗の例にあるように末尾最適化が可能なコードは、素朴な再帰的書き方よりもやや冗長になることが https://t.co/bSOFBzri9R https://t.co/3jTKm3opAn」 / Twitter
- お気楽 Scheme プログラミング入門
- きいねく@とりあえずやるさんはTwitterを使っています 「論理式って一行表記すると視認性わるいよなぁと常々思っていたので,これくらいはやりたい. (特に量化子の部分を小さくするのはよくやる) https://t.co/t62gffQuHR」 / Twitter
- 状態(の変化)*さんはTwitterを使っています 「JSONをunificationベースで扱う、とか、JSONに(論理学でいうところの)述語を突っ込むとか、あるにはあるけど https://t.co/KvRbb1fBTd これ使えばPrologはつくれるよね」 / Twitter
- JsonLogic
- 状態(の変化)*さんはTwitterを使っています 「QuineのNF関連みてるとわかるけど、atom(集合論の界隈ではurelement=原要素、という用語を使う)が何であるかは論理型言語とかメタプログラミングの上では割とどうでもいい(処理系はそこに頓着する理由がない)」 / Twitter
histric-2
- ぁゃιぃツイートをしないさんはTwitterを使っています 「え、もしかして古典論理の定理を二重否定した奴全部直観主義で証明できたりしますか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@Kory__3 命題論理ではそうで(Glivenko変換)、述語論理では量化の付近にも二重否定をつける必要があります(Godelの二重否定変換)」 / Twitter
- cutsea110さんはTwitterを使っています 「1階述語論理の論理式の真偽を自動判定するのは原理的に不可能…why? 後続の有界スコープ仮説を導入して命題論理式に変換すれば…SATソルバに云々はワカル!!」 / Twitter
- 26_3_78.pdf
- アラクーさんはTwitterを使っています 「命題論理を項書き換え系とみなして完備化すれば自動証明システムを作れるクヌよ!」 / Twitter
- アラクーさんはTwitterを使っています 「@yukeizuta 四色定理とかケプラー予想とかのように部分的にコンピュータに計算させたものから、それこそ論理式のレベルで命題を解くようなシステム(グレブナー基底などの項書き換えシステムを含む)の研究もなされていると思います」 / Twitter
- ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「ゼミの準備として書いた単純型付きラムダ計算の項から対応する命題論理の証明が出せるっていう証明。要するにCurry-Howard対応(の一方向)。手抜き。 http://t.co/q84AlTrB @ideoneさんから」 / Twitter
- gQUcZ - Online IDE & Debugging Tool - Ideone.com
- ミノ駆動さんはTwitterを使っています 「「テストは『欠陥があること』しか示せない」 ソフトウェアテスト原則のひとつ。 テストでバグがあることは証明できる。 しかしバグがないことは証明できないのだ。 例の検査にも同じことが言える。」 / Twitter
- 広瀬香美さんはTwitterを使っています 「それが良いなら、 命題 -> プログラム 直観主義命題論理の自然演繹において、 命題さえあれば、証明図は定まる 証明図は、型付け図に対応できるので、命題は項をエンコードしたものとみなせる。 プログラム -> 命題 項が与えられたら、命題も得られる つまり 命題 = 項(プログラム) も言えないか?」 / Twitter
- 広瀬香美さんはTwitterを使っています 「~しくみのほうでは、型判断でターンスタイルを使ってたので、論理式で使う記号と分けて使いたいのかなとなった。 ~序説のほうでは、ターンスタイルはもっと上位の概念で使ってた(証明図が得られることをターンスタイルで表していた)から、まあ仕方ないのだろうけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「記号論理は interpretation とmodelだな。そして、それは自然演繹とは別。」 / Twitter
- AzさんはTwitterを使っています 「@jeeema この辺の話ちょっと混乱しがちだと思うんですけど、ZFC の話をするときには有限長の一階述語論理は集合論 (ZFC) なしで扱える事は認めて良いです」 / Twitter
- AzさんはTwitterを使っています 「@jeeema 文字の「集合」を扱わない事で対処します。集合として扱う”必要“があるのはモデル論を考える段階になってからなのでもう少し高レイヤーな話になります」 / Twitter
- AzさんはTwitterを使っています 「@jeeema キューネンの最初の方、かなりふわふわした話が書いてあって、前もって知らないと理解しにくい可能性があるので、適当に飛ばすなり sig-foundation で質問飛ばすなりするのが良いと思います」 / Twitter
証明
背理法
- Hiroyasu KamoさんはTwitterを使っています 「高校で学ぶ数学の範囲では証明に背理法が本質的に必要な定理が明示的には出てこなくて、背理法のありがたみがいまひとつ伝えづらいのがつらいところです。通常は最初に出会うのは中間値の定理です。」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「「証明に背理法が本質的に必要」の定義は、古典数学で証明できてBishop流構成的数学で証明できないことです。念のため。」 / Twitter
- とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 あまり詳しくないのですが,√2の無理数性とかは背理法が本質的に必要とはならないのでしょうか? また中間値の定理は背理法を用いずにも示せる気がします。。。」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 √2についての有名な証明は否定導入(pを仮定して矛盾を導くことから¬pを結論する)であって、背理法(¬pを仮定して矛盾を導くことからpを結論する)ではありません」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 中間値の定理の証明から見かけの上で背理法を消すことはできますが、そのかわりに排中律だの三分律(任意の実数a,bについて、a<bまたはa=bまたはa>b)が必要になります。」 / Twitter
- とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 ありがとうございます. ここらへんの話に疎いため,そうなんだなくらいしか感想が浮かびません… 素人質問で恐縮ですが,三分律や排中律はRを構成していく時に既に用いてたりするものではないのでしょうか?」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 Bishop流構成的数学が、まさに、背理法を含む非構成的原理抜きで(当然、排中律も三分律も抜きで)どこまで数学ができるかを調べる分野です。それを見ると、背理法なしでもそれなりに実数論も微分積分学もできることがわかります。」 / Twitter
- とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 すごく面白そうですね. ちなみにその流れで行くと最大値定理も背理法等の非構成的原理抜きでは示せないように思いますが,あっていますか?」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@s52GCQ2efiD6NZb @PSXase5 はい、構成的数学で最大値定理そのものは証明できません。しかし、一様連続関数fに対する sup f([a,b]) の存在の形に弱めれば、証明できます。」 / Twitter
- とんぷくさんはTwitterを使っています 「@kamo_hiroyasu @PSXase5 そうなのですね!面白いです^ ^」 / Twitter
プログラミング言語
Qiita
- 古代C言語で1=2を証明してみた - Qiita
- TypeScriptはgradual typingシステムか - Qiita
- What is Gradual Typing: 漸進的型付けとは何か - Qiita
- ある証券会社の証券用語の解説に仕様バグが存在することを形式検証によって発見した話 - Qiita
- 形式検証 / 形式手法のカレンダー | Advent Calendar 2021 - Qiita
Twitter
その他
確率・統計
- アッキーだよ✨さんはTwitterを使っています 「統計学はギャンブラーの学問、確率論は胴元の学問ってのをどこかで見た気がするけどこれは言い得て妙だなと統計学勉強してて思ってる」 / Twitter
- でこすけさんはTwitterを使っています 「@A_kirisaki そう思う(統計は測度(データ生成過程)がわかっていない場合にどうするかの話が多い)」 / Twitter
- 市川 真一さんはTwitterを使っています 「ゼロから自作しないで、とりあえず Prolog で書いてみるとロジックを動かせて良いですよという助言は確かに傾聴に値するけれど、たいていの助言者の人は Prolog に満足していて、ゼロから自作することは無さそうな印象。もちろん、それは素晴らしいことなんだけども、目的が違うことを忘れてはいけない」 / Twitter
- クレイさんはTwitterを使っています 「証明支援系やプログラミング言語ら辺で大事なのはそれを使って「つくりたい/示したいものはあるか」なんだよねきっと。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「定理証明フレンドリなno_stdで動くプログラミング言語はRustで実装済みなので、カーネルを操作するコントロールプレーンの検証などは出来るはず。」 / Twitter
- JxckさんはTwitterを使っています 「テストというものをプログラムと別に書かないといけない、っていう今の状況自体が、プログラミング言語の未成熟を意味してるんじゃ無いかなとかとも思ったりするんだけど、型や証明をガッチガチに極めていったら、いわゆるテストってどうなっていくんだろうか。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「プログラミング言語は自身の存在意義を説明するためにはそれを使ったアプリなりシステムを作るべきなんだけど、Dartはそれを証明できてないんだよね。.NETのクライアントサイドもそのパターンでほぼ死んだようなものだしな(Longhornでクライアントとして使えないことを証明した)」 / Twitter
- mizchiさんはTwitterを使っています 「プログラミング言語の進化の方向性としては agda, coq, isabelle らへんの証明支援をいかに負担ない形で汎用プログラミング言語に導入するかみたいな部分に重きがあるように見えてる(研究が本職の人はまた別の意見や表現があるでしょう)」 / Twitter
- 結城浩さんはTwitterを使っています 「代数構造を数学的に調べたりする以外に、たとえば推論を行う仕組みをもったプログラミング言語はたくさんありますね。最近ではCoqなどの定理証明支援環境などもあるので、それでも「実験」はできそうです。」 / Twitter
- 水無麻那さんはTwitterを使っています 「Haskellで型レベルプログラミング、「結局証明書くじゃん、こんな書きにくい言語でやってられっか」感が強いよね」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap 実際はそうであってもプログラミング言語の実装によっては代数的データ構造とか集合の形で保持することになる気がする(アルゴリズムの証明ってその上に立脚して証明しませんか」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi 数学者だって分かってやってんだから、上手く逃げたと評価してくれるだろうし、逆にアルゴリズムそのものは有限性を一切持たない論理の世界だから、単純配列ですらコンパクト性証明は不能なのではないかなぁ?」 / Twitter
- AOE TakashiさんはTwitterを使っています 「「関数を値として扱うことで、プログラムの証明能力があがり、コンパイルが通った時点で保証できる範囲が広がります」ふむ。:関数を扱えることはどのようにプログラミング言語の能力をあげるか - きしだのはてな http://t.co/NUYsiR2ef2」 / Twitter
- 2013-08-07
- Kazunori OtaniさんはTwitterを使っています 「“Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA Limited” http://t.co/ELSulitgou」 / Twitter
- Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
- ざっきー devさんはTwitterを使っています 「@minamiyama1994 http://t.co/gzB4OlrdKm この記事の定理証明系にIdris含まれているんですが、アレって定理証明系なんですか? 依存型持ってるだけで一応汎用純粋関数型プログラミング言語名乗ってた気がするんですが……。」 / Twitter
- 型! 型! - Qiita
- Takuya HitomiさんはTwitterを使っています 「Alloyは定理証明支援系ではないですよ。仕様記述言語です。有限の事象しか扱わないので証明にはなりません。 / “【翻訳】Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD” http://t.co/kRSNCTVvOc」 / Twitter
- Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD
- トマ村さんはTwitterを使っています 「"普遍妥当な論理式を機械的に導出可能とする公理系と推論法則を言語内部に構築し、実数学の諸概念を離散世界の抽象物に飛ばす機構を目指した言語です." / 極めて定理証明系言語っぽい / “世界で一番ピュアな論理型プログラミング言語Hi…” http://t.co/rVKJmQ8eGe」 / Twitter
- 世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
- Say ya aka詩熊さんはTwitterを使っています 「HTML/CSSはチューリング完全性が証明されたセル・オートマトンである「Rule110」を再現出来るのでプログラミング言語。 Q.E.D https://t.co/7IiTZMDrZJ https://t.co/INAqPmm2lG https://t.co/UnaS70tBYz」 / Twitter
- Rule 110
- Rule 110 - Wikipedia
- 白緑@(計算機(工|科)|数)学さんはTwitterを使っています 「U-22 プログラミング・コンテスト 2021において、私の作ったプログラミング言語"kirl"が経済産業大臣賞(テクノロジー)を頂きました!! 静的型付けスクリプト言語に未来があるという証明のように思えてとてもうれしいです! https://t.co/KzAkFkXyM7」 / Twitter
- White-Green/kirl-lang: An experimental project for statically typed scripting language.
- Junichi Ito (伊藤淳一)さんはTwitterを使っています 「昨日書いたQiita記事の「ざっくり解説」も証明問題と構成的にはほぼ同じなんじゃないかな〜。Rubyの言語機能や標準APIは、証明問題における定理みたいなもんですね。 Rubyのパターンマッチを使って簡単なプログラミング問題を解いてみた - Qiita https://t.co/fR9mWpm3wl」 / Twitter
- Rubyのパターンマッチを使って簡単なプログラミング問題を解いてみた - Qiita
- 森の未知JK@㌠גודזילהさんはTwitterを使っています 「真理表、命題論理にだけ使えるad hocな方法な上に実際に我々が数学するときに用いる論理推論ともかけ離れているので、論理学や計算機科学でなく数学を教えるつもりなら真理表を教える必要はないように思う。」 / Twitter
同型対応
- Koichi NakamuraさんはTwitterを使っています 「同型対応のメモ。型付きλ計算~直観主義論理、多相λ計算~直観主義二階命題論理、依存型+型付きλ計算~直観主義一回述語論理、依存型+多相λ計算~直観主義二階述語論理。ここら辺すっかり忘れておる。」 / Twitter
- KojimaさんはTwitterを使っています 「そういえば直観主義の二階命題論理が cHa による代数的意味論に対して完全かという話は進展があったんだろうか」 / Twitter
- KojimaさんはTwitterを使っています 「直観主義二階述語論理の Kripke semantics が載ってる教科書あったっけ。一階か命題論理なら知ってるんだけど。」 / Twitter
- phares🥟🐏🍃さんはTwitterを使っています 「古典命題論理→古典一階述語論理→二階論理の意味論と、直観主義命題論理→古典命題論理→直観主義一階述語論理→古典一階述語論理の自然演繹→シークエント計算、の授業くらいなら予習なしでいますぐ出来ますし、その先も正規化、カット除去、カリー・ハワード同型の初歩くらいまでなら。」 / Twitter
- phares🥟🐏🍃さんはTwitterを使っています 「帰宅ー。修羅場ちゅうまったく読んでなかったのでロジックに飢えて久々に Basic Proof Theory 読んでる。二階直観主義命題論理。楽しい。」 / Twitter
- Mathematical アーロンさんはTwitterを使っています 「@Kory__3 @Alwe_Alwe System Fが二階直観主義命題論理のモデルになる、とかならわかるんですが(CH対応)」 / Twitter
- AlweさんはTwitterを使っています 「@7danmoroboshi なお二階直観主義命題論理なら∀、→、bottomですべて定義できる」 / Twitter
意味論
- 林檎あめ綿帽子さんはTwitterを使っています 「プログラムの意味論を作って何が嬉しいのか?評価の一意性みたいなメタ定理が証明できて(というより証明のための枠組みみたいなものか)、さらにそういうメタ定理が証明できると問題のプログラミング言語が私たちが期待するいい感じの性質を持っていることが分かり、安心して使えて嬉しいから?」 / Twitter
- カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 プログラム言語で書かれたプログラムは計算機上で実行されることを前提としている. 言語仕様は, プログラムの文法と, プログラムが計算機上でどんな振る舞いをするかを規定している. 後者は操作的意味論にほかならない.」 / Twitter
- カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 操作的意味はかなりセンシティヴな概念となる. たとえばプログラムの中に無駄なループ while (true) { break; } を入れるだけでも操作的意味は変化する. 表示的意味はこうした変形によっては変化しないような意味 (不変量) に着目する.」 / Twitter
- カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 最適化技法のひとつであるプログラム変換は, プログラムの表示的意味を変えずに変形し, 計算効率を改善する課題と考えられる. 変形操作を編み出したり正当性を示したりするには意味論が要る.」 / Twitter
- カムショット・マリファナコカイン・ハードコアポルノさんはTwitterを使っています 「@yumemi_60 https://t.co/thGF54nx1k」 / Twitter
- msj2010sept.pdf
- 林檎あめ綿帽子さんはTwitterを使っています 「@amntksr ありがとう!操作的意味のセンシティビティというのと表示的意味論の旨味みたいなのはまだ知らなかった。参考文献も。」 / Twitter
式の表記法談義
- Hiroki FukagawaさんはTwitterを使っています 「?をつけた心もしくは意味はなんだろう?」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「明瞭に区別したかったら、 定義式 x∈D, f(x) := 2x^2 - 3x, g(x) := x^2 +x -3 恒等式 ∀x∈D, f(x)=g(x) 方程式 ∃?x∈D, f(x)=g(x) 恒等式か? ∀?x∈D, f(x)=g(x) みたいな区別はいかがでしょうか?」 / Twitter
式の表記法談義
- TANIMURA ShogoさんはTwitterを使っています 「「子供に方程式と恒等式の区別をさせることの是非」みたいな話が盛り上がっていたみたいだけど、私は、学生に「いま扱っている等式が、方程式・恒等式・定義式のどれにあたるのか意識しなさい」というようなことをしょっちゅう言っていますが、それってまずいことだろうか https://t.co/1gLBtZSBGA」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「コンピュータのプログラムを書くときだって、変数に値を入れる等号(X := 3 みたいな)と、IF X=Y の等号の意味は区別しないといかんのじゃないですか。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「文脈に無関係に「これは方程式か恒等式か判定せよ」と問うて答えに機械的にマル・ペケを付けるのはよくない、というのはわかります。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「たしかにそういう不便は感じることがあるし、誤解のもとになることもありますよね。 https://t.co/i2wkjLyIus」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「明瞭に区別したかったら、 定義式 x∈D, f(x) := 2x^2 - 3x, g(x) := x^2 +x -3 恒等式 ∀x∈D, f(x)=g(x) 方程式 ∃?x∈D, f(x)=g(x) 恒等式か? ∀?x∈D, f(x)=g(x) みたいな区別はいかがでしょうか?」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「「∃?」や「∀?」という記号を勝手に発明してしまいましたが。等号の方に意味を押し付けようとするのではなく、周りを修飾して文脈を明示すればよいだけのことと思います。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「しかも物理学で扱われる等式、例えば F = ma は、F の定義式であったり、運動を求めるための方程式だったり、法則性を主張する式だったりして、多義的なので、文脈を記述・理解することに重点を置いた方がよいですよね。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「私は、意味や文脈を考えさせないで杓子定規に反応するよう子供に仕込むような教育方法・マルバツの付け方はよくないと思うだけです。「区別した方がよいものは区別した方がよい」とトートロジーを言っているだけです。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「言い争うつもりはありませんし、誰かを罵倒する気もありません。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「教科書を書いた人も、わかっていると思いますよ。「この本だけを読んで、このとおりに従え」というつもりではなく、現場の先生が説明を補ってくれることと生徒が自分の頭で考えることを期待していると思いますよ。理解すべきことのすべてを本1冊に書けるわけがない。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「「?」は疑問文のつもりです。 https://t.co/B1lIHbwdE8 ?をつけた心もしくは意味はなんだろう?」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「「∃?x∈D, f(x)=g(x) 」と書いたら、「f(x)=g(x)が真であるような x∈D は存在するか?」という問いです。あるいは、解集合 S = { x∈D | f(x)=g(x) } を求めよ(空集合か空でないか判定せよ)という問題だと言ってもよいです。@hiroki_f」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「疑問文という文型が記号論理学にあるかどうか知らないのですが、プログラムコード中の条件判定文はそういうものですよね。@hiroki_f」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「「∀?x∈D, f(x)=g(x)」は、「任意の x∈D について f(x)=g(x) は真か?」という問いです。あるいは、解集合 S = { x∈D | f(x)=g(x) } は D と一致するか?という問題です。@hiroki_f」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「自分で勝手に記法をでっちあげておいてナンですが、この「∃?」や「∀?」記法、けっこういいと思いますよ。あと、集合の一致についての疑問文「S=Φ(空集合)?」,「S=D?」と組み合わせれば、たいていの数学的疑問文は表現できるんじゃないかな。 https://t.co/J07Fk44Tdn」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「このくらいにしておきますが、自分も教科書的な本を書いたことのある人間として、ほんとこれは言いたいですよ。「揚げ足取りは建設的でない」と言いたい。 https://t.co/pV9yKziVX5」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「数学や物理学を大学以上のレベルで専攻した人が、小・中・高校の教科書をあげつらうことは簡単ですよ。つまらない。そんなに不満なら自分でもっといいものを出せばいい。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「このくらいにしておきます。」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「真偽の決定の問題は深いでしょうね。私の試みは、とりあえず疑問文は記号で書けるようにした方がいいんじゃないか、という提案です。疑問文に原理的に答えられるか?というのは大問題ですよね。 https://t.co/mYLOqdbNqJ」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「恒等式を書いているつもりでも変数の変域を明示されていないとやっぱり曖昧なので、私は三重イコールはできれば使いたくないです。 https://t.co/xiMGxt59E6」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「三重イコールを定義式に使う人もいて、どっちをどっちで定義しているのか曖昧だったりする(たぶん左辺を右辺で定義している)ので、私は定義式は X:=A(未知のX を既知のA で定めている) と書くようにしています。A =: X と書いてもよい。@L_native」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「そういうことです。意味を考えるべき場面と、意味は考えずに無心に計算した方がよい場面もあるので、また話はややこしいのですが。「意味を意識しない」ことを原理原則とするのはまずいです。 https://t.co/nz49MazjrO」 / Twitter
- TANIMURA ShogoさんはTwitterを使っています 「このへんにしておきますね。」 / Twitter
- ゲルバナさんはTwitterを使っています 「@tani6s 等式だけでは無く文脈まで含めないと判別できないのであれば、等式そのものを識別しているのでは無いので等式を分別すると言うのはまずいと思います。 ラフな書き方ですが、こんな認識を持ってます。」 / Twitter
- ゲルバナさんはTwitterを使っています 「『=』の意味は「a=a」,「a=b→b=a」,「a=b ∧ b=c →a=c」「x=y → 任意の命題関数PについてP(x)↔︎P(y)」を満たすこと。 等式は 元と元の間の『=』な関係 方程式は ある部分集合を条件付ける命題のうち等式で表されたもの 恒等式は その等式が条件付ける集合が全体集合になっているもの」 / Twitter
- なべきちさんはTwitterを使っています 「「=」の意味の違い、って言われると結構もにょるな。 啓林館数学2p21 https://t.co/5oUBK83FDL」 / Twitter
- てらモス♋️さんはTwitterを使っています 「solve equation f(x) = 0 about x を ∃?x, f(x) みたいに書きたい気持ちは分かる(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「下もf(x)=0ね(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「まぁ表記法の問題は誤解の可能性が低くなる方向で好きにしてくれ(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「どうせアインシュタイン記法とかファインマンダイヤグラムとかありがたがるんでしょ(´・ω・`)」 / Twitter
型談義
- サクラさんはTwitterを使っています 「型理論をすると,集合論が例に落ちるのでよさそう(これは罠で,一般性の階層を昇るとやりたかったことからますます遠ざかってしまう(しかしこれも罠で真の一般性を夢見ずして数学をする内在的意味が自分には見いだせていない(しかしこれも罠で外在的意味まで目を向けると云々)))」 / Twitter
- サクラさんはTwitterを使っています 「ややもすると集合論的実現に拘泥してしまうという呪縛から早く解き放たれるべきという話もあるしな(留飲を下げられる点で福音なのやもしれないが).」 / Twitter
- そくらてす@衛府嵐大学さんはTwitterを使っています 「型は集合ではないし、数学的な構造の存在は「集合論」で保証されているとする立場もあるので、アレな意見だな」 / Twitter
- サクラさんはTwitterを使っています 「@7danmoroboshi 先のtweetは緩い気持ちで全く厳密な話を意識していないです.そういう反応を頂けると有難いです. 詳しくないのでもしよければ教えてほしいのですが,ZF集合論は「型が一種類の(型理論の意味での)理論」として捉えられないのでしょうか?」 / Twitter
- サクラさんはTwitterを使っています 「@7danmoroboshi 緩い気持ちをもう少し言語化しておくと,「集合型」だけ定義し,その後は「集合型」を頑張って組み合わせていくみたいなことをイメージして呟いたものでして. なお,鍵括弧でくくった部分は未定義語で,どう定義するべきかさえ調べていないものです.」 / Twitter
- サクラさんはTwitterを使っています 「@7danmoroboshi リプ等で教えていただけると有難いですし,とりあえずこれを読め的な概説記事とかを挙げていただくのも大変有難いです.」 / Twitter
選択公理
- Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「【選択公理】を取り扱う意味(私見) 数学、とくに「論理」と「集合」は厳密でないと困る。 例:ラッセルのパラドックス 「集合」の定義には、現在、ZFC公理系(お約束)が多く採用されている。 例えば ・空集合は集合 ・自然数全体は集合 ・A,Bが集合⇒A×Bも集合 などが保証されている。」 / Twitter
- Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「正確にはこれらを導ける幾つかの「約束事(=公理)」を仮定している。 一つ【微妙なライン】なのが「選択公理」 ・Aλ≠∅ ⇒ ∏Aλ≠∅ なぜ微妙なのか? 微妙っぽい命題を導けてしまう。例えば ・ツォルンの補題 ・バナッハ・タルスキーの定理」 / Twitter
- Tomokazu KASHIO (加塩朋和)さんはTwitterを使っています 「なぜ認めるか? 便利だから(?) 例えば ・基底の存在 ・チコノフの定理 ・代数閉包の存在 ・ハーン・バナッハの定理 進んだ話題: 公理の独立性、強弱、逆数学… 例えば https://t.co/Bil4SRMbfy など参照。ただし、博士進学くらいまでしないと理解できないかも。「9年数学基礎論講義」、なんちゃって😉」 / Twitter
- す (終了)さんはTwitterを使っています 「あっ、KunenのFoundation of Mathematicsにも日本語訳あった(忘れてた)。 キューネン数学基礎論講義 https://t.co/qSyAOoqxxY」 / Twitter
法
- 山 形 聡 志 YAMAGATA, SatosiさんはTwitterを使っています 「@reonaarticle 佐藤健「証明責任とその周辺概念の論理プログラミングによる定式化」(https://t.co/g8Z7P1cIuZ)などが参考になるのではないでしょうか。玲於奈さんが,先日,Prologについて言及されていましたが,この論文の内容は,当該言語(の一種)の法的推論への応用研究とでもいうべきものです。」 / Twitter
- 東京大学法科大学院ローレビュー第4巻 - v04part05(satoh).pdf
- mikumiku_alohaさんはTwitterを使っています 「白田秀彰さんの法律とプログラミング言語の話し面白い。 数式の厳密な証明のためにチューリングマシーンが考案されたように、法律でも厳密な解釈のために人工言語化という研究があったんですね。 「19世紀のドイツ法学界は、この法律の人工言語化を力強く推進した。」 https://t.co/Pjxje74Psa」 / Twitter
- De Legibus et consuetudinibus Interreticuli
- 城戸 (Legalscape)さんはTwitterを使っています 「厳格に法を記述できるプログラミング言語を作った研究。F*を使った証明付きで、実際にフランスの税法関連のソフトウェアに法と食い違いがあるバグを発見できた。著者らはINRIAとMSR。 "[2103.03198] Catala: A Programming Language for the Law - https://t.co/gEZV4hZd7N" #みてる https://t.co/QZpzt9azqN」 / Twitter
- [2103.03198] Catala: A Programming Language for the Law
users
@h_sakurai
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の型理論系統の論文は大体、イントロダクションでなぜ研究を始めたかとかどこに何が書いてあるかとか書いてあって、原語の構文があって操作的意味があり、型付け規則があって、それが正しいことの証明、関連研究、まとめって書いてあるので要約と図を見れば大体わかる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「図に使われている評価規則とか型付け規則は結局のところPrologの述語定義みたいなものになってるのでPrologを覚えて評価規則と型付け規則を書いてるだけだ。 構文は代数的データ型でASTを表したようなものかつPrologの木構造に対する文法定義みたいなものを書けばいいだけ。最低限これが欲しいんだよな」 / Twitter
- h_sakuraiさんはTwitterを使っています 「ところが自作プログラミング言語界隈の言語は言語の仕様がないし操作的意味もない、型付け規則もないので原理原則がわからず、チュートリアルから体得的に覚えろ。みたいな話になりがちでよくないと思うんだよなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologなんて訳わからないから、C言語とかRustとかで書いた方がわかりやすい。みたいな話になるのはわかるのだけど、簡潔さを追求した場合にPrologに負けるだろって話が多くの人はわかってない。2022年元旦だな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「代数幾何の照明は楽しかったんだけど、プログラミング言語の証明はまだまだ楽しいと思えてないな。楽しいドリルが必要だろうw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「小学校からPrologを学ぶのがいいかどうかはともかく、中学生レベルでプログラミング言語を作ったとかいう人達が最初からPrologを触って言語処理系を作って理解したのちにCoqなどで証明を書き始めたら強いと思いますよ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologを理解しなくても一階述語論理は使えるし、証明をするのに便利な規則が必ずしもアルゴリズム的な規則であるとは限らない。だけど、動く規則はプログラミング言語の処理系を作る場合に必ず考える必要がある。Haskellの型クラスの型付け規則は別の研究者によって書かれており論文が出されている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の場合は階層が色々あって大変なんだよな。 プログラミング言語そのものでは研究対象として大きすぎるのでモデルとなる小さい言語を作る。小さい言語について数学的な証明をする。それを使ってプログラミング言語が作られる。それを使って応用アプリケーションが作られる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「階乗計算をするプログラムは有限時間で必ず停止するとプログラムを見て何となく理解できる。それが通常のプログラミング言語やPrologの限界であるが、機能法を用いることができるシステムでは全てのケースを調べずに全てのケースで正しいことが証明できる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の作り方の書き方に沿って丁寧に書かれてて良いと思うけど、理論面がおろそかなので操作的意味や型理論、様々な数学的性質とその証明がついてくると良いだろうな」 / Twitter
- h_sakuraiさんはTwitterを使っています 「どうしてもPrologを言語実装する人達に進めたい理由は、日本の言語研究のレベルの底上げをしたいからなのだよな。 最終的にはプログラミング言語の様々な性質の証明をもっと多くの人に理解してもらいたいと思うけど、今趣味レベルで証明している人は数人みたいな状況なので敷居が高すぎる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「C言語のレベルからOOPを使いこなすレベルにレベルアップする。 パターンマッチを使ったFPでの言語実装のレベルにレベルアップする。 その次に論理プログラミングにレベルアップして、最後に証明を書くステップに移行するのがより滑らかな段階的なステップアップになる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「論理型言語の実装レベルを一足飛びで証明するところにジャンプしようとするから多くの人々は挫折するのだろうから、Prologを使っての論理プログラミングの段階をプログラミング言語実装をしている人達に進めたいのだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Rustのenumを使えば代数的データ型のようなことはできるけど、数学的なBNFでは無い。仕様を書く際にBNFを使って書く練習をする事が今の日本のプログラミング言語実装界隈の実力を底上げすることになる。そう思うのだけど、実装だけならPrologでいいし、証明するならCoqなどでやればいい。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の基礎概念読書会面白かった 導出書くの、めんどくせぇ 誰だ簡単だって言った奴は 簡単じゃないじゃん! 自動的に導出させたい って言っててやっぱそう思うよなぁっと思った TAPLに比べれば簡単だし導出木とか証明木を書き慣れるのにチェックツールあるのはいいと思うけど」 / Twitter
- h_sakuraiさんはTwitterを使っています 「その辺のプログラミング言語と関数型言語の思想の違いは、定義するときに全部、証明を付けて定義している事だ。テストをいくら書いても抜けがあるかもしれないけど、証明されていて、その証明が間違いない事をみんなで確認して間違いないと言っているものは間違いないw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語としてのCoqを理解したあとに、 タクティク一覧作ったり、 足し算だけに絞って証明したり、 宣言型言語として扱って証明したり、 関数の証明もしてみたりしてればしばらく飽きないというか面白な。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologで推論規則を書き下してプログラミング言語を書けました。 Prologを使うと、推論規則を動かしながら試してみることができるので形式的な型理論を理解する大きな助けになります。 数学的な証明と実装の間には構文主導な規則とそうでない規則があることがわかります。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「言語処理系の完全性であるとか、停止性であるとか、様々な性質を証明するにはCoqなどの定理証明系を用いられることが多いです。 Prologは処理速度も遅いですが、論理型言語のパラダイムでのプログラミング言語の作成経験は大きな財産となるでしょう。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@Awed_Urshy @ksu_nori こちらこそ、横から失礼しました。 Lispは論理型言語を作る言語。Prologは述語論理でプログラミングをするために深さ優先で規則を適用するチューリング完全にしたもの。Coq等の定理証明系は述語論理を使って証明をするために自動で論理展開を行わず基本的には手動で規則を適用するものだと思います。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「機械的な論理展開には限界があるから、今日のようなニューラルネットワークが必要になった。 一方で、一階述語論理を使って示された素晴らしい数学的な性質を示された言語であっても、自動実行できない規則による証明があるだけでは、プログラミング言語の実装はできない。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「論理型言語は、高速ではないけれども、プログラミング言語の実装の知識をより簡潔に理解できるようになる。更に論文も読めるようになるので、若いプログラミング言語を作ってみたい人たちには使って理解してみてほしいのだな。Prologで言語を作るのが当たり前になれば、後は証明をするだけだ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@aka94795262 ヒルベルト・プログラムをそのままやろうというわけでもないですし。 直観論理を元にCoqなどは数学をコンピュータ上で作り証明する仕組みを作り出せています。 プログラミング言語の研究は学者の技であり、 基礎は数学で作られます。 作られた言語を職人が使うのです。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prolog用の集合論的型システムは様々なプログラミング言語の理論を簡潔に記述しながらより形式的に型検査可能とするために必要となる技術である。 まずはその型システムの構築が必要であり、型システムが完成したらその型システムの正当性を証明する必要が出てくるだろう。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「MLとかHaskellも昔の遅いコンピュータの時代の言語でしかないし、その頃に開発された証明システムは高速化するために関数型言語で作られてた可能性なども考えると論理プログラミングで証明システムを作って機械証明とかも面白いと思うのだけどな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Scalaで関数型言語の方の素晴らしさを知り、OCamlでコンパイラ作りを学び、Haskellで純粋関数型言語を理解する。Prologで一階述語論理について理解して、Coq、ATSで証明プログラミングを理解した感じかな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の本質的な事柄を簡潔に記述するのに便利な機能は、リスト、パターンマッチ、代数的データ型、BNF、バックトラック、単一化、一階述語論理、証明などなのでそれらの機能を持った言語を使うことが簡潔な理解につながる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「証明というと幾何の図形で、掃除だからとかなんとかは得意だった覚えあるけど、プログラミング言語の数学的証明なところに自然につながると嬉しいよなぁって思う。ワケワカラン大学の数学の思い出があって、再勉強すると辛さ倍増みたいなのあるw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語を図解することは、実装する人と、証明する人と、使う人の3つの立場の人たちにとって理解を共有するために有用と言える。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@ykstprg 高速なアルゴリズムを知っていて高速なプログラミング言語で書けば速くなるのは当たり前なのですけど、それが全てではないのでそこを理解してもらいたいですね。 線形探索は遅いですけど、理論的には単純なので理解しやすいし証明には便利なのですよ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@wakatsuki_moe 汎用的なプログラミング言語は理論を構築するにはあまりにも大きいことが多いので、コアな機能のみを取り出してそれなりに健全性や完全性を証明するということは出来ていると思いますが、実用的な言語はあまり完全性も健全性も証明出来ていないことも多いと思いますよ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「メタ理論、メタ定理とかの話はよく分からんのだけど、プログラミング言語の基礎概念見ると、導出規則だけ定義するということだけだと完全性や健全性が証明されていないので必ず成り立つとは言えないので、必ず成り立つことを証明するようなことをメタ理論というのかな。メタ定理は証明された定理?」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語の理論についても関数型言語を使って型検査した後細かい部分については定理証明支援系を使って証明するというのが主流なのでPrologはもてはやされているとは言えないし。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologも自動証明用に作られた言語でもあるのだけど、自動証明以外の部分の型システムやCoqのようなしょうめいシステムを作って安全で高機能なプログラミング言語を実現してそのメタレベルな仕事をする言語としてのPrologであれば場合によっては十分な力を発揮出来るのではないかなとも思う。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「数学は基礎を築いてそれを応用するのが物理だったり、プログラミング言語だったりするのだよな。数学者は証明を主に扱っているし、物理学者は数学を使って現実の現象を扱っている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「数学の証明の理論が述語論理を使うように作られていたりするのでそれを使ってプログラミング言語の研究論文を書いているから論理プログラミング言語で書くとわかりやすいって話なのだけどわからん人多いので参っちゃうのだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「依存型などの型レベルのプログラミングや証明などのアイディアからTypeScriptやRust、Swiftなどの言語が作られているので静的型システムの理解も大事だと思う。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「論理プログラミングはminiKanrenとかのライブラリが各言語に用意されてるし、Prologのファミリーだけというわけでもなくて、一階述語論理を使った定理証明系の言語はまた違った文化としてあると思う。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「型システムを構築するときには論理的プログラミングが必要になるのだけど、高階論理プログラミング言語の世界だと見方を変えた論理プログラムの自動証明をするだけでいいので多くのプログラムは共有されるのかもしれないな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「一階述語論理は型理論などのプログラミング言語の研究の論文で使われてるし、定理証明系の言語などでも使われてるのだけど、関数が当たり前の時代なので述語だけでプログラムするのがアセンブラ的で嫌って思うんだろうなぁ。」 / Twitter
@kmizu
- Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語でも、Coqくらいになると、証明に関する知識や理解が必要になってきて、既存のプログラミング言語に関する理解だけでは難しいので、そこで壁はある。ただ、HaskellやScala程度だと、既存の言語知識の延長線上で理解できて、そんなに壁がないというのが自分の印象。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Coqは定理証明支援系だろというツッコミがあるかもですが、書いたコードの正しさを証明できるプログラミング言語としてみた場合、みたいな話です。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「数式が曖昧な時に()を囲むと曖昧さがなくなるというのも「なんとなくわかる」けど、腑に落ちない気がしていたり。 その辺りが「構文解析」とか「プログラミング言語の意味論」という概念を用いて、あるいは「定理証明支援系が存在することを知る」という辺りで氷解したのは、不思議です。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@xuwei_k なんかgdgd書いてしまいましたが、現実のプログラミング言語そのものの、ある機能の性質を証明する、というのを限られた時間コストでやるのは難しいので、性質を証明しやすいサブセット言語を作って証明するしかないわけです。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語の話に偏ってるのがなにか勿体ない気がする。実体験として、オートマトンと形式言語、カリーハワード同型対応、(形式的な)証明とか、独学では入りづらいが大学で教えてくれる有用な授業は他にある気がする。 >RT」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Klassicを元にすれば割とサクっと純粋関数型かつ遅延評価で割とまともなの作れそうな気がしてきたけど、それはそれで超手抜きな感じがする……。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、call by nameはともかくcall by needを実装したことがないので訓練にはなるかも(サンクをメモ化すれば実装できそうな気がするけどあってるだろうか?)」 / Twitter
@mootastic
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「証明プログラミング (proofgramming) 言語Kind。見た目は TypeScriptっぽいが中身は Haskellで、より純粋な型および依存型をサポートしている。そのためCoq, Idrisなどと同じような目的にも使えるが、通常のWebアプリなどを書くことも可能。 https://t.co/TyiA75HeAs」 / Twitter
- kind-lang/Kind: A modern proof language
@ksuenaga
- Kohei SuenagaさんはTwitterを使っています 「POPL 2014: 依存型プログラミング言語。停止性の証明をプログラム中に書かなくても良いのが偉い(?)停止性を強制する論理の世界と、停止性を強制しないプログラムの世界とを分けている。」 / Twitter
- Kohei SuenagaさんはTwitterを使っています 「@ksuenaga プログラム意味論の世界で一番有名な教科書の一つです.トピックはプログラムの意味を数学を使って厳密に与える様々な方法や,与えた意味論を使ってプログラミング言語の性質を証明する方法です.東大理情の「言語モデル論」や京大情報学の「プログラム意味論」に関係があります.」 / Twitter
- 言語モデル論
- Kohei SuenagaさんはTwitterを使っています 「プログラミング言語が作れて,コンパイラやインタプリタや型チェッカが書けて,検証手法の健全性の証明ができて,CS のすべての分野にまあまあ精通していて,結構いろんな言語でプログラミングができて,授業ができて,やや特許法がわかる.うーん.」 / Twitter
- Kohei SuenagaさんはTwitterを使っています 「今日のプログラミング言語処理系の質問受付セッションは,決定不能性の証明について語る会になった.」 / Twitter
@tanakh
- Hideyuki TanakaさんはTwitterを使っています 「これらを達成するにはCよりも安全な言語、すなわち、次のような「汎用プログラミング言語」が必要: ・完全な依存型 ・トータリティの検査 ・タクティックベースの定理証明 ・他の言語のコード生成」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「37. Idris フル依存型プログラミング言語。正格で純粋関数型。文法はHaskellに似てる。これでなら僕も多少の関数を証明付きで書けた。I/OにEffectをつかってて、そこがユニークで興味深い、なんだけど妙に出力されるコードが遅かった。今は良くなってるのかな」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「もっぱら定理証明に使われてる依存型の処理系にあって、Idrisは強い型の汎用プログラミング言語標榜してたはずだから、期待してたんだけど、出てくるコードが遅いままなら、難しいよな…(´・_・`)」 / Twitter
@blackenedgold
- κeenさんはTwitterを使っています 「Idrisそろそろ触っとかないとなーって思ってたところで丁度よかった。インタラクティブな証明もあるんだ。 プログラミング言語 idris - wkwkesのやつ https://t.co/3sZ9djbZG9」 / Twitter
- κeenさんはTwitterを使っています 「証明もプログラミングも出来る言語派はtrusted baseが大きすぎて迫害されてるんだろうか」 / Twitter
- 2022年抱負 | κeenのHappy Hacκing Blog
- プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
@TakaoOzaki
- 尾崎隆大さんはTwitterを使っています 「@udzura Prologの大きな発見は論理式の間に副作用を挟むことによって、これまでのプログラミング言語(手続き型)と全く同様の仕事ができる、ということでした。その発見を無視するとPrologは定理証明器ですね。 #lpjp」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@owken64 @nobkz % Prolog '何が言いたいのかというと、 Prologを論理プログラミングであると考えて、定理証明がまっさきに適用分野なんだろうとか考えるかも知れないけれど、実は論理式がプログラム言語になるということが「面白かった」。この段階では『論理プログラミング』は少し後方にいた。そう考えます。'.」 / Twitter
@zacky1972
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kis 本当はその証明も含めてプログラミング言語で記述できて,破壊的な修正をしようとした時にエラーになると良いのですけどね。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@n_soda @_ko1 おそらく手順としては,そのプログラミング言語で記述した任意のプログラムの停止性を証明できることを示せば,チューリング完全ではないことを示したのと同然だと思いました。示唆をありがとうございます。」 / Twitter
@tomooda
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「それはそれとして、まあ形式的な証明はできないけど、プログラミング言語が言語学的な意味でいうところの言語である以上、全てを形式化することは不可能だと思うよ。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「まあでも、プログラミング言語ももうちょい自己修正機能があってもいいと思うんだけどねー。せめて「誤りが1レキシカルトークンのみであれば必ず正解に修正できる」みたいな特性が証明されている言語、かっこいいと思うなあ。誰かつくってクレクレ」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「形式手法というと「証明とか難しそう。無理。」という人がいるけど、VDMなんて普通のプログラミング言語でキッチリしたコードとユニットテストをちゃんと書ける人なら、簡単に習得できると思う。言語仕様は典型的なプログラミング言語より覚えること少ない。ちょっと構文が古風なだけ。」 / Twitter
@y_taka_23
- チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第六章の証明。名前による束縛から de Bruijn インデックスへの変換は、評価の意味論を保存する全域関数である。 #hasmoku #heyhey_haskell https://t.co/7AQA5r4WKw」 / Twitter
- concepts-of-proglangs/StaticScopes.v at master · y-taka-23/concepts-of-proglangs
- チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第八章の証明。単純型システムを導入。型付け可能な式は実行時エラーを起こさず、その型に適合する値にまで評価可能。 #heyhey_haskell https://t.co/1Q1QINGeqB」 / Twitter
- concepts-of-proglangs/SimpleTypeSystem.v at master · y-taka-23/concepts-of-proglangs
- チェシャ猫さんはTwitterを使っています 「いま読んでいる『プログラミング言語の基礎概念』第 3 章の Coq による証明。実行時エラー(種類は区別しない)を含めた評価の全域性。 #heyhey_haskell https://t.co/D1dDUIwWcl」 / Twitter
- concepts-of-proglangs/IntegersAndBooleans.v at master · y-taka-23/concepts-of-proglangs
- concepts-of-proglangs/Functions.v at master · y-taka-23/concepts-of-proglangs
- チェシャ猫さんはTwitterを使っています 「Coq による『プログラミング言語の基礎概念』第五章の証明。関数定義が導入されてようやく Turing 完全に。 #heyhey_haskell https://t.co/hukDAJewCx」 / Twitter
- concepts-of-proglangs/Definitions.v at master · y-taka-23/concepts-of-proglangs
- チェシャ猫さんはTwitterを使っています 「『プログラミング言語の基礎概念』の Coq による証明。第四章(let 式による局所定義の導入)まで。 #heyhey_haskell https://t.co/AY3mk7XWQO」 / Twitter
- concepts-of-proglangs/Metatheorems.v at master · y-taka-23/concepts-of-proglangs
- チェシャ猫さんはTwitterを使っています 「『プログラミング言語の基礎概念』第二章の主張のうちいくつかに Coq で証明を付けました。 #heyhey_haskell https://t.co/CC2Ke7xv7J」 / Twitter
@shinji_kono
- Shinji KonoさんはTwitterを使っています 「モデルは、プログラミング言語の実行時の変数の値としてとらえても良い。Prolog では、変数の値は基礎論のモデルの意味と実際に一致する。しかも、それは記号的に構成されていて、一階述語論理の無矛盾性の証明過程になっている。ただし、var と cut は除く。あ、assert もね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「型の整合性を証明システムまで持っていくのは良いんだが、その場合の型はプログラミング言語の型とはちょっと違うよね。関数型言語の型とも違う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
@fushiroyama
- 父さんはTwitterを使っています 「JAISTで特に印象深いのは緒方先生の関数プログラミングで、定理証明をしたりチューリング完全な独自言語の設計とそのインタープリタの実装、独自仮想マシンの実装とそのコンパイラの実装などを全15回で全部やるという野心的な授業であった。是非他の人にも受けて欲しいぐらい。」 / Twitter
- 父さんはTwitterを使っています 「ここ半月ほど高校生が解くような数学的帰納法の定理証明をひたすらやっていた。証明するのはペアノの自然数の積の可換則の証明みたいな取るに足らないものなのだが、通常の算数と違って、授業で使うプログラミング言語と与えられた部分式を使って証明するので、パズルのような面白さがあった。」 / Twitter
- 父さんはTwitterを使っています 「たとえば人間は自然数の加算が結合則と交換則を満たすことを知っているが、プログラミング言語はそれを知らない。なので証明したい定理の補題はすべて自分で用意しないといけない。式変形もアドリブではできない。なので人間には自明な式もテトリスのようにつなげていく。これが何とも言えず面白かった」 / Twitter
@gaxiiiiiiiiiiii
- がくしさんはTwitterを使っています 「「プログラミング言語の基礎概念」に載ってるメタ定理、証明するのに補題があった方が良いヤツまぁまぁ多いな。」 / Twitter
- がくしさんはTwitterを使っています 「「プログラミング言語の基礎概念」の二章までを証明した! https://t.co/ciVg0SQT8B」 / Twitter
- CoPL/MetaTheorems.v at main · gaxiiiiiiiiiiii/CoPL
@EzoeRyou
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「あ、無限ループのあるプログラミング言語をCoqで証明することは無理なのかな。」 / Twitter
- 狂える中3女子ボレロ村上/陶芸C++erさんはTwitterを使っています 「チューリング完全性の証明って厳密にはどうやるんだろう。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@bolero_MURAKAMI とりあえずプログラミング言語なら、チューリングマシンが実装できたらいいのでは。Clangではconstexprでチューリングマシン実装して証明しているみたいですし。http://t.co/tZyV18D1Fi」 / Twitter
- 狂える中3女子ボレロ村上/陶芸C++erさんはTwitterを使っています 「@EzoeRyou ふむふむ」 / Twitter
- 本の虫: うっかりチューリング完全になっちゃったもの
@kinaba
- kinabaさんはTwitterを使っています 「@ranha 「 Gallina というプログラミング言語 ( 全部これで直接書くことも可能 ) と、普通の証明っぽい記述で Gallina のプログラムを書くための Proof Engine 言語&それ用の対話環境」を合わせて Coq 、という認識」 / Twitter
- kinabaさんはTwitterを使っています 「単純に、プログラムとか関係なく、証明を書くための言語、と思いたい。CurryHowardとか持ち出すまでもなく、「モジュール化が重必要」「抽象化も重要」「究極的には組み込みの細かいステップの組み合わせで書かなければならい」ものの設計にはプログラミングと同じ考え方が使えるというだけ」 / Twitter
- kinabaさんはTwitterを使っています 「#WMM Nominal Isabelleの招待講演:「α変換を上手く仮定して変数名は変にぶつからないとする」という規約はプログラミング言語に関する証明には無いと全てが異様に複雑化して死ねるのですが、機械化するとこの複雑化がもろに降りかかって全員死ぬ、というのがこの分野最大の問題」 / Twitter
- kinabaさんはTwitterを使っています 「…ので、つまりその証明というのは、与えられた問題を強引にプログラミング言語と見なしてチューリングマシンを実装、に他ならない。というわけで、なんでアナタそんなものでプログラム書こうとするの…的な怪しい"言語"が溢れていて楽しいです。」 / Twitter
@keigoi
- KUWABARA HiroakiさんはTwitterを使っています 「pi-calculusはチャネル名の置換がキモであり鬼門」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@hkuwa 特にプログラミング言語的には名前のaliasingと密接に関わっているのだと思います. 証明を試みるとそういう反例がしょっちゅう出て泣かされる感が」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@tfujikura 分離論理はホーア論理+αなので命令型(手続き型)プログラミング言語の検証なら何でもいけると思います。ただあくまで論理でありツールではないので即効性のある使い道は…Coqの実装を使うかぎりでは、地道に証明を入力するしかないです。ただ自動化の余地はあると思います」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@yoshihiro503 Coq案「Coqプログラマーズアンカンファレンス - Coq庵」 Coqは形式手法の一つである定理証明のためのツールですが、Coqのプログラミング言語としての側面や、Coqでソフトウェアを開発できることは産業界においてあまり知られていません。」 / Twitter
@qnighy
- Masaki HaraさんはTwitterを使っています 「前提的な話として、証明支援系で論理をメタ実装するのと証明支援系以外のプログラミング言語で言語または論理の処理系を実装するのは近い問題領域になる。どちらも文字列を直接扱うことは稀で、せいぜい構文解析前の変数名を記録しておくくらいのことが多いはず。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「では束縛変数をどう管理しましょうかってなったときに番号の振り方に流儀が色々ある」 / Twitter
- ツルゲーネフさんはTwitterを使っています 「@qnighy いろいろありがとうございます。まだよく理解できてはいないのですが、例えば証明支援系においては∀xのxの部分をnat型として扱ったりするとよいということでしょうか?(もし何か参考になるライブラリなどご存知であればそれも見てみたいです)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@e9g de Bruijn index, de Bruijn level, unique idなどを使うのであれば通常natで書きます。HOAS/pHOASを使うなら別の書き方になると思います。」 / Twitter
- ツルゲーネフさんはTwitterを使っています 「@qnighy なるほど、ありがとうございます。 普段何気なく論理学の教科書とか読めていますが、ちゃんと式それ自体を扱おうとすると案外難しいということなんですね。de Bruijnなど名前は聞いたことがありますが理解できていないので勉強してみます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@e9g 教科書的な論理学で言うところのα変換やcapture-avoiding substitutionが難しいという話なのかなと思います。かわりに計算機に親和性の高い別の方式が使われているだけで。 (それで思い出しましたが、natを使って教科書的なα変換を実装する、というのも選択肢としてはありますね)」 / Twitter
- ツルゲーネフさんはTwitterを使っています 「@qnighy なるほど!勉強になりました、ありがとうございます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「一流のプログラミング言語は一流の証明支援系を持っている (C++: LEAN, Haskell: Agda2, OCaml: Coq, SMT: Isabelle etc.) と思っているので、僕の中ではRustはまだ一流ではない」 / Twitter
- ELD-R-ESH-2さんはTwitterを使っています 「@qnighy SMTはSMLではなく…?」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@eldesh 確かに……! Sledgehammerの印象が強すぎて間違えたのかもしれません。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみに僕は、プログラム証明をがっつりやっているわけではないですが、後者(通常のプログラミング言語からの証明条件抽出)のほうに好印象を抱いています。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「今はvim/emacsとか、静的型つき/動的型つきなどがよくネタにされるが、2030年頃には「証明支援系でプログラムを書いて通常のプログラミング言語にエクスポートする派」と「通常のプログラミング言語で書いて証明条件を抽出して証明支援系で示す派」がプログラマの鉄板ネタになる」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@utataquiyoshi あれ実体はより低水準な形の証明を出力するメタプログラミング言語だし自動証明も充実してるほうなんじゃないかな たぶん」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Q. なぜわざわざプログラミング言語に関する証明をするのか?定義が正しければ、証明はたいてい退屈なのに。 A. 定義はたいてい間違っている。 ――出典不詳 (TaPLより)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@yoshime1994 Coqは、その対応関係(Curry-Howard同型)に基づいて、証明をプログラムとして書けるように設計されたプログラミング言語のうちの一つ。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Hindleyが単純型付きラムダ計算に主要型が存在することを証明し,Milnerがその声質を保ちながら単純型付きラムダ計算を拡張した.これを実装したプログラミング言語がMLである.現在ではアメリカ系のSMLとフランス系のOcaml(←板書の表記)が使われている.という内容でした」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@li_saku 百聞は一見に如かず!!!と言いたいですが、一応言葉で説明すると、Coqはプログラミング言語ですが、(1)特殊な型(依存型)が作れる (2)プログラムが異常終了・無限ループに陥ることなく必ず終了することが保証されている という性質のために、プログラム=証明とみなし」 / Twitter
@esumii
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「いわゆるeigenvariable condition?」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「そもそも「任意にとる」という日本語がおかしくて、誰の「任意」なのかあいまいだし、条件ついてるので「任意」ですらない。このへんの変数や束縛の理論はプログラミング言語理論、特にλ計算の(定理証明支援器上の)形式化で数十年以上の研究が。#いつもの我田引水だけど本当」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「Nominal logicとかde Bruijn indexとかlocally namelessとかPOPLmarkとか。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング言語理論(ホーア論理)の期末試験でfib(30)を求めるプログラムの正当性証明で,本当にfib(30)を具体的に計算した答案は当然に満点にしました.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「メタと対象の区別とかはプログラミング言語理論を定理証明器上でやるのが最適(陽マ」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「不完全性定理で数学基礎論が失敗」はこれと同じレベルの議論 https://t.co/VUotROqoGk」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「Cはチューリング完全なプログラミング言語である。チューリングマシンの停止性は決定不能である。よってHello, world!の停止性は証明できない。」https://t.co/wbrzel2AHu」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「雑なたとえとして、「不完全性定理で数学基礎論ガー」という言説には「停止性問題の決定不能性で計算機科学ガー」と言っておけば良いのではないか(わりと本気 https://t.co/g2NwDgZZBW」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「ハードウェアの性能向上&定理証明等の形式検証手法の発展で現実的に。すべてのレベル(CPU、OS、プログラミング言語)でメモリ安全性、強い動的型付け、情報流検査」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@kzhk @alltbl Coqのような定理証明つきプログラミング言語環境で書く、とかでしょうか?(ちなみに決定不能だから証明できないということはないです。停止性問題は決定不能でも、停止性が証明されたプログラムはいくらでもあるのと同様)」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/KNrgHM0MTw TAPLは題名(と1章)の通り「プログラミング言語の」型システムの話で、定理証明系の話は(ほとんど)しないと明記されているので、チャンスですね」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「同じ「コンピュータ」上の「計算」でも、定理証明(支援系)まで含めれば普通に等号の公理で「等しければ(イコールであることが証明できれば)置換可能」ですが、確かに狭義のプログラミング(言語)では難しそうです。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「証明」と「計算」の対応を考えると、「同値であることの証明」は「表現を変換するアルゴリズム」に相当するので、後者ではいちいち「表現を変換」しないといけない。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「まれに」じゃないと思うプログラミング言語理論脳(ほぼすべての証明が帰納法と言ってもあまり過言ではない分野」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「理論計算機科学(プログラミング言語理論)なら公園の地面に木の枝でλ式とか帰納法や余帰納法の証明とか書いてました」 / Twitter
@ytakanoster
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「リストとモノイドならRustでできそうだなと思ってやったけれど、さすがに証明は無理だった。 https://t.co/1lRXuIk6tt」 / Twitter
- monoid.md
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「forall t1, t2, t3で勝手に証明してくれないかな」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「こういうことやるならHaskellの方がよさそう。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqなら証明もできる(証明できるとは言っていない)」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Coqは、証明できそうだなと思ったやつが、全然証明できないしやべえよ。」 / Twitter
histric
histric-1
- 水槽さんはTwitterを使っています 「結論は数学とプログラムは同じもの。数学はある問題を証明するにあたって、数式を使用する。プログラムはある仕様をのものを実行(誤りがないコードを製作する)するために、プログラミング言語を用いる。両方とも命題(数学の問題、仕様)が真であることを証明するもの。」 / Twitter
- Mikio YoshidaさんはTwitterを使っています 「考えてみれば、λ言語をプログラミング言語として適用するという研究は、1960年代にあった。論理型言語の方では、ユニフィケーションがアルゴリズムとして完全であることが証明されたのは、1965年である。Lispは1962年。とにかく大昔だ。」 / Twitter
- Yoichi HiraiさんはTwitterを使っています 「@ranha はい、手続き型の言語のプログラムを、直観主義述語論理もどきの証明から抽出できるじゃん! これにモジュールとかつければ未来のプログラミング☆ 的な。 ちなみに、論理式とループの骨組みを組み合わせて論理式扱いしていて、そこまでするかと思いました。そこまでするのが度胸かも」 / Twitter
- YAMADA KiyoshiさんはTwitterを使っています 「eナントカ tacticsを利用して証明をよりコンパクトにしようとこれまでに行って来た証明を見直しているのだが,ここだという箇所を見つけられない.プログラミング言語にRefactoringがあるように,CoqのためのRefactoringルールがあるはずだ.」 / Twitter
- Takayuki HayashiさんはTwitterを使っています 「「(関数型言語の)プログラムが代数的な性質を持つことによるメリットを一言で言えば、そのプログラムの正しさが集学的に証明可能となることです。」とのこと。「プログラミングHaskell」の第13章はその例を示しているんではないかと…。」 / Twitter
- 計算さんはTwitterを使っています 「単純型付λ計算と(命題)論理の対応を見せてプログラミング言語を書く作業と証明を書く作業が同じもんですと言った計算と論理の話は素敵だったと思う。演習では系の上の証明書きまくっただけで理論的基礎にはほとんど触れてませんが。」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「Coqと普通のプログラミング言語の中間的なものならば世間の抵抗感も少ないのかなぁ。普通のプログラミング言語+アノテーションで自動証明(Whyとか)と、証明無しでも使える依存型プログラミング言語(Agdaとか?)と、どっちの方向がより望まれているんだろうか。」 / Twitter
- ウィキペディア しりとりさんはTwitterを使っています 「部分評価⇒Smn定理 http://bit.ly/9PPdp1 smn定理とは、再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている[1][2]。これを最初に証明したのはスティーブン・コール・クリーネである[3]。s-m-」 / Twitter
- ウィキペディア しりとりさんはTwitterを使っています 「カリー化⇒Smn定理 http://bit.ly/aG6mdO smn定理とは、再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている[1][2]。これを最初に証明したのはスティーブン・コール・クリーネである[3]。s-m-」 / Twitter
- Atsushi TanaseさんはTwitterを使っています 「証明型言語という萌芽も教えてもらった。証明を書くようにプログラミングを記述していき、コンパイルできた時点で動作が『証明』できてるから、ユニットテストも要らないぜ、というもの。明らかに『次』だね。」 / Twitter
- えくすわいえくす / xyxさんはTwitterを使っています 「@qnighy_ 割とどうでも良い質問なんですが、Coqの中にあるプログラミング言語の仕様を全部入れて、その上でCoqを書いたプログラムを入れて、中のCoqの受理する証明に対応する命題が外のCoqでも成立することを(帰納的に)示したパッケージとかやっぱりあるんですよね?」 / Twitter
- Takuya HitomiさんはTwitterを使っています 「プログラミング言語のMetatheoryに関する証明では、はじめの定式化をミスると、うまくやった場合と比べて証明が平気で10倍から100倍多くなる。この辺りは先行研究が存在するので、研究の成果を参照しましょう。」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「関数型プログラミング言語を使って、型チェックが厳密になったとしても、作り捨て感覚でプログラミングしてる限り状況は変わらないんじゃないか。 http://t.co/RoB5p3xU それはその通りで、Coqの証明も、他人の可読性をかなり意識しないと、後から読めない。」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「.@halcat0x15a 是非!面倒だけど楽しい、楽しいけど面倒、な定理証明系の世界へようこそ!あと関数型言語で型レベルプログラミングで苦労するくらいなら素直に依存型すればいいと思うよ!>そろそろCoqとか手を出してみたい。」 / Twitter
- TOKUMOTO SusumuさんはTwitterを使っています 「Coqは対話的定理証明器。Bメソッドは集合論だが、Coqは高階論理に基づく手法。フランスのINRIAで開発。特徴は証明のための言語tacticを備えていること、関数プログラミング言語のコード生成が可能なこと #WOCS2」 / Twitter
- ふぉっくす(0x1C)@ΔチカトさんはTwitterを使っています 「@ShigumaRika_mdk まぁ場合によるけど 三平方の定理の証明とかだと 370通り以上あるわけだし あながち数学言語は間違いじゃないかもしれない(プログラミング言語でもいろんな方法で作れるしね 」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「プログラミングで何か確認したいとき、慣れた言語のREPLを立ち上げたりquickcheck的なテストツールを使って簡単に確認したり。AlloyやSPINみたいなモデル検査ツールに慣れてると簡単に確認出来る事柄の幅が広がるし、それはCoqなど定理証明系でも同じ、だなぁと思った。」 / Twitter
- Yuta OkamotoさんはTwitterを使っています 「「関数型言語の長所は、高階関数による高い記述力と証明によるプログラミング。短所は実行時オーバヘッドの高さ。」 #redajp」 / Twitter
- 内村航平に似ているさんはTwitterを使っています 「@zmpn_x31 そもそも「チューリングマシンと等価」ってどういう意味なんだかよくわからないんですよね…プログラミング言語はチューリング完全ということらしいですが、その証明を見たことがないんですよね…」 / Twitter
- 川崎・J・悠太 (旧登録名: 川崎・G・悠太)さんはTwitterを使っています 「@hukuv というよりも、「完全かつ無矛盾な理論体系は存在し得ない」ということを、ゲーデルとチャイティンが数学とプログラミング言語で証明してしまったからね。」 / Twitter
- おくさんはTwitterを使っています 「@kb_asd それはよかった。まぁ書いたプログラムが仕様(というと抽象的すぎるけど)を満たしてることを証明できてしまうやつですね。必ず停止するプログラムしか掛けないのでプログラミング言語とはちゃいます。」 / Twitter
- 青栁 悠太さんはTwitterを使っています 「有理数(整数のペアに同型)列のうちコーシー列であると(Coq的に)証明できるもの全体を考えれば、実数のうち可述的なものは取り扱えると思われる。 QT @osa_k: 任意の無理数を表せるようなプログラミング言語を設計するとして,そもそもどうやって表記するの?」 / Twitter
- みょんさんはTwitterを使っています 「@fumieval 意味論を付加して考えるんですか? チューリング完全なプログラミング言語とは一階述語論理の定理の証明に使う言語(というより文字と記号の列)と呼べるんじゃないかと」 / Twitter
- ふみ a.k.a.DJ MonadさんはTwitterを使っています 「@myuon_myon 無論、意味論があってこその言語です。(理想的な)プログラミング言語は直観主義論理における命題の証明を記述する言語、というのは確かにそうですが、元々の議論における「数学」と同じように扱うのは違和感があります」 / Twitter
- [KH]分隊長さんはTwitterを使っています 「関数型言語ならバグを含む余地がないようにプログラミング出来るとは言うものの,本当に特化した人が集まらない限り完成したソースからそれが分からない気がする・・・。 ソースが数学的に正しい事を証明するプログラム作ってるって言ってたけどそれが要求仕様と一致する証明は一体・・・?」 / Twitter
- あやちぽんさんはTwitterを使っています 「数学ガール ゲーデルの不完全性定理、読了。楽しかった。心に残った台詞がたくさんあった。不完全性定理証明は関数型言語のプログラムみたいでとてもかっこよかった。プログラミング言語って不完全性定理の証明にすごく影響を受けているんじゃないかって感じた。」 / Twitter
- Mikio YoshidaさんはTwitterを使っています 「意外なのが、論理プログラミングの起源。FPより古くて、1974年。R.Kowalskiの "Predicate Logic as Programming Language" という論文。一階述語論理の証明系がプログラミング言語として解釈できることを言った。」 / Twitter
histric-2
- Yoshihiro503さんはTwitterを使っています 「@pasberth @chomado Coqさんはフランス生まれで、純粋関数型プログラミング言語です。だからHaskellやScalaちゃんと近い感じ。でも型の表現がすごすぎて、言語内で数学の定理が証明できるほど。」 / Twitter
- snisimuさんはTwitterを使っています 「ラムダ計算 : "この計算体系が重要なのは、その内部で計算が記述できる単純なプログラミング言語であると同時に、それ自身について厳格な証明が可能な数学的対象ともみなせるからである。" 型システム入門 より」 / Twitter
- コルンさんはTwitterを使っています 「クイックソートは書けるのにボゴソートが書けないプログラミング言語なんて、普通に考えて無理な気がするけれども。Coqとかみたいに、計算量を証明して、多項式時間であることが証明できなければコンパイルできません、なんて言語にすれば良いのでは?(でも、そういうのを作る意味がない気がする。」 / Twitter
- 襖屋石蔵 Ishizo FUSUMAYAさんはTwitterを使っています 「結城浩『数学ガール ゲーデルの不完全性定理』を読んだ. ロゴがアンビグラムの双倉図書館に行く. Peano の公理を含む形式的体系を Gödel 数で表し, プログラミング言語を作るかのように述語を定義し, ある文とその否定に形式的証明が存在しないことを示す. #book」 / Twitter
- 立派プログラマさんはTwitterを使っています 「@echo_ymbk うん、そうですね。きゃめるさんとかScalaとか両立してるし。でも型推論とオブジェクト指向は致命的に相性が悪いので(継承が絡むと推論が失敗することが証明されている)関数型プログラミングには問題ないけど、関数型言語には相性が悪いっす。」 / Twitter
- 島田 俊輔さんはTwitterを使っています 「ただ、依存型で証明駆動プログラミング! みたいのを眺めていると、それもう証明だけかいてprologみたいな言語で走らせればよくね? とちょっと思うのだ」 / Twitter
- yvtさんはTwitterを使っています 「プログラミング言語の仕様を自動で機械的に証明できる方法ないかな (あいまいな点の無さとか)」 / Twitter
- yvtさんはTwitterを使っています 「計算機による自動定理証明がすでにある訳だしプログラミング言語用にうまく利用できそう (よく知らんけど)」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「@kagami_hr 現時点で、通常のプログラミング言語と同等の工数で開発出来るものは無く、多分 10 倍ぐらいかかるかと。ただ、処理系の自動化や証明支援、ライブラリの充実で3倍程度効率化され、一方で私自身の証明力が3倍高まれば、同等になるよな、とは思って修練してます。」 / Twitter
- 林檎あめ綿帽子さんはTwitterを使っています 「よく分からないんですけどプログラムが証明である[らしい]ならばそれぞれのプログラミング言語の扱いにどれだけ長けてもプログラムにやらせたいと私たちが望むことをプログラムに実現させるには数学的な証明の能力、センスが別途必要ということですか?」 / Twitter
- zakkiさんはTwitterを使っています 「究極的には、日本囲碁規約と同程度の分量と難易度の記述で日本ルールを定義できるプログラミング言語の実現と、日本囲碁規約の無矛盾さの証明と、それが与えられたときに勝利を目的関数に設定するだけで万事解決する強化学習アルゴリズムの実現って問題設定でどうか。全部割と無理ゲーっぽい。」 / Twitter
- ありさんはTwitterを使っています 「機械学習がなぜある程度できるかというと、それができるライブラリがあるからだと思っていて、もし機械学習の実験をするのにOSから作らないといけなかったら、とてもじゃないけど誰も実験できないと思うんですよね。数学の証明がプログラミング言語でしづらいのはそういう意味だと思ってました。」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「プログラミング言語の操作的意味論にあたるものが論理体系では証明論的意味論と考えて、だいたい合っています?」 / Twitter
- かのうさんはTwitterを使っています 「プログラミング言語特論 月3 (聴講) プロ言でやった内容+表示的意味論、進行と保存の定理と証明、再帰型等について学んだ。半分ぐらいはプロ言で学んだ知識でついていけそうという印象を受けた。ただし英語のリスニング能力がなさ過ぎて、先生の話す速度に全然ついていけかった。」 / Twitter
- はる💉💉さんはTwitterを使っています 「プログラム言語のif文って、数学の証明で使う「AならばB」と全然ちゃうので、プログラミング教育って罪だよねぇ。。。」 / Twitter
- はかりさんはTwitterを使っています 「プログラミング言語の基礎理論、λに直積型が入ってるの面倒だなあ...と思いながら帰納法の仮定そこだけ証明しないみたいな横着をしてる。今のところ書く量が増えてるだけな気がするしままえやろ...」 / Twitter
- はかりさんはTwitterを使っています 「再帰的データ型を扱えるλ計算、リストが実装できたりしてプログラミング言語っぽくなってきたので型付けの証明が楽しくなってきた。型付けの証明が全部再帰関数の計算を辿るみたいな感じになってそれも楽しい」 / Twitter
- ╹ω╹1inguini.hs(リングイネ)さんはTwitterを使っています 「@FuelSan 数学というか論理学? カリーハワード同型っていうプログラミング言語の型と命題、プログラムと証明の対応関係があって、線形型っていうのは様相論理という考え方?をプログラミングの型に持ち込んだもので、データをちょうど一回しか使えないように制限することで」 / Twitter
- watcherさんはTwitterを使っています 「大昔 ・テスト駆動開発(TDD) ・命題証明的型プログラミング(カリー=ハワード対応) の合わせ技で ①仕様書から確認テストを書き ②それを制約記述言語等にコード化し ③命題証明的型プログラミングでスケルトンや等価コードを生成 できないかと模索した事を思い出しました ①は今でも有効だと思います」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「私はプログラミング言語理論の専門家のつもりですが、プログラムに「不具合が必ず存在するのは理論的に証明されています」という事実はありません。」 / Twitter
- ttさんはTwitterを使っています 「五十嵐『プログラミング言語の基礎概念』のメタ定理の証明について、練習問題の解答に自信がない。嘉田『論理と集合から始める数学の基礎』に帰納法の解説があったから、そちらを理解できるか確認してみることとする。」 / Twitter
- もりたさんはTwitterを使っています 「variableみたいなのって定理証明支援系だとよくあるけど、普通のプログラミング言語だとあんまり見ないんだけどどうなんやろ うまい事使えば便利だと思うけど、副作用とかあると落とし穴が多すぎって感じなんかな」 / Twitter
histric-3
- NaOHaq(苛性ソーダ)さんはTwitterを使っています 「. @chomado チューリング完全なプログラミング言語で書かれた任意のプログラムが「停止するかどうか」を判定するアルゴリズムは存在しない(これは数学的に証明できます)ので、プリンタさんは停止しないデータが投げ込まれる恐怖に怯えなくてはなりません。」 / Twitter
- SUHARA HiromichiさんはTwitterを使っています 「語順(演算子の順序)についていうなら、Coqという定理証明系に組み込まれた関数型言語は、Prologに似た優先順位文法で演算子を定義できますが、Prologよりもっと柔軟に、複数項や後置の演算子も定義できます。 こちらでは誰か日本語プログラミングをやっていたような。。。」 / Twitter
- shs_kzさんはTwitterを使っています 「今回の計算機では、高階論理(HOL)の記述が可能な言語と、その処理系・定理証明系(Isabelle)とを使って、対話系・バッチ系を組み合わせてケプラー予想の証明記述の厳密さと正しさを関数プログラミングで半自動計算している雰囲気。 人が書く証明に近い記述が可能なのだそうな。」 / Twitter
- shs_kzさんはTwitterを使っています 「ちょっと驚いたんだけど、IT分野にも使えそうな?仕様技術言語 Z を 証明環境 Isabelle/HOL にのっけた研究も実績が上がっているらしい。 仕様技術言語で記述されたものを、実装環境にあわせたプログラミング言語にプリコンパイルできたら面白いなあ(SF)」 / Twitter
- shs_kzさんはTwitterを使っています 「8進法による円周率πのn桁目の数字をダイレクトに求めるBBP公式は計算機が「発案」したのだが、その際に使われたプログラミング言語であるPSQLアルゴリズムの開発者ヒラマン・ファーガソンの息子、サミュエルが、トム・ヘールズとともに、ケプラー予想の最初の証明を与えていたんでしたか。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「コンパイルするとついでにSEGVしないことを証明するプログラミング言語が必要」 / Twitter
- 異国カラスさんはTwitterを使っています 「Hilbert上にHilbertインタプリタ実装できればHilbertが無矛盾で完全な言語ということが証明できるんじゃね? / “世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qi…” http://t.co/GphTzfKG5F」 / Twitter
- Tomoaki MasudaさんはTwitterを使っています 「でもって、この真逆の考え方が(たぶん) Coq とかの証明プログラミングで、動作が「明確」であれば、積み上げたものも「明確」に立証される。 乱暴な話だけど、F# のような関数型言語で書くと、部品自体が明確なので、組み合わせも明確になり、明確であればそれに対するテストはいらない。」 / Twitter
- みやびさんはTwitterを使っています 「プログラミング言語のチューリング完全ってどうやって証明するんですか(興味」 / Twitter
- いで@いで庵さんはTwitterを使っています 「@miyabi3180 brainf**kでも実装すればいいのでゎ」 / Twitter
- みやびさんはTwitterを使っています 「@ide_an チューリング完全なものを実装できればその言語もチューリング完全ということですね。brainf**kはなぜチューリング完全なのでしょうか…?」 / Twitter
- いで@いで庵さんはTwitterを使っています 「@miyabi3180 yes(厳密にはメモリサイズの制限があるので線形拘束オートマトンと等価らしいけど)」 / Twitter
- みやびさんはTwitterを使っています 「@ide_an あぁ、万能チューリングマシンは無限に長いメモリを持っているはずだからですね。ありがとうございました。」 / Twitter
- いで@いで庵さんはTwitterを使っています 「@miyabi3180 すまん、質問読み違えた。チューリング機械をエミュレートできるから、でokかな」 / Twitter
- みやびさんはTwitterを使っています 「@ide_an なるほど。」 / Twitter
- suzuki_ithさんはTwitterを使っています 「変数を書き換えられる言語で証明プログラミングするには、時間軸を導入する必要があるな」 / Twitter
- イカ娘さんはTwitterを使っています 「ただ問題は、証明自体がメンド臭いのに、プログラミング言語自体でその辺がホンマ自動で証明出来るようになるかどうかなんじゃなイカ。」 / Twitter
- RyuseiさんはTwitterを使っています 「カリー゠ハワード対応を知っていないと、型と命題・プログラムと証明の関係とか分からないし、ラッセルの型理論が今のプログラミング言語の型にどうつながってくるのかの説明も足りていない」 / Twitter
- mmYYmmddさんはTwitterを使っています 「プリンキピア・マテマティカの形式系は型と階が絡み合う複雑怪奇なものであったが、その後ラムジーの提案やラムダ計算との結びつきを経て、チャーチにより単純型理論として整備された。型の概念はプログラミング言語にとってなくてはならないものであり、多くの証明支援系が型理論の恩恵を被っている。」 / Twitter
- くるぶしさんはTwitterを使っています 「たぶん、操作的意味論の証明についていえば、TAPLよりプログラミング言語の基礎概念のほうがわかりやすいきがする。」 / Twitter
- RyuseiさんはTwitterを使っています 「だから、命題を、特定のプログラミング言語の型として表現して、その型を持つプログラムを書くことができれば、その命題は証明できたことになるわけ。で、そういうプログラムを書く支援をしてくれるシステムが、定理証明支援系。」 / Twitter
- RyuseiさんはTwitterを使っています 「より正確に言うと、ある論理体系と同型対応がある特定の型システムをもっているプログラミング言語においては、「ある型を持つプログラムを書く」ことが「ある命題の証明を書く」ことと同じになる。」 / Twitter
- 小金井ささら | 冬コミ南め37a(2日目) | ユキちゃんかわいいさんはTwitterを使っています 「プログラミング言語の無矛盾性ってどうやって証明するんだろう」 / Twitter
histric-4
- 山貂さんはTwitterを使っています 「@suimye 定理証明からMLへの流れとしては、証明も一種の手続きであることを考えれば、証明のために書かれた言語がプログラミング言語として応用できることは納得できるところかと思います。実際にLCFが何物で、どんな変遷を辿ったのかは未だわからないので、今後調べてみたいところです。」 / Twitter
- 本田そこさんはTwitterを使っています 「プログラミング可能なロボットのプログラミング部分を制御しようとすれば、独自の言語を作り可能な挙動なりを意味論で制御せねばならず、となればそのインタプリタが正しく動くかどうかは定理証明系によって数学的、機械的に保証されるべきという流れになるのではないか。ということを思いました。」 / Twitter
- 猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「アルゴリズムやデータ構造を新しく学ぶと、なぜそれでうまくいくのか証明をつけたくなるし、適当なプログラミング言語で実装して動かしてみたくなる。それがプログラマーという生き物でしょう。」 / Twitter
- 煙人計画さんはTwitterを使っています 「あるプログラミング言語の処理系がチューリング完全ならば、必ずチューリング完全な機械によって模倣できる。チューリング完全の証明が、そもそも、そういうものだから。そして、チューリング完全でないプログラミング言語はほとんど存在しない。」 / Twitter
- Atsushi IgarashiさんはTwitterを使っています 「@OKU_K @skymountain_ プログラミングとの対比で考えると本来は違わないはず、と思うのですが、やっぱり現状の証明支援系の証明言語が、プログラミングでいうとアセンブラみたいな低級言語に近いってことな気がします。」 / Twitter
- LmsytjさんはTwitterを使っています 「Typed Racket盛り上がってなさそうだけど可能性を感じる。 証明プログラミング言語以外で、整数演算と同じ効率で自然数の階乗を定義できるようなプログラミング言語が他にあるようには思えない(知らないだけかもしれないけど)」 / Twitter
- ふくださんはTwitterを使っています 「@yoriyuki @smizusaki 詳しくないので間違っているかもしれませんが、Proof netsの証明図とそのCut除去を代数的に捉えたのがGoI、というのが私の理解です。あと計算機科学ではプログラミング言語の実装手段としてGoIをトークンマシンと解釈する研究がありますIan MackieのPOPL論文とか」 / Twitter
- 今年からてめぇのシノギはナマコ獲りださんはTwitterを使っています 「@nao_2C4 現在のCPUとメモリによるアーキテクチャは(メモリが無限に大きいとみなせば)チューリング完全であると証明されている。よって、そのマシン上で動くプログラミング言語はチューリング機械の性能を越えることはできない。」 / Twitter
- ふくださんはTwitterを使っています 「GoIって「Linear Logicにおける証明 modulo Cut除去」を代数的に表現しているので,Ian MackieがやっているようなGeometry of Implementtationといったプログラミング言語の実装手段として使われる理由が良くわからなったんだけど,」 / Twitter
- ⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「Qモナド(TemplateHaskellでコンパイル時に展開されるやつ)がIOモナドと同等っぽいので 実質Haskellは動的型付き静的型付き定理証明系プログラミング言語」 / Twitter
- 元○○ & effectさんはTwitterを使っています 「1)まず対象をできるだけ論理的に記述し、常識に反する結論(認知的バイアス)が導かれることを確認する。2)次に1で得られた論理的記述を論理プログラミング言語を用いて計算化し、自動証明を行う。3)その機械学習をモデル化し、行動経済学的な意味付けを解釈する。」 / Twitter
- 金狐さんはTwitterを使っています 「魔法はプログラミング言語なので、停止性問題並びに不完全性定理により、コードのバグを予め調べることはできず、言語自体の無矛盾さも証明できない。従って全人類を対象とする魔法は極めてハイリスクなものとなり実装されたことはない。」 / Twitter
- 淡中☆圏さんはTwitterを使っています 「@phykm プログラミングしている時に長い関数を小分けにすることは訓練できますが、数学している時に長い照明を小分けにする訓練というものをあまり聞いたことがありません。これは自然言語の欠陥が一因ではないでしょうか。また長い証明をしていると、仮定が絡まって、現在の環境が見えなくなるのも困ります。」 / Twitter
- פיקםさんはTwitterを使っています 「@tannakaken 証明の小分けとか教科書の大定理とかを除いあんまやらないですもんね… 前提や目標命題を含めた環境管理が動的にふわっと行われてて読者のお察しがつらいのはよくわかります」 / Twitter
- yoriyukiさんはTwitterを使っています 「プログラミング言語にシームレスに統合されてる証明システムってAgdaくらい?(CoqもGallinaをプログラミング言語と見ればよいのか。)」 / Twitter
- Takashi MiyamotoさんはTwitterを使っています 「@blackenedgold Coqで何をやりたいか次第かと。プログラミング言語に興味があるならソフトウェアの基礎(SF)は良い教材だと思う。数学の形式的証明に興味がある人は、SFの最初だけ読んであとはssreflectライブラリの勉強が良いかと。HoTTに興味のある人もいるし。」 / Twitter
- shs_kzさんはTwitterを使っています 「それがいつの日になるかわからないけれど証明支援系の言語でもってプログラミング言語の仕様を記述する時代が来るのではないかと思う。」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「@ebc_2in2crc いえいえ。例えばCoqというプログラミング言語があって、数学的な証明を記述することが出来ます。そこからOCamlやHaskellのコードを生成して実行可能にもできるのです。ただ、おそらくえびさんが困っている現場で適用するのは難しいだろうなぁという。」 / Twitter
- td2sk🤔️さんはTwitterを使っています 「任意のチューリング完全なプログラミング言語はQuineを持つか?という疑問が浮かんだけど3秒で否定の証明を思いついた: 言語AがQuineを持たなければ終わり。持っていれば、言語Aとほぼ同じ仕様でQiuneになっているものは末尾にnopを加えなければいけない、という言語Bで反証」 / Twitter
- ころさんはTwitterを使っています 「@karupanerura 他の言語での実装の正しさの証明となると、その実装を証明できる命題で表さないといけないのでかなり厳しいです。別のアプローチとして、定理証明支援系(=一種のプログラミング言語)で実装を記述し証明して、それを実際に使いたい言語に変換して使う方法があります。」 / Twitter
histric-5
- p進大好きbotさんはTwitterを使っています 「プログラミングは命題論理の自動証明までをひとまずの目標にしていますけど、ついでなので形式言語と形式論理をちゃんと(計算機に特化させず数学と同様の方法で)実装させたいと思ってそっちばかり掘り下げてるので中々進まないですね。あと競技プログラミングっていうのに出れるようになりたい。」 / Twitter
- p進大好きbotさんはTwitterを使っています 「形式論理は集合論まで実装させたいけど、それはあくまでプログラミングの勉強のために数学と同じ方法を選んでいて実用的じゃないので、それとは別に実用性のある方法で数学も実装させたい。」 / Twitter
- ちゃーしゅーねこさんはTwitterを使っています 「証明支援系で検証したコードをプログラミング言語にエクスポートはなんとなく雰囲気程度にはわかるんだけど、「通常のプログラミング言語で書いて証明条件を抽出して~」のほうがさっぱりなにをやってるのかわからん」 / Twitter
- スマートコンさんはTwitterを使っています 「依存型のあるプログラミング言語なら、「環である」という証明まで含めてクラスの一部にすればよい」 / Twitter
- Noriyuki OHKAWAさんはTwitterを使っています 「たとえ証明書き易い言語でも,証明が目的でなくプログラム書くのが目的だと型レベルプログラミングやってられっかってなるということは案外知られていない」 / Twitter
- すなえもんさんはTwitterを使っています 「チューリングマシンと型なしラムダ計算とwhile-if言語がすべて同じ計算能力を持つことを証明するところから始まるプログラミング入門。」 / Twitter
- はくどーさんはTwitterを使っています 「Q「なぜわざわざプログラミング言語に関する証明をするのか?定義が正しければ、証明はたいてい退屈なのに」 A「定義はたいてい間違っている」 TaPL3章章末より。」 / Twitter
- 永遠の自動労働人形さんはTwitterを使っています 「型のある言語を使えば小さいテストは必要ないって怪しくない?」 / Twitter
- とりさんさんはTwitterを使っています 「@chakku_000 テストしたい性質をすべて型として記述すれば理論上は可能だと思いますが,そういう言語を使ったプログラミングは,アルゴリズムの記述というより定理証明がメインになりそうですね... 目指せ!静的検証と動的検証のベストミックス!」 / Twitter
- 永遠の自動労働人形さんはTwitterを使っています 「@TypelessType 時代は定理証明!?」 / Twitter
- とりさんさんはTwitterを使っています 「@chakku_000 証明苦手デス(-_-) IDEみたいに「この型が必要だよ」くらいのノリで,証明したいことを入力したら「この定理があればいけるよ」って教えてくれるやつがあったら,いつも通り補完キー連打で解決できるのに...」 / Twitter
- zehnpaardさんはTwitterを使っています 「「再帰や高階関数をベースに、式の同一性を証明しながらプログラミングする」というのはAlgol系言語の習得とはある程度直交的なプロセスだという印象」 / Twitter
- もっちぃさんはTwitterを使っています 「合理と推論規則を用いたフォーマルな証明が楽しめる!サポートサイトにチェックツールが公開されてるよ!!/プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) サイエンス社 https://t.co/BKzdH6ftfV @amazonJPから」 / Twitter
- もっちぃさんはTwitterを使っています 「❌合理 ⭕公理」 / Twitter
- MAEA2さんはTwitterを使っています 「Coq、全然しらんけどあくまで証明支援?だよね?」 / Twitter
- MAEA2さんはTwitterを使っています 「Coq自体が定理を証明できるんだっけ?」 / Twitter
- ГоваさんはTwitterを使っています 「@MAEA_2 一応プログラミング言語だし書いたコードOCamlとかHaskellに変換できるで」 / Twitter
- MAEA2さんはTwitterを使っています 「@cloudear8 なるほど。変換可能ってことは正しさが保証されてるってことになるか。ただのイメージなんやけど、人間には追いきれなさそうな論理チェックとかを支援してくれるもんなんかなとか思ってた。デバッグとか一種の論理チェック大会やし。」 / Twitter
- ГоваさんはTwitterを使っています 「@MAEA_2 もちろん証明の自動化とかもできるでー! イメージでいうと型の機能がめっちゃすごいプログラミング言語で、Javaでいう例外がキャッチされることが保障されるやつの100倍すごい機能でプログラムの性質が証明できる感じ」 / Twitter
- MAEA2さんはTwitterを使っています 「@cloudear8 なんか伝わったぞ!Coqすげえ!」 / Twitter
histric-6
- Cr@ネコ募集中さんはTwitterを使っています 「NANDだけですべての計算ができるなんて証明をしてしまうからNANDしか使えないプログラミング言語を作るバカが生まれるんだ……」 / Twitter
- けけもとさんはTwitterを使っています 「俺が注目している証明系言語 Top3を発表します。 ・Dafny チュートリアルを少しだけ齧っただけだけど、契約プログラミングの事前事後条件っぽいものを元にそれが成り立つかどうかを検証してくれるっぽい。Coqを使いこなすのは難しそうだけど、これならワンチャン?Microsoftが作ってる。(続く」 / Twitter
- けけもとさんはTwitterを使っています 「・Agda 日本語のドキュメントがあり、それが証明支援システムとしての解説ではなくプログラミング言語としての解説をしてくれているので有難い。 ・ATS 定理証明ができる実用的な言語を目指している。俺言語の方針と似てそうなので参考にしたい。」 / Twitter
- ねっけつさんはTwitterを使っています 「@iketikumegane そう、創作性が気になってた(ω) 誰が記述しても同じようになるのかは議論の余地がある。その理屈だと、プログラムのコードそのものに著作権が認められるのと違いが見えにくいんだよね(特定のプログラミング言語において、プログラムと証明は類似している)。特に複雑な証明の場合どうなるんだろう」 / Twitter
- 飲酒さんはTwitterを使っています 「メタ定理の証明だとか言語処理系の検証だとか,プログラミング言語についてのあれこれだと,同じような手順で証明できるような場合分けが多かったり,そんなケースが言語の拡張で増えたり減ったりしがちなので,強力な自動証明でぶん殴りたい感じがある」 / Twitter
- ふくださんはTwitterを使っています 「プログラミング言語理論や証明論では,重要な結果がフランス語の博論にしかないことがあって非常に辛い」 / Twitter
- adaさんはTwitterを使っています 「RT 異世界魔法がプログラミング言語だったが依存型言語なので証明が辛すぎる!」 / Twitter
- わかつき@E鯖さんはTwitterを使っています 「@destiny_gaia @Keyneqq ツイトするタイミング逃しちゃたのでココへ;^^ 多分、「演繹」と「推論」と「証明」とが混ざっちゃてると思うの(違ってたらごめんなさい;) 演繹定理 をググる先生に聞くと良いかも 余談:プログラミング言語に関して 「カリー=ハワード同型対応」を調べてみると面白いですよ;^^ :証明支援システム」 / Twitter
- Kazutaka OgakiさんはTwitterを使っています 「1)関数の定義を書く 2)1で定義した関数についての定理を書く 3)2の定理に対する証明を書く 4)証明済みの関数を安心して使ったり、他のプログラミング言語に書き出したりする 普通の仕事だと2)で仕様を書き、 1)として作ったコード、 に対して3)で証明する。 ということになるだろうか」 / Twitter
- スマートコンさんはTwitterを使っています 「@mr_konn よく考えたら λProlog の後にも普通に lean とか idris とか cubicaltt とか RedPRL とか触ってたわ……(定理証明系をプログラミング言語だと思っていない並感想)」 / Twitter
- こなみひでおさんはTwitterを使っています 「@akinori_ito 大きくちがうのは,言語的だということ,試行錯誤による探索が可能ということじゃないでしょうか。ソースは言語的だしトライアンドエラーでも恥をかかずに進められるわけで。最後に成功した時が楽しい!と思う人はプログラミングの学習者には多いです。数学の証明はできるやつがその幸せを知っている。」 / Twitter
- 夕暮寝子さんはTwitterを使っています 「CakeMLは証明付きのStandard MLの実装みたいですね(ググった) プログラミング言語として使うのが目的で証明を書くための言語というわけではなさそうです #マシュマロを投げ合おう https://t.co/6gwuOtXofY」 / Twitter
- ⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「そういえば必要時評価がプログラミング言語に存在するんだから、それに対応する証明方法があったりしないかな」 / Twitter
- KoryさんはTwitterを使っています 「プログラミング言語みたいな形式言語で証明を書くやつ、なにがいいかって行間が一つも許されないことなんですよね 何が困るかというと命題などのエンコードが無限に分からなくなる」 / Twitter
- 川向薫さんはTwitterを使っています 「定理証明っぽいことをする .why 言語とプログラミングをする WhyML (.mlw) 言語に分かれてるらしい」 / Twitter
- 飲酒さんはTwitterを使っています 「プログラミング言語の基礎概念 TaPLのダイジェスト的な内容.学習曲線が緩くなっているので,この本を読んでからTaPLを読めば理解が捗ることでしょう.全体を通して大ステップ意味論を採用しているのは謎(メタ定理の証明つらくない?)」 / Twitter
- so_undさんはTwitterを使っています 「"関数型プログラミング言語と仕様記述言語の特徴を持っています" "関数を定義してプログラムを組み立てていくという点では、Coqは多くのプログラミング言語と同様です。その上でCoqでは、定義した関数の性質を数学的に述べて、それを証明することができます"」 / Twitter
- たたもさんはTwitterを使っています 「@0918nobita inference ruleは証明論・論理学寄りの分野ではシークエント計算として、プログラミング言語寄りの分野では操作的意味論として登場します。前者は既に挙げられた「情報科学における論理」、後者はhttps://t.co/eZm03EjPvC がおすすめです。両者はカリーハワード同型対応で密接に関わっているとされます」 / Twitter
- zerosum "porter" bridgesさんはTwitterを使っています 「プログラミング言語の基礎概念は、中学生の頃に初めて代数の証明問題を解いてた頃の気持ちになれるので、青春を思い出したい人におすすめ」 / Twitter
- すとまとさんはTwitterを使っています 「来年の目標はプログラミング言語作ることです」 / Twitter
- tkrさんはTwitterを使っています 「@stmtk_01 BF」 / Twitter
- すとまとさんはTwitterを使っています 「@kgtkr あれはチューリング完全の証明に使うだけ。プログラミング言語とは認めない」 / Twitter
- あぷりばーどさんはTwitterを使っています 「(ところでプログラミング言語のチューリング完全ってどうすれば証明できるんですか)」 / Twitter
- らいパン粉さんはTwitterを使っています 「@projectappbird チューリング完全なやつのシミュレータを作れば証明できるぜ。 例えば、ライフゲームとか、チューリングマシンとかラムダ計算とかのシミュレータを作る。」 / Twitter
- あぷりばーどさんはTwitterを使っています 「@elipmoc101 確かルール110もそうでしたっけ 一見作るのは簡単そうに見えるけども…どうなんだろう」 / Twitter
- らいパン粉さんはTwitterを使っています 「@projectappbird チューリングマシンが一番楽そう。 C++のテンプレートがチューリング完全って判明したのも、テンプレートでコンパイル時チューリングマシン実装したから。」 / Twitter
histric-7
- ねっけつさんはTwitterを使っています 「数学の証明で「これは帰納的な性質を証明しようとしてるから帰納法使う」とか「AがBと異なることを示すために保存量を計算する」みたいな方針と同じような形で、プログラミング言語における実装方針を書くことができるかもしれない?(というかそれがデザインパターン?)」 / Twitter
- TojoQKさんはTwitterを使っています 「これができる静的型付けのプログラミング言語って依存型を持った証明プログラミング言語とTyped Racketしか知らないのですが、他に存在するのでしょうか?」 / Twitter
- ふろど#つくばセンターの主さんはTwitterを使っています 「@RQprF1IJ8yieje6 チューリング完全は完全チューリングマシンを記述する能力があるかどうかで決まる指標。 簡単に言うとある言語Aでチューリング完全性が証明されている別のある言語Bが実装できるならAはチューリング完全。 プログラミング言語ならばチューリング完全。」 / Twitter
- ぴあのんさんはTwitterを使っています 「@7danmoroboshi なるほどー。ただそれだと、ロジックにおける証明論的意味論とかプログラミング言語の意味論(の一部)を考慮してないような…? [そもそもsemanticsという言葉が時代につれいろんな使われ方をしてるから統一的に説明するのも無理筋か]」 / Twitter
- 大王 a.k.a. S.S.H.さんはTwitterを使っています 「超準解析+定理証明支援系とか超準解析+プログラミング言語意味論とかは気になる」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「少なくともMLでは(定理証明機の操作言語だった背景もあり)圏論に強く由来するはずです。 どの時点からかは知りませんが、おそらくFPの時点でも圏論が応用されていたんじゃないかと思います。 今日FPの影響を受けない言語の方が少ない中で、圏論を知らなければプログラミングできないとはなりえません。」 / Twitter
- みきしぃさんはTwitterを使っています 「計算困難性証明とか実質プログラミング言語間の移植作業だし」 / Twitter
- Kusunoki matohさんはTwitterを使っています 「高校でやる命題論理、数学における証明の話、プログラミングとかからの類推。ぜったいこういう要請多いでしょ。統一的な知識の集積の形式化、妥当性検証の自動化、集合知とかの文脈でもよく見る。なのにどこで語られてるのか全く知らない。自然言語処理が一番近い。見逃してそう。」 / Twitter
- 猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「ちなみに誤解されがちだけどsedは正規表現の置換だけではなくて(←めっちゃ多い誤解) ラベル張ってループ書くこともできるし、実質的に(メモリの物理的な容量という制約に目を瞑れば)無限のスタックを積めるプログラミング言語と考えることができて、チューリング完全であることも証明がついています。」 / Twitter
- 猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「ちなみに四年くらい前に、同じくチューリング完全であることが証明できるプログラミング言語っぽくないマクロプロセッサーですが、m4のクォートがLispのクォートに考え方か近くてm4でLispの処理系を実装しようとして挫折した経験があります。」 / Twitter
- 猫村ゐき (Nekomura Wiki)さんはTwitterを使っています 「わりと「プログラミング言語自体」と証明論に昔は興味あったので、そういうことばっかしてた。」 / Twitter
- 小林聡@京都産業大学さんはTwitterを使っています 「@Alwe_Alwe @takum97 tは一般に関数記号を含むので関数の計算をするわけです。普通に数式の変形と考えることができますが、関数型プログラミング言語のプログラムのように見ることが多いです。証明の正規化と同じような応用があります。というかある意味tの値の計算は証明の正規化のようなものです。」 / Twitter
- ルキ@超高校級の🥺さんはTwitterを使っています 「solid原則や、プログラミング言語のパラダイムに関しては同意だが、べつに他の本にも書いてあるような気もする プログラミングとは広義のユークリッドのやり方みたいな証明法 ってのは同意です これは何となく思ってた事だし、数理論理学の教科書にも書かれている」 / Twitter
- nisizakiさんはTwitterを使っています 「数学の定理の証明を理解するのと、プログラミング言語のライブラリのソースコードを理解したり、OSやコンパイラのソースコードを理解しておくのは、似てるのかな・・・ ( ・∇・)」 / Twitter
- アライグマ@ミタライさんさんはTwitterを使っています 「そのチューリングマシンと同じ計算能力を持つと証明された形式体系ないしは(必ずしも数学的とは限らない)構造物のことを「チューリング完全」と呼ぶのだ.チューリング完全であれば計算ができるし,処理もできるのだ.このチューリング完全の要素はプログラミング言語に必須の条件なのだ.」 / Twitter
- はりーさんはTwitterを使っています 「Moveってプログラミング言語が気になる。なんか自動証明?してくれるって感じ??」 / Twitter
- 福音さんはTwitterを使っています 「型システムとか証明系の計算が決定的なのに対して、確率を絡めた体系を作るのを、密かにいつかの自分の仕事だと思ってる。プログラミング言語ではあんまりとも思うも、自然言語処理では必要になってくるはず、と思ってる。」 / Twitter
- wbydo / Hibiki SakuraokaさんはTwitterを使っています 「続き - 証明駆動プログラミングという分野を知る - Coqという言語触る→こっから3分岐 1. GUI前提な使い方が嫌だとか、現実的に開発をサポートとかはまだこれからだとか感じたのでとりあえずやめる(Agdaに期待) 2. 記号論理学がわからんということで本借りる。まだ読んでない。」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@y_bonten ZF系の公理化におけるクラスの扱いは、証明論の発想がないとわからないと思います。プログラミング言語屋さんには、「クラスはマクロです」でいいのですが。」 / Twitter
- 森羅万象の皆様と対話する丁寧ちゃんさんはTwitterを使っています 「@sanjutsu_yu あ、本当だ、よく見ると証明の式になってる!初見で一瞬プログラミング言語か何かかと思いましたw」 / Twitter
- TojoQKさんはTwitterを使っています 「型なしの定理証明支援系のプログラミング言語を作っているのだけど、型があれば解決することがあまりにも多すぎるな……。関数を第一級にする場合の懸念事項に型があれば解決することが多い。あと、pair? でない値に対する car と cdr の結果について考える必要もなくなるし……。」 / Twitter
- TojoQKさんはTwitterを使っています 「昨日は大した根拠もなく、契約と遅延評価は相性が悪くて組み合わせられないのではないかと不安になったけど、少し触った限りでは問題なさそう。 Lazy Racket と Racket の Contracts をベース言語として証明プログラミング言語を作る。 https://t.co/tfGST6TATT」 / Twitter
- はちけーさんはTwitterを使っています 「今のディープラーニングブームの反動で、次は数学的に証明できる系が流行る。ディープラーニングでSLAMするなの流れとも近いし、プログラミングの静的型付け言語もその流れ。定理証明支援系もワンチャンあるかも。でもそういうプログラムを書く作業を支援するのにディープラーニングが使われてくる。」 / Twitter
histric-8
- zehnpaardさんはTwitterを使っています 「ラムダ計算と現実的なプログラミング言語の関係の発見経緯は考えてみると複雑だな。プログラミング言語の発明以前からラムダ計算がそれら(未来の)言語の「計算」部分に関しては同等かそれ以上であることが証明されていたわけで。」 / Twitter
- Yak!さんはTwitterを使っています 「どんなプログラミング言語でも人(あるいは同一人物でも気分)によって書き方が変わるものだと思うが、現状だと自分のCoqの証明は予測不能レベルにある。」 / Twitter
- エポキシさんはTwitterを使っています 「「授業で扱った概念がプログラミング言語でどのように実装出来るか」っていう課題に対して「授業で扱った『写像』は全てが実装可能なわけではない。それを証明する。」っていう逆張りレポになっちゃうけど大丈夫かな」 / Twitter
- 入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「プログラミング言語は正しく制約がつけばつくほど構造的で証明しやすくなっていくもので、Haskellなんかはいい例で代入もループもなく、宣言的にプログラムを記述するんだが、HTML+CSSも宣言的にUIを記述してチューリング完全でもあるので、実質Haskellを超えたモダンなプログラミング言語だよね。」 / Twitter
- kPfeさんはTwitterを使っています 「証明プログラミングでの証明は問題なくできるのだけど、証明した内容を自然言語で求められると脳内で変換できずに詰む」 / Twitter
- みょんさんはTwitterを使っています 「@gada_twt Idrisは貧弱ながらランタイムを備えてるので普通にプログラミング言語としても使えることと、割と機能が多いけどCoqほど複雑でないので色々挑戦的だし頑張ってるなという感じはあります マンパワー足りてなさそうなのがアレですね…(定理証明界隈大体そうですが)」 / Twitter
- かに〜た/限界大学生/人生オワコンさんはTwitterを使っています 「1+1=2の証明って高校生の時は何言ってんだ??ってなるけど、大学入ってプログラミングとかると言語によっては割と理解できる。」 / Twitter
- 飲酒さんはTwitterを使っています 「@ose20_ Software Foundationsのλ計算あたりの話は変数束縛の取り扱いが微妙で,de Bruijn indexでもlocally namelessでもなかった記憶があります.定理証明支援系を使ってプログラミング言語について形式的に議論する時はここがつらいので,僕は主にAutosubstとかを使ってde Bruijn indexに直してやってます」 / Twitter
- myaoさんはTwitterを使っています 「@zehnpaard 圏論と集合論みたいな違いもあるし、証明論とモデル論みたいな違いもある気がするし、どうなんですかね? プログラミング言語程度には数学分かれてると思いますが。」 / Twitter
- Hans - the working PhilosopherさんはTwitterを使っています 「@h_sakurai @TakaoOzaki But the question is if this borders could not me crossed. Or in other words: I believe that possibility and power of logic is not unwrapped to full extend」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@y_bonten 証明可能性はプログラミング言語理論のほうでは操作的意味論にあたることに気づいて、証明可能性も意味論と言えるやんと思ってしまいました。」 / Twitter
- SUHARA HiromichiさんはTwitterを使っています 「@tamami_tata @tsatie コンピュータの上で圏論を「する」なら、Haskellのような普通のプログラミング言語よりも、定理証明器 (Proof assistant) を使ったほうがよいと思います。」 / Twitter
- たかじんさんはTwitterを使っています 「プログラミング言語で配列の実行中の境界チェックを省けるかどうかの証明ってどうやるんだろう。SSAでできるのかな。難しそう。」 / Twitter
- しょうやさんはTwitterを使っています 「・意味論などなくとも、適切な構文定義と処理系の作成で機能するプログラミング言語は作れる。 ・しかし動作についての証明の枠組みがない。 ・導出規則と判断形式の定義、三段論法を用いて評価値が何になるかの証明を構成できる。」 / Twitter
- tknさんはTwitterを使っています 「推論エンジンとしてSouffle(論理プログラミング言語Datalogの拡張?)、MonoSAT(SAT/SMTソルバ)、Vampire(定理証明機)を使い分けるようなことが書いてあるけど、パフォーマンス評価でVampireは全然スケールしなかったとのことで結果にも載せられてない...結局使われているんだろうか。」 / Twitter
- WikipediaクイズBOTさんはTwitterを使っています 「問題番号:95999, 再帰理論における定理であり、プログラミング言語(より一般化すれば、計算可能関数のゲーデル数)の基盤となっている。これを最初に証明したのはスティーブン・コール・クリーネである。 これなんだ?」 / Twitter
- ⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「TaPL、名前がむずかしいのがいけないと思うので 「自作プログラミング言語を証明してみた!~型の安全性~」 とかにするといいと思う!!」 / Twitter
- carnageさんはTwitterを使っています 「@nobokko チューリング完全かどうか、は世の中を見ると必要条件では無さそう。チューリング完全性が証明されていなくてもプログラミング言語として扱われているものがDSLに存在しそうだし、自作言語でいちいち万能チューリングマシンを作ってみたりはしないと思う。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「プログラミングを勉強するにはプログラムを書けばよくてプログラミング言語処理系を実装する必要はないのだが、証明を正しく書けるようにするカリキュラムを作ろうとすると証明の書き方だけではなく数理論理学に片足突っ込んでしまうという問題があると最近思ってる」 / Twitter
- Furidosu μ'sic foreverさんはTwitterを使っています 「@hosimiyaprog モデリング言語:Alloy、TLA+、B(Cの前身とは違う)、OCL、VDM、Z モデルに指摘できる。プログラミング言語に見えるけど、プログラムをできない。 証明助手言語:Lean、Isabelle、F*(F-starと読む)、Coq、Idris 数学定理の証明に指摘できる。 プログラミング言語研究のフロント:Haskell」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「ラムダ計算等を除いて、普通のプログラミング言語ではコードの等価性を証明したりcanonical表現を導出できないって時点でサイエンスなのかこれ🤔ってなる」 / Twitter
- とがぁぁさんはTwitterを使っています 「プログラミング言語を作るときに「コンパイラをその言語自身で記述する」ってよくやるけど,証明ができる言語を用いたら言語のリファレンスをも自身で証明しながら記述できたりするのかな」 / Twitter
- ⿻あいや⿻ 数学入門と女の子たちの本「せつラボ」執筆さんはTwitterを使っています 「そう考えると、Elmは例外送出しないし無限ループもしないので、プログラミング言語じゃなくて定理証明支援系言語」 / Twitter
- 珠響そうき🌒情報系VtuberさんはTwitterを使っています 「プログラミング言語に対して無矛盾性証明的なのやって、厳格かどうか判定しようぜ」 / Twitter
- 元@あほらしさんはTwitterを使っています 「証明系プログラミング言語みたいにモデリングDSLですよ.」 / Twitter
- 瀕死さんはTwitterを使っています 「@ITF19_sky 弊学類の数理論理学は「情報数学 A」で命題論理の基礎的なところをやって,「論理と形式化」の前半で一回述語論理の証明の演習をひたすらやるみたいな感じですね.あとはプログラミング言語への応用の話をやる講義がいくつかという感じです.」 / Twitter
- TojoQKさんはTwitterを使っています 「証明駆動で Lisp を作ろうとすると eval/apply の停止性が証明できないという問題に到達するであることが見えている。じゃあ、チューリング完全じゃなければいいかとか思うけど私の知っている Lisp ライクで必ず停止することを示せるプログラミング言語といって思いつくのは ACL2 しかないんだよな。」 / Twitter
- kodai 休養期間中さんはTwitterを使っています 「操作的意味論・表示的意味論をきっちり考えながら Coq で ML 系のプログラミング言語処理系を実装したいんですよね 推論規則とかメタ定理の証明が Coq で書けたらたぶん幸せになれるだろうから」 / Twitter
histric-9
- timelerさんはTwitterを使っています 「Coqなんかはチューリング完全ではないけどプログラミングっぽいアトモスフィアを醸し出しているので、定理証明支援系はプログラミング言語ww」 / Twitter
- スマートコンさんはTwitterを使っています 「Coq, Agda, Idris, Lean など停止性(あるいはguardedness)が証明されない関数は実装できないが、定理証明系でありつつ一応プログラミング言語でもあるのでは」 / Twitter
- ぐるぐる系SQLさんはTwitterを使っています 「@yhara 定理証明支援器系はチューリング完全ではないけどプログラミング言語とみなせるのではー、とか」 / Twitter
- 𝚝𝚊𝚔𝚊𝚖𝚒 𝚝𝚘𝚛𝚊𝚘 𝑓:(🧼,👏,💉×2)→☕️³⁶⁵さんはTwitterを使っています 「今見てる TLA+ もチューリング完全ではなさそうなんだけど、定理証明や形式仕様記述方面ってプログラミング言語というより DSL と認識しているんだけど、プログラミング言語と呼ばれたいなにか理由ってあるんかな?」 / Twitter
- ぬまち #疑わしきはバツせずさんはTwitterを使っています 「素人考えですが、プログラミングって言語がいろいろあって、はやりすたりもあるので、重要なのは原理から物事を組み立てられること、つまり証明が自力で書けるってことだと思ってます。この認識、あってますか?」 / Twitter
- (change of )*stateさんはTwitterを使っています 「一般のプログラミング言語に定理証明系のような依存型が入ったらautoconfやmakeは要らなくなるの? →多分。でも人間の平均的知性でtypeとfully-quantified kindが混在する状況を理解するのは難しいと思う」 / Twitter
- スマートコンさんはTwitterを使っています 「最初から定理証明系として設計され依存型がある Agda と、汎用プログラミング言語だったのがより強力な表現力を得るために後から依存型をエミュレートするための機能を追加して行っている Haskell、というそもそもの姿勢の違いがあり、それはその言語で作業する際のメンタルモデルにも現れるという話」 / Twitter
- 逢瀬さんはTwitterを使っています 「プログラミング言語の基礎理論、Wの健全性と完全性の証明書いてあるな...楽しみだな...」 / Twitter
- 飲酒さんはTwitterを使っています 「プログラミング言語なんて1つ覚えれば大差無いとは言われがちだけど,チューリングマシンと帰納的関数(あるいはλ計算)の表現能力が等価であることの証明とか本当に差が大きすぎてやりたくないレベル」 / Twitter
- Solha@sugerfieldさんはTwitterを使っています 「要するにこれが出来たことにより、HTMLはプログラミング言語ではない、という証明になるわけですね。」 / Twitter
- ⊥さんはTwitterを使っています 「@7danmoroboshi リプライ失礼します、ダメットは論理結合子については色々言っていたと認識してるんですが、プログラム言語についても何か言及があったんでしょうか?(それともカリーハワード同型対応などが念頭に置かれている感じでしょうか?)」 / Twitter
- そくらてす@衛府嵐大学さんはTwitterを使っています 「@liewecmays あ、そういう意味ですか 単に「証明論的意味論」という意味論があるのかという話であれば「あります」という話になりますが、「プログラミング言語の証明論的意味論」があるのかと言う話であれば「聞いたことがない」と答えることになります。」 / Twitter
- そくらてす@衛府嵐大学さんはTwitterを使っています 「@liewecmays ただ、Hoare Logic などを介することによって何か類似の話が出てくる可能性はあります(そうだったらおもしろいなという話なので、あまり真剣に捉えないでください)。」 / Twitter
- Koji SaitoさんはTwitterを使っています 「プログラミング言語でも、言語の機能が高いほうがむしろ教育コストは低いように思えるんだけどなぁ。低い方が簡単、という発想をする人がいるんですね…。 その昔流行ったローマ字運動も廃れてしまったので、この話は歴史が既に証明しているかと(宮沢賢治のローマ字日記とか、読むのが辛いです…)。」 / Twitter
- GOBさんはTwitterを使っています 「@KojiSaito 機能の高さと語彙の豊富さは別物な気もしますね。 教育コストもどのレベルの習得度を目指すかで変わりますし、難しい問題だなぁ。」 / Twitter
- Baku 🌾麦さんはTwitterを使っています 「論理的な言葉の選び方というのはただのレトリックだと思うようになった プログラミング言語のような形式言語をデザインしていると、様相論理でも捉えようのない世の中の問題を自然言語とかいう仕様ガバガバ言語でロジカルに証明できるという考えこそが素朴に感じる」 / Twitter
- juzyさんはTwitterを使っています 「数学は定理を証明するための言語で、無限を扱う プログラミングは打ち込んだ文字列をデータベースと照合して、ログインさせたり、書き込んだ文字列をインターネット上に公開したりするもの。無限が扱えない、という話より先に、何もかも全く違う」 / Twitter
- 川井新(論計舎代表)さんはTwitterを使っています 「古典(述語)論理の自然演繹の証明図を書きながら「自然ってなんだ」ってキレてる。 結局、直観主義論理で考えてから二重否定除去しているし」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「1+2-3を1 2 + 3 -と書くのを「逆ポーランド記法(RPN)」って言うことが計算科学の分野では多いと思うけども、とある書籍で「日本語記法」と書いてあるのを見て確かにそうだとハッとした。ポーランド記法の、さらに「逆」なんて回りくどい言い方せずに「後置記法」あるいは「日本語記法」でいいやん」 / Twitter
- ™さんはTwitterを使っています 「例えば数学の勉強だったら,定義と定理のステートメントを一通り眺めた時点で本を閉じて,具体例を作る・仮定を落として反例を作る・証明を埋める,までは普通やる(やろうとする)もので,この過程である程度感覚を掴めると思うんだけど…….」 / Twitter
- 森の未知JK@㌠גודזילהさんはTwitterを使っています 「よくある先入観で、いわゆる「数学科で習う数学」(集合論とか位相空間論とか)を勉強するには証明問題を解くしかないというものがあるが、これは徹底的に排除した方が良いと思う。 述語論理を正確に扱えないと高確率で答えを間違える問題は割と作れる。」 / Twitter
- Naoya SueishiさんはTwitterを使っています 「最近の統計学の論文は証明が間違っているのは珍しくもないし、それを置いたらなんの意味もなくなるって仮定を置いてる論文もあったりして、なんかもう書いたもん勝ちみたいなのが多い。レフェリーに見つからなければラッキーみたいな。」 / Twitter
- mod_poppoさんはTwitterを使っています 「型システムは言語の個性だから「言語横断的な共通型システム(ハイレベル)!!!」みたいなのには懐疑的なんだよな」 / Twitter
- laxfunctorさんはTwitterを使っています 「Agdaはプログラミング言語Haskellに依存型というものを入れた言語です!パズルゲームみたいに定理の証明ができます https://t.co/KKYUzwOTsm」 / Twitter
- The Agda Wiki
- H. E.さんはTwitterを使っています 「最近、コンピュータで証明を形式化するLeanというので遊んでます。ブラウザで動く「自然数の掛け算の可換性とかの敵を倒そう!」という趣旨のゲームが、使われてるプログラミング言語しらなくても1からチュートリアル付きで遊べて、オススメです: Natural number game https://t.co/MK1PMKvcA7」 / Twitter
- Natural number game
- UkicodeさんはTwitterを使っています 「ここから何が言いたいのかと言うと、「チューリング完全性の高い」言語は「プログラミング言語である」と認めざるを得ないということです。 ですので、「プログラミング言語である」ことを証明したければ、「チューリング完全性が高い」ことを証明するのが手っ取り早いと俺は思います。」 / Twitter
- UkicodeさんはTwitterを使っています 「この件に関してですが、逆に「~がプログラミング言語ではない」ことを証明するために「チューリング完全性がない」ことを証明してみろって言う話なんです。 Rule110を実装できるのかどうか(Rule110はチューリング完全性が高いため)試してみたら、わかりますね。」 / Twitter
- UkicodeさんはTwitterを使っています 「実装にめちゃくちゃ時間がかかった。すべて込みで大体1週間ぐらい。 はてなブログに投稿しました #はてなブログ プログラミング言語であることの簡単な証明方法 - なんか考えてることとか https://t.co/PWU3OSGg2l」 / Twitter
- プログラミング言語であることの簡単な証明方法 - なんか考えてることとか
- Yak!さんはTwitterを使っています 「Church-Rosser性については計算機科学系(関数型プログラミング言語)の文脈で重要そうなので軽くぐぐったところ、↓3章の証明は(ばりばりプログラミング言語側だが)並行簡約とその結果*を使ってて今回の証明と大枠同じ方針っぽい? https://t.co/XBe4HggxhP #論理学友の会」 / Twitter
- 14_4_388.pdf
- sounisi5011/プログラムさんはTwitterを使っています 「> 停止性の証明のためには > ・再帰的な呼び出しごとに真に減少するが > ・無限減少列はない > ような値があることを型検査器に教えてあげればよいです。 は?え?そんな事が可能なの…!? F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam https://t.co/HD56RtCx7F」 / Twitter
- F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
- sounisi5011/プログラムさんはTwitterを使っています 「依存型の静的型プログラミング言語の真価を見た気がする。何をどうしたらこんな証明が可能になるんだ?内部実装がまるで想像できない…」 / Twitter
- Miura HidekiさんはTwitterを使っています 「人はDWIMの悲劇を忘れてまたエラーの自動修正を望んでしまう。戦争に似ている https://t.co/rSkpN7z6gu」 / Twitter
- DWIM
- こーじ@何かを1日1褒めさんはTwitterを使っています 「コンパイラ君さぁ、 「n行目のhogeが間違っています!」 って言うなら気を利かせて直すべきじゃない?そんな指示待ちの姿勢じゃ社会じゃやっていけないよ?????」 / Twitter
- Nao_uさんはTwitterを使っています 「アウターワールドの内部実装の詳細。実行ファイルは20KBしかなくて、1MB程度バイトコードを実行する仮想マシンとして動いてるらしい。1枚絵に見える背景は実際にはすべてポリゴンで描かれている。にわかに信じがたいけど描画の過程を見ると確かにポリゴンだった。 https://t.co/SDUaYKp7Cg」 / Twitter
- The polygons of Another World
- 【連載】世界のプログラミング言語 | TECH+
- fiberedcat_and_stack.pdf
- プログラミング Coq
- プログラマのための圏論の基礎
- ソフトウェアの基礎
- 悪魔の証明とユーザサポート - 豪鬼メモ
- 定理証明支援器「Coq」によるプログラミング言語理論の定式化チュートリアル - sumiiのブログ
- プログラミング言語 idris - wkwkesのやつ
- あなたが学ぶべき10のプログラミング言語 - emonkak's Blog
- 2011-11-29
- Coq - Wikipedia
- Coq - Wikipedia
- 米国カーネギーメロン大学教授がCoqによる証明を完了、ハッシュグラフの合意アルゴリズムは非同期ビザンチンフォルトトラレントであると確認|仮想通貨ニュースと速報-コイン東京(cointokyo)
- [B! coq] Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
- 定理証明系Belugaでプログラミング言語を形式化 - Google 検索
- HTMLはプログラミング言語ですか? - Quora
- 寝食削ってその世界にハマった。ちょまどさんが語る、プログラミングへの尽きせぬ「愛」とは - sight 次世代を生み出すテクノロジーの視点
- C言語でコラッツの問題を確認してみる | 人生は読めないブログ
- インテンショナルプログラミング - Wikipedia
- Intentional programming - Wikipedia
- 漸進的型付けの未来を考える - yigarashiのブログ
- Gradual typing - Wikipedia
ラムダ項 証明
- ラムダ項 証明 - Google 検索
- 型 命題 - Google 検索
- 第14回 型=命題,プログラム=証明 | 日経クロステック(xTECH)
- 証明図 意味 - Google 検索
- Implementation of a Proof Assistant in Prolog - imm6043.pdf
証明
Coq
言い回し:数学的な証明
- チェシャ猫さんはTwitterを使っています 「> TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
- ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
- The Amazon Builders' Library
- チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
- チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter
- プログラミング Coq [研究開発] IIJ Innovation Institute
- プログラミング Coq [研究活動] IIJ Innovation Institute
- Coq - Wikipedia
- Coq - Wikipedia
- Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
- Welcome! | The Coq Proof Assistant
- prg.pdf
- coq-jssst2014.pdf
- mod_poppoさんはTwitterを使っています 「動画公開した / Coqで定理証明:数学的帰納法で二項係数の性質を証明してみた https://t.co/OECrtoDfNe」 / Twitter
- Coqで定理証明:数学的帰納法で二項係数の性質を証明してみた - YouTube
- mod_poppoさんはTwitterを使っています 「今回のは自然数と整数の基本的な性質だけでできたけど、素数や多項式が絡むような証明をしようと思ったら噂のSSReflect/MathCompとかいうやつに手を出すことになるのかな」 / Twitter
- ytakanoさんはTwitterを使っています 「数学も、望月先生のABC予想の証明や、Coqの四色定理の証明のように、小ささやエレガントさはなくなり、だんだんと科学やコンピュータ科学のようになってきている。」 / Twitter
- [cs/0505034] Essential Incompleteness of Arithmetic Verified by Coq
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「形式手法を教えるなら、広く使われている型システムの理論と実装やってから、モデル検査や定理証明やれば良いのに。」 / Twitter
- アラクーさんはTwitterを使っています 「排中律と選択公理のありがたみを知りたい人はとりあえずCoqを弄るのが手っ取り早いと思う」 / Twitter
Prolog
- Prologによる自動定理証明 - Qiita
- Prologは定理証明系として、健全だが完全ではない - Qiita
- CiNii 論文 - Prologによる数学上の定理証明
- 2014Tokuyama.pdf
- (81)並列定理証明器:MGTP/G Prolog版
- 宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
- shiryo2.pdf
利点
- FadisさんはTwitterを使っています: 「ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…」 / Twitter
- FadisさんはTwitterを使っています: 「バグを直すにはしばしば職人のカンのようなスキルが要求される上に修正に要する時間は誰にも見積もることができない。一方テストや証明を使ってバグが出ないことを保証しながらコードを書くのは論理的な作業だし、要する時間もあらかじめ見積もることができる」 / Twitter
- FadisさんはTwitterを使っています: 「経路が膨大になるとユニットテスト的な手法は難しくなってきて、相対的に証明が便利になってくるんだよな。つまり「起こってはいけないことが起こらないか確かめるんじゃなくて、起こってはいけないことが数学的に起こりえないような作りを心がける」 #boostjp」 / Twitter
- FadisさんはTwitterを使っています: 「依存型と証明の話、conceptとconstexprに篭っている限りだいたいC++で解釈できて「実行時に決まる型でコンパイルできんだろ」っていう壁を隔てて同じ事をやりたがっている感が凄い」 / Twitter
- FadisさんはTwitterを使っています: 「「その数式(略」、証明の歴史、形式主義の登場、ペアノの公理が来て20世紀に突入して 「第十章 プログラミングの基本概念」 でそういえばプログラミング本だった事を思い出す」 / Twitter
- FadisさんはTwitterを使っています: 「ソフトウェアに不具合がないことを証明することは理論的に不可能なんでなかったか。不具合がないことを保証するということは確率の差こそあれ本質的に博打」 / Twitter
- 天使恵さんはTwitterを使っています: 「@fadis_ 「不具合がない」という言葉が既に抽象的なので,多分無理なんでしょうなぁ.ある実装と,別の何か(仕様記述言語的なもの)が完全に一致することは証明できる可能性はありますが...」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「@fadis_ 誤解されがちですが、証明する一般化された手法がないというだけですよ。証明する部分を限定化して証明の一部を手動にしたのが Coq とかの証明駆動ですし。まぁ一般のプログラムの性質全般なら組み合わせ爆発を起こして現実的じゃないですが。」 / Twitter
- 梶本裕介さんはTwitterを使っています: 「@fadis_ 停止性問題とかの話ですかね?あれは任意のプログラムに対してそれが停止するかどうかは決定不能というだけで、多くのプログラムは(ループなら例えば整礎集合に依存することで)個別に停止性を証明できます」 / Twitter
型付きラムダ計算
言語実装
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
- Elm で作る TaPL のラムダ計算(その2)
- C++で型なしラムダインタプリタを書いた - Qiita
- 型無しラムダ計算学習用ステップ評価器 Mogul を作っている話 - Qiita
- 自作ラムダ計算処理系「らむだフレンズ」 - Qiita
意味論
論理と推論・証明
Wikipedia
- 自動定理証明 - Wikipedia
- 数学基礎論 - Wikipedia
- 証明論 - Wikipedia
- モデル理論 - Wikipedia
- 公理的集合論 - Wikipedia
- 再帰理論 - Wikipedia
- 操作的意味論 - Wikipedia
- 推論規則 - Wikipedia
- シークエント計算 - Wikipedia
- 自然演繹 - Wikipedia
- 演繹定理 - Wikipedia
- 推論 - Wikipedia
- 公理 - Wikipedia
- ペアノの公理 - Wikipedia
- 一階述語論理 - Wikipedia
- 原子論理式 - Wikipedia
- Well-formed formula - Wikipedia
- 自由変数と束縛変数 - Wikipedia
- 論理的帰結 - Wikipedia
- シークエント - Wikipedia
- 命題論理 - Wikipedia
- 古典論理 - Wikipedia
- 直観主義論理 - Wikipedia
- 様相論理 - Wikipedia
- Structural proof theory - Wikipedia
- 部分構造論理 - Wikipedia
- 適切さの論理 - Wikipedia
PDF
- 第4回「証明」
- gentzen-NK.pdf
- lecture5.dvi
- PowerPoint Presentation
- lecture5-dist.pdf
- 3-print-nk.pdf
- temporary.pdf
- kikuchi1
- kikuchi
- ja
- プログラマー向けの(?)数理論理学(1)数学的言明 - Qiita
- プログラマー向けの(?)数理論理学(2)証明と推論規則と仮定 - Qiita
- 小学生でも分かる論理計算 (A22P11) - (保存用) 檜山正幸のキマイラ飼育記 メモ編
- 推論規則と定理、公理は違うもの? -推論規則というものがイマイチ何な- 数学 | 教えて!goo
- ソフトウェア科学特論: 命題論理の推論体系
- 推論規則 | 命題論理 | 論理 | 数学 | ワイズ
- 推論規則
- 村上・泉田研究室 AI (人工知能)
- 4. 推論規則と証明
- 推論規則と証明
- 論理体系の解剖-1.3- ゲンツェン流とヒルベルト流 - 知識は永遠の輝き
- 論理学
- Introduction to Mathematical Logic
公理的意味論
- PowerPoint Presentation
- Microsoft PowerPoint - MItoku2-04-hoare.pptx
- Microsoft PowerPoint - PLT12.ppt
Wikipedia
- プログラム意味論 - Wikipedia
- 操作的意味論 - Wikipedia
- シークエンス - Wikipedia
- Simulation preorder - Wikipedia
- 双模倣性 - Wikipedia
- 合同 - Wikipedia
- 再帰的定義 - Wikipedia
- 推論規則 - Wikipedia
- シークエント計算 - Wikipedia
- 演繹定理 - Wikipedia
- 命題論理 - Wikipedia
- カット除去定理 - Wikipedia
- 亀がアキレスに言ったこと - Wikipedia
- ラムダ計算 - Wikipedia
- 抽象機械 - Wikipedia
- SECDマシン - Wikipedia
- CiNii 論文 - SECDマシン再訪
PDF
- H28-hasegawa.pdf
- untitled
- untitled
- https://researchmap.jp/mu03gtcsf-1774112/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=68269&metadata_id=39541
- NKNJ.pdf
- https://researchmap.jp/muxqtr6ru-1787519/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=29962&metadata_id=48743
- (PDF) 証明論的意味論入門 | Shunsuke Yatabe - Academia.edu
- コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介
- プログラム言語論 意味論
- 「論理学入門」講義ノート - abelard.flet.keio.ac.jp / abelard-flet-keio-ac-jp.pdf / PDF4PRO
- https://researchmap.jp/?action=cv_download_main&upload_id=37475
- Microsoft PowerPoint - proglang_09_semantics.pptx
- Microsoft PowerPoint - 2017-L06-Syntax and Semantics-20170518.pptx
- PowerPoint Presentation
- Microsoft PowerPoint - PLT12.ppt
- untitled
- Introduction.pdf
- resume5.pdf
- j-1-2.pdf
- _pdf
- _pdf
- ppl4-2.pdf
- nyumon_logic.pdf
- 2018年度 | ソフトウェア検証論 - TOKYO TECH OCW
- Introduction to Mathematical Logic
- プログラミング言語の規則の書き方と読み方 - Qiita
- 誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
- 突発簡単チュートリアル2:λ計算の操作的意味論 - sumiiのブログ
- 操作的意味論 vs 表示的意味論 - sumiiのブログ
- プログラムの3つの意味論のまとめ - 射撃しつつ前転 改
- プログラミング言語を形式的に取り扱う – ゴミ箱
- なぜ僕は操作的意味論に傾いたか - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 操作的意味論と、不純な表示的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 評価シーケントの論理計算と操作的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
- TAPLを読む会(~7章) - 忖度
- CiNii 博士論文 - 言語Rubyの操作的意味論と型解析
- スモールステップ意味論 - mrsekut-p
- tapl ch 1 - 3
- 命題論理について
- プログラミング言語として考えたTensor flow
- ja
型なしラムダ計算
- H25-hoshino.pdf
PDF
- 計算機ソフトウェア工学
- 計算機ソフトウェア工学
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 5.pdf
- typed.pdf
- stlc.pdf
- typedlmd.pdf
- lambda.pdf
- sou19.pdf
- Computersoftware 20-2
- intro-lambda05.pdf
- selfref2006.dvi
- cs2015_hoshino.pdf
- lambda.pdf
- 2.pdf
- lambda
- dependent.pdf
- 5.pdf
- RelevantTheories
- main.pdf
- _pdf
- カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
- カリー=ハワード同型対応 - Wikipedia
- 型付きラムダ計算 - Wikipedia
- ラムダ・キューブ - Wikipedia
- 二階述語論理 - Wikipedia
- System F - Wikipedia
- 型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きラムダ計算 構文論 再入門 2/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きλ計算と単純な拡張 – ゴミ箱
- Stlc_J: 単純型付きラムダ計算 — ソフトウェアの基礎 1.0.2 documentation
- MoreStlc_J: 単純型付きラムダ計算についてさらに — ソフトウェアの基礎 1.0.2 documentation
- ラムダ計算ABC - Sendai Logic Homepage
- 不動点定理 - Wikipedia
- 不動点コンビネータ - Wikipedia
- 不動点とfix演算子 - 一歩前進
- 論理と計算のしくみ 5.3 型付きλ計算 (前半)
- tkrさんのツイート: "false→Aは ¬false∨Aより常に真だからfalseの仮定をすると任意の命題を証明可能まじかすげえ"
- ミドリムシ+さんのツイート: "1=2から全ての命題が導けるわけです… "
- tkrさんのツイート: "1=2の力すげえ… "
- Fadisさんのツイート: "ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…"
- Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 証明最高! じゃあテストは糞なの? ― テスト談義 - プログラムモグモグ
- 証明プログラミング超入門
- 自動定理証明の紹介
- Coq と定理証明
- 第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
- 自動定理証明 - Wikipedia
- Basics_J: 関数プログラミングとプログラムの証明 — ソフトウェアの基礎 1.0.2 documentation
- 構造化プログラミングと データ抽象
- 定理証明支援の紹介 - Qiita
- 環境スタック 定理証明 - Google 検索
- ホールドリブンで探索 定理証明 - Google 検索
- 定理証明支援系と依存型プログラミング勉強会 - PukiWiki
- _pdf
- モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
- mizutani07222007-30.pdf
- FLOPS2014報告 – DSS Tech Blog
- en
- en
- 圏論とプログラミング読書会#2 資料
- 圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
証明(直観主義)
- https://twitter.com/shinji_kono/status/1308575213785763840
- https://twitter.com/shinji_kono/status/1308575483680833536
- https://twitter.com/shinji_kono/status/1308576073110544384
- https://twitter.com/shinji_kono/status/1308576530474303488
- https://twitter.com/shinji_kono/status/1308577332232216576
- https://twitter.com/shinji_kono/status/1308577520174784512
- https://twitter.com/shinji_kono/status/1308577921750065152
- https://twitter.com/shinji_kono/status/1308578429663506433
- https://twitter.com/shinji_kono/status/1308578857176293379
論理式の証明
- j-1-2.pdf
- 記号論理学と情報科学の研究集会'97の開催のお知らせ
- 148784513.pdf
- 4.pdf
- main.pdf
- エルブランの定理 - Wikipedia
- DPLLアルゴリズム - Wikipedia
- 充足可能性問題 - Wikipedia
- ユニフィケーション - Wikipedia
- 導出原理 - Wikipedia
- 冠頭標準形 - Wikipedia
- 場合分けは論理ORか論理ANDか? - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 集合論と圏論がズレるとき: 空リスト問題 - 檜山正幸のキマイラ飼育記 (はてなBlog)
仕様を「定理」とみなし、「公理」と「推論規則」を使って証明
- 入門!論理学 - Heat-Hazeの日記
- Prologで自動定理証明? - atoprolの日記
- _pdf
- 数理言語
- lecture19-dist.pdf
- 20051018_agent3.dvi
- resolutionprinncipleの応用(東芝RM).iml
- 104-koukyuroku.pdf
- untitled
証明図・証明木・探索木
証明木
- 証明論 - Wikipedia
- 3-print-nk.pdf
- gentzen-NK.pdf
- lecture5.dvi - lecture5.pdf
- IPSJ-Z82-4K-01.pdf
- IPSJ-WPRO2016011.pdf
- 2008grad13.pdf
- sakurai10.pdf
- abstract.dvi - PA1-16.pdf
- digidepo_8559157_po_r6-2-7.pdf
- 0716-06.pdf
- Microsoft PowerPoint - logic05-Chap3-1.ppt
- 1539paper.pdf
- 直観主義命題論理におけるタブロー法による定理証明器
- 3-print-nk.pdf
- 2008grad13.pdf
- 述語論理知識を扱う全解探索仮説推論の高速化
証明探索
@keigoi
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば https://t.co/HJZq4qeoti の p.13 にある含意の推論規則は、変数や型環境を加えればそのまま関数適用の型付け規則であるように見えてくる。例えば P -> (P->Q) -> Q の型付けの導出木を書こうとすると、この型をもつ fun x f -> f x というラムダ項(プログラム)しかあり得ないことに気づく」 / Twitter
- gentzen-NK.pdf
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep この導出木は証明木と同じ形をしている。一方、型がつくプログラムを書くと導出木ができる。つまり、型のついたプログラムを書けば証明ができたことになる。その逆に、証明ができればそこからプログラムを抽出することもできる。例えば Djinn https://t.co/j0EdLg0Tts は、型を書くと、」 / Twitter
- Djinn
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep その型がつくプログラムを自動生成してくれる。これは、その型に対応する論理式を自動証明して、その証明からプログラムを取り出すような動きになっているはず。タプルは「かつ」、Either は「または」、関数型は「ならば」に相当するので色々やってみるとよい」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば fst :: (a,b) -> a は、A /\ B => A に、left :: a -> Either a b は A -> A \/ B に相当する。 Djinn に型を入れれば実装が出てくるはず。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep CH対応の考え方は多相型や依存型だけでなく線形論理-線形型、古典論理-継続渡し計算などに適用されているのが面白いです。上のも雑な説明なのでもしわからなかったらまた気軽にオンラインやローカルで聞いてください。」 / Twitter
- 情報系彼女botさんはTwitterを使っています 「論理型言語Prologは、深さ優先の探索をするから定理証明系としては不完全よ。 それに、実行速度のために単一化のOccures Checkを省いた場合は健全性も失われるわ。」 / Twitter
- Kohei SuenagaさんはTwitterを使っています 「.@ksuenaga 「深層学習によるプログラム生成の高速化」はディープラーニングを使って直観主義命題論理の証明を効率的に探索する話.(すなわちプログラム生成を効率的にやる話.)@asi1024 と @skymountain_ と @nushio との共同研究.#PPL2017」 / Twitter
- 市川雄二/New 3 RsさんはTwitterを使っています 「論理って、多分、命題作成能力が重要だと思う。 フェルマー予想も1つの命題作成。 手割りも1つの命題作成。 これができると、自動証明をくっついて解ける命題については結論が出せる。探索が省略できる。」 / Twitter
- 戸次大介/Daisuke BekkiさんはTwitterを使っています 「@ytb_at_twt (承前)ようになったのですかね。そして単なるパラメータ最適化ではない問題は相変わらずどう解いて良いか分かってないと思います。一方、碁のような問題でも、探索の過程で論理的というか証明探索に近い推論をしてるわけで、発見と正当化の区別は自明ではない気がします。」 / Twitter
- 市川雄二/New 3 RsさんはTwitterを使っています 「証明というのは、距離空間の中で生成される多発的なシークエンスをつなぎ合わせる探索努力という気がする。 命題に対して良い距離空間を持って、長いシークエンス(論理展開)を出力できて、不断の探索努力をする人が人類の叡智となる定理を証明する。」 / Twitter
- ytbさんはTwitterを使っています 「推論主義的な古典論理の証明論的意味論を持っているとき、そこからどのように「指示」概念が自然に生まれてくるかと言う問題、ようは ①古典論理の証明論的意味論 ②証明探索木で論理式の極大無矛盾集合をつくる ③スコーレム化して「指示対象」をつくる(個別化する) という流れでいいのかな。」 / Twitter
- HiroshiさんはTwitterを使っています 「これはあくまで物理学の中で扱う数学的な手法であって、数学それ自体とはまた異なる。数学の営みは、数学的概念に対する性質を探索する、と言える。また、論理のギャップなく証明することが求められる。」 / Twitter
- ytbさんはTwitterを使っています 「これ、面白い話で、述語論理の証明探索樹のによるモデルの構成とかは、まさしくモデルの「無限の長さの証明」で、モデルだから偶然的真理についても語ってる訳だよね。」 / Twitter
- KojimaさんはTwitterを使っています 「論理と計算のしくみ、シーケント計算が証明探索を意識した作りになってて、述語論理のカット除去にエルブランの定理使っててびっくりした」 / Twitter
- tenthsublevelofsuicideさんはTwitterを使っています 「こっから2ヶ月は論理学ちゃんとやりたい。述語論理の完全性証明を探索法でやるのがわからなくて挫折した。ヘンキンモデルはわかった」 / Twitter
- てけてけ坊主さんはTwitterを使っています 「新幹線乗れた 遅刻しそうで気が気出ないけど、でも午前中のセミナーは出てよかった イメージとしては証明探索木による完全性定理の証明を述語論理の場合にも拡張するにはWKLぐらいで十分だよねって話をしてて、全てはチェックできてないけどちょっと納得した 完全性定理は選択公理より真に弱い」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Automated Theorem Proving in Intuitionistic Propositional Logic by Deep Reinforcement Learning https://t.co/S1heVqRruM 深層強化学習で直観主義命題論理の証明探索する論文(@ir5 さん @skyrunner_01 さんとの論文。自分の貢献はあまりないけど)。 昨年の https://t.co/9J3HOxRAvw の続きです。」 / Twitter
- あきやま🐾さんはTwitterを使っています 「@kz_suzuki 探索的テストは広いからどちらもあると思うけど。 経営者は『販売を開始して良いか』の可否判断をする必要があります。その可否判断を演繹的にできるかというと、できません。帰納的に動くしかなくて、『それでいいんだよ』というのが、帰納法だと思います。 数学的帰納法は論理的に証明しているので。」 / Twitter
- КазяさんはTwitterを使っています 「g3cの証明探索がかけてしまった(古典命題論理なので簡単なのはそれはそう)」 / Twitter
- ytbさんはTwitterを使っています 「今日の論理学補講は古典論理の完全性定理と健全性定理。証明探索樹はやっぱりいい。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
- 大妖精botさんはTwitterを使っています 「証明探索木、いろんなところで見るが命題論理の真理の木と違うのだろうか」 / Twitter
- p進大好きbotさんはTwitterを使っています 「@Alwe_Alwe ↑の定義は論理式のゲーデル数しか取ってないです。ZFC等が矛盾する際のルール違反を避けるために、述語|-をゲーデル数上限付き証明探索に変えればOK的な話でした。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「まあ実態としては、ちょうど直感主義命題論理の証明探索のことを調べていて面白かたから実装しただけで、さらに追加の工数をかけて古典命題論理の証明探索を実装するほどでもなかったからですね (必要なら ~~P を証明させればだいたい所望のものが得られるので)」 / Twitter
- AlweさんはTwitterを使っています 「@uu7t_u 私の言葉ではないのであれなんですが、古典論理の定理の多くが証明探索的なことで示せる事だからだと思います」 / Twitter
- 足跡45(羃等)さんはTwitterを使っています 「いや証明が探索できるとか表現能力とか何を対象とする論理かとかあるけど」 / Twitter
- ytbさんはTwitterを使っています 「本日の非常勤授業論理学は古典命題論理の完全性定理と健全性定理について。証明探索樹を使ったけど、まあタブローだよね。」 / Twitter
- p進大好きbotさんはTwitterを使っています 「命題論理の方の完全性って実際に意味論側で真理値全探索するより統語論側で証明探索する方が優位に高速になるのか知らないんですけど、やっぱり早いんですかね? 漠然と「命題変数が少ないけどめっちゃ長い論理式」とかは意味論の方が強そうな気がしちゃいます。」 / Twitter
- ℕ𝚒𝚔𝚘𝚜𝚊𝚒: unit → tweet listさんはTwitterを使っています 「#w2019progLang そもそもFLとPolymorphic FLは別の言語なので、 FLのプログラムの型に関する証明木を作りたいときはFLの型体系の推論規則・公理を、 Polymorphic … 続きは質問箱へ #Peing #質問箱 https://t.co/FOIRuR1ceM」 / Twitter
- スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
- amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
- あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
- 底灯天徐嶺依さんはTwitterを使っています 「あと推論と逆方向(公理に向かう方向)に証明木を伸ばす操作を英語で何と言うのでしょうか。reduntion?」 / Twitter
- 底灯天徐嶺依さんはTwitterを使っています 「reduntion ってなんだよ reduction」 / Twitter
証明木生成の停止性
- 画力・博士号さんはTwitterを使っています 「「命題Aから命題Bを証明しなさい」と入力して,実際には証明できない場合でも,証明木生成プログラムは必ず停止するのだろうか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 古典命題論理はco-NP完全.直観主義命題論理はPSPACE完全.つまり,解けることが知られている.古典一階述語論理や直観主義一階述語論理は決定不能.線形論理については https://t.co/Vuyn0MG2fT」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy 有難うございます! まだまだ無学なので精進します……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy ほぉぉぉ巧く置き換えられるんですね!」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn そういうこと.で,その戦略の第一歩となるのが,シークエント計算とそのカット除去定理.シークエント計算は除去則がないのが特徴.つまり,A/\BからBを導出するというような推論規則は線の下より上のほうが大きいので使いたくない.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn その代わりに,シークエント計算では左導入則というのが使える.これは目的の式ではなく仮定側の命題を分解する.このため,自然演繹のように目的の式だけを表示するのではなく,「仮定 |- 目的の式」の形で書く.これをシークエント(推件式)という.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 自然演繹では,(下から上に進むときに)仮定が増えるのは含意の導入則と選言の除去則だけで,仮定が減ることはなかった.シークエント計算では左導入則で仮定が減ったり増えたりする.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 具体的には,連言の例で考えるとわかりやすいだろう.「A /\ B |- G」 の形のシークエントは,「A, B |- G」の形のシークエントから導出できる.つまり,下から上に進むと,仮定A,Bが増えてA/\Bが減っている.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn こうすると「A, B |- G」は「A /\ B |- G」よりも「小さい」.そういう点でシークエント計算は良い性質を持っている.しかし,一般的な直観主義シークエント計算(LJ)ではまだ不足で,縮約規則とカット規則という鬼門が残っている.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn で,それをてんやわんやしてうまく取り除いて,結果として単調減少(無限降下列を持たない)であるような推論規則を作れると勝利というわけ.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy なるほど…… 華麗だ……」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero ちなみに直観主義論理でもcut除去は成り立っていて、これを使うと直観主義で排中律を証明出来ない事の証明が出来たと思います。cut除去は証明論の基本定理みたいなもので、これがあると色々出来ます...色々...cut除去出来ない論理もあってこれをやっている人達もいます」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 確かcut除去する度に枝が3倍くらいになるのでcut除去の個数回冪乗した3^...^3倍くらいの大きさの証明図になったと思います。正直証明図は読むためのものではないし、何より縛りプレイなので証明は排中律を認めるモノより難しくもなりますね。実装を視野に入れるなら構成的にやるべきですが...」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 要するに証明図の上に行くと必ず小さい論理式になるというやつで、これより証明図を上に辿るという操作は必ず停止します。なので出現する排中律を全部調べることは可能で、与えられた排中律が直観主義で証明可能であるかどうかを判定するアルゴリズムがあれば可能です。あるかは知りませんが...」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 変換アルゴリズムがあるかは知りませんがcut除去定理というのはあります。証明図からcutという規則を除去した証明図を得るアルゴリズムがあるよって定理で、その証明図では“AからB”が証明されたらAはBの部分論理式になっているという性質があります。」 / Twitter
公理と推論規則
- 公理 - Wikipedia
- 推論規則 - Wikipedia
- 命題論理 - Wikipedia
- 一階述語論理 - Wikipedia
- 推論 - Wikipedia
- 論理式 - Wikipedia
- 原子論理式 - Wikipedia
- 論理演算 - Wikipedia
推論規則
- h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「二重否定除去が使えても、Coqerには非常に証明しにくいので、最初に二重否定を(除去規則を使って)つけてしまったほうがCoqでは楽。本来の古典論理の推論規則に基づく証明木に比べると冗長になりがちではあるけれど・・・」 / Twitter
- あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
- amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
- スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
- 病気の美少女さんはTwitterを使っています 「∧∨ってそんなに覚えにくいのかあ。特別な覚えかたとかはしたことないけど、∧のほうが閉じてる感じする(逆さまのコップみたいな)。あと今思い付いたけど、推論規則的には∨なんて分かりやすいんじゃないのかなあ。そのままの形で証明木が別れるし」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「新しい証明木の記法を考えてみた(とりあえず推論規則だけ) http://t.co/FQ2slKencN」 / Twitter
- もすさんはTwitterを使っています 「式木で論理式書いて推論規則を適用して変形していくとか考えたけど、 ⇒(ならば) が書けないという問題が」 / Twitter
- 友利奈緒ちゃんさんはTwitterを使っています 「証明木を作る問題、こうゆう状況だったらこの推論規則を使うというのが決まってる感じがする。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「α等価の推論規則の形成。λの引数を複数にして、その形に関してのみ議論(0でも可)。このとき、α等価なものの示す証明木がα等価な項全体を代表する元として扱える。 #TPP2014」 / Twitter
- h_sakuraiさんはTwitterを使っています 「推論規則を使えば導出のルールを決めることが出来て、導出木が書ける。 評価規則はプログラムの動きを決める推論規則だ。 型付け規則は型を決定する動きを決める推論規則だ。 評価規則も型付け規則も推論規則の1つなので、導出木が書ける。」 / Twitter
- トビーネットさんはTwitterを使っています 「読書してたら抽象構文木という単語がでてきたので、思わず推論規則に沿って導出してしまった」 / Twitter
- かーや (kaya)さんはTwitterを使っています 「ラクエンロジックは、命題カードと推論規則カードを組み合わせることで、自分だけの最強の証明木を作って戦うカードゲームです。」 / Twitter
- Masaru HITOMIさんはTwitterを使っています 「したがって、例えば人間関係においても経験的に正しかろう原則と経験的に正しかろう推論規則さえあれば、論理の木というのは構築しうる。」 / Twitter
- nisizakiさんはTwitterを使っています 「結局のところ、法律や大学が制定した規則に基づいて、ゴールを入力して、推論木を構築している感じ。変なローカルルールがキャッシュにたまってて、奇妙な推論木を構築することがあるし、場合によっては制定された法律・規則の目的の斜め上を行っちゃう感じ (´・ω・`)」 / Twitter
- soujiさんはTwitterを使っています 「会社で少しアジャイル開発についての勉強会に参加した後、自宅最寄駅に最近出来たスタバで型システムの勉強中 公理やら推論規則やら木やら帰納的定義など懐かしい言葉たちと再会出来て楽しい」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ウオー推論規則や導出木を書くマクロが定義できるようになった #SATySFi https://t.co/dz80AUVD9l」 / Twitter
- 浅瀬さんはTwitterを使っています 「型の導出木の推論規則と述語論理の推論の対応ってことよね」 / Twitter
- kodai (▶)さんはTwitterを使っています 「LaTeX の ebproof パッケージを使う練習も兼ねて、CoPL に載ってる導出システム Nat の推論規則を使って判断『S(S(S(Z))) times Z is Z』の導出木を書いてみた コマンドの使い方がだんだん分かってきた https://t.co/z6lOSq0ZFf」 / Twitter
- kodai (▶)さんはTwitterを使っています 「キタ━━━━(゚∀゚)━━━━!! ペアノ自然数の加算・乗算・複数回簡約をする導出システム ReduceNatExp の推論規則(1,2枚目の写真)に従って、判断 S(Z) * S(Z) + S(Z) * S(Z) -*-> S(S(Z)) の導出木(3枚目)を自力で記述できた!! https://t.co/d6XwKOztAF」 / Twitter
- kodai (▶)さんはTwitterを使っています 「推論規則E-Appお前絶対許さんからな… 導出木がクソでかくなるのだいたいお前のせい https://t.co/oaurdZD1q8」 / Twitter
- チェシャ猫さんはTwitterを使っています 「Deep Neural Network を利用して、最小論理の論理式に対する自然演繹による証明を生成する研究。ただし対象となる論理式が証明を持つこと自体は仮定。証明木全体を一度に生成させるのではなく、各ステップごとに適用する推論規則を DNN に当てさせる。 #jssst_ppl2019」 / Twitter
- kentoさんはTwitterを使っています 「ってやれば、 ・ 規則の各適用段階での型推論の木の状態を見ながら ・ 各規則が本当に正しく動くかを確認する ってのができそう」 / Twitter
- AlweさんはTwitterを使っています 「PAの順序数解析(の上限)を簡単に纏めるとPAの証明を無限の長さを持つω論理に埋め込む。埋め込むと、超限帰納法を証明できると仮定するとω論理上でも当然証明できて、それに関する推論規則を導入できる。その上でcut除去を行い、証明木の高さがわかるため、木の高さで順序型が抑えられればよい」 / Twitter
- sp4ghet@すぱげっとさんはTwitterを使っています 「どうでも良い話なんですけどゲーデルの不完全性定理とかで出てくる論理学とか型理論で出てくる推論規則/導出木とかそういうやつって「論理学」というキーワードで勉強進めていけば全体観が見えてくるんでしょうか」 / Twitter
- はかりさんはTwitterを使っています 「型付けの導出って推論規則の定義から導出図が一意に定まっちゃう~ってことあると思うんですが、こういうやつを計算量に気を付けつつ求めたい~とかなったらどうするんですかね。結局導出木を上るしかないのでは??みたいな話」 / Twitter
- cutsea110さんはTwitterを使っています 「siteswapの証明木は下から上に展開されてて、証明と思うと向きが逆になるもんだからモヤモヤしてたけど、推論規則によって元々はどういう状況だったか、この状況を説明する証拠が下に来ていると思えば分かった気になれる。」 / Twitter
- 尾形学士さんはTwitterを使っています 「こっちが推論規則から導出木をつくるやつ。 https://t.co/dSrsJQQ82o」 / Twitter
- EvalNatML1.hs
- 振込さんはTwitterを使っています 「推論規則をたくさん用意して気合で推論木を構成するのか」 / Twitter
- ケ゜ンミジンコさんはTwitterを使っています 「@LDScell この本自体は大学院でやりました ただ学部の頃に似たようなことはやってました、推論規則の木を作ったりという」 / Twitter
ソフトウェア検証・論理・計算・帰納
言い回し:数学的な証明
- チェシャ猫さんはTwitterを使っています 「> TLA+ などのツールを使用して、分散アルゴリズムの正確性をモデル化し、正式に検証します。(分散システムのリーダー選挙)」 / Twitter
- ポジティブな ToriさんはTwitterを使っています 「AWS/Amazon がこれまでのシステム構築や運用から得た知見をトピック別にまとめた Amazon Builders' Library という Web サイトがあるんですが、日本語訳が増えてきました✨ 読み物としてもとても面白いので、ソフトウェア・エンジニアリングに関わる人にオススメです🤗 https://t.co/oMQVeT23Ai https://t.co/xdXM7UdyX7」 / Twitter
- The Amazon Builders' Library
- チェシャ猫さんはTwitterを使っています 「ちなみに「正式に」は原文だと "formaly" なんだけど、この言葉は実は訳しづらい。「形式的に」だと、この分野を知らない人からは「形式的な取り調べですので〜」的な「表面上の形だけ整えた」みたいな意味に解釈される傾向があると感じている。 https://t.co/tXoiWKus1a」 / Twitter
- チェシャ猫さんはTwitterを使っています 「前も何かで書いた気がするけど、知らない人向けに「形式的な検証」って書くと「形式的な書類」とかの「形式的」だと勘違いされそうなので、「数学的な証明」みたいな言い回しの方がいいかもしれない。「形式的 (formal)」は意外とテクニカルターム。」 / Twitter
- 07gun_01hen_02.pdf
- 記号論理学
- y-slide-ss06.pdf
- 4.dvi
- kk-ieice02.dvi
- https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/50090/3/000000272912.pdf.txt
- 論理と計算 講義ノート
- Theorem Prover in Java
- TRonso33_Kukita.pdf
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「形式手法(FM)はその有用性が喧伝されているにもかかわらず、いまだに産業界での応用例は少ない。より広範囲に使われるための10の提案: - 使用範囲がはっきり記述されること - レシピが細かく書かれていること - 既存技術と組み合わせ可能なこと - 自動化が可能であること etc. https://t.co/2UlNce5gXz」 / Twitter
- [2112.12758] A Manifesto for Applicable Formal Methods
- SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft - Microsoft Research
- 000005473.pdf
- VPC Reachability Analyzer と形式手法 - チェシャ猫の消滅定理
- 関数型言語と形式手法でブロックチェーンを証明しよう
- 形式検証の視点から再確認したいMaybe型/Option型からnull許容データベースへのデータ変換 - Qiita
- 定理証明 木構造 - Google 検索
- プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
- きけんぴんさんはTwitterを使っています 「健全性・完全性って、証明とか判定する体系自体についての話という認識。別のツイートのリプライツリーの例を借りれば、「単純型付きラムダ計算の項であるか」を判別することで「計算が停止するかどうか」を判定するというシステムならば、停止性を判定するシステムとして健全と言えそう。」 / Twitter
- ytbさんはTwitterを使っています 「LL Toyという証明支援ツール、ゴールとなる証明したい論理式を入力すると、そこが結論となるような推件計算の証明図を生成してくれるんですが、ゴールとして証明できない論理式(たとえば直観主義論理上で((A→B)→A)→A)を入力すると挙動が面白いですね。無限後退。 https://t.co/5hoTti0pzm https://t.co/bZCHKUB3Ej」 / Twitter
- LL Toy
- ytbさんはTwitterを使っています 「直観主義論理上の二重否定除去の「導出」に挑戦したのはこちら。見事な無限後退。 https://t.co/oDasR54fna」 / Twitter
- slide.pdf
- general4-3.pdf
- sakigake03.pdf
- コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介 - zengakuKyoutsu2014-07-18-2.pdf
- Coq/SSReflect/MathCompで解析入門の1章の命題を全て証明 | Mathlog
- ドッグさんはTwitterを使っています 「Rust プログラムがクラッシュしないことの証明の話や Unsafe Rust の安全性の証明の自動化フレームワーク (Isabelle で書かれてる) の話,借用チェックをモデル化するコアライブラリ Polonius の話などなど」 / Twitter
- ドッグさんはTwitterを使っています 「Rust コードの検証をしてくれる Prusti 知らなかった.panic-free かどうかや overflow check の他,属性に事前条件・事後条件,副作用の有無などを書くと検証してくれる.VS Code 拡張もあるのか https://t.co/iDZGFo8rPC」 / Twitter
- viperproject/prusti-dev: A static verifier for Rust, based on the Viper verification infrastructure.
- [2212.09835] A non-constructive proof of the Four Colour Theorem
- Will the new non-constructed proof of the 4-color theorem prove essentially correct? | Manifold Markets
型
その他
その他
- 計算ファースト vs. 型ファースト / Computation First vs. Type First - Speaker Deck
- A brief introduction to type inference - Speaker Deck
- PureScriptで存在型を試す - Qiita
- text.pdf
- Phantom Type - Google 検索
- データクラス 型クラス 代数的 - Google 検索
- Swiftのassociatedtypeとtype erasure - sambaiz-net
- Shiro KawaiさんはTwitterを使っています 「おもしろい。型のパラメタライズは個人的にはHaskellの構文がコンパクトで好き」 / Twitter
- Masaki HaraさんはTwitterを使っています 「いい機会なのでジェネリクス引数の曖昧性について各言語がどうしてるか調べつつまとめてみる https://t.co/IgszcsoAMx」 / Twitter
- ジェネリクス引数の構文的曖昧性まとめ
- parametric polymorphism - Google 検索
- 制約をロジックではなく型で表現する
- 単体複体 - Google 検索
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「単体複体ってグラフ構造をn次元に拡張したやつか。定義みても意味がわからなかったが、例題があったのでわかった。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「どういう時に使うんだろ」 / Twitter
- kripkeJoyalさんはTwitterを使っています 「@ytakanoster 例えば 項を点、 項の簡約原理(equivalence) を辺、 辺同士の equivalence を面、 … ように簡約システムの設計に使われます」 / Twitter
- kripkeJoyalさんはTwitterを使っています 「@ytakanoster あとはホモロジーの計算とか」 / Twitter
- Higher Kinded Types - herp-technote
- でこれきさんはTwitterを使っています 「コンパイル元/先の言語の型システムによる気はする。CoqからOCamlを生成する場合はObj.magicがあるのでどうとでもなるけど、SMLをターゲットにしようとするとSML/NJはUnsafe.castがあるけど他の処理系はそうもいかないとか」 / Twitter
- でこれきさんはTwitterを使っています 「Unsafe.castの有無は型システムというより実行モデルとか実行時表現とかによるか」 / Twitter
- dif_engine@ワサラー団さんはTwitterを使っています 「プログラミングの際,型を「値の集まり」と認識するのはよい習慣.しかし数学でいう「集合」と違って型に対しては(型全体にわたる)和や冪がかならずしも取れない.したがって「正式に」話すときには型と集合は別のルールに従う系をなすと考えるべき.」 / Twitter
- 富谷@MLをつかう物理学者🐉🍕さんはTwitterを使っています 「数学における集合とプログラミングの型って似てると思うんだけど、どうなんですかね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「数学者には、算数が苦手な人が多い。現実の問題を扱おうとしても、抽象化の階段を思いっきり上がってしまって降りてくるのが大変なのである。 https://t.co/oyHpHQifvm」 / Twitter
- Why Are Mathematicians So Bad at Arithmetic? – Math with Bad Drawings
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「自分が計算機科学者だからといって、計算機で時間をつぶす必要はない」 - Edsger W. Dijkstra」 / Twitter
型
その他
tagged type (branded type), opaque type alias
- phenanさんはTwitterを使っています 「本当に欲しかったものは単なる type alias ではなくScala3 の opaque type alias だった」 / Twitter
- がくぞさんはTwitterを使っています 「@phenan それofそれ」 / Twitter
- がくぞさんはTwitterを使っています 「もしくは tagged type (branded type) みたいな」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「型エイリアス欲しい」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 本当に欲しいのは abstract type members ではないですか!?」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz エスケープ済のStringと未エスケープのStringを区別したい程度の要求なので……」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise その用途ですとますます型エイリアスだと危なそうな?(人間の視認による区別しか働かず、コンパイラが区別できないので」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz じゃあ駄目か」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise 人間への説明として「この文脈ではこの型をこういう意味として使ってるよ」みたいな時に型エイリアスは有用かと思いますが、混ぜるな危険!みたく異なるものを区別したいみたいなケースなら型自体を分けたほうが人間のミスを防ぎやすいのでお勧め感ありますねー」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz エグいジェネリクスを簡易に書くみたいなのにしか使えないか。型エイリアス」 / Twitter
型変換やオブジェクト変換の関数/メソッドに対する習慣や知見
- Shiro KawaiさんはTwitterを使っています 「メソッドはクラスに帰属しない、というマルチメソッド派だけど、動的型付けだと戻り値の型でディスパッチするのはやりにくいので、引数の型 (a) でディスパッチし、名前でbを表す、って感じですね。 (define-method x->b ((from a)) ...)」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「これだと x->b というジェネリック関数に属してるから、感覚的には b に属するってことになるのかなあ。でもコード書くときにaのモジュール中に含めるかbのモジュール中に含めるかはケースバイケースって気がする。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「言語仕様によると思う。 たとえば a の実行時の型による動的ディスパッチ(とコンパイルエラー検出)ができるなら、それを使うべきだけど(https://t.co/mmfENQUNY5_b)、別クラスのインスタンスメソッドを生やせない言語もある(Java/C++とか)ので…」 / Twitter
- 山本和彦さんはTwitterを使っています 「オブジェクトでも型でもいいんですが、aからbへ変換するa2bという関数/メソッドは、オブジェクトに帰属させる場合、a側に置くのか、b側に置くのか、慣習とか知見はあるんでしょうか?」 / Twitter
- 山本和彦さんはTwitterを使っています 「まとめました。 https://t.co/qLmSmkTe4x」 / Twitter
- 型変換やオブジェクト変換の関数/メソッドに対する習慣や知見 - Togetter
- Noriyuki OHKAWAさんはTwitterを使っています 「@kazu_yamamoto 個人の意見ですが https://t.co/FxyYZ9ErdM」 / Twitter
- 山本和彦さんはTwitterを使っています 「@notogawa OHKAWAさんのその意見は、存じ上げてますよ!」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kazu_yamamoto aとbの型のどちらがその変換アルゴリズムを知っているべきかによると思います。 例えば文字列型と日付型の場合、文字列型の方がより一般的な型なので、文字列と日付の変換は日付型が知っているべきです。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「@kazu_yamamoto bが新しくインスタンスを生成する場合は、 b = new B(a); b = B::create_from(a); の様に、新しくインスタンスを生成する事を明確にすべきで、単に内部で変換されるだけなら、 b = a.change2B(); // 戻り値は自分自身でメモリは消費せず とかな気がする。」 / Twitter
- 増田 亨.さんはTwitterを使っています 「@kazu_yamamoto aがbを知っているのが自然なら、aに置く。 bがaを知っているのが自然なら、bに置く。 aもbもお互いを知らないほうが自然なら、cを作って、cだけがaとbを知っているようにする。 私がクラスを設計する時には、こんな感じで考えますね。 「知っているのが自然」というのが悩ましい時もありますが...」 / Twitter
- KOBA789さんはTwitterを使っています: 「並行処理のランタイムについては Go に正解があり、並行処理を記述する言語の型システムについては Rust に正解があるといった状態」 / Twitter
- Yukihiro MatzmottoさんはTwitterを使っています: 「私の知ってる中でもトップクラスのプログラマーが「Rustである程度以上のプログラムを開発できる気がしない」と言っているのは、なにか適正のようなものがあるんだろうか。」 / Twitter
- AzさんはTwitterを使っています: 「様相論理を用いると数学的に扱いやすい記号とその解釈 (と思われるもの) が得られるというだけで、別に普通の古典論理を用いたってちょっと解釈が複雑になるだけだろうと思っています」 / Twitter
- AzさんはTwitterを使っています: 「@vefclocmtlqv 一階述語論理を考えていました (ごめん) ただ様相論理でも「『べき』を扱う」力が足りているかは疑問です (一部の現象を扱いやすくはなると思います)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「1という文字列が1という数字の概念にマッピングされるとかそういう話が自明じゃない(ちゃんと区別すべき)のは、リフレクションをやれば当然ですわね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型検査の一部のみを行う軽量な型検査もこれから有効な場面はあるかもしれないし、逆に、より重い静的型検査もいろいろな場面で求められると思う。例えば、自動的に実行できない型検査とかね。形式手法でいう証明責務ってやつ。自動証明の範囲を出てしまっている型検査。きっと必要。」 / Twitter
- mod_poppoさんはTwitterを使っています 「動的言語勢がいくら「値には型がある」とか粋がってみても、動的言語での関数の「型」には大抵「入出力の型」の情報は入ってない」 / Twitter
- kawasimaさんはTwitterを使っています: 「型を設計することと、静的型付けか動的型付けかは別軸の話なのに、混同した議論が多い。 なお4象限に分けると、静的型付け言語でPrimitive Obsessionが一番辛い。」 / Twitter
- Primitive Obsession - Google 検索
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「Rustで型A, B, Cがあるとき、共通部分があるタプルの組、例えば ((A, B), (A, C)) にトレイトを実装したいんだけど、たとえば Match<A> みたいなトレイトを作ったところでAを正しく推論できなくて詰むの何とかしたい」 / Twitter
- Value Objectについて整理しよう - Software Transactional Memo
- がくぞさんはTwitterを使っています: 「Javaの場合、YAGNIに従って後から必要になってからPrimitive Obsessionを避けよう、とすると変更がめちゃめちゃ大変だしIDEで一発変換みたいな事もできないので、最初から全部のクラス作れみたいな方向に行きがちっぽい。KotlinやScalaだとtype aliasが使えるから意思決定の遅延がしやすいのよね」 / Twitter
- やきにくさんはTwitterを使っています: 「refinement typeが使える言語だったらvalue objectは不要になる」 / Twitter
- やきにくさんはTwitterを使っています: 「不要っていうか、refinment typeでやりたかったことを表現できる」 / Twitter
- 杉本啓さんはTwitterを使っています: 「値クラスが人気のようだが、値クラスの周辺には: ① 不変性 ② 等価性、ハッシュ値の一致など、値としてのセマンティックス ③ 値の実装を隠蔽すること(抽象データ型) ④ 値間の演算の置き場所 ⑤ ビジネスルールの置き場所 などの論点がある。どれに着目して話しているのか、示した方がいい。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「例えば、「住所」という値クラスを作ったとして、郵便番号、都道府県、市町村、住所1、番地...からなるその内部構造を隠蔽しようという意図は、たぶんないだろう。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「ソフトウェアの設計や開発について自論を提唱するのは大いに結構(その内容は議論の対象となるが)。 先人が考えた「オブジェクト指向」や「ドメイン駆動設計」をオレオレ流に捻じ曲げて、これがオブジェクト指向、これがDDDと呼ぶのはやめて欲しい。 健全な議論の足場を崩す不誠実な行為だ。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「↓こういう区別は大事ですよねえ。僕も値オブジェクト派?を批判するけれど、値オブジェクト自体は好きで、多用しています。 なんでも値オブジェクトにせよとか、ビジネスロジックも値オブジェクトに持たせろという主張に辟易しているだけで。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「今ふと気付いたのだけど、もしかしてオレは抽象データ型を嫌ってると思われているような気がしてきた。嫌ってるわけではないです。むしろEiffelとか大好きです。Bertrand Meyer先生にサインもらって宝物にしています。手続き抽象によるデータの抽象化も、表明による手続きの抽象化も、大好きです。まじ」 / Twitter
- magnoliak🍧さんはTwitterを使っています: 「各種プラクティス、「例外なく全部やる」も「やれるところだけやる」はどっちも誤りで「やるべきところを見極めて、本当にやるべきところだけやる」でないといけなくて、つまりは「ちゃんと考えてやって」なんですよ」 / Twitter
- magnoliak🍧さんはTwitterを使っています: 「「やらないよりやった方がいいよ」って言い出したら要注意です そういう時はやらない方がいいよ」 / Twitter
- magnoliak🍧さんはTwitterを使っています: 「ルールを作る人は、ルールこそが完全性をもたらすと思ってしまうんだけど、そんなことは無いよね」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「進歩と称して文字は読めるのに文章が読めない人が増えてしまう人類のバグはやく修正して」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「長文というメディアしかなかったから、というのはそう。今はメディアの同期速度がとても早くて長文はレガシー。問題なのはそこではなく、どんなメディア経由でもいいんだけど、行った先でセマンティックの再構築が成されないことっていう意味です」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「大抵の言語で例外を多相にできないのは,もしできると exception 'a Dummy of 'a let magic x = try raise (Dummy x) with | Dummy y -> y の要領で Obj.magic : 'a -> 'b が実装できて健全性を満たさなくなってしまうからっぽいですね」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「effect systemを適切に設計すれば,この例でも「この式は Dummy τ の形の例外を出しうる」という情報を持ち回って x と y の型をunifyし magic : 'a -> 'a と推論できそうな気はする」 / Twitter
- lotzさんはTwitterを使っています: 「型が持つ値の数に注目すると代数的データ型と代数の間に直感的な対応があるという話👀 /代数的データ型と初等代数学 https://t.co/VtD47dKnM3 https://t.co/uWwPcuTzwL」 / Twitter
- 代数的データ型と初等代数学 - blog.ryota-ka.me
- がくぞさんはTwitterを使っています: 「ジェネリクスは確かに抽象化を可能にする目的で導入される機構なのだけど、Phantom Typeのような利用は抽象化というより型に対して制約を付与するイメージがあるのだよな…… Phantom Typeも視点を変えれば本来別々の型とするものを一つの型として抽象化していると見做せるちゃー見做せるけど」 / Twitter
- lotzさんはTwitterを使っています: 「『Recursion Schemes 入門』 簡単な独自言語の型の実装から始めて問題を解決していく過程で Recursion Schemes が自然人導入される形で解説されている👀 曰く「for と while が手続き型言語のイディオムであるように Recursion Schemes は関数型言語の基本的なイディオム」 https://t.co/imcv6Iev3L」 / Twitter
- adventures in uncertainty: An Introduction to Recursion Schemes
- mizchiさんはTwitterを使っています: 「t が型名のフィールドに使ってるのは ocaml がそうだしわかるかって感じなんだけど、キーすら使いたくないときは named tuple になる。引数4個以上だと破綻しがちだが const enum MyType { A, B, C } type MyData = | [ t: MyType.A, ... ] | [ t: MyType.B, ... ] | [ t: MyType.C, ... ]」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@mizchi これに明確なタイプフィールドをつける感じですね。https://t.co/wap8NkqLTw if とプロパティ取り出しの煩雑さがなくなるメリットはわかるんですよ。でも代数的な型のあの、言語が型情報を見て「よしパターンを網羅できているな」と保証してくれるあれができたらいいのになあと」 / Twitter
- gvergnaud/ts-pattern: 🎨 The exhaustive Pattern Matching library for TypeScript, with smart type inference.
- mizchiさんはTwitterを使っています: 「これを本気でやるには構文拡張と JSON の拡張とセットで考える必要があって、シリアライズ可能な構造体というJSの強みを損ねずに使うには、それを生成した型の情報をどうにか持つ必要があります。ただの型専用フィールドでは無理で、構造体を検証できるハッシュ等になるはずです。」 / Twitter
数学
集合論
- コロちゃんぬさんはTwitterを使っています: 「集合論でたまに聞く「0個の和は空集合」「0個の積は1点集合」っていう標語、数でいうと「0a=0」「a⁰=1」が近いのかも。naを「n個のaを足しあわせる」と思うのではなくて「0にaをn回足す」と思えばいい。そうするとn=0のときに自然に「0a=0」が出てくる(積も同様)」 / Twitter
- コロちゃんぬさんはTwitterを使っています: 「そういえばお笑い数学協会の人が「2⁴=2×2×2×2は『2を4回かけている』のではなくて『2に2を3回かけている』んじゃね?」的なことを言ってて、最終的に「2⁴=2×2×2×2は『1に2を4回かけている』と思ったほうがいい」に着地してた気がする」 / Twitter
- コロちゃんぬさんはTwitterを使っています: 「少し前にこんな計算をしてたわ https://t.co/hJ5V2gUXpd」 / Twitter
- コロちゃんぬさんはTwitterを使っています: 「ゼロ個の積が1元集合になることの"説明" https://t.co/kbwPX6sdSB」 / Twitter
- コロちゃんぬさんはTwitterを使っています: 「順序対(a,b,c)には(*,a,b,c)のように*が隠れていると思えば、後ろから成分を外していくと、対を取る以前の状態(*)が出てくる。それを"ゼロ個の積"だと思えば、確かにゼロ個の積は1個しかないですね。a⁰(a≠0)にも通じる話」 / Twitter
集合論の呼称
- Atsushi YamashitaさんはTwitterを使っています: 「数学の基礎言語としての集合や論理の取り扱いの練習のことを「集合論」と呼ぶのは何とも大げさで違和感がある。「素朴集合論」なら分かるけど。」 / Twitter
- Sakaé FuchinoさんはTwitterを使っています: 「@yamyam_topo 「集合算」はどうでしょう? 集合論の用語では「素朴集合論」は,公理化の議論に first-order logic を使わない偽物の集合論のことです.」 / Twitter
- Sakaé FuchinoさんはTwitterを使っています: 「@yamyam_topo ちなみに,『数理科学』の今度の六月号に載る予定の記事に,一般には単に集合論と呼ばれることの多いこの「素朴集合論」を振り回すと,どういう大変なことが起きうるか,と言う話を書きました.紙数の関係から省略した議論の細部は,文献表に挙げたネット上の文献で,すべて補えるようになっています.」 / Twitter
- Atsushi YamashitaさんはTwitterを使っています: 「@SakaeFuchino ご返信ありがとうございます。『数理科学』の記事は面白そうです。是非読ませていただきたいと思います。」 / Twitter
- 名前OS/めいぜんおーえすさんはTwitterを使っています: 「@yamyam_topo 素朴集合論という単語は、誤解を含め、様々な意味で使われがちなので、個人的には、できれば使わないでほしいです」 / Twitter
- Atsushi YamashitaさんはTwitterを使っています: 「@meizen_os 無制限の分出公理を認める矛盾した体系、の意味でも使われると聞いています。しかし、大学初年級で数学の基礎言語としての集合の扱いを学ぶコースの一般名称として、集合論は大仰な感じがします。悩ましいです。」 / Twitter
- 名前OS/めいぜんおーえすさんはTwitterを使っています: 「@yamyam_topo 詳しくは渕野 昌先生がまとめたものがあるのでご覧ください。 https://t.co/TAJxW89z72 ぼくの場合、学部1年くらいの集合論なら、そのまま「集合論」とよびます。 内部モデルや強制法など使うときは「公理的集合論」とよびます。」 / Twitter
- Is "naive set theory" really that naive ? (Study of the History of Mathematics) - 1787-15.pdf
真部分集合と部分集合
- Yusuke TeradaさんはTwitterを使っています 「確か10年くらい前に高校教科書の ⊂ が部分集合に変わったはず。 真部分集合については,今の教科書では記号の定義はなされず,教科書によっては「真部分集合」という単語自体が登場しないものもあった。https://t.co/QwdBizkGrP」 / Twitter
- mod_poppoさんはTwitterを使っています 「俺の頃は高校数学では真部分集合が⊂だったけど、今の高校数学は違うのか」 / Twitter
- 嘉田 勝さんはTwitterを使っています 「A⊂B 真部分集合(← A=B のときはない) は 【廃れた流儀】です。そして廃れるべき理由があります。「真部分集合」を表す記号は一般的な数学における存在価値がものすごく低いのです。 過去には高校数学教科書がその流儀でしたが、こんにち使う人はほとんどいませんし、使うべきではありません。」 / Twitter
- mod_poppoさんはTwitterを使っています 「真部分集合よりも部分集合の方がよく使うし、真部分集合よりも部分集合の方が基本的な概念だから、部分集合の記号には真部分集合とかいうのに遠慮しないでなるべく書きやすいものを使いたい」 / Twitter
- Xirdim【ひるでぃむ】さんはTwitterを使っています 「〈一般的〉 A⊆B 部分集合(← A=B のときもある) A⊂B 真部分集合(← A=B のときはない) 〈日本の高校数学〉 A⊂B 部分集合 …え?じゃあ真部分集合どうすんの?! ↓ A⊊B 真部分集合 こういうのマジでやめた方がいいと思う()」 / Twitter
- Xirdim【ひるでぃむ】さんはTwitterを使っています 「A⊂B が多義的になってしまう時点でかなり酷いのに、 それに伴って ⊊ という書きづらく読みづらい記号を作る羽目になるとか最悪がすぎる」 / Twitter
- こぶなつ(新)さんはTwitterを使っています 「@xirdim いえ、「〈日本の高校数学〉」として挙げられた流儀は、日本限定でも高校数学限定でもありません。 この二つの流儀の共存/混乱は国際的に起きているものです。 https://t.co/lZPxrnvwDQ」 / Twitter
- Glossary of mathematical symbols - Wikipedia
- こぶなつ(新)さんはTwitterを使っています 「「共存/混乱」と書いたのは、よく"mind/brain"とか書くのと同じで、これを共存と呼ぶか混乱と呼ぶかが示唆する立場の違いを棚上げする意図でした。(私はここでは流儀が二つあることが良いとも悪いとも主張しない、ということです)」 / Twitter
- 落ち武者さんはTwitterを使っています 「@xirdim それ、日本の高校数学ゆうても改定後やで。おっちゃんらは前者で習った。高校で真部分集合か否かが問題になることってあんまりないし、しょうもない引っ掛け問題作りよるから、改定して良かったと思うで。」 / Twitter
- ジョリーアンドサラーさんはTwitterを使っています 「@xirdim 記号の意味が曖昧な事や他の記号とのバランスが取れてなかったりとかの件ですね。数学書を読むと、単語の係り結びがかなりいい加減な事が分かります。自明であるとか言っちゃうし。本質は間違いが無い厳密な数学ですが、その表現道具の記号、文字、言語が曖昧で間違いが多い人間的なモノなんです。」 / Twitter
公理系の設計
- 大嶋泰介/TaisukeOhshimaさんはTwitterを使っています: 「同じ公理系から出発して論理を展開するものが数学のはずなのに意見が割れているの謎。 素人には想像持つかない複雑さから「数学における認識論」で意見が割れているということなんだろうか?」 / Twitter
- カワズ on the birdさんはTwitterを使っています: 「@taisukeOo (番組をリアルタイムで見れてないのであれですが)難しい問題があるとき、数学者はそれをある見通しの良い公理系で捉え直そうとする行為をしばしばするわけで、そこで結構意見が割れることがあったりするんだと思います」 / Twitter
- 大嶋泰介/TaisukeOhshimaさんはTwitterを使っています: 「@kawazu_on_bird 一般的ものとは違う公理系から出発して、問題を解いたから、議論が割れてるということっすかね。 それならまだあり得そうだと思えます。」 / Twitter
- カワズ on the birdさんはTwitterを使っています: 「@taisukeOo そういう理解でいいんじゃないかと思います。偉大な数学者は常に「問題を見通しよく適切に扱うための空間設計(公理系の設計と言ってもいい)」に迫る研究を行なっていることが多いです。」 / Twitter
- カワズ on the birdさんはTwitterを使っています: 「@taisukeOo ある先生がめちゃくちゃ難しい理論を駆使して問題を解いたのに「本当はちゃんとした空間設計をしないといけないのに私は怠惰だからアリモノの道具でなんとかしてるにすぎない」とか言っていたのが思い出されます」 / Twitter
- 笹山 央さんはTwitterを使っています: 「@taisukeOo 同じものを異なったものとして見るという発想が単純に面白いと思いました。」 / Twitter
- 笹山 央さんはTwitterを使っています: 「@taisukeOo 数は多様性を表していると考えます。」 / Twitter
- Koan OgataさんはTwitterを使っています: 「@taisukeOo 適度に抽象レベルを設定しないと、汎用性を損なって適用範囲が狭くなるか、抽象度が高過ぎて何も面白い結果を導けなくなるか、になってしまうと思う。 たったそれだけの公理からこんな色んな結果が導けるの!?が理想だと思う。」 / Twitter
背理法
- RuteさんはTwitterを使っています: 「受験数学史上最短の入試問題だと間違いなく思いました. 見た瞬間びっくりした https://t.co/1RO485JBPK」 / Twitter
- RuteさんはTwitterを使っています: 「source: https://t.co/22VKkIGUtK」 / Twitter
- 9b1263988024d8ca12f2780989f2de51-1.pdf
- Hideyuki TanakaさんはTwitterを使っています: 「(´・_・`)👇これいいじゃん。円周率が3.05より大きいとか、加法定理を証明せよとかしょうもない問題より楽しそう。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「直感的には整数なわけない気がするから、整数だと仮定して背理法になるんだろうけど、背理法って証明として使って正しいの?この辺正直よくわかってないんだけど。なんで使っちゃダメなことがあるんだろう。使うと何が破壊されるんだろ。」 / Twitter
- ❄雪下❄さんはTwitterを使っています: 「@tanakh 背理法を批判している人は背理法を使わずとも簡潔に解ける問題を背理法で教えることで誤った直観を持ってしまうことを批判しているらしいです 高校数学は普通古典論理でやってるので別に間違っているところはありません」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「@Mopepe51 うーん、まあ確かに背理法を教えるためにそういうことをしているケースはあった気がしますね。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「各種非古典論理がどういうモチベで作られていったのかとか勉強した遠い記憶はあるけどCoqとかやり始めたころには忘れてたから再勉強せにゃならん・・・(´・_・`)Coqに関しては何もわからんでも記号操作してアクセプトすりゃいいだけだからな。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「ああ、boolに関しては問題ないけど、一般の命題に関して二重否定が除去できるのは確かにおかしい気がしてきた。なんか具体的な値があるわけじゃないしな。」 / Twitter
述語論理
- あんこさんはTwitterを使っています: 「数学者といえど述語論理は難しくて、息を吸うように扱えるのはトレーニングした範疇で、ミニマルな∀∃と∃∀くらいは当然使えるけど、∃∀∃∀∃∀∃くらい量化子が連なってると"10が10000になったな"くらいの難しさの跳ね上がりを感じるし、自然言語で考えるのがしんどくなってくる」 / Twitter
- ぼいつぉふさんはTwitterを使っています: 「@bean_paste ∃∀∃∀だけでも大変な例があったのでどうぞ! https://t.co/BrrkWpCk62」 / Twitter
- Sequent botさんはTwitterを使っています: 「.@boitsov14 Provable. (p0al) https://t.co/mONCBoOZTE」 / Twitter
- あんこさんはTwitterを使っています: 「ふだん∃∀∃∀∃∀∃くらい複雑な述語論理に出会わずに済んでるのは、定義や記号で事前に述語論理を∀∃や∃∀の形に小さく分割してるから(数学にはそういう慣習があるから)だと思う」 / Twitter
ε-δ 論法
- 若葉めるたん@微分コンサルさんはTwitterを使っています: 「ε-δ 論法のここがすごい! - ”限りなく近づく”の意味が初めて明快にわかる! - 収束レートを定量化していないので、どれだけ”遅くて”も大丈夫! - 位相空間、距離空間、収束の強弱などの議論が何言ってるかわかるようになる! - 一度でもマジメに勉強したことがあると、まず忘れることはない!」 / Twitter
- シータさんはTwitterを使っています: 「「解析なんて数値計算出来ればよく、ε-δをやるのは無駄」みたいなtweetがあったが、そういう人がナイーブに数値計算でフーリエ変換してギブス現象に躓いたりするのが数学の面白いところだったりする(各点収束と一様収束の違いが効いている) https://t.co/v48z6LIT2d https://t.co/ZuYTjVWrtX」 / Twitter
- ギブス現象と関数列の収束
- シータさんはTwitterを使っています: 「もっとも大学の講義にも改善の余地はあり、特に「明らかに行儀のいい関数である」ような場合にやたら厳密な手続きをするのは無駄に見えてしまうのはそうだと思う。解析ではもっと「病的な例」を見せて厳密な議論の必要性を見せた方がいい(という趣旨で作った過去資料 https://t.co/tAd6LVkTkU)」 / Twitter
- 2020-analysis.pdf
- しぶちん⏳🌏🧭🔨さんはTwitterを使っています: 「@Perfect_Insider いわゆる、ヒゲが出るんですよね。」 / Twitter
連続帰納法
- きいねくさんはTwitterを使っています: 「実数にも帰納法はあるらしいんです https://t.co/ODpKojk0Zs」 / Twitter
- きいねくさんはTwitterを使っています: 「参考URL①:https://t.co/OMEII62ovM 参考URL②:https://t.co/vyOFfMMMA1 いろんなタイプの R 上の帰納法と、その他の R の性質との関連が書かれてます。」 / Twitter
- 05mm031.pdf
- [1811.00284] First-Order Continuous Induction, and a Logical Study of Real Closed Fields
- きいねくさんはTwitterを使っています: 「連続帰納法の(3)をなくして(2)を 「aで成立するならある区間 (a,b] で成立」 に変更するとどんな問題が起こるか考えてみよう」 / Twitter
実数の濃度
- Rui UeyamaさんはTwitterを使っています 「大学院で出た課題で一番記憶に残ってるのは、[0,1]と(0,1)の実数の濃度が等しいと授業でやったけど、実際に1対1で対応するマッピングを考えよというやつかな。0から1までの間に実数は無限個にあるけど、境界を含むと2個多い(多くないけど)。それをどうやって押し込むか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「一つの答えとしては、まず0⇔½、1⇔⅓と対応させた上で、残りは½⇔¼、⅓⇔⅕、¼⇔⅙、⅕⇔⅐、⅙⇔⅛……と対応させることで、2つの余分な要素を(0,1)に押し込めることができるのでした。」 / Twitter
代数
- にゃ〜んさんはTwitterを使っています: 「線形代数勉強してきたら抽象化セグ木とかトロピカル演算とグラフ最短路みたいな代数よりのことも勉強してみたくなってきた(実は代数面白いか?)」 / Twitter
- えびちゃんさんはTwitterを使っています: 「@kazu0x17 オッ」 / Twitter
- にゃ〜んさんはTwitterを使っています: 「@rsk0315_h4x なんか代数でおすすめの話題あります?」 / Twitter
- えびちゃんさんはTwitterを使っています: 「@kazu0x17 んー興味持たれるかわかんないですけど、任意のモノイドの区間積クエリ(更新は無し)が <O(n), O(α(n))> でできる話とかどうでしょう(セグ木では <O(n), O(log(n))>)」 / Twitter
- にゃ〜んさんはTwitterを使っています: 「@rsk0315_h4x 積読リストに入れたいと思うくらいには興味あります!いつ pop されるかは謎ですが... というか,これ系の話題でググるキーワードすらわかんないので,今だったら多分なんでも食い付きますね.」 / Twitter
- えびちゃんさんはTwitterを使っています: 「@kazu0x17 これはこれです https://t.co/0WQxXxtl13 ググるキーワードはよくわかんないですね...(https://t.co/9gcZsRTuOz 全方位木 DP とかも抽象化の文脈で出てきそう)」 / Twitter
- Microsoft PowerPoint - InvAck.ppt - Seidel.pdf
- 解説 - エクサウィザーズプログラミングコンテスト2021(AtCoder Beginner Contest 222)
線形代数
- さのたけとさんはTwitterを使っています: 「僕が線形代数で最も衝撃を受けたのは、フィボナッチ数列の漸化式を満たす数列全体を2次元のベクトル空間と見做してその一般項を固有値・固有ベクトルを使って解く話でした⚡️ 高校で散々やってた数列の一般項を求める問題が、実は対角化の問題だったのかという…✨ (黄金比が出てくるとこもアツい)」 / Twitter
- さのたけとさんはTwitterを使っています: 「一般項を求める手続きは高校で色々やるので、線形代数を知らなくてもそれはできる訳だけど、それをどれだけ練習したところ「分かった」感じにならないんですよね。 線形代数は「一般化による分かり」という現代数学の真髄を初めて体験させてくれる教科だと個人的に思います…🙂」 / Twitter
- さのたけとさんはTwitterを使っています: 「数列の一般項を対角化によって求める話は齋藤『線型代数入門』(東大出版)や齋藤『線型代数学』(東京図書)にも出てきます📗 https://t.co/MCEFbKIMja」 / Twitter
- Yoshitake MatsumotoさんはTwitterを使っています: 「@taketo1024 最大固有値で漸近的な振る舞いが決まるのもアツいと思った記憶があります。齋藤先生の線形代数入門かその演習書かで見たような記憶はあるのですがはっきりとは思い出せない。。。」 / Twitter
- Yoshitake MatsumotoさんはTwitterを使っています: 「@taketo1024 あれ、逆だったかな、行列の累乗を数値計算して最大固有値がわかるというような話だったような気もしてきました。。。」 / Twitter
- 梅崎直也さんはTwitterを使っています: 「僕も同じで、数列を解くのになぜこの方程式を考えるのか全然わからなかったけど、初めて線形代数を学んだときにわかって嬉しかったです。何回か線形代数を教えるとまた発見もあって、可換な行列の同時対角化でシフトの固有ベクトルを利用すると見れることに気づいたときには嬉しかったですね。」 / Twitter
位相
- 古賀 真輝 Masaki KogaさんはTwitterを使っています: 「位相を全く知らない高校生とかにいそうってどうやって説明したらいいんでしょうね.はじめは大体開集合で定義されるけど,開集合ってなぜそのようなものを考えるかってモチベがあまりはっきりしないから,近傍系による定義で話を進めるべきなんじゃないかとなんとなく思ったり.」 / Twitter
- えふええさんはTwitterを使っています: 「@4p_t 血液型とか、距離を定められない集合の例を挙げて、そこから境界を取り除いても変わらないから、それを開集合と思うみたいな流れが好き。 あとは、その感覚と、開集合の定義をマッチさせるのはどうでしょう。」 / Twitter
- ロイロット博士さんはTwitterを使っています: 「@4p_t まずは距離空間から始めて、開集合、閉集合、収束、連続、コンパクトなどの概念を理解させてから、位相空間に一般化させるのはどうでしょう。」 / Twitter
- たます研究所(所長)さんはTwitterを使っています: 「@4p_t 数学における抽象化とはどういうものか?は高校生は愚か数学科以外の大学生にすらわかりにくいし(数学科でも苦しむ人もいるし)、やはり天下り式開集合系でも、いきなし近傍系でもなく、距離が抽象化されることを教えて、ほんで近傍系による位相空間てほげほげだよ、がいちばん腹落ちする、気がする…」 / Twitter
- Koan OgataさんはTwitterを使っています: 「@4p_t 縁のない円盤から始めて、それらが成り立つ性質の例を並べて、それらの性質のうちのポイントとなる3つだけからどんなことが言えるか の流れ」 / Twitter
差分・微分方程式
- Yuya KawamataさんはTwitterを使っています: 「マクスウェル方程式でもシュレディンガー方程式でも物理学に現れる微分方程式の時間発展を見たい場合には古典コンピュータで扱えるように数値解析で差分化する必要があるけれど、逆に確率過程とか古典的な過程を見たい場合には量子コンピュータで扱えるように微分方程式に帰着しないといけない。」 / Twitter
- Yuya KawamataさんはTwitterを使っています: 「量子力学の方程式系をベースに考える、これこそ量子ネイティブなのかもしれないと一人で思いを馳せていた(?)。実に興味深いね。」 / Twitter
- Yuya KawamataさんはTwitterを使っています: 「ポエムは慣れてないので(?)もしご興味あればぜひこちらの論文を読んでみてください! 量子シミュレーションをより一般的なハミルトニアンなどでも扱えるようにした神論文です! https://t.co/vwbkLkt3Uv」 / Twitter
- [1812.08778] Variational quantum simulation of general processes
グレブナ基底使った検証技術
- ТагсановさんはTwitterを使っています: 「このグレブナ基底使った検証技術、任意の検証を高速化するのかとプレスリリース見て思ったけど、実際に論文を読んでみるとガロア体上の演算器の検証のみの話だった プレスリリースはだいぶ誇張している気がする それでも、こういう演算器は暗号・誤り訂正で不可欠なのですごい成果」 / Twitter
- こうへいさんはTwitterを使っています: 「東北大、IC設計データに紛れた不正機能を高速に検知する技術を開発 https://t.co/uID6CyiFGX >今回は「グレブナー基底」と呼ぶ数学的な手法を使って、1対1の簡単な数学的な表現に変換することで、仕様と実データの等価性を調べられるようにした。 ポン酢ってこんなところにも応用できるんだ」 / Twitter
- 東北大、IC設計データに紛れた不正機能を高速に検知する技術を開発 | 日経クロステック(xTECH)
- グレブナー基底大好きbotさんはTwitterを使っています: 「@cultivatetsubo 詳しい内容はこちらのプレスリリースに掲載されているようですぶな。 東北大学プレスリリース https://t.co/bRhBBTWTwY 元の論文 https://t.co/4NmNN0jRpE」 / Twitter
- ハードウェアに挿入された不正な機能を高速かつ漏れな... | プレスリリース・研究成果 | 東北大学 -TOHOKU UNIVERSITY-
- IEEE Xplore Full-Text PDF:
数学書の例
- 龍孫江(りゅうそんこう)数学YouTuber/可換環論botやって〼さんはTwitterを使っています: 「ぼくは数学的対象を定義よりずっと簡単な例とかイメージで語るのは好きだし、そういう理解を必要に応じて詰めたり雑にしたりしながら考えてるので「数学にイメージは要らない」といわれると頷き難いのだが、といってテクニカルタームを「イメージ」で自分勝手に再定義されても困る(最近実例を見た)。」 / Twitter
- 龍孫江(りゅうそんこう)数学YouTuber/可換環論botやって〼さんはTwitterを使っています: 「この動画でも言ったけど、数学書の例には (1) 自明な例 (2) 典型的な例 (3) 著者固有の例(研究対象に由来するなど) の3つがあると思ってる。数学を「楽しむ」なら(3)を、理解するには(2)を重視するのがいいと思う。よほど基本的な教科書以外は「例が多い」で選ぶのもいい。 https://t.co/0DpRZG5Zvn」 / Twitter
- 龍孫江(りゅうそんこう)数学YouTuber/可換環論botやって〼さんはTwitterを使っています: 「かつて誰かに「講義聞くときにいちばん大事なのは例だから!」と言われたか読んだのだが、その頃は「抽象論バンザイ」と粋がっていた頃なので例と言っても(1)かせいぜい(2)くらいにしか思ってなくて、まあ端的に言って勿体ないことをしたな。」 / Twitter
- 龍孫江(りゅうそんこう)数学YouTuber/可換環論botやって〼さんはTwitterを使っています: 「同じ分野の本を何冊も買うのって、(3)の類の記述があるからなんよね。同じ内容の本を違う背景をもつ人が書くと、一番最初に「例」に問題意識が出る。本を読むのでも人の話を聞くのでも、その人の固有の背景に根ざしてる話がおもしろい。」 / Twitter
- 龍孫江(りゅうそんこう)数学YouTuber/可換環論botやって〼さんはTwitterを使っています: 「Tsujimotterさんや鯵坂もっちょさんのブログのおもしろみはこのあたりにあるんだろうな。 https://t.co/0DpRZGn2xn https://t.co/nyVmcPg7Q3」 / Twitter
数学的なものXの研究法の分類
- DaisuさんはTwitterを使っています: 「代数の基本的なことがわかり始めた頃に黒川先生のζ関数と表現論という本で次の記述を読んで、ほぇーってなった。 「数学的なものXの研究法には大きく分けて、3つある (A)X→X(XからXへの写像)を考える。 (B)Y→X(他のものYからXへの写像)を考える。 (C)X→Y(Xから他のものYへの写像)を考える。」 / Twitter
- windyさんはTwitterを使っています: 「@uchan_nos @tenpoku1000 ALLとかJLCって48時間だっけ? 確かに製造はそのくらいで終わるけど、配送業者のピックアップが2日後くらいで結局製造4日とあんまり変わらん気がする トラッキングのラベルだけ発行されて、2日間眠らせてるんじゃないかと思う」 / Twitter
- DaisuさんはTwitterを使っています: 「(A)が代数(B)が幾何(C)が解析と呼ばれる。写像を"思(おもい)"あるいは"心(こころ)"と理解すると、(A)は自分自身のおもい(B)は他者からのおもい(C)は他者へのおもいをそれぞれ見つめていることになる。」 / Twitter
- DaisuさんはTwitterを使っています: 「ガロア理論は(A)の研究法の典型的な例である。代数的な考察とはXの感動に触れることである。感動全体は「対称群」やガロア群などと呼ばれるものになっている。」」 / Twitter
- DaisuさんはTwitterを使っています: 「今見てもほぇーってなるな。 この本いい本だったので復刊してくれませんか。」 / Twitter
- ぴぃはちよんさんはTwitterを使っています: 「@9xz6R38I5mbuFoh 計算しても答えが出なさそう😰」 / Twitter
「そう考えると便利」だからでは? 数学はそれでよいのだ
- 奈佐原顕郎さんはTwitterを使っています: 「昔の人は, 0や負の数を認め, 受け入れるのに大変な葛藤があった。それは彼らが当時の世界観やイメージに縛られていたからだろう。ところが資源生の諸君は0や負の数を素直に受け入れている。それは「そう考えると便利」だからでは? 数学はそれでよいのだ。「イメージ」にこだわる必要はないのだ。」 / Twitter
- 奈佐原顕郎さんはTwitterを使っています: 「人の想像力は結構しょぼい。イメージ先行で科学(数学を含む)の概念を「理解」しようとすると, 0や負の数を受け入れることができなかった昔の人のように苦しみ葛藤することになる。まず定義を受け入れ, 次に例を考えてその便利さを知る。そうやって慣れていけばおのずとイメージも生まれてくる。」 / Twitter
- 奈佐原顕郎さんはTwitterを使っています: 「わからなくなったらまず定義を素直に緻密に読む。定義に出てくる用語の定義も緻密に確認する。そして話の整合性だけを考える。例外や矛盾を感じたら解決・納得するまで考え, 質問する。そうやって整合性が確認できたら定義を受け入れ, 覚える。最初からイメージとか意味とかを求めちゃダメ。」 / Twitter
- 奈佐原顕郎さんはTwitterを使っています: 「資源生で「数学ムリ」と思う人へ。 「自分は解法が閃かない・思いつかないから数学ムリ」→ 大学ではそんなに「閃き問題」を問いたりしない。 「自分はイメージできないから数学ムリ」 → 大学ではどうせみんなイメージの限界にぶち当たる。イメージに頼らない理解が必要だし, それができればOK。」 / Twitter
- 奈佐原顕郎さんはTwitterを使っています: 「サッカーにオフサイドというルールがある。初心者にはわかりにくいルールだから「なぜ?」とつい考えちゃう。でも見てたら&やってたら慣れる。そしてオフサイドがサッカーを奥深いスポーツにしていることがわかる。数学はそれに似ている。ルールがあって, それを受け入れ, そこからゲームが始まる。」 / Twitter
- 奈佐原顕郎さんはTwitterを使っています: 「生物資源学類の数学教育は, 公理や定義というルールを受け入れて, その枠内で下手でいいからゲームできるようになろう, というのが目標。もっと良い面白いゲームを作るとか, そのゲームで必殺技を編み出すとかは我々の目標ではない。それらは魅力的で意義深い仕事だが, 我々のミッションは他にある。」 / Twitter
- Fumiharu Kato 加藤文元(Bungen)さんはTwitterを使っています: 「現代の数学者はリーマン面の受容に関して極めてシビアな論争があったことを忘れがち。ここでヴァイツゼッカー演説の有名な一節を引用するのは適切かもしれない。「過去に目を閉ざす者は結局のところ現在にも盲目になる。」だから数学者にとってこそ数学史は大事なのだ。」 / Twitter
- Benjamin CollasさんはTwitterを使っています: 「@FumiharuKato What about Leibniz and Bernoulli's (hidden) dispute on the definition of logarithm for negative and complex numbers -- resolved by the use of... an indeterminacy [``Analysis by its History'', Hairer & Wanner... recommended to any 1st year Math student] https://t.co/I9rPtChfht」 / Twitter
ABC予想
- 2022年4月のNHKスペシャルに対する「合格発表」: 前半はぎりぎり合格、後半は不合格 | 新一の「心の一票」 - 楽天ブログ
- 数学者は宇宙をつなげるか?abc予想証明をめぐる数奇な物語(前編) - NHKスペシャル - NHK
- 数学者は宇宙をつなげるか?abc予想証明をめぐる数奇な物語(後編) - NHKスペシャル - NHK
- ボレルボレルさんはTwitterを使っています: 「足し算と掛け算の関係がむずかしいってこと、リーマンヒルベルト対応も当てはまる気がする(意味合いは違うけど)。 微分方程式が足し算、モノドロミーが掛け算。」 / Twitter
- ボレルボレルさんはTwitterを使っています: 「rigidな方程式も足し算と掛け算が直接結びついているわけではないしなぁ。」 / Twitter
- math_jinさんはTwitterを使っています: 「現時点で最も短く、日本語で、本人によって書かれている一番シンプルなIUT理論解説。 宇宙際タイヒミューラー理論への誘(いざな)い《レクチャーノート版》 https://t.co/hHlfEK4MOl https://t.co/4xK7vyNeDG」 / Twitter
- 2015-ohp+pictures.pdf - Uchuusai Taihimyuuraa riron he no izanai (lecture note ban).pdf
- math_jinさんはTwitterを使っています: 「Nスぺ内で触れられていた「本人が説明に乗り出した」解説文書はこちら。 On the Essential Logical Structure of Inter-universal Teichmuller Theory in Terms of Logical AND "∧"/ Logical OR "∨" Relations: Report on the Occasion of the Publication of the Four… https://t.co/xRygfLGWDh」 / Twitter
- ess-lgc-iut.pdf - Essential Logical Structure of Inter-universal Teichmuller Theory.pdf
- math_jinさんはTwitterを使っています: 「NHKスペシャルabc予想特集では、IUT理論の要である遠アーベル幾何学、特に「復元」の説明が皆無でしたが、星裕一郎氏のこの概説記事にて、遠アーベル的な復元、乗法的情報から加法構造を復元する初等的な例が詳しく解説されています。ここが「肝」なのです。 https://t.co/C5uK8CSdqt #IUTABC https://t.co/Q7zY8weEhg」 / Twitter
- talk20140804.pdf
- math_jinさんはTwitterを使っています: 「ちなみにこの星さんの講演、数理解析研究所で毎年夏に開催される「数学'入門'公開講座」で、「一般参加者」に向けて講演した時の資料だという、真に驚くべき事実。 RIMS、恐るべし。 数理解析研究所 数学入門公開講座 バックナンバー(講義ノート) https://t.co/z0MpGa8x4w」 / Twitter
- 数学入門公開講座 バックナンバー(講義ノート)|京都大学数理解析研究所
- ぱいさんはTwitterを使っています: 「有限体上の多項式環の整数論、「多項式の次数」っていう指標 (非数学用語) があるおかげで普通の有理整数環のときよりも議論が簡単になって、素数定理もフェルマー予想も ABC 予想も、多項式環バージョンになると秒殺できて面白い」 / Twitter
- ゆます🌕さんはTwitterを使っています: 「この論説の内容の数体版が以下のpdfの論文で、内田の補題とか素点が潤沢な事が功を奏してる。後半は大域類体論(かそれより先のNSWの話)を幾つか認めてしまえば(自分は類体論難しいので認めてる)読める。最後の節は高度な話(orbicurveとか?)の話なので自分には難しいけど https://t.co/SZxDFPdr0d」 / Twitter
- rims1819revised.pdf
- ゆます🌕さんはTwitterを使っています: 「正確には2章の加法構造の復元のところ。その後はじゃあ乗法構造分かればよろしいという事で乗法構造を局所的な乗法データの集まりの中から上手く抽出するという内容。そこでノイキルヒ内田を使う。ここは避けられなさそうだからここ回避出来たら凄く面白そうだとは個人的に思う。」 / Twitter
- ytakanoさんはTwitterを使っています: 「エフェクトシステムは欲しいけれど、型に述語があると証明ができないしきつい。自動証明も制限がありすぎて余計わからなくなるしなあ。量子コンピュータの実用化まち。」 / Twitter
- ytakanoさんはTwitterを使っています: 「数学をやれば根本的なことがわかるかと思ってやってみたら、P≠NPが証明されていないのに現代社会は暗号に依存しているし、背理法には疑問を持つし、自己の無矛盾性は証明できないしで、結局わからないということわかっただけだった。」 / Twitter
Intersection Types と Union Types
- がくぞさんはTwitterを使っています 「これは実際そう。 なのでフィールド数が多くなりすぎるようなら関係性の深いフィールドのいくつかをまとめて別概念として別のrecord作って構造をネストさせた方が良さそうな感じですねー。 (なのでopticsがますます欲しくなる)」 / Twitter
- がくぞさんはTwitterを使っています 「Builderは後の改修でrecoedにフィールドが追加されても、Builderの利用側がコンパイルエラーにならず実行時エラーになってしまうので、静的検査を活かしていこうというこのご時世では非常に辛いんですよね……」 / Twitter
- 部屋は水浸しにしないほうがいいさんはTwitterを使っています 「またtype-safe builderの話してる…と思ったらそんなことなかった」 / Twitter
- がくぞさんはTwitterを使っています 「Javaでtype-safe builderをエミュレートした話する? https://t.co/pdXpGv7apE」 / Twitter
- Java で Scala の Type Safe Builder パターンをエミュレートする
- がくぞさんはTwitterを使っています 「Intersection Typesでtype-safe builderが定義しやすくなった話する? https://t.co/7bY0LnzvCB」 / Twitter
- Intersection Types を利用した Type Safe Builder の改善
- がくぞさんはTwitterを使っています 「JavaもはよIntersection TypesとUnion Types導入してくだされ~」 / Twitter
- kakkun61さんはTwitterを使っています 「@hishidama Haskeller 的にはそういうやり方してて困ってないから不便じゃないんじゃないかな(パラダイムの相性はあるかも」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@YujiSoftware @hishidama まあ、文法提案段階だとラムダのときとかraw stringのときとか、アリモノそのまま使うこと多いですね。」 / Twitter
- with 式 - C# リファレンス | Microsoft Docs
- YujiSoftware.javaさんはTwitterを使っています 「@hishidama @kis C#の構文を進行にしたのかもしれません。まんま同じです… https://t.co/7O6sibSe5h」 / Twitter
- ひしだまさんはTwitterを使っています 「@kis なるほど」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@hishidama 今までのJavaっぽい構文だと今までのJavaが持ってる機能としてパースされてしまうので、新しい機能は今までのJavaっぽくない構文として入ることになるのかも。」 / Twitter
- ひしだまさんはTwitterを使っています 「@kis そのwith、なんか(今までの)Javaっぽくない構文ですね^^;」 / Twitter
自動型注釈
- 市川 真一さんはTwitterを使っています 「@miura1729 動的に型付けされる言語で、プログラムを走らせてみた結果、得られた型情報をソースコード上に自動的に型注釈として挿入するみたいな試みは、どんな処理系があるでしょうか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 Rubyはそういうことを検討していたと聞きます。結局TypeProfのようなアプローチになりましたけど。高性能なJITコンパイラだと型情報を持っているのでコンパイラ開発チームが内部でそう言うツールを使っていることは考えられますね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 了解です。ソースコードのテキスト表現を直接修正するよりも、バイナリ表現で保持しておいて修正するなら、実現可能性はあるかもと思っています。バイナリ表現を、テキスト表現と相互に変換できれば Git で管理したり、人がコード修正したりするのに支障はないかなと」 / Twitter
強連結成分分解
- 強連結成分分解の実装と個人的なメモ - Baby Stepsなブログ
- 強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
- 強連結成分(SCC) | technical-note
- 強連結成分分解&トポロジカルソート - graph_scc_001.pdf
- AtCoder Library を読んでアルゴリズムを勉強:強連結成分 - Qiita
- 強連結成分分解 - 個人的な競プロメモ
- https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_3_C&lang=jp
- 強連結成分分解 | Kyopro Encyclopedia of Algorithms
- 強連結成分分解して縮約するとDAGになる - perogram
- 強連結成分分解 | Computer House Random
型付け談義-1
- Miura HidekiさんはTwitterを使っています 「Railsのようなメタプログラミングのキラーアプリケーションが開発されれば、世間は手のひら返すと思うけどな。いまならそのメタプログラミングを静的に検査するということも可能になりつつある気がする。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Ruby, Python, JSが流行るずっとずっと前には動的型付け言語なんて計算機無駄づかいのおもちゃだという風潮があったことは忘れないようにしたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そして、コンピュータサイエンスのほぼすべての価値観は繰り返すと言うことも」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 ちょ、言い方 :) 「計算機資源のコストバランスを考えるとそうしたことに回す余裕がない」くらい?」 / Twitter
- _ko1さんはTwitterを使っています 「@miura1729 emacs なんて富豪すぎ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@_ko1 ブラウザがずっと重いアプリケーションで居続けることは想像できませんでした。」 / Twitter
- _ko1さんはTwitterを使っています 「@miura1729 気にするほど重いかな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@_ko1 メモリ4Gだと苦しいっす」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @_ko1 熱で減速されてるCPUの元でブラウザ使ったまんまだと、裏で計算機リソース使うようなもの(ex. ブラウザのbuild等)走らせるの無謀ですね...」 / Twitter
- _ko1さんはTwitterを使っています 「@miura1729 なるほど、そこは実は現代ではないとか。。。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@_ko1 @miura1729 消費者向けのコンピュータの主な用途がWeb系になってしまっている今、ブラウザが消費者向けコンピュータの計算機資源をあるだけ使うべく肥大化するのは必然かと。」 / Twitter
- ひさてるさんさんはTwitterを使っています 「ポール・グレアムの LISP と Ruby 推しな 00 年代のセンスに反して、Google は Java を使いながら Go を作り、MS は TypeScript を作り、Apple は Swift を作って、Facebook は PHP の型あり言語を作ったんですよね」 / Twitter
- ひさてるさんさんはTwitterを使っています 「メタプログラミングと地続きかはどうでもよくて、みんなけっきょく型チェックが欲しかったんだなあ」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru そりゃそうよ」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr Rails が信じられた時代もあり、JavaScript を Scheme だと歓迎した時代もあって、その歴史があって今があるのもまた...」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru でもまあ、型チェックがないASMやCOBOLを経て、今があるのに。型チェックが要らないって信じたのがまず間違いなんだよなあ・・・。型推論は楽でいいね」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr Scala がなかったら認知されてなかったし、Haskell がなかったら Scala がそう作られなかったし、みんなつながってる」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru まあ、断絶したものは少ないわな。プログラミングにおける断絶した言語仕様や、工学概念って何かあんのかな」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr Prolog はまだ孤高かも」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru Prolog独自の概念ってなんかあったっけ?個人的に途絶えたって思ってるのはメッセージパッシングかなあ?」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr 論理学の方程式を解くことで問題の答えを得る言語 https://t.co/pMueZvBqhc」 / Twitter
- Prolog始めました - 'きぃの独話'
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru 論理プログラミング・・・これは孤高だ」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr ユーザーレベルで型推論を作るようになるとつながるかも」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru ある意味B-Treeをデータ構造定義と探索アルゴリズムだけでなく、言語仕様として組み込んだってことよね。すごいけど、これどういう問題解決に役立つんだ(困惑」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kkmsr 私の右隣の人は嘘つきです、私は犯人ではありません、みたいな問題の解決」 / Twitter
- new Kkmsr();さんはTwitterを使っています 「@tanakahisateru 論理学よね。一昔前にイメージされてたAIって感じ」 / Twitter
型付け談義-2(意味論と型システム)
- mod_poppoさんはTwitterを使っています 「リッチな静的型も、実行時型情報もあるHaskellが最強ってことで丸く収まりませんか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ここから始まる議論が面白すぎる」 / Twitter
- Dan KogaiさんはTwitterを使っています 「欲しかったのは 🙅♂️型チェック 🙆♀️静的解析」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なるほど、分かりやすい。構文的対象ってのはなるほど、なぜかそう言う認識が無かった」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ところでまたもや「動的型つきの言語を『型なしの言語』と呼ぶのはおかしい」論が述べられているのを目にしてしまったのでアンガーマネジメントが必要になってきました.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「* 俗に「動的型つき」と呼ばれる際の「型」と「静的型」の「型」は異なる対象を指す語である * 後者のみを「型」と呼び,前者をそう呼ばない流儀も普通にある ということを把握していれば(プロパガンダでない限り)出てこない言明だと思うけれども,どういう理解からこの言明が出てくるんだろう」 / Twitter
- Godskin HenninさんはTwitterを使っています 「@bd_gfngfn リフレクションなどの機能で「実行時にも型がある」などといった説明がなされるのは原因の一つとしてありそうですね」 / Twitter
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@bd_gfngfn 単にその人が「後者のみを「型」と呼び,前者をそう呼ばない流儀」を認めてないというだけの話のような気もします」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@syobon_hinata なので「(プロパガンダでない限り)」という限定をしました」 / Twitter
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@bd_gfngfn なるほど、その限定はそういう意味だったんですね」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(俗に「動的型つき」と呼ばれる際の「型」は “実行時のデータの形式の識別に使うタグ” であって意味論の範疇に属するもので,一方で「(静的)型」は “何らかの不変条件を表現する構文的対象” であって型システムに属するもの)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@bd_gfngfn それは、静的型付きの「型」は普通実行時に使用される必要がない、という意味ですかね?」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@igrep 疑問の意図が解っていませんが,少なくとも両者の「型」は概念からして異なるという主張です.また補足しましたが「意味論が(静的)型に依存しない」という意味ならCurryスタイルはそうですし,Churchスタイルでも “タグ” の方の「型」を(静的)型が兼ねていると看なせます https://t.co/GJso79Vgjn」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@bd_gfngfn ありがとうございます。純粋に元の発言の「一方で「(静的)型」は~」の意味がよくわからなかったので伺いました。」 / Twitter
- ぐらふぃさんはTwitterを使っています 「@bd_gfngfn 後者は当然全く把握しておらず、前者についても実行時に持つ情報と静的な型がなんとなく一対一対応するようなイメージを持ってるんじゃないですかね。あと、実行時検査のための情報を表す語として「型(タグ)」くらいしかないのもありそうです」 / Twitter
- ぐらふぃさんはTwitterを使っています 「@bd_gfngfn あくまで個人的には、アセンブリなんかの実行時の情報すらない言語を使うことが多いことがあるせいか、動的型付けと呼ぶ流儀ではいます」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(いや厳密なことを言えばChurchスタイルなら意味論が(静的)型にも依存しますが,それは(静的)型が “タグ” を兼ねていると看なせる)」 / Twitter
- 画力・博士号さんはTwitterを使っています 「誤読されている気配があったので補足すると「動的型つきの言語を『型なしの言語』と呼ぶのはおかしい」論に対して異を唱えているのであって,当然「型なしの言語を『動的型つきの言語』と呼ぶのはおかしい」という主張は含意していません(うーんこの差異を文面から知覚しない人がいるというのは困る)」 / Twitter
- :: M.LexeeさんはTwitterを使っています 「動的型を「型」とは呼ばない定義においては、その静的解析こそが型チェックを意味しているんですよね 構文解析なども静的解析だが、ロジックの検証の場面では「どこで間違えたか」のトレーサビリティを考えて設計すると結局は(静的な)型システムになるはず」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@MOT4949 Ruby向けの静的解析のプログラムを作ったことがありますが、これは型チェックなのでしょうか?TypeProfみたいなものです。」 / Twitter
- :: M.LexeeさんはTwitterを使っています 「@miura1729 TypeProfを知らないのでなんとも…なんかunification(式にボトムアップで部分から全体にかけて「ここは型が一致していなければいけない」という制約から型を解いていって、どうあがいても制約が満たせないことがわかったらエラー吐く)みたいなことやってればたぶん…」 / Twitter
- :: M.LexeeさんはTwitterを使っています 「@miura1729 これは高度な型システムな場合で、もっと単純な型システムであればそんな複雑なことしなくてもいいかもしれないです」 / Twitter
型のメンタルモデル
- mod_poppoさんはTwitterを使っています 「「型のメンタルモデル」がないと「浮動小数点数にparseIntする」みたいな愚行が発生するので「型のメンタルモデルが要らない」というのはメリットにはならないと思う」 / Twitter
- ノーンさんはTwitterを使っています 「動的型付け言語のメリットはほとんど静的型付け言語に取り込まれてしまったけど、残った数少ない利点が「学習に必要な要素の数」かな。 静的型付け言語ではどう頑張っても「プログラムのメンタルモデル」の他に「型のメンタルモデル」を学習する必要がある。TypeScriptやRustだとかなり顕著になる。」 / Twitter
- ノーンさんはTwitterを使っています 「TypeScriptをやったことあるみなさんなら、「適切な型づけ」「型フレンドリーなプログラム」というものがいかに頭を悩ませるかわかると思う。 一方で、それはプログラミングをする上での「本質的な困難」を事前に予測し、可視化するのにも繋がるかな。」 / Twitter
- ノーンさんはTwitterを使っています 「これ言葉がやや足りてなかったですね。TSで言うMapped TypeやConditional Type、Rustで言うtraitや所有権などは初学者には辛くない?というニュアンスでした。逆に言うとgolangとかはその点上手くやっているとすこし信じてます。」 / Twitter
型クラスも辞書渡ししてるだけ
- Miura HidekiさんはTwitterを使っています: 「ただ どう実行されているのか を知っていることと、その言語で(そのパラダイムを生かした)プログラムが書けるのかは別の話だからなー。 (継続を思い浮かべながら」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「これは皮肉とかではなくて、あんまり違うパラダイムとされてるプログラミング言語を特別視せず素直に「どう実行されるのか」だけ見た方がプログラミング言語を早く理解出来るのではないかという考えです。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「むしろ、LispとかHaskell(ないしは関数型プログラミング)は特別みたいな言説に迷わされて深堀りしてみたら「マクロは単なる抽象構文木展開プログラムだし、型クラスも辞書渡ししてるだけ」て気づいて、回り道させられた気すらするので、特別視する言説もどうかとよく考えてる。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「一つ覚えたら全部同じではないけど、半ダースくらいプログラミング言語習得すれば、実用で使われているプログラミング言語は「どっかで見たことあるもの」にはなりますね。 手続き型でも関数型でも実行のされ方が極端に違うわけでもないですし(手に馴染むレベルで修得してるかは別) ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「これは何か妙なことを言ってるわけではなくて、わけわからん意味論持った言語とか作られてもふつーのプログラマに理解できないから普及してないみたいな話ですが。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「昔の自分みたいに簡単なことを難しく説明されたせいで、色々なことにとっつきづらさを感じた人はきっと多い……と思ってる(多数派とまでは思わないけど)。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「@miura1729 そこはもうおっしゃる通りです。ただ、書くのはともかく、そういうプログラムを「読め」と言われれば(熟練したその言語のプログラマよりは時間かかるけど)読めるだろうなという気持ちもあり。 自分が言いたかったことは、とりあえず読めるようになるまでのステップだったのかも。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@kmizu 確かに読めるようになる場合が多い気がします。ただ、たとえばC言語しか知らない人が、高階関数を関数へのポインタ経由の関数呼び出しと分かった所で本気出した関数型言語のプログラムが分かるかな?と考えると限界があるかなと思います。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「@miura1729 「C言語しか知らない人」は面白い例ですね。私はJava出身でかつ、割と早期から高階関数≒オブジェクトのメソッドって理解してた側でしたが、あんまり苦労した覚えないです。 他方、CだとGCないので高階関数(相当)を駆使したプログラムを書きづらいのが「限界があるかな」に同意する理由ですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@kmizu 高階関数とオブジェクトのメソッド が同等と言うのがよくわからなかったのですが、オブジェクトを関数へのポインタとして見ることも可能ですね。私は高階関数をLispから学んだ側です」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「@miura1729 すいません。私がバグった書き方してました。単一のメソッドのみを持つオブジェクト=高階関数、ですね(JavaのLambdaはまさにこの見方に従った変換を行っているだけ)。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@kmizu いえ、ちょっと考えて分かりました。関数ポインタもオブジェクト指向的に見ればcallというメソッドを呼び出したと捉えられるし他のメソッドも考えられるので自然に同一化出来ました。」 / Twitter
- Every language is a Perlis language - Arantium Maestum
- zehnpaardさんはTwitterを使っています: 「call/cc、書けないどころか読めない気もする・・・ https://t.co/xr4gvMdluW」 / Twitter
- The call/cc Yin-Yang Puzzle
- Miura HidekiさんはTwitterを使っています: 「@zehnpaard 全然わからないです (涙」 / Twitter
- zehnpaardさんはTwitterを使っています: 「@miura1729 人類には早すぎた感がありますよね・・・」 / Twitter
型クラス等の効果
- がくぞさんはTwitterを使っています: 「基本的には直接取り出すようなコードは書かない(書いてしまうとValue Objectにした意味が失われてしまうので)だとは思いますが、そうは言ってもレイヤー境界などでフレームワークに渡す時などどうしても必要になる場面がありますね。 その際もIso/Prismを使う等直接触らない方向を採用したいですねー」 / Twitter
- がくぞさんはTwitterを使っています: 「フレームワーク側がこの辺の変換のための型クラスを用意してくれているとこの辺の問題がごっそり解決されるので全言語でやっぱり型クラス的なサムシングが欲しいですね」 / Twitter
- がくぞさんはTwitterを使っています: 「あーそう言えばScala3だとopaque typesに上限境界つけるような形でValue Objectを定義していたら、そもそも変換とかしなくても元の型で扱いたい時はそのまま扱えるみたいな方法もあるか https://t.co/TGi4qgY8WO」 / Twitter
- Fancy strings in Scala 3
Applicative
- mod_poppoさんはTwitterを使っています: 「WriterのSemigroup版っぽい(単位元がないのでpure/returnを持てない)」 / Twitter
- kakkun61さんはTwitterを使っています: 「こんなアペンダブル・ファンクターがほしくなった #Haskell https://t.co/SZq5eA2rHN」 / Twitter
- kakkun61さんはTwitterを使っています: 「これはモナドがあれば?」 / Twitter
- kakkun61さんはTwitterを使っています: 「pure が作れないからモナドにはならんのよな」 / Twitter
- Koji MiyazatoさんはTwitterを使っています: 「@kakkun61 Apply (pureの無いApplicative)ともちょっと違うものですかね? 結合法則を完全には満たさなくてもよい、という感じでしょうか https://t.co/APGh6CdlGB」 / Twitter
- Data.Functor.Apply
- kakkun61さんはTwitterを使っています: 「@viercc まあ型クラスにまでする必要はないんですが、ちょっと具体的にいうと abcde という列があるとして位置情報を追加するファンクターがあって(例えば0番目と1番目の ab は (ab, (0, 1)) になるみたいな)、このとき (ab, (0, 1)) と (de, (3, 4)) から区間を作りたい ((ab, de), (0, 4)) みたいな」 / Twitter
- Koji MiyazatoさんはTwitterを使っています: 「@kakkun61 Applicativeを使うとよい感じだと思います https://t.co/WhXVMQpv9m」 / Twitter
- Koji MiyazatoさんはTwitterを使っています: 「@kakkun61 EmptyIntervalのような余計なものが無い必要がある場合、IntervalがMonoidにできずにSemigroupに留まります。その場合はApplyが適しています」 / Twitter
- kakkun61さんはTwitterを使っています: 「@viercc なるほど!これペアを applicative として使ってるんですね」 / Twitter
ダックタイピング
- 👻 道化師 🃏さんはTwitterを使っています 「重要なのは静的解析ができるかどうかであって、ダックタイピング自体は別に嫌われてなくない? 言語に依存はするけど、ダックタイピングであっても静的解析は全然普通に行われるし。」 / Twitter
- (Ǝ)ɐsıɥıɥso⅄ ouɐɓnSさんはTwitterを使っています 「なんでダックタイピングがそこまで嫌われるようになったかって、よい企業に雇用されて大規模なアプリ開発なんかやるようになったからだろ、とは思ってる」 / Twitter
- noriさんはTwitterを使っています 「@koshian 人の脳みその性能はそれぞれ違うしコーディング能力もそれぞれ違う事が明らかになってきて、人数やコードベースの規模が増えると辛い事がわかってきたからってのが大きいっすね多分」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「ダックタイピング、設計と実装まざりがち」 / Twitter
- ɹǝzı̣ןɐuƃı̣sさんはTwitterを使っています: 「@yasuo_ozu 静的型付け言語で同じことやりたいならインターフェース使えばいいし、インターフェース以上の柔軟性が必要ならそれは何か設計を間違えてるだけで静的型付け言語が不自由だということにはならないんじゃないかあと。」 / Twitter
機械語と型・動的な class 変更
- エヌユルさんはTwitterを使っています: 「動的型付け狂気的信者、その言語の処理系が最終的には大抵静的型の言語によって行われてるの無視してるからな #Peing #質問箱 https://t.co/4dSJND2NSg」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そうは言っても、その静的型付けの処理系も結局は型の概念の無いビット列を処理する機械語に落ちるのであった。ごく少数の例外を除いて >RT」 / Twitter
- mod_poppoさんはTwitterを使っています: 「「型なし」言語ガチ勢だ」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「機械語に型を持たせる試み、i432とか各種高級言語マシン、Transputer(Occamレベルだけど)とかいろいろ為されているわけだけど、うまく行った話を聞かないな。Symbolicsはうまく行ったと言えるか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「Common LispとForthは移植性とか特別な理由が無いと上から下まで全部自分自身で書きがち」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「Common Lispが動的型付け言語かと言われると色々難しいが。特にCLOSが導入されると」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@miura1729 でもCLOSでいう型って本当に静的型付けなんですかね?ちょっと微妙な気がします。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tomooda 大域変数やスペシャル変数が無くて、そのメソッドが定義された環境の変数が無ければ静的に色々決まると思うのですけどね。まあ、MOPで色々されると全ての前提が崩れるけど」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tomooda いちおう、Common Lispには型宣言もありますしね。あの型宣言がどう影響するかいまだに分かっていませんが。(safety 0)を除く」 / Twitter
- t-sin@yak-shaverさんはTwitterを使っています: 「@miura1729 @tomooda Common Lispのクラスは静的なものではないですよー。クラスの定義はあとから変更可能 (この関数で: https://t.co/9YWSZUPWvZ) なのでメソッドディスパッチも処理系をすごくナイーブにつくるとメソッド呼ぶごとに継承関係の計算が走ってたいへんみたいです。」 / Twitter
- CLHS: Standard Generic Function CHANGE-CLASS
- Miura HidekiさんはTwitterを使っています: 「@sin_clav @tomooda そうか、これがありましたね...」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@miura1729 @sin_clav @tomooda change-classは、元来はMOPが実現すべき機能の最外郭のI/Fで、MOPの一部みたいなもの(がANSI CLに、実装は自由だけどこれだけは…ってことで採用された)とも言えると思いますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@nfunato @sin_clav @tomooda 凄い機能ですけど、どこかで使っているってことですよね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@miura1729 @nfunato @sin_clav @tomooda REPLで実行中にクラスを再定義した場合、既に存在するインスタンスのクラスが旧クラスから新クラスにchangeしますね。実際のchangeはそのインスタンスに触った時にトリガされますが。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@anohana @nfunato @sin_clav @tomooda なるほど、REPLでクラスを再定義。Common Lispの開発パターンを考えると必須ですね」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@miura1729 @anohana @sin_clav @tomooda 逆に、Googleのstyle guide(https://t.co/XBAUKmHm8V)あたりに、「MOPのintercessoryオペレーションは(開発時に使用されることが意図されており)実行時に使用してはならない」という趣旨の記載があったりします。」 / Twitter
- Google Common Lisp スタイルガイド 日本語訳
- cutsea110さんはTwitterを使っています: 「@nfunato @miura1729 @anohana @sin_clav @tomooda 永続クラスとかでrdbのテーブルと対応してる時にカラム追加したり変更するとフィールドにも変更入るけど、デプロイ時にはインパクトなくて、ユーザーがアクセスするとパラパラと切り替わっていくとかに使ったり?」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@cutsea110 @nfunato @miura1729 @sin_clav @tomooda AllegroStore がそれでしたね。スキーマ更新があった場合、永続化されたインスタンスは、アクセスされる時にchange-classが走って新しいクラスのインスタンスに化ける。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@cutsea110 @nfunato @miura1729 @sin_clav @tomooda Kahuaの永続オブジェクトもそれを真似しました。」 / Twitter
- cutsea110さんはTwitterを使っています: 「@anohana @nfunato @miura1729 @sin_clav @tomooda はい、私もそれイメージしてました。 Kahua でアプリ書いた時に二度ほど change-class 書いた記憶。 あれ自体は rdb といっても odb で text カラムだかに S 式で埋まってたから ALTER が走るわけではなかったと思いますが on the fly でいつの間にか update かかっているという。」 / Twitter
動的型付け言語で手を動かしてみる
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています: 「たぶん、Scratchガチ勢に聞いたら瞬殺でしょうね。動的型付けと暗黙のキャストが使えるScratchはそうでない言語をやっている人には気持ち悪いかも。 https://t.co/TOhZQyEf7Z」 / Twitter
- ひろじ@6/12アメイジング商店街さんはTwitterを使っています: 「@abee2 数字でもあり文字列でもある世界、もうだいぶ触ってないな…」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「かつて、アルゴリズムの講義を担当していたとき 、「1, 11, 111, ... のようにすべての桁が1からなる整数のうち、13で割り切れる最小のものを求めよ」 という問題を出して、早い者勝ちで回答させる、というのをやってみたんだけど、挙手どころか、誰も手を動かす気配がなかった事があった。」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「ちなみにこの問題はアルテピアッツァの吉岡直人さんに教えていただいたもの。いちおう洒落た解き方はあって、筆算でまず111あたりから割ってみて、余りが出たら1桁ぶん付け足して割り算を続行するというもの。が、問題はこれを思いつけるかどうかではなくて、 https://t.co/5mQtWIQDyf」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「こんなの、スマホの電卓アプリを立ち上げて、111を割ってみて、1111を割ってみて、11111を割ってみて、…とやってみれば、とりあえずいけそうじゃないですか。教員はその場で答えさせる気が満々なんだから、おそらくたいした桁数ではないだろうことは予想がつくはずだ。」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「アルゴリズムの講義であり、その講義では全員がPCを使える状況だったのだから、さっとこんなプログラムを書いてもよかったはずだ。もちろん、これだともし除数が他の数だった場合に無限ループに落ちる場合もあるので褒められたプログラムではないが、とりあえず試すだけなら、誰も困りゃしないのだ。 https://t.co/ZYjUAhfgM3」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「もっとも、まずじっくり考えようとする姿勢にも理はあるかもしれないので、結論を急ぐつもりはないのだが、それでもちょっと手が動かさな過ぎる学生も少なくないので、以来講義やゼミでは手を動かす癖を身につけてもらうような設計を心がけている。」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「私が主に担当している映像分野でのプログラミングにおいては特にこれが大事で、10 となっているところを 100に、cos() となっているところを sin() にしてみて何が起きるかをまず観察する、くらいでいい。」 / Twitter
- Kentaro FukuchiさんはTwitterを使っています: 「小中高でのプログラミングでは、ぜひこうした、手を動かし続けて創ることの重要性を教えて欲しい。 …といったことはミンスキーやケイが何十年も前から主張していたことではあるのだが。 https://t.co/GFUxELyAbq」 / Twitter
- 創造する心 ―これからの教育に必要なこと | Marvin Minsky, Cynthia Solomon, Xiao Xiao, 大島 芳樹 |本 | 通販
- 北風くるみ💙💛さんはTwitterを使っています: 「@kentarofukuchi 13に数字をかけたものが 1並びになると同じかな? 最後の数字は必ず7 そして頭が1になるのは 最初の数字は8。 9は 9x13=117で111超えるから だめ。 つまり8○7とか8○○7で 表せる数字。電卓で 857だめ。超えた! 4桁か! 8497足りない。増やす。 8547は? 8547x13=111111 出来た!無理やり。」 / Twitter
- 崎山圭@iOSエンジニアな工学博士でiOSアプリ開発を土日に教えてるさんはTwitterを使っています: 「型がなければ同じ変数に色々ぶちこめるから便利じゃないか! https://t.co/ge1moVmd2t」 / Twitter
- 崎山圭@iOSエンジニアな工学博士でiOSアプリ開発を土日に教えてるさんはTwitterを使っています: 「ネタだけど実際20数年前?はこの思想が本当に便利とみんな信じて色んなプログラミング言語が生まれたんだよな...」 / Twitter
- tnksnさんはTwitterを使っています: 「@sakiyamaK 流行りましたね。そしてその後こうなりました。https://t.co/EYwBfqGttX」 / Twitter
- typing --- 型ヒントのサポート — Python 3.10.4 ドキュメント
- 崎山圭@iOSエンジニアな工学博士でiOSアプリ開発を土日に教えてるさんはTwitterを使っています: 「@salmoncrawler 型なしは人類には早過ぎたと気付くのに大きな代償を払いましたなぁ...」 / Twitter
OOP・変数
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「これが分かってる人間にはスラスラわかるというのが実に面白い」 / Twitter
- よんてんごPさんはTwitterを使っています: 「こういう感じの。 https://t.co/DBL6BIyyli」 / Twitter
- よんてんごPさんはTwitterを使っています: 「結果、現場で 「4.5Pさん質問いいですか、オブジェクト指向の勉強してるんですが」 「おお、偉い!何なに?」 「全ての生物の基礎である、親となる動物:basic_animal、って一体何ですか…??? 雌雄同体みたいな話ですかねコレ…🤔❔」 「待って何の話、生物学の新説??」 みたいなパターンがある」 / Twitter
- よんてんごPさんはTwitterを使っています: 「https://t.co/VijsbYG5WH」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「@cobodo こういうのを聞いて「あ、worldとかanimalってのは単なる数学的代数で意味を考えなくていいんだな」って気づく奴はたぶん数学の天才」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「そういえば、昔々C言語を文系大学の(そこそこ優秀な)人間に教えていたときに、「変数名はxとかyとかaとかのほうが、変に名前がついてるよりずっと分かりやすい」っていわれてはっとしたことあるな。」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「我々は変数名がいわゆるlabelだと認知しているが、認知していない人間にとって変数名は意味を持ってしまうのだ。 なので、animalsを操作するときに、animals.add()といった操作がわけわからない。 「動物たち」は「可加算」ではないのだ。」 / Twitter
- 大野さんはTwitterを使っています: 「@beepcap 中学の数学やってれば、媒介変数とかで変数の概念は覚えてるはずだけど 難しいのかなぁ、やっぱり」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「@_oono_dyt_jhpws 媒介変数はオブジェクトを表現しないからなぁ。 その意味で我々が習った 変数→構造体→ポインタ変数→オブジェクトという流れは実に合理的な説明だとおもう。」 / Twitter
- 増田 亨.さんはTwitterを使っています: 「リスコフのアイデア(データ抽象)は、プログラムを組み立てる部品(モジュール)として「アプリケーション独自のデータ型」を定義する仕組み」をプログラミング言語に用意すること。 アプリケーション独自に金額型や日付型などのデータ型をクラスとして定義するプログラミングスタイルの源流。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「オブジェクトと言っても、アラン・ケイが考えたのは、ノードが互いにメッセージパッシングする分散計算ネットワークが入れ子構造になったようなものだ。 OO言語のオブジェクトは、それを表現するのに使えるかもしれない言語上の構成概念。 日常用語のファイルと計算機上のファイルぐらいの違いがある。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「小学生のとき「仮分数」という概念がわからなくって、母ちゃんに突っかかった男である。 https://t.co/0HteN28Atl」 / Twitter
- 杉本啓さんはTwitterを使っています: 「「実行可能ファイル」ってなんなんだ。そもそもなんで「ファイル」が実行可能なんだ、みたいなことを考えた記憶がある。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「コンピュータを触り始めた当初、一番驚いたのは、この領域における言葉の定義の仕方だ。 例えば、日常用語で「ファイル」といえば、現実の世界で特定の性質をもつ事物を指すが、コンピュータの世界では、「ファイル」として定義・生成されたものがファイルなんだ。 これは新鮮だった。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「オブジェクト指向に関していつも混乱するのは、この区別をしないからだ。ケイのオブジェクト指向はコンピューティングモデルであって言語特性と直接対応していない。 でも、多くの人は、言語特性をもとにオブジェクト指向を定義しようとする。話がすれ違うのは当たり前だ。」 / Twitter
継承
- yhara (Yutaka HARA)さんはTwitterを使っています: 「Rustで継承したいときはどうする? - https://t.co/EnUE1mCV3S https://t.co/HahXjnvkGY 「継承は悪」みたいなこと言う人もいますが、明らかに継承の方が向いてるものもあると思いません?」 / Twitter
- Rustで継承したいときはどうする? - yhara.jp
- RISC of RainさんはTwitterを使っています: 「@yhara 補足1のコンポジションについてですが、自分は大きいプログラムでは常に enum Enemy { Slime(Slime), Dragon(Dragon) } みたいにしてます。enum内に直接書くパターンは基本的に変更に弱い気がするので」 / Twitter
- 令掛ベインさんはTwitterを使っています: 「@yhara 自分で試したことはないのでアレですがこういう記事をみました / [Rust + Entity Component System で仕様変更に強いゲーム設計 その1 〜 序文 - Qiita](https://t.co/jATcdSk1Nt)」 / Twitter
- Rust + Entity Component System で仕様変更に強いゲーム設計 その1 〜 序文 - Qiita
- yhara (Yutaka HARA)さんはTwitterを使っています: 「いい書き方あったら教えてほしい」 / Twitter
- monochromeさんはTwitterを使っています: 「@yhara 良いかどうかは分かりませんが、 struct Enemy { hp: usize, kind: EnemyKind, } enum EnemyKind { Dragon(Dragon), } みたいなパターンをよく使いますね。」 / Twitter
- monochromeさんはTwitterを使っています: 「@yhara fn as_dragon(&self) -> &Dragon { if let Dragon(d) = &self.kind { d } else { unreachable!() } } 的な奴を大量に定義する羽目になりますが」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「@s_isshiki1969 あー、逆パターンですね。それもやっぱりas_dragonのelseがランタイムエラーになるんですよねえ。というのと、fn tame_dragon(d: Dragon)の中でドラゴンのhpにアクセスできなくて困るというのが。」 / Twitter
- monochromeさんはTwitterを使っています: 「@yhara fn tame_dragon(e: &mut Enemy) { let d = e. as_mut_dragon(); みたいにするしかないですね。 あと、このパターンではtame_dragon(e)を呼ぶときにeがDragonであることをプログラマが保証するしかないです。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「enumじゃなくtrait使って束ねる方法もあると思うけど、HashMap<String, impl Enemy>みたいにすると「その機能はunstableです」っていうメッセージが出て、あんまり一般的じゃないのかなぁという気持ちに」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「traitでまとめるならbaseはいらないというコメントをもらって、ちょっと分かってきた。「同じ操作ができる」ことがわかっていれば、中身はどうなっててもいいよねということか。 (あとVecに入れるときはVec<Box<dyn Enemy>>とするらしい)」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「traitでまとめる作戦やろうとしたんだけど、 trait Enemy : serde::Serialize とすると Vec<Box<dyn Enemy>>ができなくなる?うーむ… https://t.co/ybM9mrhvPf」 / Twitter
ClassがModuleのサブクラス
- yhara (Yutaka HARA)さんはTwitterを使っています: 「@yukihiro_matz ClassがModuleのサブクラスなのって、参考にした言語はありますか? 一般にfoo(https://t.co/idCfThXvEh)ができるならfoo(https://t.co/nwsenjZhnH)もできてほしいですが、そういえばinclude(klass)はエラーになるなって。」 / Twitter
- Yukihiro MatzmottoさんはTwitterを使っています: 「@yhara CLOSやFlavorsではMixinは(制限された)クラスなのでクラスとの継承関係があるのかなと思ってのことで、前例はないですね。Mixin専用の構造を作ったのも独自です。SmalltalkやSelfのTraitの方が早かったようですが、それについては当時知りませんでした。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「@yukihiro_matz ありがとうございます!」 / Twitter
多段階計算
様相計算
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「多段階計算って全体で同時に複数の(実行状態としての)ステージが存在することって許されないんだっけ。 これが許されれば並列化しやすくなると思うんだが」 / Twitter
- ほたてさんはTwitterを使っています: 「@yasuo_ozu 多段階計算の上位カテゴリの様相計算の範囲なら、distributed computing のための型システムをつくる話がありますよ。これとか https://t.co/nTt2A9e4RX (これがozuさんの思ってるのに近いかは不明ですが……)」 / Twitter
- symmetric-lics.pdf
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「@zptmtr 様相計算というカテゴリーがあるんですね! 教えてくださりありがとうございます。勉強になります。」 / Twitter
- INA LintaroさんはTwitterを使っています 「Scala 3の多段階計算がよくできていて、多段階計算の説明をするときにもう「MetaOCamlのアレ」と言わずに「Scalaのアレ」と言えばいいことがわかってきた。書き心地もまぁまぁよい。 https://t.co/1VIzeCjvjN」 / Twitter
- Runtime Multi-Stage Programming | Scala 3 Language Reference | Scala Documentation
- Kenji YoshidaさんはTwitterを使っています 「@oarat https://t.co/yda7e3TyiB https://t.co/YmAONFT1yJ MetaOCamlといえばこんなのが(まだ直ってないっぽい?😢)」 / Twitter
- Unsound use of metaprogramming quotes: future-stage type evidence shouldn't be usable in the current stage · Issue #9353 · lampepfl/dotty
- Kenji YoshidaさんはTwitterを使っています 「調べだすと 「Olegさんに、自分の論文をレビューしてもらってる際に指摘してもらったのだけれど、MetaOCamlで同等のコード書くと正しくrejectされるのに、Dottyだと通ってしまってClassCastExceptionとか発生させられるのunsoundでまずいよね」 みたいなissue出てきて面白い(現時点でまだopenなまま)」 / Twitter
- INA LintaroさんはTwitterを使っています 「@xuwei_k ああ、そういうのめっちゃありそう。多段階計算、雑に言うと、むずかしい。」 / Twitter
二重否定モナド
- lotzさんはTwitterを使っています: 「命題と型の関係より二重否定は継続モナドになるよという話👀 この記事では二重否定モナドは継続モナドの特殊な場合になることを説明してるんだけど、実際は二重否定モナドから継続モナドが復元できて同じものと言えた気がするんだけどどうやるんだっけ(嘘かも https://t.co/aVg4qDUzCh」 / Twitter
- 二重否定モナド
- Yasuhiro InamiさんはTwitterを使っています: 「@lotz84_ (a -> b) -> b から (a -> r) -> r に変換するのに b -> r と r -> b の両方が必要で、b = ⊥ を代入すると後者の r -> ⊥ が r = ⊥ 以外で成り立たないので、 ∀ r について復元できなさそうに見えます」 / Twitter
- phenanさんはTwitterを使っています: 「単独の否定はcontravariant functor になるから、二重否定は functor になるんだな。 否定は decidable にもなるかなと思って定義を見たら、decidable 自体に否定を受けとる関数 lose があってなるほどと思った https://t.co/7ui3EvkKAB」 / Twitter
- Data.Functor.Contravariant.Divisible
- phenanさんはTwitterを使っています: 「「二重にするとモナドになる contravariant functor」という型クラスは作れるのかがちょっと気になっている」 / Twitter
- phenanさんはTwitterを使っています: 「冗長性を無視すれば作れるが、綺麗な定義でできるんだろうか」 / Twitter
IO モナド
- mod_poppoさんはTwitterを使っています: 「GHCのIOモナドが中で持ってるトークンの型の名前がRealWorldなせいで誰がどう見ても子供騙しな「現実世界を受け渡ししている」みたいな説明が発生するので、それを防ぐためにSomeInternalTokenToPreventCompilerOptimizationsみたいなダサい名前をつけておくべきだった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「自分を現実世界だと思い込んでいるデータ型」 / Twitter
- mod_poppoさんはTwitterを使っています: 「「HaskellのIO型はopaqueなデータ型で、『現実世界を受け取って〜』はGHCにおける内部実装に過ぎないので、説明としては良くないかもしれない」という気持ちと「HaskellのIO型といえどどこまで行っても(殻を剥いても)純粋関数なんですよ〜〜Haskellの特徴が出ていますね〜〜」という気持ちがある」 / Twitter
- mod_poppoさんはTwitterを使っています: 「まとめ主の挙動で一つ俺にとって意味不明なのはRedditにスレを立てに行ったことで、Redditの投稿には十分な文脈を載せていないのでTwitterの文脈からしたらピンボケな回答がついているように見える(まとめ主はそれで満足なのか?)」 / Twitter
依存型
- がくぞさんはTwitterを使っています: 「Money が Currency を保持して add の際に Currency が一致してないと実行時エラーになるやつ、Currency を型引数にして一致してないと add がコンパイルエラーになるようにしたくなるわね(まだ本届いてないのでTLで見かけるコードだけ見て言ってる」 / Twitter
- がくぞさんはTwitterを使っています: 「依存型が無いと動的な処理でやるには難しいか」 / Twitter
静的な型付けの理由
- Miura HidekiさんはTwitterを使っています: 「そう思うのだけど、いまの静的型付け言語人気を見ると、人間って約束事で縛られるのが好きなんじゃないかなって思うのですよ」 / Twitter
- まつもとゆきひろ氏の名言さんはTwitterを使っています: 「JavaやC++といった言語では、public static void mainなど、コンピュータに伝える約束事が多くて、やりたいことが頭の中から逃げてしまう。簡潔さは力なのです。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 というか、「『いい感じに』処理系が処理してくれる」というのを額面通り素直に受け取れる人と、「いや、『そのいい感じに』ってのが自分の思った通りになっているのか納得させろ」という人の温度差というのがそのあたりに潜んでいる気はします。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@y_futatuki なるほど。いい感じになっていますって言われれば納得する派なのでその発想は無かったです」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 納得するためには処理系が何をやっているかを隅々まで理解しないといけなくて、それがかなり辛いので「だったら、隅々まで指令するわ」となる、というのが私の心理 :)」 / Twitter
単一化
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「Prologを初めて書いた頃は驚いた気がするけど、論理型云々というより単一化が色々やってくれることに対して「すげー」と思っただけだった気がする。 あるいは「他の言語での関数相当を書けば、同時にある真偽を判定する述語相当になる」ことを面白がったり。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「これは、factorial(3, N), writeln(N). と書けば、Nは6になるけど、factorial(3, 5)と書くとその結果が偽になって、みたいなお話。」 / Twitter
単一化の高速化
- LunarML進捗・2022年2月 | 雑記帳
- 画力・博士号さんはTwitterを使っています 「LunarMLの実装チラッと覗いたんですが多分 - 型変数を直接mutable referenceで扱わずに「管理用のテーブル」を使っていること - generalizeをlevel-basedでやっていないこと が型推論に時間がかかることの要因な気がします」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
- Efficient and Insightful Generalization
Prolog に型
- Miura HidekiさんはTwitterを使っています: 「そう思うのだけど、いまの静的型付け言語人気を見ると、人間って約束事で縛られるのが好きなんじゃないかなって思うのですよ」 / Twitter
- まつもとゆきひろ氏の名言さんはTwitterを使っています: 「JavaやC++といった言語では、public static void mainなど、コンピュータに伝える約束事が多くて、やりたいことが頭の中から逃げてしまう。簡潔さは力なのです。」 / Twitter
- h_sakuraiさんはTwitterを使っています: 「@miura1729 いや、OCamlの型システムのほとんど型を書かなくて良い型推論感がいいなぁ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@h_sakurai うーん、OCamlが型を書かなくてもいいならおそらく何らかの制約があるはずだけどその制約が分からないのでコメントが出来ないです。ちょっと出直してきます」 / Twitter
- h_sakuraiさんはTwitterを使っています: 「@miura1729 おれも最初は何を言ってるのかわからなかったんですけど、型を想像しながら型を書かずに書いて問題ないならエラーが出ない感じです。 今はTypeScript的な漸進的型システムな感じのPrologの型システムが欲しい今日この頃です。が、今はまだないw」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@h_sakurai Prologに型を付けるのは大変だろうなって思います。Prologに型を付ける論旨の論文は沢山ありそうですが」 / Twitter
- h_sakuraiさんはTwitterを使っています: 「@miura1729 Prologに型がつけられると型理論の図に型がつけられるようになるので欲しいはずなんですが難しいんですよねぇ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@h_sakurai Prologって表示的意味論と相性悪そうですしね。特にカット」 / Twitter
- h segawaさんはTwitterを使っています: 「@h_sakurai @miura1729 OCamlはprincipal typeが出るようにpolymorphic typeの推論規則を縛ってるので右辺値から左辺値の型が推論できます(型変数の出現位置を縛ってるだけ) Prologも同じようにすればと思いますがどこが具体的に難しいのか知りたいかも…(右辺と左辺が対称だというのはなんとなく解る)」 / Twitter
CPS
- mod_poppoさんはTwitterを使っています: 「Compiling with/without Continuations系の論文(本)、一体何本読めばいいんだ」 / Twitter
- mod_poppoさんはTwitterを使っています: 「パターンマッチの脱糖にsecond-classな継続かjoin pointかなんかそういうのが中間言語に欲しい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Compiling with Continuations→CPS The Essence of Compiling with Continuations→CPSじゃない(ANF) Compiling with Continuations, Continued→CPS Compiling without Continuations→CPSじゃない Compiling with Continuations, or without? Whatever.→???」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Compiling with Continuations and LLVM→ManticoreのLLVMバックエンドの話?」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLに限定継続を実装したいところだけど、まだいまいち理解できてないし、まずはフルの継続を実装するかなあ」 / Twitter
- mod_poppoさんはTwitterを使っています: 「stacklessな継続に類する機能(と言っていいのか?)(ジェネレーターとかasync/awaitとか)は最近の言語では珍しくなくなってきてるけど、stackfulな継続に類する機能を持った言語が少数派なのは、やっぱ実装にかかるコストに比べてstackfulじゃないとできないことのメリットが小さいんだろうか」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLにcall/ccを実装できたっぽい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLのcall/ccを使ってJavaScriptのsetTimeoutを同期的なsleep関数として呼び出すやつができたっぽい https://t.co/SopYy2Mx3n」 / Twitter
- mod_poppoさんはTwitterを使っています: 「ラムダ式をCPS変換して追加の引数でグローバル変数を表現するのってReaderモナドとかStateモナドでおなじみのやつが」 / Twitter
- mod_poppoさんはTwitterを使っています: 「プログラム意味論完全に理解した(←わかってない)」 / Twitter
- でこれきさんはTwitterを使っています: 「意味論はAdding Delimited and Composable Control to a Production Programming Environment https://t.co/1xJKvZsiDp とか Delimited Dynamic Binding https://t.co/VAQJ1urClu らへんを読んでいく感じかなあ > 限定継続+例外」 / Twitter
- icfp07-fyff.pdf
- DDBinding.pdf
- でこれきさんはTwitterを使っています: 「限定継続を起動したときに、既存の動的環境(例外ハンドラとか)を置き換えたり起動前のものをそのまま使ったりするのではなく、限定継続で捕捉した動的環境(の一部)を起動時につぎたすようなイメージ」 / Twitter
- mod_poppoさんはTwitterを使っています: 「限定継続界隈のpromptってREPLのプロンプトが語源なのか https://t.co/4oAwjepsOb」 / Twitter
- The theory and practice of first-class prompts | Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
型の表現
- がくぞさんはTwitterを使っています: 「すえなみさんの一連のスレッドの論旨には基本的に異論ないのだけど、この辺に関してはrefinement typesが簡単に使えるかとかでも大分変わりそうな気がするので、かわしまさんの仰る通り型を定義するコストに大きく左右される感じありますね」 / Twitter
- やきにくさんはTwitterを使っています: 「例えば、ある属性Aは30文字以内の文字列、別の属性Bは100文字以内の文字列、いずれも空文字列を許容しない(1文字以上)場合、値の型はNotEmptyStringで、30文字以内か100文字以内かというのは属性の制約として実装すると思う。」 / Twitter
- がくぞさんはTwitterを使っています: 「型システムの表現力が強い言語使うとやはり色々楽になれるなー」 / Twitter
- がくぞさんはTwitterを使っています: 「Idris使おう」 / Twitter
- がくぞさんはTwitterを使っています: 「国際単位系というサブドメインの存在を規定し、そのサブドメインの固有型ですよ、と見做しているという事なのかな?」 / Twitter
- やきにくさんはTwitterを使っています: 「「空文字列でない」ことのほうがより基本的な制約で、上限文字数はかなり"現時点での"ユースケースの都合を色濃く反映していると思うから(経験則でしかないけど)。」 / Twitter
- やきにくさんはTwitterを使っています: 「「1文字以上、30文字以内の文字列」という値オブジェクトを作って嬉しかったことが(経験的に)あまりないのですね。「1文字以上」だけのほうが使いやすい。」 / Twitter
- かとじゅんさんはTwitterを使っています: 「@a_suenami class Employee { private Name name; Employee(Name name) { https://t.co/liaVZxiWis = assertEmployee(name); } } 値固有の制約はName型の責任だけど、属性固有(従業員名)の制約はassertEmployeeのように表現できるとよいかな。」 / Twitter
- やきにくさんはTwitterを使っています: 「@j5ik2o そうですね、僕はそう思いますね(とはいえ、Nameが例だとなかなか難しいですがw」 / Twitter
- かとじゅんさんはTwitterを使っています: 「@a_suenami お、認識が一致した。よかった。」 / Twitter
- やきにくさんはTwitterを使っています: 「@j5ik2o 単にNameだとあまりいい例が思いつかないのですが、例えばふりがなだったらHiraganaStringとかっていう値の型を作ると思うんですよね。HiraganaString同士のconcatはHiraganaStringであることが保証されますし、hiraganaString.convertKatakana(): KatakanaStringなども定義できそうです。」 / Twitter
- やきにくさんはTwitterを使っています: 「@j5ik2o そしてこれは属性として人名のふりがなに使われたとしても住所のふりがなに使われたとしても同じ型でいいとと思うんですよね。」 / Twitter
- かとじゅんさんはTwitterを使っています: 「@a_suenami 確かに。それはわかりやすいですね。値の特徴を表しているような気がする。」 / Twitter
- たなかこういちさんはTwitterを使っています: 「@j5ik2o @a_suenami 汎化特化の話し、と言って良いですか?」 / Twitter
- かとじゅんさんはTwitterを使っています: 「@Tanaka9230 @a_suenami または共通性と可変性みたいな?」 / Twitter
- やきにくさんはTwitterを使っています: 「もちろんメールアドレスとかURIとか、RFCなどで仕様が決まってるものの文字列表現は別。MailAddress型やURI型は作る。」 / Twitter
代数的データ型とパターンマッチ
用語・呼称
- おーみーさんはTwitterを使っています: 「直和型、代数的データ型、ADT、discriminated union、disjoint union、tagged union、sumなど好き放題呼ばれているアレ」 / Twitter
- おーみーさんはTwitterを使っています: 「このうちalgebraic data typesとその略称、和訳は厳厳厳密には直和と直積の総称っぽさを含むのでちょっと違うよね」 / Twitter
- おーみーさんはTwitterを使っています: 「enum (!?)」 / Twitter
- momeemtさんはTwitterを使っています: 「@aumy_f あ、厳密には代数的データ型とは呼べないがそういう顔をしていたい機能を押し込める名前だ かわいいね」 / Twitter
- おーみーさんはTwitterを使っています: 「@momeemt いーなむ←かわいい💞」 / Twitter
- momeemtさんはTwitterを使っています: 「@aumy_f いふ、ふぉー、あるじぇぶれいくえふぇくつ、などプログラミング用語にはかわいいものが多い」 / Twitter
- がくぞさんはTwitterを使っています: 「代数的データ型だからパターンマッチできる、というのは違和感ありますね? Kotlinの様に代数的データ型が作れるけどパターンマッチできない言語もあるので。 パタマでADTが扱えると便利なのはそうですが。代数的データ型のメリットは網羅性検査できるとか統一的に扱えるとかそういう系な気がします?」 / Twitter
- がくぞさんはTwitterを使っています: 「Scalaの場合は PartialFunction もあるので網羅性検査をとくにする必要がないパターンマッチみたいなのも存在するのだよなー」 / Twitter
- がくぞさんはTwitterを使っています: 「Javaだと現状(Java 18)でもswitch式はenumの網羅性検査ができるので、不必要な default を書く必要が無くて嬉しいし、 default を書く必要が無いことによって、後に enum の要素が増える改修が入った時に、その switch式を改修する必要があることをコンパイラに検知してもらえるのが嬉しい、みたいな話」 / Twitter
- がくぞさんはTwitterを使っています: 「keen さんのパターンマッチ本が 代数的データ型とパターンマッチの関係についても触れてて、代数的データ型がない言語でのパターンマッチにも話が及んでるので判りやすい気がしますね。 https://t.co/18p8qG5fY1」 / Twitter
- がくぞさんはTwitterを使っています: 「網羅性検査と言えばJavaさんこれ網羅性検査して欲しいんですけどどうにかなりませんか……?」 / Twitter
- がくぞさんはTwitterを使っています: 「こういう分岐での網羅性検査もありうるのでパターンマッチと網羅性検査は分けて考えておきたい派です。 cc @a_suenami」 / Twitter
- がくぞさんはTwitterを使っています: 「一方 Scala は catch にもパターンマッチを採用した」 / Twitter
- ぐるぐる系SQLさんはTwitterを使っています: 「@a_suenami @gakuzzzz (F#のactive patternというのもあります)」 / Twitter
- Kentaro InomataさんはTwitterを使っています: 「@bleis @a_suenami @gakuzzzz ScalaのExtractorに影響を与えた、ということになっていますね https://t.co/gZJ6trFb3U」 / Twitter
- matarillo.com: 9.5 F# 1.0 -- 機能コアの改善:アクティブパターン
- Kentaro InomataさんはTwitterを使っています: 「@bleis @a_suenami @gakuzzzz 原文 https://t.co/vuyW3IRado」 / Twitter
- About F# | History
- がくぞさんはTwitterを使っています: 「これ Kotlin どうなってたっけ?と思ってぐぐったのだけど、まだ multi catch サポートしてない? when catch はKotlin的に一貫性ありそうだけど採用するのかなー? https://t.co/oS96w8MJ6c」 / Twitter
- Multi catch block : KT-7128
- がくぞさんはTwitterを使っています: 「Iso/Prism をExtractorとしたパターンマッチで網羅性検査したいマン」 / Twitter
- lotzさんはTwitterを使っています: 「代数的データ型のちゃんとした定義ってあるんやろか」 / Twitter
- wint☸️🇺🇦さんはTwitterを使っています: 「Ruby には代数データ型はないけど、パターン・マッチングは あるよ」 / Twitter
モナド
- κeenさんはTwitterを使っています: 「モナド、シンプルに不便だから使われてないと思ってるよ。単一のエフェクトを扱う分には構文糖衣のおかげでなんとかなってるけどスタックさせると面倒だしreturnとかの制御構造のある言語でも使いづらいし。あと言語に高カインド多相要求するから導入難易度高いし。」 / Twitter
- κeenさんはTwitterを使っています: 「algebraic effectは複数使っても複雑にならないし制御構造との相性もいいから便利だと思ってるよ。導入難易度でいったら限定継続相当のもの要求するからモナドとどっこいどっこいだけど。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@blackenedgold 逆に既に限定継続があるならハードルは低いですね。」 / Twitter
- κeenさんはTwitterを使っています: 「@anohana はい。もっと限定継続入ってる言語が増えてくれたらなと思ってます」 / Twitter
Rust
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「Rustでモナドを実装する時に一番困るのは、MyTrait<T>内に定義する関数が特定のContainerTrait<T>型の値を返す、みたいな状況をRustが(PhantomData無しに)適切に扱うことができないところで、これはGATがあれば緩和されると思う」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「HaskellのApplicativeをどうやってRustに移植すればいいかわからない。 HaskellのApplicativeには主にpure, lift, thenという3種類の機能があって、ナイーブにRustに移そうとするとこれらは3つのtraitになる。Rustでは1trait->1機能なので」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「なので、なぜ「これらの機能がApplicativeという1つの型クラスに入れられているのか」という本質を理解していないとうまく設計できないと思う。そして自分は理解していない」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「あとimpl時に浮いた型パラメータに対してPhantomDataが必要なのも困るね。 Option<_>等の既存型に実装することができなくなる」 / Twitter
- Cj-bc_sd.sh🌸🐾🐟🔯 @ソーダーさんはTwitterを使っています: 「@yasuo_ozu haskell もRustもそこまで詳しくないので間違ってるかもですが、"pure"さえあれば他は(少なくともhaskellでは)実装が自動で作成できます。 (あとthenってなんだっけ…って思いながら見てます。関数名としてはないな…?) https://t.co/7ad0PJRh4s」 / Twitter
- Prelude
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「@Cj_bc_sd 一応Haskellだと > minimal complete implementation = pure, ((<*>) | liftA2) になってるんですよね。(thenは *> の意味でした)」 / Twitter
- Cj-bc_sd.sh🌸🐾🐟🔯 @ソーダーさんはTwitterを使っています: 「@yasuo_ozu あ、そうか普通に読み間違えてました…なんなら実装読み直してたのに気づかなかった… (何故か (pure | ((<*>)|liftA2) として読んでました、恥ずかし…) thenって*>のことなんですね!なるほど! 言語によっては見たことがあったので対応がしれてありがたいです」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「@Cj_bc_sd そうなんですよね。HaskellとRustは似ていると言われることも無くはないので、そういった違いを考えると面白いです。 thenは勝手にrust風の名前にしました。」 / Twitter
型安全ルーティング
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「(TypeScript観点で)file system-based routingの何がだめなんですかという意見が流れてきた。ではこちらをどうぞ(宣伝) https://t.co/R0KQG3ldIo」 / Twitter
- 2021年の密かなトレンド? “型安全ルーティング”の概観
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「そう、なぜこのTypeScript時代にfile-system based routingなんてものが使われ続けているのかは正直謎(?)」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「で、TypeScript側でサポートすればいいのではとも考えられるが流石にファイルシステムは無理な気がしている。確かそういうissueもあったはず(見つけられなかった)」 / Twitter
- RyuseiさんはTwitterを使っています 「でもF#はやってなかったか」 / Twitter
- RyuseiさんはTwitterを使っています 「The FileSystem type provider https://t.co/ZjptI8oo7J」 / Twitter
- The FileSystem type provider
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「やっぱり型安全ルーティングの話を出してもあまり人々から共感が得られないな。その領域は人が頑張るのが当たり前であり型で助けられるものではないという認識が強いのかもしれない(?)」 / Twitter
型レベルプログラミング
- Haskellにおける型レベルプログラミングの基本(翻訳) - Qiita
- GHCの型レベル自然数を理解する - Qiita
- TypeScript型レベルプログラミングの細かいテクニック
- TypeScriptの型レベルプログラミングで足し算・引き算・掛け算を実装する - asterisks
- 型レベルプログラミングを学ぶことには意義がありますか? - Quora
- 型レベルプログラミングの会 - kmizuの日記
- たのしい型レベルプログラミング
- Haskellで型レベルプログラミングで遊ぶ - mrsekut-p
- 型レベルプログラミング - Shingo Suzuki's project
- 入門SRTP - 型レベルプログラミングちょっとだけ入門 - Speaker Deck
構造的部分型付け
- 構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
- TypeScript: 異なる2つの型システム「公称型」と「構造的部分型」 - Qiita
- 構造的部分型について - Qiita
- 「名前的型システムと構造的型システムの違い」加筆案 - 西尾泰和のScrapbox
- general6-1.pdf
- Typescript(構造的型付け) - 駆け足エンジニアの記録
- TypeScriptの型の互換性について - よちよち開発の日々
- ダック・タイピング - Wikipedia
- 型の互換性 | TypeScript 日本語ハンドブック | js STUDIO
- RustのTraitsが、近年主流である構造的部分型ではなくて明示的な宣言が必要な公称型なのは何故ですか?どのような設計判断があったのでしょうか?個人的にはRustの最大の不満点です。 - Quora
- がくぞさんはTwitterを使っています 「構造的部分型で型クラス的な抽象化って可能なのかな?」 / Twitter
- がくぞさんはTwitterを使っています 「やっぱ Nominal Typing と Structural Typing の両取りできる言語で」 / Twitter
- がくぞさんはTwitterを使っています 「構造のカプセル化について、OOP のパラダイムが Opaque type とかに比べてアドバンテージがあるのかどうかはちょっと疑問があったりするのですが、この辺どっかに研究論文とかあったりするんでしょうか?」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「構造のカプセル化と DIP のオートワイヤリングについては、OOP ほど無駄なくかつ裾野の広いパラダイムはない、逆に言えば OOP がとくに活躍するのはその領域だけだと考えています。他の領域にとって OOP はメンタルマッピング負荷があるパラダイムだとさえ」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「ポリモーフィズムは?: アルゴリズムのためのポリモーフィズムはサブタイプでも型クラスでもできるけど、モジュール交換によるメンテナンスのためのポリモーフィズムは DIP のカプセル差し替えってことで、そっちに含んだ」 / Twitter
Refinement Types (篩型)・依存型
Go など
- がくぞさんはTwitterを使っています 「わかりみがある。みんなもっとカジュアルに依存型とか篩型とか使っていきましょ https://t.co/Ri7GPG0u0C」 / Twitter
- Go を2年くらい書いた感想: 意図をエンコードしきれない感じは消えず - blog.8-p.info
- がくぞさんはTwitterを使っています 「共感するなー。自分だとたぶんシステム寄りのところはRustにするかもだけれど。単一の言語で全部何でもやろうとするより、作るものの要件に合わせて適切に選択できるようにしていたいですね」 / Twitter
- yuuki takezawa@ytakeさんはTwitterを使っています 「何年もやってるのもあるけど自分の中でGoの棲み分けみたいなのは完全にできていてやはりシステムに近いものだったり、通信の変換だったりそういうところはGoにしていて、ドメインモデルを表現するアプリケーションにはScala/Kotlinになってる。要するに一つの言語でなんでもやろうとしていないです」 / Twitter
- yuuki takezawa@ytakeさんはTwitterを使っています 「この辺りはPHPを長くやっていたからっていうのもあるかもしれない。もちろんコスト低めで早く動かしたいかどうかでGoにするかどうかもある。 一つの言語でなんでもやることもできるけど、やはり適材適所だし、組織的に言語を決めるみたいな思想とあまり合わないのはそういうところだったりする」 / Twitter
- zakuroさんはTwitterを使っています 「Go にあれがなくて不便というの、わかる意見も多いんだけど、Go は増やした機能は減らせないから安易に機能を増やさないという方針のはずで、逆に言えば十分に議論された機能は入る。ジェネリクスもあれだけ入れなかったのに入れるのはそういうこと」 / Twitter
- zakuroさんはTwitterを使っています 「なので、Go に〇〇がないから不便というのは正しくても、その不便さを解消するために安易に機能を輸入することはない。」 / Twitter
- zakuroさんはTwitterを使っています 「便利な機能があると、頭のいい人はこれくらいわかるでしょって頭のいいコードを(しばしば無意識に)書き始めるんですよ。」 / Twitter
- zakuroさんはTwitterを使っています 「そうはいっても map くらい入れても大したことないでしょとは思うけど、そういうことの繰り返しでどんどん複雑になる」 / Twitter
- zakuroさんはTwitterを使っています 「Go がジェネリクス入れたのも個人的には評価保留というスタンス。ちょっと賢すぎる気がする」 / Twitter
- zakuroさんはTwitterを使っています 「mapがあれば意図がわかりやすいというのもそんなに賛同できない。Go において map的な処理というのはせいぜい数行で、ある程度慣れていれば見たらすぐわかる。それより複雑なら、関数にして名前をつければ良い」 / Twitter
- zakuroさんはTwitterを使っています 「まあ map に関してはジェネリクス入るし解決だと思うけど、ちょっとした不便さの解決のために、いちいち新機能を追加というアプローチを取らないスタンスなのは間違いない」 / Twitter
- zakuroさんはTwitterを使っています 「Go 言語を書いていて楽しいかというと、そんなわけないに決まってるじゃん。ほかの言語のほうが絶対楽しい。ただ、楽しさは犠牲になってるけどその分得ているものは大きい」 / Twitter
- zakuroさんはTwitterを使っています 「Go 言語、書いてるうちに楽しくなっちゃってめちゃくちゃ凝ったかっこいいコードを書くことに時間をかけてしまうということが一切ない。ruby とか使ってると黒魔術使いたくなってくるじゃないですか。」 / Twitter
- zakuroさんはTwitterを使っています 「どんな言語も、大抵開発者が想定していなかった使い方が”発見”されるものなので、そういうことを防ぐためにも Go があれほど慎重なのは理解できる。」 / Twitter
- zakuroさんはTwitterを使っています 「V言語でも、おそらく私しかやってないだろうなって使い方をしていて、大量のバグを踏んで苦労しました(だいたい直したけどところどころコメントに workaround とか V's bug とか書いてある)」 / Twitter
- zakuroさんはTwitterを使っています 「Go 言語が優れていると思っている人にも、Go 言語があらゆる言語の中で書いてて一番楽しい言語ってひとは多分あんまりいないと思うな」 / Twitter
- zakuroさんはTwitterを使っています 「Go言語が書いてて一番楽しい言語っていうのは正直理解できないので、そういう人がいたらぜひ理由を教えてほしさがある(純粋な興味)」 / Twitter
- zakuroさんはTwitterを使っています 「自制心がある人は便利な機能も使わなければいいというのをやればいいと思うけど、私は自制心がないので、言語で表現可能な最大限のかっこいいコードを書くのに大量の時間をつかってしまう。Go だと大幅に減る(まあ go generate とか無駄に使おうとしたりはたまにするけど」 / Twitter
- yicuiheng/yil
- kodai 🕊🐧❄★さんはTwitterを使っています 「依存型か篩型採用したプログラミング言語もっと流行ってほしい」 / Twitter
- Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
- Dependent Types と Refinement Types の違い - SevenColoured
- Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
- 篩型 - mrsekut-p
- 依存型 - Wikipedia
- main.pdf
- なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
- [B!] Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
- Liquid Haskell で普通の型システムの上を行け #NGK2017B
- HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
- Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
- main.pdf
- 入門LiquidHaskell−篩型による静的コード解析− - Dodgson Labs - BOOTH
- 16-S.pdf
- LiquidHaskell でハマった (MEMO)
Opaque type
- Opaque type コンストラクタ 3つのAPI設計方針 - Qiita
- Dotty で入る Opaque Type Aliases について見ていく - Qiita
- Opaque Types — The Swift Programming Language (Swift 5.5)
- DEVでフォームにおけるOpaque Typeの設計に関するシリーズを書いた - Runner in the High
- Swiftでプログラミング- Opaque Types|donguri|note
- Opaque data type - Wikipedia
- Opaque Type Aliases
- Opaque Type Aliases | Flow
- type alias vs opaque type - elm-jp
- Flow - 不透明なエイリアスタイプ - 不透明型エイリアスとは、定義されているファイルの外部からその基礎となる型にアクセスできないようにする型エイリアスです。 不透明な型のエイリアスは、通常の型のエイ - 日本語
Nominal Typing
- Nominal Typing - TypeScript Deep Dive 日本語版
- TypeScriptでNominal Typingを実現する4つの方法 - Qiita
- TypeScript でも Nominal Typing がしたい - Qiita
- TypeScript Playground - Nominal Typing
- Nominal type system - Wikipedia
- Nominal Typing, Structural Typing - namaozi's memo
- TypeScriptでnominal typing - aereal-tech
- Nominal & Structural Typing | Flow
- Type Systems: Structural vs. Nominal typing explained | by Jamie Kyle | Medium
- What is a nominal type? - Speaker Deck
Structural Typing
- Typescript の Structural Subtyping - Qiita
- 構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
- Structural type system - Wikipedia
- ピックアップRoslyn 1/9: structural typing | ++C++; // 未確認飛行 C ブログ
- TypeScript Playground - Structural Typing
- TypeScript: Documentation - Type Compatibility
ネットワーク越しの型情報
同型判定
- Miura HidekiさんはTwitterを使っています 「プログラミングで究極に難しいのは2つのオブジェクトが同じであることを出来るだけ高速に判定することではないだろうか? (今それで悩んでいる」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 まずは相手が同じクラスであることを前提にできるかどうかで静的に決定できる部分が大きく異なるので、それを宣言する仕組みがあれば大きなヒントになるでしょうね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda もっと細かく言うと、抽象実行の結果の型が同じであるかの判定です。型に細かい属性がついていて(例えば整数で負にならないフラグとか)、状況によってそのフラグを無視するか無視しないかと言うのが変わるって感じです。静的に決定できる所もありますが余りなさそうです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 型をLispのSymbolでinternするみたいにユニークなオブジェクトにしてポインタ比較のみで判定できるようにするのがいいのかなとか考えています。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 hash関数の設計がかなり重要になりそうですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda ですね。これでオブジェクトの数が爆発しないかっていう見切りも必要でしょうけど。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 オブジェクト数の見積もり、重要ですね。intern poolのサイズ拡張は結構なオーバーヘッドになりそうですし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda intern poolっていうより型オブジェクトのfactoryでユニークな物を返すって感じになると思います。結局何らかのテーブルが必要になるわけですが」 / Twitter
- 樅山 (Mutsuha Asada)さんはTwitterを使っています 「仮に人類がJavaScriptを捨てるとしたら、ブラウザに乗せる言語は何がいいんだろう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Scheme + 総称関数ベースのオブジェクト指向システム だろうね >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「当然ながら静的型付け推しの意見が多いけど、ネットワーク越しにライブラリを動的にダウンロードする場合にどうやって型仕様を読みこむのかという問題がありそう。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 MS の ActiveX にタイプ ライブラリという型情報が付いてるのですが、COM IDL をコンパイルしたバイナリだと思います: ActiveX コントロールの構成要素 - RAD Studio https://t.co/ibjpzHaWUQ」 / Twitter
- ActiveX コントロールの構成要素 - RAD Studio
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、ActiveX。この手の型情報をネットからダウンロードすると名前空間の管理が煩雑だなって思うのですが、ActiveXのようにUUIDでしょうかね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 たぶん名前空間に、人力で名前を付けると大変だし、機械で自動で名前を付けると不自然になりそうな気がします。ただ、UUID でも新たな仕様が出てきてるので、どこかで決定しておかないといけませんが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 Javaのような名前空間も個人だと大変だと思いますし。githubのアカウントって現実的にはよい気もする (もちろん企業にロックオンされるような規格は認められないと思いますが」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 WebAssembly にも、モジュールに export された関数の名前と型が付いてきますが、ダウンロード元の場所は自由ですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 よく分かっていないのですが、WebAssemblyってユーザ定義の型とかクラスって使えるのでしょうか?単純に組み込み型しか使えない引数と戻り値のシグネチャーであれば色々やりようは考えられます。名前は衝突したらユーザの責任っぽいですね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 最新の仕様は見ていませんが、初期の仕様なら組み込み型しか使えないと思います。C のコードをコンパイルすると、構造体の引数はポインタ(組み込みの整数型)としてコンパイルされます。ユーザ定義のセクションが使えるので、独自の型情報を付加することは可能だと思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 可能なのは分かるのですが、そうすると構造が非常に複雑になって(他のサイトにあるライブラリで定義されているクラスなり型を使っているならなおさら)、事実上きちんとした名前空間が無ければ使いものにならないと思います。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 C++ の namespace 構文みたいに、import する側のコードで名前空間を決定するというのも思いつきますが、まあダメですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 この問題についてはActiveXのようにUUIDを割り振る実装とかJavaのようにサイトのURIを名前空間にする実装とか考えられるわけですが、Javascriptがプロトタイプベースの型無しオブジェクト指向であることは実は結構考えた末の結論ではないかと思うのです。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 JavaScript の隠された型を DB に格納して、対応するコードとともに世代管理したくなります」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 JSのプロトタイプベースの言語仕様のせいで処理系凄く苦労していますものね。Rubyもクラスベースの振りして実はプロトタイプベースに近いので気持ちはよくわかります。全てのインスタンス変数はinitializeメソッドで初期化してくれって思います。」 / Twitter
- k9694.pdf
- Keigo ImaiさんはTwitterを使っています 「フォールトトレランス以外にもマルチパーティセッション型には改善できるところがまだいくつかあり、それを解決すれば並行プログラミングでもぐっと使いやすくなると信じて理論と実装をやっています」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「セッション型を用いたプロセス間の安全な通信プロトコルの設計と実装👀 https://t.co/XFmVkaIOJU」 / Twitter
- 研究会 - セッション型を用いたプロセス間の安全な通信プロトコルの設計と実装
- Go製マイクロサービスのAPI仕様をSwaggerで作成、管理する | Money Forward Engineers' Blog
分散プログラミング言語
冪等性
- 新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
- 冪等性とは「同じ操作を何度繰り返しても、同じ結果が得られる性質」のこと - Qiita
- サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
- 冪等性 (べきとうせい) を理解して設計・実装するために役立つ記事まとめ - CodeNote
- 第2回「システムを作るコンピューター」 | NTTデータ先端技術株式会社
- RESTにおけるべき等とは何を意味するのだろうか?
- 冪等性(べきとうせい)というフレーズのメモ
- Idempotent (べき等) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
- リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
- 冪等性(べきとうせい)とは? - 会社辞めてニートになった元プログラマーの雑記帳
Tail Latency
- Tail Latencyについて - CubicLouve
- tail latency - Nodewww
- Tail Latencyに関する論文読み - 勘と経験と読経
- Tail Latency Might Matter More Than You Think - Marc's Blog
- IPSJ-OS18142003.pdf
- Storage: How ‘tail latency’ impacts customer-facing applications
- Preventing Long Tail Latency | Section
- srecon19apac_slides_plenz.pdf
- What the heck is tail latency? | Virtual Storage Zone
- mumumuさんはTwitterを使っています 「一般に1/1000程度のTail Latencyの原因特定ってどうやるんだ.Tailって測定誤差が大きそうだから,条件変えて計測して間接的に原因調べるしか無いのかな.」 / Twitter
タイムトラベル
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝も散歩してたのですが、凄まじく暑くて、湯だった頭で「タイムスリップ出来るプログラミング言語とかってどうだろう」とかどうでもいい事考えてました。 頭がおかしくなったわけではなく、1秒ごとにプロセスのスナップショットを取って、後から過去に戻れるようにしておく。で、 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「time_slip(1 hours ago) { debug_print(point.x) // 1時間前のpoint.xが取れる point.x = 20; // 1時間前のpoint.xを20にして、1時間前のスナップショットのスレッドを開始。現在のスレッドは破棄 } みたいなセマンティクスを持った言語は(凄く重いけど)作れそうだなと。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「結果的には、一昔前流行った可逆デバッガを言語に組み込んだぽいものになりそうですけど、時間だけじゃなくて、s1 = snapshot() で言語レベルで特定のスナップショットに戻れるとかすると、デバッグの役に立たないかなあとか。いや、元々は暑さで「タイムスリップ……プログラミング言語……」とか ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「タイムスリップというセマンティクスを持ったプログラミング言語を実装して、親なんとかのパラドックスを実行してみたらどうなるかなとかどうでもいいこと考えてたんですが。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、ナイーヴな実装だと、子どもが過去に戻って親をdestroyすると、リンクしてる子のスナップショットが全部連鎖的にdestroyされて、全部メモリ空間から消滅するだけでパラドックスにならないですね。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝考えていた「タイムスリップ」言語、どっちかというと「タイムリープ」言語な気がしてきました。 何度やり直しても、とある条件を満たさないと過去へのタイムリープを繰り返さざるを得ないSF風味を作れそうな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「変数の値も含めてタイムスリップできるのが Prolog のバックトラックなんだよな。SQL だとトランザクションのロールバックがタイムスリップ出来るものだな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「高度なリフレクションがあると任意の言語で可能になるんだよな。タイムワープアルゴリズムで検索」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ググってみたけど、タイムワープアルゴリズムってマイナーなんだな、私の書いた日記が上位に来ていた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、とてもエレガントで実在するほとんどの言語で実装困難なんだけど、私が説明するのはおこがましすぎる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、面白いのに説明がないのは人類の損失だから賢者による説明が求められる (他力本願(多分元の意味)」 / Twitter
- タイムワープアルゴリズム - miura1729の日記
Thunk
- Hidemoto NakadaさんはTwitterを使っています 「juliaの分散周りのコードを読んでいたら、thunkという変数名をクロージャに対して使っている。普通の辞書にはそれっぽい意味がないので、ぐぐったらこんな記事を見つけた。なんとAlgol 60にまで遡る由緒正しいジャーゴンだったとは。。 https://t.co/J5vk7Vit38」 / Twitter
- S.F. Blog:thunk(サンク)というものについて
- Hidemoto NakadaさんはTwitterを使っています 「SICPにもでてくるらしい。確かに当時もなんだコレ、と思ったような。」 / Twitter
- 寺田 実さんはTwitterを使っています 「@hidemotoNakada Knuth を逆綴りにした、っていうあれですよね。はるか昔の理解では、ややこしい変数(名前呼びとか?)アクセスのために、アクセスの時に呼び出すコードのことだったような記憶が。」 / Twitter
- Hidemoto NakadaさんはTwitterを使っています 「@miterada wikipediaの記事を教えていただきました。かなり多方面でちょっとずつ違う意味で使われているようです。 https://t.co/GDGyCHEuUf Algol発祥なのは多分確かで、そこから派生していったということなのでしょう。。 https://t.co/zKzT0mUXDj」 / Twitter
- Thunk - Wikipedia
- Thunks: a way of compiling procedure statements with some comments on procedure declarations: Communications of the ACM: Vol 4, No 1
- Acute: high-level programming language design for distributed computation: ACM SIGPLAN Notices: Vol 40, No 9
- Acute Programming Language
- HashCaml
- Scribble
- Specifying Systems
- book-02-08-08.pdf
- [TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO
- handout.dvi - lecture09ModelChecking.pdf
- Jolie - 分散アプリケーションのためのサービス指向プログラミング言語
- 物理クロック 論理クロック - CubicLouve
- TLA+チートシート
- SODA NoriyukiさんはTwitterを使っています 「Gfarmでの知見を元にCHFSという別の分散ファイルシステムを開発している ・メタデータサーバなし ・逐次処理なし ・ノードローカルな不揮発性ストレージで構成した分散キーバリューストアを基盤 #gfarm2021」 / Twitter
- Cloudflare、分散したCDNエッジ間でも強い一貫性を提供する「Durable Objects」正式リリース。ステートフルな分散アプリが容易に - Publickey
- ytakanoさんはTwitterを使っています 「TLA+で『並行プログラミング入門』にある再帰ロックの検証はこんな感じかな。デッドロックは起きないのは検証できた。 https://t.co/VOvGJDNLLu」 / Twitter
- ytakanoさんはTwitterを使っています 「PlusCal書きやすい」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』にある再帰ロックのTLA+での検証done。デッドロックしない、クリティカルセクション実行中のプロセスは最大1というのを、一部out-of-order実行を模擬して検証。 https://t.co/tY4oylKLY0」 / Twitter
- ytakanoさんはTwitterを使っています 「RWlockはAlloyでも検証済みだけど、TLA+でもやってみるかな。」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+で食事する哲学者問題のデッドロック検知 https://t.co/9jzGBHXa06」 / Twitter
- ytakanoさんはTwitterを使っています 「PlusCalが簡単すぎてどんどん検証できそう。」 / Twitter
- TLA+に再挑戦(2021.09) - yujioramaの日記
- The TLA+ Home Page
- TLA+に再挑戦(2021.10) - yujioramaの日記
- TLA+に再挑戦(2021.11) - yujioramaの日記
- TLA+に再挑戦(2021.12) - yujioramaの日記
- ytakanoさんはTwitterを使っています 「色々やってみたけれど、型システム以外だとTLA+のPlusCalが1番しっくりくるな。」 / Twitter
- ytakanoさんはTwitterを使っています 「もうちょいRustに近づけたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「HaskellってTime-Warpアルゴリズムの分散シミュレーションのためのライブラリなんてあるのね。ありそうだなって思ってググったらやっぱりあった。https://t.co/fep6qLWiH8」 / Twitter
- time-warp: Distributed systems execution emulation
- Miura HidekiさんはTwitterを使っています 「Time-Warpアルゴリズム、何らかの特別な言語支援が無ければ書くことが最高に難しいアルゴリズムの1つだと思う」 / Twitter
型消去
- Simply typed lambda calculus - Wikipedia
- Type erasure - Wikipedia
- type erasure typed lambda - Google 検索
- type erasure - Google 検索
- LangSpec2.8-ja_JP.pdf
- types23.pdf
- TaPL9
型制約検証
- まどさんはTwitterを使っています: 「型の方程式(どの型がどの型の部分型でないといけないかを書き並べたもの)を解くとき、エラーがおきたときにエラーメッセージを出すために、各制約がコード中のどの位置のどのような制約から生まれたものなのかを記録しておく必要があるんだが、これがなかなか難しいときがある」 / Twitter
- まどさんはTwitterを使っています: 「制約AとBによってt=Tであることがわかって、これを制約Cに代入したら型エラーになった時、型エラーの原因はどこだ?」 / Twitter
- まどさんはTwitterを使っています: 「何もわからんのでとりあえず現状は制約Cが原因だということにしている。これは一例で、型エラーの原因を特定するのがもっと難しい(正解がわからない)パターンが他にもある」 / Twitter
- ShibaさんはTwitterを使っています: 「万能な型制約検証については、原理的に困難なようですね それこそ機械学習とかで推論してもらうとか https://t.co/NbqfDWJUE4」 / Twitter
- OCaml-meeting0908-revised.pdf
- まどさんはTwitterを使っています: 「@s_sbym ありがとうございます。助かります」 / Twitter
直和
- 画力・博士号・油田さんはTwitterを使っています: 「“フィールドがあったりなかったりするやつ“ はたしかに直和なんですけど, “どこが直和の1パターンにしか存在しない部分でどこが共通なのか” が目視で捉えにくいのが個人的に瑕疵に感じるところ」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「なんとなく,“直和を自然に表現” したものを見ると “内部実装っぽく見える” という感覚をもつ人もいる,ということが推定できた」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「多分だけれどもこれはフォーマット自体が直和をサポートしていないことに依拠した見方に思える,Yojsonのように構文そのものに直和がある形式で書いていたらそんな風には見えないと思うんですよね」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「あんまり良い例ではないけれどもYojson形式の例: https://t.co/gQpwvGr5q0 <Foo: …> で直和の要素が書ける」 / Twitter
- SATySFi/fonts.satysfi-hash at dc31f38ec6d768daf24d706267663bb978a581aa · gfngfn/SATySFi
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「「直和型」と言われると、数学の「直和」の定義(「直積」に代数演算を導入したもの)が頭によぎるので、いまだにプログラミングにおける「直積」「直和」という言葉使いには抵抗がある。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「私が思う「直和」は「大数学的直和」であり、プログラミングにおける「直和」は「集合論的直和」らしい 紛らわしいので「直和」という言葉は一度滅んだほうがよい https://t.co/N6MuhQqtv7」 / Twitter
- 直和 - Wikipedia
API 検索
API
- UberがAPIゲートウェイのアーキテクチャを公開
- Google Cloud、API管理プラットフォームの新メジャーリリースApigee Xを発表
- AsyncAPIとPostman Partner、非同期API用の新ツールを提供へ
- 松鹿さんはTwitterを使っています 「Rustで型検索するやつ、wasmをデプロイしたので気軽に試せるようになりました 👉https://t.co/icvHKr8qNG👈 https://t.co/b34M5DLFAA」 / Twitter
- hkmatsumoto/roogle: A Rust API search engine
- 松鹿さんはTwitterを使っています 「ちなめっちゃ遅いので10秒くらい待っててください(バイナリは1秒くらいで結果が出ます)」 / Twitter
リフレクション
イントロスペクション
- Happy Squeaking!! -オブジェクト指向再入門- [第四回:メタ機能との出会い]
- bacspot.dip.jp/virtual_link/www/si.musashi-tech.ac.jp/new_www/Python_1HourStudy/index_class_introsection.html#:~:text=イントロスペクションとは、自身の考え、感情、,することを指します。&text=そして可能な事を,入れることになります。
- リフレクションとイントロスペクション | Ouobpo
- itp-interpreter.pdf
- 自己反映計算 (計算機科学) - Wikipedia
- メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
- c - メタサーキュラー通訳の正確な定義は何ですか? - ITツールウェブ
- c - メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - ITツールウェブ
- インタプリタとは
- メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - Javaer101
- Clojureのメタサーキュラーエバリュエーターで「true」を評価する - Javaer101
- S8
型レベル計算・コンパイル時計算・依存型
自らがそこに至った過程を開示
計算の過程
- Mark EriksonさんはTwitterを使っています 「I _really_ wish TypeScript types had some form of a step-by-step debugger, so that I could see how types are getting transformed at each step. Trying to debug a complex type transformation is incredibly painful - forced to either guess or hack up a way to see the "output"」 / Twitter
- Sam WightさんはTwitterを使っています 「@acemarke Only way I've gotten around this is by breaking down types into much smaller type aliases and testing them out manually. I feel like I need a unit tester for types, which like.... doesn't seem like it should be the case? Typescript feels more like a lang for editor autocomplete.」 / Twitter
- RyuseiさんはTwitterを使っています 「表計算ソフトの「デバッガー」 https://t.co/XYMe3xamjm」 / Twitter
- Read "Ministry for the Future"さんはTwitterを使っています 「@samwightt @acemarke Ah yeah, I haven't thought of Smalltalk in this context since it's far more dynamic, but it's a different means to a similar end. Arguably Smalltalk takes the "I" in IDE more seriously than most languages). I'm just now learning of Pharo - thank you for the tip!」 / Twitter
- RyuseiさんはTwitterを使っています 「VSCodeで識別子にカーソル合わせたら型が表示される程度の支援じゃ不満で、もっと密にフィードバックが欲しいんだろうか」 / Twitter
- RyuseiさんはTwitterを使っています 「VSCodeで書いてたら常時型推論器が走っていて好きな識別子の型が見れるじゃん」 / Twitter
- RyuseiさんはTwitterを使っています 「ツールチップで表示するのは見づらい・使いづらいってのは、まあわかる」 / Twitter
- RyuseiさんはTwitterを使っています 「せっかく左側にアウトラインの領域が置いてあるんだから、ツールチップだけじゃなくて、そっち側でも型やドキュメントを参照できるようにしたって良いじゃんかっていうね。 https://t.co/m55lgx8uM6」 / Twitter
- RyuseiさんはTwitterを使っています 「NullPointerException…」 / Twitter
- RyuseiさんはTwitterを使っています 「(出来の悪い)動的なプログラミングの方が原因のトレースはずっと困難だと思うけど」 / Twitter
- RyuseiさんはTwitterを使っています 「静的検査より動的検査の方が適切に診断を出せる、とは限らないし Smalltalkが良くやっているというのはわかるけど、それ(診断の適切さ)は検査が動的か静的か自体とは違う尺度の話な気がするんだよな」 / Twitter
- RyuseiさんはTwitterを使っています 「静的型付けは安全側に倒して、妥当でない(エラーが生じうる)コードは一律弾きがちなのが嫌って話も、診断の適切さとは別だし」 / Twitter
- RyuseiさんはTwitterを使っています 「でも実際のところ、大規模なプロジェクトなら当然「エラーが生じうるコード」は、本当にエラーが起きる前に知りたいわけで…」 / Twitter
- RyuseiさんはTwitterを使っています 「カリー=ハワード同型対応というものがあるから、型検査機の出したエラーに対して過程を開示しないっていうのは、数学の証明の誤りに対して過程を開示しないって言ってるようなもので、むしろ証明という過程を示すべきなのはプログラマーの方なのでは、という気がする」 / Twitter
- RyuseiさんはTwitterを使っています 「そこに至った過程を気にしてしまうのは、手続き型に囚われているからだと思ってしまう」 / Twitter
- RyuseiさんはTwitterを使っています 「まあ、オブジェクト指向であれば、「そこに至った過程」もオブジェクトの範囲で閉ざされていて、他のオブジェクトの過程は他のオブジェクトの勝手なんだから、気にしないでいいというか、気にするべきではない。」 / Twitter
- RyuseiさんはTwitterを使っています 「使っているオブジェクトの過程は気にするけど、呼び出し元の過程は気にするべきではない」 / Twitter
- RyuseiさんはTwitterを使っています 「何を気にするべきで、何を気にするべきでないかをうまく切り分ける技術として、オブジェクト指向と関数型プログラミングとでそんなに差があるわけではないと思う」 / Twitter
- sumimさんはTwitterを使っています 「なるほど。その発想はなかった。 静的型も(チューリング完全的な意味で?)それのみで独立したプログラミングみたいなものなわけだから、そのチェックについても、Smalltalkにおけるデバッガー体験みたいなことを実現する何らかのサポートがあれば、型記述に対する苦手意識をもう少し減らせるかも。」 / Twitter
- sumimさんはTwitterを使っています 「所有権(Rust)とか正規表現、SQLにもにょるのもたぶんそれだ^^;」 / Twitter
- sumimさんはTwitterを使っています 「総じてエラー(主張)だけ出して、こっちやりたいことを妨げるくせに、自らがそこに至った過程を開示しないもの(物・者)にもにょるのだ! 冗談はさておき、もうちょっと優しく何が間違っているか教えて欲しい。可能なら「ほら、これ。キミが欲しい結果と違うでしょ?」と分かるまで調べさせて欲しい」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim まあ大抵のHindley-Milnerベースな型推論する処理系は、「推論すると、この型という結論とこの型という結論が出て、矛盾してるからエラー」というメッセージを出すので、その条件は満たしているかと。ただ、どうして矛盾した結果が出てしまうか、こまめに型アノテーション付けないと地獄を見ます。」 / Twitter
- sumimさんはTwitterを使っています 「@tomooda 「推論すると、この型という結論とこの型という結論が出て、矛盾してるからエラー」の全過程を開示してくれる(あるいは追っかけられる)オプションが大抵の処理系にあるんですか?(反語的に)」 / Twitter
- I moved to Mastodon.さんはTwitterを使っています 「@sumim @tomooda .oO(矛盾する反例を1つだけ結果として返すのは不可能ではないのでは。。。)」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim 実は修士学生時代の1つ上の先輩のテーマがそれで、私はミニ言語の型推論器を実装してあげたりしたんですが、正直、型アノテーション付いてないソース上であれを追跡するぐらいなら、最初から明示的に型アノテーションつけて回ったほうが遥かに心休まります。まじで。」 / Twitter
- sumimさんはTwitterを使っています 「@tomooda 全部テキストでやろうとすればそうかもしれませんが、今なら、推論結果をコード上でポップアップなどインタラクティブに、あるいは、オーバーレイ等の何らかのグラフィカルな方法で参照可能なようにするのでも駄目っぽそうですか?」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim 私はチキンなので、あたかもSmalltalkデバッガでステップ実行するように、型推論付きの言語ではソースコードを少し編集しては型検査にかけ、を繰り返します。結局、「バグはできるだけ早期発見が吉」の典型例がコンパイル時型エラーだと思ってます。複数箇所壊すと涙が出ます。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@sumim それならば「キミが欲しい結果」を正確に教えて欲しいと処理系に言われるのがオチという気もします :-)」 / Twitter
- sumimさんはTwitterを使っています 「@wtakuo そこは、もうそろそろ(理論的には結果的に間違い・実現不可能であることも含め)察しろ…と^^;」 / Twitter
- PureScript型レベル計算入門 - Qiita
- Haskell 型レベル計算で継続渡し - keigoiの日記
- Type-level TypeScript - ryota-ka's blog
- Scalaで型レベルのラムダ計算 - 貳佰伍拾陸夜日記
- Scalaで型レベル”だけ”でクイックソート | POSTD
- 欲望の赴くままRustで型レベルPeano自然数とサイズ付きベクトルを書いた - konn-san.com
- ソフトウェアの基礎
- がくぞさんはTwitterを使っています 「型レベルプログラミングはある種の動的言語プログラミングですもんね…… Multi-Stage Programmingを活用すれば meta な typecheck も可能になったりするんでしょうか?」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「Scala 3のmatch type、metaなtypecheckが存在しない?(存在できない?)から、実際はString返す可能性があるものに type F[A] <: Int = /* 実装省略 */ という定義しても、そのtypeの定義時ではなく、それを使うときにならないとエラーがわからないな、いや そりゃそうか?みたいなことを考えていた」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「普通のmatchだと最後に case None => でも case _ => でもほぼ違いがないけれど、 match typeではミスしてると他のものも何でも渡ってくる可能性があるので、case None.type => と書いておいた方がエラーが出るかどうか?や、出る場所が微妙に違くなる可能性がある、みたいなノウハウはあるか?」 / Twitter
- がくぞさんはTwitterを使っています 「それって…… compiler は interpreter ってコト!?」 / Twitter
代数的データ型
代数的データ型
ラムダ計算
- 代数的データ型をラムダ計算の中で表現する方法
- ラムダ計算で代数的データ型を表現する方法 - @syamino はてなダイアリー
- Boolの代わりにEither () ()を使って,論理演算をポイントフリースタイルで定義 - @syamino はてなダイアリー
- curry,(&&&),(|||)の型が,指数法則と対応している - @syamino はてなダイアリー
- mod_poppoさんはTwitterを使っています: 「まずはラムダ計算の素朴な値呼び評価器から https://t.co/R0hKsxLj78」 / Twitter
Scala
- 何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
- Modegramming Style: [FP] パイプライン・プログラミング
- Modegramming Style: 関数型プログラミング技術マップ2014
- Modegramming Style: メッセージ・フロー図
- Modegramming Style: 代数的構造デザインパターン
- Modegramming Style: 圏論デザインパターン
- Modegramming Style: 「ツイッターStorm:オープンソースのリアルタイムHadoop」のマインドマップとクラス図
- Modegramming Style: オブジェクトと関数の連携(1)
- Modegramming Style: オブジェクトと関数の連携(2)
- Modegramming Style: オブジェクトと関数の連携(3)
- Modegramming Style: データフローの実装技術
- Modegramming Style: 関数型とデータフロー(1)
- Modegramming Style: 関数型とデータフロー(2)
- Modegramming Style: 関数型とデータフロー(3)
- Modegramming Style: 関数型とデータフロー(4)
- Modegramming Style: 関数型とデーターフロー(5)
- Modegramming Style: DSL駆動によるクラウド・アプリケーション開発
- Modegramming Style: OFADの要素技術/関連技術
- Modegramming Style: Object-Functional Analysis and Designまとめ
- Modegramming Style: DSL指向プログラミング
- Modegramming Style: Domain-Driven Design (DDD)
- Modegramming Style: オブジェクトの世界と関数の世界
- Modegramming Style: EDAとオブジェクトと関数
- Modegramming Style: メタモデル
- Modegramming Style: DCI (Data Context Interaction)
- Modegramming Style: CQRS, EDA
- Modegramming Style: Object-Functional Analysis and Designまとめのまとめ
- Modegramming Style: Scalaへのアプローチ
- Modegramming Style: データフローDSL考
- Modegramming Style: データフローDSL考 (2)
- Modegramming Style: データフローDSL考 (3)
- Modegramming Style: データフローDSL考 (4) - g3
- Modegramming Style: データフローDSL考 (5) - アイデアメモ
- Modegramming Style: データフローDSL考 (6) - 並行処理
Haskell
- Haskellの代数的構造入門 半群・モノイド・環とは何か? - ログミーTech
- Haskell の read 関数で、文字列から代数的データ型へ変換 - 導出インスタンスを使って | すぐに忘れる脳みそのためのメモ
- Haskellの代数的データ型 - Haskell勉強会
- Haskellの真髄に迫る - 一般化代数的データ(4) - bitterharvest’s diary
- 代数的データ型 - ウォークスルー Haskell
- 代数的データ構造 - Bing images
- 抽象代数学 - Wikipedia
- 代数的構造 - 現代数学入門
- 代数的データ型とパターンマッチングと - Qiita
- 代数的構造を乗せるデータ構造の設計について - noshi91のメモ
- データ構造に乗せる代数的構造の持ち方 - shino16
- TypeClass.pdf
- 代数的データ型について | 株式会社エムケイシステム TECH BLOG
- 代数的データ型と準同型写像 - プログラムモグモグ
- 代数的データ型と初等代数学 - blog.ryota-ka.me
- 代数的データ型について #w8lt - Speaker Deck
- 抽象データ型を自作する - golden-luckyの日記
Haskell と Scala
- エヌユルさんはTwitterを使っています 「Haskellだったら単に値を持たない代数的データ型を定義して関数でパターンマッチして挙動を変える所だけど Scalaだと代数的データ型自体がobjectとしてメソッドを持てるから多態みたいな感じに書けるので どっちで実装しようか迷ってます」 / Twitter
- エヌユルさんはTwitterを使っています 「Haskellだと引数でのパターンマッチがその場で書けるけどScalaだとmatchでネストが増えるからtraitのoverrideとして書くか」 / Twitter
- エヌユルさんはTwitterを使っています 「待てよ条件が直行するからそのまま1次元で書き下すと大変なことになるのでは」 / Twitter
- エヌユルさんはTwitterを使っています 「やっぱりパターンマッチで変えるべきか」 / Twitter
- エヌユルさんはTwitterを使っています 「フラグがいくつかあって特別な奴は全部無視する」 / Twitter
- エヌユルさんはTwitterを使っています 「いやそんなことないな」 / Twitter
- エヌユルさんはTwitterを使っています 「でもこれだとかなりの条件わけになってメソッドの実装がめっちゃ重複するしやっぱりメソッド多態よりデータでの区分けにするか」 / Twitter
- エヌユルさんはTwitterを使っています 「Scalaって引数部分でタプルの分解出来ないのか?」 / Twitter
- エヌユルさんはTwitterを使っています 「case object作った時明示的に最初あたりはtraitの型であることを明示しないといけないのがもにょるな メソッドの返り値で型書いてるからそのへんは推論して欲しい」 / Twitter
- エヌユルさんはTwitterを使っています 「Dottyでenum入ったらそのへんも改善されるんだろうか?それともsyntaxだけ?」 / Twitter
- エヌユルさんはTwitterを使っています 「Haskellのdataと違ってコンストラクタに値するやつもtypeを持つのが悪いんだろうなあ」 / Twitter
- エヌユルさんはTwitterを使っています 「あーもうScalaで代数的データ型使うと一々型注釈が必要で面倒だなあ」 / Twitter
- エヌユルさんはTwitterを使っています 「組み合わせ爆発を回避するために色々条件を入れて頑張ってフィルタリングした結果 4万件の間違いデータが 120件の間違いデータに減った! 正しいデータは1つもなし! クソが」 / Twitter
- 代数的データ型 - Wikipedia
- 代数データ型の直積型と直和型の理解 - きしだのHatena
- Haskell 代数的データ型 超入門 - Qiita
- 6.pdf
- タグ付きバリアント型(代数的データ型) - iorate's blog
- 代数的データ型
- TypeScriptで学ぶ代数的データ型
- 代数的データ型とは何ですか? - Quora
- OCaml(関数型言語):Dev Basics/Keyword - @IT
- 代数的データ型と初等代数学 - ryota-ka's blog
- 代数的データ型とその双対性 - エムスリーテックブログ
- 代数的データ型 - ウォークスルー Haskell
- 6.pdf
- shapelessと代数的データ型
- TypeClass.pdf
- 代数的データ型のひみつを暴いて関数型プログラムを攻略する|IT勉強会ならTECH PLAY[テックプレイ]
- haskell - 代数的データ型は木構造で表現されるとあるが、どのような構造になるのかよくわからない - スタック・オーバーフロー
- Rust パターンマッチの網羅性 - 簡潔なQ
- Algebraic data type - HaskellWiki
- C# 9.0でHaskellの代数的データ型(ADT)的な書き方をする - Qiita
- scala - How to create ADT in Haskell? - Stack Overflow
- functional programming - ADT名。 Haskellの `Left a`とは何ですか、それからʻa`とは何ですか?
- haskell - 型をデータコンストラクターに関連付けるADTエンコーディングの問題は何ですか? (Scalaなど)。
- 関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
- scala : 機能的プログラミングのADTについて代数とは何ですか?
- 代数的データ型 - Wikipedia
- Algebraic data type - Wikipedia
- Scala 代数的データ型 超入門 - Qiita
- 何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
- 代数的データ型を使わないリスト - maoeのブログ
- TypeClass.pdf
- 代数的データ型と直和型と直積型とTypeScript - Togetter
- データ構造 – Haskellの代数的データ型 - コードログ
- 輪 (数学) - Wikipedia
- 代数的構造 - Wikipedia
- 「ADT, 直和・直積, State Machine」 - Qiita
- ワンランク上の関数型技法による Command パターンの置き換え - Qiita
- 続くといいな日記 – type family を使って再帰的 ADT をオープンにする
- D言語で,(ゴリゴリの)コンパイル時メタプログラミングでADTを実現した話 - alphakai’s tech blog
- keiichiro shikano λ♪さんはTwitterを使っています 「計算機のニーズに合わせるための型宣言は人間の認知にあっていないからしたくないけど、自分で作った代数的データ型を使い始めればそれは自分という人間の認知にほかならないし宣言するのはやぶさかでないよなあ」 / Twitter
- Nobuo YamashitaさんはTwitterを使っています 「もうすこし,そのあたりが一般的になることを期待します. が,Function typeがあるなら,それはもう,単なる認知云々ではなくて,プログラミングそのもの. 「型宣言できない=プログラミングできない」 といっていいと思いますねぇ. https://t.co/3MC73qO81t」 / Twitter
- Nobuo YamashitaさんはTwitterを使っています 「まともな型システムがあるなら,おねがい型宣言書かせてくれるよね.という気分.」 / Twitter
- 06gun_03hen_04.pdf
部分型付け
- ポリモーフィズム - Wikipedia
- resume8.pdf
- 幽霊型による部分型付けの紹介
- Swiftと3種類のポリモーフィズム - Qiita
- TypeScriptで関数の部分型を理解しよう | Kabuku Developers Blog
- 構造的部分型 (Structural Subtyping) - サバイバルTypeScript-TypeScript入門
- プログラム言語論 - 8.pdf
- 部分型付けの動作概念 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- 型システムの勉強 | 雑記帳
- 漸進的型付けの未来を考える - yigarashiのブログ
合併型
- TypeScriptの合併型と交差型ついて学ぼう
- Scalaの合併型と全称型
- 「合併型」のご紹介:Scala 3の新しい型表現(2)|Scalapedia
- (1)合併型
- TypeScriptの型入門 - Qiita
- Typescript(合併型と交差型) - 駆け足エンジニアの記録
- tk0miyaさんはTwitterを使っています 「プログラムの型付けで Union 型のことを「合併型」と呼び始めたルーツが気になっています。だれか情報お持ちではありませんか。 (適切な訳語を調べていたのがきっかけです。こちらのほうが適訳だ、という情報もお待ちしております)」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「@tk0miya 私にはルーツはわからないのですが、CやC#にあるunionは共用体という訳語に落ち着いていると思います。TypeScriptの(number | string)のような型を指しているなら「合併型」という訳語が私には一番しっくりきます。」 / Twitter
- tk0miyaさんはTwitterを使っています 「@beatnik_t5r @kaoriya コメントありがとうございます。型付け(typing)としての union と、C の union(共用体) とは異なる概念だという認識です(Java は詳しくないのでコメントできません)。前者はメモリ領域を共有/共用してはいませんし、共用型という訳は適当ではないと考えます。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@tk0miya @igrep ルーツはわかりませんが、とりあえずこの論文は1980です。 https://t.co/oI3csWAOP5」 / Twitter
- IPSJ-MGN211109.pdf
- tk0miyaさんはTwitterを使っています 「@tomooda @igrep ありがとうございます!古くから使われていた訳語だろうと思っていたのですが、1980年からとは!文字通り歴史を感じますね。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「本当に脈絡のないただのリマインド: 直和型 (sum type) と合併型 (union type) は別概念です。」 / Twitter
型安全な行列計算
- shapeless で型安全に行列の積を計算する - Qiita
- [1512.01898] A Simple and Practical Linear Algebra Library Interface with Static Size Checking
- akabe/slap: BLAS and LAPACK binding in OCaml with type-based static size checking for matrix operations
- 実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
- 動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development
名前付けの遅延
- アイドル焼肉さんはTwitterを使っています 「僕が今やりたいことをあえて言語化すると意味付けの遅延なのかなって気がしてきた。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「性質と実体、認識論と存在論、統語論と意味論、代数と空間のような双対性はいろいろな領域にあって、これらのうち前者から徐々に後者を導いていくっていう方法論をソフトウェア開発の分野で構築できないかなって考えている。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「プログラミングではとにもかくにも名前をつけることは崇高な行為と見なされがちで、それ自体は別にいいんだけど、とにかく意味付けを急がされる感じがする。もっと無味無臭の構造があっていいと思っていて、ユーザが使い続けることによってそこに意味が生まれてくるのではないかと。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「「無味無臭の構造」っていうのは具体的な言語機能でいうと、たとえば構造的部分型とか無名関数とかそういうのです。それ自体にどういう意味があるかはわからんけど、とにかくその構造には価値があるみたいなやつ。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「念のために言うと、意味論の側を軽視してるつもりはまったくなく、構造よりも意味のほうが見出すのに時間がかかる(ことが多い)っていうだけです。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@a_suenami % Prolog 何が書かれているか想像しながら読むことになりますが. 'スケルトン的なコードはどうなのでしょうか'( 'https://t.co/vtuEFoqyhC') :- 何が書かれているか想像しながら読むことになりますが.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog スケルトン定義はこちら '1'([_1|_2],[_3|_4]) :- select(_3,[_1|_2],_1,[_5|_4]), forall(member(_6,[_5|_4]),_6 @>= _3).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '問題はこれで何をやっているか判るかですが、 select forall @>= この三つの組み合わせで最大値か最小値絡みであることは瞬時に分かる。 次に、selectが4引数なので、最大値または最小値となにかを交換しているのだろうなと。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、 https://t.co/Ay9pM3DV0F の方は どうかと云うと、 「ならびの最小値要素を求め先頭要素と入れ替える」 より後は読みません。 これは本気の話しで、一度書かれたPrologプログラムの本体部分を読むことはありません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '既にtwitter上で度々記した通り、 述語名がABCでA,B,Cがおよそ句を意味するとき、述語の分割は倒置を省略すると、 ABC :- A,B,C. ABC :- AB,C. ABC :- A,BC. となり、ABCでその内容を一望できてしまいます。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '実際には ABC :- DE. と再定義される場合もあります。再定義されれば、ここから始まるわけですから、ABCを読むだけでは情報が不足である心配は大いにあるわけです。 ですから、あくまで作法に従って書くことに努めればという条件付きの話と思って下さい。'.」 / Twitter
動的型
動的型付け
動的型付け
動的型付け
- Miura HidekiさんはTwitterを使っています: 「今日ようやく、よさげな方法を思いついた。もう少しブラッシュアップしないといけないと思うけど(特にメモリ管理部分)、これでなんとかできるでしょう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「型は全てポインタ2つ分のメモリ領域で表現する。整数や組み込みクラス、ユーザ定義の型はそれぞれその型の情報を書きこんだ領域をとりそのポインタがidになる」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「このidだけではほとんど役に立たない。配列なんかは要素の型も分からないし、整数の値の制約なんかもほしい。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そのために制約型(篩型の方が正しいのかな?)というRubyには無い型をこっそり導入する。これは内部では普通の型の様に使うことも可能。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「制約型はメソッドとその戻り値の型のペア(例の2つのポインタで表現する)。メソッドは全ての型をカリー化して0引数のメソッド内部で作ってそのポインタをidとする。型は今節命令ている型表現を再帰的に使用する。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「例えば、if a < 0 という条件式には 内部的に (lambda (n) (< n 0))みたいな意味のカリー化されたメソッドを生成して例えばこれが$aとすると、 if a < 0のthen節は [$a, TrueClass]みたいな制約型がaに付くみたいな感じ」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「メモだから誰かに分かってもらうこと意図していないのでごめんなさい」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「if文みたいなのは制約がレキシカルなんだけど配列の要素(:[]の型として表現)はダイナミックだから表現変えた方がいいのかな。多分変えるだろうけどまだこの辺は固まっていない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そして、Rubyはunion型もないと話にならないし、制約型をくっつけるのもunion型になるのでもちろんunion型も用意する。union型は2つのポインタを使ってまさにLispのようなリスト型にする。こうするととで、レキシカルに制約が加わったら先頭につなげればいいし、そこから離れるなら切り離せばいい」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「制約がつく型と制約がつかない型は制約以外の所は共有出来るからメモリ効率もよさそう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「配列みたいな奴は要素の制約が出来たら純粋な配列型ではなく制約が入ったunion型を配列型の表現として使えば良いことに気づいた。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「制約型は色々面白そうな使い方が出来そうだけど、一般化すると簡単に計算量が爆発するから<とか[]みたいな決められたメソッドでしか使え無さそう。制約型に間すりいいアイデアが生まれるといいけど」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「後、制約型の実装として引数に元の型をいれるとそのメソッドの戻り値の型が返ってくるような関数を動的に生成することを考えているけどこれがいいのかももうちょっと考えないとだな」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「とりあえず、純粋な型情報や制約の情報を16バイトアライメントにすることで2つで8bitのメタ情報が得られるのでよき」 / Twitter
型の表現
- Miura HidekiさんはTwitterを使っています: 「型の表現について悩んでいる。配列・ハッシュの要素の型と数値型の取りうる範囲のような情報を篩型の述語の形で統一的に扱うことを考えていたが、要素の型はダイナミックスコープだし数値型の取りうる範囲はレキシカルスコープなので無理があることに気づいた」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「mmcのように範囲に関する情報は変数ごとに持つレジスタオブジェクトに入れて、要素の型のようなものは型オブジェクトに入れるのが安牌なのだがこれだと遅いんだよね。つらぽよ」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「昔懐かしいOHPのように型にいろいろな制約を重ね合わせたり任意の制約を取り外したりするデータ構造が欲しいのだよね。具体的な構造が思いつかない。あと、制約の厳しさが半順序で比較できることも必要。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 グラフの頂点に制約を置くのではダメなんでしょうか: 有向非巡回グラフは様々な情報をモデル化するのに使われる。有向非巡回グラフにおける到達可能性は半順序を構成し、全ての有限半順序は到達可能性を利用し有向非巡回グラフで表現可能である。 https://t.co/W4jDBc9aGG」 / Twitter
- 有向非巡回グラフ - Wikipedia
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 ありがとうございます。DAGはそれなりに強力なデータ構造なので可能な気がします。問題は効率よく実装できるかですがこれは即答できません。ちょっと考えてみます。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 主に考えるのは何の制約の無いグラフ構造に対してDAGにするメリットですね。それを考えることでより良い構造が思い浮かぶかもしれません。」 / Twitter
篩型
- Miura HidekiさんはTwitterを使っています: 「型をメソッドの型制約を順序関係とするLatticeで表現出来ないだろうか。こうすることで、篩型みたいなものも自然に表現出来そうな気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「配列のオーバーフローチェックを静的に行うには篩型は欠かせないしな」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「メソッドの型制約にも型が出てくるのでナイーブに考えると循環論法になるからその辺考える必要があるな。ポインタによる共有が必要か」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「このあたり、メソッドを任意にすると実装できるような気がしない。メソッド[], []=, <, >, ==あたりを特別扱いすべきかなーと思った。この辺のメソッド名に対してパラメータ引数で制約のきつい順に順序関係を設けるといい感じになりそう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「このあたり数学的に抽象的な概念にマッピングできそうだけど、ガチな数学を避けていたことが悔やまれる。」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「篩型については - Liquid types [Rondon, Kawaguchi & Jhala 2008] - Hybrid type checking [Knowles & Flanagan 2010] あたりを読んだらいいと思います」 / Twitter
暗黙の型変換
- 市川 真一さんはTwitterを使っています: 「@miura1729 動的型付けの場合、型のメンタルモデルが要らないという利点を挙げる人がいますが、動的型付けでも、ある時点のスナップショットを見たら何らかの型付けがされているわけですよね。型無しじゃない」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 はい、型無しじゃないですね。個人的には型を書くとその構造に固定されちゃうのが嫌だというのがありますね。コンパイラの自由度を高めたいと。もちろん、静的型付けでも定義した通りにコンパイルしなくてもいいわけですけど。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 動的型付け言語で、浮動小数点数を整数として parse する関数を適用してもエラーにならない等の場合を問題視する向きもあります。この手の批判を無力化する方法はありますか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 浮動小数点数を整数としてparseするのは暗黙の型変換の話だと思うのですが、この辺は動的・静的型付けとは直交する話だと思います。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 暗黙の型変換は、動的型付け言語であっても無効化できたほうが良い場合があると思いますか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 暗黙の型変換は出来る限りない方がいいと思います。全くないと困るので、Rubyの様にカスタマイズできるのがベストだと思います。効率上げるのが大変ですけど https://t.co/udR95ybIqi」 / Twitter
- Numeric#coerce (Ruby 3.1 リファレンスマニュアル)
- 市川 真一さんはTwitterを使っています: 「@miura1729 なるほど、ありがとうございます」 / Twitter
仕様としてのテスト・ホーア論理
- 市川 真一さんはTwitterを使っています: 「@miura1729 型を書くことが仕様を定義することにつながるという趣旨の話も見かけます。もし、そうであれば、動的型付け言語における仕様の定義とは、どのようなものでしょうか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 動的型付け言語だとユニットテストを多用するでしょうから(静的型付けでももちろんやりますけど)、ホア論理とか相性がいいかもしれないですね。よく出来た動的型付け言語の仕様の定義はテストって感じじゃないでしょうか。私は出来ないですけど...」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 なるほど。コード本体を書いてみて、後付けでテストを書くこともあると思いますから、先に仕様としてのテストが完成してる必然性もないとは思います」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 動的型付け言語の正しい作法はテストと空のメソッドを書いておいて、あえてテストを失敗させてからメソッドをテストが通るように書いていくものらしいです。(私にはできない...」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 言語処理系みたいな複雑なものをテストファーストで書ける人は、繰り返し同じような作業を経験してそうですね。日本の IT の現場で作る、数ヶ月程度で完成する規模の小さなアプリなら、難易度も少し低いのかも。もっとも、必ずテストが成功するように書いてしまう人もいるみたいですから、難しい」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 言語処理系みたいなものなら実験用の試行錯誤なら別ですけど、細かいバグが入りやすいからテストファーストの方がいいような気がします。そうでなければ静的型付けで書けば何度も型定義を繰り返すことになりそうです。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 そうですね。適用可能なプロジェクトなら、やったら良いと思います。大局的な設計とは異なるという記事が流れてきたので同封します https://t.co/zeDzRWpPUp」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 興味深い記事をありがとうございます。TDDはちょっと考えると完璧な手法ですね。ちょっと考えると完璧な手法と言えば構造化プログラミングが思い浮かびます。プログラムを細分化していけば全てが理解の範囲内のバグの無いプログラムが得られるという考え方は完璧そうですがそうではない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 TDDもこれと同じなのかもしれません。ただ、私はTDDを実践したわけではないですからTDDが完璧なのかどうかは分からないです。」 / Twitter
高速化
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 具体的に値が問題になるもっと解像度の細かい問題ならいいのですが、より高速に抽象解釈ベースの型推定には使えないかなと思いました」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 動的な型付けと言っても、型そのものが動的であることが、どれほどあるでしょうか。多くの場合、既知の定義済みの型を行き来しているだけのことも、珍しくないと思いませんか。もし、グラフで既知の型を表現するならば、型推定は既知の型と同型であるグラフを判定することに帰着されそうな気もします」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 大体はそうなんですけどそうじゃなくて何度も繰り返さないといけないばいいもあります。前プロジェクトのmmcで結構複雑な場合でも型を推定できることは分かったのですがとにかく速度が問題になることがわかりました。いろいろプロファイルを取ってみると型を表現するオブジェクトのアロケート 続」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 が主にオーバーヘッドになっていることが分かっています。この辺を出来る限り小さくすることが高速な動的型付け言語の必須な条件になると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 ちなみにもう1つのデータフロー解析の高速化はビット演算とSIMD命令を駆使することで何とかなりそうな目処がついています。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 メモリ確保そのものじゃなくて、例えばメモリ確保済みの領域であっても、型の構築や検索に時間がかかると」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 微妙に条件が異なる型が沢山出来るので全部アロケートしないといけないのです。(例えば if a < 0という命令があったらそのthen節はFixnum[a < 0] という型をアロケートする必要があるとか」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 それで簡潔データ構造の話につながるのですね」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 ですです」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 やはり、この本は確認しておいたほうが良さそうな気がします。簡潔データ構造以外の話題についても: 日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:書籍案内|技術評論社 https://t.co/QaANLNYRV9」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 なるほど。これ持ってったっけ?ちょっと探してみます。あと、共立の簡潔データ構造の本は欲しいなとかねがね思っています」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 これも簡潔データ構造の話が書いてあります: 高速文字列解析の世界 - 岩波書店 https://t.co/Izg7U4s1zu」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 おお、そうですか。これもよさそうですね」 / Twitter
グルー言語としても速度がほしい
- κeenさんはTwitterを使っています: 「グルー言語としてもやっぱり速度は欲しいと思っていて、書きやすくするためのグルー言語なのに結局グルー言語側でも工夫が必要ならその言語使う意味ないじゃんってなる 参考: Pythonで数値計算のコツ:for文書いたら負けかなと思っている – はむかず! https://t.co/0cYfOIFOhT」 / Twitter
- Pythonで数値計算のコツ:for文書いたら負けかなと思っている – はむかず!
- κeenさんはTwitterを使っています: 「参考その2: Common Lispが機械学習に向いていると考えるこれだけの理由 - masatoi’s blog https://t.co/VGB3zyYsNE」 / Twitter
- Common Lispが機械学習に向いていると考えるこれだけの理由 - masatoi’s blog
- mod_poppoさんはTwitterを使っています: 「「Pythonより〇〇言語のほうが速い」みたいな主張にはあまり意味がないと思っていて、本当に比べないといけないのは言語自体の速度じゃなくてnumpyとかPyTorchとかそういうレイヤー」 / Twitter
- yohさんはTwitterを使っています: 「TypeScriptの場合はJavaScriptにかぶせた形だからそう思えるのかもですが、ベースが静的型付け言語でも「何でも入れられるany型」を持つのと意味的には同じなんじゃないかなーとか。いずれのケースも動的型の不一致により実行時例外が飛んだり不思議な踊りを踊ったりしますし。」 / Twitter
- mattnさんはTwitterを使っています: 「静的型付言語は型システムを入れる事で変数への代入や関数適用を禁止する事だと思っているので、any を介して定義とは異なる物を渡せてしまう動作を許してしまっているのに静的と表現するのがモヤモヤする、という意味です。」 / Twitter
- mattnさんはTwitterを使っています: 「例 https://t.co/k4K8R6OZqT」 / Twitter
- mattnさんはTwitterを使っています: 「>変数代入、変数束縛、関数適用、型変換といったプログラム記述箇所での型安全性がチェックされる。型エラーの場合は、コンパイルエラーに繋げられることが多い。 ここがモヤのポイント。 https://t.co/J1ZG6lJkWQ」 / Twitter
- 静的型付け - Wikipedia
- _ko1さんはTwitterを使っています: 「動的も静的も色々あって、もうどうせいっちゅうんじゃという」 / Twitter
- yohさんはTwitterを使っています: 「結局のところ動的型付け⇔静的型付けは0/1概念じゃなくて、グラデーション的に連続したスペクトラム的なモノなんじゃないかなぁ。あとは怖い人にお任せ:D」 / Twitter
- mattnさんはTwitterを使っています: 「@yohhoy 勝手に僕の所に怖い人を招集させないで!」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@zehnpaard それも考えたのですが、IPLのインパクトの前に忘れていました。でも、チューリングマシンでも一階述語論理でも同様に型はないわけで、たまたまLispがλ計算のモデルを使ったのですが、Lispが存在しないとこれらも消す必要があってコンピュータそのものが存在しないのでは、と思わなくもないです」 / Twitter
- hisaketさんはTwitterを使っています: 「n歩譲って動的型タグのことを型と呼ぶのは良いとしても、動的型検査のことを型システムと言うのは明らかに用語の使い方ミスってない?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcの経験で動的型付け言語で抽象解釈みたいなテクニックで型付けを出来る限り高速で行いたいなら、共有されたポインタをガンガン書き換える感じになるのでRustはとっても分が悪いだろうなって凄く思う >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、共有されたポインタをガンガン書き換えるのが本当に最適解かはよくわからない。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「共用する部分の管理は参照カウントよりそれなりに洗練されたGCアルゴリズムの方が効率が言いような気が凄くする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ランタイムがでっかくなるとかチャンク内のメモリマップが必要になるとか色々課題はあるわけだけど」 / Twitter
- ネイティブコードを吐く動的型付け言語は存在しますか?また技術的に可能ですか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
- Miura HidekiさんはTwitterを使っています 「最近の動的型付け言語の処理系の売りってJITになりがちなんだけど、本当にそれだけなのか?という疑問は関係者は持つべきだとは思う。他に有効な解を私が持っているわけじゃないのだけど。でも有効かもしれない解はある程度思い浮かぶ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付け言語でJITをコンパイラを実装してパフォーマンスを上げるのは意外と大変。がんばれば確かに速くなるのだが、速くなるかは自明ではない」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付けに限らず処理系で実アプリケーションで効いてくるのはコンパイラよりランタイムだと思うのだけど、あまりランタイムの改良をアピールすることって少ないな。RubyやJavaはGCの改良をアピールするけど(それは正しい)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ターゲットプログラムによってカスタマイズされたランタイムを生成する処理系って効果ある気がするけど、私は知らない」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 Stalinはランタイムライブラリごとグローバル最適化をかけてたと思います。ただ今時はランタイムも大きいので時間がかかりすぎるでしょうね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana Stalinすげー。ランタイムが大きくなってもカスタマイズのポイントを絞れば可能だと思います」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語の売りって昔から今も、Cみたいにキャストすればなんでもありな自由度をキャストなしで書けることとデータ側にintrospection用というかメタ情報を持っていてどこからでも参照できることの2点につきると思うんですが最近は違うのでしょうか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@HPetegari はい。でもそういう機能を使ってないときは、そういう機能を持たない言語と同じくらい速く動いてほしいですよね。そういうのを可能にする技術がすこしずつ登場していると思います」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintegerをbox化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではbox化せずに性能的に遜色なく処理しているらしいという印象です。その当たりを詳しく知りたい。実は最近は動的でも内部で型推論してる?」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintergerをボックス化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではボックス化せずに性能的に遜色なく処理しているらしい。その当たりを詳しく知りたい。動的でも内部で型推論して最適化してる?」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 型は書いても良いと思う派ですが、最初に書いた型から、時とともに動的に変化しても良さそうな気もしています。C コンパイラを書いていて、コンパイルする過程で出来る高水準中間言語を見ていて、これの扱ってる型情報を動的に変更できれば良いのだろうという印象です」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が時ともに変化するを許すか否かは中間表現をSSAにすると余り意味の無いことに感じます。もちろん、PHI命令でユニオン型が生じてしまうリスクはありますが。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 プログラマとかアプリ利用者から見て、型が動的に変わることに意味がある場合もあると思います。たとえば、SQL で動的にテーブルのスキーマを変更できるような感じで、通常のプログラミング言語についても同様の使用感が得られます」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 それならユーザはあえて型を指定せずに処理系に任せるような言語仕様にした方がいいような気がします。たとえばJuliaのように」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 型が不要なら、JSON Schema みたいなものって不要なはずだと思うのですが、存在していますよね」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 Julia は調べてみますが、私は I/O を中心に考えてるので、JSON Schema みたいなものは必要だと思っています」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が不要ではなく推定できる範囲は処理系に任せましょうですね。JSONで型の推定は無理に思えます」 / Twitter
- ⿻あいや⿻ 技術書典11新刊🎉 数学と女の子たちの本「せつラボ」さんはTwitterを使っています 「動的型付き言語の最大の弱点 (プログラミングの中心が未定義で回る) https://t.co/5JGEH9kf0d」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かねがね高速なインタープリタをどうするか考えているが、私もLLVMのようなフレームワーク(ただし明示的な型指定は一切ない)を作るべきではないかという方針に傾いている。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「型情報などの拡散やユニフケーションなどは重いからCなりRustで記述して、それらのポリシーを記述するためのAPIをmrubyに提供するような形がいいのかなって思っている。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「いずれにしても、任意のVM命令でその命令が生成した値の影響を受ける命令のリスト、それが現フレームを超えるのかはAPI一発で得られるようにすべきである。」 / Twitter
- uint256_tさんはTwitterを使っています 「楽しそうね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t あれこれ検討しているときが一番楽しい」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 実現できた時も楽しい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t 確かに!」 / Twitter
- uint256_tさんはTwitterを使っています 「動的言語って適当に書いても動いているように見えるから初心者向けって言わがちなのかな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「カチッとした型システムの乗ってる計算機言語をそもそもプログラムをほぼ書いたことのない人が学ぶと型システムの意義を感じにくい問題(なんとなく,操作的直観と静的検査とが或る程度別個でいてかついずれも学べるようになっているのが望ましそうには思える)」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t 動的言語というか、インタプリタだとビルドとかしなくていいので初心者には優しいかも。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 結局コマンドを叩かないといけないなら、インタプリタでもコンパイラでもあんまり変わらないんじゃないかと思ってしまいました」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t まああなたにとってはそうでしょうけれども。 あとはREPLとかあると一行一行動作を見れるので初心者向けには良いかなあ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 確かにREPLは便利ですね。忘れてました」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t あとはプログラムが書いた通り頭から実行されるのとか。main関数って何、とか悩む必要ないので」 / Twitter
REPL 等
- uint256_tさんはTwitterを使っています 「大きなプログラムをインタプリタ(スクリプト)言語で書く意味をいまいち理解できていないんですよね」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
- uint256_tさんはTwitterを使っています 「@__gfx__ 言語自身ではない所に問題があったんですね」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t そうそう、むしろ現代的な言語だとあまり意味のある区別ではない気がしますね。 あとは、スクリプト言語=インタプリタ言語=動的型付き言語、みたいな昔の処理系の典型的な実装に引きずられた定義もまだ生き残っているかもしれません。」 / Twitter
- uint256_tさんはTwitterを使っています 「@__gfx__ 確かに。Crystalとかはスクリプト言語っぽいけど静的型かつコンパイル型でしたね。」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t TypeScriptも静的型かつコンパイル言語なのに実行エンジンが動的型のスクリプト言語、しかもそのスクリプト言語はしばしば実際に実行するのはJITしたマシンコード、という具合ですしね。」 / Twitter
- _ko1さんはTwitterを使っています 「@uint256_t 前提によっていろんな意見がありそうです。 例えば、実行中にコード差し替えがやりやすいとかはあるかもしれません(試行錯誤しやすい) 典型的にはreplでゴニョゴニョしながらなんかするとか」 / Twitter
- uint256_tさんはTwitterを使っています 「@_ko1 確かにREPLは便利ですね」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t 動的な言語(型やメソッドが実行時に変化する)の実行のためですかねえ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 それは確かにそうですね。(大きめのプロダクトとかでインタプリタ言語を使う意味を考えていました)」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t Railsみたいなのは巨大だし、かつRubyの動的な性質をフルに活用していますね。 静的型付け言語の型の柔軟性が飛躍的に上がったので、遅い動的型付け言語を巨大プロジェクトで使う意味というのはどんどん縮小している気がする。」 / Twitter
- uint256_tさんはTwitterを使っています 「コンパイラ型かインタプリタ型かなんて関係なくて、ただ偶然好みの言語がどちらかの型だった、ってだけなのかもしれない」 / Twitter
Ruby
- Miura HidekiさんはTwitterを使っています 「Rubyの処理系を書いた者はすべてCRubyの性能の良さにひれ伏すものだ (CRubyの作者は除く」 / Twitter
- 僻地のプログラマさんはTwitterを使っています 「@miura1729 Rubyみたいな高機能な言語のVM、仮想マシンの単一の命令が巨大なのでJIT案外効果ない説提唱してます。仮想マシンのランタイム高速化のほうが多分効きます」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t だいたいそうなんですが、命令のうち巨大で遅いのはsend命令(メソッドを呼ぶ命令です)。もちろん、だてに巨大で遅いのではなく、理由があるのですが状況を限定して速くする(またはインライン化して無くす)ことが可能です。RubyでJITコンパイラで速くなる大部分はこれだと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t 逆に言うとインライン化(Cで書かれたメソッドとか算術演算も含む)しないJITコンパイラは多分インタープリタより遅い」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t その為、インライン化や部分特化さえすればインタープリタでもJITコンパイラとそん色ない処理系が出来るのではないかと思っています。今取り組んでいるプロジェクト(1行もコード書いていないけど)はこれを実証するのが目的です。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @kmt_t それならジェネリックな巨大VM insnをスペシフィックな軽いVM insnに展開するようにしたらVMのまま速くなったりしないかなと思ったんですがそこまでやるならネイティブコードまで展開しちゃえばいいのかな。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「共有結合はcovalent bond、というのをおぼえた。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @kmt_t たとえば、:+というメソッドをFixnumとFloatを優先する型チェック命令を生成すると言った最適化は考えられますが、このアプローチの本当のうまみは動的な情報を得てon the flyで命令を生成することではないかと思っています。静的に型が分かると色々やれますけど。」 / Twitter
Nil
- 島鉄雄さんはTwitterを使っています 「動的型言語で、nilチェックを強制するとしても、結局その箇所を実行しないと何も分からない訳で、それでも強制するとしたら 「今はnilじゃないけど、この型はnilが入る可能性があるから、nilチェックの無いコードをエラーにします」 と言われてエラーで終了するw 動的型のお手軽さが台無しになるかも」 / Twitter
- 島鉄雄さんはTwitterを使っています 「エラーにするのはやり過ぎかもしれないから、警告にしたとしても、十分有益な情報だろう。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「例えば、要素10の配列を作成して、まだオブジェクトを格納してない状態にしたい場合、nilを入れざるを得ない。 これは未初期化ではなくて、ちゃんとした初期値だ。 なので、必要なのはnilを無くす事じゃなくて、動的型言語でも、その要素を使う時にnilチェックを強制する仕組みだろう。」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「動的型付けでNilが無い言語があったらいいのに。 そうすれば素人でも扱えるし、チーム開発に導入しやすい なんか静的型言語は扱いづらいという人が多いらしいので」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「僕はnullのある言語でチーム開発すべきではないと思っている。 大抵そういう言語では「ここでnullになるのはバグですか?仕様ですか?」という混乱が生じるので Web開発ならReact+ReasonMLが第一候補かな」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「それ以外に中々ないっすよね あ、Elmか」 / Twitter
histric-1
- Shiro KawaiさんはTwitterを使っています 「REPLで実行する→エラー出る→データはメモリ上に残ってるので出力ルーチンだけ書き直して再実行 https://t.co/qWsCAGMuu3」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「動的型の言語でクソ重い処理をしてその結果をファイル出力するプログラムを書き,ファイル出力のコードにミスがあったためにクソ重い処理をした後に動的にエラーが出て何も得られず終わったときの瞬間最大感情消失速度は光速をも超えると言われている.」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「もっと言うと、メモリ上のデータの方がコードよりも長生きするという使い方をしないと動的にしてる意味が無いと思う。メモリにデータを載せたまま、コードが扱う型を変えれば、データの型も変わってくれる、という。」 / Twitter
- Toru HisaiさんはTwitterを使っています 「@anohana なんかそれってデータベースのコンソールで SQL を叩くのに似てますね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@torus 永続的なデータがあってそれをいろいろいじりながら考えるイメージですね。伝統的なLispのワークフローはやっぱりそっちだと思います。GaucheはREPLでのエラー時にローカル環境を捨ててしまうのが不便なんですが、いずれ何とかしたいと思ってます。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 動的型付け指向だとメタプログラミングのレイヤを縮退させて考えがちかも。例えば「任意のサイズのタプルをシリアライズ/デシリアライズするコード書きたいじゃん」というのは動的型付けだと同じレイヤで書けるけど静的型付けだと型をパラメータとしたひとつ上のレイヤになる、みたいな。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana ええ,lisp/schemeだとリストとタプル区別ない感じで,イテレートできるかどうかはアタイ(値)が決めるわみたいなね.」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 ちょっとおもしろいのは、CLOSだとスロットごとに名前を指定したアクセスしかできないけど、メモリ上はどうせスロットの列で持ってるんだからイテレートさせろや、とPaul Grahamが言ってたやつ。抽象化の壁をどこに設定するかの違いかなあ。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana あれれ,MOPってスロットの登録部分とか(クラス継承時のメソッドで)手を出せたような記憶があるんだけどできないんでしたっけ??」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 直接インデックスで低層にアクセスする仕組みは規格外じゃないかな。実装によっては可能だけど(Gaucheも内部的には可能)。あと自分でベクタをストレージにしたクラスをMOPで作ることもできるけど、ネイティブオブジェクトに関しては…」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana あーそうか勘違いかも. AMOPではそのあたりアクセスしてた記憶があったんだけど,最初の部の説明はもしかしたらCLOSの仕組みを実装で説明してたからMOP使う側からではなかったかもしれないです...うう.」 / Twitter
- 島鉄雄さんはTwitterを使っています 「> 動的型付け言語には初期の開発スピードが速いという微々たるメリット 静的型言語はコンパイルが通らないと実行する事が出来ないけど、複数(5とか10)人以上で開発してると、ソースを更新した時にコンパイルが通らない事がたまにある。 それが納期間近だと殺意すら芽生える事があるw 続く https://t.co/TGAnbONggS」 / Twitter
- 島鉄雄さんはTwitterを使っています 「あと、静的にバイナリを作成すると実行中にコードを修正して、停止箇所から再開するという事もやりにくくなる。 要するに静的型のメリットは重要だけど、動的に実行出来る(担当箇所以外でエラーが有っても実行出来たり、実行中にコードを変更出来る)事も非常に重要になってくる。 続く」 / Twitter
- 島鉄雄さんはTwitterを使っています 「なので、最近のゲーム開発はゲームエンジン上で、C#を自前のVMを使って動的に実行出来るようにしてる事が多くなってる。 これは動的型ではないけど(C#なので)、動的である事のメリットは計り知れないと思われる。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「コンパイル通らないコードを書いてはいけない縛りをすると、一度公開したインターフェースは二度と変更してはいけない事になる。 なので、インターフェースの実装者は変更した時に、ソース変更しといたよと言って他人のコードをいじる事になるけど、そこは今まさに自分がいじってる最中とかある。 https://t.co/EaLpRDGR6H」 / Twitter
- 島鉄雄さんはTwitterを使っています 「.NET&Windowsプログラマのためのデバッグテクニック徹底解説 だと、 > チーム全員にドーナツを奢らせるw 多人数開発だとコンパイルエラーはどうしても避けられない。 https://t.co/EaLpRDGR6H https://t.co/qouwp80Bvp」 / Twitter
- 島鉄雄さんはTwitterを使っています 「それを突き詰めると、バグを出すコードを書くのが悪いってところまで行きついてしまう… 間違いなく正論ではあるけど… https://t.co/EaLpRDGR6H」 / Twitter
- 島鉄雄さんはTwitterを使っています 「動的型言語の方が、動的に開発する環境が整ってるのは間違いない。(一例として、ブラウザに備わってるJavaScript用のデバッグ環境とか) なので、後は型の整合性をチェックする仕組みがあればいいだろう。 TypeScriptは大規模なものだけど、RubyやPythonも型宣言が出来るからそれで十分だと思われる。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「動的型言語(RubyやPython)は、型宣言を全部ちゃんと書いて、エラーも全く無くなったからと言って、Cと同等の効率の実行ファイルを作成出来る訳じゃない。 そこが静的型言語を越えられない壁だろう。 逆に言うと、型のエラーが無い時にCと同等の実行ファイルを作成するコンパイラが有れば究極だろう。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「そう考えれば、RubyやPythonはまだまだこれからの言語だと思うけどね。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「少し前に似たツイートをしたけど、軽くまとめると、静的型言語の弱点は多人数(5〜10人以上)での開発で、コンパイルが通らない事が起きたり、フルビルドが掛かるとPC1台の場合に30分以上掛かる事がある。 (分散ビルドで解決出来るけど、それでも5分程度掛かるだろう) 続く https://t.co/0rATXeJKsa」 / Twitter
- CubbitさんはTwitterを使っています 「動的型付けな言語を好む人が何故それを好んでいるのか、うまく言語化されたものを未だに見たことがないので、誰かに書いて欲しいです」 / Twitter
- 島鉄雄さんはTwitterを使っています 「だから、ゲーム開発みたいにイテレーション回数がクオリティに直結するような場合は、動的型言語が好まれている(いた)。(Luaとか) しかし、型のメリットも必要だから、最近はC#のような静的型言語を動的に実行できるようにしている事が多いだろう。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「Emacsの70%はLispで出来てるけど、それでも本体はCで書かれてるから、1行書き換えただけでもコンパイルして起動し直さないといけなくて、これがスゲー時間が掛かる。 (自分のやり方がまずいのか…?) だから、Cの方はいじる気になれない。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「結局、動的型⇔静的型、じゃなくて、Haskellの様な暗黙の型変換が無い代数的データ型⇔それ以外、という構図なんだよな。 動的に実行(修正・変更)が出来るという事自体はメリットしかない。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「複数人開発でコンパイルエラーが起きる事例 1. 条件ビルド 2. ソース上げ忘れ 1.はreleaseとdebugでビルドを分けてて、debugの方で関数の引数を追加したのに、releaseの方のソースを直し忘れるとか。 どっちも当人の環境ではビルドが通ってるので気付かない。 CIでかなり予防出来ると思われる。」 / Twitter
- jssst-ss-2021.pdf
- Miura HidekiさんはTwitterを使っています 「1990年後半perlがWebでメジャーになるまでLispをはじめとする動的型付き言語がおもちゃ扱いされていた時代を知っている者としては再び動的型付けが見直される(おそらく今とは違う形に変わるだろうけど)未来が想像出来る」 / Twitter
- しろやまさんはTwitterを使っています 「ここ何年か確実に、静的型付け言語は推論が強くなって型の恩恵を受けつつ書き味がよくなり、反対に動的型付け言語は型注釈をサポートすることが多くなってきて、進化における「収斂」のような現象が起きてるのが興味深いよね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 動的型付けっていうか、インタプリタがおもちゃ扱いだった気がしますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda それはありますね。BASICとかもなんだかんだ言っておもちゃでしたしね。やはりJITコンパイラの技術が発明されてからでしょうかね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「正確には1980年代の後半にあった第二次AIブームの時にLispやPrologなどの動的型付け言語が脚光を浴びた時があったけどまあ一部だったでしょう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「結局、プログラミング言語については今がどんなに勢力があってもそれが今後どうなるかには全く関係ないってことがこの手の話を長く見てきた年寄りの感想です。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 動的型付け言語で、規模の大きなシステムを組む際に、最低限これを準備しておけば非常に魅力的な環境を体現できるというのがあれば、コメントいただきたいです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 とりあえず、Webの黎明期を考えると別の領域の問題で必ずしも規模は大きくないかなと思います。」 / Twitter
- 神速さんはTwitterを使っています 「動的型付け言語はmockが楽なのでテストを書きやすいし、単体テストを素早く実行できるメリットはある。 まぁ、どっちもメリット・デメリットあるので、どちらも書けるようになって、案件の特性にあわせて使い分けられるべきじゃないかな。」 / Twitter
- kmizu_v2さんはTwitterを使っています 「これはあくまで私見なのですが、動的型付き言語が流行った時代には、特に、主流の静的型付き言語がそこまで柔軟でなかった(パワフルでなかった)という背景も考慮する必要があるかなと思います。現代は、型がパワフルになったし、メタプログラミングも静的に(マクロ等)でやることができるから、」 / Twitter
- kmizu_v2さんはTwitterを使っています 「ただ、一方で、いったん普及した言語はそうたやすく消えないし、コミュニティも変化していくので、部分的に静的型を取り込もうという動きが多くの動的型付き言語(Ruby 3、Python 3、JS -> TS)で起きているのかなと。Gradual Typingのようなものの発展も関連してそうですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「逆に、静的型付け言語の知見を取り入れた動的型付け言語が再び席巻する可能性もあるってことだな。1980年代までのLispを考えるとありえる」 / Twitter
- sumimさんはTwitterを使っています 「ぱっと思いつく範囲でSmalltalkが人気動的型言語と少し違う点は ➀原則として変数宣言が必須なのでタイポはある程度検知可能(ただしワークスペース変数は例外なのでこれは便利な反面、他言語並みに苦痛を伴う) ②デバッガーそれ自体が独立したIDE(な…何を言っているのかわからねーと思うが)続く」 / Twitter
- sumimさんはTwitterを使っています 「③基本、簡易オブジェクトストア内でのプログラミングみたいなものなのでIDEがシンプルな仕組みながら多機能&IDE無しでも全情報にアクセスできる(広い意味で➀もその範疇) …あたりだろうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そう言う意味なら、Rubyでも最初の代入(正確に変数の出現)が宣言で未使用ならワーニングが出るから一緒だと思うんだけど >RT」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 retrun で何の警告もエラーも出ないの辛い...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki あ、たしかに。retrunというメソッド呼び出しととらえられますね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型付け批判には「完全に型をあわせるパズルを解くまで実行させてくれない」みたいなのがあるけど、それは必ずしも当たらない。例えばVDMの型検査は、型が網羅的に一致していなくても実行可能な値が1つでも存在していれば(共通部分があれば)型エラーにはならないし実行可能なように設計されている。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そして処理系の作り方次第で、動的型付けのような柔軟な実行が可能。例えばViennaTalkでは、評価実行の最中に型の定義を変更することさえ可能だぜキリリ。念のために言っとくけど、VDMは由緒正しい型付集合論ベースの静的型付き言語だからな。(プログラミング言語じゃないけど」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「で、VDMの型システムのオレオレ解釈は、静的型はモデリングの道具の1つに過ぎない。正しいことを前提にしない。型付けが不完全でも、わかることは沢山ある。型は門番じゃない。型は目的じゃないってこと。型と格闘するぐらいなら、さっさと別のことをしろ。ってこと。そしたら型は後で湧いて出てくる。」 / Twitter
- Island Life - 型付けと変更の時定数
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 例えば「静的に強い型付をするプログラミング言語が開発生産性が高い」という言説ですが,ソフトウェア工学的な観点で厳密に評価すると,本当にそうなのか?というのは昔から疑問に思っています。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t というのは,静的に強い型付をするということは,型検査をクリアするのにそれなりに苦労するので,その知識・スキルを持つ人材を揃えるというところまで視点を広げると,アドバンテージが本当にあるのか?というのはよくわからなくなるんじゃないかと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付けで静的に型を得るType Profiler話は、どこまでやればいいのかが一番問題になるな(処理速度との絡みで)、と再認識した次第。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 通常のVM実行と静的な型推論、動的に行われる型プロファイル収集とJITコンパイルをどう組み合わせるかという話ですね。難しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 いえ、この話はあくまで抽象実行でどのレベルまでシミュレートするかという話を意図しました。確かに範囲を広げるともっと難しんですが」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 あ、そうか。抽象実行だから静的だけどtype profilingなのか。」 / Twitter
- 動的型付けインタープリター言語 Haskell - 趣味はデバッグ……
- Miura HidekiさんはTwitterを使っています 「https://t.co/WuyFAlFUz7 これむちゃくちゃ面白いな。shapesはインスタンス変数のオフセット・型・フリーズ情報だけではなく、C++のvtableのような機能を持たせてインスタンス変数の型や引数の使われ方のパターンに特化したメソッドへのポインタを入れておくと言った使い方も出来るなと思った。」 / Twitter
- The Future Shape of Ruby Objects
- Miura HidekiさんはTwitterを使っています 「抽象解釈で行う型推定において、得られた型のバリエーションをshapesで表現すると型の比較(mmcの場合結構これがボトルネック。特に遅いプログラムだとなおさら)がポインタ比較一発になるので高速化できるかな?アロケーションコストの方が大きいかな?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「みんなJITコンパイラにshapesを使っている、使っていないのはお前だけ という気分になっている」 / Twitter
- ْさんはTwitterを使っています 「動的型付けじゃないと困るようなメタプロをやる状況,そもそもそれが間違ってるんだよな」 / Twitter
- Does José Valim prefer dynamic typing or static typing? - DEV Community
- 「動的型付け」ではなく動的言語と呼びたい - ベインのブログ
- Miura HidekiさんはTwitterを使っています 「型を指定しないで済むのがメリットなのは、楽をするからとかではなくお任せするとより適切な型を推定してくれる可能性があるから」 / Twitter
型注釈生成
- Miura HidekiさんはTwitterを使っています 「https://t.co/hd4NdBAB7H 抽象実行ではなく本当に実行するのか。これはこれで現実的なアプローチかもしれんな」 / Twitter
- Instagram/MonkeyType: A system for Python that generates static type annotations by collecting runtime types
- Yusuke EndohさんはTwitterを使っています 「@miura1729 自分は当初は動的解析だったんですが、やってみると意外と大変(オーバーヘッドが巨大、カバレッジ高いテストがないとダメ、など)で、抽象解釈に切り替えたんですが、結果的にはもっと大変な道を選んでしまったなあという感じです。」 / Twitter
- Yusuke EndohさんはTwitterを使っています 「@miura1729 動的解析でメソッドの型シグネチャを作って、メソッド単位で型解析する(抽象解釈でも伝統的型システムでも)、というのはakrさんとかが推してて有望そうです。手が足らないですねえ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@mametter なるほど、計算量爆発しないし現実的ですね。インスタンス変数とかどうするのかが問題かなって思います。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「@mametter @kmizu @keke_moto 抽象解釈のエントリポイントとしてのシグネチャはもちろんあった方がいいのですが、やはり抽象解釈で拾えない部分が多く、推論を助ける補助的な注釈を行いたくなる場面は当面の間まだまだありそうっていうのが最近の認識です (具体的にはこんな作業が必要になってます… https://t.co/TYLJtpj8p6)。」 / Twitter
- improve various minor inferrabilities by aviatesk · Pull Request #38832 · JuliaLang/julia
- mod_poppoさんはTwitterを使っています 「多次元配列のshapeの情報を含んだ型注釈が欲しい(ドキュメントとして)」 / Twitter
- mod_poppoさんはTwitterを使っています 「型はドキュメント!(素振り)」 / Twitter
型理論
System F(多相的λ計算)に集合論的意味論がつかない
- mod_poppoさんはTwitterを使っています 「「型=集合」で良かったらそもそも型理論は生まれてなかっただろうよ」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「型から集合は規定出来るけれど、集合から型は自明には規定できなさそう。集合を与えられたとしても、集合の生成方法や演算までは規定できなそうだしなあ。ペアノ算術も型が先にあって、そこから集合の構成方法、演算、元が決まる感じ。詳細はよく知らない。」 / Twitter
- H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「「型理論では型が単なる集合として扱われることはまずありません」の大きな理由の一つは,多相型が古典集合論的解釈だと矛盾を引き起こすからです。 https://t.co/zPVcbwlQqK 一方で,直観主義的集合論(トポス)ならばこの矛盾は回避できることも知られています。 https://t.co/CwpqsSfjcl」 / Twitter
- Polymorphism is not set-theoretic | SpringerLink
- Polymorphism is set theoretic, constructively | SpringerLink
- ruichiさんはTwitterを使っています 「“Haskellの型と直観論理 - 朝日ネット 技術者ブログ” https://t.co/qV73xc1Hlo」 / Twitter
- Haskellの型と直観論理 - 朝日ネット 技術者ブログ
- H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「理論の人間という表現がよくなかったかもですが理論が偉いという意図はないです。コンピュータ科学と他の科学分野の違いを聞かれたとき私は理論的側面と物理的側面と人間的側面のバランスが重要な分野だしそこが面白いところでもあるとよく言います。私がコミットできるのが主に理論というだけで。」 / Twitter
- H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「なので理論の人間はこのアナロジーを使う気にはならないけど,入門書で直観的に説明する分には許容範囲かなとは思う。Programming Haskellは微妙なライン。」 / Twitter
- H. Miyoshi (ALC2021 to be postponed, not online)さんはTwitterを使っています 「@qnighy System F(多相的λ計算)に集合論的意味論がつかないことだけなら原論文(のドラフト) https://t.co/4o0mJeIKE3 がありますが,トポス的に意味論がつくことは題名をもじった論文(のドラフト) https://t.co/IEePvhtEHe にあります。」 / Twitter
- (RR-0296.pdf) - RR-0296.pdf
- pitts-polymorphism-is-set-theoretic-constructively.pdf
- mod_poppoさんはTwitterを使っています 「集合を集めたものは再び集合になるけど、型を集めても型にはならない、みたいな説明はアリか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「型のユニバースがあった」 / Twitter
- mod_poppoさんはTwitterを使っています 「誰か「型って何?集合との違いは?調べてみました!」みたいな記事を書いてくれ」 / Twitter
- でこれきさんはTwitterを使っています 「No Naive Set Theoretic Models of Polymorphic Lambda Calculus? - Computer Science Stack Exchange https://t.co/mHUNHDohg1」 / Twitter
- functional programming - No Naive Set Theoretic Models of Polymorphic Lambda Calculus? - Computer Science Stack Exchange
- 簡約と型付けについて私が知っている二、三の事柄(試験投稿) | Mathlog
- 型理論 - Wikipedia
- 階型理論(かいけいりろん)とは - コトバンク
- 階型理論
- 階型理論の補足説明
- プログラマのための簡単な型理論入門 - Qiita
- 型理論 | 黒曜の吹き溜まり
- 型理論 なんて自分には関係ないと思っているあなたへ
- 型理論と型システムは違うらしい - 木下修司研究所
- 「型」の定義に挑む | POSTD
- ml_module_type_theory.pdf
- El Pin AlさんはTwitterを使っています 「Objective metatheory信奉者になりつつある」 / Twitter
- Objective metatheory - Google 検索
- mod_poppoさんはTwitterを使っています 「量化子除去を組み込みで備えたプログラミング言語があると便利だろうか(?)」 / Twitter
- mod_poppoさんはTwitterを使っています 「型、色々な解釈ができるという点がある種本質のような気がする」 / Twitter
- mod_poppoさんはTwitterを使っています 「型理論なんもわからん」 / Twitter
型システム
型システム
- がくぞさんはTwitterを使っています 「ここで言われている圏論的な厳密性というのがちゃんと解ってないですが、Javaのintと+演算に関しては群論的に正しく半郡をなす気がします。これはオーバーフローも含めて。 intが正しく整数を表していないという話ならそれはそう。あくまでintは整数のうちの一部の範囲をとる集合でしかない感じですね」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「型システム、圏論的な厳密性っていささか理想論に過ぎると思っていて、実際のプログラミング言語だと int + int → int みたいな誤魔化しが結構あって。 型int の場合とかだと暗黙に0に近い範囲での演算なら結果もintみたいな、なんかこう範囲指定みたいな条件が隠されてるというか」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「この型の条件で面白いのがJavaのジェネリクスの境界のextends と super で、inもしくはoutに限定すれば破綻しない、みたいなことやってて これ、汎用化したら、面白いんかもなあ……ともやもや考えている」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「型システムで「なんでここでこの型じゃ駄目なんだよ!?」ってやつ、反例となるケースを除外条件としたら、型の成約をむしろスッキリ分かりやすく表現できるんじゃないかという説 人類の脳みそがそういう例外規定で回ってるんじゃないかっていう」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「制約を合成したときにどうなるのっていうのが数学的な厳密さで保証できればあるいは🤔 型の制約スパゲティができるだけなのかもしれないが」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz intを挙げたのは外してたな、と思いました」 / Twitter
- “型”を語る際の7つの重大な誤り | POSTD
- Introduction - Counterexamples in Type Systems
- danwakai2015.pdf
- 型システム - Wikipedia
- ポリモーフィズム - Wikipedia
- 型システム 〜プログラムの安全性を支える数学〜 - Laborify
- 型システムを学ぼう!
- 型システム-プログラミング CapmNetwork
- ogiwaraさんはTwitterを使っています: 「TaPL、数学的な前提知識はそこまで求められない 順序理論がちょっと難しい程度」 / Twitter
- ogiwaraさんはTwitterを使っています: 「@ei1640 TaPLがキツイ理由としては、 - そもそも論理学か、集合論における順序理論の習熟度が低い - いきなりの計算論理学がキツイ という二つの理由があると考えてます 前者についてはまあ頑張るしかないですが、後者についてはこの本(CoPLと言うらしい?)をオススメします https://t.co/2nG4zWzcjs」 / Twitter
- プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) | 五十嵐 淳 |本 | 通販 | Amazon
- ogiwaraさんはTwitterを使っています: 「SKIコンビネータとかChurch-Rosserの定理とかは面倒見てくれなかった記憶」 / Twitter
- ogiwaraさんはTwitterを使っています: 「ラムダ計算にしたって別に前提知識は求められない、その場で分かりやすく(実用向けの)解説してくれる」 / Twitter
- ロビン・ミルナー - Wikipedia
- リスコフの置換原則 - Wikipedia
- Future パターン - Wikipedia
- h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
- 多段階計算の型システムの基礎
- TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS - Speaker Deck
- effectful subtyping - lilyum ensemble
- Introducing Type Providers - Google スライド
- A Journey to Type-safe Vectors in F# - Speaker Deck
- 山本和彦さんはTwitterを使っています 「素敵な型システムがあるプログラミング言語では、実装の問題を型のレベルの問題に簡略化して考えることができる。この意味が分からないのに、「型注釈は書きたくない」と主張するのは、実にもったいないことだ。(分かって主張しているならは、好みの問題なのでOKですよ。)」 / Twitter
- hindley-milner型推論を持つ言語で、アドホック多相を扱う方法について、教えていただけますか?に対するJunji Ueharaさんの回答 - Quora
- 井山梃子歴史館さんはTwitterを使っています 「型システムのChurch styleとCurry styleを逆に覚えてたっぽい」 / Twitter
高階のジェネリクス
- がくぞさんはTwitterを使っています 「TAPLの定義に基いて型という用語を使っている人々とそうでない人々の間で齟齬が生まれておるな……」 / Twitter
- かすていらふぃさんはTwitterを使っています 「普通の(一階の)ジェネリクスくらいまではプログラミングの基礎教養みたいな世の中になってほしい」 / Twitter
- がくぞさんはTwitterを使っています 「高階のジェネリクスぐらいは多くのプログラミング言語で扱えるようになって欲しい……」 / Twitter
- ズボンを月曜の夕方6時以降に回収さんはTwitterを使っています 「表現力が低いというのにも二方向あって、書ける計算の範囲が広いのは型制約が緩い言語ぽい。逆にもう一つ、型制約に関する表現力があって、RustやScalaはここも強い。求めているのは型制約に関する表現力が(解決しようとしている問題に対して)十分高くて、書ける計算が十分に多い言語なのよな」 / Twitter
- がくぞさんはTwitterを使っています 「書ける計算の範囲が広い、というのは普通なら危険だったり意図していない計算も文法上正しいものとして書けてしまう、という事だしなぁ……(それこそparseIntの引数にnumber渡してしまうみたいなのとか)」 / Twitter
型推論
OCaml PPX
- Keigo ImaiさんはTwitterを使っています 「typed ppx, OCaml の型推論に絡む部分がプログラマブルになっていくのが面白い。隔靴掻痒感のあった型の問題が一挙に解決していく。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「唯一にして最大の問題はプログラム全体の型検査をメッチャ何回も回すことで…」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「よく考えたら、普通の(Haskell 98とかの)型クラスなら(マクロで回す)型検査は 1回だけなんですけど、これオブジェクト型の結合のための特殊なインスタンスをfundepsから自動生成していて、これがあると型推論に影響するので型検査を何度も回す必要が発生している。Showとかなら軽いはず…」 / Twitter
- 型付きPPXに関するメモ - toward the typed ppx - Qiita
- slides
- OCamlオブジェクトの結合を型付きPPXで - Qiita
- davesnx/styled-ppx: Typed styled components in Reason, OCaml and ReScript
- ocaml-ppx/ppx_import: Less redundancy in type declarations and signatures
- PPX for plugin authors — ppxlib documentation
- Creating TYPES from PPX - Learning - OCaml
- [ANN] ppx_let_locs - improve stack traces - Community - OCaml
- Metaprogramming and PPX | OCamlverse
- Logic and Computation: Interactive Proof with Cambridge LCF - Lawrence C. Paulson - Google ブックス
- OCaml-meeting0908-revised.pdf
- 型推論機構の実装
- 型推論 - Wikipedia
- 型推論を実装してみる | Kludge factory
- Hindley-Milner型推論アルゴリズムをGroovyで書いてみた - uehaj's blog
- SML# - ランク1多相性の理論
- 型推論のしくみ : KLabGames Tech Blog
- 型推論機構を備えたインタプリタをRubyで実装した - 鴨川の怪物
- プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~ - Google ブックス
- hs2bf - 謎の型推論 - ⊥=⊥
- 連立方程式の解き方
- Algorithm W入門を攻略してきた - osiire’s blog
- Prologでλ→の型検査のプロ グラムを書いてみただけの話 // Speaker Deck
- yūkiさんのツイート: "自作言語で型推論実装したいなあと思いちょっと経ったけどどんな感じのステップで型推論されていくのかわかってないので手を付けてない"
- ヒトでもわかる型推論 - Qiita
- uint256_tさんのツイート: "なんだかんだ言って、英語版Wikipedia が一番わかりやすい気がした: https://t.co/i0SYbiNoWi… "
- Hindley–Milner type system - Wikipedia
- So you still don't understand Hindley-Milner? Part 1 - Amit's Blog
- OCaml-meeting0908-revised.pdf
- Prologで様々な多相型推論 - Qiita
- 型推論に関する最近の話題への雑感 - Qiita
- 静的型付「き」言語(@seitekibot)さん | Twitter
- JavaScript による型推論器の実装 - takuto_hの日記
- Swiftの型システムを読む その1 – ukitaka – iOS開発とかのメモ
- 7.pdf
- TypeScriptのタプル型推論使って型を改善 - Google スライド
- 5 分ではわからない HM 型推論 - 型システム祭りオンライン 2020 4/17 - Speaker Deck
- Lispにおける型推論 - Qiita
- ISLispにおける型推論コンパイラ - Qiita
- ISLisp Home Page
- κeenさんはTwitterを使っています 「自分はやったことないけど踏みそうではある。自分ならHashMap::<usize, u64>::new にして型を決めてしまうかな。 Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita https://t.co/0x0dW7sGAi」 / Twitter
- Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita
- C# 9: newキーワードの型推論
- ╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「型、たしか突き詰めるとλx.xの型がΛx.x(記号これで合ってたっけ)みたいなことになる筈なので方が複雑になると型推論ができなくなるというのがよくわからない」 / Twitter
- Juliaの型推論アルゴリズムを実装する
- [PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
- 混ぜるな危険! Eigenとauto - Qiita
- CubbitさんはTwitterを使っています 「関数のオーバーロードは邪悪である 違うインターフェイスを持ち違う振る舞いを持つ関数なのだから、名前も違うものを付けるべきなのである あと型推論にも良くない」 / Twitter
漸進的型付
- 型システム 〜プログラムの安全性を支える数学〜 - Laborify
- 漸進的型付け言語の時代に必要なもの - mizchi's blog
型クラス
- 型クラスはインターフェースとどう違うのか | POSTD
- まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
- 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記
- インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
- 型クラス - ウォークスルー Haskell
- 型クラスの真の力を見せる - kmizuの日記
- TypeClass.pdf
- Scalaで型クラス入門 - still deeper
- κeenさんのツイート: "「定義を」分離できるのが型クラスの一番の利点で、実行時の「データと辞書オブジェクトを」分離できるのはあまり利点を感じない。文脈によって同じ型に対する型クラスのインスタンスを使い分けたい場面ってとほんどないでしょ。"
- まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Keigo ImaiさんはTwitterを使っています 「OCaml で動く型クラスっぽいのができた。show ## (1, "abc") で、 ## のところに渡すべきインスタンスが型推論に基づいて生成される。実装は「まんま」というか、## を埋める度にソース全体を型検査し、不動点に達したら止める。 https://t.co/OM9jx6f05u https://t.co/MjwraGZU1e」 / Twitter
- ppx_fillup/test.ml at master · keigoi/ppx_fillup
- Keigo ImaiさんはTwitterを使っています 「OCaml のシンボル情報や型環境の探索は camlspotter さんが昔公開していた ppx_implicits のソースコードが参考になった。あとは 型付きPPXのメモを参照 https://t.co/obwXZkcchH」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「型クラスのついでに、オブジェクトの連結をできるようにした。辞書を引っ張ってくる代わりに推論されたオブジェクト型を元にして連結関数を生成する。 生成されたインスタンスはコンパイラの警告により確認できる。 https://t.co/oen6NecfCv」 / Twitter
依存型
依存型 述語論理
- 依存型 - Wikipedia
- 10.pdf
- 証明プログラミング入門2
- nori_Coq3.pdf
- logic.pdf
- 938.pdf
- Idrisで遊んでみた (0) | 雑記帳
- calculus of constructions (CoC) の勉強 - よーる
- トポスと高階論理
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
- 20160114wba.pdf
- はてなブックマーク - Prologに関するsyaminoのブックマーク
- d.y.d.
様相論理 依存型理論 述語論理
- 「再帰的定義を可能にする述語論理の証明支援系上の実装」 - あいまいな本日の私 blog
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
- 新・あいまいな本日の私: 一階述語論理と集合論は循環している?
- 依存型 - Wikipedia
- がくぞさんはTwitterを使っています 「こういうのはちゃんと依存型つかって型付けされてれば無問題ですね #無問題とは」 / Twitter
- ひさてるさんさんはTwitterを使っています 「function getItem(id = -1) { if (id == -1) { return itemList } else { return itemList[id] } } // TODO 極刑に処す」 / Twitter
- がくぞさんはTwitterを使っています 「型が推論されて不正なコードがはじかれる、という所から現実の型がつよつよな言語はもっと先に進んでいて、型によって実装がderivingされる世界があるので、世の中もっとそういう方向に進んで欲しいのだけどなー」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@koshian ライブラリ提供側は頑張って型をつけて、利用側は雑な推論で書くみたいなところが落とし所になるんやろか。 10年前だと非現実的に思えたけども、現代の技術ならそのへんが実用ラインになってて、そういう意味ではバランスは変化してきてるとは思うよ」 / Twitter
- コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
- 依存型入門
- 実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
- プログラミング言語 idris - wkwkesのやつ
- 安全かつ柔軟な依存型 -
- 私と型システムとポエム - The curse of λ
- 証明プログラミング超入門
- 関数型プログラミング – 依存型とは何ですか? - コードログ
- 2017年注目していきたい技術 | κeenのHappy Hacκing Blog
- idris環境構築 | κeenのHappy Hacκing Blog
- Idris入門: 数当てゲーム | κeenのHappy Hacκing Blog
- イマドキと言われる言語機能について | κeenのHappy Hacκing Blog
- 🈚️うひょ🤪さんのツイート: "TypeScriptはちゃんとした型レベル自然数があったら楽しそうなんだけどいい感じに入らないかなあ(ぇ"
- tkrさんのツイート: "型レベル文字列と型レベル自然数で闇がさらに深くなるTS #いろいろなTS"
- tkrさんのツイート: "実際文字列周りは何とかしてほしいみたいなとこあるけどまじで沼になりそう ほら、 "a.b.c" みたいな事してプロパティ取得するthe 動的言語感なライブラリとか"
- F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
- Idris入門: 二分木 | κeenのHappy Hacκing Blog
- Idris入門: リファレンス | κeenのHappy Hacκing Blog
- Effective Idris: Lazy | κeenのHappy Hacκing Blog
- Idrisで依存キュー | κeenのHappy Hacκing Blog
- Effective Idris: Effects | κeenのHappy Hacκing Blog
- Dependent Types と Refinement Types の違い - SevenColoured
- Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
- Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
- Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
- Idrisの話とIdris2のウワサ | κeenのHappy Hacκing Blog
- Idris 2の数量的型が解決した問題、導入した問題 | κeenのHappy Hacκing Blog
Refinement Types
- Dependent Types と Refinement Types の違い - SevenColoured
- Refinement type - Wikipedia
- 型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
- Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
- refinement_types_for_haskell.pdf
- abstract_refinement_types.pdf
- MSR-TR-2009-147-SP1.pdf
- Refinement Types
- Programming with Refinement Types
- refinement-2-bengtson08.pdf
- Liquid Haskell で普通の型システムの上を行け #NGK2017B
- main.pdf
- Dependent type、refinement typeおよびHoare Logicの違い
- LiquidHaskell 入門 その1 - 存在と一意性の証明
- LiquidHaskell 入門 その2 - 存在と一意性の証明
- LiquidHaskell 入門 その3 - 存在と一意性の証明
- LiquidHaskell 入門 その4 - 存在と一意性の証明
- monochromeさんはTwitterを使っています 「Refinementsってグローバルメソッドキャッシュにとっては迷惑でしかない気がする」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「形式検証されたコード、refinementのがまだ早そう」 / Twitter
MPST
- Keigo ImaiさんはTwitterを使っています 「ECOOP 2020 (https://t.co/YR8JbvCIjn) に論文が採録されました。"Fully Static Multiparty Session Programming with Global Protocol Combinators" マルチパーティセッション型の初のライブラリ実装です。OCamlの型システムに支援された並行プログラミングが可能に: https://t.co/Fpi6xKNorP (整理中」 / Twitter
- keigoi/ocaml-mpst: Multiparty Session Types in OCaml
- Keigo ImaiさんはTwitterを使っています 「マルチパーティセッション型(MPST)は、デッドロックフリーな多者間通信が保証できる反面、既存の型システムとのギャップが大きく、汎用言語でのライブラリ実装がありませんでした。今回MPSTのwell-formednessとサブタイピングの関連を見出し、多相ヴァリアントやレンズ等でライブラリ実装しました https://t.co/MMfgxha9v6」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これと、一昨年ガリグ先生 (@garriguejej ) とPROで発表した線形型の実装 LinOCaml を組み合わせて、MPSTの型をOCamlの型検査器だけで静的に検査できている…はずです。(デッドロックフリーがOCamlで保証できることの証明は今後の課題になってしまいました…無念。これでも十分面白いと信じてますが」 / Twitter
Either
- エラー処理を書いてはいけない
- 関数型の考え方: Either と Option による関数型のエラー処理
- Eitherについて調べてみた - Qiita
- ScalaのOption型とEither型を使う - Qiita
- はじめてのOption型とEither型(Scala) - yoshikit1996’s diary
- haskellのMaybeとEither理解した。気がする。 - think and error
- Either 型に関数を適用する。 - sirocco の書いてもすぐに忘れるメモ
- エラー処理 · Scala研修テキスト
- ScalaのOptionとEitherで例外処理を行う方法 - $shibayu36->blog;
- Haskell教養としての関数型プログラミング - 重城良国 - Google ブックス
- すごいHaskellたのしく学ぼう! - Miran Lipovaca - Google ブックス
Datatype-Generic Programming
- まっちゃらさんはTwitterを使っています 「Datatype-Generic Programming https://t.co/3ggYFezYPB」 / Twitter
- ssdgp.dvi - dgp.pdf
- まっちゃらさんはTwitterを使っています 「generic programming自体は人によって意味合いが違う(parametric polymorphism, data abstraction, meta-programming,など)ので、 datatype-generic programmingという新しい言葉を作ったよということか」 / Twitter
- まっちゃらさんはTwitterを使っています 「ListとTreeに対するfoldLで普通は別々に実装する(コンストラクタが違うし、そもそもバリアントの数も違う)けど、バリアントごとに関数を適用して、残りを再帰していけばいいという構造は同じなので、ここを抽象化するぞってのがdatatype generic programmingということらしい(理解があってれば)」 / Twitter
- まっちゃらさんはTwitterを使っています 「polytypism, structural polymorphism, typecaseなんかも同じことを指していて、Generic Haskellにおけるgeneric programmingというのもこの意味らしい」 / Twitter
blog
- 言語処理系勉強会に参加してきた | κeenのHappy Hacκing Blog
- 代数的データ型とパターンマッチの補遺: 赤黒木 | κeenのHappy Hacκing Blog
- n月刊ラムダノートにパターンマッチについて寄稿しました | κeenのHappy Hacκing Blog
- リソースを管理する型 | κeenのHappy Hacκing Blog
- 手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
- なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
- Island Life - 動的型のメリットは「決断の遅延」かもしれない
- OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
- OCamlの型検査は決定不能
- 問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
- Hindley-Milner型推論をCで実装した話 - malloc(sizeof(MRM));
- 暗黙の型変換を嫌わないで!(暗黙の型変換がなぜ嫌われるのか、暗黙の型変換で数学的同一視を自然に表現する、暗黙の型変換もどきを自作する、暗黙の型変換で遊ぼう(BNFを表す型)) - 算術の夢の楽園
- Yusuke EndohさんはTwitterを使っています 「「既存の型を超える」みたいにも読める身の程知らずなポエムを書いてしまったけど、TypeProfもライブラリや難しいコードにはRBS手書きしてもらう前提だし、TypeProfが失敗してもSteepやSorbetはとても堅実で成功確実なアプローチだし、実際にはわずかに冒険してみてるだけです。わずかが難しいんだけど」 / Twitter
- Rubyと型についてのポエム - まめめも
- Yusuke EndohさんはTwitterを使っています 「TypeProfの期待を上げすぎてしまったか。ライブラリのRBSが揃ってない現状ではライブラリのコードも解析するのでめっちゃ解析遅いし、推論はすぐuntyped(TSでいうany)に落ちるし、そのくせエラー発見ツールとしてはfalse positive多すぎます。改善は続けるので、期待しすぎずに長い目で見てね……」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「Elixirで型が欲しかったらDialyzerとかdialyxir,あるいはGleamをどうぞ。」 / Twitter
- ntaooさんはTwitterを使っています 「一旦現在主流の型システムを言語に統合してしまうと、将来に渡って言語の可能性がその型システムに束縛されてしまうので、Rubyのこの方針はとても正しいと思う | Rubyと型についてのポエム - まめめも https://t.co/xkFDEDVe5l」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyと型についてのポエム - まめめも https://t.co/56TaP4Zdyg 自動車の例えがいい。将来的にはどんな言語でも内部で使う型はプログラムにより解析され型を書くのはドキュメントのため、と言う形になると思う。ライフタイムや型が取りうる値とかも型に含まれてくると人間が書いていられなくなるから。」 / Twitter
Twitter
型で解決
- 田中ひさてるさんはTwitterを使っています 「生で array だ int だやってたのが急にドメインモデルどうの言われて、Price も Pay も Money も別の型にするべきとかそういう「原子から作りますか」に通じるOOPの幻想(今はもう滅んだ)にやられてしまうの、なるほどなあと思った」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「幻想っていうのは、保守コスト下がるはずだったのに逆に上がってしまう現実が起きて、ゴールできないレベルの高すぎる意識のこと」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「商品コードとかはよほどその仕様が特別でないかぎり、バリデーションされた string なだけでもぜんぜんいいと思うんです。itemCode って変数がパスワードを入れるところかななんて、誰が間違えますかって言えるバランス感覚です。それない人に間違わせないための防衛するぐらいなら機能を作ろうと」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「もし型がすべてを解決するなら、フレームワークに EscapedSql 型や SafeHTML 型があるはずじゃないですか。フレームワーク作者のような頭のいい人がやっていないのは、オブジェクト指向プログラミングを知らないからじゃないですよね」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「引数は int item_id より Item item の方がいいよぐらいの常識感をまず当たり前にしていくのがよいと思います」 / Twitter
- sjiさんはTwitterを使っています 「@tanakahisateru 実は静的解析器には近いのがあったりします」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@sji_ch えっ、どういう!?」 / Twitter
- sjiさんはTwitterを使っています 「@tanakahisateru https://t.co/65WyMQ2Udc html-escaped-string というのがあり」 / Twitter
- Scalar types - Documentation
- 田中ひさてるさんはTwitterを使っています 「@sji_ch なんと」 / Twitter
- がくぞさんはTwitterを使っています 「型をちゃんと使う世界のフレームワーク達は割とそういった型が普通に存在しているような……?オブジェクト指向とか特に関係なく…… Javaとかのフレームワークであまり見ないのは単純に型の表現力が言語として低いからでは仮説 型で全ては解決しないけど解決できる問題は多いですね」 / Twitter
- がくぞさんはTwitterを使っています 「まぁそう間違えないやろという気持ちもわかりみがありつつ、自分でもびっくりするようなミスしでかす事あるので静的検査で見つかると嬉しいし、Map<String, Item>よりもMap<ItemCode, Item>とかのシグネチャの方がわかりやすいし、型が適切だと実装を自動導出できたりするので開発が楽になったり文字数」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@gakuzzzz ItemCode のほうがもっといい hashCode と equals を提供できる可能性もありますね。なんで良いのかわからず、自縄自縛のように独自型であるべきなんだで迷って仕事遅くなるより、とりあえず最初は言語標準の型で進めるのが健全かなと思ったのです」 / Twitter
- がくぞさんはTwitterを使っています 「@tanakahisateru なんで良いのかわからずにべき論に従うのは型の話にしろ他の話にしろあまり良い結果にならなそうというのは同意です type aliasのようなものが使える言語であれば、最初にエイリアスで標準の型を指定しておいて、後から必要に応じて独自型に変えることで変更範囲を小さくするみたいな事もできますねー」 / Twitter
- がくぞさんはTwitterを使っています 「全力で型で楽したい」 / Twitter
- がくぞさんはTwitterを使っています 「型が適切にあると最近Goの標準でもβで入れだしたFuzzingのような事も非常にやりやすくなるですよ」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「色々文脈や背景があるのだろうと思うのでアレなんだけど、個人的にはあまり「原子から作っている」と言う感覚はないのだよなぁ。Userみたいな型もMoneyみたいな型もおしなべて同列というか…。」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「「商品には金額が設定されててユーザが商品をカートに入れると金額の合計分を支払う」みたいな要件を聞いたら自動的に頭の中で「商品型と金額型とユーザ型と商品のコンテナとしてのカート型があってカート型からは商品金額の合計が取れるのだろうな」となってその様に書くだけというか…。」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「MoneyやPriceみたいないうてたかだかintのラッパーみたいな型はオーバーエンジニアリングでは?みたいな感覚、分からんではないのだけど、言うて定義域の問題とか何とどういう演算が許されてるんだっけ?とか言うの往々にしてあるので型にしておくとそういう所で脳みそ使わなくて済むみたいなのある」 / Twitter
- がくぞさんはTwitterを使っています 「依存型とか篩型とかもっとカジュアルにつかってこ」 / Twitter
- がくぞさんはTwitterを使っています 「そうそうMoneyとかPriceなんて自分でがんばって作らないで整備されたライブラリ使えばいいんですよ https://t.co/uwPjxtFFBW」 / Twitter
- typelevel/squants: The Scala API for Quantities, Units of Measure and Dimensional Analysis
- がくぞさんはTwitterを使っています 「Dependent method types でドメイン層とインフラ層の実装をモナドとか難しいもの使わなくても簡単に分離できるよ、みたいな話は2年前にしましたね https://t.co/dLNXZmyl9C」 / Twitter
- Dependent method types を利用した軽量Clean Architecture の紹介
幽霊型
- κeenさんはTwitterを使っています 「PhantomDataを使った幽霊型の紹介。題材はnewtype patternを使った単位系の表現。 Phantom Types in Rust 👻 https://t.co/pbObfsd9MS」 / Twitter
- Phantom Types in Rust 👻
histric-1
- 静的型付「き」言語(@seitekibot)さん | Twitter
- Eijiro Sumiiさんのツイート: "@tenpoku1000 「静的に型付けされた言語」なら何の問題もないと思います"
- 市川 真一さんのツイート: "共立出版の「新しいプログラミング・パラダイム」1989 年初版1刷には「静的に型付けされた(statically typed)言語」と書かれているのですが、これは今は亡き bit 誌の連載を本にしたものです。少なくとも、この頃から「静的型付け言語」という訳語が存在していた模様です https://t.co/YHBdaSaUoH"
- Eijiro Sumiiさんのツイート: "・「静的型付き言語」を誤って「静的型付け言語」という ・「部分適用」を誤って「カリー化」という の両方を踏んだ発表者が光の速さで(私より先に別の人から)つっこまれていた:-)"
- まろ@関数型言語作曲機械学習勉強してないさんのツイート: "「型推論」だと型がないと思う人が出てきてしまうので、「自動バッチリ型決定機能」とかにした方が良いと思う"
- Kota Mizushima(まったり)さんのツイート: "型推論をするなら動的言語という勘違いをまたひとつ、別件で検索していたら見つけてしまった。やはり、型を明記することと省略することと、型が静的/動的の区別は案外難しい、のかもしれない。あと、特にこの勘違いは、古い世代の人間に多く見られる気がする。"
- Keisuke FUKUDAさんのツイート: "MicrosoftによるPythonの型チェッカー。node.jsで書かれていて、mypyより5倍高速で、常駐&インクリメンタル更新モードがあるらしい。https://t.co/tzxgoDuePF"
- Microsoft/pyright: Static type checker for Python
- 米Microsoft、Python向けの高速な静的型チェッカー「Pyright」を公開 | OSDN Magazine
- Shinji KonoさんはTwitterを使っています 「動的型付け静的型付けは、昔っから動的型付けを強力に罵る人が多くてうんざり。無限LISP地獄にでも落ちろ。そもそも型があってれば万々歳ってわけでもない。動作を規定するのは値であって型はあくまでも手助けだけ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ML系な人が静的型付けでないとみたいなこと言ってたので「その上でTuring Machine を書いたら、そのTMのプログラムには型は無力。ドメイン向けに何かを作るとだいたい同じようなことになる」と言ったら、険悪なムードになっちゃって。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンピュータでは型の話とエディタの話はケンカの元だからなー」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) https://t.co/UImWB5Kh5M Juliaのprimitive typeって何が嬉しいんだろう?って思って調べたら出てきた。なるほど、これは嬉しい」 / Twitter
- Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) - Qiita
- 画力・博士号・油田さんはTwitterを使っています 「ところで “type inference” と呼ばれる問題も3種類ある: 1. * 入力: 型環境 Γ,項 M * 出力: ∃τ. Γ⊢M : τ か? 2. * 入力: 型環境 Γ,項 M * 出力: Γ⊢M : τ なる τ のうち主要型(存在すれば) 3. * 入力: 項 M * 出力: Γ⊢M : τ なる (Γ, τ) のうち主要型つけ(同上)」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「個人的にはこのうち 1 を “type inference” とか「型推論」と呼ぶのは若干違和感があるけれども,「X は型推論が決定可能」と言ったときは 1 の意味で使われていることも結構多い感じがある」 / Twitter
- El Pin AlさんはTwitterを使っています 「1は型推論ではなく型付け可能性だと思っています (これ前にも言ったけど)」 / Twitter
- κeenさんはTwitterを使っています 「型推論が決定可能よりも型システムが決定可能の方が言う気がする」 / Twitter
- El Pin AlさんはTwitterを使っています 「必ずしも同意するわけではないし、普遍的な定義だとも思わないけど、[Rémy 2005]にこのような記述があるのを見つけた https://t.co/6fXXLc1IqB」 / Twitter
- El Pin AlさんはTwitterを使っています 「Didier Rémy. Simple, partial type-inference for System F based on type-containment. ICFP 2005. https://t.co/39g8rMjJhv」 / Twitter
- fml-icfp.pdf
- El Pin AlさんはTwitterを使っています 「とちゅう https://t.co/JYqkAKwgLU」 / Twitter
- 画力・博士号さんはTwitterを使っています 「“型が嫌い” な人,「型という概念が “計算機の都合で仕方なく” 使われている」と思い込んでいる気がするので,「型とは “ヒトの直観を反映した不変条件の簡潔な記述” だ」という認識に上書きできたらML系言語と深く和解できるんじゃないかという豫感がする」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「思ったんだけど、静的型付き/動的型付き言語の区別は全ての表現式に静的型がつくかつかないかで決まるんだけど、むしろ、全ての値に実行時型情報がつくかどうかで決める区別もあって欲しい気がする。言語というより処理系の特性ではあるのだけど、多くの言語は言語仕様でだいたい決まるよね?たぶん。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「たしかに、その観点で分類するの面白そうだけど、実行時型情報が付かない言語って意外と少ない気がする。(DWARFがフルサポートされたC言語ってどっちになるだろう? >RT」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 実行時型情報が全く付かない言語はML系とかCとかぐらいでしょうけど、「全ての値に実行時型情報が付いた」を満たさない言語は結構多いと思います。Javaのようにprimitiveな値がある言語は基本的に入ると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda デバッグ情報とかは考えないのですか?」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ほぼ「型つきAltErlangの処理系を実装したい」という動機だけでそれまであまり理解のなかったπ計算やsession typeについて半年弱くらいサーヴェイしたり自分で型システムを弄ったりしているの十分正気ではない気がしてきた」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@bd_gfngfn @a2uky 先行研究,はたまたライバル?こんなのがあります。 https://t.co/POjzybtn9O」 / Twitter
- Hello, Gleam! - The Gleam Book
- 画力・博士号さんはTwitterを使っています 「@zacky1972 はい,Gleamの存在は認識していました.ただ現状だとメッセージの送受信に型をつける方法は言語機能そのものから提供されているわけではなかったり純粋な計算と非純粋な計算とが型で分離されたりはしていないという点で自分が欲しいものとはややギャップがありました」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn 凄い!既にFowlerの論文を辿ってご存知かもしれないのですが線形型とi/o型によるセッション型のエンコーディングは https://t.co/iKQaiHtNwL が良いです。なのでセッション型は言語から排除できるかも?OCaml での実装例は (線形型やサブタイピングは無いですが) JFP のhttps://t.co/SFdtNBsZjl とか。」 / Twitter
- Session types revisited - ScienceDirect
- A simple library implementation of binary sessions* | Journal of Functional Programming | Cambridge Core
- 画力・博士号さんはTwitterを使っています 「@keigoi はい,Fowlerの博士論文と Session types revisited は最近軽く目を通して読んでいました(ありがとうございます)」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn GV系だとデッドロックフリーがあるのでいいですね。もっと古いのだと Pucella & Tov の Haskell'08 https://t.co/JgDyrtFHVU の方法が単純でよいかもしれません。2つの型の duality の witness があれば特殊なエンコーディングは要らない(この論文では型クラスでwitnessを作っています)」 / Twitter
- Haskell Session Types with (Almost) No Class
- ホテルバルティック(クローン)@築26年さんはTwitterを使っています 「そういえば,情報系の人間が「数学は型を明示してほしい」って言うのをそこそこ観測してるんですけど,x in Xとかf:X->Yってのは彼らの言う型とは別なんですかね?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaでは何でも型があるから上限があるけど、集合には型がないからな。Agdaでは型を明示したpairしか作れないが、集合だと限定されないpairがクラスとして定義できて、それは集合にならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの中で順序数を作って、それで議論するからそうなる。関数型言語の中でCを書いて、それでプログラミングするようなもの。Seg Vあり。」 / Twitter
- N743327さんはTwitterを使っています 「いわゆる型とよばれるやつ、syntacticalなやつとsemanticalなやつとがあるんでは」 / Twitter
- 画力・博士号さんはTwitterを使っています 「プログラミング言語やプログラム検証の研究では「大体理論・手法ができてから実用上の認知度が上がるまでに20年くらいかかる」という謂れがあったりするけれども」 / Twitter
- 画力・博士号さんはTwitterを使っています 「それによるならそろそろ90年代半ば頃の研究成果が実用に供され始めていい頃なんだけどな,パッと思いつくものでは多段階計算とかsession typeとか」 / Twitter
- 画力・博士号さんはTwitterを使っています 「gradual typingとかは理論の提案から実用化が異様に早い気がする(提案が2006年で,2010年代前半のAltJS戦国時代みたいな頃にはもう実用化されていたんじゃなかったかな)」 / Twitter
- 4869さんはTwitterを使っています 「TypeScriptでバックエンド書くと型が間違ってても値が入ってくることを考慮しないといけない場面で急激に面倒になるな……」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcを作っていて思った。抽象実行で推定される型って人間の直感とは異なる型になるような気がする。特にエスケープ解析とかも含めてくると。これが将来は型宣言がドキュメント以上の意味が無くなると私が考える根拠の一つ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あれ?ツイートが途中でぶった切れてた エスケープするかという情報は型に含めるべきか分からないけど、実装上は型に含めるのが何かと合理的にできる。たとえば、エスケープするしないでデータ構造が異なるから関数を変えなければならないけど、それはオーバーロードで対処できる」 / Twitter
- たっくまんさんはTwitterを使っています 「TSで0-100の整数値なことを型で制約かけたいな〜って思ったけど、これ type T = 0|1|2|...|100 みたいに頭の悪い union type 以外でスマートにやる方法ないのかな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「そういう性質を型でちゃんと表現するのは無理筋なので、検査を通った整数だけが名乗れるbranded typeを作るのが次善策かなあ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「抽象実行ならその辺が出来る可能性があるな。TSも抽象実行モジュール持っているんじゃないかな?または、flowとかあるし」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ちなみにmmcにはFixnumには負にならないことを保障する属性があります。配列のindexに使う時に正負を判別する処理が省けて便利です (隙あれば自分がたり」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「コンパイラ内部で使う最適化のヒントを無闇に型として表現するのは悪手だと思うんだけど、線形型なら分かりやすいしいける気がする」 / Twitter
- 令掛ベインさんはTwitterを使っています 「再帰的な型シノニム (type Ty = Tk * Ty list など) は名前付きのタプル型であると考えれば問題ないことに気づいた。同様に本体が(->)やlistのときもOKなはず #milone_lang」 / Twitter
カリー=ハワード同型対応
- 木原 貴行 | 名古屋大学 | 大学院情報学研究科 | 数理情報学専攻
- computation-fall1.pdf
- カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
- 継続と反証はカリーハワード対応するか - Qiita
- 直観主義論理の「自然さ」(1) 自然演繹 - 再帰の反復blog
- 直観主義論理の「自然さ」(2) シーケント計算 - 再帰の反復blog
- 直観主義論理の「自然さ」(3)古典論理のシーケント計算と自然演繹 - 再帰の反復blog
- 直観主義論理のカリー・ハワード対応 - 再帰の反復blog
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- 古典論理のカリー・ハワード対応のためのラムダ計算 - 再帰の反復blog
- 古典論理のカリー・ハワード対応での証明の書き換えと簡約 - 再帰の反復blog
hott 定理
その他
- ProofSummit2014 : VSTでCの検証
- Proof Summit 2014 Opensslの話 - Speaker Deck
- Agdaを使った形式化の実例紹介
PDF
- トポスと高階論理 - topos-and-hol.pdf
- Homotopy Type Theory 入門 - hott-intro-ja.pdf
- Grothendieck ファイブレーション - grothendieck-fibrations-ja.pdf
- Functor Categories of a Locally Cartesian Closed Category - functor-categories-of-lccc.pdf
- 201406yamada.pdf
- kaiho-115.pdf
- YetAnotherAI - YetAnotherAI.pdf
- 27_kawasaki.pdf
- (Microsoft Word - HoTT\202\306\214\227\230_\202\314\223N\212w\223I\227p\223r.docx) - 2013_a3-1.pdf
- ppl5-1.pdf
cn
- Types 如何编写(和调试)一个依赖于两个参数的应用程序apd2,并使用它来证明agda中此类ap的功能性?_Types_Agda_Dependent Type_Homotopy Type Theory - 多多扣
- Coq 如何正确地将定义放入定理中?_Coq_Type Theory - Debug001
- Coq 如何正确地将定义放入定理中?_Coq_Type Theory - 魔琴编程网
- Types 关于Coq的HoTT变体语法的教程_Types_Coq_Homotopy Type Theory - 魔琴编程网
- 数学 - 收藏夹 - 知乎
- 請問如何入門同倫型別論(HoTT)?
- 同倫類型論:描述,歷史,定理證明,相關書籍,參見,_中文百科全書
- $$\infty $$ ∞ -groupoids 的康托-施罗德-伯恩斯坦定理,Journal of Homotopy and Related Structures - X-MOL
- 同伦型理论和哥德尔不完备定理
- 同伦类型论_百科
- 全历史
- The HoTT Book | Homotopy Type Theory
- HoTT本入門
- 広がりゆくトポロジーの世界―言語としてのホモトピー論 | 玉木 大 |本 | 通販 | Amazon
- 定理証明リンク集 - The curse of λ
- SICP - Computers-and-Mathematics
- mod_poppoさんはTwitterを使っています 「定理証明をやろうとするとuniverseとか(strict?) positivityとか色々大変そうだ」 / Twitter
- Taichi UemuraさんはTwitterを使っています 「昨日聞いた話だけど、1-トポスを∞-トポスに埋め込む標準的な方法があって、それを前層1-圏に適用しても前層∞-圏になるとは限らないとかいうのはある」 / Twitter
- Taichi UemuraさんはTwitterを使っています 「lex site 上の層の1-トポスはごく自然に同じ site 上の∞-層の∞-トポスに埋め込めるらしいから安心して埋め込んでほしい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「継続は力なり という言葉はScheme信者か表示的意味論信者が洗脳のために作ったフレーズであることは有名な話」 / Twitter
- HoTT/Coq 覚書
- 「型の理論」と証明支援システム -- COQの世界
- ホモトピー型理論入門
- トポロジー有名定理その1~ブラウワーの不動点定理~ | 数学・統計教室の和から株式会社
- ジャンク定理とは何ですか?
- 14 表現可能関手|プログラマのための圏論 (執筆中)
- Rustで自然数を作ってみた - Qiita
- CoqとAwodeyの論文の平等
- 前提条件と「and」と連携するための戦術はありますか? -- coq フィールド と coq-tactic フィールド 関連 問題 -Are there any tactics to work with preconditions with “and”? Q&Aハウス
- #TPP2014 高信頼な理論と実装のための定理証明および定理証明器 (3ページ目) - Togetter
- FT定理はすごい! - Finite Groups Fun 有限群あるいはちょこっと計算ファンの日記
- Coqと少しの圏論が分かる人向けのhomotopy type theory(その1) -
- Coqと少しの圏論が分かる人向けのhomotopy type theory(その2) -
- robert ghrist home page
- GeometryC.pdf
- Dimensions 1 Japanese - YouTube
Interaction Net, HVM
- κeenさんはTwitterを使っています 「新しい計算モデルを採用して一部のコードの時間複雑性が変わるタイプの言語ランタイムですって Kindelia/HVM: A massively parallel, optimal functional runtime in Rust https://t.co/0qgvHUL8O5」 / Twitter
- Kindelia/HVM: A massively parallel, optimal functional runtime in Rust
- κeenさんはTwitterを使っています 「コード見たらいきなり6GiB確保してそれ使い果たしたらそのまま死ぬみたいなワイルドな仕様だった。一応GCの仕組み的にゴミが発生せずにコピーとその場での解法でメモリ管理してるみたいだからこれでも問題ないのかな。 https://t.co/51rXo4ndTe」 / Twitter
- HVM/runtime.rs at master · Kindelia/HVM
- ko0307.pdf
- summer1.pdf
- Proof net - Wikipedia
- Linear logic - Wikipedia
- 線形論理 - Wikipedia
- Ludics - Wikipedia
- Geometry of interaction - Wikipedia
- Coherent space - Wikipedia
- Deep inference - Wikipedia
- ドッグさんはTwitterを使っています 「純粋関数型な IR を持つコンパイルターゲット HVM.再帰で勝手に並列化できたり,指数オーダなコードを線形オーダに落としたりできて,既存の実装(GHC)よりかなり速くなるケースがある.IR は C にコンパイルされる | 'High-order Virtual Machine (HVM)' https://t.co/OgHvQczWFH」 / Twitter
- ドッグさんはTwitterを使っています 「ここにコア言語の仕様と最適化手法の概要みたいなのが書いてあるな https://t.co/B5SigDnyeS」 / Twitter
- HVM/HOW.md at master · Kindelia/HVM
- ドッグさんはTwitterを使っています 「Interaction Nets という計算モデルを使ってるらしい https://t.co/fsEF3qRxIA この本読めば実装できると書いてある https://t.co/zGrhTGo6Zh」 / Twitter
- Interaction nets - Wikipedia
- The Optimal Implementation of Functional Programming Languages (Cambridge Tracts in Theoretical Computer Science, Series Number 45): Asperti, Andrea, Guerrini, Stefano: 9780060815424: Amazon.com: Books
- Jean-Yves Girard 教授インフォーマルレクチャー / Prof. Jean-Yves Girard Informal Lectures
- Geometry of Interaction Page
- 情報学広場:情報処理学会電子図書館
- 62_0621115.pdf
- proofnet 線形論理 - Google 検索
- 証明網 - Google 検索
- 相互作用の幾何 - Google 検索
- 相互作用の幾何学 - Google 検索
PDF
- Microsoft PowerPoint - esci.pub.ppt [互換モード] - e-sci111122-4.pdf
- computer software Vol.22, No.2 - 22_2_22.pdf
- untitled - 21_3.pdf
- ppl2-2.pdf
- hirai-thesis.pdf
- 26_doc3.pdf
- CB-002.pdf
- ambient-calculus.ppt - ambient-calculus.pdf
- IPSJ-MGN270905.pdf
- 25_3_49.pdf
- IPSJ-MGN300605.pdf
- game_and_set_theory.pdf
- 現代論理学の諸問題 | 慶應OCW|
- 講義一覧 | 現代論理学の諸問題 | 慶應OCW|
- JOKIHY-14_22117.pdf - 13_ishii.pdf
- Formal languages and Pervin spaces - JEP.pdf
- Agda 上でのZF集合論の構成
- 06gun_03hen_05.pdf
- 01gun_08hen_02.pdf
- untitled - semantics.pdf
- Microsoft PowerPoint - 04SyntaxSemantics.ppt - 04SyntaxSemantics.pdf
- www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf
- <4D6963726F736F667420576F7264202D20834D838A8356838395B68E9A82CC93C782DD95FB>
- paper.dvi
- 170221_yoshizoe.pdf
- 26411.dvi - 26_462.pdf
- chap13.pdf
- コンパクト開位相と写像空間の位相
- dd_nat_jp.pdf
- H8-garrigue.pdf
- lambda.pdf
- THE KYOTO
- THE KYOTO
- cartesian closed category in nLab
- 排中律やPeirce’s lawの挙動: chiguriの生態
- 論理と圏論のオイシイ話 | | 数学・統計教室の和から株式会社
- d.y.d.
- 26_2_3.pdf
- 20191109_C-3_resume(Tsunoda_Kentaro).pdf
- Computersoftware 20-3 - 20_285.pdf
- Kohei SuenagaさんはTwitterを使っています 「プログラミング言語処理系とは?OCaml の基礎や,高階関数型言語のインタプリタの書き方,型推論アルゴリズムの実装方法を解説!簡単なコンパイラの書き方や,字句解析や構文解析アルゴリズムもまとめてみました!https://t.co/dSZmD1KExq」 / Twitter
- IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University.
- Haskell/Denotational semantics - Wikibooks
- 120901fp key
- mltext.pdf
- Miura HidekiさんはTwitterを使っています 「面白いけど、Java, Python, RustでSymbolic Executionで検証できるだけの情報量を含んだ中間言語なんて作れるものなんだろうか?」 / Twitter
- Viper – Programming Methodology Group | ETH Zurich
- 不完全性定理
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「証明プログラミング (proofgramming) 言語Kind。見た目は TypeScriptっぽいが中身は Haskellで、より純粋な型および依存型をサポートしている。そのためCoq, Idrisなどと同じような目的にも使えるが、通常のWebアプリなどを書くことも可能。 https://t.co/TyiA75HeAs」 / Twitter
- uwu-tech/Kind: A modern proof language
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Haskell製の言語内DSLで仕様を記述・検証する。TLA+の置き換えを目指すらしい / 1件のコメント https://t.co/3wQEHto984 “Announcing Spectacle-A language for Writing & Checking Formal Specifications in Haskell” https://t.co/BKMoXsGY1j」 / Twitter
- Announcing Spectacle-A language for Writing & Checking Formal Specifications in Haskell
- クリーニ代数入門
停止性問題
その他
- Aritalab:Lecture/Algorithm/Halting Problem - Metabolomics.JP
- yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
- PFIセミナー 2013/02/28 「プログラミング言語の今」
- バグのないプログラムと不完全なこの世界: Architect Note
- バグのないソフトウェアの作れない理由 - Qiita
- ハッカーの遺言状──竹内郁雄の徒然苔第44回:複雑さを利用する? | サイボウズ式
- 決定不能問題から始める計算可能性理論入門
- 計算可能性理論 講義ノート
- d.y.d.
- ytakanoさんはTwitterを使っています 「人間の行動を予測できるマクスウェルの悪魔ができたとする。その悪夢が、Aは次の交差点を左に曲がると予測したとする。それを聞いたAは右に曲がると予測は間違っている事になる。よって人間には自由意志があり、因果的決定論は間違い。」 / Twitter
- ytakanoさんはTwitterを使っています 「構造が停止問題と一緒だな。」 / Twitter
- ytakanoさんはTwitterを使っています 「マクスウェルの悪夢の予測に反する行為を行おうとすると、強制力が働いて出来ないならば自由意志はない。何をしてもブチャラティが死んでしまうように宿命と言うわけか。」 / Twitter
- ytakanoさんはTwitterを使っています 「停止問題はこんな感じかな https://t.co/0C9wr7ZWL0」 / Twitter
- ytakanoさんはTwitterを使っています 「停止問題はわかりやすいけれど、不完全性定理はやっぱり複雑だな。」 / Twitter
- ytakanoさんはTwitterを使っています 「Rustでやろうとしたら、型に阻まれて無理だった。」 / Twitter
- チューリング完全性について詳しく教えてください。に対するShiro Kawaiさんの回答 - Quora
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「意図せずチューリング完全になってしまったシステム: - C++のテンプレート - Javaのgenerics - x86のMOV命令 - マジック・ザ・ギャザリング - DOOM (モンスターを信号として使用) - SQL (再帰的テーブル使用) - Sendmail.cf - JBIG2画像形式 (実際に悪用された) etc. https://t.co/yswgYet6m2」 / Twitter
- Accidentally Turing-Complete
- かわいしんさんはTwitterを使っています 「アルゴリズムは、プログラムという「実体・実装」を持つ前から一般的な課題を実行するための規則の集まりとして、ポピュラーでした。実際にユークリッドの「最小公約数を見つける」ものを始め、al-Khwarizmiの著作における民事的な金銭の授受や測量等々に用いられていました。」 / Twitter
- かわいしんさんはTwitterを使っています 「1936年にアルゴリズムの限界がチューリング機械によって示された後の時代に実用的なコンピュータが実現されていきます。今あなたがこのtweetを見ている機械もチューリング機械が持つしたがってその機械が持つ理論的限界がわかってから発明された、チューリング機械の子孫・末裔なのです。」 / Twitter
正当性・停止性
- チューリングの停止性問題 | IIJ Engineers Blog
- termination.pdf
- typedlmd.pdf
- Microsoft PowerPoint - 13comp.ppt - 13comp.pdf
- Microsoft PowerPoint - 02diag.pptx - 02diag.pdf
- 停止性問題について考える。Halting Problem - Unityでインディゲーム道!
- 3.handout.pdf
- Turing machine の停止問題
- チューリングマシンの停止性問題 - Thoth Children
- どんなコンピューターにも出来ない事 〜停止性問題〜|越境するテクノロジー|note
- Microsoft PowerPoint - 6.pptx - 6.pdf
- p1.dvi - 16_15.pdf
- ソフトウエア工学資料 - programVerification.pdf
- IPSJ-Z81-2N-02.pdf
- https://nagoya.repo.nii.ac.jp/record/19059/files/IPSJ-TPRO0402003.pdf
- 20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
- itp.dvi - itp.pdf
- Computability2019-12 - Computability2019-12.pdf
- バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
- 03-correctness.pdf
- algorithm4.pdf
- Byron Cook: Terminator - Proving Good Things Will Eventually Happen | Charles | Channel 9
停止性問題
停止性問題
- 停止性問題 - Wikipedia
- ゲーデルの不完全性定理 - Wikipedia
- ゲーデル数 - Wikipedia
- カントールの対角線論法 - Wikipedia
- カントールの定理 - Wikipedia
- 濃度 (数学) - Wikipedia
- 連続体仮説 - Wikipedia
- パラドックス - Wikipedia
- ラッセルのパラドックス - Wikipedia
電子情報通信学会知識ベース
- 電子情報通信学会知識ベース |トップページ
- 06gun_02hen_ab.pdf
- 06gun_02hen_01.pdf
- 06gun_02hen_02.pdf
- 06gun_02hen_03.pdf
- 06gun_02hen_04.pdf
- 06gun_02hen_05.pdf
- 07gun_01hen_ab.pdf
- 07gun_01hen_01.pdf
- 07gun_01hen_02.pdf
- 07gun_01hen_03.pdf
- バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
- 停止性問題について考える。Halting Problem - Unityでインディゲーム道!
- 20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
- 【コナハン】「人と機械の停止性問題」/「tbn*echo」の小説 [pixiv]
- マンガ6.b「停止性問題」 | ラビリンス人工知能
- 停止性問題は決定不能→バグのないソフトウェアは作れない? - sumiiのブログ
- 高階差分にもとづくループ停止性証明方法
- 「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について - noopな日々
- Magic: The Gatheringのルールが本質的に不完全であることの証明|Memeplexes
- ライスの定理 - Wikipedia
- チャイティンの定数 - Wikipedia
- 無限ループ - Wikipedia
- モデル検査 - Wikipedia
- 二分決定図 - Wikipedia
- 充足可能性問題 - Wikipedia
- 抽象解釈 - Wikipedia
- SPINモデルチェッカ - Wikipedia
- 制御フローグラフ - Wikipedia
- 決定問題 - Wikipedia
- コラッツの問題 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「ゲーデルの不完全性定理とチューリングマシンの停止性の問題は、両方とも自己参照命題と対角線論法の二つの証明があり別物。後者は番号付けを通して自己参照する感じ。」 / Twitter
チューリング 非古典論理 停止
- 非古典論理 - Wikipedia
- チャーチ=チューリングのテーゼ - Wikiwand
- Introduction to Mathematical Logic
- 20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
- kikuchi1 - kikuchi1.pdf
- 停止性問題 - Wikipedia
- 06gun_02hen_04.pdf
- チューリングの停止性問題 | IIJ Engineers Blog
- 再帰理論 - Wikiwand
- 形式言語 - Wikiwand
- main.pdf
- 計算可能性理論 講義ノート - computability2017fall.pdf
- 計算可能性理論2019 講義ノート - computability2019fall_draft.pdf
機械学習
- 機械学習 停止性問題 - Google Scholar
- AI研究における「ブラックボックス問題」とは何か | Forbes JAPAN(フォーブス ジャパン)
- Ceron - 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE
- アラン・チューリング「人工知能の “考え方” は我々とは異なる」 | and AI. – 人工知能のwebメディア
- いまさら不完全性定理と人工知能について - 再帰の反復blog
- AIは数学者にとってかわれない、これはチューリングが既に証明済み - 団塊亭日常
制約ソルバー
連言標準形
- uint256_tさんはTwitterを使っています 「連言標準形と積和標準形って同じようなものなんだろうか」 / Twitter
- ゆかたゆさんはTwitterを使っています 「@uint256_t 積和標準形は論理積の論理和であって、「変数に何を代入しても条件を満たす」もの(つまり同値変形)を見つけるために使います。 連言標準形は論理和の論理積であって、「ある変数を代入して条件を満たす」ものを見つけるために使います。 という説明を今思いつきましたが、鉞が来そうな気がしています。」 / Twitter
- uint256_tさんはTwitterを使っています 「@yukata_yu なるほど (連言じゃなくて選言標準形でしたね)」 / Twitter
SAT/SMT
テストケース生成
- 32_1_103.pdf
- ソフトウェア科学特論: 命題論理とSAT
- KJ00005931319.pdf
- SAT/SMTソルバの仕組み
- 基盤(S)離散構造処理系プロジェクト(北海道大学サイト) セミナー
- 高速SATソルバーの原理と応用 - nabeshima.pdf
- 2-2.pdf
- 07gun_01hen_02.pdf
- lecture4.dvi - lecture4.pdf
- 高速SATソルバーの原理と応用 - 20141015-atos10.pdf
- m_1205089.pdf
- 高速SATソルバーの原理と応用 - 2701.pdf
- はじめてのコンコリックテスト - S4-1.pdf
- 37136500.pdf
- OGAWA.pdf
- https://swest.toppers.jp/SWEST10/minutes/S23-a.txt
- 2H5-OS-03b-5.pdf
- 10-6-B4-4.pdf
- 情報基礎特論
- JP2014186407A - テストケース生成方法、テストケース生成装置およびプログラム - Google Patents
- 人工知能学会 第106回人工知能基本問題研究会(SIG-FPAI)
- 魔術師見習いのノート
- 充足可能性の意味・用法を知る - astamuse
- PowerPoint プレゼンテーション - ando_lab_intro_b4_2020.pdf
- 宋 剛秀 (Takehide Soh) - マイポータル - researchmap
- 教員詳細 - 番原 睦則
- Mutsunori Banbara's Web Page (in Japanese)
- 特開2015-22515 | 知財ポータル「IP Force」
- 九州大学-研究者情報 [松永 裕介 (准教授) システム情報科学研究院 情報知能工学部門]
- 甲1514_本文.pdf
- SAT技術の進化と応用 パズルからプログラム検証まで 特集 基 応 専 般 SAT 技術の進化 番原睦則 神戸大学 鍋島英知 山梨大学 SAT ソルバー 地区 1 地区 2 地区 3 地区 4 The story of satisfiability is the tale of a triumph - PDF Free Download
- DLPDFR013375_P1-61.pdf
- Sigss2012.pdf
- 業績
モデル生成
- 144449495.pdf
- IPSJ-JNL5502035.pdf
- KJ00009572843.pdf
- 命題論理 SAT モデル 生成 - Google 検索
- 393.pdf
- 90001267.pdf
- if12_168.pdf
- PowerPoint Presentation - OGAWA.pdf
- 充足可能性問題 (SAT)のQUBO表現 -最大独立集合問題に帰着させる方法- T-Wave
- 000049838.pdf
- F_039.pdf
- 論理と計算 講義ノート - logic2018spring-draft.pdf
- 2E1-J-1-03.pdf
- SAT µ»½Ñ¤òÍѤ¤¤¿ Áȹ礻¥Æ¥¹¥È¥±¡¼¥¹À¸À® - erato_seminar_20120706.pdf
- システム検証論 -モデル検査によるシステム検証- - hand4.pdf
- C 言語ベース設計に対する高位設計検証技術 - das2009-fujita.pdf
- スライド 1 - Kameya-IBISML-slides.pdf
- SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
- or55-11_706.pdf
- 人工知能学会 第97回 人工知能基本問題研究会 (SIG-FPAI)
- 学位論文要旨詳細
- Theses - 岩沼研究室
- jsai08.pdf
- 石畠正和 : Masakazu ISHIHATA - Publication
- Microsoft PowerPoint - 8.pptx - 8.pdf
C3
- SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
- RKX1209/c3: The C3, SMT/SAT solver written in C.
- SAT ソルバで数独を解く方法 - まめめも
- 2009-02-08
- Decision Procedures - Bit-Vectors
- SMT-LIB The Satisfiability Modulo Theories Library
- SATソルバを使うためにCNFを作る - soutaroブログ
- DPLLアルゴリズム - Wikipedia
blog
- SATソルバを使うためにCNFを作る - soutaroブログ
- SAT/SMTソルバの仕組み - scrapbook
- ヒビルテ(2012-08-26)
- Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
- SMT2ファイルの書き方
PDF
- IPSJ-MGN570811.pdf
- 27_3_24.pdf
- three_wise_men - 160307-16.pdf
- Sigss2012.pdf
- fose2012.pdf
- general2-3.pdf
- 37136500.pdf
- ソフトウェア科学特論: 命題論理
- 特集「最近のSAT技術の発展」
- ソフトウェア科学特論: 命題論理とSAT
- encoding.dvi - encoding.pdf
- 110008106386.pdf
- SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ
- CiNii 論文 - SATソルバ・SMTソルバの技術と応用
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł - YATABE.pdf
スライド
- SAT/SMTソルバの仕組み
- _pdf
- three_wise_men
- 000049838.pdf
- The Art of De-obfuscation - Speaker Deck
Wikipedia
二分決定グラフ
講義情報
- アルゴリズム特論
- S. Minato's Course Information (in Japanese)
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- 二分決定図 - Wikipedia
- ブール関数 - Wikipedia
- 二分木 - Wikipedia
- 決定木 - Wikipedia
- 真理値表 - Wikipedia
- ブール代数 - Wikipedia
- ベン図 - Wikipedia
- カルノー図 - Wikipedia
- クワイン・マクラスキー法 - Wikipedia
- 選言標準形 - Wikipedia
- 連言標準形 - Wikipedia
- 否定標準形 - Wikipedia
- 充足可能性問題 - Wikipedia
- 制約充足問題 - Wikipedia
- 命題論理 - Wikipedia
- 恒真式 - Wikipedia
- 数理論理学 - Wikipedia
- エルブランの定理 - Wikipedia
- DPLLアルゴリズム - Wikipedia
- タブローの方法 - Wikipedia
Qiita
- 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
- z3 (smtソルバ) で遊ぶ - Qiita
Twitter
- るくすさんのツイート: "UCLID、適当に変数のビット幅を減らしてみてUNSATになればUNSAT proofを取り出す。でproof以外のクロージャを1変数に置き換えて規模を削減した物にbit-blasting。これでSATになればproof部分のビット幅が足りてない事が原因というヒューリスティック"
- るくすさんのツイート: "Bit BlastingとTseitin encoding実装しなおさなきゃ駄目だ"
- Shinji KonoさんはTwitterを使っています 「SATの変数の数は線形だが、それに全部引っかかると指数乗になる。解が多くなると易しくなってしまうので絞る必要があるが、そうすると関与する変数が多くなり、それを見つけるのは容易しになる。繰り返しネックを作るには…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「変数の組合せを変えていく必要があるが、変数の数には限りがあるので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結局、変数の数がないとだめ。しかし、それは線形にしか増えないので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「というわけなのでP=NPがdefenceできてるのは驚異ではあるな。決まったパターンでしかネックを作れないことがわかって肯定的に解けてしまう可能性もある。」 / Twitter
- retrageさんはTwitterを使っています 「[2109.13498] Learning to Superoptimize Real-world Programs https://t.co/jWJD30qeYV」 / Twitter
- [2109.13498] Learning to Superoptimize Real-world Programs
- retrageさんはTwitterを使っています 「斜め読みしただけだけど、prgram correctnessでSMT Solver使うのってnaiveすぎると思う。実世界のソフトウェアだと複雑すぎて検証できないんじゃないかな」 / Twitter
- retrageさんはTwitterを使っています 「あとHacker’s Delightを参照しているのがちょっと面白い」 / Twitter
- SAT/SMT by Example
- openSUSE/libsolv: Library for solving packages and reading repositories
- pycosat 0.6.1 : Python Package Index
- PicoSAT
- wkschwartz/pigosat: Go (golang) bindings for Picosat, the satisfiability solver
- z3 - Implementing bit-blasting for floating-point arithmetic in SMT - Stack Overflow
- Vol.28 No.2 (2013/03) SAT ソルバー – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- バージョンの充足可能性問題 | POSTD
- 権藤研 輪講資料 2018/6/19 新山 (充足可能性問題について)
- Introduction - Verification For Dummies: SMT and Induction by OCamlPro
- 中村さんはTwitterを使っています: 「これはめちゃ嬉しい。exact coverの説明が(そもそも説明が別の本に書いてあるせいで)さっぱりだったので、ここの説明片手に原著を読もう https://t.co/uW0ESXMlbf」 / Twitter
- Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
- 中村さんはTwitterを使っています: 「アルゴリズムAのSATソルバを自作してlangfordを解かせたいのだけど、いまいち説明が理解できないので問題のインスタンスが作れなくて困ってた。」 / Twitter
- 中村さんはTwitterを使っています: 「Knuth自身によるSAT本の解説スライド(SAT2012の招待講演スライド)を見つけて、「これだー!」と思ったが、先生スライド作るのは苦手なのかな・・・ https://t.co/4seCbcTUJU」 / Twitter
- sat2012.dvi - sat2012.pdf
- 中村さんはTwitterを使っています: 「まぁちょうど読みたかった論文の切り抜きが載ってたのでよしとする。」 / Twitter
Alloy
Alloy
- チェシャ猫さんはTwitterを使っています 「そういえば以前「Alloy は検査可能な仕様記述言語であって、いわゆるモデル検査器ではないのでは」と言う話が出たことがあった。この Alloy 6 の機能追加を以って、Kripke 構造と様相論理式の ¥models 関係を検査する「いわゆるモデル検査器」になった、とも言える。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「形式検証 / 形式手法 Advent Calendar 2021 の 9 日目を投稿しました。遂に Zenn デビューだ! Alloy の使い勝手が激変する大注目機能です。時間発展するシステムの記述と検査がビルトインで可能に。 Alloy 6 の新機能 Mutable Field と線形時相論理|チェシャ猫 https://t.co/v2PZEUvlNL #zenn」 / Twitter
- Alloy 6 の新機能 Mutable Field と線形時相論理
- チェシャ猫さんはTwitterを使っています 「Zenn トップページのトレンドに載ってたので記念撮影。 #zenn https://t.co/ABLBupNlHC」 / Twitter
- チェシャ猫さんはTwitterを使っています 「この辺の話。 https://t.co/Um08xJk67S」 / Twitter
- チェシャ猫さんはTwitterを使っています 「今まで Alloy を普通に「モデル検査器」と呼んできたけど、確かに言い回しとして正確じゃない。モデル検査の範囲を「与えられた Kripke 構造が目的の様相論理式を満たすか判定する手法」みたいに定義するなら、Alloy はこの範疇には入ってない。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「でも初めてツールに触れる人に対して「定理証明 vs モデル検査」みたいな説明の仕方は便利ではあるし、ちゃんと述べたいとき以外は「モデル検査とは有限状態を全探索する手法」ぐらいの雑さじゃダメかなぁ。」 / Twitter
- cutsea110さんはTwitterを使っています 「@y_taka_23 そのレベルでないと分からない」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「@y_taka_23 有界モデル検査器でいいのでは」 / Twitter
- チェシャ猫さんはTwitterを使っています 「@chiguri この会話を見てのツイートでした。経緯も含めて「Alloy は SAT ソルバでモデル発見が可能なように設計された仕様記述言語」なら確実だと思いますが、普段はモデル検査器と呼んでもいいんじゃないかなという個人的な印象です。https://t.co/San1LfvNTi」 / Twitter
Alloy
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「#builderscon に採択されたので、今考えている形式手法の可能性についてブログにまとめて、公開しました! SWETグループが考える形式手法の現在とこれからの可能性 - DeNA Testing Blog https://t.co/lAmEXLS5jg」 / Twitter
- SWETグループが考える形式手法の現在とこれからの可能性 - DeNA Testing Blog
- takeoさんはTwitterを使っています 「@hoddy3190 あの、Alloyはモデル検査にも使えますが、モデル検査の手法ではないです。重箱の隅をつつくようで恐縮ですが……」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake コメントありがとうございます! おそらく表の部分をご覧になってのコメントかと思われますが、カラムタイトルを「代表的な記述言語」としているため間違いではないと思われます。 もし、モデル検査のためだけの手法と見えてしまうのであれば修正したいのですが、どの箇所か教えて頂けますでしょうか?」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 おっしゃるとおり、表の「代表的な記述言語」にAlloyが含まれているからですが、「代表的な記述言語」だと間違いではない、というのは私にはまだピンと来ていないです。Alloyはモデル検査のための言語ではないので。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 一応ですけど、AlloyはZを元に作られた仕様記述言語ですよ」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake はい、そこの背景は理解した上での発言です。私も最初は仕様記述言語の箇所に書いていましたが、モデル検査(モデルファインダー)としての使われ方の方がメジャーなのかなと思い、今の書き方をしています。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 うーん、モデル検査とモデル発見も別のものですし、そこをカッコで書かれるのは違和感ありますね。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 Alloyをモデル検査用のカテゴリに入れるのは、色々なところで見ますが「よくある間違い」だと思っています。 軽量に仕様記述をするための機能がモデル発見なので、「モデルファインダーだから仕様記述言語ではない」はおかしいと思います。」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake memo: こちらのツイートの返信に続き書いてあります。https://t.co/P2WrcKib57 ご興味ある方はご覧ください。 すいません、Twitter始めたばかりなので返信先間違えてしまいました。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 一応ですけど、AlloyはZを元に作られた仕様記述言語ですよ」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 一方、「メジャーだと思う」というのは私の観測範囲での主観ですし、そもそもmodel checkerではなく、model finderだ!という意見は納得ができます。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 https://t.co/hao4MwpffC」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 貴重なご意見ありがとうございます。 Alloyに関して明るくない部分がありました。明日修正を検討させていただきます。」 / Twitter
- 鈴木穂高 / Hodaka SuzukiさんはTwitterを使っています 「@bonotake 入れ違いで失礼しました。」 / Twitter
- takeoさんはTwitterを使っています 「@hoddy3190 いえいえ、差し出がましいことを申しまして、すみません」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「@y_taka_23 なるほど。私も特にモデル検査と呼ぶこと自体には違和感ないですね。区別するならモデル生成とか言ってもいいかもしれませんが・・・」 / Twitter
- takeoさんはTwitterを使っています 「@chiguri @y_taka_23 ツイートをご覧の通り、僕自身は割と違和感を感じています。SATソルバを使う、ソルバを使った網羅的探索をする、という点は確かに共通していますが……うーん」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「@bonotake @y_taka_23 やはりモデル検査というからにはモデルがあってしかるべき、という感じでしょうか。私もチェシャ猫さんと同じようにモデル検査と定理証明に大別しがちなのでそのせいかもしれません(第三の分類が必要かも)。ちょっと自分でも考えてみます。」 / Twitter
- takeoさんはTwitterを使っています 「@chiguri @y_taka_23 今までの形式的仕様記述が(対話的)定理証明とセットで使うものだったが、Alloyはモデルファインダーとセットで使うという点では確かに異なっています。ただ、両方共仕様の記述がプライマリーな目的であることは同じなので、「仕様記述」という分類があるならそちらに入れるのが筋かなと」 / Twitter
- takeoさんはTwitterを使っています 「@chiguri @y_taka_23 モデル発見とモデル検査は違うものか、という点でも、僕は違うと言ってしまう側です。ただ、要素技術や、falsifierとして利用されるという点では確かに似通ってはいます」 / Twitter
- cutsea110さんはTwitterを使っています 「@bonotake @chiguri @y_taka_23 たしかに言われてみれば自分もalloyで書いておいてpredやassertのまとめたものを仕様書として共有したな。 自分の中ではモデル検査器だと思ってたけど使い方はそうではなく仕様記述だったのか。」 / Twitter
- takeoさんはTwitterを使っています 「@cutsea110 @chiguri @y_taka_23 正しい使い方だと思うし、僕もよくそういう風に使っていました。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「これはチェシャ猫的にはかなりの大ニュースなんですけども、今年 11 月 にリリースされた Alloy 6 では遂に時間発展するインスタンスと線形時相論理の検査機能がビルトインで搭載されました。新しい予約語 var を付けたフィールドは時間依存とみなされ、通例通り ' を付けることで事後状態を表します。 https://t.co/R4G15YR0yO」 / Twitter
- チェシャ猫さんはTwitterを使っています 「実装は典型的な SAT ソルバによる線形時相論理の有界モデル検査で、検出されるインスタンスは必ず lasso(ρ みたいな形の先端でループしたパス)になります。元々は Electrum という Alloy の拡張として開発されていて、それが本体に取り込まれた形です。 https://t.co/C5YHO1as7p」 / Twitter
- haslab/Electrum2: Electrum is a temporal extension to Alloy. Alloy is a language for describing structures and a tool for exploring them. It has been used in a wide range of applications from finding holes in security mechanisms to designing telephone switching networks. This repository contains the code for the tool.
- チェシャ猫さんはTwitterを使っています 「元になった 2018 年の論文はこちら。J. Brunel らによる "The electrum analyzer: model checking relational first-order temporal specifications" です。4 ページしかないので読もうと思えばすぐ読めます。 https://t.co/7abImZTGfq」 / Twitter
- The electrum analyzer: model checking relational first-order temporal specifications | Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
- チェシャ猫さんはTwitterを使っています 「上のスクショに使ったソースコードを Gist に貼っておきました。簡単ですが、線形時相論理の例として「赤と青が同時に点灯しない」「無限回、通行可能状態になる」の検査が入れてあります。Alloy 6 を DL して読み込ませると、UI もかなり変更されたのが分かると思います。 https://t.co/NsLvC0J8nv」 / Twitter
- Traffic signals with Alloy 6's temporal logic
Rust
- Hideyuki TanakaさんはTwitterを使っています 「充足問題をRustコンパイラのmatchのnon-exhaustive patternsの検出に帰着できるんで、RustコードをコンパイルするのはNP Hardだという話 (´・_・`) / 1件のコメント https://t.co/NJtM9FVK29 “Compiling Rust is NP-hard” (3 users) https://t.co/mIIoNtshxZ」 / Twitter
- [B! *あとで読む] Compiling Rust is NP-hard
- Compiling Rust is NP-hard
- Hideyuki TanakaさんはTwitterを使っています 「CNFの否定は余集合のDNFになるんで、まさにそれでカバーされないものが元の式を充足される割り当てになるって話で言われてみればそうだ(´・_・`)」 / Twitter
Sugar
- SAT型制約ソルバーSugarについて
- お絵かきロジックをSugar制約ソルバーで解く
- SATソルバーMiniSatとSugarを導入 - Qiita
- 制約充足問題を解くためにsugarをインストール - TIM Labs
- Sugar制約ソルバーがパズル神 – The Coherence World
PDF
- Microsoft PowerPoint - csp.ppt
- Microsoft PowerPoint - 11Prolog演習応用編印刷用.pptx
- Microsoft PowerPoint - backtrack.pptx
- 67.pdf
- introduction_sat.pdf
- digidepo_8559157_po_r6-2-7.pdf
- 制約論理型言語における制約集合の構造解析による代数制約ソルバーの効率化についての検討 - 国立国会図書館デジタルコレクション
american fuzzy lop
コンコリック実行エンジン
- angr, AFL, Driller | 一生あとで読んでろ
- Conpy:Pythonアプリケーションのためのコンコリック実行エンジン | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- これまで調べてきたファジングの話 - who3411のブログ
- ソフトウェアテストの技術:現場から研究へ,研究から現場へ
- コード難読化・アンパック系論文サーベイ - Log.i53
- 改竄とリバースエンジニアリング - owasp-mstg-ja
- DeepState: C/C++ symbolic execution unit test framework from Trail of Bits | Firmware Security
- 実装して学ぶ Symbolic Backward Execution - Speaker Deck
- はじめてのコンコリックテスト
- mumumuさんはTwitterを使っています 「ファジングの最適化のためにMutationの選択を強化学習しようぜ、みたいな話を聞いてなるほど状態だった 指摘されるとせやな、という感じだが」 / Twitter
- mumumuさんはTwitterを使っています 「たしかDirectedなファジングにアニーリングを使ってたやつは読んだことあって、システムっぽい話に数理最適化とか機械学習の話題を混ぜるとこうなるのか感があったな」 / Twitter
- Aurélien FrancillonさんはTwitterを使っています 「Our new paper (to appear at NDSS 21) with @poeplau SymQEMU: Compilation-based symbolic execution for binaries Like for SymCC we directly embed the instrumentation for symbolic execution in the app, but this time in QEMU, so works with binaries PDF: https://t.co/785ORontDi https://t.co/CCM40sb5Xd」 / Twitter
- ndss21_symqemu.pdf
- american fuzzy lop
- google/AFL: american fuzzy lop - a security-oriented fuzzer
- ご注文は American Fuzzy Lop ですか? - Qiita
- RustでAmerican Fuzzy Lop(afl) - Qiita
- mirrorer/afl: american fuzzy lop (copy of the source code for easy access)
- afl/afl-fuzz.c at master · mirrorer/afl
- american fuzzy lop (fuzzer) - Wikipedia
- Chapter 23 Fuzzing with afl-fuzz
- Breaking Ruby’s Unmarshal with AFL-Fuzz – Fuzz Stati0n – Medium
- American Fuzzy Lop (AFL)の構造 - 睡分不足
- AFL on my extensible fuzzing framework (squiffer)
- afl/technical_details.txt at master · mirrorer/afl
- るくすさんはTwitterを使っています: 「2016年のハッキング自動化コンテストDARPA CGCでも上位チームの殆どがファジングとシンボリック実行を組み合わせていて、現在でも活発に研究されてる分野です。 CGCで優勝した我らがCMUの「mayhem」だけは別格の高度なシンボリック実行切り替えシステムなんだけど、詳細は表に出てないです(言えません」 / Twitter
- るくすさんはTwitterを使っています: 「あ CGC当時のmayhemは純粋にAFL+シンボリック実行だったのかも。 説明がめんどくさいので2016年のntddk先生の記事を見て。 https://t.co/d3JVSu668P 今のmayhemは... アレがアレしてアレになってる」 / Twitter
- angr, AFL, Driller | 一生あとで読んでろ
- Miura HidekiさんはTwitterを使っています: 「そうか、シンボリック実行、具体例を挙げて抽象実行するよりより汎用的な解析結果が得られそうだな。組み合わせ爆発さえ抑え込めれば」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「mmcもシンボリック実行を取り入れ始めていると言えるのかな?結構効果は絶大な気がする。ライブラリレベルで呼び出しが無くても型を得ることが出来そうな気配」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「全然次元の違う話だった。すげー、これをガリガリ実装できるリソースのある国とは戦争したって勝てねーよ」 / Twitter
- uint256_tさんはTwitterを使っています: 「ファザーというもの, よくわかってないけど, バイナリを解析して分岐を網羅できそうな入力をSATとかで生成するのかな」 / Twitter
- mumumuさんはTwitterを使っています 「Automated Whitebox Fuzz Testing [NSDI '08] BlackBoxなファジングはあまりにも非効率なので,Mutation時にシンボリック実行の制約情報を活用するWhitebox手法を提案しSAGEを実装.(実行時に制約を生成し,Mutation時に一部の制約を否定した入力を生成).MS Researchの人がMSのAppに適用していい話」 / Twitter
- American Fuzzy Lop (AFL)の構造 - 睡分不足
- GJDuck/e9afl: AFL binary instrumentation
- 制約充足問題 - Wikipedia
- 制約充足問題 - 数理計画用語集
- 制約充足問題についてのゆるふわな話 - Qiita
- SuperCon 2016 予選問題をCSPソルバーで解く - ブログのとさか
- 世界一美しい覆面算を制約ソルバーで解く - 屯遁のパズルとプログラミングの日記
- 制約計画ソルバー SCOP 入門編
- 離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
- B.4 制約充足問題ソルバwcsp
- 離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
- 制約プログラミングとは | constraint.org
- SATソルバーは問題解決のための「銀の弾丸」か?
- 制約充足問題のSAT符号化
- パズルをSugar制約ソルバーで解く
- 《制約充足問題》 - ORWiki
- ikyuuさんはTwitterを使っています 「HORNSATがPに入る話(貪欲法で解ける)を読んでいて、Horn formulaがPrologで使われていることを知った。 いつか論理プログラミングとかも勉強してみたいな:)」 / Twitter
- Introduction to Fuzzing - Speaker Deck
- 解析基盤技術を用いた効率的なソフトウェアテスト - Speaker Deck
- ZetZ、形式的検証機能を備えたCのダイアレクト
PDF
- 20800022 研究成果報告書
- _pdf
- _pdf
- encoding.dvi
- termination.pdf
- typedlmd.pdf
- www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/termination.pdf
- www.fc.inf.kyushu-u.ac.jp/~kawamura/t/joi/H290320_yoyogi.pdf
- paper.pdf
- general4-3.pdf
- 1205_29.pdf
- bachelor.pdf
- ieicej07.pdf
- 100229.pdf
- Microsoft PowerPoint - 03np.ppt [互換モード]
- Kenji OtsukaさんはTwitterを使っています 「停止性問題の重要性 https://t.co/XrJkRnqxCZ」 / Twitter
- What is the importance of the Halting Problem? - Quora
- Kenji OtsukaさんはTwitterを使っています 「ポストの対応問題については、チューリングの停止性問題への Reduction を用いて決定不能であることを証明できる。 https://t.co/xfFjglJcOh」 / Twitter
- 決定不能問題から始める計算可能性理論入門 - resume.pdf
- Kenji OtsukaさんはTwitterを使っています 「チューリングの停止性問題について、矛盾を導いて証明する方法は、ほかの場合にも使える。 たとえば、「任意の関数と任意の入力についてテキストをプリントすることを判定する関数は作れるか」という命題について、同じように矛盾を導いて不可能であることを示せる。」 / Twitter
Twitter
- El Pin AlさんはTwitterを使っています 「OCaml、このコードの型検査も停止しない。 applicative functorがあって、かつpathベースのモジュールシステムだと、再帰モジュールを上手く扱うのは難しいよね https://t.co/CAcIS33dZj https://t.co/lb7w5a4aoJ」 / Twitter
- unterminating type checking for recursive modules · Issue #3674 · ocaml/ocaml
- 画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
- まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n <= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
- のぶしみさんはTwitterを使っています 「def f(n): if n<=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
- まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
- まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
- fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
- Compiler Explorer
- 7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
- N1528: Why undefined behavior for infinite loops?
- 7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
- Masaki HaraさんはTwitterを使っています 「> My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ > As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
- κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
- κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
- herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter
形式手法・形式言語
形式仕様
- mumumuさんはTwitterを使っています 「すべての仕様を形式的に記述して,バグが無いシステムの実装を試みている Deep specification が近いかもしれない.ドキュメントには仕様以外も含まれているかもだけど. https://t.co/yh80HzwpDs」 / Twitter
- Yale FLINT Group: DSCAL
- hikaliumさんはTwitterを使っています 「ソースコードに対してはユニットテストが書けるのに、ドキュメントには書けないので言行不一致を見過ごしがち(みんな機械可読な言語でドキュメントを書けばいいのに…(それを人はソースコードと呼ぶ))。」 / Twitter
- isooさんはTwitterを使っています 「@hikalium ソースコードにも色々と…。versionNoって変数がbool型だったりします。もう滅びろって思った。」 / Twitter
- mumumuさんはTwitterを使っています 「これをOSのレイヤに適用した例としてmCertiKOSある. https://t.co/D9688DFsZ0」 / Twitter
- The Science of Deep Specification
SPIN・Promela
形式手法
- 「形式手法」をものづくりへ ─ 高品質・高効率な製品開発に向けて - NII SEEDs / 国立情報学研究所
- 形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
- Scaling symbolic evaluation for automated verification of systems code with Serval | Proceedings of the 27th ACM Symposium on Operating Systems Principles
- uw-unsat/serval-sosp19: This repo contains the artifact for our SOSP'19 paper on Serval
- ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
- リージョンについて | κeenのHappy Hacκing Blog
- 仕様記述テクニック「Promotion」の紹介 - DeNA Testing Blog
- Program Synthesis - Microsoft Research
- rosette.onward13.pdf
- osdi16-sigurbjarnarson.pdf
- Hyperkernel: Push-Button Verification of an OS Kernel
- Simple and Precise Static Analysisof Untrusted Linux Kernel Extensions
- 一人Computer Science Advent Calendar 2017 - Qiita
- Proof Assistantを作る・理論編 その1 - The curse of λ
- ゼロから学んだ形式手法 - DeNA Testing Blog
- CSP-Prover
- 電子情報通信学会知識ベース |1編 ソフトウェア基礎
- 電子情報通信学会知識ベース |2編 計算論とオートマトン
- 電子情報通信学会知識ベース |3編 アルゴリズムとデータ構造
- 電子情報通信学会知識ベース |7編 ディペンダブルコンピューティング
- 01gun_08hen_02.pdf
- モデル検査器を作って学ぶマルチスレッドプログラミング - connpass
- 07gun_01hen_01.pdf
- スパークスシステムズ ジャパン ニュースさんはTwitterを使っています 「構造計画研究所様 モデルベース形式検証ツールDynaSpec販売開始のお知らせ https://t.co/0niVmzNqtE」 / Twitter
- スパークスシステムズジャパン フォーラム - ニュース
- 構造計画研究所 | モデルベース形式検証 | DynaSpec | 日本
- Category:形式手法 - Wikipedia
- Category:プログラミング言語理論 - Wikipedia
- seminar_tokyo_20140916-02.pdf
- 000049838.pdf
- Tsukasa #01さんはTwitterを使っています 「暗号ライブラリの実装において、形式的検証が成されたプリミティブを C やアセンブリ言語の形態で出力する研究プロジェクト。 HACL* https://t.co/erpdiyzBET」 / Twitter
- project-everest/hacl-star: HACL*, a formally verified cryptographic library written in F*
- SPINによるモデル検査-1 - S2-a-material-nonaka.pdf
- 0.PROMELAの基本文法
- Microsoft PowerPoint - RS2010-spin1.pptx - RS2010-spin1.pdf
- xv6から始めるSPIN入門
- 猫でもわかる! モデル検査器 SPIN 入門
- 31_4_40.pdf
- UMLとモデル検証 | オブジェクトの広場
- B_020.pdf
- CiNii 論文 - 上流設計からモデル検査プロセスまでの一貫設計検証環境 : UML記述からSPINモデル検査器用プロセス定義及び線形時相論理式への自動変換手法
形式化されないもの
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「っていうか、値クラスとか、そんなこといわゆる設計で考えるようなことじゃないと思うのだけど。いわゆる設計界隈、プログラミングに引き摺られすぎじゃない?より重要な、構造に対する制約、機能に対する制約、後の改変が許される範囲、許容されるべきバリエーション、みたいな辺りがお留守に見える。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「つまり、デザインにおいて大切なものは形式化されないのですよ。でも、それらは然るべきスキルを持った人がプロダクトを見れば明らかなんです。ここがデザインと工学の衝突点。いちばんワクワクするところ。 https://t.co/Ex2AHF83eD」 / Twitter
- 杉本啓さんはTwitterを使っています 「いままさにリリースするプロダクトに、必要かつ十分な設計配慮が織り込まれているということ。不足もなく余分もなく。これが大事。あとは些事。」 / Twitter
- 杉本啓さんはTwitterを使っています 「ということは、リリースを重ねる都度、その新しいフィーチャを実現するためのコードだけでなく、関連する他の部分のコードも見直して、全体として最適なアーキテクチャにしなければならない。この点を見落としていると、増築を重ねた温泉旅館みたいなプロダクトになると思う。」 / Twitter
アナロジー・一般化・精密化
- ななこさんはTwitterを使っています 「数学において新たなアナロジーを見つけることは当然大いに価値のあることだけど、他の誰かが見つけたアナロジーに興味を持つことは何かを生み出せるんだろうか」 / Twitter
- 小山信也さんはTwitterを使っています 「@savarin_math アナロジー・一般化・精密化が,数学研究の三大手法ですので,既成のアナロジーであっても,その一般化や精密化を行えば,立派な研究になり得ます.」 / Twitter
- ななこさんはTwitterを使っています 「@Tomuo2000 確かにそうですね。既成のものも一般化や精密化の余地はありそうです。」 / Twitter
- 小山信也さんはTwitterを使っています 「@savarin_math その三大手法を拙著「数学の力」で解説したので,良かったら今度持参します.」 / Twitter
- ななこさんはTwitterを使っています 「@Tomuo2000 いろいろ紹介して下さってありがとうございます。 大変勉強になります。」 / Twitter
- AWSにおける形式手法 - masateruk’s blog
- Parallel Commits: An Atomic Commit Protocol For Globally Distributed Transactions
- PGConf.Online 2021 - Consensus, Postgres, Multimaster
- 「形式手法はなぜ流行っていないのか」に対する異論 - interdb’s blog
- 000005272.pdf
- 000045158.pdf
- swest13-S3-b.pdf
- 大学の数学の入試問題を量化子消去でサッと解く - Qiita
- 論理的に考える数学的 BNF - Qiita
- 形式手法はなぜ流行っていないのか - Qiita
- 形式言語理論における3つの『密』概念 - Qiita
意味論・インタプリタ・コンパイル規則
操作的意味論
- プログラム意味論 - Wikipedia
- プログラミング言語の基礎
- sc1.pdf
- 操作的意味論 - mrsekut-p
- スモールステップ意味論 - mrsekut-p
- ビッグステップ意味論 - mrsekut-p
- プログラム言語論 意味論 - 2.pdf
- アンダースタンディング・コンピュテーション 第 2章 プログラム意味論 - lect2.pdf
- yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
メタサーキュラーインタプリタ
- itp-interpreter.pdf
- 自己反映計算 (計算機科学) - Wikipedia
- S8
- メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
- basic data types in LISP.pdf
- - no title specified
意味論
位相・領域理論
- チェシャ猫さんはTwitterを使っています 「位相を定義するとは即ち収束を定義することなので、むしろ数値計算なんかとは近しい関係にある。その昔、初めて p 進数体に出会ったとき、センセーに「君は Q_p を何か抽象的なものだと思っているようだが、プログラミングできるような極めて具体的な対象である」と言われてなるほどと思った記憶。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「特に p 進数体はもともとの出自がそこで、「有理数体、うかつに極限取るわけにもいかんし何もわからん…」「とりあえず近似計算できるように完備化した体の性質でも調べたろ…」「あれ、でも実は局所的な情報から元の有理数の情報が復元できるんじゃね?」「天才!」というのが代数的整数論(暴論)」 / Twitter
- lotzさんはTwitterを使っています 「線形代数もそうだけど「位相空間論」も現代数学では大事って、そうは言ってもデータ分析とか数学に興味のあるプログラマーからしたら実際にプログラムで計算できない位相は手を出しにくいよなーと一瞬思ったけど、そんなこと無かったわデータ分析にもプログラミングにも使われてるわ位相。やっぱり大事」 / Twitter
- 等しいことが判定できなさそうで判定できる関数の実装
- さのたけと’さんはTwitterを使っています 「@lotz84_ 具体的にはどのように?」 / Twitter
- lotzさんはTwitterを使っています 「@taketo1024_2 この人のTLを見てもらえれば分かります! @taketo1024_2 それは冗談として😅(逆に一番お話を聞きたいですw)計算ホモロジーについてはシャカセツなので置いておいて… 位相を応用するという意味でパッと思いついたのはデータ分析についてはTDAでプログラミングについては領域理論ですかね👀」 / Twitter
- さのたけと’さんはTwitterを使っています 「@lotz84_ いやいや、知らないので質問しました😂 TDA で位相空間論を直接使う印象はあまりありませんでした。むしろ組み合わせ論的な議論が多そうな。 領域理論については聞いたこともありませんでした👂」 / Twitter
- Hiroyuki MiyoshiさんはTwitterを使っています 「@taketo1024_2 @lotz84_ 領域理論はT2より弱い位相の話なので普通の数学の人は知らなくても無理ないですが、荒っぽく言えばデータに計算の進行が収束に対応するような位相を導入すると、関数の連続性と計算可能性が対応するといった話ですね。連続関数だけ考えるのでD ≅[D→D]が言えて関数も普通のデータとして扱えるとか。」 / Twitter
- lotzさんはTwitterを使っています 「@metaphusika @taketo1024_2 TDAに関しては確かに計算に直接使うというよりかは概念として出てくるって感じかもですね😅 (離散モース理論の講義動画見たいと思いながら積んでるます…) @metaphusika 分かりやすい簡潔な説明ありがとうございます😭神🙏」 / Twitter
- lotzさんはTwitterを使っています 「@metaphusika @taketo1024_2 位相のプログラムへの応用という意味では、領域理論に関連する話で、(有限とは限らない)データ構造のコンパクト性から停止が保証される関数みたいなのを見て面白かったです👀 https://t.co/Pm0E7x3aHR」 / Twitter
- Hiroyuki MiyoshiさんはTwitterを使っています 「@lotz84_ @taketo1024_2 コンパクト性というのはある種の有限性を保証する性質なので、停止性の証明と関係するのは自然といえば自然ですね。」 / Twitter
- さのたけと’さんはTwitterを使っています 「@metaphusika @lotz84_ っほー…! 全く知りませんでしたが、こちらは位相空間論を直接使いそうな雰囲気ですね。いずれ勉強したいことリストに(心の中で)追加しておきます🙏」 / Twitter
- Hiroyuki MiyoshiさんはTwitterを使っています 「@lotz84_ classical general topologyならhttps://t.co/T7bSY8FuOR… 辺りの解説が欲しいとかですかね。」 / Twitter
- coq-community
- lotzさんはTwitterを使っています 「@metaphusika おおお、Coqで位相を直接扱えるんですね、これは面白そう👀ありがとうございます!まずはCoq読めるようにならないと…😇」 / Twitter
圏論
- ytakanoさんはTwitterを使っています: 「ある特殊な圏を考えて、その圏からSetの圏への関手を考えると、その関手とグラフはピッタリ一致するので、グラフは関手。これを聞いて面白いと思わないとモチベーションが高まらないんだろうなあ。」 / Twitter
- ytakanoさんはTwitterを使っています: 「みんなの圏論、p. 191. > 同じモノイドに無限に多くの表示がある モノイドが一つで、対応する表示(自由モノイドと同値関係)は複数あると読める。」 / Twitter
- ytakanoさんはTwitterを使っています: 「> 多くの異なるスキーマで同じ圏を表示できる 圏が一つで、対応する表示であるスキーマが無限にあると読める。」 / Twitter
- ytakanoさんはTwitterを使っています: 「> スキーマを構文論とみなして、それが表示する圏を意味論と考えられる 意味論が一つあり、対応する構文が無限にあるのはわかる。」 / Twitter
- ytakanoさんはTwitterを使っています: 「> スキーマはコンパクトで有限の空間と時間で記述できるが、それが生成する圏は無限になりうる。 スキーマが表示や構文論なら、それを記述するには無限の空間が必要では?記述内容の前後関係で整合性があわない。構文が一つでも解釈の仕方は複数取りえる気もするし。よくわからん。」 / Twitter
- ytakanoさんはTwitterを使っています: 「例を見たほうがはやそう」 / Twitter
- ytakanoさんはTwitterを使っています: 「例だとスキーマが一つで、そこから圏を無限に生成しているので、この文との整合性があわないな。」 / Twitter
- d.y.d.
- katsumata.pdf
- 並列論理和の続き - sumiiのブログ
- 並列論理和 - sumiiのブログ
- 表示的意味論がわからないので簡単な例を翻訳してみた。 - Qiita
- zehnpaardさんはTwitterを使っています: 「@sin_clav 操作的意味論によって定義される抽象機械はプログラミング言語を実行可能なインタプリタそのもの(の形式的な定義) 表示的意味論とはプログラミング言語をより低レベルな「言語」へのコンパイル規則の定義」 / Twitter
- zehnpaardさんはTwitterを使っています: 「@sin_clav すみません、言い方がおかしかったです・・・ 正しくは「表示的意味論とはプログラミング言語をより低レベルな「言語」へとコンパイルする規則の定義」でした」 / Twitter
- zehnpaardさんはTwitterを使っています: 「@sin_clav この場合の「より低レベルな言語」とは例えばラムダ計算のことになります」 / Twitter
- プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話 - Google スライド
- Abstract Interpretation in a Nutshell
- てらモス🈚さんはTwitterを使っています: 「Cでいう構造体みたいな集合としてのデータを考えるんじゃなくて、集合とさらにそれに許された操作を含めてモデル化して考えようというのは、プログラムを代数的に理解しようという視点の出発点になるはずなのでな(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「急にTaPL読むか!という気持ちになったんですやが、読んでるうちにやっぱり極限の構築が出来たほうがいいような気がしてきたので、大人しく圏論の教科書の続きを読みます(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「λ計算でペアが作られたときの、あっ積だ…感(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「こうして自作言語がまた遠のくのであった(´・ω・`)」 / Twitter
- 数学屋さんとCS屋さんで問題意識とする点が異なるため、片方の問題意識がもう片方に上手く伝わらないという例 - Togetter
- アラクーさんはTwitterを使っています: 「数学的な記述をそっくりそのままの形で形式検証できるようにしようという Isabelle の野心的な挑戦が数学界隈で全然知られていないのが悲しすぎる」 / Twitter
- アラクーさんはTwitterを使っています: 「Coq や lean の証明がいかに「読めない」のかを知ってもらわないと価値が伝わらないのかもしれない たとえばこの証明コメントなしで読んで何やってるかわかりますか?https://t.co/IIAxXnU9K8. https://t.co/0eitjYWvQm」 / Twitter
- Lean (proof assistant) - Wikipedia
ラムダ計算
コンビネータ論理
- コンビネータ論理 - Wikipedia
- SKIコンビネータ計算 - Wikipedia
- SKI combinator calculus - Wikipedia
- d.y.d.
- カリー=ハワード同型対応 - Wikipedia
- Haskell/カリー=ハワード同型 - Wikibooks
- B,C,K,Wシステム - Wikipedia
- モーダスポネンス - Wikipedia
- 直観主義論理 - Wikipedia
- ¥³¥ó¥Ó¥Í¡¼¥¿ÏÀÍý - 20180620.pdf
- lambda2.pdf
- 4.pdf
- IPSJ-TPRO4416006.pdf
- The SKI Combinator Calculus a universal formal system
- Urbit - Chapter 2 : Crash course in Nock
- Combinator Birds
- To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
- お勧めの数理論理の本を2冊+新刊の予告 - hiroyukikojima’s blog
- ronri-part.pdf
- 現代数理論理学序説読んでる
- vatscy/CLwCalculator: 【数理論理学】体系CLwにおける式の正規化を行なう
- ラムダ計算 - Wikipedia
- コンビネータ論理 - Wikipedia
Y, Zコンビネータ
- 06gun_03hen_02.pdf
- 5-3. Recusive Functions
- lambda2.pdf
- 不動点コンビネータ - Wikipedia
- コンビネータ論理 - Wikipedia
- 不動点コンビネータを用いた無名再帰関数の実行(C#, F#) - Qiita
- TypeScriptで不動点コンビネータに型をつける - Qiita
- RubyでYコンビネーターとZコンビネーター - Qiita
- 不動点コンビネータで無名相互再帰 - Qiita
- 誰得UNIX: Schemer のための「すぐ理解できるYコンビネータ」
- Scheme:初心者の質問箱
- 不動点と不動点コンビネータ | 黒曜の吹き溜まり
- ネタ記録庫/不動点コンビネータ - ocaml-nagoya
- コンビネータ - mrsekut-p
- techlunch1.md
- Haskell+タグレスな型付きDSLで楽々!C言語コード生成 - keigoiの日記
- 不動点とfix演算子 - 一歩前進
- YコンビネータとZコンビネータ(Ruby) - Camera Obscura
- Haskell Language - ファンクタ | haskell Tutorial
- プログラミング言語 - 型なしラムダ計算で量化子を定義できるか|teratail
- 哲学
- F#入門
- ブロックチェーンの新たな言語 Simplicityの論文を読む −Core Simplicity編− | GMOインターネット 次世代システム研究室
- 第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- Z - コンビネータ : tnomuraのブログ
- 2009-04-09
- 型システム入門 5章のメモ
- Combinatory Logic 0
- C++でラムダ式を再帰させる – 日和見荘404号室
- 楽しいプログラミング
- 🙂コンピュータサイエンスと魔法のYコンビネータ
- yコンビネータ 型 - Google 検索
- Zコンビネータ - Google 検索
ラムダ計算・書き換え
- Lambda calculus - Wikipedia
- How is Lambda Calculus a specific type of Term Writing system? - Theoretical Computer Science Stack Exchange
- REWRITE SYSTEMS AND LAMBDA-CALCULUS
- () - 1208.0515.pdf
- [0904.4120] On Constructor Rewrite Systems and the Lambda-Calculus (Long Version)
- On Constructor Rewrite Systems and the Lambda-Calculus | SpringerLink
- final.dvi - open-final.pdf
- Term rewriting systems | Programming languages and applied logic | Cambridge University Press
- The Origins of lambda-calculus and term rewriting systems - Inria
- The Lambda Calculus, General Term Rewriting and Food Nutrition | Beckman Meijer Overdrive | Channel 9
- Rewriting - Wikipedia
- lambda_en.pdf
- syntax.pdf
- hor-fct.pdf
- LNCS 4098 - A Terminating and Confluent Linear Lambda Calculus - rta06.pdf
- 148675853.pdf
- PII: S0304-3975(96)00173-9 - 82509885.pdf
- lambda.pdf
- syntax.pdf
- H8-garrigue.pdf
- IPSJ-TPRO4416006.pdf
- 21_73.pdf
- CoffeeScriptで理解する『ラムダ計算入門』 - slow living in the sky
項書き換え系
- HexirpさんはTwitterを使っています 「TeX 、有名な言語の中では唯一の、項書き換えシステムをベースとしている言語だと思っている」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「謎のプログラミング言語TeXをやっていくか…(本当に謎)」 / Twitter
- HexirpさんはTwitterを使っています 「\expandafter を知ってから、こう思っている https://t.co/nGk7ljPxkm」 / Twitter
- 徹底解説! \expandafter 活用術(キホン編) - Qiita
- ppl2-3.pdf
- 26_2_76.pdf
- 32_1_179.pdf
- KJ00003124054.pdf
- クヌース・ベンディックス完備化アルゴリズム - Wikipedia
- proof_completion.pdf
- Knuth-Bendixの完備化アルゴリズム
- Knuth-Bendixの完備化手続きとその応用
- C++でKnuth-Bendixの完備化アルゴリズムを頑張って実装した話 - Qiita
- IEICE Conferences Archives - 多重Knuth-Bendix完備化における危険対除去手法の導入
- CiNii 論文 - Knuth-Bendix の完備化手続きとその応用
- 表現系工学特論第3回 - 11JTEXT.pdf
ラムダ計算・System F
ラムダ計算
Prologでラムダ計算
- Koromo/Prolog-lambda: ラムダ計算のインタプリタみたいなの
- prologでラムダ計算 - 計算機と戯れる日々
- Prolog Advent Calendar 2016 - Qiita
- Prologよいよ - Qiita
- TAPL5-3. 型無しラムダ計算(λ) - Qiita
- _pdf
- ラムダ計算はHOAS - Google 検索
- インタプリタ · shiatsumat/wiwinwlh-jp Wiki
証明木・ラムダ計算
- ahuさんはTwitterを使っています: 「論理式が型ってのはわかるけど、証明がプログラムってののイメージがわかない」 / Twitter
- gentzen-NK.pdf
- sakurai10.pdf
- 20191109_C-3_resume(Tsunoda_Kentaro).pdf
- ppl3-4.pdf
- ch.pdf
- ppl1-3.pdf
- パースの法則 - Google 検索
- Glivenko の定理の代数的証明 - 論理とか計算機とか数学とか
- パースの法則 - Wikipedia
- 排中律、二重否定の除去、パースの法則 - Qiita
- 命題論理の自然演繹 : 定理 [数学についてのwebノート]
- パースの法則 - Skinerrian's blog
- 3. Peirce - airoboの日記
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- Introduction_to_Modal_Logic.pdf
- 継続 | haskell
- vol1.indb
- 84jGENP2.pdf
項書き換え・ラムダ計算
- 98ss_intro_trs.pdf
- agora-2005s-cd-b.pdf
- IPSJ-TPRO4416006.pdf
- 21_73.pdf
- ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
- 正規化 (項書き換え) - Wikipedia
- Jacques Garrigue : Home Page
- lambda.pdf
- H8-garrigue.pdf
- trs.pdf
- 23_3_35.pdf
- 51237311.pdf
- IPSJ-MGN240207.pdf
- クヌース・ベンディックス完備化アルゴリズム - Wikipedia
- 合流性 - Wikipedia
- コンビネータ論理 - Wikipedia
- SKIコンビネータ計算 - Wikipedia
- 04mm004.pdf
- agora-2005s-cd-b.pdf
- 研究の紹介
項書き換え・操作的意味
- 3aa6257094ed385200cd3c7cd7f1a277622a.pdf
- ppltut.pdf
- 116_103.pdf
形式仕様 操作的意味
- Miura HidekiさんはTwitterを使っています 「本来はアプリケーションごとにDSLが作られてその上でアプリケーションが作られるべき」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そしてDSL毎にそのための言語VMとIDEが作られて然るべきなのですキリリ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda さすがにこの辺は自動生成にしてほしい...」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 でしょ?カタログから命令セットを選択して、少数のカスタム命令の動作を MUL reg1, reg2, reg3 : reg3 ← reg1 * reg2みたく操作的意味を書いたら、各命令の前提が相互矛盾しないかとか、定義に穴がないかチェックした上で、自動的にVMを生成して欲しいでしょ?で、現状それに近いのって、形式仕様。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。 * の操作的意味って自明じゃない気がしますが、どうなんでしょうか?」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そうなんですよ。*は仕様記述言語側の意味論に帰着させるわけですが、bignumとかしんどいわけですよ。さらに割り算で泥沼ですよ。VMが提供する他の操作セットによって最適な定義もきっと変わるので、色々な*の操作的定義が必要になるかもしれません。こういう体験を積み上げている途中なんです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 割り算は泥沼ですね。CPUの定義によるでは形式的な検査もあったもんじゃないでしょうし。確かに、このあたりの最適解は机上では分からないでしょうね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 何度Nan-boxing教に入信しようと思ったことか。実際、IEEE754なfloatをVDMのrealに帰着させて定義したので、比較的簡単にNan-boxingな仕様を書けるはずです。そのうちこれもやりたい。いろんな数表現をポチリと選択してVM合成できるようにしたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 数のビットパターンもそうですけど、割り算だと負の場合の丸め方とか言語によって仕様が違うところをどうするのか気になります」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 ので、仕様記述言語が定義する演算を組み合わせてそのDSLでの割り算を一意に定義し、それを実行する命令を実装を生成するという皮算用です。もちろんホストCPUやホスト言語が提供する割り算によって最適な実装は異なるので、適切なものを自動的に導出可能にする、または選択可能にする必要があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。なかなか茨を感じますが面白そうです」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 autoconfのようにネイティブ/ホスト言語の演算のセマンティクスを自動検出できたら面白いかなと、今思いました。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda それいい研究テーマかも」 / Twitter
λ-lifting
- Lambda lifting - Wikipedia
- ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null)
- Lambda lifting とは – 計算機科学Word
- Implicitly-Typed Deadlock-Free Process Calculus
- ヒビルテ(2006-09-12)
- amylase/コンパイラ課題メモ - IS2011 Wiki
Twitter
- muratakさんはTwitterを使っています 「Curry-Howard 同型対応、「論理と計算の間に対応がある」という説明をされると非常に非自明なことだけど、たとえば核となる(と思われる) 単純型付きラムダ計算と直観主義命題論理の間の対応は、シンプルすぎて当たり前というか、単にデカルト閉圏の具体例を2つあげただけという気もするんですよね。」 / Twitter
- 🌙さんはTwitterを使っています 「単純型付きラムダ計算を導入するためにラムダ計算を書いたのか」 / Twitter
- 🌙さんはTwitterを使っています 「あ、あと無名再帰のためによく使われるYコンビネータですが、再帰型の概念のない単純型付きラムダ計算では型付け不可能でしたねやっぱり」 / Twitter
- 🌙さんはTwitterを使っています 「単純型付きラムダ計算が正規化可能(停止性が保証されている)ってのはすごかった」 / Twitter
- 🌙さんはTwitterを使っています 「というか、単純型付きラムダ計算だと再帰関数が定義できないわけで、再代入もなければループすらかけないのだから停止性保証はある意味当たり前だわな」 / Twitter
- かすてらふぃさんはTwitterを使っています 「実は単純な型付きラムダ計算みたいな簡単な言語だと関数の引数の型だけ書けば良かったりするんだけど、型システムを拡張すると完璧な型推論は計算不能な問題になってしまうらしい」 / Twitter
- 戸次大介/Daisuke BekkiさんはTwitterを使っています 「研究室合宿で那須塩原に来ている。今年はゲーデルの不完全性定理、型付きラムダ計算の停止性、シーケント計算の証明探索の三本立て。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「e(Γ,i)::=integer|e(Γ,i)+e(Γ,i)|e(Γ,i)*e(Γ,i). e(Γ,b)::=true|false|e(Γ,i)<e(Γ,i). e(Γ,T)::=if(e(Γ,b),e(Γ,T),e(Γ,T)) | λ(x:e([x:T1,Γ],T2)),{T=T1->T2} | x,{x:T∈Γ} | e(Γ,T1->T) $ e(Γ,T1). と単純型付きラムダ計算の文法及び型付け規則を記述可能だ。」 / Twitter
- 粗製伍長さんはTwitterを使っています 「純粋な型付きラムダ計算 GCありきだし参照としてのポインタを剥き出しにすると阿鼻叫喚の地獄絵図になりそうという気づき」 / Twitter
- gatetogoさんはTwitterを使っています 「一階論理で量化子のドメインが非空であるとみなしてよくて(i.e. 「(∀x. P) → P」が導出可能)、一階論理を表現できるはずの依存型付きラムダ計算でそうみなせないのはどういうこと?」 / Twitter
- あわねずみさんはTwitterを使っています 「wikipediaにλPωのことλΠωって書いてあったが依存型付きラムダ計算のPってΠ(Pi)のことだったのか 前から気になってた」 / Twitter
- watcherさんはTwitterを使っています 「やべこれ「Lispは値渡しが基本なものの、 quoteマクロで名前渡しを実現しています。違いは何でしょうか」で済む話でしたorz 50年代にラムダ計算をモデルに実用言語として拡張されたLispと、 80〜90年代、型付きラムダ計算や純関数型言語の重要性が認識された後の、ラムダ計算処理系は何が違うんだっけ」 / Twitter
- 小林聡@京都産業大学さんはTwitterを使っています 「ほほう、命題論理の implicational fragment の話か、それとも単純型付きラムダ計算の話なのかな(なんでやねん」 / Twitter
- kannkyoさんはTwitterを使っています 「昔勉強したカリー・ハワードの対応と型付きラムダ計算がここに来て役立つ日が来るとは・・。 JavaScriptのカリー化について味見してみる https://t.co/AcYz1vun6x #Qiita」 / Twitter
- kentoさんはTwitterを使っています 「ソフトウェアの基礎では単純型付きラムダ計算が実装されてるんですが、依存型を追加するにはどうすればいいかわからない…」 / Twitter
- kentoさんはTwitterを使っています 「具体的には 単純型付きラムダ計算→ソフトウェアの基礎で定義されているのでパクる 依存型→がんばる 単純型付きラムダ計算の型チェックの関数→ソフトウェアの基礎で定義されているので、各規則にわけてパクる 依存型の型チェックの規則たち→↑の関数を参考にしてがんばる」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn primitive type algorithmっていうなら単相型の型付きラムダ計算に(メタ的に)多相性を導入できることを指しますから、その言い方は誤解がある気がします…」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn えーと、型注釈なしの単純型付きラムダ計算においてtypableなラムダ式につけうる型(これは無数にある)のうち、出現するatomic typeに他のtypeを代入することでつけうる全ての型を表現できるものをprincipal typeとして、これを先に言った構文木の解析(とunification)で求めるものを指しています」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn これが可能な事は、単純型付きラムダ計算が明示的には単相であるにも関わらず、型注釈がない場合にはメタ側からはあたかもオーバーロードしているかのように見える、ということなのかと思っていました」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn ちょっと復習かねて時間取ってました。やはりその言い方は語弊があるのでは?(少なくとも(単相な)単純型付きラムダ計算の元では)aをconcrete typeとして具体化したらもう他の型として具体化できないですよね?それだと恒等関数を表現できていないのでは?」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn それは同名の関数が同じ型をもつとは限らないというだけでは? そもそもラムダ計算には名前をつける文法はないので名前はあくまで略記であって、「ラムダ式の略記」と「型付きラムダ式の略記」を別々に用意しておけば問題はなさそうです?」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 考えてみましたが、やはり無理なような。型推論をしようが、単純型付きラムダ計算上の型式だと適切な型を与えられないと言うか。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 示唆する、というのは明確ではないですが、単純には無理というしかないような。ちょっとここから先は実際の型付きラムダ計算の体系と、その上の特定のラムダ式を例にして議論した方がいいような気がしてきました…(Twitter上だとつらひですが)。」 / Twitter
- 黒澤亮二さんはTwitterを使っています 「「プログラムの実行と定理の証明が対応する」というカリーハワード対応を理解したかったが、最後の章の内容で全然到達しなかった。とりあえず「圏論の歩き方」も読んでカルテシアン閉圏と型付きラムダ計算が対応するという事がわかったつもりになれたのでいいことにしたい・・・」 / Twitter
- kentoさんはTwitterを使っています 「実は論理式として型付きラムダ計算の型が使えるんだけど、なんで使えるかはカリー・ハワード同型対応でググってネ!と言ってしまえば証明論の話も回避できるので便利(?)」 / Twitter
- ayustateさんはTwitterを使っています 「ラムダ計算に型付きから入門した人は「プログラムをラムダ式で表現してラムダ抽象式は関数だから関数型A→Bを持つということにして関数適用はA→Bの型を持つ式とAという型を持つ式との間でしかできないとすると、そういったプログラムは必ず停止する」ことの感動を味わえないという煽りを思いついた。」 / Twitter
- ayustateさんはTwitterを使っています 「今は「ラムダ計算の入門書は何がよいですか?」という質問にTAPLとか大堀本とかが答えに挙がるんだなぁ。そんなに最初から型付きがよいのだろうか。昔は(世界の多くの人がイエローブックやクリーニ本で勉強している一方)母語が日本語である偶然に感謝して高橋本を読めといったものだが。」 / Twitter
- 緑に戻りたい!さんはTwitterを使っています 「@_Iwancof 型の安全性の照明とかに使われるらしい。 例えば型付きラムダ計算を理解すると一定の条件下で無限ループ判定が出来るので無限ループをしないソースコードをかける」 / Twitter
- ねこむらこねこさんはTwitterを使っています 「@_nabbe 単純にS x T x U → Vという型は、単一の引数しか扱わない(扱えるとしたら、それはカリー化しているから)型付きラムダ計算では取り扱えないでしょ。 だから、単純に理論上の取り扱いが楽になるからS x T x U → VとS → T → U → Vを同一視して欲しい。 さらにプログラマーも部分適用できるおまけつき」 / Twitter
- ╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「ラムダ計算のチャーチエンコーディングされた整数は全部型が違うから型付きラムダ計算では使えないのか」 / Twitter
- 重城良国さんはTwitterを使っています 「HaskellのCore言語は、だいたいSystem FCだということ。僕はいまのところ(数学的にではなく感覚的に)untypedなラムダ計算は、わかる。つぎは単純型付きラムダ計算を学び、多相性を取り込んだSystem Fを学び、さらに「型変換をあらわす型」を明示的に引数にとるSystem FCを学ぶ必要がある。」 / Twitter
- 重城良国さんはTwitterを使っています 「あ、あと(たぶん)単純型付きラムダ計算だと再帰が表現できなかったと思うのだけど、そのあたりはSystem FCだと解決されているのだろうか。」 / Twitter
- ユーザーブログ:Hexirp/(2020-05-03) 計算可能関数と型付きラムダ計算 | 巨大数研究 Wiki | Fandom
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
- ラムダ計算 述語論理 - Google 検索
- 項書き換え系 述語論理 - Google 検索
- ラムダ計算 文字列 - Google 検索
- チャーチ数 sub - Google 検索
- resume4-rev.pdf
- resume5.pdf
- resume6.pdf
- main.pdf
- de bruijn ラムダ - Google 検索
- alpha 変換 ラムダ - Google 検索
不動点コンビネータ
- std::variantと不動点演算子 - in neuro
- In C++, how to make a variant that can contain a vector of of same variant? - Stack Overflow
- 不動点コンビネータ - Wikipedia
- コンビネータ論理 - Google 検索
- TypeScriptで不動点コンビネータに型をつける - Qiita
- d.y.d.
- 不動点コンビネータで無名再帰を作る流れをおさらい - 無駄と文化
PDF
- 8_1_34.pdf
- lambda.pdf
- 5.pdf
- cs2019muroya.pdf
- sou19.pdf
- 66_0661078.pdf
- MSJ20120328Fujita.dvi - MSJ20120328Fujita.pdf
- IPSJ-SE93097013.pdf
- stlc.pdf
- sakaue.pdf
- 私を SKI に連れてって
- TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
- cormoran's note - LazyK HelloWorldを目指す
- SKIコンビネータ AGAIN
- combinatory logic in nLab
- 画力・博士号さんはTwitterを使っています 「値呼びの型なしラムダ項をTeX言語コードにコンパイルし,それをTeX言語上に構築したVMで完全展開で評価できるようになった: https://t.co/OKy0aEYXXC 1枚目: 入力 2枚目: 処理の様子 3枚目: 出力コード 4枚目: LaTeXで処理した結果出てくるPDF https://t.co/Ufm4L1A0RX」 / Twitter
- 完全展開形 ラムダ - Google 検索
- ラムダ計算インタープリタ : tnomuraのブログ
- ラムダ計算 : tnomuraのブログ
- カテゴリー理論とプログラミング : カルテシアン閉カテゴリー
- メタリックはんぺんさんはTwitterを使っています 「カリーハワード同型の基本的なアイデアは「型付きλ計算の型の推論規則と直観主義論理の推論規則は対応関係が付くから実質『同じ』だよね」で、後半第五回の課題は「与えられた命題の証明木を見ればそっから与えられた型のλ式が作れるよね」っていう話だったはず」 / Twitter
- mod_poppoさんはTwitterを使っています 「F-ing modules, 型レベルのラムダが要るのか」 / Twitter
- mod_poppoさんはTwitterを使っています 「週末を使って自作SML処理系にopaque constraintを実装しようと思ったんだけどなかなか難儀だな」 / Twitter
- mod_poppoさんはTwitterを使っています 「まだFωの型検査を実装してるわけでもないし型レベルラムダの追加は3秒で終わった」 / Twitter
- El Pin AlさんはTwitterを使っています 「@mod_poppo Standard MLの範疇でしたら不要ですよ😀(必要になるのはapplicative functorがあるときだけ)」 / Twitter
- mod_poppoさんはTwitterを使っています 「@elpin1al そうなんですか。論文読み直します……」 / Twitter
- Lessons learned building a toy compiler
並列・並行・継続・CPS・Algebraic Effects
その他
- めざそう言語処理系の沼 カテゴリーの記事一覧 - Arantium Maestum
- 第2回 「単一代入」と「末尾再帰」 | 日経クロステック(xTECH)
- chap11.pdf
- chap12.pdf
- D_Ugawa_Tomoharu.pdf
- 25_1_167.pdf
- SLACS98 program
- athos))))))))さんはTwitterを使っています 「継続渡しスタイル、理解するのに結構苦労した覚えがあるけど、CPS版mapとかCPSで二分木をトラバースする(なんでも継続に解説がある)あたりのコードがそらで書けるようになると悟りが開ける認識。モナドでいうStateモナド的な位置付けのイメージ。」 / Twitter
- Swift async/await を支えるモナド、継続、コルーチン / iOSDC Japan 2021 - Speaker Deck
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「fn myfunc(a: i32, b: i32, c: i32) -> i32 { .. } let num = pa!{ 1 |> (myfunc 2 3 $ myfunc 4 5 6 ) }; みたいな感じでRust中で使える部分適用がほしい」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「Rustでパーサを書いているけど、部分適用や継続演算子のような関数型言語の機能を使いたくなるが、Rust上でOCamlのような文法を使えるマクロを提供すれば解決するのでは?と思った」 / Twitter
- LunarML進捗・2022年4月 | 雑記帳
- An argument against call/cc
並列・並行
StackThreads
- Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages | Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
- PowerPoint Presentation - DNaward.talk.jp.final.pdf
- StackThreads
- Top
- spaghetti stack - Google 検索
- ppl5-1.pdf
fiber
Qiita
- coroutineとasync/awaitのあれこれ - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(3) - Qiita
- Coroutine - Wikipedia
- future - Wikipedia
- Stackless vs. Stackful Coroutines - Varun Ramesh's Blog
- stackfulness of coroutines - lilyum ensemble
- async/awaitと合成可能性 | κeenのHappy Hacκing Blog
- (ネタ)ユーザー空間だけでプリエンプションする - livaの雑記帳
- コルーチンプログラミング - 増井俊之
- pro2019-01.pdf
- Ryou Ezoeさんのツイート: "すごい、ファイバーのコンテキストスイッチのコストとかを示すためにWandboxが使われている。 https://t.co/WXNeFk8A99 https://t.co/IJzj8EyiKG"
- Ryou Ezoeさんのツイート: "Fiber(stackful coroutine)は歴史上何度も試みられてきたがパフォーマンス上の恩恵が全くないのでやめておけ。今まともに使っているのはGOだけだがペナルティが大きい。 https://t.co/WXNeFk8A99"
- p1364r0.pdf
- p0866r0.pdf
- p1520r0.pdf
- 技術書典6・う38 デダルス・ユメノさんのツイート: "OSスレッドの切り替えには大量のレジスタ退避、復帰処理が必要だが、goroutineの切り替えはプログラムカウンタ、スタックポインタ、DX(多分RDXレジスタのこと)だけで済むらしい。協調マルチタスクの強みやな。 https://t.co/B8eQ4T7NyD"
- How Goroutines Work · Krishna's words
- 技術書典6・う38 デダルス・ユメノさんのツイート: "どうやら,context registerと呼ばれる役割らしい https://t.co/gPKnrPIaDX… "
- go - What is a context register in golang? - Stack Overflow
- Could JavaScript/Node.js be written without application-level callbacks, like if every program was wrapped inside a big goroutine? There’s no need for async-await, all I/O calls would just have that functionality builtin, and remains single-threaded. - Quora
- You can get deadlocks in stackless coroutines too. The reason node.js won't dead... | Hacker News
- I think stackful coroutines will always have their fans but the industry is head... | Hacker News
- c++ - How do stackless coroutines differ from stackful coroutines? - Stack Overflow
- ntaooさんはTwitterを使っています 「DartのIsolate (Actor Model) の基盤の上での、Single thread event loop モデルは、やはり扱いやすくていいなと思います。適切に高い抽象度でプロセスとスレッドを扱えますので... https://t.co/mQS6zLF8oA」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「@ntaoo 割り切りとしてとても良い落し所ですよね。パフォーマンスオタクからすると言いたいことはあるんでしょうけど、そういう人たちは、Platform/Dart ffiの方に案内すればいいですからね。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Kotlinもさ、正直、コルーチンとかも良さげに見えて素人には罠だらけだと思うんだ。やっぱりマルチスレッドは常人には無理だよ。」 / Twitter
- ntaooさんはTwitterを使っています 「@espresso3389 そうですね。割り切って真にパフォーマンスが必要なごく少数の箇所はネイティブに移譲しつつ、クライアントサイドアプリケーションプログラミングの事情に沿ったIsolateの設計だと思います。もっとメニーコアになって対応が必要な時代になったら、ErlangのActorのアプローチを参考に進化するでしょうし」 / Twitter
- FadisさんはTwitterを使っています 「Boost.ContextからBoost依存を排除した、Deboost.Contextなるライブラリが存在する事を知った。Boost.ContextはWindowsのFibreや新しいスタックの確保とスタックポインタの書き換えを使って、ユーザ空間の単一スレッド上で複数のタスクを切り替えて実行する仕組みを提供する https://t.co/GZCAxn7bpw」 / Twitter
- septag/deboost.context: "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms.
同期・非同期
- songmuさんはTwitterを使っています: 「非同期や並行処理で留意することとして、全体の計算リソース使用量は減っているわけではなくて、むしろオーバヘッドがある、というのがあるのだけど、チャット等のコミュニケーションツールも非同期に事を進められて速くなると思いきや、同期的にやった方が速いというのは結構あるんだよな」 / Twitter
- songmuさんはTwitterを使っています: 「非同期に進められてるから速いとか、パラで進められてるから速い、とか勘違いしてるけど実は効率が下がっているっていうのは、ソフトウェアシステムでも実業務でもある。なんか「上手くいってる感」に騙されちゃうんだよな。」 / Twitter
- songmuさんはTwitterを使っています: 「Amazonの有名な、会議の冒頭で1 pagerを皆で読むってやつも、全員が事前に資料に目を通しておく必要が本当にあるのなら、隙間時間で片手間で読んでもらうよりも、集中して読む時間を取ったほうが良いという話でもあるよな。」 / Twitter
- songmuさんはTwitterを使っています: 「事前に資料を読むのは非同期でできると思いきや、読み方にばらつきが出るし、読んで来られない人もどうせいるので、最初に全員で同期的に集中して読むことで効率を高めるということ。」 / Twitter
awk 的な言語で並列処理
- κeenさんはTwitterを使っています 「Rust製のAWK(っぽい言語)の実装。型推論してJITしたり並列化したりSIMDで高速化頑張ってたりするらしい ezrosent/frawk: an efficient awk-like language https://t.co/LbWgvlTsOj」 / Twitter
- ezrosent/frawk: an efficient awk-like language
- Miura HidekiさんはTwitterを使っています 「Rustでどうやってパーサー書くんだろう?(Cみたいにgetchar/ugetcがないっぽい)って悩んでいたけど、分かった。ありがたい https://t.co/vKPnrNLB8L」 / Twitter
- frawk/src at master · ezrosent/frawk
- Miura HidekiさんはTwitterを使っています 「結局、プログラム全体をがばっと文字列で読みこんでおいて、部分文字列を見ていけばいいだけか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/fK45utrZZe awkで並列処理って意味あるのかな?って思ったけど意味大ありだな。賢い」 / Twitter
- frawk/parallelism.md at master · ezrosent/frawk
- Shiro KawaiさんはTwitterを使っています 「@miura1729 こういう粒度での並列処理あんまり考えたことなかったな。なるほど…」 / Twitter
非同期など
- Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
- Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C#の非同期プログラミングにおける「やっていいこと・いけないこと」一覧: https://t.co/2akbhgZ2QI」 / Twitter
- AspNetCoreDiagnosticScenarios/AsyncGuidance.md at master · davidfowl/AspNetCoreDiagnosticScenarios
- chikoskiさんのツイート: "そうか。パターンマッチが、メソッドの代わりになるのか。"
- κeenさんのツイート: "「エラー処理もエラートークンとして表われる」 #compiler_study"
- INADA Naokiさんのツイート: "monoでasync/await多用したコードのプロファイル結果を見てるんだけど、やっぱりスタックトレースが ThreadPool や Task を起点とする短いものが大量にあって、アプリケーション視点のスタックトレースが見えにくくなってるので、 Go の方が分かりやすいなぁ。"
- INADA Naokiさんのツイート: "見た目上は async / await でスッキリ書けると言っても、実際には細切れに分割された無名の関数がスレッドプールでコールバックされまくってるだけなので、デバッグしたりプロファイルしたりするときはコード上のわかりやすさが消える。 https://t.co/D0sy2dFOMV"
- .NET/.NET Coreのスタックトレースを洗練
- 渋川よしきさんのツイート: "Go言語がシンプルに書けるのは、同期APIを非同期に扱ったり、ブロッキングをノンブロッキングにしたり、入力側と出力側のプロトコル変換が容易で、インピーダンスを合わせるのが超絶楽、というのがコアにある気がすごいしてる。"
- なかのん&マジックさんのツイート: "ブラウザのエンジンの非同期化の何が難しいかって、入力との同期何だよな。例えば、APZは、wheelイベントのリスナがカーソルの下にある時は非同期描画を行わない。preventDefault()でキャンセルされるかもしれないから。 #もずでぶ"
- chikoskiさんのツイート: "SPAの人たちって、リンクやURLについてどう思ってらっしゃるんだろう。とサイトをみていて思う。アプリ育ちの人たちにとっては、別タブで開くってありえない(もしくは、させたくない)操作なのかしら。"
- chikoskiさんのツイート: "状態とリソースの区別が難しいとは思う。ゲームの途中状態みたいなものへはリンクできる必要はないと思う。Twitterのタイムラインのように、DBのエントリーを一覧表示し、操作で各エントリの詳細を表示する場合は、それぞれのエントリに対してリンクできるべきだと思う。前者は状態、後者はリソース。"
- chikoskiさんのツイート: "node.jsの非同期処理について厳密な定義が読みたい人は、こちらをどうぞ https://t.co/lSL4m75rg6 #wejs"
- Semantics of Asynchronous JavaScriptTechnical report, 2017-07-26
- なかのん&マジックさんのツイート: "がんばって誰が問題のイベントの複製をやっているのか突き止めたかったけど、スタックトレースからは分からなかった。イベントキューに放り込まれてて、そのキューからの取り出し以降しか見えないから。"
- κeenさんはTwitterを使っています 「面白かった。Actorモデルは表現力が足りないという仮説の下mutationなどを入れたモデルを開発。メッセージパッシングにsesstion type、mutationにseparation logicを使ってる。結果、actorにrefを渡してmutateするプログラムのreasoningができる。実装はIris。 https://t.co/Ul29XkcJj2」 / Twitter
- κeenさんはTwitterを使っています 「ところで並行プログラムのモデル、おおまかにメッセージパッシングとメモリ共有の2種類があって、reasoningのしやすさからここのところはメッセージパッシングが優勢だったという認識なんだけど今回のモデルみたいにメッセージパッシングに部分的にメモリ共有を混ぜたやつはどこまで戦えるんだろう。」 / Twitter
- RyuseiさんはTwitterを使っています 「async/awaitは、「Promise を使った非同期処理を平易に記述するための糖衣構文」ではなく、「古典的な制御構造を非同期処理に埋め込むための構文」と捉えるべきではないかと思います。」 / Twitter
- RyuseiさんはTwitterを使っています 「async/awaitと言うから、こいつらが重要に思えてしまうけど、本当に重要なのは、async関数に埋め込まれたlet文だとかwhile文だとかfor文とかtry/catch文の方です。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに、この間訳あって脱糖しようとしたらやっぱforの翻訳がめんどくさかった... >RT」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Pythonのasync/awaitで、簡単にスレッドで実行できて感心した。スレッドだと速度は速くならないけれど、ブロッキングするコードも書ける。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/awaitも使ってみないと。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitでブロッキングしないように頑張るなら、Erlangで良いんじゃ無いのかって気もするが。」 / Twitter
- Future と Promise | Scala Documentation
- ES2020 確定した機能セット
- ytakanoさんはTwitterを使っています 「GoroutineはCSPやπ計算の流れをくむ並行プロセスで、コルーチンは中断再開可能な関数なので、出生を考えると別物に思う。 なお、コルーチンは並行プログラミング入門の5.2章で、π計算は8.4章で扱ってます!(ダイレクトマーケティング)」 / Twitter
- ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
- ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
- yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
- mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
- ytakanoさんはTwitterを使っています 「Futureの実現にコルーチンが必要な都合上、RustのFutureトレイトにはコルーチンと同等なインターフェースが定義されている都合上、難しいですね。pollがコルーチンの低レベルインターフェースで、async/awaitで利用するとFutureと抽象化される認識です。」 / Twitter
- legokichiさんはTwitterを使っています 「並行プログラミング入門、Futureのことをコルーチンと読んでる箇所があってもにょる」 / Twitter
- ytakanoさんはTwitterを使っています 「これも難しくて、コルーチンを使って抽象化したモノ(Futureなど)は同じくコルーチンと呼ぶべきなのかという問題だと認識しています。全体は部分の総和なのか。主義主張によると思いますが、自分は別物かなと。」 / Twitter
- legokichiさんはTwitterを使っています 「Rustにコルーチンはない、ことはなくてasync blockはコルーチン以外の何物でもない気がするがこの辺の解説大変そう(こなみ」 / Twitter
- PHPで書いて覚える非同期処理 / php-async-programming - Speaker Deck
- JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー
- JavaScriptの非同期処理をじっくり理解する (2) Promise
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「> つまりタイミング管理上 yield と yield undefined は同等ですが、 return と return undefined は違うということになります。 じつに楽しい言語だ。これだからやめられない(?) / JavaScriptの非同期処理をじっくり理解する (3) async/await|Masaki Hara https://t.co/CPWrV4yX8P #zenn」 / Twitter
- JavaScriptの非同期処理をじっくり理解する (3) async/await
- κeenさんはTwitterを使っています 「へー。(非同期処理をしない)非同期関数とランタイムの組み合わせしだいではコンパイラが非同期の部分を完全に消せるんだ。これを利用してトレイトを非同期に寄せといて必要に応じて同期APIでラップできる。 Rust async can truly be zero-cost https://t.co/IqpLClTLW8」 / Twitter
- Rust async can truly be zero-cost
- こー1@趣味のアプリエンジニアさんはTwitterを使っています 「Kotlinコルーチンによる非同期処理とその例外の対処が理解不足だな🤔 あと、ViewModelのライフサイクルもちゃんと意識できてない🤔 動くだけなら作れるけど、安全な実装をするのはちゃんとした理解が必要だなー。 こういうのは一番公式ドキュメントが詳しく書いてある。」 / Twitter
- 同期的なプログラミング言語の視点から非同期処理を理解する/understand async from sync - Speaker Deck
○○がモナドではない
- がくぞさんはTwitterを使っています 「「○○がモナドではない」と言われる場合、大抵は○○とそれが標準で提供する操作の組み合わせがlawを満たしていない、という意味かと思います。Promiseとthenとresolveの組がlawを満たさない例は https://t.co/x0VzN3Re72 とかで書かれてますね(続」 / Twitter
- javascript - Why are Promises Monads? - Stack Overflow
- Masaki HaraさんはTwitterを使っています 「Promiseがモナドではないっていうのは ・Thenableかどうかで分岐が入ってる ・thenを打つたびに必ず1 microtask分待つ あたりから来てる主張かな? これだけならちょっと定義を頑張れば何とかモナドにすることはできそうな気もする。」 / Twitter
- がくぞさんはTwitterを使っています 「Promise<{value: T}> とそれに対応するpure/bind的な操作を提供することでlawを満たす組を定義する事はできる気はしますが、それが定義できる事とPromise(とthenとresolveの組)がモナドである、と言う事は別の主張かと思われます」 / Twitter
- Masaki HaraさんはTwitterを使っています 「前者はPromise<T>のかわりに Promise<{ value: T }> を使う、後者はタイミング差を吸収するように同値性を定義するでいい気がしている」 / Twitter
- もるさんはTwitterを使っています 「@qnighy タイミング差を無視してしまうとpromiseの持っている特性が失われてindentityモナドになってしまいますね。無理にモナドに押し込めるよりタイミング差で順序付けた ⊒ でモナド則を緩めて捉えるのがいいですよ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@eomole 非同期プログラミングでやりたいことは同期プログラミングでやりたいことと同じなので、その意味では「Identityモナドになってしまう (?)」というのは正しいのでは?」 / Twitter
- もるさんはTwitterを使っています 「@qnighy (JSのpromiseの利用例を考えてもこの仮定が真であるかはかなり疑問がありますが)非同期プログラミングと同期プログラミングでやりたいことが同じであれば、identityモナドとして抽象化する際に捨象した部分に価値がないので、おっしゃるとおり妥当な抽象化でしょう」 / Twitter
- もるさんはTwitterを使っています 「@qnighy 一方identityモナドであるとわかったからと言えることは自明なことだけなのでわざわざモナドとみなすことで得られる旨味はなさそうです。カッコを付け替えたときにタイミング差がどうなるかなど非同期プログラミングの挙動を盛り込んだ抽象化の方が利用価値がありますね。目的次第ですが」 / Twitter
依存関係グラフ
データ依存関係
- Miura HidekiさんはTwitterを使っています 「プログラムをもっと一般的なグラフとして扱うと得られるものがありそう。ただし、時間とメモリは無限にあるとする」 / Twitter
- Shinya KatoさんはTwitterを使っています 「プログラムはそれ自体が木構造なので仕事で毎日のように木構造を構築しているという主張 (知らんけど)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「例えばデータの参照関係とかもプログラムとして含めるとグラフになるわけだけどそれを顧慮した処理系がどうなるのかは実際に試したことがるからよくわかる。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 FRP言語や同期言語、データフロー言語の場合、データの依存関係が有向グラフ(多くの場合DAG)となり、プログラムの構造もそれを表す形になりますね。といっても構文は木ですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo Rubyを抽象解釈する処理系を書いた時はデータの依存関係が思いっきりループを含んで結構苦労しました。ループを含むか含まないかは雲泥の差がありますね」 / Twitter
LMNtal
- CSLMNtal (仮) チュートリアル
- Research Areas of UEDA Lab.
- LMNtal - LMNtal PukiWiki
- jssst2002-dklic.pdf
- _pdf
PDF
- 26_3_109.pdf
- t-kanemt_sigss.pdf - t-kanemt_sigss2.pdf
- __ォ__e_杏M_本 - A_4.PDF
- 1093-40.pdf
- doctoral.dvi - doctoral.pdf
- Ito.pdf
- description_ja.pdf
- SE-171-11.pdf
- 223208578.pdf
- Makefile でファイルの依存関係をグラフ化する - Qiita
- データフローと依存関係グラフの並列化
- プログラム依存グラフを利用した 情報漏洩解析手法の提案と実現 - ppt download
- CiNii 論文 - プログラム依存グラフ可視化ツールの開発
- プログラム依存グラフを用いたリファクタリング候補の特定と可視化 : 2010-12|書誌詳細|国立国会図書館サーチ
- 佐々木 晃 (Akira Sasaki) - プログラム依存グラフを用いた機能性によるソースコードの分類 - 講演・口頭発表等 - researchmap
- PDG (プログラム依存グラフ) : R-Study
- 依存関係グラフ
- 依存関係フローグラフの例
- Understand 5の新機能・改善点 | テクマトリックス株式会社
- 依存関係 | Understand
- Understand Blog: グラフィカルビュー - 依存関係グラフ
- 依存グラフの解決を行うオブジェクトが必要な理由 #CodePiece
- クラスの依存関係グラフ 4 - 超ウィザード級ハッカーのたのしみ
- algorithm - トポロジカルソートの依存グラフのエッジ方向? - 初心者向けチュートリアル
- SQLスクリプト上でのテーブルや共通テーブル式の依存関係を可視化する|Dentsu Digital Tech Blog|note
- Pythonコードの依存グラフ生成 - Zaike Yuki Blog
- pythonの依存関係解析ツール、pydepsを使う - Techブログ - MNTSQ, Ltd.
- phpを使って簡単な依存グラフを可視化する方法は?
await 境界を超えて値を保持できないようにする警告
- Takashi KawasakiさんはTwitterを使っています 「これは他の言語にも欲しい。」 / Twitter
- ドッグさんはTwitterを使っています 「await 境界を超えて値を保持できないようにする警告 #[must_not_suspend] 属性が rustc に実装されてる.例えば mutex など await 超えて長期間保持し続けるのが適切でない値の型に使う RFC: https://t.co/UDPLPL9Qld 実装: https://t.co/lBcFnQ0NHX」 / Twitter
- rfcs/3014-must-not-suspend-lint.md at master · rust-lang/rfcs
- Implement `#[must_not_suspend]` by guswynn · Pull Request #88865 · rust-lang/rust
- ドッグさんはTwitterを使っています 「s/mutex/mutex のロック/」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「というか、静的解析でも比較的簡単に実装できそうだよな。」 / Twitter
リスコフ置換原則
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「リスコフ置換原則論文を読む https://t.co/3qN9dpzp0I この論文、私は大好きなんですが、確かに置換原則とだけ紹介されてざっくり理解過ぎなこと多いと感じてました。」 / Twitter
- リスコフ置換原則論文を読む - connpass
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「特にLiskovの論文だと、constraint概念重要なんだけど、このあたり一般にはあんまし出て来ない気がする。 ここの「histoy properties」がinvariantに加えて重要という話がだいたいLiskov置換原則周りで抜け落ちる印象。 https://t.co/nUzSO0uAjr」 / Twitter
並行
M:N スレッディング
Rust
Rust
- κeenさんはTwitterを使っています: 「Rustの恐れるな!並行性について、並行プログラミングのどこが恐くてRustがどういう仕組みでそれを防いでるかを解説している。Rustは並行プログラミングに強いとはよく言われるけど具体的に解説してるの少ないよね Rust's fearless concurrency in practice https://t.co/PD3cZIlqGz」 / Twitter
- Rust's fearless concurrency in practice
- κeenさんはTwitterを使っています: 「"fearless concurrency"を「恐れるな!並行性」と訳すのはコミュニティ訳に倣ってるんだけど、約物が入ってるとちょっと地の文で使いづらいなぁ 恐れるな!並行性 - The Rust Programming Language 日本語版 https://t.co/Dzh1rnACrA」 / Twitter
- 恐れるな!並行性 - The Rust Programming Language 日本語版
- yohさんはTwitterを使っています: 「@blackenedgold 「怖くない並列性」とか(かなり砕けて)「本当はこわくない並列性」とかのイメージで脳内解釈してました。」 / Twitter
- κeenさんはTwitterを使っています: 「@yohhoy 私も脳内ではそんなところかなと思ってます。」 / Twitter
- yohさんはTwitterを使っています: 「個人的にはRustの型設計/制約こそがMutex lockに関する正解だと思ってる ほとんどの言語ではプログラマの責務が大きすぎる=並行バグリスクが高いという感じ」 / Twitter
- κeenさんはTwitterを使っています: 「RustのMutexがロックしたい値を包んだりロックした結果がMutexGuardだったりしてC/C++のロックとは見た目が大分違うんだけど、Rust風に設計すると自然とこうなるとよいう解説記事 Why Rust mutexes look like they do - Cliffle https://t.co/Vt8NAguMsw」 / Twitter
- Why Rust mutexes look like they do - Cliffle
- yohさんはTwitterを使っています: 「同じようなことを昔から言ってたぽい:https://t.co/ZSsq1gkHxT https://t.co/pm3lkY1dMs https://t.co/Phw5XZRjPN」 / Twitter
- yohさんはTwitterを使っています: 「Rustみたいに「データをMutexで包む」「データアクセスはlock操作で専用viewを取得」を型レベルで保護できるのが理想系なのかもしれず」 / Twitter
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy 今だとlibGuardedみたいなやつが近いんですかね https://t.co/icXZ3XPZQI」 / Twitter
- yohさんはTwitterを使っています: 「@MitsutakaTakeda libguardedは初耳だったのですが、発想自体は古くからある https://t.co/5rrhgYqRuD のであとは好きな実装を選ぶor自作すればいいのかなーとは思います。いちばんの問題はプログラム全域にわたっての強制・保証だと考えているので、統制が取れるなら手段自体は自由かなーと。」 / Twitter
- Enforcing Correct Mutex Usage with Synchronized Values | Dr Dobb's
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy プログラム全体の設計の話だとミュータブルなものは共有しないようにするのが1番ですかね。」 / Twitter
- yohさんはTwitterを使っています: 「@MitsutakaTakeda 安全側に振り切るなら、自ずとそうなるかと思います。ただ実用上はメモリ共有による設計も処理速度と利便性の面から切り捨てることが難しいので、このあたりのさじ加減はプロジェクト次第だと思いますです。」 / Twitter
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy メモリ共有自体はもちろんいいと思います!個人的にはそろそろ生スレッド&ミューテックスより高いレベルで実行性能を落とさない手法が一般にならないかなと願ってるんですが、コルーチンが入れば変わるんですかね https://t.co/P0OspnFzzJ」 / Twitter
- Plain Threads are the GOTO of Today’s Computing - Plain_Threads_are_the_GOTO_of_Todays_Computing_MeetingCpp_2014.pdf
- yohさんはTwitterを使っています: 「@MitsutakaTakeda C++標準だとParallelismTS v2とExecutorが入ってくれば生スレッドよりはいろいろと捗りそうかなと(個人的には)思っています。これはIntel TBB使用経験の影響が大きい気はしています。慣れは必要かも...」 / Twitter
- 排他 排他対象対象資源について
- マルチスレッド・プログラミングの道具箱
- yohさんはTwitterを使っています: 「ただまあ Rust型システムがどんな並行バグでも防ぐことはなく 設計起因のものは無理 https://t.co/Fvlp99L61a」 / Twitter
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
Go
- _ko1さんはTwitterを使っています: 「golang で poller thread があるのは歴史的経緯だろうか」 / Twitter
- mattnさんはTwitterを使っています: 「@_ko1 netpoller の事です?」 / Twitter
- _ko1さんはTwitterを使っています: 「@mattn_jp はい」 / Twitter
- mattnさんはTwitterを使っています: 「@_ko1 ブロックするシステムコールを呼びつつ処理回すには誰か1人がブロックを肩代わりする必要があるから、と思ってます。」 / Twitter
- _ko1さんはTwitterを使っています: 「@mattn_jp タイムスライスで現状でもポーリングしてて、それで済みそうだなぁという気はしています(タイマーの供給方法は別途要りますが) Thundering herd 問題とか、色々性能上の問題はあるかとは思います」 / Twitter
- mattnさんはTwitterを使っています: 「@_ko1 初めにちょっと polling 試して(P が他にいない場合は起こして)、あとは poller に代行してもらう仕組みだったと思うので、その初回なのかもです。(詳しく見てないですが)」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 M:Nスレッディングみたいなやつで、軽量ユーザースレッドをバンバン作って、それを処理系ランタイムのスケジューラがネイティブスレッドに割り当てていい感じに実行していく、というのを想定していました。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 M:Nスレッディングで作ろうとする話は色々聞くのですが、あまりうまく行ったという話は聞かない印象です。やはり難しいのでしょうね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 Erlang、Elixirとかですかねえ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 Erlang/Elixirってm:nスレッディングを実現しているのですね。ちょっと気合を入れて調べないと。BeamAsmも気になるし。」 / Twitter
- 池田 泰延 / ICSさんはTwitterを使っています 「GitHub Copilot LabsというヤバいVS Codeの拡張機能が登場。 コードの処理内容をわかりやすく教えてくれるし、他のプログラミング言語への変換もしてくれる。 手元でTypeScriptのコードを試したら、「和暦変換するコード」であることを説明してくれて、PythonやPHP、Javaへの翻訳もしてくれました。 https://t.co/96qbUqjHtm」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 FYI: https://t.co/ByrPUT1fBl」 / Twitter
- Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 ありがとうございます。調べてみたらあとGo言語もm:nモデルのようですね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 はい、Goがもっとも成功している例ということになりますかね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 なるほど」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 ちなみにRustにもあるんですけど、スケジューリングなんかはライブラリでやってくれという形になっていますね(昔は言語ランタイムが提供していたらしい)。 GoとErlangは基本的な言語機能として融合されている感じですね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 Erlangの方を例に出したのは、RubyのRactorがアクターモデルの影響が濃いので。あとささださんはElixirの本とか書いてるし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 Rustも見たのですが、デフォルトでは1:1のようですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 たしかに。Erlangの方が私には興味があります。」 / Twitter
- _ko1さんはTwitterを使っています: 「なぜOSの概念、という本を開いたかというと、公平性(fairness)の定義を調べたかったからという。この本には(とりあえずパラパラしたところには)なかった」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@_ko1 和書だと以下のページが見つかります。お探しのものとは違うかもしれませんが: SPINによる設計モデル検証 - Google Books https://t.co/fB08MMafhX」 / Twitter
- SPINによる設計モデル検証 - Google Books
- _ko1さんはTwitterを使っています: 「@tenpoku1000 この辺との用語と自分の認識が違っていて調べなおしていたところでした」 / Twitter
- _ko1さんはTwitterを使っています: 「OS scheduler における fairness って時間配分ちゃんとかんがえよーって話なかったっけ? CFS だけ?」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「co-を双対とするのはごく限られた用法で、普通は「共に」みたいな意味になるので、この場合は呼び出し元のルーチンと交互に実行されることをもって「共に(実行される)」という感じなんじゃないだろうか >coroutine」 / Twitter
async/await
- Hideyuki TanakaさんはTwitterを使っています: 「async/awaitは並行じゃないわけではなくて、バックエンドによってはどう実装してもよかったんじゃなかったっけ?セマンティクスの話であり、実装の話ではない気がする。awaitしたまま処理がkillされてもいいっていうセマンティクスの。」 / Twitter
- mattnさんはTwitterを使っています: 「良い悪いや優位性というより、async/await とコルーチンとスレッドは区別した方が良い気がします。」 / Twitter
- うまのさんはTwitterを使っています: 「golangの非同期処理、JSやらRustやらのasync/awaitと較べてめっちゃ良いってことある?(今のとこ別に大きな優位性は感じない)」 / Twitter
- mattnさんはTwitterを使っています: 「async/await はアイドルになったら別の止まってた処理が動き出すという話なので非同期ではありますが、並行ではないです。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「await/asyncは基本的にはスレッドとは関係ないというところから理解すべきだと思うんだけどなぁ。わかってない人ほどスレッドだと思ってる節がある。」 / Twitter
- mizchiさんはTwitterを使っています: 「自分はjquery deferredを経由したから理解できたけど、asyncからpromiseを逆算するのはしんどいと思う / 他13件のコメント https://t.co/bHMkBfXPbR “JSの非同期処理を理解するために必要だった知識と学習ロードマップ” https://t.co/PKvpJNPDA8」 / Twitter
- JSの非同期処理を理解するために必要だった知識と学習ロードマップ
Go
- _ko1さんはTwitterを使っています: 「[Go: Asynchronous Preemption. ℹ️ This article is based on Go 1.14. | by Vincent Blanchon | A Journey With Go | Medium](https://t.co/hozwdRXDX8) なんで SIGURG 使うのかよくわからんかったのだけど、flag sense したくないから?(しかし、safe-point までの遅延はどうやって実現するのか)」 / Twitter
- Go: Asynchronous Preemption. ℹ️ This article is based on Go 1.14. | by Vincent Blanchon | A Journey With Go | Medium
- _ko1さんはTwitterを使っています: 「そうっぽいなあ まぁ、ループで見たくない気持ちはわかる」 / Twitter
- _ko1さんはTwitterを使っています: 「なるほどなぁ、breakpoint みたいにして命令書き換えて、可能なら止めるんだな あれ、ということは書き換え可能なん?」 / Twitter
- _ko1さんはTwitterを使っています: 「[goroutineはなぜ軽量なのか - Carpe Diem](https://t.co/tWCnHYGFwj) 「現在のスタックの内容を新しいセグメントにコピーし」 一般的に、スタックのコピーってポインタの書き換えが必要になりそうだけど、できんのかな(外部コードが入ってなければできるだろうけど)」 / Twitter
- goroutineはなぜ軽量なのか - Carpe Diem
- monochromeさんはTwitterを使っています: 「@_ko1 FYI: https://t.co/Ex3DlZE8fP」 / Twitter
- How Stacks are Handled in Go
- monochromeさんはTwitterを使っています: 「@_ko1 ランタイムからCのコードが無くなったため、スタックのコピー(ポインタの書き換え)が可能になったようです。」 / Twitter
- _ko1さんはTwitterを使っています: 「@s_isshiki1969 ありがとうございます。go から別の C ぽい言語でかかれた外部ライブラリを呼ぶと、そうはいってられなくなると思いますが、そういうときはなんか対処するって感じですかね」 / Twitter
- mattnさんはTwitterを使っています: 「@_ko1 @s_isshiki1969 Go からCぽい言語で書かれた外部ライブラリを呼び出す際に、Go が生成したメモリは渡せない仕組みになっています。」 / Twitter
- _ko1さんはTwitterを使っています: 「@mattn_jp @s_isshiki1969 スタックも別な感じですか」 / Twitter
- mattnさんはTwitterを使っています: 「@_ko1 @s_isshiki1969 はい。そのはずです。」 / Twitter
- monochromeさんはTwitterを使っています: 「@mattn_jp @_ko1 現在のGoは正確なGCを持っていることもあり、Goのスタック(伸縮可能)とCのスタックは別々になっている、という理解です(これはちょっと自信がない) cgoというC FFIのための仕組みがあるのですが、これを使うと遅くなる理由の一つが上記の事情のようです。 https://t.co/Tn4fwhLuO7」 / Twitter
- cgo is not Go | Dave Cheney
- monochromeさんはTwitterを使っています: 「@mattn_jp @_ko1 ”C doesn’t know anything about Go’s calling convention or growable stacks, so a call down to C code must record all the details of the goroutine stack, switch to the C stack”」 / Twitter
- _ko1さんはTwitterを使っています: 「@s_isshiki1969 @mattn_jp どもども。まーそう作るよな」 / Twitter
- monochromeさんはTwitterを使っています: 「Goはシンプルで色んな意味で「軽い」のが特徴の言語と思われているけど、スケジューラを持っているからランタイムは大きいし、Cへの依存を消すべくライブラリも全部Goで書いてるし、色々徹底していてすごい。」 / Twitter
- かとじゅんさんはTwitterを使っています: 「ここ数年 スレッド(java.lang.Threadなど)はほとんど使ってない。スレッドの代替となるPromise/FutureもしくはActorを使う。スレッドへのスケジューリングはこれらの抽象化レイヤーが担う。渡すデータは不変でかつシェアードナッシングであれば比較的楽で安全に非同期プログラミングが可能になった。」 / Twitter
- 増田 亨.さんはTwitterを使っています: 「ミュータブルで単一スレッドで頑張るのはすぐに限界がくる。 イミュータブルで並列処理を安全に実行できると、スケールしやすくなる。」 / Twitter
Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「"平行性"って英語だと"parallelism"なんだけど、"parallelism"を(計算機の文脈で)和訳すると"並列性"になるのどっかでバグってると思う。まぁ並行性と平行性はそもそも全然別の話なんじゃが。」 / Twitter
- こば(右)- Koba as a DB engineerさんはTwitterを使っています 「@kumagi 並行性をconcurrencyと訳したりもしますね。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「@tzkb ちなみに僕はごっちゃになった時はparallelという単語は縦線が多いから同じく縦線の多い"列"と紐づけ、concurrentという単語はそれに比べると横線が多いので"行"と紐付けることで、並行・並列とconcurrent・parallelの混乱を解決しています。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「僕の感覚では 並行: 朝ご飯を食べながらニュースを見る、のように複数の作業を手段はどうあれ時系列的にオーバーラップした状態でやること 並列:白米を咀嚼して嚥下しつつ目がニュースの映像を解釈して理解する、のように実際の動作が同時に行われる事。仕事の種類は関係ない https://t.co/7CMRYQGNgl」 / Twitter
- 君たちの「並行」の理解は間違ってる
- 分散処理に詳しいオタクさんはTwitterを使っています 「ご飯時にテレビをつけてさえいれば、ニュース鑑賞と食事を実際は交互にやっていてもそれは並行作業とは呼べる。目的が複数あれば並行。 それの効率化として咀嚼する間に暇な目と脳をニュースに向けるのなら並列作業。目的の数に依らず独立したアクチュエーターが複数あれば並列。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「つまり並行・並列ってのはラベルを付けるレイヤーが違うので、並行かつ並列という状況もありうるし、例えば両手に箸を持つ事により倍のスループットで白米を口に運ぶというのならそれは並列と呼べる。計算処理にDMAをオーバーラップさせるのも複数のアクチュエータを同時に動かすので並列処理。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「普段のCPUもメモリコントローラーとALUが同時に動いとるやんけみたいなクソリプを無限につければ何でも並列処理とは呼べるんだけど、まともな文脈において並列処理ってのは「複数のアクチュエータを同時に駆動させる事による高速化」を縮めて言ってるだけなので高速化とは関係のない文脈では使わない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「並行に関して言うと concurrent が con-current じゃなくて concur-ent なのは罠だと思う。register 的なアレ」 / Twitter
- KOBA789さんはTwitterを使っています 「これは定義ではないけれど、並列化はそれらのタスクを直列に実行したときよりも完了までの時間が短くなることをしばしば期待するよね」 / Twitter
- KOBA789さんはTwitterを使っています 「下のレイヤーの詳細を知らずに速いソフトウェアを作れるわけなかったわ。大変失礼しました」 / Twitter
- _ko1さんはTwitterを使っています 「@KOBA789 下回りの詳細を知らないと速くできないCSの敗北」 / Twitter
- KOBA789さんはTwitterを使っています 「@_ko1 leaky abstraction に勝ちたい」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「concurrentとparallelについては昔@kumagiさんとやらかしたことがあったなあ(ぉぃ 「concurrentとparallelの違い説明会」 https://t.co/M3TT95Lgm2 個別の事例に対しこれは concurrent? これはparallel?って判断すれば意見はほぼ一致すると思うんだけど、一般的に説明しようとなんか紛糾する?」 / Twitter
- concurrentとparallelの違い説明会 - Togetter
- Toshio HirotsuさんはTwitterを使っています 「@hidemotoNakada @_ko1 昔、殆どの環境が (physical に) single thread だった時代には、論理的に同時に走る (incl. time slicing) を並行(Concurrent)、物理的に同時に走るを並列(Parallel)と呼んでいた時代もあったような。」 / Twitter
- _ko1さんはTwitterを使っています 「なお、私の理解: (走らせれば終わる)複数のタスクについて、 並行:待ってればいつか全部終わること(論理的に同時) 並列:並列計算機において、物理的に同時に走ること」 / Twitter
- _ko1さんはTwitterを使っています 「@t_hrt @hidemotoNakada 昔ブックオフで買った情報処理大辞典というのを見てみました。 並列は物理的に同時っぽく書いてありますが、並行処理はあんまり論理的じゃなかったようです。 https://t.co/bc1ukJrWnF」 / Twitter
- yohさんはTwitterを使っています 「並行/並列の"厳格な"定義はハナから無いと考えたほうが気楽なのかもしれず 文脈依存説」 / Twitter
- yohさんはTwitterを使っています 「といいつつ 個人な感覚では タスク記述の論理的な分離性が主眼=並行(concurrent)/タスク処理の物理的な高速化が目的=並列(parallel) 派」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「並行処理に対してユニットテストを走らせる」ということ自体がナンセンスな気もするんよな,こういうところこそbisimulationの証明手法や(higher-order) model checkingが活かせる対象なんじゃないかなと思える」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「活かせる」はここでは特に「産業的にも要請されやすい」の意です」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「雑なテストだけど、Big Sur だと TaskGroup でいっぱい Task つくると作っただけ Thread ができるけど、同じコードを Monterey で実行するとCPUの数(M1なら8個)までしか Thread ができない。Swift concurrency: Behind the scenes のプレゼンで言ってた通りの挙動してる。 https://t.co/VdnOdaoHUv」 / Twitter
- thread.swift
- mod_poppoさんはTwitterを使っています 「production-qualityやproduction-readyが「量産型」と訳されているらしい」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「自作言語処理系でコルーチンを実装してみた。といっても、アセンブラの力を借りてるんですけどね。これを言語組み込みの機能として実装してみたい。 https://t.co/yRTG79i3UD」 / Twitter
- 令掛ベインさんはTwitterを使っています 「並行で動作するステートマシンを渡したらランタイムがスレッドとかを使って並行計算をしてくれる、というプリミティブを用意してる。チャネルの読み書きやタスクの生成などの副作用をランタイム側に隠すため #milone_lang / https://t.co/wLkDPBLFw2」 / Twitter
- milone-lang/FSharpOnly.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
- 令掛ベインさんはTwitterを使っています 「並行処理ではコマンドの処理が完了してアクションが生成される順番が非決定的なので、consumerはactionの順番に依存しない必要がある (可換性)。結果をソートとかで標準化して、決定性を取り戻してもいい #milone_lang」 / Twitter
- 令掛ベインさんはTwitterを使っています 「使用側: ソースファイルを並行にパースしてる。パースした結果の構文木に含まれるopen宣言から新たな依存しているモジュールが見つかる、というのがちょっと厄介 / https://t.co/inODypHBZl #milone_lang」 / Twitter
- milone-lang/AstBundle.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「Rustのstd::task::Contextは型じゃなくてトレイトにすべきだったのではないだろうか。 これがトレイトなら、スケジューラが独自のSleep機能を有するFutureを提供しやすくなるし」 / Twitter
- satさんはTwitterを使っています 「スレッドの説明に必要なのは - 概要 - ネイティブスレッド - グリーンスレッド - つらいところ - PythonのGILとかRubyのGVLとか - スレッドの概念の隠蔽(goroutineとか) とかかなあ。あるいは概要だけ書いてお茶を濁す」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi ・スレッド間で共有されるリソースとその制御 ・スレッドのリソース制御 ・スレッドとNUMA ・スレッド間通信 ・スレッドを区別したりしなかったりするsignalとかprocfsとか古い統計情報とか古いユーティリティ群の各OSおよびバージョン別の状況と、それらを使おうとするユーザを説得する(文字数」 / Twitter
- 新しい並列for構文のご提案
- できる!並列・並行プログラミング
- κeenさんはTwitterを使っています 「コンパイラの処理を1段階ずつ適用していきながらasync/awaitがどう変換されていくかを追う記事 lowering async await in rust - wiki https://t.co/Fsuinoj0rH」 / Twitter
- lowering async await in rust - wiki
- Unhandled Rejection の考え方 - from scratch
- kateinoigakukunさんはTwitterを使っています 「@miura1729 これは継続ではなくコルーチンですが、LLVM IR上でresumeやsuspendのマーカーを配置して、専用のパスで低レベルな表現に降下する機能がありますね。 https://t.co/BFh3hMD085」 / Twitter
- Coroutines in LLVM — LLVM 13 documentation
- JavaScript のスレッド並列実行環境
- エクサスケール・コンピューティングの鍵を握るLLVM | HPCwire Japan
- 自作Goコンパイラでマルチスレッドが動くようにするまで
- Stream API並列実行スレッドプールを明示指定 - yohhoyの日記
- paraphrase_langさんはTwitterを使っています 「Paraphrase の並列処理のベンチマークとして使用しているメルセンヌ素数の探索プログラムでは、2^5000-1 までを確認する。 M1 mac だと数秒で終わるので、2^10000-1 まで計算=22 番目まで計算させてみた。1963 年に発見されたものまでなら 10 秒程度で計算できる (^^b https://t.co/0RABze90a6」 / Twitter
- メルセンヌ数 - Wikipedia
- 近況 2021-09-30 - ベインのブログ
- kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「なるほど、ROSの本質は通信だからベースにCSPやアクターモデルの思想があるErlang(Elixir)を利用するっていうのは理にかなっているな #func_party」 / Twitter
- アクターモデルのサポート状況について
- 関数型っぽくROSロボットプログラミング
- rclex/rclex: Rclex: ROS 2 Client Library for Elixir
- Hyman's Code
- Certifying Derivation of State Machines from Coroutines (POPL 2022 - POPL Research Papers) - POPL 2022
- がくぞさんはTwitterを使っています 「async/await 確かにFutureと比べるとifとかの制御構造と混ぜて使いやすいのだけど、 for await of とか他の制御構造と混ぜた時に間違えやすかったり誤った使い方してることも多いので、Futureとtraverse/sequenceでよくな~~い?って思う事もある」 / Twitter
- がくぞさんはTwitterを使っています 「for await ... of とか map(async ...) とか async/await を使う上で専用のアレコレを把握する必要があるけど、traverse/sequence は Future に限った概念じゃないし一つ覚えればいくらでも他に応用が効くあたりがまーいいよね的な」 / Twitter
- golang の channel を使って Dispatcher-Worker を作り goroutine 爆発させないようにする - at kaneshin
- Golangのスケジューラあたりの話 - Qiita
- ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
- ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
- mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
- The Go netpoller - Morsing's blog
- The Go scheduler - Morsing's blog
- JEP draft: Virtual Threads (Preview)
- ぽんこつさんはTwitterを使っています 「AwaitされてないFutureを探すという苦行をしている(本当に苦行」 / Twitter
DAG, 並列, 並行
- DAG 並列 - 検索
- DAG 並行 - 検索
- spark dag 並列 hadoop - 検索
- 分散処理フレームワーク「Hadoop 2」(後編) | 日経クロステック(xTECH)
- MapReduceは「ゆっくり死んでいく」、Hadoop開発者のカッティング氏 | 日経クロステック(xTECH)
- 分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
限定継続(部分継続)
- 限定継続 (delimited continuation) の動作を理解する - 映画は中劇
- 36_2_47.pdf
- 限定継続でパーサを書く - Qiita
- 限定継続 - haskell-shoen
- 部分継続 (Gauche ユーザリファレンス)
- Scheme/継続の種類と利用例 - Wikibooks
- 継続 - Wikipedia
- PPL1-2.pdf
- abst67.dvi - IPSJ-TPRO4812008.pdf
- 部分継続チュートリアル
- 僕でもわかる継続と部分継続 - まめめも
- お気楽 Scheme プログラミング入門
- 部分継続にもとづく移動コード記述: 定義と操作的意味 | CiNii Research
限定継続
- kontlang-shift-reset-lisp - Speaker Deck
- Kontlang-Monadic Reflection - Speaker Deck
- 継続を扱えるLispの簡易的な処理系をRubyで実装 - Qiita
- Promiseをthrowするのはなぜ天才的デザインなのか - Qiita
- ふみ a.k.a.DJ MonadさんはTwitterを使っています: 「今後GHCに導入されるかもしれない限定継続を使ってByteString builderを実装してみた。クロージャを毎回作るかスレッドを使うかだった既存実装の構造的な問題を抜本的に解決でき、パフォーマンスも改善できたので期待できる https://t.co/QNjts7EVA6 #Haskell #DelimitedContinuationPrimops」 / Twitter
- Delimited continuation primops by lexi-lambda · Pull Request #313 · ghc-proposals/ghc-proposals
- めざそう言語処理系の沼 〜shift/resetへの旅 〜 その16 shift/reset - Arantium Maestum
- 限定継続 (delimited continuation) の動作を理解する - 映画は中劇
- 限定継続でパーサを書く - Qiita
- 🐢さんはTwitterを使っています: 「JVM のバイトコードをガリガリやることによってJava で algebraic effects and handlers を実現している.限定継続が扱われへん言語は大変や…… https://t.co/VsIW0Edbvy」 / Twitter
- Effect handlers for the masses | Proceedings of the ACM on Programming Languages
- 限定継続命令をもつ依存型付き言語の設計
- KuniwakさんはTwitterを使っています: 「今まで読んできた「限定継続」の資料の中で一番わかりやすかった / 2件のコメント https://t.co/0WGUpyX9kW “モナドをつくろう” (20 users) https://t.co/rIBVDPcCyb」 / Twitter
- モナドをつくろう
- Masahiro SakaiさんはTwitterを使っています: 「Demystifying Differentiable Programming: Shift/Reset the Penultimate Backpropagator https://t.co/gf9JWWcZ69 限定継続でリバースモード自動微分する話 https://t.co/HwCIYjGBhi の論文。それに加えてフォワードモードの話、多段階計算でdefine-by-runの柔軟性とdefine-and-runの効率を両立する話」 / Twitter
- [1803.10228] Demystifying Differentiable Programming: Shift/Reset the Penultimate Backpropagator
- Tiark RompfさんはTwitterを使っています: 「The essence of #DeepLearning frameworks? A minimal reverse-mode differentiable programming implementation in #Scala fits in two tweets (560 chars). shift/reset FTW! https://t.co/oulT1QySN9」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「限定継続手軽に扱いたかったらRacketだよね、という気はする。」 / Twitter
- Keigo ImaiさんはTwitterを使っています: 「なかなか眠れないので OchaCaml と限定継続で遊んだ。たまに書かないと忘れます。 結局 answer type modification は使えてないという。 https://t.co/LVgeK5Bsor」 / Twitter
- 2018-12-05
- κeenさんはTwitterを使っています: 「IO噛むのって実装上スタック切り取ってるからworld受け取っとかないとできないって話なのかな。それとも型安全性的に必要と判断したのかな。それともIOを含んだ継続を切り取りたいっていうユーザビリティの問題なのかな。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「継続が絡む操作は純粋じゃないのでHaskellの場合は何らかのモナドを絡める必要がある、と自分は認識している」 / Twitter
- mod_poppoさんはTwitterを使っています: 「あとIO型とコンパチにしてしまうとリソース管理と大域脱出・復帰がかち合うから(Schemeのdynamic-windみたいな問題?)、内部的にState# RealWorldは使うけどIO型のインターフェースは提供しないらしい」 / Twitter
- 限定継続 | κeenのHappy Hacκing Blog
- examples/README.md at master · krdlab/examples
- 限定継続でモナドを後付けする - Qiita
- sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
- SMLで継続を使ってprintf/scanf | κeenのHappy Hacκing Blog
- 36_2_47.pdf
- Keigo ImaiさんはTwitterを使っています 「限定継続を取るときに、 if b then ここ else そこ のような分岐構文から2つ継続を取り出したい。そして個別に answer type modification をしたい。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「クロージャを使えば似たようなことはできるんですがヒープに何かを確保したくない。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「cf. Multi-return Function Call https://t.co/SsTKCm9qMz」 / Twitter
- mrlc-jfp.pdf
非同期・ノンブロッキング・CPS
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- update a content · KeenS/KeenS.github.io@d46dad5
- How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
- channel - go routine blocking the others one - Stack Overflow
- 「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
- Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
- Future パターン - Wikipedia
- Futures and promises - Wikipedia
- Overview of Blocking vs Non-Blocking | Node.js
CPS変換
- κeenさんはTwitterを使っています 「CPSしてる部分をIsoみたいに同型で抽象化できないかなって思ったけどあんま意味ないか」 / Twitter
- データ型のCPS変換について - Just $ A sandbox
- κeenさんはTwitterを使っています 「type (-'s, +'t) fn = {f: 'r. 's -> ('t -> 'r) -> 'r} type (-'s, +'t, +'a, -'b) t = ('a, 'b) fn -> ('s, 't) fn としとくとeta展開なしで書けはする。app, (>>), idまで特有でそれ以降は同じコードで動く(多分)」 / Twitter
- κeenさんはTwitterを使っています 「(>>), id はむしろ -> をそのまま -> として使えるので普通の(>>), idと言った方がいいかも」 / Twitter
- BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - yhara.jp
- κeenさんはTwitterを使っています 「ナイーブなCPS変換するときに元の式にはない簡約基ができるんだけどそのせいで変換前と変換後で同じ簡約が進むみたいなことが言いづらい。CPS変換のルールを複雑にして余計な簡約基が発生しないようにするのがよくある手法だけど、やっぱ複雑なルールの証明もつらいってことで多分みんな欲しかったやつ」 / Twitter
- κeenさんはTwitterを使っています 「思ったより理論寄りだった。reductionを保存しない変換でsemantic preservationを証明するときとかに使えるフレームワークらしい。で、例題としてCPSの正当性を証明してる。 Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021 https://t.co/UQL5IV9wEi」 / Twitter
- Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021
- CPS/DS変換 - Qiita
- 120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita
継続
Asyncify
- _ko1さんはTwitterを使っています: 「「これらの課題を一挙に解決したのが、Asyncifyという技術です。」 未だにツール名を技術というのになれないんだよな。技術としてはバイナリ変換による継続情報のキャプチャ。」 / Twitter
- kateinoigakukunさんはTwitterを使っています: 「嬉しすぎる > 1日目のキーノートが、内容もプレゼンも大変良かったので、少し詳しくレポートします。 / “RubyKaigi 2022 Ruby meets WebAssembly - マイペースなRailsおじさん” https://t.co/WSr2dhO44N」 / Twitter
- RubyKaigi 2022 Ruby meets WebAssembly - マイペースなRailsおじさん
- Samuel WilliamsさんはTwitterを使っています: 「@_ko1 WebAssembly needs to support coroutines directly.」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「SML/NJってCPSを内部表現で使っているからLLVMととても相性が悪そうじゃん。と思って眺めたけど、LLVMを改造しているとか結構苦労してそう。なぜLLVM?と思った。」 / Twitter
- cobwebさんはTwitterを使っています: 「@miura1729 https://t.co/y32OcWpe4r」 / Twitter
- Squeak VM - Compiling with Continuations and LLVM
break, CPS
- lotzさんはTwitterを使っています: 「有識者ではないけど breakは手続き的な概念だと思うのでまずは使わなくて済むようなアルゴリズムに変換できないか考えるかな(割とできる) それでもbreakを使う必要があったら継続渡しスタイル(CPS)に変換して継続を捨てるとか方法は色々ありそう switchはパターンマッチがあるからむしろ得意かも」 / Twitter
- はけた@できるExcel2021 4/1発売さんはTwitterを使っています: 「これは諸説ありそうな予感。 有識者の方に聞いてみたいですね。 break系はJavaScriptのforEach・map・reduce系だと書きにくそう(書けない?)ですが。 Haskellとかだとどうなんでしょうね。」 / Twitter
- windさんはTwitterを使っています: 「https://t.co/Zpo9BuL1FL fizzbuzzとかswitch文が必要なロジックとか for文内でbreakで終了するようなロジックは関数プログラミングに向いてないよ。 逆に分かりにくくなる」 / Twitter
- なぜmapやreduceやfilterなのか〜前編|こわくない関数型プログラミング
- はけた@できるExcel2021 4/1発売さんはTwitterを使っています: 「@lotz84_ ありがとうございます。 よくよく考えると、私がぱっと思いつくbreakが必要になる処理は、Haskellだとリストに対するmap、filter系の処理と、takeの組み合わせで書けそうな気がしてきました。」 / Twitter
- lotzさんはTwitterを使っています: 「@excelspeedup Haskellだと遅延評価があるので高階関数の組み合わせで書いても必要ない要素の評価を避けることが出来て実質breakと同じ挙動が実現できたりしますよね!」 / Twitter
- はけた@できるExcel2021 4/1発売さんはTwitterを使っています: 「@lotz84_ はい。 遅延評価すごい!と思うことが多いです。」 / Twitter
限定継続・CPS・EPS・停止性
浅井研
- sakaue09.pdf
- masuko09.pdf
- kitani09.pdf
- kitani10.pdf
- ppl10.dvi
- tsushima10.pdf
- ueda10.pdf
- masuko13.pdf
- kaneko13.pdf
- sou14.pdf
- ueda15.pdf
- sou15.pdf
- sou17.pdf
- ishio18.pdf
- CPS 変換の正当性の Agda による証明
- sou18.pdf
- sou19.pdf
- uehara17.pdf
- ishio19.pdf
- hirota13.pdf
- 限定継続処理の抽象機械導出のためのプログラム変換
- 情報学広場:情報処理学会電子図書館
- 限定継続命令をもつ依存型付き言語の設計
- sou18.pdf
- typedlmd.pdf
- 研究会 - 継続渡しスタイルの関数型プログラミング言語における分散処理の記述
- CB-002.pdf
- Implicitly-Typed Deadlock-Free Process Calculus
- 技術者/プログラマのためのラムダ計算、論理、圏 第3回に行ってきた
- 第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
- 構造化プログラミングと データ抽象
- _pdf
- d.y.d.
- Asai Laboratory, Ochanomizu University
- shift/reset と control/prompt の違い - まめめも
型付きラムダ計算・CPS
- 型付きラムダ計算 CPS - Google 検索
- sou17.pdf
- sou19.pdf
- B-021.pdf
- ppl5-3.pdf
- KAKEN — 研究課題をさがす | λμ計算の表示的意味論に関する研究 (KAKENHI-PROJECT-14540119)
- 1569jabstract.pdf
- jssst2000.pdf
- ラムダ計算 - herp-technote
- ppl2005.pdf
- _pdf
- MSJ20120328Fujita.dvi
- 0992-24.pdf
- saika_21_3-nakazawa-takuji.pdf
- PPL 2019カテゴリ1,2,4採択論文・発表リスト
- Suzuki.pdf
- マイポータル - researchmap
- プログラミング言語理論・設計|法政大学シラバス
- 「計算論」を(中途半端に)読んだ
- d.y.d.
- 継続とかの話題サーベイ | κeenのHappy Hacκing Blog
- 「ソフトウェア基礎論」講義計画 佐藤、亀山 - Programming Logic Group
CPS・再帰
- 【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
- 継続渡しスタイル - Wikipedia
- 再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
- 6-3. Continuation Passing Style
- ppl8-2.pdf
- なんでも継続
- evaluatorの再帰実装→CPS化→Continuationのde-functionalize→ループ化 - ラシウラ
- Javaでフィボナッチ数を求める関数を末尾再帰最適化する
- Asai Laboratory, Ochanomizu University
CPS・並列
- Continuation Passing Style 並列処理 - Google 検索
- コールバック不要:Javascript に逐次プログラミングを取り戻す StratifiedJS
- Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする) - 主に言語とシステム開発に関して
- 継続渡しスタイル - Wikipedia
- CPS - mrsekut-p
- 非同期と継続と私 - 技術日記@kiwanami
- JSDeferred Sample
- JSDeferred -> Promise 置き換え方法 | tech - 氾濫原
- JSDeferredで,面倒な非同期処理とサヨナラ:特集|gihyo.jp … 技術評論社
- 言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
- Scheme 入門 16. 継続
- 並行プログラミングと継続モナド
- CB-002.pdf
- B-021.pdf
- cps.pdf
- 6J-05.pdf
- ppl8-2.pdf
CPS
- 継続渡しスタイル - Wikipedia
- 継続渡し形式(CPS)
- PHP で継続渡し - Sarabande.jp
- データ型のCPS変換について - Just $ A sandbox
- CPS というプログラミングスタイルの導入の話 - ゆずとみかんといちご
- お気楽 Scheme プログラミング入門
- なんでも継続
- cps.pdf
- CPS.pdf
- 時の羅針盤@blog: CPS変換
- 情報科学実験II資料 (4) CPS変換のアルゴリズム
- CPS変換と二重否定のカリーハワード対応の話 - Togetterまとめ
- Haskell で継続渡しスタイル (CPS) | すぐに忘れる脳みそのためのメモ
- 非同期処理の「その後」の話。goto、継続、限定継続、CPS、そしてコールバック地獄。 | κeenのHappy Hacκing Blog
- CPS変換 カテゴリーの記事一覧 - にわとり小屋でのプログラミング ブログ
- トランポリン化でStackOverflowの回避 - Qiita
- BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - 近&況
- chikoskiさんのツイート: "https://t.co/J93pxgLT47 「CPSとはコールバックのファンシーな呼び名だ」"
- RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
- ジェネレーターを簡易的にCPS変換してみた - Qiita
- kontlang-shift-reset-lisp - Speaker Deck
- zehnpaard/kontlang: Language with Clojure-like syntax and semantics based on EoPL + Shift/Reset
- 継続モナドについて - Qiita
- CPS変換はじめてみた - Arantium Maestum
Algebraic Effects
- ワンショット代数的効果から 非対称コルーチンへの変換 - pro2019-01-slide.pdf
- コルーチンを用いた代数的効果の新しい実装方法の提案 - master_thesis.pdf
- 28_1_217.pdf
- 2021-03B-furudono.pdf
- Algebraic Effects 自習用資料まとめ. Web記事、論文、発表資料、コード、言語など | by Yuki Kodama | Medium
- 我々向けの Algebraic Effects 入門 — Overreacted
- 効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合
- HERP TechHub - びしょ〜じょ
- Algebraic Effectsであそぼう / lilyum ensemble
- Yosuke FURUKAWAさんのツイート: "Facebook の人は3年くらい前からどうやって Algebraic EffectをJSで書くか検討してたみたいなんだよなー / “one-shot-delimited-continuations-with-effect-ha…” https://t.co/RKWE8n20CL"
- One-shot Delimited Continuations with Effect Handlers
CbC
- Kono's paper list
- 継続を基本とした言語CbCのgcc上の実装
- Continuation based Cを試す - Qiita
- Shinji KonoさんはTwitterを使っています 「CbCは巨大なswitch文として実装する方法もあり得るので、当時やるならそれだったかもな。ただ、今でもプログラミングには苦労してるので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「先祖返りなんだよな。今までの方法論が使えないっていうか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Susman はHewittのActorを見て「Lispじゃん」で片付けたらしい。もっとも、その時に並列処理のいろいろがどうなるのかはよくわかってなくて…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まあでも、Smalltalkの実装を見てる時にもLispじゃんと思ったので、そんなもん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CbCは a → ( b → t ) → t の形のみでプログラミングする言語だとも言える。これはCurry Howard対応的には否定に相当するような構造らしい。Actorの並列化で欲しかったのはそれってこと。自動的に並列処理を抜き出すみたいなのとは相性はよろしくない。まったく優しくない。」 / Twitter
- Monad と OS
- Shinji KonoさんはTwitterを使っています 「@wtakuo @miura1729 Apertosには入れなかったんじゃないかなぁ。なのでApertosのドキュメントはないかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Muse/ApertosをやるはずでソニーCSLにいたのだが、まぁ、あんまり手伝えず。T先生が「CS界で相対性理論に相当するようなものを発表したい」というので考え出したのがCFMだった。そういうの嫌いじゃないし、そういうのを期待されていたのだろうし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「その時には今のCbCの基本はあったのでメタ計算的な感じで計算場みたいなものがあるのだろうなという感じ。その頃はまだクラウドはなかったのだが… 90年でしょ? ノートPCクラスタみたいなの作ってた人もいたし、それほどはずれではなかったのだが… まぁ、残念な方向に。」 / Twitter
Wikipedia
- 継続 - Wikipedia
- クロージャ - Wikipedia
- アクターモデル - Wikipedia
- 無名関数 - Wikipedia
Twitter
- Shiro KawaiさんはTwitterを使っています: 「@hatsugai GaucheはSchemeスタックがCスタックと別管理なので、「CからSchemeを呼び出している」箇所に戻らない限りは別スレッドでの継続起動は可能です。ネイティブスタックを共用する実装だと厳しそうですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「https://t.co/wkfp0gEcK8 懐かしい、修論で作った言語がこんな感じで実装した。当時は、トランポリンを apply like functionって呼んでいた。こうすると、継続が常に取れるので軽いグリーンスレッドを作るのに有利で、これで並列オブジェクト指向言語を実装した。」 / Twitter
- Niyarin's blog
- Toru HisaiさんはTwitterを使っています 「https://t.co/SwdVuy6QDn Scheme で継続を使って非同期の API を同期呼び出しっぽくするラッパーを書いてみた。」 / Twitter
- async.scm
- monochromeさんはTwitterを使っています 「async/await、コルーチン、継続、ジェネレータ、統一的に概念を理解したい」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理の方では Skolem化のところで継続を使うと良かった。いろいろ発見があって面白い。」 / Twitter
- https://twitter.com/shinji_kono/status/1308052561576906753
- https://twitter.com/shinji_kono/status/1308052219183247362
- ふ''れいすさんはTwitterを使っています 「akkaというかactor modelはつまるところ継続だな、となったので取っつきやすかった。そういうたぐいの解説を読んだ記憶がないんだけど、みんなactor modelはどう理解しているんだろう。ステートマシン?」 / Twitter
- ふ''れいすさんはTwitterを使っています 「CSPというかgoroutine/channelはアレは結局よくわからん。いくつかイディオムちっくなものを覚えれば応用もできるようになるんだけど、actor modelのように腑に落ちる何かではないんだよなぁ」 / Twitter
- 言語のスレッド実装の雑な話(Green threadからGoのgoroutineまで)
- 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その3「同期・排他制御の2つの問題点」 - Qiita
- 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その2「スレッドと同期・排他制御」 - Qiita
- 並行・並列プログラミングと同期・排他制御とイミュータブル性の話〜その1「背景: クロック周波数の停滞とコア数の増加」 - Qiita
- Stackful coroutine実装まとめ - Qiita
継続 再帰
- なんでも継続
- Scheme 入門 16. 継続
- 6-3. Continuation Passing Style
- お気楽 Scheme プログラミング入門
- お気楽 OCaml プログラミング入門
- 継続渡しスタイル - Wikipedia
- 再帰 - Wikipedia
- Scalaではじめる末尾再帰 - Qiita
- 継続について知りたい - Qiita
- 継続とcall/ccに触れてみた in C++ - Qiita
- jvmext-ipa.dvi - 000005545.pdf
- 継続とクロージャと末尾再帰
- 【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
- フィボナッチ数列と継続受け渡し方式と末尾再帰 - Retro-gaming and so on
- 反復と継続の違いは?惰性で繰り返す「反復」と、改善しながら繰り返す「継続」
- 回帰テストとは?試験のタイミングや実施範囲の選択基準も | テクバン株式会社
全単射
- h segawaさんはTwitterを使っています: 「もっと簡単に「[0,1)区間の実数」と「自然数から自然数への写像」の間の全単射が定義できることに気づいた 自然数の写像fに対して2進無限小数を 0.(f(0)の値の数だけ1)0(f(1)の値の数だけ1)0(f(2)の値の数だけ1)0... という感じで割り当てる そうするとこれは全単射になる」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@dec9ue すごい」 / Twitter
- h segawaさんはTwitterを使っています: 「@miura1729 この話が無駄にうまく出来てるなと思うのは、無限小数の途中から1が無限に続くケースなんですよね…」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@dec9ue @miura1729 0.xxxxxx01....(ずっと1).... という系列は上の構成法からは出てこないけれど、実数ではこれは0.xxxxxx10...(ずっと0)... と同じでこちらは出てくる、というわけですか」 / Twitter
- h segawaさんはTwitterを使っています: 「@anohana @miura1729 そのとおりです 写像側で無効なパターンが、実数側では都合よく繰り上がりのパターンになっていて、結果的にうまく行っちゃってます」 / Twitter
推定した型の展開
- Miura HidekiさんはTwitterを使っています: 「人間に型を書かせるのって、人間に機械語コードを書かせるようなイメージなんだよね。コンピュータで型を推定できるならその方がいいという考え。そのうち凡人じゃ手に負えない型システムになるだろうし」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 自動で推定された型を見たい気もしますが、それもダメなんでしょうか」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 自動で推定するようになるべきじゃないかと思います。または、型を直接指定するのではなくもっと抽象度の高いDSLで指定するとか」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 書き方が悪かったのですが、自動で推定した結果を自動で展開するというものです。コードを書き換える感じです」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@tenpoku1000 なるほど、人が読める形に展開できるかですね。実コードより長い型定義とじゃ普通に出てきそうですから」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@miura1729 了解です。そこは課題にしてみます」 / Twitter
- がくぞさんはTwitterを使っています: 「自分は型から実装を自動的に導出したりするので、雑に実装を書いて後から型で制約するみたいなアプローチの方が逆に記述量ふえて大変になる感覚があるんだよなー。実装から書き始めると自分のミスに気付きにくいし」 / Twitter
deepEquals
オブジェクトの比較
- Satoshi ImaiさんはTwitterを使っています 「オブジェクトを===で比較できないというツイートを見て、equalで比較できる、そうCommon Lispならね。 と書こうと思ったが、ベクタとかが入るとダメになるから簡単ではなかった https://t.co/XVYhxR3ist」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 equalp では?」 / Twitter
- Satoshi ImaiさんはTwitterを使っています 「@nfunato equalpもありましたね。ほとんど使わないから忘れていました・・・ equalp、文字列の比較がcase-insensitiveだったりと色々余計なこともやってくれますね。 https://t.co/OvLRnHrUTM」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 我々は case-insensitive な未来の国から来たのですよ (^^) ちなみに、取引先の士業の方にファイル名が全角/半角insensitive な人がいて「こいつ、進化形やな」と思ったことあります。」 / Twitter
- INA LintaroさんはTwitterを使っています 「JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはどうやっても一致する(観測上は同じに見える)やつを同じとすべき? とか。」 / Twitter
- INA LintaroさんはTwitterを使っています 「なんか昔その辺も含めた同値性判定のメソッドを(趣味で)実装しようとしてこれとかを参考にした記憶がある: https://t.co/oP6Uoc880t」 / Twitter
- [PDF] Deep Equality Revisited | Semantic Scholar
- INA LintaroさんはTwitterを使っています 「補足しとくと、x = { a: { a: x } } と x = { a: x } は同じか、みたいなやつ。(同じでいいとおもうがそれをちゃんと判定できるか。)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「少なくともRubyはそうだが、ある程度複雑な構造のオブジェクトを扱える言語ではパフォーマンスのボトルネックは究極的にはオブジェクトの同値性の判定にある気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyでのオブジェクトの同値のパフォーマンスを上げるのがほんと大変 (現在 Arrat#__cmp_eqのインライン化コードを書いている。バグあり」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ある程度高性能なJITコンパイラを書いてその上で単なるベンチマークじゃないプログラムを動かしてプロファイリングを取ると、大抵 オブジェクトの同値判定かオブジェクトの生成に費やしている気がする (mrubyのJITでmmcを動かしたプロファイリングがそんな感じ」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「そこで宣言型言語の出番ですよ.」 / Twitter
- mattnさんはTwitterを使っています 「処理系そのものが deepEquals を持ってないのがそもそもイカンのじゃ。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「Schemeのequal?は「循環をunfoldして(無限に続くかも知れない)木として比較した場合に一致すること」という定義ですね。(equal? '#0=(a . #0#) '#1=(a a . #1#)) ⇒ #t https://t.co/ISWkt4vwo1」 / Twitter
- 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
- Shiro KawaiさんはTwitterを使っています 「GaucheはAdams&Dybvigのアルゴリズムを使ってます https://t.co/KpFG8qzufu union-findでDFAとしての等価性を見るんですが、真面目にやると遅いので、一定の深さまで素直に再帰してからunion-findを使うように。」 / Twitter
- equal.pdf
- ytakanoさんはTwitterを使っています 「記事中にもあるけれど、「ある2つのプロセスが同じか?」と言う問題はπ計算やらを使って双模倣性と言う概念を定義すると答える事が出来る。 https://t.co/768dx35NdY」 / Twitter
- ytakanoさんはTwitterを使っています 「これやるとあまりに数学っぽくなるので、並行プログラミング入門では削ったトピックのひとつ。」 / Twitter
- ytakanoさんはTwitterを使っています 「プロセスの双模倣性が、循環オブジェクトの同値性判定になるのは面白いですね。」 / Twitter
open recursion・expression problem
- open recursion - Google 検索
- expression problem - Google 検索
- がくぞさんはTwitterを使っています 「なるほろなー class Functor t => Traversable t where traverse :: Applicative m => (a -> m b) -> t a -> m (t b) class Functor t => Compos t where compos :: Applicative m => (t a -> m (t b)) -> t a -> m (t b)」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@gakuzzzz どっちが internal visitor 相当で、どっちが external visitor 相当でしょうか😈」 / Twitter
- がくぞさんはTwitterを使っています 「@lyrical_logical TraversableがinternalでComposがexternalでは」 / Twitter
- 病気の美少女さんはTwitterを使っています 「手前味噌ですが、Object Algebras については過去にごくごく初歩的な部分だけを紹介した記事を書いているのでそちらへのリンクも貼っておきます。論文読んだほうが早い気もしますが。しかし九年前かあ… https://t.co/yKqW4QaLhP」 / Twitter
- 2012年に読んだ面白論文を紹介する会 - ろじかるんるんものがたり
- 病気の美少女さんはTwitterを使っています 「related work で所謂 open recursion の話。サブクラスのメソッド呼べるので open で強いけど結局クラスが first class じゃないと微妙と。first class traits なら十全に力を発揮できる。多分これは javascript に型付けする論文が流行ってた頃とかには触れられていただろうけれど。」 / Twitter
- 病気の美少女さんはTwitterを使っています 「open recursion すごい!→いやでもそんなにあってよかったーってことなくない?→ウーン確かに…となるのは、ぶっちゃけそこまで抽象的なプログラムが書かれてないのと、そもそもクラス関係が静的に決まる言語だとあんまり強くないよね、と。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「open recursionがあると嬉しい場面,所謂expression problemが顕著ではある」 / Twitter
- Yasuhiro InamiさんはTwitterを使っています 「この本質部分だけに注目すれば、関数型プログラミングでいう「コモナド」のことじゃないか、というのがすぐ分かる。」 / Twitter
- Yasuhiro InamiさんはTwitterを使っています 「ちなみに個人的な「オブジェクトの定義」は 「コモナド+可変参照」なので、副作用も若干絡んできます。 副作用の境界をカジュアルに持ち込んですぐ不純粋化するのが、オブジェクト指向プログラミングの個人的な印象。 https://t.co/vSwOA7AFVl」 / Twitter
- SwiftUI時代のFunctional iOS Architecture / iOSDC Japan 2020 - Speaker Deck
- がくぞさんはTwitterを使っています 「オブジェクト指向がまた盛り上がっているがopen recursionやexpression problemに言及する人はまだまだ少ない様だ……」 / Twitter
- zehnpaardさんはTwitterを使っています 「StroustrupはOpen RecursionがOOPの本質(抽象データ型に対する優位性)だと明確に認識していたようだ」 / Twitter
- がくぞさんはTwitterを使っています 「僕もかつて同様に思っていたのですが、r.f(x) と f(r, x) はopen recursionという性質を見ると差分が存在している感じですね」 / Twitter
- かとじゅんさんはTwitterを使っています 「"関数とデータ"とオブジェクトの境界が曖昧なところは確かにある。最近Go, Rustやってて思うが、r.f(x); と f(r, c); は字面が違うだけで同じ意味だと思う。関数でいい、オブジェクトでいいはどちらでも成り立つのではないか。」 / Twitter
- かとじゅんさんはTwitterを使っています 「確かに差分ありそう。」 / Twitter
- かとじゅんさんはTwitterを使っています 「f(r, c); → f(r, x);」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz そうか、thisかselfが遅延束縛されているということですかね。」 / Twitter
- がくぞさんはTwitterを使っています 「@j5ik2o ですです。より言うと遅延かどうか(動的か静的か)よりもopenかどうか(後から差し替える事ができるか)がより重要な感じしますね」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。その辺の知識を得るには、文献はどのあたりあたるとよいですかねー?もしご存知なら教えてください。」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz TaPLかな?」 / Twitter
- がくぞさんはTwitterを使っています 「@j5ik2o 僕もこの辺は文献から学習できたわけでもなくりりろじさんとかkmizuさんとか人に教えて頂いたみたいな所があり。まとまってると資料欲しいですよねー」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。欲しいですねー」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「実アプリケーションでopen recursionが無ければ死んでた!って状況に出会ったことがあんまりないんだよな… そこの振る舞い差し替えるんならcompositionで明示的にやったほうが良くない?って言って全部compositionに切り替えちゃう」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 それofそれ」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz うーむ…」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 性質としての明確な差分としてopen recursionは存在するけども、じゃあその性質をそんなに活用するかというと現実あまり活用してないので重要度は高くない。であればオブジェクトじゃなくて良くない?って話になるよなーという整理をしてます」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz なるほどなるほど」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 逆に言うとopen recursion以外の明確な性質の差分が存在するのならそれを知りたいのですが、そういった性質についての議論をあまり目撃しないのが寂しいなーと」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz たし🦀(fixによるopen recursionにJavaのコードをそのままトランスパイルしてみて起こる問題などを考えれば良さそう?)」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 (そのアプローチはそのアプローチでとても有効そうですね。とはいえ例えばEPで言われたような「構造を追加するのは容易だが操作を追加するのは困難」みたいな性質はそのアプローチで導くの難しそうだなーという思いもあり)」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「以前 @gakuzzzz さんとopen recursionって結局いつ使うんだろう?みたいな話をしていましたけど、初めてこれはちょっと便利かも?という例に出くわした: - use-site: https://t.co/7ApqYjdIyH - declaration-site(TreeMap) https://t.co/1yq1In0c9l」 / Twitter
- dotty/Quotes.scala at 7e0689996e0fd62012ba4982a4a6aefa23518c66 · lampepfl/dotty
- s2mc-test/GenByteDecode.scala at 59e025711068d899ada8e605af18f29399655a3a · kory33/s2mc-test
- ぱそこんわからんねこさんはTwitterを使っています 「TreeMapは構文木を再帰的に書き換えるための仕組みで、デフォルトだと何もせずに構文木を渡り歩くような実装がされており、これを一部のメソッドの一部caseをoverrideして、他をすべてsuperに投げなおすことで「すべてのTypeIdent(型変数参照)を置き換える」を少ないボイラープレートで書けてる」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「疑問1. (僕はデザインパターンに関しては超初心者なんですが)このパターンに何らかの名前はついているのか? 疑問2. デフォルト節をほぼ書かずに構文木の一部分のみを変更するような仕組みは遅延束縛無しだとどのようにうまく書けるか?このような問題に対処する一般的な機構はあるか?」 / Twitter
defer 遅延評価
C に defer
- mattnさんはTwitterを使っています 「C言語に defer が欲しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「C言語版のdefer、移植性を無視すれば、return addressと変数の内容をクローズしたクロージャーを作って、スタック上のreturn addressをそのクロージャのアドレスに書き換えることで実装は可能な気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「GCCの拡張機能を駆使すれば分からないけど、基本的にC言語そのものでは無理だと思う」 / Twitter
- Miura HidekiさんはTwitterを使っています 「setjmpとかやられると無理か。setjmp半端ないって。あいつスタック無視してジャンプしまくるし。そんなのできひんやん普通!」 / Twitter
- Goメモ-18 (遅延呼び出し, Defer, Tour of Go) - いろいろ備忘録日記
- Go言語のdeferを正しく理解する | How defer in Golang works - Qiita
- 【Go入門】deferによる遅延処理とランタイムパニック
- メタ太郎: "goのdeferはそれ自体は遅延評価だけどdeferで呼ぶ関数の引数は即時評価されるという罠にハマ…" - マストドン丼部
- お気楽 Go 言語プログラミング入門
- Go言語のdefer,panic,recoverについて | エンジニアへの道
- 非同期と継続と私 - 技術日記@kiwanami
- Rubyで遅延評価を実行する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
- A Tour of Go
- 遅延実行とレイジー評価 - LINQ to XML | Microsoft Docs
- エヌユルさんはTwitterを使っています 「Data.Text.Lazyとか何の役に立つんだと思ってたけどよく考えてみると無限の可能性のあるデータ型をshowしたものを出力するとかには普通に役立つ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、ストラウストラップも書いてた説だけど(=例外でfree漏れが嫌ならクラス化しろ)、個人的には全く賛同できないなぁ。 小さな後始末のために、クラス名を考える/作るの面倒すぎる。 ---- 「 C++ でのより良い設計は後始末をデストラクタに押し込めるべき」 https://t.co/lFxlloNi8N」 / Twitter
- defer っぽいもの - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(プログラミングにおいて、「名前を考える」コストって、もっと意識されて良いのになぁ、と思うことある)」 / Twitter
記号・ギリシャ文字など、英単語と相互変換
既存言語
その他
クエリ言語
- クエリ言語の紹介 | Elasticsearchリファレンス [5.3] | Elastic
- Logging のクエリ言語 | Google Cloud
- クエリ言語を理解する - Azure Resource Graph | Microsoft Docs
- QUERY - ドキュメント エディタ ヘルプ
- クラスタークエリ言語 - Amazon Elastic Container Service
- Logica | Modern Logic Programming
- BigQuery ドキュメント | Google Cloud
- GoogleがCloud Monitoring用のクエリ言語”Monitoring Query Language”をGAリリース
本物のクロージャ
- SODA NoriyukiさんはTwitterを使っています 「昔これを読んでからJavaScriptが好きになった」 / Twitter
- にゃんだーす☆わんさんはTwitterを使っています 「ブレンダン・アイクがJavaScriptを作った顛末は『Coders at Work プログラミングの技をめぐる探求』(2011年オーム社、Peter Seibel (著), 青木 靖 (翻訳))に載ってる。 画像は138ページより引用。 https://t.co/KxpkcBJCGy」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「ほんとこれ>JavaScriptには本物のクロージャがある」 / Twitter
- にゃんだーす☆わんさんはTwitterを使っています 「アイクは「その結果としてほかの人たちがしたのと同じ間違いを犯すことになりました」としてAlgol風のLispを実装しようとした先駆者と同じ轍を踏んだことを語っているが、それでもJavaScriptにクロージャを持ち込めたことは世界の歴史を変えたと思う。JavaScriptがVBScriptにならなくてよかった。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「ECMAScript 3って、1999年なのか… かなり間がある… (JavaScript の初版は 1995年)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「JavaScriptがSchemeの影響を受けているという話、関係者がそう言ってるならそうなんだろうけど、実はfunctionがクロージャになったのってES3のタイミングなんですよね。クロージャがない時代のJavaScriptはどの辺りがSchemeだったんだろうというのは少し気になるところ。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「クロージャでこそなかったけど、関数がfirst class objectであったのは当初からな気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んーってか記憶が曖昧だけどドキュメントみると、ECMA262第3版が出る以前のJavaScript 1.3の段階でクロージャサポートしてる。 "The inner function can use the arguments and variables of the outer function. The outer function cannot use the arguments and variables of the inner function."」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「つまり、function expressionがなくfunction statementだっただけ。https://t.co/VdetvSvH0L」 / Twitter
- Working with Objects
- Kazuho OkuさんはTwitterを使っています 「JavaScript 1.2にも同じ文章あるから、少なくとも1997年のNetscape Navigator 4.0リリース時にはクロージャ対応だったと言えそう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「source: https://t.co/bHfxPYRuQ3」 / Twitter
- Wayback Machine
- Kazuho OkuさんはTwitterを使っています 「@qnighy https://t.co/egiRC6E6ko こんな感じです。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@kazuho ありがとうございます! 標準より一足早くサポートしてたんですね。ただ、やはりJavaScript 1.0の時点では存在しなかった可能性があるので当初の疑問は残ったままですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@qnighy "WHAT'S NEW IN JAVASCRIPT 1.2" に "The nested function can use the arguments and variables of the outer function. The outer function cannot use the arguments and variables of the nested function." ってのが入ってますね。1.1以前はクロージャではなかったと」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@qnighy cf. https://t.co/QPriTTrEnF (これhttps://t.co/RfxYAivpm1のコピーだと思う)」 / Twitter
- What's New in JavaScript 1.2
- 渋川よしきさんはTwitterを使っています 「クロージャの変数束縛を明示的に書くC++と、他の言語では0番目の引数として内部処理されるレシーバーを明示的に書くPythonを書くと、オブジェクト指向も関数型も表記の違いだけでCPUの気持ちになるとどっちも大差ないのでは、という気がしてる」 / Twitter
リスト内包表記
- 渋川よしきさんはTwitterを使っています: 「map/filter+lambdaがPython的に綺麗にインラインで書きにくいからだよね。PEP202もmap/filterあるいはネストされたループを単純化する、ぐらいしか書いてないし、Python哲学の本質は大袈裟では : なぜpython使いは単純なfor文より醜悪なリスト内包表記を好むのか https://t.co/XLGb8lOcDV」 / Twitter
- なぜpython使いは単純なfor文より醜悪なリスト内包表記を好むのか - 静かなる名辞
- 渋川よしきさんはTwitterを使っています: 「https://t.co/JzMmMbejxk」 / Twitter
- PEP 202 – List Comprehensions | peps.python.org
- 渋川よしきさんはTwitterを使っています: 「特定のケースで簡単に記述するための記法なので、単純に書けないケースだったら無理に使わない、でFA」 / Twitter
C# の nameof
- Tsugawa/CubeSoft, Inc.さんはTwitterを使っています: 「C#、nameof ってなかなか偉大な発明だったなーと思う。言語単体で見ればそこまででもないんだけど、Visual Studio (「名前を変更」機能)との親和性が良すぎる。」 / Twitter
- Tsugawa/CubeSoft, Inc.さんはTwitterを使っています: 「WinForms のデザイナは是非、Binding 設定とかでベタの文字列をそのまま埋め込むのではなく nameof にするように修正して欲しいなー。まぁ自分はもう「基本的なレイアウト以外でデザイナは使わない」方針にしたからアレなんだけど。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「@tt_clown リファクタリング用途専用の機能ってなかなか目の付け所が良いですよね。他の言語にもほしい。」 / Twitter
- nameof 式 - C# リファレンス | Microsoft Docs
- nameofの罠 - ぐるぐる~
NimのARC/ORC
- てらモス♋️さんはTwitterを使っています: 「Nim Destructors and Move Semantics https://t.co/1XRvYYjR6N ウーム...(´・ω・`)」 / Twitter
- Nim Destructors and Move Semantics
- Miura HidekiさんはTwitterを使っています: 「NimのARC/ORCの話面白いのだが、ここまで静的解析するなら、型解析とAlias解析を使えば、サイクリックな構造を作るまさにその時を押さえられる気がするのだが、どうだろう?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「Rustの寿命解析をあんなに厳しくなく出来る範囲でやって寿命が分かったら解放するコードを挿入すればいいじゃんってかねがね思っていたが、Nimがほぼそのものだった。しかもフックがつけられるのは面白いし考えたことなかった」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 「寿命が分かったら」だと、自動的にfreeされるかどうかがプログラマが分かるようになっていないと辛くないですか?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 そうじゃない時はリファレンスカウントなりGCで解放されるからプログラマは意識しなくてもよいのではないと思います。もちろん、レポートを出す機能は求められると思いますが。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 あ、分かんない場合だけGCの対象にする?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 ですです」 / Twitter
Lobster
- トデス子'\さんはTwitterを使っています 「V言語が参考にしたというLobster言語のGCなしメモリ管理手法について。値型が基本、ヒープに確保されたメモリは静的な生存時間解析で自動管理、必要に応じてRCを挿入。循環参照はプログラム終了時に検出して叱る。 / “Memory Management in Lobster” https://t.co/ZhdfBfCayL」 / Twitter
- Memory Management in Lobster
Nelua
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラミング言語Nelua。文法はLuaに似ているがリアルタイム性を重視している。静的型付けされており、GCはオプション。C経由でネイティブにコンパイルできる。コンパクトで埋め込みも可能。Luaを使ってメタプログラミングもできる。 https://t.co/h3BtvytH0A」 / Twitter
- Nelua
- ドッグさんはTwitterを使っています 「Nelua プログラミング言語なかなか良さそう.Lua に型アノテーションを足したようなシンプルな構文.静的に型チェックして外部依存の無い C コードにコンパイルされ,最終的に実行バイナリになる.マクロもあってジェネリックなコードも書ける | 'Nelua Programming Language' https://t.co/zZD5UERAYg」 / Twitter
- ドッグさんはTwitterを使っています 「この Overview ドキュメントが構文をざっくり知るには良かった https://t.co/dyLJ95E0SP」 / Twitter
- Overview - Nelua
- ドッグさんはTwitterを使っています 「https://t.co/kVTcWzJXgA せっかくなので GC どうしてるのかなと思って実装眺めたら,自前で実装してた.素朴なマークスイープ GC だな」 / Twitter
- nelua-lang/gc.nelua at master · edubart/nelua-lang
- ドッグさんはTwitterを使っています 「https://t.co/dmvyTgAIUq あと面白そうなところだと,C++ の Concept みたいな機能がある.型を値として扱ってるのも今風な感じ local an_scalar = #[concept(function(attr) return attr.type.is_scalar end)]# local function add(x: an_scalar, y: an_scalar) return x + y end」 / Twitter
- Overview - Nelua
- ドッグさんはTwitterを使っています 「https://t.co/yIWw1DqqmL any type あるのか」 / Twitter
- nelua-lang/types.lua at a4a5222ad9b41aa8f9649b21e0dabac7ebb10fa9 · edubart/nelua-lang
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp GC が optional ってのが不思議ですね…そんなんで成り立つんだろうか」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi manual memory management と書いてあるので,D みたいに,GC 消したら手動で free() 呼ばないといけないんだと思います」 / Twitter
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp すると標準ライブラリみたいなのはどう対応するんでしょう?」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi 標準ライブラリの方は見てないので想像ですが,マクロとか使ってメタプログラミングで頑張るとかですかね?(GC が有効かどうかで分岐するとか)しかしそうするとデストラクタが無いとキツい気もしますね」 / Twitter
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp 両対応しなきゃいけないのはだいぶきつそうですね…」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi あとは手動でもメモリ解放できるようにしておくとかでしょうか.GC 有効にしても free() は呼んで良いと思うので,「GC 無効ならユーザはちゃんと解放用の関数を呼ぶ,GC 有効なら呼んでも呼ばなくても良い」みたいにするとか.ライブラリ内部は不要なメモリは明示的に free() するで良い気がします」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Nelua、コンパイラがLuaで書かれていて動的にカスタマイズ出来るとか色々面白そう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なんとGCがNeluaそのもので書かれていますね。Neluaそのもので書かれていることと保守的GCの採用でGCのhousekeepingが少ないことから比較的切り替えはスムーズかと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/ZFsq8Y8fTo」 / Twitter
- nelua-lang/lib/allocators at master · edubart/nelua-lang
- Shiro KawaiさんはTwitterを使っています 「@miura1729 かっこいいな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana かっこいいですよね。GCを自己記述出来るのは結構夢ですよね。私が知る限りpypyしか知らない。Lisp系だとあるのかしらん?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 Lispだと古い処理系は自己記述多いと思います。Allegroもそうじゃなかったかな。 Scheme系だとScheme48はそうですね。あと確かTIが作ってたやつ--R3RS時代。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana Allegroだと結構凝ったGCを使っているでしょうから今の時代でも通用する技術なんですね。論文かソースが読みたいけど、無理なんでしょうね」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 GC部分は読んだことないですが、古より伝わってきた部分をチラ見したら結構prog形式とgoでべたべたに書いてあって、性能にシビアなところではLispがまさに高級アセンブラなんだろなと思いました。lapというインラインアセンブラも良く使われてたし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana progかー、なんかわかる気がします」 / Twitter
Ante
- lotzさんはTwitterを使っています: 「低水準言語で関数型言語でもある Ante 面白そう👀 ・篩型 ・ライフタイム推定 ・Algebraic Effects を備えてるらしい 新しい言語機能を実験的に試しながら C++/Rust のような低水準言語とGCを使うJava/Haskellのような高水準言語のギャップを埋めることを目指してると https://t.co/Ewfm6v4V25 https://t.co/3SZUL38mHV」 / Twitter
- yukiさんはTwitterを使っています: 「実験段階の低レイヤー向けの関数型プログラミング言語。Rust製。GCは当然ないが参照のライフタイムはTofte-Taplin stack-based algorithmというアルゴリズムで自動で推論してくれる他、Algebraic Effectsが組み込まれているみたい。RustとHaskellのハイブリッドな感じ😮/Ante https://t.co/BJCf0JTVA5」 / Twitter
- Ante
- yukiさんはTwitterを使っています: 「メモリ管理に関してはこんなアルゴリズムがあるんだ😳 ペーパーはこれかな?↑のLanguage Tourには、このアルゴリズムのおかげでライフタイムの識別子を省けたり、所有権システムが不要になったりするみたいなことが書いてあった(スキミングしたので読み間違えてるかも)。 https://t.co/mthRMGqTyh」 / Twitter
- tr1.dvi - CSD-95-866.pdf
- yukiさんはTwitterを使っています: 「Refinement Typesはちょっときつそう…(昔使った経験から…)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「https://t.co/VzCpP9LXiA mmcでやった方法だ。この方法確かに速いのだけど、プログラムによってはものすごくでっかいメモリをスタックに取ることになるんだよな。あと、再帰の時の解析もめんどくさそう。どうやっているのだろう?」 / Twitter
- Language Tour
- Miura HidekiさんはTwitterを使っています: 「低水準ってどういうのがあるか気になって調べたけど、メモリ管理がリージョン管理でGCが無いことをもって低水準って言っているのかしらん?それだと低水準舐めすぎな気もする」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「あとこれだけではGCを駆逐するまでは行かない気がするな。無限に大きいスタック領域があれば別だけど」 / Twitter
- チェシャ猫さんはTwitterを使っています: 「低レイヤー向けの関数型言語 Ante、篩型が最初から導入されてるのが野心的で面白いな。「配列の添字範囲オーバーがコンパイル時にチェックできる」「配列の長さが等しい時のみ内積が定義できる」みたいな例が挙げられていて、確かにこの手のチェックは低レイヤーで活きそう。 https://t.co/vc8R87qbAg」 / Twitter
- jfecher/ante: A safe, easy systems language
- チェシャ猫さんはTwitterを使っています: 「しかし Ante(場代)って学習コストが高そうな名前だな…。」 / Twitter
- チェシャ猫さんはTwitterを使っています: 「ちなみに(Ante に限らず)篩型は、ソースコードをちょっと変更しただけでも全くコンパイルが通らなくなったりするので精神が削られる傾向にあります。もちろんそれは意図した検査性能なんだけども。」 / Twitter
- lotzさんはTwitterを使っています: 「@y_taka_23 (ひえぇ)せめてエラーメッセージが分かりやすいと嬉しいですね…」 / Twitter
- チェシャ猫さんはTwitterを使っています: 「@lotz84_ 昔 Liquid Haskell の同人誌を書いたときは結構きつかった記憶…。」 / Twitter
- lotzさんはTwitterを使っています: 「@y_taka_23 読ませていただきました!写経して読んでるぶんにはすごく良かったんですが、裏ではそんな苦労があったんですね😅」 / Twitter
- Dependent Types と Refinement Types の違い - SevenColoured
- Miura HidekiさんはTwitterを使っています: 「ずっと、櫛型(くしがた)だとおもっていたものが、篩型(ふるいがた)だと知って目からうろこが落ちた。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「なんで櫛なんだろう?ってずっと思っていた」 / Twitter
cotton
- κeenさんはTwitterを使っています: 「うーん。採択理由が不穏だな。ユニオン型はそれ単体だと直和型の代替にはならないはずだが…。他の型システムとの兼ね合いとデータのランタイム表現次第だから完成品見ないと何とも言えない 直和型の代わりにユニオン型を持つ静的型付け関数型プログラミング言語の開発 https://t.co/n69JY4Wljy」 / Twitter
- κeenさんはTwitterを使っています: 「https://t.co/qJQmTYOZP3」 / Twitter
- nanikamado/cotton: A programming language
- κeenさんはTwitterを使っています: 「軽く読んだだけだから間違ってるかもだけど、データにタグ持たせるランタイム表現っぽい。全部のデータにタグがあるならあとはユニオンさえあればタグ付きユニオンになるのはそれはそう。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「軽く見てみてるけど、現状はJavaScriptを出力する感じかな。数値型を(整数も浮動小数点数も)全部Num型にするのはJavaScript以外のターゲットを作りたくなった時にアレなのでやめた方が良いと思います https://t.co/N6tvFoZueS」 / Twitter
- mod_poppoさんはTwitterを使っています: 「union typesよりrefinement typesに興味のあるお年頃です」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「ユニオン型(=ラベルなしの直和型)があると,例えば int など基本型で定義した引数も int | (Named of string * int) などと後方互換性を保ったまま形式を増やしやすかったりするのはメリットかもしれない」 / Twitter
Vale
- ドッグさんはTwitterを使っています: 「Vale 言語良さそう.リージョンによるメモリ管理があって,memory safety,Safe FFI,Safe concurrency を実現する各言語機能がある.あと面白いところでは,ハイゼンバグ撲滅のためのリプレイ機能がある | 'Vale is the fast, safe, and easy programming language.' https://t.co/yNTXVM4cbV」 / Twitter
- https://vale.dev
- ドッグさんはTwitterを使っています: 「https://t.co/iS8AmuEZQN C には immutable な値をコピーして渡すか,リージョン等の metadata を付けた参照を渡す.この参照される値は Vale の safe objects とは違うスタックに置かれ,C から Vale 側に戻ってきた時に O(1) のチェックが入る.safe 側に移動するにはコピーが必須」 / Twitter
- Vale's Fearless FFI: Mitigating memory unsafety and supply chain attacks
- ドッグさんはTwitterを使っています: 「https://t.co/gfUoYfzy8A Vale の object は不透明なハンドラとして C に渡される.ハンドラの中身は"スクランブル"される(ビルドごとに違う値で rotate される)ので,C から Vale の object を直接書き換えることは原理的にできなくなっている.参照先にアクセスするには Vale の API の経由が必須」 / Twitter
- Externs and Exports
- ドッグさんはTwitterを使っています: 「https://t.co/9Qonmdh5aw parallel キーワードを付けるだけで OpenMP のような構造的な並列化をしてくれる.どうやら Rust の std::thread::scope (https://t.co/TSfRlJM5y0) 相当のことを勝手にやってくれるっぽい(seamless)」 / Twitter
- Seamless, Fearless, and Structured Concurrency
- scope in std::thread - Rust
PLT Redex
- Semantics Engineering with PLT Redex - Matthias Felleisen, Robert Bruce Findler, Matthew Flatt - Google ブックス
- redex.pdf
RAII, GC, 線形型
- yoh2さんはTwitterを使っています: 「try-with-resources とか using-statement とか (これ総称は何だろう) も使い忘れたらアウトだしなぁと。」 / Twitter
- yoh2さんはTwitterを使っています: 「defer (これも総称何だろう) も一緒ね。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「そういうとこはあるわなあ。というかたぶんRAIIとGCの相性が良くないのかもな?RAIIはスコープで寿命を決めないといけないし、山椒がエスケープしたからと言って生かしてはいけない。かといって殺せない。結局寿命をトラックする必要があるし、そうなると結局Rustになる。(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「逆にRustはそれをやったからこそC++からRAIIの利点を預かれたのかもな(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「うーんでもよく考えたらccクレートとかって依存性解析やってくれるのかよくわからん気がしたし、既存のライブラリぶち込むとかではないでかいプロジェクトではよくないかもな。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「GCではオブジェクトをプログラマーが解放しなくてもいいというのの裏返しとして、人間が解放することを許さないのが入っちゃうんだよな。だからやっぱRAIIはうまくいかない気がする。無効オブジェクトを許して手動でデストラクタを呼ぶのをusingとかで自動化するとかがやっぱせいぜいな気がする。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「ライフタイムを型システムに組み込みつつそれで型検査をするが、GCによるスループットとかメモリ局所性の恩恵も受けたいから、実際のメモリ管理はGCで行うとか、ほんとにそれうれしいのか的な話を誰か試してみてくれないとわからん(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「てかGCがいまいちすっきりしないのは、結局うまく管理したいコンピューターのリソースがメモリだけじゃないからなんだよな。しかも、メモリは解法タイミングがシビアではないけど、ソケットとかファイルとか、他のリソースのほうがその辺シビアなんだよな。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「ここをGCタイミングに連動させると、思わぬリークが起きるし、かといって手動でやると結局メモリで解放済みにアクセスするみたいな話が今度はリソースでやってくるワケだしな。オブジェクトが有効なスコープを字句的に明示できるベストプラクティスは有効だが、もっと良くできるはずってのはあるわな。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「だもんで、いっそGCなしでメモリ安全性を確保できるようにしたRustは、その仕組みそのままでリソースについても理想的な管理ができるようになったってワケで、うまい話はあるもんなんですよね。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「けど世の中の人はボローチェッカーが辛くてRustをやめてしまうらしいので、やっぱりうまい話はなかった。(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「GC使う言語でもライフタイム持った型を導入して、それへのボローを激しく制限するようにすればRAIIのいいとこどりできるのかどうか直感的にはわからんから誰か実験言語つくって実証してみて❤」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「そういった型はおそらく変なボローのされ方はしないだろうという前提を置いて、Linear Typeでサクっとやれたりしませんか(超適当)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「だけど、例えばファイルハンドルもらった型は使い終わったファイルハンドル返してあげないといけないみたいなクッソめんどいAPIになって受け入れられないかもしれん。Haskellとかも昔はWorld引き回しだったのがモナドになったもんな(あんま知らんけど)」 / Twitter
- yoh2さんはTwitterを使っています: 「RAII も GC もあり、const が参照先に伝搬するので参照は変更できないのに中身が変えられるというよくある残念さとも無縁だし、const と immutable も区別されていて一時的な不変性か否かというのもきちんと分かる言語というのもあるんですよ。D 言語というんですけどね。」 / Twitter
- yoh2さんはTwitterを使っています: 「あとテンプレート書き易いというの書き忘れた。 まあ難点も相応にあって - null がきっちり残ってぬるぽの危険性あり - 空配列/連想配列と null の区別しっかりつけてくれ - その他時々どうしてこうなったという書き方が散見される (foreach に渡すデリゲートの仕様とか) とかがあるけどね。」 / Twitter
- この10年のプログラミング言語の変化 - 西尾泰和のScrapbox
- C# の歴史 - C# ガイド | Microsoft Learn
- 5分でざっと理解するZig言語
- strict_zig - Google スライド
- C言語のソースコードをZigに変換する機能を試す(その1)
自作言語
llrl
- yhara (Yutaka HARA)さんはTwitterを使っています: 「えーと、Rustで作ったLispっぽい自作言語だが型があってHMで型推論、コンパイル言語だがLLVM JIT使って構文木マクロも実装済み、その上でセルフホストしたのでRustがなくてもこの言語でこの言語の処理系をコンパイルできる…ってコト? llrl programming language https://t.co/gSnFLtd3Ak」 / Twitter
- llrl programming language
- yhara (Yutaka HARA)さんはTwitterを使っています: 「こっちの記事もめっちゃ読み応えある https://t.co/sZAeKOeroB」 / Twitter
- llrlの言語デザイン上の選択 - yubrot
- yhara (Yutaka HARA)さんはTwitterを使っています: 「ここのllrl0ってのがRustで書かれたソースなんですけど、その隣のllrl1を見ると同じことが全部独自言語で書いてあってワオ…となる https://t.co/lvRea1kPfZ」 / Twitter
- yubrot/llrl: Lisp-like programming language powered by Rust + LLVM
- yhara (Yutaka HARA)さんはTwitterを使っています: 「ちなみにllvm0がRustで書かれたLLVMバインディングで(そこから自作すんのかよ!)、llvm1が更に「それを独自言語で再実装したもの」です https://t.co/qVvjXvX7xW」 / Twitter
- RustでLLVM-C APIへの高レベル抽象インターフェースを考える
- yhara (Yutaka HARA)さんはTwitterを使っています: 「ご本人のツイートをリンクしてなかった。こちらです。https://t.co/QxoKdHyvkj」 / Twitter
- Rustで自作プログラミング言語を自作x86_64アセンブラでセルフホスティングした記録
- Desk言語とAlgebraic Effects and Handlers(代数的エフェクト)
- handlers-tutorial.pdf
- 我々向けの Algebraic Effects 入門 — Overreacted
- ytakanoさんはTwitterを使っています: 「すごいなこれ。しかし、篩型と依存型入れると、Light RustではなくてHeavy Rustだ。依存型で証明できそう。型完全性と言うのは、全ての式が型Tか¬型Tであるかを証明できるってこと?なんにせよ、面白い。 https://t.co/SqRMTmNZU5」 / Twitter
- Python互換の静的型付け言語「Erg」
- ShibaさんはTwitterを使っています: 「型システムが強力な言語だとここらへん苦労しますね Ergは力技でヒント出してます https://t.co/yu9982fG5l https://t.co/Ip5e5OCHhO」 / Twitter
- erg/hint.rs at main · erg-lang/erg
- Ergの進捗・現状・これから
- 極小の論理プログラミングDSLmicroKanrenの使いかたと実装の紹介
- 小さな計算体系を簡単に作れる言語 ron の紹介
- mitsuchi/ron: 小さい計算体系をシンプルに定義できるような言語をつくりたい
- Prolog と Erlang で Mixfix パーサを作ってみた - Qiita
- BLisp: Lispっぽい静的型付け言語
- 自作言語BLispがHackers Newsで話題になっていた - 未完成な論を綴るブログ
論理・制約プログラミングと並行計算
- 論理・制約プログラミングと並行計算
- 静的解析と制約充足によるプログラム自動デバッグ
- Kima:並行論理プログラム自動修正系
- 特集「論理と推論技術の展開」の編集にあたって
- 第4回ロジックプログラミング国際会議に出席して
- 自己調整二分木の並列操作
- プログラミング言語の新潮流
- ローテクと向き合う
- ハイブリッド制約言語HydLaの記号実行シミュレータHyrose
- ハイブリッド制約言語HydLaの宣言的意味論
- ハイブリッドシステムモデリング言語HydLaの実行アルゴリズム
- 言語モデルLMNtal
- LMNtal実行時処理系の並列モデル検査器への発展
- 統合開発環境によるLMNtalモデル検査
- 階層グラフ書換え言語LMNtalの処理系
- 階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
- グラフ書換え系のための効率的なグラフ正規化手法
- 『コンピュータソフトウェア』の今後の展開
- ソフトウェア論文座談会
- なぜソフトウェア論文を書くのは難しい(と感じる)のか
TAO
- TAO: a harmonic mean of Lisp, Prolog and Smalltalk: ACM SIGPLAN Notices: Vol 18, No 7
- Multi-Paradigm Language TAO
- CELIS: TAO/ELIS エミュレータ
- A List Processing Language TAO with Multiple Programming Paradigms
- (PDF) TAO: A fast interpreter-centered system on LISP machine ELIS
- bit誌の連載「マルチパラダイム言語 TAO」が公開されている\(^O^)/: ホットコーナー
- g000001/tao-compat: TAO/ELISの関数/マクロをCL上に再現してみようという試み
- 情報学広場:情報処理学会電子図書館
- NUE/TAO/ELISのOS的側面 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- NUE/TAO/ELISのOS的側面 | CiNii Research
- ぬえ, 鵺, NUE (New Unified Environment Research Project)
- New Unified Environment Research Project (NUE)
- 通研ELIS-コンピュータ博物館
- TAO/ELISのUNIXへの移植 | CiNii Research
ABCL
- #質問 > Prolog で Linker を自作するコツはありますか? - prog-lang-sys-ja - Zulip
- ABCL/f report
Coq・Isabelle・Lean
- Isabelle ゆるリファレンス - 若くない何かの悩み
- 効率的な正規表現エンジンを Coq で検証する - fetburner.core
- ML のサブセットの型推論器を Coq で検証する - fetburner.core
- fetburner/type-infer: A Formal Verification of Algorithm W
- let多相を扱える型推論器をCoqで検証する - fetburner.core
- 型推論の健全性の証明 - fetburner.core
- Coqによる型推論器の形式的検証 - fetburner.core
- ダイクストラ法の一般化と,その正当性の Coq を用いた検証 - fetburner.core
- Coqに入門してみる
- Coq/SSReflect/MathCompの資料 - Qiita
- sounisi5011/プログラムさんはTwitterを使っています: 「Lean 4、公式サイトを見たらQuickstartがVS Codeの拡張で使うやり方だったし、拡張の中でセットアップも終わるし、加えてNixにも対応しているから使いやすさがやばい。セットアップの簡単さは定理証明支援系の大御所Coqより良さそう https://t.co/lQEpDnR7QP」 / Twitter
- lean4/quickstart.md at 7034e64b4fcc0dada766c176d6aa748c71d05a50 · leanprover/lean4
Prolog
証明図
- shiryo2.pdf
- 5_48.pdf
- 7_416.pdf
- IPSJ-MGN240206.pdf
- CGI in Prolog<
- 数学と論理
- 第11回「導出原理」 - 11.pdf
- sp06.pdf
- Microsoft PowerPoint - proglang_08_logic.pptx - proglang_08_logic.pdf
- 247682.pdf
- ソフトウェア科学特論: 命題論理の推論体系
- 978-4-339-02489-0.pdf
- 論理プログラミング - Wikipedia
- カット除去定理 - Wikipedia
- 不可能性定理:Prologによる2×3のケースの自動証明
- journal-84-02.pdf
- Vol.33_01_040.pdf
- 宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
- proplogic-system.pdf
- IPSJ2019nakanishi.pdf
- Prolog
- 誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
Prolog 談義
- hikaliumさんはTwitterを使っています 「GerritはPresubmit Ruleの定義にPrologを使っているらしい。いい話だ… https://t.co/b4KjvpicJZ」 / Twitter
- Gerrit Code Review - Prolog Submit Rules Cookbook
- κeenさんはTwitterを使っています 「使い熟してると格好いい言語、HaskellとかVerilogとか色々あるだろうけど自分はPrologを推す。」 / Twitter
- κeenさんはTwitterを使っています 「格好いいProlog、例えばこんなのです PyPy Status Blog: Comparing Partial Evaluation and Tracing, Part 1 https://t.co/fLlAJmrbSf」 / Twitter
- PyPy Status Blog: Comparing Partial Evaluation and Tracing, Part 1
- Miura HidekiさんはTwitterを使っています 「一方、pypyプロジェクトではPrologでJITコンパイラを書こうとした。その後を聞かないのでうまくいかなかったのだろうな https://t.co/7vvSXvmK93」 / Twitter
- JIT in Prolog | PyPy
- h_sakuraiさんはTwitterを使っています 「@miura1729 動いても遅いでしょうね。 美しいが遅い。 使えないみたいな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai あれも気合を入れて最適化すると速くなると思うけどね。特にJITコンパイラならそんなに激しいバックトラックを起こさないだろうし。命令選択とかであるかもしれないけど、他はカット入れまくれそう」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 Prologは高速化目的で使うのではなくて複雑さの排除で使えばうまくいくと思います。」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています 「@miura1729 100歩譲ってAOTならともかく、JITじゃ投資を回収できる気がしませんね。 抽象度の高いところを攻めようとしたのかな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@eguchi3 pypyはインタープリタ部分もJITコンパイラで速くしようとしますからその辺を狙ったのかもしれないですね。ググった限り続報がないので何がまずかったのか分からないです。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 バックトラックなしなコードに変換するとか単一化のコードを無くすとか難しいのでWAMを超える研究はあまりないらしいのですよねぇ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai なるほど」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 スピードも大事ですけど、スピードだけが欲しいなら皆アセンブラかけって話しになるわけです。それでは長くなるので多くのプログラマはスピードを犠牲にして抽象化して短いコードを書くわけですよね。論理プログラミングは最上位の抽象度を誇るものなので遅さを批判しても意味ないんですよ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai 抽象的だからこそより速くなりえると思います」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 いうほどPrologが遅いわけでもないので設定ファイルがごちゃごちゃしてきたところを整理するくらいのことをPrologでやっても問題は起きないって感じではないかと思います。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 動くpypyは素早く理解できます。 バックトラックの巻き戻しは例外の巻き戻しよりめんどくさいですから難しいんですよ。やれるというなら挑戦してほしいです。 型推論してフロー解析が集合論的型システムがーってなってしまいますし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai ごめんなさい、そう言われると出来ませんとしか言いようが無いです。ただ、可能性の話をしているときにそんなこと言うならやってみろって言われるのなら、話は出来ませんよね」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 まぁそうなのですけど、Prologの最適化が難しいから高速な処理ができるようにしたものが関数型言語で単一化はパターンマッチに、述語でのバックトラックはなくすためにガードを導入。と言ったことをしているので本当に難しいのではないかと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai たしかにバックトラックは難しそうです。Schemeの継続もそれでみんな苦労していますものね。スタックGCとかバックトラックで使えないかなとか考えています。ただ、Prologは実はあまり好きではないので気が進まないんですよね」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 普通のプログラマはPrologは知っているけどすきではない。 TAPLは崇めるけどPrologで実装できない。 なのでTAPLをProlog実装してProlog最高ってなってほしいです。マジでw スピード指向だと遅いって思って嫌になるのだと思うわけでそこじゃないんですよ。 抽象能力の高さが重要です。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai Prologが嫌いなのはそう言う理由じゃなくて個人的なものです。学部時代、研究室がPrologを主に使う研究室で何かと言うとPrologとLispを比べられてLispをdisられたからです」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 https://t.co/PKVK5riZPl LispでもAMBという文脈でいい感じに書けてますし喧嘩しても仕方ないと思いますけどねぇ。 Racket Redex最高ですよw」 / Twitter
- redex/redex-examples/redex/examples at master · racket/redex
- h_sakuraiさんはTwitterを使っています 「@miura1729 言語機能は非決定的に書くと短くかけるのですが遅いので高速化するために関数型言語やC言語などの低レイヤーな言語で書き換える必要出てきます。ですが低レイヤーな言語はそれだけ抽象度が落ちるのでコードサイズが大きくなり全体像を把握できなくなります。というトレードオフの関係があります。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 ですから、速さを優先したらLispの方が速くてPrologは遅くなり、抽象度を優先したらPrologが勝つけどLispは負けるってだけですよね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 でもって、Lispはなんでもできる言語なのでRacket Redex のようにAMBを拡張してProlog以上の中傷度の高い処理もできる。でもこうなってくるとおそらくPrologの処理系の方が最適化されていて速くなる。みたいなトレードオフがあるのではないかと思います。」 / Twitter
bit
- zickさんはTwitterを使っています 「bit 1982年06月号『パソコン用Micro Prologの試作』読んだ。BASICで書かれたProlog処理系のコードが丸々載ってる。すべてを文字列として持ち、単一化は2つの文字列が一致するように文字列(の変数の部分)を直接書き換える驚きの作り。」 / Twitter
- zickさんはTwitterを使っています 「なんとメモリが足りなくなるとスタックをフロッピーに退避する仮想記憶までついてる。 https://t.co/9IX5yHcgyl」 / Twitter
- zickさんはTwitterを使っています 「3要素のソートに約10分という驚きの性能 https://t.co/6VkAjB4d66」 / Twitter
- zickさんはTwitterを使っています 「コメントがかわいい https://t.co/xQFJE2CxuL」 / Twitter
- たけおか (Shozo Takeoka)さんはTwitterを使っています 「@zick_minoh GCは、BASICの文字列ヒープGCにお任せ!」 / Twitter
- zickさんはTwitterを使っています 「bit 1983年08月号『PC-8001からHC-20へのMicro Prologの移植・改良の実際』読んだ。Micro Prologを3倍遅い計算機に移植したけど頑張って3倍速くすることで同じくらいの実行時間にしたという話。元のコードよりコメントが増えててむしろ読みやすいかもしれない。」 / Twitter
- zickさんはTwitterを使っています 「3要素のソート、13分45秒。 https://t.co/U1c541ml6d」 / Twitter
- zickさんはTwitterを使っています 「一昔前のC++やん https://t.co/rJ4d5v1YmM」 / Twitter
- zickさんはTwitterを使っています 「これはオリジナルのコード読んでて気になってた。ちゃんと末尾再帰の最適化(手動)をしてほしい。 https://t.co/Ud6MKtdcWk」 / Twitter
- zickさんはTwitterを使っています 「ここ原作リスペクト https://t.co/3lFlBBMLwl」 / Twitter
- ロジバンでPrologプログラミングしてみた! - Qiita
- Prolog で簡単に言語を作ってみる方法 - Qiita
- Prologによる多相レコード計算の実装(2) - Qiita
- アフィン型をPrologで実装してみた - Qiita
- 世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
- OCamlでPrologを作っている話 - Qiita
- prologで四則演算とJavaScriptの文字列足し算を実装とかを書いてみる。 - Qiita
- 尾崎隆大さんはTwitterを使っています: 「% Prolog 'ここでの maxint/1は標準的な述語ではなく、SWI-Prologならば maxint(Max) :- current_prolog_flag(max_taggled_integer,Max). のような述語が定義済みであることとします。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています: 「% Prolog ' 要素が1から1000までの順にならんだリスト(L) :- findall(N,between(1,1000,N),L). の定義でも使われる、findall/3はPrologに必須の述語ですが、 ?- length(L,1000),maxint(Max), findall(N,between(1,Max,N),L). のように第三引数のリストの要素数で絞ろうとすると暴走します。'.」 / Twitter
- manual
- 俺ASICと俺CPU“松竹V(しょうちくぶい)”
Smalltalk
その他
文法
- sumimさんはTwitterを使っています: 「Smalltalkは「オブジェクトへのメッセージ送信」という規則だけなので見た目より簡単です。マクロやselfの省略がないのでLispやRubyの様な解釈の揺らぎも生じません。優先順位は引数無し>二項演算っぽい式>引数付きで、引数付きはa x:b y:cが通常のa.x:y:(b,c)になります(メソッド名の:は省略不可)」 / Twitter
- あんどうあんど🔞自称無職転生詐欺師🔰さんはTwitterを使っています: 「文法が簡単なのは、 lisp系 Smalltalk SML https://t.co/eIBzf0mJm6」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@quasicrane LispやSmalltalkのようにbreak loopでコードを足せる言語なら簡単なんですね。が、C言語でそれを当然のように出来る能力というのは、そばで見てると結構驚嘆します。(その人達が、また、何でLispなんて使うの? みたいな感じなわけです)」 / Twitter
- ゆい|優位さんはTwitterを使っています: 「GrahamのANSI Common Lisp に Smalltalk風メッセージパッシングスタイルを実現する関数が紹介されていた。 (tell obj 'move 10) ←これ、リーダーマクロ使うともっと簡単に書けるようになるんですよね?」 / Twitter
- 非実在naka akiさんはTwitterを使っています: 「@zetta1985 ある文法を人間が直感的に簡単と思うかどうかは別でして、 (文法屋にとって)「複雑でない文法」とはLispとかSmalltalkとかです。 もっと(もっとも?)簡単な文法はFORTH系。なにせ文法が「ない」。」 / Twitter
- sumimさんはTwitterを使っています: 「代入操作については、分家(?)ですが曾孫の代にあたるSELF(Smalltalk-84と呼ぶ人もいます)が、「←」や「:=」などのそれっぽい記号こそ使いませんが実質代入に相当する操作を再びメッセージとして実装しています。」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています: 「@miura1729 smalltalk の inspectorで evalするとき、selfがそのオブジェクトになってるのは秀逸ですね。selfにメッセージを送ることで、自分がそのオブジェクトなんだよって気持ちを味わえる!?」 / Twitter
- Smalltalk基本文法編 - Qiita
- CARとCDR - Wikipedia
- carとcdrとcons - 丸井綜研
- 【AutoLISP】car部とcdr部を取得する関数「car」「cdr」 - LISPで楽になる
- Common Lisp 入門
Bytecode
Bytecode
- zakkiさんはTwitterを使っています 「Smalltalk-76論文はHTMLに打ち直された奴が昔は公開されてたっぽい https://t.co/pZ9Mfdl7MS」 / Twitter
- Smalltalk-76 Programming System
- Miura HidekiさんはTwitterを使っています 「@k_matsuzaki 論文見たらbyte codeの意味でmicro codeって言っていますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「byte codeと最初に言ったの誰問題、がぜん面白くなってきた Smalltalk76は違うっぽい」 / Twitter
- zakkiさんはTwitterを使っています 「ACMで検索出来た範囲だと、1978のAPL https://t.co/Vvx96YLDLf 1978のLisp REDUCE/1700 https://t.co/3z5gNXQRM8 が最古っぽい」 / Twitter
- Compilation and delayed evaluation in APL | Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
- REDUCE/1700 | Proceedings of the 11th annual workshop on Microprogramming
- zakkiさんはTwitterを使っています 「それ以前にも"byte code"を含むのはあるけど、1バイトのコードとか2バイトのコードとかいう用法っぽい。全部は読んで無いけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@k_matsuzaki Smalltalkは80年に公開するまで論文すら公開されなかったんでしょうかね?」 / Twitter
- zakkiさんはTwitterを使っています 「@miura1729 Xeroxの人のSmalltalk関連で絞ると、78年のSmalltalk-76のには出てこなくて80年のTinyTalkの論文には出てくるのでそのあたりで名前が付いたんじゃないかなぁと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@k_matsuzaki なるほど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「面白そうだったので、調べてみました。Wikipediaのバイトコードの欄にあるバイトコードの例で古そうなものの年代を比べると言う方法です この中で古そうなのはST(1969年ごろ)、BCPL(1967年ごろ)、Algol68C (https://t.co/1UlVqQFO1T)あたりのようです。」 / Twitter
- ALGOL 68C - Wikipedia
- Miura HidekiさんはTwitterを使っています 「バイトコードと言う名前が使われていたかは論文を読めばよさそうですが、さすがに無理かなと思います。このころの論文は入手にお金がかかりそうだし、画像でしょうからgrepも出来ませんし」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Wikipediaのバイトコードの欄はこれです https://t.co/0M342Iu5bm」 / Twitter
- Bytecode - Wikipedia
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ST以前に「バイトコード」って言葉あったんだろうか? この前の「1バイトが8ビット」みたいなのが程々落ちついて以後だと考えたら、「ST以前」にはなさそう。」 / Twitter
- _ko1さんはTwitterを使っています 「バイトコード言い出したのはSmalltalkなんかなあ(何も知らない」 / Twitter
- _ko1さんはTwitterを使っています 「acm dl でちょっと見た(bytecode で検索)けど 1980 年に Smalltalk 処理系の文脈で言及があった。78年のも、多分同じような言及だったと思う。で、その辺で Smalltalk (とその応用)が研究者に広まってたって感じだろうか。"byte code" だとデータ型の話がヒット。」 / Twitter
- _ko1さんはTwitterを使っています 「bytecode の出典はわからんかったなあ」 / Twitter
- Toshio HirotsuさんはTwitterを使っています 「@_ko1 多分、Smalltalk-80 の Bluebook とかに出てくるはず…と思って探した These methods are translated by a compiler into sequences of eight-bit instructions called bytecodes. っていう説明があるから、最初かどうかまでは分からないけど、この程度の説明が必要な特殊な用語だった感じはある。」 / Twitter
- _ko1さんはTwitterを使っています 「@t_hrt はい。青本は 83年みたいで、80年の論文 (https://t.co/UKsF9hiNqC) にも出てきて、そのころには界隈で通じた用語なんだろうなぁと思います。」 / Twitter
- sumimさんはTwitterを使っています 「@_ko1 @t_hrt 実装の歴史については青本より緑本(Smalltalk-80: Bits of History, Words of Advice)の方が良さそうです。https://t.co/pPHGFaRFmT 同書によれば、-80の前身の-76での工夫の一つとして“A compact and efficient byte-encoded instruction set”の考案があったとされています。 https://t.co/vro5n1qJj8」 / Twitter
- Amazon | Smalltalk-80: Bits of History, Words of Advice | Krasner, Glen | Education & Reference
- sumimさんはTwitterを使っています 「@_ko1 @t_hrt ただ、件のTinyTalkの論文から“the byte-code interpreter”と参照されている The Smalltalk-76 Programming System - Design and Implementation https://t.co/2MXUhJXzdC の該当記述には「bytecode」や「byte-encoded instruction」といった表現は見あたらず、ただ「code syllable」と書かれています https://t.co/FH3fGdu28Z」 / Twitter
- The Smalltalk-76 programming system design and implementation | Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
- TinyTalk, a subset of Smalltalk-76 for 64KB microcomputers | Proceedings of the 3rd ACM SIGSMALL symposium and the first SIGPC symposium on Small systems
- _ko1さんはTwitterを使っています 「@sumim @t_hrt 内輪用語だったんすかねー」 / Twitter
- https://twitter.com/sumim/status/1489656119219740676
- Smalltalk_Kernel_Language_Manual_Sep77.pdf
- 19790306_NoteTaker_Smalltalk_Conventions.pdf
- sumimさんはTwitterを使っています 「@_ko1 @t_hrt 1バイトに収まるコンパクトな命令セットなので「compact code syllable」と言っていたのがいつしか「bytecode」と言い習わされ、定着したのかもしれませんね。」 / Twitter
- _ko1さんはTwitterを使っています 「@sumim @t_hrt はい、そういう推測です」 / Twitter
- Smalltalk-72がちょっと分かってきたので、改めて「オブジェクト指向プログラミングとは何か」をできるだけ簡潔に - Qiita
- Smalltalk-72で学ぶOOPの原点:まとめ - Smalltalkのtは小文字です
- Smalltalk-72で学ぶOOPの原点:サンプルコード「ローンシミュレーション」(report、demand、payment) - Smalltalkのtは小文字です
- Smalltalk-72 で遊ぶ - Smalltalkのtは小文字です
- 現在の Smalltalk(すなわち、-80以降)と Smalltalk-76, -72における true, false の扱いの違いを調べてみた - Smalltalkのtは小文字です
- sumimさんはTwitterを使っています: 「「そもそも“純関数的”とは🤔」という議論はありそうですが、アラン・ケイのオブジェクト指向的には、すべてがオブジェクトとその間のメッセージングでシミュレートされるなら「純オブジェクト指向」的と言ってもよさそうかと…^^; もっとも氏は純オブジェクト指向的なものしか(文字数 #お呼びでない」 / Twitter
- 豚林 medy.nim🐍👑全財産cbridgeのLPさんはTwitterを使っています: 「オブジェクト指向を純関数的にする、純オブジェクト指向という概念無いですかね」 / Twitter
- 豚林 medy.nim🐍👑全財産cbridgeのLPさんはTwitterを使っています: 「@sumim 「純関数的」とは「副作用がない」ってことを言いたかったです」 / Twitter
- sumimさんはTwitterを使っています: 「@dumblepytech1 「副作用の無いオブジェクト指向」でしょうか? 関連するかわかりませんが、“そもそもオブジェクトが内部状態を持ったり、関数型がモナドを発明(?)する必要なんてなかったんじゃあ”という話をアラン・ケイはしていますね。 https://t.co/lL6gLo9Cue また、外していたらごめんなさい。」 / Twitter
- Alan Kay's answer to Why is functional programming seen as the opposite of OOP rather than an addition to it? - Quora
- sumimさんはTwitterを使っています: 「本題からはずれるけど、アラン・ケイ的視点からの“ダメ”は「オブジェクト指向できてないこと」より、「なんでもシミュレートできるはずのオブジェクトを使って、抽象データ型みたいな古い脆弱なアイデアをシミュレートしてしまいがちな人間の愚かさ」というのが面白い^^; cf. https://t.co/VkrR3StB19」 / Twitter
- Alan Kay's answer to What is Alan Kay's definition of Object Oriented? - Quora
- sumimさんはTwitterを使っています: 「Template Method が抜けていたことに 12年越しに気付いたでござる。^^; 「Smalltalk システムの実装に見る GoF デザインパターン」- Smalltalkのtは小文字です https://t.co/OxfDWBoL6D」 / Twitter
- Smalltalk システムの実装に見る GoF デザインパターン - Smalltalkのtは小文字です
- sumimさんはTwitterを使っています: 「Smalltalkには(初期の-72を除けば)“メッセージング”と称するもののために、それほど凝った仕組みは用意されていません^^; 唯一の工夫らしきものは、Rubyのmethod_missingとしてよく知られたメッセージ転送の仕組みhttps://t.co/Dzxux2UJfa で、これの解釈や実装がPythonだと少し面倒になる程度です。」 / Twitter
- メッセージ転送 - Wikipedia
- sumimさんはTwitterを使っています: 「今どきのSmalltalkなら https://t.co/5WpSdjjeCV がお薦めです。 レトロなのがお好みでしたらWebブラウザで気軽に動かせるMini Squeak 2.2 https://t.co/tyGaI4qTPD があります。 メッセージングのOOPは、着想を比較的素直に実装したSmalltalk-72 で遊ぶと理解が深まります!https://t.co/FxyydJ5Fsh」 / Twitter
- SqueakJS
histric
histric-1
- hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
- TruffleSqueak
- TruffleSqueak: Polyglot Programming with Squeak/Smalltalk and GraalVM | Hacker News
- sumimさんはTwitterを使っています 「メッセージングのオブジェクト指向過激派のSmalltalk-72は、クラスやメソッドの定義は言うに及ばず、ALGOLを模したforループやif-then-else構文のように見える式、果ては変数への代入に至るまで、全てメッセージ式だ が…プリミティブな条件分岐式「⇒()」だけは制御構造なのは内緒だ(駄目じゃん!) https://t.co/mZTqARgGnE」 / Twitter
- sumimさんはTwitterを使っています 「ちなみに、この-72の孫にあたる-80以降の現在に至るSmalltalkでは、このプリミティブな条件分岐構文は廃止され、よく知られているように、条件分岐やループは真偽値やブロックへのメッセージ送信として(少なくとも文法上は)表現されていますが、代入まではメッセージにはなっていません。」 / Twitter
- sumimさんはTwitterを使っています 「代入操作については、分家(?)ですが曾孫の代にあたるSELF(Smalltalk-84と呼ぶ人もいます)が、「←」や「:=」などのそれっぽい記号こそ使いませんが実質代入に相当する操作を再びメッセージとして実装しています。」 / Twitter
- sumimさんはTwitterを使っています 「一方、-72の子の-76(とその兄弟の-78 https://t.co/jmlwDNSF1Y )では、省コスト版機構のためメッセージングの徹底度低下は余儀なくも、Ruby同様のレシーバーの省略を許すルール(ただし省略時レシーバーは固定)と特殊形式のメソッド呼び出しでforループを表現するなど興味深い試みがなされています」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@sumim ちなみに-80の子孫のPharoでは、変数モデル(slot)を使って特定の変数への代入文をメッセージ送信で実行することもできます。」 / Twitter
- アラン・ケイとMVC|tenjuu99|note
- Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「久しぶりの #st_study 楽しかった。ただし、truffle squeak、おまえ、オレが温めていた研究ネタの多くを解決しやがって。orz」 / Twitter
- Miura HidekiさんはTwitterを使っています 「truffle何とか、言語実装者の努力をことごとく踏みにじった感がある」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 今後の言語実装技術を考える上で、いろんなバランス軸を書き替えてしまった感があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 研究の世界はカオスがふさわしいと思います (部外者が過ぎた物言いだとは思います。すみません」 / Twitter
- TruffleSqueakの紹介 - Google スライド
- Miura HidekiさんはTwitterを使っています 「Smalltalkだといろいろ出来そう。あと、テキストウィンドウに関数名を書いておくとそれがボタンになってクリックすると起動するOberonとか。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「そういえばプログラムに唯一のエントリポイント(main関数)があるのって割とよくある構造だけど、エントリポイントが一つである必然性って無い気がする。プログラムの起動のされ方によってエントリポイントが切り替わってもいいんじゃない?BTRONのアプリってそんな感じだっけ?」 / Twitter
- asfdrweさんはTwitterを使っています 「@uchan_nos Androidがそんな仕組みじゃないでしょうか。 1つのプログラムに複数のActivityやServiceを持たせることができて、メインActivityに限らずどのActivityやServiceでも対応するIntentにより実行開始できる仕組みです。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@asfdrwe1 なるほど、近いかもしれません」 / Twitter
- Squeak/Pharo Smalltalk に備わる APL/J ライクな配列演算機能 - Qiita
- TruffleSqueakのnative imageをビルドする - Google スライド
- 自由自在 Squeakプログラミング PDF版
- ScratchとSqueakはどのように関連していますか? - Quora
- yhara (Yutaka HARA)さんはTwitterを使っています 「えっ、Smalltalkってこんなことできるの https://t.co/3G3cNnRkMm」 / Twitter
- rubygems_newsさんはTwitterを使っています 「methodfinder (2.2.3): A Smalltalk-like Method Finder for Ruby with some extra features https://t.co/4q3BrVyVsL」 / Twitter
- methodfinder | RubyGems.org | コミュニティのGemホスティングサービス
- h_sakuraiさんはTwitterを使っています 「純粋なオブジェクト指向ではプリミティブ型のようなものが存在しないので美しい。全てはオブジェクトであり例外はないw」 / Twitter
- sumimさんはTwitterを使っています 「(ほぼ^^;)純粋なメッセージング・オブジェクト指向言語のSmalltalk-72では、代入やメンバー関数(のちのメソッド)のコールみたいなものが存在しないのでシンプルで美しい。それっぽいものも全てはオブジェクトへのメッセージングでシミュレートされており例外は(ほぼ^^;)ないw https://t.co/VPORwmhsAv」 / Twitter
histric-2
- Masashi UMEZAWAさんはTwitterを使っています 「Squeak 5.3用の日本語環境インストーラ(beta)が一応できました。 sarをダウンロードして、Squeak 5.3にD&Dするとインストールできます。 https://t.co/Zbdtmu6tPL まだベータ扱いなので、気づいた点などあればお知らせください。 #st_study #squeak https://t.co/ZhZAFYibdD」 / Twitter
- squeak-ja/InstallJa20211113.sar at master · mumez/squeak-ja
- Hacker News記事題日本語翻訳さんはTwitterを使っています 「商用Smalltalkの興亡 https://t.co/l2pvaQ7PUF」 / Twitter
- The Rise and Fall of Commercial Smalltalk
- sumimさんはTwitterを使っています 「当時のまま、バグレベルまで再現されたこちらも是非! https://t.co/N82rFLf3Hb」 / Twitter
- ThingLab
- sumimさんはTwitterを使っています 「1978年に撮影された ThingLab のデモの様子です。ドキュメントを読むだけでは分かりにくい、実際の操作の仕方を学ぶことができます。 https://t.co/zQV7YUBmMX」 / Twitter
- videosrv14.cs.washington.edu/info/videos/mp4/general/ThingLab_Alan_Borning.mp4
- Torsten BergmannさんはTwitterを使っています 「Looks like I have not seen any announcement last year on this one - nontheless interesting: an event-based socket reconnection layer for @pharoproject smalltalk with features such as auto reconnection to a server or auto switching to alternative servers. https://t.co/EKaCGpCdRG」 / Twitter
- mumez/Stick: An event-based socket reconnection layer for Pharo smalltalk
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「Smalltalkとスプレッドシートの関りは古く、米国防総省向けに作られたAnalystから抜き出したSmalltalk Spreadsheetがありました。そのアイデアから派生したものに富士ゼロックスのV-Cells(Object Bits)やFXISのGrapherGearなどがありました。 https://t.co/YlYSpBR9AN」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「制約指向プログラミングという意味では、何と言ってもThingLabですね。 https://t.co/BdxTgF3Wv7 https://t.co/nJk7LXvptQ」 / Twitter
- esug.org/data/HistoricalDocuments/ThingLab/ThingLab-index.html
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「自然はすでにそこにある(計算されている)のに、なんでわざわざ計算しないといけないのかと思っていたことがありました。」 / Twitter
- The Self Handbook — Self Handbook for Self 2017.1 documentation
- インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
- Webアプリの進化に追随するGoogle Chrome:興味深い技術的側面(4/6 ページ) - ITmedia エンタープライズ
- 動的性が Ruby の遅さの原因? - Smalltalkのtは小文字です
- ANDO YasushiさんはTwitterを使っています 「chrome://credits 見てたらStrongtalk(Smalltalk)が入ってるのに気付いたんだけど、どこで使われてるの??」 / Twitter
- sumimさんはTwitterを使っています 「@technohippy V8エンジンの非常な高速化は、今世紀に入ってSunがオープンソース化したことで自由に使えるようになったStrongtalkのVM(Animorphic VM)技術を転用し、そのオリジナル開発メンバーらの手により成し遂げられてました。JavaのHotSpot VMと時を隔てた兄弟みたいなものですね!→https://t.co/c665uiw1Ll」 / Twitter
- The Hitchhiker's Guide to ...: Google Chrome, JavaScript and Smalltalk
- sumimさんはTwitterを使っています 「@technohippy 誤解されがちなので念のため、Strongtalkのもう一つの特徴の「(オプショナルな)型チェック機構」と、件のVMの高速化技術(実行時の型情報を活用した最適化の仕組み)は互いに独立した技術です。」 / Twitter
- V8 (JavaScriptエンジン) - Wikipedia
- Smalltalk - Wikipedia
- 🚙 🛢️ 🖖🏽 スティーブエッグ:動的言語の復活 🧑 🚳 🈵
histric-3
- Go FujitaさんはTwitterを使っています 「動きつづけているものをカタチにするという点で、少なくともアウトライナーと Smalltalk は似た機能をもっているように思う」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「せんせーい、ポインタで共有された領域を指すポインタのほうを全て一斉に書き換えることこそが真に楽しいプログラムを書くことの秘訣って考えてる人は何を使えばいいですか? 答え:Smalltalk」 / Twitter
- sumimさんはTwitterを使っています 「Squeak の Git Browser の使い方、だいたい分かった。https://t.co/Gv0RaTB1dj」 / Twitter
- hpi-swa/Squot: Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
- sumimさんはTwitterを使っています 「そう言われてみれば、たしかに歴代Smalltalk(というかXerox Alto)でも今の「_」にあたる文字のグリフは「←」だった^^; 「Lispのシンボルにアンダーバーが使われない理由を探る」https://t.co/hFJlBSo8Ef」 / Twitter
- #:g1: Lispのシンボルにアンダーバーが使われない理由を探る
- KOBAYASHI TomokiさんはTwitterを使っています: 「Smalltalkの予約語 self super nil true false thisContext 少なっ。制御構文の予約語もなし。それもオブジェクトへのメッセージで記述される。」 / Twitter
- sumimさんはTwitterを使っています: 「“[Smalltalkでは] 新しいプログラミング作業をゼロから始めるのではなく、常に最初にSmalltalkの環境(イメージ)[~内の実装] を見て、何が利用できるか、何がすでに行われているかを確認してから、新しいものを作り始めてください。” — Kyle Gene Brown https://t.co/6q5Mr6aqor」 / Twitter
- Design Patterns, Smalltalk, and the Lost Art of Reading Code | by Kyle Gene Brown | The Startup | Medium
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「@sumim 最後のパラグラフが気になりました。IBM系の人なら当然VAげふんげふん」 / Twitter
- sumimさんはTwitterを使っています: 「アラン・ケイの○○というアイデアがSmalltalkでどう反映されているかを確認する学習はお薦めだけど(ただし唯一解 and/or 正解ではないので要注意…)、Smalltalkでこうなっているから、ケイの考え(オブジェクト指向)は××だ…と外挿(?)するのは、かなりの確率で外すことが多いのでやめた方がいい。」 / Twitter
- sumimさんはTwitterを使っています: 「@2000NenQ 時系列的にもSmalltalk(特にSmalltalk-76以降のSmalltalk)のことはいったん忘れた方がよいかと思います。 そもそも、動的関数呼び出しをメッセージングに見立てるアイデアは、Smalltalk-76を実装するときにダン・インガルスが思いついたアイデアで、今の議論とは関係ないですよね?」 / Twitter
- にせんねん灸さんはTwitterを使っています: 「@sumim 高校の「情報I」の教科書で「データと操作を一まとめにしたもの」を「オブジェクト」として定義しているんですよ。」 / Twitter
- sumimさんはTwitterを使っています: 「Smalltalkの特徴とされる「ラムダ式っぽく振る舞うブロック」とか「メタクラス構造」も、ケイ氏は(ドイチュ氏の言葉を借りてはいますが―)批判的です。 基本、氏は-80にはノータッチなので、-80から入ったコレクション群の充実やその~ect:系メソッド群とかも(批判こそ見ないけど)関心なさげ…とかも https://t.co/jE3AjLcxC3」 / Twitter
- sumimさんはTwitterを使っています: 「私はこれらはすごく好きなので、アラン・ケイのファンというよりSmalltalkのファンなのです^^;」 / Twitter
- sumimさんはTwitterを使っています: 「縁の無いメッセージングのオブジェクト指向をわざわざご説明いただいているところ恐縮ですが^^;「ifTrue: […] ifFalse: […]」はこれで1つのメッセージです。 レシーバがtrueなら最初の引数を、falseなら二番目の引数を評価する同名メソッドが、それぞれのクラス(TrueとFalse)に定義されています https://t.co/KwNkJK13xL」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@sumim しまった、そうか、そうです! 訂正ありがとうございます」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@sumim 指摘いただいたのに甘えて確認させてください。Bool が内部に 0,1 のデータを持つのではなく、True と False の異なるオブジェクトに同じメッセージを送るという多態性で if ができている、という解釈は間違ってないでしょうか」 / Twitter
- sumimさんはTwitterを使っています: 「@tanakahisateru そうですね。解釈としてはそれでよいと思います。 ただ実装上は(“メッセージ”が、動的なメソッド呼び出しに過ぎないことはよく指摘されますが、それよりさらに悪く^^;)インライン展開され、TrueやFalseのメソッドが呼び出されることは通常はない、という事実も知っておいた方がよいとは老婆心ながら https://t.co/99kfTHeI5i」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@sumim おお!そういう実行のされ方になるのですね。面白いです。オブジェクトによって展開するかどうかが変わるのですか。それともひとつのソースコードにブロックが全て収まるならどんなオブジェクトでも展開可能なんですか」 / Twitter
- sumimさんはTwitterを使っています: 「@tanakahisateru 詳しくは https://t.co/dbyUeyxjgk などでif式がどうコンパイルされるかデバッガなどを用いて動いているコードを実際に追っていただくのがよいかとは思いますが、ざっくり言うと ifTrue:ifFalse: など事前に登録されたメソッドの呼び出しは、バイトコードレベルでは常に展開されるようになっています。 https://t.co/H6avhH9x3o」 / Twitter
- SqueakJS
- ひさてるさんさんはTwitterを使っています: 「@sumim ありがとうございます!書くもの書き切ったらやってみます。3 月に自著でズバッと切り捨てたことの裏話みたいなことやろうとしてて、もう少しいろいろ理解しとかなきゃと思っています」 / Twitter
histric-4
- sumimさんはTwitterを使っています: 「こちらの方向に議論が深められなかったので、指摘と補足を… ①アラン・ケイは Simula でプログラミングをしているときに答えたわけではなく、Simula の処理系のコードを調べたり、Sketchpadなどその他もろもろに影響された仕事をしているときに言い表したのが「オブジェクト指向プログラミング」です」 / Twitter
- sumimさんはTwitterを使っています: 「②ケイがSimulaの調査(やその他)で得たのは「データと手続きをひとまとめに—」なんて単純な話ではなく、データに自らの“インタープリタ”を含めた新しいエンティティ(=オブジェクト)に“目標”としてのメソッドを持たせることで、従来の代入スタイルのプログラミングから脱却できるという気付きでした https://t.co/boOUU4gYZO」 / Twitter
- sumimさんはTwitterを使っています: 「だだ、ここで言われる「抽象データ型」は、提唱者として知られるバーバラ・リスコフ氏にはちょっと気の毒なほど矮小化(?)されていますね^^; 「抽象データ型」という用語も「オブジェクト指向」同様、コロニー化していますから、リスコフじゃない方の「抽象データ型」を言っているのかもしれません。」 / Twitter
- sumimさんはTwitterを使っています: 「まあ、アラン・ケイからしたら、程度の差こそあれ「単に弱く場当たり的なアイデア」なのかもしれませんが…^^;」 / Twitter
- にせんねん灸さんはTwitterを使っています: 「@sumim Simula, SmalltalkやC++, Javaなどは、オブジェクトの定義にclassを使いますが、classの内部に、変数とメソッドを持たせる、ということは同じですよ。 で、そのクラスを基にメモリ上にオブジェクトを生成したら、オブジェクトの内部にには、変数とメソッドが一まとめになってる、という話です。」 / Twitter
- sumimさんはTwitterを使っています: 「@2000NenQ Smalltalk-72 は変数もメソッドもオブジェクトです(-76 以降は速度優先で、Simulaスタイルのクラスを採用。変数はオブジェクトではなくなり、“メッセージ”も動的メソッド呼出しになってしまいましたが…) ここでのポイントは、変数もメソッドもオブジェクトによりシミュレートされているところです」 / Twitter
- sumimさんはTwitterを使っています: 「@2000NenQ つまり、オブジェクトはオブジェクトにより構成されるわけです。全てはオブジェクトです。 Smalltalk-80 以降の今の Smalltalk においても、メンバー関数に落ちぶれた^^; メソッドも相変わらずオブジェクトであること(たとえばソースコードはそのプロパティであるとか)にその片鱗がうかがわれます。」 / Twitter
- sumimさんはTwitterを使っています: 「@2000NenQ ただ、この「シミュレートしている」というところが“くせ者”で、せっかくすべてをオブジェクトというパワフルなエンティティで表現しているにもかかわらず、人はなぜか非力やデータや手続きを使った旧来からの代入スタイルのシミュレートをしてしまいがちという傾向をアラン・ケイは嘆いています。 https://t.co/W0ciaq5TrG」 / Twitter
- SeasideへGO!!(第1回) | オブジェクトの広場
- PCCAA清書2
- sumimさんはTwitterを使っています: 「“IOWAのSmalltalkへの移植にすぐに取りかかり、WebプロジェクトではRubyではなくSmalltalkを使うべきだと次のクライアント数社に説得しました。この移植版がSeasideとなり、その後数年にわたりSeasideのトレーニングと開発を中心にコンサルティング・ビジネスを立ち上げました”https://t.co/5jYPSJkQS8」 / Twitter
- sumimさんはTwitterを使っています: 「“VMは十分に高速なので—標準的なライブラリのすべてをSmalltalk自体に実装することが合理的です。つまり、RubyのコードからCの実装に切り替える障壁がなく、「ずっとカメ」なのです。これは大したことではないと思われるかもしれませんが、一度手に入れたものを手放すのは本当に大変なことなのです。”」 / Twitter
- sumimさんはTwitterを使っています: 「“Smalltalkではファイル—やコード内のメソッドやクラスの順序を1つ選ぶ必要はありません。基本的にコードのデータベースであるものに対して、常にビューを切り替えているのです。 私の友人はこれを嫌っています—しかし私にとっては大きなコードベースをハックするための究極のパワーツールなのです”」 / Twitter
- sumimさんはTwitterを使っています: 「Seasideの前身(?)のIOWAが、WebObjectsのRubyへの移植を目指したものだった…というのは知らなかった。」 / Twitter
- Smalltalk-72のような言語を関数型言語風に使ってみるとどうなるのか実験。
- 誰得かわからないSqueak Smalltalkを使った関数型プログラミングっぽい話 - Smalltalkのtは小文字です
- Alto、Star、Smalltalk、Lisa、Mac、Win の関係をはっきりさせよう
- Alto - Wikipedia
- Xerox Alto Restoration Part 17 - Xerox Alto Demo - YouTube
- #:g1: アクターモデルとPLASMAとSmalltalk-72の関係を雑に探る
- sumimさんはTwitterを使っています 「Smalltalk-72(メッセージによる計算)→Actor→Schemeは地続き→“Schemeの学習教材などに、なんでもλというプリミティブに還元してみせるという例が良く出てくるのですが、なんでもアクターというプリミティブで表現するという路線を継承したのかなと思わなくもありません。” https://t.co/1fX78VdHxF https://t.co/En0QiZ2P28」 / Twitter
- #:g1: アクターモデルとPLASMAとSmalltalk-72の関係を雑に探る
- sumimさんはTwitterを使っています 「Smalltalk-72と、https://t.co/5WpSdjjeCV など今のSmalltalkを含む -76以降とは、同じ「Smalltalk」ですが仕組みとしてはまったくの別言語なので、特にアクターへの影響を探る際には要注意です^^; Smalltalk-72はこちらのサイト等で、ほぼ当時のままの処理系を体験できます→https://t.co/KtUwwk6rYj」 / Twitter
- Pharo - Welcome to Pharo!
- HOPL-St72
- Smalltalkプログラミングの情報源 | Smalltalk from Scratch
- アラン・ケイ
- オブジェクト指向が分からなくなったので、Smalltalk(Pharo)に入門してみた - Qiita
- Hacker News記事題日本語翻訳さんはTwitterを使っています: 「Raspberry Pi 上の Smalltalk-80: ベアメタル実装 https://t.co/NGZh9MQcca」 / Twitter
- michaelengel/crosstalk: Smalltalk-80 bare metal implementation for the Raspberry Pi
- Smalltalk 更なる7つの神話
Forth
- 並列処理対応 Forth 系言語 Paraphrase の 2020 年の開発状況 - Qiita
- 並列処理対応 Forth 系言語 Paraphrase を作る際に考えたよしなしごと - Qiita
- Paraphrase の開発状況 2021 - Qiita
- 機械語手書きから言語処理系をブートストラップする - Qiita
- Factor - Wikipedia
- κeenさんはTwitterを使っています 「最近forth勉強してる途中なんだけど、forthの拡張性やばい。なんでも自己書き換えできてしまえるし、ヤバいプリミティブ用意して自己書き換えで拡張して最後にヤバいプリミティブをundefineして綺麗にするのもヤバい」 / Twitter
- κeenさんはTwitterを使っています 「昔投稿されたForthのセルフホストコンパイラはこちら 一日でできるセルフホスティングForthコンパイラ - Qiita https://t.co/2GpSiqYVvx」 / Twitter
- 一日でできるセルフホスティングForthコンパイラ - Qiita
- t-sin🥳さんはTwitterを使っています 「@blackenedgold ヤバいですよね…。魔法みたいなすごい言語なのにニッチすぎて微妙によくわからないところがまたふしぎです。」 / Twitter
- κeenさんはTwitterを使っています 「@sin_clav スタックだけでプログラミングする縛りプレイ言語と思ってましたが世界の広さに驚嘆してます。」 / Twitter
- t-sin🥳さんはTwitterを使っています 「@blackenedgold スタック指向なところだけ見てるとその他の部分知ったときに驚きますよね。難点は自己拡張性までいろいろ解説した資料があるにはあるけど若干散らばりぎみなところですかねえ。https://t.co/d7SmPjkotbとかの規格書から入るのは入門にはつらいですし。」 / Twitter
- Forth
- Forth - Wikipedia
- プログラミング言語Forthに魅せられて。 - Qiita
- ようこそ!日本FORTH研究会へ
- 小さいけどパワフルなFORTH言語について | ある計算機屋さんの手帳
- 第1章 Forthの哲学 — Thinking Forth 0 ドキュメント
- Rubyist のための他言語探訪 【第 8 回】 Forth
- プログラミング言語 Forth
- Forthを使うのじゃ | TECHSCORE BLOG
- プログラミング言語 Forth
- Forth言語概説 - iMops-forth @Wiki - atwiki(アットウィキ)
- Starting FORTH - FORTH, Inc
Lisp
AMB 計算
- 非決定的計算オペレータ amb の並列化
- 計算機プログラムの構造と解釈 第二版
- 「プログラミング言語」 SICP 第4章 ~超言語的抽象~ その7 - chap4-7.pdf
- SICP 読書ノート#59 - 4.3 非決定性計算 - call/ccによるambオペレータの実装 (pp.245) - @uents blog
- amb.scm
- Pythonで非決定性計算は可能か? - Retro-gaming and so on
- AndrewTruett/Boolean-Satisfiability-Solver: A non-deterministic approach to solving the Boolean Satisfiability Problem.
- ブール充足可能性問題を解決するための非決定論的アプローチ。 - wenyanet
- Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD
- hiroshi-manabe/sicp-pdf: SICP PDF with Texinfo and LaTeX source
3-Lisp
- Miura HidekiさんはTwitterを使っています 「これってまさにBrian Smith氏の3Lispの話な気がする。3Lispではこの問題を環境と継続が渡ってくるメタレベルの関数で解決していたと思う」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「以前 @kinaba さんにネタ振りされた、letが関数であるプログラミング言語の仕様をちょいと真面目に考えるスレ。 前提として、letのformはlet <name> = <exp1> in <exp2>とする。ふつーの言語でlet関数が作れないのはまあlet(f,1,f+1) とかしたとして、fが定義されるのまあ無理だよねってとこで妥当 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「マクロなら書けるんだけど、それは関数じゃないから却下として、呼び出し時点で"f"という木の「葉」が渡されればまず良さそうなんだけど、呼び出され側の扱いが問題ぽい。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「def let(name: <string>, init: <exp>, body: <exp>) { } とかければなんかやれそうだけど、木の操作どうすんねんってとこが。<exp>をeval出来る関数用意すれば簡単だけど、それはなんか逃げっぽい。しかし、木を操作するプリミティブ色々用意するともうインタプリタから書いてる気もする。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「なんかやりようはあるんだけど、eval用意するのは反則技ぽいのが悩み。evalを構成する部品がファーストクラスで使えて、それ使って評価実現するとかなら面白い?(いったん終わり)」 / Twitter
Stalin 等
- #:g1: stalinの紹介
- Stalin (Scheme implementation) - Wikipedia
- トランスコンパイラ - Wikipedia
- Source-to-source compiler - Wikipedia
- barak/stalin: stalin brutally optimizing Scheme compiler, with Debianization patches
- Marc Feeley教授によるGambit Schemeの実装 - karasuyamatenguの日記
- doc4-1.pdf
- 機械語以外で、パフォーマンスの高い最も速いプログラミング言語は何ですか? - Quora
- 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係:プログラミング言語の進化を追え(1/2 ページ) - ITmedia エンタープライズ
- 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) - ITmedia エンタープライズ
blog
- LispKit Lisp処理系の実装 序 - Arantium Maestum
- LispKit Lisp処理系の実装 1:パーサ - Arantium Maestum
- LispKit Lisp処理系の実装 2:インタプリタ〜変数から算術演算子まで - Arantium Maestum
- LispKit Lisp処理系の実装 3:インタプリタ〜条件分岐から関数適用まで - Arantium Maestum
- LispKit Lisp処理系の実装 4:SECD抽象機械のメモリとレジスタ - Arantium Maestum
- LispKit Lisp処理系の実装 5:SECD抽象機械の状態遷移〜リスト操作と比較・算術演算 - Arantium Maestum
- LispKit Lisp処理系の実装 6:SECD抽象機械の状態遷移〜条件分岐、関数関連など - Arantium Maestum
- Island Life - 無限cxr
- GC撲滅への道 - GC Advent Calendar - miura1729の日記
- 自作言語tanaka-lispの進捗報告 - 技術の記録 - Ibotenic
- #:g1: Metaobject Protocol及び関連技術についての個人的まとめ
- 小さなlisp処理系を作った - in neuro
Qiita
- Lisp系自作言語のx86_64コンパイラを作り始めたときの話 - Qiita
- 不変性を仮定した、環境をキャプチャしないクロージャ生成アルゴリズムとその問題 - Qiita
- [AAAI16実況報告] MIT/CSAIL はCommon Lispを水中探査ロボットAIに実運用している - Qiita
- elispのシェバング - Qiita
- JSONでLISPの超循環評価器を定義してみた - Qiita
Twitter
- sumimさんはTwitterを使っています 「そう言われてみれば、たしかに歴代Smalltalk(というかXerox Alto)でも今の「_」にあたる文字のグリフは「←」だった^^; 「Lispのシンボルにアンダーバーが使われない理由を探る」https://t.co/hFJlBSo8Ef」 / Twitter
- #:g1: Lispのシンボルにアンダーバーが使われない理由を探る
- zickさんはTwitterを使っています 「Lispのことを関数型言語と言うと、必要以上に色々な人達(Lispは手続き型と信じて疑わない人、LispとSchemeは違う言語と主張する人、なんでもLispとひとくくりにするなと言う人、型付き関数型言語原理主義者、プログラミング言語オタク)に怒られるので注意した方がいいです。」 / Twitter
- ANDO YasushiさんはTwitterを使っています 「SchemeをWASMにコンパイル https://t.co/eKVExOfvK2」 / Twitter
- 22-S.pdf
- Nobuhiko FUNATOさんはTwitterを使っています 「これもたぶんあまり知られてないけど、cmucl compiler由来のsbcl(Steele Bank Common Lisp)、untypedな筈が、型推論が結構優秀で、しょっちゅうdead code eliminationしたぞとか怒られます。(もちろん言語仕様上ML族の様に完全性は追求できないが) ちなみにREPLからの入力もnative compileされます。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「call/ccをどうやるんだろう?って思ったらまさにそう言う論文だった。やっぱりCPS変換+ヒープに環境をとる か。WebAssemblyはいろいろ制限があるようだ。」 / Twitter
- t-sin🥳さんはTwitterを使っています 「そうか。Open Implementationな感じのevalって、eval関数が再帰的に式を辿って評価してくんじゃなくて、式自身(?)のevalメソッドを呼ぶイメージか。」 / Twitter
- t-sin🥳さんはTwitterを使っています 「式自身つまりリストのevalメソッドを呼ぶと、それはおそらくcar部のシンボルのfuncall的なメソッドをcdr部を引数として呼び、みたいな? そしてMOPのほうがぼくにとって未知なので、MOPによりどうなるかはまだ未知。」 / Twitter
- LISPの基本データ構造(コンスセル,連結リスト,連想リスト,属性リスト)
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「#Clojure の連結リストは配列構造じゃないよ,という御指摘を踏まえて大幅改訂.しかしその結果Clojureが消えてなくなったという.比較対象としては #Python の方がわかりやすいんだもん…. 連結リストのみのLISP処理系実装について考察した|TAKIZAWA Yozo https://t.co/U6dYaLU9n8 #zenn」 / Twitter
- Schemeでdefineを使わずに超循環評価器を実装してみた
- 連結リストのみのLISP処理系実装について考察した
- Shiro KawaiさんはTwitterを使っています 「@ytaki0801 メモリが希少だった時代には、連続してアロケートされるペアを配列にパックする(CDR coding)Lisp処理系もあったと聞きます(使ったことはないです)。パッキング/アンパッキングは暗黙に行われるのでユーザからは見えません。アクセスローカリティが性能に重要になった現代で見直す価値はあるかも?」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「@anohana 情報ありがとうございます.確かにそうかもしれませんね.ただ,今はLISPも普通にベクタとかありますし,コンスセルを無理に効率化しなくてもLISPコード操作だけなら別にいいかな,などとも思ったりはします(^^;).効率化することでコンスセル一辺倒(?)に戻るのもアリかもしれませんが….」 / Twitter
- シェルスクリプトでLISP処理系を作ってみた
- 眼力 玉壱號さんはTwitterを使っています 「で、だったら何で第一引数を特別扱いするのか?の果てに #CLOS が居る」 / Twitter
- mattnさんはTwitterを使っています 「@dankogai 呼び出しが冗長になってメンバに持つ意味が無くなりませんか? foo->do_something(foo, 1, 2, 3); であれば最初から do_something(foo, 1, 2, 3); でいいので。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「CLOS、なんでこの継承ポリシーを特別視するのか、みたいな感じで大体カスタマイズできるから強い」 / Twitter
- κeenさんはTwitterを使っています 「syntax-rulesは表現力が高いまま、簡単なケースを簡単に書けて、衛生性を担保しているという面では便利。 #func_party」 / Twitter
- cisco/ChezScheme: Chez Scheme
- Shiro KawaiさんはTwitterを使っています 「古くはただのパーザからevalを呼べるようにしちゃったLispに始まり、「ここでほんの一手間かけとけば後で楽できそう」という誘惑に負けちゃうのはプログラマの宿痾かもしれない」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「特にエンタープライズJavaで見られるこういう過剰な柔軟性は、バイナリの更新は大ごとだけどXMLの設定ファイル(実際は半分コードみたいなやつ)の変更ならなぜか簡単みたいな運用の歪みの結果ということがよくあって、そういうのはやめて、実現したい機能は素直にそのままコードとして書きなよ、と。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「MBRブートセクタに収まる、わずか436バイトのLISPインタプリタ SectorLISP。しかもGCつき。これでLISPは491バイトのFORTHを抜き「世界最小のプログラミング言語」になった。ちなみにBrainfuckは99バイトで実装可能だがこれはまともな言語に数えないことにする。 https://t.co/WxHozKnviV」 / Twitter
- LISP with GC in 436 bytes
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Game of Life上で実装されたLispインタプリタ。まずCで書かれたインタプリタを仮想マシン上のコードに変換する。この仮想マシンはVarLifeと呼ばれるセルオートマトンで動作するので、これをさらにLife用に変換する。入出力はASCIIコードでRAMモジュール上に表示される。 https://t.co/Tc320fm5vO」 / Twitter
- woodrush/lisp-in-life: A Lisp interpreter implemented in Conway's Game of Life
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: Game of Life上でテトリスを実装する (Quest For Tetrisプロジェクト)。上で紹介した仮想マシンのアーキテクチャや各種部品、およびVarLifeの概念はここで発明された。 https://t.co/yiTBU7BRjD」 / Twitter
- code challenge - Build a working game of Tetris in Conway's Game of Life - Code Golf Stack Exchange
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「よく冗談で「エクセルでSchemeが使えたらなあ」と言っていたが、どうやらその冗談は現実化したらしい。Microsoft 365のサードパーティ機能拡張である Visual Scheme for Applications を使うと、実際にSchemeでExcelのマクロが書ける。.NETの機能もすべて利用可能。 https://t.co/yEtELUFQLf」 / Twitter
- The Excellent Schemer
- Miura HidekiさんはTwitterを使っています: 「昔のLispはFSUBR関数があったから、制御構造とかが関数でより全てが関数であったような気がする」 / Twitter
- 齊藤敦志さんはTwitterを使っています: 「LISP の登場時期において他にあったプログラミング言語と比較したら関数的に見えただろうとは思っているが、今となってはあまり意味のある分類ではないと私も思う。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「これまでに印刷されたLispコードの展示。1958年のMcCarthyによるメモから1975年の Sussman & Steele による Scheme、2011年の Clojure本まで。 https://t.co/Oo3ssQK4nd」 / Twitter
- Kazimir Majorinc, A few examples of Lisp code typography
- adams86orbit.pdf
- Medley Interlisp Common Lisp
- Clojure - Learn Clojure - Functions
- いかにもLispらしいマクロを書いたので解説。
- おもしろマクロ with-c-syntax の最近の進捗 - Google スライド
- [Home] Emacs Scripts
- でこれきさんはTwitterを使っています 「Lispっぽくて三角括弧がちというとMDLを思い出すところではある #:g1: レトロLisp探検: MDL https://t.co/SHmKdyG3jA」 / Twitter
- #:g1: レトロLisp探検: MDL
- Shiro KawaiさんはTwitterを使っています 「前から思ってた疑問。lsの出力とかでマルチカラムにする時、column-majorでソートされるけど、1画面をはみ出すくらい縦に長くなるとスクロール行ったり来たりで探すのが面倒じゃない? row-majorの方が探しやすいと思うんだけど、なんでそうしなかったんだろう。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「出版物の慣習を引き継いだのかなって気はするけど。出版物はページで区切れるので行ったり来たりは発生しない。 あれ今からでもrow majorにしたらみんな混乱するかなあ。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「(REPLでの補完候補の表示方法を考えている)」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「探す単語が確実に分かってる場合はcolumn-majorだと一行目を横に見ればどのカラムに目的の語があるかわかるわけだけど、何となくしか分かってない場合、ありそうな箇所をいくつかスキャンしたい。その時に下まで行ってまた上に戻るのが大変、ってことね。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Grammarlyの文法検査エンジンは SBCLで書かれているらしい。 https://t.co/Wta8B1Dm1A」 / Twitter
- Running Lisp in Production | Grammarly Engineering Blog
- Racket - Wikipedia
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @nasunasunasu10 伝統的にはLisp系言語はLisp自身でGCまで書くのが主流で、CでLispを実装する流れの方が新しいですね。 もちろん、GCを書く時はGCをトリガしないように書きます。」 / Twitter
- Chapter 37. The CLISP bytecode specification
- 齊藤敦志さんはTwitterを使っています: 「LISP 系言語にはそのような方向性のものもあり、たとえば TAO がそうであったらしいのだが……。 Common Lisp で導入された多重ディスパッチ方式のオブジェクト指向が後の LISP 系言語での主流になったのでどれかひとつのオブジェクトを主語にするような考え方が廃れてしまったのだと思う。」 / Twitter
- K.KakiharaさんはTwitterを使っています: 「LISPってS式の先頭は関数だけれども、そこに関数ではなくてオブジェクトの入るオブジェクト指向LISPがあってもいいような気がしてきました。 関数(メソッド)は2個目以降の引数ということで。」 / Twitter
- Le Lisp - Wikipedia
- 新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話
Clojure
- Clojure のリーダーマクロについて (lisp reader macro advent calendar 2012 の記事です)。
- Clojureコレクションで探るimmutableでpersistentな世界 | ドクセル
TypeScript
その他
Union Types
- Union Typesは直和型ではない | 雑記帳
- Discriminated union typesに対応する日本語用語いろいろ
- Mapped Types とか Union Types とかって何だっけ - Qiita
- TypeScriptのUnion型(合併型、共用体型)の概要と具体例 | Enjoy IT Life
- ユニオン型 (union type) | TypeScript入門『サバイバルTypeScript』
- TypeScript の共用体型(Union Types)は or ではない(追記あり) - 30歳からのプログラミング
- TypeScriptの型: 共用体を定義する (Union types)|まくろぐ
- TypeScript: Handbook - Unions and Intersection Types
- 判別可能なUnion型 - TypeScript Deep Dive 日本語版
- Union Types | Flow
構文解析
- Masaki HaraさんはTwitterを使っています 「microsoft/TypeScriptのパーサーの面白いところ。シフト演算子 >> なんて滅多に使わないだろうということで > を優先的に切り出すようになってて、 >> が必要なところ (式の直後) で再パースするようになってる。 (Foo<Bar<T>> みたいな形で出てくることのほうが圧倒的に多い)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「経験上、こういうのは >> で切り出しておいて必要に応じて分解することのほうが多いし一般的だと思う」 / Twitter
- Masaki HaraさんはTwitterを使っています 「JavaScriptという制約の中で極限までチューニングしてる感じがあって強い」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみに前提として字句解析器がオンデマンドでトークナイズする仕組みになっているというのがあるわけですが、実はそもそもJavaScriptの仕様上の問題でこういう設計になることがほぼ確定しています」 / Twitter
infoQ
- TypeScript4.1にテンプレートリテラルタイプが追加された
- Typescript 4.2 リリース。型と開発者エクスペリエンスが向上
- TypeScript 4.3がプロパティの書き込みタイプを改善
- SentryはフロントエンドをTypescriptに移行 - 教訓
- AmazonがAWS Lambda Powertools TypeScriptを発表
- TypeScript 4.6ベータ版で型推論とエラーチェックが改善
Zenn
- TypeScript 4.1による型レベルパーサコンビネーター
- TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
- unsafety-zoo.ts/src at master · todesking/unsafety-zoo.ts
- TypeScriptにはanyが4種類、undefinedが3種類、……
- ドッグさんはTwitterを使っています 「なるほど型推論が2段階になっていて,上向きに型情報を収集しといてから下向きに推論していく時に単一化するのか | 'TypeScriptにはanyが4種類、undefinedが3種類、……' https://t.co/nByMZ4FhhJ」 / Twitter
- ドッグさんはTwitterを使っています 「ループ時のフロー型の推論で繰り返すのもなるほどと思ったけど,これ収束したかの条件どうなんだろう.silentNeverType が現れたかでチェックしてるのかな」 / Twitter
- TypeScript で T 型と {...} の併用で型チェックが機能しなくなる罠
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"「必須だけど絶対に値が存在しないキー」を作る" なるほどー! / 他6件のコメント https://t.co/RAzZm2lvNw “TypeScript で幽霊型っぽいものをつくる” https://t.co/uY8zcGdfO1」 / Twitter
- TypeScript で幽霊型っぽいものをつくる
- any、またお前か——配列とhomomorphic mapped typeの罠
- wint 𝄆 揚げ出しエンジニアさんはTwitterを使っています 「分割代入でまでフロー解析による型絞り込みが発生するのか…。更に進化するなぁ… ─── TypeScript 4.6で起こるタグ付きユニオンのさらなる進化|uhyo https://t.co/WUnhrIpVyR #zenn」 / Twitter
- TypeScript 4.6で起こるタグ付きユニオンのさらなる進化
- がくぞさんはTwitterを使っています 「分割代入によって変数同士の関係性を持てるようにするっていうのは目から鱗だなぁ……」 / Twitter
- TypeScript 4.5 以降で ESM 対応はどうなるのか?
- mints: 5.7kb の TypeScript コンパイラを作った
- TypeScriptのJSDocサポートでできること、できないこと
- あなたが知らないかもしれない TypeScript の豆知識
- イベントループと TypeScript の型から理解する非同期処理
- TypeScriptの型ガードをちゃんと使おう
- TypeScript: const n=1とconst n:1=1は何が違うのか、なぜ違うのか
Qiita
- TypeScriptの型レベル連結リスト活用術:型を変えられるコンテナを作る - Qiita
- 7万行のJavascriptコードをTypescriptに移行した話 - Qiita
- TypeScript4.1から正式に登場したテンプレートリテラル型について - Qiita
- TypeScriptで、class以外の型にinterfaceをimplementsする(型クラスとインスタンスのデザインパターン) - Qiita
histric
histric-1
- κeenさんはTwitterを使っています 「JITエンジンは作ったことないので実際のところは分からないけど理論的にはTypeScriptの型システムは健全性がないのでコンパイルの補助には使えない。使うと簡単に壊れたコードを生成させられる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ヒープアロケーションをエスケープ解析しまくってスタックアロケーションに出来るなら勝てると思う(脱最適化が必要などJITコンパイルでは限界があると思う)。それをしないとJITコンパイルの実行時の情報を使ってのコンパイルには敵わないと思う。」 / Twitter
- トデス子'\さんはTwitterを使っています 「TSの型を全面的に信じてAOTで機械語吐く、別の型が入りそうなところは実行時チェックでslow pathに逃がすというのはできそうだけど、JSのJITに勝てるだろうか。anyやasを厳格に廃したコードで固めればワンチャンあるんかな」 / Twitter
- エヌユルさんはTwitterを使っています 「DartのAOTがDartVMやJavaScriptにコンパイルしたDartのパフォーマンスに劣らないのを見るとパフォーマンスの面ではいけそう 互換性切って同等程度のパフォーマンスで良いかは謎」 / Twitter
- エヌユルさんはTwitterを使っています 「asm.jsでは||で数値つけるとかで型推論の補助して高速化してたし TypeScriptの型システムを応用してもそれぐらいの補助は出来ると思うんですよね でもそれやって限られたシステムのみで高速化するならwasm使えって感じではある」 / Twitter
- zakkiさんはTwitterを使っています 「MSRのStatic TypeScriptがそれでフットプリントは小さく出来るけど速度的にはJITに勝てないだったような https://t.co/52uOQp077W」 / Twitter
- Static TypeScript: An Implementation of a Static Compiler for the TypeScript Language - Microsoft Research
- zakkiさんはTwitterを使っています 「そもそもがちっちゃいデバイス向けで速度に振ってないっていうのもあるとは思うので、強い会社が無限に頑張れば速度も頑張れるのかも」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「TypeScriptに入ったすごい改良。 場合分けによって型が異なる処理を、(分解したunion型の場合) キャストなしで書けるようになった: {flag, obj} = x; if (flag === 'A') { obj.toFixed(); } // numberの場合 if (flag === 'B') { obj.toUpperCase(); } // stringの場合 https://t.co/ZbvXxaWGue」 / Twitter
- Control flow analysis for destructured discriminated unions by ahejlsberg · Pull Request #46266 · microsoft/TypeScript
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORM使ってるときもよく似たことを感じたけど、TypeScriptが普通のオブジェクト型の型定義に対してリフレクションさえできればio-ts独自の型定義APIを覚えなくて済むのになぁ。」 / Twitter
- Re: 僕らを縛る Node.js という呪いについて - あるいはなぜ TypeScript 以外が真っ当な選択肢にならなかったか
- azuさんはTwitterを使っています: 「型がついている(`any`ではない)TypeScriptのコードカバレッジを出すツール "plantain-00/type-coverage: A CLI tool to check type coverage for typescript code" https://t.co/ysglr64zEc #TypeScript #Tools」 / Twitter
- plantain-00/type-coverage: A CLI tool to check type coverage for typescript code
- プロトタイプベース | TypeScript入門『サバイバルTypeScript』
- TypeScript 4.8で入る型の絞り込みの改善とは
- unknownとかneverとか、よく分からない!のでまとめてみた - Qiita
- TypeScript: Cheat Sheets
- きれいなツチノコさんはTwitterを使っています: 「うーん。例えば、Webブラウザ上のテキストにTypeScriptを書いて、それをサーバー側でトランスパイルして、リアルタイム的に画面の結果が変わるようなことをやってるサイトとかってあるかなあ。 結局ローカルでトランスパイルしてjsアップロードしてるんで、やっぱ現状jsなんだなって感じなんだけど。」 / Twitter
- ぼいち(*´ω`*)(まどかのP/ECEの中の人)さんはTwitterを使っています: 「@CTsuchinoko テキスト内容を受け付けて、サーバ上のファイルを書き換えるWebAPIを用意して、React.jsの開発モードみたいな仕組みがサーバ側で動いてれば、出来そうな気はしますね(*´ω`*)」 / Twitter
- きれいなツチノコさんはTwitterを使っています: 「@voich2014 なるほど。 そういえばReactも全然勉強してませんでした。 Web側も知らなきゃいけない多すぎて刺激的です(笑)」 / Twitter
- ぼいち(*´ω`*)(まどかのP/ECEの中の人)さんはTwitterを使っています: 「@CTsuchinoko Reactは私も仕事で使うのに最近勉強し始めたんですが、Node.jsで動く開発環境で、.jsや.jsxファイルを編集して保存すると、勝手にトランスパイルが走って、ブラウザ上の画面が更新される仕組みがあったので、たぶん似たような仕組みを用意したらいけるかも?と思いました(*´ω`*)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「TypeScriptの超高機能な型システムを使った「Typeプログラミング」のチュートリアル。各クイズを解いていくにしたがって高度な型の使い方が身につくようになっている...が、まだ実際に公開されているのは第2章までである。 https://t.co/AxGuWVDWtE」 / Twitter
- Type-Level TypeScript — Introduction
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Typescriptはエンドユーザには使いやすいが、ライブラリ開発者にとっては地獄である。ライブラリでは内部の複雑さを隠蔽しなければならず (通常のweb開発ではあまり使われない) 条件付き型などを多用するが、これでtscを満足させるのは至難の業である。テストもやりにくい。 https://t.co/fpQDHviF7k」 / Twitter
- Typescipt is terrible for library developers: We spend a disproportionate amount of time on types
- デザインからTypeScriptと仲良くなってみる。 - estie inside blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「TypeScriptの型システムだけを使って三目並べを実装する方法の詳しい解説。 https://t.co/OQmQxJTNHM」 / Twitter
- TypeScript Typelevel Tic-Tac-Toe: Overkill edition! | Note's on software
- JSDoc TSで、ユニオン型を改行して書く場合は、括弧が必要 - console.lealog();
- TypeScript誕生の背景 | TypeScript入門『サバイバルTypeScript』
- TypeScriptで形式的証明・直和型編 ~ じゃんけんゲーム最強トーナメント - falsandtruのメモ帳
- TypeScriptで形式的証明・交差型編 ~ 状態付きの型による高信頼領域の構築 - falsandtruのメモ帳
- JavaScript(TypeScript)でEitherモナドとMaybeモナドを作る - falsandtruのメモ帳
- TypeScriptで型レベル関数とRequired/DeepRequired型を作って型レベルプログラミング - falsandtruのメモ帳
- TypeScriptでIDなどの特別な数値や文字列を型安全な専用の属性付きプリミティブ型にする - falsandtruのメモ帳
- AsyncIteratorとPromiseによるObservablePromise抽象 - falsandtruのメモ帳
- Promiseの失敗文脈を使ってはならない理由と組み込み関数では使っていい理由 - falsandtruのメモ帳
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「TypeScriptの型チェックを行う主要部分 checker.ts のソースコード。47,000行以上あり、巨大すぎてGitHubでは表示できない。なお最も多くの行を書いた開発者は Jake Bailey で、2番目が Anders Hejlsberg。 https://t.co/a6a7S2QuTU」 / Twitter
- TypeScript/checker.ts at main · microsoft/TypeScript
- naoyaさんはTwitterを使っています: 「がんばりまーす。先日の TypeScript でのバックエンド開発の話を、今回は時間が40分あるのでもう少し詳細に説明する予定です。 CQRS、もう少し複雑なドメインロジックをどうするか、モジュール化の方針、高階関数による DI、Repository パターンなど」 / Twitter
- TypeScript 4.7と型レベルプログラミング - Speaker Deck
- がくぞさんはTwitterを使っています 「Tagged Type だ。型で制約を表現しようとするとやっぱりNominalの方が有利なのだろうか? 確かに構造は同じだけど意味を変えたい型というのは存在するよなー https://t.co/3yvtHK7JVN」 / Twitter
- コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2 - Speaker Deck
- union types - Google 検索
Elm
Elm
- Naoya ItoさんはTwitterを使っています: 「elm を今更ながら少し書いてみたんだけど、意外にも、最近悶々と考えていたサーバーサイドどう書くか、というののインスピレーションをたくさん得た」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「elm アーキテクチャの、副作用のあるものはランタイムに任せて、モデルは update 関数による状態遷移で記述する、というのが、サーバーにそのまま当てはめられると思っていて GraphQL や Repository などの外界との接点がランタイム、その中間にモデルの状態遷移層があると捉える」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「カプセル化とかテストしやすさとかそういうことに囚われすぎてたのを、そういうところはいったん削ぎ落としてアプリケーション全体をどう捉えるか、と考えるのにちょうどよかった」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「型の周辺に補助関数を集めよう、安易にファイル分割するなとかその辺のポリシーも良かった」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「フロントエンドと、サーバサイドの根底のアーキテクチャをある程度揃えて考える、というのの一歩先に進めた気がする」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「F# DDD 本にも、オニオンアーキテクチャを責務分離の観点ではなくて副作用のある IO 層と、純粋関数の層を分離する目的でとらえるというのが書いてて、最近はそっちの文脈でレイヤリングを考える方が良いかもなと思っています」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「@objectxplosive ちなみにこの本の実装は、最近話題のドメインプリミティブに見えるのでその辺は少し引き算しながら読んでます」 / Twitter
- にせんねん灸さんはTwitterを使っています: 「@naoya_ito 1972年の『構造化プログラミング』にもそう書いてあります。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「サーバーは基本的にいちトランザクションで、いち集約を更新することが多いので、そういう意味でも集約の型の周りに補助関数を集めて、集約の更新を関数による状態遷移の写像とらててモデル化して、外界とのやりとりをランタイム (GraphQL や Repository) に任せる、と言うふうに組み上げると良さそう」 / Twitter
- Elm で作る TaPL のラムダ計算(その1)
- なぜElmは0.19のままか、変化すること/しないこと - Runner in the High
- モジュールの構造化 · An Introduction to Elm
- Idein Ideas — Elm で快適なフロントエンド開発
- ElmでつくるSVGエディタ - Speaker Deck
- プロダクションでの10万行以上のElmコード: 楽天が学んだ教訓を共有
- ElmアーキテクチャでGUIプログラミング - Slidev
- tottoさんはTwitterを使っています 「GUIのやつの資料になります https://t.co/bQsqYiNnpJ #func_party」 / Twitter
- ElmでVisual Study!! - Google スライド
Haskell
Haskell
Haskell
GADTs
- Haskellの代数的データ型とGADTs - Qiita
- 一般化された代数的データ型 (GADT)|Haskellでの型レベルプログラミング
- [PFDS写経]GADTs拡張で型コンストラクタに制約をつける | DevelopersIO
- 01. GADTs - とりあえず雑記帳
- GADTs使ってみた - Faith and Brave - C++で遊ぼう
- Haskell/GADT - Wikibooks, open books for an open world
- GADTs - mrsekut-p
- Haskell - 6.4.8.一般化された代数的データ型(GADTs) - 一般化された代数データ型(GADT)の使用を許可します。 一般化された代数データ型は、コンストラクタがより豊富な戻り値型を持つことを可能にすることで、通常の代数 - 日本語
- Generalized algebraic data type - Wikipedia
- GADTs for dummies - HaskellWiki
Lens
- Lensとは - Qiita
- Lensの仕組みがわかった - Qiita
- lens: Lenses, Folds and Traversals
- haskellのlensの使い方 (基本) - うさぎ小屋
- Lensことはじめ - あどけない話
- Lensで行こう! - Just $ A sandbox
- Lenses
- Ekmett勉強会発表資料
- Lens memo. Control.Lensについてのメモ | by Shuji Narazaki | text-is-saved | Medium
- Hiroyuki Miyoshiさんのツイート: "Haskellが圏論をベースにして作られたプログラミング言語であるという誤解があるようですが,次の論文にあるように歴史的にはそうとは言えません。 P. Hudak, J. Hughes, S. Peyton Jones, P. Wadler, A History of Haskell: Being Lazy With Class (2007) https://t.co/MSHszYxSO4"
- history.pdf
- Hiroyuki Miyoshiさんのツイート: "1980年代末頃,lazyな強い型付き関数型プログラミング言語が乱立して議論しづらいので一つ共通の仕様を決めようという動きがありHaskellが策定されました。当時のlazyのコミュニティでは言語全体の意味論には一部を除きあまり強い関心がなく,基本的には代数的意味論を採っていたと思います。"
- Hiroyuki Miyoshiさんのツイート: "それとは独立に,1989年にMoggiが副作用を含む言語の表示的意味論をきれいに扱うのに,圏論のモナドが使えるに気づき計算モナドの概念を提唱しました(LICS'89)。Moggiは説明する言語としてはeagerなML系言語を用いていました。"
- Hiroyuki Miyoshiさんのツイート: "Haskellの初期の仕様ではI/Oは遅延リストを用いていましたが,P. Wadlerらを中心に計算モナドを使う方がいいという意見が強くなり,Haskell1.3 (1996)で正式仕様として採用されました。Haskellに圏論を強く結びつけて言及されるようになったのはそれ以後です。"
- Hiroyuki Miyoshiさんのツイート: "ついでにいうと,圏論を起源に持つという意味ではむしろCaml系言語の方が直接的起源を持っています。P.-L. Curienらにより1985年に提唱された圏論を抽象機械として使うCategorical Abstract Machine (CAM)というアイデアがあり,https://t.co/HU5JDPjcCb それに基づき実装したのがCAML言語です。"
- Hiroyuki Miyoshiさんのツイート: "ただ,当然ながら実行効率が良くはなく,今でもOCamlの実装を担っているX. Leroyが,言語はおおむねそのままに実装をZincというシステムに設計し直したのが今のOCamlの直接の元になっています。"
- nisizakiさんのツイート: "(・∀・)つ Chairty、Hagino's categorical programming language https://t.co/eIJiqJ8gSj… "
- Charity (programming language) - Wikipedia
- Hiroyuki Miyoshiさんのツイート: "ええと,Cockett & FukushimaのCharity言語は知っていますがどういう文脈で持ち出されたのでしょうか(困惑)。圏論をベースにしたプログラミング言語の例ということでしょうか? まあ萩野先生のCPLは圏論的な帰納的&余帰納的データ型を備えた最初の実装された言語なので言及すべきかもしれません。… https://t.co/qeFOUkN1SI"
- nisizakiさんのツイート: "単に、圏論を(なんらかの意味で)ベースにしたプログラミング言語ということです。おさわがせいたしました。(そういえば、学生さんに「OCamlのCはcategoryのCだよ」と以前話したら (´・ω`・)エッ? という顔をされてしまいました)… "
- Hiroyuki Miyoshiさんのツイート: "了解です。まあCAMのことを知っているのは我々と同世代ぐらいまででしょうね。Curienはまだお元気なようですが。… "
- Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
- Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
- Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「なんでFree AlternativeのAltFとFree ApplicativeのApって別の型にしてるんだろう https://t.co/23GlhOvPG5 https://t.co/R8l5RezwqD」 / Twitter
- Control.Alternative.Free
- Control.Applicative.Free
- Koji MiyazatoさんはTwitterを使っています 「@igrep よく読んだら地味に違いますよこれ、AltFは Ap :: f a -> Alt f (a -> b) -> AltF f b で、Alt f x は [AltF f x] のnewtypeです。左分配律 (x <|> y) <*> z = x <*> z <|> y <*> z は認めて、右分配律を認めないとこの形になるんだと思います。」 / Twitter
- そろそろ線形型をかじっておくか - lilyum ensemble
多相関数のデバッグ
- いろはす∈ますらばさんはTwitterを使っています 「「Haskellの関数は副作用がないからデバッグしやすい」っていう人がいるんだけど,どうやったらその境地に達せられるのかが分からない・・・ printfデバッグするのに関数のシグネチャいじらなきゃいけないとかマジで無理なんだが」 / Twitter
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debag.Trace.trace を使えばシグネチャーを変えずに print デバッグができます https://t.co/f2yFF9EqAv」 / Twitter
- Debug.Trace
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debug.Trace モジュールは base パッケージに入っているので追加パッケージのインストールなしに使えますよ👍」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの多相関数のprintfデバッグが辛い問題は最近出た https://t.co/bfQ3PWScgJ が一つの解決策にならないかな(まだ試してない)」 / Twitter
- recover-rtti: Recover run-time type information from the GHC heap
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell でのデバッグ手法あれこれ https://t.co/6kjw7gQ9XT の内容を改訂しようとしてるけどdebugパッケージが依存の関係でそのままだとGHC 8.10で動かないな。Hoedをgitリポジトリから引っ張ってくれば動きそう」 / Twitter
- Haskell でのデバッグ手法あれこれ | 雑記帳
- だめぽラボ@技術書典9さんはTwitterを使っています 「動いたのはいいけど、ローカル変数が見えなくなってる……」 / Twitter
- orkronさんはTwitterを使っています 「Haskellアロー記法の図はストリング図だった? 改めて見るとモノイド圏(デカルト圏)に見える。 https://t.co/dTQNRmGo2n https://t.co/eOAHg66wit」 / Twitter
- Arrow syntax
- orkronさんはTwitterを使っています 「以前に見かけたときは良く分からなかったけど、 今ならこれらの記事の意味が理解できそうだ。 https://t.co/1fgte423nr」 / Twitter
- Haskell カテゴリーの記事一覧 - PS
- みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)🎯さんはTwitterを使っています 「Haskellちゃんは強い静的型付けとか純粋な関数とかでがんばった努力をガバガバな例外処理が全部台無しにするところが好き(きらい)」 / Twitter
- lotzさんはTwitterを使っています 「2021年こそ Haskell を始めてみようという人! 日本語のチュートリアルがたくさん集まっている便利なWebサイトがありますよー https://t.co/iPWK35wR5b でも環境構築が面倒くさいーという人! このリンクを開けばオンラインのREPLですぐに書き始めることができますよー https://t.co/M7EX5Nmisu」 / Twitter
- Haskell入門 | haskell
- Repl.it - Haskell Online Compiler & Interpreter
- lotzさんはTwitterを使っています 「型推論、型クラス、Lens組み合わせると最強で、ただのJSON文字列に対してまるでちゃんとしたデータ構造かのように(実際中ではそう)アクセスできるし、ネストしててもJSON文字列のまま中身を更新したりできる #Haskell https://t.co/PfXkFj7yYO」 / Twitter
- lotzさんはTwitterを使っています 「https://t.co/yQsLnw0zM4」 / Twitter
- Lens.Micro.Aeson
- 電波猫さんはTwitterを使っています 「リスト型やオプション型のようなものが作れる言語の中で、モナド則が成り立たないと困る言語がHaskellくらいしか思い浮かばなくて、モナドってプログラミングに必要なんだろうかという思いは強くなる。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「副作用のある計算」を扱うのに専用の型(IO)が必要なのがHaskellくらいしかないからなあ」 / Twitter
- トデス子'\さんはTwitterを使っています 「モナドはエラー処理に役立つが、その用途には?で充分だったという説が出てきてしまった。」 / Twitter
- トデス子'\さんはTwitterを使っています 「さまざまな制御構造を汎用的に扱える単一の仕組み vs エラーと非同期処理だけあれば困らなくないっすか で後者を選ぶ言語が多い印象……」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)なんでモナドでいいのに、わざわざ汎用性を減らした?が必要なんですか?僕はいぶかしんだ・・・。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「エラー処理もモナドだったら、async/awaitもモナドのフレームワークで済んでたはずだ(知らんけど)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「うーん、でもまあ、なんか型の表現力が全然足らん気がするし、そういうのが満足にできるような型システムと、ライフタイムがちゃんとかみ合うのかどうかとか、だいぶ型システムのチャレンジングなチャレンジな気がしてきたな(´・_・`)・・・。」 / Twitter
- エヌユルさんはTwitterを使っています 「Monadが良い理由の一つとして 言語の標準ライブラリにあってみんなこれを使っているのでこれに対応すればMonadを実装してる型全てに対応出来るというのがあるので 「この言語でも工夫すればMonadが定義できてこのライブラリに実装が…」 とかは微妙 Scalaz Catsぐらい徹底的にやってるなら良さげ」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「Free MonadというかEffを多用した場合の知見として、DSL自体をかなり上手に設計しないと、あるいはInterpreter側に主要ロジックが寄ってしまうと、まずテスト用Interpreter作るの自体がダルいし、それでテストしても本当に効果的なテストになっているのかが謎、」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「という状態に陥る可能性があると思うのですが、同じような問題意識や、解決(改善)案を持っている人・・・🤔 まぁその問題があっても、べつに使う効果がないわけではないが、Interpreterを超柔軟に自由に切替可能は原理的にはそうなのだが、ん〜」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「この辺の問題意識はあって、Freerとか命令セットしか記述しないから解釈がマジで定まらないのはそれはそうなので、interpreterを適切にパラメータ化するしかテストする方法無いよなぁみたいな気持ちはある」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「これはinterpreterのテストになりそうだけど、DSLをテストすると言った時は何を確認したいんでしょうか(問題意識がズレてる可能性がある)」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「別にモナドは純粋関数型言語でなくてもメリットありますよ デザインパターンなんで」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「モナドはデザインパターンなのでまず便利だし、デザインパターン上の抽象(F[_]: Monad)を許すのでさらに便利」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「まぁ後者は言語によりそう 前者だけできる言語はいっぱいありそう」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「モナド、言語が厚くサポートしてるから便利なのであってそうでない言語に無理やりモナド持ち込んでも別に美味しくないって誰か言ってたね」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「Haskellヤクザが言ってた」 / Twitter
- らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp そういえば、 C#にはクエリ式というのがあって、 微妙にモナドの恩恵を受けられたりする。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 あれはモナドと呼んで良いんだろうか、確かにモナド的な気もするが」 / Twitter
- らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp map=Select bind=SelectMany となるので、モナドを作ると自然とクエリ式も適用できてしまう。 クエリ式自体はモナドではない。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 >モナドを作ると 理解」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「いや、そんなこと全然ないと思っていて、ElmとかRustとかのパーサコンビネータ見た時に「monadic compositionできる関数無いかな 絶対あるやろ あったわ」を3秒くらいでできるのは普通にアドだと思っている」 / Twitter
- がくぞさんはTwitterを使っています 「具象モナドインスタンスが便利に使えることと、モナドをモナドとして抽象化して扱えることと、みんな違ってみんな良い」 / Twitter
- がくぞさんはTwitterを使っています 「みんな大好きtraverseもモナドまで要らないけどApplicativeをApplicativeとして抽象化して扱える必要があるからなー」 / Twitter
モダンな言語
- とりさんさんはTwitterを使っています 「TLの方々はnull安全言っとりますが,実はヌルポで例外が飛ぶのは割と良心的な挙動なんじゃないかと思うのです(null参照はありえないと仮定して最適化を施すコンパイラを見ながら」 / Twitter
- てくのたのしーさんはTwitterを使っています 「実用に耐えられるぐらいライブラリが成熟してる&ユーザがいる言語の時点でhaskellぐらいしかないんだけど、haskellはモダンな言語な感じがしなくてなかなかつらい…」 / Twitter
- mod_poppoさんはTwitterを使っています 「「モダンな言語な感じ」ってどういうのだろう。個人的には ・型注釈が後置 ・型注釈が省略可能 ・実装の継承によるサブタイピングを持たない ・nullがない、あるとしても型レベルで区別される あたりを挙げたいけど」 / Twitter
- mod_poppoさんはTwitterを使っています 「俺が考えるモダンな言語の条件、「文字列型がUTF-8である」も追加で」 / Twitter
- らいパン粉さんはTwitterを使っています 「モダンな言語の条件は、Windowsで動くことと、環境構築が簡単なことと、無料のエディタが使いやすいことだよ」 / Twitter
- らいパン粉さんはTwitterを使っています 「あとコンパイルが遅くないこと」 / Twitter
- mod_poppoさんはTwitterを使っています 「モダンな言語はエラーメッセージが親切であってほしいしWebAssemblyを吐けてほしい」 / Twitter
- mod_poppoさんはTwitterを使っています 「並列処理が気軽に書けないプログラミング言語、キッツイな」 / Twitter
- mod_poppoさんはTwitterを使っています 「「モダンな言語」の要件に「並列処理がサクッと書ける」も追加だな https://t.co/opnJbRq54E」 / Twitter
- mod_poppoさんはTwitterを使っています 「モダンな言語の要件に「パーサーを作りやすい」も追加しよう(Standard MLを睨みながら)」 / Twitter
- mod_poppoさんはTwitterを使っています 「Standard MLのandalso/orelse/handle周りをちゃんとパースするのが大変すぎる。andalso/orelseは二項演算子に準じるパース方法にしてほしかったし、handleには先行するトークン(tryみたいな)が欲しかった」 / Twitter
- ぐらふぃさんはTwitterを使っています 「モダンな言語にはまともなマクロがほしい」 / Twitter
- びしょ〜じょさんはTwitterを使っています 「モダンな言語はデファクトスタンダードな処理系にパッケージマネージャやビルドツールが統合されている」 / Twitter
- 三木里秀予@楽器ちょっとお休みさんはTwitterを使っています 「- コンパイラ(もしくはインタプリタ)が吐くエラーの文言の可読性が高い - フォーマッタが付属している。可能ならLSPサーバも が追加で欲しい>RT」 / Twitter
- びしょ〜じょさんはTwitterを使っています 「言語のモダニティというのは、多分モダンな周辺環境に合うというのが求められるんで、真面目に考えると FFI で既存の資産を拾いやすいとか LSP が用意されてるとか、CI やコンテナに乗せるための実行環境を作りやすいとかかも。」 / Twitter
- てくのたのしーさんはTwitterを使っています 「haskellに足りないモダンな感じ、なんだろう。モダンな感じとは違うかもしれないけど - 効率の良いutf8文字列がデフォルト - デフォルトで先行評価 - rustのanyhowやgolangみたいな簡素で統一的なエラーハンドリング方法が選択肢にある - 例外が無い( =値によるエラーかpanicの2択 )」 / Twitter
- てくのたのしーさんはTwitterを使っています 「簡素なエラーハンドリング、exceptionsでできたりする? https://t.co/QaObjy0FGk」 / Twitter
- exceptions: Extensible optionally-pure exceptions
- Miura HidekiさんはTwitterを使っています 「こんな仕様、何が嬉しいの?って多くの人が思うような言語がモダンな言語というイメージ。出始めのころのオブジェクト指向言語とかバッカスがACMチューリング賞記念講演で講演したころの関数型言語とか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「この観点でもやっぱり、Rustは頭おかしい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「FPと同等くらい尖っているけど、一気に支持を得たな。不思議」 / Twitter
- Miura HidekiさんはTwitterを使っています 「それくらいみんなGCが嫌いなのか。悲しいなー」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 RustでGC書けば問題なし」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 なるほど」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 静的型検査と同じで、強力で高い効果があるものは大体、嫌われるような気がします。ああ、破壊的代入、ってのも強力で効果が高くて嫌われてるなあ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda なるほど、強力な機能ほど嫌われる、その発想は無かったですけどうなづけます。例えば、継続・マクロ。Lisp系の言語やFORTHがずっとマイナーなのも説明がつきますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「「強力で高い効果があるものは大体、嫌われる」これが正しいと、プログラミング言語は1つに収束する気もするけど、そうじゃない所を見るとダークエネルギーみたいな要素があるのだろうな。ひょっとすると好奇心なのかもしれない」 / Twitter
- zickさんはTwitterを使っています 「Cは冗談として、型注釈が後置な言語は昔から結構あった気がする。今になって増えてきたのは省略可能な文法が作りやすいから?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「みんな大好きPL/Iが型注釈が後置だな。さすがIBMや https://t.co/Tp0xqYUTXc」 / Twitter
- PL/I - Wikipedia
- mod_poppoさんはTwitterを使っています 「みんな大好きBASICも型注釈は後置だった気がするな」 / Twitter
- 日比野 啓 (Kei Hibino)さんはTwitterを使っています 「継承が嫌われるの、部分型付けとセットになっていることがよくあるからじゃないかな。 列多相があっても部分型付けにはせずに、パラメータ多相にする方法はあるという理解。」 / Twitter
- 日比野 啓 (Kei Hibino)さんはTwitterを使っています 「部分型付けで失なわれる制約が実プログラムに問題を起こすかどうかをプログラマが常に注意しなければならない。 そもそも部分型付けを利用しなければ、その部分については考えなくてよい。」 / Twitter
関数型・論理型プログラミング言語
- Kenji RikitakeさんはTwitterを使っています 「関数型スノビズムは勘弁してほしい」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@jj1bdx もし差し支えなければ「関数型スノビズム」の言わんとすることをご教示いただければ幸いです。スノビズムはsnobbismだと思うのですが。」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@zacky1972 副作用なしでプログラミングができるとか(笑) すべてS式でいいとか(笑) 現実の問題解決を無視した主張が結構見られるんですよねえ。 ICFPにも行ったしCUFP付属ワークショップの企画もしてますけど、自分が関数型万歳と言わないのは、こういったスノビズムに与したくないからです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@jj1bdx 理解しました。私と似た立場なのですね。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「どうかな…少なくとも自分が直接知る Haskell ユーザで「実用性ではなく数学的な美しさを求め」ている人間は見たことがないし、モナドだの圏論だの特別視してるのはむしろ実際には書かない人な気がする。専門用語で会話する医者を見て「彼らは治療ではなくドイツ語を求めている」とはならんでしょう?」 / Twitter
- CubbitさんはTwitterを使っています 「>関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています ちなみに、その当人の私は純粋関数型言語であるElmを現実の受託開発のプロダクトで使い、一般向けのウェブサービスとしてリリースし現在も運用してますので、ご理解をよろしくお願い奉り候」 / Twitter
- CubbitさんはTwitterを使っています 「また、数学的な美しさでは当然Haskellのほうが上なんですが、サーバーサイドはGCPのCloud Functionで運用しているっていうクソ実用上の理由で数学的美しさを諦めてTypeScriptで書いてますし、最近はメンバーのスキルの標準化という実用的な理由でReactを多用してます」 / Twitter
- 山本和彦さんはTwitterを使っています 「「プログラミング言語Xは実用的でない」という発言は、「数学は役に立たない」という発言と同じで、「君が役に立てられないだけでは?」という印象を与えがち。 実用に関する発言は、自分の品位を落とすことにつながることを理解すべき。」 / Twitter
- 山本和彦さんはTwitterを使っています 「僕は、新しいトランスポートプロトコルであるQUICをHaskellで書いています。 副作用の有無が型で区別できるし、軽量スレッドもあるし、STMもあるからです。 これらの機能がない言語は実用的でないと言われたら、困りませんかね?」 / Twitter
- 山本和彦さんはTwitterを使っています 「QUICの実装リストには、どの言語で実装されたか書かれれてますが、この一覧にあなたの言語が含まれていなければ、実用的じゃないんですよ、って言われたら嫌な気持ちになりませんか?」 / Twitter
- 純粋関数型プログラミングと純粋関数型プログラミング言語に関する意見まとめ - Togetter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ところで、私はそんなに関数型勢ではないです。しいて言うなら、オブジェクト指向&関数型プログラミング勢ですが、それとは独立に純粋関数型プログラミングとそれを後押しする言語のメリットは認める(ただし、自分の趣味ではない)という立ち位置です。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「派生して「良いプログラミング言語のマーケティングとは何か」という話題も考えている。過去の私の失敗も踏まえて。 特に、「事実としての正しさ」へのこだわりを前面に出す議論は、関数型勢とかアカデミア系の人はやりがちだけど、これは「こわい」とプログラマにすらとられがちなのかなと思う。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「自分の推しとかそういう観点とは独立に、相手の主張の意図を理解する姿勢というのは必要だと思う。 推せないけど、言いたいことはわかるしある程度同意するみたいな。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Scala Days 2013辺りだったかな、Odersky先生のkeynote speachで 「関数型プログラミングってなんか小難しい印象与えがちなので、そっち前面に出すのってややこしくないですかね」みたいな質問をしたのを思い出した。 Odersky先生は「それでも重要だ」という回答だった記憶ですが。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「型名がIO[A]でなくProgram[A]だったら妙な誤解生まれなかったのでは。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「「関数型プログラミング言語」を業務で使わないとしても、それ由来の機能はメインストリームの言語にたっぷり入ってますし、高階関数のmap/reduce(fold)/filter/... とかも色々な言語でふつーに使われてるので、キャッチアップしないで済ませられる時代はもう過ぎてる気がする。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、別に関数型プログラミングはなんか高尚なことでもなくて、手続き型プログラム方面からでも、保守性を高めて行こうとした時に割と自然に出て来るものでしかないと思うし、断絶があるとするのは誤解だと感じる。」 / Twitter
- imuno@シリコンバレー5年目さんはTwitterを使っています 「@kmizu ああ、こういうときはこう書くのか〜、という思い着く思いつかないの壁はあると思います。勉強する、しないの壁や、それに由来する知識の壁は置いとくとしても。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「「パラダイムシフトが必要だ」勢がこの辺の問題ややこしくしてるんじゃないかなあと。 Effective Javaの時代から不変データが重要だとか既に言われてた事で、それの延長と考えればふつー、ふつー。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「「学術的な正確さがないと相手にされない」という気持ちは,理解できます。それは関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています。それが特性なんだろうなというのが,私の正直かつ残念な気持ちです。(炎上するかも)」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「こういった事情で,私はElixirを「関数型プログラミング言語です」という紹介の仕方をしたくない気持ちなのです。」 / Twitter
- 帰国RTAさんはTwitterを使っています 「@cactaceae なるほど、結局一番最初の方のツイートは、「ただ単に純粋関数を使ってMonadicなプログラミングをしたところで、ドメインモデルなどがopaqueなデータ構造(e.g. (IO a))に埋もれてしまっては結局テスト可能性が損なわれるので、純粋関数は銀の弾丸ではない」程度の意図と読み替えて大丈夫でしょうか?」 / Twitter
- r.ishibashiさんはTwitterを使っています 「@kmizu Cubbitさんは学術上は正しいけれど、僕の提示している課題感を全く理解していないんですが、関数型プログラミングを利用するユーザーが実務上の有効性を議論する時、学術上の正確さがないと相手にすらされないと?」 / Twitter
- Naoki Fukuta(福田直樹)さんはTwitterを使っています 「とりあえず自身があっち系でなく論理型プログラミング系でよかったのです…と思えるTLが流れてきたのです🥺」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@fukutax 私から見ると,論理型プログラミング系も,関数型プログラミングとある意味似たノリのように思えます。。。」 / Twitter
- mod_poppoさんはTwitterを使っています 「純粋関数と純粋関数型言語メモ 続き - Togetter https://t.co/jkp0ecie6f. ScalaのZIOとHaskellのIO型で違いがあるとしたらZIO型は「副作用のある関数」として説明されるのに対してHaskellのIO型は「現実世界を受け取って(更新された)現実世界を返す純粋な関数」として説明されるのが違いかな、」 / Twitter
- 純粋関数と純粋関数型言語メモ 続き - Togetter
- mod_poppoさんはTwitterを使っています 「と思った。まあ電子計算機上に現実世界が入ってるわけでもないしこのIO型の説明は子供騙しもといコンパイラー騙しでしかないわけだが。」 / Twitter
- mod_poppoさんはTwitterを使っています 「「HaskellのIO型はopaqueなデータ型で、『現実世界を受け取って〜』はGHCにおける内部実装に過ぎないので、説明としては良くないかもしれない」という気持ちと「HaskellのIO型といえどどこまで行っても(殻を剥いても)純粋関数なんですよ〜〜Haskellの特徴が出ていますね〜〜」という気持ちがある」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@cubbit2 現実的には不純な関数を使いたいこともある(のと遅延純粋関数型言語だと、色々つかいづらい)ってのが個人的理由だったり(拒む程の強い理由ないですが、strict Haskellがデファクトスタンダードならもっと使いたいです)。」 / Twitter
- CubbitさんはTwitterを使っています 「@kmizu そうですね 私も遅延評価が苦手で、それが理由でHaskellよりも正格なPureScriptやElmのほうが好みですね そっちはそっちでぜんぜんメジャーでないゆえの使いづらさがあるのですが……」 / Twitter
- mod_poppoさんはTwitterを使っています 「この辺の「遅延評価が苦手」感がいまいちわからないのだが、 ・計算量がわかりづらくなる ・unsafePerformIOのようなescape hatchが使いづらくなる のどちらが理由として大きいのだろう?それとももっと別の理由?」 / Twitter
- mod_poppoさんはTwitterを使っています 「まとめ主の挙動で一つ俺にとって意味不明なのはRedditにスレを立てに行ったことで、Redditの投稿には十分な文脈を載せていないのでTwitterの文脈からしたらピンボケな回答がついているように見える(まとめ主はそれで満足なのか?)」 / Twitter
- mod_poppoさんはTwitterを使っています 「純粋関数型言語というとどうしてもHaskellが槍玉に上がって遅延評価!モナド!IO型!みたいな抱き合わせになってしまいがちなので、PureScriptとかElmとかLazy Kとかの他の純粋関数型言語がもっと流行って欲しい」 / Twitter
- はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー)さんはTwitterを使っています 「Idrisとか、Cleanとかも。」 / Twitter
- m (IO t)さんはTwitterを使っています 「自分は、純粋関数の「純粋」はいわゆるレトロニムだと思っています。 関数といえば数学の関数のことだったのが、プログラミング言語ではそれがサブルーチンのことであると再定義されてしまった。なので純粋という語を付けて、これは本来の意味である「数学の関数」ですよ、と主張している。」 / Twitter
- r.ishibashiさんはTwitterを使っています 「まとめ 純粋関数の純粋とは「まじりけのないこと」 Haskellの純粋とは「そのことだけをいちずに行うこと。ひたむきなこと」 と言えると僕は思うんですがみなさんどうでしょう? https://t.co/o39wgHc1CE https://t.co/tx7l2CWqW3 https://t.co/9SIlyyClfz https://t.co/KcSHLAAABK」 / Twitter
- Haskellには副作用がないのか? - あどけない話
- 杉本啓さんはTwitterを使っています 「僕は、関数型とオブジェクト指向のどちらが優れているか論にはあまり興味ないです。両方を理解した上で、目の前の状況に合うよう工夫することが大事で、どちらか片方に振る論は、たいていウソだと思っています。」 / Twitter
- 杉本啓さんはTwitterを使っています 「だから、どんなアイデアでも、実際に適用するまでに、かなり長い下準備の時間を掛けます。それを惜しむと、どっちがいい論に陥いるし、それは思考停止だと思っています。」 / Twitter
- 杉本啓さんはTwitterを使っています 「〇〇は××だという論は、常に仮説です。ぼくらは、考えるのがメンドくさいから、毎日、それにしたがって生きていきますが、時にはそれを疑い、深く考えて、真実により近い新しい仮説に行き当たる方がいい。それも仮説、つまり嘘なんだけど。」 / Twitter
- mod_poppoさんはTwitterを使っています 「「GC付きのRustが欲しい」みたいな発言をする人、関数型言語を暗黙に除外しがち」 / Twitter
- wint 𝄆 Java Java エンジニアさんはTwitterを使っています 「不純関数型プログラミング」 / Twitter
- mod_poppoさんはTwitterを使っています 「「関数型プログラミング」と言った場合すでに「純粋関数を多用するプログラミング」くらいの意味合いになるので「純粋関数型プログラミング」という言い回しはあまりしなくないか」 / Twitter
- mod_poppoさんはTwitterを使っています 「不純関数型プログラミング、副作用を前提とした高階関数を使うプログラミングとかか…?(JavaScriptのArray.prototype.forEachみたいな)」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@mod_poppo 言われてみるとそこは確かに……。」 / Twitter
- 日比野 啓 (Kei Hibino)さんはTwitterを使っています 「某 ISP で、バックエンドで会員数十万人の接続認証をさばいているプログラムは Haskell 製です。Haskell 実用的ですよ。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「まあ言語なり手法なりに「実用的じゃない」という人の多くは単に視界が狭いだけなことが多いんだよな。例えば形式手法は実用的じゃないと言いながら、通勤ではスマホで改札を通っている人たちとか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「言語とか技術に対して実用的じゃないって言う人、200年前は計算機に実用的じゃないって言って居そう」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「言語としてデータを変更するプリミティブを持たないが、call/ccがある、というのはどうなるだろう。 既存のものとしてはUnlambdaがあるけどあれはesotericすぎてよくわからない。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@anohana call/ccとかまた微妙なところ突いて来られますね(^^; そもそもcall/ccは関数型プログラミングの世界でよく出て来るものの、ご存じのように本質的に副作用を持つので、関数型「ぽくない」て語りはよくあるように見えます。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@anohana と書いたところで、よく出て来る「例外は副作用である」の方がわかりやすいかもと思えてきました。で、例外は関数型プログラミング的でないとは言えそうだけど、不変データ指向(仮)的でないとは言いにくそうなので、考慮不足だったと認めないといけないなと感じました。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちょいと不謹慎かもですが、関数型プログラミングに不変データ指向プログラミングという別名つけた方が伝わりやすかったりしないだろうか(冗談ですけど)」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu LISPみたいな,Immutableでない関数型プログラミング言語はありますけど,そうでないImmutable指向な関数型プログラミング言語に適切な名前をつけたいと言うのはとてもよく理解できます。」 / Twitter
- ruimoさんはTwitterを使っています 「@kmizu これ、とてもモヤモヤしているんですが、イコールなんですかね。JavaScriptなんかは関数がfirst citizenですけど、全然immutable指向じゃないので。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「不変データ指向だと、アクターモデルとかProlog(assertとかそういうのは除く)も含まれそうなので、主張がぼやける気がする。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 なるほど、いろんなパラダイムも、意外と地続きになっていそうですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 データ不変ってのは色々なパラダイムでありがちな話だから関数型言語の代名詞にするのはちょっとおこがましいのでは?って思いました。」 / Twitter
モナド
モナド・高階関数・LINQ
- たーぼぉ@ひろうこんぱいるえらーさんはTwitterを使っています 「C#でいうLINQかしら?そっちが推される時代がきたか」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「話は変わりますが、ファウラーのリファクタリング第二版では、コードの不吉な匂いに「ループ」があって、パイプラインによるループの置き換えがリファクタリングにある(p.240より)辺り、時代は変わったなあと。 要は高階関数を使うのがふつーになったってことですが。 https://t.co/TEqN7jTz8V」 / Twitter
遅延評価
- 遅延評価とは何か - Qiita
- 関数引数の遅延評価 - プログラミング言語 D (日本語訳)
- Scala 関数引数の遅延評価 - 追憶行
- 遅延評価 - Wikipedia
- 第5回 遅延評価 - 05.pdf
- お気楽 Haskell プログラミング入門
- お気楽C#プログラミング超入門
- カリー化、遅延評価などScalaの文法総まとめ&今後:スケーラブルで関数型でオブジェクト指向なScala入門(11)(2/3 ページ) - @IT
- いろいろな引数渡しの方式 — 値呼び・参照呼び・名前呼び・必要呼び
- Fiberを使った遅延評価の例。 Lazyな変数xを引数に取って使用するメソッドの評価も遅延させる。 最後の Lazy.run をコメントアウトすると、x, foo, bar いずれも評価されない
- Shinji KonoさんはTwitterを使っています 「@kmizu @nishio 遅延評価がないと悲惨な気がするんですが」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@shinji_kono @nishio リスト(ないしシーケンス)のサイズが馬鹿でかくなければ案外なんとかなるものですよ。 むしろ遅延評価を下手にするとリストが小さい場合にオーバーヘッドになることもあるような?」 / Twitter
- メモリ使用量の削減のために遅延リストを使うのは(多くの場合)アンチパターン - kmizuの日記
- ∃ugene 🥙yokot∀さんはTwitterを使っています 「@kmizu @xuwei_k モナドのマーケティングで上手なのは Microsoft だと思います。統合言語クエリ (LINQ) SelectMany も一応ありますが、from句 2つでモナドになります。for 内包表記とやってることは一緒なんですが地味に for に埋もれさせずに from, where, select と SQL にしたのが妙手 https://t.co/YXDd45wean」 / Twitter
- Chapter16 LINQとメソッド構文(9/15) - @IT
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@eed3si9n_ja @xuwei_k 確かに実質モナドだけど、統合言語クエリという馴染みやすい形にしたのは凄いですね。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「いわゆる関数型プログラミング言語勢のマーケティングが(もし本気なら)良くないのは、説明の方向が抽象概念の説明が続きがちなところかなとよく思う。 優れた言語機能があったとして、具体的なアプリケーションに関するモチベーションを最初に出さないと理解しづらい人がたぶん多数派だろうし。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「この辺はFP in Scala日本語版とか見ても感じるんですが、「確かにその訓練は重要なんだけど、もうちょい具体的にアプリケーションプログラマにとっての御利益にフォーカスした方が……」と感じた記憶が。」 / Twitter
- ruimoさんはTwitterを使っています 「@kmizu それは強く思いますね。コップ本だったか忘れましたが「ほらmonadになってるでしょ、ドヤ」みたいな書きぶりで、読んだ時は、でそのモナドって何がウマいの? って感じだったので。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「高階関数は使えるなら使った方がいいというのが基本ポジですが、最近思うのは、「人間にとってわかりやすい高階関数」と「人間にとってわかりにくい高階関数」があるので、そこを分類できると面白いかもしれない。 map, filter辺りは「わかりやすい高階関数」に見えるけど ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「foldLeft/foldRightは「よりわかりにくい高階関数」かもしれない。forallとかexistsは個人的にはわかりやすいけど、これは量化子を扱うのに慣れてるからであって、そういう訓練なければかえって辛いこともあるかも。」 / Twitter
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「map、filter、reduce関数あたりを知ってからfor文やif文を直接使うことがあまりなくなったんだが、このままfor文if文使わないマンになるべきだろうか。 map関数とか行が長くなりがちで使いすぎも良くないんじゃないかと思ったりしてる。」 / Twitter
モナド
- naoyaさんはTwitterを使っています: 「モナドを理解するのにはじめは Maybe モナドとかリストモナドとか実用例から考える。徐々にモナドは文脈計算の分岐なんだとかその構造に理解が進んでいくけれども、いつしかモナドは「モナド則を満たす構造のことである」という抽象的で(初見では意味不明) な視点で捉えるのが良いことに気づく」 / Twitter
- naoyaさんはTwitterを使っています: 「群や環のような代数的構造を理解するのに、はじめは整数集合の群とかそういうものをベースに理解していくが、やがて群は「群の定義を満たすもの」と抽象的に理解することになるのと同じ」 / Twitter
- naoyaさんはTwitterを使っています: 「対象物そのものが重要なのではなく、その対象の間に成り立つ演算や抽象構造を抜き出す、それが抽象化でありファンクタ、アプリカティブ、モナドはその抽象構造そのものなのだから、それを真に捉えるには抽象構造そのままで捉えるしかない」 / Twitter
- naoyaさんはTwitterを使っています: 「まあプログラミングの観点でいえば、モナドの本懐はやはりバインド関数の分岐であり、そのシンタックスシュガーである do 記法がその有用性を高めているということにはなるんだろうけどもあくまでそれは実用的な側面かなと」 / Twitter
- naoyaさんはTwitterを使っています: 「モナド則をみたす構造であれば、その他のモナドに適用できる性質はすべて、同型のその構造にも適用できる、というところが本来モナドとして整理したかった部分かなあと」 / Twitter
- naoyaさんはTwitterを使っています: 「これって何の役に立つんですか? という視点をいったん取り下げないと、なかなかそういう視座には立てず、実装ばかりやっているとそういう視点を捨てるのが難しい」 / Twitter
- naoyaさんはTwitterを使っています: 「現時点ではこんな感じの理解。勉強が進めばまた違うことを言い出すかもしれない」 / Twitter
- acple_さんはTwitterを使っています 「Haskell には `IO a` という「開けると副作用が飛び出す箱」を表すデータ型が存在するので、Haskell は副作用を扱えると言える。それと同時に、Haskell にはコード上で `IO a` という箱を開ける手段が存在しない (※) ので、Haskell は常に純粋であると言える。」 / Twitter
- acple_さんはTwitterを使っています 「モナドと副作用は関係がなくて、ただ `IO a` というデータ型が存在しているだけで「副作用は扱える」と言える。ただし、`IO a` を開けることはできないので、その副作用を何にも活用することができない。これを「箱を開けないまま箱の中に操作を書く」ことで副作用を操作できるようにしたのがモナド。」 / Twitter
- acple_さんはTwitterを使っています 「この、「箱の中に操作を突っ込んで、それ自体を新たな箱と見なす」のがプログラミングにおけるモナドのイメージになる。この考え方が様々なデータ型に対して同じように適用できるので、「モナド」と「副作用」を紐つけて考えるとかえって理解を妨げる。」 / Twitter
- acple_さんはTwitterを使っています 「プログラミング視点だとこうだけど、モナドそのものが何を表すのかに注目する場合、「モナドとは、何らかの引数を取って箱入りの値を返す関数 `* -> M *` をいくらでも合成して一つの `* -> M*` に押し潰すことができるという性質」と表現できる。モナドとはこの「性質」を指す用語である。」 / Twitter
- 時計⌚️屋さんはTwitterを使っています 「@acple この、`*_1 -> M*_2`の*_1と*_2が常に異なる型であると変に誤解してしまったことがあり(実際は*_1も*_2も完全に任意の型を取れる)、モナドの理解が数年単位で遅れた思い出」 / Twitter
- acple_さんはTwitterを使っています 「@10keiya3 こっちの表現はいかにも形式的なので、実際の具体例と紐付けて考えるのはわりと慣れてからでないとむずかしい……」 / Twitter
- acple_さんはTwitterを使っています 「厳密には、この合成可能性に加えて「関数がたくさんあったとして、どういう順番で合成しても結果は必ず一緒になる」ことと、「どこに合成しても合成前と同じものになる、中身が空っぽな関数が存在する」条件を加えたものがモナドである。この「条件」が「モナド則」と呼ばれている。」 / Twitter
- 杉本啓さんはTwitterを使っています 「また、IOモナドが話題になってるの? 昔書いた、サルでもわかるIOモナド三部作、挙げておきます(宣伝)。サルでもわかります。 https://t.co/0wAxn9bpAL」 / Twitter
- プログラミング.モナド カテゴリーの記事一覧 - Hot Heart, Cool Mind.
- サルでもわかるIOモナド①-副作用の除去 - Hot Heart, Cool Mind.
- サルでもわかるIOモナド②-逐次実行とモナドの登場 - Hot Heart, Cool Mind.
- サルでもわかるIOモナド③-アクションはモナドの夢を見るか - Hot Heart, Cool Mind.
- GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
- 非遅延純粋関数型IMO - Google スライド
- mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
- mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「IOモナドならぬProgramモナドを作ってみてます。 実際には、言い換えただけなんですが、やっぱこっちの方がイメージしやすいんではと。 #monadj https://t.co/m9tIPf7XV7」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Programモナド(という名のIOモナドの表現変えただけのもの)を途中ですがサクっと公開。 https://t.co/vMHEvm4htO 実用性は皆無ですが、仕組みみればいわゆるIOモナドが(Haskell等での実装はここまで非効率じゃないでしょうけど)たいしたことないのがわかるかなーと。 #monadj」 / Twitter
- kmizu/monadj: An IO Monad Library in Java
- Kota Mizushima (on a diet)さんはTwitterを使っています 「GitHubに上げてたのすっかり忘れてたんですが、IOモナド学習用に作った言語IMO、GitHubに上げてScalaで書き直してましたね…… https://t.co/nwcnzuQY2w https://t.co/ubnx90BXVq この辺がまさにかえってきたIO(Action)を「言語の外側で」実行してる様子ですね。」 / Twitter
- kmizu/imo: Statically Typed Pure Functinal Strict Language IMO
- imo/Evaluator.scala at master · kmizu/imo
- mod_poppoさんはTwitterを使っています 「FunctorやMonadを「二項演算」と主張している時点で圏論をかじってすらいないのが丸わかりなんだよな。Hom(a,b)→Hom(Fa,Fb)は二項演算ではないしMonadに関しては単位射を無視している」 / Twitter
- エヌユルさんはTwitterを使っています 「strong monadと言う概念を知れたのは唯一収穫なんだけど HaskellのMonadはstrong monadらしいしstrongじゃないモナドってどう言うのを指すの 演算で型が変わるとか?」 / Twitter
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@ncaq indexed monad とか線形型版モナドとかかな」 / Twitter
- エヌユルさんはTwitterを使っています 「@kakkun61 やっぱり型が変わるやつはstrongじゃないんですね」 / Twitter
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@ncaq 「Haskell のモナド」じゃない「モナドのようなもの」を挙げただけで、strong monad のちゃんとした定義知りません!テヘペロ」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「この、AlternativeなりMonoidなりApplicativeなりの各種型クラスの機能を使って組み立てていくの、あんまり明示的じゃなくて分かりづらい一方面白いくらいすっきりするな」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラスってやっぱReader Monadの代わりとして使うのがいいと思うんですよ。thisが常に同じ名前・同じ型で参照できるわけだし。ただ本当にReader Monadを使うあらゆる場面で使ってしまうと巨大なクラスになっちゃいそうだけど....」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そうかその理屈だとReaderTを返す関数はexntension methodみたいなものなのか。」 / Twitter
- ぴくすふぁんくさんはTwitterを使っています 「comonadのありがたみを理解するために、モナドがモノイドで嬉しいのと同様にcomonadがcomonoidで嬉しいってのをわかりたいんだけど、そもそもcomonoidがわからんよ」 / Twitter
- KoryさんはTwitterを使っています 「急にモナドのお気持ちを語りだすオタクをやるんですけど、「Readerモナドが関数と同じ 」というよりは、Readerモナドのような挙動をする計算モデル(環境から値が取れたり、環境に値を設定したうえでプログラムを実行できるようなモナド (Reader e -, join, pure))が先にまずあって、」 / Twitter
- KoryさんはTwitterを使っています 「それの実体化を考えると、まぁ(e -> -)だけで先の操作をすべて実装できるからただの(e -> -)をReaderということにしておこう、となるというだけだという気持ちがあります」 / Twitter
- KoryさんはTwitterを使っています 「s/設定したうえでプログラムを実行できるような/設定したうえで実行できるようなプログラムに対応する/g の方がいいかな」 / Twitter
型クラス テンプレート haskell c++
- c++ — C ++の概念はHaskell型クラスとどう違うのですか?
- C++20 の Concept は型クラス? - TypoTypoTypo
- 社内Haskellチュートリアルのススメ | エンジニアブログ | GREE Engineering
- C++で型クラスっぽいこと - Traits - わくわく技術ブログ
- w.l.o.g.
- コンセプト - cpprefjp C++日本語リファレンス
- ジェネリックプログラミング - Wikipedia
- Haskell - Wikipedia
- テンプレートの特殊化 | 闇夜のC++
- エヌユルさんはTwitterを使っています 「Monadと言うか型クラス全般に言えることだけどそのインスタンスであればわざわざ再実装せずに同じ関数を使えるのが違う所で便利なことかなあ 例えばjoinはIO (IO a)にもMaybe (Maybe a)にも自分が作ったオレオレ型にも使えて、その型チェックが静的に終わる」 / Twitter
- tompenguin🚀 @karabiner,inc(mochi)さんはTwitterを使っています 「モナドっていうのは単に関数の実行をモナドに移譲して安全に値を扱うことを保証してくれる仕組みっぽいな。なんでこんな簡単なことをそんなに難しく教えるんだ関数型の人は?!?!? わてならjQueryのコードとモナドのコード横に並べてこれと同じですって教えるな。。」 / Twitter
- エヌユルさんはTwitterを使っています 「いやまあ、まずモナドに実行を委譲ってのがIOとStateぐらいにしか成り立たないけどそれは理解したっぽいので指摘しない」 / Twitter
- tompenguin🚀 @karabiner,inc(mochi)さんはTwitterを使っています 「@ncaq ありがとうございます!それくらい抽象的な存在ということなんですかね??」 / Twitter
- エヌユルさんはTwitterを使っています 「@tompenguin_ そこまで抽象的なものではないですが抽象的に使えて便利という事もあります FunctorのfmapとMonadのjoinがあればMonadのbindは自動実装できる(実際のGHCは逆にfmapとbindでjoinを実装しているが)ことを捉えることで私は理解が深まりました 型クラスの習得をした方が楽かもしれません」 / Twitter
Effect System
- Effect system - Wikipedia
- monadからeffectへ - Just $ A sandbox
- 独習 Scalaz — エフェクトシステム
- 技術書典6に合同誌を出した; effect system勉強会をやった - lilyum ensemble
- HERP TechHub - Effect system
- effect system勉強会 - connpass
- hasura/eff: 🚧 a work in progress effect system for Haskell 🚧
制約
- びしょ〜じょさんはTwitterを使っています 「Haskell にて、"ある型クラスを実装していない"という型クラスの制約って書けるんか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellはorphan instanceを許しているので「型クラスのインスタンスではない」みたいなやつは原則として書けない、と思っているけどformalな説明は自分の手に余る」 / Twitter
- mod_poppoさんはTwitterを使っています 「前にHaskell-jp slackで見かけた、インスタンスの有無によって分岐できるやつ。 https://t.co/1EAUHMzPGC overlapping instanceを利用、手動でインスタンスの定義(あるいはTH)が必要。」 / Twitter
- mikeizbicki/ifcxt: constraint level if statements
- mod_poppoさんはTwitterを使っています 「型クラスではないけど、「二つの型が異なる」みたいな制約はclosed type familyを使うと書ける。」 / Twitter
Witherable
- Koji MiyazatoさんはTwitterを使っています 「Witherable( https://t.co/ktX6ESeCuG )は何者なのか?TraversableやFilterableとの関係は?連投します。」 / Twitter
- Witherable
- Koji MiyazatoさんはTwitterを使っています 「最近のマイブームであるところのストリング図を使います。私のブログで一度は説明をしましたので、あと私のなんかよりチャンとしている資料へのリンクもあるのでご参照ください。 https://t.co/3oIShMAkdo」 / Twitter
- 市川 真一さんはTwitterを使っています 「@viercc 404 になり、閲覧できないです」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「@tenpoku1000 申し訳ありません、ご指摘ありがとうございます。コピペミスしたみたいです。 https://t.co/qaZmRm6eJJ」 / Twitter
- Too lazy to evaluate - ストリング図でMonad再入門(1)
- Koji MiyazatoさんはTwitterを使っています 「まず、Haskellerはご存知でしょうTraversableの絵を描きます。都合上traverseではなくsequenceAで定義して、"sequenceA"の代わりにギリシャ文字"δ"を書きます。 https://t.co/Iga7cTRO1P」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「関手TのsequenceAは、任意のアプリカティブ関手FとTの合成T(F a)をとって、FとTを入れ替える演算ですね! その下の3つのTraversable則はなんとなくそれっぽさを感じてください。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「型クラスFilterableは、リストやMapに対して定義されていたfilter,mapMaybe,catMaybesを抽象化する型クラスです。 https://t.co/GDVKLPE2wW」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Identity則は「各要素xをJust xに置換え(fmap Just as :: T (Maybe a))てからcatMaybesしたら元に戻る」 Composition則は「T (Maybe (Maybe a))に対して2回catMaybesするのと、Maybeモナドのjoinを各要素に適用してから1回catMaybesするのは同じ」」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「とまぁ、リストのcatMaybes :: [Maybe a] -> [a]を考えたら妥当な感じの法則です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「また、Maybe自体もFilterableで、catMaybesはMaybeモナドのjoinと一致します。 https://t.co/uoGRUSLNVi」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「しかし!リストやMapのcatMaybesっぽくないものも、合法的なFilterableになれてしまいます。 https://t.co/yvH6sZt47S」 / Twitter
- StrangeFilterable.hs
- Koji MiyazatoさんはTwitterを使っています 「FilterableやcatMaybesという名前に反して、「連帯責任で複数の要素が取り除かれる」「もとは1つの要素を複数回使う」ことはちょっと奇妙ですね。 しかし、「要素の出現回数」といった概念をうまく法則化するのは、Filterableのメソッドだけでは記述が難しそうです。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「そこでTraversableの登場です。Traversable(とその親クラスのFoldable)は、「要素が同じように出現する」という概念を扱えます。例えば、length x = length y や for_ x (...) = for_ y (...)です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「FilterableかつTraversableな型Tについて、"catMaybesが要素を変にいじらない"という要請を法則にしてみます。 いい名前なのか自信が無いのですが、この法則には"Distributivity"という名前を付けることにします。 https://t.co/WNMkwSej9c」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Distributivityの意味を言葉で言うなら以下のようになります。 T (Maybe (F a))に対して、 1⃣「catMaybesでMaybeを除いてからsequenceAでアプリカティブFの作用を連結する」のと、 2⃣「sequenceAを2回使ってF (T (Maybe a))にしてからcatMaybesでMaybeを除く」のは等しい。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Witherableとは「Filterableのように要素を取り除く操作」と「Traversableのように各要素に副作用のあるmapをする操作」を組み合わせた型クラスです。 そして、Witherable則は ・Filterable則 ・Traversable則 ・Distributivity のすべてを合わせたものと✨同値✨です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「catMaybes、sequenceAそれぞれの性質とDistributivityをわざわざ全部記述するかわりに、WitherableのwitherメソッドとWitherable則だけで完結させられます。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「昨晩のツイートはその証明の図だけバババっと貼り付けたものでした。(連投終) https://t.co/1xcBRRnbXp」 / Twitter
blog
はてなブログ
- エヌユルさんはTwitterを使っています 「これ早く使いたいし、Haskellのフィールドセレクタを全部自動生成すると言うのはフィールドを遅延評価にするのと同じぐらいの初期設計の誤りだったんじゃないかと思い始めた / “新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド” https://t.co/xguPEGOYqw」 / Twitter
- 新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド
- 自動printfデバッグ - モナドとわたしとコモナド
- 型クラスと忘却・追憶構造 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Haskellにおける`%` - 備忘録やめた
- Haskellの非実用性 - falsandtruのメモ帳
- Haskellの差分リストはなんちゃって差分リストではないか? - falsandtruのメモ帳
- TaPLの3章を読み,4章をHaskellで - Explore cs in depth!
- System F をHaskellとPythonで実装した - yigarashi のブログ
- Maybe と IO を一緒に使いたくなったら - ryota-ka's blog
- IO モナドと副作用 - Haskell-jp
- data / newtype / type の使い方 - Haskell-jp
- Haskellにおける記号の調べ方 - Haskell-jp
- 文字列型を抽象化するのにはmono-traversableパッケージがいいかも - Haskell-jp
- GHCに初めてコントリビュートした/最近のGHC動向 | 雑記帳
- Android むけ Haskell コンパイラをリリースしました!
- HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
- レンズの圏論的考察 — Avendia
- Avendia
- とほほのHaskell入門 - とほほのWWW入門
- Haskell/Denotational semantics - Wikibooks
- Too lazy to evaluate - FilterableとWitherableについて
- 関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
- 続くといいな日記 – 文脈依存 PEG による Haskell パーサ
- 執筆中:「Haskellでの型レベルプログラミング」 | 雑記帳
- GHC 9.2 で導入されたQuick Look型推論アルゴリズムについて - 朝日ネット 技術者ブログ
infoQ
- モナドを理解する - 迷える者への手引き
- 新しいHaskellベースのWeb App Specification Languageがアルファ版でリリースされた
- Thrift for HaskellはRPCコードからバグを排除することを目的としている
- Haskell Web Framework IHPは、型安全と簡易なWeb開発を目指す
Zenn
- おすすめHaskellプロジェクト作成方法(ほぼ)2021年版
- HaskellでのTDDを楽しくするライブラリ methodを作りました。
- Type level mapを使ったpreload風関連リソースの取り回し。Indexed monad添え
- lotzさんはTwitterを使っています 「Indexed Monad 氏、最近では Parameterised Monad と呼ばれてるらしい。Parameterised Monad から Graded Monad を作るこの関係式は面白くて、実際のデータ型で便利に使えないかは気になってる https://t.co/AgDqPET1iN https://t.co/OzPALcLhJ2」 / Twitter
- [2001.10274] Unifying graded and parameterised monads
- lotzさんはTwitterを使っています 「@igrep どっちもモナドにパラメータがくっついたやつですよねw Graded モナドはパラメータにモノイダル圏が必要だったり、Indexed モナドはパラメータが2つ必要だったり微妙な違いがあるんですが、元のツイートに張った論文はこの2つの違いをより抽象的なモナドで吸収して統一しようというものなので(文字数 https://t.co/47rWuhw6k4」 / Twitter
- Haskellの最近の乱数生成事情について
- Haskellの森
- 「Haskellのモナド完全に理解した」試験問題
- Levelsモナドを使った幅優先探索の仕組み
- GHC 9.2の新機能と、GHCの動向2021
- GHC 8.10とGHC 9.0の新機能
- 仕事で使うHaskell
- Scala ユーザーがぬるっとHaskellに入信したのでHaskellのはじめかたについて書く
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「stackがGHC入れてくれるからstack使うならghcupは要らないですよ、って言おうと思ったけどghcupはhaskell language serverも入れてくれるんだよね。うーむ。 https://t.co/ecwU2n4ekO」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「両方使う場合、--system-ghcを有効にしておけばいいかな、と思ったけどghcupでインストールしてないバージョンのresolverを使ったときは結局stackがインストールしちゃうし...。 まぁ、問題は容量たくさん食ったり、どっちを実行してるか分かりづらくなる恐れがある、くらいか」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「stackがGHCのインストールにghcupを使うオプションを設ければ解決するんだろうか」 / Twitter
- 「アルゴ式」をHaskellで学ぶための準備
- 型安全で高速な連鎖行列積の計算
- mod_poppoさんはTwitterを使っています 「当然サンプルコードでGHC拡張を使いまくりなんだが、いちいち明記するべきだろうか。GHC 9.2以降だとGHC2021があるので個別に指定しなくても動いちゃったりする。あとGHC2021だとPolyKindsが有効なので適当に書いた幽霊型のカインドがGHC 9.0までと違ってたり」 / Twitter
- mod_poppoさんはTwitterを使っています 「「Haskellでの型レベルプログラミング」途中だけど公開した https://t.co/VlSCQGcUuh」 / Twitter
- Haskellでの型レベルプログラミング
- Haskellでちょっとしたスクリプトを書く
- GHC 9.4の新機能
- Haskellでちょっとしたスクリプトを書く
- Haskellの環境構築2023
- safe-exceptions の仕組みとその限界
- Haskell で、優先度付きキューを使ったダイクストラ法
- Haskell で Union-Find とクラスカルのアルゴリズム
Qiita
- Windows環境でのStackのアンインストール - Qiita
- Cats Effect の7つの型クラス - Qiita
- Freer Effectsが、だいたいわかった: 12 OpenUnionを型によって安全にする - Qiita
- モナド則がちょっと分かった? - Qiita
- Haskellの例外処理事情 - Qiita
- LLVM の Kaleidoscope を育てながら作る - Qiita
- GHCの型レベル自然数を理解する - Qiita
- 10年間使ってみて見えたHaskellの闇と光 - Qiita
- コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita
- 「タイプセーフプリキュア!」を支える技術 - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ここまでやるんなら個人的にはsubmoduleを使った方がおすすめだなぁ。 / 1件のコメント https://t.co/lFmvZFJWNJ “cabalでGitレポジトリから直接パッケージをインストールする際のダウンロード量を削減するためのworkaround - Qiita” https://t.co/wlH4KsYOkd」 / Twitter
- cabalでGitレポジトリから直接パッケージをインストールする際のダウンロード量を削減するためのworkaround - Qiita
- Haskell の Fixity Resolution を試してみる - Qiita
- Haskellでフィボナッチ数列 〜Haskellで非実用的なコードを書いて悦に入るのはやめろ〜 - Qiita
- mod_poppoさんはTwitterを使っています: 「米田の補題、Free theorem と病的な Haskell の関数 https://t.co/CgM8QGOKyT Type.ReflectionとData.Type.Equalityのやつを使うと pathological x = case testEquality (typeOf x) (typeOf False) of Just Refl -> not x; _ -> x みたいな感じにunsafe感が減りますね(本質ではない)」 / Twitter
- 米田の補題、Free theorem と病的な Haskell の関数 - Qiita
- Data.Sequence の両端における操作 - Qiita
- 美術の人が考える Haskell - Qiita
- はじめに - Qiita
Twitter
二次元 DP
- naoyaさんはTwitterを使っています: 「Haskell で二次元DPの問題を解く実装をしてたんだが、二次元DPというと、二次元配列を更新しつつ、更新したそばからその配列を参照して計算を進めていくので Mutable な Array を使うしかないかと思うところ、遅延評価があるので Immutable に計算できるという https://t.co/FOTrB2HdTK」 / Twitter
- naoyaさんはTwitterを使っています: 「Haskell の Array はインデックスにタプルが使えるので、実際には二次元を一次元の配列で扱える。Array の listArray で、リストを受け取って配列を更新していくときに配列そのものの値が確定するまえに、内部関数でその配列の値を参照できる。ので Immutable な Array で二次元 DP が実装できる」 / Twitter
- naoyaさんはTwitterを使っています: 「Unboxed Array を使うと正格評価になってしまうので、こうはいかないんだが Array なら遅延評価なので大丈夫と。 馴染みのあるアルゴリズムも Haskell で実装すると発見があってとても面白い」 / Twitter
- naoyaさんはTwitterを使っています: 「競技プログラミングの問題を解いていると遅延評価が邪魔になるときと、遅延評価がないとできないこととがあって一長一短だけど、遅延評価がないとできないそうにないことの一つしてこの DP の実装は強力」 / Twitter
histric
histric-1
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「@uint256_t わりと汎用的にやれています。内部で Python を Haskell に変換するので for 文がすべて foldl に変換され、それとは別で線形になってる lambda 項をすべて行列に変換し、そして foldl/matap -> matap/matpow のような変換規則で畳んでいます」 / Twitter
- mod_poppoさんはTwitterを使っています 「ぱっと見で変換のアルゴリズムを推測できないので魔法に見える(すごい)」 / Twitter
- mod_poppoさんはTwitterを使っています 「漸化式を組み立てて線形だったら行列の累乗に変換、みたいなやつかな」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellは古いコードが動かなくなりやすくて申し訳ないという気持ち」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskell、普通だったら新しい言語を設計するタイミングでしか入れないような新機能・変更を言語の看板を変えずに実装していってるような感じなので永久に安定しない」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばHaskellはstack(と、stackに影響されたcabal)のおかげでファイルが1個しかないようなスクリプトでもちゃんとパッケージやGHCのバージョンを指定できるしいいよな。」 / Twitter
- エヌユルさんはTwitterを使っています 「純粋関数で例外送出やキャッチってなんでやったらダメなんだろう Eitherとかを使うと実質例外じゃない? まあ純粋関数なら型で表せってのは正しい気もするが、別に例外があっても良い気がする」 / Twitter
- エヌユルさんはTwitterを使っています 「純粋関数と言うより遅延評価が例外という仕組みと相性が悪いのが良くないのかな 評価しないと例外は送出されないからキャッチを書いても無駄になることがある」 / Twitter
- マルチコア時代の最新並列並行技術 Haskellから見える世界 - 141126_2.pdf
- 松田信介@インスタントウィン開発中さんはTwitterを使っています 「関数型言語ってDBが絡んだアプリケーションでも副作用がない処理が書けるの?もしそうなら見てみたい気もするが・・・ OOPでも副作用がない書き方できるけどな」 / Twitter
- はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@xhackjp1 Haskellだと、DBアクセスをする関数は副作用がある扱いになって、返り値の型に「副作用が絡んだ」旨のフラグが付いてくるのだと思います。」 / Twitter
- 松田信介@インスタントウィン開発中さんはTwitterを使っています 「@excelspeedup ほー、なるほど。 「関数型言語だと副作用のない関数が書ける」ってそういうことですか。そういう意味ではOOP言語でも「書けます」が・・・?どういうことなんでしょうか」 / Twitter
- はけた@経理のExcel仕事術 発売中さんはTwitterを使っています 「@xhackjp1 副作用をユーザが書くプログラムの「外」に追いやっている、みたいなイメージのようですよ。 副作用を起こしているのは実行環境であって、プログラム自体には副作用はない、というような。 (細かいイメージは違うのかもしれません)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@xhackjp1 関数型言語、というよりHaskellの話ですが個人的な見解はこの記事のこの節にまとまっています。興味がわいたら手前の部分も読んでみてください。 https://t.co/9u1KMnxb3Z もうちょっと厳密で詳しい話は https://t.co/Hq8O2cti4h にあります。ただし、こちらはHaskellをある程度知っている人向け」 / Twitter
- HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
- IO モナドと副作用 - Haskell-jp
- CubbitさんはTwitterを使っています 「「副作用のある関数は返り値の型にフラグが付く」はIOモナドの砕けた解釈としてわかりやすいんですが、いったんHaskellやったあとじゃないと「じゃあやっぱり関数には副作用あるじゃん嘘じゃん」ってなってしまうので、入る前の説明としてはよくないと思ってます」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 別にそこ副作用ある、って理解で良くないっすか?結局のところ多くの場合その理解があろうとなかろうと使い勝手は変わらない、というのが私のこれまでの経験で得た結論です。」 / Twitter
- CubbitさんはTwitterを使っています 「@igrep 元の話は「関数型言語ってDBが絡んだアプリケーションでも副作用がない処理が書けるのか、もしそうなら見てみたい」っていう話なので、「従来の言語と変わらないですよ」という回答だと「同じなら別に見なくていいや」ってなりません? 私はぜひHaskellに触って欲しいので、違いを強調したいんですけど」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 「副作用のある関数は返り値の型にフラグが付く」でも十分同じではないと思います。」 / Twitter
- CubbitさんはTwitterを使っています 「@igrep どういう言い方だと興味を持つかは受け取る側の人次第だと思いますし、あとは多くの人に興味を持ってもらえるように、説明する側が各自で説明の仕方を選べばいいと、私は思います」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@cubbit2 でも仮に「副作用がない」という理解でHaskellやってもらえたとして、結局「副作用がない」ことの意味を理解するハードルってすごく高いし、理解したところで得られるメリットって衒学的なもの以外なくないっすか?理解できる前に「Haskellよくわからん」と敬遠されてしまうリスクも高いですし。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「純粋な関数だけでできてるってことを理解するよりも、その前提の一つ、IOが(動作を表す)ファーストクラスオブジェクトであることを理解することの重要だと思うんだよなぁ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「Haskellとはどこまでか」によってHaskellに副作用あるなしの結論が変わるのはその通りなんだけど、そもそも他のプログラミング言語じゃそんな議論まずしないし、普通のプログラマーから見たら十中八九「実行器まで含めてHaskell」でしょうが。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「IO Monadができる前、Haskell 1.0の頃みたいに、「外界とメッセージのリストをやりとりする関数」だった頃だったらまだ「評価器」と「実行器」を区別してた意味は分かるんですけどね。そのときのコードを見ると、確かに「評価器」に与えるコードを書いてる印象ですし(使ったことないけど)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「参考: https://t.co/1cZMLyhwtd」 / Twitter
- haskell-report-archive/haskell-report-1.0.pdf at master · joyofhaskell/haskell-report-archive
- mod_poppoさんはTwitterを使っています 「モナドと(末尾呼び出しの実装に使われる)トランポリン、なんか似ている気がする」 / Twitter
- mod_poppoさんはTwitterを使っています 「IOモナド:言語の外側にアクションを実行してくれる奴がいる トランポリン:コールチェインの外側に関数呼び出しを実行してくれる奴がいる」 / Twitter
histric-2
- スマートコンさんはTwitterを使っています 「「Monoid と Foldable から理解する Haskell」というシリーズの構想があり、構想だけがある(わりと本気」 / Twitter
- スマートコンさんはTwitterを使っています 「Semigroup / Monoid と Foldable / Traversable から入って、Applicative / Monad や Lens などを理解させていくという流れになる」 / Twitter
- 禁酒さんはTwitterを使っています 「遅延評価が関わってくると,何でもかんでも末尾再帰にすれば良いって訳じゃないのがアレ #HaskellDay」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「Promiseはthenが云々だからモナドではないという話を見ると、じゃあHaskellあたりのモナドはundefinedとか混ぜても耐えられるのかなという気持ちになる(?)」 / Twitter
- mod_poppoさんはTwitterを使っています 「undefinedが混ざっても耐えられるモナド、こういうことか? https://t.co/V2Jo19BFyb」 / Twitter
- がくぞさんはTwitterを使っています 「seq を使うと全てを破壊できるらしいですよ? https://t.co/lgdRS1Ti30」 / Twitter
- haskell - A simple example showing that IO doesn't satisfy the monad laws? - Stack Overflow
- lotzさんはTwitterを使っています 「私はHaskell×圏論の話題が好きでよく発信してる自覚はありますが、Haskellをやるために圏論が必要だとは1㍉も思ってないことをここに表明しておきます😌自分の周りにもHaskellを普通に書けるけど圏論は知らない人は何人もいます。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「cabalが発達した今、stackのことさえ考えなければ別に何も難しくなく ・ghcup: Rubyでいうところのrbenvとか ・cabal: Rubyでいうところのrubygems, bundler で一言で説明できるんだからやっぱもうstackあんま勧めたくないんだよなぁ... といって私自身が未だにstack使ってるんだよなぁ...」 / Twitter
- すとまとさんはTwitterを使っています 「@igrep Stack使わない方がいいんですか?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@stmtk_yu Yes and noですね... https://t.co/ghpyf4DomS に書いたとおりそれでもstackを使うメリットはあるんですが、一方で先ほどhaskell-jpにきた質問のように、stackがある故に分かりづらくしている、といった問題や、原則Stackageを使うことになるので新しいバージョンを試しづらいなどの問題もあります。」 / Twitter
- 最近のstackとcabalについて簡単に (1)
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@stmtk_yu 今このスライドに付け加えるなら、ghcupを使えばGHCどころかhaskell-language-serverのインストールも簡単にできる、って点ですね。まぁ、language serverについてはエディター側が入れてくることも多いので微妙かも知れませんが」 / Twitter
- mod_poppoさんはTwitterを使っています 「GHCで型の等価性を表す ~ が将来のGHC (9.4?) で普通の型演算子になり、PreludeとかData.Type.Equalityからインポートすることになる https://t.co/JhrHnzn0zl https://t.co/i5OmkW9xgU」 / Twitter
- ghc-proposals/0371-non-magical-eq.md at master · ghc-proposals/ghc-proposals
- てらモス♋️さんはTwitterを使っています 「Rustでproc-macroのデバッグ辛い問題はHaskellだとどうなってるんだろう(´・ω・`)」 / Twitter
- エヌユルさんはTwitterを使っています 「@termoshtt 割と成熟してきて適当にexpandするとかでなんとかはなる、辛いは辛いがまあマクロの辛さはみんな共通だし」 / Twitter
- ruichiさんはTwitterを使っています 「non-GADTsで線形性が伝播する様にしたのはcompatibilityの問題じゃないかな、tuple とか組み込みのデータ型も都度線形版が欲しくなるわけだけど、LinearTypesのために全部書き換えるわけにもいかないから、(恐らく)そういうルールにした(論文では線形型のtupleの例とかあった) #haskellday」 / Twitter
- GHCの動向2021+補遺.pdf - Google ドライブ
- ふみ a.k.a.DJ MonadさんはTwitterを使っています 「https://t.co/sYsODhDzpT GHCおよびHaskellの標準ライブラリにこれから起こるであろう破壊的変更をまとめた。保守はもちろん、新しくコードを書く際もこのリストを念頭に置くと後々が楽になるだろう」 / Twitter
- fumieval/Haskell-breaking-changes
- Andrew CowieさんはTwitterを使っています 「@fumieval @lotz84_ このリストは優れており、計画や議論を導くのに役立ちます。」 / Twitter
- CubbitさんはTwitterを使っています 「関数の純粋性の大切さを強調したり関数型プログラミングの有用性を声高に説くわりに、純粋関数型言語を使うのだけは頑なに拒む人たち、なぜなのか」 / Twitter
- r.ishibashiさんはTwitterを使っています 「@cubbit2 純粋関数の純粋が意味するものと、純粋関数型言語の純粋の意味するものが全く違うからですよ。。。」 / Twitter
- r.ishibashiさんはTwitterを使っています 「@cubbit2 純粋関数は単純で調べれば簡単に小学生でも定義が分かり理解できます。 純粋関数型言語は純粋(関数型言語化)のように純粋が関数型言語にかかってます。そしてそれを調べると、、、」 / Twitter
- 喇(らつ) / 喇叭吹きは休日さんはTwitterを使っています 「圏論から見るHaskellのFunctor https://t.co/P5b7h60k5V #Mathlog 記事が完成しました。HaskellのFunctorについて圏論からの視点で、というかstrong endofunctorについての論文を掘り起こしてきたのでそれについて書きました。なお本題はApplicativeのもよう (次回に続く)」 / Twitter
- 圏論から見るHaskellのFunctor | Mathlog
histric-3
- mod_poppoさんはTwitterを使っています 「Haskellやるのにcabalかstackか問題、「アプリケーションを構築するならstack,ライブラリーを書くならcabal」みたいになるのかなあ」 / Twitter
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「世の中のfor文の9割はmapとかfoldで事足りるんじゃないかって思えてきた」 / Twitter
- 静的型付「き」言語さんはTwitterを使っています 「tagged=タグつき、tagging=タグづけなのと同様、typed=型つき、typing=型つけなので、statically typed language=静的型つき言語です。究極的には「昔から定着してる用語だから」かもしれませんが。」 / Twitter
- mod_poppoさんはTwitterを使っています 「Girard's paradox, 名前はよく聞くけどHaskellで言うとどういうコードで実現できるのかよくわかってない」 / Twitter
- HexirpさんはTwitterを使っています 「Agda の universe level が整数で管理されていて、それがオーバーフローしてしまうと Girard’s paradox が発生すると。めちゃくちゃ面白いな。」 / Twitter
- VélociPListeさんはTwitterを使っています 「Santa came early! https://t.co/CXJQZegZEe」 / Twitter
- Universe overflow causes Russell's paradox · Issue #5706 · agda/agda
- Nimu Box
- mod_poppoさんはTwitterを使っています: 「直積の記法が話題ですが、Haskell君は直積型の記法として新たにTupleNみたいなやつを導入しようとしています(型と項を混ぜて書く上で曖昧さをなくすため) https://t.co/cVHm7y7cDy」 / Twitter
- ghc-proposals/0475-tuple-syntax.rst at master · ghc-proposals/ghc-proposals
- ytakanoさんはTwitterを使っています: 「Haskellの型推論、高階多相がありむずかしい。」 / Twitter
- ytakanoさんはTwitterを使っています: 「Alternativesは関数定義か。Haskellだとパターンマッチで定義を複数書けるからな。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「GHCの限定継続がマージ間近っぽい https://t.co/pj38e98E30」 / Twitter
- Native, first-class, delimited continuations (!7942) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
- mod_poppoさんはTwitterを使っています: 「順調にいけばGHC 9.6に入るかな」 / Twitter
- lotzさんはTwitterを使っています: 「Haskellのエラーが検索しやすくなる! 次のGHCからエラーにユニークな番号が振られるようになり、それを使ってエラーの詳細が調べられるページが誕生。ドキュメント自体がGitHubでオープンソースに管理されているのでコミュニティ駆動で充実させていける仕組みもある👀 https://t.co/XNYCykrzvy https://t.co/W30uNjtJd9」 / Twitter
- The Haskell Error Index — Haskell Error Index
- lotzさんはTwitterを使っています: 「筑波大学で行われたHaskell集中講義の説明資料 基本的な概念が一通り説明されてて、型の調べ方/Preludeとは等 初学者が気になる話もカバーされてる Haskellには基本構文が7つしか無いことをGHCのコードを証拠に説明したりしていて面白い 全部で133頁ある大作👀 流石です🙏 https://t.co/IZRo7kyloh」 / Twitter
- learn-haskell/Tsukuba-2016.pdf at master · nushio3/learn-haskell
- プロジェクトを作らずにHaskellをやる
- mod_poppoさんはTwitterを使っています: 「Haskellの歴史、2014年ごろはcabal sandboxがモダンで、2017年ごろはstack全盛だったっぽい。その後GHCupとcabal v2-buildが登場という感じかな(ほんまか)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「最近はGHCup+Cabal vs Stackみたいな情勢だったけどこれからはGHCup+Cabal+Stackの時代だから[要出典]、絶賛執筆中の「Haskellの環境構築2023」をよろしくな」 / Twitter
- ytakanoさんはTwitterを使っています: 「Haskellが、rustupのように、コマンドライン一発でインストールできるようになってる。ちょっと前はインストールすら難しかったのに。GHCupって名前だし。 https://t.co/JUxsphXxra」 / Twitter
- GHCup
- ytakanoさんはTwitterを使っています: 「最近はstackじゃなくてcabalなのか」 / Twitter
- ytakanoさんはTwitterを使っています: 「GHCのlanguage serverもあって、大夫書きやすくなっている。」 / Twitter
- 20210530-meetup-unno - Google スライド
- naoyaさんはTwitterを使っています: 「Haskell 面白いなあ。イミュータブルに書いてる間は関数型で書けていたものが、ちょっとミュータブル名データ構造使うように変えてみるか、としたとたんそこから芋づる式的に手続き型のコードに変わっていく https://t.co/DbwawrLIeC」 / Twitter
- naoyaさんはTwitterを使っています: 「幅優先探索の実装をイミュータブルなデータ構造でやっていたところ、書き換え可能な配列にしてみるという前後なんだけど、書き換え可能な配列が出てくると返値を伴わない手続きを使うことになり、すると do 構文が使いたくなって、手続き型に変わっていく」 / Twitter
- naoyaさんはTwitterを使っています: 「関数型と手続き型が地続きなんだというのがよくわかる」 / Twitter
- naoyaさんはTwitterを使っています: 「内部関数の方も、呼び出し元のミュータブルな変更の影響で ST モナドを引き回す必要があり、モナドから値を取り出すのに <- を使いたくなって do 構文を使うほうが書きやすい。結果、ミュータブルなデータ構造の登場が手続き型への転換のポイントになっている」 / Twitter
- naoyaさんはTwitterを使っています: 「おもしろ」 / Twitter
- 大規模数値計算を支える Haskell ── Pragmatic Haskell in Large-Scale Numerical Computation── - Speaker Deck
- haskell/ghcup-hs
- naoyaさんはTwitterを使っています: 「モナディックめぐる式二分探索 ST モナドの文脈の中で更新している配列に対して ST 文脈を脱出しないままめぐる式二分探索で探索する実装 Python で書いたら15分で書けるような話に5倍ぐらい時間要した。ハハッ https://t.co/4B7m6j4LnM」 / Twitter
- naoyaさんはTwitterを使っています: 「動的に配列の中身を更新しながら何かする、みたいな実装になるとまだシュッと書けない。訓練あるのみ」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Overloading the lambda abstraction in Haskell https://t.co/RcCD5h0H1Y Haskellのラムダ記法をオーバーロードしたい話。圏論のgeneralized elementっぽさがある。」 / Twitter
- Overloading the lambda abstraction in Haskell
- lotzさんはTwitterを使っています: 「HaskellのGUIライブラリについてデスクトップGUIとWebGUIに分けて幅広く既存のライブラリに言及して整理されている記事。ここでは簡単にしか言及されてないけど個人的には Monomer が好き/ The Big List of Haskell GUI Libraries https://t.co/WPEAShCKDJ」 / Twitter
- The Big List of Haskell GUI Libraries
- mod_poppoさんはTwitterを使っています: 「Lysxia - From delimited continuations to algebraic effects in Haskell https://t.co/dpsHECY6Op あとで読みたい」 / Twitter
- Lysxia - From delimited continuations to algebraic effects in Haskell
- Masahiro SakaiさんはTwitterを使っています: 「Orパターンの #GHC プロポーザル、受理されてたのね。で、構文は「one of pat1, …, patk」という形になったのか。ちょっと #Haskell っぽくない感じだけど、後から構文を導入するツラミ…… https://t.co/bxffefxQmK」 / Twitter
- ghc-proposals/0522-or-patterns.rst at master · ghc-proposals/ghc-proposals
- slide.kakkun61.com/linear-ephemeral-data-structure/
- haskell-shoen
- Haskell入門 | haskell
- recover-rtti: Recover run-time type information from the GHC heap
- 『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
- 『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
- ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
- Haskellで再帰を心置きなく書いて良い理由 - なんか考えてることとか
- Haskellで再帰を心置きなく書いて良い理由(補足編) - なんか考えてることとか
- モナド初心者が解く、モナドのあらゆる誤解 - なんか考えてることとか
- モナド則からJavaScriptのPromiseがモナドであることを確かめてみた - なんか考えてることとか
- Monadなんてどうってことなかった話 - Monadなんてただの型クラス!
OCaml・ML
SML
blog
- SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog
- SML#に学ぶコンパイラ言語におけるREPLの実装方法 | κeenのHappy Hacκing Blog
- SMLのDerived Forms | κeenのHappy Hacκing Blog
- SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
- SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
- 1ML - コア言語とモジュール言語の統合 | κeenのHappy Hacκing Blog
- SML#のexistential typeで遊ぶ | κeenのHappy Hacκing Blog
- Successor MLの話 | 雑記帳
- LunarML進捗・2022年2月 | 雑記帳
- LunarML進捗・2022年7月:LuaJIT対応など | 雑記帳
Twitter
histric
histric-1
- LunarML進捗:functorの実装 | 雑記帳
- 🎨・🎓さんはTwitterを使っています 「(Standard MLは型の定義がローカルにできたりするためにavoidance problemの対処が一層面倒そうだなあ)と思って mod_poppo さんの進捗を拝見しています」 / Twitter
- mod_poppoさんはTwitterを使っています 「avoidance problemってこれで説明されてるやつか https://t.co/CPC4GLpd8b」 / Twitter
- exsig.pdf
- Standard ML on LuaTeXしてみる | 雑記帳
- SML#の2021年トピックを紹介 - Qiita
- mod_poppoさんはTwitterを使っています 「Successor MLの新機能、record extensionとnested matchesがデカくて、他は細々としたderived formに過ぎないと言って良い気がする」 / Twitter
- mod_poppoさんはTwitterを使っています 「Successor MLのnested matchを使うとパターンマッチ中に副作用を起こせるけど、record extensionのderived formと組み合わせると「ソースコード中の記述と実際の評価の順序が異なる」パターンを書けるのか…… https://t.co/J1dzQL45Ny」 / Twitter
- mod_poppoさんはTwitterを使っています 「パターンマッチで非可換な副作用を起こそうという使い方は真っ当にコードを書く限りにおいては起きないと思うので重大な問題だとは思わないが、オタクなのでこういう細かいところが気になるのであった」 / Twitter
- mod_poppoさんはTwitterを使っています 「めっちゃ賢いコンパイラーであれば、副作用を含むnested matchの順番がderived formによって入れ替わった時に警告を出せるかもしれない(そこまでするか?)」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLの宣言は特定のトークン(val/fun/type/datatype/...)から始まるようになっていて曖昧さが生じないから偉い。それに比べて式は……」 / Twitter
- LunarML@func_party.pdf - Google ドライブ
- mod_poppoさんはTwitterを使っています 「Standard MLの文法、ユーザー定義可能な中置演算子を抜きにしても、優先順位に関する注釈を使わないBNFで書き下ろした時にどの程度の規模になるのか」 / Twitter
- mod_poppoさんはTwitterを使っています 「ECMAScriptがやってるみたいに非終端記号にパラメーターを持たせて、特定の規則の発動をON/OFFできるとかじゃないと辛い」 / Twitter
- mod_poppoさんはTwitterを使っています 「Bisonはshift/reduce conflictが起こった時に反例を挙げてくれるのか。ML-Yaccにも欲しい https://t.co/9QMEnYnwQf」 / Twitter
- Shift/Reduce (Bison 3.8.1)
- mod_poppoさんはTwitterを使っています 「SMLでは 1 + case () of () => 2 は構文エラーになるが、 true andalso case () of () => false はパースできる(できなければならない)。つまりandalso/orelseは通常の二項演算子とパースのされ方が異なる。厄介。」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLで>>=みたいな演算子を独自に定義しても m >>= fn x => ... とは書けずに、カッコを使って m >>= (fn x => ...) と書かないといけないんだよな。Haskellとは違うのだ」 / Twitter
- mod_poppoさんはTwitterを使っています 「Successor MLでは a andalso if b then c else d orelse e みたいな式は拒否されるっぽい?なんもわからん……」 / Twitter
- mod_poppoさんはTwitterを使っています 「andalso/orelseの優先順位に照らして式を拒絶する、みたいなやつはML-Yaccによる文法定義とは別のところでやった方がいい気がするな(ほんまか)」 / Twitter
- mod_poppoさんはTwitterを使っています 「HaMLet, sequenced type realisationを使っているのか……(LunarMLではSuccessor MLに従ってsequenced type realisationを実装していない)(LunarMLでもsequenced type realisationを実装するべきなのか)」 / Twitter
- mod_poppoさんはTwitterを使っています 「やっぱSML97互換モードとSuccessor ML互換モードが必要な感じか。Successor ML互換モードではsequenced type realisationを弾く感じで。」 / Twitter
- mod_poppoさんはTwitterを使っています 「SML '97ではこういうコードが合法(andの部分のパースが厄介らしい) https://t.co/ycHX2R8J6r」 / Twitter
- mod_poppoさんはTwitterを使っています 「LunarMLでは簡略化のためにSML '97の構文の一部をパースしないことにしてるけど(val recのアレとか)、「世の中に転がってるSMLコードを解釈できるようにしよう」とやっていくとなんだかんだでSML '97を全部実装しないといけないことになるんじゃないだろうな」 / Twitter
- mod_poppoさんはTwitterを使っています 「MLtonに最近この辺に関する変更が入ったっぽいな https://t.co/EIiv9e0eax」 / Twitter
- Accept a non-semicolon terminated final expression in the syntax of programs by MatthewFluet · Pull Request #470 · MLton/mlton
- mod_poppoさんはTwitterを使っています 「ファイルの末尾がセミコロンで終わらない式の場合、HaMLetはセミコロンを付け足すので動く、MLtonは単独の式がval it=に脱糖されるやつはセミコロンが必須なので動かない、みたいな違いがあるな」 / Twitter
histric-2
- mod_poppoさんはTwitterを使っています 「SMLのReal.fmt (SCI _), 指数部が負になれないように規定されているように見える(MLtonは普通に1E~10みたいな文字列を返してくる) https://t.co/1zgiB8z8UI」 / Twitter
- The REAL signature
- mod_poppoさんはTwitterを使っています 「コンパイラーの高速化、どうするのがいいんだろう。並列化?その前に地道にアルゴリズムとデータ構造を改善するべきか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「識別子にユニークな番号を振るためにグローバルなint refを使っているからその部分をどうしたら良いか非自明なんだよな」 / Twitter
- mod_poppoさんはTwitterを使っています 「SML#実践本によるとMassiveThreadsは「ノンプリエンプティブ」ということで、他の言語でよくあるグリーンスレッドのようにランタイムが勝手に制御を移すようなことはしないのかな」 / Twitter
- mod_poppoさんはTwitterを使っています 「SML#ランタイムとMassiveThreadsは思ったほど密結合ではなく、実際https://t.co/6fE122kooXを見た感じではMassiveThreadsへの依存は外せるらしい?」 / Twitter
- mod_poppoさんはTwitterを使っています 「smlsharpが--targetオプションを受け付けない(ハイフン一つだと受け付ける)(src/compiler/compilePhases/main/main/Main.sml:185をDLONGに変えれば良さそう)」 / Twitter
- mod_poppoさんはTwitterを使っています 「どのフェーズで時間を食っているのか調べたところ、型検査(型推論)が重そうなことがわかった」 / Twitter
- mod_poppoさんはTwitterを使っています 「現在のLunarMLは structure S = struct val num = #num end : sig val num : { num : int, den : int } -> int end; みたいなコードを受理するけど、これだと型推論のスコープが広すぎなんだろうな(型検査の所要時間に悪影響がありそう)」 / Twitter
- mod_poppoさんはTwitterを使っています 「MLtonがトップレベルの fun f {x, ...} = x val _ = f {x = 13, y = "foo"} を受理する仕組みがよくわからんな。どういう文脈で型推論してるんだ https://t.co/xEsaoH4xxO」 / Twitter
- TypeChecking
- mod_poppoさんはTwitterを使っています 「途中にstructure Foo = struct endやセミコロンを挟むと型検査に通らなくなるので、「パース後に(セミコロンを挟まずに)隣接するcore decをマージする」という工程を挟んでいるのかもしれない。ややアドホックな感じがするが」 / Twitter
- mod_poppoさんはTwitterを使っています 「value restrictionで一般化されなかった型変数が単一化の対象になる範囲と、recordが解決される範囲が違ってそうなんだよな」 / Twitter
- mod_poppoさんはTwitterを使っています 「MLtonは隣接するcore decをマージする工程が実際にあるようだ。mlton/ast/ast-modules.funのcoalesce関数がそれで、mlton/elaborate/elaborate-modules.funからそれを呼び出している。」 / Twitter
- mod_poppoさんはTwitterを使っています 「オーバーロードが解決されるスコープはレコードのそれと同じようだ」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのsignature, 予約された名前を含むdatatypeは通常の書き方では書けないけどdatatype replicationならいけるのか https://t.co/RvXQUzzvsK」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのReal.scan/fromStringが受け付ける文字列の仕様、もしかして?のかかってる範囲が思ったよりも広い? [+~-]?([0-9]+(.[0-9]+)?|.[0-9]+)([eE][+~-]?[0-9]+)? みたいに解釈されるべきなのか? https://t.co/rX3GJ5NWfB」 / Twitter
- mod_poppoさんはTwitterを使っています 「「指数部は省略できないけど指数部の数字は省略可能」という解釈はいくらなんでもおかしいよな」 / Twitter
- mod_poppoさんはTwitterを使っています 「String.scanの引数は(char, 'a) StringCvt.readerなのか?それとも(Char.char, 'a) StringCvt.readerの間違いなのか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Standard MLでは単項マイナスにはチルダを使うわけだが、間違って浮動小数点数リテラルの指数部にハイフンマイナスが使われていた場合にその旨の警告を出すようにした https://t.co/AqR0kSt1TP」 / Twitter
- mod_poppoさんはTwitterを使っています 「あれ?肝心のコンパイルエラーが出てないな……」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのReal.min/max, ゼロの符号をどうするか明示されていないな。下の方に「The sign of a zero is ignored in all comparisons.」と書かれているからゼロの符号は無視するのか? https://t.co/vDvbJqeB9J」 / Twitter
- The REAL signature
- mod_poppoさんはTwitterを使っています 「SMLのChar.toCString, 文字のordが八進3桁で表現できない(512以上の時)時にどうすればいいか書いてないな。例外を投げるか、\uを使うか」 / Twitter
- mod_poppoさんはTwitterを使っています 「Lua, math.roundがないみたいだけど欲しければ自分で実装しろということか(floorとceilはある、truncはmodfを使える)」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのReal.realRoundは最近接丸めとのことだけど、小数部がちょうど0.5の時の説明がない。roundの方は最近接偶数丸めであることが明記されているので、それと辻褄が合うようにすれば最近接偶数丸めなんだろうけど」 / Twitter
- mod_poppoさんはTwitterを使っています 「浮動小数点数の関数を実装してるとLunarMLにさっさと十六進浮動小数点数リテラルを入れたくなるな」 / Twitter
- mod_poppoさんはTwitterを使っています 「Luaは浮動小数点数のプリミティブはそんなに充実している方ではないけど、(Lua 5.3以降なら)string.pack/unpackで64ビット整数と浮動小数点数のビット単位の相互変換ができるので最悪それを使えばなんでもできる」 / Twitter
- mod_poppoさんはTwitterを使っています 「LuaによるsignBit関数の実装例 https://t.co/J6HHXMufq5」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのListにfoldriが欲しい」 / Twitter
- 26.1 ARRAY‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説 4.0.0版 - SML#プロジェクト
- 26.20 MONO_VECTOR‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説
- 26.39 VECTOR‣ Chapter 26 Standard ML標準ライブラリ ‣ Part III 参照マニュアル ‣ プログラミング言語SML#解説 4.0.0版 - SML#プロジェクト
- mod_poppoさんはTwitterを使っています: 「LunarMLの独自拡張として、文字列型に応じてUTFエンコードされるエスケープシーケンス \u{} を実装した。これが俺の答えや https://t.co/CzbHpY0U2v」 / Twitter
- minoki/LunarML: A Standard ML compiler that produces Lua
- mod_poppoさんはTwitterを使っています: 「文字列型がバイト文字列ならUTF-8エンコードされて、JavaScriptのような16ビット文字列ならUTF-16でエンコードされる」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LunarMLのJavaScriptバックエンド、あとはプリミティブ演算と標準ライブラリーを用意しないといけない」 / Twitter
- トデス子'\さんはTwitterを使っています: 「ML系言語のtupleは (a * b) * c != a * (b * c) != a * b * c なのが非直感的」 / Twitter
- mod_poppoさんはTwitterを使っています: 「数学の直積も結合法則はup to 同型でしか成り立たないよね」 / Twitter
- mod_poppoさんはTwitterを使っています: 「ML系の直積が * のやつは最初見た時感動した覚えがある」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「(ML系言語で (42, 57) の型が int * int であるという具象構文で違和感覚える人もいるのか,単純に数学で (a, b) が A × B の元であることのアナロジーとしての記法だろうと思うけれども)」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「項→型→種→… とMartin-Löf的に階層が際限なく上に伸びるような一般化を考えるならむしろ直積型を (int, int) という記法で書くことの方に違和感がないでもない」 / Twitter
- zakuroさんはTwitterを使っています: 「直積という単語がでれば * なのもわかるんだけど、タプルという概念が単独で存在していて、頭の中で直積と結びついてないので、タプルから直積がでてこない」 / Twitter
- mod_poppoさんはTwitterを使っています: 「直積の記法が話題ですが、Haskell君は直積型の記法として新たにTupleNみたいなやつを導入しようとしています(型と項を混ぜて書く上で曖昧さをなくすため) https://t.co/cVHm7y7cDy」 / Twitter
- ghc-proposals/0475-tuple-syntax.rst at master · ghc-proposals/ghc-proposals
- zehnpaardさんはTwitterを使っています 「SMLの歴史に関してこういうページがあるの知らなかった… すごい面白いな… https://t.co/vwWSDPbEp9」 / Twitter
- Standard ML History
- zehnpaardさんはTwitterを使っています 「Milnerの手書きのProposal for Standard MLの草稿とかある!」 / Twitter
- A Runtime System | Computer Science Department at Princeton University
- mod_poppoさんはTwitterを使っています: 「Millet https://t.co/YfRRG9JCWE Standard MLのLanguage Serverらしい」 / Twitter
- Millet
- Standard MLで、循環2重リンクリストを見る | matsuri dev
- Luaでワンショット限定継続
OCaml
その他
OCamlのlet recの変数の再帰使用の制限
- kinabaさんはTwitterを使っています 「POPL'21論文リスト見てる。OCamlのlet recの変数の再帰使用の制限を以前までのad-hocな規則じゃなくて、型システム的にちゃんと定めるというの言われてみればなるほどだけどそりゃこうあるべきだなあ、と面白かった。 https://t.co/sp1vgdOPB3」 / Twitter
- A Practical Mode System for Recursive Definitions (POPL 2021 - Research Papers) - POPL 2021
- kinabaさんはTwitterを使っています 「以前の規則 https://t.co/2ze6KCnKrJ 見てても、まあそりゃそんなもんかーと思って深く考えてなかったもんなあ自分」 / Twitter
- Chapter 7 Language extensions
menhir shift reduce conflict
- 立派プログラマさんはTwitterを使っています 「shift/reduce conflictはmenhir使うだけで自明なやつは消してくれるからmenhirはすごいよ、他の言語向けにも使いたいよ」 / Twitter
- Resolving shift/reduce conflict in Menhir grammar - Learning - OCaml
- ocaml - OCamlYaccやMenhirでコンフリクトを消す方法 - スタック・オーバーフロー
- manual.pdf
- Resolving shift/reduce conflict in Menhir grammar : ocaml
- Menhirが便利 - lilyum ensemble
- manual.pdf
- shift/reduce conflict
- Lec11-LR-Parsing - Lec11-LR-Parsing.pdf
- Writing a Lexer and Parser using OCamllex and Menhir
Qiita
- OCamlでUninhabited typeを書くいくつかの方法 - Qiita
- κeenさんはTwitterを使っています 「この命名方法、コンパイラ書いてるときの「関数の名前」という概念どうしようってときに参考になる OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita https://t.co/2NgaAGnvXF」 / Twitter
- OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita
- κeenさんはTwitterを使っています 「SMLだと関数を束縛するときに複数の文法がある。 fun name … = … val rec name = fn … => … val name = fn … => … val name = let … in fn … => … end このうちどこまでを「名前のあるfn」として扱っていいか迷ってた。」 / Twitter
- 構造的部分型と有界量化に関する型推論 - Qiita
- subtyping.pdf
- 「構造的部分型と有界量化に関する型推論」について
- 再帰的多相バリアントそぞろ歩き - Qiita
- OCamlでもLensしたい2020 - Qiita
- 続・OCamlでもLensしたい2020 - Qiita
- 型付きPPXに関するメモ - toward the typed ppx - Qiita
- OCamlオブジェクトの結合を型付きPPXで - Qiita
5.0.0
- κeenさんはTwitterを使っています: 「Multicore OCamlを取り込んだ5.0.0正式リリースきたな。新時代始まった Release OCaml 5.0.0 · ocaml/ocaml https://t.co/N4o8WxnfF5」 / Twitter
- Release OCaml 5.0.0 · ocaml/ocaml
- κeenさんはTwitterを使っています: 「並列性のサポートとeffect handlerが入った一方、サポートアーキテクチャが(一時的に)減った。詳しい解説は識者に譲るので誰か書いて下さい。」 / Twitter
- κeenさんはTwitterを使っています: 「effect handlerの方あんま追ってなかったんだけど型システムには手を入れずに関数だけ(実装上はruntime APIのみかな)で頑張る感じ?だからalgebraic effects with handlerじゃなくてeffect handlerって言い方してるのかな。 https://t.co/TDvubSDWvc」 / Twitter
- ocamllabs/ocaml-effects-tutorial: Concurrent Programming with Effect Handlers (CUFP'17)
- zehnpaardさんはTwitterを使っています: 「@blackenedgold “Since we plan to extend OCaml with support for an effect system in the future, OCaml 5.0 will not feature the syntactic support for programming with effect handlers.”とのことです https://t.co/u4wn06byt1」 / Twitter
- Multicore OCaml: September 2021, effect handlers will be in OCaml 5.0! - Community - OCaml
- zehnpaardさんはTwitterを使っています: 「@blackenedgold “Instead, we expose the same features through functions from the standard library, reserving the syntax decisions for when the effect system lands.”」 / Twitter
- κeenさんはTwitterを使っています: 「@zehnpaard おっ、ありがとうございます。このsyntaxが型も含むのかただの構文糖衣だけなのか気になるところですね。」 / Twitter
- zehnpaardさんはTwitterを使っています: 「@blackenedgold Effect systemに型による静的検査も含まれると認識してます https://t.co/Cu9RhepwoN」 / Twitter
- subsystem-meetings/notes-gasche.md at main · ocaml/subsystem-meetings
- κeenさんはTwitterを使っています: 「@zehnpaard これは期待できそうですね」 / Twitter
GUI
histric
histric-1
- matsumoto19.pdf
- 参考になるMenhir製パーサ その1(チュートリアル・サンプル編) - Arantium Maestum
- 参考になるMenhir製パーサ その2(500行未満編) - Arantium Maestum
- 参考になるMenhir製パーサ その3(500行以上編) - Arantium Maestum
- Keigo ImaiさんはTwitterを使っています 「OCaml PPX calling another ocaml compiler at the compile time 👀 https://t.co/10F56FD4oa」 / Twitter
- thierry-martinez/metapp: Meta-preprocessor for OCaml
- でこれきさんはTwitterを使っています 「OCamlだと型変数は構文解析レベルで処理しているので ' a のように ' のあとに空白を入れられるのを思い出していた(さらに var' が有効な識別子なので 'var' もquote + 識別子で型変数扱いになるとかも」 / Twitter
- でこれきさんはTwitterを使っています 「実装としてはこのへん https://t.co/ubrGBxnBSz https://t.co/B0X6sUhI15」 / Twitter
- ocaml/parser.mly at 4.13 · ocaml/ocaml
- でこれきさんはTwitterを使っています 「合わせ技で ' a' とか ' a'b とか書くと2文字目がクォートな型変数も書ける(が、過去にpprintastでうまく処理されなかったりもした Fix printing of type variables with a quote on 2nd character by alainfrisch · Pull Request #2130 · ocaml/ocaml https://t.co/A1nWMmR9Zr」 / Twitter
- でこれきさんはTwitterを使っています 「文字リテラルは字句解析で処理する https://t.co/ZAEYSdK4QJ」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「継承の最も重要な使い所、最近触るのはOCaml構文木のトラバースのデフォルト実装の提供とかで、これHaskellだとderiving Genericsを使った記憶がある。あるいはレンズ使うのがいいのだろうか」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@keigoi 構文木のトラバースにも色々ありますが、compos とかどうでしょうか。Generics 使うことも出来ます https://t.co/NFp0PVzPsR」 / Twitter
- Data.Generics.Compos
- Keigo ImaiさんはTwitterを使っています 「@lyrical_logical おお、知らなかったです。論文見たらsybとの比較もあるんですね…」 / Twitter
- ラベル – OCaml
- OCaml 5、マルチコアサポートを導入へ
- 🎨・🎓さんはTwitterを使っています 「OCamlでプログラム書くときも大抵型註釈つけるようになってきた,型註釈を書いていた方がとりわけリファクタリング時に型エラーが “連動して変更しないといけない部分を指してくれる” 傾向が高まるため」 / Twitter
- ushitora-anqou/aqaml: Yet another tiny tiny self-hosted OCaml compiler with an also tiny standard library.
- coord-e/mlml: self-hosted compiler for a subset of OCaml
- cannorinさんはTwitterを使っています 「🐫 ts2ocaml is now public! This is a tool which generates #OCaml binding from #TypeScript definition files. It currently supports js_of_ocaml as a target, and ReScript support is also planned. We appreciate any feedback and bug reports. Enjoy! https://t.co/6G8uoXVk9e」 / Twitter
- ocsigen/ts2ocaml: Generate OCaml bindings from TypeScript definitions via the TypeScript compiler API
- Keigo ImaiさんはTwitterを使っています 「ReScriptはOCaml派生のAltJSの一つなのだが少し書いてると確かなJavaScriptっぽさを感じる。構文がJSのサブセットに寄せてあり、普通のReScript関数が構文的にも実行効率的も非カリー化されており、OCaml由来のレコードやオブジェクトもそのまま JavaScript のオブジェクトにマップされる、あたり」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「IDEも割とこなれていて、rescript build -w しておくと勝手に型検査が走って.jsファイルが生成されていくのも良い。JSへの脱出ハッチとして%rawも気軽に使える。OCaml 由来のオブジェクト型をもっと軽量に使えないかと思う (基本的にオブジェクト指向APIはレコード経由なので多相性がない)」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「ただOCaml知らない人からの参入ハードルはまだ少しあるような気もする。軽く貢献できればいいけども / 関連: jsoo https://t.co/4DQ3LPn6Sc rescript https://t.co/kx2ohF8E1J」 / Twitter
- Jsoo, production use and user facing applications questions - Ecosystem - OCaml
- A short history of ReScript (BuckleScript) - Community - OCaml
- Keigo ImaiさんはTwitterを使っています 「ReScript は シリアスにJSとのinteroperabilityを考えて作られている(生成されるコードがオリジナルに近く、かつ高速)。一方、Jsoo (js_of_ocaml) は既存の膨大なOCaml資源をブラウザに移行でき、かつ成熟している(生成されるJSコードサイズが小さい)。」 / Twitter
- Julien LangeさんはTwitterを使っています 「We (@keigoi, @Neykova, and I) wrote a tool/short-paper to help you write session-typed programs without writing session types, in #OCaml. See https://t.co/N6uBrITXMX and https://t.co/JdvdzxYwB9.」 / Twitter
- [2111.12147] kmclib: Automated Inference and Verification of Session Types
- keigoi/kmclib
- OCamlでLLVM JITを試した - Arantium Maestum
- ぷりさんはTwitterを使っています: 「OCamlではBatUTF8という準標準ライブラリで日本語をまともに扱うことができるようになっているのか https://t.co/nzkygYNDAa」 / Twitter
- BatUTF8 · batteries 2.8.0 · OCaml Packages
ReasonML
- Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.
- Reason · Reason を使うと、JavaScript & OCaml の両方のエコシステムを活用しながら、単純、高速かつ高品質な型安全コードを書くことができます。
- 知らない言語を使ってみたい - ReasonML編 (OCaml な AltJS) - Qiita
- ReasonMLを使う理由…ではなく入門 - Qiita
- ReasonMLの入門 | QUARTETCOM TECH BLOG
- reasonml/reason: Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems
- OCaml風にJavaScriptを書けるReasonML - JavaScript勉強会
- Reason (programming language) - Wikipedia
- ReasonML on Exercism
型エラーの動的検査
- Shiro KawaiさんはTwitterを使っています 「これがなー。REPL脳では、何かしっくりいかないときに一部だけ再定義してREPLで試すんだけど、その時は試行錯誤段階だから全体を直したくないんですよ。不整合なのは分かってるけどそこは今は使わないからいいよ、って感じで。それさえ許容してくれるならその後全部直すのが楽なのは同意なんだけど https://t.co/vLWOGcmnKB」 / Twitter (1)
- うどんさんはTwitterを使っています 「まさにそうですね それに加えて、全体に影響する基本的なデータ型を変更したときとか、修正が必要な箇所が型エラーとして現れるのが嬉しいです 言われるがままに修正していくと、いつのまにか動くようになってる感じ (まぁこれはコンパイラ作成に限定されない利点ですが) OCamlもっと流行れ https://t.co/lEkMUO4msc」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「コンパイラとOCamlの相性の良さは謎。というか多分あんまり謎でもなくて、コンパイラはルールをあてはめて言語XをX→X'→X''に変換していく、みたいなことの繰り返しだから、OCamlのパターンマッチとかコンストラクタがうまく動くんだよな。これルールそのままじゃん、みたいなコードになるというか。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「これがなー。REPL脳では、何かしっくりいかないときに一部だけ再定義してREPLで試すんだけど、その時は試行錯誤段階だから全体を直したくないんですよ。不整合なのは分かってるけどそこは今は使わないからいいよ、って感じで。それさえ許容してくれるならその後全部直すのが楽なのは同意なんだけど https://t.co/vLWOGcmnKB」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@TesseracDB @rui314 REPLで高速にサイクル回してる場合、関係ないエラー自体が見えるとそれだけで開発サイクルがつまづいてスローダウンするんですよね。そもそも目的の関数以外の部分は書きかけで構文的にも完結してない、なんて状態で目的関数/メソッドだけon-the-flyでコンパイル・実行したいわけです。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@anohana これはコンパイラに型エラーはコンパイル時に全部報告するのではなく実行時エラーになるようにするモードがあるといいと思うんですけど。絶対にそこは今は実行しないのに全部修正するのがめんどくさいとかあるので。」 / Twitter
- うどんさんはTwitterを使っています 「@rui314 @anohana 確かにこういう気持ちにはよくなるので、 とりあえず型を無視して欲しいところは、一旦例外を投げるコードに置き換えておいて、型検査を通すということをよくやります。 (例外は任意の型の代わりになるので)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kw_udon_ @anohana それを自動でするコンパイラのモードがあるといいと思うんですよね。型エラーはコンパイルエラーにするのではなくて実行時に例外を投げるコードにコンパイルしてしまうという。」 / Twitter
- うどんさんはTwitterを使っています 「@rui314 @anohana 同じ文法の動的型付け言語をつくるみたいなイメージですかね。 Pythonに型をつけていくgradual typingの逆の方向っぽいですね。 特有の難しさはありそうですが、うまいことできたら、確かに便利そうです。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana すごく分かるんだけどそれでも「不整合なのは分かってるけどそこは今は…」がやっぱりそうもいかないんだよなぁと. 同じような事を言ったときに「壊れた状態で何を確認したいんだ?」と言われたのが今も自分の中では強烈に刺さってる.」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 システムをボトムレベルから世界までのひとつづきの開かれたものとみなした場合、それは必ずどこかで「壊れている(矛盾がある/整合が取りきれない領域がある)」。型を含めた設計はそこに線を引いてここから下は整合とれてる、とやる。動的脳はその線を開発の粒度に応じて柔軟に動かしたい。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana 確かに型だけで全てが整合することを保証はできない。 値まで含めて考えるとどこか壊れてる。 つまりいじわるをすれば矛盾したりする領域はどっかしらある。 みたいなことかな?」 / Twitter
雑記帳
- 自作SML処理系進捗:Hello world | 雑記帳
- 自作SML処理系で 1 + 2 がコンパイルできた | 雑記帳
- my-sml-compiler.pdf - Google ドライブ
- minoki/DamepoML: A non-working implementation of Standard ML
- 自作SML処理系進捗:Hello Lua! | 雑記帳
- LunarML進捗:signatureの実装に向けて | 雑記帳
- Standard ML雑学 | 雑記帳
- LunarMLの進捗と妄想 | 雑記帳
- LunarMLの進捗・2022年1月 | 雑記帳
- LunarMLの進捗2022 | 雑記帳
LLVM
- mod_poppoさんはTwitterを使っています 「SML/NJもバックエンドをLLVMに移行するのか」 / Twitter
- mod_poppoさんはTwitterを使っています 「後で読む https://t.co/E1S0paKYpb」 / Twitter
- A New Backend for Standard ML of New Jersey | IFL 2020: Proceedings of the 32nd Symposium on Implementation and Application of Functional Languages
- mod_poppoさんはTwitterを使っています 「・LLVMに新しい呼び出し規約を追加(LLVMの改変) ・SML/NJはREPL重視なのでLLVMは外部コマンドではなくC++のAPIを叩く形で呼び出す ・やはりというか、LLVMを使うと(既存のMLRISCと比べて)コンパイルが遅くなる。実行時間は特に浮動小数点数を扱うコードなどで改善」 / Twitter
- mod_poppoさんはTwitterを使っています 「・LLVMを改変して呼び出し規約を追加したわけだが、LLVMに追従するのは大変そうなのでできれば本体に呼び出し規約を取り込んで欲しい(GHCやHiPE/ErLLVMはそうしている) ・LLVMバックエンドを持つ既存の関数型言語処理系にはGHC, SML#, MLtonなどがある」 / Twitter
- mod_poppoさんはTwitterを使っています 「感想:関数型言語でLLVM使うのも楽じゃないね。既存の関数型言語処理系との大きな違いはやはりLLVMのC++ APIを叩いている点か。SMLの中間表現をシリアライズ(?)してC++側で復元、LLVMに渡す、というようなことをやっているらしい。」 / Twitter
- 自作言語でLLVM JITによるマクロが動くまで
OCAML 証明
- OCAML 証明 - Google 検索
- msfd09.pdf
- 2019年度「プログラミング言語」配布資料 (6)
- OCamlとCoqでブロックチェーンプログラミング - ログミーTech
- プログラミング Coq (証明駆動開発 2) - (wat-aro)
- Functional Programming · OCaml Tutorials
- 第14回 型=命題,プログラム=証明 | 日経クロステック(xTECH)
- OCaml 勉強会 - Qiita
- ProofCafe - 名古屋を中心に活動する定理証明器・関数型言語のコミュニティ
- プログラミング言語 2 関数型プログラミング (OCaml) Programming Languages 2 Functional Programming (OCaml) - 02-ocaml.pdf
- OSC2009Nagoya_ocaml.pdf
- Real World OCaml が出ました - camlspotter’s blog
- min-caml を Mac で動かす
- Leaving OCaml
- OCaml で書かれた Python のサブセット実装 ocaml-minipy のソースを読む - DEV
- ニューラル株式会社|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム
- mod_poppoさんはTwitterを使っています 「OCamlとStandard MLの比較がまとまってるページを見つけた(どのくらいup-to-dateかはともかく) / Comparing Objective Caml and Standard ML https://t.co/LpsYw1HIPj」 / Twitter
- Comparing Objective Caml and Standard ML
- mod_poppoさんはTwitterを使っています 「OCamlがラベル付き引数を採用する一方、Standard MLは無名レコードを引数に受け取った」 / Twitter
- LunarMLの進捗2021 | 雑記帳
- MinCaml写経日記
- matsumoto19.pdf
- zehnpaardさんはTwitterを使っています: 「OCaml->JavaScriptコンパイラjs_of_ocamlの、OCaml 5.0の新機能であるeffect systemに対応するためのWIP PRが入ってる 現在プログラム全体をCPS変換しているようで、いろんなベンチマークでかなり遅くなる模様。effectを使う箇所の部分的な変換だけで済むか検討中とのこと https://t.co/mMvMehl2He」 / Twitter
- Effect handlers by vouillon · Pull Request #1340 · ocsigen/js_of_ocaml
- Neovim で OCaml を書く
- 「型推論」特別講義 (プログラミング言語の基礎理論シリーズ)第1回 - YouTube
Scala
Scala の for 式
- がくぞさんはTwitterを使っています: 「これめちゃめちゃ面白い問ですね。 確かにreduceを使ってmapを実装することができます。 よってmap→reduce→traverseという抽象化が可能なんですが、これとは別の方向でmap→ap→flatMapという抽象化も存在するんですよね。 for式は内包表記を表すためにflatMapが必要だから、というのが解になるかと」 / Twitter
- しほうさんはTwitterを使っています: 「Scalaがfor式にreduceではなくmapを採用したのはなぜだろうか 素人考えだとmapよりもreduceのほうが汎用的な気がする」 / Twitter
- がくぞさんはTwitterを使っています: 「厳密に言うとFoldableだけではFunctorにはできないので「reduceを使ってmapを実装することができる」というのは一部誇張があるのですが(元の構造が何かを知っておく必要がある)アレアレなのでアレ」 / Twitter
blog
- ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ
- Scala3の新機能紹介 - Adwaysエンジニアブログ
- 2021年の最新技術を使った場合のScalaのコンパイル速度 - xuwei-k's blog
- Scalaの学習コストについての私見 - kmizuの日記
- Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog
- Scalaのfor式による関数合成を「線路」で理解する - Visional Engineering Blog
- fp-ts ユーザが Scala with Cats を読み終えたので、fp-ts と Cats の違いをまとめてみた - DEV Community
- Scala 3のscala.deriving.Mirrorの実装詳細は?生成コードは?SumOfとProductOfの違いは?Scala 2の場合は?調べてみました! - xuwei-k's blog
- バカ向け言語 Scala - だらだらしてたいなぁ
スライド
- Rustユーザーから見た Scalaの型クラス - Google スライド
- Implicit 入門
- Tuples and Mirrors in Scala3 and Higher-Kinded Data - Speaker Deck
- がくぞさんはTwitterを使っています: 「なるほどなー。FreerとかでADTによるInternal DSLつくってInterpreterを分離しようみたいなアプローチで、たびたびパフォーマンスの話題になることがあったけど、確かにInterpreterをマクロにして評価の一部をコンパイル時にやって実行時は爆速にするみたいな事もできるか https://t.co/0ZbyL6z69c」 / Twitter
- Chris BirchallさんはTwitterを使っています: 「@a_suenami MSPはまだ本番で使う機会なかったけど、最近気になって調べた結果をまとめて社内発表しました。資料はこちらです https://t.co/6H4CvW1cdo」 / Twitter
- Staged programming in Scala 3
Zenn
- Intersection Types を利用した Type Safe Builder の改善
- Scala 3のMatch Typesでコンパイル時正規表現エンジン
- いつScalaを使い、いつ使わないのか
infoQ
- Scala 3への道
Twitter
その他
エラーハンドリング
- がくぞさんはTwitterを使っています 「おーsafer exceptionsが入ったScala 3.1出たのか。 https://t.co/VgHekxDbVY swiftのrethrowからさらに網羅性検査ができる強力な力を持った例外機構が使えるようになった👏 https://t.co/rU0SOfGZXf この辺を表現するのにやっぱりunion typesも大きな働きしてるよなー。Javaもこの方向に行って欲しい」 / Twitter
- Scala 3.1.0 released! | The Scala Programming Language
- dotty/canthrow.md at release-3.1.0 · lampepfl/dotty
- Yuki Ishikawa | FOLIOさんはTwitterを使っています 「Scalaでthrowsが書けるようになりました...🤔 https://t.co/H6TT5b3ORl https://t.co/L9cjnHDtrU」 / Twitter
- がくぞさんはTwitterを使っています 「KotlinのエラーハンドリングはJavaよりも表現力が落ちてしまっているのでこの辺どうしてるんだろうなー。公式がResultのデザイン決める際に arrow の存在を持ち出してるし arrow を使えって事なのかなー……? server-side kotlinを推している方々に実際どうしてるのか聞いてみたい」 / Twitter
- kodai 🐧❄★さんはTwitterを使っています 「Result<V> だとエラーのデータ表現を指定できなくて嫌すぎるので、可能な限り kotlin-result ライブラリの提供する Result<V, E> 型を使うようにしてる」 / Twitter
- がくぞさんはTwitterを使っています 「kotlin-result これかしら https://t.co/BCxbDAkMiI Monad Comprehension あるのは嬉しいですね」 / Twitter
- michaelbull/kotlin-result: A multiplatform Result monad for modelling success or failure operations.
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Odersky先生らのSafer Exceptions for Scalaの論文斜め読みしたけど、Odersky先生提案の機能としては、珍しく(?)私と趣味が合わない。というのは、プログラマが「適切にthrowsを書く」という難しいことをやってくれると自分は期待していないからなんですけど。 https://t.co/aD4bE8QcfC」 / Twitter
- Safer Exceptions for ScalaSafer Exceptions for Scala - 3486610.3486893.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「プログラミング言語はもっとフールプルーフであるべきだと私は思ってて、その意味でGoの設計思想も多少意味がわかるんだけど、あれはあれであんまりフールプルーフじゃない気がするし、検査例外(Safer Exceptionも)も簡単に握りつぶす事が出来る以上、微妙さを感じてる。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「例外関連でまずい順に並べると、例外を握りつぶされる > 例外がハンドリングされずにプログラムが死ぬ > 適切に例外が処理される、だと思うんですけど、「throws書け」というデザインはcatchして握りつぶす回避策があるのであれば、握り潰す方向にプログラマを動かしがちなので好きではない。↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「一方で、握り潰す事を絶許なデザインをするなら、効果的に働くこともあるのかもしれない、とも思う(ただ、その時にParseExceptionみたいなコンテキスト次第でバグか正常系か別れるケースどうするのかとも思う)。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu 例外処理に関して,ElixirやErlangの考え方はいかがですか? try catchはあるのはあるのですが,基本的にはそれを例外処理として用いるのではなく,例外が起きたらプロセスごと異常終了してもらって,異常終了を外部から監視して適切な後処理をしつつ再起動することで次の処理を受け付ける思想です。」 / Twitter
- がくぞさんはTwitterを使っています 「実践エラーハンドリングの2022年版を書いたほうが良さそうな気がしてきたなー https://t.co/3q4aIEFMhO」 / Twitter
- 明日から使える実践エラーハンドリング
- がくぞさんはTwitterを使っています 「各手法の表現力の差についてもうちょっと表にするなりしたい感」 / Twitter
path-dependent given
- がくぞさんはTwitterを使っています 「あ、path-dependent type使ってる例だ!」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz path-dependent given、ちゃんとpathの中にいるcompanionまでgivenを取りに行ってくれるのですごい便利ですね」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 ね、これ実際スゴイ凄いのだけどその便利さを実感もって感じられている人まだまだ少ない気がするので積極的にアピールしていきたいですね!」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz macroである種のwitnessを生成するinline givenをpath-dependent givenで取ってもらっており、コールサイトが芋づる式に全部inlineになってしまうという問題をこれで避けられているので、普通にmacroテクの一種としてもめっちゃ有用そうですね(今回これ書いてようやく気付きました) https://t.co/m48ZAyOv2d」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 あーなるほど inline given。なるほどこれで inline の展開がここで止まるんですね。はえー賢い!!!」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz ✌️」 / Twitter
レシーバの省略
- がくぞさんはTwitterを使っています 「そう言われるとKotlinの Function literals with receiver とかはむしろ積極的にthisというかレシーバの指定を省略させるための仕組みですね……」 / Twitter
- がくぞさんはTwitterを使っています 「this以外のレシーバも省略できるようにしよう、というの発想としては中々面白いというかObject Orientedとは異なる思想っぽさを感じますね」 / Twitter
- timelerさんはTwitterを使っています 「どの流儀にしろOOPを謳っている大半のプログラミング言語で、インスタンスメソッド内でフィールドのアクセスの際thisなりselfなりの記述が省略できるけど、なんでそんな要らん事するんだろう? 改めて見ると読みにくくて仕方ない…」 / Twitter
- timelerさんはTwitterを使っています 「いや、こう言っておきながら何だけど、10年前までは ・わざわざthis(self)書くやつバカ ・this(self)ない方が記述量減るし、読みやすくていい と主張していたのだけど💦 RustやPythonなどを見て視点が変わったのかもしれない。」 / Twitter
- timelerさんはTwitterを使っています 「なんか、IDE使ってるから省略した方が見やすいみたいなリプが見られる。 ワイはIDEを使った上で言っているのだが… 確かに今使ってるIDEがクソなIDEなのは認める。 省略して見やすくなるIDEにしたいよ…」 / Twitter
- timelerさんはTwitterを使っています 「手元のIDE、メンバーは専用の色が付くけどやっぱりselfなしだと見づらい。」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisを省略するためではないような気がします。thisを省略することで区別がつきにくくなる場合はthisの使用が推奨されています。 https://t.co/W8gBDb7sRM」 / Twitter
- Scope functions | Kotlin
- がくぞさんはTwitterを使っています 「@Pooh3Mobi Kotlin の type safe builder パターンは積極的にレシーバを省略できることを活用するパターンですよね? 区別がつきにくくなる場合に省略を推奨しないのは当然かと……」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisを使うことは制限されていないという話ですね。」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi thisを使う事を制限する、という主張は特にしてないつもりです。 with receiverはレシーバを省略して記述できるよう(thisが省略可能な事を活かして)任意のスコープで特定のオブジェクトをthisとするための機構で、ひいては積極的に省略を活用するための機構のように思うというのが僕の主張でした」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz thisの省略を積極的に使うための機構では無いですよというのが僕の主張ですね」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi なるほど。レシーバの省略を積極的に使うための機構ではないとすると、この機構は何を目的とした機構なのでしょうか?省略以外に解決する課題がちょっとわかりませんでした……」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi 逆に言うとレシーバの省略をしないのであればこの機構自体を使う必要が無いように思われます( it なり変数名なりを使えばよいので)が、他の目的があったりする感じなのでしょうか?」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz よく使われる?applyに関しては val adam = Person("Adam") adam.age = 20 adam .city = "London" これを val adam = Person("Adam").apply { age = 20 city = "London" } として初期化ブロックをクラス外に持ち出せる仕組みとして利用されることが多いです。文脈によってthisを省略orNot」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz サンプルコードの例がわかりにくくなってしまっていたらすみません。:bow:」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi あ、ですよね。なので adam.age = 20 adam .city = "London" という記述から age = 20 city = "London" というレシーバを省略した記述に変えるための機構に思えました。 単にスコープを限定したいだけなら val adam = Person("Adam").also{ it.age = 20 it. city = "London" } で十分なので」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz 人に説明するのが下手くそですねすみませんw しばらくお仕事とロジック組み上げるのに時間かかるのでおまちください:bow:」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz いい勉強だとおもって、胸を借りて頑張ります。」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi とんでもない、忙しい中つっこみ入れて頂いてありがとうございます! 都合のいいタイミングで!」 / Twitter
コレクション
- がくぞさんはTwitterを使っています 「戻り値同型の原則 (same-result-type principle) が基本的に無い(というか言語機構的に実現が難しい) Javaは難しいなー……」 / Twitter
- RayStark a.k.a. ロジニキさんはTwitterを使っています 「この記事面白かった JDK 16 : stream.toList() に見るAPI設計の難しさ - A Memorandum https://t.co/nf1kwapcBf」 / Twitter
- JDK 16 : stream.toList() に見るAPI設計の難しさ - A Memorandum
- RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz same-result-type principleがどう言うものか調べてみたいんですけれど、何か資料はありませんか?」 / Twitter
- がくぞさんはTwitterを使っています 「@RayStark77 https://t.co/RPyxU71B9w こちらのページの最後の節をご参照いただければ」 / Twitter
- 可変コレクションおよび不変コレクション | Collections | Scala Documentation
- RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz ありがとうございます この戻り値同型の原則はJavaの共変戻り値型で適用できませんか?」 / Twitter
- がくぞさんはTwitterを使っています 「@RayStark77 ある程度のメソッドでは可能ですが、その分overrideが大量に増えるので標準APIのバイナリ増えるとか、interfaceを実装するコストが跳ね上がるとか、諸々トレードオフがありますね」 / Twitter
- RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz 実装型の構造だけ保持するような仕組みが欲しいですね… 自分型とも違う、型変数だけ自由みたいな」 / Twitter
- がくぞさんはTwitterを使っています 「@RayStark77 HKTがあるだけでも割となんとかなるんですけどねー」 / Twitter
- RayStark a.k.a. ロジニキさんはTwitterを使っています 「@gakuzzzz ScalaのTraversableを読んでみるのが一番参考になりそうですね ありがとうございます」 / Twitter
- いろふさんはTwitterを使っています 「「Stream.collect(Collectors.toList())はStream#toList()と同じではない」は間違いなく正しいし、ライブラリとかだと迂闊にはできないけど、業務アプリケーションではほぼほぼ問題なく出来るので、気にせずやれば良いです。」 / Twitter
- いろふさんはTwitterを使っています 「まぁ「ほぼほぼ問題なく出来る」の問題が出るパターンを踏むとかはあるんだけど、その可能性が否定できないとかいってやらないなら、バージョンも上げれないはず。」 / Twitter
- がくぞさんはTwitterを使っています 「まー Stream.collect(Collectors.toList()) を Stream#toList() に書き換えて問題が起きるコード、Streamの使い方ではない別のところに問題を抱えてる気がするので別のところを直したほうがいい感はありますね」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@irof Javaは一度、既存のコレクションフレームワークを捨てて新しいのをしがらみなしで設計しないとどうしても辛くなると思うよ……」 / Twitter
- いろふさんはTwitterを使っています 「@nagise 「一度既存のコレクションフレームワークを捨てずに新しいのをしがらみありで設計した」のが1.4と言う……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@irof 捨てずにしがらみあり……🤔」 / Twitter
- いろふさんはTwitterを使っています 「@nagise HashTableとかVectorとか見え隠れしますし……少なくとも捨ててはいないかなぁと。。」 / Twitter
- がくぞさんはTwitterを使っています 「Date & Time API が追加できたんだし Collection Framework もぼちぼち今の時代に合わせた新しいものを作ってくれても……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@gakuzzzz Generics specializaition 入ってからにしよう?」 / Twitter
- がくぞさんはTwitterを使っています 「@nagise それは確かに(今時分からGenerics specializaitionありきで設計すすめてくれればスムーズなリリースが期待できるかも……?)」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「新しいコレクションライブラリ、追加すること自体は多分そんなでもないんだろうけど世の中サイドがそっちへ移行するのが大変そう」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「@kamekoopa 古いコレクションフレームワークで作られたアレコレが使えなくなるのはどうしても辛い。 せーので移行できる訳でもなし」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「@nagise むずかしい」 / Twitter
- がくぞさんはTwitterを使っています 「これなー。型クラスがあればフレームワークとかが対応してなくても自前で利用を進めるみたいな事が簡単にできるのだけど、今のJavaのエコシステムだとフレームワークが対応してくれないと利用するのが難しいってなっちゃうよね……」 / Twitter
- がくぞさんはTwitterを使っています 「Doma2はCollector検索があるから新しいCollection Frameworkが出てきても自前で簡単に対応できるので便利。(実際 vavr でも guava でも Eclipse Collection でもなんでも好きなコレクション型で取得できる)」 / Twitter
- がくぞさんはTwitterを使っています 「traverse/sequence 使えば元のデータ構造を維持できるよ!」 / Twitter
パターンマッチ
- がくぞさんはTwitterを使っています 「list .stream().forEach(obj -> c(b(a(obj)))); を list .stream() .map(a) .map(b) .forEach(c); にするか、 obj -> c(b(a(obj))) に適切な名前fooをつけてメソッド化して list .stream().forEach(foo); にしませんか? という提案をする事が多いのだけど、これパターンとして名前ないかな?」 / Twitter
- がくぞさんはTwitterを使っています 「パターンマッチで構造に対して分岐するのではなく、型に対して分岐するのはアンチパターンなので、Java18のアレをパターンマッチだーって喜んで喧伝するのはどうなんだろうなぁ……? 型で分岐したいのであれば動的なパターンマッチじゃなくてもっと適した静的な仕組みが大抵ありそう……」 / Twitter
- がくぞさんはTwitterを使っています 「そういえばガード使った場合の網羅性検査どうなってるんだろ?後で調べよ」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 構造に対しての分岐の準備だからですよ。 ぼくは型に対して分岐してパターンマッチだって喜んだツイートはしてなくて、ガード節があることとswitchでnullが扱えるのを喜んでるので別の人の話だとは思いますが。」 / Twitter
- がくぞさんはTwitterを使っています 「@kis 準備って事をもっとアピールできてて、現状のサンプルコードは望ましくない例だという事が広く伝われば、杞憂民も沸かなくて済むんですけどねー」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz まーそもそもあの形で使う機会ないのでは。 あとまあ、杞憂民は杞憂して喜びたいだけにも見えるので、そこまで対策する必要があるとも思えず。」 / Twitter
- がくぞさんはTwitterを使っています 「@kis 実際にScalaでは型で分岐するようなケースで不適切にパターンマッチが使われているケースがしばしばあって、コード保守する側として実際に被害を被っている状況があるので憂いているのですが、喜びたいだけに見えているのであればより悲しいですね……」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz あぁ、実際にScalaでそういうコードがあるんですね。 注意喚起というよりは、機能不足をけなしてるだけに見えてしまいました。」 / Twitter
- がくぞさんはTwitterを使っています 「@kis けないたいというより、パターンマッチの説明で型の分岐がメインの例にならないScalaですらその状況なので、現状のJava18の機能紹介サンプルコードが広まるとそういう誤解をより促進しそうだなーという不安の表れですね……」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 現状で導入された機能なわけで、又パターンマッチの機構として基本的な部分であり一番重要なところであることは間違いなく、JDKの実装が進んでいることは喜ばしく、そのように紹介するのが「アレをパターンマッチだーって喜んで喧伝するのは」みたいに書かれるとけなしてるようにしかみえませんでした」 / Twitter
- がくぞさんはTwitterを使っています 「@kis なるほど。僕もJDKの実装が進んでいることは喜ばしく思いますし、将来のための布石の実装だと適切に伝わる紹介であれば懸念も減るので、そういう紹介が増えるといいなと思っています……」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz 現状はプレビューで恐らく誰も使わず、次回Java 19で正式機能になるはずで、そのときにはrecordパターンがプレビューとして含まれるはずなので、そのときにはまとめて紹介されるんではないでしょうか。 みんなが実際に使うLTSバージョンでは両方正式機能になってるはずだし。」 / Twitter
- がくぞさんはTwitterを使っています 「@kis そうなれば変な誤解が広まることもなくハッピーになるのでそうなって欲しいですねー(まさに杞憂になることが望ましいと思ってます)」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@gakuzzzz デコンストラクションが一緒に正式機能になってれば、IntegerとStringでマッチさせるような例は出さないんじゃないかと思います。ウケなそうだし。 QiitaにJava 18新機能まとめ書いてるけど、nullが扱えることにフォーカスして、タイプパターンはあとまわしにしています。」 / Twitter
- がくぞさんはTwitterを使っています 「@kis ですねー、デコンストラクションほんと期待してます。 流石です!!!<nullが扱えることにフォーカスして、タイプパターンはあとまわし」 / Twitter
histric
histric-1
- 110416さんはTwitterを使っています 「scala 3 マクロで refined typeを自作するチュートリアル. わかりやすい. https://t.co/zo9SvWFFdd」 / Twitter
- Build your own refinement types in Scala 3
- がくぞさんはTwitterを使っています 「Javaの場合、標準APIがmutability前提になってる事が多いのでその辺でも初学者へのメッセージ性として厳しいものがあるんですよねぇ……まともに触る不変クラスがStringぐらいしかなかったり、標準Collectionフレームワームもimmutableに扱おうとするとAPIが足りなすぎたり……」 / Twitter
- 山本ユースケ™️さんはTwitterを使っています 「@gakuzzzz java.time.*やrecordのことも思い出してあげてください」 / Twitter
- がくぞさんはTwitterを使っています 「@yusuke recordはともかく初学者にいきなり java.time を例に説明するのは難易度高い気がするんですよねー…… java.time みたいなパッケージがもっと増えて既存のパッケージがどんどんdeprecatedになっていってくれるといいんですが……」 / Twitter
- がくぞさんはTwitterを使っています 「まー 確かに java.time みたいな新しいImmutable前提のパッケージが増えてる事は歓迎するのですが、一貫性の無さが余計に辛いというかメッセージ性を弱めてしまっているというか……」 / Twitter
- がくぞさんはTwitterを使っています 「recordもなー。実際ぎょむで使うにはlomvok.Withやopticsのようなものが無いと扱いづらくてImmutable不便ってイメージを持たれるだけになりそうな点も気になるんですよね……。その辺の不満をruntime-reflectionで解決するとそれはそれでまた静的検査を活かし難くなっていきますし……」 / Twitter
- がくぞさんはTwitterを使っています 「lombok」 / Twitter
- がくぞさんはTwitterを使っています 「あー個人的には全くvalをvarにオーバーライドできる事をもってダメな言語とは思ってないので、誤解を解くために敢えて書いておくと、varでオーバーライドできる仕様はreadonly/mutableなAPIを作るのに非常に合理的で、これはデータコピーを減らせるメリットもあり設計判断としては肯定的にみています」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「Kotlinのvalをvarにオーバーライドできるって話でKotlinはダメな言語みたいにいう人がいるのはわかるけど、Kotlinのvalはカスタムゲッターでも宣言できるので常に変更される(ローカル変数は違う)前提で使っている。 あれはプロパティであって、Immutableな何かを構成するのは別要素。」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「外部から変更可能ではない、つまりリードオンリーという事しか保証していない。 varにオーバーライド可能だからって嬉々としてやってるやつは見た事ないけど、心配する人たちはやってないことではなくできる事に目を向けるのかもしれない。」 / Twitter
- がくぞさんはTwitterを使っています 「実際readonlyとmutableが型レベルで分かれていて、静的検査をちゃんと使えているなら意図しない破壊的変更による不具合が起きるケースて余程変な使い方をした時だけでしょみたいな割り切りは理解できますし(とはいえrumtime-reflection濫用はそういう前提をぶち壊していきますが……」 / Twitter
- がくぞさんはTwitterを使っています 「自分がKotlinのこの仕様をよく話題に出すのは、設計思想の違いが端的に現れていて特徴的だなと思っているからですね」 / Twitter
- かとじゅんさんはTwitterを使っています 「DDDの「副作用のない関数」は関数型言語コミュニティの人たちにしか通じないことが多くて、Javaで副作用の局所化を考えたこともない人たちには割と難しい印象。」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「Scalaに無くて、Kotlinにある機能で細かく挙げると、 - カスタムプロパティ - 移譲のbyするやつ - コルーチン - ラムダでthisのスコープ変えるやつ?T.()-> R 細かくつつくとまだありそう」 / Twitter
- がくぞさんはTwitterを使っています 「ふむー - カスタムプロパティ:確かにScalaには無い - 委譲のbyするやつ:exportで同等の表現力が得られる - コルーチン:scala-asyncやMonadless(非標準)で近しい表現力が得られる - T.()-> R:Implicit Function Typesでもう少し広い表現力が得られる のでカスタムプロパティ以外は代替ありそう?」 / Twitter
- がくぞさんはTwitterを使っています 「Scalaに無くてKotlinにある機能だと、 - メソッド引数の最後のFunctionalInterfaceを分離して書ける機構(JavaのAPI呼びやすい) - var で val override できる機構 - flow-sensitive types - Contracts とかの方がScalaでは代替機能が無いので強そう」 / Twitter
- がくぞさんはTwitterを使っています 「Scala 2の範囲だとKotlinの方が機能的に優位な部分がそこそこあったのだけどScala 3でだいぶその差分を埋められてしまった感ある。 Scalaの方が機能的に優位な部分はKotlin的には対応優先度低そうだしなー。Multiple receiversとかどうなるか気になる」 / Twitter
- Naoki TakezoeさんはTwitterを使っています 「ScalaConでのLi HaoyiさんによるDatabricksでのScalaの利用状況についての発表。コードの半分以上がScalaだけど関数型プログラミングはそれほど積極的に使ってない。PlayやAkkaなども使っていない。入社して初めてScalaを書く人も多いけど特に問題ないとのこと。 https://t.co/TeVCE9FXLW」 / Twitter
- Scala at Scale at Databricks - Li Haoyi - YouTube
- Naoki TakezoeさんはTwitterを使っています 「個人的におっと思ったのが、スクリプティングにもScalaを利用しているという点。RubyやPythonと同等の簡潔さ、テストが難しいグルーコードにおけるコンパイル時チェックのメリット、assembly jarをデプロイするので実行環境にライブラリをインストールしたら環境が壊れたというようなこともない。」 / Twitter
- Naoki TakezoeさんはTwitterを使っています 「Databricksのエンジニアの多くは熱心なScalaファンというわけではないけどメリットがあるからScalaを使っている。もちろんSparkがScala/JVMで書かれているからというのは大きいんだろうけど、ある意味健全なScala利用事例なのではという気がした。」 / Twitter
- がくぞさんはTwitterを使っています 「nullとかの意味については同意。Maybe/Eitherの様な型名はNominal Typingの世界とStructural Typingの世界でまた変わってきそうな気もしますね。 Nominalだと同じ構造のデータ型でも newtype UserId = Int みたいにあえて別の型を定義する事もありますし(続」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「これについて考えてみると、Option/MaybeとResult/Eitherというように名前が分かれている件はやっぱりMaybeとEitherが最強だなという気持ちになる。名前から余計な“意味”を押し付けて来ずにデータ構造の説明に終始している🛒」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「反応を加味して考察したところそもそもEitherとResultを同じ概念の別名として考えるのが良くなかったようだ。Eitherにデータ構造の説明を超えた“意味”を与えた名称としてResultがあるという解釈を得た(?)」 / Twitter
- がくぞさんはTwitterを使っています 「newtypeとかしやすいように標準で提供するデータ型には余計な意味の無い名前をつけて欲しいみたいな話ならすごく賛成ですね」 / Twitter
- がくぞさんはTwitterを使っています 「例えばEitherとValidatedは構造としては同じなんだけど操作の特性が違ったりするしなー」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「val (x, ...xs) = lis に関しては、ほとんど使う事が無いけど、たまにあって。 必要な時は拡張関数でList<T>.firstAndRemains() : Pair<T, List<T>>みたいなものを用意することはある。 こんなやつ。命名は適当。 val (x, xs) = list.fistAndRemains()」 / Twitter
- がくぞさんはTwitterを使っています 「ScalaとKotlinの分割代入の記事にforループやLambda構文での利用について追記した https://t.co/NjNOCGf2T7」 / Twitter
- ScalaとKotlinの分割代入(っぽい機構)の比較
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「あ、Kotlinの事です。 実際にあったりしましたけど、途中で使わなくなったりしたのでなかなか必要だった、作って良かったというケースには遭遇しにくいなという感想です。Androidアプリ開発ではですけどね。」 / Twitter
- がくぞさんはTwitterを使っています 「Javaもパターンマッチ入った後でいいから変数宣言でパターン使えるようにして」 / Twitter
histric-2
- Takahiro YAMADAさんはTwitterを使っています 「前々から予兆はあったけど、Java 18からUTF-8がデフォルトになる見込み。 特に日本語Windows環境では影響あるだろうから要確認ですな。」 / Twitter
- OpenJDKさんはTwitterを使っています 「Proposed to target JDK 18: JEP 400: UTF-8 by Default: https://t.co/6lgR4mXcpH #jdk18 #openjdk #java」 / Twitter
- JEP 400: UTF-8 by Default
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JVMスレッドプールの使い方ガイドライン: - CPU-boundの計算のときは、コア数と同じだけの固定プールを使え。 - ブロッキングIOに対しては、処理ごとに新しいスレッドを作成できる可変プールを使え。ただし慎重に! - 非同期IOポーリング用に1つの高優先度スレッドを使え。 https://t.co/EU26OFO747」 / Twitter
- thread-pools.md
- がくぞさんはTwitterを使っています 「Java12 の String#indent は再帰データ構造の toString を実装するのに便利っぽ」 / Twitter
- Takahiro YAMADAさんはTwitterを使っています 「誤解を招きそうだったので更に補足すると、あくまでファイル入出力に関する話です。 https://t.co/6AWv3bJgkH それも最近(Java 7のNIO.2以降かな)ではUTF-8がデフォルトのAPIも増えてきているため、現状(Java 17まで)は統一が取れてない感じもありましたね。」 / Twitter
- がくぞさんはTwitterを使っています 「まーJavaのそれは名前付き引数呼び出しができないという言語機構上の欠点を無理やり補うためのイディオムですしねぇ…… 将来的にクラスの属性が増えた時もコンストラクタなら修正すべき箇所を静的検査で検出できるものがビルダーだと検出できなくなりますし欠点が多い……」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「ビルダーパターンとかでインスタンス作るの、正直、起点が分かりにくいな感があってあまり好きじゃないんですよね。 newが使えるシーンならnewできるほうが分かりやすいとは思う。 抽象型に対して具象型違うんですよ、みたいな時にはnewじゃ困るというライブラリ作成側の都合とかあったりはするけども」 / Twitter
- がくぞさんはTwitterを使っています 「名前付き引数呼び出しができるScalaとかKotlin使った方がいいと思います」 / Twitter
- がくぞさんはTwitterを使っています 「あー 同じシグネチャでもlubに定義が無いとunion typeからそのメンバ呼べないのか https://t.co/SgSZiUD7cY」 / Twitter
- Union Types - More Details
- がくぞさんはTwitterを使っています 「Javaの場合だとListインターフェイスの実装クラスを何選択するべきかでデータ構造や計算量を意識する必要がでてくる(現代だと脳死でArrayListでええやろみたいな状況は置いといて)けど、配列の実装が単一の言語だとそういう切っ掛けも得られにくいみたいな所あるよね」 / Twitter
- がくぞさんはTwitterを使っています 「配列の標準実装が一つしかない言語からJavaやScalaなどの言語の学習を始めて、データ構造がいっぱいあってどれ選べばいいかわからないってなってる初学者はそこそこ見る印象ある」 / Twitter
- がくぞさんはTwitterを使っています 「まーでもScalaやKotlinはSeq.applyやlistOfで実データ構造意識しなくてもオブジェクト作れるし、Javaも List.of ができたからそこまで意識されなくなっていくのかなー」 / Twitter
- がくぞさんはTwitterを使っています 「実際に定義するにはApplicativeが必要になってきちゃいますからねー。Scala標準ではApplicativeやMonadといった抽象は用意してないので…… FutureがIterable(2.13まではTraversable)に特化したものを用意してるので、それと混同するの僕もまれによくやります」 / Twitter
- かにかまさんはTwitterを使っています 「「sequenceとtraverseってScala標準だよね?」と思って調べたら標準じゃない、というのを何度か繰り返している。 謎の思い込み。」 / Twitter
- がくぞさんはTwitterを使っています 「標準ライブラリだけで sequence/traverse したい思いはありつつも、そのために標準にApplicative入れるのはちょっとScala wayでは無さそうという気もしており、なんか上手い落とし所ないのかな……?」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Java 17 に sealed class やパターンマッチが正式に入ったのは喜ばしいニュースなのだけどクラスの構文が重すぎる… 一方、全く別のレコード型の構文は record Apple(int i){}; のように書けて理想的なんだけど extends はできない。これクラス宣言にも使えたらいいんですけど」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「少し掘ってみると、軽量に書きたければ lombok の Data アノテーション使うのが正解…?」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「lombok の Value アノテーションを使って @Value final class Foo extends FooBar { int i; String s; }; みたいに書けということらしい。」 / Twitter
- がくぞさんはTwitterを使っています 「WEB+DB PRESS Vol.125 の Scala 3 クイックツアー 読みおわた! 型クラスにextension持たせるアイデアはいいなー。今まで型クラスのinstanceとsyntaxを別々にimportする必要があったのがこれでsyntaxを気にする必要が無くなる!嬉しい」 / Twitter
- がくぞさんはTwitterを使っています 「既存のDtoをrecordにしたいけど共通属性を親クラスに持たせてるから継承できないrecordにできないよ問題、共通属性は親クラスじゃなくて単純に別recordにして委譲する方向性になるとは思うのだけど、そうするとJsonの自動マッピングとかでpathが変わるのでScalaのexportのような仕組みが欲しくなるわね」 / Twitter
- うんこ💩HIZA💩ペンギンさんはTwitterを使っています 「@gakuzzzz Jacksonならば@JsonUnwrappedを使うとかですかね。(言語機能による解決ではないですが)」 / Twitter
- がくぞさんはTwitterを使っています 「@NetPenguin あー確かに 🍥JsonUnwrapped 使うのも良さそうですね!」 / Twitter
- がくぞさんはTwitterを使っています 「ExplicitNullsのようにコンパイラオプションでnullをbottom typeじゃなくす見たいな試みだったらJavaも採用しやすそうな気がするけどどうなんだろう? union types とか Null type がないと厳しいか?」 / Twitter
- がくぞさんはTwitterを使っています 「自分はJavaのジェネリクスが実装された当時、配列が共変であることの危険性や? extends, ? superなどの扱いについては認識してたけど、変性(variance)という言葉そのものを認知したのはScalaの学習してからだったなー」 / Twitter
- がくぞさんはTwitterを使っています 「Stream#toList はJava16から使えるのでいいんですが、Listが直接mapやfilterを持つとかは仮に現状でやろうとするとKotlinと同じ問題を抱えてしまうのでやらない気がしますね……」 / Twitter
- がくぞさんはTwitterを使っています 「やっぱJavaにもHKT入れましょう」 / Twitter
- がくぞさんはTwitterを使っています 「Java、named tupleとしてrecordも入ったし、genericsの上限境界として元々 & つかえるし、例外のmulti catch で | もあるんだから intersection types と union types も一級で使えるようにしよ」 / Twitter
- がくぞさんはTwitterを使っています 「JavaにEitherありすぎ問題」 / Twitter
- がくぞさんはTwitterを使っています 「@irof vavr https://t.co/Qvk6WgkJDH や fugue https://t.co/t5luUM0rxp や highj https://t.co/zQmnu7MADX や functional-java https://t.co/91K1tAQQ3O とかとか色々あるのでお好みでも」 / Twitter
- がくぞさんはTwitterを使っています 「そう言えばYAVIも自前でEither実装してた https://t.co/mcaKgZAY0E」 / Twitter
- yavi/Either.java at develop · making/yavi
- がくぞさんはTwitterを使っています 「Java8以前からサードパーティのライブラリでOptionの実装で出来の良いものは沢山あったのにどうして標準のOptionalはああなってしまったのか……(たぶん問題の本質としてはコンセプトが異なるものになぜOptionalと名付けてしまったのかが適切っぽいけど」 / Twitter
- wm3さんはTwitterを使っています 「あるブロック内だけレシーバーを変えるのって Ruby とか Groovy とかでもやられてて、その意味ではレシーバー付きの関数リテラルは Kotlin 特有というわけじゃないんだろうけど、レシーバーの差し替えを安全に使いやすい言語の一つではあると思う。」 / Twitter
- がくぞさんはTwitterを使っています 「確かに instance_eval とかもそうか」 / Twitter
- がくぞさんはTwitterを使っています 「なるほど。レシーバの省略以外にもextensionのスコープを限定してimport無しに使えるようにするのにも使われている感じですね。確かにその使い方は失念してました、ありがとうございます」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「んで特定のthisでしか生えてない 12.dp(dp値をpixel値に変更する関数)みたいな拡張関数にされたカスタムプロパティやModifierのチェーンメソッドが安全なComposable関数のコンテントビルダーとして使えるようにしてくれている。 まぁDSLの表現力やビルダーの安全な利用に関する部分でも有用という話か」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「待って、拡張関数なのか拡張プロパティなのか。」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「拡張プロパティでおけ」 / Twitter
- 執着心をなくす(Pooh3)さんはTwitterを使っています 「@gakuzzzz 拙い説明で申し訳ないですが、垂れ流しの呟きのなかからサルベージしてくださってありがとうございます🙏🙏」 / Twitter
- がくぞさんはTwitterを使っています 「@Pooh3Mobi とんでもない!こちらこそありがとうございますー!!」 / Twitter
- がくぞさんはTwitterを使っています 「とはいえこのモチベーションのために機能が実装されたというより、どちらかと言うと後から発見されたHackの類な気もします……? Function literals with receiver 機能導入時のモチベーションとか当時の経緯に詳しい人居たら教えて貰えると嬉しいですね」 / Twitter
- がくぞさんはTwitterを使っています 「Scalaの初学者がflatMapで躓いてるのをめちゃめちゃ沢山見てるので、Kotlinが ?.let に寄せた判断はそれはそれでわからなくも無いんですよね…… Python組み込み関数にもmapはあってもflat_mapは無いし、JSのArrayでもflatMapはmapより実装遅かったし。個人的にはflatMapの方が便利だと思ってますが」 / Twitter
- がくぞさんはTwitterを使っています 「語弊がありそう。Kotlinにも Collection#flatMap はある」 / Twitter
- がくぞさんはTwitterを使っています 「とはいえ今ではJavaでもRubyでもECMAScript/TypeScriptでもRustでもClojure(mapcat)でもC#(SelectMany)でもflatMapあるしもはや一般的なプログラミング語彙として認知されてて欲しい感はある」 / Twitter
- kawasimaさんはTwitterを使っています: 「Javaで他人を悩ませるコードを書くには、toString()に副作用のある処理を忍ばせておくことです。 デバッガ使ったり、ログ出したりすると、結果が変わる「観察者効果」を喰らわせることができます。」 / Twitter
- ∃ugene 🥙yokot∀さんはTwitterを使っています: 「@kmizu こと Scala は、バックエンドに scalac 使ってない、自動生成されたファイルの反映されないみたいな総合開発環境が主流なので、お店で食べるラーメン派と「インスタントも最近は進化してる」派の衝突みたいな状況で話が噛み合わなかったり BSP で本物のバックエンドがやっと使えるようになりましたが」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「"The idea of type-classes is that the behavior is bound to the type implicitly" なんかも、この批判が該当するのは、むしろimportとか明示しないで良いHaskellの型クラスの方であって、明示的な辞書渡しをやってるScalaのimplicit parameterはむしろ、Kotlinの提案に極めて近しいことやってる。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、これから主流の静的型付き言語に型クラスぽいものが入る例はこれからも増えてきそうな気がしてる。 最初のモチベーションが違うものであれ、どうもその辺りの必要性にぶつかるのではないかと感じる。」 / Twitter
- がくぞさんはTwitterを使っています 「for文を捨ててtraverse使いましょう」 / Twitter
- がくぞさんはTwitterを使っています 「for-yieldとかdo-notationとかがあれば早期リターンとか滅多に書かないからなぁ……」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Spring Bootの嫌なところは自動設定で余計なお世話が多い挙げ句、それを止めるにはソースコードを追わないとわからない(どころか止める方法がないことがわかったりする)。」 / Twitter
- がくぞさんはTwitterを使っています 「Javaのアレは現状ではまだネストした構造を分解できない(今後の展望には入ってる)のでパターンマッチと呼称するのに抵抗感がありますね……」 / Twitter
- がくぞさんはTwitterを使っています 「Genericsの型による分岐は現状のJVM上TypeTagのようなものが無いとできないと思われるのでScalaとかのようなコンパイラでTypeTag挿入するサポートが無いと厳しそうな印象ありますね Javaでこういう事やりたいなら型クラス的なインスタンスを明示的に引数で受け取る方がシンプルにできそうな気がしまし」 / Twitter
- union types - Google 検索
- shinharadさんはTwitterを使っています: 「Scalaのバージョン、今後はScala NextとScala LTSというラインに分けてリリースされるんだそう。各LTSのサポート期間は最低でも3年間。 "Long-term compatibility plans for Scala 3" https://t.co/vyx6n8nWuG」 / Twitter
- Long-term compatibility plans for Scala 3 | The Scala Programming Language
- 伊津野 英克さんはTwitterを使っています: 「Javaの起動速度ここまで速くなりました! と言われても他の言語ならそもそもそんなこと考えなくていいからなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「最近Javaだと嬉しいのJDBCドライバくらいになった感じはある。Nodejsのドライバ、仕様がバラバラだし、バッチ実行やカーソル更新がないとか、いろいろ困る。」 / Twitter
Idris
κeenのHappy Hacκing Blog
- 依存型のあるHaskellことIdrisってどんな言語? | κeenのHappy Hacκing Blog
- Idrisの基本文法 | κeenのHappy Hacκing Blog
- Idrisのインストール | κeenのHappy Hacκing Blog
- Idrisの型とデータ型 | κeenのHappy Hacκing Blog
- REPLでIdris小旅行 | κeenのHappy Hacκing Blog
- Idrisのインタフェースとモナドなどなど | κeenのHappy Hacκing Blog
- Idrisと高橋君 | κeenのHappy Hacκing Blog
- Idrisのモジュールとプレリュード、標準ライブラリ | κeenのHappy Hacκing Blog
- Idris手習い: ビッットマップ画像の書き出し | κeenのHappy Hacκing Blog
- Idrisの名前つきパラメータとGADT | κeenのHappy Hacκing Blog
- Idrisのパッケージとipkg | κeenのHappy Hacκing Blog
- Idrisdocの使い方 | κeenのHappy Hacκing Blog
- IdrisのテストとCI | κeenのHappy Hacκing Blog
- Idris面白機能:シンタックスシュガーとオーバーロード、あとユーザ定義構文 | κeenのHappy Hacκing Blog
- Idris面白機能:with構文と依存型、View | κeenのHappy Hacκing Blog
- Idris面白機能:文芸的Idris | κeenのHappy Hacκing Blog
- Idrisで依存型を使った定理証明入門 | κeenのHappy Hacκing Blog
- Idrisの依存型で高さが100%正しいAVL木を定義する | κeenのHappy Hacκing Blog
- IdrisのFFIとCodegen(C、JavaScript) | κeenのHappy Hacκing Blog
- IdrisのElaboratorリフレクションでメタプログラミング | κeenのHappy Hacκing Blog
- Idrisで正しいモノイドを定義したい | κeenのHappy Hacκing Blog
- Idrisの標準ライブラリを解説していくよ | κeenのHappy Hacκing Blog
- Idrisといくつかの帰納法 | κeenのHappy Hacκing Blog
- Idrisで証明がしやすい書き方 | κeenのHappy Hacκing Blog
- ☔️leign☔️さんはTwitterを使っています 「これに似たものとして「空でない自然数の集合は最小値を持つ」(つまり自然数の普通の順序は整列順序である)はよく使う。今日も体の標数の定義に使った。」 / Twitter
- プログラング言語Idrisに入門させたい(v0.9)
- えーりんさんはTwitterを使っています 「Idrisは型も変数みたいなもので、こうやれば命題(Type)に対して名前付けができることが分かった。 だいぶ証明が日本語で読める雰囲気になってきた。 https://t.co/76I1VJ5SoF」 / Twitter
- えーりんさんはTwitterを使っています 「命題変数は大文字を使うことで、混乱しないようにすることにした。 カラーリングはむしろ見づらくなったが。。」 / Twitter
- κeenさんはTwitterを使っています 「第2段。記事中で触れられてるコードをプログラミングしてる様子を写したよ。Twitterの尺の制約で標準ライブラリの再証明はなしと、一部コピペがある。急にコードが湧いてくるのはIdris処理系による自動生成。 https://t.co/1oQZfGd9R9」 / Twitter
- κeenさんはTwitterを使っています 「Idrisで型駆動開発でコードを半分くらい自動生成できる様子です。Emacs使ってますが他のエディタでもできます。 https://t.co/3VBQuSaAFb」 / Twitter
- SnocList recursive viewを型駆動開発してみよう in Idris2
Erlang・Elixir
Qiita
- Elixirで速度を追い求めるときのプログラミングスタイル PartⅡ,Pelemayの近況もあるよ - Qiita
- 大学でElixirを教えた話 - Qiita
- Elixir / Pelemay 研究の背景と意義 - Qiita
- ZEAM開発ログ: Elixir マクロ + LLVM で超並列プログラミング処理系を研究開発中 - Qiita
- ZEAM開発ログ v.0.2.1 Node.js と同じ原理の軽量コールバックスレッドを Elixir に実装してみた (実装編) - Qiita
- Elixirで速度を追い求めるときのプログラミングスタイル - Qiita
- なぜ僕の中でElixirが一番であり続けるのか - Qiita
- Elixir Wizards Dojo について - Qiita
- 忙しい研究者のためのテストコードとドキュメントの書き方、Elixir編 - Qiita
- Enum.mapと再帰スタイルの比較、ふたたび(末尾再帰版) - Qiita
- NervesJP #14 新年LT回 で話したこと (Elixir) - Qiita
- Elixr:ラムダ計算インタプリタ(2)ーCatch/Throwの使い方ー - Qiita
- [書評] プログラミングElixir第2版のインプレッションとアップデート - Qiita
- リアルタイムウェブな観点からElixir / Phoenix について - Qiita
- Erlang OTP 24.0.1 と Elixir 1.12.0 を asdf でインストールする - Qiita
- WSL2でDB付きElixir/Phoenix/Nxを使う最短手順 - Qiita
- NxとNIFの間で相互通信するには - Qiita
- Enum関数とパイプライン演算子からなるプログラミング「パラダイム」の起源: シリーズ「Elixirの歴史のインタビュー - Elixirの10周年を祝って」(1) - Qiita
- Nerves Livebook(世俗派関数型言語Elixir)で始める関数型プログラミング 〜ラズパイで楽しめるよ、ラズパイ持っていない人はPCで楽しめるよ(あ、Nervesはとれますけどね)〜 - Qiita
- Erlangのとても困ったところ:単一代入の思わぬ弊害 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Elixir で non-programmer 向けに DSL を作り提供する - c4se記:さっちゃんですよ☆
- 数学全然分からないけどElixirでFunctorを作ってみる - やわらかテック
- 【感想・まとめ】「関数型プログラミングなんもわからん。を考えよう」に参加してきました。 - やわらかテック
- ElixirでListMonadを作ってみる - やわらかテック
- 数学全然わからないけどElixirでFunctorを作ってみる - やわらかテック
- 数学全然わからないけどElixirでMonadを作ってみる - やわらかテック
- 関数型言語ElixirのIoTシステム開発への展開
- 産業用途に利用するのにElixirが向いているぞ
- mod_poppoさんはTwitterを使っています 「ビットフィールドに対するパターンマッチ、そういうのもあるのか #func_party」 / Twitter
- Rubyのenum系高階関数を elixirでも使いたい
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@kmizu 例外処理に関して,ElixirやErlangの考え方はいかがですか? try catchはあるのはあるのですが,基本的にはそれを例外処理として用いるのではなく,例外が起きたらプロセスごと異常終了してもらって,異常終了を外部から監視して適切な後処理をしつつ再起動することで次の処理を受け付ける思想です。」 / Twitter
- 艮 鮟鱇さんはTwitterを使っています 「The Many-to-One Parallel Signal Sending Optimization https://t.co/n1ia5TUAJB ErlangのN-to-1のsignal送信がむちゃくちゃ速くなった話。仕組みとしては、signalを送るときに送信先のキューにsignalを突っ込む必要があるが、そのときにロックをとるのをやめて、pidをハッシュ関数に放り込んで得た」 / Twitter
- The Many-to-One Parallel Signal Sending Optimization - Erlang/OTP
- 艮 鮟鱇さんはTwitterを使っています 「添字でアクセスできるslotsを用意して、そこに代わりにデータを放り込んでおく。同じプロセスは同じslotに割り当てられるので、Erlangが保証する「同じプロセスから送られたsignalは送られた順に届く」を満たしたまま、ロックの回数を減らすことができる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/itOG2yUkRA おもしろいなー。プロセスid -> slotのハッシュ関数が衝突したらどうするんだろう?って思ったけど別に衝突してもよかった。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ロックを見張っていて衝突が多かったら別戦略を取るって話は面白いな。たしかjemallocでもやっていた」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 ロックフリーにするのかと思ったけどスロットごとにロックはするんですね。分散されるので衝突が減るってだけでこんなに性能が上がるのか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana たぶん、そこらじゅうから一斉にメッセージを投げまくるようなプログラムでしょうけど、なかなかインパクトがありますね。」 / Twitter
- 数学全然わからないけどElixirでEitherを作ってみる - やわらかテック
- 【Elixirで実装】関数型言語でカプセル化をする方法 - やわらかテック
- The Erlang Runtime System
- 本の虫: Erlangについて思うところ
Julia
histric
histric-1
- Juliaという速くて書きやすい言語をちょっとだけ覗いてみたんだが、なにやらワクワクするものがあったので報告しようと思う - Qiita
- dc1394さんはTwitterを使っています 「このQiitaの記事のC++(Eigen使用)のコードを、Juliaに移植してみたら、かなり速くなった。具体的には、 C++(+Eigen): 166.81(秒) Julia: 14.240(秒) で、C++よりJuliaの方が12倍くらい速くなった。Julia優秀すぎる。今後もC++のコードをJuliaに移植していきたい。 https://t.co/SuUxyxGCoL」 / Twitter
- 水素原子に対するSchrödinger方程式を有限要素法で数値的に解いてみる(C++のソースコード付き) - Qiita
- 電子計算機の沼さんはTwitterを使っています 「面白がって最適化してみたけど,Julia版のコードが上がってないので比較はできない ただ調べた結果,固有値ソルバが全体時間の99%(それ以外は0.1秒)で,「速い固有値ソルバをコールするコンテスト」なので,言語の話じゃなくてリンクしてる物の違いとかだったんだと思います なので私はもう撤退.」 / Twitter
- dc1394さんはTwitterを使っています 「@Hishinuma_t Julia版のコードはGitHubのこちらにあげています。 https://t.co/DVf0gUicD8」 / Twitter
- dc1394/hydrogen_fem_julia: FEMで水素原子に対するSchrödinger方程式を解くコードです(Julia版)
- nkさんはTwitterを使っています 「実はよくわからない押しつけがましい人がよくわからない主張を繰り返すのでjulia使うのうざくなってきた」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「JET.jl すごいな。 そこそこ大きなコードを書いて人はJET.jlを使って、バグの有無や計算速度の劣化の有無を確認した方が良さそう。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 a = 2:100; a[a.∉(a*a',)] にはJuliaでよく使う基本的な事柄が詰め込まれており、理解する価値が十分にあると思う。 これで100以下の素数全体が得られる。 typeof, supertype, dump の使い方もついでに覚えてしまうと、「夜道で迷うこと」も少なくなるだろう。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 添付画像のコードは別スレで紹介したコード。 函数の引数の型がほとんど書かれておらず、Float64やInt64のような型名をユーザー側は全然入力していない。 函数の引数の型はJuliaにおける高速計算では書く必要がない。続く https://t.co/YoUgE28uOV」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 Julia言語の強みの1つは、他のLisp処理系と同様に、Julia自身がJuliaのコードを生成できることです。 この場合には、実行時に超高速に微分を計算する自動微分よりも、gradientを計算するJuliaのコードをSymbolics.jlに作らせた方が速い。 https://t.co/MOfABB90xy」 / Twitter
- public/HMC leapfrog Symbolics.ipynb at main · genkuroki/public
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 別ファイルに Symbolics.jl のシンプルな応用例を追加した。これ↓ https://t.co/BCyYHXzvLE 添付画像 ②自動微分を使用 ③Symbolics.jlを使って数式として微分を計算して、Juliaの函数に変換 計算時間 50 ms ←②自動微分 32 ms ←③Symbolics.jlの応用 Symbolics.jlが速い! https://t.co/wNAihw7HXn」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 しかし、このスレッドの内容を理解すれば裏で複雑な型システムが大活躍していることがわかる。 Juliaの計算が速いのはこの型システムのおかげ。 既存の遅いプログラミング言語をJulia並に速くするためには、Julia並の型システムを導入する必要があり、破壊的な変更が必要になるだろう。」 / Twitter
- Juliaの行列・ベクトルを完全に理解すっぞ!!
- Embedding Julia · The Julia Language
- Julia言語開発におけるCI - Advanced Technology Lab
- Shuhei KadowakiさんはTwitterを使っています 「#Julia言語 の新しいバージョン 1.7が出ました。このリリースで型推論と定数伝播をめちゃくちゃ改善したんですが、詳細をリリースノートに書いたのでぜひご覧ください。運が良ければバージョンをあげるだけでプログラムが早くなるかも笑 https://t.co/tmYBn2i4VQ」 / Twitter
- Julia 1.7 Highlights
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 3次元のランダムウォークもこんなに簡単。疑似乱数のシード値の指定も入れて、たったの4行。 Juliaが「超高級電卓」と呼ばれるゆえん。 10行程度で相当に色々な結果をプロットして確認できる。 https://t.co/QdwV3v0Wh9」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「そういえばJulia 1.7で疑似乱数を使った計算をする人は注意が必要で、1.7からデフォルトの乱数生成アルゴリズムが変わったので Random.seed! 関数で固定しただけでは乱数が再現しないです。 https://t.co/KF753DVtUV」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「これはJulia 1.6までの乱数生成を再現するにはどうすればいいかという話で、その必要がなければ素直に新しい疑似乱数生成器を使いましょう。軽くて速くなったらしいです。」 / Twitter
- Julia REPL stan accountさんはTwitterを使っています 「@bicycle1885 It’s quite tricky! PRNGs in Julia have *never* been guaranteed to generate identical sequences across Julia versions. It’s explicitly left as an implementation detail so that features and optimizations can be added later. For full reproducibility just store a vec of the values.」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@miguelraz_ You're right. But lazy people (including me) write code that depends on never-guaranteed features that have been preserved by chance. The tweet is intended to be a caution to those who failed to reproduce the previous results on Jupyter Notebook or other similar tools.」 / Twitter
- PeterChengさんはTwitterを使っています 「@bicycle1885 Since 1.7 change the default PRNG, you need to change from MersenneTwister to Random.Xoshiro」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@Cheng_Ching_Wen Yes, but the point of my tweet is to restore the old PRNG behavior after update.」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Julia 1.7のマルチスレッドの更新見てて、これC++11やな…ってなったの私だけですか(´・ω・`)」 / Twitter
- 「Julia 1.7」が公開 | OSDN Magazine
- Julia 1.7でスレッド機能が拡張され、型推論が改善
- Shuhei KadowakiさんはTwitterを使っています 「ここ半年くらいかけて取り組んでる #Julia言語 プロジェクトが形になってきた。基本的に自分一人の力でデザインも実装も進めなくてならないのでうまく行ってない時はかなりストレス溜まって辛かったけどその分だけ嬉しいね。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「これとか: https://t.co/CDhRutmNc9 これとか: https://t.co/iSdfxqhbAH これ: https://t.co/D2Bk7k4gRi」 / Twitter
- optimizer: Julia-level escape analysis by aviatesk · Pull Request #43800 · JuliaLang/julia
- optimizer: simple array SROA by aviatesk · Pull Request #43909 · JuliaLang/julia
- Miura HidekiさんはTwitterを使っています 「これ凄いな。最速のプログラムを作るプログラミング言語がJuliaになるまである」 / Twitter
- Miura HidekiさんはTwitterを使っています 「どのレベルのエスケープ解析なのか。unboxなデータ構造がどの程度簡潔なのかにもよるけど。」 / Twitter
- EscapeAnalysis · EscapeAnalysis.jl
- Shuhei KadowakiさんはTwitterを使っています 「KenoのこのPRほんとにすごい https://t.co/PnhC42FN2z アイディアの斬新さとかっていうよりは目の付け所が良いというか、出てきたベンチマークの結果を見て、実際にコンパイル時間とランタイムを両方同時に改善できるんだってちょっと感動してる。どうやったらこういうアイディアに辿り着けるんだろう」 / Twitter
- Take purity modeling seriously by Keno · Pull Request #43852 · JuliaLang/julia
- Shuhei KadowakiさんはTwitterを使っています 「気になる人これ見てみて: https://t.co/RWewtOJLnf コンパイラが賢くなりすぎて結構な数のベンチマークがもはや意味をなしてないっていう笑」 / Twitter
- NanosoldierReports/report.md at master · JuliaCI/NanosoldierReports
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Julia言語は深刻な正確性の問題を抱えている。Juliaでは複数のコードを組み合わせたときに予期せぬ挙動が発生することがあるが、Juliaコミュニティはコードの再利用による開発効率を重視しており、本質的な問題は解決されない。もはやJuliaは科学計算にはお勧めできない。 https://t.co/EOoW9YglVS」 / Twitter
- Why I no longer recommend Julia
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「これは実に難しい話だ。開発者は汎用性を重視するが、実際にはどんな汎用アルゴリズムの実装にも必ずなんらかのleaky abstractionが存在し、それらを複数組み合わせればどこかで予想不可能な挙動が発生する可能性がある。そしてformalな方法でこれらを完全に防御する技術はまだないのである。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「良い設計は変更が簡単なせいで、いずれ改悪されて悪い設計になってしまう。いっぽう悪い設計は簡単には変えられないので、いつまでも残る」 https://t.co/xzQHc0lxFD」 / Twitter
- monochromeさんはTwitterを使っています: 「これか Why I no longer recommend Julia https://t.co/EYBlPvv0oI」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています: 「@s_isshiki1969 あとこれです: https://t.co/xCk6EE9B8b」 / Twitter
- Correctness and composability bugs in the Julia ecosystem | Hacker News
- 黒木玄 Gen KurokiさんはTwitterを使っています: 「#Julia言語 Juliaの型は多くの場合にパラメータ付きになっており、パラメータを持つ型がネストしまくって、人間が読むべきでない代物になっていることもたまにあります。 型まわりの事柄の多くを自動的にやってくれる代わりに、裏ではおっそろしく複雑な型(魑魅魍魎)達が徘徊している感じ。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています: 「#Juliag言語 で効率的に計算するためには、 ①型安定性の確保 ②無駄なメモリ割り当ての削減 の2つが基本になります。それぞれ、問題を見つけるためには ① @ code_warntype ② @ time が基本的な道具になります。@ time の出力はタイムだけではなく、アロケーションの数字に注意を払う。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「抽象解釈で型を推定するとそうなりがちですよね。それが私が型を書きたくない理由の一つ」 / Twitter
Vala
- ValaによるGNOMEアプリケーションのプログラミング:Programing Bible - ITmedia エンタープライズ
- Vala - w_o’s diary
- Projects/Vala - GNOME Wiki!
Go
GoとPythonの比較
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「昨日雑なお気持ち表明をしてしまったので。 「GoとPythonの比較」 パッケージ管理について。Pythonはもともとpip、GoはGOROOTによるシステムワイドなパッケージ管理が基本。ごく最近pyproject.tomlやGOMODULESなどのプロジェクト単位のパッケージ管理が導入された。よって「似ている」」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「並行処理について。Go言語は高度なグリーンスレッドが存在する一方Pythonは並列処理には向かない。一方FutureはPythonにあるがGoにない(多分)。よって「似てない」」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「速度について。Go言語のhttpの実装は早いことで知られる一方、それ以外の処理においては必ずしも最速級の言語であるとは言えない(システム言語と呼ばれているものはGoよりも高速なことが多い)。Pythonはよく遅いと言われている。これはなんとも言えない」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「配列、スライスのインデックス指定について。Pythonでは配列の末尾からのインデックスとして負の値が使える一方、Goでは多分無理。よって「似てない」」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「型システムについて。Goの型システムの特徴はinterfaceと呼ばれるダックタイピング的機能である。一方Pythonは一応クラスベースだが、array-likeのようなインターフェース的な考え方も一応存在する。よって「似ている」」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「エラーハンドリングについて。Pythonにはraiseを用いた専用のエラーシステムがあるが、Goには無く(panicはあるが)第2引数を使ってエラーを通知する。よって似てない」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「読みやすさ。Goはコーディングルールを統一しやすい、クセが少なくて初心者でも読みやすいと言われる。一方Pythonもオフサイドルールで読みやすいと言われることがある。よって多分引き分け」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「書きやすさ。Pythonはよくプログラミング初心者におすすめされるが、GoはC開発者の移行を意識しているように思われる。どちらも学ぶことが少なくとっつきやすいという点では似ている」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「最後に: GoはPythonの代替になるか? 結論: GoはGoogleということもありビジネスサイドの人もよく知っており、またPythonに全く似ていないとは言い切れないという点で代替する価値はあるかもしれない。しかしもっとPythonの代替としては適した言語があるのではないだろうか?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@tsukimikaze774 ぱいそんの変数のスコープって変でしたっけ」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@tsukimikaze774 なるほど、これは怖いですね」 / Twitter
goroutine
- 【翻訳】goroutine の仕組み - まるまるこふこふ
- build-web-application-with-golang/02.7.md at master · astaxie/build-web-application-with-golang
- Go言語の並列処理 goroutineとchannel - Qiita
- Go言語感想文 - なるせにっき
- nobonoboさんのツイート: "一旦 #golang のgoroutineに慣れちゃうと他の環境でネイティブとグリーンそれぞれに同期操作が別々のため基礎ライブラリが2セットにダブってしまってるの超めんどくさすぎてツライ。"
- GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang - niconegoto Blog
- Futureとその周辺 | κeenのHappy Hacκing Blog
- 島鉄雄さんのツイート: "Emacs Lisp に Async/Await を実装しましたよ。 仕事のほとんどは generator.el と promise-core.el で済んでるので、TypeScript のやり方を参考に繋げただけです。 これで非同期処理を同期処理と同じように書けるよ。… https://t.co/YYOhoR1g33"
- TAN-Y(たに)さんのツイート: "・コルーチンは使うだけなら簡単。 ・std::futureは標準でawaitできるけど戻ってくるスレッドが毎度生成のワーカースレッドなので事実上使い物にならない。(まあこれは仕方ない) ・C++/WinRTはUWPのランタイムとからめてうまくawaitできるようにしてるんだろうなあと想像。"
- Big Sky :: 書評「Go言語による並行処理」
- 渋川よしきさんのツイート: "既存のgenerator base coroutine、coroutineとしても使えるけど、外部インタフェースとしては第一はiteratorなんだよな。coroutineがプリエンプティブ・マルチタスクのための言語機能というのであれば、今後一番複雑なタスク管理の中心になるasyncioと親和性高くデザインされる、というのは違和感ない"
- C++ でコルーチン (async/await 準備編) - Qiita
- C++ で async/await をする - Qiita
- DQNEOさんはTwitterを使っています 「#goconB @saki_engineer さんの発表よかった。最後の違和感と提言のところ、めちゃうなづいてしまった。結局GMPは構造体なので、それを操作してる主体はどこで動いてるのっていう疑問。」 / Twitter
- スケジューラから学ぶGoランタイム 〜code reading of runtime pkg〜 - Speaker Deck
- DQNEOさんはTwitterを使っています 「その辺が関数名やコードの場所として示されてたので、すごい価値がある。runtimeリーディングが楽になりそう。」 / Twitter
- DQNEOさんはTwitterを使っています 「しぶちゃりさん @sivchari の発表と合わせて見たら、より理解が深まりました。」 / Twitter
- goroutineの仕組みについて - Speaker Deck
- TsuzuさんはTwitterを使っています: 「Go書いてて思うのはgoroutineで裏で動いてる系のやつってstruct fieldにcontext持つ羽目になるからcontext渡すの微妙な気がしてio.Closerを実装するんだけどそのClose()を呼び出すためにctx.Done()を待機してClose()を呼ぶだけのgoroutineとか作ると無駄すぎてどうすればいいの・・ってなる」 / Twitter
- TsuzuさんはTwitterを使っています: 「結局struct fieldにcontextを持ってしまうのが丸くなってしまう」 / Twitter
グリーンスレッド
- グリーンスレッド - Wikipedia
- Green threads - Wikipedia
- Inside Meinheld - Qiita
- ytakanoさんはTwitterを使っています: 「Goは自前でコンテキストスイッチしているグリーンスレッド。M:Nとか関係ない。」 / Twitter
よくわかるcontextの使い方
- チェシャ猫さんはTwitterを使っています 「「Go Contextを完全に理解する」を聴講。 #gocon #goconA」 / Twitter
- チェシャ猫さんはTwitterを使っています 「「よくわかるcontextの使い方」、自分も読んだ。良い資料だと思う。 #gocon #goconA https://t.co/hLYlNnRCTT」 / Twitter
- よくわかるcontextの使い方
- チェシャ猫さんはTwitterを使っています 「これ自前で実装したら絶対 mutex の操作とかでミスりそう。 #gocon #goconA」 / Twitter
- チェシャ猫さんはTwitterを使っています 「これ紛らわしいのは(Go とは直接関係なく)Lambda 側でも「呼び出しの context」という言い回しが使われるからだよね。 #gocon #goconA」 / Twitter
- チェシャ猫さんはTwitterを使っています 「context のコードリーディング良いですね。この程度の分量なら簡単に読めるし、社内勉強会のネタとかにも良さそう。 #gocon #goconA」 / Twitter
- チェシャ猫さんはTwitterを使っています 「「言うほど Go を使いこなしてる?」いや、Go で機能が足りないという言われるのはその辺じゃなさそうだし、さすがにちょっと筋が違う気もする…。 #gocon #goconA」 / Twitter
エラーハンドリング・静的解析
- Motonori Iwata(カジュアルブロッカー)さんはTwitterを使っています 「shadow有効にするとか? https://t.co/P7d2x4SuIY」 / Twitter
- tools/analyzers.md at gopls/v0.7.3 · golang/tools
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「静的解析でなんとかならんの、と思いきや試した限りはならんらしい。うーむ。 / 1件のコメント https://t.co/I1bEPghWQY “エラーハンドリングをミスって大事故に - Qiita” https://t.co/7dEmcGBZ0y」 / Twitter
- エラーハンドリングをミスって大事故に - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そもそも if _, err := db.LoadContext(ctx, member); err != nil { じゃなくて _, err := db.LoadContext(ctx, member) if err != nil { と書くのではダメなの、タイプ数も変わらないし、と思うんだけどどうなんだろう」 / Twitter
- かにかまさんはTwitterを使っています 「@igrep 上の書き方だとerrのスコープがif文内に閉じたはず…(うろ覚えですが)。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko はい、まさにerrのスコープがifで閉じてしまったのが原因で起きたトラブルなので…」 / Twitter
- かにかまさんはTwitterを使っています 「@igrep ああ、そういうことでしたか。なるほど。 個人的にはスコープは狭めたいので、そもそも名前付き戻り値ってやつを使わないほうがよさげだなーって思いました。」 / Twitter
- Hajime HoshiさんはTwitterを使っています 「@igrep 一般的に変数のスコープは狭ければ狭いほどよいと思いますね」 / Twitter
- Hajime HoshiさんはTwitterを使っています 「@igrep ので Qiita の例でいうと自分が書くなら ``` if _, err := db.LoadContext(ctx, member); err != nil { return nil, xerrors.Errorf(": %w", err) } ``` と思ったんですが、そもそも名前付き戻り値が諸悪の根源に思えてきました…」 / Twitter
批判
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「ポインタやinterface{}やgoto等、Goの言語仕様の根底にありかつ多くの批判を受けている部分はどうしようもないな... (まあ言語ごとに得手不得手があるので仕方ない、苦手分野があることは認めるべき)」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Goへのヘイトに対する擁護、批判的思考ができてなくて現状追認してるだけの現実逃避しかねぇな 「いや、これでいいんだ!」って言ってるだけだから信者なんだよ。受け止めてライブラリを作りなさい。 https://t.co/b0OnJVZoMv」 / Twitter
- Goへのヘイトに対する考え方
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「大抵の高級言語は隠蔽してる参照とポインタをユーザーに見せることが、見せないことに対してどうしてメリットがあるんですか?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 アドレスの概念を学べる... (冗談です)」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 ああまあ参照よりわかりやすいというのはありますよね。参照先を書き換えるのか、どこを参照しているかを変えるのかが明確に区別されるので」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「@yasuo_ozu JSとかPythonを書いててそこらへん明確に区別したいことってあります?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 プログラミングに慣れてる人なら大丈夫なんですが初心者が躓くポイントではありますね」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 関数にオブジェクトを渡すとき、その中身を書き換えられるようにしたい場合とか。(アンチパターンみが深い)」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「うーん、Go言語にnilとgotoとinterface{}がなければな...」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「大抵のユースケースで ポインタ <<<<< Option なんですよね」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「まさにこれ、グリーンスレッドの存在が足手まといにしかならない局面ではGoじゃなくてもいいってなる(まあそこまでGoが悪いということもないと思うのですが)(Cに較べれば良いと思う)」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Webサーバーとかコンテナエンジンとかマイクロサービス作ろうってなったら俺でもじゃぁGoでやるか!ってなるけど スタートアップがモノリシックな業務アプリケーションを作るのにGoを使うわって言われるとえぇ…となってしまいますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Go言語を嫌う6個の理由 - さめたコーヒー https://t.co/s8AqEBHV0m 文字列とnilの件、仮にString(ポインタではなく)でnilが受け取れるようにしたとして、String実体を期待した所にnilがやってきた場合どういう挙動を望んでいるのだろうか?」 / Twitter
- Go言語を嫌う6個の理由 - さめたコーヒー
- Miura HidekiさんはTwitterを使っています 「え?Go言語って高階関数無いの?って思ったらあるみたい。じゃあ、filterが欲しければ定義すればいいじゃん」 / Twitter
- Seiya YazakiさんはTwitterを使っています 「@miura1729 Generics が(現時点では)無いので型ごとに手書きないしコード生成をする羽目になります > Go言語でfiterを定義 今後入るはずの Type Parameter (= generics) で解決する課題であり、提案書の example でその点が明確に触れられてもいます: https://t.co/pB9G9NOTfj」 / Twitter
- Type Parameters Proposal
- Miura HidekiさんはTwitterを使っています 「@saiya_moebius なるほど、Generics。Pascalの悪夢がよみがえってきました」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「Go、前に @KOBA789 が「あれはOS屋さんが最高のOSを作りたかったけど、OSを作っても人々使ってくれないからプログラミング言語に擬態して出荷させたもの」みたいなことを言っていて面白かったな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Goのソースコード今日読んでいたのだけど(goroutineの実装が面白そうとのうわさを聞いたので)、確かにOSのコードみたいだった。goroutineのコードはまだ見つかっていない」 / Twitter
- 知我麻社さんはTwitterを使っています 「nilに関しては妥当では? ポインタがないなら「なにも入っていない変数」とか必要ないと思うけど」 / Twitter
コスト
- ぬるぽへさんはTwitterを使っています 「Goの人って変数がスタックかヒープに行くか/allocationのコストとか気にしますか?CとRustだと気にするのは分かるんですが、そもそも高レベルランタイムな言語のGoだとそこらへん気にしなさそうなイメージがあったんですが一般的にどうなんでしょう」 / Twitter
- kubo39.dさんはTwitterを使っています 「@nullpo_head 一般には気にしないようですが、気になる人はnotinheapのようなコンパイラディレクティブを使って動的に検査ができるようです。 https://t.co/ofUuKZpHG0」 / Twitter
- src/runtime/HACKING - The Go Programming Language
- ぬるぽへさんはTwitterを使っています 「@shitsyndrome ありがとうございます、雑にまとめてしまうと気にしない場合は多いかもしれないが、現にnotinheapがあるように場合によっちゃ気にするという感じですかね、ありがとうございます!」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head パフォーマンスを気にする場合はprofilingしてボトルネックを探すのですが、allocationの回数を減らすのを気にすることはものによってはありますね。例えば https://t.co/apBvNfERwo とか。」 / Twitter
- rs/zerolog: Zero Allocation JSON Logger
- Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head あと変数がスタックに行くかヒープに行くかは go build -gcflags="-m" で調べられます。 "Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium" https://t.co/Z7mVYBBQal」 / Twitter
- Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium
- ぬるぽへさんはTwitterを使っています 「@hnakamur2 おーなるほど、loggerとかは重い処理代表の文字列処理もする上に何度も呼び出されるので、確かにその手のコストを気にする代表格ですね!あとそのフラグは知らなかったです、ありがとうございます」 / Twitter
名前なしメンバ
- ぬるぽへさんはTwitterを使っています 「マジかよと言われること覚悟で聞くんですが、is-aかつimplementationの再利用をしたいときにcomposition over inheritanceって結構大変じゃないですか?引数を受け流すためだけのボイラープレートを省略する何らかの言語機能がないと、メソッドが多いときに大変なわけですが、割とそんな言語機能はない」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@nullpo_head Goとかだと構造体に別の構造体を名前なしメンバとして追加すると、自動的に引数をフォワーディングするみたいな感じの動作になるやつあります。 https://t.co/UxP8SgsxK2」 / Twitter
- Effective Go - go.dev
- ぬるぽへさんはTwitterを使っています 「@rui314 ありがとうございます、これまさに調べたときに見つけててGoはやりやすいんだなーと思いました JavaとかC#もinterfaceのデフォルトメソッドを使えば同じことができるんですがRustだと難しく・・・」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@nullpo_head これもともとはPlan9のCから来てるはずなんですよね。https://t.co/kOYBhFOl2jの3.3」 / Twitter
- Plan 9 C Compilers
- ぬるぽへさんはTwitterを使っています 「@rui314 おーそうなんだ、といいつつまず"Plan9のC"とかいう存在を初めて知ってそっちに驚いちゃいました Plan9はほんとフロンティアだ...」 / Twitter
- satさんはTwitterを使っています 「@nullpo_head @rui314 おお、すげえ!しらんかった」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi @nullpo_head Plan 9 Cはヘッダファイルからヘッダファイルがインクルードするのを許さないとか、なんかいろいろあります。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@rui314 @satoru_takeuchi ぜんぜん知らない世界だ」 / Twitter
blog
- Golangのgoroutine周りを気合で理解する - それが僕には楽しかったんです。
- goroutineを調べたときに深掘りしたときに調べたまとめ - Flicker's Style++
- 「みんなのGo言語 第二版」補足。Go v1.16の新機能紹介など - 覚書
- Goroutineのプリエンプション | dtyler.io
- code-for-blog/channel-msgpersec.go at master · eliben/code-for-blog
- Goのモジュールを個別に更新する - daisuzu's notes
- Go言語によるCFB8暗号化 | フューチャー技術ブログ
- Go Conference Online 2021 Autumnが開催されました&作って学ぶシェル | フューチャー技術ブログ
- 「Contextを完全に理解する」というテーマでGo Conference 2021 Autumnに登壇しました | フューチャー技術ブログ
- Go Conference 2021 Autumn にGoの静的解析で登壇しました | フューチャー技術ブログ
- Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース - Publickey
- 待望のGo新機能のリリース!!でもちょっと待って!プロダクションコードに反映する前に・・・ | Money Forward Engineers' Blog
- Go 1.18集中連載 Workspacesモードを試してみた | フューチャー技術ブログ
- Go 1.19 Genericsのアップデート | フューチャー技術ブログ
- Go 1.19のメモリ周りの更新 | フューチャー技術ブログ
- たのしいGoリフレクション: 変数アサイン | フューチャー技術ブログ
- Goのforループの変数スコープについてのメモ - Arantium Maestum
- Go言語でポータブルなCI/CDパイプラインが定義可能に。「Dagger」がGo SDKを発表 - Publickey
- Go入門の軌跡 | フューチャー技術ブログ
- Goの抽象構文木(AST)でBoilerplate Codeを自動生成する | メルカリエンジニアリング
- Go1.19に採用されたPattern-defeating Quicksortの紹介 - エムスリーテックブログ
窓の杜
- ジェネリクスを導入した「Go 1.18」が公開 ~「Go」言語の仕様変更としては過去最大級 - 窓の杜
- 「Go 1.18.5」「Go 1.17.13」が公開、1件の脆弱性を修正 - 窓の杜
- プログラミング言語「Go 1.19」が公開 ~ドキュメントコメントがセクションタイトル・リンク・リストをサポート - 窓の杜
infoQ
- GoのジェネリックがGo 1.18 Beta 1でデビュー
- Go 1.18でジェネリック、ファジング、マルチモジュールサポートが安定版となり、パフォーマンスが向上
- Goジェネリクスの実装とパフォーマンスについて
OSDN
- 「Go 1.17」が公開、ジェネリクスをサポート | OSDN Magazine
- Go開発者の92%が「Go言語に満足」 | OSDN Magazine
- 「Go 1.19」 が登場 | OSDN Magazine
スライド
- 5分で完全理解するGoのiota - Speaker Deck
- Go1.19で採用された Pattern-defeating Quicksort の紹介 - Speaker Deck
- Go Memory Modelを読む【入門編】 - Google スライド
Zenn
- Go言語が好きな理由
- Goランタイムケーススタディ|Goでの並行処理を徹底解剖!
- 並行処理を支えるGoランタイム|Goでの並行処理を徹底解剖!
- Shiro KawaiさんはTwitterを使っています 「まあこれっすね。期待するものが違う。」 / Twitter
- Shinya KatoさんはTwitterを使っています 「Go は better C という雰囲気が強いので、Ruby のノリで書くと「こんな機能もないの?不便なんだが?」ってなりそうだけど、C 言語のノリで書くと「えっ?そんなこともやってくれるんですか?神ですか?」ってなるイメージ」 / Twitter
- Goの苦手な領域
- 渋川よしきさんはTwitterを使っています 「GoはめっちゃくっちゃにCPUヘビーな処理の場合はC++/Java/Rustに性能は劣るし、SIMDを活用するライブラリも少ない。I/Oヘビーなやつには強い。Webサービスとかミドルウェアには良い。あとはコンパイルが早くてクロスコンパイルが楽勝、という理由で使っている。 https://t.co/RT7khCCgpE」 / Twitter
- 渋川よしきさんはTwitterを使っています 「CPUもI/Oも性能が良くてメモリ消費も少なくてバイナリサイズも小さくてマルチコアが効率よく使えてクロスコンパイルも楽でビルドも高速でサードパーティライブラリも簡単に追加できていいエディタも手に入りやすい、という言語は存在しないので諦めるべし。どの欠点がどの程度許容できるか次第。」 / Twitter
- Goから学ぶI/O
- 原理原則から適切なgoroutineの数を考える
- gomockを完全に理解する
- Go 2のGenericsを使ってリストとHListを作る
- Goにおけるメモリ管理の可視化
- Goとマルチコアスケール実装
- Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話
- Goのなぜ問答
- Go言語のジェネリクス入門(1)
- OPA/Regoによる汎用的なGo言語の静的解析
- GoのTyped-nilの扱い
- Go1.19~のsync/atomicの新旧APIの使い分け
- kobaさんはTwitterを使っています: 「Golangの次のバージョンでProfile-Guided Optimization(PGO) がプレビューサポートされるそうです。 実行中にどこを実行したかを記録しておき、次のコンパイルの時にその情報にもとづいて頻繁に実行される部分をインライン化するなど強めの最適化をかけるという技術です。 https://t.co/6JOQz3nCUy」 / Twitter
- Go1.20 New Features
Qiita
- Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
- プログラミング(IT)初心者がgoroutineを理解しようと頑張ってみた。 - Qiita
- goroutineとチャネルの動きを図を使って理解する(和訳) - Qiita
- goroutineとスレッドの違いって? - Qiita
- goroutineのよさを理解するための低レイヤの話 - Qiita
- Goにおける等値と等価の考察(struct1==struct2と&struct1==&struct2とreflect.DeepEqual(struct1,struct2)とreflect.DeepEqual(&struct1,&struct2)) - Qiita
Twitter
- DQNEOさんはTwitterを使っています 「低レイヤだいぶ詳しくなったつもりだけど、Genericsはむずい。全然別の脳みそが必要な気がする。意味論とか型理論とか論理学的なジャンルなのかな。数学の集合論好きな人なら向いてるかもしれない #gospecreading」 / Twitter
- DQNEOさんはTwitterを使っています 「interface vs dynamic typeで既に抽象 vs 具象 という軸があるので、そこにさらに「汎用型 vs インスタ化された型」という軸が加わると、初心者にはだいぶ難しい気がする。教えるのが大変そう」 / Twitter
- DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
- Debugging Go Code with GDB - The Go Programming Language
- Masashi ShinbaraさんはTwitterを使っています 「Go に導入されるジェネリクスの利用方法を紹介した動画。使った方が良いところ、使わない方が良いところをインターフェイスやリフレクションとの比較を交えて紹介されていて分かりやすい。日本語字幕も付いてる。 https://t.co/fTJDHGT3hF https://t.co/v68EkBONCm」 / Twitter
- Go Day 2021 on Google Open Source Live | Using Generics in Go - YouTube
- Masashi ShinbaraさんはTwitterを使っています 「型から考えるのじゃなくて、コードから考えるというのは Go ぽい感じ。 https://t.co/fYsT2248qP」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@shin1x1 int 用の sort 関数と string 用の sort 関数と… みたいな、型が違うだけの重複コードがあるとき用って印象」 / Twitter
- Masashi ShinbaraさんはTwitterを使っています 「@tanakahisateru まさにそういう用途でしょうね。」 / Twitter
- がくぞさんはTwitterを使っています 「そう言えばGolangやTypeScriptはStructural Typingだけど、Structureの表現内に名前は含まれてるんだよなー。 完全にデータ型の集合を同一視する言語とかあったりするのかな?」 / Twitter
- zehnpaardさんはTwitterを使っています 「@gakuzzzz {x:str, y:str}と{a:str, b:str}を同一視するのは難しそう」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「Optionじゃなくてnullがあるところとか、usingじゃなくてdeferがある所とか、エラーハンドリングが手動とか、何かこだわり(もしくは合理的な妥協)が有るんだと思うので」 / Twitter
- medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「「Goが優れている」っていうので挙げられるのが「他の言語もそうやん」てのばっかりで ほんとうに「それは確かにGoにしかない利点ですねぐぬぬ」っていうのが「並行処理が爆速」しかない」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix 「待機するかもしれない関数を含む処理のときいちいち Promise 囲みとか async await 付けるとかしなくていい」ですかね」 / Twitter
- medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「@tanakahisateru @nakayoshix これは難しいですね。呼び出す時にgo付けるだけでいいっていうとそうなんですが 普通の書き方にPromiseで囲んでasync await付けるだけで非同期できるC# TS Python Nimとは違う世界観なので学習コストが…」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix えーと、なにか await したいときそこに到達するコールスタックの関数が全部 async でないといけなくて、待機するフロー自体も async でないといけない、というのに比べて、同期実行と go あるやつ呼ぶ場合との違いがないのは思考負荷が低いって感じで」 / Twitter
- medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「@tanakahisateru @nakayoshix それは、確かに」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@dumblepytech1 @nakayoshix まあ、クロスコンパイルできるとかGCがあるとかツールがワンパッケージで揃ってるとか、そういうのはGoならではの特徴じゃないでしょ、ホントに使って他と比較してから記事書いてる? というのは同意ですねー」 / Twitter
- ドキュネオさんはTwitterを使っています 「Go言語のスライス、使う側としてはめちゃくちゃ便利だし、実は裏側のコンパイラ/ランタイム実装もわりと簡単なので(2-3日で作れる)、これぞイノベーションという感じがする。」 / Twitter
- go スライス - Google 検索
- ジェネリックプログラミングを取り入れた「Go バージョン1.18ベータ1」 | TECH+
- Masaki HaraさんはTwitterを使っています 「絶対確実な後方互換性なんてのは幻想なんだから、リスクに応じた対策が入ってるべきなんだよな。Goの場合コンパイラバージョンで壊れるリスクはほとんど無視できるけど、パッケージはそうではなかった (のでモジュールが必要になった) ということなんだと思ってる」 / Twitter
- Goにおいてアクターモデルを実現するライブラリ"Molizen"とその未来 | さんぽしの散歩記
Swift
Swift
- がくぞさんはTwitterを使っています 「これやるにはflatMapだけじゃなくてsequence/traverse的な操作も必要そうですね。for await 使うのに Async Sequences にする必要がありそうみたいな話ですかね?」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「Swiftのasync/awaitについて同僚に解説してもらった。複数のデータを1つのAPIからバルクで取得して、要素ひとつひとつを別のAPIの引数にするみたいなN + 1的なコードをflatMapで書きたいのに型を合わせられない😇 https://t.co/E8Mk18dts4」 / Twitter
- flatMap(_:) | Apple Developer Documentation
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@gakuzzzz そうですね。まさにtraverseがあればいいScala的な直感では思います!」 / Twitter
- がくぞさんはTwitterを使っています 「@_yyu_ ですよねー」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@gakuzzzz for awaitは回す対象のコレクション的なものを逐次的に進めることしかできないと思っていて、コレクションの順を無視してどんどん進んでくれ🙏みたいな感じというかそういうことを書きたいですね。」 / Twitter
- がくぞさんはTwitterを使っています 「@_yyu_ あー なるほど、、、、、、」 / Twitter
- がくぞさんはTwitterを使っています 「async/await たしかに単体だと判りやすいんだけど、ループ中の使い方とかが言語によって色々違ってたりして、御託はいいからApplicativeとTraverse持ってこい!みたいな感情になるときあるよね」 / Twitter
- データ競合のない並列言語を目指すSwift
- Swift CollectionsはSwiftに新しいデータ構造をもたらす
- Swift 5.4が複数の可変数引数、リザルトビルダなどをサポート
- async/awaitとアクタをサポートするSwift 5.5
- Swiftの関数型の実行時表現 - Speaker Deck
- 並行性サポート、列挙型、プロパティラッパなどを強化したSwift 5.5
- Swiftが実験的に分散アクターをサポート
- 伊津野 英克さんはTwitterを使っています 「Swift ライクなテンプレート文字列は互換性の問題もないしいいよね。JavaScriptの`${value}`は言語としての一貫性がなぁ。」 / Twitter
- Swift Playgrounds 4.0でiPadを使ったiOSアプリ作成が可能に
- SwiftLintがSwift5.6をサポート
- なぜSwiftのプロトコルはジェネリクスをサポートしないのか - Qiita
- JFrog ArtifactoryがSwift向けのバイナリ依存関係をサポート
- Swiftコンパイラで採用されているパターンマッチの網羅性チェックの理論と実装 - Qiita
- Swift言語の分散アクターライブラリー - prog-lang-sys-ja - Zulip
- Swift.org - Introducing Swift Distributed Actors
- Swift 5.5から登場したActorについて
- mod_poppoさんはTwitterを使っています: 「Compiling Swift generics, Part I https://t.co/gcGwSlq4oR Swiftのジェネリクスの実装の解説らしい」 / Twitter
- Compiling Swift generics, Part I - Development / Compiler - Swift Forums
- Swift Concurrencyでセマフォを作る - クックパッド開発者ブログ
- 【Swift】async/awaitはどのようにして動いているのかLLVMのレベルで調べてみる - Qiita
- SwiftUIがチャート、データ駆動型ナビゲーションなどを提供
- SwiftUI 3の新機能
- SwiftUI from hobby to production - STORES Product Blog
- Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19 - Publickey
- Swiftで代数学入門 〜 1. 数とは何か? - Qiita
- SwiftyMathで学ぶ数学(抽象代数学) - Speaker Deck
Rust
その他
- The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
- Checklist - Rust API Guidelines
- 発展的な移行戦略 - エディションガイド
- chumsky - Rust
- Rustのビルドを高速化する方法 | POSTD
- 「Rust」言語のインストーラー「Rustup」が「Visual Studio 2022」の自動導入に対応 - 窓の杜
- Why does Rust generate LLVM IR in an architecture-specific way and using empty arrays for mutable static variables? - Stack Overflow
- Drop alignment padding fields in type definitions in LLVM IR - compiler - Rust Internals
- brendanzab/codespan: Beautiful diagnostic reporting for text-based programming languages.
- tokio-rs/rdbc: Rust DataBase Connectivity (RDBC) :: Common Rust API for database drivers
- color-backtrace - crates.io: Rust Package Registry
- lunatic-solutions/lunatic: Lunatic is an Erlang-inspired runtime for WebAssembly
- Redex: Practical Semantics Engineering
- Welcome to PLT Redex
- nikomatsakis/a-mir-formality: a PLT redex model of MIR and its type system
- KOBA789さんはTwitterを使っています: 「よく勘違いされていますが、Rust はメモリリークの防止を保証しません "memory leaks are memory safe in Rust" https://t.co/pj1CXN3QKQ / “なぜRustはメモリ安全なのかをC言語のコードと考える - Qiita” https://t.co/bWvZ69T6cA」 / Twitter
- Reference Cycles Can Leak Memory - The Rust Programming Language
- KOBA789さんはTwitterを使っています: 「@KasuyaMofu はい。あえて正確性を欠く説明をすると、オブジェクトプールとメモリリークの違いってどこにあるんですか、みたいな問いを立てるとその保証が無理筋であることが想像できるんではないかと思います」 / Twitter
- 高階トレイト境界
- Rustの採用が進んだ「Android 13」、メモリ破壊バグは減少、脆弱性の深刻度も低下傾向 - 窓の杜
モジュール
- ぬるぽへさんはTwitterを使っています 「Rustのモジュールはそのあたりめちゃくちゃいいですね、モジュールはファイル/フォルダに対応していて、フォルダのトップにかならずpublicなinterfaceを宣言するファイルがあるわけで、少なくともファイルを一つ読めばそのモジュールのパブリックなin方向のインターフェースはわかる」 / Twitter
- ぬるぽへさんはTwitterを使っています 「ただファイルを読む必要があるからファイル構造だけで、なんとなくプログラムのコンポーネントの依存関係がわかるというわけではなく、あと何が公開されているかと比較して、何に依存しているかは全ファイルのuseを見ないと分からない crate単位で何に依存してるかはcargo.toml見ればわかるんだけど」 / Twitter
- ぬるぽへさんはTwitterを使っています 「OSSのコードベースを読めるようにはなるには、「土地勘」、つまりどんなフォルダ構成で、どこがだいたいどのモジュールか、みたいな感覚を育てるわけなんですが、これってソースのモジュールのグラフ構造とFSの木構造にセマンティクスのギャップがあってそれを埋める必要があるからな気がするのよな」 / Twitter
- ぬるぽへさんはTwitterを使っています 「工学的/生産性な側面から見たプログラムのモジュールとは何か、そしてモジュールの依存構造のグラフをどうやってうまくFSにマップして、ソースコードの構造からすぐにモジュールのグラフが意味のある単位で見えるようにするかよなー、シンボリックリンクとかを素朴に張ってみてもfindとかと相性悪いし」 / Twitter
- ぬるぽへさんはTwitterを使っています 「少なくとも僕のモジュールの定義(?)は、「内部のインターフェースをカプセル化して、その一部のみを外部に公開することができるような単位」で、それはまぁネストしうるんですが、モジュール間の依存をどんどん増やすのに負のインセンティブが言語にあったほうがスパゲティ化を防げると思うのよね」 / Twitter
- まげぱはらへりさんはTwitterを使っています 「負のインセンティブが強すぎると一つ巨大なスパゲティカラマリーノなモジュールになりがちなので難度設定むずかしそう。言語仕様として難易度を持つんじゃなくて、設定で外部依存の難易度をプロジェクト(?)作る人がビルド単位で設定できるようになったりはしないものか。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「> 負のインセンティブが強すぎると一つ巨大なスパゲティカラマリーノなモジュールになりがち なりそう・・・」 / Twitter
GATs
- Hideyuki TanakaさんはTwitterを使っています 「ほんとにstableになるん? / 1件のコメント https://t.co/inS3QQPc5B “The push for GATs stabilization | Rust Blog” (3 users) https://t.co/9IVP4JfbRz」 / Twitter
- The push for GATs stabilization | Rust Blog
- Hideyuki TanakaさんはTwitterを使っています 「RustにGATsが入るとこういうダミーのstructにたいしてimpl実装することで、Haskellの型クラスみたいに高階型を疑似的にtraitのインスタンスにすることができなくもない感じになるっぽいけど、RustのいうところのHKTを入れるのは無理なんか? https://t.co/u1MI1bnFHc」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「まあともかくなんにせよこれが入ったらRustでもFunctorとかモナドとかが定義できるようになる気がするから、そういうのなんとかしてRustでやりたい人には朗報かもな(´・_・`)」 / Twitter
- κeenさんはTwitterを使っています: 「Rustで長らく望まれてきたGATがそろそろ安定化しそうということで、GATで何ができて現状でどういう問題が知られているのかなどを解説している。 A shiny future with GATs | Jack Huey’s blog https://t.co/UeDxxuTu5J」 / Twitter
- A shiny future with GATs | Jack Huey’s blog
GhoseCell
- yukiさんはTwitterを使っています 「Rustはaliasing (shared reference) XOR mutablilityの関係でdoubly-linked list等の実装がとても辛い。そこでGhoseCellという、データに対しての権限を複数持てるデータ構造の提案。Coq等で健全性の証明もされている。/GhostCell: Separating Permissions from Data in Rust https://t.co/ZAcAMjBUKF」 / Twitter
- GhostCell: Separating Permissions from Data in Rust
- yukiさんはTwitterを使っています 「(下記は論文を雑に読んだメモです。理解が間違ってるかもしれません:pray:)Branded Typesという昔ながらの関数型プログラミングの技法を再利用している。この型は、state-dependency typesという型を簡易的にシミュレートするために、幽霊型とランク2多相を結合した型になっている、らしい。」 / Twitter
- yukiさんはTwitterを使っています 「肝心のdoubly-linked listの実装例。GhostCellは中にPhantom Lifetimesとでも呼べるInvariantLifetimeという型を持っていて、それがBranded Typesのbrandを表現している。Rustはライフタイムにはランク2多相をサポートしているため。/https://t.co/IYvl4A8b3Z」 / Twitter
- ghostcell/src/dlist_arena.rs · master · FP / ghostcell · GitLab
- yukiさんはTwitterを使っています 「これを利用することで、Rustプログラマはunsafeでスピードを出す一方で安全性の保証を犠牲にするか、あるいは安全性の保証を得ることでスピードを犠牲にするかという2択から解放されることになる。ベンチマークを見ても、GhostCellは爆速になってる。」 / Twitter
proc-macro
- yukiさんはTwitterを使っています 「このリポジトリをcloneしてrust-analyzer入りのVSCodeで開くと、開いた瞬間に走るcargo checkによってProcedural Macrosが実行され、たとえばlocalhost:8080に~/.ssh/id_rsaにある中身が読み出されてしまうってこと?😨 こわっ😨/lucky/bad_actor_poc https://t.co/r4HFXUFJ0Z」 / Twitter
- lucky/bad_actor_poc
- uint256_tさんはTwitterを使っています 「proc-macroはやっぱりサンドボックスか何かで動かないといけなさそうね(wasm?」 / Twitter
メモリ安全性
- さいぺさんはTwitterを使っています 「Rustのメモリ安全性を、借用とlifetimeではなく、メモリへのunique accessとshared accessから説明した記事。 この導入だと、SendとSyncへの流れが自然でわかりやすい Rust: A unique perspective https://t.co/yGotPZjzB8」 / Twitter
- Rust: A unique perspective
- さいぺさんはTwitterを使っています 「mutキーワードをuniqに変更する提案があったの初めて知った」 / Twitter
GC 有無
- 伊津野 英克さんはTwitterを使っています 「GC付きのRustがほしいのは、ほんの一部で限定的にGC使いたいというニーズがあるからだと思うので変な主張ではないと思うけど。w3mは文字列管理にGC使ってたはずで同じように自己参照とか不変だけど可変長データオブジェクトとかはGCの対象にした方が便利だよね、という話ではと。」 / Twitter
- [2110.01098] Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment
- κeenさんはTwitterを使っています 「これねー。ちょっとの工夫でコンパイルが通るものをどう扱うか(matchの所有権移動とか)で難しい。顕著に「受理されない」と感じるのはマルチスレッドでのデータ共有とグローバル変数やコンフィグとかの大域的な値を雑に扱うコード。文字列やベクタは扱いが面倒になるけど無理ってほどではない。」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「今日はRustとGCの話しとなって、やっぱりGCを持っていないRustが安全性のためにどういうコードを受理しなくなったのか?という部分を勉強しておかないと、RustはGCがあると目的達成が困難な用途で使うべきという主張に説得力を持たせられないな😇」 / Twitter
- まっちゃらさんはTwitterを使っています 「@_yyu_ The art of Multiprocessor ProgrammingにGCがない場合の実装が困難とかやる方法が未知となっているアルゴリズムがいくつかあった気がする(記憶が曖昧)からヒントになるかも₍₍ (ง´・_・`)ว ⁾⁾」 / Twitter
- κeenさんはTwitterを使っています 「ちょっとの工夫でコンパイルが通るのは例えばこのコード。このままだとコンパイルが通らないんだけど1文字の修正で通る(x → _)。こういうのを「受理されない」ととらえるか「同等のコード」ととらえるかで話が変わる。 https://t.co/wrpQ7yqxSM」 / Twitter
- Rust Playground
- κeenさんはTwitterを使っています 「GCの有無が効いてくるケース=RustでRc/Arcが必要になるケースととらえるとほぼ並行なプログラムを書きたいときかな(ロックやコネクションプールなど)。そういうときはRc/Arcがあるから困ることはない。どちらかというと普段プログラムを書くときに無駄にメモリを意識させられるとかの方が困る。」 / Twitter
- κeenさんはTwitterを使っています 「こういう他の言語で手癖で書いてるようなコードがRustだと特有の書き方要求される部分が学習難易度が高いと言われる要因の1つかな。一度覚えてしまえば手癖になるので書くときに毎回頭使ってる訳ではない。」 / Twitter
- κeenさんはTwitterを使っています 「もうちょっとちゃんと筋道立てて説明したい。 1 所有権システムが拒否するのはリソースを開放する場所が静的に決まらないコードである 2 そういうのはa コードが複雑で静的に解析できないb 入力に応じて開放する場所が変わるc 並行な実行でコンパイル時に決定不能d C FFIなどがある」 / Twitter
- κeenさんはTwitterを使っています 「3 aの大部分はコードの工夫でどうにかなる 4 aの残りの大部分とbはRcでカバーできる 5 cはArcでカバーできる 6 本当にどうしようもないaの残りとC FFIはunsafeでカバーできる 7 なので「無理」なケースはほぼないが、コードを書く労力は(主に3のケースで)増えがち ってところでどうだろう。」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@blackenedgold すごい雑な投稿に詳しい説明ありがとうございます🙇♂️意図としても何かのアルゴリズムが完全に記述できないということはほぼないと思っていて、意味的に同じ複数のプログラムのうち、リソース解放を静的に特定するためどれかしらの書き方にしなければならない(3)のパターンが知りたい感じでした。」 / Twitter
- κeenさんはTwitterを使っています 「@_yyu_ 私もよく訊かれて回答に窮していたので整理するちょうどいいきっかけでした。 (3)は一般論としてはもちろん所有権/参照/ライフタイムの制約から外れたコードなんですが具体例は各個撃破というか1つ1つ経験で覚えてるので難しいですね 😇」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Rustの意味でのSafety、GCが保証する事項と被る部分もあるけど被らない部分もたくさんあるので、その切り口はあんまりな気がするな…(´・ω・`)」 / Twitter
UB
- κeenさんはTwitterを使っています 「Rustでは未定義動作を防げるがそれとは別に、意図せず情報が漏れてしまうことがある。例えばwriteはOSがメモリを読み取るので別ライブラリのメモリでも渡せてしまうとか。何がどこまで見えるのか考えてもいいんじゃないと。 Broken Encapsulation · sunfishcode's blog https://t.co/rABHKskffv」 / Twitter
- Broken Encapsulation · sunfishcode's blog
- κeenさんはTwitterを使っています 「UBはコンパイル時の懸念でこれは実行時の懸念なので区別はあるけど、コード書くときに保証されてることと保証されてないことの別を考えるといいよねってことかな。細かいこと言いだすとポインタのアドレスでメモリアロケーションの回数が漏れるとかもあり、結構難しい。abstract execution周り?」 / Twitter
tsc
- ドッグさんはTwitterを使っています 「SWC の開発者が TypeScript 型チェッカを(Rust ではなく)Go で実装してる話.tsc のソースは Rust が禁止している mut な値の共有を多用しているので Rust へのポーティングが困難だった | 'I’m porting tsc to Go' https://t.co/cJ26e0aSrW」 / Twitter
- I'm porting tsc to Go
- ドッグさんはTwitterを使っています 「これは僕も前々から思ってた Rust の言語設計ゆえの大きな欠点の1つだと思う.例えば Java みたいな既存言語の実装からのポーティングが,実装の設計を大きく変えないと実現できない(無理にやろうとすると Rc とか RefCell を多用することになるはず)」 / Twitter
- ドッグさんはTwitterを使っています 「まあしかし,この人とは別に Rust で TS の型チェッカを書いてる人も https://t.co/motA8xiJCO」 / Twitter
tyty
- ドッグさんはTwitterを使っています 「TypeScript の型チェッカを Rust で書いてるらしい.まだ公開されてないけどいずれオープンソースにする予定 | 'tyty' https://t.co/CFU8jSBLCJ」 / Twitter
- tyty
- ドッグさんはTwitterを使っています 「TypeScript の型チェックは遅いので,バンドラ(esbuild とか)は TS を JS に変換する時に型チェックをしない(別途チェックされる前提).型チェック自体は遅いままなのが現状.唯一 swc はこの問題を解決しようとしてるけど,オープンソースになるか怪しい(https://t.co/zT59UvhyMi)」 / Twitter
- TypeScript type checker · Issue #571 · swc-project/swc
- monochromeさんはTwitterを使っています 「@Linda_pp 世界をRustで書き換えればOK(炎上」 / Twitter
- ドッグさんはTwitterを使っています 「@s_isshiki1969 本家 TS コンパイラが TS 以外で書かれることはまず無さそう… 本家の実装をポーティングすると本家への追従が一番重いタスクになるので,そうなると本家と同じ設計で実装できるかはメンテの容易さにかなり影響してきそうですね」 / Twitter
- monochromeさんはTwitterを使っています 「@Linda_pp TSインタプリタをRustで書けばコンパイルもV8も不要になるし、万事解決…」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcの経験で動的型付け言語で抽象解釈みたいなテクニックで型付けを出来る限り高速で行いたいなら、共有されたポインタをガンガン書き換える感じになるのでRustはとっても分が悪いだろうなって凄く思う >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、共有されたポインタをガンガン書き換えるのが本当に最適解かはよくわからない。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「共用する部分の管理は参照カウントよりそれなりに洗練されたGCアルゴリズムの方が効率が言いような気が凄くする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ランタイムがでっかくなるとかチャンク内のメモリマップが必要になるとか色々課題はあるわけだけど」 / Twitter
unsafe
- monochromeさんはTwitterを使っています 「GC作ってた時にこれでハマった」 / Twitter
- κeenさんはTwitterを使っています 「unsafeを使うのは難しいよねって話題。そうか、初期化のつもりでフィールドに代入すると古い値をdropする処理が入って落ちるケースがあるのか。 Uninitialized Memory: Unsafe Rust is Too Hard | Armin Ronacher's Thoughts and Writings https://t.co/7mmx1PQLbu」 / Twitter
- Uninitialized Memory: Unsafe Rust is Too Hard | Armin Ronacher's Thoughts and Writings
- κeenさんはTwitterを使っています 「これが落ちるの認識してなかった https://t.co/sp4lpu8lAB」 / Twitter
- Rust Playground
表現力
- Masaki HaraさんはTwitterを使っています 「「Rustでコンパイル通すのにTipsが必要って、要するに表現力低いんじゃないの」というのは、自分はYesという回答でいいと思うんだけど、ちゃんと整理する必要がありそう。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「まずここでいう「表現力が低い」っていうのは「他言語から1対1で移植できないの?」という風に解釈していいと思う。その上で、どの言語から移植するかによって状況は異なる。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「JS, Java, Pythonのような言語からの比較で考えると、GCがないことが一番本質的に効いてくると思う。あとGIL/GVLがないというのもあるけどこっちはある程度何とかなる。 GCがなくて循環参照が作りにくいこと以外は、最悪オブジェクトを全部Arc<Mutex<T>>にすればいいから多分なんとかなる。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「考えてみると他にもあるな。GoだとinterfaceからinterfaceへのダウンキャストができるけどRustはRTTIやリフレクションを持たないから同様のことを実現するのは難しい。多分RTTIをライブラリレベルで頑張ってエミュレーションするとかになると思う。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「CやC++からの比較でいうと、これはもう安全性を証明する必要があるから当然書き方は強い制約を受ける。安全かどうか局所的な推論で示せないようなコードは書けない、というのがこの場合の「表現力が低い」の実態だと思う。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「unsafeを使うという覚悟ができてればある程度は対応付けられると思うけど、厳密にそうとは言えないものもある。たとえばeffective types (いわゆるstrict aliasing) の概念はRustにはなくて、より強い&Tとより弱い*const Tしかないから、1対1移植で同程度の最適化に持ち込むのは難しそう。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「C/C++からRustに移植するなら、パフォーマンスは保ちたいだろうという前提でここまで話したけど、そうではなく動けばいいのであれば話はもう少し簡単になるはずで、困ったら全部にMutex<T>をつけて回るみたいなのでなんとかなる可能性はある。」 / Twitter
新しい命令型言語・数学偏重に対する批判
- hsjoihsさんはTwitterを使っています 「KMC で「静的型 vs. 動的型」の話がされていたので、「関数型言語の特徴」とされがちなものの多くは、どちらかというと「C や(かつての) Java や (かつての) C++ が有していた欠点」とでも形容すべきもの、という話をした。「C/C++/Java vs. LL 言語」と「静的型 vs. 動的型」の混同に注意、と述べた。」 / Twitter
- hsjoihsさんはTwitterを使っています 「> Rust のことを関数型プログラミング言語と呼んでいる人がいたら、その人は Rust のことも関数型プログラミングのこともどちらもわかっていない可能性が高い https://t.co/SxYUEM6okp そう、Rust は「関数型言語の特徴」とされがちな機能の多くを含有しているが、明確に命令型スタイルの言語。」 / Twitter
- 六本木ではたらくソフトウェアエンジニアへのよくある質問とその答え (FAQ) (2015 - 2017) - hayato
- hsjoihsさんはTwitterを使っています 「かつて有名どころの命令型言語が軒並み採用してこなかった便利な仕組みが数多く導入されている、新しくて便利な命令型言語ですよ。たしかにかつての Rust はだいぶとっつきにくかったものの、今や(実行速度を損なわない範囲で)使いやすさを向上すべく日進月歩で進化している https://t.co/JdSVDI04kf」 / Twitter
- きひろちゃん(9歳幼女)さんはTwitterを使っています 「俺の目にはトレイトはオブジェクト指向の正当進化に見えるんだが、本当はHaskellの型クラスからの流用らしいので結局関数型おべんきょ不可避か???」 / Twitter
- hsjoihsさんはTwitterを使っています 「@aki33524 Rust、「関数型言語の諸々を採用している」というよりは「関数型言語でよく採用されており、伝統的に命令型言語であまり採用されてこなかった諸機能を採用している」という印象があり、関数型おべんきょにより得られる納得はそこそこあると思います(むしろRust先にやって後で関数型やることもできそう」 / Twitter
- きひろちゃん(9歳幼女)さんはTwitterを使っています 「@hsjoihs C++ -> Rust -> Haskellの順に学んでちょっとずつ抽象化の理解を得るか。」 / Twitter
- hsjoihsさんはTwitterを使っています 「Haskell で実用的なコードを書く上で、ファンクタとかモナドとかの数学的背景を知っている必要は何一つ無いにもかかわらず、そういう名前を付けてそう呼んでいったがために、そういう単語とか数学的背景だけに興味がある人がやたらめったら参入する、という構造があるという話もしてみた」 / Twitter
- hsjoihsさんはTwitterを使っています 「Rust はその反省を活かしたのか、「ライフタイムの推論が賢くなったんですけど、それを説明するには、実は二階述語論理とスコーレム化の話をしておく必要があって……」といった、数学屋さんだけにウケてソフトウェア書く人にウケづらい話を極力目の付く場所から排除するような運用をしている気がする」 / Twitter
blog
はてなブログ
未完成な論を綴るブログ
- 大学でRustを教えた話 - 未完成な論を綴るブログ
- Rust言語によるOSと言語処理系ができるまで - 未完成な論を綴るブログ
- BLisp言語のドキュメントを作成しcrates.ioに登録してみた - 未完成な論を綴るブログ
- 自作言語BLispがHackers Newsで話題になっていた - 未完成な論を綴るブログ
睡分不足
- rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
- RustでUnix Domain Socketを扱う方法 - 睡分不足
- Rustのasync/awaitを使ったecho serverの実装 - 睡分不足
- rustのArcの内部構造 - 睡分不足
- rustのMutexの内部構造 - 睡分不足
- rustのArcについてその2 - 睡分不足
- rustのIteratorの実装 - 睡分不足
- rustで動的にバッファを確保する方法 - 睡分不足
- rustをnostdで使う - 睡分不足
- rustのGUIライブラリconrodの使い方 - 睡分不足
- nomによるnumpyデータのパース - 睡分不足
- [rust]ZST/DSTによるflexible array memberの実現 - 睡分不足
- Rustの並列処理についての勉強 - FPGA開発日記
- 勝手にevalしない言語をRustで作ったら意外なものになった - 色の輪
- Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
- Rustでグラフを表現するにはTyped Arenaが便利 - 簡潔なQ
- Rust製のパーサコンビネータnomを解剖する(v6.0.0) - Explore cs in depth!
- Rust製のパーサコンビネータcombineを"覗き見"する(v4.4.0) - Explore cs in depth!
- knurling-rs のツールお試し Get a grip on bare-metal Rust! - 低レイヤ強くなりたい組込み屋さんのブログ
- Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself
- Lox (Crafting Interpreters)にdefer文を追加する - 井山梃子歴史館
- Rustでグラフをplotするライブラリのまとめ - Stimulator
- 君のRustは20倍遅い - 簡潔なQ
- なぜDiscordはGoからRustへ移行するのか - MISONLN41's Blog
- Rustのライフタイムについて調べている - ブログのおんがえし
- Rustで真に安全なプログラムを書く方法 - かとじゅんの技術日誌
- Rustを使ってスケーラブルなプログラムを書く方法 - かとじゅんの技術日誌
- Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
- Rust 1.65を早めに深掘り - あずんひの日
κeenのHappy Hacκing Blog
- Rustで作るインメモリキャッシュ | κeenのHappy Hacκing Blog
- Rustでインメモリキャッシュ作った話 | κeenのHappy Hacκing Blog
- 言語自作を通して学んだRust | κeenのHappy Hacκing Blog
- Rustのconst fnって何? | κeenのHappy Hacκing Blog
- Rust with Fearless Concurrency | κeenのHappy Hacκing Blog
- RustのMutexのPoisoning | κeenのHappy Hacκing Blog
- RustからCPU拡張命令を使ってみる | κeenのHappy Hacκing Blog
- moldを使うとRustのビルドが速くなる | κeenのHappy Hacκing Blog
- 自作lintルールとcargo fixでRustのコードをリファクタする | κeenのHappy Hacκing Blog
- Rustでポインタから`Box<[T]>`を作る | κeenのHappy Hacκing Blog
- Rust structとenumの組み合わせ - yhara.jp
- Rust に様々なスクリプト言語を組み込む - Möbius Flyer
- A New Backend for Cranelift, Part 1: Instruction Selection - Mozilla Hacks - the Web developer blog
- κeenさんはTwitterを使っています 「let _ = の話ですか? Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム https://t.co/oBGsGgkijZ」 / Twitter
- Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム
- κeenさんはTwitterを使っています 「これ読んでも釈然としない部分は残る。参照外しじゃなくて参照外しした値がunsafeとかなのかなぁ。」 / Twitter
- κeenさんはTwitterを使っています 「mirの時点で参照外しが消えてるのでearly dead code eliminationで参照外しが消えた結果unsafeにならなくなったとかかなぁ。しかしそれをやるには無効なポインタの参照外しがundefined behaviorであることを使うはずで、なんかビミョーにsoundnessにケチが付きそうな気もする」 / Twitter
- Writing Interpreters in Rust – GitHub 出張所 – プログラム関係のブログはここに
- Frequently Asked Questions · The Rust Programming Language
- 2021年3月18日 Rustを学ぶためのプロジェクト―Debian開発者,coreutilsパッケージをRustで実装中:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
- Rustのパターンマッチを完全に理解した | FrozenLib
- Rustで最速のサーバソフトウェアを目指す! - nttlabs - Medium
- Rust を始める時に少しだけ読み書きしやすくなる Result と Option の話 | IIJ Engineers Blog
- Rustの良質な学習リソースをまとめる - BioErrorLog Tech Blog
- フリースタンディングな Rust バイナリ | Writing an OS in Rust
- Writing a Linux-compatible kernel in Rust
- Idein Ideas — プロダクションのRustコードを async / await に移行した話
- Rust in Perspective — linusw
- Rust の 動的ディスパッチとか静的ディスパッチとか | blog.ojisan.io
- tracing/tracing-subscriberでログが出力される仕組みを理解する - Happy Developing
- Rust で Monad, Monad Transformer そして Free Monad をエミュレートする - FFRIエンジニアブログ
スライド
- RustでつくるRubyのFiber - Speaker Deck
- fukuoka.rb#202 RustでつくるRuby - Speaker Deck
- How to learn Embedded Rust Edition 2021 - Speaker Deck
OSDN
- 「Rust 1.55」が公開 | OSDN Magazine
- 「Rust 2021 Edition」が公開 | OSDN Magazine
- 「Rust 1.57」が公開 | OSDN Magazine
- インラインアセンブリをサポートした「Rust 1.59」が公開 | OSDN Magazine
- 「Rust 1.60」が公開 | OSDN Magazine
- 「Rust 1.61」が公開 | OSDN Magazine
- 「Rust 1.62」が公開 | OSDN Magazine
infoQ
- Rustが1.39でゼロコストAsync/Awaitをサポート
- Rustの非同期ランタイムであるTokioが1.0に到達
- Microsoftがメタデータを使って、Rustや他の言語からの慣用的なWin32相互運用を可能に
- CXXが実現するRustとC++の安全な相互運用
- MicrosoftがRust For Windowsをプレビュー
- Rust 1.51がリリース - const genericsが安定化、Cargoとコンパイル時間が改善
- Rust At Six:新しい言語エディションと広がる採用
- Rust 2021 Editionリリース - Armin Ronacher氏に聞く
- LLVMネイティブコードカバレッジを備えたRust 1.60がリリース、Rust 2024へのロードマップも公開
- 新しい抽象化とインフラストラクチャを備えたRust for Linuxの進歩とは
Zenn
- Rustにおける関数ポインタやクロージャ
- [Rust] Drop/dropあれこれ
- Craneliftを歩く
- GhostCell 論文を読む
- Rust + LLVMで自作言語をセルフホスティングした話
- llrl programming language
- rustdoc中で数式を書く
- 「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる
- wasm-pack で regex を使う時のビルドサイズとパフォーマンスの調査
- Rust/AnyhowのTips
- Rustでゲームボーイアドバンスエミュレーターを書いた
- Writing an OS in Rustを読んでの気がつき
- 2022年、Rustの未来を探る旅 (1) はじめに
- 【Rust】WASMにコンパイルしてDenoから呼び出す方法
- Rustの「うわ、swapできない」を解消するパッケージを作った
- Rustでファミコンとスーパーファミコンのエミュレーターを書いた
- 自作のRust製エミュレーターをWebブラウザーで動くようにした
- Prustiを使ってRustでプログラム検証をしよう
- The push for GATs stabilization | Rust Blog
- 🔬 Tracking issue for generic associated types (GAT) · Issue #44265 · rust-lang/rust
- Manually implement zero-overhead async trait in Rust with GAT - SoByte
- Rustでモナド
- Rustのopen traitシステム dyno (RFC3192) を読む
- Rustで参照を引数にとる演算子オーバーロード
- pin!マクロが使ったRustの仕様の抜け道
Qiita
- C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
- Rust から C++ のメソッドを呼ぶ方法をまとめてみた - Qiita
- WSL2 (Ubuntu) で Rust のインストールがうまくいかない - Qiita
- Rust でグラフ(petgraph) - Qiita
- Rustで自己参照構造体が作れない理由と解決法 - Qiita
- 本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
- XbyakをRustから使ってみた - Qiita
- 『みんなのデータ構造』を読んで Rust で実装した - Qiita
- no_stdのRust on LinuxでHello, world!する - Qiita
- Rustの型システムの恩恵:言語処理系としての観点から - Qiita
- 自作コンパイラ基盤の話 - Qiita
- スペースによるパターンマッチの網羅性検査 - Qiita
- レイアウト規則を独自実装してしまったお話 - Qiita
- ガラスボーさんはTwitterを使っています 「repr(align(N))アトリビュートの紹介だけど、小さいサイズならalignedというクレートが便利だったりします https://t.co/ZOHGGe1eUg https://t.co/Z99iQvvuAE」 / Twitter
- Rustでallocを使わずにページ境界に合わせたメモリアロケーションをするには - Qiita
- aligned - crates.io: Rust Package Registry
- RustのさまざまなDockerfileのビルド時間を比較してみた - Qiita
- Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita
- Rustのコンパイルエラーを爆発させる技術 - Qiita
- 非同期 Rust パターン - Qiita
- union: RubyでRustがunsafeになった話 - Qiita
- actix-webのホットリロードされるDocker開発環境を作る - Qiita
- moldとcargo watchを併用してより快適な開発環境を作る - Qiita
- 書き捨てるためのRust - Qiita
- Rust のデバッグチートシート - Qiita
- RustのHashMapを通じて,最近のハッシュテーブルをもう一歩理解してみる - Qiita
- Rustでの整数オーバーフローまとめ - Qiita
Twitter
型
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「関数型言語と #Rustlang の違いについて考えているんだけど、関数型言語ユーザーは「型が性質を固定する」と思っていて、Rustユーザーは「型が表現と実装を固定する。性質を固定するのはトレイト」と思っているのが最大の違いでは、という気がしてきた。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「関数型言語ユーザーにとっては、型が性質と対応していないのは直感的ではないのかもしれない。 一方でシステム言語ユーザーにとっては型は表現を表すというのは当たり前のことなので違和感を感じない。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「だからこそ、関数型言語には「型コンストラクタ」という概念があり高階型が自然に入る。 一方で #Rustlang にとっては表現であり、それをコンストラクトするのは enum, struct, 基本型, PhantomData 等に限られるため「型を型から生成する」という認識が薄い」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「一方でGATが入ったので #Rustlang も高階型をサポートしていると言っていい気がするんだけど、GATでも足りないという場合はあるのだろうか?」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「関数型言語における「型」という概念は、 #Rustlang における「dyn Trait」に対応していると考えれば自然だと思う。 Rustの「型」は振る舞いを意味しないから。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「型は振る舞いじゃなくて、メモリ表現を決めてるんだよ。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「#Rustlang はad-hoc多相(的なもの)をコンパイル時に解決するために積極的に型レベルエンコードをする言語なので、 Rust上での「型の一致」は他の言語での「型の一致」よりも厳密な意味を持つ。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「例えば、他の言語では「 usize -> bool 」みたいな型(usizeを取りboolを返す関数)が存在するが、Rustではこれは「Fn(usize) -> bool」というトレイトになる。(fn(usize) -> bool という型も存在するが) #Rustlang では「関数」を表す型はそのインターフェースによって一意に決まらないのだ」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「なぜなら、関数は環境をキャプチャするからである。そしてその環境は当然クロージャが定義されたコンテキストによって異なる。これを区別するために #Rustlang ではクロージャ毎に別の型を生成し、実際の実行時には ad-hoc 多相を用いている。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「実はRustには型をトレイトの代わりとして扱う機能があります」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「#Rustlang でHListのたとえば最初のusizeの要素を取ってくるみたいな操作は、Rustに(型レベルmatchはあるが)型レベルifが無い維持不可能なんだけど、それに近いことを可能にする型レベルIndexを使ったパターンになんかいい名前つけられないかな」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「#Rustlang の型の扱いで難しく感じた場合は、とりあえず型レベル数に結びつけて考えればうまくいく。 一旦型レベル数に落ちてしまえば四則演算も等価判定もできるので。」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「まず、出てくる全ての型に何らかの型レベル数を与えることからスタートする。」 / Twitter
Rust
- Hideyuki TanakaさんはTwitterを使っています: 「AzureのCTOは、新しいプロジェクトにC/C++を採用するのはやめよう、Rustを使おうというとるし、リーナスはLinuxにRustを導入することに積極的だ。もうどのプログラミング言語を勉強するべきか、分ったよな?(´・_・`)」 / Twitter
- Mark RussinovichさんはTwitterを使っています: 「Speaking of languages, it's time to halt starting any new projects in C/C++ and use Rust for those scenarios where a non-GC language is required. For the sake of security and reliability. the industry should declare those languages as deprecated.」 / Twitter
- ShunsukeさんはTwitterを使っています: 「6.1でRustがLinuxカーネルに入るとのこと、新時代の幕開けだ。 https://t.co/S1RQh0WUlk」 / Twitter
- Linus Torvalds: Rust will go into Linux 6.1 | ZDNET
histric
histric-1
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Greg KH「Rustにしても本質的には変わらない。過去のプレゼンみたか? そして補償すべきものは時代とともに変わる。今や悪意あるハードウェアからユーザースペースを守らなければならなくなった。」 https://t.co/KTQWIOnCXP」 / Twitter
- Re: [PATCH 00/13] [RFC] Rust support - Greg Kroah-Hartman
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「仮にRustにしてメモリ安全が保証されたとしても、メモリ以外のコードについては何も解決してくれない。企業の役員どもは新しい機能を追加することについては余念がないが、保守に出すカネはないと来ている。保守をしているのは誰だと思う? インターンだぜ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「コミュニティが保守する」ってのは嘘だ。」 / Twitter
- κeenさんはTwitterを使っています 「Rustに新たな概念I/Oセーフが導入されてる。ファイルハンドラを取り出したままファイルのデコンストラクタを走らせると浮いたハンドラができることがあるからそれをunsafeにしたい。 RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs https://t.co/nrG1sdrXje」 / Twitter
- RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs
- κeenさんはTwitterを使っています 「現在のライブラリの設計上もunsafeなんだけど明文化した感じかな?unsafeは本来はメモリ安全性についての機能だからIO安全性にも使ってる現状は邪道といえば邪道。 あとas_raw_fdとinto_raw_fdがややこしい問題を新しい型を導入して解決しようともしてる。」 / Twitter
- ☀sat🌛さんはTwitterを使っています 「今日はRustの識者たちにRustについて聞いたんだけど世の中そうそううまい話はなくてRustはRustなりに大変ということがわかった」 / Twitter
- uint256_tさんはTwitterを使っています 「Rustから外側の世界に触れようとすると大変」 / Twitter
- uint256_tさんはTwitterを使っています 「ブラウザはさっぱりわからん」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「最近、言語仕様に非互換がないことの重要性を痛感する。少なくともrust みたくパッケージ単位で言語バージョンを指定できるようにしてほしい。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「Rustコードのレビューむずいな。自分で書く分には変数のライフタイムが見えるけど、人が書いたのをテキストだけでレビューするの無理だ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「つまりライフライムに色をつけるツールがあると喜ばれるってことかな? (作るとは言っていない」 / Twitter
- mattnさんはTwitterを使っています 「C「所有権などない」」 / Twitter
- mattnさんはTwitterを使っています 「というか、malloc の実装って(あんま知られてないのかもだけど)ユーザランドなので、たまーに良かれと思って malloc の実装をちょっと改造してリンクしたライブラリが「こっちは alloc するから使う側が free してね」って言う通りに free したら落ちるみたいな案件がある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Cの所有権は 俺の物は俺の物 お前の物は俺の物 では?」 / Twitter
- かりやみつらないさんはTwitterを使っています 「所有権はみんなの心の中にあります」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かねがねRubyで静的解析して所有権の概念を持ち込みたいと考えている」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Rustやってると、データクラスに隠蔽はいらないじゃ、という気になってくる。必要なのは隠蔽化のコネクタとしてのインターフェイス(トレイト)なのよね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/xkuuxAD3mW ボローは着てても心は2フェーズ」 / Twitter
- Two-phase-borrows - Guide to Rustc Development
- κeenさんはTwitterを使っています 「Rustのメモリ管理を図示した説明。途中にあるスライドが動く資料って感じで分かりやすい。 🚀 Visualizing memory management in Rust | Technorage https://t.co/Wq9V81YqPs」 / Twitter
- 🚀 Visualizing memory management in Rust | Technorage
- Masaki HaraさんはTwitterを使っています 「コンパイル時Mutexですね (一度にあるリソースを同時に触らないことを保証するのが&mutで、そのロック順序を保証するための時間チェックがライフタイム)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「この「Rustにおける参照とはlockである」もqnighyが突然言い出した奇抜なアイデアではなくRust界隈ではしばしば使われる通例的な説明のひとつです」 / Twitter
- 令掛ベインさんはTwitterを使っています 「Rustでもスタックに積むものが巨大すぎると100段階ぐらいの再帰でStackOverflowするとかあるんだ」 / Twitter
- κeenさんはTwitterを使っています 「Rust初心者がやりがちなRustっぽくない書き方。番兵使うなOption使えとか、リソース作ってから初期化するんじゃなくてRAIIしろとかそういうやつ。 Common Newbie Mistakes and Bad Practices in Rust: Bad Habits · Michael-F-Bryan https://t.co/U4ep9NmSPW」 / Twitter
- Common Newbie Mistakes and Bad Practices in Rust: Bad Habits · Michael-F-Bryan
- ドッグさんはTwitterを使っています 「Rust で Linux のメモリモデルをどう扱うか Linux perfbook の著者がいくつかのユースケースごとに一連のブログ記事を書いてる.まだ読んでないけどチラ見した限り面白そう | 'So You Want to Rust the Linux Kernel?' https://t.co/LrEAc1xgou」 / Twitter
- So You Want to Rust the Linux Kernel? - Paul E. McKenney's Journal — LiveJournal
histric-2
- yukiさんはTwitterを使っています 「いい記事!Rustのコードをどうやってチューニングしていくかを具体例を使って順を追って説明してくれている。cargo benchとcargo flamegraphを使って計測しながら取り組む。clone対処とdeserialize高速化をやってた。/Making slow Rust code fast https://t.co/jN7irZbyCW」 / Twitter
- Making slow Rust code fast | patrickfreed's blog
- monochromeさんはTwitterを使っています 「RustだとPartialOrdとかPartialEqとかが型システムに組み込まれているからおかしなことにはなりずらいよね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/rL5pwxZXJL ここで勉強するのがRustをマスターするのに近道かなって思ったので読んでみる」 / Twitter
- About this guide - Guide to Rustc Development
- Miura HidekiさんはTwitterを使っています 「https://t.co/y7V96knUSL この辺、mmcに似ていると思って少し嬉しい。ただし、mmcはtとuが完全に同じになるのではなく、uにtが持つ型を加えるという感じの動作になる」 / Twitter
- Type inference - Guide to Rustc Development
- 令掛ベインさんはTwitterを使っています 「Rustのsplit("")はすべての文字境界で切るようだ。JavaScriptのsplit("")も文字ごとに分解になるけど前後に空文字列がつく点で異なる / https://t.co/J6ysPflg1Y」 / Twitter
- String in std::string - Rust
- Uchio Kondo🍙さんはTwitterを使っています 「面白い。ASTからバイナリの間に3回もIRが / 2件のコメント https://t.co/9sg6QYiLbf “Rustコンパイラの処理の流れ(1). Rustのプログラムは以下のようなステップから構成されており、上から順に処理され… | by Takanori Ishibashi | Medium” (9 users) https://t.co/5i6zbodn4s」 / Twitter
- Rustコンパイラの処理の流れ(1). Rustのプログラムは以下のようなステップから構成されており、上から順に処理され… | by Takanori Ishibashi | Medium
- Uchio Kondo🍙さんはTwitterを使っています 「あれ、 https://t.co/jwbg7ME2ut だと、HIR->THIR->MIR->LLVM IR なので4つ、か...?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「それはRustじゃん...(Goのようなグリーンスレッドは無いが)」 / Twitter
- medy.nim🐍👑@駆け出しWeb3エンジニアさんはTwitterを使っています 「TSには言語標準のOption/Result型がないしGoには例外がないしJVMはメモリ食いまくるしPythonにはグリーンスレッドが無いからこの世界はクソ」 / Twitter
- monochromeさんはTwitterを使っています 「GCバグ取れた。 いろいろと怪しいことをやっているとRustでも普通にdouble freeとか発生する。 https://t.co/cNFLkicNJA」 / Twitter
- Fix double free bug. · sisshiki1969/ruruby@dd09078
- Uchio Kondo🍙さんはTwitterを使っています 「Rustの `;` 、なんというか「 `;` がないブロックはその値が外に出ていくんだなあ」的な認識になるので、これはこれと思っている。ifやmatchも同じ挙動だし。」 / Twitter
- 🍣さんはTwitterを使っています 「個人的には、関数はもちろん、ifとかmatchとかも全部含めて `{...}` の中で最後に評価された値がそのブロックの値になる、っていうのは一貫性があって好き(ついでに、わざわざ return を書いているところは early return なんだなというのが一目で分かるのも良いと感じる)」 / Twitter
- ドッグさんはTwitterを使っています 「mustang の作者が,メモリ安全性と I/O 安全性とパフォーマンスを売りにした新しいシステムコールの wrapper ライブラリ書いてるのか.std を全部移植して Rust 本体にマージされるのが最終目標 | 'Porting Rust's std to rustix' https://t.co/Tg8zkxmO8G」 / Twitter
- Porting Rust's std to rustix · sunfishcode's blog
- ドッグさんはTwitterを使っています 「- unsafe な処理が syscall の wrapper 実装内で完結するので,呼び出し側で unsafe 使わなくて良い - Rust 製なので libc を経由しない - Rust 文字列から変換した C 文字列をスタック置くなどの最適化を行うことで,std より少し速い」 / Twitter
- ドッグさんはTwitterを使っています 「bytecodealliance org にホストされてるのでお仕事でやってるのかな.複数のバックエンドを持てるようになってて,WASI バックエンドも開発中 https://t.co/ZzShJWCPSp」 / Twitter
- rustix/src/imp/wasi at wasi · bytecodealliance/rustix
- KOBA789さんはTwitterを使っています 「「Rust のコンパイルエラーは親切だから言うとおりに直せばなんとかなる」ってのは8割くらい本当なんですが2割くらいは通用しなくて、それは大局的な設計がそもそも Rust のルールに合ってないというケースです。しかもそういうときは細かい修正を積み重ねた上で詰んでちゃぶ台返しを食らいます」 / Twitter
- uint256_tさんはTwitterを使っています 「Rustで何かを書き直す時は、だいたい設計ごと変えがち。」 / Twitter
- monochromeさんはTwitterを使っています 「Rustでパーサコンビネータを使ってると、エディタの支援機能で表示される変数の型がやたらに長くなって辛い」 / Twitter
- かりやみつらない 3042798775655さんはTwitterを使っています 「ほかの言語は「学習コストが低い」んではなくて、[コンパイルが通るようになるまで(あるいは動き出すようになるまで)の学習コストは低いが正しく動かすための学習コストは高い」でしかない…」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C++でstd::moveをちゃんと使うために、無駄な構造体・クラスのコピーを減らそうとコピーコンストラクタを=deleteしていくと、アホみたいにコピーしてるところ見つかるので、move or copyを明示的に使うRustはわかりやすくて便利。人間は暗黙的な変換に慣れすぎてる」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C++でPromise的なコードや現在のスレッドやバックグラウンドスレッドに小さなタスクを作るときにラムダ多用することになるけど、暗黙的なコピーになっちゃうので一見わからん」 / Twitter
histric-3
- κeenさんはTwitterを使っています 「メモリ不足でパニックするのは標準ライブラリの設計ですね。言語仕様ではない。なので標準ライブラリ相当のものを自前で実装すればパニックしないことも可能です。」 / Twitter
- κeenさんはTwitterを使っています 「これ、Rustにメモリ確保するような構文あったっけと思ってメーリスのスレッド追ったけどLinusは「Rustよく分からないけどもしそんな構文があるならダメだよ」くらいのニュアンスで言ってるっぽい。続くスレッドで標準ライブラリの作りの問題だからライブラリどうしようねと議論が続いてる」 / Twitter
- κeenさんはTwitterを使っています 「Linusの続く返信これね。Rustの標準ライブラリの 多くの型の `new` 関数がC++の `new` 構文相当の挙動するのがよくないと言及してる。それをやめて `Result` にするような関数群を用意する方針になるだろうとも。 https://t.co/OZUE4ybuw6」 / Twitter
- LKML: Linus Torvalds: Re: [PATCH 00/13] [RFC] Rust support
- κeenさんはTwitterを使っています 「結構昔から組み込み方面でもパニックしないタイプのAPI群が欲しいという要望は上がってて、プランとかも上がってたけど結局進んでないなぁ。Rustの作りとしてアロケータが絡むAPIは分離されてるからそれを使わずに自分達で再実装するかRust側にno-panicサポートを要求するかになるんじゃないかな?」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「Cコンパイラの生成したコードはヒープに勝手にメモリを確保したりしないけど、Rustみたいにメモリ管理込みの言語だとコンパイラがヒープ確保込みのコードを生成することになるだろうからメモリ不足状況下でパニックするのでは?ユーザーランドならいいけどカーネルでそれはダメやろ?ってことですね。」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「mallocに失敗した時にシステムを停止させずにきちんとエラーリターンできるかどうかっていうのは組み込み系の人ならいつも気にしてるんじゃないのかな知らんけど。気にするとしんどいので代わりにstaticなアドレスに固定長でスペースを確保しておくとかしがち(可能なプラットフォームなら)だと思う。」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「MMUのないプロセッサで任意の物理アドレスにアプリケーションをロードして走らせるようなプラットフォームだと static使えなかったりするんだよね。あ、嫌な思い出が・・・」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「嫌な思い出が実は夢であって欲しいと brew arm で検索したらMacの情報しか出てこなかった。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Rustの登録商標にまつわる問題。もともとRust財団は本家配布版を変更したものに "Rust" "Cargo"の名前を使うことを禁じていた。Debianがこれにまつわる問題を提起 (Debianは過去にも登録商標のために Firefoxを"Iceweasel"として配布している)。現在は規制が緩和されている。 https://t.co/uxqR8Tr5V7」 / Twitter
- ytakanoさんはTwitterを使っています: 「Rustはmemory safety、concurrency safety、fastを備えた唯一のプロダクションレディな言語で、この3つの要求を満たしたいなら、現状ではRust一択。遅くていいなら他の選択肢はあるし、ちょっとぐらいプログラムがクラッシュして良いなら、ほかの言語でいい。」 / Twitter
- ytakanoさんはTwitterを使っています 「Linux Kernel in Rust、panicするアロケータを取り除いたと書いてある。 https://t.co/kqOdpmapuZ」 / Twitter
- [PATCH 00/17] Rust support - ojeda
- ytakanoさんはTwitterを使っています 「アロケータがOptionで返ってくると、データ構造のnewやinsertの返り値ももOptionにしないといけないような。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「ownership はべつに Rust 固有ではなく C++ の unique_ptr と move semantics でも実現されているもの。だけれど、これを型システムに折り込んだものが研究ではいくつかあれど実用される上で中々見ないというだけだと思う。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「https://t.co/vxYAxSU4yg ChromiumもRust使おうとしてんの?(´・_・`)」 / Twitter
- c5fb8a006339ad45fef217f7c0045df6f6a45f4c - chromium/src - Git at Google
- Hideyuki TanakaさんはTwitterを使っています 「GAFA&MSのなかで、Rustを使っていないのAppleだけ(´・_・`)」 / Twitter
- HatさんはTwitterを使っています 「@tanakh ちょうど今週のThis Week in RustにAppleのRust求人が。実は使ってるっぽいです。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「@n_hatta ふむふむ、メディアプロダクツでJava、Rust、C#、Swiftでのバックエンドシステムの経験ですか。そういうところにRust使ってる(使おうとしてる?)んですねえ。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「学部生が、ユーザーランドとカーネルスペースの空間が同じでも、Rustなら安全に書けるという事の凄さを理解したっぽくて、興奮していた。その凄さがわかってくれて俺は嬉しいよ。」 / Twitter
- κeenさんはTwitterを使っています: 「Rustで難しいと感じたところ、今までの感覚だと局所的にコンパイルが通るプログラムを組み合わせれば大域的にもコンパイルが通ったのが、所有権と借用とかSend/Syncとかが入ると局所的にはコンパイルが通っても組み合わせるとコンパイルが通らなくなることがある点。」 / Twitter
- KOBA789さんはTwitterを使っています: 「ただひとつ確実に言えることがあるとすれば、ストリームを扱うようなコードは Rust 以外ではもう二度と書きたくないということです(ストリーム扱うときほど所有権システムがあってよかったと思うことない)」 / Twitter
- KOBA789さんはTwitterを使っています: 「2重 subscribe とかストリームのリークとかつらくないですか?」 / Twitter
- joker1007 (アルフォートおじさん)さんはTwitterを使っています: 「@KOBA789 自分も最近割とストリーム処理書いてるんですが、ストリーム扱う時って基本的にデータ自体はimmutableなものを扱うと思うので、所有権がそこまで有用なイメージ無かったんですが、パフォーマンス要求や使えるメモリ量がシビアなどの制約があってmutableなデータを触ってるみたいな感じでしょうか?」 / Twitter
- KOBA789さんはTwitterを使っています: 「@joker1007 ストリームといってもインメモリなやつです。WebSocket とか gRPC Streaming とか。プロセス内にイベントバスがいてそれらから各クライアントに配送するみたいなサーバーを書くとかなり恩恵感じます」 / Twitter
- joker1007 (アルフォートおじさん)さんはTwitterを使っています: 「@KOBA789 あーなるほど。裏側のsubscribeしている各クライアントも同一プロセスのイベントバスを見ていて、個別の処理はスレッドの可能性もあって、みたいな感じかな。そういう形ならめちゃくちゃ役に立つのは分かります。」 / Twitter
histric-4
- Hideyuki TanakaさんはTwitterを使っています: 「unsafeまみれならRustを使う意味がない論はこれ完全に誤りなので、何とかしてほしい。unsafeであってすらRustの意義があることは簡単な説明がネットに転がっとるから見てくれ。傍証としては、LinuxのカーネルドライバへのRustの導入に際してリーナスが信頼性の向上に役立つという話を参考にしてくれ。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「* unsafeはRustの価値をスポイルするものではない * unwrapは悪ではない (´・_・`)今日はこれだけ覚えて帰って。」 / Twitter
- なべさん@断酒さんはTwitterを使っています: 「@tanakh unwrap書くのだるいんですけど、なんとかなりませんか?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「@nabesan_go だるいぐらい書かないといけないのなら、それは使いどころ間違ってるのかもしれないですね・・・。Noneが来たら死んでもいい所か絶対にNoneが来ないところで使うものなんで・・・。」 / Twitter
- なべさん@断酒さんはTwitterを使っています: 「@tanakh そういうもんですか・・・。入力パースしてるとunwrapばっかりになっちゃいますねぇ・・・。 配列アクセス時の as usize だらけもなんか書き方がまずいんですかねぇ。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「@nabesan_go それはNoneを伝搬させたいから?で書くべきところな気がする。as usizeはクッソめんどいけど、これはどうにもならない気がします。正直個人的にはunsigned型ならindexできるオーバーロードがあってもいいとは思うんですが。」 / Twitter
- なべさん@断酒さんはTwitterを使っています: 「@tanakh なるほどです・・・」 / Twitter
- 寝るさんはTwitterを使っています: 「Rust はなんか知らんけど変数ウォッチが消滅するのと、mutable な再帰が面倒すぎるのを何とかしてくれたら使うよ 多分」 / Twitter
- 寝るさんはTwitterを使っています: 「unsafe で全部囲ったところで、可変参照を 2 つ持ったら (アクセスが排他的でも) UB だった気がするので」 / Twitter
- さんせんさんはTwitterを使っています: 「@noshi91 変数ウォッチが消滅するって何ですか」 / Twitter
- 寝るさんはTwitterを使っています: 「@akakimidori 多分わたしの環境構築ミスだと思うんですが、VSCode でステップ実行しながら変数ウォッチをすると Vec の中身が見れなかったり、シャドーイングされた変数の挙動が変になったりします。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「Rust初心者なんで純粋に知りたいんだけど、unsafeコードだけで構成されたRustコードでも、Cで書くより安全になると言われているのは、Rustのどういった性質からなの?unsafeでも実はいろいろ検査されるの?」 / Twitter
- lllllllllllllllllllllllllllllllllllllllllllllllaphさんはTwitterを使っています: 「@uchan_nos https://t.co/NorvtQTE3I」 / Twitter
- Rust Book 勉強会 #9 第19章「Advanced Features」 第1節「Unsafe Rust」 - Qiita
- Kohei YamaguchiさんはTwitterを使っています 「Cranelift、前の世代ではIRの命令を再起的に変換していくスタイルを取っていたのでIRからTarget InstへのN-to-1の変換ができなかったけど、今の世代ではTreeにしてmatchを取るようにしたから対応できるようになったという理解でいいのかな」 / Twitter
- ぬるぽへさんはTwitterを使っています 「動的型付けな言語でもドキュメントに関数の型を書けという声が一定の支持を集めるように、C++のAPIのドキュメントでもオブジェクトのライフタイムを書けという声が一定の支持を集めるようになったりして まずはC++用のライフタイムアノテーションの記法の開発から始まる」 / Twitter
- ぬるぽへさんはTwitterを使っています 「いや実際C++用のライフタイム/所有権のアノテーション割とありうるな・・・」 / Twitter
- Masaki HaraさんはTwitterを使っています 「JavaScriptがRustより圧倒的に優れているところが1つあって、それは言語仕様書 (C, C++, Javaなども同様にすごい)」 / Twitter
- Phil EatonさんはTwitterを使っています 「I wrote a new blog post on parsing, compiling, and virtual machine evaluation for a super minimal Lua implementation written from scratch in Rust! https://t.co/8qFviEecJo https://t.co/d1MGArlErR」 / Twitter
- Writing a minimal Lua implementation with a virtual machine from scratch in Rust | notes.eatonphil.com
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Rustコンパイラはなぜこんなに遅いのか? Rizen 5950X+128GB RAMでも2分以上かかる。ビルド方法、デバッグシンボル、プロファイリング、使っているライブラリのバージョンなど様々な要因を調査した結果。 https://t.co/n7VxBozBGv」 / Twitter
- Why is my Rust build so slow?
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています 「Rustのstd::task::Contextは型じゃなくてトレイトにすべきだったのではないだろうか。 これがトレイトなら、スケジューラが独自のSleep機能を有するFutureを提供しやすくなるし」 / Twitter
- uehajさんはTwitterを使っています 「@ntaoo 2013年ごろ、1.0が出るはるか前には実はRustに自動GCはあったんですよ。でも言語の位置付けを明確にするために敢えて削除されました。 https://t.co/bhBErxEa7q」 / Twitter
- https://pcwalton.github.io/2013/06/02/removing-garbage-collection-from-the-rust-language.html
- ntaooさんはTwitterを使っています 「@uehaj 読みました。C/C++を競合相手と定めて、win, iOS, android等の多様なプラットフォームの要求に柔軟に対応できるようにあえて削除されたんですね。Thank you for the pointer!」 / Twitter
- κeenさんはTwitterを使っています 「普段使いはするけどあまり自分で書くことのない手続マクロはどういう仕組みなのか実感してみようの記事 Procedural macros under the hood: Part I | The IntelliJ Rust Blog https://t.co/bFB7r8XQGf」 / Twitter
- Procedural macros under the hood: Part I | The IntelliJ Rust Blog
- uint256_tさんはTwitterを使っています: 「cargo install git-delta したらかなり幸せになれた」 / Twitter
histric-5
- κeenさんはTwitterを使っています: 「Rustでget系のメソッドを実装するときにキャッシュしようと思うとselfが&mutになってしまうけど、色々やりようによっては&selfにできるという話。 Caches In Rust https://t.co/AEUDrEGeNP」 / Twitter
- Caches In Rust
- κeenさんはTwitterを使っています: 「returnの型は ! だからショートサーキット演算子と組み合わせてearly returnに使えることに気付いた https://t.co/ZKhcgZmuNJ」 / Twitter
- Rust Playground
- mr-csce(Miyoshi)🐈さんはTwitterを使っています: 「Rustが難しいって言ってる人、所有権などの問題よりも、optionとresultのメソッド類と諸クレート(anyhowとthiserrorなど)、iter関連のメソッド類、が使いこなせてない気もする。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「cargo binstall よさそうだ。Rust製のCLIツールはもともと作者がビルド済みバイナリを提供していることが多いので、そのありかをCargo.tomlのメタデータで指示するという規約を足すことでcargo installの体験に寄せられるというアイデア。 https://t.co/ZQQRQ9ieIH」 / Twitter
- ryankurte/cargo-binstall: Binary installation for rust projects
- Masaki HaraさんはTwitterを使っています: 「cargo installではクレートの作者を信用する必要があるば、cargo binstallで信用するのもクレートの作者なので、実はサプライチェーンセキュリティーの観点からはそれほど状況は変わらないという点も面白い」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「むろん、cargo binstallを信用する必要はあるが……」 / Twitter
- kodaiさんはTwitterを使っています: 「Rust の trait を OOP 言語の interface と同じような仕組みとして多態の表現に使っちゃうと行き詰まりがちなので、全くの別物として標準ライブラリのソースコード見ながらイディオムみたいに覚えちゃうのがいいと思う コンパイラはトレイト設計のマズさに関しては全然指摘してくれない」 / Twitter
- kodaiさんはTwitterを使っています: 「あくまで impl してる部分のエラーとしてしか報告されないので、それだけじゃアンチパターンに気付けない」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「@t9jyc 配列範囲外参照もチェックされるんですか。unsafeといっても結構安全ですね」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「@lo48576 あー、なるほど。マルチスレッドの話は未履修だけど、なんとなく、バグりやすい並行性の部分のチェックはunsafeでもちゃんとやってくれるんだな、というのは理解しました。「unsafeは、借用チェッカーや他のRustの安全性チェックを無効にしない」という説明が腑に落ちた感じがします。」 / Twitter
- おうかさんはTwitterを使っています: 「Rustが所有権だけなら確かに微妙なんだけど、エラーは?だけで扱えるし、列挙型には定数だけでなく値も持てるし、From::from/Into::intoで型変換もできるし これら便利機能があってしかもそれらがany型みたいな変なことせず所有権のシステムとも矛盾を起こさず使えるからきっちりした場面でも使える」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「でもRustはマジでロジックの間違いしか起こらんね。いやまあプログラムの間違いって、全部ロジックの間違いと言えば間違いだけど、普通に仕様間違えてるとかっていうやつね。Rustのコードはノイズが多いっていうけど、これがロジックに集中できるってやつなんじゃないんかなやっぱり。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「ロジック書いてて煩雑だなってのは数値のキャストだけど、まあそれも不用意なキャストがされるよりかはなんぼかいいなという気になったし、ただ一つやっぱりいまだにただめんどいなってのは、usize以外で配列の添え字アクセスできないとこなんだよな。これはもうただただめんどい。(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「あと数値リテラルもなんだか微妙に多相だか多相じゃないんだかよくわからない内部的な謎の型になっとるけど、これちゃんとtraitで定義できんのやろうか。現状では単に多相的な数値扱う関数書くだけで死ぬほど面倒なんだけど、そこらへんRustコミュニティーは良しとしとるんやろうか。」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「Rustはメモリの扱いや内容の変化、ロックなどをソースコードで可視化できることがでかいので、そこら編をふわっとやってほしい(かつそれができる環境)のであれば、GC付きの言語を使ったほうがさくっと幸せになれると思う」 / Twitter
- yasuo_ozu@量子コンピュータエンジニアさんはTwitterを使っています: 「よく #Rustlang の Rc と Arc の違いが話題になるけれど、本来は Rc や Arc を使わなくても良いようにデータ構造を設計すべきなんだよね。所有権が共有されている状態は本質的にパフォーマンス上の問題があるので。 でもどうしても使いたい場合は、例えば型パラメータ T: Deref を用いれば」 / Twitter
- ytakanoさんはTwitterを使っています: 「Rust、DeriveでEqやDebugを実装できるのが便利すぎるな。C++はいちいちこれを自前で書いていて、あまりに面倒で挫折したのを思い出した。」 / Twitter
- ytakanoさんはTwitterを使っています: 「アフィン型、型推論、ADT、ジェネリクスあたりは別々だけど実装したことがあるので、あとはライフタイム、借用、型クラスを実装できればRustが実装できる。」 / Twitter
- ytakanoさんはTwitterを使っています: 「C++からRustへ移植するのは色々と難しいが、HaskellからRustへ移植するのは割と簡単だな。RustはC++の系譜ではなく、Haskellの系譜だな。」 / Twitter
- κeenさんはTwitterを使っています: 「Rustでホットリローディングするクレートの紹介。ゲーム開発など実行してみないと望んだ結果か分からないケースではホットリローディングが有効。 Hot Reloading Rust — for Fun and Faster Feedback Cycles | Robert Krahn https://t.co/Ew6zoiF55s」 / Twitter
- Hot Reloading Rust — for Fun and Faster Feedback Cycles | Robert Krahn
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Rustにおけるunwrap()の使用は、つねに悪というわけではない。unwrapはpanicを発生させるが、プログラマの想定が明らかに間違っている場合は下手なエラー処理よりもpanicのほうが設計が単純になる。一般にはexpectのほうがよいが、それでもunwrapが正当化される場面はある。 https://t.co/YUQnHVn4cN」 / Twitter
- Using unwrap() in Rust is Okay - Andrew Gallant's Blog
- てらモス🈚さんはTwitterを使っています: 「Rustで作った静的ライブラリをCから使うのと、Cで作った静的ライブラリをRustから使う分にはいいんだけど、Rustで作った静的ライブラリをRustで使うのが上手くいかない、というかこれが上手くできるならそもそもRustが独自にrlibとか作らなくて良かったな多分(´・ω・`)?」 / Twitter
- てんまさんはTwitterを使っています: 「@gorilla0513 Rust製ツールのバイナリをインストールしたいだけであればaquaもおすすめです https://t.co/hq41Bxn3uM」 / Twitter
- aqua Official Website | aqua
- yukiさんはTwitterを使っています: 「Rustでのエラーハンドリングについてよくまとまったドキュメントが!Rustの機能や周辺ライブラリの整理、どういうふうにエラー型を作るかのパターンとかも載っている。/Introduction - Error Handling in Rust https://t.co/dioP3qMSdn」 / Twitter
- Introduction - Error Handling in Rust
- Hideyuki TanakaさんはTwitterを使っています: 「関数のパラメーターの時はそれでいいけど、そうじゃないときは割とどうにもならんのだよな。into() とか。(´・_・`)」 / Twitter
- uint256_tさんはTwitterを使っています: 「Type ascription 便利」 / Twitter
- syntax - What is type ascription? - Stack Overflow
- 汎用猿型飯テロ決戦兵器 人造類人猿ゴリラゲリオンさんはTwitterを使っています: 「Rustの async/await はジェネレータで実装されているって話 完全理解した」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「Rustは良い書籍がすでにあるけど、それらはネイティブ英語話者に対して書かれてるので、それ以外の人には難しい。今では多くの国の人たちがRustを勉強しているので、これはそういう人達に向けた単純な英語での入門書 / “GitHub - Dhghomon/easy_rust: Rust explained using…” https://t.co/JOj4osnqzr」 / Twitter
- Dhghomon/easy_rust: Rust explained using easy English
- Hideyuki TanakaさんはTwitterを使っています 「まあunsafeの中ではunsafeが呼べるってだけで、unsafeじゃないものが自動的にunsafeになるわけじゃないからな・・・(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「ダングリングポインタも、バッファーオーバーフローも、SEGVも、ヌルポアクセスも、データレースも、絶対にないことを保障してくれて、その上C言語と同じかそれ以上に速いプログラミング言語があるんですって!これは使うしかないですよね!?(´・_・`)」 / Twitter
- Rustのクロージャは厳密にはクロージャではない - なんか考えてることとか
- 「Rustのトレイトは『高カインド多相のない型クラス』である」のブコメ返信とか - なんか考えてることとか
- インターフェース、MixIn、トレイトについて - なんか考えてることとか
Rune
- VさんはTwitterを使っています: 「google/rune https://t.co/YwPqSsJRxa "RuneはPythonにインスパイアされた効率的なシステムプログラミング言語で、CやC++のライブラリとうまく相互作用するように設計されています。 Runeはメモリ安全性、秘密の定時間処理など、多くのセキュリティ機能を備えています" miteru」 / Twitter
- google/rune: Rune is a programming language developed to test ideas for improving security and efficiency.
- VさんはTwitterを使っています: 「"Runeは、Structure-of-Array(SoA) メモリ管理により、ほとんどのメモリ集約的なアプリケーションにおいてC++よりも高速であることを目指しています"」 / Twitter
- VさんはTwitterを使っています: 「"より速く、より安全で、より生産的なシステムプログラミング言語" うりはぐっとくる。」 / Twitter
- VさんはTwitterを使っています: 「class という文字を見た瞬間に覚える気が無くなる病にかかっている。」 / Twitter
Ruby
- Crystal言語作者がRubyを愛する理由(1)「等しさ」の扱い(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(2)文字列の表現(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(3)ほぼすべてがメソッド呼び出し(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(4)呼び出しが強力(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(5)標準ライブラリが優秀(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(6)ブロック(翻訳)|TechRacho by BPS株式会社
- Crystal言語作者がRubyを愛する理由(7)秘密のアルゴリズム(翻訳)|TechRacho by BPS株式会社
error-tolerant parsing
解析木
- DrumatoさんはTwitterを使っています: 「パーサがいきなりASTを作らずに一度具象構文木(解析木)を作ってから意味動作でASTにする実装のメリット,何があるだろう.」 / Twitter
- 市川 真一さんはTwitterを使っています: 「テキストエディタとかで、解析木生成パーサを流用する場合に対応する括弧へのジャンプが実装できそうな気がしています https://t.co/RKqMVsbb3C」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「複雑な文法を持つ言語の場合パーサにいきなりASTを作らせるのが難しい場合がある(例えば演算子を自由に定義できる言語)、コンパイラが具象構文木を持ってるのでそれを出力するだけでコードフォーマッタができる、とか? https://t.co/9p2Yb1n7MK」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「この二つは具象構文木である必要があるかどうかは微妙。ASTに加えてコメントとカッコの情報を持っていれば充分な気もする」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「お気持ちでパーサを眺めると、具象構文木を生成する構文解析と具象構文木から抽象構文木への変換の合成と思うことができ、そうするとこの問題はどのぐらい両者を分離するかの程度問題と捉えることができる…?」 / Twitter
- DrumatoさんはTwitterを使っています: 「とても共感できる意見をいただきました, 個人的に思ったのは,具象構文木からASTに変換する処理はトークンストリームから作るより随分シンプルなコードになるはずなので,そういう利点を持っていそう. 字句解析と構文解析を分けるかどうかとか,構文解析と意味動作を分けるかとかいう話とベクトルは一緒か」 / Twitter
- Parsing Algorithms | Hacker News
- 井山梃子歴史館さんはTwitterを使っています 「Ungrammar( https://t.co/vSiuWSh6EC )の考え方は面白いと思っていて,これは言語定義におけるインターフェイスと実装の分離なんだよね」 / Twitter
- Introducing Ungrammar
- 井山梃子歴史館さんはTwitterを使っています 「Lossless Syntax Tree構築できて盛り上がっている https://t.co/dtqrtUWGtQ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「∀y. (fun x -> y) = fun z -> y のパース結果」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「参考文献: https://t.co/ENSRkFmgZB https://t.co/6vwxnPwhlj」 / Twitter
- rust-analyzer/architecture.md at master · rust-analyzer/rust-analyzer
- Persistence, façades and Roslyn’s red-green trees | Fabulous adventures in coding
- 井山梃子歴史館さんはTwitterを使っています 「repo: https://t.co/4ofcm40Y8T」 / Twitter
- pratt/lib.rs at abec6651daf21d2a081c3d9026b08bd0c44b3dd1 · pandaman64/pratt
- 井山梃子歴史館さんはTwitterを使っています 「error-tolerant parsingで盛り上がっていけ https://t.co/SJoiUI5XYO」 / Twitter
- TypeProf for IDE: Enrich Development Experience without Annotations
- .NET Compiler Platform SDK 構文モデルを使用する | Microsoft Docs
- rust-analyzer/syntax.md at master · rust-analyzer/rust-analyzer
- error-resilient - Google 検索
- kateinoigakukunさんはTwitterを使っています 「世の中のほとんどパーサはIDEを書くのに向いてない。SwiftSyntaxは偉すぎる」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「error-resilientでトビリア付きのCSTを吐けるパーサジェネレータが必要」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 生成文法系のツールって正常系以外は知らんってなりがちな印象」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru そうなんですよ。一応エラーリカバリも研究されてるんですけど、いかに少ない手数でパースできるようにできるかをメトリクスにしてるんですよね。 IDE的にはリカバリじゃなくて、明らかに壊れてたらコンテキストをクリアして次のトークンをパースして欲しいんですよ。」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 最小のエラーの解釈にするみたいな感じかな なんか文法定義文法自体を拡張してコンテキストのヒントみたいな概念をいれたりする方向が良さそうだなあ」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru そんな感じになるんですかねぇ。 この辺はとっくの昔に研究され尽くされてると思ってたのに全然そんなことなかった。」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 未踏だからSwiftも手書きなんじゃないか 家庭くんの卒業研究で世界狙うのにちょうど良さそう」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru 世界狙うか…」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 😲」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「そういえばASTの文字列出力に詳しい有識者いませんかというやつがある(括弧が必要以上に多く出力されてしまい困っている) https://t.co/wXK1bBzdvy」 / Twitter
- mod_poppoさんはTwitterを使っています 「HaskellのshowsPrecみたいに演算子の優先順位を表す整数を持って回ればいいのでは」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「ブロックを {} などの括弧で定義する言語、} が抜けたりするだけで、構文解析が失敗して、変数、関数の定義にたどり着けなくなったりするので、コーディング環境とは相性が悪い感じはある。その辺、インデントで構造定義する言語なら・・・と思ったりもするんだけど、ゴミしか残らないのが困りもの。」 / Twitter
- The Future of C++ Compiler Diagnostics in MSVC and Visual Studio - C++ Team Blog
- 令掛ベインさんはTwitterを使っています 「IDEとマクロの相性が悪いという記事。IDEとバッチコンパイラが必要とする言語の性質の違いが出てておもしろい / [IDEs and Macros](https://t.co/DxwTy7dk5k)」 / Twitter
- IDEs and Macros
- κeenさんはTwitterを使っています 「Rust Analyzerがマクロを克服しつつある。Rust内部のマクロ展開後の形式を人間可読な表示する機能をつけて、マクロ内で定義した関数の型を表示できるようになってる。マクロで生成したものは元のテキストがないからちょっと特殊で今まで表示崩れしていた。 Changelog #69 https://t.co/AZJkHGoirL」 / Twitter
- Changelog #69
- KOBA789さんはTwitterを使っています: 「メモリの都合によるノイジーなコードをうまく隠蔽してドメインロジックに集中できるようにするための機能としてマクロがあるんだけど、rust-analyzer などと相性が悪いので避けられがち」 / Twitter
- Ruby Parser開発日誌 (1) - かねこにっき
- Ruby Parser開発日誌 (2) - かねこにっき
- Ruby Parser開発日誌 (3) - かねこにっき
- Ruby Parser開発日誌 (4) - かねこにっき
テスト
モデルベーステスト
モデル検査はモデルを検査するものではない
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「大手IT業者の方が講演で「モデル検査では分散システムはモデル化できない」とか言ってて「並行プロセス計算とか…」と言ったらキョトンとしていた。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「どういうシステムなのか誤解があるようですね」とか言われて、大学院情報系の数十人の教員の前で小一時間問い詰めようかと思ったけど自粛した(しないほうが良かったかも」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「(そもそも「モデル検査」を「モデルを検査すること」だと思ってる時点で典型的な間違いですが。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/zhxftFnVR3 https://t.co/hLlfPib9mr >We used the term Model Checking because we wanted to determine if the temporal formula f was true in the Kripke structure M, i.e., whether the structure M was a model for the formula f.」 / Twitter
- The Birth of Model Checking | SpringerLink
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「>Some people believe erroneously that the use of the term “model” refers to the dictionary meaning of this word (e.g., a miniature representation of something or a pattern of something to be made) and indicates that we are dealing with an abstraction of the actual system」 / Twitter
- 形式手法 定理証明 と テストベクタ生成 T-VEC Tabular Modeler
- IPSJ-JNL5302010.pdf
- 37136500.pdf
- ソフトウェア信頼性の向上のための形式手法・開発支援ツールの研究 - sss2012-software-oiwa-pub.pdf
- テスト駆動開発から証明駆動開発へ #JTF2019 / July Tech Festa 2019 - Speaker Deck
- バグ0の資産を積み上げるための証明駆動開発入門
- 62_134.pdf
- 自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み
- 000049838.pdf
- Information for Prospective Students
- 研究テーマ/検証 - Takatalab
- モデルベーステスト - Wikipedia
- 7594591200220899443さんはTwitterを使っています 「「自動テストとはこの文脈ではコンピュータ・プログラムが想定通りに動くかテストする工程を自動化するもの」っていう定義でいうと、多分その作業を自動化するのはV字とか関係なくほとんど誰もできないと思うよ、それは自動テストというかもはや自動検収に近い https://t.co/lXX1MLCRQE」 / Twitter
- なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
- 7594591200220899443さんはTwitterを使っています 「いわゆる関数とかの粒度のユニットテストは別に想定通りに動いているかの確認ではないと思う。スタブしまくった環境下でコードカバレッジ上げれば想定通りに動くだろうというのは幻想に過ぎない」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「「プログラムの想定」とは一体全体なんだったのか、というのは、案外深淵な問題で、一筋縄ではいかないものなのですよ、いわんやそれを自動化するに及んでは…」 / Twitter
- ytakanoさんはTwitterを使っています 「来年はスレッドライブラリでも自作してモデル検査で検証してもらおうかな」 / Twitter
テスト
テスト
自動テスト
- mima_itaさんはTwitterを使っています 「Jenkinsおじさんの解説を聞きたいという要望を1年以上前に受けてようやく、継続的インテグレーションの下書きを書いたが、これの話をする前に自動テストの話をする必要があり、これが面倒。」 / Twitter
- mima_itaさんはTwitterを使っています 「自動テストの話の何が面倒かというと、まずテストについて話をする必要がある。」 / Twitter
- mima_itaさんはTwitterを使っています 「テストと一言で言っても認定試験ができるくらい厄介な話なんで、軽々に作れない。」 / Twitter
- mima_itaさんはTwitterを使っています 「仮にテスト実行について絞ったところで、そもそもテスト実行にはアドホックテスト、探索的テスト、記述的テストとかあって、アドホックテストしかしらん場合は、記述的テストの話をしないといけない。」 / Twitter
- mima_itaさんはTwitterを使っています 「じゃあ、記述的テストの話をした場合、当然、そのテストケースを管理するテストケースの管理方法について触れる必要がある。」 / Twitter
- mima_itaさんはTwitterを使っています 「この前提が終わった後に、ようやくユニットテスト、APIテスト、E2Eテストとかの話が始まってうんぬんぬん。」 / Twitter
Mutation testing
- Mutation testing - Wikipedia
- コラム - グーグルのクラウドを支えるテクノロジー | 第86回 GoogleにおけるMutation Testの実践(パート1)|CTC教育サービス 研修/トレーニング
- はじめてのMutation Testing - daisuzz.log
- Strykerを使ってTypeScriptでMutation Testingする
- phenanさんはTwitterを使っています 「Mutation testing みたいな話かな」 / Twitter
- がくぞさんはTwitterを使っています 「良い自動テストが書けているかどうかを測る定量的な指標って何があるんでしょうか? カバレッジはassertionが不適切でも数値を上げられてしまうのでカバレッジそのものを目標としたくは無いんですよね……」 / Twitter
- がくぞさんはTwitterを使っています 「@phenan おお!それっぽいですね。Mutation testing という単語を知りませんでした、ありがとうございます!!」 / Twitter
- がくぞさんはTwitterを使っています 「ほんそれなんですよ……そして「テスト自体の品質」を表すそこそこ手軽に測定できる指標が欲しい……というのが話の発端でした」 / Twitter
- 星の海のビビ(Vivi)さんはTwitterを使っています 「「テスト自体の品質」を計測してない品質管理が如何に無力かという・・・(;´∀`)」 / Twitter
- 星の海のビビ(Vivi)さんはTwitterを使っています 「@gakuzzzz まあやはり基本はカバレッジでしょうねえ。挙げられた例だと状態遷移のNスイッチカバレッジ意識してれば避けられた悲劇だとは思いますが・・・あれ「手軽に測定」と言われると面倒かもしれないですね(;´∀`)」 / Twitter
- がくぞさんはTwitterを使っています 「@strategic_vivi たしかにこの例だとカバレッジを意識してれば発見はやかったかもですねー」 / Twitter
- がくぞさんはTwitterを使っています 「仕様に対する網羅率的なものが測定できれば良い気もするのだけど、そのためには仕様を何らかでインプットできる形で表現する必要がありそう」 / Twitter
- がくぞさんはTwitterを使っています 「この方向性で突き詰めていったのがBDDな気もするのだけど、漏れなく仕様が表現できてるよねって測るの相当難易度高い気がする……」 / Twitter
- がくぞさんはTwitterを使っています 「ユースケースが適切に記述されているのであれば、各ユースケースの主成功シナリオ、拡張シナリオのそれぞれに置いて、事後条件が満たされているか、みたいな側面からいけるかな? (しかし大抵はユースケースが網羅的に記述されていない気がする」 / Twitter
- がくぞさんはTwitterを使っています 「動的言語界隈ではこの辺の知見が溜まってたりしないでしょうか……?」 / Twitter
- がくぞさんはTwitterを使っています 「Test Driven だとそもそもテストに対して実装を書いていく訳だからテストが仕様を網羅していないって事が起きえないのかな?」 / Twitter
- がくぞさんはTwitterを使っています 「テストほんと難しい……型で解決できる問題は型で解決したい……」 / Twitter
- がくぞさんはTwitterを使っています 「テスト仕様に「ユーザIDと正しいパスワードでログインできること」があっても「ユーザIDと間違ったパスワードでログインできないこと」が無かった所為で、どんなパスワード入れてもログインできてしまう欠陥が存在するまま運用し続けていたみたいな悲しい事件もあるだでな……」 / Twitter
property based testing
- κeenさんはTwitterを使っています: 「CRDTを採用しているRust製DBにおいて、論文を参照して新しいCRDTの振る舞いを実装してproperty based testingをしたら落ちたので実装を調べていったら論文に瑕疵があったという話。実装して具体例で殴るの強いね。 Testing CRDTs in Rust, From Theory to Practice https://t.co/ifflDUvzkM」 / Twitter
- Testing CRDTs in Rust, From Theory to Practice
- κeenさんはTwitterを使っています: 「こういう専門用語が飛び交う記事をどこまで解説すべきかとかどこまで日本語使うべきか迷う。解説しすぎると140字に収まらないし、日本語の定訳がなかったりすることもある」 / Twitter
数値計算のテスト
- kenjikunさんはTwitterを使っています 「数値計算のテストコード難しい 解析解がわからないから数値積分してるのに何と合ってればいいんだ」 / Twitter
- バドみんみんさんはTwitterを使っています 「@kenjikun__ 数値積分をする時は、vegas https://t.co/rgJ9TOFZQV を使ってみては? 自動的に精度の見積りをしてくれる優れものです。」 / Twitter
- gplepage/vegas: Adaptive multidimensional Monte Carlo integration.
Storybook
- berlysiaさんはTwitterを使っています: 「なんかStorybookに夢見る人たまにいるけど、別にカタログにしたからって同じ実装を作ってしまう可能性は消えないよ。どうせ見ないから。」 / Twitter
- berlysiaさんはTwitterを使っています: 「これを見てやめるのは違っていて、どうせ見ないから意味がないって言ってるんじゃなくて業務の流れに組み込んで直ちに利益を受け取れるようにしましょうという話。嬉しくないものには誰も目をかけない。嬉しいものなら親しみやすく、良くしたくなる」 / Twitter
- TakepepeさんはTwitterを使っています: 「そう。Storybook はスタンドアロンなデザインカタログとして独立させると誰も見なくなるけど、自動テストケースとしてCIに組み込むと見ざるを得なくなるよ(分類は Testing tool だし)」 / Twitter
テスト
- テストコードの DRY と DAMP
- リーダブルテストコード / #vstat - Speaker Deck
- テストコードにはテストの意図を込めよう #vstat - Speaker Deck
- ひさてるさんさんはTwitterを使っています: 「単体テストのコードは技巧的でないほうがよい、というのは正しいけど、それは DRY にせずコピペで同じパターンのコードを増やせということではない。セットアップ関連は共通化してもよい。また、まったく同じパターンの assertHoge が何度も出てくるのは、単体テストとしてそもそもおかしい」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「より下位のサブモジュールに十分なテストパターンがあれば、上位は組み合わせかたの智識のテストだけで済む。テストに入出力値の組み合わせが多すぎるのは、ひとつの層が問題を抱えすぎて、組み合わせ爆発が始まろうとしている兆候。そもそもそれを避けるために単体テストと並行で設計するんだよね」 / Twitter
- gochoさんはTwitterを使っています: 「@tanakahisateru テストコードがコピペで作られている必要はないが、 テストコードからコピペできるようにはしてくれ、 と思いますね コピペできないテストコードは、事前条件・事後条件が不明確だったり、引数の生成に難があったり、おかしなことが起こっていることの証明だと感じます」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「@gocho 単体テストでいちばん最初に学ぶことは、プロダクションコードと同じ言語で同じ呼び出し方をしてみることのはずですよね」 / Twitter
- gochoさんはTwitterを使っています: 「@tanakahisateru そうですそうです テストは、自分で作ったマズいドッグフードを自分で食うのが目的だったハズなのに、ドッグフード消化工場みたいなの作られて「?」ってなることがあります テストフレームワークが機能を提供してくれているんだから使うべきなんだろうと考えるのは、ハンマー釘病でよくない」 / Twitter
- freeeの自動テストの全体構成 - freee Developers Hub
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「TDD (テスト駆動開発) はなぜ流行らないのか? TDD推進派には実際は2種類いる: 「穏健派」と「至上主義派」である。彼らはTDDによって設計が改善されるとまでいっているが、TDDは大局的なアーキテクチャにまでは影響しない。TDDのメリットは確かにあるが、手段のひとつである。 https://t.co/2VCqrFCZvQ」 / Twitter
- I have complicated feelings about TDD • Buttondown
- zakuroさんはTwitterを使っています: 「F# のテストフレームワークの Expecto、テストケースの動的生成ができるので大変良い。コンパイラのテストではファイルごとに一つのテストとして扱いたいが、関数定義がテストになる言語だとこれができない(テストの中でログを出すとか、完全に独自ツールにするとかになる)」 / Twitter
TDD・Smalltalk
- 02さんはTwitterを使っています: 「テストの話をするたびに真っ先にTDD!って言うエンジニアに対して、あんまテストのことよくわかってなさそうだなって感想少し抱いていたけど いざTDD本写経してみると、テストの話をするたびにTDD!って真っ先に言うエンジニアってTDDもよくわかってないんじゃないかって感想も抱き始めている」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 > テストの話をするたびにTDD!って真っ先に言うエンジニアってTDDもよくわかってないんじゃないか ただのテストファーストと思われてる可能性はありそうですね」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 と思ったけど、どんな観点でそう感じました?私、気になります!」 / Twitter
- 02さんはTwitterを使っています: 「@Panda_Program TDDはスモールスタートかつインクリメンタルな開発や設計を促すのが本質だなと思いまして、 テストコードは割と副産物寄りな気がしていてテストの文脈でTDDの話をするのが違和感あるんですよね むしろTDDは設計の文脈で出るべきでは?と思った次第です!」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 おお、いい視点ですね!実際にテストを先に書くことで「クラスを使う直前に設計する」からインクリメンタルな設計という感じがしますよね」 / Twitter
- 02さんはTwitterを使っています: 「@Panda_Program そうなんですよねえ あとはフィードバックループを早く回す方法がテストコード(特にユニットテスト)だった、気持ちでいますね 他にも早く回す方法があればテストコード以外の方法でも良いと思っていますね...まあそんな方法はあまり無いのでテストコードを使っているわけですが笑」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 まさにそんな感じですね。REPLが早ければそれで確認という感じで。あまり詳しくないんですが、Smalltalk の開発環境はそのフィードバックを得るのにとてもよかったという記述をどこかで読みました。詳しくないんでそれ以上書けないですがw」 / Twitter
- 02さんはTwitterを使っています: 「@Panda_Program なるほど! 僕もあんまり詳しくないですが、良い体験そうでいいですね〜!」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 > 常にデバッガの中でプログラムを作ってるようなもの らしいです! https://t.co/585thAhImK」 / Twitter
- Smalltalkだめ自慢
- 02さんはTwitterを使っています: 「@Panda_Program すごそう!(語彙)」 / Twitter
- プログラミングをするパンダさんはTwitterを使っています: 「@cocoeyes02 Smalltalk勉強会をしなきゃ(使命感」 / Twitter
- I.NagataさんはTwitterを使っています 「assertEqual的なテスト関数の左右どっちがexpectedでactualやねん問題、CIの出力見ながらここ12年くらい悩み続けているので、カッとなって調べました。どうやら左expectedが優勢のようです。個人的にはx, yとかleft, rightで全然いいと思うんです https://t.co/LDj9kEojfd https://t.co/lGFMWJQhR4」 / Twitter
- どっちがexpectedやねん問題 - Google スプレッドシート
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Vitestを試してみようと思うんですが、これって特にviteを使ってない(フロントエンドアプリじゃない)プロジェクトでも使えるんですかね。」 / Twitter
- ArcCosine💉💉💉さんはTwitterを使っています: 「@igrep vitestは実質jestみたいなもんですから。vite使ってなくてもオッケーです。」 / Twitter
- チェシャ猫さんはTwitterを使っています: 「分散システムの仕様を記述するときに安全性だけでは駄目で、必ず活性の検査が要る、というやつ。何もしないシステムは必ず安全性制約を満たす。」 / Twitter
- satさんはTwitterを使っています: 「テスト、とくにユニットテストの怖さは「長年ここはテストできていると思い込んでいたものの実は何もテストできていなかった無のコードだった」というやつ」 / Twitter
- satさんはTwitterを使っています: 「たとえば極端な話 func TestFoo(t *testing.T) { // TODO: あとでかく } のようなコードをたまたま見つけるとか」 / Twitter
- 非実在naka akiさんはTwitterを使っています: 「@satoru_takeuchi まあassert無しなテスト関数はRiskyって表示される処理系だといいなあ感。(とりあえず昨日書いたPHPUnitにはその機能があった)(てか早くRiskyを治しなさい>俺)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「テストケース、特にコーナーケースや組み合わせに対するそれは多かれ少なかれ実装を想像しながら書くことになると思うんだけど、その部分が一番判断力が要求されてつらい感じがある」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「「テストケースの集合」を決めることは「テストされないケースの集合」を決めることでもあり (そしてそれを空にすることはできない)、それには「まさかこんな実装はしないだろう」という予断をどこまで認めるかという判断がついてまわる……」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「典型的な間違いをカバーする一方で、テストケースの組み合わせ爆発を防ぐためには「内部で同じ役割のコンポーネントが二重に実装されている」などのケースはある程度無視する必要がある。少なくとも普通のテストケースを使うのであれば。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「それだと困るからfuzzingなりpropert-based testingなりを併用することになるんだろうけど (しかし、そもそもポータブルなテストケース集を作るのが目的になっている場合はそういう仕組みは入れたくないな)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「つまりテストを書くとき、頭の中では「間違った実装の例」を思い浮かべることになる (脳内mutation testing的な) 頭の中とはいえ色々な実装をしながらテストを書くことになるので大変でないわけがない」 / Twitter
- 🍣大河内健太郎🕊💉さんはTwitterを使っています: 「テストコードがトレンドに上がっていますが、僕が今でも参考にしているのはJR福知山線脱線事故でお亡くなりになった石井勝さんの「JUnit実践講座」です。 20年前のコンテンツですが現代でも十分参考になります。 https://t.co/A6nLxkzhla https://t.co/kKUIKFeDL9」 / Twitter
- - JUnit 実践講座
- 画力・博士号・油田さんはTwitterを使っています: 「多分必要な人かなりいると思うけど知る限り誰も本格的にはつくってないっぽいもの: - テストでのモックに使えるインメモリなRDBMS - シェルスクリプトのテストツール」 / Twitter
- Koichi NakashimaさんはTwitterを使っています: 「@bd_gfngfn こんなこともあろうかと本格的なシェルスクリプトのテストツールを作っておいた https://t.co/V1KghH9JR1」 / Twitter
- shellspec/shellspec: A full-featured BDD unit testing framework for bash, ksh, zsh, dash and all POSIX shells
- ショウ希望^hさんはTwitterを使っています: 「@bd_gfngfn ご存知かどうかはさておきin-momory RDBの例 https://t.co/Cs96idu8pl」 / Twitter
- oguimbal/pg-mem: An in memory postgres DB instance for your unit tests
- テスタは製品定義にどのように貢献できるのか
- 開発者がE2Eテストを書くことで得たもの
- テストピラミッドを使って品質を左シフトする
- マイクロサービスでのエンドツーエンドテストの課題
- Goがベータ版でファズテストをサポート
- 機械学習によるテスト失敗の予測
- ミューテーションテストの紹介 - Dave Aronson氏のJSConf Hawaiiでの講演より
- 堅牢なテスト戦略により自信を持ってDropbox Syncをリライト
- ディフェクト・マスの測定が重要な製品領域のテストにどのように役立つか
- テストコードのデザインパターン:Robotパターン - 千里霧中
- テスタビリティ(試験性)を確保するための設計方針 - 千里霧中
- テスタビリティ(試験性)の拡張を実現する実装 - 千里霧中
- ソフトウェア・テストを再考する - hidekatsu-izuno 日々の記録
- テスト自動化 / Test automation - Speaker Deck
- テスト戦略によってデプロイメント作業の完成度とプロダクト品質を向上する
- 2021年版、サーバーレスのテスト手法を考える / Serverless Testing 2021 - Speaker Deck
- ネットワークはなぜつながらないのか 〜インフラの意味論的検査を目指して〜 #AWSDevDay / AWS Dev Day Online Japan 2021 - Speaker Deck
- 人気の負荷試験(負荷テスト)ツールを調べてみる(Locust, Vegeta, wrk) - もた日記
- 非同期コードのテスト - RxJS Live London
- dtslintで型定義ファイルをテストする | フロントエンドBlog | ミツエーリンクス
- Vue Test Utilsで始めるスナップショットテスト | フロントエンドBlog | ミツエーリンクス
- RustでProperty-based testing ライブラリを実装してみた - かとじゅんの技術日誌
- 実装例から見る React のテストの書き方 - Cybozu Inside Out | サイボウズエンジニアのブログ
- 「さよなら Flaky 。不安定なテストの探し方」というお話 - Cybozu Inside Out | サイボウズエンジニアのブログ
テストダブル
- Masaki HaraさんはTwitterを使っています 「RDBに関係するテストはちゃんとした実装に繋いで実行したい派なんだけど、Railsに毒されているだけでmockしても意外と大丈夫なんだろうか……?」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy Mockできる場合は * DBアクセスが非常に単純でテストが不要 * DBアクセスが完全にカプセル化され、単体でテストされてる のどちらかで、多くのソフトウェアはどちらにも該当しないのでmockしないほうがよいというのが実情と感じます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 いい感じに言語化してもらえてありがたいです。」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy 前者はKVSだと行けたりしますがRDB使ってるとほぼありえないし、DBアクセスを1レイヤに完全にまとめるのも負担でかいし、自分達の書いたDBアクセスコードはテストで動かしたいので「単体テスト」から外れてもDBは繋ぎたくなっちゃいますよね。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 同感です……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 結局、テストする価値のあるインターフェースをテストするべきなんじゃないかって気はしますよね。 > 前者はKVSだと行けたりします わかります。しかしKVSくらい単純だと今度は期待する応答をハードコードするよりも、KVSの挙動をアプリケーションの言語でシミュレートしたほうが簡単なことも……」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy はい、testing libraryの提供するmockというよりtest doubleですね。 dbへの呼び出しのexpectやresponseをちまちまmockすることはほぼあり得ないと思います…」 / Twitter
- test double - Google 検索
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「「テストダブル」のダブルってどう言う意味かと思ったら「代役」と言う意味があるらしい。 MartinFowlerが「Stunt Doubleのようなものだと思ってくれ」といっていて、これはまさにスタントマン、代役のことを示すらしい https://t.co/PFi3hP8yK8」 / Twitter
- データベースをスコープで分けてテストしやすくする - ベインのブログ
型のlog(対数)という演算
- kinabaさんはTwitterを使っています 「Logarithm and Program Testing https://t.co/gIny4LPDPg これまだ論文出てないけど、検索で見つかる少し前の進捗途中の発表見る限りめちゃ面白い奴では? 型と型の足し算や掛け算は普通にあるけど、では突然ですがここで型のlog(対数)という演算を考えます。なぜか?自動テストケース生成のためだ!」 / Twitter
- Logarithm and Program Testing (POPL 2022 - POPL Research Papers) - POPL 2022
- kinabaさんはTwitterを使っています 「古くはKnuthの「ある種のGenericなソート関数の正しさを示すには、Boolのリストを正しくソートすることだけ確かめればOk」という結果のような、多相型の関数の正しさは、実は特定の型だけで確かめれば保証されるという話があって、その「特定の型」に何を使えばいいかを型のlogで計算できるのだとか」 / Twitter
fuzzer か property test
Property-Based Testing
- proptest - Google 検索
- Shinjuku.rs#10を開催しました│FORCIA CUBE│フォルシア株式会社
- Rust の Proptest の紹介 - Qiita
- Rust の proptest-derive の紹介 - Qiita
- proptest - Rust
- AltSysrq/proptest: Hypothesis-like property testing for Rust
- Introduction - Proptest
- Proptest
- (PDF) Proptest: A Property Based Test Pattern Generator for Sequential Circuits Using Test Compaction.
- Property-based testing in Rust with Proptest - LogRocket Blog
- proptest - crates.io: Rust Package Registry
- Property-Based Testing in Rust - Speaker Deck
- maguro.dev - 2020/06/30 に開催された Shinjuku.rs #10 に参加しました
- 眼力 玉壱號さんはTwitterを使っています 「取りあえず fuzzer か property test って話になるけど、こいつらは基本 framework が無いと辛い奴なんだよなあ🤔」 / Twitter
- ドッグさんはTwitterを使っています 「@objectxplosive どちらかというと Copilot 的に,一般的な「いじわる系テスト」を学習して似たようなテストを生成してほしい感ありますね」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 『bug は境界に潜んでる』ってのは真理だからなあ…ただそれを test case として生成するには『対象 program における境界とは何か』を理解してないと難しくて Deep Learning でどうか出来るか今は微妙な所の気はする(将来は判らぬ)」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 大抵の property testing framework は heuristics として『空の値』『null』をいの一番に値として生成するというのはあるけど、それ以上は対象の構造に依存しちゃう」 / Twitter
- ドッグさんはTwitterを使っています 「実装をいじめるためのテストケースを書くのがだるいので,エクセルの auto fill みたいに10個ぐらい書いたらあと990個ぐらい自動生成しといてほしい」 / Twitter
Property-based Testing
- がくぞさんはTwitterを使っています 「境界値テストが書ける時点で境界値について意識が向いてる必要があるので、人間は愚かという前提に経つとProperty-based Testing しようね!という方向に」 / Twitter
- ABAB↑↓BAさんはTwitterを使っています 「みんな仕様と数学について話しているけど 人間は愚か という前提に経つと、空配列が来る可能性があるなら 境界値テスト書こうね!で済む 人間は愚かなので、テスト書かないって話もあるけど;;」 / Twitter
- がくぞさんはTwitterを使っています 「また依存関係だけでなく、内部構造をどこまで公開する必要があるかによっても変わってきそうですね。 最近はExtension Methodをもつ言語も多いので、そういった言語では独立したモジュールにしてExtension Methodとして a.toB にするみたいな表現も可能そうです」 / Twitter
- がくぞさんはTwitterを使っています 「AがBを知っていてはいけないのであれば当然 a.toB: B は書けないですし逆もまたしかり」 / Twitter
- がくぞさんはTwitterを使っています 「b.fromA(A a)は実際にはファクトリであってbのインスタンスは不要なのでオブジェクトに帰属という概念とは異なる感じですよね。オブジェクト指向が前提にあるとしたら a.toB: B になる感じですが、実際にはAとBの依存関係によって決まってくるパターンの方が多そうです」 / Twitter
- やきにくさんはTwitterを使っています 「aがbより安定概念なら b.fromA(A a)、逆なら a.toB(B b) ですかねぇ。判断がつかない場合はどちらにも帰属させられないので独立したモジュール(パッケージ)に純粋関数として、と自分ならすると思います。」 / Twitter
- 山本和彦さんはTwitterを使っています 「オブジェクトでも型でもいいんですが、aからbへ変換するa2bという関数/メソッドは、オブジェクトに帰属させる場合、a側に置くのか、b側に置くのか、慣習とか知見はあるんでしょうか?」 / Twitter
- がくぞさんはTwitterを使っています 「ふつーのドメインロジックのテストもふつうにProperty based testingできるよ!という話は以前にしたのでご参考まで https://t.co/Xe8lIUFGg7」 / Twitter
- Property Based Testing でドメインロジックをテストする
- がくぞさんはTwitterを使っています 「テストを書く時はテスト観点を大事にしましょう、という話で、テスト観点が明確であればProperty Based Testingするのも簡単ですよ、というお話です」 / Twitter
テストケースのリファクタリング
- goyoさんはTwitterを使っています 「Tesseractで多言語対応テストの自動化しようとしているが入力テストが鬼門だな」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストの領域で一番重要なのはテストケースのリファクタリングとかリストラクチャリングだとおもっていて、このへんの技術がすすんでいないことの証左として、Launchableみたいな戦略になるんだよなっていう。。。」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストケースにおけるデザインパターンみたいなものがあるんだけど、あまりうまく言語化できていないというのをずっとかかえているんだけど、それよりもアジャイル開発におけるパタンランゲージづくりのほうが仕事で急務なのでそっちばかりやっている。」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「たとえば、コアとなるテストケースをどのように抽象化しておくと、副作用に着目するテストケースと、単純なロジックに着目するテストケースをつくりやすくなるのか。とか。で、テストにおける期待値をつくりやすくするために仕様の記述時点でどのように工夫をしておくのか。とか。」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「テストもアジャイルも形式化されている範囲だけをつかうと、どうしても焼畑農業的な業務になってしまい、そうなると差別化をしにくくなり、別の領域とくみあわせたロールになりがち。それはそれでいいんだけど、結局元の領域自体は進歩しにくくなっちゃうんだよね。。。っていう感覚がある。」 / Twitter
- きょん@アジャイルコーチ、システムアーキテクトさんはTwitterを使っています 「そんな現状において、自分はなにもできていないので、ソフトウェアテストやアジャイルで形式知をのこしたり、サービスをつくったりしている人達ほんとうにすげーなってなっておもっています。」 / Twitter
Property Based Testing
- shinoさんはTwitterを使っています 「Property Based Testing (PBT, QC) 界隈には「PBT を実行するとテスト対象コードのバグが見つかるか、テスト対象ドメインの自分の理解のバグが見つかるか、それら両方である」という格言がある。今回も見事にそうなった。100 行程度のコードでバグが見つかるのはほんとうにすばらしい。」 / Twitter
- shinoさんはTwitterを使っています 「だれの言葉だったかは忘れた(もとは英語だったかな)。こんな格言が何度も身に沁みているにも関わらず、なんか PBT を書き始めようとするのに心理的な障壁があるのはなんとかしたい(めんどくさいんだよ...)。」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@itawasa PBTは対象 domain への理解が無いと書けないので Example Based Test よりも難度は上がりますね。 幾つかパターンあるのでそこに落とし込める時は良いのですが🤔」 / Twitter
- shinoさんはTwitterを使っています 「@objectxplosive 今回は雑なドメイン理解で PBT 書いたらエラーになって、なんでや??って調べてたら別のところに潜在バグがあったという流れでした。ブラックボックスで PBT 書くとたまに起きますねぇ。感謝しかないっす。」 / Twitter
- EffでミュータブルなしStateとプロパティーベーステスト
- Masaki HaraさんはTwitterを使っています 「property-based testingのつもりが単なる実装のdualになってしまう問題ってやっぱあるんだな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「まあしかしそれでも別にいいのかもしれない。そのあと実装を変えるときのハーネスとしては機能するはずなので」 / Twitter
blog
千里霧中
- QAアーキテクティング手法:CEQAAM - 千里霧中
- QAアーキテクチャの概要 - 千里霧中
- QAアーキテクチャの事前検証 - 千里霧中
- 責務構造ツリー - 千里霧中
- Tesseract OCRで文言描画の多言語対応テストを自動化する - 千里霧中
- テストタイプの設計アプローチ(標準規格の品質モデルで分割してはいけない) - 千里霧中
- テストカバレッジを具体的に表現するためのアプローチ - 千里霧中
- 1台のサーバーで複数のステージング環境を同時に使えるようにする | PR TIMES 開発者ブログ
- 保守・拡張をしやすいカプセル化したCypress | フューチャー技術ブログ
- テスト容易性を考慮したFlutterのアーキテクチャ考察 | /var/log/koka
- 【翻訳記事】テスト自動化の対象となるテストシナリオの整理に役立つBRIEFの原則 - ブロッコリーのブログ
- テスト時間を短くするための分散テスト実行 | メルカリエンジニアリング
- メルペイフロントエンドのテスト自動化方針 | メルカリエンジニアリング
- Rustのテストは2種類のオプションがある | κeenのHappy Hacκing Blog
- Makoto Kato ︎︎さんはTwitterを使っています: 「今働いてるところだと、intermittentという言葉使うけど、いろいろあるんですね https://t.co/AxHf4y0tSt」 / Twitter
- 世界中のITエンジニアが悩まされている原因不明でテストが失敗する「フレイキーテスト」問題。対策の最新動向をJenkins作者の川口氏が解説(前編)。DevOps Days Tokyo 2022 - Publickey
- 世界中のITエンジニアが悩まされている原因不明でテストが失敗する「フレイキーテスト」問題。対策の最新動向をJenkins作者の川口氏が解説(後編)。DevOps Days Tokyo 2022 - Publickey
- バンダイナムコスタジオやAbemaTVがモバイルアプリの品質管理に採用する、テストプラットフォーム「HeadSpin」の機能とは?[PR] - Publickey
- RSpec のすごいところ - kなんとかの日記
- Rails 3.x 時代のテストフレームワーク - Rails 雑感 - Ruby on Rails with OIAX
- 続・Rails 3.x 時代のテストフレームワーク - Rails 雑感 - Ruby on Rails with OIAX
- Test::Unit と RSpec と Shoulda - Rails 雑感 - Ruby on Rails with OIAX
スライド
- ユニットテストの保守性を作りこむ, xpjugkansai2011
- 質とスピード(2020秋100分拡大版) / Quality and Speed 2020 Autumn Edition - Speaker Deck
- Agile Testingを夢見たテスト自動化 〜ATDDへの挑戦から始まる 1年間の試行錯誤〜 / dreaming agile testing at basebank - Speaker Deck
- これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing - Speaker Deck
- Webフロントエンドのリプレースを支えるテストの考え方 / JSConf JP 2021 - Speaker Deck
- テストアーキテクティングをテーマに登壇 - 千里霧中
- テストを導くためのテストアーキテクチャの組み立て方/cetam - Speaker Deck
- アメリカで働くQAエンジニアの現場から - Speaker Deck
- Testing Library流でフロントエンドテストのコスパを最大化する - Speaker Deck
- ソフトウェアテスト入門 / 2022-08-30 software testing - Speaker Deck
- 34号:なぜテストをするのか|Kouichi Akiyama|note
PDF
- yosshi_さんはTwitterを使っています 「大した話ではないんですが、この辺のテストの呼び方が会社毎に結構違うので趣深い https://t.co/SyyFo9x30k #k8snovice https://t.co/g8l6pPJafo」 / Twitter
- 000005144.pdf
@goyoki
- goyoさんはTwitterを使っています 「分析の効率化はODCの運用で必然の流れだよなあ。今はインタラクティブなBIツール・データ分析ツールがたくさん普及しているからなおさら #qa_online」 / Twitter
- goyoさんはTwitterを使っています 「業務フロー分析とVSTePは競合しないから、業務フロー分析で理解を深めて、そこで学んだものもまとめてVSTePでテスト観点分析してもよいかもと思った #qa_online」 / Twitter
- しましま(偽)さんはTwitterを使っています 「@goyoki ですよね。VSTePの観点はなんでも包含できるので、業務フローから観点を展開できるはずです。 #qa_online」 / Twitter
- goyoさんはTwitterを使っています 「@shimashima35 おっしゃる通りだと思います」 / Twitter
- しましま(偽)さんはTwitterを使っています 「@goyoki せっかく業務フロー分析をしているので、そこを排他にするのはもったいなと。」 / Twitter
- Takuto WadaさんはTwitterを使っています 「テスト駆動開発にはざっくりいうとモックを積極的に使う派(ロンドン学派)とあまり使わない派(デトロイト学派、古典派)がありまして、私は後者なのでほとんど使わず、このエントリに深く同意するところです / “モックは必要悪で、しないにこしたことはない - …” https://t.co/VjDvospTKu」 / Twitter
- モックは必要悪で、しないにこしたことはない - blog.8-p.info
- mswで快適モック生活 - Adwaysエンジニアブログ
- goyoさんはTwitterを使っています 「アジャイルの中での古典派TDDだと、EDUF(Enough Design Up Front:EDUF)でアーキテクチャを構築しつつ、ボトムアップでTDDをすすめるのが現実的なアプローチだと思う」 / Twitter
- goyoさんはTwitterを使っています 「留意点は、古典派TDDはモックを使わないようにボトムアップでプログラミングするけれど、アーキテクチャ設計とかトップダウンの基本設計は否定しないところ。仮に設計アプローチは同じだとしても、古典派とGOOS派はテストコードとユーザドメインの距離に差が出る」 / Twitter
- goyoさんはTwitterを使っています 「理想はGUI仕様からテストを自動生成可能にするMDTだけど、テスト優先でモデル化する動機づけと費用対効果の課題になる」 / Twitter
- goyoさんはTwitterを使っています 「描画ベースのEnd to Endテストだと、座標データの抽象化あるいは自動生成が課題になるな。後者に画像認識やAIみたいなキーワードが安易に挙げられるけど、その道に進んでみるとFraky Testとの戦いになる」 / Twitter
- goyoさんはTwitterを使っています 「テスト自動化にいろいろな目的や成功指標があるのはその通りだけど、「コスト削減をテスト自動化の目的に掲げているのは素人」という言説は受け入れがたい」 / Twitter
- Fumikazu FujiwaraさんはTwitterを使っています 「@goyoki 目的によって素人かプロフェッショナルかは測れなそうですよね^^; ちょっと外れますけど例えば自動化でテストデータ作成とかコスト削減に寄与しますもんね」 / Twitter
- goyoさんはTwitterを使っています 「@freddiefujiwara はい。まさに仰るとおりです。」 / Twitter
- goyoさんはTwitterを使っています 「コスト削減が目標として妥当なシチュエーションに普通に遭遇してきたのだが、経験している世界が違うんだろうか」 / Twitter
- ぽんこつさんはTwitterを使っています 「Swagger的なのを使うときにコード自動生成系はまじでやめて、compile時チェック的な仕組みであれば好ましい、unit testでも無いよりマシ、という話をした」 / Twitter
- Category:ソフトウェアテスティング - Wikipedia
- 公開資料 - WACATE
- CDNは5時間で開発できる | POSTD
- 品質系社員の現場からのビジビリティー、存在感向上=成果の見える化のアプローチ - Qiita
- Kazuho OkuさんはTwitterを使っています 「LD_PRELOAD で getaddrinfo (2) をオーバーライドするラッパーとして実装した。複数アドレス返したり、名前解決にv4の側だけ遅延いれたり、ポート番号変えたりできて便利 https://t.co/OBMZpMvcnG」 / Twitter
- injectaddr.so.c
- Kazuho OkuさんはTwitterを使っています 「名前解決まわりのテスト書く一番楽な方法、実は nsswitch.conf に、特定の環境変数がある場合だけ、いろんな動作をする libnss extension を書く方法だったりする?」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「機械学習でFirefoxのテストを効率化する。Firefoxは1日に300近くのpushがあり、90種類の異なる環境に対して約85,000の項目が存在するが、CI負荷を減らすためテストは部分的にしか実行しない。しかし一時的に失敗する項目もあり、組み合わせ戦略はXGBoostを使って学習させる。 https://t.co/CeyINaOp7H」 / Twitter
- Testing Firefox more efficiently with machine learning - Mozilla Hacks - the Web developer blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GNU coreutilsをテストしているフレームワークの説明。それほど長くない所要時間で、システムに跡を残さない (idempotence) ようにするため、様々なツール を組み合わせている: gdb, strace, valgrind, /dev/full, LD_PRELOAD, loopback mountなど。/dev/fullは初めて知った。 https://t.co/9fDdeP8MLF」 / Twitter
- How the GNU coreutils are tested
- /dev/full - Google 検索
- フロントエンドのテストのモックには msw を使うのが最近の流行りらしい
- かとじゅんさんはTwitterを使っています 「頭がよい人が雑に書いたテストコードはだいたいアサーションルーレットになってて、テスト対象のメソッドも複数の責務を持ってる。だからリファクタリングも難しい。こういうのを防ぐためにTDDはやはり必要なガイドだと思える」 / Twitter
- 事前条件も事後条件もテストも全部 assert!() でいいの? まあ、いいんじゃないでしょうかという話
- 実装の詳細をテストすることについて
エラー処理
エラー処理
- 市川 真一さんはTwitterを使っています: 「自作言語を作るなら、このような定型的なコードの省略形を用意したいなと思ってる」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「if(err != nil){ fmt.Println(err); return; } のオンパレードだった」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「Rust、エラーを表示して自身を返す関数がResultにあれば、 do_something().show_err("Err: {:?}")?; みたいにできることができそう」 / Twitter
- わたすけさんはTwitterを使っています: 「結局if let Err()で事足りるんじゃないかなあと思ったけど、?で連結させるならわりとよさげかも」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「let result = hoge(); if let Err(e) = result { ... return; } let result = result.unwrap(); という感じにするか let result = match hoge() {Ok(e)=>e,Err(e)=>{return;} } になっちゃう」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「if letはErrを束縛できればかなりうれしい」 / Twitter
- Rust のエラーハンドリングはシンタックスシュガーが豊富で完全に初見殺しなので自信を持って使えるように整理してみたら完全に理解した - Qiita
- Makio TsukamotoさんはTwitterを使っています: 「エラーじゃなくエラー率を監視する。わりとエラーの発生そのものを監視しがちだけど、エラーゼロの環境かエラーすべてインシデント化してチェックする運用じゃないと、それらはオオカミ少年アラートになっちゃう。 #AWSStartup https://t.co/gjz8h1DF6L」 / Twitter
- Makio TsukamotoさんはTwitterを使っています: 「「スマブラが10分で終わるのか気になりました」 「いい質問ですね。実際は終わらないですね」 プレイ時間の監視が求められる。 #AWSStartup」 / Twitter
- YujiSoftwareさんはTwitterを使っています: 「こういうコード、やめて…! 何もせず例外投げてくれれば、まとめてハンドリングできるのに…。 try { // 処理 return true; } catch (Exception e) { // ログに出力 return false; }」 / Twitter
エラーメッセージ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「設定ファイルが解析できません」「権限がありません」等のログほどイラつくものはない。どの設定ファイル? 何の権限だ? よいエラーメッセージは以下を表示すべし: - エラーが起きた文脈 (例: 設定ファイルのパス名) - エラーの種類 (例: 問題を起こしたトークン) - 解決方法 https://t.co/eVA0DhcXSt」 / Twitter
- What's in a Good Error Message? - Gunnar Morling
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Redditのコメント: "ORA-00942: 表またはビューが存在しません。" おいこら、どの表なんだよ、ラリー?? https://t.co/O7kiaJv0lg」 / Twitter
- What's in a Good Error Message? : programming
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ほかにもいくつか興味深い提案がされている: (ライブラリ・フレームワークの場合) - エラーメッセージはローカライズしないほうがよい - 用語、時制は統一せよ - エラーメッセージをAPI規約に含めるな - 秘密の情報を表示しないように注意せよ - エラーか例外発生のどちらかにせよ、両方は不要」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「昔の MPW (Apple純正Mac開発環境) Cコンパイラが本当に出していたエラーメッセージ...らしい: 「ここでtypedef名が出るとは驚きだね」 「この関数はもうやったよ」 「ハア?」 「シンボルテーブルに空きがありません - お近くのApple販売店からRAMをお買い求めください」 https://t.co/PdYqryhLd6」 / Twitter
- https://www.cs.cmu.edu/~jasonh/personal/humor/compile.html
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteっぽい https://t.co/b2Xt7k5Uq6」 / Twitter
- The Use Of assert() In SQLite
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「assert にも同様の濫用があって「クラッシュは仕様」と「クラッシュしたらバグ」が混在していて、その辺りは昔ブログに書いた: https://t.co/gagW3ixhT3 > つまり、あらゆる assert は、プログラムが完全に想定 (仕様) 通りに動いたとするなら全く存在しなくても構わないように使うべきである。」 / Twitter
- Panic を恐れるべからず - 何とは言わない天然水飲みたさ
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteはテストで条件分岐をフルにカバーするとこまで含めての話でもある」 / Twitter
- ドッグさんはTwitterを使っています 「自分はロジック上失敗しない(はず)なら .unwrap() でやってるな.そこでエラーになるのは実装上の理由なので,ユーザが見て分かるメッセージが出せないし,実装者が分かれば十分なら理由はコードコメントで十分で,あとはクラッシュした時のバックトレースが知れれば良い」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これは文脈次第だと思っていて、「クラッシュする可能性がある (何かあったときクラッシュするのが仕様である)」場合はエラーとなった理由を書くし、「クラッシュしえない (クラッシュしたら実装のバグである)」場合はエラーになりえない理由を書くようにしている」 / Twitter
- ドッグさんはTwitterを使っています 「Result::expect の引数ってエラーになった理由を書くもんだと思ってる」 / Twitter
- ふみ a.k.a. DJ MonadさんはTwitterを使っています 「Rustでunwrapからのパニックを出すライブラリを見るとキレそうになるが、Haskellは実行時エラーを出す関数の数々が言語仕様レベルで決められているので人のことを言えなかった」 / Twitter
- ytakanoさんはTwitterを使っています 「Rustのパーサコンビネータのnomを使ってVerboseError使ったら、Rustコンパイラっぽいエラーを出せるのか。便利すぎる。 https://t.co/akPnA4LsFS」 / Twitter
- Masanao IgarashiさんはTwitterを使っています 「エラー処理、いちいちnilチェックするのか面倒とかイケてないって評してる人は、実は今までそんなにいちいちエラーのこと考えながらコード書いてこなかっただけだったりしない?いちいちエラー処理したほうがいいよ?どの言語使っても。optionとかresultでも。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「エラーチェックして結局メッセージ出してexitするだけなら、デフォルトのエラーハンドラを用意するのも考え方だと思うけどな。そもそも、printfの戻り値とかチェックしないでしょ? (printfの戻り値もチェックするのであれば何も言えません)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「後、組み込み、これはチェックしないといけないわね。もっともメッセージ出して終了なんて甘いエラー処理は許されないけど。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「Goは好きだけど、この擁護の仕方にはあんまり同意できない。 大元でcatchしてエラーログとスタックトレースをログに書いて、Webアプリなら500 Internal Server Error返す、バッチならメールかslackに報告して終了するでいいケースは多い。 それはするべきエラー処理をサボってるわけでは無い。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「逆に、ちゃんとした回復処理がある場合を除いて、処理するべきではない。 場合によってはエラーを書き換えること(低レベルエラーから高レベルエラーにする)もあるけど、多用するべきではない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「全くそのとおり。Webアプリならむしろ個別にエラー処理しないことが推奨される。」 / Twitter
- コンパイラでのエラーの扱い - ベインのブログ
- エラーハンドリング - tasuwo's notes
- Takashi KawasakiさんはTwitterを使っています 「Goのjson-goldというライブラリの中でpanicしちゃって勝手に死のうとしてくれるんだが、recoverっていうのを使えばこういうのは回避できるの?キャストで死んでるのは良くわかるんだが、この程度で死なないでほしいんだよなぁ。 https://t.co/caPbH2gh2v」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「recoverっていうのはdeferと組み合わせて使うのか。例外時のRAIIのデストラクタって感じだな。そういう仕組みだから、戻り値には関与できず、戻り値は、型に合わせた既定値(このケースだと、"", nil)が返るのか。なるほど。 https://t.co/wQIBEHXGoJ」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Goのrecoverはchannelとセットで使えば良いという理解をした。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「基本、こういう風に使えば、jsのPromise reject的な感じで使える感じだな。ちゃんと使うなら string じゃなくて、もっとまともな型を作るべきだが。 https://t.co/9MONFh1YDn」 / Twitter
- PG_MANA@帰省中さんはTwitterを使っています 「goto failより、Zenのdefer/errdefer の方がわかりやすくて良い(Cにもほしい)」 / Twitter
- zen defer - Google 検索
シリアライザ・グラフ・RPC・API
その他
- Google Cloud Pythonロギングライブラリのリリースにより、サーバーレスのサポートが改善
- Netlify GraphによりWebアプリにおける外部API統合をシンプルに
- matsuu序二段さんはTwitterを使っています: 「宣言型記述言語。データのシリアライズや設定ファイルでの利用を想定している模様。D言語、Haskell、.NET、Java、PHP、Ruby、Dart向けの実装あり。 / “SDLang - Simple Declarative Language” https://t.co/kGrWevd9D7」 / Twitter
- SDLang - Simple Declarative Language
- 「データビジュアライゼーションの基礎」のまとめ グラフ編
- 構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する
- kabukawaさんはTwitterを使っています: 「jsonとyamlの可視化は、最近はplantumlでやることが多いな。 こんな感じで書くといい感じで可視化してくれる。今はDocBaseで使っているけど、VS CodeのMarkdown拡張Extensionでも使えるので割と便利。 @ startyaml 可視化したいyaml @ endyaml @ startjson 可視化したいjson @ endjson」 / Twitter
- kabukawaさんはTwitterを使っています: 「@ startyaml apiVersion: v1 kind: ConfigMap metadata: creationTimestamp: 2017-12-27T18:36:28Z name: game-config-env-file namespace: default resourceVersion: "809" uid: d9d1ca5b-eb34-11e7-887b-42010a8002b8 data: allowed: '"true"' enemies: aliens lives: "3" @ endyaml https://t.co/o3spJA9dtK」 / Twitter
- kabukawaさんはTwitterを使っています: 「@ startjson { "apiVersion": "v1", "kind": "Pod", "metadata": { "name": "nginx-json", "namespace": "default" }, "spec": { "containers": [ { "image": "nginx:1.18", "name": "nginx" } ] } } @ endjson https://t.co/w9rY3lqFiM」 / Twitter
- Kubernetes クラスタ管理とは | Red Hat
- サービスディスカバリ - Wikipedia
- なぎせ ゆうきさんはTwitterを使っています 「Excelの資料からJSONファイルの生成をするコードが出来た。 なぜ人類はJSON形式のデータをExcelの書類で設計しようとするのか」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kfujieda OODBはプログラミング言語と密着してるべきなので、標準化は茨の道ですね。 仕組み的にはRPCのserializerにインデックス足しただけなわけで、言語ごとに一つは標準的なOODBがあってもいい気はします。」 / Twitter
- terrierscriptさんはTwitterを使っています: 「JSONからzodに変換するのほしいなーと思ったけど普通にあるな https://t.co/G0t9S2U0Ew」 / Twitter
- JSON to Zod Schema
- 年末uさんはTwitterを使っています: 「テキストから構成図を描けるツール比較。今はD2、MermaidJS、PlantUML、Graphvizに対応。他にも同様のツールがあればpull requestしてね。このサイトのメンテはD2を作ってる会社だけどD2が劣ってる部分も指摘してくれとのこと / “Text to diagram” https://t.co/iwz5CitZWh」 / Twitter
- Text to diagram
- 脱Excel方眼紙を目指す人必見の見やすい図をテキストだけで作れるアプリ「D2」 - GIGAZINE
FFI・シリアライズ
- ひさケットさんはTwitterを使っています: 「まず、GCかスマートポインタかリージョンベースかといった言語毎のリソース管理の違いを包括的に扱おうとすると、まずポインタを含むデータ構造を言語間で渡すのは不可能になり(ポインタ先の寿命が不明なのでいつ消えるかわからない)、するとつまりシリアライズ/デシリアライズが必須になる」 / Twitter
- ひさケットさんはTwitterを使っています: 「で結局は、protobuf(gRPC)みたいなIPC/RPC技術ということになる」 / Twitter
- ひさケットさんはTwitterを使っています: 「もっともRPCはマシン間でのエンディアンとか構造体のパックの違いとかを吸収する必要があるが、言語間だとそこまでは要求されず普通にローカルで完結することが期待されるので、IPCのほうがオーバーヘッドの面では適切」 / Twitter
- ひさケットさんはTwitterを使っています: 「ローオーバーヘッドなIPC技術でメジャーなのってなんかありましたっけ(全部RPCに吸収されちゃってる気もする)」 / Twitter
- ひさケットさんはTwitterを使っています: 「linux限定ならdbusとかになるんだけど」 / Twitter
- ひさケットさんはTwitterを使っています: 「まあソフト内で通信するだけなら別にlinux限定ってわけでもないか」 / Twitter
- ひさケットさんはTwitterを使っています: 「もちろんこの話は「メモリ管理の方式に一切の仮定を置けない」場合の話なので、言語を絞るなりで管理方式についてなにか仮定を置けるのであれば協調の余地はあります」 / Twitter
DTO 詰め替え
- Naoya ItoさんはTwitterを使っています: 「オニオンアーキテクチャで、層をまたいだところでデータを受け渡しするのに DTO を作って値を詰め替える、というあれはいったいなんであんなことになってしまったのかというのを、ぼんやり、いろいろなブログなどを読みながら考えていた」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「TypeScript, React, GraphQL, prisma を使って実装していると、こうい層をまたいだ DTO みたいなものは登場しない。レイヤードアーキテクチャやオニオンアーキテクチャのようなレイヤーも登場しない・・・登場しないというか、登場させないように実装してるというのが正しいか」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なぜ、オニオンアーキテクチャがレイヤーにレイヤーを重ねるアーキテクチャに至ったかと言えば、根本的には (メッセージパッシングではない方の) オブジェクト指向に起因するように思う」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「オブジェクト指向はインタフェースに着目して、その背後にあるものを抽象化して単純化する技法である。結果、責務を分離するにあたってはその背後が見えないので、委譲に頼ることになる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「委譲に次ぐ委譲・・・これを繰り返していくと必然的にレイヤー構造になる、ということだと思われる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「そしてできあがったレイヤーの中でデータの受け渡しをするにあたって、責務違反を起こさないようにしたい。例えばプレゼンテーション層とドメイン層、ドメイン層とインフラストラクチャ層」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「このとき、この前提になっているオブジェクト指向の考え方ではデータと振る舞いが一体になっている。つまり、単純なデータだけに着目すれば二つのレイヤーをまたがっても問題ないのに、振る舞いやオブジェクト同士の構造がくっついてきちゃうので、そのまま渡すと責務違反を起こしてしまう」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なので、DTO みたいな両レイヤーからみても中立な存在を持ち出して、そこに値をつめて受け渡せば、振る舞いを一緒に渡しちゃうこともないし、不必要なデータが渡ることもない。安心でしょ、ってことなんだと思う」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「けれども、昨今の言語は、データとロジックをむしろ一体化させずに分離したまま扱う。TypeScript なら Structural Subtyping」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「データとロジックは分離された状態で、オブジェクトの性質に着目している昨今の言語機能に素直に委ねると、わざわざ責務違反を気にして DTO を作る、なんてことをしなくても安全に境界? をまたいだデータの受け渡しができる」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「TypeScript なら Structural Subtyping によって受け渡してよいデータかどうかが保証されるし、わざわざ別のデータに詰め替える必要もない」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「まあ、そんなこんなで TypeScript をはじめ昨今の言語機能の設計を前提にすると、オニオンアーキテクチャで DTO で・・・みたいなものが、過剰であるという風に視えはじめるのは自然なことなのかなあと 識者の人たちはもうこういうことに5〜10年前に気がついていたようだ」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「ここ数年、ちょっとさぼっていたら、なんかメジャーシーンでも大きくこういうパラダイムが変わりつつあるみたいな感じで、反省することしきりである」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なんかこういう話、ブログとかを読で日付に目を向けると 2013年、2017年とかが多く、うげ、もうこんな昔にみんなが通ったのを 2022年になって考えてるのかよ、と我ながら情けない、みたいな気持ちになること多し。とはいえ凡人はコツコツやっていくしかないのである・・・」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「捕捉: 実際問題としてこういうことが分かっていたとしても、例えばじゃあ Java とか Python などの言語で、大きなドメインを対象に実装しようとなったときに、その薄いレイヤーでのベストプラクティスは確立してますか? と言われるとまだそうはなってない」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なので、現時点では、採用言語の特性を鑑みレイヤードアーキテクチャ派生の実装パターンを使っていくというのも、消極的ではあるが現実的な解ではあると思う。10年それでやっていけるかは、あまり保証はなさそうですが」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「クリーンアーキテクチャを、あれを具体的な実装の話だとすると色々誤解があるようなのであえて触れなかったけど、書籍「クリーンアーキテクチャ」に境界線を越ええるデータをどう扱うかは、次のように書いてます」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「P.203 境界線を越えるデータは、単純なデータ構造で構成されている。好みに応じて、構造体やデータ転送オブジェクトを使うこともできる。(snip.) 境界線を越えて渡すのは独立した単純なデータ構造であることが重要だ」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「なので「DTOでなければならない」とは書いてません。が、境界の中で振る舞いを持ったオブジェクトがいて、そいつが持っていたデータを次の境界にわたす必要がある場合、単純なデータ構造にせよ、ということを言ってそうです」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「公称型でクラス指向なオブジェクト指向言語では、素直にいくと DTO で実装されることが多い・・・それがやがてパターンになったとかではないかと思います。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「ちなみに続く P.204 にて「UseCaseInterractor は Entities からデータを収集し、OutputData をプレインオールドな Java オブジェクトとして生成する。」とあります。まあ、素直に実装すると DTO になりますかね」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「当時そこを読んだときに私がメモを書き込んでました 「めんどくせー」 と書いてましたw」 / Twitter
GraphQL・XSLT・グラフのマッチ/差分
GraphQL と疎結合
- 天重誠二さんはTwitterを使っています 「GraphQLの問題点ってデータがデータでしかないっていうことだとおもうけど、そう考える人自体が少なそう。というかデータ返却装置として考えられたRESTful APIというものがあり、それだったらGraphQLのほうがましじゃんというのは、それはそうとしかいえない。」 / Twitter
- 天重誠二さんはTwitterを使っています 「RESTはクライアントが操作したいデータを取り出す手段ではなくて、むしろ情報隠蔽とかのほうが文脈として近いとおもう。だから resource じゃなくて representation なんだとおもうけど。」 / Twitter
- 天重誠二さんはTwitterを使っています 「こちらの意見は getter がよくないという見解とだいたい同じだとおもっていて、GraphQLがデータプロバイダーである以上は計算処理はクライアント側で行なうことになる。そのままやると依存がいろんなところに散在する。そういう点をハンドリングできるなら使っていい。 https://t.co/HSWHDmJYAx」 / Twitter
- 増田 亨.さんはTwitterを使っています 「GraphQLを実際に使ってみてわかったことは、GraphQLを使えば使うほど結合度が上がっていく、ということ。 アプリケーション間の結合度を下げたかったらGraphQLは使わない方が良い。 GraphQLを使って疎結合に設計し疎結合を維持改善するのはふつうの人には無理。」 / Twitter
- 増田 亨.さんはTwitterを使っています 「安全な型とは、取り得る値の範囲が適切に制限され、可能な操作が適切に制限されている型である。 扱いたい値の範囲よりも広い範囲を扱え、やりたい操作以外の操作ができてしまう型は、危険な型である。 言語や標準ライブラリに用意された汎用的な型は、特定のアプリケーションでは全て危険な型である。」 / Twitter
GraphQL
Relay, Urql
- Naoya ItoさんはTwitterを使っています: 「https://t.co/C1iv3EAJyG 昨日の出前館とのフロントエンド会での発表内容だそうです。一休では長らく Apollo Client を使って来ましたが、最近は Urql や Relay を含めて、プロジェクトの特性に合わせて選択するようになってきました。」 / Twitter
- あなたのプロダクトに Apollo Client は必要ないかもしれない - 一休.com Developers Blog
- Naoya ItoさんはTwitterを使っています: 「Relay は情報が少なくて大変なんですが、ある種 React の思想を学ぶのに良いライブラリで、ちゃんと React を使いたいという前提で大規模に組んでいくなら Relay を React 養成ギプス的に使うのはありじゃないかと思っています。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「Urql は逆に、簡単に使いはじめられるところが良いです。特に典型的な管理画面系の UI を作る時にはそれほどシビアなレンダリングパフォーマスは求められませんし、Urql のデフォルトの Document Cache 前提でざっくり作ると手早いです」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「私も現在進行形でふたつ React / Next.js の開発プロジェクトに参加してますが一方が Relay、一方が Urql です。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「一休のような性質のサービスだと、BtoC のユーザー画面のように Mutation はほとんど走らないけどレンダリングパフォーマンスが求められるようなプロジェクト( SoE) と、ホテルやレストラン向けの BtoB の、Mutation 中心のプロジェクト (SoR) とが混在するので、結果、都度使い分ける感じになりました」 / Twitter
- mizchiさんはTwitterを使っています: 「クラスメソッドをシリアライズできないから、わかってる人ほどJSONを代数的データ型だと思いこんで純粋関数で扱う関数型チックな設計に自然に寄っていく / “フロントエンドエンジニアが「自分はJSON色付け係」と自虐する理由を考察した - パンダのプログラミングブログ” https://t.co/ZFAjfvHTdd」 / Twitter
- フロントエンドエンジニアが「自分はJSON色付け係」と自虐する理由を考察した - パンダのプログラミングブログ
- まりもさんはTwitterを使っています: 「@mizchi reactが妙に関数型推しているのそのせい?普通にシリアライザ作ったらどうだろう。Javaより条件が悪い訳でもないだろうに。」 / Twitter
- GraphQL と Data Transfer Object は似ている - パンダのプログラミングブログ
- HATEOAS - Google 検索
- 「初めてのGraphQL」を読んでGraphQLの概要を学んだ - パンダのプログラミングブログ
- GraphQL Code Generator で TypeScript の型を自動生成する - クックパッド開発者ブログ
- 初めてのGraphQL ―Webサービスを作って学ぶ新世代API | Eve Porcello, Alex Banks, 尾崎 沙耶, あんどうやすし |本 | 通販
- データ指向アプリケーションデザインから見るGraphQL
GraphQL Error
- naoyaさんはTwitterを使っています: 「https://t.co/uBnobdW3Ge チームで話していてこの GraphQL エラーハンドリングの話になったのだが、ジュルア委の GraphQL のエラー表現はアプリケーショングローバルなエラー表現になっていて、例外をスローしてフレームワークがそれをエラーに変換する実装を前提にしていそう」 / Twitter
- GraphQL Error、下から見るか?横から見るか?. タイトルに深い意味はなくて、思いついちゃったので書いてみただけです。 | by Yosuke Kurami | Medium
- naoyaさんはTwitterを使っています: 「一方で、この記事にあるようにエラーのおきたフィールドにエラーを局所化する方法は、大域脱出ではなくエラーをそのスコープ内に留めることを前提にしている。ので、例外ではなく Result / Either 的な実装でかつエラーに型付けをしてく方が実装の相性は良さそう」 / Twitter
- naoyaさんはTwitterを使っています: 「こういうところからも、前提するプログラミングスタイルが少しずつ変わってきているのを感じる」 / Twitter
- naoyaさんはTwitterを使っています: 「「ジュルア委」ってなんだ「従来」です Twitter Blue に入った方がよさそう、自分」 / Twitter
infoQ
- NetflixがDomain Graph Service Frameworkをオープンソース化: Spring BootのGraphQL
- Netflixは迅速なアプリケーション開発のためにGraphQLマイクロサービスを擁した
- Netflixは大規模なGraphQLフェデレーションを実装
- GraphQLデータフェデレーションを実装したHasura Remote Joins
- PayPalがGraphQLを採用し、開発者の生産性向上を実現
- Mock Service Workerライブラリにより、復元力のあるRESTおよびGraphQL APIテストが可能に
- TypeScript * GraphQLのバックエンド設計プラクティス
Twitter
通信・ORM
- FUJI GoroさんはTwitterを使っています 「これはむしろ逆だと思っていて、「サーバーサイドとクライアントサイドを協調しやすくして、クライアントサイドは徹底的に薄くする」ためのQUERYだったりGraphQLだったりだと思っています。」 / Twitter
- おれきゅーさんはTwitterを使っています 「GraphQLとかHTTPのQUERY見てて思うんですけどフロントにそんなにデータ持ってきて加工する複雑さ持ち込みたいモチベ強くあるんです? UIのstate管理するの大変だからデータはサーバー側によしなに都合の良い形で返してきてほしいって気持ちのほうが強いと思ってたけど」 / Twitter
- FUJI GoroさんはTwitterを使っています 「対局にあるのが「綺麗なRESTful API」で、APIがシンプルなぶん、クライアントサイドで並列リクエストや細かなエラーハンドリングなど画面ごとに複雑な処理が必要になってしまう。そして行き着く先は画面ごとのスーパーエンドポイントを作ることになり、サバクラ双方でアジリティが失われる。」 / Twitter
- mattnさんはTwitterを使っています 「「生 SQL 書きたくねぇ」で ORM が出てきた様にいずれ「生 GraphQL 書きたくねぇ」って言われてライブラリ出てきてたら、正直それ REST で良かったって話になったりしない?」 / Twitter
- まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou 生SQLを書きたくないのは、普及の要因のひとつではあるかもしれませんが、ORMが出てきた理由ではなかったような。そもそも初期のORM、生SQL書いてませんでした?実装を意識せずにすむようになるなら、より進化したことになるので良い事なのでは。」 / Twitter
- mattnさんはTwitterを使っています 「@potimarimo @EzoeRyou そうすね。ORM にもクエリは生で書かせて fetch した物をオブジェクトで扱わせる物と、クエリジェネレータ持ってる物の両方ありますね。そうなった際には中身が GraphQL でも REST でも、なんなら gRPC でもなんでもいいんですけども。その為に HTTP QUERY が入るのは、なんか違うなぁと思った次第。」 / Twitter
- まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou ORMがあったおかげで、NOSQLやらJSONやらと混ぜてもあまり混乱していないように、上手いこと実装を隠蔽できるように進歩していくといいですね。そうすると、プログラマーが直接叩くことを考えないで済む分よを速いプロトコルが流行るかもしれない。」 / Twitter
- mattnさんはTwitterを使っています 「SQL インジェクションがフォームに起因する脆弱性だというツイートを見たけど、どちらかというと ORM 等を使わない事で起きる脆弱性という認識です。」 / Twitter
- mattnさんはTwitterを使っています 「SQL インジェクションはバインド変数を使わず SQL を文字列で組み立ててしまう事でエスケープされないクエリが実行されて起きる脆弱性ですので、動的に文字列を繋げて SQL を組み立てる事がない ORM の導入は効果があると思います。」 / Twitter
- moajoさんはTwitterを使っています 「SQLインジェクション対策のためにORMを入れよう!って主張を聞いて???ってなってる」 / Twitter
- mattnさんはTwitterを使っています 「欲しいのが SQL だけで良いならクエリビルダでも良いですね。」 / Twitter
Status
- Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
- しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
- 菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter
- KOBA789さんはTwitterを使っています 「REST API の仕様を読んだとき、メンタルモデルとしてオブジェクトグラフを構築し、次にそれらの API をどういう順序で呼び出すかを考える。REST API を使う場合はそれらの作業に多くの資源を費やす。理解を促すために自然言語による説明を追加し、さらに資源を費やす。GraphQL はこの悪習を止めた」 / Twitter
- RihoさんはTwitterを使っています 「1人開発で0から開発しているプロジェクトあるんだけど、Railsでテーブルとモデル生成してGraphqQLのコマンドでQuery作成してAPI作成完了。GraphQL codegenでTypeScriptの型定義とリクエストコードを自動生成、Chakra UIでフロント実装してる。便利な世の中ですね…」 / Twitter
- shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
- shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
- shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
- shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
- 成瀬さんはTwitterを使っています 「@shinh っ XSLT」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@nalsh はい。それは僕の世界観では、失敗作ですね。。もちろん、XSLTによってたくさんの研究が…みたいなことはあるんでしょうし、その価値を否定するものではありません。というかXSLT自体は良いと思います。ただまあ、使いやすいものではないですよね。僕が今欲しいのは使いやすいものなのです」 / Twitter
- YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「XSLT を使えば、クライアントサイドで XML から HTML に変換できるよ」 エンジニア「サーバサイドでやれば良くない?」 〜 今 〜 エンジニア「Vue を使って、クライアントサイドで JSON から HTML に変換するよ!」 XML「解せぬ」」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLは、おっしゃる通りDDDではクエリモデルを扱うものという位置付けにするのが良いでしょう。(続) #Peing #質問箱 https://t.co/ei7KiT6D0k」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLを更新系に使用すると、DB構造を把握してかなり直接的に更新する形になります。そのような方法は、ドメインオブジェクトDB構造を意識させない形で実装して制約を表現する、という実装とは衝突してしまい、相性が悪いため、DDD前提であれば更新系には使用しない方が良いでしょう。」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「一方、参照系としてはCQRSが必要になる参照系のパフォーマンス課題を解決する1つの方法としては検討可能です。ただし、少しでも複雑な内容が入ったら更新系と結合テストをして整合性が壊れないように気を使う必要があります。導入に時はテストをどうするかと言う点も考慮しましょう。」 / Twitter
- 🐶さんはTwitterを使っています 「RDBMS が GraphQL 直接話せたらいいのでは?」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「まあ実際にはそういうドキュメントDBみたいなのは死屍累々なのだが」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「直接は関係ないけどRDBMSの前段にWAFかましたりまともな今時の認証認可をかましたりしていきたいというだけのニーズに対して現在我々の手に入るソリューションって必要以上に牛刀じゃんという問題意識はある。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「素のDBをポーンと外向けで出すのは怖いねっていうのの対策がいきなりじゃあRailsでAPI立ててやっていくみたいな話にまでいきなりでかい話になる必要は本来ならないべきのはずなんだよなあ」 / Twitter
- 成瀬さんはTwitterを使っています 「またSQLQLの話してる…」 / Twitter
- 高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
- ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「nextjs(React)、nuxt(Vue)使ったことある? って聞かれることがあるけど、 SSR?SSG? i18n対応は? テストはJEST? Cypressでよか? Validationライブラリは? REST?WebSocket?gRPC?GraphQL? デザイナいる?XDやFigma? コンポーネント設計は?(Storybook作る) CSSはF/Wは?」 / Twitter
- ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「他にも npm/yarnの整備 デプロイ先に合わせたビルドパイプラインの設計・実装 デプロイ先の環境整備 と、諸々よしなにできる人を希望されていると思うんだろうけど。 デプロイとかは面倒なので「amplify」で〜。とかいってもamplify cli is 何? みたいな話になり。 手順書作ったり。 大変ね。」 / Twitter
- mizchiさんはTwitterを使っています: 「GraphQLで最近困ってるの、クエリ合成で他のクエリ結果でjoin的なことしたいときにそれを実行する方法がない。SQLと違って実行計画とかないせいなんだけど」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「ちょっと前までGraphQLが流行ってたけど長期的な運用を考えたらやめたほうがいいと思うなぁ。もうWebAPIはHTTP+JSONでいいし、バッチインターフェイスもCSVでいいよ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「マイクロサービスも大概あれだが、Graphqlも間違った選択だと思う。長期的なアーキテクチャの維持を考えたら、Rest一択でしょ。」 / Twitter
- やきにくさんはTwitterを使っています: 「モノリスかマイクロサービスかみたいなのはあまりにも両極端すぎで、なぜ伝統的なサブシステム分割の選択肢がそこに出てこないんですかねって思うことがある。」 / Twitter
- 🈚️うひょ🤪✒📘 TypeScript本発売🫐さんはTwitterを使っています: 「いまさら完全に理解した。GraphQLスキーマはあくまで通信のスキーマであって、そこから生成した型を通信の両側で便利に使おうなどというのは幻想だったのだ(?)」 / Twitter
- GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL - Speaker Deck
- GraphQL入門 (AWS AppSync)
- GraphQL(クエリ言語について) - Qiita
- GraphQLのクエリを基礎から整理してみた - Qiita
- GraphQLのスキーマと型定義 - Qiita
- GraphQL と N+1 SQL 問題と dataloader - Qiita
- 多機能なGraphQLサーバー: Hasura GraphQL Engineを知っておきたい人が読む記事 - Qiita
- graphql-codegen は validation 用の schema も自動で生成できる (yup と zod)
- GraphQL入門
- 技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
- サービス間連携のためのGraphQL APIをClojureで開発している話 - Opt Technologies Magazine
- Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介 - Yahoo! JAPAN Tech Blog
- サーバサイドの進捗に依存しないための Next.js x GraphQL のフロントエンド開発の工夫 | Money Forward Engineers' Blog
- GraphQL Federation – API Gatewayの進化 | Money Forward Engineers' Blog
- GraphQLのアプリケーションへの組み込みを考える - RAKUS Developers Blog | ラクス エンジニアブログ
- 作って学ぶGraphQL。gqlgenを用いて鉄道データ検索API開発入門 | フューチャー技術ブログ
- GraphQLの誤解/rethinking-graphql - Speaker Deck
- やきにくさんはTwitterを使っています: 「GraphQLはやっぱりHTTPとの相性はあまりよくないというか、もっと全然違うプロトコルだと考えたほうがいいよねっていうアレはある」 / Twitter
- やきにくさんはTwitterを使っています: 「GraphQL自体というよりもApolloやPrismaがやろうとしていることには夢があるとは思う」 / Twitter
- GraphQLが解決する問題とその先のユースケース
- 脱Firebase. 我々はどう生きるか/Migrate from Firebase - Speaker Deck
- dowanna @PrAha Inc. CEO + アガルートテクノロジーズCEOさんはTwitterを使っています: 「GraphQLこれから採用する全エンジニアに勧めたいブログやで(本を買ってお布施した) https://t.co/QadQnZXJz3」 / Twitter
- Articles | Production Ready GraphQL | Blog
- GraphQL Specificationを読んでみる - Happy Developing
- スキーマ検証とコード生成に対する新たなアプローチのためにGraphQL構文を利用
CSV
- CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家
- rfc4180
- CSVの国際標準 RFC 4180をいまさら読みなおしてみた - MONEX ENGINEER BLOG │マネックス エンジニアブログ
- RFC4180だけにとどまらないCSVフォーマットのおすすめお作法 – 株式会社ルーター
YAML
libyaml
- libyaml-0.2.5
- LibYAMLのインストール(Linux / Unix) - Qiita
- https://pyyaml.org/wiki/LibYAML
- yaml/libyaml: Canonical source repository for LibYAML
- JSON, YAML, ini, TOML ざっくり比較
- The Official YAML Web Site
- Best YAML Validator Online
- Best Online YAML Converter - Convert YAML Strings into JSON, XML, CSV
- YAML - Wikipedia
- YAML - Wikipedia
- YAML(.ymlファイル)とは - IT用語辞典 e-Words
- プログラマーのための YAML 入門 (初級編)
- YAML の記述 - CircleCI
- フロントエンド・エンジニアのためのYAML入門 | 第1回 YAMLの基本的な使い方:コレクション | CodeGrid
- JSON と何が違う?ってところから始める YAML 入門 | 株式会社ビヨンド
- Python入門 (4) - YAMLファイルの読み書き|npaka|note
- YAML入門 | tracpath:Works
- YAMLとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 【yaml】.ymlファイルの使い方まとめ。&, *, <<の使い方 - Qiita
- Yuta @スタートアップ|エンジニアさんはTwitterを使っています 「Haskell製のDhallての知らなかったな、ymlの仕様にないimportの概念取り入れられるの便利そう #rust_jp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Dhallは構文エラーがバグり気味だったり記述が冗長すぎたりしていろいろ難点もあるけどおすすめよ。k8sのmanifestとか結構整理できる >RT」 / Twitter
- チェシャ猫さんはTwitterを使っています 「YAML の型はエラーの原因になりがち。例えば 0.1 なら数値なのに 0.1.0 だと文字列になったりする。情報を文字列で埋め込もうとするとエクスプロイトの原因にもなる。 #SoftwareCircusFest」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「負の遺産、負の遺産言うけど、Yamlが複雑すぎるのも、DockerfileがYamlじゃないのも十分負の遺産感あるけど。PoweShellも今作られたらオブジェクトじゃなくてJSONインターフェイスだと思うし。」 / Twitter
- 構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する
- mod_poppoさんはTwitterを使っています: 「JSONは記法の柔軟性がなさすぎてコメントやら末尾カンマやらで拡張したくなるけど、YAMLは柔軟性が高すぎて逆に制限したくなる」 / Twitter
- mod_poppoさんはTwitterを使っています: 「PandocがYAMLをパースする際、汎用的なYAMLパーサーを使ってASTを作った後にYAMLから表現力を落とした独自の木構造に変換しているのを見ると、この世の不条理のような物を何となく感じる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「マシンデータの表現にはオーバースペックだけど、設定ファイルとしてはyamlの柔軟性は使いやすいと思う。エイリアスも繰り返し出てくる設定を集約するのに有用だし / https://t.co/0Fjrd9dAXa」 / Twitter
- yamlについて思うこと – Jun Mukai's blog
- Kazuho OkuさんはTwitterを使っています: 「クォートも設定ファイルなら省略したいし」 / Twitter
- VさんはTwitterを使っています: 「yamlについて思うこと – Jun Mukai's blog https://t.co/8vLucFWeOQ これはスゴイ同意だ。実際自分も YAML 好きじゃないので自社商用製品の設定は独自の key(string) = value というシンプルな仕組みを採用している。積極的に YAML を使っていかないっての実は大事なのかもな。」 / Twitter
- VさんはTwitterを使っています: 「YAML よりは TOML になれるべきなのかもしれない。」 / Twitter
- VさんはTwitterを使っています: 「じゃあ Go でアプリ書く時、設定ファイルには何を使えばいいんだろうか。TOML 好きじゃないんだよなぁ。」 / Twitter
- Yoshi YamaguchiさんはTwitterを使っています: 「@voluntas CUEかproto」 / Twitter
- VさんはTwitterを使っています: 「@ymotongpoo proto はありっちゃありだよなぁ。CUE しらんからぐぐる。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「SchemeのS式は自己言及ができるんですよ〜〜的な方向に盛り上がっていってほしかったが、TLはデータ(設定)記述言語大戦争みたいな感じになってしまった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「XMLもYAMLも普通の用途にはオーバースペック感があるのにYAMLは割と人気なの、人間のタイプ数の節約は正義ってことだろうか」 / Twitter
- Windymelt🧪さんはTwitterを使っています: 「皆が欲しいのはYAMLじゃなくて、コメントが書けてオフサイドルールで書けるJSONでは?と思うんだよな。本当にYAMLが欲しいんだっていう人、いないでしょ」 / Twitter
- オフサイドルール - 検索
- 🌻リュウセイ🧙さんはTwitterを使っています: 「https://t.co/aH0EPBPlnn この記事あらためてちゃんと読んでみたけど、S式の説明の部分があまり実態に則していないと思う。「S式は特定の規格を指しているわけではない」とか「構文のことは忘れて」と言ったって、リストの記法がペアの記法の糖衣構文でしかないことについては解説がいるのでは」 / Twitter
- 🌻リュウセイ🧙さんはTwitterを使っています: 「LISP以外でS式を積極的に使いたいという話でもないのだし、LISPにおいて標準的なS式のデータモデルを解説しないで「タグつき形式のS式」「一般化S式」「コンスベースS式」というLISPで使っていないモデルを紹介するの、そもそもなんでS式を使ってるの? という話になってしまう。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「@mandel59 ちなみに最後のはLISPのモデルのつもりで書きましたが、それも変ですか?」 / Twitter
- 🌻リュウセイ🧙さんはTwitterを使っています: 「@qnighy あー、data式をちゃんと見れば、確かにLISPのようなモデルを表現していると思います。でも、それを「非真正リスト (foo bar . baz) を許すようにした亜種です」と解説するのはおかしいと思います。」 / Twitter
- 🌻リュウセイ🧙さんはTwitterを使っています: 「@qnighy S式では、JSONのオブジェクトに相当する基本的な構造として連想リストが使われると思います。これはペアのリストなので、必然的にペア (x . y) の記法を使って書くことになりますし、「データ形式として使われることがあるかは謎」どころか、頻繁に使われると思います。」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「YAML嫌い、というのは理解できるものの、YAMLはエディタサポートが充実してて、JSONスキーマを書いておくと構造のバリデーションがリアルタイムでできるのだよね。JSONスキーマで解決できるものがたくさんある。」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「あとはコードフォーマッターで、フロー形式とブロック形式を混ぜてフォーマットできるのが欲しい。全部ブロックスタイルだと長くなりすぎる」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています: 「YAML は、うっかり on とか書くと文字列じゃなくて boolean になったり、うっかり識別子のつもりで 021552 とか書くと整数になっちゃうから思い出して "" 付けなきゃならなくなったりするのが嫌い」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています: 「クォート書くのめんどいのはわかるんだけど、だからといって、こういうミス誘発文法が設定ファイルとして適切だとは、どうしても思えないんだよねえ」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています: 「クォート書くのを省略したいのなら、そもそも文法レベルで文字列とか整数とかデータの方を区別するのが悪手だと思う。たとえば文法上はすべてを文字列のままにしといて (設定ファイルって"テキスト"ファイルだし) それを schema-on-read よろしく、読むときの責務で変換するとかのがいいんじゃないかな」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています: 「インデントベースな点はよく YAML の嫌なところとして言及されるけれども、まあそこは好みの問題程度の話だと思っていて、個人的にはそこまで不満があるわけでもない。データ型の問題のほうが本当にクソ」 / Twitter
- zakuroさんはTwitterを使っています: 「拡張JSONはみんなほしがってるけど、コメントだけあればいい(vscode)、末尾カンマが許されれば良い、シングルクォートを使いたい、オフサイドルールがほしいなど、程度には幅があり、結局 YAML を採用してしまう」 / Twitter
- zakuroさんはTwitterを使っています: 「Javascript Object の Syntax がそのまま使えるくらいなのがちょうどいいしきれいだと思うけど」 / Twitter
- zakuroさんはTwitterを使っています: 「JS の世界で YAML が使われないのは、JS で設定ファイルかけるようにしてしまうからだろう」 / Twitter
- zakuroさんはTwitterを使っています: 「JSON5 とかもうちょっと流行ってもいいと思うけどなあ」 / Twitter
- zakuroさんはTwitterを使っています: 「この手のフォーマットは広まらないと意味ないので、MS あたりが設定ファイルをコメント付き JSON からもう少し便利な JSON スーパーセットに変更してくれれば解決する」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「mergeも仲間に入れてあげて! いやマジで組み合わせると便利だから」 / Twitter
- mattnさんはTwitterを使っています: 「YAML の文句を言うの & を使った事がある人だけにしてほしい感。」 / Twitter
- i18n YAML ファイル中の日本語/英語のズレを検知する単体テスト | Money Forward Money Forward Engineers' Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「区切り記号 (delimiter) ファースト」の言語という考え。プログラミング言語はリストを [1, 2, 3] ではなく「・1 ・2 ・3 」のように書かせるべきである。こうすると区切り記号の数はつねに要素数と一致し、一貫性が増す。このような書式は YAMLなどで見られている。 https://t.co/sKNWOsoDeO」 / Twitter
- Delimiter-first code
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「YAMLは「人間向け」とされているが、その仕様は複雑怪奇であり、かえって混乱しやすい。しかもバージョンごとに仕様が異なっている。たとえば YAML 1.1では "22:22"という文字列は時刻と認識され、整数1342に変換されていたが、この仕様は 1.2でひそかに排除された。 https://t.co/iRH6SBBI1b」 / Twitter
- The yaml document from hell
JSON
その他
- JSON, YAML, ini, TOML ざっくり比較
- 伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
- JavaScript Object Notation - Wikipedia
- JSON - Wikipedia
- ASCII.jp:Windows 10でJSONを扱う (1/2)
- JSON Schema | The home of JSON Schema
- 干潟の生物さんはTwitterを使っています 「CSVは曖昧だしJSONは数値が浮動小数点数だしYAMLはインデント辛いから時代はS式です。S式S式S式」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「JSON Scheme ではちゃんとinteger/floatは分けられてるんですよ。 https://t.co/kBDlKKEYBf」 / Twitter
- Type-specific keywords — Understanding JSON Schema 7.0 documentation
- Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter
- IPSJ-TPRO0901002.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/xwlpdRySMi」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「昔はインターネット上のプロトコルはテキストベースのものが多くていいと思ってたけど、近年はもっと早くProtocol Bufferみたいな汎用バイナリフォーマットが発明されて、どんなプロトコルも基本的にそれを使うようになってればよかったのになと思う。テキストは効率よくないし面倒くさい。」 / Twitter
- 個人的なシリアライザの特徴表(まだ試行錯誤中) - Google スプレッドシート
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ProtoBuf/MsgPack/JSON/XDR といったシリアライザ間でも違いが大きいので、比較表を書いたことがある。 (特に IDL定義の有無はトレードオフある) https://t.co/lQOSar0iTu」 / Twitter
- 個人的なシリアライザの特徴表(作成中)
- Makoto Kato ︎︎さんはTwitterを使っています 「汎用性を考えてjsonでデータかいたけど、コメント書けるからtomlにした話します?」 / Twitter
- YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「データ構造がわかるように、スキーマが定義できるようになってるよ!」 エンジニア「めんどくさいからJSONでよくね?」 〜 今 〜 エンジニア「JSON だとデータ構造がわからないから、JSON Schemaを作ったよ!」 XML「解せぬ」」 / Twitter
- ゼロからはじめるJavaScript(18) 可読性と表現力の高いデータ形式「JSONC」を活用しよう | TECH+
- Shinya KatoさんはTwitterを使っています: 「JSON のデータ構造を JSON や YAML で書いて定義するのは人類にとってつらすぎるのでいい感じな専用の DSL が存在してもおかしくないのではなかろうか (?)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「@0x19f Dhallとかっすかねぇ。かなり冗長な構文ではありますが…」 / Twitter
- Shinya KatoさんはTwitterを使っています: 「@igrep なるほど、そんなものがあるんですね」 / Twitter
- KOBA789さんはTwitterを使っています: 「@0x19f そこで d.ts」 / Twitter
- Shinya KatoさんはTwitterを使っています: 「@KOBA789 もしかして天才ですか???」 / Twitter
- KOBA789さんはTwitterを使っています: 「@0x19f まぁね」 / Twitter
extensible data notation
- edn(extensible data notation)を使う - Qiita
- edn-format/edn: Extensible Data Notation
- clojure.edn - Clojure v1.10.2 API documentation
- GP Tech Memo: Clojureのプリンタ/リーダとedn
- read-string - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
- read - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
- Learn edn in Y Minutes
- EDNのパーズと構築 (Gauche ユーザリファレンス)
- いまどきのClojureのはじめかた - 紙箱
- Clojure - Deps and CLI Guide
型安全な JSON.parse
- Miura HidekiさんはTwitterを使っています 「型安全なJSON.parseってどんなものかわからないのだけど、特定の文字列に対する結果の型が得たいのであれば多分得ている(rubyベースのパーサーだけど)」 / Twitter
- ゴリラ@DBナニモワカラナイさんはTwitterを使っています 「ts書いてる人なら誰しもが一度は思ったことはあること 型安全なJSON.parseが欲しい」 / Twitter
- Shinya KatoさんはTwitterを使っています 「@miura1729 JSON.parse は TypeScript の型定義上は any を返すとされているんですが、string or number or boolean or null or ... みたいな型をつけて欲しいよねって話なんじゃないかと」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f なるほど。それなら私のプログラムは得ていますけど、それって嬉しいの?という疑問です。」 / Twitter
- Shinya KatoさんはTwitterを使っています 「@miura1729 TypeScript の any は型定義を台無しにしていくので避けられるなら避けた方が無難なやつですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f それは無茶苦茶複雑な型定義を知らない人の感想かと思います。ある程度複雑な型定義が出てくるならanyでスッキリさせた方がましと必ず思うと思います。」 / Twitter
- Shinya KatoさんはTwitterを使っています 「@miura1729 any の方がスッキリしているはちょっと僕の感覚ではあんまり共感できないですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f 例えば、mattnさん謹製のpjsonでparseメソッドの結果の型はこんな感じになります https://t.co/czbABB8Ij9」 / Twitter
- gist:5a0d352e3b855ccdbff522ef66d07489
- Shinya KatoさんはTwitterを使っています 「@miura1729 一番最初の引用していたツイートの意図としては、まさしくこういう型をつけて欲しいってことだと思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f 結局可能な組み合わせを全部列挙しているだけなのであまり意味は無いと思います。特定の文字列をパースした結果とかなら意味がありそうですけど」 / Twitter
- Shinya KatoさんはTwitterを使っています 「@miura1729 意味があるかどうかは見方次第だと思うので、欲しい人は欲しいんじゃないですか?」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 型安全なJSON.parseみたいなのはXMLSchemaのようなJSONSchemaでの木構造に対する構文定義で構文検査をすることで得られるけど、型検査なのかと言う話になると、ちょっと違う話になってPrologの型システムあるいは型理論の型システムが欲しいと言う話と同様の問題になると思います。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 TypeScriptの型システムのような合併型を持つ型システムを作る必要が出てくるだろうからかなり難しい話になると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai JSONに型をつけるなら当然合併型は必要でしょうね」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 JSONはS式のような言語なのでLISPのようなプログラミング言語も作れるわけで、そのプログラミング言語の型システムが作れるシステムが欲しいみたいな話になると一階述語論理による型システム定義から型検査ができるようになるなどの多様性のある仕組みが欲しくなると思うのですよね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 XML Schema で構文定義は簡単にできます。同様にJSONの構文検査は簡単にできるのですよ。 型検査となるとプログラムが生成するデータについても検査をしたくなるので難しい。しかし多相ヴァリアントのタグをBoxingするような型システムが作れれば意外と簡単に構築できるかもしれないなと思ってます。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai JOSN全体ならそうでしょうけど、特定の文字列に対するJOSNのパース結果なら一意に型を決定できるかと(かなり複雑な物になるでしょうけど」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 通常のプログラミング言語の型システムを作るようにJSON用の型システムを作れば作れますから特に文字列から検査をする必要はないですが、JSONSchemaのような形でのより汎用的な型システムとなると非常に難しくなるので難しいです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@h_sakurai JSONSchemaが分からないので出直してきます」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 木構造に対する汎用的な構文検査器は通常の文字列に対する構文検査、構文解析よりはるかに簡単に構築できます。Prologのプログラム数行で構築できるほど簡単です。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 JSONでできた言語を普通に構文解析して普通に型をつけた代数的データ型として表すと余計なタグがつくことになって邪魔になるのでタグレスでASTが表せるといいと言う話で合併型とか言う話になるけどBoxing,Unboxingな概念でタグをつけ外しできたらいいんじゃないのかなぁって思うわけです。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@miura1729 でもまぁ、JSONに対してPrologみたいな言語で型システム書けばいいだけとも言えますかねぇ。」 / Twitter
- ゴリラ@DBナニモワカラナイさんはTwitterを使っています 「@miura1729 @0x19f 単純にこういうミスを避けたいので、型と合っていないJSON文字列はパースエラーにしてほしいなっていう意味での「型安全」という言葉を使いました https://t.co/DRMK0c87ig」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@gorilla0513 @0x19f なるほど、これは難しいですね。JSON Schemaを使うとかだと違う気がしますし。抽象解釈ベースの処理系と型注釈を両方持っているJuliaなら可能かもしれませんけど。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 @gorilla0513 @0x19f @h_sakurai JSON Schema を使って、データの validation をすれば型チェックは出来ますよね: JSON Schemaのすゝめ - Qiita https://t.co/4TuwQEYyks」 / Twitter
- JSON Schemaのすゝめ - Qiita
JSON パターンマッチ
- mizchiさんはTwitterを使っています: 「最近思ったこと、TypeScript が JSONをJSONのままパターンマッチしようとしてるから表現上の問題に直面してて、新しいプリミティブとして Record 型を追加できれば rescript みたいに扱えて解決するけどJSONの可逆性を担保できなくなり、JS以外から参照されるJSON仕様がもしかして負債なのではと思った」 / Twitter
- mizchiさんはTwitterを使っています: 「コンストラクタ名をプロパティに保存してデコード時に復元、という拡張JSONシリアライザもないことはないけど、渡した先でコンストラクタが同一実装を指す保証がない」 / Twitter
JSON
- Standard ECMA-404
- Standard ECMA-404-archive
- Final draft ECMA-404 2nd edition
- RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
- JSON
- JSON仕様(ECMA-404) を眺めてみる | Money Forward Engineers' Blog
- JSON、ECMA標準となる。仕様文書「ECMA-404」が公開 - Publickey
- 事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
- JSON: The JavaScript subset that isn't — Timeless
- Subsume JSON
- gibson042/ecma262-proposal-json-superset: Proposal to make all JSON text valid ECMA-262
- 非エンジニアに贈る「具体例でさらっと学ぶJSON」 | Developers.IO
- JSONの歴史 - Speaker Deck
- 個人的なシリアライザの特徴表(作成中)
- OSSタダ乗りおじさんさんはTwitterを使っています 「JSに限った話をすると JavaScript においてはJSONで通信する価値が高すぎて class で宣言されたものはシリアライザ・デシリアライザが必要になってその実装にバグが潜むことが多く、冷静に考えるとそもそもいらないことが多いので思考停止でまず class で宣言するのをやめろと言ってる」 / Twitter
- 厳格なJSONパーザーの作り方 - RoundWide Systems
- seriot.ch - Parsing JSON is a Minefield 💣
- nst/JSONTestSuite: A comprehensive test suite for RFC 8259 compliant JSON parsers
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CLIアプリの出力形式としてJSONを使うときのTips: - スキーマを作っておくべし - できるかぎりフラットな構造にすべし - キー名は予測可能にすべし - キー名に特殊文字を使うべからず - キー名を重複させるべからず etc. https://t.co/RbdpqN3xDc」 / Twitter
- Tips on Adding JSON Output to Your CLI App - Brazil's Blog
- 2021年に登場したウェブハッキングテクニックトップ10 - GIGAZINE
- An Exploration & Remediation of JSON Interoperability… | Bishop Fox
- 大量データの JSON serialize 処理を高速化し、レスポンスが倍速になった話 - freee Developers Hub
- JSONデータをキレイに可視化してくれるオンラインツール「JSON Crack」は手軽でお勧め - やじうまの杜 - 窓の杜
- System.Text.Json を試してみる on .NET 6
JSON Merge Patch
- shinichiro hamajiさんのツイート: "設定にJSONを使いはじめた https://t.co/QFepaqFIJB 今のところのモチベーションはバックエンドの管理などにしようかと。YAML嫌いTOMLそれほど使われてない、ということでmenohでも使われてるJSONになった。JSON merge patch というのが RFC にもなってて素敵だと気付いた https://t.co/QvHZB2nErt"
- Declare capability of backends by JSON configs by shinh · Pull Request #281 · pfnet-research/chainer-compiler
- RFC 7396 - JSON Merge Patch
- ゆきさんはTwitterを使っています: 「Range Patch https://t.co/tuwPJ0bw5a JSON構造に対して直接パッチリクエスト送れる感じ? #yuki_id」 / Twitter
- draft-toomim-httpbis-range-patch-00 - Range Patch
- 設定ファイル(JSON)のdiffをjson patchでやってみようという試み - podhmo's diary
- RFC 7386: JSON Merge Patch - 一汁三菜
- JSONマージ・パッチによるJSONドキュメントの更新
- RFC 7386 - JSON Merge Patch 日本語訳
- JSON Merge Patch
JSON Lines
- jqコマンドでJSONをJSONL(JSON Lines)に変換する - rochefort's blog
- JBoss EAP 7でJSON Lines形式のログをFluentdに渡す – ナッツウェル 技術研究室
- Centralized Logging for WildFly with the ELK Stack · WildFly
- JSON(Array形式でフラットな)をMarkdownのテーブルに変換
- JSON Lines
- JSON Lines Examples
- JSON Lines
- raphaelstolt/json-lines: Library for the JSON Lines text file format.
- JSON streaming - Wikipedia
- json-lines 0.3.1 : Python Package Index
- jsonlines — jsonlines documentation
- json-lines
- JSON Lines | Hacker News
- Sho ShimauchiさんはTwitterを使っています 「CLIでのjsonのパースにjqを使うのは定番だが、 @aodag が python -m json.tool でもパースできるということを教えてくれた。jq入れなくていいので状況によってはかなり便利だな。しかも3.8からはjsonlに対応している https://t.co/HSuoDeVkN9」 / Twitter
- json --- JSON エンコーダおよびデコーダ — Python 3.8.5 ドキュメント
- jsonl - Google 検索
- qwerty2501さんはTwitterを使っています 「正直json linesもやや助長ではあるので、ヘッダーに型情報をもったcsvみたいなのが欲しいかも知れない」 / Twitter
JSON Text Sequences (RFC 7464)
- Kazuho OkuさんはTwitterを使っています 「ここでオススメなのが JSON Text Sequences (RFC 7464) です。なんと、ASCII / Unicode のレコードセパレータ (0x1E) を使うことで、ひとつのファイルに複数の JSON を格納可能!!! マイナーな制御文字を楽しめるという特典がついてきます」 / Twitter
- Shinya KatoさんはTwitterを使っています 「ふと思ったんだけど、1行に JSON を1つ入れるファイルって普通に配列にすればただの JSON として扱えるのでは……?」 / Twitter
- kisaragiさんはTwitterを使っています 「@0x19f jq -sが似たようなことをやりますね (厳密に同じかは存じ上げません、すみません)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「0x1E とかエディタで開いてぶっ壊れないのかなとか僕は思うんですけど知りません」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「個人的には、印刷もキーボードも入力できない文字使ってる時点でバイナリファイルだと思うし、バイナリファイルならJSONつかわ... いえなんでもありません」 / Twitter
JSON-LD
- Kazuho OkuさんはTwitterを使っています 「手っ取り早く json-ld を json に変換するのってどうやればいいのかしら」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「jq のフィルタ一発みたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「とりあえず perl スクリプト書いたけど、絶対既存の超絶簡単手法があるはず... #! /usr/bin/perl use strict; use warnings; my $prefix = "[\n "; while (my $line = <STDIN>) { chomp $line; print "$prefix$line"; $prefix = ",\n "; } print "\n]\n";」 / Twitter
JSON-RPC
- JSON-RPC
- JSON-RPC 2.0 Specification
- RFC 7807 - Problem Details for HTTP APIs
- JSON-RPC - Wikipedia
- JSON-RPC - Wikipedia
- JSON-RPCについて
- JSON-RPC over HTTPなサーバを作る - Qiita
- JSON-RPCって何? - Qiita
- JSON-RPCというWebAPI設計に役立ち、、そうなそうでもないかもな規格 - Qiita
- Go で始める JSON-RPC 入門 – osamingo – Medium
- REST APIに消耗したらJSON RPCを試そう - タオルケット体操
- 意外と便利なJSON RPC - TechTalkManiacs
- Widebullet〜API Gateway with JSON-RPC〜 - Mercari Engineering Blog
- Google Developers Japan: Google API における JSON-RPC および Global HTTP Batch エンドポイントのサポート終了について
- 渋川よしきさんのツイート: "TypeScript並みに値も使った型チェックが便利になったら、SwaggerとかRESTとか頑張るよりも、JSON-RPCの方がよくね?という気がしている。type findMethod = { method="findByStatus": params: {id: number} }とか書いておけばいいじゃん(クライアントがJS系の場合に限る)。"
JSON Web Token (JWT)
- トークンベースの認証とは? 仕様とJWTのメリット、デメリット| Okta
- 【JWT】 入門 - Qiita
- JWT認証と流れのやわらかい解説 - ROXX開発者ブログ
- JSON Webトークン(JWT)を使用したAPIデプロイメントへの認証および認可の追加
- JWT認証 - Box Developer Documentation
- セキュリティ視点からの JWT 入門 - blog of morioka12
- JSON Web Token(JWT)の紹介とYahoo! JAPANにおけるJWTの活用 - Yahoo! JAPAN Tech Blog
- マイクロサービスの認証・認可とJWT / Authentication and Authorization in Microservices and JWT - Speaker Deck
- OpenID Connect の JSON Web Token 認証の構成 - IBM Documentation
- JWT 認証 ‒ Qlik NPrinting
jq
- jq
- jq コマンドを使う日常のご紹介 - Qiita
- 【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法 - Qiita
- jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE
- jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | Developers.IO
- 良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
- JSONを扱いやすくするコマンド(jq, gron)のメモ - 脱力系日記
- package.json から依存部分の key だけを抜き出す jq ワンライナー | blog.ojisan.io
- wader/jqjq: jq implementation of jq
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「jqjq: jq 自身で実装された jq。 jqってこんなに多機能だとは知らなかった。awkみたいだな。 https://t.co/RpQZeZTRI4」 / Twitter
SQL
- Fadisさんのツイート: "PostgreSQL12のベータが公開されたらしい。PostgreSQL12ではJSONに対するJSON pathを使ったクエリが可能になり、他のカラムの値を使って自動的に値が決定されるカラムが作れるようになり、クエリを実行する際のテーブルの漁り方をプラグインで変更できるようになる https://t.co/PCak0C0WtX"
- PostgreSQL: PostgreSQL 12 Beta 1 Released!
- FadisさんはTwitterを使っています: 「PostgreSQL 12がリリースされた。PostgreSQL 12ではJSONB型の値に対してJSON pathを利用したクエリが可能になる他、インデックスの再構築を書き込みをブロックせずに行える REINDEX CONCURRENTLYが追加される https://t.co/ASLdFMfXGc」 / Twitter
- PostgreSQL 12 Released As Newest Update To "World's Most Advanced Open-Source DB" - Phoronix
- FadisさんはTwitterを使っています 「RDBMSのカラムにJSONを突っ込む事を恥じる必要はありません。何故ならISO/IEC 9075:2016からSQLにはカラムに突っ込まれたJSONをいじる為の関数が追加されていて、カラムに突っ込んだJSONの一部を使った検索などが綺麗に書けないのはお使いのRDBMSがふぁっきん古いのが原因だからです」 / Twitter
C
yaji
- yajl
- lloyd/yajl: A fast streaming JSON parsing library in C.
- Yajlって速いの? - Qiita
yyjson
- ドッグさんはTwitterを使っています 「新たな fastest をうたう JSON ライブラリが…(実装は C) | 'ibireme/yyjson: The fastest JSON library in C' https://t.co/efOoFOxMk6」 / Twitter
- ibireme/yyjson: The fastest JSON library in C
- ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/wrcOZC1N3L デコード側の実装ざっと眺めた感じ別にそこまで変わった実装ではないな(見落としてるだけかもしれないけど).浮動小数点数パース周りの最適化頑張ってるっぽいのと,minify された JSON とインデントされた JSON で実装分けてるのはなるほど」 / Twitter
- yyjson/yyjson.c at master · ibireme/yyjson
- ドッグさんはTwitterを使っています 「やはり最適化には table lookup ベースのアルゴリズムが大事なんだなぁ」 / Twitter
- Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
- DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
- Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
- Jansson — C library for working with JSON data
- akheron/jansson: C library for encoding, decoding and manipulating JSON data
- Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
- parson
- kgabis/parson: Lightweight JSON library written in C.
- Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
- The most simple JSON parser in C for small systems
- zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
- jq
- stedolan/jq: Command-line JSON processor
- Kazuho OkuさんはTwitterを使っています: 「C言語でなんか超簡単なJSONパーサーないかなってみてたけど https://t.co/X6bOs6K5Io これいいな」 / Twitter
- naleksiev/jread: Lightning fast JSON parser.
blog
- 設定情報をエレガントに管理する方法(解決なし) - まめめも
- JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
- JSON先進署名フォーマット「JAdES」解説 【第1回】JAdESの概要と特徴 | GMOグローバルサインブログ
- JSON::Types ってのを書いた - unknownplace.org
- 論文メモ: Mison: A Fast JSON Parser for Data Analytics | κeenのHappy Hacκing Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「JSONだっていいじゃないか、YAMLだもの」の方が趣旨に合っている気がする(本文でも触れているとおりJSONはYAMLのサブセットだし) / 1件のコメント https://t.co/FySezu8Nt1 “YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog” https://t.co/Hbit1aiLb2」 / Twitter
- YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いい機会だしpackage.yamlからcabalに戻そうかなぁ。もう新しいcabalならだいたいpackage.yamlの機能はカバーしてるわけだし...」 / Twitter
- BigQueryがJSONにネイティブ対応。SQLでJSONに対するクエリが可能に - Publickey
Zenn
- 設定ファイル言語 cumin を自作している
- JSONをいい感じに見るCLIを作った
- PlantUML で JSON データを簡単視覚化
- Dokkun 進捗
- DSONという型注釈の付けられるObject Notationを作ってみた
- RustでJSONから値をゆるりと取り出すマクロを書いた話
Qiita
- null だけの JSON は合法か? - Qiita
- package.json は .yaml で準備して json に直すワンライナーでエクスポートする - Qiita
- RFC 準拠的な JSON 形式について - Qiita
- JSON にもコメントを書きたい - Qiita
- microsoft/node-jsonc-parser: Scanner and parser for JSON with comments.
- JSON Schema や JSON から Go の struct を生成する - Qiita
- 図解 JWS/JWE/JWT/IDトークン/アクセストークンの包含関係 - Qiita
- JSON Schema っぽいものを作ってみた - Qiita
- シェルスクリプトでjqを使わずsedなど基本コマンドのみでJSONを破綻なく解釈 - Qiita
- JSONPath 使い方まとめ - Qiita
Twitter
間違い
- 7594591200220899443さんはTwitterを使っています 「1.797693e+308を受け付けるのはRFCでMUSTだがゴミみたいな拡張文法を入れるのはMAYなのであって、作者のパーザが完全に誤っていることと他の実装が拡張文法を持っていることを同列に語ろうとするこの記事には賛同しかねる https://t.co/PP4f6meRl5」 / Twitter
- JSONパーサにファジングしたら収拾がつかなくなりました - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】
- 7594591200220899443さんはTwitterを使っています 「ここがfuzzの限界なのでありfuzzerはRFCを読んだりできないからある状態が「違ってる」までしかわからず、正しいか間違っているかを判定できない。その判定を人間が間違えば無価値になる。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「世のJSON実装に何も問題がないとは申しませんがこの作者の実装にはそれらとは一線を画す重大な問題(RFC違反)があった。そこを判定できなかったところまで含めて、この作者の至らなさだと思う。」 / Twitter
順序
- Kazuho OkuさんはTwitterを使っています 「オブジェクト指向なのかリレーショナルなのかの違いであって、基本的にはキメの問題だし、どっちが便利かはユースケースによるよなぁ」 / Twitter
- TetsuさんはTwitterを使っています 「JSON詳しい方にお聞きしたいのですが、Aみたいなデータを返すREST APIの流派があるんでしょうか?? サーバサイドでもフロントエンドでも、なんかAPI呼んでAが返ってきたら使いづらくて仕方ない気がするのですが… ※私はBにすべきだと思うが「Aがモダンでスタンダード」的な主張とぶつかっている https://t.co/O9NGvmXyRu」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho Aにidを入れない理由がわからないかな。gzipしちゃえばほぼコストゼロだしJSONはマップも順番は維持されるわけだから両者ハッピー。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@basuke 主キーが複合キーである場合、JSON Objectのキーにはできませんから、RDBに寄せるなら一貫性の観点から配列を使い方が良いと思います」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho 僕も自分の立場なら迷わず配列」 / Twitter
- Tatsuhiko MiyagawaさんはTwitterを使っています 「@basuke @kazuho 順序に意味があるなら後者(配列)ですが、ないなら前者ですかね。キーのユニーク性が担保されるし、順序によってデータのハッシュ値が変わることがない(キャッシュフレンドリー)。ケースバイケースではありますが」 / Twitter
- Jun MukaiさんはTwitterを使っています 「@basuke @kazuho JSONのオブジェクトは仕様上unorderedなので、順序に意味がある場合なら前者はありえないと思います」 / Twitter
- BasukeさんはTwitterを使っています 「@jmuk @kazuho まあ、そうなんだけど、事実上スクリプト言語はいまみんな辞書型の順番保持するし、もめるくらいならそっちでいけと。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「毎秒1GBでJSONをparseできるライブラリ simdjsonの解説。パーザは2-passに分かれている。まずJSONをスキャンして各要素の位置をすべて記録し、つぎに実際のデータを解析する。各処理の分岐を極力少なくし並列実行できるように設計されている。 https://t.co/74s5ZYxGut」 / Twitter
- [1902.08318] Parsing Gigabytes of JSON per Second
- Kazuho OkuさんはTwitterを使っています: "別の言い方をすると、RFC 4627のJSONは、後続の文字列が何であろうと正しく終端判定できたんだけど、RFC 7159ではそういうことができなくなり、JSONを埋め込む側に別途、終端判定に必要な情報をもたせることが必須になった https://t.co/WZdyoNvlBD"
- Kazuho OkuさんはTwitterを使っています: "RFC 7159 において picojson の API を維持する件については、 input iterator をインクリメントするタイミングを遅延させることでいけそうなイキフン https://t.co/A8exerdIs5 https://t.co/zRpMaxV26R"
- Kazuho Okuさんのツイート: "2**53内ならJSONで数値として表現できるっていうけど、デコーダによって異なる値として解釈されるような表現は可能なの、ちょっと怖いなと思った https://t.co/G7q03sCkc4"
- Kazuho Okuさんのツイート: "[0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100e100] つーJSONパースするとrubyだけ[0]になる(他は100)"
- Kazuho Okuさんのツイート: "JSONの話というのは、Ruby固有の問題というよりは、2**53以内の整数ならJSONで相互運用性を保てるというのが実は幻想で解釈の違いがあるんじゃないかという話です https://t.co/9ekr1VoXrb"
- watsonさんのツイート: "JSON の定義とか、確かに https://t.co/x7Q0pSZkBj が便利そうだね( ˘ω˘) #tkrk11"
- Jxckさんのツイート: "一方頻出 API である JSON.stringify/parse がアレだったのはアレだけど。"
- Hiroaki Nakamuraさんのツイート: "DropboxはAPI v2を作るときにRESTは止めてJSONを入出力とするシンプルな方式に切り替えたそうです。 / "Scaling and securing the Dropbox API" https://t.co/Ne3QXJYqgI"
- ドッグさんのツイート: "JSON を grep しやすい形式に変換するツール面白い.grep した後に元の JSON の出力に戻す(--ungron)こともできるし,そのまま JavaScript としても扱えるらしい | 'tomnomnom/gron: Make JSON greppable' https://t.co/3MJPqtoQz5"
- tomnomnom/gron: Make JSON greppable!
- Fadisさんのツイート: "従来の有限状態機械を使ったJSONパーサは分岐命令が頻繁に実行され、CPUの分岐予測ミスによるペナルティが無視できない問題になるため全く新しいJSONパーサを考えた、とか言い出す論文を目の当たりにしてJSONスゲェってなってる"
- Mison: A Fast JSON Parser for Data Analytics - Microsoft Research
- はやぶささんはTwitterを使っています 「むしろGo の struct から JSON Schema 生成するやつとかあり、JSON Schema を IDL として使うの自体が向いてないって感じだなぁ。コメントとかもかけないし。」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「21世紀になってもconfig language設計をナメてかかって、場当たり的にvariable substとか正規表現マッチを足していって一貫性がなくなったりするのを見るとすごく苛つく。 yamlに適当に評価ルールを上乗せしてくのは完全にアンチパターンだよ」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「plain json, plain yaml以外は受け付けないと割り切って拡張性はjsonnetみたいのに委ねるなり、starlarkを使うなり、それかチューリング完全な言語の上にDSLを定義するなりしたいものだ」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「単純な話、言語設計は難しくて、他の複雑なシステムの開発の片手間にやれるものじゃないんだろう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「JSONに邪魔なもの、カンマ、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同感。 この二つが原因で、設定ファイルに採用しづらいのだよなぁ、、、」 / Twitter
- Dan KogaiさんはTwitterを使っています 「// そしてコメント(💩が)」 / Twitter
- FadisさんはTwitterを使っています: 「RFC4180ではCSVはMIME typeのパラメータで文字コードが指定された場合に限りその文字コードの文字を使用でき、ない場合はASCIIコードを使うことになっているので、sjisだろうとeucjpだろうとutf8だろうとCSVに0x7Fより上の文字を突っ込んだCSVを単独で交換するのはオススメできない」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
- Tikhon JelvisさんはTwitterを使っています 「If we moved .cabal files from a custom syntax to YAML, we could get validation and auto-completion "for free" by writing a JSON schema. Here's an example I threw together with auto-complete for SPDX license tags: More details on this GitHub issue: https://t.co/raXWFjJg1W https://t.co/cPH3OtNhvI」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PHPのarray型は、都合によりリストとも連想配列とも解釈される。あるときJSONの {"0": "No", "1": "Yes"} をデコードしたら、PHPはこれを自動的に「キーが連続した整数である」とみなし、勝手にリストに変換してしまったという話。恐るべし。 https://t.co/z4DnaK73Ri」 / Twitter
- PHP: Frankenstein arrays - vazaha.blog
- Takashi KawasakiさんはTwitterを使っています: 「文字列連結でJSON作ってるクソコードを発見した・・・。インジェクションとか考えたこともないのだろうか。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「そもそも引数に文字列でexpiredAtなんていうものを受け取ってる時点で。。。ここをタイプセーフにするだけで文字列連結だとしてもかなり安全性が上がるのだがなぁ・・・。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「そもそも今時、生文字列と変数を + で連結してる時点でちょっとおかしいんだよなぁ。」 / Twitter
TOML
- JSON, YAML, ini, TOML ざっくり比較
- BurntSushi/toml-test: A language agnostic test suite for TOML parsers.
- toml/toml-v0.4.0.md at master · toml-lang/toml
- TOML仕様和訳 - Qiita
- TOMLは人に優しい設定ファイル言語 - Qiita
- Cool Python Tips: TOMLを使ってみよう
- TOMLの日時形式
- Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
- 最強のC++実装TOMLパーサーが完成した - in neuro
- toml11を60倍高速化した話 - in neuro
- toml11をバージョンアップした - in neuro
- toml11 v3ができてきた - in neuro
- TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
- toml11をマイナーアップデートした - in neuro
- TOMLで型の異なる要素を持つ配列が許可された - in neuro
Dhall
- 画力・博士号・油田さんはTwitterを使っています: 「JSONは幾分か窮屈で,YAMLはてんこ盛りすぎで,TOMLはなんだか謎に入れ子構造が書きにくくなっており,“設定ファイル記述用に膾炙しているフォーマット全部帯に短し襷に長し感” は皆が共有しているなと感じる」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「JSON5やDhallは選択肢に上がるけれども,結局(YAMLにして読み込み時に厳しくチェックしたら良いかな……)になってしまいがち」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「Sesterlの設定ファイルについて「YAMLは嫌だなあ,TOMLが良い」という旨の反応があり,「TOMLは入れ子構造が書きにくいので選びませんでした」と言ったら「設定ファイルを入れ子の深い形式にすること自体がアンチパターンだと思うよ」と返事があって(いやそんなことはないと思うが……?)と思った」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「Sesterlの設定ファイルはこんな感じです(このくらいの入れ子構造は “代数的に自然な” 記述方法として十分出てくると思う): https://t.co/2z8Edl8hME」 / Twitter
- sesterl_json/sesterl.yaml at 35e22887f6181ef2da5b39a25ffef7b56a21c17b · gfngfn/sesterl_json
- 画力・博士号・油田さんはTwitterを使っています: 「端的に言えば, - なるべくerror-proneでなくなるように,出現しうるキーが “局所的に豫測” できてほしい - 直和を表現したい という気持ちで設定記述のフォーマットを定めようとすると自然に入れ子は深くなるんじゃないか,という直観がある」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています: 「“設定ファイルの入れ子が深くなるのはコードスメル” という価値観を持っている人に,例えば上記のSesterlの設定ファイルの形式をどんな入れ子の浅い形式に変えたくなるのか訊きたい」 / Twitter
- 霧咲空人/アッキーだよ✨さんはTwitterを使っています: 「@bd_gfngfn そんなときこそ Dhall!! https://t.co/wjT0W2iGuQ」 / Twitter
- The Dhall configuration language
- 画力・博士号・油田さんはTwitterを使っています: 「@A_kirisaki はい」 / Twitter
XML
- 成瀬さんはTwitterを使っています 「XMLはattributeが余計だったんだと思っている。あれがあるせいでtraverseが面倒になってるよね」 / Twitter
- Hiroshi NakamuraさんはTwitterを使っています 「@nalsh Namespaceですよ。木と木を混ぜるの大変。でも文書の木の管理としては未だに代替がないような。フォーマット定義に使うのがおかしかった。」 / Twitter
- 成瀬さんはTwitterを使っています 「@nahi 文章管理には確かにまだXMLがベストかもしれませんねぇ。「XML Schemaのレガシーは型定義」って制定当時から言われていて、実際JSON Schemaでもある程度継承されてますからそこはまぁ」 / Twitter
- Akso de la MalbonoさんはTwitterを使っています: 「JSONを超える最強のデータ記述言語を考えた結果,コメントが書けて,スキーマ記述があって,URLでローカルやWeb上のデータをincludeできて,木構造から別の木構造へ変換する汎用なツールがあって,jqコマンドみたいな木構造上のパスを指定するクエリ言語があって……XML……どうして……」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「XMLにもMicroXMLがあったけど、Yamlも最低限のスペックのものを作ればいいのかもなぁ> yamlについて思うこと https://t.co/W1D9fM5Hrb @jmukから」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「toml の欠点は名前がいまいちなんだよなぁ。あんまり設定ファイル感がないw」 / Twitter
- MicroXML
- 年末uさんはTwitterを使っています: 「XMLのフォーマッタ&抽出ツール。jqのXML版かな。抽出はXPathで記述する模様。 / “GitHub - sibprogrammer/xq: Command line XML beautifier and content extractor. Similar to jq.” https://t.co/Gox2JCEFu6」 / Twitter
- sibprogrammer/xq: Command-line XML and HTML beautifier and content extractor
- XML 1.0第五版登場、一部規制を緩和 | マイナビニュース
- RFCの正規文書がXMLに:Geekなぺーじ
- The XML C parser and toolkit of Gnome
- Downloads
- Welcome to Expat! · Expat XML parser
tRPC
- tRPC - Move Fast and Break Nothing. End-to-end typesafe APIs made easy. | tRPC
- tRPC で TODO アプリを作る - Qiita
- trpcって知ってますか?
Protobuf
- _ko1さんはTwitterを使っています 「XML Schema みたいな木構造の定義(文法)って良いと思うけどそんなに流行らなかったというか、結局必要で JSON Schema とかでてきていると思うけど、なんか決定版つくんないのかな(結局小さくまとまらずにBNF?)」 / Twitter
- _ko1さんはTwitterを使っています 「@oza_x86 ASN.1 じゃなくて XML じゃなくて protobuf なのは、Google への信頼感でしょうか」 / Twitter
- ozaさんはTwitterを使っています 「@_ko1 観測してる感じですと(いわゆるマイクロサービス化などの文脈で) 性能が求められる場面で golang と一緒に grpc が使われるようになって,一緒に protobuf も使われるよつになってきてるという風に見えてます この2-3年でエコシステムが盛り上がったのかなと(めっちゃ主観です」 / Twitter
- Protobuf definition best practices | by Ammar Khaku | Medium
- CNCF、KubeConEUで新プロジェクト用のgRPC、ArgoCD、Flux、その他を発表
- 作ってわかる! はじめてのgRPC
- やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
- btnrougeさんはTwitterを使っています 「超重要なJTAを忘れていた。もっとも、表に現れるのはJDBC接続プールの設定か、Java EE 7以降の Transactional アノテーションくらいだけれど。」 / Twitter
- btnrougeさんはTwitterを使っています 「J2EE 1.2の主要機能は、Servlet、JSP、EJB、JMS、JDBC、JNDI、それからJavaMail。これらがJ2EE 1.2として標準化された背景にはしかるべき理由 = "Why" がある。APIの改善や代替技術の登場により "How" は変わったけれども、こいつらが当初から持っている "Why" は変わっていない。」 / Twitter
- やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter
- protocol buffers proto3 - 検索
OpenAPI
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「もうJavaScriptを使ってサーバーサイドをやる時代は終わったのか」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu JavaScriptはどうだかわかりませんが、TypeScriptだとこういうのもあるみたいですね。私は一度も使ったことがないのでよくわかりませんが… frourio - Fast and type-safe full stack framework, for TypeScript https://t.co/EiGaOocoME」 / Twitter
- frouriojs/frourio: Fast and type-safe full stack framework, for TypeScript
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix これはprotobufやOpenAPIに類する物のTS版ですかね...」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu 型情報を上手く使って自動生成する系として考えるとそういうものなんですかね…? 私はまだよくわかってませんが、以前mizchiさんのこちらの記事を見て面白そうだな…と思ってただけです。 https://t.co/jxYpcDAioc」 / Twitter
- 2021年 は Fullstack Next.js 元年なので、有望な Next.js 系フレームワークを全部試した
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix OpenAPIのTS向けバインディングっぽいですね。 使いたいですがサイズが大きすぎる...」 / Twitter
- OpenAPI GeneratorでPython Web API構築 | フューチャー技術ブログ
- OpenAPI Generatorでrust-serverのコードを生成して、GET/POSTメソッドを呼び出すまで | フューチャー技術ブログ
WebBundle
CBOR・MessagePack
- FUJI GoroさんはTwitterを使っています 「CBORがMessagePackに対して敵対的フォークを行ったことを批判しているエントリ。IETFの優位性を示したかったのではないかと。さらに、仕様的にもCBORはMessagePackと比較して不必要なまでに複雑になっていると。 / “diziet | MessagePack vs CBOR (RFC7049)” https://t.co/WTlJh2Bnnm」 / Twitter
- diziet | MessagePack vs CBOR (RFC7049)
- Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter
- mizchiさんはTwitterを使っています: 「ブラウザ標準に JS から使える cbor encoder/decoder がほしい」 / Twitter
- 本サイトの AMP 提供の停止とここまでの振り返り | blog.jxck.io
- Non AMP SXG による Prefetch 対応と AMP 提供の停止 | blog.jxck.io
- AMP SXG 対応 | blog.jxck.io
- Webbundle によるサブリソース取得の最適化 | blog.jxck.io
- WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
- WebPackaging の Signed HTTP Exchanges | blog.jxck.io
- YujiSoftwareさんはTwitterを使っています 「〜 15年前 〜 XML「XSLT を使えば、クライアントサイドで XML から HTML に変換できるよ」 エンジニア「サーバサイドでやれば良くない?」 〜 今 〜 エンジニア「Vue を使って、クライアントサイドで JSON から HTML に変換するよ!」 XML「解せぬ」」 / Twitter
- shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
- shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
- shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
- shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
- 成瀬さんはTwitterを使っています 「@shinh っ XSLT」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@nalsh はい。それは僕の世界観では、失敗作ですね。。もちろん、XSLTによってたくさんの研究が…みたいなことはあるんでしょうし、その価値を否定するものではありません。というかXSLT自体は良いと思います。ただまあ、使いやすいものではないですよね。僕が今欲しいのは使いやすいものなのです」 / Twitter
イベント
Event Storming
- これならできる!ドメイン駆動設計に役立つイベントストーミング - Qiita
- EventStormingをやってみた話 - Qiita
- 最近の海外DDDセミナーを聞いてみたら色々と常識が破壊された - Qiita
- イベントストーミング導入
- CQRS/Event Sourcingを学ぶための教材(2020年版)
- ミニマムにはじめるイベントストーミング | | AI tech studio
- 明日からはじめられるEventStorming(イベントストーミング) / Let's try EventStorming - Speaker Deck
- 本当にはじめられたイベントストーミング ―実践してみて見えたこと― / Practical EventStorming - Speaker Deck
- 令和版・止まらぬシステムの作り方、障害要因の洗い出しに有効な新手法はこれだ | 日経クロステック(xTECH)
- 第1回 OpenAPI Generator を使ったコード生成 | 豆蔵デベロッパーサイト
- 第2回 イベントストーミングとドメイン駆動設計の戦略的設計 | 豆蔵デベロッパーサイト
- 新しいモデリング手法: EventStorming (イベントストーミング) をはじめるための準備 - yoskhdia’s diary
- 開発者とプロダクトオーナーの認識ギャップを埋めるには? レッドハットのアジャイル支援に学ぶ【デブサミ2019夏】 (2/2)|CodeZine(コードジン)
- aggregate - storming - CQRSのサガ-私はそれらを正しく理解しましたか?
- Event Stormingを実践する
イベント
- 動きのあるデータのイベント処理をシンプルにすることを目的としたQuineとは
- オープンソースのCNCF CloudEvents仕様、バージョン1.0のマイルストンに到達
- イベントアーキテクチャとイベントストリーミング
- イベントソースシステムにおけるイベントのバージョン管理
- イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より
- イベントは開発者の第一級ツールであるべきだ
- イベントは分散システムの将来を変えるか - Jonas Bonér氏のQCon Londonでの講演より
- イベントファースト思想はなぜ重要か
- イベント駆動システムに対する批判的見解 - Bernd Rücker氏のQCon Londonでの講演より
- イベント駆動からイベントソーシングへの移行 - MicroCPHのFangel, Ingerslev両氏の講演より
- イベントソーシングシステム開発時の間違いとリカバリ
- イベントソースシステムにおける過去と未来のイベント
- 「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す - Publickey
- Linux FoundationがAsyncAPIのホストを発表
- Faunaトランザクションデータベースがイベントストリーミングを導入
- BraintreeがThundering Herdに対処
- 認知的複雑度から見るGo言語のイベントソーシング実装 / Event Sourcing with Go - Speaker Deck
- イベント処理について思う事。 - 言語ゲーム
- イベント駆動アーキテクチャの勘所 - エムスリーテックブログ
イベントストア
- Mongo DBとS式検索 - Speaker Deck
- AxonDB - イベントストアの新たな実装
- data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表
- MicroStream 5.0がオープンソースになった
ORM・イベントソーシング
通信・ORM
- FUJI GoroさんはTwitterを使っています 「これはむしろ逆だと思っていて、「サーバーサイドとクライアントサイドを協調しやすくして、クライアントサイドは徹底的に薄くする」ためのQUERYだったりGraphQLだったりだと思っています。」 / Twitter
- おれきゅーさんはTwitterを使っています 「GraphQLとかHTTPのQUERY見てて思うんですけどフロントにそんなにデータ持ってきて加工する複雑さ持ち込みたいモチベ強くあるんです? UIのstate管理するの大変だからデータはサーバー側によしなに都合の良い形で返してきてほしいって気持ちのほうが強いと思ってたけど」 / Twitter
- FUJI GoroさんはTwitterを使っています 「対局にあるのが「綺麗なRESTful API」で、APIがシンプルなぶん、クライアントサイドで並列リクエストや細かなエラーハンドリングなど画面ごとに複雑な処理が必要になってしまう。そして行き着く先は画面ごとのスーパーエンドポイントを作ることになり、サバクラ双方でアジリティが失われる。」 / Twitter
- mattnさんはTwitterを使っています 「「生 SQL 書きたくねぇ」で ORM が出てきた様にいずれ「生 GraphQL 書きたくねぇ」って言われてライブラリ出てきてたら、正直それ REST で良かったって話になったりしない?」 / Twitter
- まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou 生SQLを書きたくないのは、普及の要因のひとつではあるかもしれませんが、ORMが出てきた理由ではなかったような。そもそも初期のORM、生SQL書いてませんでした?実装を意識せずにすむようになるなら、より進化したことになるので良い事なのでは。」 / Twitter
- mattnさんはTwitterを使っています 「@potimarimo @EzoeRyou そうすね。ORM にもクエリは生で書かせて fetch した物をオブジェクトで扱わせる物と、クエリジェネレータ持ってる物の両方ありますね。そうなった際には中身が GraphQL でも REST でも、なんなら gRPC でもなんでもいいんですけども。その為に HTTP QUERY が入るのは、なんか違うなぁと思った次第。」 / Twitter
- まりもさんはTwitterを使っています 「@mattn_jp @EzoeRyou ORMがあったおかげで、NOSQLやらJSONやらと混ぜてもあまり混乱していないように、上手いこと実装を隠蔽できるように進歩していくといいですね。そうすると、プログラマーが直接叩くことを考えないで済む分よを速いプロトコルが流行るかもしれない。」 / Twitter
- mattnさんはTwitterを使っています 「SQL インジェクションがフォームに起因する脆弱性だというツイートを見たけど、どちらかというと ORM 等を使わない事で起きる脆弱性という認識です。」 / Twitter
- mattnさんはTwitterを使っています 「SQL インジェクションはバインド変数を使わず SQL を文字列で組み立ててしまう事でエスケープされないクエリが実行されて起きる脆弱性ですので、動的に文字列を繋げて SQL を組み立てる事がない ORM の導入は効果があると思います。」 / Twitter
- moajoさんはTwitterを使っています 「SQLインジェクション対策のためにORMを入れよう!って主張を聞いて???ってなってる」 / Twitter
- mattnさんはTwitterを使っています 「欲しいのが SQL だけで良いならクエリビルダでも良いですね。」 / Twitter
- 渋川よしきさんのツイート: "ORMって、クエリービルダーとオブジェクトマッパーと大きく2つ機能があって、後者は面倒だから自動化したい、前者は直接書きたい派とかもあって、2 WAY SQLみたいなのもあるし、それとは別にActive Recordとかもあるので、まず要素分解して各個議論しないと、意味がない気はしてる。"
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORMと比べてどうなんだろう / 1件のコメント https://t.co/y0Qj7Reo5c “最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった” https://t.co/LQdBDrHY97」 / Twitter
- 最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった
- κeenさんはTwitterを使っています 「非同期かつコードでSQLを組み立てられるORMのSeaORMのアナウンス。dieselと違ってsimple系の設計かな? Introducing SeaORM | SeaORM - 🐚 An async & dynamic ORM for Rust https://t.co/RqCE8vkRF5」 / Twitter
- Introducing SeaORM | SeaQL - Building data intensive applications in Rust
- κeenさんはTwitterを使っています 「simpleとeasyの対比ってどのくらいのひとに伝わるんだろう。simpleは構造が単純でわかりやすい。easyは手軽に使える(記述量が少なくなる)。easyは背後のモデルが複雑になりがちで、却って難しいこともある。」 / Twitter
- 令掛ベインさんはTwitterを使っています 「SQLはin句とorder byが動的生成したい場面が多いので、そのへんをORMに任せる。定型的なクエリもORMに任せる。それ以外は手書きで、仕組み的にORMと手書きを両立させる、というイメージ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「「ORM は RDB わかる人いなくても仕事できるようにするツールではなく、設計方針のインピーダンスミスマッチを埋める抽象です」 「イベントソージングはトランザクションをすっかり代替するためのものではなく、部分的に投棄的実行でよい妥協をして書き込みをスケールさせる選択肢です」 いつもこれ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「新しいやつがあれば前のやつを忘れて勉強しなくてもよくなる幻想はよくないと思う。現実はその逆で、前のを前提としないと、新しいやつの使い方を間違えるから」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「前のやつを知るのは大事だけど、前のやつでやっていた苦労までもう一度やるのは無駄ですからね。ひととおり理解して、うわここがこの先しんどくなるとこか、っていうのがわかればいいんです。「ほーんこれがアセンブラの仕組みか、これで全部書いたらたいへんやな、やめやめ、C 言語使お」こうですね」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「Web アプリのフレームワークは DB のテーブルロックと行ロックをコントロールしたいユーザーの期待にちゃんと応えてほしい。REPEATABLE READ でも満足できなきゃ SERIALIZABLE でいいでしょじゃないんですよ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「いま CQRS とイベントソージングって思った人おるやろ。そんなん、ぜんぶ投機的実行で作れるわけないやん? ふつうはデータ反映が確定してからレスポンスして、クライアント側はそれ前提に次の動きするんやで」 / Twitter
ワークフロー
- 高可用性ワークフローエンジンZeebeが実運用対応に
- ワークフローにイベント駆動型の自動化を提供するPuppet Relay
- マイクロサービスからワークフローへの移行
- Azure Purviewワークフローを使って、データエンティティの操作、検証、承認を統合
リアクティブシステム・非同期
- DDD、イベントストーミング、アクターモデルを使用したリアクティブシステムの設計
- RSpcket - SpringOneで発表された、リアクティブアプリケーションのための新たなアプリケーションネットワークプロトコル
- QCon London: 非同期イベントアーキテクチャにおけるアクタ導入の可否
- Svelteを使ったアニメーション、レスポンシブ、リアクティブなデータ視覚化
- カスタムディレクティブとリアクティブAPIを新たに備えたLit 2がリリース
- Mobx リアクティブ状態管理ライブラリバージョン 6がリリースされた
- JavaScripr言語にリアクティビティを実現するフロントエンドフレームワークSvelte 3 - 作者のRich Harris氏に聞く
- Kotlinの新しい非同期処理 - QCon SFでのRoman Elizarov氏の講演より
- C# 8の非同期ストリーム
- IAsyncDisposableとIAsyncEnumeratorの更新
- eBayは非同期API契約としてAsyncAPIを採用
- Dropboxがどのようにして大規模な分散非同期タスクフレームワークを構築したか
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています: 「リアクティブシステムは状態遷移機械だという単純で有用な理解を採用せず、周辺をぐるぐる回って苦労している人が多い。推測するに、プログラミング言語という表現形式がおしつけてくる理解の枠組みに囚われているのかも。」 / Twitter
printk のスレッド化
- FadisさんはTwitterを使っています: 「Linuxのprintkをコンソールに吐くためのスレッドを作るようにするパッチの話。Linuxでは様々な目的のメッセージがprintkでコンソールに出力されるが、printkがスケーラビリティを損ねる原因になる事が2019年頃から問題視されていた。このパッチはそれを改善する為の変更の1つ https://t.co/H7xgXMXefx」 / Twitter
- Patches Updated For Linux To Enjoy Consoles Running At Full-Speed - Phoronix
- FadisさんはTwitterを使っています: 「従来のprintkはコンソールに出すところまでが同期的に行われていたが、コンソールは通常共有の資源かつ低速なためこれには時間がかかった。変更ではprintkはメッセージをlock-lessなリングバッファに登録した時点で返り、別スレッドがバッファの内容をコンソールに表示する」 / Twitter
- FadisさんはTwitterを使っています: 「最適化自体はシンプルだが、カーネルがありとあらゆる場所で(panicする直前とか、割り込みの最中とか、起動直後とか)printkする事がこの問題を難しくしているらしい。普段は別スレッドに表示を任せていても、表示用のスレッドが動く事を期待できないような状況では従来の方法で表示しなければならない」 / Twitter
CQRS
- DDDで設計するならCQRSの利用を検討すべき - Qiita
- CORSまとめ - Qiita
- Cutting Edge - CQRS とイベント: 強力なコンビ
- Cutting Edge - 一般的なアプリケーション向けの CQRS
- CQRS + ESについてのまとめ - Output!!
- CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | プログラミング | POSTD
- CQRSとイベントソーシングでシステムを構築する
- ドメインストーリテリングを使ってコンテキスト境界を見つけ出す
- Living Documentation by design, with Domain-Driven Designを読んだ | Web Scratch
- #teppeis_sushi でクライアントサイドDDDについて発表した | Web Scratch
- CQRSとイベントソーシングのフレームワークであるAxonの基本概念と今後について
- リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
- 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
- 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「#peingddd CQRSのよくある誤解で、導入したら参照系と更新系それぞれのモデルしか使ってはいけないというのがあります。(続) #Peing #質問箱 https://t.co/B2NSJ5ZhbW」 / Twitter
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「しかし、そんなことはありません。 こちらの記事に書いたのですが、CQRSは「必要な部分だけ導入する」でOKです。 https://t.co/qHdB1EvQyy 今回のご質問だと、いくつかのテーブルを参照したような複雑なクエリ部分だけ、そこに特化したクエリモデルを使用して検索するぐらいで良いと思います。」 / Twitter
- CQRS実践入門 [ドメイン駆動設計] - little hands' lab
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「ただ、そのあとに更新処理を行う時には、リポジトリから取得したドメインオブジェクトを通じて行う方が良いでしょう。」 / Twitter
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「なぜなら、重要なドメイン知識(ルール/制約)をドメインオブジェクトで表現し、そのコードを見ればドメイン知識が理解できることを目指したいのに、その他の部分に知識が分散してしまうとそれが見落とされてしまうことにあるからです。」 / Twitter
- Manabu UenoさんはTwitterを使っています 「重要なのは、ユーザーに「オブジェクトを直接操作している」というイリュージョンを与えることである。 記事の例でいえば、Deactivate のタスクを切り出すこと以前に、Deactivate という動詞がユーザーの行為の中で十分な意味性を持つか、ということをまず考える必要があるだろう。」 / Twitter
- タスクベースUIとCQRS - Qiita
- Manabu UenoさんはTwitterを使っています 「OOUI 本の記述をひとつのきっかけに骨太な議題が掘り起こされている。意味性を排除したデータ操作のUIは滑稽だが、Windows の端々に現れる使役的な「リンク」がオブジェクトをタスクの後ろに隠しがちなのも事実。単純な構文論に回収されないデザインの暗黙知がありそうだ。 https://t.co/SPMk6SMaSi」 / Twitter
- かとじゅんさんはTwitterを使っています 「CQRSはCとQを分離することなので、QからCに依存したら便利だとしても、そもそも分離にならないので、CQRSには該当しなくなると思います。これをCQRSと言ってしまうと論理的に矛盾すると思います。つまり、非CQRSとか、CQRSっぽいもの。たとえばこんな感じhttps://t.co/AcNDU2QITg」 / Twitter
- ざっくりCQRS/Event Sourcingを解説する - Speaker Deck
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「最近僕は軽量CQRSとかクエリモデルの導入という表現をするようにしてたりします。前のCQRS解説記事も更新したいのですが…本を書き終えたら…orz」 / Twitter
- Amazon CloudFrontが設定可能なCORSとカスタムHTTPレスポンスヘッダーをサポート
- CQRSはモデルだけでなくモジュールも分割する - かとじゅんの技術日誌
- CQRSはなぜEvent Sourcingになってしまうのか - かとじゅんの技術日誌
- 具体的な実装コードからEvent Sourcingを理解する - かとじゅんの技術日誌
参照透過なVOとCQRS
- ひさてるさんさんはTwitterを使っています: 「「DDDを書いたエヴァンスの周りではもう参照透過なVOとCQRSに注目している」 「DDDはオブジェクト指向をベースにしていた」 「ゆえに抽象データ型(具象)をVOでやることがOOPである」 ↑ ちがうよ。DDDは従来の主流だったOOPにとどまらず、関数型とその型理論も取り入れようとしているだけだよ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「なので、OOPって考え方の範囲がどこからどこまでかを説明するとき、オブジェクトがVOかどうかを問うことにこだわると、適切な理解にならないよ。関数型的である部分を前提にして全体の依存設計を考えるときは、Scala を使うといいと思うよ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「そこまで統合して考えるのは現場のプログラマーにとっては難しすぎるという考えがあるのだとしたら、なおさら、状態への完全性を求めるよりも、抽象を窓口にして出来不出来のムラがある複雑さを閉じるところを重視する方が優先だと思うなあ」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「ぼくの意見は5年近く前からずっとこれです」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「SOLID なアーキテクチャはもうできてる前提で次の話を目的としているのがエヴァンスで、できてないから技法でなんとかしようというのを目的にしているのが日本の現場教育だから、ここを混同すると、またあのハイテク信仰で現実との軋轢が生まれるのを繰り返しちゃう気がする」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「コンクリートな値型の実体を組み立てていくのを安心してできるのは、型クラスがあるからじゃないかなと想像している。型クラス満たすかたちで操作を拡張するスタイルじゃなくて、型の継承/汎化で抽象表現をやるポリシーの言語を前提にするのなら、中身のある具象で構造を組み立てるのは怖いなあ」 / Twitter
blog
- Event Driven Architecture
- 開発生産性と信頼性の両立を目指すための Event-Driven Architecture - より良いマイクロサービスアーキテクチャを求めて | Wantedly Engineer Blog
- Oracle Blogs 日本語のまとめ: [SOA/BPM] EDNを流れるメッセージを確認する
- Oracle Blogs 日本語のまとめ: [SOA/BPM] Event Delivery Network (EDN) - A practical example
- マイクロサービスとメッセージングのなぜ [疑問編] - 赤帽エンジニアブログ
- 簡単なリアクティブシーケンス - Faith and Brave - C++で遊ぼう
- リアクティブシーケンスのフィルタ - Faith and Brave - C++で遊ぼう
- CNCFが策定するクラウドイベントの標準仕様「CloudEvents 1.0」が登場。サーバレスのクラウド間互換を促進するか? - Publickey
- MessagePipe – .NET と Unityのためのハイパフォーマンスメッセージングライブラリ | Cygames Engineers' Blog
Twitter
DB 設計
- ひさてるさんさんはTwitterを使っています 「DB 設計、単純に UPDATE を避けるようにすると、排他レベルの悩みから解放されて書き込みがスケールする代わりに、欲しいデータの今の状態が差分累積でしか得られなくなって、読み込み負荷の増大につながります。DB 設計の難しさの本質は、コマンドに適したデータとクエリに適したデータとの同期です」 / Twitter
- ひさてるさんさんはTwitterを使っています 「じっさい、イベント発生で子要素が増えていく作りになっている、一見きれいに見えるデータがありました。その親要素から「最終状態」を得るのが重要かつ高頻度であったのですが、last_status_id で一発でいけてさらに JOIN を続けていける普通の負荷イメージとは比べ物にならないほど重く複雑でした」 / Twitter
- kooo(くぅ)@高い牛肉は正義さんはTwitterを使っています 「@tanakahisateru こんばんは インサートだけのDB設計について、ナチュラルキー+独自サロゲートキー(バージョン)で最終状態を貯めていき リストのときはFROMのサブクエリで独自サロゲートキーの大きい順にソートしてからナチュラルキー等でGROUP_BYすると聞いてそういうのだと思ってたのですが別流派があるのでしょうか」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@kooo5252 イベントログとは別に、最終状態を表す冗長データを持つか、最終状態を直撃で指定できるキーを持つかしてやると、素直にクエリをチューニングしやすくなって、そこだけ比較で 10〜100倍速くなったりします。でもリアルタイムにやると UPDATE が必要なので、排他待ちが起きやすくなります。という話です」 / Twitter
- magnoliak🍧さんはTwitterを使っています 「@tanakahisateru 昔、紙台帳の頃から、一定期間で集計して以降はその内容しか見ない、という運用をそのままシステムに落とし込んでうまく行っている事例が有って、先人達の知恵ってあるんだなーって思ったことがありましたね」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@magnolia_k_ それこそイベントソージングの同期ラグに関する設計ですねー」 / Twitter
- magnoliak🍧さんはTwitterを使っています 「@tanakahisateru そうなんですよね、最初にイベントソーシングを知った時に、アナログでもそうやっている事例は有ったなーって思ったので、本質的な計算量や検索量を減らす工夫って様々有るんだなーって思いました」 / Twitter
- ひさてるさんさんはTwitterを使っています 「@magnolia_k_ 夜間バッチなんかより DB のトランザクション機能を使いこなす方がテクニカルだから偉いと一概には言えないなあと理解してからいろいろ見方が変わりました。匿名ユーザーの操作でどうしようもないデッドロックが起きるのはつらいです」 / Twitter
- magnoliak🍧さんはTwitterを使っています 「@tanakahisateru 汎用機の、1万回同じことやったら、1万回同じ結果が返ってくる安心感が必要な時代が有ったんですよね そのかわり出来ることは限られてるけど」 / Twitter
- ひさてるさんさんはTwitterを使っています 「単純に追記だけでいけるならあれこれクリーンで楽になるねで理解を止めると、じゃあなんで過去の DB スペシャリストは ACID に悩まされ続けてきたのかがわからなくなります。かつては矛盾のない単一 DB 指向だったけど、これだけ分散せざるをえなくなった今は、同期ラグの許容量に視点が移りました」 / Twitter
- ひさてるさんさんはTwitterを使っています 「で、ですね、そういうパフォーマンスの悩みがあまりないデータ操作であれば、ぶっちゃけ枯れた方法から変える必要はないので、たとえば PHP なら Doctrine 使っとけの一択で終わりです。データ量が少なく種類が多いほとんどのケースでは、まだまだレガシー DDD の時代感でも余裕でいけます」 / Twitter
- ひさてるさんさんはTwitterを使っています 「(RDBMS を使っているというだけでみんな同じベースラインで話してると思うのがそもそもの間違いなのかもしれない。同じ日本語話者という共通点があるからといって、あらゆるコミュニケーション状況に通じるべき論があるわけではないし、同じ PHP でもレンサバ Wordpress なのか Wikipedia 運営なのか)」 / Twitter
- ひさてるさんさんはTwitterを使っています 「WordPress」 / Twitter
- 令掛ベインさんはTwitterを使っています 「イベントとリソースでテーブルを共有するためにリソースにイミュータブルなデータへの参照を持たせる設計にしたら、毎秒insertしたり被参照数をみてdeleteするコードを書くことになったのですぐにやめた」 / Twitter
- 令掛ベインさんはTwitterを使っています 「テーブルの直交化、難しがち」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば TCP/IP というより、socket I/F にイマイチ感を昔から感じてたり。 0byte の recv/read に大事な意味持たせるとか、recvfrom に dest addr 無いとか。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「データベースにもHTTPのEtag+If-Modified-Sinceと同じ仕組みがあるといいのにと思うことはよくある。」 / Twitter
- Yoshinori KosakaさんはTwitterを使っています 「マイクロサービスって各サービスの状態が各サービス間で重複してしまうので、整合性を保つためにメッセージキューを使って状態の変化を他のサービスに通知する必要が出るんだけど、DBがCDCをサポートしているとアプリケーションサイドで状態変化の通知を実装する必要がなくなって便利なんだよね」 / Twitter
- shino | ほかいちさんはTwitterを使っています 「@wawoon_jp ご期待のものなのかは分からないですが、SQL + キュー操作 を同じトランザクションとして扱えるんじゃないかなと思います。ドキュメント。 https://t.co/rbYkMPt4uH」 / Twitter
- Oracle Transactional Event Queues対応のKafka Javaクライアント・インタフェース
- tagomorisさんはTwitterを使っています 「“遅れたログを永久に受け入れていると、ロードシステムの負荷が非常に大きい” これなー、弊社のログマージジョブも大変……(どんな過去のデータも捨てられない / “データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クッ…” https://t.co/FvzF34MhGT」 / Twitter
- データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
- mumumuさんはTwitterを使っています 「Exploring the Performance of ROS2 ROS2のアーキテクチャを簡潔にまとめており,Pub/Sub通信を提供するミドルウェアの気持ちがわかった.さらに,ノード間通信の性能や,ボトルネックを調査していて非常に役立つ. 面白いな~と思って読み進めていたら共著者に来年~の指導教員いて笑ってしまった.」 / Twitter
- κeenさんはTwitterを使っています 「Rust+PostgreSQLでジョブキューを作る記事。DBの扱いの例としても丁度いいのでは。 How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour https://t.co/zGHUUIVoAr」 / Twitter
- How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour
- ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています: 「イベント駆動な設計全般的に言えるけど… 例) S3にPutしたらEvent発火する ・Eventがこなかったら? ・Eventが重複してきたら? ここもちゃんと設計しないとダメなんだけど…。 インフラとアプリがチーム分けされちゃうとグレーゾーンになるんだよね…」 / Twitter
- ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています: 「ストリーム処理を考えるとき At most once : メッセージがロストする可能性あり At least once : メッセージが重複する可能性あり(冪等性を検討 Exactly-Once:必ず1回←これはエコシステムとしての課題 なのを頭に入れて設計しないと 同じメッセージが2回きた!とかいう話になる。」 / Twitter
木の変換
- ANTLR
- Stratego Program Transformation Language
- The BNF Converter
- BNFC/bnfc: BNF Converter
- Macro Tree Transducers and Their Complexity - ppt download
- CDuce: ℂDuce
左再帰
- 6.pdf
- 手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
- 4.pdf
- compiler_04.pdf
- 左再帰 - Wikipedia
- 再帰下降構文解析の間接左再帰の除去方法について具体的な方法... - Yahoo!知恵袋
- chainl の正体 - ksmakotoのhatenadiary
DB
- postgres_types - Rust
その他
- 自作DBMS Advent Calendar 2020 - Adventar
- MySQL Index dive の動きを観測してみた - mita2 database life
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.2.1.3 range の最適化
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.2.1.20 フルテーブルスキャンを回避する方法
- ast.htm
- II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
- データベース性能を向上させる「インデックス」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(26) - @IT
- [1712.01208] The Case for Learned Index Structures
- hatoo💛さんはTwitterを使っています 「SQLアンチパターンでRDBMSでツリーを表現する方法があったからNeo4jについて少し調べてみたけど、index-free adjacencyってやつ諸刃の刃だな… https://t.co/7FVFReHOQn」 / Twitter
- Neo4jについてちょちょいと調べたまとめ :: Igreque -> Info
- バインド変数(ユーザー定義変数)とは - IT用語辞典 e-Words
- 基礎から理解するデータベースのしくみ(8) | 日経 xTECH(クロステック)
- オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載一覧:CodeZine(コードジン)
- starpos/develop-transaction-system: Source code of the book "Develop A Transaction System" (in Japanese).
- LIS026115.pdf
- www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
- 無料で個人データのダミーを大量に生成できるジェネレータ。住所やマイナンバーなど - PC Watch
- Random Query Generator Tests - MariaDB Knowledge Base
- NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由 | 日経 xTECH(クロステック)
- CAS操作 - Google 検索
- シャーディング - Google 検索
- 閉包テーブルモデル - Google 検索
- sql with句 使い方 - 検索
- 「PostgreSQL 15」が正式リリース ~「MERGE」コマンドに対応、パフォーマンスも向上 - 窓の杜
- Multiranges in PostgreSQL 14 - | CYBERTEC Data Science & PostgreSQL
- Microsoft、「SQL Server 2022」の一般提供を開始 - 窓の杜
FS
その他
Gfarm
- Publications
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
@hei_nyan
- okamo(aged 5 yrs.)さんはTwitterを使っています 「lustreの動きと仕組みはなんとなく理解してると思うので、beegfsあたりの動きをちょっとみてみたいな。AWSのマーケットプレイスにあるので触ってみるか」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「分散ファイルシステムの振る舞いと実装って各システムが独自進化していってる感があって、よくわからんというのが正直なとこなんですよね」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「セマンティクスの定義はunix semanticsとsession semantics、以上、で細かい話し始めると色々疑問が出てくる。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「"session semantics - no changes are visible to other processes until the file is closed." これ厳密に守ろうとするとバージョン管理が必須になるけど、そこ頑張ってるシステムは聞いたことない。DAOSとか最近のシステムの実装はわからんが https://t.co/PLW0SipacJ」 / Twitter
- Distributed File Systems
- okamo(aged 5 yrs.)さんはTwitterを使っています 「session semanticsの出自がどこかはわからないんだけど、業界ではNFSのclose to openがイコールで語られる。 でもNFSってcloseしてなくても別プロセス/クライアントから書いたデータ読めちゃうよね?となる。実用としてそこは気にならないんだろうけど、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「実態はclose前のデータは読めるかもしれないし読めないかもしれない、なんだろうな。とは言え実用としてはこの辺りの中途半端な状態は未定義で、closeしたら次のopenで読めますよ!が分かりやすいんだろう。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「namespaceのセマンティクスに関しては全く言及が無いし、実際NFSでもファイルをrenameして同名で作ったファイルを別クライアントからopenしたらrenameされたファイルが読めてしまうことはあったはずなので、色々複雑である。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「まとめると、FSのセマンティクス(そもそもセマンティクスてなんだ)って結構いい加減なので、期待される最低限以外は自由に作ってくださいな、になるんだろうと思った次第。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「unix semanticsはそれなりに厳しい。多分external consistencyレベルは維持しなきゃ成り立たなくて、Lustreは基本的にこれ。 (というかlinearizabilityとの作り上の違いをちゃんとわかってないので雑魚)」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustreは排他周りが非常に複雑で20年を超えたシステムの成熟度合いを感じざるを得ない。使い手からは何したら良いのかわからん、みたいな話は聞くけどこれはunix semanticsを維持することの限界と勝手に思ってる。複雑すぎる」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「そういえばLUMIがCephを入れてるのには結構興味ある。DAOSとかHPCメイン(?)で開発されたオブジェクトストレージじゃないCephをどう使ってくのか。IB対応とかも見かけるけど、割と一般的なオブジェクトストレージは敬遠されてたイメージなので、、、弊社の姿勢だけなのかもしれんが」 / Twitter
- MBR(Master Boot Recode)
- Episode 04: Filesystem on NVM / Self-Driving Car on Dessert – Misreading Chat
- 【USBメモリー】 最適なアロケーションユニットサイズ 【SSD&HDD】 | USBメモリー収集家のブログ
- USBメモリのフォーマットを変更して高速化する - ぼくんちのTV 別館
- 浪費のような、そうでないような。: スマホでSD Formatterは使ってはいけない
- closeがEINTRを返したらどうするべきか - Togetter
- [論文紹介] Snowflake - NSDI '20 -
- スパコンポエムAdC2020 Day20 Nov/2020 IO500について少し語る - Qiita
- mumumuさんはTwitterを使っています 「Rump File Systems: Kernel Code Reborn [ATC '09] 主にNetBSDのKernelで動いているFSをUserlandでそのまま動作させるためのKernel-User間のNamespaceの変換するモジュールを提案.以外とオーバヘッドも少なくていい感じ.OSSコミュニティとシステム研究がいい感じに協調してて?よい話感.」 / Twitter
- Lustre
- MEGFS - 借り初めのひみつきち
- Takashi KawasakiさんはTwitterを使っています: 「ファイルシステムでファイル作成時に名前を決めないといけないのはボリュームの関連付け上は必要かも知れんが、ちょっと疑問ではある。個人的には最後にcommit的なシステムコールがあってそれに名前渡すような仕組みにしてほしい。」 / Twitter
ISO image
UDF
- ユニバーサルディスクフォーマット - Wikipedia
- Universal Disk Format - Wikipedia
- パケットライト - Wikipedia
- Packet writing - Wikipedia
- Standard ECMA-167
- UDF(ユニバーサルディスクフォーマット)とは - IT用語辞典
- 書き込み型BD・DVDのファイルフォーマット(UDF)まとめ : Web Memo.SE
- ISO image - Wikipedia
- ISO 9660 - Wikipedia
- ISO 9660 - OSDev Wiki
- Standard ECMA-119
- Joliet Specification
- El Torito (CD-ROM standard) - Wikipedia
- El-Torito - OSDev Wiki
- 注目の脆弱性:Power Software PowerISO、ISO のコード実行の脆弱性
- Comparison of disc image software - Wikipedia
- 【レビュー】指定したフォルダをISO形式のディスクイメージファイルへ変換する「Folder2Iso」 - 窓の杜
- 品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
- CD から OS を起動する - 借り初めのひみつきち
- CD-R書込形式について - Microsoft コミュニティ
- windows10でISO9660(レベル1)形式のCD-Rを作成したい - Microsoft コミュニティ
- 富士通Q&A - ファイルシステムの「ISO9660 LEVEL1」と「JOLIET」の違いを教えてください。 - FMVサポート : 富士通パソコン
- 富士通Q&A - [Windows 10] ディスクにデータを書き込む方法を教えてください。 - FMVサポート : 富士通パソコン
Plan9 の WORM Jukebox ベースの日時差分記録
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LTOオフライン保管が強そうだけど、オンラインで守る場合は plan9 の WORM Jukebox ベースの日時差分記録のファイルシステムが強いのかな? (そういえば、ファームウェア的に WORM動作を実現した HDD/SSD とかあるのだっけ)」 / Twitter
- ITmedia NEWSさんはTwitterを使っています 「日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 https://t.co/JXztYJ05Kd」 / Twitter
- 日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 - ITmedia NEWS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(今回は知らないけど、バックアップしててもアウトな場合の一つは、気づくの遅れて、壊れたデータによるN世代ローテーションが埋まってしまうこと)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あとは、バックアップしてたはずなのに、ある時期から停止してたとか冷や汗もの…下記はピクサーでの実例。 https://t.co/KAJ94QmjjP」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「その直前のシーン。 事故が起きて「大丈夫バックアップがある」と思った後に、肝心のバックアップが取れて居なかった、と判った時の気分は想像したくない(笑) https://t.co/NfzW299gii」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても、削除ファイル復旧に一番肝心な、「なにもせず、すぐに電源を抜く」という最善手を打った(さすが)のに、ほぼ全滅に終わったのはなぜだろう?という疑問は少し残る。」 / Twitter
- 鯉江さんはTwitterを使っています 「@shirouzu 別のマシンにつないだときにジャーナルが実行されたというオチだったりして」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど…NTFSだとログがコミットされても、(上書き等をしなければ)MFTに概ね復元可能な痕跡が残るんですが、UNIX系だと厳しいかもですね。 それと映画は99年公開=事故は97-98年あたりですかね。当時のUNIXはジャーナルが広まる直前という感じでしたかね。(AIX/IRIXだけ先行状態)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ISMS等で年に1,2回、訓練のための模擬復元をして、バックアップデータの完全性を確認、みたいなルーチンを回している組織も多いはず。」 / Twitter
定期検査・自動修復機能・RPC・バックアップ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サイレントデータ破壊は滅多に起きないけど、検出しても「打てる手が無い」となりがちな障害。 実用的には ReFS や一部RAIDのような、定期検査&自動修復機能が無いと厳しい印象。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@shirouzu 検出機能のついているfilesystemは、なんらかの修復機能も用意しているような印象を持ってます(ちゃんと調べてないですが」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@n_soda そう思います。 メジャーだと、ReFS / ZFS / Btrfs あたりでしょうか。」 / Twitter
- hitoさんはTwitterを使っています: 「@shirouzu @n_soda どれもそこまで役に立たないかなぁ……という気がしますね……(修復可能なケースが限定的)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu gfarmの場合は、ある程度役にたったことがある話を聞いてます。(読み込み時にchecksum不整合を検出して、そのレプリカを自動で無効化)」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu 検出部が役に立った but 復旧はgfarmとして持ってた別レプリカから、っていうやつに聞こえる……」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu ファイルシステム的には中身の正しい複製をベースに、無効化されて減った複製数を補って自動復旧。 アプリケーション側からみると、自動で別の複製を使ったリトライはしてくれなくて、Input/output error が返るので、別途手動対処。 …だと思います。(自動リトライを実装すべきか…」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu ってなりますよねえ。 (過去の記憶を思い出しながら)時間かかることもあるし、どのステートで起きるのが期待かとか考えるとファイルシステムでのリトライはもろもろ厳しい気がする……どうせ本質的にはリモートプロシージャなのでアプリケーション側でリトライがいいんじゃないですかねぇ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu はい。gfarmで実装するならライブラリ実装されているクライアント側から、別のレプリカを探してRPCをリトライってなります。」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu ……っていう意味ではやっぱりファイルシステム側の修復への期待はあまり妥当ではない(バックアップからの暗黙での取得とかができるならいいけど)、かなぁ……」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu 管理者にアラートが上がってれば、ファイルシステム側で修復自体はしても良さそうな気がします。 管理者が気づかないと、ディスクの予防交換とかできなくて怖いですね。 あとは自動修復用のアクセスでさらなる故障の引き金を引かないように神に祈ると...(ぉ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@n_soda @_hito_ サイレント破壊からのファイルシステム自動修復がダメだった経験が多いのでしょうか? > @_hito_ さん」 / Twitter
- hitoさんはTwitterを使っています: 「@shirouzu @n_soda ですです。「自動修復ってたいていのケースでかえって破壊するだけじゃね?」ぐらいの認識です(ストレージデバイスのデータコラプションはたいてい数bitでは収まらないという話)。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu 同時期に購入した同一ファームウェアのディスクなわけで、同時期に同じような問題が出るんですよねえ…」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu それもありますし、たとえば特定のrow/column依存のbitフリップとかだったりしても、現代的な実装(WARペナルティとかを考えないといけないもの)だと読んで書いてすることで広がって、「散ってるじゃん……」ってなるので……。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@_hito_ @shirouzu なるほど…」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu きわめて早い段階で検知できるんで救われるケース、というのもあるんだろうとは思うんですが、古典的なバックアップ戦術の方がコスパ含めてよほどよく機能してないこれ? みたいな。」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu もちろん将来的に今と異質な傾向とかが増えるなら(たとえばフラッシュストレージの微細化によって、保存データが化ける頻度が増えるとか)また話は違ってくると思うんですが、なんかこう、新しめのファイルシステムの保護してくれる場所ってそこまで機能するんだっけ、っていう感触です。」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu ということで、 ・定期スクラブと検知(と、可能なら読み込み時の自動検知)は有益 ・でも回復は、RAID6のバッドブロックスクラブを越える修復レベルは中途半端なのであまり意味がない かなぁと(書き込み時にasyncでスクラブする、みたいな実装だと意味は出てくるかも)。」 / Twitter
- hitoさんはTwitterを使っています: 「@n_soda @shirouzu 現状まだ、「インテリジェントな機能で実現するなら、素直にバックアップのために異なる(場合によりネットワーク越しの)ストレージがトータルで安いんじゃない?」という構図からは抜け出してないかなぁと思っています。 演算用の半導体と、ストレージ系のコストの比が変動しないと意味薄そう。」 / Twitter
Linux
CacheLib
- FadisさんはTwitterを使っています 「CacheLib: Facebookが同社のサービスで利用しているin-processなキャッシュ用KVSライブラリ。DRAM上のキャッシュのように振る舞うが、背後でcoldなデータをNVMに追い出して見かけ上大容量を実現する。キャッシュは手で消す以外に時限で消える等の多彩な設定が可能 https://t.co/B4dGZpKX1U」 / Twitter
- CacheLib | CacheLib
- facebook/CacheLib: Pluggable in-process caching engine to build and scale high performance services
- FadisさんはTwitterを使っています 「よそのサーバから持ってきた情報をキャッシュするのにDRAMは容量単価とエネルギー効率が悪くなってるからNVMをキャッシュに使うって話、完全にIntelにやる気があればNVDIMMが圧倒していた筈の市場だ…」 / Twitter
- FadisさんはTwitterを使っています 「実装的にはNVM以外のブロックデバイスでも別に動かないわけではなくて、積極的にtruncateを行う動きをするのと、実用上NVMじゃないと遅すぎるって話っぽい。NVM上のキャッシュはnamespaceやパーティションまるごとでも作れるし、NVM上のfs 上のファイルでも作れる」 / Twitter
シンボリックリンク
- Kazuho OkuさんはTwitterを使っています 「シンボリックリンクでパスが循環しちゃう問題、ディレクトリ内のファイルを再帰探索する際に気をつけないといけないやつ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シンボリックリンクは、まあ検出簡単だからいいとして、 mount --bind はマウント時に循環可能性検出してるんだろうか。どうやって?」 / Twitter
- dancerj 🗾さんはTwitterを使っています 「@kazuho mount bindべつにサブマウントは反映しないので循環しないとかそういう感じだった気がするけど詳細思い出せない。」 / Twitter
9P
- 9P - Wikipedia
- 9P (protocol) - Wikipedia
- ASCII.jp:Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に (2/2)
- Plan 9 Wiki (Plan 9 wiki)
- Plan 9: ILプロトコル
- 9P (Plan 9 Filesystem Protocol) VFS
- https://www.kernel.org/doc/Documentation/filesystems/9p.txt
- “どうやって実現してるのかというと、まさかの9P(Plan 9 Filesystem Protocol)です。令和の時代にまさからPlan9の単語を聞くとは思わなかったですが分散OSなので、こういうのには向いてるのかもしれないです” - twatw のブックマーク / はてなブックマーク
- Plan 9
- IL (network protocol) - Wikipedia
- The IL Protocol
- A sane distributed file system
- intro page from Section 5 of the plan 9 manual
- New Patches Aim To Boost Linux 9p Performance By ~10x - Phoronix
fsync
fsync, fflush
- MURAOKA TaroさんはTwitterを使っています 「別名で書いてから名前変更するのと、fflushは関係ない気がするな…」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kaoriya fflush (fsync) rename close で、fflushがないと、プロセスの中のバッファにまだデータが残ってるのに目的のファイル名になってしまう(他のプロセスから不完全なファイルが見える)のが嫌だなぁと。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kaoriya OSが突然死したときの対応まで必要ならfsyncも必要だけど、そこまでは必要ないならfsyncは省略可。」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@methane いえね、書いてからリネームというテクニックはシェルスクリプトとかでも使うので、close&renameだけでfflushは自明ではないなと。厳密には各操作のあとsync要るのかもですが。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kaoriya close後にrenameするのだったらfflushは要らないですね。 その辺も含めて、安全で効率的な、atomicにファイルを作成する方法がどっかの教科書的な資料に書いてないかなぁと。」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@methane たしかにみたことないですね。僕も誰かのスクリプトから学んだのか気が付いたら知っていたという感じです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@kaoriya @methane rename後にディレクトリのfsyncが必要ですね。 cf. https://t.co/sllS5s9Dxt のコメント含めご参照ください」 / Twitter
- 安全なファイル書き換えにはディレクトリも fsync すべき。だけど Perl でどう書くか - kazuhoのメモ置き場
- Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya OSクラッシュへの耐性までが必要であればそうなりますね。 ただ、性能への影響が激しいので、他プロセスから見たときのatomic性だけが必要な場合はディレクトリへのfsyncは不要なようです。 一方、ファイルへのfsyncはatomic性のためにも必要らしいです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@methane @kaoriya POSIXならwrite完了した時点で他のプロセスからも書いたデータが見えるようになることが保証されてるので、その条件ならファイルのfsyncも不要だと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @methane @kaoriya ですよね。 参照されているissueには両方の意見があるけど、クラッシュ耐性不要&可視性必要なら fsync 不要という https://t.co/9L0itVglyy の意見の方が正しいはず…」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya 微妙に間違っていました。ファイルへのfsyncもOSクラッシュ耐性で、これが抜けると新しいファイルが壊れる(0バイトとか)になる。 https://t.co/YGFLWwwzwK つまり、OSクラッシュ後に「古いファイルか新しいファイルのどちらかがあればいい」ならディレクトリへのfsyncは不要ということに。」 / Twitter
- Ext3のコミット間隔を当てにしたアプリケーションは、Ext4でデータロスの恐れあり | スラド
- Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya OSクラッシュ後に「新しいファイルが壊れててもいい」ならファイルへのfsyncは不要。 これは普通に open(), write(), close() したときと全く同じ。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kazuho @kaoriya PythonでWindowsまで対応したライブラリを見つけ、そのIssueでこの議論がありました。 https://t.co/SuiOZtHGB7」 / Twitter
- Option to disable fsync · Issue #17 · untitaker/python-atomicwrites
- まちカドおるみんさんはTwitterを使っています 「にわかに信じがたいけど,こういうの往々にしてあるものなのだな…… >> Can Applications Recover from fsync Failures? | USENIX https://t.co/PeV1TVBVxU https://t.co/ixaWDV3Qeq」 / Twitter
- Can Applications Recover from fsync Failures? | USENIX
- まちカドおるみんさんはTwitterを使っています 「https://t.co/A01UYtXyq4」 / Twitter
- FOSDEM 2019 - PostgreSQL vs. fsync
- まちカドおるみんさんはTwitterを使っています 「“PostgreSQL had been using fsync incorrectly for 20 years”」 / Twitter
- PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。 ---- fsyncへの2つの間違った期待 1: fsyncが失敗した場合、次のfsyncのタイミングで失敗したdirty pageは再度書き込まれる 実際には…最初のfsyncに失敗したらデータはpage cacheから削除される。…(略)…ext4は、dirty dataをpage cacheにcleanとして残すし、xfsは捨てる。… https://t.co/Smkhs9VzAi"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "fsync成功まで、アプリケーション側はデータを捨てずに fsyncリトライではなく write or memcpyのリトライをしないといけない、と。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "fsyncリトライが成功しても、未反映データが書き込まれていない(可能性のある)OSは、 Linux/MacOS/NetBSD/OpenBSD, 常にfsyncが失敗を返すのはFreeBSD、という感じかな? https://t.co/yrZMYDgOce"
- Fsync Errors - PostgreSQL wiki
- Fadisさんのツイート: "データがストレージに書き込まれる事を保証するためにfsyncやO_SYNC付きでのopen等を行っているソフトウェアに対してLD_PRELOADでそれらの関数をフックして書き込みを同期しない実装に置き換える事で、パフォーマンスと引き換えに書き込みの保証を失うライブラリ libeatmydata https://t.co/KmAOMLHtsk"
- libeatmydata - disable fsync and SAVE!
fsck
- ファイルシステム小噺(仮) - Qiita
- docs.oracle.com/cd/E19253-01/819-0386/fstroublefsck-51788/index.html
- エンタープライズ:Linux How-To 第1回:起動スクリプトを知って基礎を理解しよう
- Linuxファイルシステム技術解説(3):ジャーナリングファイルシステムが保護する「情報」 (1/2) - @IT
- fsck(えふえすしーけー)とは - コトバンク
- linux - ルートファイルシステムを復旧させたいのにfsckが上手く使えない - スタック・オーバーフロー
- Linuxファイルとファイルシステムのリカバリ | OSDN Magazine
- ファイルシステム入門
- fsckによるファイルシステム修復 | hajichan.net technical version
- fsck - ArchWiki
- Linux ジャーナリング・ファイルシステムの徹底調査
- 【3分でわかる】Linuxのシャットダウンと再起動
- 【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
- スーパーブロック (ファイルシステム) - Wikipedia
fd
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「中身」だけでなくハードリンクでファイル自体復活できたりするんだろうか」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@_marony @n12i オープンしている最中なら、たとえ消しちゃっても /proc/プロセスID/fd/ディスクリプタ番号 でアクセスできるので、中身の退避はできますよ>Linux含むUNIX系OS」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@esumii linux kernel-4.18.0 で試したら EXDEV (Cross-device link) でエラーになりました。 ただ /proc/$PID/fd/* はいろいろ作りが特別(Linuxの場合は一見symbolic linkに見えるけど、リンク先が消えていてもアクセスできる)なので、カーネル実装によってはハードリンクに成功しても不思議はないと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@esumii NetBSD-9.2 でも試しましたが、こちらだと /proc/$PID/fd/* からハードリンク作成できて、復活可能でした。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、fd/番号って symlink 的な意味しかないと思い込んでいた。 (creat("tmpfile")直後にunlinkでrootもアクセス不能という話はいつから無効だったのだろう)」 / Twitter
- 概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu たぶん30年ぐらい前から。」 / Twitter
Btrfs
- FadisさんはTwitterを使っています 「btrfsに従来のbtrfsとのディスク上のフォーマットの互換性を捨てるextent-tree-v2を追加する提案がなされている話。extent-tree-v2では空き領域の情報やチェックサムがぶら下がっているglobal rootが複数作られ、どのglobal rootに情報を置くかが一定のルールで決定される https://t.co/J9O3W507GR」 / Twitter
- On-Disk Format Changes Ahead To Improve "Painful" Parts Of Btrfs Design - Phoronix
- FadisさんはTwitterを使っています 「従来の単一のglobal rootに空き領域等をぶら下げているbtrfsでは、この情報の書き換えの為にファイルシステム全体で1つのロックを取る必要があり、CPUが多いホストでたくさんのCPUが同じbtrfsの同じsubvolumesに書く場合にスケールし辛い事が知られていた」 / Twitter
- FadisさんはTwitterを使っています 「extent-tree-v2では複数のCPUからの書き込みが不運にも同じglobal rootを触る状況にならない限り、それぞれの書き込みを同時に行う事ができる。extent-tree-v2を使うにはファイルシステムのマイグレーションを行う必要があり、行うとextent-tree-v2対応以前のlinuxカーネルではマウントできなくなる」 / Twitter
- 2021年6月18日 Fedoraプロジェクト,クラウドエディションのデフォルトファイルシステムをBtrfsに:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年8月13日 Btrfs,Linux 5.15でidmapped mountsをサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
- btrfsでうっかりdisk fullにしたときにやったこと | κeenのHappy Hacκing Blog
composefs
- FadisさんはTwitterを使っています: 「Linuxカーネルに追加が提案されている新しいファイルシステムcomposefsについて。ファイルの内容とメタデータを別々のファイルに記録するread onlyのレイヤードファイルシステムで、メタデータ側がfs-verityのdigestを持つことで、ファイルの内容の改竄を検知する https://t.co/JGDAwP6DEa」 / Twitter
- FadisさんはTwitterを使っています: 「fs-verityはread onlyなファイルシステムが改竄されていないことを確認しながらファイルシステムを利用するための仕組み。ページ単位でファイルの内容に証明書による署名を付け、ページをメモリに乗せる際に署名をチェックする。証明書の秘密鍵を持たない者が書き換えると正しい署名を付けられない」 / Twitter
- FadisさんはTwitterを使っています: 「fs-verity は主にAndroidのアプリケーションの中身を書き換える種類の攻撃を検知するために実装されたが、composefs はこの仕組みを応用してコンテナのイメージのような内容が重複するファイルが多い複数のディレクトリツリーを効率良く扱う仕組みを提供する」 / Twitter
- FadisさんはTwitterを使っています: 「composefsではファイルの各ページの内容は署名をファイル名とするファイルに保存される。メタデータ側にはinodeとファイルを構成するページの署名が書かれている。内容が全く同じ複数のファイルはハッシュが衝突し、ハードリンクのように1つのファイルの内容が複数のinodeから指される」 / Twitter
- FadisさんはTwitterを使っています: 「沢山のコンテナのイメージをcomposefs越しに提供すると同じ内容のファイルはcomposefsの下では共通のファイルになりページキャッシュに当たりやすくなる。また、署名はページをメモリに乗せるたびにチェックされるため、間違ってファイルを書き換えても、コンテナがそれを鵜呑みにして走る事はない」 / Twitter
idmappedマウント
- FadisさんはTwitterを使っています 「F2FSをidmappedマウント対応にする変更が現れた話。Linux 5.12で追加されたidmappedマウントはfsをマウントする際にuidとgidを読み替える変換表を設定できるようにする。そのマウントポイントからはuidとgidが変換後の値に見えるが、実際にfsに記録されるのは変換前の値になる https://t.co/QSAJQar4OA」 / Twitter
- F2FS File-System Adding Support For IDMAPPED Mounts - Phoronix
- FadisさんはTwitterを使っています 「変換表はマウントに結びついているため、同じfsを複数箇所に異なる変換表でマウントした場合、それぞれのディレクトリのファイルはそれぞれの変換表で変換したUID/GIDになる。この機能の主な用途はUID名前空間が分離された複数のコンテナの間で同じディレクトリの内容を読み書きできるようにすること」 / Twitter
- FadisさんはTwitterを使っています 「この機能が5.12で登場した当時idmappedマウントができるファイルシステムはext4とfatだけだったが、5.15でbtrfsでもidmammedマウントできるようにする変更が入っており、f2fsはそれに続く形になる。変更はF2FSの開発ブランチに現れた段階でどのバージョンでバニラカーネルに入るかはまだ分からない」 / Twitter
fscrypt
- FadisさんはTwitterを使っています 「fscryptでDirect I/Oが使えるようになったらしい。LinuxのDirect I/Oはページキャッシュを介さずにユーザ空間プロセスのメモリを直接使ってハードウェアにI/O要求を投げる。「暗号化を挟むのにdirectとは?」となるが、inline encryption hardwareが必須になっているのがミソ https://t.co/zi0YdSvquO」 / Twitter
- FSCRYPT Adding Direct I/O Support For Encrypted Files In Linux 5.18 - Phoronix
- FadisさんはTwitterを使っています 「fscryptはLinuxのstorage stackのfs層で実装された暗号化。ディレクトリ毎にioctlで設定された鍵を使ってファイルの内容を暗号化する。dm-crypt等と違いfsドライバの対応が必要だが同じfs上に異なる鍵で暗号化されたファイルを並べられる。Androidのfs暗号化にも使われている https://t.co/F4u7SAjp2T」 / Twitter
- Filesystem-level encryption (fscrypt) — The Linux Kernel documentation
- FadisさんはTwitterを使っています 「fsの暗号化はCPUを割と使う処理なので、ナウいスマートフォン向けSoCのストレージのホストコントローラ等にはストレージデバイスを読み書きする際に自動でデータを暗号化、復号するinline encryption hardwareが備わっている https://t.co/YHS1LxSJY9」 / Twitter
- Inline Encryption — The Linux Kernel documentation
- FadisさんはTwitterを使っています 「fscryptは元々fs層でデータの暗号化を行う物だが、inline encryption hardawareが利用可能な場合、fsは自力で暗号化する代わりにストレージデバイスのドライバの層までハードウェアで暗号化する為に必要な情報をまわして暗号化を遅延させる魔改造がなされている https://t.co/WKElp20orY」 / Twitter
- inline-crypto.pdf
- FadisさんはTwitterを使っています 「通常のfscryptでは間に暗号化が挟まる為ハードウェアまでdirectにデータを送ることはできないが、inline encryption hardwareの場合ストレージデバイスのホストコントローラまでは平文でデータが渡る事になるため、そこまでdirectに送ることは出来る。出来るから出来るようにした、という話っぽい」 / Twitter
NFS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NFSv3(v4は良く知らん)では writeは概ね 32KB以下の pwrite(2) 的な操作にバラされるとかは、もっと知られていいかも。 (write が atomic にならない、O_APPENDが上書きになる場合も)」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「NFS怪談はだいたい普通に保証されていない話ばっかりで「ユーザーがlocal fsと同じだと思っていたのである」オチが多すぎてアレ……」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「O_APPEND について言うと、NFSv3だと、そもそも openという操作が無い。 (lookup操作でI/O対象のinode番号をfile-handleとして教えてもらうイメージ。file-handleにはopenのようなモードとかステートとかない。サーバ再起動しても使えるし、別ホストからでも使える(特殊な事してなければ))」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「これがNFSの欠陥に見える人もいるだろうけど、 これはサーバー側をstatelessにすることによって可用性を向上させるための意図的な設計なんだよね(サーバーがリブートしても、クライアントがリトライするだけで動作は正常に継続する)。 「それは仕様です」の一種で、ポジティブな側面もあるっていう。」 / Twitter
- fjのYog教祖様さんはTwitterを使っています 「@n_soda NFSv4ではopen/closeを導入したので、statefulでアクセスしたい人はとっととNFSv2/v3を使うの止めてください、と言う… (何故か「NFSv3で…」が止まらないの、どうして??)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama NetBSD的な答は、NFSv4が未実装だから…だったり…>「NFSv3で…」 ^^;」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、商用NFSv3サーバをほぼ一人で作った経験から言えば、NFSv3がステートレスなのにプロトコル以上にUNIXセマンティクスに近い振る舞いをする部分があるのは、実装側で近づける配慮してるからだったりする。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際、nfs.x は普通に公開されていて、linux 0.N時代は nfs.x を rpcgen に食わせたコードをベースに nfsd(unfsd) を作っていた記憶ある。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「@n_soda sunのライセンスするnfsのソースコードは4bsdのコードベースなので,SysVベースの会社は苦労したでしょうね。ただ、プロトコルは無償だったような。規格書を見てNFSクローンをつくるのは契約いらない?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(正確には nfs_proto.x だったかな… Sun RPC を普及させるためか、nfsに限らず、各種の.x(rpcgenに食わせてC言語のRPC/XDRスタブを吐くIDL)が公開されてた記憶ある)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「appleのサイトにも nfs_prot.x が公開されていた。 https://t.co/ZgGtM1TFnP」 / Twitter
- nfs_prot.x
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NFS の read速度は先読み量に大きく依存する(read_ahead_kb)。 だが、Kernel5.4以降、マウントポイント毎の識別値を探して、個別設定という面倒な話に。 ---- 「NFS を最適化する read_ahead_kb サイズ」 https://t.co/fFkUdQl8AC」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NFS への write(2)/close(2) は、全てdiskへの write が終了を待つのが仕様(async mountを除く)。 だが、メモリ潤沢なサーバだと write(2)の間はキャッシュに蓄えるだけでなかなか flush してくれない。 で、close(2)のタイミングでやっとdiskへのwriteが始まったりするため、却って遅くなる矛盾。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(ちなみに ubuntu20.04 だと exports に async と書いても、disk write 完了を待つように見える謎…何だろう?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NFSv3/4のwrite/commitプロトコルが厳しすぎるのだよなぁ。 ローカルの write と同様のセマンティクス(サーバ側OSキャッシュに書ければOK)をデフォルトにした方が良い気が。 (NFSv2 は commit が無くて、個々のnfs_writeに不揮発デバイスへの書き込みを必須にしていたのに比べればマシだけれど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「kernel 5.15 → 5.17 に update すると nfsd の async が効くようになった。 手元で試した範囲では kernel 5.13~5.15 には NFS async が効かない問題がある様子。 > ubuntu20.04 だと exports に async と書いても、disk write 完了を待つように見える」 / Twitter
News
- 2018年6月20日 次世代メモリをターゲットに開発が進むログベースファイルシステム「NOVA」:Linux Daily Topics|gihyo.jp … 技術評論社
- Kazuho OkuさんはTwitterを使っています 「面白い。getdentsが0を返すまで呼び続ければ、全てのファイル名が取得できるんじゃないのかしら / https://t.co/gdkAsHVKu0」 / Twitter
- 旧ストレージ廃止大作戦−2900万超のファイルリストを取得する | PR TIMES 開発者ブログ
- Intel Releases DAOS 2.2 Distributed File-System - Phoronix
- 大文字小文字を区別するファイルシステムと区別しないファイルシステム、どっちがいい? | スラド ハードウェア
- Linuxサポートを拡大した「OpenZFS 2.1.3」が公開 | OSDN Magazine
- 2021年5月26日 F2FS,リードオンリー機能をLinux 5.14以降でサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
Twitter
- FadisさんはTwitterを使っています 「Linuxをinitramfsなしでbootする場合rootにはblock deviceを指定する。例外的にNFSかCIFSを使う場合アドレスを指定できる。ところがvirtiofsのようなblockではないけどrootfsにしたい物が増えてきたので、任意のblockでないfsをrootに指定できるようにする拡張が現れた話 https://t.co/7vF4fGpA4X」 / Twitter
- New Linux Patch To Allow Booting From Arbitrary Non-Block Device File-Systems - Phoronix
- FadisさんはTwitterを使っています 「ちなみにこの変更がなくてもinitramfsを経由してマウントすれば殆どのファイルシステムはrootfsにする事ができる。また、ユーザ空間デーモンが無いとマウントできない物はこの拡張を利用する事はできず、引き続きinitramfsでデーモンを動かさないとマウントできない」 / Twitter
- FadisさんはTwitterを使っています 「Systems 249からファイルシステム丸ごとアップデートがサポートされる話。この機能はsystemdがinitramfsで動いている等のsystemdがrootfsを選べる状況でroot=が指定されていない場合に、/usrを含みパーティションラベルが文字列比較で最大のものをrootfsにする https://t.co/mnpbVu5g7J」 / Twitter
- Systemd 249 Released With New Option For Simple Whole-File-System A/B Updates - Phoronix
- FadisさんはTwitterを使っています 「この機能は新しいrootfsを2つめのパーティションに書き込んで再起動する、組み込み機器でよくあるファームウェアアップデートを簡単に実現できるようにする」 / Twitter
- FadisさんはTwitterを使っています 「HSE 2.0がリリースされたらしい。HSE 1.0は専用のカーネルモジュールmpoolを使う事でファイルシステムのログを回避して性能を出すKVSだったが、mpoolはバニラカーネル入りできなかった為、2.0は通常のLinuxのファイルシステム上で動く普通のKVSになっている https://t.co/4DzX7ksFXt」 / Twitter
- Micron's HSE Storage Engine 2.0 Debuts - No Longer Relies On Linux Kernel Modifications - Phoronix
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにエントリの名前取得だけなら r-- だけでも。 (xは名前 → inode変換に必要)」 / Twitter
- 中村 実さんはTwitterを使っています 「Azure Data Lake Storage Gen2(ABFS)はファイルシステムに近いが微妙に違うなぁ。 UNIXのファイルシステムはディレクトリにr-x権限があれば、その下のファイルにr--権限がなくてもリスティングできるしfstatでファイルのメタデータは取得できる。」 / Twitter
- 中村 実さんはTwitterを使っています 「でもABFSはfstat的なAPIにそのファイルのr--権限が必要になるようだ。「ディレクトリの一覧には出てくるけど、ファイルのメタデータは取得できない」という現象が起きている。ニントモカントモ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なので、x-- だけのディレクトリの場合、名前をしってるファイルはそれ自体にrがあれば開けるし、xがあれば実行できる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおファイルのxは実行許可だけど、読めないと実行できないので、NFSサーバ側はxだけでもrと同様に読めてしまう。 (NFSクライアントが read をブロックする形)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「前方に上書き可能領域があるから、ロジックは比較的簡単に実現できるが、有効領域サイズ分のwriteは必要と。 昔からログファイルで有用な、サイズ指定ローテーション可能なファイルシステム欲しいと思うことある。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「1TBのストレージの中に入っている700GBのテキストファイルの先頭3億行を削除したいのだがどうすればいい?」 https://t.co/33NRL4WSbI」 / Twitter
- shell - How do I remove the first 300 million lines from a 700 GB txt file on a system with 1 TB max disk space? - Unix & Linux Stack Exchange
- FadisさんはTwitterを使っています 「mpoolがバニラカーネルに入りたがっているらしい。mpoolはblock deviceの上で動くオブジェクトストレージで、書き換えにコストを伴う近代的なSSDで性能を出せるようにfsより制限されたデータの操作方法を提供する。SSD向けのKVS HSEがバックエンドとして使っている https://t.co/fb2k2yH8Un」 / Twitter
- Micron Looks To Upstream Their Media Pool "Mpool" Object Storage To The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「HSEのような手法は「ハードウェアの構造化ログとファイルシステムの構造化ログは連携できない」という前提の上に成り立っているから、ハードウェアがより高レイヤーの操作(この書き込みは何の為の書き込み?)を理解するようになると、また事情が変わってくるんだよな」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.12でfsが激しく壊れる問題の原因が分かって修正が入ったらしい。スワップファイルのオフセットの扱いが壊れていて、スワップファイルを置いたパーティションの先頭にスワップへの書き込みが書かれてスーパーブロック狙い撃ちで雑なfsは即死、というオチだったらしい https://t.co/AP85yyuviN」 / Twitter
- Linux 5.12 Lands Fix For File-System Corruption Caused By Swapfile Issue - Phoronix
- FadisさんはTwitterを使っています 「@beepcap vfsを迂回して書きにくる奴がパーティションの先頭を破壊しても壊れないでいられるファイルシステムは、スーパーブロックを複数箇所に書いてるbtrfsみたいなバリ堅fsくらいだろうな」 / Twitter
- FadisさんはTwitterを使っています 「BtrFSがZoned Storage上で使えるようになった話。Zoned Storageではブロックデバイスは複数のZoneに分割され、Zone内は追記か全て削除しかできない。NANDを使うSSDやSMRで書き込むハードディスクにおいて使い方に工夫を要求する代わりにコントローラの負担を減らす事ができる https://t.co/4lrepCzT7n」 / Twitter
- FadisさんはTwitterを使っています 「BtrFSはCoWなfsで元々殆どの変更は追記にできるが、superblockに限っては書き換えられる必要があった。Zoned Storageには書き換え可能な特別なZoneを持つ物もあるが、複数箇所にsuperblockを置くBtrFSではここを利用するわけにもいかず、superblockを構造化ログで表現できるようにしたらしい」 / Twitter
- ファイルシステムを自作しています. - alphakai’s tech blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ディレクトリの実行権は、dir-entry に対して、entry名 → inodeへの変換権(namei)があるか、ですね。 ・r だけだと、entry名列挙はできるが、entryファイルにはアクセスできない。 ・x だけだと(entry名推測できれば)entryファイルにアクセスできる。 https://t.co/g4tITC5FGX」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「syscallやカーネルルーチン名のコマンドが徐々に増えた印象…昔は namei やstatコマンドは無かった気がする。 (namei は古からある name(パス要素名) -> inode番号変換の カーネルルーチン。dir の x権限はこの変換の可否) https://t.co/Lv43wHQf6V」 / Twitter
- 【 namei 】コマンド――ファイルパス中のディレクトリやファイルの情報を表示する:Linux基本コマンドTips(399) - @IT
- SODA NoriyukiさんはTwitterを使っています 「「すなわち、cdを実行できる」って書き方だと間違いなんだよなあ。 実行権限があればcdも実行できるけど、cdとは関係なくそのディレクトリのエントリへアクセスできるようにもなるわけで。 「たとえば、cdを実行できることなど」って表現ならOKなんだけど。」 / Twitter
- LPIC1用ボットさんはTwitterを使っています 「ディレクトリに対する「実行」権限は、ディレクトリに入ることができる(すなわち、cdを実行できる)ことであるが、「読み取り」権限がなければ、ディレクトリ内の一覧表示(lsの実行)はできない。 #lpic」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「UNIX系ファイル削除は unlink(リンクカウンタ以外はファイル実体に触らない) だが Windows は(内部的には)削除対象のファイルを開いて削除属性を付けて閉じる、という挙動…閉じた直後はまだエントリから消えない・そもそも開けないと削除できない、とか謎挙動が多すぎ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「謎挙動の原因のもう一つはこれ。 ---- 「NTFSは(inode的な)データをディレクトリエントリにもキャッシュするが、最新情報はファイルが閉じられたときにのみ更新(=開いてるファイル相手だと FindFirstFile が旧情報を掴まされがち)」 https://t.co/T2rJMNRLIr」 / Twitter
- NTFS - Wikipedia
- XFSで使った以上に容量が減るナゾ - 赤帽エンジニアブログ
UEFI
- The rEFInd Boot Manager: Using EFI Drivers
- Free Software EFI Drivers
- pbatard/efifs: EFI FileSystem drivers
- 日記 (2014 年 8 月下旬)
MS
PATH
PATH の正規化
- パス内の"."や".."を削除して、正規化する - .NET Tips (VB.NET,C#...)
- PathCanonicalize function - MSDN Search
- 軽減策: パスの正規化 | Microsoft Docs
- 8-1. Windowsパス名の落とし穴
- Windowsのパスがうまく指定\表示できない問題 in Python - ぴよぴよ.py
MAX_PATH
- INADA Naokiさんのツイート: "Pythonは10年以上かけてWindowsでwchar_tを使うように、ANSI APIを排除するように頑張ってきたけど、それが終わる頃に、WindowsがANSI APIでUTF-8つかえるようにする&パス長制限を外す動きを見せて、何もしなくてもUTF-8対応できたんや…ってなりそう。MSの動きが10年遅いんだよ。。。。"
- About Unicode Enabling Applications and Code Pages – Windows Embedded Standard (Standard 7, Standard 2009, XPe…)
- GetFullPathName function (Windows)
- Naming Files, Paths, and Namespaces (Windows)
- CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita
- Windows で長いファイル名のファイルがあるフォルダに対して、ワイルドカードを使うと落ちることがある · Issue #675 · vim-jp/issues
- .NET Framework 4.6.2 を発表 – Visual Studio 日本チーム Blog
- More on new .NET path handling – Jeremy Kuhne's Blog
- Maximum filename length in NTFS (Windows XP and Windows Vista)? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(1607)以降、レジストリ変更(LongPathsEnabled)すると、MAX_PATH制限が無くなる=システム全体の変更。 こういう制限は、アプリのマニフェスト定義でオプトインの形の方が望ましい気がする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "読み足りなかった。マニフェストに longPathAware を追加すれば、アプリ単位設定できる、とある。 https://t.co/rLxJ5bYraW (一方で、システム設定変更とマニフェスト追加の両方を行わないと有効にならない、と動作結果を報告しているサイトもあるな…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、\\?\ の場合の文字列上限に関する、最新と昔の記述の違い。 昔は「nearly 32,000 Unicode characters long」というアバウトな数字だった。… "
- Naming Files, Paths, and Namespaces (Windows)
- Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs
- ファイル、パス、名前空間の名前付け - Win32 apps | Microsoft Docs
ファイル時刻
- GetFileTime function (Windows)
- FILETIME structure (Windows)
- SetFileTime function (Windows)
- c - How do I get the file HANDLE from the fopen FILE structure? - Stack Overflow
- _get_osfhandle | Microsoft Docs
- _get_osfhandle - RAD Studio
- _fileno | Microsoft Docs
- _fileno - RAD Studio
ストレージ
- Disk Management Reference (Windows)
- Distributed File System Reference (Windows)
- Extensible Storage Engine Reference
- File Management Reference (Windows)
- Offline Files Reference (Windows)
- Packaging API Reference (Windows)
- Remote Differential Compression Reference (Windows)
- Transactional NTFS Reference (Windows)
- Volume Management Reference (Windows)
- Windows Storage Management Provider (Windows)
- hitoさんのツイート: "CVE-2018-6557を見て、symlink restrictionの有効性に久しぶりに感動している"
- Create symbolic links (Windows 10) | Microsoft Docs
- Symbolic link - Wikipedia
- NTFS symbolic link - Wikipedia
- Symlinks in Windows 10! - Windows Developer BlogWindows Developer Blog
- ASCII.jp:Windows 10 RS5で改良されたファイル名の大文字/小文字の区別 (1/2)|Windows Info
- Shirouzu Hiroaki(白水啓章)さんのツイート: "と思ったが、このフラグはXP以降デフォルトでは無効らしい(レジストリ設定がある)。 で、WSL用にWin10で、ディレクトリにこのフラグを設定する例外を増設したという話…付け焼刃感強い&わかりづらすぎる。 https://t.co/rbsSnStKz5"
- Enable or Disable Case Sensitive Attribute for Folders in Windows 10 | Tutorials
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に言うと、Windowsはopenやgetattr系の命令は同期なので(read/writeはasyncあり)、特にSMB3以降で、open/getattrをマルチスレッド化すると効果大。 (だが explorer はそれをやってない様子) https://t.co/bAVs9YmwHN」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya smbはopen/closeが同期かつ遅い、という印象はありますね。 逆に、nfsだとopen/close自体が無いのと、readdirplusでreaddirのついでにエントリのfh取得まで出来ます。 ただ、それ以外の話もありそう、、、sambaはユーザーモードですし。」 / Twitter
- \と¥の問題 - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ
- ASCII.jp:Windowsにおけるフォルダーとディレクトリとは (1/2)
- ASCII.jp:Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? (1/4)|Windows Info
- WSS Overview - NTFS.com
Project Zero
- Project Zero: Windows 10^H^H Symbolic Link Mitigations
- Project Zero: Between a Rock and a Hard Link
- Project Zero: The Definitive Guide on Win32 to NT Path Conversion
- Project Zero: Windows Exploitation Tricks: Arbitrary Directory Creation to Arbitrary File Read
@shirouzu
その他
RAID
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「64GB/s な RAID を使っている方が居られた。 こちらも用意しないとダメかな。 https://t.co/jdeJn5fTsz」 / Twitter
- Performance similar to DiskSpd · Issue #134 · FastCopyLab/FastCopy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「RAID 相手だと command queueing で非同期I/O するだけではダメで、単一ファイルにマルチスレッドで、複数個所のoffset から I/O した方が性能が伸びる可能性があると。 (単一HDDでやると酷いことになるパターンなのだが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「でも Win32 API がまともな作りなら、非同期I/Oによる重畳数を増せば良く、単一HDDでも問題が少ない解決になるはずなのだが。」 / Twitter
時刻
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32のSYSTEMTIME構造体はミリ秒が最小単位。 だが、Win8以降、GetSystemTimePreciseAsFileTime という100ns単位のAPIが増設され、実効的には1usの精度のUTC時間が取れるようになっていた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIXのファイル時間は秒単位の時代が長かったが、最近はns単位が普通となった。 以前は、samba経由で保存すると(100ns単位が)秒単位に丸められてしまった。 今は、samba経由で保存すると、100ns倍数のmtimeとなり、samba経由で保存したファイルだね、とすぐ分かるように(笑)"
- SODA Noriyukiさんのツイート: "あれはLinuxのext2fsがウンコだっただけで、1990年代前半くらいにはffsを採用しているOSならばファイルシステムのフォーマット的にはミリ秒(SVR4)ないしナノ秒(*BSD)、解像度的には 10ms くらいにはなってました。ext2fs だけはファイルシステム的に秒単位だったので、だいぶ不便でしたが。… https://t.co/LsrXxpYO5z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 あとは、samba側が長らく秒単位のstat/utimeを使っていたから、というのもあったのかもしれませんね。(昔、SolarisやHP-UX上のsambaでも、長らく秒単位だった記憶があるので)… "
- SODA Noriyukiさんのツイート: "なんと。SVR4 の場合、stat(2) でも st_mtime は「# define st_mtime st_mtim.tv_sec」で定義されていて、tv_nsec が使えたんですが、Samba 側が使ってなければどうしようもないですねえ... 僕はずっと UNIX native の開発ばかりしてたので気づきませんでした。… https://t.co/juPB5wvdiE"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Solaris7/8時代のmanを検索してみましたが、tv_nsecの件、見当たらないですね…statがtimevecも入れた構造体に拡張されると、statのABI互換が無くなると思うのですが、timevec対応statには別syscall番号を振る、みたいなことをしたんですかね。 https://t.co/0WtgsRlw8i… https://t.co/AcDQIe6iIC"
- SODA Noriyukiさんのツイート: "4.0BSDではダメですが少なくとも 4.2BSD くらいには tv_nsec 分の領域が struct stat にリザーブされていたので https://t.co/0QatkejSe6 Solarisの場合、ABI問題はないんですよ。… "
- SODA Noriyukiさんのツイート: "AT&T 3b2用のピュアなSVR4の場合、 ユーザーランド: !defined(_STYPES)ならばユーザランドはデフォルトでtv_nsec用の領域がある カーネル: システムコール番号18,28,88が昔からのstat(2),fstat(2),lstat(2)、123,124,125がtv_nsecつきのxstat(2),lxstat(2),fxstat(2) でした。… https://t.co/OzUDHKxenR"
- SODA Noriyukiさんのツイート: "Solaris の方を見ると、システムコール番号18,28,88が st_nsec つきのインターフェースになっていて、 123,124,125は別のシステムコールになってますね。 https://t.co/Wb44d4q1Sw… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "確かに、各timeにreserveだかspareだかという記述なら、SunOS4.1.2時代のヘッダにも、それっぽいフィールドが載っていたような気も…。 ABI的には大丈夫だったのですね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの比較表。 ext4でようやく生成日時を保存するようになった様子だが、stat(2)側の問題で、Birth timeは空のまま。 https://t.co/QHYYiPleVL… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ext4のinodeを直接漁れば、生成日時は取れるらしい。 そういえば、UNIXのctimeはちょっと変わってる印象。 (atime以外の)inode修正日時の保存し、syscall経由では変更不可、というのは解析やセキュリティ用途を意識したものだったのかしらん? (たしかに調査用途に使ったことがある)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "timevecじゃなくてtimespecだった。 この構造体はいつ頃定義されたのかしらん。 (初めて意識に上ったのはnanosleepを使おうとした2000年くらいだったか、あまり昔という印象が無い)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho Win32API経由でOneDriveフォルダ(WebDav)を操作すると、CreateFile -> WriteFile -> SetFileTime -> CloseHandle だと SetFileTime が反映しない・ローカル側が消えると秒粒度になる等で、使いづらい面はありましたね。 (OneDrive(WebDav client)実装側の問題かも)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。LAN用のファイル共有プロトコルから離れると、細かな問題はいろいろありそうですね」 / Twitter
セキュリティ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は、共有ドライブルートのACLは読めなかったと思うのだが、Win10で試すと問題なく取れるようになってるなぁ。 共有ドライブルートの場合、GetFileAttributes APIすらエラーになっていた記憶があるのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsドメインでのACLの扱いは、NT3.5時代にドメイン管理していた頃の知識のままだなぁ。 ローカルグループ同士は入れ子構造にでき便利だったが、サーバ側ドライブのACLで使えない。ドメイングループは入れ子表現できず、適切なACL表現にするのに苦労した記憶…今はそんな縛りは流石に無いのかな?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CreateFileにACCESS_SYSTEM_SECURITYを立てると、BackupReadでもSACLを取得できるとは知らなかった。 でもこのフラグを立てたCreateFileはAdmin必須でsambaではエラーになる。local + admin の場合のみ有効にするかな…。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.62をリリース。 ACLオプション動作の拡張(管理者権限でローカルNTFS(or ReFS)間のコピーでは、DACLだけでなくSACLもコピーするように) https://t.co/L7jJavdtio #fastcopy"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsでEAを使うには、ZwSetEaFileというドライバー用APIのユーザランド版をntoskrnl.dllからGetProcAddressして使うしか無さそうに見える。 https://t.co/4Y9332b9lq"
- ZwSetEaFile routine (Windows Drivers)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32/NTFSって、chmod 600 としたいだけでも、これだけ手順必要。 (多機能=典型的な設定すら大変な作業に…典型的なダメデザイン) https://t.co/5J7695dCnB」 / Twitter
- Win32API セキュリティ属性を指定してファイルを作成する - s-kita’s blog
ディレクトリ削除
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsのディレクトリツリーの削除が、POISIX的な削除ではうまくいかないという話。 (DeleteFile直後は dir-entry的から消えてないが、MoveFileだとentry消えるから、tempにfile-moveしてのempty-dir削除の方が確実と。悪夢だ…) https://t.co/eNtfzFKvGn https://t.co/bDzkL5a61x」 / Twitter
- fs::remove_dir_all rarely succeeds for large directories on windows · Issue #29497 · rust-lang/rust
- CppCon2015/Racing the Filesystem - Niall Douglas - CppCon 2015.pdf at master · CppCon/CppCon2015
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyではこの現象に出くわすため、RemoveDirでエラー発生時はNotification系APIでイベント待ちのループでリトライしてるのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「コマンドプロンプトから標準コマンドを使っても、問題を起こすので、皆のtipsが寄せられるの巻。 (リトライとか移動とか。大した解決策はない) https://t.co/pVQxIeD2oK」 / Twitter
- windows - How to solve "The directory is not empty" error when running rmdir command in a batch script? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FindFirstFile等で得るファイル属性値と、ファイルハンドルから直接GetFileInformationByHandleで得る属性値が異なることがあって、NTFSがファイル情報を dir-entry と file-slot に二重持ちをしているのか、OSが最新でないキャッシュを握って返すのか分からないけど、この辺も妙なのは確か。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ の std::remove_all を見ると、やはりリトライしてるのだけど、最下部で Undocumented なパラメータを使った、SetFileInformationByHandle() を呼んでる…うーん、いつもながらのMSスタイル(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この辺の話。 https://t.co/YQWskLCgKg」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ読むと、VC++ の std::remove は Vista以降だと何も考えずに SetFileInformationByHandle を発行していて、DeleteFile/RemoveDirectoryは使ってない。(フォールバックすらしない) あとXPにはSetFile...は無いので、とりあえずRemoveDirectory発行してダメなら DeleteFileと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際の VC++ STL用ライブラリソースはこちら。 https://t.co/MAgVCURokh それを呼び出してるSTLヘッダ側はこちら。 https://t.co/4Ai75IT1kK」 / Twitter
- STL/filesystem.cpp at master · microsoft/STL
- STL/filesystem at 2914b4301c59dc7ffc09d16ac6f7979fde2b7f2c · microsoft/STL
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆に最新の Win10なら、SetFileInformationByHandle(FILE_DISPOSITION_FLAG_POSIX_SEMANTICS) が増設されたことで、Dir削除がnot emptyでエラーになる呪いが消えていたりする…?(要検証) (これ、元々はWSLのために作られたのかしらん?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で簡単に試した範囲では、同一プロセス内で create/unlinkがシミュレートできるようになっただけだった。やれやれ。 (別プロセスが開いたファイルは相変わらず ERROR_SHARING_VIOLATION が出る)」 / Twitter
direct I/O
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういうレポートは有り難い。 https://t.co/mOLcjcLzn4」 / Twitter
- Results of using FastCopy in an LTO Drive environment. - Google グループ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1ファイル毎にヘッドが戻る現象、ftruncateが効いているのか、SetFileTimeが効いているのかだろうなぁ。 前者なら対処は可能だが、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「direct I/Oで用意するバッファ、セクタ単位必須(&アライン)なのはいいけど、末尾書き込みサイズは非セクタ単位をサポートしてほしいところ。 実際、読み込みではその仕様だし、、、書き込みと非対称。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、direct I/Oで末尾のセクタ単位未満のアクセス。 別スレッドで観察すると、末尾以降にディスクのゴミデータが一瞬現れた後にゼロクリア、なんてことが起きてないか、ちょっと気になったり。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IO前に、mmu/pte的に当該ページ群をユーザランドから無効化してそうだな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「太古のUSBだと Direct I/O や Async I/O でバグるのものあるのだよなぁ。 (あと XP時代のRDP Drive共有で Async I/Oで書き込み場所が狂うという豪快なのも…Async I/O = offset位置明示APIにもかかわらず)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista あたりから Async I/O、Win8.1くらいからDirect I/Oを 標準Explorerでも使っている様子で、それ以降は枯れてきた感じある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、Linuxでも Async I/O が枯れてない話があった記憶…最近は io_uring も充実してきたので、状況変わったかな?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば Win32のDirect I/Oは(末尾も含めて)必ずセクタサイズ粒度要求だけど、戻りはreadに限って末尾サイズにtruncateされてくる。 この時、別スレッドからメモリ監視してると、一瞬ゴミ部分(末尾以降のセクタデータ)が参照される穴はないのかな?と思ったことある。(非directで回避?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あとWin32でも、キャッシュ存在時はキャッシュを読み、無い時だけ Direct というフラグが欲しいところ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で試した範囲では、そんな穴は無い様子(当たり前)。 片方スレッドではFILE_FLAG_NO_BUFFERING でDirectIO、もう片方では _mm_clflushoptでキャッシュを無効化しつつゴミ部分メモリを参照する無限ループ。 >一瞬ゴミ部分(末尾以降のセクタデータ)が参照される穴」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、正確には末尾のゴミ領域も転送してる様子。 ただしファイル作成時に、セクタ未満にtruncateした時点で末尾ゴミ領域は0fillされると。 従い、転送してるが無害というオチ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、BSD系ffs的なフラグメント処理(tail packing)だと使えない手だけど、NTFSは(ext系も)それをしてない故に使える手と。 下記を見ると btrfs と ufs2 はそれをサポートしてるらしい。(その場合 Direct IOで末尾用の小細工要ると) https://t.co/63gNuJmcOb」 / Twitter
- Block suballocation - Wikipedia
非同期 I/O
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SetFileIoOverlappedRange は面白そうなWin32APIなのだが、Vista時代にSQL Serverでデータ破壊バグがあったのが少し気になる。 https://t.co/9PPX3QyYef https://t.co/sJLCdtJKU3」 / Twitter
- SetFileIoOverlappedRange function (fileapi.h) - Win32 apps | Microsoft Docs
- SQL Server data corruption when a memory range is accessed by the SetFileIoOverlappedRange function and an I/O operation in Windows Vista, in Windows Server 2008, in Windows 7, or in Windows Server 2008 R2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このAPIは非同期I/Oするにあたって、事前に物理メモリロック範囲指定をファイルに紐づけて行うことで、I/Oごとの細かく個別ロックするカーネル処理がスキップできる、というイメージかな。 (手元で簡単に試した範囲だと、複数ファイルで同一領域しても大丈夫そう)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy で仮想メモリ→物理メモリロックで、時折遅い状況が出る、などがあれば改善できそう。 ただよほど巨大バッファ指定(GB越えとか)でなければ、普通は1周すれば物理メモリに乗った状態になるので、普通はそんなに変化無さそう。 (バッファにGB超指定しても、意味ある環境あるかな…)」 / Twitter
代替ストリーム
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そろそろ BackupRead/BackupWriteは全廃した方が良いかもしれない。」 / Twitter
- サブストリームも含めてファイルのコピーを行う - わびさびサンプルソース
- NTFS代替ストリーム | Netsphere Laboratories
- FindFirstStreamW function (fileapi.h) - Win32 apps | Microsoft Docs
- FindNextStreamW function (fileapi.h) - Win32 apps | Microsoft Docs
- バックアップ アプリケーションの作成 - Win32 apps | Microsoft Docs
- BackupRead function (winbase.h) - Win32 apps | Microsoft Docs
- BackupWrite function (winbase.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても今更、Win10でNTFS周りの微妙な挙動を変えてくるとは感。 f=CreateFile("A"); fa=CreateFile("A:alt_stream"); WriteFile(fa); SetFileTime(f); の場合、Win8.1以前では、最後のSetFileTime前にCloseHandle(fa)をしないとその日付変更が効かない罠。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに何故 SetFileTime(fa) としないのかと言うと。ローカルやWindows同士なら実はそれでOK。 だがsambaでは(内部実装的に)alt_stream は別ファイルなので、SetFileTime(fa) は alt_streamファイルのタイムスタンプが変わるだけというオチになるのだよね。」 / Twitter
histric
histric-1
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy実験。 削除をマルチスレッド対応にすると、ネットワークドライブの削除(小さなファイル群)で2.5倍の速度が出るようだ。 (ローカルドライブでも、1.5~1.8倍くらいのレートに)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルドライブの単一ファイルシステム内の並列削除でも、マルチスレッドで高速化している。 OSファイルシステム処理(NTFSドライバ&キャッシュマネージャ)が、きちんと並列処理している現れで、興味深い。 (=MFT処理でジャンボロックなどしていない、ということ)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "本当はwin32に、asyncなopen/delete apiが欲しい。"
- Ryota Shioyaさんのツイート: "Windows 上のファイルの削除ですと,先に全部ファイルを消してから次にディレクトリを消すと妙に速くなると言うのを以下で見て,実際やってみたらその通りだった記憶があるのですが,このあたりって何か関係あったりするんでしょうかね https://t.co/dUbeTuLfzA… https://t.co/bXc0f8WfP8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "どうなんでしょう? 手元のWin10(17134)で、HDD/SSDで数万~数十万ファイル程度の削除を何度か確認した範囲では、rmdir単体より、del + rmdir の方が速い、という傾向は出ないみたいですね。 XP~Win10のどこかで、処理が変わったのかもしれません。… https://t.co/2VRWenxYJb"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSファイル削除は、ブロック解放($Bitmap変更)、当該ファイルスロットの無効化(MFT自体の変更)、direntryの削除(B+treeのリーフ削除?)といった(あとジャーナル($LogFile)もかな)、あちこちにアクセスする話なので、それらの物理配置も強く影響しそう。(つまり作成時の状態に依存)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "高速なファイル検索のためには、先に空ファイルを全て作った後に、ファイル実体を作った方が、dir-entryの物理配置が集約するので良い、という話もあったり。 (いかにB+treeでも、物理ブロックが飛び飛びになると遅くなる)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、SSDだとディレクトリのフラグメントはもう気にしなくていいかもしれない。(未計測だが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "削除多重度を上げるため、全ファイル非同期削除→全ディレクトリ削除、という2フェーズ削除を実験してみたが、これはHDD上では逆効果だった。 (別ディレクトリエントリ間の並列動作=ヘッドシーク多発、となった可能性あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSにバックアップ(FastCopy)すると「CreateHardLink(この要求はサポートされていません。50)」が大量に出ていた。 何だろうと思ったら、ReFSはハードリンクをサポートしていなかった。ReFSがシステムドライブに使えないのが理由の一つが良く判る(WinSxSには大量ハードリンク有り)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルNTFS相手でも、多数のCreateFileをマルチスレッド化すると目に見えて高速化するのは想定外だった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32サブシステムは、ファイル名の大小文字("A"と"a")を同一と見なすが、いわゆる全角の大小文字(「A」「a」)も同一とみなす…ちなみに「あ」と「ア」は別。 (なお、NTFS内は区別していて、POSIXサブシステム経由だと別扱い)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTCreateFileを使うと、openat()相当の動作が可能になる。 ただし、そのハンドルはNTxxx系APIでしか利用できない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FAT32内のキリル文字ファイルをD&Dすると、FindFirstFileExW()で ERROR_NO_UNICODE_TRANSLATIONが発生する謎、しかもコマンドライン起動の場合は発生しないとのこと。 W系APIの中で、MBCS変換している?謎だ… https://t.co/FwWfW0lFp8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinAPIというより、システムコールと呼ぶべき、NTCreateFileを使うと、openat相当の技が使えるようになる…今計画している拡張にはすごく欲しいな。 (計画だと、パスデータのメモリコピーが多く発生しそうなのだが、それを一気に減らせる)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GetVolumeInformation、Win7以降からようやく、FileSystemFlagsにまともな値が返ってくる様子。 (ただし、この値を信用するとXP/Vistaでまともに動作しなくなる。起動すら不可、にしたら使う感じかな)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。ちょっと補足すると、 ・Transactional NTFS は事実上obsolete。 https://t.co/Ff9lb6vR4u ---- 「Windows のファイルのコピーは、驚くほど奥が深い」 https://t.co/O0fi9TiORc"
- Transactional NTFS (TxF) - Windows applications | Microsoft Docs
- 登 大遊 - Windows のファイルのコピーは、驚くほど奥が深い。 Windows... | Facebook
- Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに補足。 ・ファイル拡大でゴミを読み取る可能性があるのは、SetFilePoiter+SetEndOfFile ではなく、SetFileValidData(管理者権限)を使用した時だけ。 (NTFSで)前者で領域確保のみを行い、ReadFileを行うと0データが返る。 初めてWriteした時点で、0~書込位置にゼロfillが走る。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なおFAT系の場合、書き込み時ではなく、領域確保時点でゼロfillが走る。 NTFSの挙動は extent方式の特徴。extent管理領域に「未書き込み」フラグを立てておき、読み込みで0を返す、という技が使える。 (ext4も同様で、ftruncateによるサイズ拡大が一瞬で終わるが、ext3だとゼロfillが延々走る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "下記は、一応昔ながらの BackupRead という手はあるかも。 >「Win32 SDK の API ドキュメントを見渡したが、NTFS のアクセス権限を無視した代替ストリームの列挙を可能とする API は 1 つも存在しなかった」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、SetFilePointer+SetEndOfFileは実領域確保が約束されているわけではなく、samba ではsparse fileとなり、これを避けるには(お勧めは出来ないが)SetFileValidData を使えばいけたはず。 (ただ、このAPIはfallocateに翻訳されるため、ext3だと延々zero-fillになる問題が出る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、登さん、良く調べてるなぁ。さすが。"
histric-2
- Shirouzu Hiroaki(白水啓章)さんのツイート: "もし一般権限でファイルサイズ拡大だけで、全ユーザの削除データを読み取れるなら、ACLなど無意味な特大セキュリティホールのような…… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。 ドキュメントに保証する記述が無いのは、そのためと。 https://t.co/fE5alE9v4y"
- On the various ways of creating large files in NTFS | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: ""NtSetInformationFile extends the file and pads the extension with zeros." とあるので、NT系ならNTFS以外でも0fillを期待して良さそう。 https://t.co/HIOONRG02K"
- NtSetInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この件で、久々に「Windows NT ファイルシステム詳説」を見たのだが、あまり役に立つ情報は見つけられなかった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、昔の記憶にあった通り、「NTキャッシュマネージャ」は単なるキャッシュ以上の動きをしていることを確認できてよかった。 (場合によって、ファイルシステムドライバ側の領域拡張命令を呼び出したりする)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは正確でなかった。 WindowsNTファイルシステム詳細を参照すると、(ext4やxfsと違い)未書き込み管理はextentに保存していない。 ValidDataLengthという8byteの属性のみで、そのため、先頭からnバイトまで有効なデータ、という情報のみ=末尾writeすると、先頭~末尾0fillを行う必要が出る。"
- 鯉江さんのツイート: "ちなみにext4とかだとエクステント内に穴があくときはどうなるんでしょう?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そんなことは無かった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GetFullPathNameW、パス途中にショートファイルな要素が存在すると、fnameポインタがNULLになる、というバグ的挙動があるな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この関数「マルチスレッドでは非推奨」とあって驚く。 static buffer類は使ってないのに何故?と思ったら、「C:だけ指定するとカレントディレクトリを埋めて戻す」機能があり、別スレッドがcwdを変えると問題になるから、というオチだった。なんだそれ感。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ふーむ、IO_REPARSE_TAG_LX_SYMLINKって知らなかった。 https://t.co/HCp71rLXsL"
- ツッコミどころいろいろ (#3611861) | Windowsにおけるファイルコピーに関する驚くほど複雑な注意点 | スラド
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SHCreateItemFromParsingName APIに対しては、たとえMAX_PATHを超える場合も、\\?\ を付けてはいけない謎tips。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それはいいのだが、8.3文字変形される(=longpathではMAX_PATHを超える)場合、ファイルダイアログ系&ドラッグ&ドロップで、非ASCIIパス要素が化けるバグがある様子。 たとえば「あいう」が「B0D0F0」に化ける。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(17763)でLongPathAwareを有効にしなくても、ファイルダイアログ系で(バッファ指定を大きくすると)MAX_PATHを超えるパスを格納してくる様子。 パス要素8.3文字化でMAX_PATHに収まるときはその形。それでもMAX_PATHを超える時は \\?\ を付加して通常パス名で格納というハイブリッド動作。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、マニフェストでlongPathAwareを有効にすると、そもそも8.3文字変形が無くなるため、この問題は消える。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32では、Symlink / Junction / Mount-point はいずれも「リパースポイント」という枠組みで実装されている。 FastCopyではリパースポイントをリパースポイントとして複製しているため、新しい種類のリパースポイントが現れてもそのまま動作するはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、リパースポイントにもカテゴリーがあり、DeDupやHSM(階層化ストレージ)用のリパースポイントだけは実体をコピーするようにしている。 具体的には、IsReparseTagNameSurrogateで識別する。 https://t.co/E4AEELiaOm"
- IsReparseTagNameSurrogate macro (winnt.h) | Microsoft Docs
histric-3
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、Win10(17763.475)上で、マニフェストlongPathAware(&レジストリLongPathsEnabled)を有効にしても、Drag&Drop経由では ShortPath換算MAX_PATH以内のファイルしか受け取れない様子。 (DragQueryFileWで MAX_PATH以上のバッファを指定しても無効)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ManifestでLongPathAwareを組み込むには、Win10SDKのmt.exeが必要。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「MSさん、FILE_SHARE_DELETEを作った時にUNIX的挙動に寄せなかった理由は何だろうなぁ…まったくもって使いづらい。 (大昔と違って)開いていてもリネームは可能なので、それで凌ぐことが多い。(インストーラで、コピーしたいファイルが開かれている時など) https://t.co/pOOus50ERd https://t.co/YiOxt1mLTJ」 / Twitter
- 消えないファイルの話 – JAPAN Platform SDK(Windows SDK) Support Team Blog
- mattnさんはTwitterを使っています: 「提案している人達は FILE_SHARE_DELETE を付け足す事で logrotate を実現したいという話だけども、Windows の FILE_SHARE_DELETE は UNIX のそれとは違う。これは issue の中のC言語のコードでも実証した。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昨年から fsutil file setCaseSensitiveInfo dir-path enable とやると、WSL配下以外でも大文字小文字を別ファイルとして扱うように、という今更迷惑千万な改変。 API的には NtQueryInformationFile(FileCaseSensitiveInformation) という隠しAPI的な呼び出しが必要。 https://t.co/9mIoB1292f」 / Twitter
- NtQueryInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32APIのUTF8拡張を、システムグローバルなコードページ(日本だとSJIS/CP932設定)をUTF8に変更で実現もそうだけど、とってもセンスがない。 (APIの場合、やるならUTF8専用API(=主にW系APIのラッパーで良い)の追加が最もスジが良い方法)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「何と、この問題が起きるのは FindFirstFileExW だけであり、FindFirstFileW では問題なかった。 MSさん、一体どういう実装しているのかしらん…? https://t.co/Rm1VAZ6MUB」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いい加減な情報を返すことがある FindFirstFile系… ---- 「本当に最新情報が欲しい場合は GetFileInformationByHandle を使え」 https://t.co/RnvYvsd0en」 / Twitter
- FindFirstFileExW function (fileapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSの副次ストリーム(ADS)の上限数が、ストリーム名長合計に依存する話。 副次ストリーム名は$ATTRIBUTE_LISTに含まれ、$ATTR…のサイズ上限は256KiB(&UTF16で格納)。 https://t.co/D5Utjev1J6」 / Twitter
- How many alternate data streams can a file have? - Colin Atkinson's Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SSD/NTFSで、10並列CreateFileすると、CreateFileプロセスよりMsMpEng(Windows Defender)がCPUの殆どを消費してしまう…これをOFFにすると10倍くらいCreateFile速度が延びる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GetDiskFreeSpaceWはドキュメントと違い、途中dirでも情報取得できる模様。(実際そうでないとジャンクション等で困る) https://t.co/JO3ALotTaK」 / Twitter
- GetDiskFreeSpaceW function (fileapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、GetFileAttributes等のfileattrに 0x100000 という undocumented な値が取れてしまう。 調べてみると最新のwinnt.hに FILE_ATTRIBUTE_UNPINNED という値が増えていた。(ただし説明無し。クラウド上ファイルをローカルに常駐させるかのフラグっぽい) https://t.co/VUwGZzsUSM」 / Twitter
- What do new Windows 8/10 attributes mean: No scrub file (X), Integrity (V), Pinned (P), Unpinned (U) - Super User
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy英語掲示板で、アーカイブビット(変更があると1になる属性bit)を利用したバックアップできると良いなぁ、というご意見。 今時でもコレを利用したバックアップって、メジャーなのだっけ?」 / Twitter
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「弊社ではまったく扱った記憶がなく、、どちらかというとAcronisとかのバックアップソフトが活用するメタなのでは?と思ってたり」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「タイムスタンプ&サイズ」が無変化だが、実は変更有だとアーカイブビットの意味ある…だがその状況はかなりレア。 (mmap中のメモリ経由更新はその類い。ただmmap中ファイルはバックアップする意味ほぼない)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Ext4 の Case Insensitiveモードって、Windowsとのファイル交換トラブルを減らすために作られたのかしらん? ちなみにWindowsだと、日本語ファイル名の「A」と「a」も同じ文字扱いと知っている人は少なめ。」 / Twitter
- 概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu ちゃんと追ってないけど、考慮不足な気がするんですよね。Sambaの下敷きとして使うときにcase insensitiveが欲しくなるのはそうなんですが、そういう時には厳密にMS互換の動作をしてほしくて、Unicodeルールで処理されてもうれしくないと思うんですよ」 / Twitter
- UnagiさんはTwitterを使っています 「うお。全角 A a が同じなの今まで気付いてなかった。試してみると macOS もそうなのね。」 / Twitter
histric-4
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「動作が奥まで見えていると、無駄・並列化可能部分が判るのだろうなぁ。 16年前にFastCopy設計した時も、src/dstは別物理HDDなら並列化可能(逆に単一HDDなら大きなバッファ単位で切り替え動作が良い)、OSキャッシュは利点無いので回避、といった知見の積み重ねだったな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「>OSキャッシュは利点無い 大量のコピーやバックアップ的な動作では、srcやdstに溜まったキャッシュは、次々発生するコピーによって置き換わって再利用されず、しかも他のプロセス/ファイルの物理ページもLRU的に侵食していたのだよね。 (なお最近のWin10は置換ロジックが少し改善されたのだが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお UTF-16で数えた文字数なので、ANSI API+漢字だと 260バイト=130文字とかになる。 なお、OSレジストリ変更+アプリmanifest(longPathAware)+アプリ側で MAX_PATH超に対応、を満たすより、FastCopyのように内部で \\?\ 付与して MAX_PATH超対応する方がOS ver縛り無くて汎用性高いのだよな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyのベリファイは、OSキャッシュ排除は FILE_FLAG_NO_BUFFERING で排除してるが、デバイスキャッシュの影響も(なるべく)排除すべく、全コピー完了後にベリファイモードに移行する形にしてる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これに FILE_FLAG_WRITE_THROUGH を追加設定すると ReadFileでもCDB(SCSI/SATAコマンド列)にFUA(メディアI/O強制)ビットが設定されている、とのこと。へぇ。 (ただし効果があるかはドライバ依存) https://t.co/CK1KWGjZMR」 / Twitter
- How to verify file write to a physical hard disk — OSR
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10以降は I/OサイズとQueueの調整をやり直した方が良いかもしれない。 (あと OS Cacheの使い方が随分改善されてる)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと非同期I/O の Queue の数が10を超えてくると、転送レートが改善しない割に、HDD負荷が上がるだけになりがち。 (とはいえ、ネットワークI/Oだと効果高い)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NCQって、転送レート以上にHDD負荷を高めがちなのかしらん?(HDD種類に依存?ともあれ連続領域のNCQ20~40個でアップアップとか限界低すぎ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「OneDriveフォルダ内でクラウドのみ実データがあるファイル。 FastCopy で読もうとすると ReadFileエラー(5:access denied) となり、特権昇格では OpenFileエラー(395:Access to the cloud file is denied) となる。 (とはいえ、わざわざ download させる動作も頂けない)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「R.チェン氏によると FILE_FLAG_WRITE_THROUGH は( FILE_FLAG_NO_BUFFERING と違い)メディア書き込みを強制しているとのこと。 (別資料では、前者はメタデータflushも強制) ---- https://t.co/3QrfIw4d11 https://t.co/zud6jgXQ0C」 / Twitter
- On the interaction between the FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH flags - The Old New Thing
- We're currently using FILE_FLAG_NO_BUFFERING and FILE_FLAG_WRITE_THROUGH, but we would like our WriteFile to go even faster - The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(こういう詳細情報は、公式API資料に載ってないのだよなぁ…ソースも公開されてないので、こういう情報に頼らざるを得ない。あ、過去にリークされたOSソースを調べる手が無くもないか)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「後者のブログだと、SATAドライバがしばしば write through(FUA) を無視する作りのために NTFSのジャーナルログすら壊れることがある、と。 ATA‑7(2005) 以降でFUAの正確な規定が入ったが、安価HDDが全対応でもないと。FlushFileBuffersはFUAではなくFLUSHCACHEで古来でも安全 https://t.co/240gdaoit5」 / Twitter
- Forced Unit Access (FUA) and Write‑Through
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「HDDを容量一杯まで使い切ろうとする人が意外と居て驚く。 HDDの残り10%、できれば残り30%は使わない、くらいのつもりでいないと、性能ががっくり落ちるよね。 (HDD自体の線速度低下、平均シーク距離増大、ファイルのフラグメント増大、と良い事無しに)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(「4.3BSDの設計と実装」には、残り10%はrootしか使えない縛りが書いてあったけど、今時でも有効なのだっけ?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win11、未だにsymlink作成に特権居るのね(デフォルトでは)。 junction はデフォルト許可なのに意味が判らない。」 / Twitter
- NeedCurrentDirectoryForExePathW function (processenv.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「CreateProcess API説明には NoDefaultCurrentDirectoryInExePath は未だ載っていない様子。 増設されたっぽい NeedCurrentDirectoryForExePathW API 説明には、呼び元が検査として上記環境変数を調べるのは悪手で、このAPIを使えとの解説も。 https://t.co/gNwdInNZks」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM用ボリューム(DAX)では(原理的に)NTFSの様々な付加機能の多くが使えないと。ふむ。 (インサイドWindows 7th下巻から) https://t.co/dxXIP7d0EL」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「@shirouzu なんと! やはりインサイドWindows 第7版は必修ですね。 そういった制約が出てくるとは・・・」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ReFS内部は、ほぼ全てがB-Tree だが追記的(ログ構造化的)、最下位レイヤーはKVS、ハッシュ木みたいな特徴ありと。」 / Twitter
- ㇱィ⭐☆☆☆☆さんはTwitterを使っています: 「@shirouzu ReFSが出たときにはこれだ!と思ったんですが…」 / Twitter
- Cached I/O と Non-Cached I/O の違いをパフォーマンスカウンタで見てみたよ - NyaRuRuが地球にいたころ
- 「システム キャッシュ」の謎 - NyaRuRuが地球にいたころ
- ハードウェア書き込みキャッシュのバイパス要請 - NyaRuRuが地球にいたころ
- メモリマップドファイルとワーキングセット - NyaRuRuが地球にいたころ
- Win32 API でファイルのハードリンクカウントを調べる - WinSxS フォルダの真実 - NyaRuRuが地球にいたころ
- ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
- SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
- Vista のファイルコピーが遅い件について - NyaRuRuが地球にいたころ
- 記事紹介: Inside Vista SP1 File Copy Improvements (2) - NyaRuRuが地球にいたころ
- 記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ
- IWordBreaker とファイル検索 - NyaRuRuが地球にいたころ
- ReadyBoost と FILE_FLAG_NO_BUFFERING - NyaRuRuが地球にいたころ
- Big Sky :: CreateFile で FILE_SHARED_DELETE を指定するとどうなるか
- 全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
- ほぼすべてのウイルス対策ソフトにOSを破壊可能な脆弱性 ~現在は多くのソフトで修正済み - PC Watch
- Microsoft、ゲームのロード時間を大幅削減する「DirectStorage」のWindows版を提供 - PC Watch
- ドッグさんはTwitterを使っています 「path-slash で Windows のファイルパスの verbatim prefixes を正しく扱えてないバグがあった.ファイルパスの prefix 地味にムズいなぁ https://t.co/zp1Sft0Z2x」 / Twitter
- std::path::Prefix - Rust
- ドッグさんはTwitterを使っています 「これ例えば verbatim UNC だと \\?\UNC\server\share までが prefix なのか…」 / Twitter
- マイクロソフトのDirectStorage APIがPCIe 3.0 NVMe SSDとDirectX 12 GPUを対応|自作.com
Win32 Disk Imager Renewal
- 「SoftEther VPN」で知られる登大遊氏が「Win32 Disk Imager」の改良版をリリース - やじうまの杜 - 窓の杜
- dnobori/DN-Win32DiskImagerRenewal: このリポジトリは、Windows 上での USB メモリ / SD カードイメージ書き込みツールのデファクト・スタンダードとなっている Win32 Disk Imager について、以下の点を改良した 「Win32 Disk Imager Renewal」 の デジタル署名済みの EXE 単体で動作する Win32 / x64 / ARM64 版バイナリ とソースコードを配布するためのものである。(1) PC 上で Google Drive が起動していても、Win32 Disk Imager が起動できるようにした。原版では、相性問題で、エラーが発生していた。 (2) 原版は 10Mbytes 程度のサイズがあり、1 つの EXE と 18 個の DLL が必要であったが、(以下略)
- ARM64 版 Windows 11 で動作する dd + gzip 自作ツール (物理ディスクのイメージ化 + リストア、Linux の dd + gzip 互換) の提供 - Qiita
- Win32 Disk Imager Renewal (Google Drive 相性問題解決、単一バイナリ、デジタル署名版) - by dnobori - Qiita
デフラグメンテーション
- デフラグメンテーション - Wikipedia
- The Desktop Files: The Truth about Defragmentation
- インタビュー - ファイル断片化を元から断つ、デフラグの概念を大転換!:ITpro
- 無料デフラグソフト一覧 - フリーソフト100
- 【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
- デフラグのやり過ぎはHDDの寿命を縮める | スラド ハードウェア
- デフラグで最適化 - デフラグソフト比較、断片化の理由 - Windows高速化への道
- ファイルシステムの基本~ファイルはどのように記録されているのか~ - Yahoo!知恵袋
- ファイルシステム圧縮による空き容量と、デフラグについて - すっきり!! デフラグのヘルプ
- 効率の良い『デフラグ』で性能低下を防ぐ 【桜PC情報】
- NAS(LAN HDD / ネットワークハードディスク)は何故デフラグできないのか
- ファイルシステム入門
- しつこくデフラグ話【日記 2011/11/25】
- デフラグって実際どうなの? 実力を徹底検証 - Windows7から話題のWindows10まで対応! (1) 知らないうちに断片化するデータ群 | マイナビニュース
- 「ディスククリーンアップ」と「ディスクデフラグ」の違いとは?|エンジョイ!マガジン
- デフラグとは | Diskeeper 日本語版 公式サイト
- ファイル・サーバのデフラグメントについて考える - @IT
- 知ってる?デフラグの力 - デフラグのメリット&デメリット
- 本の虫: ディスクのフラグメント防止に関する興味深いペーパー
- NTFSFrag.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SetFileValidData APIにはSE_MANAGE_VOLUME_NAME特権が必要。 だが、manifestにuiAccess=true&署名&ProgramFiles配置にする形で(ある種の)管理者モード起動すると、特権取得は成功するも SetFileValidData は 1314(権限が無い)が返る謎。 なお下記の件とは違う。 https://t.co/7W1VMFkKVt」 / Twitter
- Why does SetFileValidData fail even though I enabled the SE_MANAGE_VOLUME_NAME privilege? - The Old New Thing
- 本の虫: ディスクのフラグメント防止に関する興味深いペーパー
NTFS
Wikipedia
- NTFS - Wikipedia, the free encyclopedia
- NT File System - Wikipedia
- NTFS-3G - Wikipedia
- NTFS-3G - Wikipedia, the free encyclopedia
- Filesystem in Userspace - Wikipedia
- Filesystem in Userspace - Wikipedia, the free encyclopedia
Twitter
ソート順
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、NTFSのソート順(btree)は名前を大文字変換した後、UTF16コードでソート。 Explorerも大文字変換は同じだが、アンダースコア等が特別扱い、数字群は数値として比較とか、色々特殊。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "数字群を数値として比較することを、natural sort と言うらしい。 https://t.co/xATZlBNZ9a"
- Natural sort order - Wikipedia
@shirouzu
復元不能にする方法
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのNSA方式削除では内部的に2モードあり、上書きバッファ用乱数はメルセンヌツイスタで初期化される。 だが、iniのcopy_flagsに OVERWRITE_PARANOIA(=0x2000)を追加すると、バッファをCryptGenRandomで初期化される。 (エントロピー不足か、死ぬほど乱数生成が遅いのでお勧めできない)… https://t.co/qgGp2ypCiM"
- とつげき東北🌘さんのツイート: "復元防止をセキュリティ的にマジで考えると、単に物理的に上書きしたくらいでは足りないですね。0か1かはHDDの場合磁気的に保存されますので、一度書き込んで消しても、アナログ情報が残って再現できてしまう。 そういう「形跡」さえも消すには、何十回も0と1を繰り返し書かないとダメですね😇… https://t.co/qlwlO08Wky"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なかなか豪快なソフトですね(笑) ファイル単位の復元防止だと(削除前に)truncate無しの上書きが定番(ただしNTFS圧縮だと別セクタに書かれるので無意味)だと思うんですが、実はtruncateした後に上書きしてました、とかですかねぇ…逆にカジュアルな復元ができる下手を打つ方が不思議な気も。… https://t.co/7T3hvZtC5P"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ですね。NSA方式とかDoD方式とか、3~7回の乱数や0(or 0xff)での上書きを定めるものが多いみたいです。 (FastCopyだとNSA方式削除をサポートしてます)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、メルセンヌツイスタもシードだけは std::random_device(=CryptGenRandom)を使っている。"
histric-1
- SHIROUZU(白水啓章)さんのツイート: "タイムスタンプとファイルサイズ(とファイル名)を使った、ファイル重複検出ツールって、意外と無い不思議。 それとできれば、MFTによる高速検査があると最高なのだが…自分で作るかな。 ファイル名は編集距離誤差を許す設定ができるとさらに良さそう。"
- SHIROUZU(白水啓章)さんのツイート: "FastCopyのI/O設定、Win10 + Gbit NIC以上だと1発行1MBで多重度2以上がベストで、1発行が4MBとかになると(多重度を上げても)逆に遅くなるな…パラメータのデフォルトを変えた方がいいかもしれない。"
- SHIROUZU(白水啓章)さんのツイート: "それと、ver3 の I/O設定はちょっと判りづらい点を直した方がよいかな… 最大I/O単位=1発行サイズ * 重畳数、という意味なので、1発行1MBで多重度4だと、4MBに設定する必要がある。"
- SHIROUZU(白水啓章)さんのツイート: "10G NIC と NVMe(960-EVO)を載せて、FastCopyで転送実験。 双方向でほぼ10Gbps出るようだ。 IPMsg転送だと5Gbpsが今のところ限界、さらにAES暗号化すると80Mbpsまで低下。"
- SHIROUZU(白水啓章)さんのツイート: "CoffeeLake(i5-8600K)では、FastCopy + SMB で 10Gbps転送中のCPU使用率は概ね10-15%程度。"
- SHIROUZU(白水啓章)さんのツイート: "ただし、非同期I/Oをやめると5Gbpsに一気に遅くなる(I/Oサイズを広げてもダメ)。 つまり、相変わらずアプリケーション側が先読み的な動作をさせないと、性能を十分出せない、WindowsのSMB実装ということかな。 (なお双方とも Win10 Pro for Workstat… https://t.co/DMind304I8"
- SHIROUZU(白水啓章)さんのツイート: "そういえば、これ6コアだから、16%で1コア使い切りレベルだった。 4コア時代の25%基準で考えてしまう癖が。"
- SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkでの速度とFastCopyの速度が違ったので調べてみると、Crystal…の KB/MB は 1000^n、FastCopyの KB/MB は 1024^n という違いだった。FastCopyは正確に KiB とか MiB とかにしたほうが良いかな…"
- SHIROUZU(白水啓章)さんのツイート: "C/C++でのポインタ同士の減算結果の型は size_t ではなく ptrdiff_t で「符号付」整数となる点に注意。"
- SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkの速度測定には、MSのdiskspdというコマンドを利用していた。 https://t.co/kwsrzWX6rv ちなみに「NCQ対応」は、diskspdを見る範囲では WinAPIのOVERLAPPED I/Oを行う=NCQ、という解釈かな。 (… https://t.co/CDXRmvKlMp"
- Microsoft/diskspd: DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
- SHIROUZU(白水啓章)さんのツイート: "実際、SATAのNCQは32個までだが、OVERLAPPED I/O自体は(手元で試した範囲では)128個発行なども可能だったりする。"
- SHIROUZU(白水啓章)さんのツイート: "FastCopyで、複数物理ドライブを束ねたボリュームでの物理ドライブ判定が正しくなかった。(別物理ドライブ同士が同一ドライブ判定になるケースが存在)"
- SHIROUZU(白水啓章)さんのツイート: "SMB経由で確認した範囲では、btrfsは4KB * n で整列されたwrite後に、そのサイズより僅かにサイズ縮小するftruncateを発行すると、ext4やNTFSに比べて大変時間が掛かる不思議。 SMB経由でbtrfsかの識別する方法はないのかしらん?"
- SHIROUZU(白水啓章)さんのツイート: "最近はNASでもbtrfsという選択肢が出始めているようなので、ちょっと対策しておきたいところ。"
- SHIROUZU(白水啓章)さんのツイート: "OS、AntiVirus(MS純正)、NTFSのいずれの問題か不明だが、dir-entryを全削除した直後に、そのdirを削除しようとすると稀に「空でない」というエラーになることがある。その時、FindFirstでentryを調べると一瞬だけ削除したはずのentryが見える。 ローカルFSなのにアトミック性が破れてるな。"
histric-2
- SHIROUZU(白水啓章)さんのツイート: "GetVolumeInformation APIで取れるファイルシステム名(lpFileSystemNameBuffer)、LTFSだと"LTFS"が返るのかしらん?"
- Kengo Sawatsuさんのツイート: "結果でましたー。 ちゃんと'LTFS'と入ってきますね。 OS:WindowsServer2012R2 python3.4からwin32apiコールです。 results = win32api.GetVolumeInformation("J:\\") pprint.pprint(results) で、出てきたタプルです。 https://t.co/MnBOttlcJu… https://t.co/mOcNmgdTr1"
- Kengo Sawatsuさんのツイート: "ちなみにLTFS実装はIBM純正の2.2.1です。 HPなどのその他実装では結果が異なることもあるかもしれませんが、各社のLTFSドライバはすべて?IBMが元なので、大丈夫じゃないかなあとは思います。… "
- SHIROUZU(白水啓章)さんのツイート: "Win32非同期I/Oを使った連続read/write実験、少なくともネットワークドライブ(Win10 Pro Enterprise同士)相手に対しては、4MB*4重畳よりも1MB*4重畳の方が5~10%高速になるのは何故だろう?(ファイルサイズが20~30MBならおおよその理由は判るのだが、数GBでも同じ傾向)"
- SHIROUZU(白水啓章)さんのツイート: "非同期RPCのやりとりをWireSharkで調べてみるのが近道かな。"
- Kengo Sawatsuさんのツイート: "いつもありがとうございます。 smb multichannelとの関係など、結構調べないといけない話題は多いですよね。 なにかの折にまたデータをとってみます(40Gはストレージ側の性能引き出すのがちょっと難しいですが) また、https://t.co/GT7eFdWffLへの40GbitNIC貸与ができないか、社内で調整中です。… https://t.co/9ZffXqTPmb"
- SHIROUZU(白水啓章)さんのツイート: "FastCopy英語掲示板に「もっとスレッド数を増やして高速化を」という要望が出ているのだが、何の処理を行うスレッドを増やしてほしいのだろう? ごく一部環境を除き、I/O (read or write) 並列化(連続命令の非同期I/O化を除く)は、遅くなるだけと思うのだが。"
- Fomalhaut Weisszwergさんのツイート: "おそらく「スレッドをたくさん作れば早くなるんでしょ」と思っているだけだと思います。わたしもそういう人の相手をする羽目になったことがあります (ログファイルへの書き込みを並列化したところで高速化はできないということを理解してもらうのにすごいコストかかりました)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "先ほど、レスパスビジョンさん(https://t.co/lLhGI6a3Ro)のご厚意で、FastCopy進化用のMellanox 40Gbit NIC*2とケーブルが届きました! それにしても、さすがは40Gb用ケーブル、昔の放送用ケーブルかと見まがうゴツさ…QSFPという10Gを4本束ねたものらしい。 https://t.co/JPjOt4kQMq"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB転送速度に与えるレイテンシの影響は、非同期I/O数が4以上ならどの条件でもレイテンシに比例して速度低下。だが、ジッタが大きい場合だけは、I/Oサイズ*非同期I/O数=32MB以上の方が性能が出る(落ちづらくなる)不思議。 (前者でも、性能が落ちづらくて良さそうなのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "前者でも…というのは、I/Oサイズ * 非同期I/O数を大きくする≒TCPにおけるウィンドウサイズ拡大と類似した効果をSMB上に与えても不思議ではないため。 ただ、API上の非同期数に対して、SMB上の非同期I/O数に上限があるなら、そうならなくても不思議ではない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "だからこそ、自前転送の高速化の余地が大きいということではある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "40Gb転送中にRAM Diskアクセスすると、そのI/O速度分だけ速度低下する様子(CPU使用率にはまだ余裕がある)。 PCIeを空けても、メモリバスがネックとなっている? CoffeeLake i5-8600K + Z370の方は大丈夫のようだが、SkyLake i5-6500 + Z170程度だと性能が不足しているようだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "論理セクタが512byteでも、本当のブロックサイズは4KBだったりする現在、末尾の端数部分はブロックサイズ単位で書いてtruncateではなくて、端数だけappendの方が良いかもしれない、特にネットワークの場合。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前の話ではXeon + WinServer + SMB Directを使っても、40Gbpsを使いきれていないらしい?最新サーバ同士だとどうなんだろう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの重複データブロック削除機能=De-Duplicationだと思うのだが、DeDupと書くより、DeDupeと書く方が多い不思議。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10GのWin10Pro同士だと、ほぼ10G素直に出ていたのですが、samba経由だといろいろあるんですねぇ…(ただ、ジャンボパケットでないとダメだったかも)… "
- Kengo Sawatsuさんのツイート: "10Gのsmb.confのパラメータを色々試して、Fastcopyとの組み合わせでざっくり810MB/secくらいまでは速度出るようになったけど、カーネルパラメータいじるのは面倒かつ危険なのでこれ以上の追い込みはやめておくマン"
- Kengo Sawatsuさんのツイート: "今更ですが、これの効果は劇的です <I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上 10Gbps環境下でスイッチを2~3個経由していても、1ファイル数GBを超えるファイルであれば1000MB/secで張り付きっぱなしになります。 40Gbps環境にも恩恵あるはず。… https://t.co/cmKIS1WbNy"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.50正式版をリリースしました。 Source選択で、ファイルとフォルダを同時に選択できるように。 I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上(レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)等 https://t.co/L7jJavdtio"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「BSD系がreadlinkでA更新しないのは知らなかった。 あとは、移動で対象ファイルCが変わる/変わらないの件…Cはinode更新時間(A更新以外)なので、Cが変化する実装=(atomicなので外部観察はできないが)内部でdst-ent追加でリンク数+1、src-ent削除-1操作、がC変化の原因かな? https://t.co/VwDT93ijU4」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、rename/move はファイルシステムを作った経験があれば判ると思うが、atomic性を満たすのに一番厄介。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「src/dst/target の3つロック(create/removeなら、親dir → targetだけのロックで済む。3つの場合、ロック順序保証が通常の親→子でないのもネック)、さらにtargetがdirの場合、dstがtargetツリーに存在しないこと確認する必要もあり。 (でないと、外部からの参照のない循環参照dirに)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さらに、dstのtarget配下の非存在確認した後、移動が完了するまでは、src/dst/target配下が絡むdir関連rename操作はブロックしないといけない、みたいな話もあったり。 (でなければ、volレベルでジャンボロックするか…Linux2.0当時の実装を見たら、そうなっており、ああ手抜きだなと思った記憶)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSファイル名長は、漢字/ascii両方 255文字までOKに対し(サロゲートペアだと半分)、NAS(Linux)だと 漢字ファイル名は80数文字(UTF-8)が上限。 掲示板で問合せで、この状況で困ってる方居たのだけど、一般には全組織で 5%くらいの割合かな…?」 / Twitter
- 研究千年牛酪情報保管庫菩薩さんのツイート: "NTFS、しくみおもしろいなあ。これだとWinFSを作りたくなる気持ちがわかる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(POSIX対応のため)NTFSが大文字小文字違いを別ファイルとして扱える機能を持つのは知っていたが、(POSIXサブシステム経由だけでなく)Win32サブシステム経由でも(レジストリ変更で)大文字小文字区別したアクセスができるとは知らなかった。… https://t.co/LRLCQ3BWBn"
- 品川 高廣さんのツイート: "Cygwin 上で Linux カーネルをクロスコンパイル on @Qiita https://t.co/UATrQHnqhU"
- Cygwin 上で Linux カーネルをクロスコンパイル - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSのハードリンクは、UNIX系と違い、片方のファイルを変更しても、もう片方にタイムスタンプがすぐに反映しない。 1度目は必ず古い情報を掴まされ、2度目のlookupから正しく取れるという、UNIX inodeとdirentyのような関係ではあり得ない挙動を示す。 ちなみに、ハードリンク上限もわずか1023。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSの設計者は「POSIX準拠機能なんて、本格的に使うわけないよね」と思っていたとしか思えない(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回の件、海外からFastCopyのコーナーケースのバグ報告?と思って調べたところ、NTFS側の問題だったというオチ。"
- Egtra (ysk-noh)さんのツイート: "https://t.co/QJTi32Ys8q Windowsが初期設定だとシンボリックリンク作成を管理者に絞っているのは、Symlink attack対策なのだと思う。 https://t.co/nIkiEyVnaJ https://t.co/I0Zm2JxVqy"
- PhoronixさんはTwitterを使っています 「"NTFS3" #Linux Driver Spun Up An 11th Time With More Optimizations https://t.co/qvrZtkQZHm」 / Twitter
- "NTFS3" Linux Driver Spun Up An 11th Time With More Optimizations - Phoronix
- Grzegorz TworekさんはTwitterを使っています 「We know NTFS can store invaluable #DFIR data in the USN Journal. But how long records stay there? You can check it with a simple app I have just created. C source code and the compiled .exe as usual: https://t.co/eW6XL95CT9 Using FSCTL allowing non-privileged users to check it. https://t.co/yEzywJcJQh」 / Twitter
- PSBits/CheckOldestJournalEntry.c at master · gtworek/PSBits
- Grzegorz TworekさんはTwitterを使っています 「BTW you cannot resize your USN Journal. You have to delete it, and then re-create with "fsutil usn" command.」 / Twitter
- PAYLOAD - magazyn o ofensywnym bezpieczeństwie ITさんはTwitterを使っています 「@0gtweet Dużo ciekawiej się robi, jak zaczniesz analizować dane usunięte. Wówczas bez problemu znajdziesz mnóstwo parsowalnych fragmentów danych, które leżą sobie na dysku od samego początku jego używania. Byś się zdziwił, jakie rzeczy ja klientom znajdowałem na podsyłanych mi dyskach...」 / Twitter
- FadisさんはTwitterを使っています: 「昨年Linuxカーネルに入った新しいNTFSのドライバが早くもメンテナ不在になっている、という話。開発元のParagon Softwareのリポジトリは昨年の11月で開発が止まっており、メンテナに連絡もつかなくなっていて、誰も取り込まない修正パッチがたまっているらしい https://t.co/kAT7yWanIZ」 / Twitter
- Concerns Raised Over The "New" NTFS Linux Driver That Merged Last Year - Phoronix
- NTFSの読み方 - Qiita
- kusano/ntfsdump: Extract files from NTFS Volume
- 暗号化ファイル・システムを使うとWindows Updateができなくなる / SAFETY JAPAN [Windows XP プロの常識] / 日経BP社
- 最後に知っとく“Windows 8.1重箱の隅”10選 - AKIBA PC Hotline!
- 上原 哲太郎 - これは話が正確じゃないのでMSやWin10がかわいそう。要はNTFSをリムーバブルメディアで使っては... | Facebook
- Why NTFS is a dangerous filesystem for external drives ... - PentaxForums.com
- Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ | スラド IT
- Transactional NTFS (1) - NyaRuRuが地球にいたころ
- 日記 (2013 年 4 月中旬)
- NTFSのトンネリングとHardlink - ひよこメモ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これが成功したら、あっという間に終了(or 非推奨化)した「トランザクションNTFS」も復活したりするのかしらん? https://t.co/oVhrlxprop… "
- トランザクションNTFS - Wikipedia
- Transactional NTFS - Wikipedia
- アイコンを見るだけでデータが破壊されるNTFSの脆弱性 - PC Watch
- アイコンを見るだけでNTFSドライブが破損する脆弱性が修正 - PC Watch
- 保存したデータのサイズに対して「ディスク上のサイズ」が大きいのはなぜ? 〜 賢い保存術とは - Nishiki-Hub
- NTFS.com - Data Recovery Software, File Systems, Hard Disk Internals, Disk Utilities
ReFS
- Shirouzu Hiroaki(白水啓章)さんのツイート: ""CreateHardLink(この要求はサポートされていません。50)" というメッセージが出て何だろうと思ったら、ReFSはハードリンクをサポートしていなかった様子。 ---- https://t.co/Ss1hcvHxrq"
- Windows の次世代ファイル システム: ReFS – Building Windows 8
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系のハードリンクはinodeとdentの仕組みを素直に使っている。NTFSハードリンクは当該ファイルスロット(≒inode)に別名エントリを格納していく変態方式のため1023リンクが上限だった。で、ReFSではサポートすら止めると。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSは全力で非同期writeするより、アクセスに僅かに空き時間を与えた方が速度が5~10%程度、増すなぁ。 非同期I/Oで連続アクセスすると、ReFS固有の付加的な作業が合理的に差し挟めないのだとすると、ファイルシステムドライバの作りが悪いとしか思えないのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSのBlockCloningを使うと、巨大なファイルの内部的なログローテーション的な動作が、実質データコピー無しで出来そう。 (現行ファイルの先頭クラスタ以外をクローンして、次ファイルを作るイメージ) https://t.co/wjy0lTy4Lm とはいえ、ReFS自体に余り良い評判を聞かないので微妙だが。"
- Block Cloning | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSはディレクトリ探索負荷だけで、6コアが100%になり(System(pid:4)が大半)、各プロセスのタスクスイッチもロクに回らなくなり、各ウィンドウ描画が止まり、音楽再生も切れる。 (画像は探索を止めて、ようやく再描画再開されたタイミングでキャプチャ) https://t.co/DEljgQ0Hxj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ディレクトリ探索を続けると、何かのタイミングでこの状態が続く。アクセス数に比例したり、特定ディレクトリがトリガーでもない様子)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「どうも妙な挙動が多いので、ReFSを相手にするのは止めようかな… https://t.co/uZfbmqm9oO」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSは設計思想以前に、実装がダメダメなんでは疑惑。 (手触りが悪いというか、不自然に重いというか)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「仕様云々より、実装が悪いのだろうなぁ、、、。 なおMSは流石に無いと思うけど、仕様を作って外注に作らせるパターンだと、そういう品質がほぼ宿命に。」 / Twitter
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「ReFS、server2016で実運用してるとSMBのわけわからないタイムアウト(ファイルシステムから30秒応答返ってこない)とか本当に散々な目にあってるので、当面本番用途で使う予定ないのだが、相変わらずの様子・・・。。 MSは今すぐデビッドカトラーを連れてくるべき」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一度、腐ったものが出来上がると、性能・品質改善はほぼ望めず、作り直すのが最善手になる。 ただ初期コストの大きさから、改善で済まないか試みた挙げ句、無理なことを悟って作り直すという、一番高コストな道を辿るのが典型パターン(笑)」 / Twitter
- ReFS Overview - NTFS.com
FAT
exFAT
- 実は危険??「exFATフォーマット」との付き合い方|L'espace Vision
- 【2021年 exFATを改めて検証】 その1「マウント互換性について」|L'espace Vision
- 【2021年 exFATを改めて検証】 その2「exFATのファイルシステム破損実験」|L'espace Vision
- 【2021年 exFATを改めて検証】 その3「Macのファイルシステムチェック挙動はややこしい」|L'espace Vision
- 【2021年 exFATを改めて検証】その4「それでもexFATをオススメしない理由」|L'espace Vision
- k-takata.o.oo7.jp/diary/exFAT.txt
- Microsoft、パナソニックに大容量ファイルシステム「exFAT」のライセンスを供与 - ITmedia エンタープライズ
- マイクロソフト、exFATのライセンスプログラムを発表 - CNET Japan
- exFATのライセンス提供開始に見え隠れするMicrosoftの知財戦略 - builder by ZDNet Japan
- FUSEベースのMicrosoft「exFAT」実装、「fuse-exfat 1.0」がリリース | OSDN Magazine
- Tech TIPS:FATとexFATの違い - @IT
- Microsoft readies exFAT patents for Linux and open source | ZDNet
- 2019年8月30日号 Ubuntu 18.04.3 LTS 日本語 Remix リリース・eoanのFeature Freeze・exFATの仕様書:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- exFAT について - 借り初めのひみつきち
- 米Microsoftが「exFAT」の技術仕様を公開、Linuxカーネルへのマージを認める | OSDN Magazine
- Microsoft、ExFATのLinuxカーネルでの実装方法を明確に
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの exFAT はタイムスタンプ精度がFATと同等の挙動と。」 / Twitter
- 風柳さんはTwitterを使っています 「https://t.co/jPpOy02LH8 絡みでもうひとつ NTFS(1枚目)→exFAT(2枚目)→NTFS(3枚目) って移動したときにファイルの日付がずれてしまったらしく(exFATって仕様上10msの精度あるはずなのにWinでは使われておらずFATと同じ偶数秒の精度になってる)後ほど別のディスクにバックアップを取る際にハマった https://t.co/IcMGWRKJft」 / Twitter
- FadisさんはTwitterを使っています: 「ソニーがLinuxでexfatをdirsync付きでマウントしている場合のディレクトリ操作を劇的に速くするパッチを投げている話。クラスタサイズ128KiB(32GBを超えるexfatのデフォルト)の場合でSDカードにディレクトリを1000個作るのに要する時間が6分2秒から1分13秒まで縮んだらしい https://t.co/tSOrfQRCLV」 / Twitter
- Sony Contributes ~73%+ Performance Improvement For exFAT Linux Driver - Phoronix
- FadisさんはTwitterを使っています: 「exfatのドライバはディレクトリエントリを作る際に使用するクラスタをゼロクリアするが、このゼロクリアが1セクタづつ行われていたのをクラスタサイズ分まとめて行うようにしたらしい。dirsyncではディレクトリ操作の書き込みは直ちにデバイスへのコマンド発行になる為、まとまっていた方が性能が出る」 / Twitter
- ExFAT overview - NTFS.com
MS
- テクノロジ IP ライセンス | IP (知的財産) ライセンス - マイクロソフト イノベーション センター
- Licensing exFAT | Microsoft IP Licensing
- exFAT file system specification - Windows applications | Microsoft Docs
Wikipedia
- exFAT - Wikipedia, the free encyclopedia
- exFAT - Wikipedia
- File Allocation Table - Wikipedia
- File Allocation Table - Wikipedia
- 8.3形式 - Wikipedia
- 8.3 filename - Wikipedia
Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あらら。 私の方でも少し見てみますね。」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「exfatの現状記事を書くためにまずはまともなはずのwin10h2のexfatを触り始めたらいきなりヤバい、。 こいつ、プリアロケート予約出してからキャンセルすると全領域初期化で埋めようとしてる、。? hddでも起きるからデバイス側の挙動じゃないはず、。ext3かよ!w https://t.co/xrXVkMkfBU」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「@shirouzu ありがとうございます、本当にお暇なときにでも触ってみてください。 なんかMSの実装ポカな気がします、NTFSでは再現しませんでした。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 Process Monitor で確認すると、むしろ Explorer が一時停止/キャンセル時小細工して(中断するとそのサイズでSetEndOfFileしてから削除)、exFATドライバ側の実装問題を回避してますね(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 (ただし、ファイルが見えない状態でコピーはどうやっているのだろう…?)」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「@shirouzu それですよね。外から見てる感じ、何も生成しないのがなんかズルくないか?MS社内専用の秘密の仕組みでもつかっとんのか?と思ってしまいます笑」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 上記の hack で ZeroFill を回避できることが判ったので、次のリリースで入れておきますね。」 / Twitter
- Kengo SawatsuさんはTwitterを使っています: 「「Win/Mac両方で読み書きできたまじ便利ってネットの記事に書いてあった」 「macOSで選べるんだから大丈夫でしょ?」 exFATの実装仕様もライセンスも不明瞭だらけでジャーナルも無いウンコFSなのになぜAppleはフォーマットできることにしてるのか。。 #exFATは使うな死ぬぞ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(2年前の話ながら)exFATはMacOSXでファイルが壊れるという話があるのでご注意あれ。 https://t.co/C2UcXBRLYg https://t.co/Sm10ANvYuN https://t.co/06fENVA0jy」 / Twitter
- 品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
- FadisさんはTwitterを使っています 「一部のデジカメがexFATにファイル置く時にディレクトにクラスタチェーンだけ追加してDataLengthを更新しないせいで、DataLengthを見て終端を判断していたLinuxで一部のファイルが見えなくなる問題を受けて、LinuxがexFATのディレクトリのDataLengthを信じなくなった話 https://t.co/lXC4i8Q6y7」 / Twitter
- Linux 5.14 Works Around Compatibility With Some Digital Camera exFAT File-Systems - Phoronix
- ろ。まのふさんはTwitterを使っています 「exFATでお行儀の悪い書き方をするカメラってFujiなのワロタ…ワロタ…(ワロエナイ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi CP/Mだとblock size(128byte)がファイルサイズの単位だったため、テキストファイル末尾はControl-Zで埋めていたとか、 MS-DOS時代になってもその名残りで、テキストファイル末尾にControl-Zを入れる慣習が残っていることがあったとか、 もはやオッサンか おるみん神でないと覚えてなさそうですしねえ…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「^Z で埋めるのは良いけど、MS-DOS3.3ですら fopen(..."r") で ^Z に出くわすとファイルの読み込みを停止しちゃう仕様が嫌だったなぁ。 (今のmsvcrtもそうなのだっけ?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32API の CreateFileW ばかり使うので crt の挙動に疎くなってしまった。」 / Twitter
- FadisさんはTwitterを使っています: 「LinuxのFATファイルシステムドライバがstatxにファイル(not ディレクトリ)の作成日時(not 更新日時)を載せるようになったらしい。この変更はLinux 5.19でメインライン入りする https://t.co/qy59hyoeYq」 / Twitter
- FAT32 File Creation/Birth Time Reporting Finally Comes To Linux - Phoronix
- FadisさんはTwitterを使っています: 「FATファイルシステムは元々ファイルの作成日時を記録しているが、POSIXのstatではファイルの更新日時を取ることはできるが作成日時を取ることはできない。このため、従来Linuxでこの値を読むにはファイルシステム固有のxattrを読む必要があった」 / Twitter
- FadisさんはTwitterを使っています: 「2017年にLinuxに「statにはないけど頻繁に使われるxattrの値を読むためのファイルシステム非依存の方法」としてLinux固有のシステムコールstatxが追加された。そこにはファイルの作成日時も含まれていた。今回の変更はFATのファイルをstatxした時にファイルシステムに書かれた作成日時が載るようにする」 / Twitter
- FatFs 汎用FATファイルシステム モジュール
- FatFs - Generic FAT Filesystem Module
- FATファイル システムのしくみと操作法
- 「DataRecovery」「Fat32Formatter」のソースコードを公開 - 窓の杜
- FAT仕様書日本語訳.doc - Google ドキュメント
- Microsoft Word - FAT32 Spec _SDA Contribution_.doc
- 日記 (2015 年 10 月上旬)
- FAT File Systems. FAT32, FAT16, FAT12 - NTFS.com
SMB
脆弱性
- WindowsおよびSambaの重大なバグ「Badlock」、4月12日のパッチリリースが告知される | スラド セキュリティ
- WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT
- JVNVU#92232364: Microsoft Windows および Samba の認証機能に脆弱性 ("Badlock")
- ASCII.jp:95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か|Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート
- Windowsの通信プロトコルに脆弱性報告、SMB v1は無効化を - ITmedia ニュース
- ニュース - WindowsのSMBに新たな脆弱性見つかる、企業担当者はファイアウオールの再確認を:ITpro
- WannaCryの危機再び。新たな拡大感染型ランサムウェアGoldenEye/Petyaが全世界で拡散中。 | LAC WATCH | 株式会社ラック
- Windows SMBの脆弱性「SMBLoris」の再現を確認しました | LAC WATCH | 株式会社ラック
- Windows 10/8.1の「SMB v3」に未解決の脆弱性、Windowsをクラッシュさせてブルースクリーンに -INTERNET Watch
- WindowsのSMB v3脆弱性を悪用し、ウェブサイトのリンククリックでシステムをクラッシュさせる手法、SecureWorksが公表して注意喚起 -INTERNET Watch
- 被害拡大のランサムウェア「WannaCryptor」は「SMB v1」の脆弱性を悪用、サポート終了のWindows XP向けにも緊急パッチ提供 -INTERNET Watch
- 新種ランサムウェア「GoldenEye」が世界各地に感染拡大、SMB v1の脆弱性「MS17-010」を突いて感染 -INTERNET Watch
- 猛威を振るったランサムウェア「WannaCry」を振り返る - INTERNET Watch
- Google、SMBv1にのみ対応するAndroid用Sambaクライアントを公開 | スラド セキュリティ
- google/samba-documents-provider: Access network file shares directly from the Android Downloads/Files app
- Petya ランサムウェア攻撃に対する Windows 10 プラットフォームのレジリエンス – 日本のセキュリティチーム
- アップグレードの重要性: 2017 年のランサムウェア拡散時に高い効果を証明した Windows 10 の次世代型セキュリティ – 日本のセキュリティチーム
MS
- [MS-SMB]: Server Message Block (SMB) Protocol
- SMB 3.1.1 Pre-authentication integrity in Windows 10 – Microsoft Open Specifications Support Team Blog
- SMB 3.1.1 Encryption in Windows 10 – Microsoft Open Specifications Support Team Blog
- Encryption in SMB3 – Microsoft Open Specifications Support Team Blog
- SMB 2 and SMB 3 security in Windows 10: the anatomy of signing and cryptographic keys – Microsoft Open Specifications Support Team Blog
- Extended DFS referral for SMB 3 – Microsoft Open Specifications Support Team Blog
- SMB3 Secure Dialect Negotiation – Microsoft Open Specifications Support Team Blog
- SMB 2.x and SMB 3.0 Timeouts in Windows – Microsoft Open Specifications Support Team Blog
- CIFS and SMB Timeouts in Windows – Microsoft Open Specifications Support Team Blog
- Encryption in SMB 3.0: A protocol perspective – Microsoft Open Specifications Support Team Blog
- サービス概要およびネットワーク ポート要件 - Windows Server | Microsoft Docs
- リモート プロシージャ 呼び出し (RPC) 動的ポートがファイアウォールで動作する - Windows Server | Microsoft Docs
- [MS-RPCE]: Remote Procedure Call Protocol Extensions | Microsoft Docs
SMB Direct
Remote Direct Memory Access
- Remote Direct Memory Access - Wikipedia
- Remote direct memory access - Wikipedia
- リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
- HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
- FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
- mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
- Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
- NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
- NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
- KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
- KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
- SMB Direct - Windows Server 2012 / R2 - SSD情報
- SANsymphonyパススルーとRDMAの組み合わせ - Qiita
- FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
- まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
- 「RoCE」をめぐる、あれこれ。 | サーヴァンツインターナショナル株式会社
- 13.2. RoCE を使用したデータ転送 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
- Improve Performance of a File Server with SMB Direct
- Windowsファイルストレージ(SMB) - メラノックス テクノロジー
- SMB Direct - Windows Server 2012 / R2 - SSD情報
- SB_Accelerating_Remote_Storage_Mar_2014.pdf
- SANsymphonyパススルーとRDMAの組み合わせ - Qiita
- SMB direct の性能 : kommy の備忘録
RPC
- RPC | すなのかたまり
- [MS-RPCE]: Remote Procedure Call Protocol Extensions | Microsoft Docs (1)
- toc.pdf
- DCE 1.1: Remote Procedure Call - Introduction to the RPC Specification
- DCE/RPC
- Documentation
- dcerpc/dcerpc: DCE/RPC is the remote procedure call system developed for the Distributed Computing Environment (DCE).
- rpc-internals.pdf
- RPC
- DCE/RPC Server
- DCE/RPC Protocol - Ports and DPI Reference
- リモートの手続きを呼び出すMS-RPCとは? - @IT
- DCE/RPC との相互運用
- OSF DCE1.2.1 New Features
Publickey
- マイクロソフトが「SMB over QUIC」ファイル共有プロトコル実装中。VPNなしでもインターネット上で安全にファイルサーバへのアクセスを実現へ - Publickey
- Windows Server 2022正式版がひっそりとリリース。セキュアコアサーバ搭載、SMB over QUICでVPN不要のファイルアクセスなど - Publickey
- Linux Kernel 5.15リリース。LTS版、新しいNTFS対応ドライバ、インカーネルSMB 3サーバ、不揮発性メモリへのスワップアウトなど新機能 - Publickey
@IT
- Windowsネットワークの基礎:第7回 ファイル共有プロトコルSMBの概要 - @IT
- その知識、ホントに正しい? Windowsにまつわる都市伝説(23):ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編) - @IT
- Tech TIPS:SMBのマルチチャネル転送機能でファイルサーバーへのアクセス速度を向上させる - @IT
- ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(23) - @IT
- ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(24) - @IT
- Linuxはサンバ(Samba)で踊る――WindowsとLinuxのファイル共有のいま:その知識、ホントに正しい? Windowsにまつわる都市伝説(25) - @IT
- SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(26) - @IT
- SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(27) - @IT
- 再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策:山市良のうぃんどうず日記(83) - @IT
- ランサムウェア「Wanna Cryptor」に対し、異例のセキュリティパッチをWindows XPに提供する意味:山市良のうぃんどうず日記(94:緊急特別編) - @IT
- ランサムウェア「WannaCry」対策で安心してはいけない――いま一度、見直すべきWindowsの脆弱性対策:山市良のうぃんどうず日記(95:特別編) - @IT
- Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ:企業ユーザーに贈るWindows 10への乗り換え案内(93) - @IT
OSDN
- 「Samba 4.6」リリース | OSDN Magazine
- 「Samba 4.10」リリース、PythonバインディングでPython 3をフルサポート | OSDN Magazine
- VFSインターフェイスを一新した「Samba 4.15」が公開 | OSDN Magazine
- 性能を強化した「Samba 4.17」が公開 | OSDN Magazine
Wikipedia
- DCE/RPC - Wikipedia
- DCE/RPC - Wikipedia
- Samba - Wikipedia
- Samba (software) - Wikipedia
- Server Message Block - Wikipedia
- Server Message Block - Wikipedia
Twitter
- Kengo Sawatsuさんのツイート: "朗報(悲報):3年間ずっと間違って評価してたaio_readを正しく実装してみたら、SMB越しのreadの性能が適当な環境ですら20%以上伸びる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルサーバ(種別不明)にコピーしたら、途中でエラー123(ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません)が出たという話。 ファイルサーバがUNIX系でも / 以外は禁止文字が無いはずで、コピーの途中で出るパターンって、何かあったかな…?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "手元で試すと、sambaでファイル名長(パス要素長)がファイルシステム上限を超える時にエラー123となるようだ。 (UNIX系は255バイト上限が多いため。NTFSはUNICODEで255文字まで作れる)"
- uchanさんはTwitterを使っています 「ls -lで表示される末尾の+は拡張属性というもので,getfacl <file>コマンドでチェックできるようだ。」 / Twitter
- uchanさんはTwitterを使っています 「smb.confの[global]セクションに nt acl support = no を加えたら解決した。 どうやら,Windows側でファイルを保存するとACLが付与されて,それがLinux側では拡張ACLという形でファイルに付与され,グループの実行権として見えてたみたい。」 / Twitter
- uchanさんはTwitterを使っています 「さらに検証したら nt acl support = no だけだと不十分で, map archive = no をさらに付ける必要がありそう。」 / Twitter
- FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
- CIFSD In-Kernel SMB3 File-Sharing Server Lands In Linux-Next - Phoronix
- FadisさんはTwitterを使っています 「ネットワーク越しのファイルシステムが難しいやつ、「大抵のソフトウェアはストレージまでの回線が簡単に切れることなんて想定していない」のが原因の7割くらいで、「大抵のソフトウェアはファイルシステムの実装が多様な事なんて想定していない」のが原因の3割くらい、という印象がある」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ 「大抵のソフトウェアはインターネットまでの回線が簡単に切れることなんて想定していない」 近年はこれ…」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs インターネット接続を失うと何も表示出来なくなるありがちなApp…」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ ローカルキャッシュという概念すらない。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sambaは副次ストリーム使えるのだけど微妙にNTFSと互換性なくて(実体を別ファイルに保存)、ストリーム用ハンドルでタイムスタンプ設定しても、元ファイルのそれが変わらない罠。」 / Twitter
- FadisさんはTwitterを使っています 「KSMBDがバニラカーネルにマージされたらしい。linux-5.15から使えるようになる。KSMBDはWindowsのファイル共有プロトコルSMB3のサーバ側をLinuxカーネル内に実装したもので、ユーザ空間のSambaを使う方法より性能面で有利とされている https://t.co/0GQG5MA4DS」 / Twitter
- KSMBD As An In-Kernel SMB3 File Server Merged For Linux 5.15 - Phoronix
- FadisさんはTwitterを使っています 「linux-5.15からバニラカーネル入りしたカーネル空間SMBサーバKSMBDに驚きの速さで深刻な脆弱性が報告された話。パスに含まれる..が受け付けられていてSMBで共有されているディレクトリの外のファイルまで全て公開してしまう。修正ではパスに含まれる..が潰されるようになる https://t.co/nayQkHVAGN」 / Twitter
- That Didn't Take Long: KSMBD In-Kernel File Server Already Needs Important Security Fix - Phoronix
- FadisさんはTwitterを使っています 「この修正、パスの要素に..が入っていたら問答無用でEINVALするようになってるけど、MS-SMBとMS-CIFSとMS-FSCCを見る限りSMBのパスで..を使う事それ自体は禁止されていないから、\hoge\..\fugaは\fugaと解釈されなければならないんじゃなかろうか…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windows Server IISで、(不正UTF-8エンコードされた)../ を混ぜるパストラバーサル脆弱性は2001年の話だった。 https://t.co/PeuUTvQkSV (この頃から Win32 MultiByteToWideChar API も不正UTF-8エンコードをキチンと弾くように改善された)」 / Twitter
- CWE-22
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「爆速?と思ったら、脆弱性報告が速い話だった。 それにしても、パス・トラバーサル脆弱性は何十年も前からの定番ではある。 (昔、UTF-8が厳格でなかった頃、2byte以上で . や / をエンコードして突破、というのもあった。IIS だったかな) https://t.co/HI4wU3CnHh」 / Twitter
- IISのフォルダ侵入およびファイル要求解析の脆弱性
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「samba 4.13.5-Debian でストリーム保存path指定すると、ストリーム付きファイルを作成できても、削除できなくなる罠。 (wide links 等を指定しても、"check_reduced_name: Bad access attempt: . is a symlink outside the share path" というエラーログが出る)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Windows側からは「アクセス権限が無い」というエラーなので分かり辛い…最初、意図しないACL設定?とか思ってしまった)」 / Twitter
- FadisさんはTwitterを使っています 「Sambaがディレクトリ操作の権限をチェックした後実際にディレクトリを作る前にシンボリックリンクを張り替えると、チェックしたのと違う場所のディレクトリを操作できてしまう脆弱性(CVE-2021-20316)の修正を巡る話 https://t.co/cyZs7ze3OO」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「TOCTOU攻撃」という言い方、初めて知ったり。 (チェックと実行の間隙を突かれる問題) https://t.co/zLkZxP4wUT ファイルシステム系の昔話だと、mkdirがmknodとlinkで実装されてた頃にその間隙を突く話は聞いたことある。」 / Twitter
- Time of check to time of use - Wikipedia
- FadisさんはTwitterを使っています 「この脆弱性は典型的なTOCTOU攻撃なので、openat2でディレクトリのfdを作り、一連の操作を全てfdを引数に取るシステムコールで行うことで防ぐことができるが、類似の攻撃を全て防ぐにはSambaのファイルシステム抽象化部分(VFS)を全てこの方式に置き換える必要があったらしい」 / Twitter
- FadisさんはTwitterを使っています 「通常脆弱性の報告を受けたOSSは修正前に悪用が広がらないように非公開で修正を準備して修正の提供時に公表するが、Sambaのこの脆弱性は必要な変更が多すぎて短期間の非公開ブランチで片付けられそうになかったらしい。公開リポジトリには変更がどんどん入るため、非公開が長引くと辛いことになる」 / Twitter
- FadisさんはTwitterを使っています 「そこでSambaでは本当の目的は述べずに「VFSを近代化させようぜ」というパッチを公開で投げて、本当の目的は述べずにもりもり取り込んでいく、という方法で2年がかりで脆弱性を塞いだらしい」 / Twitter
- MIT Kerberos V5-1.16
- 日本Sambaユーザ会 - Microsoft の CIFS 仕様ライセンスで、Samba Team が声明
- SMBとは|Server Message Block - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- Mac のファイル共有で接続する方法 - Apple サポート
- クラスター共有ボリューム (CSV) を利用する環境での SMB Multichannel 設定の考慮事項 | Ask CORE
- 2017年9月4日 Linux 4.13がリリース,SMB 3.0がデフォルトCIFSに:Linux Daily Topics|gihyo.jp … 技術評論社
- 山市良のえぬなんとかわーるど: SMB over QUIC
- 「SMB 1.0」サポート廃止は最終段階 ~プレビュー版Windows 11 Homeで既定無効に - 窓の杜
- SMB圧縮の新仕様を展開 ~Beta版「Windows 11」がBuild 22621.450/22622.450に - 窓の杜
- ASCII.jp:Windows 10/11で可能だが、デフォルトでオフになっているSMB圧縮の効果を試す
- Microsoft、SMB圧縮の新仕様をWindows 11/Server 2022へリリース - 窓の杜
- ASCII.jp:Windows 10/11を「パスワードレス」で運用する環境でのファイル共有 (1/2)
libarchive
ZIP
- ZIP (ファイルフォーマット) - Wikipedia
- 日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita
- gaborcsardi/zip: Platform independent zip compression via miniz
- ZIPを少しセキュアに暗号化するツールを作った - Qiita
- とみながたけひろさんのツイート: "事情によりzipファイルの構造を調べなおしているんだけど、zipファイルに記録されるタイムスタンプって特にタイムゾーンとかの定義がないのね。2バイトで精度2秒というところからするとFATと同じくローカルタイムでいいのかな"
- とみながたけひろさんのツイート: "なーんも考えずにzipファイルで1時間ごとのバックアップを取る、みたいなことをしていた場合、夏時間のある国や地域ではタイムスタンプが大変なことになるんだな"
- りなたむ || RYOTA NAKAMURAさんのツイート: "暗号化ZIP終焉のお知らせ。 15文字程度のパスワードならRTX2080i 4基で15時間程度で突破されるとのこと。 AzureのNC24rがTesla K80 4基構成で¥443.52/時間なので、単純計算で8000円程度かければ解読できちゃうみたいですねぇ・・・… https://t.co/fpV4SRUtnZ"
- hashcatさんのツイート: "Support for PKZIP Master Key added to #hashcat with an insane guessing rate of 22.7 ZettaHash/s on a single RTX 2080Ti. All passwords up to length 15 in less than 15 hours with only 4 GPUs! Excellent contribution from @s3inlc and @EU_ScienceHub https://t.co/kVUDBrQWM3… https://t.co/9PNj3wC5Ux"
- ZIP形式のままでもっと圧縮する - fujieda's tech blog
- 「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
- 霞ヶ関でパスワード付きzipファイルを廃止へ 平井デジタル相 - ITmedia NEWS
- macOSの暗号化zipファイルはパスワード無しで解凍できる - NFLabs. エンジニアブログ
zlib-ng
- nikqさんはTwitterを使っています 「https://t.co/zVqd7rhVBY zlibがいろいろ更新がされなさ過ぎて次世代リポができてた」 / Twitter
- zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.
- nikqさんはTwitterを使っています 「zlibよりも最新のCMakeフレンドリに変更されている」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「zlibを使ったデータ圧縮をマルチスレッド化するというの、実は普通に可能らしい。ので実装してみた。 https://t.co/r6HcZB3EGG」 / Twitter
- mold/compress.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「実はrawのzlib compressedなデータはそのまま連結するだけでマージできるので、小分けして別々に圧縮してから連結して、ヘッダとトレイラをつければ完成。境目で辞書がリセットされちゃうので、圧縮率がちょっとだけ犠牲になるけど。」 / Twitter
tar
- ドッグさんはTwitterを使っています 「macOS の tar(bsdtar)よりも Python の tarfile ライブラリのほうが圧縮率が10倍以上良かった話.理由は,後者は対象ファイル群をソートしてアーカイブしてから圧縮するため.圧縮するファイル群が時系列であまり変化しない内容だったのでソートすると効率的に圧縮できた https://t.co/fkHzyR4EpD」 / Twitter
- Why are tar.xz files 15x smaller when using Python's tar library compared to macOS tar? - Super User
- ドッグさんはTwitterを使っています 「GNU tar なら tar --sort=name でできるのか.他にも --sort=inode も指定できる.こっちは場合によって disk の seek の回数が減ってアーカイブの速度が上がるっぽい」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「tarファイルを出力するコード、人生で何回も書いている気がする。歴史が古すぎていろんな亜種があるんだけど、とりあえず読めればいい程度のものを書き出すのは実は簡単。 https://t.co/8GYMV54xd6」 / Twitter
- mold/tar.cc at main · rui314/mold
- ぬるぽへさんはTwitterを使っています 「あと、posixではtarじゃなくてほんとはpaxコマンドを使うんだよっていう小ネタのためだけに存在すると思っていたpaxが、tarの99文字以上ファイル名拡張とかのフォーマットの方としてはちゃんと働いていることを知った https://t.co/YvpdCj2Qzr (gnu拡張もある」 / Twitter
- pax
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「GNU tar形式は実は展開するのにファイル数 nに応じたO(n^2)の時間がかかるアルゴリズムになっている。これは ".." をパス名に含むシンボリックリンクが悪用されて無関係な位置のファイルが改ざんされるのを防ぐため。.tarファイルが信頼できる場合は、-Pをつけると速くなる。 https://t.co/qU8sYrE73l」 / Twitter
- The tar archive format, its extensions, and why GNU tar extracts in quadratic time - Mort's Ramblings
LZMA
- FadisさんはTwitterを使っています 「LZMAベースの圧縮形式には圧縮は死ぬ程遅いけど展開は早いっていう特徴があって、殆どの人は圧縮頻度に対して展開頻度が極めて高くなるカーネルやinitramfsの圧縮においてはこの特徴が強すぎる」 / Twitter
- FadisさんはTwitterを使っています 「7-Zipのオリジナルの開発者がLinux版を作り始めたらしい。LZMAを用いる可逆圧縮アーカイバ7-Zipには従来Windows向けの実装しか無かったため、7-Zipで圧縮したアーカイブを送ってくるWindows野郎に対応するために*NIX畑ではp7zipが別の開発者によって実装されていた。 https://t.co/6SwN0GCguR」 / Twitter
- Upstream 7-Zip Adds Preliminary Linux Support - Phoronix
bzip2
- FadisさんはTwitterを使っています 「Linuxカーネルからbzip2によるinitramfsの圧縮を削除する提案がなされている。bzip2による圧縮はgzipについで古くからサポートされてきたが、xzやzstdといった近年サポートされた圧縮形式と比較して展開が遅い割に圧縮率が低く、誰も選ばない形式になっていた https://t.co/kSDW8iiFcJ」 / Twitter
- Patch Proposed For Removing BZIP2 Support From The Linux Kernel - Phoronix
lz4
- ТагсановさんはTwitterを使っています 「zstandardが「オレが一番...!」みたいなネーミングしてたのに、多少のトレードオフはありつつ遥かに解凍が高速な圧縮アルゴリズムでてきたじゃん、facebookはイキったネーミングを反省して https://t.co/XfRxbCV4yE」 / Twitter
- lz4/lz4: Extremely Fast Compression algorithm
- ТагсановさんはTwitterを使っています 「圧縮が遅くても、解凍が速いほうがユーザーにとってはありがたいことが多いので個人的にはlz4推したい、というか早速インフラで使いたい」 / Twitter
ANS
- Daisuke OkanoharaさんはTwitterを使っています 「エントロピー符号化は2009年に登場したANS (Asymmetric Numerical Systems)が算術符号と同等の圧縮率、RangeCoderより2倍高速、ハフマン符号に匹敵する速度で広く使われるようになっている。これだけ基本的な問題に新しい手法が登場することが驚き https://t.co/JayYi7QNFj https://t.co/RczS5Wo6g5」 / Twitter
- [0902.0271] Asymmetric numeral systems
- Asymmetric numeral systems - Wikipedia
- Daisuke OkanoharaさんはTwitterを使っています 「ANSは多くの圧縮で算術符号/ハフマン符号に代わって採用されているが、英語でも解説本は殆どなく、日本語解説もない。理解するためにはこのチュートリアルがおすすめ(Rangeバージョン)https://t.co/S2gdaxRsiw。ANSがエントロピーを達成する証明とともに、復号化から導入しわかりやすく解説している」 / Twitter
- [2001.09186] A tutorial on the range variant of asymmetric numeral systems
技術評論社
- 2018年12月26日 Fedora,圧縮ファイルフォーマット「zchunk」を実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年5月31日 Fedora,RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年4月28日 バイナリパッケージの信頼性と再現性を検証するArch Linuxの独自プロジェクト「Rebuilder」:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年1月15日 Flatpak 1.10がリリース,新たなリポジトリフォーマットを実装:Linux Daily Topics|gihyo.jp … 技術評論社
- 第654回 snapパッケージング入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第656回 EPUBリーダーをsnapパッケージ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第658回 自作のsnapパッケージをコンテナ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第659回 systemd-nspawn+pbuliderでパッケージのビルド環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第660回 自作のsnapパッケージをSnap Storeに公開する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Twitter
- 太一さんはTwitterを使っています: 「最近、小規模にデータ分析基盤を作っているのですけども、これからログを保存するなら7zで圧縮するのは出来るかぎり避けて頂けると幸いです。zipやtar.gzがおすすめです。ファイル全体にランダムアクセス出来ないと解凍できないフォーマットだなんて知らなかった…。」 / Twitter
- 太一さんはTwitterを使っています: 「ストレージの容量単価はどんどん下がっていますので、少々の圧縮効率の良さよりも、取り回しの良さを基準にファイルを取りまとめる方式を選択して頂けると助かります。」 / Twitter
- 太一さんはTwitterを使っています: 「zipやtar.gzはファイル全体に対するランダムアクセスが出来なくてもいいので、GCSやS3のような低単価なストレージサービスから取り廻し易いのです。」 / Twitter
- 太一さんはTwitterを使っています: 「tarはいけるけど、tar.gzはダメかもしれないです(未検証)。https://t.co/PbH0fiavAQ」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています: 「@ryushi tar も頭から舐めないと駄目な format の筈(だって Tape ARchive なので cf. https://t.co/MLwZiaULhX ) 非圧縮なので header を読みながら途中部分の読み飛ばしは可能だけど」 / Twitter
- tar (computing) - Wikipedia
- 眼力 玉壱號さんはTwitterを使っています: 「あれ? .zip はわかるけど .tar.gz も頭から decode しないとアカンのでは?(途中に意図的に deflate state の reset を入れてない限り出来ない筈…)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「xz圧縮形式は貴重なデータを長期保存するには使うべきではない。xzの仕様は完全に文書化されておらず、しかも仕様と異なる実装が存在する。またxz形式は拡張可能性が高すぎて結果の予測が不可能。さらにxzのエラーチェック機構は不完全でデータ改ざんの危険性がある。 https://t.co/41fWaLxPYu」 / Twitter
- Xz format inadequate for long-term archiving
- GitHub - libarchive/libarchive: Multi-format archive and compression library
- libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
- libarchive-3.2.0
- LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
- Dropbox、改良型Brotliを使用して同期パフォーマンスを改善
- Rockridgeさんのツイート: "MozillaがFirefoxユーザーに対し送信するスニペットのデータ容量を削減した話。画像の最適化はさほど効果がなかった一方、画像のリンクへの置き換えやGZipからBrotliへの切り替えは大きな効果があったという。 / “U…” https://t.co/JTa932baYW"
- 圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案 | マイナビニュース
- Huffman Coding with Gap Arrays for GPU Acceleration | 49th International Conference on Parallel Processing - ICPP
- Facebookの圧縮アルゴリズムZstandard 1.5におけるパフォーマンス向上
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++によるモダンなLZアルゴリズムの実装。ビットの読み書きから二分木を使ったハフマン符号の構築、マッチングアルゴリズムの詳細を解説している。メイン部分のコードは1,000行たらずでgzipと同程度に速い。 https://t.co/OFGhG2ZaXG」 / Twitter
- Modern LZ Compression
- Facebookが独自開発のアプリ圧縮技術「Superpack」を発表 - GIGAZINE
- 高梨陣平さんはTwitterを使っています 「スゴイ。YAMAHAが世界を席巻したシンセサイザー、DX7のFM音源のreverse engineering。ROMの容量が少い当時、サイン波を1/4のみ保存、差分の保存で圧縮等。かけ算が重いのでlogの加算を利用。logが重いのでテーブルを利用等。 スレッドで紹介されているblog記事がより詳しい。https://t.co/inrw6wKbOI」 / Twitter
- Yamaha DX7 reverse-engineering, part III: Inside the log-sine ROM
- Miura HidekiさんはTwitterを使っています 「サインテーブルなら1/4だけを保存するのは常識だと思っていたけど、サインテーブル自体が失われた技術なのだろうか」 / Twitter
- とみながたけひろさんはTwitterを使っています 「元祖FM音源の内部回路で掛け算をけちるためにlog領域で計算している、というの、あの当時も後段につけるDAコンバーターがlogフォーマットになっているところから推測されていましたよね(あれ私の周りだけ?)」 / Twitter
- とみながたけひろさんはTwitterを使っています 「この手の音声系のhackといえば 直交変換使った音声圧縮(mp3みたいなの)は今どきのガチCPUとかは別としてデコードが重くてゲームの効果音みたいなので沢山音を重ねるのが辛いのだけど 直交変換前の周波数領域で加算して直交変換は一回で済ます、みたいなテクノロジーとかもあったな (CRIだっけ…?)」 / Twitter
- 2022年4月26日 圧縮アルゴリズム「Zstd」,Linux 5.19のファームウェア圧縮で採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
file コマンド
- ぬるぽへさんのツイート: "最近のfileコマンドは、先頭のマジックとマジックごとに用意されたテキストデータベースを比較するとかじゃなくて、専用のバイトコードでマジックのインタプリタが書かれていてそれを走らせて判断しているらしい"
- Tsukasa #01さんのツイート: "magic のバイトコードは一応チューリング完全になることを回避してるはず (私が知る magic では自由な形でのループは制限されてたはず)。 #kernelvm"
- Tsukasa #01さんのツイート: "あぁ、線形実行する形になってるからやはりチューリング完全ではない (ある値にマッチしたら深いマッチを行える程度) し、実行時間も完全に予測/制御可能。 #kernelvm"
- 本の虫: 実行可能ファイルかつPDFファイルかつJarファイルかつHTMLファイルとして認識されるファイル
Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「CrystakDiskMark から呼ばれる RAMDiskへの diskspd が(FastCopyに比べ)異様に速くて??となったけど、-Zオプション(全WriteExで同一バッファ指定)が強烈に効いていた様子…なるほど。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「CrystalDiskMark さん、緑色バーの長さ(特に最上列)はどうやって決めているのかな…? https://t.co/LCczFy4Cts」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「@shirouzu 常用対数です。100GB/sで満タンになるのかな?1000GB/sだったかな。 家帰ったらソースコード確認してみます。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@openlibsys おぉ、なるほど! ある基準があって、それへの対数表示になっている、ということですね。ありがとうございます。」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「@shirouzu ソースコードはこんな感じでした! scoreには、MB/s単位の値が入るので 1MB/s=1/6 10MB/s=2/6 100MB/s=3/6 1,000MB/s=1GB/s=4/6 10,000MB/s=10GB/s=5/6 100,000MB/s=100GB/s=6/6 ということで、100GB/sでメーターが満杯になります! https://t.co/WKVejmYYmV」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@openlibsys なるほど! よくわかりました。ありがとうございます。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SSD7505を(とりあえず)PCIe3.0マシンに接続して、FastCopyβ版の実験。 Adminかどうかで2倍の速度差…Adminだけで使えるSetFileValidData API の威力…Windowsでも一般ユーザで使えるposix_fallocate(2)ほしいところ。 https://t.co/0Vc1nuvywA」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(しかし prealloc系は近代的ファイルシステムでないと、延々と0fill走る場合があるので注意)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「FastCopyのバッファサイズ、NVMe RAID だと 2GB以上が最速になる状況が出て来た。 ヘッドシークコストの無いSSD系だと、I/Oサイズ * ncq を超えると、さほど意味がないのでは?と思っていたけれど、そうでもなかった。 (意外とI/O速度のバラツキが多いという事かも…要調査)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1年前発売Adaptec の SAS/NVMe 32本対応PCIe RAIDカード。 PCIe 4.0全二重の速度がきちんと出るらしい。 https://t.co/JAzh6zha4U」 / Twitter
- 24Gbps SAS/PCIe 4.0対応のRAIDカードがMicrochip Adaptecから、ポート数などの違いで4モデル - AKIBA PC Hotline!
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ここでのお話。 https://t.co/UEsVNHzWLc」 / Twitter
- Performance similar to DiskSpd · Issue #134 · FastCopyLab/FastCopy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、各種実験の結果「FastCopyでは不要」と判断したニッチAPIが、超高速コピー(10~40GB/s)時代になってまさかの復活の巻。 超高速環境だと、最低10%最大50%高速化されるかもしれない…ただし管理者特権に限るので、そのうち「高速コピーは管理者権限に限る」といった tips が囁かれるかも(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(とはいえ、MSさんには管理者権限不要でデバイス限界を引き出すプログラムを書かせて欲しい…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「非同期IO完了コールバック(OS側が呼ぶ)に、printf を入れると 1.9GB/s → 2.4GB/s に転送レートが大幅増大する現象が起きていて頭を抱えるの巻。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「意外と深い話だった。 stdout に出力し続けると、その thread の CPU affinity が固定化されやすい、というOS挙動が効いていた。 (でも、CPU#0 に固定されるわけでもないのだよな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そもそも、ほぼ Direct I/Oのみのテストプログラム。 CPU affinity だけで I/O速度がこんなに変わるのは何故かしらん…? (I/O bufferは read/writeのターゲット指定以外は全く触らないので、cache問題では無いはず)」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています: 「@shirouzu 適当にコメントしますが、Dual CPU構成の場合、ストレージ->PCIe->CPU0になるか、ストレージ->PCIe->CPU0->QPI->CPU1になるかで、ちょっと帯域が変わった経験があります。 (これは意図してCPU affinityを固定したケースですが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kkaigai ありがとうございます! なるほど、マルチCPUだとQPI経由という話がありうるのですね。 (今回はシングルCPUなので別件だとは思いますが)」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@shirouzu OS 側が呼ぶ、非同期 IO 完了コールバックが所在するアプリの CPU affinity が固定されていない場合は、おそらくはコールバックを呼ぶ準備段階で、アプリが OS 側と異なる CPU の場合に、アプリの CPU を OS 側と同じ CPU に切り替える必要があるのかなと思いました」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお printf を抜いて、CPU affinity を効かせると、3.2GB/s まで速度向上。 (それにしても、特定ファイルでのみこの現象。同じNVMeドライブでも別ファイル(同じサイズ)だと、affinity なしでも3.2GB/s 出るのだよな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「少し興味深いのは、CPU affinityの有無に限らずデバイス使用率は常に100%であること。 (affinity無し=デバイス使用率100%のまま転送レートが40%低下) 昔、小崎さんが少し近い話を書いておられたが、手元は1CPUマシンで、NUMAではないからなぁ… https://t.co/f4nMmjZa7K」 / Twitter
- スケジューラの挙動は三巨頭会談で決まるのだ?(2/2) - @IT
- R. ShioyaさんはTwitterを使っています: 「@shirouzu リンク先の記事を読んで思ったのですが,IO 完了が要求とは違うコアに散らばってしまうような場合,キャッシュのヒット率にかなり影響が出そう&別コアのキャッシュにデータを移すために無駄にコア内ネットワークが混雑しそうな気がするのですが,どうでしょうか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya コメントありがとうございます。 今回の実験って、プログラムからはbufferに直接触らない(DirectIOしたあと読み捨て)なので、キャッシュの影響って考えづらい気がするのですよねぇ… https://t.co/MLq6m8JBq6」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win11 の SetThreadGroupAffinity API は一度でも実行すると、1プロセッサグループのみの所属になる、という解釈で良いのかな…? https://t.co/p4Dfc7SWGE」 / Twitter
- SetThreadGroupAffinity function (processtopologyapi.h) - Win32 apps | Microsoft Learn
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya それと「キャッシュのヒット率にかなり影響が出そう&別コアのキャッシュにデータを移すために無駄にコア内ネットワークが混雑」だと CPU使用率が上がりそうなものですが、そういう傾向はなくデバイス使用率が100%のまま転送レートが低い状態…よくわからないです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに MS製diskspd はデフォルトでCPU affinityを設定していて、MSの人はIOに与える効果を知っていた様子…ともあれその機序が知りたいなぁ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「FastCopy掲示板で、IOMMU disable(& PCIe Hotswap off)にしたら PCIe4.0 全二重速度=42GB/s 出るようになったという報告。 …IOMMUと全二重は関係しそうもないけれど、謎だ。 https://t.co/qGo7UOh81R」 / Twitter
- Performance similar to DiskSpd · Issue #134 · FastCopyLab/FastCopy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「vt-d をOFFにすると変化あるかも?と思ったのだが、特に変化なかった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya そういえば、パフォーマンス低下は非同期I/Oの同時発行数が多めで顕著でした(ncq=256とか。でもSSDでは一般的な値)。 大量非同期I/O=コア移動増大しやすいのですかね。 これに加えて、コア移動=IOMMU TLBフラッシュ発生と考えると、何となく辻褄が合いそうな気もします。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu @r_shioya ちょっとコンシューマ系のCPUは分からないのですが、インテルのCPUはDMAの結果がLLキャッシュの一部に直接の書き込まれるような仕様だったと記憶しています(Intel DDIO)。そしてDMAにどれだけ時間がかかろうとCPU時間はゼロに見えると思いますから、ワークセットがキャッシュに収まるかどうかに…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu @r_shioya よって結果が変わっている線は捨てきれないように思いました。ただ、メインメモリ経由でDMA転送(読み&書き)してるとしても使用メモリバンド幅は3.2GB/s*4=12.8GB/sなので、ちょっと説明つきづらい気もしますが」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho @r_shioya コメントありがとうございます。 ただ DDIO は XEON系のみみたいですね。 https://t.co/BrqV29RDGn」 / Twitter
- Is there DDIO equivalent I/O technology in i9 or other new generation CPU? - Intel Communities
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu @r_shioya なるほどです。となると、データは常にメインメモリに落ちてる感じでしょうか。並走度を上げて負荷が増えそうなところでいうと、あとは話に出ているIOMMUとかですか…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Intel pcm や vtune を入れて調査するも、関連しそうなプロファイル(特にPCIe関連)が上手く取れないな…しばらくペンディング。」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「@shirouzu すでにプロファイラを導入されているのであれば手間もかからないと思いますし,通常のキャッシュミスや TLB ミスなんかの,直接は関係しそうにないものの数値に謎の変化がないかを一応確認してみても良いかもしれません.予想外の何かの副作用で変な影響が出ているなんて事もあるかもしれませんし.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一度でも実行すると二度と全プロセッサグループに戻る方法がないわけで、なにか解釈が違う気がする… と言って、この動作確認だけに128〜256論理プロセッサPCを調達するのもなぁ」 / Twitter
- そすうぽよ(すごい)(早寝早起き)さんはTwitterを使っています 「木構造によるファイルシステムと、内部的な並列度で性能を稼ぐ現代のSSD、相性悪くない?大丈夫?」 / Twitter
- KOBA789さんはTwitterを使っています 「@_primenumber 緩和策としては、leaf node 以外は全部メモリに乗っけてしまうなどがあります」 / Twitter
- そすうぽよ(すごい)(早寝早起き)さんはTwitterを使っています 「@KOBA789 電源落ちたときどうするんでしょう? 不揮発性メモリを使うにしてもここをNANDフラッシュで保持したら同じ問題に当たりそうです…」 / Twitter
- KOBA789さんはTwitterを使っています 「@_primenumber 最悪 leaf ノードを全走査すれば branch node は再構築できるので……(それで遅いというなら、リカバリ高速化はまた別の頑張りポイントです)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ファイルシステム中から重複した内容のファイル(クローン)を高速で発見するツール。ディスクの種類 (SSD/HDD)によって異なるアルゴリズムで並列化する。詳細な設定が可能で検索結果をJSONで出力し、重複ファイルに対するいろいろな処置を決定できる。 https://t.co/gmDYXtTP8k」 / Twitter
- pkolaczk/fclones: Efficient Duplicate File Finder
- やきにくさんはTwitterを使っています: 「なんかファイルシステムのようなものをRDBで管理するようなものを作っている気がしていて、これ別にファイルシステムでよくない?ってなってきた。」 / Twitter
- やきにくさんはTwitterを使っています: 「トランザクション制御だけアレだけど。」 / Twitter
- やきにくさんはTwitterを使っています: 「CREATE TABLE collections (...) -- directoryみたいなもの CREATE TABLE objects (...) -- fileみたいなもの CREATE TABLE references (...) -- symbolic link みたいなもの」 / Twitter
- やきにくさんはTwitterを使っています: 「Compositeパターンじゃん」 / Twitter
- ファイル書き込みをするプログラムで気をつけた方がよいこと | IIJ Engineers Blog
- ASCII.jp:WindowsのACL(Access Control List)を解説する【準備編】 (1/2)
- ASCII.jp:WindowsのACL(Access Control List)を解説する【定義編】 (1/2)
- ASCII.jp:icacls.exeコマンドの設定項目とWindows内部のACL設定との関係 (1/2)
- ASCII.jp:WindowsのACL(Access Control List) エクスプローラーが扱うACL (1/2)
- OSTree - Google 検索
- カメラファイルシステム規格 - Wikipedia
- Design rule for Camera File system - Wikipedia
WinFS
- WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
- WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
- WinFS - Wikipedia
- Microsoft Developers Conference 2006 ― T2-206 新たなファイルシステム"WinFS"の方向性とその概要 - NyaRuRuが地球にいたころ
- Windows PowerShell, WinFS, IQueryable - NyaRuRuが地球にいたころ
- WinFS について (1) - NyaRuRuが地球にいたころ
- WinFS について (2) - NyaRuRuが地球にいたころ
- WinFS について (3) - NyaRuRuが地球にいたころ
- WinFS について (4) - NyaRuRuが地球にいたころ
- WinFS についてのビル・ゲイツ氏の最も新しい言及 - NyaRuRuが地球にいたころ
- WinFS Overview - NTFS.com
SQLite
町丁・字等別境界データ
- A002005212015.pdf
- simonw/dbf-to-sqlite: CLI tool for converting DBF files (dBase, FoxPro etc) to SQLite
- dBASE - Wikipedia
MS
- 「DB Browser for SQLite」“SQLite”のデータベースを管理できるソフト - 窓の杜ライブラリ
- DB Browser for SQLite - 窓の杜ライブラリ
- DB Browser for SQLite
- sqlitebrowser/sqlitebrowser: Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
- 「PupSQLite」SQLiteのデータベースをGUIで操作できる高機能管理ソフト - 窓の杜ライブラリ
- 「SQLite」データベースの管理ツール「PupSQLite」がメジャーバージョンアップ - 窓の杜
News
- ファイルシステムよりも35%高速に | インフラ・ミドルウェア | POSTD
- 「SQLite」データベースに脆弱性--「Chromium」ベースのブラウザにも影響 - ZDNet Japan
- SQLite/Chromium脆弱性“Magellan”は「Electron」にも影響 ~修正版が公開 - 窓の杜
- SQLiteが「大量の小さなクエリ」の処理を得意とする理由とは? - GIGAZINE
- Cloudflare D1でCloudflareワーカーのための分散SQLiteを提供
Publickey
- Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として - Publickey
- SQLiteの正式なWebAssembly版「SQLite3 WASM/JS」が登場 - Publickey
- 分散SQLiteをCDNエッジで提供する「Cloudflare D1」がオープンアルファとして利用可能に - Publickey
- 「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に - Publickey
- SQLite3 WASM/JS、Origin Private File Systemを用いてChrome上の高速なローカルDBが機能するとGoogleが明らかに、廃止されたWeb SQLの代替として利用可能 - Publickey
blog
- Placesデータベースの読み書き処理を大きく減らす裏技(Firefox 49以降) - Mozilla Flux
- SQLiteバイトコードを追う — 鱒身(Masu_mi)のブログ
- SQLiteデータ型の仕様とセキュリティ問題 – yohgaki's blog
- ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
- SGソフトウェア開発ブログ: [SQLite]CでSQLiteのユーザ定義関数を作る その1
- SQLite公式のWASM実装を試す - console.lealog();
OSDN
- WALの強化などが行われた「SQLite 3.11」リリース | OSDN Magazine
- 組み込み向けデータベースライブラリ「SQLite 3.14」リリース | OSDN Magazine
- SQLデータベースエンジン「SQLite 3.7」リリース、性能などを改善 | OSDN Magazine
- 「SQLite 3.20」リリース | OSDN Magazine
- SQLデータベース機能を提供するライブラリ「SQLite 3.24」リリース | OSDN Magazine
- ウィンドウ関数が加わった「SQLite 3.25」公開 | OSDN Magazine
- 「SQLite 3.37」が公開 | OSDN Magazine
- JSON関数をビルドインした「SQLite 3.38」が公開 | OSDN Magazine
Qiita
- SQLite C言語向けAPI チートシート - Qiita
- C言語でSQLiteを使う - Qiita
- C言語でsqlite - Qiita
- 渋川よしきさんのツイート: "このライブラリのいいところは生DBから必要な情報を抜いてくるので、DBのフル機能が使えるし、GUIのツールも活用できる。 : GOのORM sqlboiler 使ってみた on @Qiita https://t.co/Fei2tYSOS8"
- GOのORM sqlboiler 使ってみた - Qiita
- なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する - Qiita
Wikipedia
- SQLite - Wikipedia
- SQLite - Wikipedia, the free encyclopedia
- インメモリデータベース - Wikipedia
Twitter
histric
histric-1
- Sho ShimauchiさんはTwitterを使っています: 「ケンオールでは郵便番号データ等の静的なマスターデータは全部SQLiteに書き込んでデプロイしてますね https://t.co/BlVxFK4K8o」 / Twitter
- かるぱねるらさんはTwitterを使っています: 「SQLite、静的なRead Replicaを配布して使えばマスターデータの管理と相性が良いと5年以上はことあるごとに主張しているんだけど、この良さの説明が難しくて未だにチームメイトを説得できた試しがない」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています: 「https://t.co/gyKgaKK3MP Cloudflare D1はリードレプリカ無しだとstrongly consistentだけどリードレプリカ有りだとレプリケーションのラグがあるのでstrongly consistentではないとCloudflareで働いている方が言われていました。」 / Twitter
- Just clarifying - D1 without read replicas is strongly consistent. If you add re... | Hacker News
- Hiroaki NakamuraさんはTwitterを使っています: 「たぶん、Litestream同様プライマリDBから非同期レプリケーションでリードレプリカに変更を反映しているんでしょうね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「D1素晴らしい。なんか Cloudflare の新製品すごいのばかりなんだけど。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「ようは Durable Object の仕組み上に SQLite のファイルまんま載せてるんだと思うんだけど、層を追加してテーブル単位やパーティション単位にファイルをばらして ATTACHできればスケールの問題も解決するはずなので将来的にはすごいことになりそう。」 / Twitter
- 🕳️さんはTwitterを使っています: 「https://t.co/DpuE0MZuJz 読んでるけどsqliteドライバーそのまま使えなさそうだからORM拡張しないといけなさそうだ(RDSのData APIみたいに)」 / Twitter
- Announcing D1: our first SQL database
- Fadisさんのツイート: "sqlite-3.17.0がリリースされました。今回の変更点はパフォーマンスの向上やコンパイルオプションの改良などデータベースの使い方は変わらない変更が中心だが、ひそかにsha1を求める組み込み関数が追加されている https://t.co/YKG4Kw5Wqm"
- Fadisさんのツイート: "複数のテーブルを結合して1つのテーブルとして見えるようにするUNION仮想テーブル、インタラクティブインターフェースの補完の挙動を変更するcompletionテーブル等の機能が追加されたsqlite-3.20.0がリリースされました https://t.co/MreLLp1dXc"
- Fadisさんのツイート: "SQLite 3.22.0からの新機能zipfile。zip形式のアーカイブの中身をSQLクエリで漁れるようになる。つまり、SELECTでファイル一覧を取得し、INSERTでファイルを作り、DELETEでファイルを消し、UPDATEでファイルを書き換える https://t.co/HFqpH8aRVv"
- The SQLite Zipfile Module
- Shirouzu Hiroaki(白水啓章)さんのツイート: "設定類をiniではなくてsqliteにすると複数起動時の相互反映がやりやすい。 一方で、I/F を用意しない限り、ユーザ変更できなくなる縛りが出るので難しいところ。"
- 鯉江さんのツイート: "相互反映というのがイメージがわかないですが、起動したときにアトミックに更新するのはできても、異常終了したときにに更新するのはできないので、そんなに便利ではないような。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のFastCopyは複数起動して、それぞれで設定を変えても、最後にiniを上書きした方しか残らないのですよね。 ただ、何も考えずに取り込むと矛盾した項目が取り込まれる可能性もあって、なかなか簡単ではないのですが。… "
- Fadisさんのツイート: "SQLite 3.24.0がリリースされた。主な変更点は、UPSERTをできるようになった、文字列にSQLiteのキーワードが含まれているかを調べる関数の追加、VACUUMするとデータベースの全てのデータが削除されるモードSQLITE_DBCONFIG_RESET_DATABASEの追加他 https://t.co/pBRdV82iTL"
- 本の虫: SQLiteの行動規範がキリスト教徒の戒律を全文引用していて香ばしすぎる
- Kazuho Okuさんのツイート: "SQLiteのCoCを批判するのにキリスト教の悪口を持ち出すのマジ最悪手というか、欧米白人中心のコミュニティで非キリスト教徒が少数派であるのと同様に、日本国(あるいは日本語話者)内でキリスト教徒が少数派であることを考えれば、目糞鼻糞以下の行為ですよ"
- Kazuho Okuさんのツイート: "Thank you SQLite for choosing religion as a new tool to offend minority developers"
- Krøstianさんのツイート: "Apparently SQLite has a code of conduct that weirdly comes across as a "fuck codes of conduct". Will not participate in that community in any way.… https://t.co/p4U9zRzpb3"
- Jan-Piet MENSさんのツイート: "I will not contribute to SQLite: “First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.” https://t.co/gmi3eicc5Q #codeOfConduct"
- Code Of Conduct
- およげmatsuuくんさんのツイート: "ワハハクソでしたな。批判の嵐だったのでSQLiteは結局Mozilla Community Participation Guidelinesを行動規範として採用した模様。 / “本の虫: SQLiteの行動規範がキリスト教徒の戒…” https://t.co/xdpdskN5sZ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sqlite(C言語)で、inner join・サブクエリを含むSQL文が一発で動いてホッとしたのだが、そもそもコンパイル時に文法エラー及びテーブル定義との不整合エラーを検出できる仕組みが欲しいところ。"
- 日比野 啓 (Kei Hibino)さんのツイート: "呼ばれたような気がする… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Haskellなら、HRRがありますね! https://t.co/eG4HCggy77… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SQLite3 では TEXTカラムに binary形式で保存できるが、その場合LIKE検索は出来ない様子。(少なくとも Python sqlite3 では)」 / Twitter
- FadisさんはTwitterを使っています 「SQLite 3.33がリリースされたらしい。SQLite 3.33では新しく他のテーブルをSELECTした結果を使ってUPDATEを行うUPDATE FROMがサポートされる。またページ番号をintで扱っていた所が32bit符号なし整数に揃えられ、281TBまでのデータベースが作れるようになる https://t.co/cQXfWMJOpW」 / Twitter
- SQLite 3.33 Released With PostgreSQL-Inspired UPDATE FROM, Database Files Up To 281 TB - Phoronix
histric-2
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteにjson突っ込むか… https://t.co/z3IFzg4k2Q」 / Twitter
- SQLite as a document database
- 井山梃子歴史館さんはTwitterを使っています 「jsonのフィールドにインデックス貼れるの面白いな」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Richard Hipp (SQLite開発者) インタビュー。彼は軍艦の診断システムを開発中、Informixが頻繁にクラッシュするのに頭にきてデータベースを書き始めた。いまやSQLiteは世界でもっとも使われているコードである。彼曰く「自由とは自力で実装できること」話し上手で痛快。 https://t.co/26Qqh2N4Oc」 / Twitter
- The Untold Story of SQLite With Richard Hipp - CoRecursive Podcast
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにSQLiteはおそるべき信頼性をもっており、分岐被覆率100%を達成している。テストケースは数十万個あり、これらをさらにパラメータ化している。テストは多様なアーキテクチャ (big endianなCPUも含む)・OS上で行われ3日間ぐらいかかるとのこと。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なお、Hipp自身によるSQLiteの発音は「えすきゅーらいと」ではなく「えすきゅーえるあいと」。彼はSQL以外にもプログラミング全般に一家言もっていて聴きがいがある。新山から見るとヒーローの一人といってもいい。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SQLiteに計画中の STRICTテーブル案。従来のSQLiteテーブルとは違い、データ型を厳密に指定できる。指定の型に自動変換できない場合はエラーを発生する。 https://t.co/reKdiRsAeH」 / Twitter
- STRICT Tables
- 🕳️さんはTwitterを使っています: 「Litestream思ったより強力でhttps://t.co/t6KuG7OxYAで動かせるから困っていた部分がすべて解決してしまった」 / Twitter
- Deploy app servers close to your users · Fly
- 🕳️さんはTwitterを使っています: 「BDBとかNFSで頑張ってCGI書いてた世界からリープフロッグしてきたようなツールで、すごいことを考える人がいたもんだ」 / Twitter
- 🕳️さんはTwitterを使っています: 「EFS for Lambda https://t.co/z2HJfMKKsm にsqliteファイル置いてDynamodbと比較してる人いたから、concurrency 1になってもいいからうまいこと読み書きできないかな」 / Twitter
- Using Amazon EFS for AWS Lambda in your serverless applications | AWS Compute Blog
- VさんはTwitterを使っています: 「"SQLiteの各バージョンで実施されている多くのテストの中には、電源障害、I/Oエラー、OOM(out-of-memory)エラーをシミュレートするテストがあり、これらのイベントのいずれにおいてもデータベースの破損が発生しないことを検証している。"」 / Twitter
- VさんはTwitterを使っています: 「How To Corrupt An SQLite Database File https://t.co/vKVx40snA7 "SQLiteデータベースファイルを破損させる方法" 以前 TL に話題になってたけど、これほんとおもしろいな。」 / Twitter
- How To Corrupt An SQLite Database File
- VさんはTwitterを使っています: 「"また、SQLiteは約20億のアクティブなデプロイメントで、深刻な問題がないことが現場で実証されています。" 20 億 ...」 / Twitter
- Kazuho Okuさんのツイート: "顧客ごとにSQLiteなファイル作ってデータ入れることで、RDBMSにおけるマルチテナンシー問題を回避してるってことなんかな / “ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cyboz…” https://t.co/R8eGK1LWe7"
- Kazuho Okuさんのツイート: "アクセス頻度が低いサービスが大量にある場合、アプリケーションサーバ立てるよりCGIのほうが便利だし、RDBMSサーバ立てるよりSQLiteのほうが便利"
- FadisさんはTwitterを使っています 「rqlite 7.0がでたらしい。rqliteはsqliteをストレージエンジンとしつつ、クエリをログとして、分散合意アルゴリズムRaftを上に乗せる事で高可用性を実現する分散データベース。7.0ではConsulを使ってクラスタに参加したがっているノードを自動で見つけるようになる https://t.co/pe7O8E918c」 / Twitter
- Rqlite 7.0 Released For Distributed Relational Database Built Atop SQLite - Phoronix
- FadisさんはTwitterを使っています 「rqlite、Raftのleaderが複数のクエリに順番をつけて1本のキューに流すから、個々のfollowerは1本のキューで順に流れてくるSQLを処理する能力しか求められなくて、それsqliteで十分では?ってなるのか」 / Twitter
- SQLite 3.38で、JSONクエリ、エラーメッセージなどが改善
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SQLiteの作者自身による「SQLiteデータベースをcorruptさせる方法一覧」。こんなの問題空間とそのコードを隅から隅まで熟知していなければ書けない。こういう一覧の存在自体がSQLiteの信用に貢献している。 https://t.co/LIZQbE5qbH」 / Twitter
- How To Corrupt An SQLite Database File
histric-3
- Kazuho OkuさんはTwitterを使っています: 「思うところとしては、node や irb みたいな、対話モードがほしい気がする。 sqljson < foo.json って起動したら、対話モードで stdin テーブルに対して任意の select クエリが書ける的な。その方が毎回データロードしなくてよくて速くなるし」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「こっちも試してみた。2倍以上速いし、余計な引数が少ないの良い dsq -s json 'select sum(credit) from (select max("off"+"len") as credit from {} where "type"="stream-send" and "stream-id">=0 group by "stream-id") as t1' < quic-log https://t.co/M2fUaQYQ3r」 / Twitter
- Yasushi AbeさんはTwitterを使っています: 「https://t.co/PLg9IiJnco dsq かな、と思ったけど別のものだった。こういうの流行っているのかな」 / Twitter
- multiprocessio/dsq: Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.
- Tatsuhiko MiyagawaさんはTwitterを使っています: 「@kazuho こんなので sqljson data.json .jq.path https://t.co/Qkln2Iu23z」 / Twitter
- open and query json file with sqlite3
- trdsql 標準入力 | Noboru Saito's page
- Kazuho OkuさんはTwitterを使っています: 「これ、結局 trdsql https://t.co/krnUJZiQ72 に落ち着いてる。dsq は、なんか複雑なクエリでの結果がおかしかった」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「インデックスないからしょうがないんだけど、サブセレクトで order by limit 1 するようなパターンは遅すぎるなぁ select tid,seq,`stream-id`,off,len,(select pn from - as t2 where t2.seq>t1.seq order by t2.seq limit 1) as pn from - as t1 where type="stream-send" order by `stream-id`+0」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SQLiteに実験的に実装された「インデックスおすすめ機能」。.expertモードを有効にしたあとでSELECTを実行すると、おすすめの CREATE INDEX文が表示される。同様の機能はPostgreSQL用のpganalyzeにもある。 https://t.co/i4qy3HVoYP」 / Twitter
- Command Line Shell For SQLite
- Takashi KawasakiさんはTwitterを使っています: 「「DNSの浸透」なんていうのはほっとけと思うけど、「SQLのサニタイズ」なんて言ってる奴は危ないので直ぐに成敗せねばならない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「今でも、SQLを文字列の連結で作ろうとしてる危なっかしいコードを偶然見てしまうことはあるんだよなぁ。sqliteとかをアプリ内で使ってるようなケースによく見るんだが。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「怖いものみたさで、「sqlite python 使い方」でググってみたけど、executeに直接文字列を渡しているケースはたくさん見つかるけど、プレースホルダを使っている例とかはほとんど出てこない・・・。これは。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「こんなの、何にも知らない初心者なら、文字列連結で頑張ってSQLを作ろうとしても仕方がない部分があるなぁ。これだとSQLインジェクションどころか、サニタイズという言葉にすらたどり着かないだろう・・・。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「executeにSQL渡して動かして見せて、簡単でしょ?なんて感じで記事を終わらせるのは流石にダメだろ。SQLをインタラクティブに実行させてSQLの一通りの基本動作の導入はしていたりするので、他の書籍とかを当たらなくても、一通りの処理の仕方が理解できてしまうところが危うい。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「SQLを文字列操作で作って、それをexecuteで実行すれば正常系は全部動いてしまう。ここで、少しでも、クオートの処理が難しいなとか思ってくれれば次の展開があるけども、それがないと、そのままになってしまう。ヤバい。」 / Twitter
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「JSON形式のログを読み込む際にはこのSQLite拡張を使って読むと爆速な上にSQLの集計が行えて便利だぞ。最高では。 / “GitHub - asg017/sqlite-lines: A SQLite extension for reading large files line-by-line (NDJSON, logs, txt, etc.)” https://t.co/GlyoxLaAsy」 / Twitter
- asg017/sqlite-lines: A SQLite extension for reading large files line-by-line (NDJSON, logs, txt, etc.)
- ドッグさんはTwitterを使っています: 「sqlite の DB をエントリ単位で透過的に zstd で圧縮することで,ランダムアクセスはできつつ DB のサイズを80%抑えることができるらしい https://t.co/4eBcg0Bs8E」 / Twitter
- GitHub - phiresky/sqlite-zstd: Transparent dictionary-based row-level compression for SQLite
- ドッグさんはTwitterを使っています: 「DB アクセスした時のレイテンシはどれぐらい落ちるんだろう」 / Twitter
- 🐱しゃかきび🍑さんはTwitterを使っています: 「@Linda_pp 机上の話ですがレイテンシも上がるのでは?大抵リソースはディスクアクセスよりCPUの方が余ってるので、ファイルアクセスサイズが小さい方が有利だと感じます。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SQLiteの構文解析に使われている "Lemon"パーサジェネレータ。LALR(1)をサポートしており、基本的な機能はyacc/bisonと同じだが、よりバグが起こりにくく、組み込み環境でも安心して使えるように設計されている。 https://t.co/y8Z0Vpt0uS」 / Twitter
- The Lemon Parser Generator
- Makoto Kato ︎︎さんはTwitterを使っています: 「SQLiteとzlibはあれではないなにか別のものに移行されるべきなんだよな (コントリビューションが超めんどいから)」 / Twitter
- glandiumさんはTwitterを使っています: 「@makoto_kato SQLiteの場合は単純にコントリビューション拒否」 / Twitter
- くまぴさんはTwitterを使っています: 「郵便番号をRDBMSサーバに入れると、アクセスが集中しスケーラビリティが抑制されてしまう SQLiteに格納し、コンテナの始動時にS3からロードすることで 運用の容易さとスケーラビリティを兼ね備えたアーキテクチャに #djangocongress」 / Twitter
- SQLite Home Page
- Getting Started - Litestream
- SQLのインデックスとそのチューニングについてのオンラインブック
- MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
- SQLite4: SQLite4
- SQLiteで組み込みDB体験 (1/3):CodeZine(コードジン)
- SQLite入門
- How Does a Database Work? | Let’s Build a Simple Database
- cstack/db_tutorial: Writing a sqlite clone from scratch in C
- Joining CSV and JSON data with an in-memory SQLite database
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SQLiteのコードベースはわずか130kLocであり、これは週末に時間をかけて読もうとすれば可能なサイズである。ここではSQLiteの内部データ構造を解説している。まず各レコードがPageに分割され、それらがB-treeでインデックスされている様子がわかる。 https://t.co/A0BeSlzueI」 / Twitter
- SQLite Internals: Pages & B-trees · Fly
- Introducing LiteFS · Fly
Window 関数
- [SQL] 最強の分析ツールと言われるWindow関数について私が学んだこと | DevelopersIO
- window関数を使いこなす 〜分析のためのSQL〜 - Qiita
- ウィンドウ関数
- Window関数 | Let's Postgres
- 窓関数 (SQL) - Wikipedia
- 分析関数の衝撃(前編) (1/2):CodeZine(コードジン)
- PostgreSQLの分析関数の衝撃(7) ――window関数の変わった使用例 (1/4):CodeZine(コードジン)
- SQLの便利な関数 〜ウィンドウ関数〜 | GROUP DEV BLOG | TECHNO MOBILE
- 分析関数 (Transact-SQL) | Microsoft Docs
B+ Tree
μTree
- okamo(aged 5 yrs.)さんはTwitterを使っています 「μTree スループットだけでなくtail latencyを改善するPMEM向けB+tree。従来手法ではstructural refinement operation(merge split)とinterference overhead(葉のロック)がtail latencyの要因になっていた。designはまだ読めて無いけどこの辺り頑張っているみたい https://t.co/r94NOfdHnE」 / Twitter
- uTree: a persistent B+-tree with low tail latency: Proceedings of the VLDB Endowment: Vol 13, No 12
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ざっくりいうとPMEMはDRAMに比べてwriteが遅いから、PMEM場ではエントリをlinked listで管理して、tree構造はDRAMに持つ、がアイデア? kvペアのエントリをリストで管理してるのでput操作でPMEM上のSROは発生しない。リスト操作なので葉ノードロックも無くPMEM上の更新の並列性が上がる。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ツリー構造はシステム落としたら失われるので再構築についても頑張っているみたい。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「DRAMに比べて遅いはこれの通り」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「そりゃないって、、、って数値だな https://t.co/VbGwzLPmIR https://t.co/WyngufgRO5」 / Twitter
- Intel® 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「2.3GB/sというのはインタリーブしてnstore使った時の256B以降のスループットか(スループットといっても1thread) https://t.co/npJqjn9AWE https://t.co/z2QCS945o5」 / Twitter
- fast20-yang.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ntstore(non temporal store)」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「評価の一部はこんな感じ https://t.co/fTYNjssc6h」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「細かい技術詳細は追えていないが、PMEMをDRAM like performance というのは誤りでindex構造だけとってももDRAMとPMEMのハイブリッドで作るのがトレンドかな。全てをPMEMに直接叩き込んで高速化、は今後の研究対象にはならなそう、本当にDRAM like performance なものがでれば世界はかわるが、、、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「low latencyという側面ではこの論文もあるけどこっちはネットワーク越しのkvsなので、タスクスケジューリングとか他のトピックも入っている。ちなみにデータストア自体はLSM treeである。 https://t.co/6O45Vfrp4e」 / Twitter
- p1091-lersch.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「分析の対象はFAST&FAIRで、こちらはPMEM直にデータをloggingなしに永続化する研究。メモリオーダリングも気にして頑張ってflush, mfence減らしてる。 https://t.co/RyWzKGiWiA」 / Twitter
- DICL/FAST_FAIR: Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
- okamo(aged 5 yrs.)さんはTwitterを使っています 「トレンドかな、とか言ったけど直接PMEMへの論文もあるはず、これはそうだった気がする、細かい内容を忘れてしまった https://t.co/JlwAdK2GjU」 / Twitter
- p1078-liu.pdf
PDF
- 71.pdf
- 06gun_03hen_03.pdf
- 10.pdf
Twitter
std::hive
- FadisさんはTwitterを使っています: 「C++の標準ライブラリに提案されている新しいコンテナstd::hive。固定長のブロックの連結リストで、1ブロック内に複数の値を持つ。値はその値が有効か無効かの状態とセットで記録され、要素の削除は値を無効化する。ブロック内のすべての値が無効になるとブロックが破棄される https://t.co/nCD3ztgFgF」 / Twitter
- Introduction of std::hive to the standard library
- FadisさんはTwitterを使っています: 「これはhotなパスで末尾以外への要素の挿入削除が頻発する為vectorは使いにくいがlistはメモリ確保とキャッシュヒット率が辛い、というような状況でよく使われるデータ構造を標準コンテナのAPIで使えるようにしたもの。次の有効な要素が何要素先にあるか読むまでわからない為bidirectional」 / Twitter
- reroさんはTwitterを使っています: 「@fadis_ B+-treeとかじゃ駄目なのかな?」 / Twitter
- FadisさんはTwitterを使っています: 「@rero_carnelian 近い手法だけどorderしたいわけじゃないってところかな」 / Twitter
- FadisさんはTwitterを使っています: 「こうしたデータ構造の愚直な実装は要素の有効無効をboolで表す方法だが、そのようなデータ構造をイテレートするには1要素づつ調べて分岐する処理が必要になる。このような処理は分岐予測する近代的なCPUの性能を容易に損ねるためhiveではlow-complexity jump-counting patternという手法が用いられる」 / Twitter
- FadisさんはTwitterを使っています: 「hiveでは各要素は整数値の状態を持ち要素が有効なら値は0になる。連続する無効な要素のうち最初の要素は次の有効な値までの距離を持つ。連続する無効な要素のうち最後の要素はそこからいくつ戻れば有効な値があるかを持つ。状態が非0の場合その値だけ進む事で定数時間で次の有効な要素に辿り着く」 / Twitter
- FadisさんはTwitterを使っています: 「1本の整数の列に2つの意味の値が混ざって記録されているが、値に従って要素を読み飛ばしている限り異なる意味の値を読むことはない為1本の整数の列で順方向の読み飛ばしも逆方向の読み飛ばしもできる。状態は要素の挿入と削除では必要な要素の状態が更新される」 / Twitter
- κeenさんはTwitterを使っています 「親への参照を持つB木を題材に循環参照のあるデータ構造の作り方3種の詳解 Rust data structures with circular references - Eli Bendersky's website https://t.co/BLcK6Z6ZZo」 / Twitter
- Rust data structures with circular references - Eli Bendersky's website
- κeenさんはTwitterを使っています 「紹介って言いたかったんだけど詳解でもまあいっか」 / Twitter
- KOBA789さんはTwitterを使っています: 「B+Tree の削除、教科書通り実装するとややこしいし性能悪いしであまり気持ちが出ないがち」 / Twitter
- KOBA789さんはTwitterを使っています: 「それなら最初からdefer すればいいやとなり、defer すんならまずは論理削除でということになり、そして物理削除を実装しないまま放置して今に至る」 / Twitter
- C library btree - Google 検索
- 第4章 木構造とハッシュ―平衡二分探索木「赤黒木」で知る豊かなデータ型:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- 第7回 性能改善の鍵,インデックスの特性を知る~B-treeとハッシュ (1)B-tree :SQLアタマアカデミー|gihyo.jp … 技術評論社
- [第6回]Bツリー・インデックスの構造 | 日経 xTECH(クロステック)
- インメモリー・データベースの注意点 | Think IT(シンクイット)
- RDBMSで使われるB木を学ぼう (1/3)- @IT
- 従来のデータベースをメモリに載せるだけではだめなのか? インメモリとカラム型データベースの可能性を調べる(その2) - Publickey
- II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
- B木 - naoyaのはてなダイアリー
- B+Treeのページレイアウトと可変長タプル - Write and Run
- B-Treeを図示するときの細かいテクニック - Write and Run
- クエリエクスキューターの気持ちになる - Write and Run
- B-treeインデックス入門 - Qiita
- B TreeとB+ Treeの違い - Carpe Diem
- B TreeとB+ Treeの違い | Engineer Log
- なぜBTreeがIndexに使われているのか - maru source
- B-Tree by Java -- B木のすごく簡単な実例
- Oracle B-treeインデックスとビットマップインデックス
- SQLデータベースにおけるバランス検索木(Bツリー)
- Oracle の B*Tree インデックスの内部構造についてお勉強中(その1) - drk7jp
- データベースの基礎 第2章
- 一番わかりやすい木構造 - NAVER まとめ
- 漢(オトコ)のコンピュータ道: オトコのソートテクニック2008
- markc/miniDB: A small fast isam/btree library for key/val access
- www.mit.edu/afs.new/sipb/user/gamadrid/nscript/btree.c
- Rustでon-diskなB+Treeを作ったときの細かな話(Rust LT Online #3) - YouTube
MVCC
- MVCC(多版型同時実行制御)
- MultiVersion Concurrency Control - Wikipedia
- 理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
- 4. MVCCとストレージ構造 · PostgreSQL Internals
- MVCCトランザクションの動きが実装できた - きしだのはてな
- PostgreSQL のトランザクション & MVCC & スナップショットの仕組み
- multi-versionの基礎 - 急がば回れ、選ぶなら近道
- InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst
CAP定理
- Nayuta YanagisawaさんはTwitterを使っています 「CAP定理でDBを分類するのはナンセンスです。そうしようと思ったあなたは、ほぼ確実にCAP定理の主張を誤解しています。例えば、CAP定理のC (consistency)は線形化可能性(直列化可能性より強い性質)を指しますが、ほとんどのDBはこれを満たしません。そもそも前提が違います。 https://t.co/pgN0HU1ej5」 / Twitter
- BrewersConjecture-SigAct.pdf
- CAP定理 - Google 検索
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「CAP定理って証明されたと言われているけど、あれの証明を読んだ人によると、怪しいそうだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「肯定的な方向で解決してくれると世界が変わるプログラミング上の問題と言うと、CAP定理を否定するDB実装とか、P=NPを証明できるアルゴリズムの発見とか」 / Twitter
トランザクション
The Unison language
- るとさんはTwitterを使っています 「関数や型などの定義がcontent-addressingされているプログラミング言語“Unison”。 https://t.co/ITOM1XD4zB コードのASTがGitのようなレポジトリ(codebase)で管理されている。ファイルにコードを書くと型チェックがされて、通るとcodebaseに追加できるようになる。」 / Twitter
- The Unison language
- るとさんはTwitterを使っています 「AST内では関数などはハッシュ値で参照されている。 関数を「更新」するときは新しい定義を追加して、他の関数が新しい定義のハッシュ値の方を使うように再帰的に「更新」する。 このとき更新された関数に関連するテストのみを実行するとかもできる。」 / Twitter
- るとさんはTwitterを使っています 「言語としてはHaskellに似た関数型言語で、algebraic effectsを持つ。FFIはまだ無いけど、IOはある。」 / Twitter
マイクロサービス
- マイクロサービスアーキテクチャを再評価する - 影響、運用面での複雑性、代替案
- モノリスからマイクロサービスへのマイグレーションで学んだ7つの教訓
- 伊津野 英克さんはTwitterを使っています 「データベースにもHTTPのEtag+If-Modified-Sinceと同じ仕組みがあるといいのにと思うことはよくある。」 / Twitter
- Yoshinori KosakaさんはTwitterを使っています 「マイクロサービスって各サービスの状態が各サービス間で重複してしまうので、整合性を保つためにメッセージキューを使って状態の変化を他のサービスに通知する必要が出るんだけど、DBがCDCをサポートしているとアプリケーションサイドで状態変化の通知を実装する必要がなくなって便利なんだよね」 / Twitter
- shino | ほかいちさんはTwitterを使っています 「@wawoon_jp ご期待のものなのかは分からないですが、SQL + キュー操作 を同じトランザクションとして扱えるんじゃないかなと思います。ドキュメント。 https://t.co/rbYkMPt4uH」 / Twitter
- Oracle Transactional Event Queues対応のKafka Javaクライアント・インタフェース
- ogiwaraさんはTwitterを使っています 「2PLは - 二つのトランザクションの競合についてのみ考えれば、3以上のトランザクションの競合について考えるのと同値 - 任意の述語を制約としておいても大丈夫 だったのに、Snapshot Isolationにした瞬間に一気に - n個のトランザクションのケースについて考慮の必要 - 述語のクラスに依存 になるね」 / Twitter
- ogiwaraさんはTwitterを使っています 「やっぱりどう考えてもここら辺の理論が全然進んでなくて、どうにかしないと議論が進まないとかんじる」 / Twitter
- ogiwaraさんはTwitterを使っています 「データの粒度、読み込み、書き込み、制約として述語のクラス、実装と理論との乖離…無限に考えることが多いですね」 / Twitter
- ogiwaraさんはTwitterを使っています 「「計算」の次の段階の議論がまだまだ未開拓すぎる」 / Twitter
- ogiwaraさんはTwitterを使っています 「並行処理に対する人間の直感があまりにも脆いから、やっぱ証明でガッチガチに固める必要があると確信できる」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf そのあたりの概観を掴むのに良い教科書があります。あとで共有しますね。」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 とても有難いです!」 / Twitter
- κeenさんはTwitterを使っています 「案外property based testing(多分Rustのproptestライブラリ)なんかも入ってて適材適所って感じ。 Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science https://t.co/FifgTacu40」 / Twitter
- Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science
- Hadoopはどのように動くのか ─並列・分散システム技術から読み解くHadoop処理系の設計と実装:連載|gihyo.jp … 技術評論社
図
- 伊津野 英克さんはTwitterを使っています 「昔はER図わかりやすいと思ってたけど、慣れるとキーを見れば結合がわかる(し、それがわかるように項目名決める)ので、最近は作らないこと多いなぁ。必要だとしても外部キー一覧っぽいものがあればそれで十分な気がする。」 / Twitter
- 増田 亨.さんはTwitterを使っています: 「自分は昔はER図やクラス図を描いて設計していた。経験を積んでくると、初期の設計はいつも間違えることを発見した。初期の設計の改善を続ける効果に気がついた。 それからは簡単なスケッチを描いたあとは、とっととコードを書いて、コードから図を自動生成しながら設計改善を続けるようになった。」 / Twitter
- 増田 亨.さんはTwitterを使っています: 「ER図やクラス図の作り方と使い方が変わった。 コードから常に最新かつ現実のテーブル設計とクラス設計を可視化した図を見ながら設計の出来具合や改善点の検討を繰り返している。 ER図やクラス図を昔より頻繁にかつ効果的に使うようになった。」 / Twitter
- takabowさんはTwitterを使っています: 「ER図もだけど、CRUD図全然見かけないよね。CRUD図あれば、トランザクションの設計からロック競合の調査までめちゃくちゃ楽なのにといつも思う。」 / Twitter
- takabowさんはTwitterを使っています: 「CRUD図は自動生成が難しいから、仮にあっても最新(?)の図と実態に乖離があって、役に立たないことがあるという話がでているけど、多分それは本当にそう。その図が最新である保証はないから、100%信じることは多分できない。簡易的なものでもいいから自動生成できると便利そう。ちょっと考えてみよ。」 / Twitter
- Hiroshi Sekiguchi さんはTwitterを使っています: 「@takabow 最近やっつけたやつは綺麗に描かれてた。 そうじゃないところもあるけどw」 / Twitter
- crud図 - Google 検索
- Keisuke NishitaniさんはTwitterを使っています: 「最近はみんなER図って何で書いてるの?そもそもあんまり書かない?」 / Twitter
- suzukiさんはTwitterを使っています: 「@Keisuke69 設計時は PlantUML で、既に DB に存在しているものは tbls で生成したりしてます。 GitHub が mermaid に対応したので、 PlantUML から乗り換えるべきか?は検討中 https://t.co/mNTT0xhJLo」 / Twitter
- k1LoW/tbls: tbls is a CI-Friendly tool for document a database, written in Go.
- もなむさんはTwitterを使っています: 「@Keisuke69 結局ERWinやSI ObjectBrowser ERなどのトラディショナルなやつが一番良くできている気がします。 最近数年ぶりにRDBMSを設計から触ることになったんで今どきのナウいツールはなんだろうな?とウキウキで探したんですが。」 / Twitter
- 渋川よしきさんのツイート: "ガントチャートは依存関係を持ったタスク情報をコンパイルしたら出力されるべきものであって、ガントチャートを入力するものではないよね。"
blog
その他
はてなブログ
histric
histric-1
- 外部キー制約は何も考えずに適用するとよくない - かとじゅんの技術日誌
- 表示順という属性を別テーブルに分ける - そーだいなるらくがき帳
- PostgreSQL 10からNested Loop Joinを選びにくい - そーだいなるらくがき帳
- Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ - ぱと隊長日誌
- トランザクション理論における polygraph と History の VSR 判定 - ぱと隊長日誌
- Berkeley DB (Hash) の実装 - knqyf263's blog
- Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
- SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
- トランザクション中の文の失敗の扱いの違い - Write and Run
- WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run
- DDLからコード生成するツールを作ったよ! - ハッピー抹茶工場
- MVCCとInnoDBでの実装について - shallowな暮らし
- ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし
- InnoDBのMVCCのガベージコレクションについて - shallowな暮らし
- nitpick 『詳説データベース』 - 井山梃子歴史館
- 【ProxySQL】入門する - 地方エンジニアの学習日記
- 【ProxySQL】mysql-shun_on_failuresの罠 - 地方エンジニアの学習日記
- MariaDB のデバッグをいい感じにやる - それが僕には楽しかったんです。
- Dive into InnoDB MVCC - nayuta-yanagisawa's blog
- データベースシステム 改訂2版の数式でわからなかったところメモ - CubicLouve
- 自作DBを始めたい人におすすめの本 - salachike:blog
- Rustのasync-stdを利用したRedisサーバクローンが公開されました - 未完成な論を綴るブログ
- トランザクション分離レベルの古典的論文 A Critique of ANSI SQL Isolation Levels を読む - Hatena Developer Blog
- 論理レプリケーションを使ったAurora PostgreSQLのメジャーバージョンアップ - エムスリーテックブログ
- tatesukeさんはTwitterを使っています: 「これほんと耳が痛くて、一時期DBをモックにした単体テストを書きまくってた。まるでモックをテストしてるような意味のないテストだった。そしてモックと本物で挙動が違ってバグが出まくった。書いてて心が痛かった。」 / Twitter
- Takuto WadaさんはTwitterを使っています: 「データアクセスレイヤのテストを書く際にDBをモックするのは自作自演のテストになりがちなので個人的にはおすすめしません / “Prisma で本物のDBMSを使って自動テストを書く - mizdra's blog” https://t.co/3YIcK3ptU9」 / Twitter
- Prisma で本物のDBMSを使って自動テストを書く - mizdra's blog
- Takuto WadaさんはTwitterを使っています: 「つまり @mizdra さんの設計方針は良いと思います。あとはどうやって fixture setup を設計するか。理解容易性と変更容易性と狭さ(≒局所的なスピード)と独立性(力押しが可能になる)を満足させていく勝負です」 / Twitter
- 正しいクラウドはある意味で遅い - Software Transactional Memo
- Amazon Aurora MySQLのS3 Export機能がBigQueryの外部テーブルとフィットした話 - TVer Tech Blog
- Google BigQuery Connector for AWS Glue で AWS から BigQuery にデータを書き込んでみた - エムスリーテックブログ
- Tutorial DとErqの比較 - Ryusei’s Notes (a.k.a. M59のブログ)
- IndexedDBの安全な永続化リソース管理戦略 ~ 有効期限と容量制限 - falsandtruのメモ帳
- Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
Publickey
AWS
- AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能 - Publickey
- Amazon S3がこれまでの「結果整合性」から「強い一貫性」サポートへ。データを更新直後でも最新データの読込みが保証されるように - Publickey
- AWS Backupの新機能、Amazon RDSのデータベースを任意の時点に戻せる「継続的バックアップ」と「Point-in-timeリカバリ」が登場 - Publickey
- AWS、自然言語でデータベースに問い合わせ、データ分析ができる「Amazon QuickSight Q」正式リリース - Publickey
- AWS、データウェアハウスをサーバレス化する「Amazon Redshift Serverless」や「Amazon EMR Serverless」など発表。AWS re:Invent 2021 - Publickey
- [速報]AWS、データベース性能問題を数分で検出、分析、解決までしてくれる「Amazon DevOps Guru for RDS」発表。AWS re:Invent 2021 - Publickey
- AWS、新たな責任共有モデルの「Amazon RDS Custom」をSQL Serverへも拡大。マネージドサービスながらOSへのSSHなども可能。AWS re:Invent 2021 - Publickey
- Amazon S3、データの整合性確認を最大90%高速化。新たなオブジェクトのチェックサムアルゴリズム追加で - Publickey
- Amazon RDS MySQL/PostgreSQLのトランザクション性能が2倍に、可用性とスケーラビリティも高める新「マルチAZ配置オプション」登場 - Publickey
- AWS、Amazon S3やEFSを爆速にする「Amazon File Cache」発表。複数のストレージを単一のビューでアクセス可能に - Publickey
- AWS上で分散インメモリDB「MySQL HeatWave」、オラクルが提供開始。Amazon AuroraとRedshiftの競合に - Publickey
- AWSが主導するElasticsearchのフォーク「OpenSearch」にCanonicalが参加へ - Publickey
- 「Amazon RDS Blue/Green Deployments」登場。ステージング用データベースの構成、本番DBとの同期、安全な切り替えなど提供 - Publickey
- [速報]Amazon OpenSearch Serviceをサーバレス化する「Amazon OpenSearch Serverless」プレビュー版登場。AWS re:Invent 2022 - Publickey
- [速報]Amazon AuroraのOLTPとRedshiftのDWHを統合する「Amazon Aurora zero-ETL integration with Amazon Redshift」発表。AWS re:Invent 2022 - Publickey
- [速報]Amazon S3にファイルを置くとAmazon Redshiftに自動で取り込まれる「Amazon Redshift auto-copy from S3」発表 - Publickey
PostgreSQL
- PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど - Publickey
- PostgreSQL 12β1が公開。Bツリーインデックス周りの性能向上や、インデックスの並列処理による再構成が可能に - Publickey
- PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など - Publickey
- PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 - Publickey
- PostgreSQL 14正式リリース。多くの接続を使用するワークロードや論理レプリケーションでの性能向上、可観測性の向上など新機能 - Publickey
- PostgreSQLをWebブラウザ上で動かす「Postgre-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能 - Publickey
- PostgreSQL 15正式リリース。ソートの改善で最大で400%高速に、SQL標準のMERGEコマンドサポートなど - Publickey
MySQL
- MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR] - Publickey
- MySQLの新サービス「HeatWave」、SQLそのままで最大3000倍高速に。DMM.comが検証[PR] - Publickey
- MySQLベースの分散インメモリDB「HeatWave」の最適化と運用自動化を支援する「MySQL Autopilot」、オラクルが発表 - Publickey
- MySQL Heatwaveで大規模オンラインゲームのプレイやアイテム利用など大量データの毎時分析を実現。想定より60倍もの高性能[PR] - Publickey
- MySQL互換のスケーラブルな分散DB「TiDB」、スマレジや@cosmeによる評価は本番環境のDBから移行可能、性能も十分高いと[PR] - Publickey
MongoDB
- MongoDB 5.0が登場。時系列データ対応、実行中のシャーディング変更に対応など - Publickey
- オラクル、MongoDB互換API「Oracle Database API for MongoDB」をAutonomous JSON Databaseで提供開始 - Publickey
- MongoDBが時系列データ対応、サーバレス対応、HTTPS経由でのAPI操作対応など機能強化を相次いで発表 - Publickey
- MongoDB、暗号化したままのデータベースを検索「Queryable Encryption」発表。データ格納時、メモリ上、データ転送、ログ、バックアップのすべてが暗号化データのまま - Publickey
- MongoDB 6.0がリリース。時系列データ対応、ポーリング不要でデータ変更によるトリガー処理、スケーラビリティ、暗号化など強化 - Publickey
Oracle
- Oracle Exadataの最新版となる「Exadata Database Machine X8」登場、自動チューニング機能「Automatic Indexing」など、機械学習による自動運用を強化 - Publickey
- オラクルがOracle Autonomous Data Warehouseを強化。SQLを知らないビジネスユーザーでもデータ分析を容易にする自動化とUIなど追加 - Publickey
- オラクル、インメモリDBのMySQL HeatWaveに機械学習機能を追加。SQL文だけで学習、推論、説明の取得を実現 - Publickey
- [速報]Oracle Database 23cベータ版登場。JSONオブジェクトビュー、マイクロサービス対応のトランザクション機能など。Oracle CloudWorld 2022 - Publickey
MS
- Makoto Kato ︎︎さんはTwitterを使っています: 「ライブラリOSなWindows使ったプロダクトとしては世界最大規模な気がするけど、次期バージョンもちゃんとやるんだ https://t.co/RZXqKqU7My」 / Twitter
- マイクロソフトがLinux用SQL Server 2022のRC版を発表 | スラド
- マイクロソフト、Linux版SQL Server 2022のリリース候補版を公開。Azure Active Directory対応など - Publickey
- SQL Server 2022がリリース候補に到達。Azure SQLとの双方向DR、Azure Synapseによるリアルタイム分析、Amazon S3へのバックアップ/リストアへも対応へ - Publickey
Google
- Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 - Publickey
- Google Cloud、動的にブロックストレージのIOPSとスループット性能をそれぞれ設定できる「Hyperdisk」など発表 - Publickey
- BigQueryへMySQLやPostgreSQLから直接ニアリアルタイムでレプリケーション可能に。「Datastream for BigQuery」登場 - Publickey
- [速報]BigQueryが非構造化データのサポートを発表。これで構造化データ(RDB)、半構造化データ(JSON)、非構造化データをサポート。Google Cloud Next '22 - Publickey
- ノーコード開発ツールのGoogle AppSheetがリレーショナルDBを搭載、「AppSheet databases」パブリックプレビュー公開 - Publickey
グラフDB
- オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用 - Publickey
- RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR] - Publickey
- 無料のフルマネージドなグラフデータベース「Neo4j AuraDB Free」発表。5万ノード、17万5000リレーションシップまで利用可能 - Publickey
- tagomorisさんはTwitterを使っています 「OpenTracingベースのトレースの便利さをちゃんと理解したの割と最近だけど、これはよくできたUIとセットでないと実現が難しいやつかなとも思うので、一般化するのは早過ぎるのかもしれないとも思う。 そのうちOSSでVisualizeできるところまでいってからかな。」 / Twitter
- tagomorisさんはTwitterを使っています 「この話は何かというと、もちろん、モニタリングまわりの機能まで含めたサービスをやってるGoogleがSQLにコメントを自動で入れるという大昔からの知恵をいま出してくるのが面白かったという話 https://t.co/m57avpjwmu」 / Twitter
- Introducing Sqlcommenter: An open source ORM auto-instrumentation library | Google Cloud Blog
- みょうがさんはTwitterを使っています 「@tagomoris こういうことやってくれる gem があった気がする・・・」 / Twitter
- tagomorisさんはTwitterを使っています 「@mrkn これっすね https://t.co/v7u0UXuf6j」 / Twitter
- Ryuta KamizonoさんはTwitterを使っています 「sqlcommenter_railsただのmarginaliaを依存で入れてくれるだけの代物だった https://t.co/wbXuT9DMGH」 / Twitter
- sqlcommenter/sqlcommenter_rails.rb at master · google/sqlcommenter
- スケーラブルな分散SQLエンジン「Presto」の開発団体「Presto Software Foundation」が発足 - Publickey
- 大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に - Publickey
- Redis互換で25倍高速とする「Dragonfly」が登場。2022年の最新技術でインメモリデータストアを実装 - Publickey
- S3互換の「Cloudflare R2」が正式サービスに。データ転送料無料、10GBまで無料の分散型オブジェクトストレージ - Publickey
クックパッド開発者ブログ
- クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
- 負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
- ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
- Amazon Elasticsearch ServiceをつかったRDSのスロークエリの集計と監視 - クックパッド開発者ブログ
- Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
- MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
- 全国のスーパーに置かれる storeTV 端末の情報の取得にかかる時間を15分から10秒にした話 - クックパッド開発者ブログ
- データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ
Money Forward Engineers' Blog
- 【Rails】トランザクションを張るときにSQLキャッシュで気にすべきこと | Money Forward Engineers' Blog
- OpenAPIでスキーマ駆動開発してみた | Money Forward Engineers' Blog
- id リストの表現を工夫して INSERT 文のサイズを大幅に小さくした話 | Money Forward Money Forward Engineers' Blog
- OAuth 2.0 認可コードグラントフローについて理解したことをまとめます | Money Forward Money Forward Engineers' Blog
フューチャー技術ブログ
- A5:SQL Mk-2に回帰した話 | フューチャー技術ブログ
- PostgreSQLパーティションプルーニングの動作を確認する | Future Tech Blog - フューチャーアーキテクト
- DynamoDB利用時の書き込みスキュー(Write Skew)の回避 | フューチャー技術ブログ
- Dataflow前編(Dataflowの概要からApache Beamの使い方まで) | フューチャー技術ブログ
- Dataflow後編(Dataflowの事前準備からPub/Sub・BigQueryとの連携例まで) | フューチャー技術ブログ
- 認証認可連載2022 | フューチャー技術ブログ
- Casbinで始めるアクセス制御 | フューチャー技術ブログ
- Kong API Gatewayを使ってResource Serverを保護する | フューチャー技術ブログ
- Auth0のトークン取得とITPへの対応 | フューチャー技術ブログ
- OAuth の仕組みを理解しながらクライアントを実装してみる | フューチャー技術ブログ
- GoLand(JetBrains IDE)のDatabase Tools and SQLプラグインをメインのSQLクライアントにする | フューチャー技術ブログ
- PostgreSQLで Goの flextime のような関数を作りテスト時間を差し替える | フューチャー技術ブログ
- DynamoDB Streamsは同一ハッシュキーでもソートキーが異なれば順序保証されない | フューチャー技術ブログ
- A5:SQL Mk-2 (a5m2)のデータモデリング便利機能(初心者向け) | フューチャー技術ブログ
- データベースと向き合う決意 | フューチャー技術ブログ
- 業務システム開発でsqlcを導入して良かった点とハマった点 | フューチャー技術ブログ
- 伊津野 英克さんはTwitterを使っています: 「sqlc は s2jdbc の 2way sql をサポートすべきだと思う。」 / Twitter
- Rust製SQLフォーマッタをnapi-rsを利用してVSCode拡張機能化 | フューチャー技術ブログ
サイボウズエンジニアのブログ
- トラブルの芽を摘むための一歩進んだOSSのアップグレード戦略 - Cybozu Inside Out | サイボウズエンジニアのブログ
- サイボウズの新しいインフラ基盤を支えるストレージの本番適用に向けた取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- Aurora MySQL 5.6のサポート終了とゼロダウンタイムアップグレードへの挑戦 - Cybozu Inside Out | サイボウズエンジニアのブログ
TechRacho by BPS株式会社
- PostgreSQLの現在時刻をフェイクする方法とRailsサンプルコード(翻訳)|TechRacho by BPS株式会社
- Railsのタイムスタンプカラム(created_at, updated_at)を別名で動かす(create_date, update_dateなど)|TechRacho by BPS株式会社
- RSpec でデータベースの「トランザクション分離レベル」の挙動を確認する|TechRacho by BPS株式会社
KaiGaiの俺メモ
- スキャン速度10GB/sへの挑戦~その④ 完結編~ - KaiGaiの俺メモ
- 秒速で10億レコードを処理する話 - KaiGaiの俺メモ
- Asymmetric Partition-wise JOIN - KaiGaiの俺メモ
- Dive into Apache Arrow(その3)- SSD-to-GPU Direct SQL対応 - KaiGaiの俺メモ
豪鬼メモ
DBMの設計と実装
- DBMの設計と実装 その0 全体の計画 - 豪鬼メモ
- DBMの設計と実装 その1 ハッシュ関数 - 豪鬼メモ
- DBMの設計と実装 その2 APIの草案 - 豪鬼メモ
- DBMの設計と実装 その3 ハッシュロック - 豪鬼メモ
- DBMの設計と実装 その4 ハッシュデータベースの構造 - 豪鬼メモ
- DBMの設計と実装 その5 ハッシュデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その6 ハッシュデータベースの再構築 - 豪鬼メモ
- DBMの設計と実装 その7 ファイルの抽象化 - 豪鬼メモ
- DBMの設計と実装 その8 ファイルクラス毎の性能 - 豪鬼メモ
- DBMの設計と実装 その9 B+木の構造 - 豪鬼メモ
- DBMの設計と実装 その10 LRUキャッシュ - 豪鬼メモ
- DBMの設計と実装 その11 ツリーデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その12 ツリーデータベースの実装 - 豪鬼メモ
- DBMの設計と実装 その13 スキップリストの構造 - 豪鬼メモ
- DBMの設計と実装 その14 スキップデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その15 スキップデータベースの検索 - 豪鬼メモ
- DBMの設計と実装 その16 オンメモリデータベース - 豪鬼メモ
- DBMの設計と実装 その17 ゾーンI/O - 豪鬼メモ
- DBMの設計と実装 その18 アトミックなレコード処理 - 豪鬼メモ
- DBMの設計と実装 その19 バックアップ - 豪鬼メモ
- DBMの設計と実装 その20 セカンダリインデックス - 豪鬼メモ
- DBMの設計と実装 その21 実装作業に向けて - 豪鬼メモ
histric
histric-1
- データベースライブラリTkrzwの初版リリース - 豪鬼メモ
- Tkrzw: a set of implementations of DBM
- DBMのダイレクトI/O対応 - 豪鬼メモ
- DBMを使った検索エンジンの作り方 - 豪鬼メモ
- DBMで単語辞書を作ろう - 豪鬼メモ
- DBMのローカルシャーディング - 豪鬼メモ
- LRU削除キャッシュDBM - 豪鬼メモ
- Wikipediaから作るN-gramフレーズ頻度DB - 豪鬼メモ
- Wikipediaの共起語を使ってシソーラス検索をしよう - 豪鬼メモ
- Wikipediaを解析して共起語抽出をしよう - 豪鬼メモ
- ラテン文字のマッチング用正規化 - 豪鬼メモ
- バッチで文字列探索する際の性能 - 豪鬼メモ
- 文字列探索法の比較 - 豪鬼メモ
- ダイレクトI/O用のキャッシュ実装 - 豪鬼メモ
- 各種データベース実装と各種ファイル実装の性能比較 - 豪鬼メモ
- I/Oのバッチ化によるDBの性能改善 - 豪鬼メモ
- はじめてのDBM - 豪鬼メモ
- はじめてのDBM - Google スライド
- マルチレコードトランザクション機能 - 豪鬼メモ
- トランザクションのACID特性と自動リストア機能 - 豪鬼メモ
- 壊れないデータベースと壊れにくいデータベース - 豪鬼メモ
- CRCをデータベースに内蔵する - 豪鬼メモ
- マルチシャードのトランザクション - 豪鬼メモ
- 圧縮アルゴリズムの事前調査 - 豪鬼メモ
- 圧縮データベースの性能評価 - 豪鬼メモ
- 各種エラー検出符号のエラー検出率 - 豪鬼メモ
- ハッシュデータベースの互換的フォーマット変更 - 豪鬼メモ
- BtrFSのスナップショットによるオンラインバックアップ - 豪鬼メモ
- 再構築しない復旧処理 - 豪鬼メモ
histric-2
- TkrzwのC言語インターフェイス - 豪鬼メモ
- C++/Java/Ruby/Pythonの並列I/O用ファイルインターフェイス - 豪鬼メモ
- C++標準futureとスレッドプールの性能比較 - 豪鬼メモ
- 非同期APIでデータベースを操作する - 豪鬼メモ
- 非同期APIの性能評価 - 豪鬼メモ
- Go言語勉強中 - 豪鬼メモ
- TkrzwのGo言語インターフェイスをリリース - 豪鬼メモ
- C言語での非同期API - 豪鬼メモ
- Pythonの非同期APIとコルーチン - 豪鬼メモ
- Javaインターフェイスで2倍の高速化 - 豪鬼メモ
- スピンロックによる並列処理の高速化 - 豪鬼メモ
- ネイティブ非同期APIとゴルーチンの性能比較 - 豪鬼メモ
- スピン共有ロックの優先度制御とアップグレード機能 - 豪鬼メモ
- 共有ロックによる並列B+木操作の保護 - 豪鬼メモ
- Tkrzw 1.0の性能評価 - 豪鬼メモ
- 各種メモリアロケータによる性能評価 - 豪鬼メモ
- mallocの削減などによる性能向上 - 豪鬼メモ
- DBサービスを作ろう その0 準備 - 豪鬼メモ
- DBサービスを作ろう その1 ログとデーモン化 - 豪鬼メモ
- DBサービスを作ろう その2 基本APIの設計と実装 - 豪鬼メモ
- DBサービスを作ろう その3 ストリームAPIでイテレータを実装 - 豪鬼メモ
- DBサービスを作ろう その4 gRPCの性能測定 - 豪鬼メモ
- DBサービスを作ろう その5 バッチ化とストリーム化による性能向上 - 豪鬼メモ
- DBサービスを作ろう その6 非同期化による性能向上 - 豪鬼メモ
- DBサービスを作ろう その7 シャーディング最強説 - 豪鬼メモ
- DBサービスを作ろう その8 レプリケーションを踏まえた更新ログの要件 - 豪鬼メモ
- DBサービスを作ろう その9 更新ログのメッセージキュー化 - 豪鬼メモ
- DBサービスを作ろう その10 更新ログによるインクリメンタルバックアップ - 豪鬼メモ
- DBサービスを作ろう その11 非同期レプリケーション完成! - 豪鬼メモ
- DBサービスを作ろう その12 非同期レプリケーションのプロトコルと実装 - 豪鬼メモ
- Tkrzw-RPCのPythonクライアントライブラリ - 豪鬼メモ
- Tkrzw-RPCのRubyクライアントライブラリ - 豪鬼メモ
- Tkrzw-RPCのGoクライアントライブラリ - 豪鬼メモ
- gRPCクライアントの各言語の性能比較 - 豪鬼メモ
- Fedoraパッケージ対応とmmapに関する話 - 豪鬼メモ
- DBMでメッセージキューイング その0 準備 - 豪鬼メモ
- DBMでメッセージキューイング その1 メッセージキューサービスの利用法 - 豪鬼メモ
- gRPCのJava版のアプリケーションを手動またはmakeでビルドする方法 - 豪鬼メモ
- gRPCのJavaクライアントライブラリ - 豪鬼メモ
- gRPCでのSSL暗号化と認証 - 豪鬼メモ
- Go言語におけるスライスや文字列のアドレス検査と特異値 - 豪鬼メモ
- DBMでメッセージキューイング その2 CompareExchangeとモニタリング - 豪鬼メモ
MasahikoSawada
- ロジカルレプリケーションのレプリケーション衝突を解決する
- シーケンシャル・スキャンだからといってデータがテーブルの先頭から返ってくるとは限らない、という話
- PostgreSQLのソースコードの構造
- BRINの概要
- BRINソースコードリーディング(構築)
- VACUUMのログの読み方(VACUUM VERBOSE)
- FDWを使った時の読取り異常、更新異常を見てみる
- PostgreSQLのリカバリ周りのバグを修正してみた - 原因究明編 -
- PostgreSQLのリカバリ周りのバグを修正してみた - 問題発見編 -
- Parallel Queryの概要
- SQLからHINT句を生成するツール(phint)を作ってみた
- トランザクションIDへのロックと行ロック
- DeadlockとDeadLock対策のメモ
- MyProc->delayChkptについての理解と覚書
- PostgreSQL 14でのBtreeインデックスのVacuum関連の改善についての解説
- PostgreSQLのMVCCとガベージコレクション(Vacuum)
日々の覚書
- 日々の覚書: MySQL 5.6のクラッシュセーフなレプリケーションの仕組み
- 日々の覚書: MySQL 5.6とそれ以前は「testデータベースを消せば良いってもんじゃない」というはなし
- 日々の覚書: レプリカにだけgenerated columnを追加したらセカンダリインデックスが更新されなかった
- 日々の覚書: MY-001192 Can't execute the given command because you have active locked tables or an active transaction に出会った
- 日々の覚書: 「MySQLのフェイルオーバーテストをする」と聞いてぼんやり思ったこと
技術日誌
- Effective SQL 読書会(4)に参加 - Yabu.log
- Effective SQL 読書会(5)に参加 - Yabu.log
- プログラマのためのSQL 読書会(25)に参加 - Yabu.log
- プログラマのためのSQL 読書会(26)に参加 - Yabu.log
- プログラマのためのSQL 読書会(27)に参加 - Yabu.log
- dbtech showcase Tokyo2018に参加 - Yabu.log
- プログラマのためのSQL 読書会(28)に参加 - Yabu.log
- プログラマのためのSQL 読書会(31)に参加 - Yabu.log
- 「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ - Yabu.log
- 約2年間続いた読書会で「プログラマのためのSQL」を読み終わりました - Yabu.log
- 失敗から学ぶRDBの正しい歩き方 読書会(1)に参加 - 誰にも見えないブログ
- Transaction,Concurrency ControlとAntichain - Yabu.log
- CMU 15-445/645 (FALL 2018)Database Systems - 01 Relational Data Modelノート - 誰にも見えないブログ
- CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL - 誰にも見えないブログ
- Transactionのinterpretation(herbrand semantics)について - Yabu.log
- 失敗から学ぶRDBの正しい歩き方 読書会(6)に参加 - 誰にも見えないブログ
- Scheduleをpolygraphに変換してVSR validationを行う方法 - Yabu.log
histric
histric-1
- pixivのブックマークに関する負荷対策をしました - pixiv inside
- Scala用のタイプセーフなSQLビルダを作ってみた - たけぞう瀕死ブログ
- SQL Server 2019 プレビューで UTF-8 をサポート – Cloud and Server Product Japan Blog
- PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
- WEB+DB PRESS plus の DB 本 3冊を読んで index を学んだ · Yuichi Takada
- Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
- A Critique of ANSI SQL Isolation Levels再読 - 急がば回れ、選ぶなら近道
- DBMSをGoで実装してみた - Sansan Builders Box
- カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜 - Retty Tech Blog
- Go用SQLスロークエリ解析ツールAqueryを書いてISUCON10の本選に出たらfailした | teqblog
- 【BigQuery】 AlphaSQLでスキーマ安全なデータ基盤を構築する | by Matts966 | JDSC Tech Blog | Dec, 2020 | Medium
- yohさんはTwitterを使っています 「SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる https://t.co/kPb1OquVCq 「ロックを取る順番が一意になるようにクエリや実行計画を揃えるというのがこの手の問題に対する一般的な対処法」 今んところ人類はどこまで行ってもこの問題から逃れられんのか...」 / Twitter
- Apache Calcite + Truffle でクエリエンジンを作ってる話
- DSAS開発者の部屋:2019年01月
- WASD Inc.という会社でCTOをやっています|Yudai Shinnoki|note
- Python/R/SQL コード対応表 | みぞおちブログ
- スキーマ駆動開発 (OpenAPI) 導入後の改善 - Adwaysエンジニアブログ
- チョットワカル Row-Based Replication・その1 | エンジニアブログ | GREE Engineering
- shallow1729さんはTwitterを使っています 「正確にはMySQLのphantomの扱いを分かってなかった。MySQLのやり方でphantom read防ぐのむずくね?ってなってたけど案の定best effortだった。 例えば以下のブログの例 https://t.co/ib2VrePhZO」 / Twitter
- Understanding MySQL Isolation levels: repeatable-read | Official Pythian®® Blog
- Google is pushing the new language Logica to solve the major flaws in SQL! | by Shingai Zivuku | Nerd For Tech | Medium
- tblsとGitHub Actionsを使ってDBマイグレーションを含むPRには自動更新したER図を追加する - BASEプロダクトチームブログ
- MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Blog
- DistrolessイメージでPrismaを動かしてみた - ISID テックブログ
- N+1問題におけるORMの重たさについて - Atsuo Ishimoto's blog
- PostgreSQL 13 自動バキューム(AUTO VACUUM) | ネットワークチェンジニアとして
- Recruit Data Blog | BigQueryによる最大内積検索の実装
- 【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました | DevelopersIO
- Rust製の分散オブジェクトストレージをOSSとして公開しました - dwango on GitHub
- Arelのススメ — Arelを使うメリット|TechRacho by BPS株式会社
- Integrated testing with Prisma. Prisma を利用する上で、テストの書きづらさがあったため、OSS を 2… | by Yosuke Kurami | Dec, 2022 | Medium
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"いつ誰がどのシステムを使って、何を変更したのか、変更前の状態、変更後の状態など、監査ログとして必要な情報が DB によって整合性と検索が担保された状態で永続化" / 1件のコメント https://t.co/E4ghgbKnGU “Datomic Cloud を半年運用した感想|hden|note” https://t.co/f53kC2mM28」 / Twitter
- Datomic Cloud を半年運用した感想|hden|note
- MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- FUJI GoroさんはTwitterを使っています 「おーなるほど、これはひどい。ライブラリが「賢い」振る舞いをサポートすることによって余計な穴ができるパターンか。 / “Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog” https://t.co/L4mVkxXLAY」 / Twitter
- Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - Flatt Security Blog
- MySQL で複合インデックスを作成する際には必ず key_len を確認すべきという話 - あらびき日記
- データベース設計におけるNULL - kawasima
- 30分で論文流し読みシリーズ 7「File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution」 - 覚書
- 日記 (2020 年 11 月)
- PoloDB: a lightweight NoSQL database | by Vincent Chan | Medium
- Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
- 大規模なデータ移行タスクの実行計画について本気出して考えてみた時の話 - freee Developers Hub
- Redisのappend-only fileの解析 - 赤帽エンジニアブログ
- 外部キー制約と AWS Lambda と私 - エムスリーテックブログ
- Data Reliability Engineering をはじめた話 | メルカリエンジニアリング
- 開発フローでちょっと便利なツールをCloudflare Workersで作る - STORES Product Blog
スライド
- 20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
- RDBMS in Action - Speaker Deck
- HSEとは何か - Speaker Deck
- FadisさんはTwitterを使っています 「カーネル/VM online part1での発表「HSEとは何か」をYouTubeで見れるようにしました #kernelvm https://t.co/uSMzFNBJMl」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「mpool自体のアラインメントは自動的に取ってくれるんだろうか。mpoolの使うロジカルボリューム?がerase block境界に配置されないと悲しいことになると思うけど #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「@kazuho mpoolの作成時にブロックサイズを指定するとmblockやmlogの配置がアラインされるようになっています。デフォルトは32MBです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーHSE自体はfsは触らずにmpoolだけ使うのか。納得」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「そういえば SSD のコントローラーというとこういうプロジェクトもあるらしいですね >> The OpenSSD Project https://t.co/TD8u6zOdn7 #kernelvm」 / Twitter
- The OpenSSD Project
- Yasuo ItabashiさんはTwitterを使っています 「この手の問題は上層が指定したcapabilityやattributeを持つ下層を透過的に選択したり、下層のstatusを上層に通知する仕組みがあると良いと思う。シンプルにバイパスさせると環境依存が増えてOSの旨味をスポイルされるので。 #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm mpoolは作成するときにブロックサイズが指定できる、というか指定しないと意味がない。でもSSDのブロックサイズを公表しているとは限らない…」 / Twitter
- しゅうすい🐧さんはTwitterを使っています 「Event Sourcingとか、DBのトランザクションログとか、ジャーナルログとか、何となく雰囲気似てる感じがする」 / Twitter
- しゅうすい🐧さんはTwitterを使っています 「コピーGCみたいなことするのか」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「どっちかというと DB の wal」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「というか journaling と wal ってほぼ同じものが違う場所で使われてるだけな感じある」 / Twitter
- DBアタマアカデミー:連載|gihyo.jp … 技術評論社
- 第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2):DBアタマアカデミー|gihyo.jp … 技術評論社
- sat🌿さんはTwitterを使っています 「強いストレージデバイスのすごいところのひとつは上に乗っかってるLinuxのI/Oスケジューラとかファイルシステムとかに相当するものをフルセットで持っててカーネルが「俺何もしなくていいんじゃね?」ってなるところ」 / Twitter
- FadisさんはTwitterを使っています 「昔は カーネル「ディスク君がスムーズに書けるように私が書き込み順を調整してやろう」 だったのが今や SSDのコントローラ「そういうの全部こっちでやるんでユーザ空間から来た書き込みは即座に渡してください」 だもんな」 / Twitter
- 僕がDIを否定する理由 - kbigwheelのプログラミング・ソフトウェア技術系ブログ
- やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
- 本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった - fsubal
- フロントエンドにおける「関心の分離」は間違っていた - fsubal
- How COMMIT Works in CockroachDB - Speaker Deck
- Rustでon-diskなB+Treeを 作ったときの細かな話 - Speaker Deck
- MySQLとインデックスと私 - Speaker Deck
- PostgreSQLのCREATEROLE権限強すぎ問題(第27回PostgreSQLアンカンファレンス@オンライン 発表資料)
- 実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial - Speaker Deck
- 如何にデータベースが重要でなぜ私達が学ぶのか / Reasons for learning a database - Speaker Deck
- database/sqlの仕組みについて - Google スライド
- 2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Da…
- クックパッドマートの失敗したデータ設計 Before / After 大放出 - Speaker Deck
- 排他制御のためだけに渋々 Redis 使ってませんか? - Speaker Deck
GitHub
PRQL
- Miura HidekiさんはTwitterを使っています: 「心底面白いと思った https://t.co/hY0mnnEze1」 / Twitter
- prql/prql at main · prql/prql
- Miura HidekiさんはTwitterを使っています: 「SQLはあんなものだと思ったけど、見直す点がいろいろあるのだな。あらゆることに対する教訓になりうる https://t.co/hY0mnnEze1」 / Twitter
- mysql80_no_usui_hon/book_ebook.pdf at master · hmatsu47/mysql80_no_usui_hon
- YugaByte/yugabyte-db: YugaByte DB is the open source, high-performance SQL database for building internet-scale, globally-distributed apps.
- The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
- 非公式MySQL 8.0オプティマイザガイド by yakst
- じょうさんのツイート: "コツコツと作ってたSQLのLanguge Serverをようやくリリースしました🎉 まだまだやることはたくさんありますが、ご興味ある方はぜひ試してみてください🙏 https://t.co/m836vJMNk3… "
- joe-re/sql-language-server: SQL Language Server
- cozodb/cozo: A general-purpose, transactional, relational database that uses Datalog and focuses on graph data and algorithms
- Jupyter Notebook Viewer
GIGAZINE
- PostgreSQLには「中途半端なサイズ」のデータを格納しないほうがいい - GIGAZINE
- 簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた - GIGAZINE
- データベースの文字数制限が191文字になっている理由とは? - GIGAZINE
- 「Google Chrome 101」安定版リリース、Web SQLが非推奨化・削除対象へ - GIGAZINE
- サーバー内で使われずに放置されている「ダークデータ」が地球の環境を脅かしている - GIGAZINE
技術評論社
- 2019年10月17日 "データレイク"のスタンダードをめざす ―Databricks,「Dalta Lake」をLinux Foudnationに寄贈:Linux Daily Topics|gihyo.jp … 技術評論社
- 第655回 オブジェクトストレージ,MinIOを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第657回 オブジェクトストレージ,MinIOを使用する[クライアント編]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第7回 スロークエリーログを使って遅いクエリを収集する:MySQL道普請便り|gihyo.jp … 技術評論社
POSTD
- リレーショナルデータベースの仕組み (1/3) | POSTD
- リレーショナルデータベースの仕組み (2/3) | POSTD
- リレーショナルデータベースの仕組み (3/3) | POSTD
- あまり知られていないPostgreSQLの機能 | POSTD
infoQ
Google
- Google Logicaは、SQLクエリをより再利用でき、読みやすくすることを目指す
- GoogleがポイントインタイムリカバリでCloud Spannerを強化
- GoogleがCloud MemoryStoreをアップデートし、リードレプリカ、RDBスナップショット、フラッシュレスアップデートを提供
- GoogleがGoogle I/Oで新しいFirebase機能を発表
Amazon
- AWSがCloudTrailログ用のフルマネージドデータレイクをリリース
- Amazon S3が整合性チェックのための新しいチェックサムアルゴリズムをサポート
- Amazon S3が強力な読み取り後書き込みの一貫性を提供する
MS
- MicrosoftがEdgeにSQLを導入、Azure SQL Database Edge
- GitHubはいかにしてリレーショナルデータベースの信頼性と拡張性を改善したか
Oracle, Java
- オラクル オープンソース Coherence インメモリデータグリッド
- AceSQL、オープンソースのJDBC-over-HTTPドライバをリリース
- MicroStream 6.0がJDK 17、Spring Boot、Helidonをサポート
- MicroStream 7.0がCDIをサポート
ORM
- パフォーマンスの向上したHibernate ORM 6.0
- Prisma ORMツールスイートが実運用対応に
分散, グラフ, ドキュメント, NoSQL
- 分散時系列、ドキュメント圧縮、インデクスを改良したRavenDB 5
- Pinterestが階層化ドキュメントを効率的に検索するアーキテクチャについて解説
- Couchbaseが自身の分散ACIDトランザクションアーキテクチャを詳細に説明
- Yugabyte Cloud: マネージド分散SQLデータベース
- MongoDBがAtlasサーバーレスインスタンスとデータAPIを一般向け提供へ
- Neo4j Migrationsを使ったNeo4jグラフスキーマの移行
- NoSQL データベースのアジャイルなデータモデリング
- ZippyDB:Facebookの強力な一貫性のあるKey-Valueストアのアーキテクチャ
- JepsenがMongoDBのデータ整合性の主張に異議を唱える
- Elasticsearch 7.7は非同期検索、セキュアなキーストアなどをもたらす
- COMN(Concept and Object Modeling Notation)によるNoSQLデータベースのデータモデリング
- OCIはMicronaut Data 1.0を特徴とするMicronaut 1.3をリリースした
- KSQLがConfluent Cloudで利用可能に
- Kafka、MongoDB、Maxwell's Daemonを使用したSQLデータベース監査システムの構築
- Couchbaseで言語と開発者に使いやすいデータ構造を使用
- Lightstepは新しいChange Intelligence機能でトレースとメトリックを結び付ける
- Logz.ioがログデータ内のパターンを自動特定する機能をリリース
- Cockroach LabsがCockroachDB Serverlessを発表
- CloudflareがR2ストレージとレグレス無償でAWSに挑む
- HibernateがReactive APIのバージョン1.0をリリース
- PostgreSQL 14がPostgreSQL向け.NETとJavaドライバーを破壊
- .NET 6のデータベースコマンドバッチ
OSDN
- パーティション強化、JITコンパイラなどが加わった「PostgreSQL 11」リリース | OSDN Magazine
- 「PostgreSQL 11.2」リリース、fsync()失敗時の処理を修正 | OSDN Magazine
- SQL互換のHTAP向け分散データベース「TiDB 3.0」リリース | OSDN Magazine
- 「PostgreSQL 11.5」リリース、4件のセキュリティ問題を修正 | OSDN Magazine
- 「PostgreSQL 12」リリース、性能面でさまざまな強化が行われる | OSDN Magazine
- 「PostgreSQL 14」が公開 | OSDN Magazine
- Apache HadoopやSparkをパッケージした「Apache Bigtop 3」が登場 | OSDN Magazine
- 分散ファイルシステム「Gluster 10」が公開 | OSDN Magazine
- 「PostgreSQL 14.2」が公開、約55件のバグを修正 | OSDN Magazine
- オープンソースのオブザーバビリティプラットフォーム「Grafana 8.4.0」が公開 | OSDN Magazine
- ユニバーサルデータベースツール「DBeaver 22.0」が公開 | OSDN Magazine
- 米Redis、インメモリデータストアをすぐに利用できる「Redis Stack」を発表 | OSDN Magazine
- 「Redis 7.0」公開、Radis Functionsを導入 | OSDN Magazine
- ドキュメント指向データベース「Apache CouchDB 3.2.2」公開 | OSDN Magazine
- 静かなメモリ破損の脆弱性を修正した「PostgreSQL 14.4」が公開 | OSDN Magazine
- 拡張スクリプトの不具合を修正した「PostgreSQL 14.5」が公開 | OSDN Magazine
- オープンソースのストレージフレームワーク「Delta Lake 2.0」が公開 | OSDN Magazine
- 「MariaDB 10.8.4」が公開 | OSDN Magazine
Zenn
- 恐怖のphantom Atari partition
- ベストプラクティスから読んで始めるdbt
- What is dbt? | dbt Docs
- 自作RDBMSやろうぜ!(Zenn出張版)
- Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス
- 排他制御のためだけに Redis 渋々使ってませんか?データベース単独でアドバイザリーロックできるよ!
- Git for Data「Dolt」というDBの話
- Hasura, PostgreSQL, MySQL対応の速度改善ツールを作りました - GravityR
- TimescaleDB 雑感
Qiita
- golang で 2 Way SQL - Qiita
- ひとりRDBMS実装 Advent Calendar 2019 - Qiita
- [#JTF2020 解説版]理解して拡げる 分散システムの基礎知識 - Qiita
- 自分用メモ: ウェブ設計チェックリスト - Qiita
- SQL Server:ブロッキング発生時に情報を自動保存する仕組みづくり - Qiita
- SQL Serverのロックについて出来る限り分かりやすく解説 - Qiita
- 伊津野 英克さんはTwitterを使っています: 「T字型ERな設計指針を取ればNULLが不要になるだけで、単にNULLを否定しても空文字が設定されるだけなのでは。実際にそういうDB見たことあるし。」 / Twitter
- ののしさんはTwitterを使っています: 「今年もやってきたデータベースNULL戦争 https://t.co/bh9GHv7nyq #Qiita」 / Twitter
- 今年もやってきたデータベースNULL戦争 - Qiita
- chioさんはTwitterを使っています: 「副問い合わせだらけな上にNOT INやIS NOT NULLで大量の件数を捌いてる激重クソデカSQL、 そのままチューニングする方向でガチったらかなり厄介そうだったけど、 分割してJava側でくっ付ける&個別のSQLをチューニングする方針にしたら難しいことをせずに10倍速になった。 やっぱりクソデカSQLは悪。」 / Twitter
- chioさんはTwitterを使っています: 「補足すると、NOT INとかIS NOT NULLとかを使われると、インデックスが機能せずに順次処理し始めて、性能が劇的に悪化したりもする。 NOT INはNOT EXISTSに書き換える手もあるけど、NULLの扱いが面倒だからJava側でハッシュでくっ付けた。 IS NOT NULLはSQLを工夫してやっつけた。」 / Twitter
- RDBのデータの構成管理ができるDoltとは - Qiita
- 史上最強のデータベース、SurrealDB - Qiita
Wikipedia
- 関係の正規化 - Wikipedia
- List of order theory topics - Wikipedia
- 分散処理に詳しいオタクさんはTwitterを使っています 「SQLの実行中にそのクエリ自身によってタプルの位置を移動させてしまってスキャンが同じ行を複数回処理してしまう問題をハロウィーン問題と言って1976年のハロウィーンにSystem Rで見つけたそうな。 https://t.co/p5Ic5efqh3 ハッピーハロウィン!」 / Twitter
- Halloween Problem - Wikipedia
- ログ先行書き込み - Wikipedia
- Change data capture - Wikipedia
- ライトアンプリフィケーション - Wikipedia
Twitter
その他
その他-1
- Yohei KusakabeさんはTwitterを使っています: 「RDBMSコネクションからGraphQLのエンジンを作るプロジェクトを公開しました。PK/FKやスキーマをスキャンし、Nリレーションや集約クエリも含んだCRUDが一瞬で可能になります。 https://t.co/UkVKiUScuc カスタムロジックもテーブルや操作タイプごとに設定可能で、階層クエリは一つのSQLに変換されます。」 / Twitter
- ykskb/phrag: GraphQL API created from an RDBMS connection for instant, flexible and customizable CRUD operations.
- Yohei KusakabeさんはTwitterを使っています: 「現時点でサポートしてるのはPostgreSQLとSQLiteで、特定の条件ではありますがPostgreSQL上での性能評価もドキュメントに入れました。Clojureで書かれていますがDockerやjavaのコマンド一発で走るバージョンもあります。」 / Twitter
- Masahiko Sawadaさんのツイート: "実行計画のHINT句つくるツール作ってみた。PostgreSQL用です。 クエリを受け取ると(実行計画を取得して)そのクエリの実行計画を作るためのHINT句を返します。これで実行計画の固定化は簡単にできるようになりそう。 https://t.co/salhirHlf0… https://t.co/YrttCYrpCI"
- MasahikoSawada/phint: Planner hint generator for PostgreSQL
- yuyabuさんはTwitterを使っています: 「@89O5H1QpDQCbCkc TPC-CやTPC-Hのベンチが動くところまで作ってみたいですね」 / Twitter
- :tom__bo:さんはTwitterを使っています: 「SQLからrelational algebraの式(?)を導出して、さらにそこからいい感じの可視化をしてほしい」 / Twitter
- FadisさんはTwitterを使っています: 「データベースの操作はROLLBACKする可能性があるので、RDBMSは変更がCOMMITに至らなかった場合に元に戻せる必要がある。PostgreSQLはこれを簡単に実現する為に多くの操作をログの追記で表現する。結果ログが際限なく増えるので、もう戻らない時点のログを捨てるVACUUMで性能と容量を取り戻す必要がある」 / Twitter
- K.Namba/ご注文は910ですか?さんはTwitterを使っています: 「@fadis_ VACUUM してない PostgreSQL は 死ぬ」 / Twitter
- 画力・博士号さんはTwitterを使っています 「関係代数がわりと堅牢に確立されているのにSQLなどはあんまりカッチリと関係代数に “準拠” してないの(実装の都合なども加味しているのだろうけれども気持ちとしては)なんでやねん感はある」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(まあでも例えばπ計算もそれに準拠している並行計算の言語で実用に供するものはそうそう見ないだろうし,関係代数もそういう “理想気体的な立ち位置” かな)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ、、、 あとmramのような細粒度アクセス可能な不揮発デバイスが広がると、脱b-tree系も有り得るのかな? (nvdimm-pとか裏にnandがある系は、ブロックアクセスでないと厳しそう?)」 / Twitter
- 中村 実さんはTwitterを使っています 「DB世界にはDBの内部構造に機械学習を使うというアプローチがボチボチものになり始めているように感じる。B-tree型インデックスをアクセス状態からMLを使って最適化するとか並列実行されているプラン間の資源をMLを使って最適化するとか。スキーマ推定とかはもともとMLありの分野だ。」 / Twitter
- YSR@ものべのHE完走!!さんはTwitterを使っています 「@kmizu 一応、あまりにアカン書き方だと警告が出たりはしますが、実行計画とにらめっこしていると、「実行計画の構図をそのままコードに落とし込んで動かねーかな」とは思ったりしますねw」 / Twitter
- dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「ええっ!?30万件近いデータの入ったemployeesデータベースがDocker imageとして公開されているのかい!? クエリやインデックスやパフォーマンスチューニングの練習に使える最高の環境がdocker runするだけで手に入るのかい!? すごいねマスオくぅん! https://t.co/Q8jKGs2I3F」 / Twitter
- genschsa/mysql-employees - Docker Hub
- パン粉さんはTwitterを使っています 「マイクロサービスをやるってことは、つまりトランザクションをウェブの世界で再現するみたいな話に見えてきた。なので、僕はデータベースについてもうちっと見識を深めないといけない気がしてきた。どこから見ればいいんだ、「詳説データベース」から始めても分かるのかな...。分かんなそう...。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクションを再実装しないといけないような分割はやめた方がいい派。どうしても分割したいなら、整合性は諦めるか、せいぜい冪等リトライで頑張るぐらいにしたい。」 / Twitter
- Ü+1F980🦀さんはTwitterを使っています 「SCというHPC分野の最高峰の国際会議に単著論文が採録されました!! 著者版をarXivで公開してます https://t.co/5VvA6an5ej SCはスパコンTop500やゴードンベル賞の発表等も行われる由緒ある会議で、スパコンなど巨大スケール上の計算に関する最前線の応用や大きな理論的成果を挙げた論文が発表されます。」 / Twitter
- [2108.02692] Accelerating XOR-based Erasure Coding using Program Optimization Techniques
- Ü+1F980🦀さんはTwitterを使っています 「論文では、大規模ストレージの実装や実現上重要な「データの冗長性担保」問題につき、Erasure codingと呼ばれる代表的手法を、有限体上の行列積による従来実装を離れ、「プログラムの最適化問題」として捉え直すことで、プログラム理論の既存成果を徹底的に駆使し、大幅に最適化した点が評価されました」 / Twitter
その他-2
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「SQLたくさん勉強して得られた結果、宣言型言語が嫌いになりました。実行順序を考えなくていいのがメリットのように言う人いるけど、結局は実行エンジン(planner)のお気持ち当てゲームしないといけなくて、それなら最初から実行順序を明示できたほうが結局は簡単。宣言型言語のパフォチューは大変不毛。」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「> お気持ち当てゲーム SQLプランナー「わたしの考えてること、分かる?」」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「アルゴリズムとデータ構造を勉強して、最適な順序を記述 v.s 実行エンジンさまのお気持ちを推測して、最適なSQLを記述 (実行計画の変動によりきまぐれにお気持ちが変わるオプションつき)」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「実行計画を固定させる機能とか見ると、「宣言型とは?」という疑問が湧くことがある。必要性はすごく分かるんだけど、本末転倒な感じを受ける。」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「宣言型はデバッグも面倒なんだよな。SQL、正規表現、LaTeX、ワークフロー、・・・。宣言型は適用範囲を見極めて使ってほしい。最近の宣言型偏重ブームは懐疑的に見てしまう。」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「テーブル設計本で100%出てくる正規化の例。実はアレは例であって実際にはやってはいけない設計。 取引明細テーブル 商品テーブル で取引明細テーブルには商品名カラムは持たず正規化して商品テーブルに持つと。これが現実の設計だとダメなケースが多いんです。 #駆け出しエンジニアと繋がりたい」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「データのライフサイクル 過去データの取り扱い システムの利用者 業務面 法令面 この辺りを考慮して設計を考えると、正規化してはダメな理由がみえてくる。勿論、業界や業務によって正解はことなる。だから一般論だけ学んでもダメ。 #駆け出しエンジニアと繋がりたい」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「マスタテーブル側の時系列の持たせ方も関係してくるし、Webシステムならパフォーマンスも考慮しなくてはダメだし。そんな事を諸々考えてテーブル設計できる人になれば、価値は高いよね。本当に。 #駆け出しエンジニアと繋がりたい」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「RDBを座学すると大抵ハッシュテーブルの話も出てくるけど実際にRDBでハッシュテーブル使ってることあるんだろうか」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ JOIN のときの一時テーブルでは使ったりします」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@KOBA789 データ構造どっちを使うかはDBMSがよしなに決めてくれる感じですか」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ 実行計画によって使うデータ構造が決まるのでそうですね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@KOBA789 かしこい」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ もちろん実装によって様々ではありますが」 / Twitter
- Mine02C4@半チンさんはTwitterを使っています 「@__pandaman64__ オンメモリだとハッシュインデックスになったりする(MySQLとか)」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「UPDATEのサブプランは変更していない列を含んだタプルを出力として返す必要があると。しかも、継承テーブルの場合だと、子テーブルごとに異なる列を持てる。オーバーヘッド大きそう。 #pgunconf」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「PG14だとUPDATEの下に子テーブル毎にサブプランを作るのではなくて、一つのサブプラン(Appendノードの下に子テーブルのスキャンがぶらさがっている)を作るだけで良くなったのか。子テーブルのスキャンの出力としてその子テーブルのOIDを含めると。 #pgunconf」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「Txのcommit時はcommit WALをfsyncしてclog内の対応するbitの"commit済み"に更新するのだけど、その間にcheckpointが入り込むとredoポイントがcommit recordの後になりclogはbitが更新されるる前にディスクに書きまれる可能性があるからTxはcheckpintが間に入り込まないようにしているのか。なるほど!」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「これに似た問題はcommit WALとclogの関係だけじゃなくて、PostgreSQLの実装だとprepare WALと2相コミットのファイルの関係でも該当する。」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「MySQL(innodb)にはclogみたいなものは(多分)ないからこれを心配する必要はないけど他の追記型のDBはどうやって対策しているんだろう。」 / Twitter
その他-3
- 増田 亨.さんはTwitterを使っています 「外部キー制約とNOT NULL制約を一切使わない。 全てのテーブルは更新プログラムIDと更新タイムスタンプと削除フラグを持つ。 あちこちでDISTINCTと外部結合とNVLとCASE式を使う。 SQL弱者の自分には、このデータベースを使ってアプリケーションを開発できる気がしない。」 / Twitter
- ドッグさんはTwitterを使っています 「SQL,SELECT と FROM は逆のほうがいいよなというのはほぼみんな思ってそう(補完もしやすいし)」 / Twitter
- kurehajimeさんはTwitterを使っています 「@Linda_pp SQL風な構文を採用したLINQはfrom,where,selectの順ですね。」 / Twitter
- まーさんはTwitterを使っています 「@kurehajime @Linda_pp 個人的には insert と update を揃えてほしい... 多分、英語に近くなるようにしてるんだと思うけど。」 / Twitter
- t157さんはTwitterを使っています 「SQL ServerはVisual Studioでデバッグできるようになってからは、楽になったと思うね。w いや、普通のプログラミング言語のデバッグに比べたらやり難いけど。w」 / Twitter
- 伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「Web業界にストアドプロシージャ書ける人間がどれほど残っているというのかね。」 / Twitter
- kuboon / Ohkubo KOHEIさんはTwitterを使っています 「将来的には、SQLとかいう中間言語を使わずDBのファンクションを直接呼ぶのが普通になるはず。必要なクエリは都度DB側へ組み込み、アプリケーションからはそれを呼ぶ。 今でもCでゴリゴリやればそのパターンは可能だが、面倒なのでやらない。rust のDBエンジンが来る。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@kuboon インデックスの利用とか排他制御が難しくなりすぎませんかね。そのあたりの難しさをのりこえてパフォーマンスが必要というシチュエーションが少ないか、あってもだいたいはMongoなどそもそもSQLつかわないDBを使って解決できるかになるような。」 / Twitter
- kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis SQLを書くのと同じレイヤーのAPIが用意されてればいいんですよね?単純に、SQL構文解析のコストがなくなって、人間もSQLじゃなくrust文法で書けるようになって、言語支援も受けやすくなって便利になるかと。 RDBを使いたいので求めてるのは mongo ではないです。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@kuboon SQL相当のコード書くならJPAのCriteriaみたいなAPIができると思うのだけど、結局それではすべての処理が実現できずJPQLのようなクエリ言語を使うことになって、それならSQLでいいじゃんとなった歴史がありますね。 構文解析のコストが問題なのであればパラメータつきクエリの仕組みがあればいいだけで」 / Twitter
- kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis 構文解析のコストは大した事ないですが、人間がSQLを書くよりはもっと合理的に書けるはず、という風には考えてます。Rails の where とか merge みたいなのが SQL に変換されるのでなく直接実行されるといいなと。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@kuboon SQLって直接実行してるんではなくて、オプティマイザがその構造をみてどの順番でテーブルアクセスするかとかどういうインデックス使うかとかの実行計画を作って、そのあとで実行エンジンが実行するので、構文木をうまいこと渡すくらいしかできないと思うのです。」 / Twitter
- kuboon / Ohkubo KOHEIさんはTwitterを使っています 「@kis それはわかります、構文木を渡すのでぜんぜん良いです。それが rust とかの型情報付きで構文木を構築出来る様になってほしいんですよね。」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「@kuboon JPAのCriteriaのようなものが各言語にあれば、DBに渡すのは共通プロトコルとしてのSQLでいいと思うのですよね。実行計画つくるのに比べればSQLのパース時間は無視できると思うので、キャッシュするべきは実行計画になると思うし。」 / Twitter
- くまぎさんはTwitterを使っています 「データベースの授業、正直SQLは基本的なことを一コマで抑えてあとはずっとオプティマイザとインデックスとトランザクションのちゃんとした話(CascadeとかARIESとか)を自分で実装できる解像度で授業でやって欲しい。」 / Twitter
- Cascade sql - Google 検索
- ARIES sql - Google 検索
- 7594591200220899443さんはTwitterを使っています 「ていうか数学も何も計算量の議論が理解できてない人なんて最適なSQL書けねえじゃん、と思うと、そやし誰も最適なSQLなんて書いてないねんな、という圧倒的現実が立ち上がって来るのであった。SQLというのはそもそも数学できなくてもプログラミングできるようになるための装置ではある。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「数学できなくてもプログラミングできるのは方向性としては正しい。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@shyouhei でもjoinとか「理解して」使ってるなら、関係演算を理解したってことなんですよね。難しいことをSQLが隠蔽いているというのではなく、関係演算の式そのものですから。 (単一テーブルのselectも関係演算のひとつだけど、それ自体は手続的に理解できなくはない)」 / Twitter
その他-4
- Takashi KawasakiさんはTwitterを使っています: 「DBを作るっていうのをタダのファイル構造から初めて、検索速度(インデックス/データ構造)、同時書き込み(ロック)、複数の項目の同時変更(トランザクション)、プログラムの不正終了によるデータ欠損(ジャーナリング)みたいな順序でどんどん知識を蓄えていくのは割と悪くないと思うんだよな。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「あぁ、トランザクションにはロールバックもあるな。忘れてた。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「SQLに関しては深みにはまりそうなので、JSONぶっ込める程度のKVSでお茶を濁す方が良いな。JSONは登録時にさっくりパースしてインデックス生成する程度で良いんじゃないか。知らんけど。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「トランザクションがないDBなんて腐るほどあるし、下手すると、JSとかDartみたいなシングルスレッド環境なら排他処理すら雑でも良い感じはある。適材適所で楽なデータストレージシステムを作るのは悪くはないと思うな。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「http3で見た目と送受信時のバイナリ表現の分離が図られたみたいに、SQLも内部ASTみたいなのだけで標準とかあってもいいのかもしれん。SQLは、まるで追っかけてないので何もしらんけど。」 / Twitter
- tarosukeさんはTwitterを使っています: 「@espresso3389 てかSQLなんてもので機械同士が通信していること自体がオカシイ。SQLは人間用のシェルで、中身はJSONどころかチャンク構造のバイナリでもいいくらい。」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています: 「@espresso3389 DBMS 自体はパース後の実行計画をキャッシュしてますけど、クライアントとのやり取りでは出てこないですねぇ。 SQL 以外のクエリ言語はあったりするのでそう言うのを使うとかはあるかも。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PostgreSQLはどうやって行を記録しているのか? テーブルの内容は「ヒープファイル」と呼ばれるものに格納されている。各ファイルは通常8kbのページごとに分割されており、rowはページ末尾から詰められていく。いっぽう各rowへのポインタはページ先頭から並んでいる。 https://t.co/pFHHaspiW0」 / Twitter
- How Postgres Stores Rows - Ketan Singh
- Nayuta YanagisawaさんはTwitterを使っています 「Shopify が locality を高めるために (shop_id, id) の複合主キーを採用しているという話 (kamipo さんが言及してたやつ)。流石 Shopify という感じだ。 https://t.co/pAUvInE76S」 / Twitter
- How to Introduce Composite Primary Keys in Rails
- Kenji OtsukaさんはTwitterを使っています 「@_inakun_ @rioriost PostgreSQLのほうはDDLもロールバックできるので便利です。 MySQLよりも先にいろいろ機能追加されている印象があります。」 / Twitter
- ゆきうさぎ@フリーのシステム屋さんはTwitterを使っています 「PKがサロゲートキー(id)だと並列化しづらくてツラい_( _´ω`)_ ナチュラルキーで良くね? ってなるけどORMで外部キーでオブジェックと引っ張る時は楽なんだよな。。。 というか!!!( ゚д゚)!!!!同時にINSERTされたら、超追いづらいデータにならねぇか??? 仕事のことを考えるのやめよ。。。」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています: 「Slickのバルクインサートクエリーをshapeless & Scala 3マクロで自動生成できた気がする👀 これを使って1万件のINSERTを試したけど、標準の++=に比べて手元のMySQL(Docker)で約40倍の高速化が達成できたかもしれない🎉」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「オープンソースのSQLパーザ一覧。SQLのクエリ履歴を収集することは、組織内 (データウェアハウス) でどのようにデータが使われているかを知るうえで重要である。 - どのテーブルがよく使われているのか? - どのカラムが使われていないのか? etc. https://t.co/aTLzTdLhVM」 / Twitter
- Open Source SQL Parsers
- ozeki@設計が好きな人さんはTwitterを使っています: 「やはりRDBのnot null制約やunique, foreign keyは最後の砦として重要であるということを改めて学んだ。 Twitter界隈にforeign key付けない派がたまに出てくるけど、控えめに言ってヤバすぎる。 レコード削除しやすい利点よりもデメリットの方が圧倒的! 駆け出しエンジニアがそうならないことを祈る!」 / Twitter
- よっくんさんはTwitterを使っています: 「@tagaranoko1014 外部キーは便利だけど、それは適切なテーブル設計ができる人に限った事で、素人がつけた外部キーは負債になるからつけない方がマシです。そして適切なテーブル設計ができるエンジニアは滅多にいません。」 / Twitter
- Gill BatesさんはTwitterを使っています: 「@tagaranoko1014 20年以上システム開発に関わってますが、not nullはOracle系の人は気にしない場合が多い、他のRDBであればnullに業務上意味がないときはつける、uniqueは100%つける、FKは国内外のパッケージ製品や金融機関の基幹システムなどを含めてもつけるのは少数だったという印象」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「PostgreSQLに機械学習機能を追加する拡張。PL/PythonベースのPostgreSQL拡張として実装されている。 / “GitHub - postgresml/postgresml: PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only S…” https://t.co/RuRBjh0M3y」 / Twitter
- postgresml/postgresml: PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only SQL, without your data ever leaving your favorite database.
- Sho ShimauchiさんはTwitterを使っています: 「SQLiteのような組み込みDBのOLAP版DuckDBを初めて知った。これめちゃくちゃいいな。昔 Parquet が出てきたときに「これをローカルでSQL叩く仕組みほしいな」と思ってたけどようやく現実になった。CLI試してみたけどあっさりParquetファイルを読み込めた https://t.co/oPxBEZMoGZ」 / Twitter
- DuckDB - An in-process SQL OLAP database management system
みずほ銀行
- Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクション(相当の機能)を実装しようという試みの99%は失敗に終わるだろうという直感がある」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「冪等リトライしか勝たん」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「ちょっとこれは違和感が。みずほの報告書を読む限り、Minoriは分散トランザクションをACIDではなく補償モデルで実装してるっぽいが、どの障害もロールバックに失敗していて、補償失敗の設計考慮が漏れてる。これテスト時にあんま問題が顕在化しないし、稼働し始めて問題が出て運用が苦しむやつ。」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「国立情報学研究所の佐藤一郎教授「連鎖障害が起きたのだから、システムの根幹に問題があったとみるべきだ」疎結合とグローバルトランザクションという相いれない2つを同時に追求したことが、MINORIの弱点となっていた / “SOAなのにトラブルが連鎖、みずほ銀行システム障害…” https://t.co/Rn130H8ily」 / Twitter
- SOAなのにトラブルが連鎖、みずほ銀行システム障害の謎(2ページ目) | 日経クロステック(xTECH)
- (๑╹◡╹๑)さんはTwitterを使っています 「例えば、報告書P43の2月28日の定期性預金トラブルに起因したATMのカード取込の状況だけど、本来なら取消情報テーブルの更新不可が発生すれば、直前の処理から遡ってロールバックするように設計されてるはずだけど、補償失敗時の動作がデッドロックとか最悪の結果になってる。 https://t.co/8QqY6LGwgK」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「別にSOAを実現するために分散トランザクション実装は必須ではけど、ACIDにしても補償モデルにしても、一貫性を補償する仕組みがないとロールバックに失敗するまずい実装になってしまう。SOA自体の問題じゃないと思うんだ(少なくとも誤解を生む表現だと思う)」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「CAP定理から言えば、Minoriの実装って一貫性・可用性・ネットワーク分断耐性のすべてが実現できてる想定で、どれも実現できてないんじゃぇねのっていう疑念を持ってる。」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「SOAと並んで疎結合化の問題視されてるけど、言うまでもなく疎結合化は金融機関系システムでは採用されてないところを探す方が難しいくらい一般的になってきているので、発生した現象と照らし合わせても原因でもなんでもないだろう。」 / Twitter
降順インデックス
- Nayuta YanagisawaさんはTwitterを使っています 「ISUCON 絡みで、MariaDB も降順インデックスをサポートするよう求める声を聞いた。対応する JIRA issue はあるけど、いまのところ実装される気配はない。 https://t.co/1vku10XJ6e」 / Twitter
- [MDEV-13756] Implement descending index: KEY (a DESC, b ASC) - Jira
- Nayuta YanagisawaさんはTwitterを使っています 「> MDEV-13756 Implement descending index: KEY (a DESC, b ASC) Sveta’s talk mentioned this functionality that isn’t in MariaDB yet. There are a lot of watchers on this issue. It is however too large a task to complete for 10.6.) https://t.co/19dOmRR3Ia」 / Twitter
- FOSDEM 2021 MariaDB is listening - MariaDB.org
パラメーターチューニング
- shallow1729さんはTwitterを使っています 「OtterTuneの文脈でMySQLのadaptive hash indexは切るとパフォーマンスむっちゃ上がったって話があったけどあれの詳細(どういうワークロードかなど)どこかにあるんだろうか? (人間がやるのやめて機械学習に任せようぜって話であってAHIがいつ有用かっていう議論がしたいわけじゃないのはわかってるが)」 / Twitter
- shallow1729さんはTwitterを使っています 「adaptive hash index、早くもっとadaptiveになって脳死でonにさせてほしい」 / Twitter
- shallow1729さんはTwitterを使っています 「これは2年ぐらいうまく折りたたまるタンパク質が設計できるようにアミノ酸や原子のモデルパラメーターをいじってた人間の発言だけどパラメーターチューニングは機械学習に任せたい」 / Twitter
- shallow1729さんはTwitterを使っています 「まあDBMSのチューニングは再起動しないと適用されないパラメーターが多いから雑に試せなくて難しいよねー」 / Twitter
Multiversion concurrency control
- ogiwaraさんはTwitterを使っています 「SIはMultiversion CCの特殊な場合として捉えられるよね 普通のCCは1VCCで一番最後の書き込みを必ず読まなきゃいけない」 / Twitter
- ogiwaraさんはTwitterを使っています 「てことはlocal書き込みがそもそもMVCCに落とし込めるのか」 / Twitter
- ogiwaraさんはTwitterを使っています 「これがデータベースの理論 面白いね https://t.co/Bvea0YJEC8」 / Twitter
- Multiversion CC - Google 検索
- Multiversion concurrency control - Wikipedia
- 並行性制御 - Wikipedia
- Concurrency control - Wikipedia
- トランザクションの並行処理制御
- Snapshot isolation - Wikipedia
- Snapshot isolation - Wikipedia
- Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
- Snapshot Isolation のおもちゃ - Tociyuki::Diary
- PostgreSQL Isolation について - SIerだけど技術やりたいブログ
- ogiwaraさんはTwitterを使っています 「そもそもMVCCを変形すれば1VCCに落とせるぽいね、定義上」 / Twitter
- ogiwaraさんはTwitterを使っています 「MVはあくまで便宜上の表記だから」 / Twitter
- ogiwaraさんはTwitterを使っています 「いや、それは言い過ぎだね より過去のを見ることができるから SIはMVCCと1VCCで表せるってだけ」 / Twitter
三大定理
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「CAP定理、ノーフリーランチ定理、あと1つ付け加えてステートメントがよくわからん3大定理にしたい」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@ashiato45 無限の猿定理とかどうでしょう? 厳密な定義もありますが、CAPやno free lunchもあとでそのコンセプトに基づく定理が与えられてるはずなので並べてもいいかなと」 / Twitter
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「@qnighy 個人的にはステートメントがよくわからん上でわからんまま濫用されがちというところにポイントをつけたいので無限の猿がよさそうな気がしています」 / Twitter
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「ステートメントよくわからん3大定理、qnighyさんのおかげでCAP定理、ノーフリーランチ定理、無限の猿定理の3つに決まりつつある」 / Twitter
OpenVDB
- FadisさんはTwitterを使っています 「OpenVDB: 高速かつコンパクトに疎なデータを扱う空間的データ構造として2013年に発表されたVDBのオープンソースな実装。root nodeのみが可変長のハッシュテーブルになった3段固定のB+木を使う事で動的に変化する疎なデータへの償却定数時間でのランダムアクセスを実現する https://t.co/ld1UfO7nhs」 / Twitter
- OpenVDB
- FadisさんはTwitterを使っています 「衝突を想定する必要があるハッシュテーブルへのアクセスは償却定数時間だが高速ではないという問題がある。このためVDBでは「最近アクセスしたノード」を含むより小さいハッシュテーブルを持つ。小さいハッシュテーブルはキャッシュなので衝突したら古い値を消して良く、高速なアクセスが可能になる」 / Twitter
- FadisさんはTwitterを使っています 「このデータ構造の問題点はread-onlyで使う場合であってもキャッシュが更新されるため書き込みを行うの等価に扱う必要がある点。OpenVBDの実装ではデータを読むだけの場合であっても同じデータ構造に対して複数のスレッドが同時にアクセスしない事を保証する必要がある」 / Twitter
HSE
- FadisさんはTwitterを使っています 「HSE 2.0がリリースに向けた準備に入っている話。HSEはLinuxのカーネル空間でブロックデバイス上にトランザクショナルなKVSを作るmpoolを使って近代的なSSDで性能が出るデータベースを実現するストレージエンジン。2.0は今までの1.xとの互換性を捨ててAPIの改良を行うらしい https://t.co/0DAF2x3Fwh」 / Twitter
- HSE 2.0 Open-Source Storage Engine Is On The Way From Micron - Phoronix
- FadisさんはTwitterを使っています 「HSE 2.0では以前からあるC言語APIに加えてPython APIが追加され、既存のDBに組み込みやすいようにそれらで用いられるアラインメントに合わせるようになった他、将来の拡張に向けた内部の設計の見直しを行ったとされているが、現状ドキュメントがほぼ無く、具体的なところはソースを見る必要がありそう」 / Twitter
- FadisさんはTwitterを使っています 「HSEの下を支えるmpoolには2.0のrc版は出ていないが、mpoolの説明にHSE 1.x向けと書かれていることから、HSE 2.0と組み合わせるためのmpoolのコードはまだ上がっていない段階のように思われる」 / Twitter
- FadisさんはTwitterを使っています 「HSEってどんなやつ? がひと目でわかるやつ https://t.co/SxZiCbvNAK」 / Twitter
- FadisさんはTwitterを使っています 「Micron、SSDや不揮発メモリで高い性能を発揮するKVS、HSEをオープンソースで公開。HSEはファイルシステムではなくSPDKのblobstoreのような機能を提供するLinuxカーネルドライバmpoolを使って、カーネルのページキャッシュを直接読み書きすることでオーバーヘッドを回避する https://t.co/emxbU2ejsC」 / Twitter
- Micron Announces An Open-Source Storage Engine Designed For SSDs, Persistent Memory - Phoronix
- FadisさんはTwitterを使っています 「今の所SSDにしか対応してないっぽいから、SSD向けが強調されてるけど、不揮発メモリデバイスだとページキャッシュをデバイス自体で置き換えられるわけで、これどう考えてもNVDIMMの時代にNVDIMMの性能を活かせるデータベースを作る為の土台だよな」 / Twitter
materialized view
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「マテリアライズド・ビュー使ったら負け」という気概の人達こそ本当のRDB至上主義だったり…RDB原理主義かな?」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「①はストアドやトリガー、マテビューなども使うし、あるいはDBMSが持つランタイムでSQL以外の処理も実行するかも知れない。 ②では、JOINやORDER BYをDBでは行わないという派閥もある。インデックスもDB内に持たずに、外部に実装する例も見たことがある。」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「経験上、 ①DBで何でもやりたい派 ②DBはミニマムな機能で良い派 があって、①と②の間に無数のバリエーションがある。両派が分かり合えることはほぼないので、数年おきにぶつかるイメージ。 極端な①はアプリもDB内に構築するし、極端な②はDBをファイルシステムのラッパーぐらいに考えてたりする。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu マテリアライズド・ビュー嫌いな人っているんですかねえ…(僕は好き)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど。 RDBに詳しく無いのでデタラメ言ってるかもですが(笑)、純粋なRDB概念としては鬼っ子な印象あります。 (正規化は無理だからビューだけど、遅いから半自動キャッシュ的な暫定解=マテリアライズド・ビュー、みたいな)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu マテリアライズド・ビューは論理的にはビューであり正規化は別に崩してないわけで、でも正規化した場合に発生することがある性能問題は改善されるわけで、純粋なRDBが好きな人も(それが必要な場合に使うことについて)特に抵抗感はないと思ってます。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど。 昔々、ユニマガか何かで、Oracleぐらいしかマテリアライズド・ビューをサポートしてない頃に、性能出るけど汚い仕組み、として紹介されてた記憶あるんですよねぇ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu 完全に透過的に使えるわけじゃなくて制限があったりはしますからね>汚い仕組み でも正規化を崩さずに済ませるために使える道具が増えるのは基本的にみんな歓迎なんじゃないかと… なお PostgreSQL も 9.3 から materialized view が実装されています。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda まあCPUでも何でも、キャッシュは一貫性の面で、汚い面が出るのは仕方ないですよね…代わりに圧倒的な性能が出るので。」 / Twitter
AUTO_INCREMENT
- こば - as a DB Engineer -さんはTwitterを使っています 「メルカリさんで、すくすく育ったMySQLをNewSQL(ScalableなDB)に移行する事を検討している話。今の所はアプリケーションの互換性が焦点なようで、TiDB >> Spanner,Vitessとなっている。ただ他の事例を聞く限り、TiDBでもAutoIncrementの対応には苦労していたはず。 https://t.co/53TkKrurnt」 / Twitter
- レガシーなシステムとの向き合い方 | メルカリエンジニアリング
- こば - as a DB Engineer -さんはTwitterを使っています 「VitessがNewSQLかと言うと、個人的には違うかなと思うけど。」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「TiDBのMySQL互換性はここにまとめられており、AUTO_INCREMENTに関する注意も記されている。 https://t.co/n5oL7ymtBu」 / Twitter
- MySQL Compatibility | PingCAP Docs
- こば - as a DB Engineer -さんはTwitterを使っています 「ただ、MySQLをアプリケーションレベルでShardingしても、Auto Incrementは使えないよね?ここのインスタンス毎に採番されるし、全体としてユニークにもならなそう。」 / Twitter
求められてるのはExcel加工の前処理としてのBigQueryとかSnowflake
- 伊津野 英克さんはTwitterを使っています: 「これは事実だよなぁ。結局みんなExcel。とはいえ、最近はデータ量多いから何でもExcelとはいかないんだけど。でも、たぶん求められてるのはExcel加工の前処理としてのBigQueryとかSnowflakeでBIツールではないのでは感ある。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「僕の経験範囲内での話だが、美麗なグラフを売り物にする高機能なBIツールを導入した組織の多くが、単なるデータダウンロードツールとしてそれを使っている。売上実績などのトランザクションデータがそのまま経営データになるわけではない。そして、本当にグラフで見たいのは、後者。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「「何も生み出していない」とは言い過ぎた。きれいなグラフはたくさん生み出された。でも、経営管理での一番の問題は、グラフで表示すべき経営データが整理・統合されていないこと。特に計画と見込み。ビジュアリゼーションではなく、計画・見込を含む経営データモデルとデータ統合手段が必要なはず。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「BIツールで自由に分析できますって製品多いんだけど実際に導入すると誰も使ってなくて定型帳票ツールみたいな扱いになりがちなのよね。SQLなんてそんなに難しくないんだから、営業にSQL教えたほうが安くて効果も出ると思う。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「@hidekatsu_izuno 予算管理を含む管理会計の場合、加工したデータをデータベースに再統合したいんですよね。BI系ツールはその点が眼中にないという問題もあります。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「仕事的に経営層にアクセスできる立場ではないので想像だけど、経営者が判断に使ってるのはBIツールじゃなくて経営企画部が作るPowerPointかWordでしょ。リアルタイムに情報が収集できたところで分析されていないデータに価値はない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「正直、一ヶ月遅れの情報では遅すぎるような業務上の判断ってあるかな? どの会社も経営会議に廻す前に何ヶ月も準備してるよねぇ。一ヶ月情報を待てないのは倒産寸前とか情報流出とかそういうケースだけなのでは……」 / Twitter
テーブル無しの SQL
- 雷更新世さんはTwitterを使っています: 「おお、これ見て「うーんまあ酷い…気もするが利点も多いよね…? 少なくとも発想はすごい。でも24時間制のゼロ埋めは?」とか思っていたがmattnさんお墨付きか。でも24時間制のゼロ埋めはどうするんだろう。 >」 / Twitter
- 徳丸 浩さんはTwitterを使っています: 「MySQL使っている最中にカップラーメン作ろうとおもったら、以下で3分間待つことができます。 SELECT sleep(180); その間mysqlコマンドが使えなくなるので、別ターミナルで実行するとよいでしょう。」 / Twitter
- シン・おばあちゃんのプログラミング教室(ばあプロ)さんはTwitterを使っています: 「SELECT文でTableを指定しないと計算式の評価になる。知らなんだ😅 SELECT 2+3+4; 9」 / Twitter
- SQL SELECT without FROM should read VALUES without INSERT
- masahiroさんはTwitterを使っています: 「@Pythonist19 これをどんな時に使うのか気になる」 / Twitter
- RyuseiさんはTwitterを使っています: 「むしろゼロ埋めしない24時制がないっぽい https://t.co/8AA701JwYA」 / Twitter
- RyuseiさんはTwitterを使っています: 「UTCをZと表記させるために変な記法を使うことになる https://t.co/f1Gwq3A79G」 / Twitter
- RyuseiさんはTwitterを使っています: 「Ugly special caseって言ってるし https://t.co/yOsVCIrsA2」 / Twitter
- RyuseiさんはTwitterを使っています: 「謎が増えた」 / Twitter
- RyuseiさんはTwitterを使っています: 「トリビアなんだけど、fromなしのselectは標準SQLではなく、標準SQLでは values を使う https://t.co/RI1geLRPAm」 / Twitter
- RyuseiさんはTwitterを使っています: 「https://t.co/OlpS2jr1yk」 / Twitter
- 坂井 恵(SAKAI Kei)さんはTwitterを使っています: 「なお、途中で気が変わって2分半で開けたくなった場合は、もう一本MySQLに接続して SHOW PROCESSLIST; とすると、現時点での経過時間を知ることができます。お好きな時間にフタをあけてください。」 / Twitter
- KanatokoさんはTwitterを使っています: 「ちょっとした開発で、テーブルも何も作っていない状態で「アプリケーションのコードからDBに正常にアクセスできる状態になっているかどうか」を確認するときに良く使ってます。」 / Twitter
- 伊藤 祐策(パソコンの大先生)さんはTwitterを使っています: 「テーブル指定なしSELECTは普通にGET_LOCK()やNOW()等で使うよ。」 / Twitter
- KOBA789さんはTwitterを使っています: 「@kumagi 自然数インデックスの話だ……書いてある課題意識については異論ないんですが、カーディナリティの低いデータじゃないと逆にデータ量増えるし、Dremel の Bloom Filter みたいなアイデアの方が汎用性あってバランスよくないですか、みたいな気持ちでいます」 / Twitter
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「無償版と有償版があり、有償版はビュー、イベント、ルーチン、トリガーなども管理できる、と。なるほどですね。 / “Skeema を使ってみた” https://t.co/SOcjJVQfux」 / Twitter
- Skeema を使ってみた – スマートスタイル技術ブログ
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「MySQLのスキーマ定義管理ツール。特別なDSLを覚える必要はなくCREATE TABLEのSQLをベースに管理。テーブル構造の変更はCREATE TABLEの定義を変えるだけだが、差分の反映はpt-online-schema-changeやonline DDLでいい感じに制御。良さそう / “https://t.co/FFlmwTZLzS” https://t.co/9yHwL6VF2b」 / Twitter
- Skeema.io | MySQL and MariaDB schema management system
histric
histric-1
- Nayuta YanagisawaさんはTwitterを使っています 「Percona の QA チームが作ってる pquery がめちゃ便利(そう)だった。 自分が storage engine を一から書くことがあったら絶対に使うと思う。https://t.co/hhKjEtjNDD」 / Twitter
- The Future of MySQL Quality Assurance: Introducing pquery
- Nayuta YanagisawaさんはTwitterを使っています 「なぜ「便利(そう)」と書いたかというと、同僚のテストエンジニアが実行してくれて、自分は眺めてただけだからです。すごい勢いでコードの欠陥が明らかにされていってすごかった。」 / Twitter
- ᴹᴵᴵᵀᴼᴺさんはTwitterを使っています: 「これはガチ。検索の仕組みを考えるときに自作するかElasticSearchと連携するかの2択だとどっちも重かったけど、 Algolia とか Meilisearch は本当にスマート」 / Twitter
- VさんはTwitterを使っています: 「TimescaleDB は検索に弱いというか RDB は検索向きではないので Meilisearch と併用できるとほぼ最強になって楽しい。」 / Twitter
- VさんはTwitterを使っています: 「TimescaleDB はもともと RDB と TSDB がセットになってるので、そこに Meilisearch で検索エンジンが入るともうなんというか、これでええんやになる。」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「データ分布のカーディナリが低いと、計算量もインデックスのメモリ占有も、理想値 O(logN) を期待したのがせいぜい O(N) の数倍にしかならず、じわじわ線形にパフォーマンスが劣化していって、ある日突然インデックスがメモリに乗らなくなるところで負荷がグーーンになる」 / Twitter
- ひさてるさんさんはTwitterを使っています: 「体験談です」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「分散同期アルゴリズム Raft (Onrago et al.) のアニメーションによる解説。RaftはPaxos と同等の能力をもっているが、Paxosよりも理解しやすいとされ、MongoDBやCockroachDBで使われている。 https://t.co/fDwFv6g4LA」 / Twitter
- Raft
- yuyabu🍥さんはTwitterを使っています 「SQLの集合演算子、union, intersect,exceptがあるけど、diffも欲しいよなぁ。(何回も言ってる気がする。)」 / Twitter
- RayStark a.k.a. ロジニキさんはTwitterを使っています: 「トランザクション分離レベルで調べた時に、その定義についてめっちゃ頑張って説明してる記事は沢山出るのに実際の開発現場における最適なトランザクション分離レベルの選択について議論してる記事が全然無いのはどうして」 / Twitter
- nさんはTwitterを使っています: 「RDBではテーブルこそがリレーションだと知らずテーブル同士の関連をリレーションと呼んでしまうITエンジニアの割合 - Wikipedia」 / Twitter
- 大網 清和さんはTwitterを使っています: 「@n_1215 あれよね。RDB以前の網構造や木構造のDBと対比する為にリレーショナルと言い出したのよね。関連するデータを組(タプル)にして扱いやすくしたのが画期的だった。網構造が難しすぎて木構造にしたけどそれでも難しくて出てきた。」 / Twitter
- Yasunori GotoさんはTwitterを使っています 「10年以上前かな? 当時の上司が「メインフレームのDBのトランザクション処理って、ネットワークDBでしかもアセンブラでゴリゴリ頑張って書いていたので、CPUの命令で400stepぐらいで済んでたらしいんだよね。今ならJava+RDBで1万stepぐらいは余裕でかっ飛んでいるよね!」って話してたの思い出した」 / Twitter
- novtanさんはTwitterを使っています 「しかしだよ、処理効率が上がるたびにそれを食いつぶすテクノロジーを開発し続けてきているIT業界に本当に必要なのは「阿部寛のホームページ」への回帰なんではなかろうか。 / “IBM、世界初の2nm半導体技術を発表 バッテリー寿命は7nmの4倍 - ITmedia NEWS” https://t.co/ELGO5eJXnf」 / Twitter
- Rocksdb - Google 検索
- RocksDB lang:ja - Twitter検索 / Twitter
- ぶーと🐬さんはTwitterを使っています: 「最近の OSS の 分散KVS のストレージエンジンはだいたい RocksDB(やその派生) に丸投げしてる プロジェクト的にもメインは Distribute の部分なので,このレイヤーにあまり関心ないのが多いのと,十分にチューンされているんだろうなぁ」 / Twitter
- N. YanagisawaさんはTwitterを使っています: 「何らかの理由で RocksDB の開発が止まったらどうなるんだろうとたまに思う。」 / Twitter
- くまぎさんはTwitterを使っています: 「追記オンリーにしたほうがバグが無くなって実装しやすいとか言ってる人はぜひLSM-TreeとかFASTERをバグなしでシュッと実装してみて欲しい。普通に追記もバグりまくるぞい。」 / Twitter
- mattnさんはTwitterを使っています: 「論理削除は deleted カラムで削除を表して updated_at を更新する派なので、deleted_at は付けない派です。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「データベースの行を本当に削除せず「削除されたかどうか」だけをマークする方法 (soft delete)はいくつかの欠点がある。まず削除マークを検査し忘れると重大な情報漏洩につながるし、このようなテーブルに対する外部キー制約がほぼ無意味になる。あまりいい戦略とは思えない。 https://t.co/qOBt4dHysq」 / Twitter
- Soft Deletion Probably Isn't Worth It — brandur.org
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「オブジェクトストレージに関しては一度ハッシュ値でファイル名がついたファイルを書き換えることはないため、あまりDB化のメリットはないと思われるが、その発想はなかった。興味深い」 / Twitter
- naoyaさんはTwitterを使っています: 「弊社の DWH への ETL は、当時はデータ転送の処理途中で担当者PCの秀丸.exeが起動し、データを秀丸マクロでフィルタしたり変換したりする、というものでした これが、ちゃんと動いて仕事してたんだな。Embulk とか便利なものがない時代の機転にリスペクトですよ」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「削除フラグがバッドノウハウというのは正直眉唾だと思う(一律付けろなら確かにバッドだが)。コードの使い回しがセンシティブなら削除フラグは効率的な手法でしょう。そして業務系システムにおいてコードの使い回しは基本センシティブ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「例えば組織コードを適当に使い回されてる状況で部署別損益の推移出してみやがれって話ですわな。」 / Twitter
- RyuseiさんはTwitterを使っています: 「なんかいもいってると思うけど、DBMSがデータベースエンジンの実装を隠して統一的にSQLで見せてくれてるのに、なんだってインピーダンスミスマッチで消耗してオブジェクト指向をやらにゃならんのだ(リレーショナルモデルでアプリケーション作りたくないからでは)」 / Twitter
- RyuseiさんはTwitterを使っています: 「今日の問題意識としては、RDBとオブジェクト指向の間でマッピングできたとして、それをJSONを返すREST APIに公開したりしていて、何重にも違うデータモデルの間を変換するということに…」 / Twitter
- サバゴリラ玉(ryo_grid)さんはTwitterを使っています: 「みんな大好きmmap。 ただ、DBMSで使うのは筋悪と某Andy Pavlo先生他は盛んに言ってるし、まあ、せやな、って思うのだけど、実際メジャーなもので、ページマネージャとか自前で持たんで、mmap使ってるものって結構あるのかしら?」 / Twitter
- Viacheslav BiriukovさんはTwitterを使っています: 「mmap() is a tremendously important Linux syscall. Many open-source and in-house databases and KV storages use it internally to simplify data access. That's why it's so essential for SREs to understand its interaction with Page Cache: https://t.co/SaLhniuPpK https://t.co/KCnXLABJ8X」 / Twitter
- Page Cache and basic file operations | Viacheslav Biriukov
- オライリー「大規模データ管理」はどう書かれるべきだったか - hidekatsu-izuno 日々の記録
- BigQueryで時を遡って過去のテーブルを再構成する - ZOZO TECH BLOG
API Call & Debugger
Debug
その他
Debug Adapter Protocol
- Official page for Debug Adapter Protocol
- Specification
- vain0x/debug-adapter-examples: Examples of Debug Adapter Protocol (DAP) implementation
- Debug Adapter Protocol
- GraalVM
- Debugger Extension | Visual Studio Code Extension API
- なぜVisual Studio CodeでJavaの開発ができるのか? - Qiita
- DAPとdlvでデバッグする
- Rubyの新しいデバッガを試してみる - Qiita
JavaScript
- Google Chrome 96安定版がリリースされて「戻る」「進む」の動作が高速化・ただしTwitterやDiscordの表示に問題が発生するというバグ報告も - GIGAZINE
- 開発ツール | MDN
- リモートデバッグ - 開発ツール | MDN
- インスペクター - 開発ツール | MDN
- Chrome DevTools 89の新機能
- Angular公式のデバッグツール「Angular DevTools」、Googleが公開。有志による日本語ガイドも - Publickey
- 「Angular」公式の開発支援拡張「Angular DevTools」が公開 ~有志による日本語ガイドも - 窓の杜
- 「Google Chrome 96」が正式版に ~開発ツールに自動ダークテーマのエミュレート機能 - 窓の杜
- 「Google Chrome 97」が正式版に ~「Critical」1件を含む37件の脆弱性に対処 - 窓の杜
- Google Chrome「バージョン97」公開。Critical 1件を含む計37件の脆弱性修正 - PC Watch
- デベロッパツールの新機能が便利! そのCSSがなぜ機能しないのか、どう修正すればよいのかが分かる | コリス
- ドッグさんはTwitterを使っています 「DOM の変更にブレークポイント張れるの知らなかった.めっちゃ便利そうだ…」 / Twitter
- Minko GechevさんはTwitterを使っています 「DOM breakpoints allow you to find what code modifies your page 🤯 In @ChromeDevTools: ‣ Right click on an element ‣ Break on ‣ Select: subtree/attribute modification, or node deletion ⚡️ https://t.co/1BU42eS141」 / Twitter
- memlab を使って Web サイトのメモリリークを検出しよう
- mima_itaさんはTwitterを使っています: 「memlabの仕組み的にはpuppeteerでe2eテストを動かす。 その際、DevToolProtcolでヒープをとる。 https://t.co/3Xx8Z2w23Q」 / Twitter
- Chrome DevTools Protocol - HeapProfiler domain
- mima_itaさんはTwitterを使っています: 「多分この辺でやっている https://t.co/49M21Jf7Mh」 / Twitter
- memlab/E2EInteractionManager.ts at 323433cb944d7f9fa1eb20de9742b872617f4d7e · facebookincubator/memlab
- mima_itaさんはTwitterを使っています: 「まぁ、Chrome前提でいいなら、これでいいかなと。」 / Twitter
- Addy OsmaniさんはTwitterを使っています 「Tip: @ChromeDevTools has a CSS Shadow Editor! https://t.co/owHnenrEt3」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プログラム開発のツールでプロファイラとインスペクタはなぜか扱いが軽い印象だが、非常に重要だと思うんだよね。インスペクタが充実しているのは、Allegro Common LispとSmalltalkと言う印象」 / Twitter
- svetlyak40wtさんはTwitterを使っています 「@miura1729 LispWorks too. For example, it has a GUI inspector showing the widgets tree of your application: https://t.co/wOdG48Az3G」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 smalltalk の inspectorで evalするとき、selfがそのオブジェクトになってるのは秀逸ですね。selfにメッセージを送ることで、自分がそのオブジェクトなんだよって気持ちを味わえる!?」 / Twitter
- Intel Debug Technology
- インライン値ビュー - 公式ヘルプ | CLion
- IBM Knowledge Center - マルチスレッド・プログラム・デバッガーの開発
- LLVM Project、次世代デバッガ「LLDB」を開発へ | OSDN Magazine
- c - reference to external function in disassembly code - Stack Overflow
- デバッグ - Security Akademeia
- USDT probe - Google 検索
- プログラマーの大敵“デバッグ”、AIで自動化へ向けてIntelが研究中 〜Intel、開発部門での研究成果発表イベント「Intel Labs Day 2020」 - PC Watch
- QEMUのトレース機能でOSのデバッグを支援する - uchan note
- FreeBSDのオンラインカーネルデバッグ with QEMU - うたもく
- VirtualBoxのビルトインデバッガを使いたい | mrtska.net
- Xamarin.Forms 5.0: デバッグ機能の改善、新機能、新しいコントロール
- Program Paper-Slide-Show
- blog/jit-debug.md at master · herumi/blog
- x64dbg
- OllyDbg v1.10
- W32DASM Download (2022 Latest)
- [Rubyプログラム] Rubyデバッガ(debug.rb) | mixiユーザー(id:9799227)の日記
- マルウェア解析に役立つ、実行ファイルのケーパビリティ検知ツールcapaの入門 | IIJ Engineers Blog
MS
その他
- GFlags - Windows 10 hardware dev
- ページヒープ (PageHeap) によるヒープオーバーランの検出 - Web/DB プログラミング徹底解説
- PageHeap ユーザー ガイド
- ダンプファイルに保存されたイベントログを取り出す – Japan WDK Support Blog
- プロセスデバッガを作ってみる (1/2):CodeZine(コードジン)
- スタックの取得(ネィテブデバッガを作る2) – code-lab.net
- Win32デバッグ(11)・・・番外編: vanillaの日記
- Windows Vista で local kernel debug を行う - NyaRuRuが地球にいたころ
- Detecting debuggers by abusing a bad assumption within Windows
- CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
- CRT ライブラリを使用したメモリのリークを検出 - Visual Studio | Microsoft Docs
- Visual Studio 2017 15.9プレビューではC++デバッグ機能が拡張された
- IDA Support: Freeware Version
- OllyDbg Q&A (Digital Travesia)
- Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
- プログラムの実行内容を記録して再現する「タイムトラベルデバッグ」(Time Travel Debugging)機能、マイクロソフトがVisual Studioにプレビューで提供開始 - Publickey
- Debug live ASP.NET Azure apps - Visual Studio | Microsoft Docs
- ぬるぽへさんはTwitterを使っています 「考えたことがなかったけど配布にあたって確かにトレーサーは大事だなぁとなったうえで、それを突き詰めてMSがユーザーのダンプからバグ発生時まで巻き戻せるTTDを開発してたのを思い出した REPT: Reverse Debugging of Failures in Deployed Software | USENIX https://t.co/56FXkjdfdC」 / Twitter
- REPT: Reverse Debugging of Failures in Deployed Software | USENIX
- ぬるぽへさんはTwitterを使っています 「ちなみにこちらの手法は特許がとられており我々は使用することができません・・・」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kazuho この手法はオーバーヘッドがかなり少ないのと、おそらく唯一のマルチスレッドプログラムにも適用できる手法なんですよね シングルスレッドでもいいならMozillaのrrが有名ですね」 / Twitter
- NMIスイッチでWindowsのシステム・ダンプを取得 - KMCA
- EnC Part 3 – The CLR – Shotgun Debugging
- c++ - How does "Edit and continue" work in Visual Studio? - Stack Overflow
- Speed up your .NET and C++ development with Hot Reload in Visual Studio 2022 | Visual Studio Blog
backtrace
- C++ Windowsでスタックバックトレース | puarts.com
- windows - Win32 - Backtrace from C code - Stack Overflow
CodeView
- yasm/modules/dbgfmts/codeview at master · yasm/yasm
- get function by filename and line number - primitive: blog
- 5.4 COFFシンボル テーブル
- 6.1.2 デバッグ タイプ
- 6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
- デバッガ
- デバッガ:デバッグ情報
PDB
The PDB File Format
- The PDB File Format — LLVM 6 documentation
- Microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
- The MSF File Format — LLVM 6 documentation
- The PDB Info Stream (aka the PDB Stream) — LLVM 6 documentation
- UuidCreate function (Windows)
- IMAGE_DEBUG_DIRECTORY structure (Windows)
- The PDB TPI Stream — LLVM 6 documentation
- The PDB DBI (Debug Info) Stream — LLVM 6 documentation
- CV_CPU_TYPE_e
== Microsoft PE/COFF Specification ==
- Standard ECMA-335
- The Module Information Stream — LLVM 6 documentation
- The PDB Public Symbol Stream — LLVM 6 documentation
- The PDB Global Symbol Stream — LLVM 6 documentation
- The TPI & IPI Hash Streams — LLVM 6 documentation
- CodeView Symbol Records — LLVM 6 documentation
- CodeView Type Records — LLVM 6 documentation
- CodeView.pdf
YAML
- 第1回 YAMLライブラリのしくみ:言語別 YAML用ライブラリ徹底解説|gihyo.jp … 技術評論社
- YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita
- YAML - Wikipedia
- C++ から YAMLファイルを読み込む « Stop Making Sense
- Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
- Kazuho OkuさんはTwitterを使っています: "YAML でファイルincludeするなら、 <<: !include foo.yaml みたいな形が一番自然なのかな"
- Kazuho OkuさんはTwitterを使っています: "“Includable YAML - r7kamura per second” https://t.co/LNy0XJ9flP"
- RAML (software) - Wikipedia
- h2o/yoml: YAML Object Model Layer - a DOM-like interface for YAML
- YAML で静的データ管理
- YAMLの概要 | backport
- Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
- YAMLのエイリアスでAnsibleファイルの重複を減らす | Developers.IO
- YAMLに対応したAWS CloudFormation デザイナーを試してみた | Developers.IO
- PyYAMLが非常に遅かった - ゲームエンジニアな日々
- じゅげむさんはTwitterを使っています: 「YAML1.2からはYAMLはJSONの完全なスーパーセットになったと んで1.1と1.2でfloatの正規表現が異なる‥ https://t.co/EOKlHJTI12」 / Twitter
- quoting strings composed of digits · Issue #98 · yaml/pyyaml
- Rui UeyamaさんはTwitterを使っています 「I'm still writing a linker for macOS, and I wrote a YAML parser for it. macOS uses YAML files to describe shared object files. But I think YAML was a wrong choice. JSON would have been much easier to parse! https://t.co/jKDlIyl47N」 / Twitter
- mold/yaml.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「I believe YAML is not LL(k). It's not even CFG? The spec (https://t.co/tIwfc61rW6) is too long and complicated.」 / Twitter
- YAML Ain’t Markup Language (YAML™) revision 1.2.2
DIA SDK
- Debug Interface Access SDK
- はじめに (Debug Interface Access SDK)
- 関数 (Debug Interface Access SDK)
- Debug Interface Access SDKを使って内部関数の名前解決を行う - るくすの日記 ~ Out_Of_Range ~
- [Win32] [COM] How to read PDB Symbol file using DIA SDK | すなのかたまり
- llvm-pdbutil - PDB File forensics and diagnostics — LLVM 6 documentation
- 本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
- 本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
- LLVM Project Blog: LLVM on Windows now supports PDB Debug Info
- LLVM、WindowsのPDBに対応 | TECH+
- LLVMがPDBフォーマットのドキュメント化とYAMLへの変換を実現
- Portable PDBの紹介
- c++ - clang 5.0 pdb support as of 2017 - Stack Overflow
- シンボル ファイルの作成と取得 | デバッグ テクニック
- ペンギンさんのツイート: "PDBファイルを不要と言い張って作らないことを勧める人がいるとはたまげたなぁ・・・。 Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定 by @lainzero on @Qiita https://t.co/Nrm7wWVsOU"
- ペンギンさんのツイート: "PDBファイルがない場合、万が一問題が起きた際に逆アセンブルしながらデバッグする羽目になるので、リリースビルドでも作成して手元には残しておくべき。作らない方向ではなく、PDBファイルに含まれる内容、そのリスクを踏まえてどう取り扱うべきなのかまとめてあると良さそう。"
- ペンギンさんのツイート: "PDBファイルはビルド時に生成されるGUIDがEXEのDebug DirectoriesテーブルとPDBファイルに埋め込まれて一致しない場合VSやWinDbgで読めないので、後でビルドしなおせばよいというものでもないのが面倒。"
- ペンギンさんのツイート: "リリースビルドでPDBは要らないという人は、作って捨てるアプリケーションしか開発したことがないと言ってるようなもの、というのは言い過ぎか・・・。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPプロセスにロードされた自作Win32DLL。 VC++でUWPプロセスへのアタッチはできるが、DLL用pdbが違うと言われてシンボルが取り込めない謎…何だろう?"
- Understanding symbol files and Visual Studio’s symbol settings | Azure DevOps Blog
WinDbg
ライブデバッグ
- ライブデバッグ - Security Akademeia
- WinDBGを使ってnotepad.exeをデバッグする – PAYFORWARD
- Windbg – Japan WDK Support Blog
- wt : WinDbg のライブデバッグ時のトレースに使えるコマンド
- Time Travel Debugging FAQ – Debugging Tools for Windows
- User-mode memusage - NyaRuRuが地球にいたころ
- Time Travel Debugging recording question – Debugging Tools for Windows
- Text highlighting in WinDbg Preview – Debugging Tools for Windows
- Time Travel Debugging queries – Debugging Tools for Windows
- WinDBG. From A to Z!
- WinDbg でスタックトレースを得るには | MDN
- WinDbg Preview 1.1804.18003.0 Release Notes – Debugging Tools for Windows
- ITプロ(非開発者)向けWindowsカーネルデバッグ事始め (1/2):山市良のうぃんどうず日記(125) - @IT
- WinDbg Preview 1.1805.17002.0 Release Notes – Debugging Tools for Windows
- TTD (Time Travel Debugging) を用いてアプリケーションクラッシュの原因を調査
- WinDbg Preview 1.0.1807.11002 Release Notes – Debugging Tools for Windows
- Time Travel Debugging (Preview) の Lab – Japan WDK Support Blog
- WinDbg Preview 1.0.1810.2001 Release Notes – Debugging Tools for Windows
- WinDbg Preview 1.0.1812.12001 and new extensibility interfaces – Debugging Tools for Windows
- New C++ library for extending the debugger data model – Debugging Tools for Windows
- Makoto Kato ︎︎さんのツイート: "ふとEdgeのgithubを覗いたら、WinDBGでv8をデバッグするためのWinDBG Extensionが存在してて笑った https://t.co/LUlVxfkHOt"
- MicrosoftEdge/JsDbg: Debugging extensions for Microsoft Edge and other Chromium-based browsers
- Makoto Kato ︎︎さんのツイート: "IE6やってるときにdumpファイルからHTMLツリーを生成するWinDBG拡張作ったりいろいろやったなぁ。辞める時に全部削除したけど (オレオレツールだったので)"
- Best places to learn more about WinDbg – Debugging Tools for Windows
- .gdb_index - Google 検索
- Tim MisiakさんはTwitterを使っています 「New WinDbg Preview just released, version 1.2110.27001. Not too many visible improvements, but the latest version of the engine has a lot of stability improvements and better support for Linux coredumps, including support for ".gdb_index" for faster loading of DWARF symbols!」 / Twitter
- WER を使って Dump を採取する | Japan Developer Support Core Team Blog
- Dump ファイルの取得 | Japan Developer Support Core Team Blog
- WinDbg で Dump ファイルを開く | Japan Developer Support Core Team Blog
- WinDbg で EXE や DLL を Dump ファイルのように開く | Japan Developer Support Core Team Blog
- YurikaさんはTwitterを使っています 「📝 みんな大好き WinDbg の中の人によるWinDbgの動作解説講座 が始まったよ https://t.co/ktNuxHMtJ3」 / Twitter
- A first look into how WinDbg works - YouTube
x64dbg
- x64dbg
- x64dbg/x64dbg: An open-source x64/x32 debugger for windows.
- x64dbg
- x64dbg.pdf
- Reverse Engineering Tips: An Introduction To x64dbg
- klks/checksec: x64dbg plugin to check security settings
- X64dbg Code search :: Add-ons for Firefox
- セキュリティエンジニア向けツール(Windows編) - Qiita
- x64dbg:デバッガの例
- オープンソースのデバッガー x64_dbg を用いて、ソースコードを編集することなく、アプリにパッチを適用
MASM
- C++ デバッグ構成のプロジェクト設定
- /Z7、/Zi、/ZI (デバッグ情報の形式)
- /DEBUG (デバッグ情報の生成)
- SYMBOL_INFO structure (Windows)
- IMAGEHLP_SYMBOL64 structure (Windows)
- ICallFrame interface (COM)
- Kleckner-CodeViewInLLVM.pdf
- MSVC compatibility — Clang 6 documentation
- Windows support — lld 5 documentation
- Windows support — lld 6 documentation
- KMC Staff Blog:LLVM/Clang 3.7.1をMSYS2でビルド
- New Extensions and Samples GitHub Repo – Debugging Tools for Windows
- 入谷 優さんはTwitterを使っています 「ブレークポイントのドラッグ アンド ドロップって、有りそうで無かった機能なのですね。配信の問題も解決したようなので、早速更新しています。」 / Twitter
- アプリケーション検証ツール - Windows drivers | Microsoft Docs
- GFlags と PageHeap - Windows drivers | Microsoft Docs
- シンボル ファイルと Visual Studio のシンボル設定を理解する | Japan Developer Support Core Team Blog
- ここ数年UIに変化のなかった「Microsoft Edge」の開発者ツール、大刷新へ - 窓の杜
- エラー: stack-buffer-overflow | Microsoft Learn
- AddressSanitizer | Microsoft Learn
- こたつ🥐👯♀️☄☃️📜さんはTwitterを使っています: 「Visual Studioのデバッガ、複数行のテキストをウォッチ式としてまとめてペーストできるの便利」 / Twitter
バイナリエディタ
バイナリエディタ
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Poke 1.0がリリース。インタラクティブにバイナリデータを扱うためのエディター。バイナリエディターとプログラミング言語の中間的な存在。 https://t.co/s7A8Kjw7xS」 / Twitter
- GNU poke - Release notes for poke 1.0
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「バイナリデータを取り扱うための言語を持っている。」 / Twitter
- バイナリエディタ「GNU poke 2.0」が公開 | OSDN Magazine
- 約1年ぶりのメージャーバージョンアップ、バイナリーエディター「GNU poke v2.0」 | TECH+
- Takashi KawasakiさんはTwitterを使っています 「今のMSは、ターミナルとかエディタとか、プログラマが欲しいものを自由に作らせてくれる環境みたいだけど、それならバイナリエディタも作ってほしいなぁとか思う。決定打ないよね。」 / Twitter
- 暗黒美無王 dark VimさんはTwitterを使っています: 「Vimでバイナリファイルを編集したい人がどれだけいるのかよくわからないのだが、そもそもマルチプラットフォームで動作して日本語に対応しているバイナリエディタまともにないんじゃないかなと思ってるのだ。」 / Twitter
- 暗黒美無王 dark VimさんはTwitterを使っています: 「私がvinariseを開発して10年たつものの、未だに状況が変わってないように見える。」 / Twitter
- 来生自然🇺🇦🇯🇵さんはTwitterを使っています: 「@ShougoMatsu 見つけました https://t.co/PrZ5Y5cfXX https://t.co/WdiAikdaLo」 / Twitter
- Vimでバイナリファイルを開く 〜vinarise.vimの紹介〜 - kivantium活動日記
- Shougo/vinarise.vim: Ultimate hex editing system with Vim
- 来生自然🇺🇦🇯🇵さんはTwitterを使っています: 「@ShougoMatsu バイナリ系のエディタに欲しい機能は、目視しながら何らかの構造ファイルを(先頭から順に)解析していくと、自動的にテキスト変換するとかの専用ビューアーや変換ソフトが出来上がるというものかな。 「ここは次のタグ先頭への2byteオフセットLE形式UnSigned…」とか。。。」 / Twitter
- 暗黒美無王 dark VimさんはTwitterを使っています: 「@KISUGI_JINEN 構造化解析機能かな。それはデータ型の定義も必要なので拡張機能で実装したいと考えてますね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ImHex - リバースエンジニアのためのバイナリエディタ。バイナリのパッチ管理、強力なパターンマッチング、多数のアーキテクチャ (x86, ARM, MISC, RISC-V, wasm, bpf, Ethereumなど) に対応した逆アセンブラなどを備えている。 https://t.co/gMRNahDzyF」 / Twitter
- WerWolv/ImHex: 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
- 23年前に開発終了したにもかかわらずいまだ「定番」と呼ばれるアプリがあるらしい - やじうまの杜 - 窓の杜
- 【レビュー】オープンソースとなった定番バイナリエディター「Binary Editor BZ」 - 窓の杜
- 【レビュー】シンプルながら十分な機能を備えるバイナリエディター「FavBinEdit」 - 窓の杜
- binary.ninja : a reverse engineering platform
- [CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
- wxMEdit - クロスプラットフォームのテキスト/Hex エディタ
- hltj/wxMEdit: wxMEdit, a cross-platform Text/Hex Editor, an improved version of MadEdit
- Stirlingの詳細情報 : Vector ソフトを探す!
- Veles - Binary Analysis Tool - CodiSec CodiSec
- codilime/veles: Binary data analysis and visualization tool
- Tsukasa #01 (4x vaccinated)さんはTwitterを使っています: 「GNU Poke は、構造体の取り扱いに優れ、内部 DSL による拡張性に優れたバイナリエディタ (いわゆる hexdump を主軸とはせず、バイトないしビット列を柔軟な構造体ベースで扱う)。 内容は、この Poke で GDB でデバッグ中のプログラムの中身を覗いたり、GAS で複雑なデータを生成するといった感じ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バイナリファイル視覚化ツール。各バイトをヒルベルト曲線に沿ってプロットすることにより、単純な左→右のスキャンで表示するよりもパターンが目立ちやすくなる。エントロピーによる色分けにより、圧縮されてそうな部分を検出することも可能。 https://t.co/weZyGe5LU9」 / Twitter
- binvis.io
- 氷山羊さんはTwitterを使っています: 「ドキュメントのない独自形式のバイナリを読む機会が多いんだけど、動的な構造体を定義できるバイナリエディタが海外製の有料アプリ1件しか見当たらなかったので雑に自作することにした とりあえずaviutlのaupから拡張編集部分をデコードして抜き出したものを読みながら必要な機能を足していく https://t.co/GvV5zVWBzc」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「何それって試してみたけど、Windows High-DPIでは描画がおかしすぎて何も出来んな・・・。ウィンドウ位置にウィンドウの内容が正しく描画されてない。南家変な描画手法を使ってるのか?」 / Twitter
- しゅーとさんはTwitterを使っています: 「最近は「ImHex」というクロスプラットフォームでOSSなイケてるバイナリエディタが出ています。もちろん動的な構造体定義が可能(RT先のような日本語変数の定義はできないけど)。 オススメ! https://t.co/S9HZY4JYBK https://t.co/SflDwcUYoP」 / Twitter
- WerWolv/ImHex: 🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
Terminal
- Jun Rekimoto : 暦本純一さんはTwitterを使っています 「@a_saitoh 勢い余ってEmacsのソースコード(Gosling版)も読んだが、これもHCI研究者になるに際して大きな資産となった.. シリアル回線で画面を最適に再描画するために動的計画法を使うみたいな悪魔度コードもあって楽しい。」 / Twitter
- download
- clever hack to efficiently update the screen · Issue #15 · dominictarr/hipster
ORC
- Naoya HoriguchiさんはTwitterを使っています 「/proc/pid/wchan がしばらく前から壊れていて、どうやら ORC unwinding https://t.co/pyOpCwN34j というものが関係しているようなので、調べ始めた。こういう低レベル感ある話題に関われると勉強になってよい。」 / Twitter
- 9. ORC unwinder — The Linux Kernel documentation
- Naoya HoriguchiさんはTwitterを使っています 「ORC data というのがカーネル独自のデバッグ情報だというのはわかるけど、ORC ってなんの略かなと思ったらファンタジーに出てくる獣的な意味のオークだった。ELF、DWARF ときて、ORC ということですな。」 / Twitter
DWARF
デバッグ情報の分離
- Clang command line argument reference — Clang 13 documentation
- Ways to Compile with Clang on Windows | Metric Panda Games
- llvm-objdump - LLVM’s object file dumper — LLVM 13 documentation
- Debugging Options (Using the GNU Compiler Collection (GCC))
- GDB Internals - Table of Contents
- objcopy(1) manページ
- Gcc: ビルドターゲットの外部でgccデバッグシンボルを生成する方法は? | Code Hero
- Files (Debugging with GDB)
- Separate Debug Files (Debugging with GDB)
- [gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
- elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
DWARF
- DWARF 3.0 Standard
- DWARF 4 Standard
- DWARF 5 Standard
- Download DWARF Standards
- DWARF Git Repositories - dwarf-doc.git/summary
- DWARF Extensions
- DwarfExtensions - elfutils
- yasm/modules/dbgfmts/dwarf2 at master · yasm/yasm
- デバッグ用フォーマット、DWARF と STAB
- DWARF - OSDev Wiki
- LLVM: include/llvm/BinaryFormat/Dwarf.h Source File
- DWARF debugging formatを利用する - Qiita
- PE勉強会#3参加メモ - やる気のないはてだ(A boring diary)
- PE勉強会ネタ帳 - 七誌の開発Wiki
- objdump (GNU Binary Utilities)
- objcopy (GNU Binary Utilities)
- AMD Extending DWARF To Better Handle GPU Debugging, Continues Collaborating With GCC & LLVM - Phoronix
- objdump (GNU Binary Utilities)
- GDB Files (Debugging with GDB)
- Top (LD)
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「DWARF仕様書7.5 Format of Debugging Informationを読むのがオススメ。.debug_lineセクションにはファイル名と行番号を表現する「状態機械」に対する命令列が入っている。この命令を実行してみると、プログラム各行の属性(実行可能な行かどうか、とか)が分かる。 #kernelvm」 / Twitter
- C・C++用のコードカバレッジツールを自作してみた話
- simotin13/covme: covme is a code coverage tool for C/C++ application.
- nullpo-head/dbgee: The zero-configuration debuggee for debuggers. Handy utility that allows you to launch CLI debuggers and VSCode debuggers from the debuggee side.
- FadisさんはTwitterを使っています: 「gdb、既に起動しているプロセスに後からアタッチできるから、ビルド時にデバッグ情報を別ファイルに吐いておけば、「今動いているあのプロセスの要数がおかしいぞ! このデバッグ情報を読んでアタッチして覗き見だ!」ができるんだよな #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「s/要数/様子/」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「Seccomp-BPF+ptraceなんて難しい仕組みじゃなくても、execveをトラップしてDWARF情報からデバッグ対象のソースコードが含まれているかを調べるだけでターゲットを判別できるじゃん、ということに気付いた。 #kernelvm」 / Twitter
.gdb_index section
- .gdb_index - Google 検索
- Tim MisiakさんはTwitterを使っています 「New WinDbg Preview just released, version 1.2110.27001. Not too many visible improvements, but the latest version of the engine has a lot of stability improvements and better support for Linux coredumps, including support for ".gdb_index" for faster loading of DWARF symbols!」 / Twitter
- Index Files (Debugging with GDB)
- gdb-add-index(1) - Linux manual page
- gdb-add-index man (Debugging with GDB)
- Index Section Format (Debugging with GDB)
WebAssembly
- WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
- DWARF for WebAssembly
GAS 疑似命令
CFI
- Using as: CFI directives
- CFI with Abbrevs - Dwarf Wiki
- ImperialViolet - CFI directives in assembly files
- CFI support for GNU assembler (GAS)
- Andreas Krebbel - [PATCH] Add .cfi_val_offset GAS command.
- assembly - GAS: Объяснение .cfi_def_cfa_offset - Qaru
- [PATCH] Unwinding CFI for x86_64 signal frame (__restore_rt)
- F/OSS study : [DWARF] Call Frame Information
- Anitha Boyapati - Testing Call frame information in .debug_frame section
- Anitha Boyapati - Re: Testing Call frame information in .debug_frame section
- CFI - Call Frame Information
- [Resolved] CCS: Object file contains invalid call frame information at .debug_frame - Code Composer Forum - Code Composer Studio - TI E2E Community
- CFI - Call Frame Information | AcronymFinder
- How can I disable CFI directives on gas assembler output - Programming - Linux Tips
- [llvm] r211272 - Emit DWARF3 call frame information when DWARF3+ debug info is requested
- [llvm-dev] [cfe-dev] Call frame information query
- Vineet Gupta - .debug_frame not generated by ARC gas
- linux-2.6.33/CFI_ADJUST_CFA_OFFSET() - コグノスケ
- Using as: Gnu Assembler(GAS) Directives CFI - godjesse - 博客园
- Debugging with GDB: 21.3.13 CRIS
- 0xfee1dead
- gccのアセンブル出力を解析する時は-gオプションが便利
- 定数を返すだけの関数のアセンブリコード – ゴミ箱
- Using as
- Loc_mark_labels - Using as
- Loc - Using as
- Section - Using as
- CFI directives - Using as
- .debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- Byte - Using as
- File - Using as
- Global - Using as
- Ident - Using as
- Long - Using as
- Size - Using as
- Sleb128 - Using as
- String - Using as
- Text - Using as
- Type - Using as
- Uleb128 - Using as
Stack frame layout
- GNU Compiler Collection (GCC) Internals: Frame Layout
- Frame Layout - GNU Compiler Collection (GCC) Internals
- Stack frame layout on x86-64 - Eli Bendersky's website
- Stack layout
unwind
- gcc _Unwind_Backtrace()の謎
- LLVMと俺俺ランタイムで例外を実装する(その1) - yutopp's blog
- Exception Frames
- x86: undwarf unwinder [LWN.net]
- Mark J. Wielaard » Blog Archive » Stack unwinding
- libunwind LLVM Unwinder — libunwind 7.0 documentation
- ⚙ D38819 [libunwind] Add support for dwarf unwinding on windows on x86_64
- ⚙ D38900 libunwind: document tested FreeBSD configs and sort OS list
- libunwindstack - platform/system/core - Git at Google
backtrace
- [Linux][C/C++] backtrace取得方法まとめ - Qiita
- c++ - gcc C ++アプリケーションがクラッシュしたときにスタックトレースを生成する方法crash | CODE Q&A [日本語]
- C++で実行時エラーを追跡と特定します - Qiita
- C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - アットウィキ
- Google Japan Blog: C++ のプログラムのデバッグを楽にする方法
- 実行中でのコールスタックの取得と表示 - 千里霧中
- 普通のやつらの下を行け: C でバックトレース表示 - bkブログ
ELF
- llvm-readobj - LLVM Object Reader — LLVM 6 documentation
- melancholic afternoon
- リンカーオプションの指定 - Oracle® Solaris 11.3 リンカーとライブラリガイド
- 特殊セクション - リンカーとライブラリ
- Manpage of ELF
- gcc
- 昔の最近の出来事(2016.02)
- ヒープオーバーフローによるGOT overwriteをやってみる - ももいろテクノロジー
__user
- Linux システム・コールを使用したカーネル・コマンド
- copy_from_user - Linuxの備忘録とか・・・(目次へ)
- sparse - 組み込み Linux 開発の手引き - アットウィキ
- c - What are the implications of the linux __user macro? - Stack Overflow
- __userってなんぞ? - syuu1228's blog
- KMC Staff Blog:GCC の名前付きアドレス空間サポート
- まさみさんは語りたいさんのツイート: "実は意外とData SegmentとCode SegmentとそれぞれのKernel/User Segmentがあるっていうことを知らない人が多いのでは。"
- まさみさんは語りたいさんのツイート: "あと__user ってruntimeでは無意味なんだけど、これも知られていない気がする。実行時に渡されるアドレス情報には__userかどうかが無いので、実行時の値ではなく、コンテキストでしか判断できない。これはデバッグ情報の属性値にも付いていないはず。"
- まさみさんは語りたいさんのツイート: "DWARF6とかで追加しないかなー。DW_AT_USER_DATAとか・・・。"
- まさみさんは語りたいさんのツイート: "64bitの世の中ではsegmentなんて失われた技術だよねー、みたいに言ってはいけない。あるんだ、まだ。"
- まさみさんは語りたいさんのツイート: "KERNEL_DS/USER_DSの話、x86-64でもarm/arm64でも問題にならなさそうなんだけど、そうするといつまでもバギーなコードが治らないっていうことか。"
普通のやつらの下を行け
- 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す - bkブログ
- 普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
- 普通のやつらの下を行け: BFDでデバッグ情報の取得 - bkブログ
- 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ
- 普通のやつらの下を行け: assert_caller() - bkブログ
KMC Staff Blog
- KMC Staff Blog:DWARF
- KMC Staff Blog:DWARF 一年生
- KMC Staff Blog:DWARF と有限状態機械
- KMC Staff Blog:DWARF と有限状態機械 (2)
- KMC Staff Blog:DWARF と有限状態機械 (3)
- KMC Staff Blog:DWARF 3 の対応言語
- KMC Staff Blog:GCC でコンパイルした時のオプションをバイナリファイルから取得する
DSAS開発者の部屋
- DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
- DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ ftrace で引数を表示する
- DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ デバッグ情報を得る
LLVM
- LLVM Project Blog: LLDB is Coming to Windows
- Source Level Debugging with LLVM — LLVM 6 documentation
- Clang Compiler User’s Manual — Clang 6 documentation
- llvm-dwarfdump - dump and verify DWARF debug information — LLVM 6 documentation
- Clang command line argument reference — Clang 6 documentation
- LLVM IRにデバッグ情報を埋め込むためにいろいろ調べたときのメモ - 単子葉類プログラマーのメモ
- LLVMのデバッガ「LLDB」のWindows版、登場 | TECH+
PDF
- _pdf
- cbc-gcc.pdf
- Debugging using DWARF
Stack Overflow
- c++ - What do the CFI directives mean? (and some more questions) - Stack Overflow
- debugging - Is there a simple DWARF CFI represenation for functions that set up a conventional frame pointer? - Stack Overflow
- assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
- assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
- assembly - GAS: Explanation of .cfi_def_cfa_offset - Stack Overflow
- stack - In assembly code, how .cfi directive works? - Stack Overflow
- What is .cfi and .LFE in assembly code produced by GCC from c++ program? - Stack Overflow
- assembly - Why GCC compiled C program needs .eh_frame section? - Stack Overflow
- dwarf - Getting value of stack pointer while stack unwinding with dwarf2 - Stack Overflow
- x86 64 - Breaking a stack/call frame information chain on ELF/Linux? - Stack Overflow
OSDN
- DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- DWARFって何? - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造:CIE編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_arangesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_pubnames/.debug_pubtypesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Wikipedia
- DWARF - Wikipedia
- DWARF - Wikipedia
Qiita
- デバッグ情報の歩き方 - Qiita
- [gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
- DWARF情報とpyelftoolsを使ってバックトレースする - Qiita
- backtrace with gdb-python-pyelftools
Twitter
- Urabe, Shyouheiさんのツイート: "コードの任意の領域に属性を横からつけるの、たぶん理論上はdwarfでできるといえばできると思うが、ちょっとdwarfに手を出す気にはなれないんだよな…"
- shinichiro hamajiさんはTwitterを使っています: 「DWARFから型情報拾ってきてC/C++(ひょっとしたら他の言語も)の変数をダンプするというやつ、ちょっと話題になってひさびさに動かしてみたらいくつかバグがあったので修正しておいた: https://t.co/sKFz1f02mH」 / Twitter
- shinh/dumper: A variable dumper for C/C++
- shinichiro hamajiさんはTwitterを使っています: 「メインはどっちも関数ポインタ関係で、DWARF4で導入された新しいフォーマットをハンドルしてなくてエラーメッセージ出てたので、あとPIE対応されてなかったのと。今なら libdwarf とか使わないだろうなあ……というのが感想だった」 / Twitter
- Chrome DevToolsさんはTwitterを使っています: 「Initial DWARF support has landed in Chrome DevTools! It means that you can resolve stack traces, set breakpoints and step-in/-over source code in C/C++/Rust natively, without generating source maps. https://t.co/s3IwkJV6Tr」 / Twitter
- Chrome DevToolsさんはTwitterを使っています: 「Bear in mind that this should "just work" with native compilers, but on the tooling side DWARF support is still in progress. For example, Emscripten (Binaryen) and wasm-bindgen don't support updating DWARF after transformations, so they won't benefit from this integration yet.」 / Twitter
- k0kubunさんはTwitterを使っています 「objdump --dwarf=decodedline の出力をパースするだけの簡単なスクリプトを書くつもりが、これは相対パスを出してくる (DW_AT_comp_dir を使った絶対パスへの変換をやってくれない) ので単体では役に立たないことに気付いてしまった」 / Twitter
- 成瀬さんはTwitterを使っています 「@k0kubun https://t.co/774KyiAKyg とかですかね」 / Twitter
- k0kubunさんはTwitterを使っています 「@nalsh このスクリプトは多分、ビルドディレクトリで実行される (少なくとも IO.foreach('https://t.co/GJB4czCRee') が動かないといけないし、decodedlineから出る相対パスと #line がマッチしないといけない) ことを仮定することで僕が言及した問題を解決してる感じじゃないですかねえ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
- _ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
- _ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
- 成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter
- elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- デバッグ情報を探る 〜.cfi_xx命令の動作〜 - ばびろん's すたっく
- Split DWARFを用いてデバッグ時間やメモリを節約 - ホワイトペーパーから - ローグウェーブソフトウェアのブログ
- 第5章 デバッグ - Red Hat Customer Portal
- GNUウイーク - gccのC++化 / gdb7.5 - .mjtの日記復帰計画
- k0kubun/dwarftree: A wrapper of objdump --dwarf=info to visualize an object's structure and show code size
- はじめてのにき(2020-11-28)
- 渋川よしきさんはTwitterを使っています: 「nullを参照しているよ!といってスタックトレース出してくれるの、SEGV!しか言わない言語よりも便利すぎて鼻血が出る」 / Twitter
- デバッガと和解せよ.pptx - Microsoft PowerPoint Online
GDB
rr
- Kazuho OkuさんはTwitterを使っています 「むしろ時代はgdbでrrとかじゃないのかしら https://t.co/pLLc8yPIP9 https://t.co/i6LiheKfln」 / Twitter
- rr: lightweight recording & deterministic debugging
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 再現率が低い奴、本番環境で条件に合致した場合にsyslogとかに詳しいログを出すっていう意味でのprintfデバッグなので、gdb仕掛けておくのはちょっと怖くてできません…^^;」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda あーすみません単にgdbでしか使えないナウい機能があるよという意味でした」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho いえいえ、record機能、はるか昔に新機能の紹介で見たもののずっと使わずじまいだったのでこれを機会に勉強します!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「トランスポートプロトコルスタック、バグ発現がタイミング依存だからデバッガで停止できないし、ステートリプレイでデバッグできるの神!!!! と思ってるけどまだ使ったことないんですよね」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白そう…昔のjockeyの最新版みたいな感じなのかしらん? https://t.co/80TZrdYakK https://t.co/Q23w78K5JJ」 / Twitter
- Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
- SODA NoriyukiさんはTwitterを使っています 「僕はgdbも使ってるけどprintfデバッグでさえも使う老害なので世の趨勢の参考にはならないだろうなあ (再現率が低い奴はデバッガよりもprintfデバッグの方が楽なの…) https://t.co/bJz8gmQIPV」 / Twitter
- Shinji KonoさんはTwitterを使っています 「LLVMのdebug用Buildが35GBあったり、Linux kernelが-gだと動かなかったりするのって、ソフトウェア工学的な敗北だと思うのだが もう誰もgdbでdebugなんかしてない 疑惑。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ん?CONFIG_DEBUGINFO=yにしたらデバッグ情報は普通につくと思うのですが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@mhiramat 最適化切るとkernelは動作しなくて、最適化ありだと、-g付けても、ほとんどの変数は見えないんです。なのでレジスタ見てキャストで表示する感じ。一部だけ最適化を切るのもだめ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ああ、確かに最適化切ると動かないっていう報告は見た気がしますね…。コンパイラの問題のような気も。」 / Twitter
PEDA
- longld/peda: PEDA - Python Exploit Development Assistance for GDB
- Linux_Interactive_Exploit_Development_with_GDB_and_PEDA_Slides.pdf
- CTFのための gdb/gdb-peda 頻出コマンドのメモ - teriyaki note
- gdb-peda インストール for Ubuntu - miyagawNote
- gdb-peda 使い方 コマンド一覧 - miyagawNote
- ステップ1: Pwn とは|Tech Book Zone Manatee
- PwnやReversingに使えそうなデバッガ紹介 - Pwn De Ring
GDB/MI
- Debugging with GDB: GDB/MI
- CDT デバッガーとのインターフェース: 第 2 回 Eclipse の CDT と MI を使って gdb にアクセスする
- 5.3.6. GDB の代替ユーザーインターフェース - Red Hat Customer Portal
- Debugging with GDB - GDBの要約
- Debugging with GDB - gdb/miインターフェイス
- Debugging with GDB: 25.4 TUI固有のコマンド
- GDB/Machine Interface library / Wiki / Home
- GDB’s MI is not a Debug Protocol – Kichwa Coders
- autozimu/gdb_mi: A gdb Machine Interface (MI) output parser and session manager.
- FadisさんはTwitterを使っています: 「数値を文字列にして突っ込むのは「JSONだけど整数値が雑なJSONパーサによって浮動小数点数に変換されて丸められて欲しくない」時の御作法の香りがする #kernelvm」 / Twitter
pty
- FadisさんはTwitterを使っています: 「gdbで15年前に報告されてから未解決のまま残っている不具合を修正する試みがなされている。gdbで実行中の対象がsigwaitでSIGINTを処理するとCtrl+C(SIGINT)時にgdbのコンソールに戻れない問題が2007年に報告されていたが、修正には大掛かりな変更が必要な為放置されていた https://t.co/ZTQQKMCsol」 / Twitter
- FadisさんはTwitterを使っています: 「gdbはデバッグ対象の実行中、ターミナルをそのままデバッグ対象に譲っている。デバッグ対象はターミナルからの入力を直接受け取る。キーボードから SIGINTのようなシグナルが送られるとgdbはptraceを使って対象にシグナルが飛んでいるのを検知し、対象を停止させてgdbのコンソールにターミナルを返す」 / Twitter
- FadisさんはTwitterを使っています: 「ptraceは対象のプロセスに対してシグナルが実際に飛んだ時に検知する仕組みなので、デバッグ対象がシグナルを拒否していてシグナルが飛ばなかったり、シグナルは用意されたがsigwaitで飛ぶ前に処理されたりした場合gdbはSIGINTが飛んだ事を検知できない。この結果コンソールに戻れなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「このような状況でもgdbのコンソールに戻れるように、gdbでターゲットの実行にgdb本体とは別のptyを使う方法が提案された。新しい手法ではデバッグ対象は専用のptyをターミナルとして実行される。gdbは自身のターミナルをデバッグ対象に譲らない」 / Twitter
- FadisさんはTwitterを使っています: 「gdbは対象の実行中に受け取った入力を対象のptyにリダイレクトする。同様に対象のptyからの出力は全てgdbのターミナルにリダイレクトされる。gdbのターミナルが受け取ったSIGINTはリダイレクトされずgdb側で処理される。これによってデバッグ対象のシグナルの設定に依存せずSIGINTを拾えるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「この手法を素直に実装するとデバッグ対象がsession leaderになる為、デバッグ対象がexitするとデバッグ対象の子プロセスにSIGHUPが送られるようになる。これは「子プロセスに全部任せて自分はすぐに終了するプロセス」の子プロセスをデバッグする場合に都合が悪い」 / Twitter
- FadisさんはTwitterを使っています: 「この問題を避けるために提案されている変更では、ターゲットの実行時にsession leaderを握るだけのためのgdbの子プロセスを作り、そこからさらにデバッグ対象を動かす子プロセスを作る2段階のforkを行う。デバッグ対象はsession leaderではなくなるため、その子プロセスにSIGHUPは送られなくなる」 / Twitter
blog
- 実践しながら学ぶ Android USBガジェットの仕組み(2):KGDBを使って、Android組み込みボードをリモートデバッグしよう!【前編】~KGDBの仕組みを理解する~ (1/3) - MONOist(モノイスト)
- gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する - CubicLouve
- gdbで初期設定をAT&T記法からIntel記法に変更する方法 | サラリーマンがハッカーを真剣に目指す
- GDBのコマンド出力をファイルに保存する方法 - 技術日誌
- objdumpによる逆アセンブルとgdbの命令形式表示の比較 - 技術日誌
- 実践的低レベルプログラミング
- GDBでデバッグするなら-g3オプション - ククログ(2013-05-08)
- gdbでデバッグするためのgccのデバッグ情報のオプション - C言語入門
- debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
- JOS から学ぶ GDB デバッグ手法
- gdbの使い方のメモ - ももいろテクノロジー
- gcc+gdbによるプログラムのデバッグ 第2回 変数の監視、バックトレース、その他のコマンド
- 本の虫: GDBがeBPFのデバッグをサポートした
- Linuxカーネルのテスト実行とデバッグ (2) :GDB編 - Fixstars Tech Blog /proc/cpuinfo
- 時折飛んでくる原因不明な#GPをgdbで原因究明した備忘録 – Raphine Project
- GDBの使い方メモ – GitHub 出張所 – プログラム関係のブログはここに
- UEFIアプリケーションをデバッグする - 気まぐれ気紛れ草紙
- mikanOSのデバッグの話 | tomiylab
OSDN
- GDB/GDBserverによるクロスターゲットのリモートデバッグ | OSDN Magazine
- リモートデバッガ/プロファイラを利用したデバッグ&性能解析 | OSDN Magazine
- D言語にも対応、GNU Debugger 7.2リリース | OSDN Magazine
- オープンソースのデバッガーGDB 7.4リリース、Pythonスクリプティング機能などで多くの改良が行われる | OSDN Magazine
- Go言語サポートが新たに追加された「GDB 7.5」リリース | OSDN Magazine
- 64ビットARM版Linuxをサポートした「GDB 7.6」リリース | OSDN Magazine
- 新コマンド導入、Python強化などが特徴の「GDB 7.7」がリリース | OSDN Magazine
- 「GDB 7.8」がリリース、Guileスクリプティングをサポート | OSDN Magazine
- 「GDB 7.9」がリリース、PythonスクリプティングAPIの強化などが行われる | OSDN Magazine
- 「GDB 7.10」リリース | OSDN Magazine
- 「GDB 8.0」リリース | OSDN Magazine
- RISC-Vサポートを強化した「GDB 8.3」リリース | OSDN Magazine
- 米Microsoft、Visual Studioのデバッガ拡張「MIEngine」を公開 | OSDN Magazine
- 「GDB 9.1」が公開 | OSDN Magazine
- 「GNU Debugger 11.1」が公開 | OSDN Magazine
Qiita
- はじめてのgdb - Qiita
- gdbで効率的にデバッグするためのTips - Qiita
- gdbのDynamic Printfを使う - Qiita
- Pythonでgdbを操作する。 - Qiita
- makeとgccだけでOSを作ってみる - Qiita
- gdbに文字列をそのまま出力させる設定 - Qiita
Twitter
histric
histric-1
- Fadisさんのツイート: "ヒープ上で範囲外参照してSegmentation Faultするなんて可愛いモンだ。スタック上で範囲外参照して範囲外から有効っぽい値を拾ってよくわからないところに飛んでいったコードをデバッグするのと比べれば"
- Fadisさんのツイート: "x86_64でこういうのをデバッグするとき、稀によくgdbの逆アセンブル機能に「このアドレスが始点だったと思って逆アセしてくれ」が欲しくなる(もうあったりするのかな)"
- れっくすさんのツイート: "x/i https://t.co/VuUC5BacEP"
- rayfillさんのツイート: "https://t.co/j9URafEPDk disassemble start,end でできるように読めるんだけど・・・ https://t.co/gZae5eIpAf"
- Debugging with GDB: Machine Code
- れっくすさんのツイート: "examineなんでn命令見れて普通に便利ですね。あとCTFでよく使われるpeda/pwndbgあたりを入れると特定のアドレスでdisasする命令が増えた気がします… "
- Fadisさんのツイート: "テンプレート引数が極めて長い関数をgdbでdisasしたら、ジャンプする度にアドレスの横に出てくる関数名で画面が埋まって厳しい事になってる"
- herumiさんのツイート: "disassemble/rm $rip,+128 ならバイト列込みで逆アセンブルしてくれます。@_ko1 というかVisual Studio便利なんだけどなあ。 「Linux プロジェクトのデプロイ、実行、デバッグ」 https://t.co/XSdT5BSoQb"
- Visual Studio で C++ Linux プロジェクトを配置、実行、デバッグする | Microsoft Docs
- _ko1さんのツイート: "うお、すごい、gdbserver につなげられるんだ!… "
- Fadisさんのツイート: "gdbでデバッグ中の箇所でC言語のコードをコンパイルして実行するために使われているライブラリ化されたgcc libcc1がC++に対応した模様。デバッガから挿入するコードをC++で書けるように https://t.co/iHKqz7HOUO"
- FadisさんはTwitterを使っています: 「gdb 8.4からデバッグシンボルのロードをマルチスレッドで行えるようになるらしい。デバッグシンボルを読まないとしばしば人類に厳しいデバッグを強いられるけど、巨大なアプリケーションのギガいデバッグシンボルは読むだけで時間がかかる問題がこれで緩和される https://t.co/9rowszXJld」 / Twitter
- GDB Adds Multi-Threaded Symbol Loading For Faster Debugging Performance - Phoronix
- FadisさんはTwitterを使っています: 「デバッグシンボルがギガくなる大抵の原因はC++のマングルするととてつもなく長くなる型名なんだけど…」 / Twitter
- FadisさんはTwitterを使っています: 「マングルが直接的な原因ではないな。C++erはETでカジュアルに100キロバイトオーダーの型名を生み出してしまうのである」 / Twitter
- FadisさんはTwitterを使っています: 「Rustのマングリングルールに一種の可逆圧縮みたいなルールが備わってて、こいつC++(Itanium ABI)で辛かった所にしっかり対策入れてるなってなった」 / Twitter
- FadisさんはTwitterを使っています 「gdbがdebuginfodに対応したらしい。debuginfodはhttpでソースコードとデバッグ情報を配るデーモン。デバッガはローカルにソースとデバッグ情報が無くてもバイナリに埋め込まれた情報を元にリモートのdebuginfodからそれらを得る事で人類に優しいデバッグ環境を提供できる https://t.co/meD6YqbLlj」 / Twitter
- GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
- uchanさんはTwitterを使っています 「GDBの条件付きブレークポイントの機能で,スタックポインタが16の倍数じゃないときにブレークする場合は condition <bnum> ((unsigned long)$rsp & 0xf) != 0 とするといいみたい。」 / Twitter
- uchanさんはTwitterを使っています 「ブレークポイントを作りつつ条件を設定するには break ... if <cond>」 / Twitter
- Shiro Kawaiさんのツイート: "おお、最近のLinuxはデフォルトでデバッガがアタッチできるプロセスに制約があるのか。久々に刺さったプロセスに外からgdbをアタッチしようとして知った。 https://t.co/iiKXWwtfLP"
- k0kubunさんはTwitterを使っています 「backtrace(3) がSEGVするような状況でもgdbは途中までbtを出せるのは何故なのか」 / Twitter
- 成瀬さんはTwitterを使っています 「@k0kubun どのアドレスを参照してよくて、どのアドレスを参照したら死ぬか知っているからですね。Linuxでも https://t.co/nUQFjeeakf を使えばそのへん制御できるかもしれませんが」 / Twitter
- ruby/vm_dump.c at 229ba1215fa7c8181b9296dff22807fb17442c74 · ruby/ruby
- k0kubunさんはTwitterを使っています 「@nalsh なるほど。見てるSEGVの再現率が絶望的に低いのでなかなか試せませんが、次簡単にヒットさせられる状態になったら試してみます」 / Twitter
- FadisさんはTwitterを使っています 「Debianがdebuginfodのサーバを立てたらしい。debuginfodはデバッグ情報とソースをデバッガに提供するHTTPサーバで、対応するgdbを使用するとローカルにデバッグ情報がなくても快適なデバッグが可能になる。RedHatを中心に作られた為Fedoraでは以前から対応が進められていた https://t.co/pUdZEie1kO」 / Twitter
- Debian Launches A Debuginfod Server For Smoother Debugging Experience - Phoronix
- henrichさんはTwitterを使っています 「debianプロジェクト公式インフラではなく、Debian公式開発者の一人が立ててみたよ、という話ね」 / Twitter
- 2021年2月25日 よきデバッグライフのために ―Debian,開発者向けdebuginfodサーバをローンチ:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「実行中のプロセスに強制的にexit(0)を呼び出させて終了させるgdbスクリプト (使うにはroot権限が必要)。この方法だとプロセスは正常終了したことになり、killされたという記録は残らない。 https://t.co/9QezlkMdbO」 / Twitter
- Script to inject an exit(0) syscall into a running process. NB: only x86_64 for now!
- ぬるぽへさんはTwitterを使っています: 「lldb-serverにgdbから繋ぐって可能なんですか?lldb-serverはtarget.xmlでアーキテクチャとして"x86-64"を報告するけど、gdb的にはx86_64のアーキ名は"i386:x96_64"らしく、そんなアーキテクチャは知らんとなって手元ではgdbからlldb-serverに接続できないでいる」 / Twitter
- GDB Internals - Table of Contents
- Debugging Output (Debugging with GDB)
- debugging with GDB
- GabrielMajeri/separate-symbols: How to separate debugging symbols from an ELF executable
- https://www.kernel.org/doc/Documentation/security/Yama.txt
- cyrus-and/gdb-dashboard: Modular visual interface for GDB in Python
- I0608173.pdf
- melancholic afternoon
- GDB to LLDB command map — The LLDB Debugger
- PermissionsDarwin - GDB Wiki
- Releases/FeatureBuildId - Fedora Project Wiki
- gdb remote protocol - Google 検索
- lldbでLLVMプログラムをデバッグする - yhara.jp
- assembly - How is effective address calculated with fs and gs registers - Stack Overflow
- x86 - Using GDB to read MSRs - Stack Overflow
- とみながたけひろさんはTwitterを使っています 「ところでARM linux上のgdb他で、デバッグ対象が起こしたセグフォがprefetch faultなのがdata abortなのか、みたいな詳細を取得するにはどうしたらいいのかわからんかった。ょゎぃ…だれかおしえて…」 / Twitter
- デバッガとは何ぞや
- gdb マルチプロセス デバッグ - Google 検索
- gdb マルチスレッド デバッグ - Google 検索
- c++ - Stackful coroutines + gdb = "previous frame inner to this frame (corrupt stack)?" - Stack Overflow
- GDBの中級トピック
- リバース実行を用いた gdb によるデバッグ
rr
Julia
- ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
- Julia 1.5 Feature Preview: Time Traveling (Linux) Bug Reporting
- ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
- ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
- ドッグさんはTwitterを使っています 「ちなみに rr の仕組みやパフォーマンス評価の詳細について興味がある人は,この paper を読むと良さそう(PDF) | 'Engineering Record And Replay For Deployability Extended Technical Report' https://t.co/NBNmKvYbli」 / Twitter
- 1705.05937.pdf
MariaDB
- Nayuta YanagisawaさんはTwitterを使っています 「"https://t.co/XzfU0PawTO --rr" とすると、rr を使ってテストを起動してくれるらしい。便利。 https://t.co/r9LRlSbtAH」 / Twitter
- [MDEV-22179] rr(record and replay) support for mtr - Jira
- Nayuta YanagisawaさんはTwitterを使っています 「rr (debugger)、一部の仮想環境では動かせないのか…」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「High precision timer 関連のエラーが出て rr が上手く動かない。この issue と同じエラーだが、同じ現象なのかは不明。https://t.co/f3GbgsPhgZ」 / Twitter
- Assertion `ticks_now == trace_ticks' failed to hold. ticks mismatch for 'INSTRUCTION_TRAP'; on AMD CPU · Issue #2862 · rr-debugger/rr
- Nayuta YanagisawaさんはTwitterを使っています 「仕事用の PC も個人開発機も Ryzen だから、rr が Intel CPU なら動くのかの確認ができない。1つぐらい Intel にしとくんだった。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「苦闘の末、Ryzen9 3900 のビルドサーバーで rr が動作するようになった。OS すら入れ替えたから何がよかったかわからん。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「これで地球の反対側にあるビルドサーバーとのレイテンシにイライラしなくてすむ。嬉しい。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「Mozilla rr、最新のソースからビルドしないと、私の環境では上手く動かなかった。リリース版だと対応していない system call があるのかな?(よくわかってない)」 / Twitter
- rr: lightweight recording & deterministic debugging
- ぬるぽへさんはTwitterを使っています: 「rr, record and replayは論文に詳細があるんだけどreverse executionのほうはどうやってんだ、ソースコード読むしかないのかな」 / Twitter
- Mozilla rr を使用したデバッグ | IntelliJ IDEA
- Robert O'CallahanさんはTwitterを使っています 「rr 5.4.0 released. The main new feature of this release is AMD Zen support. There is also experimental ARM Aarch64 support --- for platforms that don't use STREX. Plus tons of bug fixes and performance improvements as usual. https://t.co/yFEe9LsqZU」 / Twitter
- Release 5.4.0 · mozilla/rr
- Kazuho OkuさんはTwitterを使っています: 「printf使わなくてもバグを再現特定できるようにするのがソフトウエア工学だと思うけど、Mozilla rrみたいな、I/O含め巻き戻し可能なデバッガ、rubyとかphpとかにもあるんだろうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「HTTPリクエスト単位でI/O記録しておいて、500エラーが発生したらディスクに保存。いつでも巻き戻して動作検証できるみたいなのとか、そういうやつ」 / Twitter
- ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
- Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting
- ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
- ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
- [1705.05937] Engineering Record And Replay For Deployability: Extended Technical Report
- 1705.05937.pdf
- Firefoxにブラウザ上の動作を記録・再生可能な「リプレイ機能」が搭載される予定 - GIGAZINE
- Replay Docs
- FadisさんはTwitterを使っています 「C言語とC++の為の新しいデバッグツールrrについての話。-g付きの実行可能バイナリをrr recordで実行すると「どのように動いたか」が記録され、rr replayするとブレークポイントを張ったり特定のメモリを監視しながらrecord時と同じように動くプロセスを観察出来る https://t.co/1KeuuGlP6i」 / Twitter
- Instant replay: Debugging C and C++ programs with rr - Red Hat Developer
- FadisさんはTwitterを使っています 「ソフトウェアがクラッシュした時、従来のgdbではコアダンプでクラッシュ時の状態を見て「何でそんな値が入っているのか」を人間が考える必要があったが、rr recordでクラッシュまでを記録できた場合reverse-continueで「おかしな値を入れたやつ」の時点まで時を遡る、というデバッグが可能になる」 / Twitter
- reroさんはTwitterを使っています 「@fadis_ 性能激落ちしそうだから、再現試験とかが前提ではあるんやろな。」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「2010年にこの方式 (Record and Replay) を VM で試していたが、当時ようやく広がりつつあったマルチコアの追跡に適用するのが厳しく開発を断念した。rr はどうしてるのか――と見てみたら、全スレッドを 1 コアで (つまりは並列させずに) 動作するというとんでもない方法を使っていた。」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「それこそ、Record and Replay は、私が実験していたときには OS を動かして (ほぼ無入力で) 1MB 程度のトレースだけで1秒、数億命令の実行履歴を再現できた。ただ、それはプロセッサが「大部分で決定論的に動作する」ということを前提にしたもので、マルチコア環境だとこの前提が大きく崩れるのだ。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「roc大先生のrrの素晴らしいところは、record&replay debuggerとして、圧倒的に速いってことですよ。速くなければ使い物にならないので https://t.co/fUGz2yt6FN」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WinDBG Previewもrecord&replay debugger入ってるけど、遅いのが致命的なんだよな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「昔聞いたところによれば、rrを他のプラットフォームで実装するには、それ用のsystem callがあれば行けると思うよ的な話聞いてるけど、現状はLinux限定ではある。 なおrrに関してはUSENIX ATCのpaperがあるから、それを読むと面白いよ https://t.co/9lWaniZjdL」 / Twitter
- atc17-o_callahan.pdf
- Makoto Kato ︎︎さんはTwitterを使っています 「なお、Firefox devtoolsでrecord&replayやってた人たちは、https://t.co/62UcrP6NA9 やってる」 / Twitter
- Replay: Record and replay web applications
- Makoto Kato ︎︎さんはTwitterを使っています 「RedHatのrrの記事では触れられてなかったけど、 https://t.co/Hmrk0UlrEm ってのをrocの会社で作ってる」 / Twitter
- Pernosco
- rr-debugger/rr: Record and Replay Framework
- Wayback Machine
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「jockeyの現代版っぽい感じ? https://t.co/80TZrdYakK」 / Twitter
- Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxプログラムを「決定的に (deterministic)」走らせるツール Hermit。プロセス内のOSによるメモリ割り当てやスレッドスケジュール、I/Oタイミング、RNGなどをつねに同じ状態に保つため、確率的にクラッシュするようなプログラムのデバッグに使える。 https://t.co/Dp1RQbq0d1」 / Twitter
- Hermit: Deterministic Linux for Controlled Testing and Software Bug-finding
Processor Trace
- LibIPT – Intel Processor Trace Decoder Library | Firmware Security
- 01org/processor-trace: libipt - an Intel(R) Processor Trace decoder library
- Intel® Platform Analysis Library-Overview | Intel® Developer Zone
- Processor Tracing | Intel® Software
- BlueHat, Airplanes and Intel Pt – AaLl86 Security Corner
- linux/intel-pt.txt at master · torvalds/linux
- Intel Pinを使ってみる - ももいろテクノロジー
- Intel Pinでcmptraceを作ってみる - ももいろテクノロジー
- [CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina …
- Shirouzu Hiroaki(白水啓章)さんのツイート: "x86とx64、引数がスタックに見える分だけ、前者の方が多少解析しやすい印象がある。 (後者はx86で言うfastcallのようなレジスタ渡しが標準。ちなみにMSとLinuxで引数に使うレジスタが違う)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外発生命令の、直前の命令位置を保存したレジスタか何か欲しいなぁ。 (例えば、0番地にジャンプした後に例外ダンプをとっても、もう遅い)"
- きしもとさんのツイート: "エミュレータだと何命令か過去のヒストリがある奴あるよねというか、今なら実ハードでもそれぐらい(どれくらい?)の面積は確保してくれても良さそうという気もするが"
- 市川 真一さんのツイート: "例が GDB なのでアレですが、最近の Intel CPU 限定だと以下のような機能もあるようです: Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo https://t.co/4hAfksgtmO… https://t.co/dur1hZ40Cq"
- Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ご紹介ありがとうございます。 今解析しているのはユーザ環境のダンプなのですが、これは、そういう環境でも使える可能性があるかな…あとで詳しく見ておきます。… "
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
- perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita
- Perf tools support for Intel® Processor Trace - Perf Wiki
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linux用の高解像度プロセストレーサ。プロセス内のすべての関数呼び出しを40ns単位で記録できる。オーバーヘッドは2~10%。perfとは異なりIntel PTを使っているのが特徴。結果はGUI上で表示できる。 https://t.co/sgwkMzT8XF」 / Twitter
- janestreet/magic-trace: magic-trace collects and displays high-resolution traces of what a process is doing
MAP, COD
- MAP (file format) - Wikipedia
- セクションとか.textとか
- C言語のプロセスにおけるMAPファイルとは何ですか? - 思い浮か... - Yahoo!知恵袋
- マップ デバッグ ファイル(*.map) - RAD Studio
- /MAP (マップ ファイルの生成)
- /MAPINFO (マップ ファイルに含める情報)
- マップファイルを使用したデバッグ | code-lab
- C言語のソースコードからどのようにメモリ領域を使用しているのかを図で説明してくれるソフト 回答数3 【OKWAVE】
- static関数がmapファイルに載らない理由 - C言語・C++・C# 解決済 | 教えて!goo
- JUNO通信: 不正落ちしたアドレスからエラー箇所を特定する
addr2line
- addr2lineを使った調査方法 - Qiita
- addr2lineを使ってスタックトレースから取得したアドレスをソースファイル名と行番号に変換する - Qiita
- Man page of addr2line
- Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
- _ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
- _ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
- 成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Debianのperfはプロセス中のアドレス解決のためにaddr2lineコマンドを何万回も呼んでいる。これは非常に遅く、libbfdとリンクすれば60倍程度は速くなる。しかしそのバイナリはGPLv2とv3+の混合ライセンスとなりDebianでは配布できなくなってしまう。 https://t.co/n6qypg39cY」 / Twitter
- ~60x speed-up of Linux "perf" (eighty-twenty news)
libSegFault
- 普通のやつらの下を行け: C でバックトレース表示 - bkブログ
- スタックトレースの吐出しファイル名 - Linux Square - @IT
- windows - How can one grab a stack trace in C? - Stack Overflow
- スタックトレース - Wikipedia
- C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - atwiki(アットウィキ)
- [Linux][C/C++] backtrace取得方法まとめ - Qiita
Sanitizer
AddressSanitizer(ASan)
KASAN
- KASan - Kernel Address Sanitizer(kernel 4.0)は、コンパイル時に組込んで、シャドウメモリによるメモリ内容の検査を行う - つれづれ日記
- KernelAddressSanitizer (KASan) による Linux のメモリ破壊問題の検出 - Qiita
- Linux:面白そうなpatch(Address sanitizer for kernel)を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- The Kernel Address Sanitizer (KASAN) — The Linux Kernel documentation
- Home · google/kasan Wiki
- kasan.txt - kandamotohiro
- 社会人でもOSを作りたいさんはTwitterを使っています: 「KASan(カーネルアドレスサニタイザー)は,シャドウメモリと呼ばれる部分に,各メモリアドレスの状態(初期化済みであるかどうかなど)を記憶しており,メモリ読み書き命令が正当なものであるかをシャドウメモリの情報と照らし合わせて判定する。」 / Twitter
- google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
- AddressSanitizer · google/sanitizers Wiki
- Home · google/sanitizers Wiki
- AddressSanitizer — Clang 7 documentation
- AddressSanitizer - Wikipedia
- Google Developers Japan: サニタイザーによる Android のバグ退治
- Address Sanitizerで独自Frameworkのメモリエラーを検出する - Qiita
- clang の AddressSanitizer を使って、バッファオーバーフロー/ヒープオーバーフローを検出する - Qiita
- Address Sanitizerでメモリ不正アクセスを検知する - Qiita
- clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
- AddressSanitizerが思った以上に優秀 | Project Flora
- AddressSanitizerを試す - cuspy diary
- cormoran's note - clang のSanitizerについて
- バグ #4270: StateMachine.hでheap-use-after-free - OpenRTM-aist (C++) - Redmine for OpenRTM-aist
- Debian -- jessie の libasan0 パッケージに関する詳細
- Debian -- jessie の libasan1-dbg パッケージに関する詳細
- 参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728) - るくすの日記 ~ Out_Of_Range ~
- 入力の検証とプロセス間通信
- [iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた | Developers.IO
- るくすさんのツイート: "ASan有効のWebKitビルドしたら、ビルド中に動くツールにメモリリークがあり、それをASanが検知してしまうため一生ビルドが完了しない。 キレそう"
- るくすさんのツイート: "でもラップトップだとビルド通るんだよな 何もわからん"
- c++ : Poisoning Memory with (or without) Address Sanitizer
- AddressSanitizerManualPoisoning · google/sanitizers Wiki
- Rockridgeさんのツイート: "Windows向け64bit版のビルド時にAddress Sanitizerと呼ばれるメモリエラーの検出ツールが働くようになった。参照:https://t.co/TSOKN3H8a7 https://t.co/I7KJVWTpa2 https://t.co/dDfe0RPHtE"
- Introducing the ASan Nightly Project | Mozilla Security Blog
- Kazuho OkuさんはTwitterを使っています 「clangのAsan/UBsanで、メモリの一部を未初期化であるとマークすることはできないんだろうか。たとえば自前のメモリアロケータを書いている場合とかに使いたい」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho API あるので poison/unpoisonすれば出来るんぢゃ?🧐」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive ASAN_POISON_MEMORY_REGION か!!!!あざます!」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho 辿り着けた様で… https://t.co/Oj49sc0xQg # ‘poison’ って単語が判れば割と一直線かな🤔」 / Twitter
LeakSanitizer
- clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
- LeakSanitizer — Clang 8 documentation
- AddressSanitizerLeakSanitizer · google/sanitizers Wiki
- LeakSanitizer - The Chromium Projects
- c++ - LeakSanitizer: get run time leak reports? - Stack Overflow
MemorySanitizer
- melancholic afternoon
- MemorySanitizer — Clang 7 documentation
- MemorySanitizer · google/sanitizers Wiki
- Memory sanitizer
- Memory Sanitizer - Mozilla | MDN
- c++ - Memory Sanitizer - Stack Overflow
ThreadSanitizer(TSan)
- ThreadSanitizer — Clang 8 documentation
- ThreadSanitizerCppManual · google/sanitizers Wiki
- Home · google/sanitizers Wiki
- SwiftのAddress/Thread Sanitizer - Qiita
- ThreadSanitizer: data race detection in practice
- c++11 - Why does ThreadSanitizer report a race with this lock-free example? - Stack Overflow
- ThreadSanitizer (TSan) v. 2 - The Chromium Projects
- shinichiro hamajiさんのツイート: "#tcfm TSanまわりはいくつか論文読んだ記憶がある。ナイーブなeraserはくさんfalse-positiveが出て、例えばデカい配列作ってスレッドたくさん作ってjoin、みたいなやつだとワーカーとメインスレッドがraceとされちゃう。で、happens-beforeてのとのハイブリッドにしましたってのがTSanだという理解"
DataFlowSanitizer
- DataFlowSanitizer — Clang 8 documentation
- pannzh/dataflow-pass: A LLVM Pass with runtime dataflow sanitization
- u1240976/dfsan_test: test llvm dataflow sanitizer
- Address Sanitizer clashes with Dataflow Sanitizer - Google グループ
- Clang Developers - Dataflow sanitizer memory mapping question
- Oscar Forner's personal website
- Engineering Secure Software and Systems: 9th International Symposium, ESSoS ... - Google ブックス
- clang-sanitizers
- Sanitizers.def source code [clang/include/clang/Basic/Sanitizers.def] - Woboq Code Browser
UndefinedBehaviorSanitizer(UBSan)
- UndefinedBehaviorSanitizer — Clang 7 documentation
- Google Developers Japan: サニタイザーによる Android のバグ退治
- Linuxカーネル4.5リリース、細かな改善点が中心の小規模リリース | OSDN Magazine
- The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel documentation
- The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel 4.11.0-rc4-00191-g7de6e5d documentation
- UndefinedBehaviorSanitizer (UBSan) - The Chromium Projects
- Undefined Behavior Sanitizer | Apple Developer Documentation
- GCC Undefined Behavior Sanitizer - ubsan - RHD Blog
- c++ - UBSan And Asan usage with GCC 4.9.2 - Stack Overflow
- GCC Undefined Behavior Sanitizer – ubsan (RH Developer Blog) [LWN.net]
- LLVM Sanitizerを試す - FPGA開発日記
Intel Pin
- Intel Pinを使ってみる - ももいろテクノロジー
- Intel Pinでlivestringsを作ってみる - ももいろテクノロジー
- Intel Pinを触る
- アプリケーション インストルメンテーション - Pin によるアプリケーション分析
- Intel PinにおけるNXの扱い | 一生あとで読んでろ
- PinからPEMUへ | 一生あとで読んでろ
angr
- angr例文集 書いて覚えるバイナリ自動解析技術 - Qiita
- angrメモ - HackMD
- angr+bingraphvisで実行パス差分ビューワを作ってみる - Qiita
最適化コードのデバッグ
- IBM Knowledge Center - 最適化コードのデバッグ
- 方法 : 最適化されたコードをデバッグする
Source Map
- Source Map Revision 3 Proposal - Google ドキュメント
- mozilla/source-map: Parse and consume source maps.
- Rockridgeさんのツイート: "Fx50:開発ツールのWebコンソールにソースマップ機能が実装された。デフォルトでは無効。 / “670002 – Use source maps in the web console” https://t.co/ehqBfbNvNj"
- ソースマップを使用する - 開発ツール | MDN
- Safx: JavaScriptのSource Mapの内部表現について
- 各ブラウザでソースマップを確認する方法 - Qiita
- [JavaScript] sourceMapの作り方 - Qiita
- To Be "Soulful": gulp + Sourcemap + Uglify + Debug で気を付けるポイント
- jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
- Source Mapを扱う関連ライブラリのまとめ | Web Scratch
- Source Mapsについて調べた - console.lealog();
- Browserify を使ってみる 2 – Source Map – アカベコマイリ
- なかのん&マジックさんのツイート: "普通のWebサイトも難読化してるところにペナルティを与えて欲しいと思えるぐらいに、最近のWebアプリがブラウザの何が非互換で動かないのか調べるのは難しい。 / Google、信頼できるChrome拡張にするための対策を発表 | スラド IT https://t.co/ykzZJhRTsu"
- Google、信頼できるChrome拡張にするための対策を発表 | スラド
- なかのん&マジックさんのツイート: "最小化は必要なんだろうけど、それを復元する、もしくはオリジナルにアクセスする手段が標準化・用意されていないのはなかなかにキッツい。"
- なかのん&マジックさんのツイート: "各ブラウザの開発ツールが追加で読み込める、デバッグシンボルみたいなのあってて欲しい。"
- 市川 真一さんのツイート: "Source Map とソースコードを zip で固めたファイルなら、比較的簡単に実現しそうな気もしますが、外部の人間にソースコードを渡す企業は限られるという問題があると思います… "
- なかのん&マジックさんのツイート: "もう、くれないところは逆にWebの仕様変更時にブラウザベンダのサポート受けられないよ、的なコンセンサス欲しいですわ。… "
- 市川 真一さんのツイート: "それ、いいですね。多くの日本企業が市場から退場しそう… "
- Even better Source Maps with C++, WebAssembly and Cheerp | by Yuri Iozzelli | leaningtech | Medium
- sourcemapを利用して、stacktraceでエラーの発生源を特定する | ThunderMiracle's Blog
HAR ファイル
- .har - Wikipedia
- HTTP Archive (HAR) format
- HAR 1.2 Spec | Software is hard
- HAR ファイルの作成と Web リクエストの分析 - アトラシアン製品ドキュメント
- Firefox の Firebug や Chrome のデベロッパーツールの Network の結果を HAR にエクスポートしたり PDF に印刷する方法 | ウェブル
- harファイルをローカルで表示できる「HAR Viewer」|プログラミング
- HARファイルの内容から指定URLの内容のみを抽出する方法 - Qiita
- HARからファイルを抽出する - Qiita
- JSONパーサーを作る - Qiita
- HAR で Web ブラウザの動きを見よう! - 赤帽エンジニアブログ
blog
RogueWave
CodeDynamics
- CodeDynamics 2015.09 初リリース - エンタープライズ向け 動的コード解析ツール - ローグウェーブソフトウェアのブログ
- CodeDynamics 2015.11 リリース C++11対応と新しい検索ツール - ローグウェーブソフトウェアのブログ
- CodeDynamics 2016.01 リリース - 高機能デバッガ wrap searchとブレークポイントハイライト - ローグウェーブソフトウェアのブログ
- CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化 - ローグウェーブソフトウェアのブログ
- エンタープライズ領域におけるソフトウェア開発の進化 - ローグウェーブソフトウェアのブログ
- 分散環境におけるメモリエラー解析 - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
- 動的解析のエンジンを再構築した理由 - CodeBuzzから - ローグウェーブソフトウェアのブログ
- 並列デバッガ TotalViewの多様なインターフェースと使い方 - ローグウェーブソフトウェアのブログ
- 複雑なデバッグをシンプルに - TotalViewのTransformations機能 - CodeBuzzから - ローグウェーブソフトウェアのブログ
- TotalViewのType Transformations機能 - ローグウェーブソフトウェアのブログ
- TotalView 並列アプリケーションのデバッグ機能 - ローグウェーブソフトウェアのブログ
- TotalViewのCUDA関連機能 - ローグウェーブソフトウェアのブログ
- TotalView 新UIでのFortranデバッグとリバースデバッグの紹介動画 - ローグウェーブソフトウェアのブログ
- TotalView Python C++混合デバッグ - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
- TotalView 2017.0 リリース - ReplayEngine高速化、新UIにウォッチポイント、NVIDIA Tesla P100 - ローグウェーブソフトウェアのブログ
- TotalView 2017.1リリース - Python混合デバッグ、リバースデバッグのブックマーク、Split DWARF - ローグウェーブソフトウェアのブログ
- TotalView 2017.2ベータ版 - Python混合デバッグのサポート強化、バッチデバッグとリバースデバッグ - ローグウェーブソフトウェアのブログ
- TotalView 2017.2リリース - バッチデバッグでReplayEngine利用可能に、PythonとC/C++混合デバッグ強化 - ローグウェーブソフトウェアのブログ
φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネルをgdbでデバッグ(またはディストリビューションのカーネルを使うときは当たってるパッチにも注意しよう) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux kernelをgdbでリモートデバッグするときはKASLRをoffにするのを忘れずに(´・ω・`) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- dynamic_debugはどのようにソースコードの行数、関数名などを読み取っているのか - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- libbfdのめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
NyaRuRuが地球にいたころ
- 日記を書いている途中にブラウザがハング・暴走したときするべきこと - NyaRuRuが地球にいたころ
- Google Chrome をデバッグする (1) - NyaRuRuが地球にいたころ
- Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ
脱力系日記
- IDAの便利プラグイン3選!!! - 脱力系日記
- IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた - 脱力系日記
- PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた - 脱力系日記
MySQL/MariaDB
- Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog
- Debugging MySQL/MariaDB (2): DBUG and Trace - nayuta-yanagisawa's blog
- Debugging MySQL/MariaDB (3): GDB Debugging - nayuta-yanagisawa's blog
- 実例で学ぶ MySQL/MariaDB デバッグ - nayuta-yanagisawa's blog
Project Zero
- Project Zero: The story of Adobe Reader symbols
- Project Zero: Part II: Returning to Adobe Reader symbols on macOS
- Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
J’s Lab
- OVMFをソースデバッグするお話 | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
はてなブログ
- わたしがprintf()デバッグをする理由 - 一人一党党
- Binary Translation型エミュレータを作る(ステップ実行のサポート) - FPGA開発日記
Publickey
- Chrome 97のDevToolsに新機能、Webブラウザ上の操作を記録、再実行、編集、保存。Puppeteerスクリプトへのエクスポートも - Publickey
- DOMメモリリークのデバッグツール「Detached Element」、Microsoft EdgeのDevToolsに搭載 - Publickey
- デバッガのための実行基盤の実装について
- Linux ハードウェアブレークポイントを実装する - 株式会社Ninjastars 技術系ブログ
- スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
- 本の虫: ラバーダックデバッグとは
- プログラマーの理想と現実 - メモリ破壊バグをつきとめる | 株式会社創夢 — SOUM/misc
- EternalRed0’s Unicorn Engine tutorial | Firmware Security
- バイナリエディタを作りました! - プログラムモグモグ
- ccov: printfデバッグを支援するツール | retrage.github.io
- エクスプロイト可能なバグかの判断:REVEN を使用して NULL ポインタの参照先の値を取得
- Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
- 第16回「 kernel-debug ノススメ」 | NTTデータ先端技術株式会社
- Bokken 1.8使ってみた - Twitterに書ききれないこと
- (第15回)Ctrl-Cブレーク対応
- mozregressionを使って、いつFirefoxの機能が壊れたのかを調べる - ククログ(2018-07-18)
- デバッガ自作から学ぶ低レイヤー - Nao Technology
- デバッガ自作から学ぶ低レイヤ2 - Nao Technology
- OpenBSD in Stereo with Linux VFIO | joshua stein
- アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
- goroutine内のpanic handling | Money Forward Engineers' Blog
- Valgrindでコード解析してみる - CADDi Tech Blog
- Chrome DevToolsのRenderingタブを活用しよう | フロントエンドBlog | ミツエーリンクス
- _Unwind_Backtrace()と-fomit-frame-pointer
- Rustの非同期デバッグツールを使いこなせ! | κeenのHappy Hacκing Blog
PDF
- purify.pdf
- tsushima12.pdf
- tsushima13.pdf
- ishii14.pdf
- wakikawa18.pdf
- doctoral.dvi - doctoral.pdf
- general4-1.pdf
- コンパイラの型推論を使用した型デバッガの提案
- 重み付き型エラースライスの提案
- バイナリコードから脅威度を推定する 脆弱性検出ツールの実装と評価
- おしぼりさんはTwitterを使っています 「面白かった。 普通のレジスタはVMEnterする時に全部退避するけど、VMMからゲストに(ハードウェア)ブレークポイント貼りたい時はデバッグレジスタは退避できないので攻撃者に値を読まれたり書き込まれたりされちゃうってことらしい。」 / Twitter
- 情報学広場:情報処理学会電子図書館
スライド
- Reverse Debugging with radare2 - Speaker Deck
- More efficient remote debugging with Thin Hypervisor - Speaker Deck
- ゆるバグ
- The Game is Over. Nintendo switch has been totally compromised - Speaker Deck
- Python + GDB = Javaデバッガ
- dynamic analysis tools - dynamic analysis tools
- JTAGでarmプロセッサをデバッグする話/KernelVM Online4 - Speaker Deck
- CMSIS-DAPの概要と使い方/KernelVM Online5 - Speaker Deck
GitHub
- WICG/devtools-protocol
- gdabah/distorm: Powerful Disassembler Library For x86/AMD64
- zydis | The ultimate X86 & X86-64 disassembler library
- zyantific/zydis: Fast and lightweight x86/x86-64 disassembler library
- PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
- _ko1さんはTwitterを使っています 「こういうことやるために https://t.co/8jOhpESY5b を作って mri のログがこんな感じで見れる(けどドキュメントないから誰も知らない) ヘッダ表示どうしよかな」 / Twitter
- ko1/kv: kv: A page viewer written in Ruby
- athos))))))))さんはTwitterを使っています 「デバッグに必要な情報をデータとして集めて、後から必要に応じて切ったり貼ったりして整形して表示するデバッグテクニック、むちゃくちゃ素朴なわりにデバッガとかprintデバッグに比べて「全体として何が起きたのか」を俯瞰して把握しやすいので好き https://t.co/aOt1q9G0x1」 / Twitter
- athos))))))))さんはTwitterを使っています 「デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になるので、どこまでも便利な解析ツールをカスタムで作り込んでいけて、デバッグ作業を気合いと根性で進めないといけないような状況に陥りにくい(デバッガのステップ実行をひたすら繰り返すとかデバッグログの目grepとか)」 / Twitter
- masa matsuさんはTwitterを使っています 「@athos0220 >デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になる まさにLispのメリット(ってことですよね?)」 / Twitter
- athos))))))))さんはTwitterを使っています 「@MasMatsum Lispだけのメリットというつもりはないですが、REPLをヘビーに使うLispだととても効果的に使えるテクニックだとは思います」 / Twitter
infoQ
- 既にコンパイルされたアセンブリをデバッグできる.NET Reflector
- ElasTestで実現するテスト時の可観測性
- WebDriverIOバージョン6リリースは、ネイティブのChrome DevToolsオートメーションプロトコルを新たにサポート
- New LiveRecorder for Java Enables Software Failure Replay
- Chrome 83 DevToolsでは視覚障害とロケールをエミュレート
- 新しいChrome拡張機能で、C++ソースファイルをステップ実行してコンパイル済みWasmコードをデバッグ
- Chrome 88 Devtoolsの新機能
- Node-RED 2.0で新たにフローデバッガーとフローリンターを提供し、開発者エクスペリエンスを向上
Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(1) - Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(2) - Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(3) - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "chromeにデバッガがアタッチできなかった話は、保護プロセスが理由だった。https://t.co/GmoAFDpGGq そして「Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法」。勉強になった。 https://t.co/1VAkqHCmfA"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここ数週間、chromeのプチフリーズ(5-10秒)が頻発。 VS2015のデバッガでchromeプロセスにアタッチしようとするとリジェクトされてしまうのはなぜだろう。"
- Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに、Windows Defender の場合はデバッガをアタッチしても、書き込み権を落としたハンドルしか渡せないという防御もあり、そのためのフィルタコールバックを如何に無効化するかという話も。ハッカーすぎる(笑)"
- curl は何をしているか #システムコール編 - Qiita
- 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
- Linuxカーネルの起動時トレースの話 - Qiita
- [Linux] coreファイルについて - Qiita
- Linux シグナルの基本と仕組み (カーネル v5.5 時点) - Qiita
- yoh2さんはTwitterを使っています 「わかる。デバッガによってはステップ実行がメソッドチェインのメソッド単位で進んだり、最後の呼び出しの戻り値を表示できたりする場合もあるけど標準的というほどじゃない。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「変数に束縛せずにメソッドチェインするやり方、読みやすいんだけどなんかバグった時にデバッガで追いづらいんよな」 / Twitter
- 【C++】メソッドチェーンにおける未定義動作 - Qiita
- C++入門者向けコード実行エディタをつくった話 - Qiita
- デバッグは「うまく動かないピタゴラ装置の原因調査」だと考えてみよう - Qiita
Wikipedia
- 逆アセンブラ - Wikipedia
- Disassembler - Wikipedia
- 逆コンパイラ - Wikipedia
- Decompiler - Wikipedia
- TotalView - Wikipedia
- ラバーダック・デバッグ - Wikipedia
- Rubber duck debugging - Wikipedia
Twitter
その他
bt
- shinichiro hamajiさんはTwitterを使っています 「@nullpo_head @kazuho 僕は普段は backtrace 吐いて死ぬけど、環境変数セットしてあると getpid 表示して wait する、くらいが好みでした。これみたいな: https://t.co/88ubOcbLzH これだと /proc/<pid>/maps 見に行くとか、 gdb 以外のこともできますし」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ソフトウェアを配布するにあたっては、質の高いバグレポートをもらうというのは死活的に重要で、そのためには、きちんとしたバックトレーサを同梱しておくと良いので、僕は今のところ * backtrace_symbols_fd をシグナルハンドラで実行 * その出力をaddr2lineに噛ませるようなラッパーを予め起動」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「という方法をとってます。cf. https://t.co/cDGwQzIg57 https://t.co/e4i17DHQ3X」 / Twitter
- h2o/main.c at 8ad43f45dd570e72e66cf2af70d8c6135c197776 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「これでだいたい行番号付きのバックトレースが送られてくる。ビルドされたgit commit idも入れるべきだな...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shinh @nullpo_head 実際のところシグナルハンドラ適用後に復帰する使い方ではないので、だいたいのケースで動けばそれでいいですね」 / Twitter
コールスタック
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「根の深い例外ダンプが送られてきた…起動時に作っているはずのメインObjのアドレスが0近傍になっている。 近傍=保持しているオブジェクト0でそのオフセット値という可能性高いも、何か合点がいかない感。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「類似状況を試したら、NTDLLを呼んでいる場合だけに現れる、一時的なコールスタック表示崩れの問題のようだ。 とはいえ、IP=0 でSEGV例外になった点は事実。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえばデバッガは、コールスタック途中のレジスタ復元どうやっているのだろう?(エピローグpushからスタック退避位置を推定?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「エピローグではなくプロローグ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「security cookie を有効のため、スタック破壊で0に飛ぶことは無い。 ということは、vtblの中身が破壊された?(obj ptrがnullの場合、vtblを引く操作でエラー=eipが0になる前に例外になるはず)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ソースコードに bo_test() というコードを仕込んでいて、時折、有効化したビルドを行って、buffer overflow 時の挙動&ダンプの中身を確認している。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、今時のVC++は bo時の例外ハンドラ起動を許さないので、そのx86/x64コードにnopを動的に入れることで、自前ハンドラに飛ばすhackを行っている。 (良い子はマネしない方が良い)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まあ年に数回であれば、ダンプを眺めるのは良い訓練。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たぶん判った。 これは特殊な条件で、OS/デバドラ側が非同期でスタックを壊しに来てる…うーむ、どうしたものやら。」 / Twitter
Custom section(WASM)
- chikoskiさんのツイート: "custom sectionね。… "
- chikoskiさんのツイート: "Custom section の仕様:https://t.co/JUTEAiTUjA"
- Custom Sections — WebAssembly 1.0
int 3
histric-1
- まさみさんは語りたいさんのツイート: "https://t.co/RL88Qp8eam デバッグレジスタを使ったメモリアクセストレース(所謂hwbreakpoint)の例外発生パターンが、一部の命令だけ違っていることを見落としていた話。ほぼ全ての命令ではメモリアクセス命令の直前で例外が発生するが、スタックセグメント(SS)レジスタのPOPとMOVだけ命令の直後。"
- POP SS debug exception- CVE-2018-8897 [Moderate] & CVE-2018-1087 [Important] - Red Hat Customer Portal
- まさみさんは語りたいさんのツイート: "基本的には全てメモリアクセス命令の直前で止まっていると思って処理をするため、例外発生アドレスが指す命令を記録してエミュレートする(あるいはDRを一時的にクリアしてシングルステップ実行?)ことになるけど、同じ処理をするとMOV SSとPOP SSだけ2度実行されることになる?"
- まさみさんは語りたいさんのツイート: "うーん、なんかもっと深刻な酷さだぞ。何だこの酷い仕様。 the processor delivers pending interrupts and/or debug exceptions after the first instruction following when the stack switch is executed."
- まさみさんは語りたいさんのツイート: "普通スタックの切り替えはセグメント切り替え+スタックポインタ復帰の2命令で行われる MOV SS, [RAX] MOV RSP, RBP なのでデバッグ例外は2つめの命令が実行されるのを待ってから行われると。 ところが単に命令数をカウントしているだけなので、MOV RSPではなくSYSENTERとかだと・・・"
- まさみさんは語りたいさんのツイート: "MOV SS, [RAX] SYSENTER で、RAXの指すアドレスのリードアクセスをデバッグレジスタに指定すると、デバッグ例外がSYSENTERのハンドラ(ring0に変更済み)の先頭で発生する・・・? そうか、そうするとkaslrで移動させたアドレスがバレバレになるのか。"
- まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i んー??CVE-2018-8897は違う問題か?icebp(ICE breakpoint)っていう隠し命令があるという話。"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- まさみさんは語りたいさんのツイート: "icebp、胸熱命令だな。int3はBP例外を発生させるけど、icebpはDB例外を発生させることのできる命令らしい。ICEが繋がっているとそちらからハンドリングできるソフトウェア命令と。"
- まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i 修正パッチが全く違うのは異なるCVE番号が付いているから。2つのCVEがあるという話らしい。"
- まさみさんは語りたいさんのツイート: "icebpはint1か。linuxカーネルだとdo_debugでヒューリスティックにicebpではないかと推測して処理されるけど、kvmではvmxに明示的にフラグが立つので確実に処理できると。"
- まさみさんは語りたいさんのツイート: "Loading the SS register with a MOV instruction inhibits all interrupts until after the execution of the next instruction. This operation allows a stack pointer to be loaded into the ESP register with the next instruction (MOV ESP, stack-pointer value) before an interrupt occurs."
- まさみさんは語りたいさんのツイート: "If a code instruction breakpoint (for debug) is placed on an instruction located immediately after a MOV SS instruction, the breakpoint may not be triggered."
- まさみさんは語りたいさんのツイート: "However, in a sequence of instructions that load the SS register, only the first instruction in the sequence is guaranteed to delay an interrupt."
- まさみさんは語りたいさんのツイート: "In the following sequence, interrupts may be recognized before MOV ESP, EBP executes: MOV SS, EDX MOV SS, EAX MOV ESP, EBP えっ、なにそれ??"
- まさみさんは語りたいさんのツイート: "本当に一命令だけ遅延させるんかwww"
- まさみさんは語りたいさんのツイート: "あっ、これはIntelの聖典のMOV命令のところに書いてる。"
- まさみさんは語りたいさんのツイート: "2018 MayのIntel SDMではICEBPという名前が見えるけど、一箇所だけ、脚注にあるだけっぽい。"
- まさみさんは語りたいさんのツイート: "MOV SS/POP SSはシングルステップ実行のトラップも遅延させるぐらい強力なものなのか。kprobesの場合、MOV SS/POP SSは両方共booster対象なのでシングルステップ実行はしないけど、uprobesはヤバイんじゃないかな。"
- まさみさんは語りたいさんのツイート: "https://t.co/JlzgRoXsYf Andyの書いたテストプログラムに酷い仕様が書かれている。MOV SSのあとにint3を挟むと、なんとint3の例外は発生せずdebug例外だけ起きるらしい。"
- まさみさんは語りたいさんのツイート: "これからint3を入れるときには、事前に一つ前の命令を確認してmov ssではないことを確かめないといけないってことになるのでは。あるいはdo_debugで発生命令がint3だったときにはdo_int3を呼び出すとか。"
- まさみさんは語りたいさんのツイート: "んー?int3とbreakpointが別れて書かれてるということは、このbreakpointはhw breakpointのことなのか。じゃあ大丈夫かな?"
- まさみさんは語りたいさんのツイート: "最新のIntel SDMをダウンロードして、"MOV SS"で検索すると、凄いポピュラーな単語になっててワロタw"
- るくすさんのツイート: "CVE-2018-8897ようやくちゃんと読んだんですが、これは結局Linuxだと MOV SS, [RAX] INT 3 とすると、INT 3を実行して#BP用のISTが切り替わった最中に1行目のwatchpointにより#DBが届いてしまい、同じISTを使おうとしてカーネルクラッシュ→DoS という認識で良いのかな"
- るくすさんのツイート: "ただ一つ分からないのが、Linux以外で#DBにISTを使わずそのままカーネルスタックを使うような設計のOSだと"権限昇格"ができる可能性があると記述されているのだけど、これはどういう意味なんですかね..."
- まさみさんは語りたいさんのツイート: "MOV SS; INT3の場合、BP例外ハンドラの先頭でDB例外が発生→処理されてからBP例外が継続、なのでこのケースは気にしなくてもいいっていうことだな。むしろMOV SSにINT3入れるとSingleStepが出来なくて死ぬ。"
- るくすさんのツイート: "Linuxカーネル開発サイクルに関する一般的な質問なのですが、いくつかのパッチは、とりあえずマージせずにstable-queue(?)とかいうのに置いてあって、今回過去のパッチが脆弱性修正に繋がると判断したのでmainlineにマージしました、という認識であってますか?… https://t.co/WNYer77UF4"
- まさみさんは語りたいさんのツイート: "というわけでkprobesとuprobesのパッチ作っているなう。"
- まさみさんは語りたいさんのツイート: "mov hoge,%ssなんて見つかるわけ無いだろー?とか思ってたら案外_switch_toでさっくり見つかって驚いている。"
- まさみさんは語りたいさんのツイート: "LSS使えってSDMに書いているのに、結構ポピュラーなんだ・・・。"
- まさみさんは語りたいさんのツイート: "まあ、実行される箇所はポピュラーだけど、実際にこれ以外にはsecondary_startup_64ぐらいでしか見つからないので、ポピュラーとはいえないか。"
- まさみさんは語りたいさんのツイート: "arm64のpatch_textの実装確認したらstop_machine使ってた・・・まじか。"
- まさみさんは語りたいさんのツイート: "stop_machineはかなり重い処理だから、余り使いたくない。特にコア数が増えるとものすごいジッタが発生するはず。IPI送って、それぞれのコアの待ち合わせを行った上で、処理をしてる間も止まってるわけだから。"
- まさみさんは語りたいさんのツイート: "x86の場合はint3使って迂回路を生成して書き換えるっていうkprobes由来の方法が一般化されて利用されてる。さらにエイリアスページを使う念の入りよう。"
- Kazuho Okuさんのツイート: "Linuxの USDT サポートが /proc/<pid>/mem を開いてフラグを書き換えたり、おそらく同時に NOP -> INT3 してることはわかったけど、INT3 受け取ったカーネル内での、デバッガ呼び出しと eBPF 呼び出しの切り分けはどうやってるんだろう"
SoC_デバッグ
- Yuji IshikawaさんはTwitterを使っています: 「守秘義務は外すとして、ここのところ頭を悩ませていた案件に光明が見えてきた。aarch64のLinuxカーネルにプラットフォームデバイスを認識させる作業。 さくっとデバイスツリーを書いて、SoC固有のところをいじるだけなのだが、ムズい。意外と資料がない。指南書ほしい。指南書書きたい。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「だいぶやられた後に言いたいことは、有名なSoCと同じIPを使っているからと言って、やすやすとドライバが移植できると思うなよ!だった。合ってるのは公開レジスタセットの所だけで、ベンダ固有の謎のHWや、よくわからん感じにマルチプレクスされた割り込みが理不尽な振る舞いをする。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「ベンダ依存の少ないレジスタセットを使ったコアロジックは使い回せるので、ベンダ依存部分さえ直せば驚くほどすんなりドライバが動く。 まさに巨人の肩によじ登ったワンダー。 しかし重ねていうが、工数を安請け合いしてはならない。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「結局、pr_infoを仕掛けて回る、サブのプロセッサコアをLinuxの支配下に置かずにデバッグ用につかまえておいて、横からレジスタを覗いたり書き換えたりして反応を観る、という形でデバッグしてた。もっと良い方法を知りたい。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「@Tatsuro_Ueda こういうのが強い人って、本当に強いんですよ。私がハマっていた所なんて、タネが割れてしまえば本当に簡単なこと、数十行のハックで最低限の動作ができてしまう。 でも、最初に仕組みを見通すメンタルモデルを獲得するには、莫大な研鑽が必要。偉い人にわかってほしい。」 / Twitter
@mhiramat
- まさみさんは語りたいさんのツイート: "おっ、綺麗にスタックが出た!っとおもったら何故か PC is at _raw_spin_lock_irqsave+0x2c/0x6c これはひどい。(多分メモリ領域壊している)"
- まさみさんは語りたいさんのツイート: "にわかには信じられないけど、この2つの関数の組み合わせだけで起きる。一つずつだと起きない。関連性が全く分からん。"
- まさみさんは語りたいさんのツイート: "ウオオオわかった https://t.co/SVYRV1RS1v kprobe on arm、お前・・・未定義命令だったのか・・・"
- まさみさんは語りたいさんのツイート: "いやそれはおいておいて、アセンブラを書く羽目になっている"
- まさみさんは語りたいさんのツイート: "よし、本件についてはクローズしたとみなす。"
- まさみさんは語りたいさんのツイート: "あちゃー、まずいな。ftraceとperfの両方がそれぞれ違うring_buffer構造体を作ってるんだけど(同じ名前で)、debug情報がこれをごっちゃにしているのが分かった。ftraceのring_bufferをダンプするとperfのring_bufferの型をつかってダンプしよる・・・。"
- まさみさんは語りたいさんのツイート: "えっ、これgdbのバグ?binutilsのバグ?gccのバグ??"
- まさみさんは語りたいさんのツイート: "IDA/radare2 というのを使って逆アセンブルする。radare2というのがベーシックブロック解析付きの逆アセンブラみたいな感じ? #kernelvm"
@fadis_
- Fadisさんのツイート: "CPUを初期化ペリフェラルの初期化、DRAMの初期化をした後u-bootは自身をRAMにコピーしてそこにジャンプする。→ アドレスが変わるためgdbで追うのが辛い → relocateaddrを調べてgdbでadd-symbol-fileする #kernelvm"
- Fadisさんのツイート: "書いたコードがSEGVで停止するのは幸運なケースだ。本当に面倒なバグは配列の範囲外だけど書き込み可能なページ内をしれっと書き換えていく"
histric
histric-1
- Makoto Kato ︎︎さんのツイート: "10年前の時点で自分の環境用のデバッグツールで、IEのプロセスダンプから現在開いているURLを収集および表示してるHTMLをダンプするcdbエクステンションを持ってたけど、自分のやってたところまでサポートは追いついてないのか"
- Hirochika Asaiさんのツイート: "実機だとOSの挙動がおかしくなる問題のデバッグにはCPU 0以外のコンテキストをダンプをする機能が必要。お行儀の良くない初期化しただけでこんなに影響出るものなのか…?"
- Kazuho Okuさんのツイート: "えぇぇぇぇ gdb で C-x 1 って入れたらソースコード表示しながらデバッグできるの!!! 知らなかった / “CppCon 2015: Greg Law " Give me 15 minutes & I'll change…” https://t.co/XDazrCP2mN"
- 側転幼女おるみんちゃんさんのツイート: "gdb --tui でもできる機能ですね。 https://t.co/4Y1ntlpj3o"
- ぺお(ozaki-r)さんのツイート: "DTraceをNetBSD/armに移植するときも未定義命令を使ったような記憶が… "
- なかのん&マジックさんのツイート: "特定のメソッドから、任意の数遡った、可能なスタックを全て表示してくれるツールとかないんかな(´ρ`)"
- yukiさんのツイート: "コードを書いていくとインタラクティブにアセンブリに直してくれるサービス.すごいのが,コードのどこがどのアセンブリに対応しているのか色付きで教えてくれるところ.勉強になる.もちろんRustもある! / Compiler Explorer https://t.co/9fppGUrHHG"
- Compiler Explorer
- Shirouzu Hiroaki(白水啓章)さんのツイート: "某大学の講義の感想で「(二分探索的な)printデバッグ時のコストが log2 N になる話が良く判らない」という感想が出たので、次回用にフォロー資料を書いてみたり。 再現性が良く、テストしやすいプログラムの場合、printデバッグは現代でも効率が良い問題究明方法。… https://t.co/M4FDQDATwG"
- なかのん&マジックさんのツイート: "Linuxで他のモジュール内部も含んだスタックトレースってどうやってとったらええんかな。"
- 秀の介@柏さんのツイート: "Debianならデバッグシンボルパッケージをインストールすれば良いようです。 https://t.co/59tgzJ1q1T… "
- Debian 9: デバッグシンボルのdbgsymでパッケージをデバッグする - Narrow Escape
- なかのん&マジックさんのツイート: "おー、ありがとうございます。やってみます。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ワーカースレッドが多いとデバッガで見たいスレッドを発見するのが手間になっていく。 デバッガでコールスタック解析して、同じコールスタックで眠っているスレッドは除外するフィルタ等があるといいのだが。 (VSSDKで作れるのかな?)"
- DrumatoさんはTwitterを使っています: 「自作バイナリに独自デバッグセクションを埋め込んで,それを解析するツールも実行プログラム基盤に埋め込めた!!! ・ユーザ空間に実装したローダ ・ --run オプション ・独自readelf ・ --relocs/-r オプション(これは一部) ・独自デバッグセクション ・独自readelfで解析可能 https://t.co/Qi4MMXf6Cs」 / Twitter
- DrumatoさんはTwitterを使っています: 「ユーザが特定のフォーマットでコメントアウトした時.それをバイナリから参照できるようにしたいな. 新しくセクションを打って,ヘッダからそれを参照する. https://t.co/4yGJ3PofaI」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「マルチスレッドでタイミング依存、高負荷でのみ発生、最適化に依存(大半はコード側問題の顕在化&稀に最適化バグ)といった経験を経て大人になる…そしてprintf(リングバッファ的なロギング系含む)の侵入副作用の小ささと環境非依存に「再び鮒釣りに帰ってくる老人」みたいな心境に(笑) https://t.co/ASEQrrDhhk」 / Twitter
- Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「永遠の初心者なのでprintf普通にします (gdbかました時だけ再現しない問題とか、普通に経験ある人多いんじゃないかなあ、。) https://t.co/rJoiNKKxEU」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全力動作でないと問題発生しない系に対して、ロギング用リングバッファを作ってメモリ上でトレース&問題検出と同時にダンプ。後は大量に出たログを眺めて動作を脳内シミュレート(と一連の作業のイテレーション)した人も多いのでは。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RS232C出力のコンソール画面だとフロー制御するので、stdout/stderr出力が固まるってありますね。 昔々、UNISYS WSで「システム動作が停止したぞ?」と大騒ぎになった時、誰かが画面電源をOFFにしていたオチ。(で画面ONにすると何事も無かったように動作再開…) https://t.co/sUzYc1gH5I」 / Twitter
- Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「あるあるある、。RT そしてfflush(stdout)もセットになったりします(笑) stderrがシリアルコンソールに物理的にひもづいててリングバッファからのflushが異常遅延してとかそういう思い出があったようななかったような https://t.co/ZLiLfjy5qJ」 / Twitter
- ryoさんはTwitterを使っています 「というかSMPでhardware watchpoint/breakpointを共有しないと使いものにならないというTODOを思い出した」 / Twitter
- herumiさんはTwitterを使っています 「https://t.co/bqgvd5sz7J ありましたね。 私が経験した中でレアなやつは コード整形しただけのはずなのに再起動するようになった(OSのバグ) gdbで起動するとgdbが落ちる実行バイナリ(gdbのバグ) 未定義命令で落ちる(VMのcpuidエミュレーションバグ) とか。そういうの集めてしゃべると楽しいかも。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ログ出すとprintfがスタックをじわじわ使うのでそこで少しずつスタック拡張が起き、その次に呼ぶ関数でもスタックが使える ログなしだと該当関数がスタックを大量に確保していきなり前のほうを使うのだが、それをOSはスタック拡張と認識できず死ぬ というのがあったな…(光成さんも経験されてたような https://t.co/tjqpC7YVN8」 / Twitter
- uchanさんはTwitterを使っています 「まてまてまてまて!なんだこの現象は。ログ出力を1行加えたら現象が治まったぞ!?(OS開発あるある)」 / Twitter
- とみながたけひろさんはTwitterを使っています 「この現象に初めてはまった時は、リアルタイムOS厨だったので「スタックサイズ拡張なんて邪道だろ」とか思った記憶がある(中二病ぽい)」 / Twitter
- ryoさんはTwitterを使っています 「PACのコード読み。なんとなく疑問点が氷解した。なぜPACがポインタ全体を暗号化せずにunused bitだけに認証コード埋め込むのかは、ポインタの値を拾いたい場合もあり得るからか。今のところlrだけなのでbacktraceくらいだけど。」 / Twitter
- ryoさんはTwitterを使っています 「OpenBSDのRETGUARDはARM64 PACのソフト実装みたいな感じだが、こちらはspとreturn addressをxorしているので全bitが意味を為さなくなってポインタとしては扱えない。(が、db_traceでやってるみたいに自前でxorしなおせばいい)」 / Twitter
histric-2
- Kazuho OkuさんはTwitterを使っています 「printfデバッグ、二分検索を念頭において print 文を足していった結果、少ないステップ数で原因絞り込めると快感」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「すべてのCファイルをいったんgccでコンパイルして、そのあと1ファイルだけ自作コンパイラでコンパイルしてリンクするみたいな方法でミスコンパイルしている場所は比較的簡単に絞り込めるので、デバグはあんまり難しくない。」 / Twitter
- ある🍄まじろう / 加来量一さんはTwitterを使っています 「printf() を挿入するとバグが止まることは本当によくあって、メモリ未初期化が収まるパターンとメモリ破壊がずれるパターンと、スレッドスケジュールが変わるパターンがある 特に最後のは気づきにくくて厄介」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「debuginfod (https://t.co/3WrAAVzHyn) を見ながら、やっとWiindows debuggerの世界の20年前に追いついたと。cdb/windbgだと20年前に出来たことだよな」 / Twitter
- Introducing debuginfod, the elfutils debuginfo server - Red Hat Developer
- Shinji KonoさんはTwitterを使っています 「結局、lldb 、Rust compilerに対して役に立ってない。デタラメに止めてstepくらいはできる。もう、debuggerの時代は終わりかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「アドレスが間違ってるので、nmの出力を解析できればアドレス直打ちで止められるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「昔と違ってgithub上でかなりいろいろできるし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「gdb/lldbはコンパイラとの連携がそもそもダメ。Dwarf formatは言語非依存を目指したものだが、それ自体が時代遅れ。コンパイラ実装でも負担になるだけだし、表示は、その言語自体が行ないと無理。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「サボってるのはgdb/lldb、あるいはソフトウェア工学そのものだな。なんか作るか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「OSのdebugger APIも古色蒼然。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「lldb/gdbがうまくdebugできなくなってるのは、Rustだけじゃなくて、他の言語でもそう。C/C++でもだめ。」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「rustcに対してデバッガをかけたいというのは確かに大変そうだ…」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「optimized binary + debug infoに対してどれぐらいデバッガが効くのかは分からないな」 / Twitter
- κeenさんはTwitterを使っています 「そういうのなかったっけ?lspよろしくdebudder server protocolみたいなの。実装されてるかは知らないけど。」 / Twitter
- κeenさんはTwitterを使っています 「MSのDebugger Adapter Protocolか。これ微妙だな…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Rustc、一応、LLVMコード生成部分は捕まえられた。lldbは使い物にならなくて、gdbでもデータ表示はできない状態。40万行。」 / Twitter
- mumumuさんはTwitterを使っています 「Reverse Debugging of Kernel Failures in Deployed Systems [ATC '20] 既存のPERTというAppのReverse DebuggingのツールをKernelに適用する.Kernel固有の問題として,system callはすべてのアプリケーションが呼び出すため,どのような単位でトレースするか,割り込みをどうするか等に対処している」 / Twitter
- ぬるぽへさんはTwitterを使っています 「Logpoints, C/C++とかでもprintfと違って構造体をぶち込んで雑にログできて便利、という理想的な状態に反して実際は内容が省略されてしまう上に、表示がただのログアウトプットでブレークポイントと違ってインタラクティブなやつじゃないので中身をクリックして後から展開とかもできない」 / Twitter
- ぬるぽへさんはTwitterを使っています 「理想的にはdev toolsのconsole.log状態になってほしいわね」 / Twitter
- hsjoihsさんはTwitterを使っています 「@niw UTF-8 のデコードを覚えると Wikipedia とかのパーセントエンコードされた URL が読めるので実用的ですね。なお私は覚えてません」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「@hsjoihs ですねえ。デバッガとかでバイトそのまま読めたら便利だよなあと思った。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「CI で asan だけコケてるの見て、これはなんか遅い場合だけ出るタイミング依存のバグかなーってんで考えて、テストコードいじって再現成功して、USDT probe 使って原因つきとめて、修正パッチ書けたから今日はいい日」 / Twitter
- まさみさんは語りたいさんのツイート: "Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 #ldnews https://t.co/yRsSKYWcbX 面白い。メモリ断片化でフリーズって、昔はサーバの問題だったのに。"
- Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 - ライブドアニュース
- C++でOS自作 技術書典5 お05さんのツイート: "研究ではC#に対して実装してた。事前に対象プログラムにデバッグコードを埋め込むことで、ステートメント単位の実行、変数の値の取得などを行っていた。C++でやるとしたらLLVMでASTを取得して書き換えれば同じことができそう。"
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「実行時エラーのほうが具体的な実行コンテキストがある分、バグを潰しやすいと思う。なので、コンパイラがエラーを吐く時には、具体的にどんな実行コンテキストだとどのような実行時エラーにつながるかを例示して、実際にそのような実行トレースを生成してデバッガを起動して欲しい。」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「コンパイルエラーが厳しいって意見、しばしば見ますけど、それ実行時エラーのほうがいいですか……?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「面白い。けど処理の性質次第という気も。 木構造の制御に直接データが流れる場合、コンテキストの情報はスタックに乗ってるけど、高階関数を渡して制御グラフを組み立ててからデータを流すような処理の場合、実行時エラーが出た時には「組み立ての手順」はもう見えないことが多い。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「静的解析のサポートが欲しいのは後者のような場合で、「エラー時の実行環境を見れば分かる」ようなバグならあまり必要性は高くないとも言える。 あと後者で静的にエラーが出た場合は、そもそも「実行可能な組み合わせが作れない」ということだから実行時エラーを例示することも不可能だったり。」 / Twitter
- DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
- Debugging Go Code with GDB - The Go Programming Language
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザのconsoleの進んだ使い方。 console.log(width); ではなく console.log({width}); とすると変数名も含めて表示される、というのは初めて知った。 他にもログのグループ化や表形式、Live expressionによる値のライブ表示や VS Codeによるリモートデバッグの紹介。 https://t.co/UzP3NlJYRi」 / Twitter
- Developer Tools secrets that shouldn’t be secrets | Christian Heilmann
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「デバッガで関数にブレークポイントを指定すると、通常は引数が見れるように関数prologueの直後で停止することが多い。しかしprologue位置の検出は結構大変である。これは言語によって異なるうえに、最適化によっても変わるためである。 https://t.co/0PDIyaoxpL」 / Twitter
- Where Should the Debugger Set a Breakpoint?
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
- Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「DevToolsのデバッガー、ブレークポイントだけじゃなくて「この式通った」って印を残すだけの機能が欲しい。console.logを書けばいいんだけど、外部のライブラリーに手入れたくないし、ブレークポイントで止まってしまうと再開のためにマウスを放さなければならず、drag and dropとかが途切れちゃう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@igrep gdbなら可能だけど、DevToolsだとどうだろう?って思って調べてみたらそれっぽいものがありそうです。頓珍漢だったら済みません https://t.co/RycsfcbXrX」 / Twitter
- [小ネタ] ログポイント機能でChromeで表示中のページにロギングを挿入する | DevelopersIO
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@miura1729 おお、気付いてませんでした!ちゃんとFirefoxにもあるみたいですし、ありがとうございます! https://t.co/oC3REKHPOP」 / Twitter
- Set a logpoint — Firefox Source Docs documentation
- matsuu序二段さんはTwitterを使っています: 「タイムトラベルが可能なIntelliJ用デバッガ。コード実行時の履歴がすべて記録され、ソースコードの行単位で自由に遡って変数の内容などを確認できる。現在はJava/Scala/Kotlinに対応。Python/Golang/Nodejsにも対応予定。最高では。 / “Videobug” https://t.co/tvo34G5sGd」 / Twitter
- Videobug
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「デバッグの6段階。 1. 「ありえんよ!」 2. 「少なくとも俺の環境では発生してないぞ」 3. 「こんなこと起きないはずだ」 4. 「なんでこんなことになってるんだ?」 5. 「ああ、そうか...」 6. 「なんで今まで動いてたんだ?」 https://t.co/MOSlYamPex」 / Twitter
- The 6 stages of debugging : ProgrammerHumor
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「メモリアクセスの視覚化に主眼をおいたデバッガ。昔の計算機はLEDのチカチカするパターンを目で追うことで怪しげな挙動を発見できたが、それをx86でやることを念頭においている。Linux, Mac, Windows, *BSDで利用可能。 https://t.co/IJRdJh7Ftr」 / Twitter
- Blinkenlights
- yoh2さんはTwitterを使っています 「わかる。デバッガによってはステップ実行がメソッドチェインのメソッド単位で進んだり、最後の呼び出しの戻り値を表示できたりする場合もあるけど標準的というほどじゃない。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「変数に束縛せずにメソッドチェインするやり方、読みやすいんだけどなんかバグった時にデバッガで追いづらいんよな」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「DevToolsのconsoleに貼り付けると便利なスニペット集 / 1件のコメント https://t.co/AYbTw0OzY6 “Dear Console,… - a collection of code snippets to use in the browser console” https://t.co/eLnHcCsdyF」 / Twitter
- Dear Console,… - a collection of code snippets to use in the browser console
- 小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
- ぬるぽへさんはTwitterを使っています 「外部入力がデフォルトで分離されてて内部に非決定性の無いwasmは、実装がめっちゃ簡単なのでデバッガはtime travel debugできるのが標準になってほしい、そしてproxy-wasmとか組み込み環境にとってこそデバッガがタイツトラベルを標準サポートしてくれるとめっちゃ嬉しくない??」 / Twitter
- Add wasminspect as source-level debugger by rhysd · Pull Request #1 · vshymanskyy/awesome-wasm-tools
- Makoto Kato ︎︎さんはTwitterを使っています 「WindowsからLinuxがらみに戻ってきて、びっくりしたのは、カーネルデバッガとかカーネルダンプ取得がデフォルトで出来ないってところだった。なんだよ、kexecでの制約受けたり、パッチ当てないと出来ないだなんて、Linuxって開発者フレンドリーじゃないよねと。」 / Twitter
LLVM bugpoint
- Miura HidekiさんはTwitterを使っています 「将棋みたいにデバッグのための操作をしたらそれがどのくらい有効か点数が出るAIがあるといいのに。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「いや、本当に有効なデバッグ方法は再現する最低限のプログラム・入力データを切りだすことって分かっているんですけどね...。この作業ははっきり言って面白くない。少なくともそれ以外のprintf/breakpointで試行錯誤するデバッグより」 / Twitter
- LLVM Bugpoint | Logan's Note
- LLVM bugpoint tool: design and usage — LLVM 13 documentation
- llvm bugpoint - Google Scholar
- Concolic testing - Wikipedia
- QuickCheck - Google 検索
- C-Reduce
- csmith-project/creduce: C-Reduce, a C program reducer
- Test-Case Reduction for C Compiler Bugs - pldi12-preprint.pdf
- uint256_tさんはTwitterを使っています 「@tenpoku1000 @miura1729 https://t.co/OxQx1TyBUX コードを見ればわかりそうですね(大したことはやっていないように見える)」 / Twitter
- llvm-project/llvm/tools/bugpoint at main · llvm/llvm-project
クラッシュダンプ
MS
その他
- usskim / ワトソン博士
- Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説
- Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法 - Web/DB プログラミング徹底解説
- 「ReadProcessMemory 要求またはWriteProcessMemory 要求の一部だけを完了しました」と出てアップデートが出来ません - HASP
- めもりーくりーなー 「ReadProcessMemory 要求または~」と出る?
- Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
- Windows:Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法
- NKY-TECH. ソフトウェア開発部: プロセス ダンプ(ユーザー ダンプ)の作成
- デバッガを接続していないアプリが不正終了した時にミニダンプを作成する方法
- 「その場で」と「あとから」と成功体験 - NyaRuRuが地球にいたころ
- 他プロセスのメインモジュールのエントリーポイントアドレスを取得したい。 • C言語交流フォーラム ~ mixC++ ~
- i4shamrock - きままに情報発信
- メモリダンプから様々な情報を抽出するためのオープンソースのツール : volatility
- IBM MustGather: Windows でのアプリケーションやシステムハングの診断情報収集について - Japan
- DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
- Windows 10 Active Memory Dumpとカーネルメモリダンプ
- Windows 10 Active Memory Dumpとカーネルメモリダンプ
- Windows XP/7/8/10のセッションとプロセス
- Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Docs
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MiniDumpWriteDumpで特定の仮想アドレス範囲を除外したダンプを作るには、MiniDumpCallbackを用意して、ごにょごにょすれば可能なはずなのだが、どうも上手くいかないな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsgで例外ダンプが送られてきて解析したのだが、ダンプから推測した範囲ではNICにIPアドレスを100個以上付与している環境らしかった。(例外発生はそれに起因) ともあれ、ミニダンプは解析にとても役立つ。 https://t.co/Q9gepzbHfG"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ログ(スタックのhexデータ)から手動で関数フレームを辿る計算をしていた時代に比べると、統合環境から解析できるようになったのは、徒歩から新幹線くらいの差がある…(稀に脱線して使えないときは、想像力+手計算が有効な場合も)"
- Windowsで不要なデータを除いたダンプを作成する
- Windowsで不要なデータを除いたダンプを作成する
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、delete [] p; のようなコードで例外発生していた。 ダンプ解析経験者なら皆ご存じの通り、メモリ開放中の例外は解析が困難なことが多い。(原因箇所よりも後で例外発生のため、原因箇所が確定しづらい) ただ幸い今回は原因箇所と例外発生が近かったため、比較的スムーズに解析できた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ヒープではなくスタック侵犯だと、カナリア検出で例外発生となるはずだが、関数フレームも壊れている可能性が高いため、解析はかなり困難になる。 (とはいえ、(カナリアなしで)存在しないメモリ番地に飛んで落ちるよりはマシで、命令アドレスは一応見える、はず)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみにVCライブラリのカナリア処理は、例外ハンドラ登録(SetUnhandledExceptionFilterで登録した関数)に遷移せずに強制終了するコードになっている。 (IPMsg/FastCopyではここにメモリ上でパッチを当ててダンプを出してから強制終了するようにしている)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "といったことを書くと、未だにメモリ管理で消耗してるの?とか煽られる時代になった気も…いや、それはそれで正しいんですが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Wine上で作成されたミニダンプがVisualStudioでそれなりに見える。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy v4系の初ダンプは、意図的なクラッシュルーチン発動だった。 どうも、特殊なファイルシステム(NFS経由?)を使っているらしく、FileAttributeが0でかつオープンに失敗するという謎の環境によるもの。 https://t.co/vGZsaGeCYE」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちなみに CRASH_WILLFULLY == __debugbreak() ≒ int 3) https://t.co/D3WhG606vu」 / Twitter
- __debugbreak | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「相変わらず、XP以降で導入された mini-dump機構は便利。 (ただし取れるdmpデータの厳選&圧縮は必須)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「dump圧縮で、zlib最高圧縮より Win10 zipの方が圧縮率高い様子。」 / Twitter
- Minidump Files (Windows)
- MINIDUMP_TYPE enumeration (Windows)
- ReadProcessMemory 関数
- クラッシュ ダンプの分析
- メモリ ダンプ ファイルを生成する方法について | Ask CORE
- OCA ミニダンプ ファイルをデバッグする - Windows 10 hardware dev
- Using WER (Windows)
- クラッシュが発生した場合に、Windows によって作成された最小メモリ ダンプ ファイルを読み取る方法
- Windows でシステム障害と回復のオプションを構成する方法
- クラッシュ後 Windows でメモリ ダンプ ファイルが保存されない
- Windows Server 2003 でカーネル ダンプ ファイルや完全メモリ ダンプ ファイルを生成する方法
- シンボルを使用したデバッグ
- Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター
- Symbol Files (Windows)
- DBG ファイル
- Windows ベース システムでは、NMI を使用して、完全なクラッシュ ダンプ ファイルまたはカーネル クラッシュ ダンプ ファイルを生成する方法
ブルースクリーン
- 本の虫: Old New Thing: ブルースクリーンを書いた人間は、まあ、僕さ
- クラッシュ・ダンプ - マイクロソフト系技術情報 Wiki
- @IT:Windows TIPS -- Tips:障害調査用のメモリ・ダンプを無効にする
- 一方、ふうえんさんちでは… メモリ異常によるブルースクリーンの対処法
- WinDbg
- デバッグにあると便利なシンボルとは? - Web/DB プログラミング徹底解説
- DBGファイルを活用する方法
- なかのん&マジックさんのツイート: "とりあえず、BSODはドライバが原因の場合は、どれがクラッシュしたのかの情報を明示して欲しい。「最近、追加したハードウェア、または更新したソフト」みたいな文言は、自動アップデートが当たり前な昨今、ナンセンス。"
- なかのん&マジックさんのツイート: "BSODの画面上デザインを変更するときに、なんで、根本的に分かり易いエラー内容表示にしようとしなかったのか、割と不思議に思ってる。"
マルチスレッド
- Windows C++ マルチスレッドアプリケーション デバッグ法 | Wander Alone Like A Rhinoceros Horn
- めんどうくさいSQL Serverのデバッグ (1/2):EnterpriseZine(エンタープライズジン)
- gdbでのマルチスレッド処理のデバッグや制御について - 千里霧中
- (第22回)GDBのスレッド対応(その5:スレッド切替えとまとめ)
- Debugging with GDB: 5.4 マルチスレッドプログラムの実行停止と実行再開
- Debugging with GDB - 停止と継続
マルチプロセス
- Debugging with GDB - GDB配下でのプログラムの実行
- Debugging with GDB: 4.11 forkするプログラムのデバッグ
- 既に起動しているプロセスをgdbで制御する:Geekなぺーじ
- マルチプロセスデバッグと資源割り当てで思いを馳せる | Everyday Deadlock
kdump
- kdumpでダンプを取得する方法
- 26.2.3. コマンドライン上で kdump の設定 - Red Hat Customer Portal
- 第26章 kdump クラッシュリカバリーサービス - Red Hat Customer Portal
- 第1回「 kdump ノススメ」 | NTTデータ先端技術株式会社
- カーネルダンプ出力設定メモ - Qiita
- kdump
- CentOS 6 で kdump の設定をしてみた | 黒ぶちメガネのblog
- ◇Kdump(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
- kdump (Linux) - Wikipedia
- Kdump - ArchWiki
POSIX
- Solarisでいきましょか? -クラッシュダンプ(PANIC)-
- ダンプ解析講座 ~第3回 ダンプの構造~ | VA Linux Systems Japan株式会社
- Executable and Linkable Format - Wikipedia
- Tips ELFフォーマットその1 ELFフォーマットについて
- gdb - ELF core file format - Stack Overflow
- Anatomy of an ELF core file - /dev/posts/
- A brief look into core dumps
- Man page of CORE
- core(5) - NetBSD Manual Pages
- How to read/write memory in an external process
- Microsoft/ProcDump-for-Linux: A Linux version of the ProcDump Sysinternals tool
- 初心者のためのコアファイルの解析方法について - Qiita
Android
- Crash Fast: Androidのクラッシュに対するSquareのアプローチ
- Google – www.developer-plus.com
- xuningjack/JCrash: Android自定义异常处理模块(Based on KSCrash)
Java
- システムのクラッシュ
- JVMのクラッシュ
- ポストモーテム診断ツール
ストレートマップ
- 魔術師見習いのノート
Wikipedia
- Memory corruption - Wikipedia
- コアダンプ - Wikipedia
- Core dump - Wikipedia
- クラッシュ (コンピュータ) - Wikipedia
- ブルースクリーン - Wikipedia
- Blue Screen of Death - Wikipedia
GitHub
- pd: process dump
- glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.
Twitter
その他
- Fadisさんのツイート: "Linuxカーネルにクラッシュしたとき代わりのカーネルを上げてデバッグする仕組み(kdmup)があるようにsystemd死んだら死んだとき用systemdが上がってくる必要がありそうなヤツだ…"
- ぶんちょうさんのツイート: "次鳥小屋作るとしたら、どう考えてもwebサーバーがsandboxのwsサーバーのアドレスと認証キー返すようにして、ブラウザはそこに繋ぎに行くだけの設計にするんだよな"
- メモリダンプと模様が見える男|kamezawa.hiroyuki|note
- Makoto Kato ︎︎さんはTwitterを使っています 「MSのPermier Supportだと一日数本ダンプ解析の依頼来てたけど (今はしらない)、ジュニアなエンジニアに解析させると、わからないのに頑張って調査しようとするから、あれをジュニアな人たちにやらせるのはそんなに良くないんだよな。個人的にはダンプ解析なんてジグソーパズルみたいなものですよ。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「NとかFとかHとかが中途半端に解析してきたログを見ると、半分以上見当違いな調査してて、まぁなんというか、センス問われる」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「というかWindowsでもそうだったけど、論理的な原因理由がないとクラッシュダンプの痕跡だけだと、直さないの普通じゃない?日本のパートナー企業はそういうところで変なこと言い出して揉める印象」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「もちろん政治的に揉めた案件とか、信頼できる人からの修正リクエストだと、必ずリジェクトされることではないが。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ただダサすぎな例外もあって、組織として (WinDiv) 、クラッシュレート下げろっていう指令がトップダウンで落ちてした時なんて、よくわからないワークアラウンドコードが入ったりしてた」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinFsp(Windowsファイルシステムプロキシ)、Windows版Fuseの一種らしいが、実用レベルで使えている印象。 https://t.co/eNNuJ4AUF7 (ドイツから、FastCopyに例外が出るという連絡で知った)"
- Main | WinFsp
- billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ダンプ解析したところ、WNetGetUniversalName が成功を返しているのにlpUniversalNameがNULLなのが原因。 WinFspの互換性が微妙に足りていないのか、WNet系に渡せないという意味で意図的にNULL?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ともあれ、こういう類の解析は嫌いじゃないなぁ。 次のバージョンから、ミニダンプも入れる予定。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「例外ダンプは無駄にスカスカなので、zlib圧縮化。 8MB -> 0.9MBと約1/9くらいに。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「このバージョンから例外ダンプをzlib圧縮したので、1MB未満になることが多くなるはず。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「内部エラーが検出された時は、「内部エラーが発生しました」などを表示するより、安全にクラッシュさせてdumpを送ってもらった方が良いな。 (滅多にある話ではないけれど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラマーの特性として、クラッシュはつい禁忌しがちだけど、自前ダンプ機構を実装しているときは意識を変えたほうが良さそう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「確実にクラッシュさせる方法についての議論。 Redisは *(char*)-1 = 'x'; らしい、、、正確には未定義かもだが、現実的なコードと。 https://t.co/1oQ24rkm74」 / Twitter
- What is the easiest way to make a C++ program crash? - Stack Overflow
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu これほんとそうですね。例外をつかまえてエラーメッセージを表示するほうがユーザーにとっては親切かと思うんですが、クラッシュダンプがないと例外の本当の原因がわからないままになってしまう。そして開発者に通知されることもなくいつまでも残ってしまう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc そう思います。 Windowsだとダンプ出力の送付は、ユーザにおまかせ(メール等)という感じなのですが、Android/iOSは送信する仕組みがあるのでしたっけ。」 / Twitter
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu ユーザーが診断情報の提供に同意していれば、クラッシュ時の状況が自動送信されます。Androidはこれがないととてもデバッグしきれませんでした。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc それいいですね。Windowsにも搭載して欲しい…」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu @tkmc 法人なら WER が使える可能性がありそうですが、書籍「Advanced Windows 第5版 下 第26章 エラー報告とアプリケーションの回復」に書かれています。利用経験がないので、今でも使えるのかは不明ですが: Windows Error Reporting - Win32 apps | Microsoft Docs https://t.co/KaOtfJd86g」 / Twitter
- Windows Error Reporting - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tenpoku1000 @tkmc ありがとうございます。 あのレポートシステムは、MSしか使えないかと勘違いしてました。」 / Twitter
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu @tenpoku1000 これでデバッグが捗る! ^^」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ だと __debugbreak() を使うのが良いかも。 (例外コードが int3 ... 0x80000003 になり、SEGVの 0xC0000005 と間違わずに済む) https://t.co/tQf6IPaSEl」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時のコンパイラ「free(3)直前の変更って意味ないですよね!削除しておきました!」もあったっけ。 (obj->ref_cnt=0; free(obj); みたいなコード、コアダンプ解析では有用)」 / Twitter
@vyv03354
- vyv03354さんのツイート: "@piro_or Cu.crashIfNotInAutomation(); で、Mozillaの自動テスト環境以外なら「安全に」(メモリ破壊を起こさず)クラッシュさせられます。"
- vyv03354さんのツイート: "Firefox 62からabout:crashparentとabout:crashcontentが追加されて、さらにお手軽にクラッシュさせられるようになりました。 https://t.co/VqsGtkKKYQ… "
@rockridge07
- Rockridgeさんのツイート: "Firefoxのクラッシュ率を分析・比較するMission Controlは、現在も開発中。2018年後半に正式版へ。参照:https://t.co/qXKKoCRgB0 / “Mission Control update” https://t.co/LLhyatSRac"
- Rockridgeさんのツイート: "Mozillaが測定しているFirefoxのクラッシュ率は、検知したクラッシュ数をアクティブな利用時間で割って算出しているらしい。Android版は利用時間が少ないため、デスクトップ版と率を比べるのが困難だという。 / “Fir…” https://t.co/j9zbp45uKr"
- Rockridgeさんのツイート: "Mozillaはユーザーからのデータ収集を必要最小限にとどめ、データを収集する場面ではユーザーに通知し、収集したデータはきちんと保護するという。 / “Lean Data Practices — Mozilla” https://t.co/R2QpFKzoGn"
@satoru_takeuchi
- satさんのツイート: "「ハードが悪い」って、言葉にすると簡単なんですが、サポートからしたら重い言葉です。直接ハードが犯人である証拠は掴みづらいので、だいたいは「ソフトではありえない」という方法で証明する必要があります。これがかなりつらい"
- satさんのツイート: "さらにハード屋さんに通じる言葉(たとえば論理CPU番号でなくLAPIC ID、とか)でボールを渡さなきゃいけない、とか。その後ハード交換しても再発したら交換したハードの原価と工賃をドブに捨てることになりますし、「おい、話が違うやんけ」となって泥沼"
- satさんのツイート: "体感ではカーネルパニックの殆どはソフト(カーネル)バグで説明付きましたね。メモリを含む「ソフトではありえない。これはハードだな」ってケースはかなり珍しい"
@jeffi7
- Taisuke 'Jeff' Inoueさんのツイート: "これが組み込みになると「ごめん、ハードやったわ、リメーク、リメーク。あ、ワークアラウンドこれね。」ってのがそこそこの頻度であるので(ry… "
- Taisuke 'Jeff' Inoueさんのツイート: "スマホとか競争が激しくて先を争って新しいハードを積むやつは、チップセットもボードも、従ってBSPやドライバも、ほんでOSもみーんな新規だったりするので、枯れてるのはカーネルくらい。低レベルがおかしいってなったら、ハード屋とソフト屋ががーっと集まって一緒にデバッグしてましたね。… https://t.co/PsrMiMaTgX"
@d_toybox
- sanonosa(インフラエンジニア)さんのツイート: "経験的に、OSのブルースクリーンやカーネルパニックはメモリ故障起因が多い。CPU使用率いきなり100%継続はストレージまわり起因。NIC link upがいきなり1Gbpsから10Mbpsとかに落ちるのはLANケーブル不良起因。この手の話しをうまく本に収めたいけどうまく書けなくてつらい。"
- なかのん&マジックさんのツイート: "私の経験では、BSODはドライバのバグも多い。"
- なかのん&マジックさんのツイート: "クラッシュしてる理由は納得だけど、nsIFrameのアドレスが全ビット1になってるの、どういう状況なんだっけ。 / [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report https://t.co/O2BygMnkGZ"
- [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report - Report ID: 1890d652-b339-4bf5-bfa9-b44560190605
- Makoto Kato ︎︎さんのツイート: "ハードウェアエラーによるビット化けかUse After Freeかと… "
- なかのん&マジックさんのツイート: "確かnsIFrameのインスタンスはPresShellが用意してる広大なエリア上に確保されるんで、delete時にわざわざビット立ててるかもしれないんですけど、そのコードをまだ発見していないんですよね(セキュリティのために元データを消してしまう話があったような)。… https://t.co/eClb9YWEoL"
@mhiramat
- まさみさんは語りたいさんのツイート: "うッ・・・新人の時に最初に担当したカーネルロックアップ(しかもしばらくしたら復帰する)が、どうやって調べても当時最新技術だったHTが絡んでいたのではないかというトラウマが。(タイミングよく全スレッドでSpinlock取り合うと、関係ないロック同士でも動作がめちゃくちゃ遅くなる)"
- まさみさんは語りたいさんのツイート: "まあ、あんなにハードウェア由来の問題だったのはあとIA64サーバで起きたロックアップ問題ぐらいだし、初物のハードウェアは老舗であっても問題が多いっていうことですね。"
- 障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | 開発手法・プロジェクト管理 | POSTD
- Go言語のトラブルシューティング機能 // Speaker Deck
- エラーレポートツール - LibreOffice Help
- 暗号屋から見たEメールの死について(EFAIL解説) - そんなことはさておいて
- Webシステムへのアクセス集中時に処理要求を待ち行列で管理するWebアクセス制御システム「WebLobby」を発売|日立ソリューションズ((旧)日立システムアンドサービス)
- iOS13にバグが多い理由、元Appleのソフトウェア技術者が語る - iPhone Mania
- Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記
- Linux 版の Sysinternals ProcDump を試す (2) - hibomaの日記
- Windows の予期しない再起動が発生した原因について | Microsoft Docs
- イベント ID 41 に関する高度なトラブルシューティング-"システムは、最初に正常に起動していない状態で再起動しました" | Microsoft Docs
- メモリダンプの模様とはどのようなものなのか(入門編) - 覚書
- 第673回 カーネルのクラッシュ情報を取得する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第674回 カーネルのクラッシュ情報を解析する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- SODA NoriyukiさんはTwitterを使っています 「BSD系等ではまだ「ps -M /dev/mem」でカーネルメモリを直接読んで動いたり。 残ってる理由は-Mでkernel crash dump ファイルを指定して postmortem debug する用途がまだあるから。 あとBSDでは/procファイルシステムは必須じゃないので、psのデフォルトではsysctl(2)でプロセス情報を取得します。」 / Twitter
- Apport ~Ubuntu のコアダンプ作成動作~ - VA Linux エンジニアブログ
SEH
MS
例外処理 (x64)
- 例外処理 (x64)
例外処理とデバッガー サポートのためのアンワインド データ
- 例外処理とデバッガー サポートのためのアンワインド データ
- 構造体 RUNTIME_FUNCTION
- 構造体 UNWIND_INFO
- 構造体 UNWIND_CODE
- チェーン アンワインド情報の構造
- アンワインド プロシージャ
- 言語固有のハンドラー
MASM のアンワインド ヘルパー
- MASM のアンワインド ヘルパー
- 生の擬似演算
- MASM マクロ
- スタック割り当て
- 動的なパラメーター スタック領域の構成
- 関数の型
- malloc アライメント
- alloca
- C でのアンワインド データの定義
- Visual C++ での例外処理
- C++ 例外処理
- 構造化例外処理 (C/C++)
- Structured Exception Handling Functions (Windows)
- Structured Exception Handling Structures (Windows)
- RtlUnwindEx function (Windows)
- Masaru IritaniさんはTwitterを使っています: 「今日は同僚の方に Stowed Exception について教えてもらいました。記録されたときにはもう居ない、幽霊のような例外ですね。運が良ければ手掛かりが掴めるかも、と…… https://t.co/mQ5hmLZ8KL」 / Twitter
- Stowed Exception C000027B | Inside Show | Channel 9
- __C_specific_handler 関数 (Wdm) - Win32 apps | Microsoft Docs
- Structured Exception Handling (C/C++) | Microsoft Docs
x64
Vectored Exception Handling
- Vectored Exception Handling (Windows)
- Using a Vectored Exception Handler (Windows)
- Windows ベクトル化例外処理 (ベクタ例外処理, VEH) - Web/DB プログラミング徹底解説
- GCとか継続とか例外処理とか | 日々の反省1
- W64.Shruggle.1318 | シマンテック 日本
- Exploring the x64
- www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
- 16.2. win64 Structured Exception Handling
- X64 の TrapFrame は信用できない? - Beyond the Basics - Windows Debugging & Troubleshooting Blog - Site Home - TechNet Blogs
- japanese.sugawara-systems.com/systemverilog/movement_to64.htm
- X64 Deep Dive - moon-walker's tech blog
- Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
- Makoto Kato ︎︎さんのツイート: "dwarfいらず"
- 構造化例外処理の仕組みの解説 - FFRIエンジニアブログ
x86
SEHOP・EMET
- Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – Security Research & Defense
- SEHOP per-process opt-in support in Windows 7 – Security Research & Defense
- SEH_Overwrite.pdf
- EMETReport.pdf
- Application Compatibility Database - Google 検索
- www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~番外編SEHOP~ « 他人の空似
- EMET 4.0/4.1のSEHOPおかしくね? - Togetter
- Nothing but Programming: SEH and SEHOP 現在の疑問
- SEH and SEHOP 現在の疑問 とりあえず解決? | JugglerShu.Net
- WindowsでEMETを回避するシェルコードを書いてみる - ももいろテクノロジー
- Microsoft、脆弱性緩和ツール「EMET」の開発を終了 - 窓の杜
- EMET の新しいバージョン V.2.1 をリリースしました! – 日本のセキュリティチーム
- EMET は Windows 10 Defender Exploitation Guard へ統合されます – 日本のセキュリティチーム
- EMET II のさらに先へ – Windows Defender Exploit Guard – 日本のセキュリティチーム
- Enhanced Mitigation Experience Toolkit - Wikipedia
- How to enable Structured Exception Handling Overwrite Protection (SEHOP) in Windows operating systems
- Bypassing SEHOP
- Bypassing SEHOP
- /SAFESEH (安全な例外ハンドラーがあるイメージ)
- C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション - Glamenv-Septzen.net
- 15.2. win32: Safe Structured Exception Handling
- Nothing But Programming - SEH
- A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997
C++
C 関数を通過する例外
- herumiさんのツイート: "yupo5656さんの記事は大昔読んだことあります。 でも何年か前に試したときは動くようになってました。 https://t.co/dlq1b8gKsS 今試したらyupo5656さんのコードも落ちないようです(gcc-7, clang-6.0)。 https://t.co/XH6ke51Hnr"
- misc/cpp/throw_in_c at master · herumi/misc
- yohさんのツイート: "#nakamecpp で @herumi さんが言及してたC関数を例外通過する件 https://t.co/htNaOeUAVO https://t.co/pNgUzZwXUe GCCでも明示的に-funwind-tables指定が要るような気はするけどどうだろう"
- herumiさんのツイート: "Visual Studio 2017だと/EHaオプションでCの関数内で呼んだC++関数のthrowをcatchできました。"
- herumiさんのツイート: "どの程度のcallbackを想定されていらっしゃるのかわかりませんが、 https://t.co/dlq1b8gKsS のu.cpp, v.c, w.cpp程度のcallbackは動きました。 https://t.co/mKqYU5BETm"
- にゃははー仙人さんのツイート: "動きましたというのはabortせずにということですよね?考えてたのはまさにextern "C"でリンクするのではなく、関数ポインタを渡すようなものです… "
Twitter
- Fadisさんのツイート: "C言語のerrnoはその場で見なければ失敗が無視されるから拾っていなければ直ちに不具合だけど、C++の例外をその場で拾うべきかどうかは、その場で起こった問題からの回復が可能かどうかに依る。bad_allocする状況は多くの場合回復不能な状況だからそのままabortするしかないケースは少なくない"
- Fadisさんのツイート: "あと、bad_allocを拾って標準出力にデバッグ情報を書こうとするマンは、メモリが全く確保できない状況でそれを行うと何が起こるかについて少し考えてみてほしい。bad_allocが飛んできた時にできることは本当に少ない"
- Ryou Ezoeさんのツイート: "メモリ確保失敗したときにできるのは実質terminate()だけなんだからterminateしようぜ、メモリ解放とかはアロケーターに仕込んどくべきだろとウォルターブライトが言っていたな。… "
- オスツ🍣さんのツイート: "うおおおお、2 週間ぐらい超悩んだ、なぜか C++ の例外が AArch64 で GCC 5/6 では動かなくて、7 では動くという問題。最終的に __builtin_eh_return が異常挙動という所まで追い詰めで、GCC のソース差分見て、7 では omit-frame-pointer 時でも強制的に fp を埋め込むというハックが入ったことを発見"
- Ryou Ezoeさんのツイート: "例外を一部の場合にゼロオーバーヘッドにすりゃお前ら使うだろという提案。 https://t.co/2nH5hQlHyd"
- p0709r1.pdf
- Ryou Ezoeさんのツイート: "例外がゼロオーバーヘッドの原則を満たすようになれば無効化されないしみんな使うだろうという考えのもと、特別な整数型ならばreturnで戻してif文で比較するのと同じパフォーマンス特性にしてしまおうという提案。"
- C++ 例外処理と構造化例外処理 (1) - Web/DB プログラミング徹底解説
- C++ 例外処理と構造化例外処理 (2) - Web/DB プログラミング徹底解説
- VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)
- How a C++ compiler implements exception handling - CodeProject
- LLVMで例外を実装するには - 近&況
- Exception_basic_struct
- 本の虫: C++に提案されている静的例外
Wikipedia
- Microsoft-specific exception handling mechanisms - Wikipedia
- 例外 - Wikipedia
- コールスタック - Wikipedia
- 例外処理 - Wikipedia
Twitter
- 渋川よしきさんのツイート: "これ、昔から超思ってた。例外、存在自体が矛盾してるしてる。 https://t.co/9CqtCKFZWh"
- 渋川よしきさんのツイート: "例外を「設計」した段階でそれは「例外」ではなく「想定の範囲内」になってしまうという論理的矛盾。"
- 渋川よしきさんのツイート: "例外処理の説明の時に、だいたい「例外==想定外」とか書かれていることが多いのが良くない。正常ケース、非正常ケースなら分かる。"
- 渋川よしきさんのツイート: "例外について考えていたこと、例外のパラドックスという名前がついていた。 https://t.co/6ocDMQZx5f"
- Fadisさんのツイート: "例外はその例外からの復帰が可能なレイヤーでcatchするんだよ。握り潰して失敗をなかった事にされても困るし、起こった問題から復帰させるべきレイヤーを超えて中の実装を知らないレイヤーに例外が届いても困る。本当に誰の手にもおえない例外が飛んだ場合は、そのままabortさせるのが多くの場合正しい"
- Fadisさんのツイート: "あと正常系で例外が飛ぶような作りにしてるとgdbを使う時に発狂するから例外は文字通り例外的な状況で飛ぶようにしておいた方がいい"
- Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、VC6だとSEGV系もtry/catch出来ていた記憶があるのだが、少なくともVS2017では__try/__exceptを使ったWin32構造化例外を明示指定しないとキャッチできない様子。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SEGVが例外の枠組みで処理できるのは、一部状況ではとても助かる。 gccの場合、-fnon-call-exceptions で同様の動作が可能。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、try/catch + -fnon-call-exceptionsの場合、throw "sigsegv" 等を記述したsigfuncをSEGV等に紐づけておく必要あり。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017ではコンパイルオプションの /EHa、GUIだと「C++の例外を有効にする」を「はい - SEHの例外あり」を選べば良かったらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「一部状況」というのは、こちらの手出しできない、標準モジュール内SEGVに暫定対処したいとき。 (例えば、INetFwProductというOS標準COMモジュールの呼び出しが、稀な環境で内部SEGV発生とか)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2005以降だったか、スタック破壊を検出した場合、CRT(の __raise_securityfailure関数)で、登録ハンドラを意図的にキャンセル(例外ハンドラをNULLに再セット)して強制終了させている話ですね。… "
- yoh2さんのツイート: "WindowsはスタックオーバーフローでC++の例外と統合された構造化例外すっ飛ばしたり、MFCのCStringがprintf系の %s に渡されても動いたり、thisがnullptrで非virtualなメンバ関数呼び出せたりとなかなかやりたい放題ですよねw"
- yoh2さんのツイート: "Windowsのスタックオーバーフローで例外すっ飛ぶってやつから、スタックを消費する関数は決してnoexceptを付けられないんじゃないかという疑問もわきそうだけど、これに関する私の見解は以下の通り。 その例外を考慮したい: noexcept は諦めてね 考慮しない: SO時は未定義と覚悟してnoexcept付けよう"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これは g++ 等でも同じではないのかしらん? > thisがnullptrで非virtualなメンバ関数呼び出せたり"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、__raise_securityfailure(staticリンク)の一部に動的にnopを入れて、キャンセル動作を抑止している。(なお独自ハンドラはMiniDumpを吐いて終了するもの) https://t.co/nBDLF22Egp"
- FastCopy/tmisc.cpp at 72655443c775af09a69cc2fd2aa6a602b4d987c9 · shirouzu/FastCopy
- C#機能: Deferredエラー処理
- 構造化例外処理と UnhandledExceptionFilter - Web/DB プログラミング徹底解説
- 構造化例外処理 ~ 例外情報の取得 - Web/DB プログラミング徹底解説
- Super Technique 講座~longjmpと例外
- Center CLR Try!開発 #2 – kekyoの丼
- Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)
- Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
- SHIROUZU Personal Log(2016-10-18)
- won't fix: llvmとrustにおけるWindows/aarch64のサポート
- スタックオーバーフローのハンドリング (Stack Overflow Handling)
- 構造化例外のフィルタ処理(C++) - RAD Studio
- .NET非同期処理(async-await)と例外の制御 – kekyoの丼
- Exception Handling in LLVM — LLVM 12 documentation
- unwind-protect - Google 検索
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2016年にUnityで発見された超難解な非同期バグ。他のどのスレッドも書き込んでいないはずのスタックに異常な値が書き込まれた。犯人はNTカーネル経由のselect()関数による割り込みと、それにともなう例外+スタック巻き戻しによるものだった。解決するのに丸5日間を要した。 https://t.co/mHlAo1wtoh」 / Twitter
- Debugging memory corruption: who the hell writes “2” into my stack?! | Unity Blog
- 7594591200220899443さんはTwitterを使っています 「https://t.co/llp4igzqlo 今時C++例外なんて時代遅れですよねーみたいな話。ABIがいけてないからunwindがマルチスレッドにできないとかへーそうなんだという感じ」 / Twitter
- P2544R0: C++ exceptions are becoming more and more problematic
- でちまるさん(実際かわいい)さんはTwitterを使っています 「C++例外は「自爆するしかねえ」ってときに遺言を残すために使うようであって,よその言語みたいにセーフlongjmpとして使おうとするのは誤りやろがい,という定番の話が久々に登場」 / Twitter
- FadisさんはTwitterを使っています 「正常系のループの中でジャンプ目的で飛んでる例外をgdbが拾って発狂する経験を経て人は例外を正しく使おうという気持ちを身につける」 / Twitter
- 構造化例外処理 マルチスレッド - Google 検索
MS
x86
- _alldiv ルーチン - Win32 apps | Microsoft Docs
- _aulldiv ルーチン - Win32 apps | Microsoft Docs
- _allmul ルーチン - Win32 apps | Microsoft Docs
- Winternl - Win32 apps | Microsoft Docs
- Calling Internal APIs - Win32 apps | Microsoft Docs
- Getting the Active Console Session ID - Win32 apps | Microsoft Docs
- Getting the Session ID of the Current Process - Win32 apps | Microsoft Docs
- TlsGetValue function (Windows)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(なお、他のモダン言語から見れば「1つの戻り値」で、正常値とエラーを混在ゆえの問題ではある)」 / Twitter
- TlsGetValue function (processthreadsapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「TlsGetValue API は戻り値が 0 の場合だけ、GetLastError(UNIXの errno相当) も 0 に書き換えられるので注意が必要。 (正しい値0なのか、エラーなのかの識別用) https://t.co/LFg77TNfm8」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「TlsGetValue API は戻り値が 0 の場合だけ」と書いたが、TlsGetValueの成功時は常に GetLastError() == 0 に書き換えられる、が正しかった。」 / Twitter
- GetModuleHandleExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
- LoadLibraryExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
- GetProcAddress function (libloaderapi.h) - Win32 apps | Microsoft Docs
- FreeLibrary function (libloaderapi.h) - Win32 apps | Microsoft Docs
- x64 でのプロローグとエピローグ | Microsoft Docs
- _chkstk ルーチン - Win32 apps | Microsoft Docs
- Windows 7 DLL File Information - ntdll.dll
- その他Low-Levelクライアント サポート - Win32 apps | Microsoft Docs
- スタック オーバーフローのデバッグ - Windows drivers | Microsoft Docs
- IEnumerable Visualizer
- IEnumerable Debugger Visualizer Improvements - Visual Studio Blog
- C++ オブジェクトのカスタム ビューを作成する - Visual Studio (Windows) | Microsoft Learn
Thread Environment Block
- Win32 Thread Information Block - Wikipedia
- svchost.exe - Wikipedia
- TEB (winternl.h) - Win32 apps | Microsoft Docs
- Thread Environment Block (Debugging Notes) - Win32 apps | Microsoft Docs
- PEB / TEB の覚書 - Windows 2000 Blog
- Win32デバッグ(12)・・・SEH(Structured Exception Handling): vanillaの日記
- ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
- WinDbg - マイクロソフト系技術情報 Wiki
- デバッグメニュー デバッガ
Process Environment Block
- PEB (winternl.h) - Win32 apps | Microsoft Docs
- PEB_LDR_DATA (winternl.h) - Win32 apps | Microsoft Docs
- Process Environment Block - Wikipedia
- 他プロセスのメモリを読む(C++編) - # riosu's memo
- Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
- スライド 1 - MR201312_History and Current State of Heap Exploit_JPN.pdf
- デバッガ検出技術:PEB.BeingDebuggedFlag:IsDebuggerPresent() - Log.i53
- アンチアンチデバッギング #LT駆動
リバースエンジニアリング入門
- シェルコードから始めるマルウェア解析 (1/2):リバースエンジニアリング入門(1) - @IT
- コツ? 開発者の立場になって考えることさ! (1/2):リバースエンジニアリング入門(2) - @IT
- シェルコード解析に必携の「5つ道具」 (1/3):リバースエンジニアリング入門(3) - @IT
- Undocumentedなデータ構造体を知る (1/3):リバースエンジニアリング入門(4) - @IT
- Undocumentedなデータ構造体を知る (2/3):リバースエンジニアリング入門(4) - @IT
- Undocumentedなデータ構造体を知る (3/3):リバースエンジニアリング入門(4) - @IT
- PEフォーマットを解釈せよ! (1/3):リバースエンジニアリング入門(5) - @IT
- PEフォーマットを解釈せよ! (2/3):リバースエンジニアリング入門(5) - @IT
- PEフォーマットを解釈せよ! (3/3):リバースエンジニアリング入門(5) - @IT
- API名のハッシュ化テクニックを理解せよ! (1/3):リバースエンジニアリング入門(6) - @IT
- API名のハッシュ化テクニックを理解せよ! (2/3):リバースエンジニアリング入門(6) - @IT
- API名のハッシュ化テクニックを理解せよ! (3/3):リバースエンジニアリング入門(6) - @IT
- SQL Slammerのコードを解析せよ! (1/3):リバースエンジニアリング入門(最終回) - @IT
ASCII.jp
- ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
- ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
Twitter
- Kazuho OkuさんはTwitterを使っています 「Userspace DTrace だったり、一部命令を書き換えて動的にログ出力・解析するのが流行だと思ってる(自分がやってるだけ、とも言う)」 / Twitter
- 渋川よしきさんはTwitterを使っています 「printデバッグを「低レベルなデバッグ手法」みたいに扱うのはやめた方が良いというか、クラウドとか分散システムとかが増えてきて、適切なprintデバッグ手法の確立を進めた方が良い気がしている(GCP Cloud Debuggerとか、VSCodeのリモート開発みたいな変態技術はおいといて)」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「printfデバッグができるのは深い理解があってこそなんだよな。ビジュアルデバッガーは大量のシンプルなバグを直すには向くけど、そのせいで浅い理解に留まる傾向にあるように見える。もっともバグの大多数はシンプルなやつなのでそれで良いとも言えるけど。 まれにある複雑なのに手が出なくなる。」 / Twitter
- 渋川よしきさんはTwitterを使っています 「デバッグだけでなく、どの情報を出すかの選択とか、本番環境のログ設計にもシームレスに繋がるようなprintデバッグ道みたいなのがある気がしてる。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WindowsでAPIがないから実装できない機能をhttps://t.co/MAHFqQsz5cに登録したらWindowsでAPI実装してくれるか試したくて、登録してみた Issue 1270175: enterkeyhint should be supported in Widnows virtual keyboard https://t.co/Io4GbBZZOM」 / Twitter
- Issues - chromium
- 1270175 - enterkeyhint should be supported in Widnows virtual keyboard - chromium
- LIST_ENTRY の仕組みと利用方法 - Web/DB プログラミング徹底解説
- LIST_ENTRY に関するデバッグコマンド - Web/DB プログラミング徹底解説
- Windows の内部動作 - Web/DB プログラミング徹底解説
- Reflective DLL Injection | すなのかたまり
- msmania/procjack at 1.0
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Windowsで電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
- 黒翼猫のコンピュータ日記 2nd Edition:2017年07月21日 - Windows 2000 Blog
- CTF writeup 2|岸辺の旅
- SHIROUZU Personal Log(2016-11-01)
- GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
- kobaさんはTwitterを使っています 「@kotatsu_mi そんなとき -Og はいかがですか。デバッガに支障が出ない範囲で最適化するというものです。 gccのドキュメントではここ。clangでも同様のオプションがあるはずです。 https://t.co/dzahH8dQoE」 / Twitter
- Optimize Options (Using the GNU Compiler Collection (GCC))
- ReadApiSetSchema更新 « 他人の空似
- VirtualDLLの仕組み « 他人の空似
- daem0nc0reさんはTwitterを使っています 「惜しまれつつ開発を終了したdnSpyですが、やはり無いとリバースエンジニアリングでは困る人が多いからか、意欲ある技術者が開発を引き取ったようです。 やったね! https://t.co/NPJaxHNagK」 / Twitter
- dnSpyEx/dnSpy: Revival of the well known .NET debugger and assembly editor, dnSpy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「OneCore.lib はこれ1つリンクすれば、どのAPIを使っても、追加lib指定しなくてよいライブラリと。 実用的には Win10以降用アプリで使うのが良さそうかな。 (包括的ライブラリの原文は umbrella library) https://t.co/l92O8RimmZ https://t.co/FqQn4gJX54」 / Twitter
- Windows の包括的ライブラリ - Win32 apps | Microsoft Docs
- OneCore.lib/MinCore.libの紹介 – 他人の空似
証明書
その他
有限体など
- 中日新聞:自動車工場のガロア体 QRコードはどう動くか
- かずみん☆めい。さんはTwitterを使っています: 「@rui314 コンピュータサイエンスの基本は数学. 整数論, 素数論, 離散数学, 有限体(ガロア体), 離散対数, 楕円関数, 計算量, シャノン定理, 乱数論, 待行列, 統計, 通信路モデル, 確率的アルゴリズム, アルゴリズム停止性.→基礎がないと誤り訂正符号/DCT圧縮/共通鍵暗号系/公開鍵暗号系/CDMA/の本質は理解不能」 / Twitter
- シンドローム多項式 - Google 検索
- リードソロモン符号 - Google 検索
- 弱い公開鍵ペア - Google 検索
- crt.sh | Certificate Search
- 情報セキュリティ入門 - PKI(前編)---公開鍵を安全にやり取りする:ITpro
- インターネット10分講座:RFC5952 -IPv6アドレスの推奨表記 - JPNIC
- DigiCert サーバ証明書技術情報
- CA/ブラウザフォーラムで可決された「Baseline Requirements ver1.0」の和訳版公開およびGMOグローバルサイン社の対応について - GMOインターネット株式会社
- WebTrust(ウェブトラスト)について | SSL・電子証明書ならGMOグローバルサイン
- opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
- Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み:一般記事|gihyo.jp … 技術評論社
- Symantec→DigiCertでSSL/TLS証明書はどうなる? 日本国内にも認証局構築へ、IoT機器市場も見据え - INTERNET Watch
- パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE
- Usage Statistics and Market Share of SSL Certificate Authorities for Websites, August 2017
- 23,000 HTTPS certs will be axed in next 24 hours after private keys leak • The Register
- www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2314-Ja.txt
- Web Crypto API - Web API | MDN
- クライアント証明書スイッチャーを追加した「Microsoft Edge 103」が正式版に - 窓の杜
一定の時間で処理を完了させる手法
- BearSSL - Constant-Time Crypto
- rust-timing-shield: comprehensive timing leak protection for Rust
- Constant time arithmetics · mratsim/constantine Wiki
- GCCのインラインアセンブラの構文について調査 - FPGA開発日記
OpenSSL
窓の杜
- 「OpenSSL 3.0.0」が公開 ~ライセンスは「Apache License 2.0」に - 窓の杜
- 「OpenSSL 3.0.0」の設計概要のドラフトが公開 - 窓の杜
- 「OpenSSL」のバージョンの付け方が変更 ~ライセンスは“Apache License 2.0”へ - 窓の杜
- 脆弱性を修正した「OpenSSL 3.0.7」が予告通り公開 ~ただし、深刻度評価は引き下げ - 窓の杜
OSDN
- Linux FoundationがCore Infrastructure Initiativeの下、OpenSSLのフルタイム開発者2人を支援 | OSDN Magazine
- Linux Foundationが富士通、Google、Microsoftらとオープンソースプロジェクト向け基金を設立、まずはOpenSSLを支援へ | OSDN Magazine
- セキュリティ警報:多数のシステムに影響を及ぼすDebian OpenSSLの不具合が発覚 | OSDN Magazine
- TLS 1.3をサポートした「OpenSSL 1.1.1」リリース | OSDN Magazine
- 「OpenSSL 3.0」が公開、ライセンスはApache License 2に変更 | OSDN Magazine
Wikipedia
- OpenSSL - Wikipedia
- OpenSSL - Wikipedia
- Comparison of TLS implementations - Wikipedia, the free encyclopedia
- /index.html
- OpenSSL 3.0 Has Been Released! - OpenSSL Blog
- OpenSSL
- OpenSSL BIGNUM
- OpenSSL ライブラリを使ったハッシュ生成、暗号化(RSA, AES)、復号処理(RSA, AES)、署名生成(RSA)、署名検証(RSA) - Qiita
- OpenSSLをSSL/TLSクライアントとして使ってみる | Siguniang's Blog
- Kazuho's Weblog: SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)
- Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
- h2o/neverbleed: privilege separation engine for OpenSSL / LibreSSL
- Shigeki Ohtsuさんのツイート: "OpenSSLを始め幅広い暗号ライブラリのECDSA実装に対するサイドチャネル攻撃(CVE-2018-0495)が公開されました。メモリアクセスの測定と格子アルゴリズムを組み合わせ同一ホスト上のVMから秘密鍵を取得できるとのこと。 https://t.co/CZAy0bgL6Z"
- Technical Advisory: "ROHNP"- Key Extraction Side Channel in Multiple Crypto Libraries
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl の AES-NI 実装は Perlコードからasm(.S)を吐くような構造らしい。へぇ。 https://t.co/OeNXKbTVMu」 / Twitter
- openssl/crypto/aes/asm at master · openssl/openssl
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、xxhash/xxh3 を行うコマンドラインツールも用意しよう…openssl は(暗号学的hashでないため)xxhash系はリストに無いのだよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl のアセンブラって、Perl で書かれてコードを吐く形なのだよな。 https://t.co/EDnhw52cQI」 / Twitter
- openssl/sha256-mb-x86_64.pl at master · openssl/openssl
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sha256rnds2 で Illegal Instrucion …この命令は 10世代の Ice Lake からだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K上で Win32 CNG と OpenSSL で、SHA256が2倍違った。 (CNG は AES なら AES-NI 使ってるけど、SHA256 は SSE2系すら使わずに普通のC実装の速度のままというオチ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちなみに、openssl からもリンクされているビルド済みライブラリはどれも SSE系を使ってくれない。自前ビルドしないとダメだった…まさかの Perl を入れる羽目に)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、「まさかの Perl を入れる羽目に」というのは、openssl のビルドには Perl必須という話。 (asm部分が .pl で書かれていて、Perl で .asm を吐き出す形。さらに configure も Perl製)」 / Twitter
- OpenSSL 3.0.0にアプリケーションの不正な動作につながる問題 | TECH+
- FadisさんはTwitterを使っています 「CVE-2022-0778 : OpenSSLの関数BN_mod_sqrtの実装に問題があり、この関数を使う楕円曲線暗号の証明書の検証に細工された証明書が渡ると関数が返ってこなくなる。証明書は大抵の利用方法でリモートから与えられる為、リモートからOpenSSLを使うソフトウェアをハングさせられる https://t.co/l8KxRFSHsb」 / Twitter
- FadisさんはTwitterを使っています 「現在セキュリティフィックスが継続されているすべてのOpenSSL(1.0.2, 1.1.1, 3.0)が対象で、それぞれ1.0.2zd、1.1.1n、3.0.2以上に上げる事で修正される。OpenSSL 1.0.2zdについては既に通常のLTSが終了している為Premium Level Supportを受けている顧客に対してのみ修正が提供される」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「openssl speed -evp aes-128-gcm -bytes 16384 の結果みると、1.32 bytes / clock。Zen+ が 1.31 bytes / clock だったからずっと変化なし。これが 256bit 命令でどれくらい速くなるか。 ちなみに Intel (kaby lake) だと 1.55 bytes / clock (128bit命令)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「AMD 上での 128bit 命令でも、うちで作ってる fusion なら openssl よりも速くて 1.49 bytes / clock くらい出ます #ドヤァ」 / Twitter
- OpenSSLで史上2度目の「致命的」レベルの脆弱性が発見される、2022年11月1日夜間に修正版がリリースされるため即更新を - GIGAZINE
- 【セキュリティ ニュース】「OpenSSL」にセキュリティアップデート - 脆弱性の評価は下方修正(1ページ目 / 全1ページ):Security NEXT
- OpenSSL、緊急レベルのセキュリティ脆弱性に関しまして | GMOグローバルサインカレッジ
- 【セキュリティ ニュース】事前予告で緊張走った「OpenSSL」脆弱性、各社が影響を報告 - 対象製品リストも(1ページ目 / 全2ページ):Security NEXT
- OpenSSL 3.0 ~ 3.0.6 のリスク (CVE-2022-3786 および CVE-2202-3602) に関する認識とガイダンス – Microsoft Security Response Center
- OpenSSLの「重大な」脆弱性を徹底解説 - Qiita
LibreSSL
OSDN
- 「Heartbleed」セキュリティ問題を受け、OpenBSDがOpenSSLフォークの「LibreSSL」を開発 | OSDN Magazine
- OpenBSD、OpenSSLからフォークした「LibreSSL 2.0」のPortable版をリリース | OSDN Magazine
- SSLv3やSHA-0サポートを削除した「LibreSSL 2.3」リリース | OSDN Magazine
- TLS/SSLのオープンソース実装「LibreSSL 2.4」リリース | OSDN Magazine
- 開発版LibreSSLの新バージョン「LibreSSL 2.5」リリース、iOSを新たにサポート | OSDN Magazine
Qiita
- LibreSSL の意義 - Qiita
- LibreSSL の現在(2018年2月時点) - Qiita
- libtls で TLS 通信プログラミング(クライアント編) - Qiita
- LibreSSL を Visual Studio でビルドする - Qiita
Wikipedia
- LibreSSL - Wikipedia
- LibreSSL - Wikipedia, the free encyclopedia
- libressl-portable/portable: LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.
- Index of /pub/OpenBSD/LibreSSL/
- libressl-portable/openbsd: Source code pulled from OpenBSD for LibreSSL - this includes most of the library and supporting code. The place to contribute to this code is via the OpenBSD CVS tree.
- 第55回 LibreSSL 2.4.0登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- OpenSSLに代わるLibreSSL, 最初の30日間
- 「LibreSSL 2.6.4」リリース | Think IT(シンクイット)
- LibreSSL ‐ 通信用語の基礎知識
ルート証明書
Let's Encrypt
- Let's Encryptの証明書の期限切れにより一部のMacやAndroidがWebサイトに接続できない問題が発生中 - ソフトアンテナブログ
- YurikaさんはTwitterを使っています 「先日のLet's EncryptのCA証明書有効期限切れで、openSSLのエラーが出た話。 物語が面白すぎる でもこれは有効期限を超えたクロスルートという掟破りのために起きた? https://t.co/lojoqfKHS4」 / Twitter
- Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
- YurikaさんはTwitterを使っています 「単に旧Androidはルートの有効期限チェックしない動作を取ってたけどそれ以外は実装次第だからエラーになってもおかしくないってことに終結なのかな」 / Twitter
- YurikaさんはTwitterを使っています 「そもそも、証文は(これまでは)本人いきてる間だけで、死んでも使えるってなかった。 しかし死後も使える、が、前提とならば…? 話がややこしすぎて何が問題なのか難しいな…」 / Twitter
- Let's EncryptのDST Root X3ルート証明書の期限切れとOpenSSLの影響についていろいろ試してみた
Mozilla
Mozilla
Mozilla Security Blog
- January 2018 CA Communication | Mozilla Security Blog
- Distrust of Symantec TLS Certificates | Mozilla Security Blog
- Root Store Policy Updated | Mozilla Security Blog
- Update on the Distrust of Symantec TLS Certificates | Mozilla Security Blog
- 【翻訳】CA Certificate Policy バージョン 2.4 リリース - Mozilla Security Blog 日本語版
- September 2018 CA Communication | Mozilla Security Blog
- Why Does Mozilla Maintain Our Own Root Certificate Store? | Mozilla Security Blog
- Mozilla’s Common CA Database (CCADB) promotes Transparency and Collaboration | Mozilla Security Blog
MozillaWiki
- CA:Information checklist - MozillaWiki
- CA/BR Audit Guidance - MozillaWiki
- NSS:Root certs - MozillaWiki
- CA/Certificate Change Requests - MozillaWiki
- Network Security Services | MDN
- mozilla mozilla/security/nss/lib/ckfw/builtins/certdata.txt
- CA Certificate Policy バージョン 2.4 リリース – mozilla-japan – Medium
- Let's Encrypt Root to be Trusted by Mozilla - Let's Encrypt - Free SSL/TLS Certificates
- Mozilla CA Policy 2.4 Published | Hacking for Christ
- Mozilla Root Store Policy — Mozilla
- pkipolicy/policy.md at 2.4 · mozilla/pkipolicy
- Mozilla Root Store Policy — Mozilla
FreeBSD
- FreeBSDのSSLのルート証明書のパッケージ ca_root_nss
- /pub/FreeBSD/ports/amd64/packages-8.4-release/security/ のインデックス
Japan GPKI
- 政府認証基盤(GPKI)のホームページ
- 地方公共団体組織認証基盤(LGPKI)
- 高木浩光@自宅の日記 - 民間ブランドが行政機関には無益なのならVeriSign独占化を避けるべき, LGPKI Application CAに将来はあるのか
- Rockridgeさんのツイート: "Firefox 54で政府認証基盤(GPKI)のルート証明書は削除されたが、政府認証基盤アプリケーション認証局2ルート証明書は現在も追加に向けた手続が進行中だ。参照:https://t.co/a9yqP3Hocz / “1268…” https://t.co/6AePdDrowg"
- Rockridgeさんのツイート: "Mozillaは、政府認証基盤アプリケーション認証局2ルート証明書を受け入れるかどうか審査中だが、終盤になって雲行きが怪しくなってきた。いったん要請を拒絶して、手続をやり直すべきとの意見が出てきている。 / “Japan GPK…” https://t.co/EwwapLY2Jo"
- Makoto Kato ︎︎さんのツイート: ""The Japanese Government PKI may submit a newly generated root and key-pair for inclusion, and this submission can be made using the existing bug" https://t.co/8wmmF2EaHa"
- Makoto Kato ︎︎さんのツイート: "新しいCA Root作れば通りそうではあるので、担当の方と予算次第ですかね。今後は"
- Shigeki Ohtsuさんのツイート: "GPKIは、やっぱりMozillaで却下かぁ。https://t.co/6FF31r6Pzk この返事が致命的だったような気がする。素直にlintエラーの証明書を直ちに全部revokeすると返事していれば状況変わったかもしれないのに。"
- Shigeki Ohtsuさんのツイート: "Japan GPKI Root Renewal Request https://t.co/JPTlbVx0Xc 5年前にルート証明書署名、4年前にアセスメント、色々問題有り2017年1月に修正完了。その間ずっと証明書を発行だけど規約不適合でまだ有効な証明書多数。いっその事最初からやり直しにすべき(今ここ)"
- Shigeki Ohtsuさんのツイート: "GPKI側から2017以前の証明書をrevokeさせるから判断変えてもらえるかと。さっさと失効させてから交渉したほうがいいのにと思うのは私だけ? https://t.co/NfupIEQTxM"
- Makoto Kato ︎︎さんのツイート: "LGPKIのルート証明書がRoot 4になってるのを今日知った。というか(もうかかわってないけど)CRYPTRECからの質問状で「Mozillaに申請中」って嘘の返答を言ってたような団体なので、LGPKIは信用してないけどね"
- Makoto Kato ︎︎さんのツイート: "CA Browser Forum的にはWebTrust for CAじゃなくて、WebTrust for BRがほぼ必須になるんだけど、for CAとってますって書いてる自体、ホントLGPKIは分かってない"
- Makoto Kato ︎︎さんのツイート: "bugzillaみればわかるとは思うけど、(今もめてる)GPKIでさえfor CAレベルからfor BRレベルにするのに1年以上かかったので、まぁね。。。"
- Makoto Kato ︎︎さんのツイート: "CAプログラムはどういう団体であっても平等であるべきだよねと。どこの会社のCAプログラムとは言わないけどね"
- Makoto Kato ︎︎さんのツイート: "MozillaのCAプログラム通らないってことはAndroidにGPKIのルートCAは入らないってことだからね。わかってない人おおそうだけど。Googleがポリシー変えれば別だけど"
- GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
- スラきちさんのツイート: "寝る前にGPKI@Mozillaのその後を見たが、「あなたCA要件4.9.1.1(9)満たせないって分かったから結論代わりません」と見事に蹴られてる。 該当要件は「4.9.1.1 CAは以下の状態になった証明書を24時間以内に失効させなければならない…(9)CP/CPS等に従わなくなった証明書」 行政庁で24時間は無理ゲー…?"
- dynamis (でゅなみす)さんのツイート: "GPKI終わったのか。 担当者が悪いと言うよりは認証局としての最低要件を満たせるだけの(英語力、セキュリティ意識、業界動向の理解及び権限を持つ)スタッフを確保できない運用計画と予算で立ち上げた計画側の責任でしょうね。 https://t.co/J48F8sYh3w"
- dynamis (でゅなみす)さんのツイート: "そう言えばHTTPサイトで証明書配ってるお笑い認証局も医療従事者向けに運用されてるな。 それに比べればGPKIはまだマシかも知れんが、今の日本のエンジニア軽視姿勢でまともな認証局運用できる日はこなさそうですね。"
- Makoto Kato ︎︎さんのツイート: "外野向けに見える部分で色々GPKIのこと書かれているのは色々読んだけど、まぁ自分が担当者だったとしたらみんなCAプログラムパスできる自信あるのかなぁと"
- Makoto Kato ︎︎さんのツイート: "個人的に言えば、担当者がというよりも予算ですね、あれの場合。なので担当者の問題というより政治の問題かと思う。特に国なので透明性が必要だからプロセスに時間もかかる"
- Makoto Kato ︎︎さんのツイート: "なので総務省はWoTとかIoTとかに予算割り振る前にe-GOVに対してちゃんと予算振り分けて欲しかったというのが、内情を知る人間としてのGPKI の総括ですね"
- Makoto Kato ︎︎さんのツイート: "行政管理局がもしまだやる気であれば、Application Root 3作って、WebTrust for BR通してって話になるし、また入札必要だろうからまぁ1年コースかと"
- Makoto Kato ︎︎さんのツイート: "https://t.co/Vzbdv3znvY 記者さんってなんでWindowsな視点しかないんだろ。Mobileの視点がないと見え方が違うと思うんだ"
- Firefoxが政府認証基盤のルート証明書を認めず、「ユーザーのセキュリティを害する」 | 日経 xTECH(クロステック)
- KIMATA RobertHisasiさんのツイート: "MozillaがGPKIを認めなかった件。調べれば調べるほど「Microsoftは認めんなよ」感が"
- Makoto Kato ︎︎さんのツイート: "GPKIについてみんな勘違いしているのは、昔 GPKI Application Root 1はちゃんとMozilla CA RootとしてApprovalされた (そのときの基準では)。その後SHA256なGPKI Application Root 2で置き換えるためにあのBugがあって、それがWontfixになったってこと"
- Makoto Kato ︎︎さんのツイート: "ここ数年、CAに関してはとんでもないインシデントが多かったために許可基準が非常に上がってる"
- Makoto Kato ︎︎さんのツイート: "MozillaのCA Policyのはバージョン上がるために基準が上がってってるんだけど、Microsoftは政府案件だといろいろ違うらしいってことがあるっぽくて、まぁ日本マイクロソフトの社長室かパブセクかはしらないけど、まぁ彼らが絡むとセキュアなんてないのではって思ってる"
- Rockridgeさんのツイート: "Mozillaは、米国時間の2018年2月27日、政府認証基盤(GPKI)アプリケーション認証局2ルート証明書を受け入れないことを決めた。参照:https://t.co/vwlvWwY553 / “870185 - Add Re…” https://t.co/PDYdOhA7OK"
- Makoto Kato ︎︎さんはTwitterを使っています 「GPKIはああだけど、LGPKIがどうにかならないのもだめ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ああいう、総務省なりいろんな省庁で持ってる (彼らも専門家でもない) 案件をデジタル庁へ移管して (or そもそも廃止) とかしてるとは思うけど、まぁ大変そうですね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「LGPKIはとある会議の回答で嘘返答してたくらいの組織だから、まぁ自分としてはなくすなり、デ庁へ移管すべきと思ってるけどね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「EVだってOVだって、設計思想は同意するのだけど、結局まともに運用されなかったから、もうWebブラウザとして必要性がなくなったわけで、GPKIも2000年だったらちゃんと立て直すべきだけど、2020年だったら、Let's Encryptでいいじゃんって思うだけ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「認証局が駄目になったのは、大概その監査をするはずの監査法人が適当な報告書だしてるだけだからじゃないのと感じてる。日本のGPKIも韓国のGPKIもそんな感じ。韓国の事例ひどいけど (他のドメインの証明書発行してて失効してなかった)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「認証局に関しては、昔JPNICでDavid W. Chadwick先生の講演聞いたときに、まぁ最終的にはGiant Tech Companyが強い権限持ってしまうのではと思ったけど、予想通りだなぁと https://t.co/xTdxheMp2Q」 / Twitter
- won't fix: David W. Chadwick先生のPKIの講演を聞いてきた
korea GPKI
- Makoto Kato ︎︎さんのツイート: "みなさん知らないかもしれないけど、お隣の韓国のGPKIもRejectされてるからな https://t.co/SP67i880hG https://t.co/2Wm1XvRxJr"
- Makoto Kato ︎︎さんのツイート: "韓国のGPKI、*.or.krを発行してたりして面白すぎなんですが、MSやChrome的にはなんのお咎めがないんですよねー https://t.co/mH0VpgmlZR"
Twitter
- Rockridgeさんのツイート: "Mozillaのルートストアポリシーがバージョン2.5に改訂され、認証機関はネットワークのセキュリティに関する業界のベストプラクティスを実践することが求められるようになった。 / “Mozilla Releases Versio…” https://t.co/umzXruNNlY"
- Mozilla Releases Version 2.5 of Root Store Policy | Mozilla Security Blog
- Rockridgeさんのツイート: "Let’s Encryptのルートキー(ISRG Root X1)がFirefox 50においてデフォルトで信頼されることになる見込み。既存の認証局であるIdenTrustと提携することで早期に実現した。参照:… https://t.co/gsLgM6iXRG"
- Jxckさんのツイート: "Firefox50 に先行して Let's Encrypt 自身の証明書が入るらしい。でもルートとして正式に認定されてない証明書入れるのってどうなんだろう。。 / “Let's Encrypt Root to be Trust…” https://t.co/SDEaymqosm"
- Rockridgeさんのツイート: "Fx57:ルートCAモジュールの読み込みが非同期化された。起動速度の向上が期待できる。参照:https://t.co/ePDJWKjLST / “1372656 - load loadable roots on a backgr…” https://t.co/6qf6ul3j0P"
- the root CA module now loads asynchronously - Google グループ
- Rockridgeさんのツイート: "DigiCertがSymantecの認証機関ビジネスを買収したことで自動的に信用が回復することはなく、Mozillaが示す各種懸念事項に解決策を示す必要があるという話。 / “Statement on DigiCert’s Pr…” https://t.co/GHyUJDKv7u"
- Rockridgeさんのツイート: "Fx59:セコム電子認証サービスのルート証明書が削除された。Fx58で無効化済み。参照:https://t.co/Qzdr85qfxm https://t.co/4GCbSbwSax / “1410544 - Remove "S…” https://t.co/hmSrIm3Avi"
- Rockridgeさんのツイート: "「Firefox の 今後の信頼無効化措置 は Google Chrome と歩調を合わせており、GeoTrust、RapidSSL、Thawte、Verisign といったすべての Symantec ブランドに適用されます。」 https://t.co/CxvYlcqJ8l"
- Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
- Rockridgeさんのツイート: "Symantecから発行された証明書の信頼無効化措置は、Firefox Nightly 60で有効化されたが、Betaチャンネルへの投入については、Chromeの動向を見てから決める模様。 / “1442075 - Enforc…” https://t.co/JdDEcKKseM"
- Rockridgeさんのツイート: "Mozillaの調査によれば、Symantecから発行された証明書の信頼無効化措置により、現在、トップ100万サイトのうちの約1%で、接続が安全でない旨のメッセージが出て閲覧が一時的に遮断される状況となっている。 / “Dist…” https://t.co/UAJGQLjgJm"
- Distrust of Symantec TLS Certificates | Mozilla Security Blog
- Rockridgeさんのツイート: "Mozillaの調べによると、Symantecの証明書を排除した場合、上位1万のWebサイトでエラーが出るケースは、2018年2月23日時点では299件だったが、同年3月16日時点では86件にまで減少した。 / “TLS Can…” https://t.co/F1vYvkNJR9"
- Makoto Kato ︎︎さんのツイート: "Korean GPKIもなんかいろいろやらかしてる https://t.co/dLa69TsKdO https://t.co/IQrWNwChU9"
- Rockridgeさんのツイート: "Fx63:Mac版でもsecurity.enterprise_roots.enabledをtrueに設定すると、OS側で信頼されたルート証明書を利用できるようになった。 / “1300420 - macOS (Mac OS X)…” https://t.co/v3NLtXSyqq"
- Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、Symantecから発行されたすべての既存TLSサーバ証明書への信頼が取り消された。2018年10月23日にはリリース版でも同様の措置が執られる。参照:… https://t.co/297FL5Ltx5"
- Overview of WebTrust Services | Chartered Professional Accountants of Canada
- Principles and Criteria | Chartered Professional Accountants of Canada
- Baseline Requirements Documents - CAB Forum
- Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
- Mozilla、Symantec証明書の信頼を段階的に削除 ~具体的なスケジュールをアナウンス - 窓の杜
- 10月公開の「Firefox 63」、シマンテック発行の証明書を完全に無効化へ--モジラが警告 - ZDNet Japan
- 「Firefox 63」でSymantec発行のTLS証明書が無効に ~トップ100万サイトの3.5%に影響 - 窓の杜
MS
- Microsoft Trusted Root Program Requirements - TechNet Articles - United States (English) - TechNet Wiki
- Microsoft 信頼されたルート証明書プログラム:証明機関の監査要件
- より信頼できる証明書利用環境へ向けて~ Internet Explorer 11 SmartScreen 証明書評価 - 日本のセキュリティチーム - Site Home - TechNet Blogs
- Rockridgeさんのツイート: "2018年7月末、Let's Encryptのルート証明書がMicrosoftのルート証明書プログラムにおいて信頼されるに至った。既にGoogle/Apple/Mozilla/Oracle/Blackberryからは信頼済みだとい… https://t.co/XUWFTtfkHq"
- 幼女 @mine02c4@mstdn.jpさんのツイート: "理屈上はDNSのレスポンスを書き換えて画面を返す用のサーバーのIPにすれば警告画面表示はHTTPでできる。これは普通の話。 でもですね、相手は日本政府なんですよ。彼らには「Windowsに信頼されたルート認証局」というのを持っているので、TLS証明書を発行できる立場にいます。"
- ふたば@四葉技研さんのツイート: "政府による通信の監視で 通信速度が遅くなったらキレる"
- tkrさんのツイート: "政府であろうと改ざんされてないことの証明なんだから認証局持ってること悪用したらだめでしょ。。"
- Shigeki OhtsuさんはTwitterを使っています: 「Microsoftのルート証明書がMozillaに申請され最終レビュー段階に。Googleに続いてブラウザベンダが認証局を兼ねるとは。 / “Googleグループ” https://t.co/h3V9HC1sKd」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています: 「Windowsには以前から当然入っていたけど、Mozillaに入れば ca-certificate に入るからAndroidやNodeでも使えるようになるのよね。」 / Twitter
- 2020年末に期限切れになるルート証明書。「削除しないで」とMicrosoft - PC Watch
- MicrosoftとMozillaがアメリカ諜報機関との関係が報じられたルート認証局「TrustCor」の証明書を信頼しないことを決定 - GIGAZINE
- 「Microsoft Edge 109」が正式版に ~ルートストアをOSから「Chromium」へ移行 - 窓の杜
Apple
- Root Certificate Program - Apple
Google
- Root Certificate Policy - The Chromium Projects
- Google Online Security Blog: Distrust of the Symantec PKI: Immediate action needed by site operators
- 旧Symantec系SSL/TLS証明書、3月15日以降順次、Google Chromeで失効 - INTERNET Watch
- Rockridgeさんのツイート: "Google Chromeの開発チームがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除する方針を表明。Extended Validation(EV)のステータスは無視され、Chrome 59から64まで… https://t.co/hC19kG6VAy"
- Google ChromeでSymantecが発行したSSL証明書の有効期限短縮やEVステータス無効化が提案される | スラド セキュリティ
- Symantec発行のSSL/TLS証明書、Google Chromeで段階的な期限短縮案 -INTERNET Watch
- Symantecが再びGoogleの信頼を失った件についてのメモ - Technically, technophobic.
- Google Developers Japan: Symantec の PKI の無効化について: 要対応確認
- GoogleとMozillaが独裁国家の認証するルート証明書をブロックすると発表 - GIGAZINE
- Google、自社向けのルート認証局「Google Trust Services」を開設 -INTERNET Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ふと google のオレオレ証明感…とか思ったり(笑) (GTS = Google Trust Services) https://t.co/8iv3vUnTeR https://t.co/Q6JFizGu6g」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「googleの証明書には、130件の「サブジェクト代替名」が含まれていた。すごいな。 https://t.co/KNyVScqiE6」 / Twitter
- 「Google Chrome 105」が正式版に ~独自のルートストアへ移行、Chromeアプリには警告メッセージ - 窓の杜
- 「Google Chrome」は独自のルートストアへ ~「Chrome Root Program」の開始が発表 - 窓の杜
Amazon
- Shigeki Ohtsuさんのツイート: "うわぁ、Amazon Root CAがの4種(RSA/ECC)がFirefoxに登録されるわ。EV発行も 可能だ。 現在無料のACMから本格的なAmazon認証局サービスの提供に向かうのか。強いなぁ。 / “NSS 3.28.1…” https://t.co/YZ0MlfZPUT"
- NSS 3.28.1 release notes - Mozilla | MDN
- Shigeki Ohtsuさんのツイート: "Amazon Trust Services という別会社がAmazon Root CAを運用するのね。 https://t.co/eVYDVS10L0"
- Amazon Trust Services LLC
- Wget - きまぐれ手記
- Certificate Authority Certificates
- JVNVU#99936709: Savitech 製 USB オーディオドライバがルート CA 証明書を許可なくインストールする問題
- 渋川よしきさんのツイート: "CertUtil.exe -viewstore ROOTで、信頼されたルート証明書一覧を取り込みたいのだけど、GUIウインドウが立ち上がってしまう"
- 渋川よしきさんのツイート: "-viewstoreじゃなくて-storeならコンソールに出るっぽいが・・・日本語か・・・"
- 渋川よしきさんのツイート: "CertUtil.exeで-storeで保存されている証明書類を書き出しても30個ぐらいしかない。Macだとシステムのルート証明書で176個ある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ESETをはじめインターネット防御を謳うソフトは、自前ルート証明書をPCにインストールしてhttpsの中身を監視するんですよね。 万一ESET側がクラッカーの手に落ちると、安全なhttpsサーバ相手でも被害を受ける可能性が出るという…ESETを信用するか、httpsサーバを信用するか?というジレンマに(笑)… https://t.co/THV4HtvHkx"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "GPKIは大変なことになってるけど、一方LGPKIはセコムすることになって、自治体にはインターネット側でも使いやすくなって朗報。 / “総合行政ネットワーク No. 185 1 第四次LGPKI移行の背景と その概要 第四次L…” https://t.co/36TNZprspT"
- LGWAN-H3003.pdf
- 自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ)
- Kazuho Okuさんのツイート: "想定された挙動のはずです。例えばウェブブラウザは、ユーザ定義ルート証明書を検出した場合は HPKP を無視します… "
- Vさんのツイート: "ローカルで MITM やるのありえないと思うんだけど、そう思うの自分だけ?"
- Kazuho Okuさんのツイート: "アンチウイルス以外にもペアレンタルコントロール、コンプライアンス上の理由等によって通信のモニタリングが求められるケースはあるし、それはエンドポイント内でAPIを提供していく方向だと理解してる。現状のMITMはプロトコル実装の品質と硬直化の問題があるのでry"
- Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
- 古いAndroidスマホで2021年9月以降、一部サイトが閲覧不能に - PC Watch
- GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
- Google・Mozilla・Apple・Microsoftが「政府が国民にインストールを強制したルート証明書」をブロック - GIGAZINE
- 数百万のHTTPSサイトが利用するLet’s Encryptのルート証明書が期限切れ間近、古いデバイスやOSは要注意 | TechCrunch Japan
- Makoto Kato ︎︎さんはTwitterを使っています 「政府系証明書に関しては正しくないと思う。AppleとかMicrosoftはね "Webブラウザは新しい認証局が信頼に足るものであるかを審査し、それには長い時間がかかると考えられている" https://t.co/wk9tJjThJz」 / Twitter
- ロシア、証明書の更新停止を受け独自のTLS認証局立ち上げ | TECH+
- Chrome・Safari・Firefoxでルート認証局として使用されているTrustCorにアメリカの諜報機関とのつながりがあったことが発覚 - GIGAZINE
クロスルート証明書
- Kazuho Okuさんのツイート: "新しいルート証明書が普及するまで使われるクロスルート証明書では? より長い鍵長のルート証明書へ移行する際にも使われてきた伝統ある技術かと / “自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - lived…” https://t.co/LvNTjMaIIo"
- 自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)
- [EV SSL] クロスルートとは何ですか。 | SSL・電子証明書ならGMOグローバルサイン
- クロスルート証明書について | Symantec
- クロスルート設定用証明書の設定について、どのような対応が必要でしょうか? | Symantec
- SSLの中間証明書・クロスルート方式について | cloudpack.media
- SureServer[2048bit] 用クロスルート方式について|Cybertrust.ne.jp
- ルート・中間CA証明書のダウンロード|Cybertrust.ne.jp
- クロスルート証明書って何? - [2013/02/11]
- 今更!理解するクロスルート証明書 - 農業生活を目指すシステムエンジニア
- クロスルート設定用証明書ダウンロード|SSLサーバ証明書 ジオトラスト
- シマンテックSSL証明書におけるクロスルート証明書についてのご注意 « - ValueSSL
- オレオレクロスルート証明書 - Qiita
ワイルドカード証明書
- Hiroki KUNIIさんはTwitterを使っています 「ワイルドカード証明書を利用したALPACAテクニックによるExploit。なんでもOverTLSだったり一つのワイルドカード証明書で色々やったりする弊害なんですかね。」 / Twitter
- monoさんはTwitterを使っています 「未対応でもまだ許容されてたみたいだけど、2022年1月31日以降必須に( ´・‿・`) Account deletion within apps required starting January 31 https://t.co/GGawykZpXk」 / Twitter
- NSA CyberさんはTwitterを使っています 「Wildcard certificates #authenticate multiple servers to simplify credential management. But, when poorly scoped, your servers could be at risk of exploitation via the ALPACA technique. View our latest #cybersecurity guidance for more: https://t.co/Hdm5vo35go https://t.co/dcX5ER0cVx」 / Twitter
- Avoid Dangers of Wildcard TLS Certificates, the ALPACA Technique > National Security Agency/Central Security Service > Article
- Hiroki KUNIIさんはTwitterを使っています 「詳細 https://t.co/J6heILYFci 元論文 https://t.co/aqT17kb4S6」 / Twitter
- CSI_AVOID DANGERS OF WILDCARD TLS CERTIFICATES AND THE ALPACA TECHNIQUE_211007.PDF
- ALPACA.pdf
コードサイニング証明書
Twitter
@openlibsys
- hiyohiyoさんのツイート: "コードサイニング証明書更新しました。 あと2年間はグローバルサインな証明書が使えます。 更なる更新はできないので、猶予期間中に移行先を決めないと・・・。 法人格がないとホント不自由な世の中になってしまいました。EVコードサイニング証明書欲しい・・・。"
- hiyohiyoさんのツイート: "SHA-1 なコードサイニング証明書を取得するのも最後だろうなぁ・・・。 証明書の有効期限である2021/3/3以降にリリースするソフトは、7以降対応かぁ。2年後ぐらいに XP/Vista 向け最終版リリースかな。"
- hiyohiyoさんのツイート: "コードサイニング証明書をUSB Tokenに格納することが必須となってしまい、コード署名するためにパスワードの入力が必要となってしまった・・・。 リリース作業が煩雑になってしまう。… "
- hiyohiyoさんのツイート: "とりあえず、SHA-1とSHA-2両方の証明書でサインすることに成功。SHA-2な証明書でハッシュアルゴリズムをsha1とsha256の両方でやろうと思ったのですがどういうわけか失敗するのでsha256だけで実施。 Microsoft製exe/dllも2パターンでしか署名されていないので良いとするか。"
- hiyohiyoさんのツイート: "SHA1とSHA2の証明書を明示的に選択するためには、/i を使いました。 for SHA-1 signtool.exe sign /v /a /n "Name" /tr https://t.co/PvnwuWmgfn /i "GlobalSign CodeSigning CA - G3" %1 for SHA-2 signtool sign /v /a /n "Name" /tr https://t.co/NaFzR2n2nU /fd sha256 /td sha256 /as %1"
- hiyohiyoさんのツイート: "新しいコードサイニング証明書情報を追記しました。 https://t.co/riy9SxVZV0 次に公開するソフトから新しいコードサイニング証明書になります。"
- デジタル署名 – Crystal Dew World
- hiyohiyoさんのツイート: "EV証明書ではないので、しばらくはこんな感じで Windows Defender SmartScreen が発動しちゃいますorz… "
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsでコード署名をしても、すぐには警告が消えるわけではないが、署名の実績が溜まることで、新しいビルドでも警告が消えるようになるらしい。 これなら、コード署名を入れる価値がありそうだな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "signtoolでオレオレ署名をしてみたが、サインは末尾に付与される様子。 ビルドしたexeに追加データを付与しても、問題なく署名可能だった。(PEヘッダ・セクションを真面目に解析していない?) また、オレオレ署名でもタイムスタンプサーバに https://t.co/wbOzVI25sJ が使えた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今、コード署名取得に必要な DUNS番号を申請中。 コード署名を付ければ、しばらくして(コード署名の)評価値が上がってきて、新リリースでも誤検出されなくなる…はず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号を無事取得したので、コード署名をsslstore(米国)で取得中だが、購入後にcomodoへの登録内容アップロードで、Internal Server error が起きるぞ…やむなく英語チャット中。(現地時間は超早朝のはずだが…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事通過。あとはコモドからの電話確認だけになった。 ちなみに英語チャットで聞いた範囲では、コモドの電話確認は自動電話で番号を一方的に伝え、その番号をメールで返信する、というものらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号がコモド側の使うDBから見えないらしい…数日待ってくれとのこと。 東京商工リサーチの登録からデータが伝搬する経路に、何らかのバッチ処理とか人手とかが介在しているのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sslstore(米国, thesslstore)だと、コード署名(comodo)3年間で248ドルだった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コモドからの検証用電話コールバック、意外と日本語の選択肢もあったが、「あなたの確認暗証番号は、です。XXXXXX」というSVO順の謎日本語だった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、コモドから、"Your Code Signing Certificate has been issued." というメールが来た。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、SignTool でインストーラにコード署名完了! (これで数ヶ月後に、アンチウイルス系のヒューリスティック誤検出が無くなると良いのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(いくつかの発行ベンダが書いている資料と違い)、XP/Vistaでは、sha256コード署名が(非ドライバでも)上手く認識できないようだ。 とはいえ、コード署名はアンチウイルス誤検出に効果があれば十分なので、sha256を使う予定。(副署名をsha256にするhackもあるようだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "取得したコード署名、今日のお昼から、実践投入(某社で使われているIPMsg特別版に適用)する予定。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、コード署名をWindows証明書コンテナにインストールすると、exe/dll(SignTool)以外に、Office系全般とAdobe Reader(Acrobatでなくとも)でも署名可能に。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これにsymantec/comodo等のタイムサーバを加えれば、法人向けに領収書などの電子化に使えてもいいはずだが、日本ではそのあたりは総務省管轄の家元商売になっていて、そこの専用の枠組みを使う必要がある、と。 https://t.co/U4Bg2tQAcl https://t.co/ESrYms2BGq"
- 認定タイムスタンプを利用する事業者に関する登録制度 | JADAC
- 申請料金 | 申請方法 | タイムビジネス認定センター
- Shirouzu Hiroaki(白水啓章)さんのツイート: "まあ、SSL証明書も家元商売と言えなくもないが、一応、競争原理は働いているように見える。(コード署名はニーズが少ないせいか、海外と国内で3~5倍価格が違うとか、大した審査でもないのに年2-6万とか家元商売と化している感あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messenger v4.94リリース。 Windowsコード署名を付与(今後アンチウイルスの誤検出が徐々に減るはず)、ログビューア改良等。 https://t.co/wDjue1IdtK #ipmsg"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SmartScreenにブロックされないことを確認。 (念のため、kasperskyとesetにホワイトリスト登録実施済)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名、Firefoxはsha1のみ、Chromeは主sha1 + 副sha2の二重署名。 IPMsgのsha2のみ署名はちょっと勇み足だったかな…XP/Vistaだと、ブラウザから直接実行できず、保存してから実行する必要。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sha1 + sha2 に変更した場合、SmartScreenでsha2でのレピュテーションは引き継がれるのだろうか?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "一方で、サポート切れとなっている Vista/XP対応を残すのも如何なものか、という気もしたり。 サイトアクセスから推測すると、XP比率は1.0~1.2%、Vistaは0.2%。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラ等にコード署名を付与を始めて1ヵ月経過。そろそろ、カスペルスキー等へのホワイトリスト登録はしなくても良いかな。 (SmartScreenだと、初めての署名から数日で充分なレピュテーションを獲得した様子)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ノートンさん、ホワイトリスト申請制度を止めてしまったんだよなぁ… (カスペルスキーとESETは制度があるので、バージョンアップのたびに申請している)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名が無くなると、(UAC表示が変わる以前に)、リリースの度に、SmartScreen/アンチウイルス系に誤検出される羽目になりやすい。… "
- 窓の杜さんのツイート: "コードサイニング証明書がなくなることの影響として、UAC ダイアログの表示が変わります( digicert https://t.co/GGRZaJ56se より) https://t.co/Mf7aY5NbrJ… "
- 「Notepad++」v7.6.4が公開 ~EUのバグ報奨金プログラムで発見された脆弱性を修正 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名用メールアドレスに spamが届き始めた。 世の多くの例に倣って、コード署名にメールアドレスは付与しない方が良かったかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、Explorerの電子署名のプロパティ。 MSはメールアドレスを付与していない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名を付与した自前インストーラに、事後に何か情報を付与したい場合、ファイル名にベリファイ付き情報を付加するくらいしか、有効な方法は無さそう。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「リリースから1週間経過しても、まだ新コード署名証明書の功徳が足りないらしい。 https://t.co/dXnoh6RizQ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS SmartScreen の警告から逃れるには、古い署名済みの動的ダウンロード形式インストーラを使いまわす(or EVコード署名を買う)くらいしか手が無いと。 https://t.co/8ihcBqEX37」 / Twitter
- How to preserve reputation with the SmartScreen Filter in Windows 10 after previous code-signing certificate renewal? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、MSに「SmartScreenの誤検出だよ」と送ってみたが、「お使いの署名は功徳がまだ十分でないので」と予想通りの返し(笑) https://t.co/Acf5LfSrrf https://t.co/AJstK5Sy4z」 / Twitter
- Submit a file for malware analysis - Microsoft Security Intelligence
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やっと新コード署名に功徳がたまったらしく、SmartScreen の警告が出なくなった様子。 功徳満了に必要な期間は 8-9日間だった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「個人的には、主署名は Sectigo(Comodo)だけどタイムスタンプは DigiCert を使ってたり。 https://t.co/YgZxE1Yrn5」 / Twitter
- ゆきさんのツイート: "ACME End User Client and Code Signing Certificates https://t.co/WR6sLBVYnX ACMEでクライアント証明書やコード署名証明書やコードサイニング証明書を発行する提案仕様 #yuki_id"
- draft-moriarty-acme-client-01 - ACME Client Extension
- Kazuho OkuさんはTwitterを使っています 「コード署名の検証手法としては、そもそも不適です。CRLや、その発展技術であるCRLite, CRLSet の使用がより適しているかと思います。」 / Twitter
- コードサイニング証明書を個人にも発行!! – Crystal Dew Blog
- デジタル署名のまとめ(Vista x64対応) – Crystal Dew Blog
- 個人ソフト作者にとってのデジタル署名とは
- 個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた
- 最も安い?コード署名証明書の取得(&使い方)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今回のコード署名証明書取得では(3年前と違い)、openssl で CSR を作成する必要があった。 https://t.co/aGp5h8a5mN」 / Twitter
- [CertCentral] コードサイニング証明書のCSR 生成/PKCS#12ファイルの生成 (openssl)
- SHIROUZU Personal Log(2018-10-15)
- コードサイニング証明書を買う前に (山崎はるかのメモ)
- 個人事業主として EV コードサイニング証明書を取得してみた | エレン・イーストのブログ
- 個人でコードサイニング証明書を取得してみた | エレン・イーストのブログ
- 「WinRAR」のWindows 10へのインストールが一時的に不可能な状態に - GIGAZINE
- Linux Foundation Sigstoreがコード署名の暗号化を目指す
- Microsoftが「署名拒否」を競合製品対策の戦術にしていると開発者が主張 - GIGAZINE
- Microsoftのデジタル署名入りルートキット「FiveSys」がネトゲを標的に拡散中 - GIGAZINE
- Windowsネイティブアプリにコードサイニング証明書をつける - Qiita
- NVIDIAのコードサイニング証明書がマルウェアとして偽装される、先週からの同社への攻撃の一部か - 自作ユーザーが解説するゲーミングPCガイド
- sigstoreによるコンテナイメージやソフトウェアの署名 - knqyf263's blog
- SamsungやLGなどのAndroid OEMからアプリ署名鍵が流出してマルウェアの署名に利用されていたことが明らかに - GIGAZINE
- Windowsハードウェア開発者プログラムの認定を受けたドライバーがマルウェアの署名に悪用されていたことが発覚 - GIGAZINE
- Microsoft署名のドライバがランサムウェアに悪用 - PC Watch
証明書失効
OCSP
- Kazuho OkuさんはTwitterを使っています 「「OCSPはプライバシーの点で壊れてるのでstaplingでしか使われなくなりました」」 / Twitter
- Yasuhiro MorishitaさんはTwitterを使っています 「【募】「証明書に書かれているCRLやOCSPのURLはなぜhttpsではなくhttpなのか」を人に説明したい時、参考にできる情報。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「x509証明書を平文で流すのが問題だと考えるようになったの、スノーデンとかiOSのnotificationのトラッキングとか、2010年代になってからだから、それ以前の証明書関連プロトコルが平文なのは自然だと思う」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています 「これですね。IAB Statement on OCSP Stapling https://t.co/0RwY5a2d1q」 / Twitter
- IAB Statement on OCSP Stapling | Internet Architecture Board
- Kazuho Okuさんのツイート: "単にOCSPレスポンダ内部でのバリデーションがクロスルートに対応してなかったんじゃないの? > 「クロスルート証明書を失効させるつもりが、同じ subject で同じ鍵である Root(R1) の証明書の方を失効扱いにしてしまった」 https://t.co/iQbrPncS5I"
- Kazuho Okuさんのツイート: "証明書チェインのクロスルート検証がうまく動かない問題昔からいろいろあるし、CAが運用するOCSPレスポンダみたいな更新が難しいソフトにその問題が残っててもちっとも意外じゃない"
- Kazuho Okuさんのツイート: "証明書チェインを検証するために辿るキーはDNとpublic keyだけなので、状況とも符合する"
- Kazuho Okuさんのツイート: "たとえばopensslの1.0.1系列を使ったocspレスポンダを、古い中間CAが登録された状態で動かしてたら当該の挙動になるんじゃないかなぁ"
- 【翻訳】Firefox における OCSP Stapling - Mozilla Security Blog 日本語版
- 【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書 - Mozilla Security Blog 日本語版
- Online Certificate Status Protocol - Wikipedia
- Online Certificate Status Protocol - OCSP
- https://tools.ietf.org/rfc/rfc6277.txt
- https://tools.ietf.org/rfc/rfc2560.txt
- https://tools.ietf.org/rfc/rfc6960.txt
- Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、OCSPレスポンスを取得する対象をEV証明書に限定。また、EV証明書についてもタイムアウトの設定を2秒から1秒に短縮した。参照:https://t.co/S2rMKSy6bF / “1366…” https://t.co/uumZYZAfk4"
- Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、OCSPレスポンスを取得する対象にDV証明書を再度追加した。 / “1390688 - re-enable OCSP fetching for DV certificates in Nigh…” https://t.co/OkyKbQxtnH"
- MicrosoftのWebサイトを「Firefox」で開けない現象が発生中 - 窓の杜
- MicrosoftのWebサイトを開けない不具合を修正した「Firefox 95.0.1」が公開 - 窓の杜
- モジラ、グーグルと同様の証明書失効チェック方法を採用へ - ZDNet Japan
- Google Chrome、SSL証明書のオンライン失効チェックを無効に - ITmedia エンタープライズ
- CA:RevocationPlan - MozillaWiki
- 証明書失効リスト - Wikipedia
- CRLSets - The Chromium Projects
- Rockridgeさんのツイート: "Fx50:証明書のブロックリスト(OneCRL)にKintoを用いる仕組みがリリースチャンネルでも有効化された。 / “1265008 – Enable the Kinto.js OneCRL client for releas…” https://t.co/RgkgoFeJEQ"
- 【翻訳】中間証明書の失効確認: OneCRL の導入 - Mozilla Security Blog 日本語版
- GodaddyのSSL証明書にドメイン認証の脆弱性があり8850件の証明書が失効された | 徳丸浩の日記
- 障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可について(第一報) - JPNIC
- サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告 - JPNIC
- Rockridgeさんのツイート: "Fx52:証明書のブロックリスト(OneCRL)の対象となるのは、TLSサーバ証明書のみとなった。Thunderbirdが扱うS/MIMEは対象外となる。 / “1312827 – make OneCRL only apply …” https://t.co/yqCnhUoUUa"
- Kazuho Okuさんのツイート: "なんか、割と皆、サーバ証明書かルート証明書の失効問題だと考えてるみたいだけど、中間証明書やコードサイニング証明書がらみの問題でないという判断の根拠はあるのかしら"
- Kazuho Okuさんのツイート: "テスト環境ではトラストチェインの検証時に、テストクライアントにあるより新しい中間証明書が自動的に使われていたが運用環境ではそれがなかった、みたいな可能性もありうると思うけど"
- Shigeki Ohtsuさんのツイート: "めちゃ議論が白熱してたから追っかけられなかったけど結局DarkMatterのルートを入れず中間証明書も失効させることになったのか。Mozillaは漢だ。 / “Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan” https://t.co/geOGUkAs3N"
- Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan
- Shigeki OhtsuさんはTwitterを使っています: 「Googleのトーゴドメイン(https://t.co/AeIs0BgWED)の証明書がまた不正発行されてた(2年ぶり2回目)。CRLで失効されているけどOCSPまだGoodだ。レジストラがまたやられたか。 https://t.co/8QIIHeZahZ」 / Twitter
- ゆきさんはTwitterを使っています: 「MozillaとGoogleは、カザフスタン政府により中間者攻撃を可能とする政府発行の証明書をブロックすると https://t.co/A5ZcXZwQdg」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「証明書の期限なんて短くていいんだよ。7日とか、CRLやOCSPの有効期限並に短くすれば、CRLとかOCSPとかややこしい仕組みが不要になる。そこまでどう持っていくか、の問題」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、コード署名は「実行時の期限切れ」は問題としないポリシーだな。(少なくともWindowsでは) これ、CRL入りすると実行時でもエラーになるのかな?」 / Twitter
- マイナポイント、複数回申し込む問題が発覚。471件 - Impress Watch
証明書ブロック
Symantec
Google
- Symantec、同社発行のSSL/TLS証明書を信頼してもらうための対策をGoogleに提案 | スラド セキュリティ
- Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(メモ) - ASnoKaze blog
- Google Developers Japan: Chrome が Symantec の証明書に対する信頼を破棄する予定について
- Google、Symantec証明書に対する信頼を段階的に削減。「Google Chrome 70」で完全削除 - 窓の杜
- Rockridgeさんのツイート: "2018年10月23日からの週にリリース予定のChrome 70では、Symantec発行のルート証明書と結びつけられたほとんどすべての証明書が失効することになるという。 / “Google Online Security Bl…” https://t.co/tN62wZRVwT"
Mozilla
- Mozilla、Symantecが発行した証明書の信頼性回復に関する議論に参戦 | スラド IT
- Rockridgeさんのツイート: "FirefoxがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除していくスケジュールは、Chromeとおおむね一致する。リリース日の違いから数週間ずれる程度。 / “Final Decision by …” https://t.co/uHXwTO39Ey"
- Rockridgeさんのツイート: "2018年5月のFirefox 60以降、Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書をWebサイトが使用する場合、信頼できない接続である旨が表示される。2018年10月のFiref… https://t.co/R3D7FNtw8o"
- Rockridgeさんのツイート: "Fx60:Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書を失効させるが、互換性問題に備えて復旧用の設定を実装する模様。参照:https://t.co/6em1Yh9xSW / “14…” https://t.co/LSTU24RdmQ"
- Shigeki Ohtsuさんのツイート: "トップ100万ドメインの1%強がまだSymantec証明書を利用しているので、MozillaがSymantec Distrustを1リリース延期するとのこと / “Delaying Further Symantec TLS Ce…” https://t.co/IWhB9OclEJ"
- Delaying Further Symantec TLS Certificate Distrust | Mozilla Security Blog
- 信頼性の低いシマンテック証明書の置き換えが予想以上に遅いとMozillaが嘆き - GIGAZINE
- Symantec系列CAの証明書がエラーになったりするのは少なくとも「2017年8月8日」からではないっぽい - Technically, technophobic.
- Rockridgeさんのツイート: "2017年8月2日、Symantecが米DigiCert社にWebsite Securityおよび関連するPKIソリューション事業を売却すると発表した。Symantecは対価として約9億5000万ドルとDigiCertの株式の約3… https://t.co/X8Bu0SKLUp"
- Shigeki Ohtsuさんのツイート: "シマンテックがPKIビジネスをDegiCertに売却しちゃった。 / “DigiCert to Acquire Symantec's Website Security Business” https://t.co/aT7fOLoRla"
- DigiCert to Acquire Symantec's Website Security Business
- Shigeki Ohtsuさんのツイート: "Symantecはシェア3位の14%, DigiCertは6位の2.2%。合わせても16.2%の3位のまま。独禁的にも問題ないのか。 / “Usage Statistics and Market Share of SSL Cer…” https://t.co/Z0M4zzS05s"
- そのSSL/TLS証明書は大丈夫? Google Chromeからhttpsサイトとして信頼してもらえなくなる場合も!? - INTERNET Watch
- 旧SymantecのSSL/TLS証明書問題、DigiCertが対応ほぼ完了宣言、次はいよいよIoTセキュリティへ前進 - INTERNET Watch
WoSign/StartCom
Mozilla
- Rockridgeさんのツイート: "2016年10月21日以降に発行されたデジタル証明書に関し、StartComおよびWoSignが発行したものは、Mozillaのルート証明書ストアにおいて信頼されない取扱いとなることが決まった。参照:… https://t.co/OfjasBepmH"
- Shigeki Ohtsuさんのツイート: "Mozillaからの WoSign/StarCom へのペナルティ(6/21以降に発行された証明書は不正と判定し、現行のrootCAを将来的に削除する)が正式に決まりました。 / “Distrusting New WoSign …” https://t.co/Y83wWhfPYa"
- Distrusting New WoSign and StartCom Certificates | Mozilla Security Blog
- Shigeki Ohtsuさんのツイート: "WoSignからのMozillaの決定を受け入れるとのアナウンス。なんと有効な中間証明書を 1つ持つらしい。2017年6月から再申請をするとのこと。中国国内で50%のシェア持ってるのか。 / “Announcement abou…” https://t.co/62JBl9xk4h"
- Announcement about Mozilla Action-WoSign SSL Certificates!
- Rockridgeさんのツイート: "MozillaがWoSign/StartComのデジタル証明書に関する対策を発表。2016年10月21日以降に発行されたものにつき信頼しない措置は、Firefox 51から適用。将来的にWoSign/StartComのルート証明書… https://t.co/qOFfgGA2hv"
- 【翻訳】WoSign と StartCom による今後の証明書は拒否します - Mozilla Security Blog 日本語版
- Rockridgeさんのツイート: "2018年1月リリース予定のFirefox 58で、WoSign/StartCom発行のルート証明書はMozillaのルート証明書ストアから排除される。 / “Removing Disabled WoSign and Start…” https://t.co/qH9fJNE8mf"
- WoSign/StartComのルート証明書が「Firefox 58」から削除 - 窓の杜
Google
- Google、Chrome 61以降でWoSignの証明書をブロックへ | スラド セキュリティ
MS
- マイクロソフト、不正が指摘されていた中国CAの証明書を無効に - ZDNet Japan
- Makoto Kato ︎︎さんのツイート: "はてなってRaidSSL使ってるから、あれChromeのCanaryとかFirefox Nightlyだともう無効な証明書として認識されちゃってて、せっかく常時HTTPS化したけどそもそもアクセスできなくなってるね。。。"
- Makoto Kato ︎︎さんのツイート: "*.hatelabo.jpどうするんでしょ、あれ。ずっと証明書直さないけど"
- IE11とEdgeでもついにSHA-1証明書使用サイトをブロックへ | スラド セキュリティ
EV証明書
- Extended Validation Certificate - Wikipedia, the free encyclopedia
- Extended Validation 証明書 - Wikipedia
- メモ:EV証明書でブラウザのURLバーを緑色にするのもうやめない?という話 - Technically, technophobic.
- Rockridgeさんのツイート: "EV証明書の取扱いについて熱心な議論が交わされている。どうやらMozillaの開発者たちは、アドレスバーの表示について、EV証明書を特別扱いしない方向に持っていきたいらしい。 / “On the value of EV” https://t.co/xmYbGb2DT2"
- Rockridgeさんのツイート: "Fx63:DocuSignのルート証明書はEV SSL証明書として扱わない。 / “1476473 - Disable EV treatment for DocuSign roots” https://t.co/V0b92QmC0t"
- 「Google Chrome 57」にSymantec社のEV SSL証明書を正常に扱えない不具合 - 窓の杜
- 〔三菱UFJダイレクト〕銀行名変更にともなうサーバ証明書の切替について | 三菱UFJ銀行
- Shigeki Ohtsuさんのツイート: "三菱UFJ銀行のEV証明書の件。Baltimoreへのクロス証明書を使えばRootCAがないのはWindows XP SP3より前しかなさそうだから、それだけ古いの使っているユーザを心配しているんじゃないですかね。 https://t.co/i40iQxafwa"
- DigiCert Root Compatibility
- Shigeki Ohtsuさんのツイート: "三菱UFJ銀行がBaltimoreへのクロス証明書を使わない運用だとJRE 1.4.2_17とFirefox1が影響受けそう。でも Mixed SHA256 EV hierarchy with a cross root under Baltimore Rootの構成ならほとんど大丈夫でしょ。 https://t.co/i40iQxafwa"
- 個人でEV SSL証明書が欲しい話 - Speaker Deck
- FirefoxでオレオレEVSSL証明書 - Qiita
- Yasuhiro Morishitaさんのツイート: "私は「CHromeによって選ばれた人」だったようです。EV証明書のサイトを開いてF12を押すと、コンソールにこんな表示が。 "As part of an experiment, Chrome temporarily shows only the lock icon in the address bar. Your SSL certificate with Extended Validation is still valid."… https://t.co/7FMKo2Z5ke"
- Yasuhiro Morishitaさんのツイート: "私のGoogle Chrome、EV証明書でも組織名が出なくなってしまったのですが、何が悪いんでしょうか。ちなみにバージョンはWindows版の「69.0.3497.81(Official Build) (64 ビット)」。… "
- Yasuhiro Morishitaさんのツイート: "(こういう表示をA/Bテストでして来るということは、Googleは将来、EV証明書の組織名表示をなくしたいと思っているということなんだな)"
- Shigeki Ohtsuさんのツイート: "とうとう Google が ChromeでEVの組織表示をなくす FieldTrial を始めたようです。 https://t.co/vSF91Cj0x6"
- Mitsuru SHIMAMURAさんのツイート: "これ、CA屋は大反発じゃないんですかね?Googleが強行するんですかね… "
- Shigeki Ohtsuさんのツイート: "既に脅しをかけられてたので、一部 CA が anti-phishing の London Protocol を立ち上げてる途中だったんですけど… Digicertが抜けたりとあまりうまくいってないので、Gがさらに脅しをかけているのかもしれません。… "
- Mitsuru SHIMAMURAさんのツイート: "ほー…。区別しないようにするというのはphising由来だったんですか… "
- Shigeki Ohtsuさんのツイート: "FieldTrial にビンゴしてたようですね。 chrome://flags/#simplify-https-indicator で戻すことができると思います。… "
- Yasuhiro Morishitaさんのツイート: "「Googleがブチ切れる先にある未来」という名言を思い出します😅… "
- Shigeki Ohtsuさんのツイート: "AppleもSafariでのEV証明書の組織表示をやめるみたい。iOS12からなのか? https://t.co/4FsvWhapqc… "
- 201806AppleCABF.key
- Shigeki Ohtsuさんのツイート: "iOS12のSafariで、EV証明書の組織表示がなくなったのが確認できました。padlock(鍵)マークとURLが緑色なので、まだOV/DV証明書との区別はできています。… "
- Shigeki Ohtsuさんのツイート: "PayPalがクロス証明書を入れたらWindowでVerisign側のチェーンで評価され、ルートのOIDが変わりEV証明書と評価されなくなっていると。これ、ユーザが気づかなかったら実はPayPalにEV要らないかと。 / “Wh…” https://t.co/pAkQFSwRDw"
- Rockridgeさんのツイート: "FirefoxがSSL証明書のEVステータスを評価するプロセスについて(公式)。 / “CA/EV Processing for CAs - MozillaWiki” https://t.co/E2HFqNYKnr"
- CA/EV Processing for CAs - MozillaWiki
- 北河拓士 KITAGAWA,Takujiさんのツイート: "また、同名の会社を設立すればEV証明書を取得できてしまう。実際にセキュリティ専門家のIan Carroll氏が決済会社「Stripe Inc」と同名の会社を設立しEV証明書が取得できることを実証している。https://t.co/AhHtkDf8DI 費用は会社設立に100ドル、証明書取得に77ドルのみ。"
- Brian SmithさんはTwitterを使っています: 「Chrome joins FirefoxOS & Safari/iOS in dropping the EV indicator in primary browser UI. Nice! Looking forward to all browsers dropping all support for EV & maybe even all certificate policies. Here's webpki's entire implementation of policies: https://t.co/UYJsX2qVTq ;) https://t.co/UOCnQ9q2BU」 / Twitter
- webpki/src/cert.rs at 0573c1ec3fa4da14d74b9c6ee52087b80dadf16e · briansmith/webpki
- Ryan HurstさんはTwitterを使っています: 「All our mistakes sooner or later surely come home to roost. - https://t.co/VS7iPn6zkB」 / Twitter
- Upcoming Change to Chrome's Identity Indicators - Google グループ
- Google Chrome EV表示の終焉 - ぼちぼち日記
- Shigeki OhtsuさんはTwitterを使っています: 「Mozillaも、2019年10月22日リリース予定のFirefox70から、URLバーからEV表示を削除するとのことです。 / “Google Groups” https://t.co/nV3aTqPtpE」 / Twitter
- Intent to Ship: Move Extended Validation Information out of the URL bar - Google Groups
- Makoto Kato ︎︎さんはTwitterを使っています: 「当事者ではないので個人的な感触ですが、EVの件は、CA/Browser Forum (https://t.co/YTHViQCmPn) でAppleとかGoogleのEVに対しての話に対して、CA側が有効な解決策・回答がでなかったことの結論としか思えないんだけど」 / Twitter
- CA/Browser Forum - CAB Forum
- 「Extended Validation 証明書」表示がChromeとFirefoxから消滅へ - GIGAZINE
- Shigeki OhtsuさんはTwitterを使っています: 「SECOMさんが緊急メンテでテストEV証明書を誤発行してしまった件。既に全部失効させて対策案提示したけど、ドメイン認証してないのって突っ込まれている。無事収束してほしいな。 / “1576133 - SECOM: Mis-issued EV Certificates” https://t.co/Hmyyz57Ler」 / Twitter
- 1576133 - SECOM: Mis-issued EV Certificates
- 「Firefox」もアドレスバーのEV証明書発行元表示を廃止 ~鍵・盾アイコンの仕様も変更 - 窓の杜
CT
- Certificate Transparency について|サイバートラスト
- Certificate Transparency | ブログ | SSL・電子証明書ならGMOグローバルサイン
- Certificate Transparency(透かし入り証明書)とは | シマンテック SSL
- Certificate Transparency:業界レポート:セキュリティ編 - GMOインターネット株式会社
- Certificate Transparency(透かし入り証明書)|製品・価格一覧|SSLサーバ証明書 ジオトラスト
- 自堕落な技術者の日記 : SSL証明書 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Certificate TransparencyでわかったというThawteによるgoogle.com証明書の不正発行??? - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Deep Inside Certificate Transparency (その1) - livedoor Blog(ブログ)
- Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
- Rockridgeさんのツイート: "Certificate Transparencyは「認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組み」。Googleが提唱し、RFC6962としてRFC化された証明書の誤発行を防ぐ新たな技術。 https://t.co/AoCuhCeZmk"
- Rockridgeさんのツイート: "Chromeには既にCertificate Transparency(CT)の検証機能が導入されており、SSLサーバ証明書がCTに準拠している(=Proofが登録されている)かどうかを表示できる。Firefoxでも同様の検証機能が… https://t.co/qs8BeRF7wT"
- CT対応を示すExpect-CTヘッダとは - ASnoKaze blog
- Certificate Transparency
- Shigeki Ohtsuさんのツイート: "去年の誤発行のペナルティで6月以降にSymantecが発行した全証明書にSCTがないとエラーにする制限がChromeに入りました。マジやるのか、Google恐し。 / “Issue 2109913004: Require Cer…” https://t.co/ysX34FlTd3"
- https://tools.ietf.org/rfc/rfc6962.txt
- Certificate Transparency の仕組みと HPKP から Expect-CT への移行 | blog.jxck.io
- Shigeki Ohtsuさんのツイート: "おぉ、Googleに続いてAppleも2018年10月15日以降に発行される全証明書にSCT求めるCT Enforcementを行うと。 / “Certificate Transparency policy - Apple Su…” https://t.co/trtGhYv53e"
- letsencrypt/ct-woodpecker: A tool to monitor a CT log for operational problems
- Shigeki OhtsuさんはTwitterを使っています 「先月末に公表された構成管理ツールSaltStackの深刻な脆弱性によってDigiCertのCTLog2サーバを管理するmasterが攻撃されたようです。CT署名する秘密鍵が危殆化したという初めての事態になってしまった。 https://t.co/Xiyvktzgxl」 / Twitter
- CT2 Log Compromised via Salt Vulnerability - Google グループ
- Googleが開発した「改ざん不可能なログシステム」を構築できる「Trillian」とは? - GIGAZINE
- サーバ証明書の不正発行に対するSCT Auditing - ASnoKaze blog
DANE
- 情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
- DNS-based Authentication of Named Entities(DANE) | GMOグローバルサインブログ
DNS CAA
- DNS Certification Authority Authorization (CAA) | GMOグローバルサインブログ
- DNS CAA とは:SSL | DigiCert
- DNSサーバのCAA設定 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
- DNSのCAAリソース・レコード、使っていますか? | スラド IT
- DNS CAA を設定した - @znz blog
- Certification Authority Authorization (CAA) | Symantec
- Qualysの SSL Server TestでA+評価を取得した設定例(2017-01-15時点, CentOS7 + Apache HTTPD 2.4.6) - Qiita
暗号
その他
PBKDF2, Argon2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「PBKDF2 10万回ストレッチ済パスワードを対象に 2^32回のパスワード解読試行コスト=6ドルという話。(2021) 大文字小文字の"完全ランダム"12文字(67bit)で、1,000億ドルの解読コストと…意外と多額だな。 https://t.co/zOTvELonKW」 / Twitter
- How Strong Should your Account Password be? | 1Password
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(n万台を並べてn年でクラック可能、みたいな言い方よりも現実的な指標かも)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお冒頭の多額コストは、PBKDF2-H256の10万回ストレッチが前提…その条件を満たさない場合は当てはまらないので注意。 (後継として Argon2 があり、GPU攻撃耐性が特徴らしい) https://t.co/XT7I3fF0Og」 / Twitter
- PBKDF2 - Wikipedia
- Argon2 - Wikipedia
blog
- 整数多項式が有限個の素数しか生成しない場合 | yasuokaの日記 | スラド
- Kazuho OkuさんはTwitterを使っています 「いい記事。ソルトはbruteforceに対しては効果薄いしソルト使ってても公開したらダメ。sha256の方が速いのは暗号通貨向けの最適化考えると納得感ある / https://t.co/5NxsRbCtFe」 / Twitter
- メールアドレスをハッシュ化したものを公開してもよいのか - しまたろさんの掃き溜め
- Kazuho OkuさんはTwitterを使っています 「ソルトは解析対象がN個あるときのコストをO(N)に引き上げるものだけど(その極端な差がrainbow table)、今回の話はNが小さい場合なので」 / Twitter
- メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
- 虚数乗法論 (2):楕円曲線の由来 - tsujimotterのノートブック
- 虚数乗法論 (1):イントロ - tsujimotterのノートブック
PDF
- 000055177.pdf
- 000090943.pdf
- 暗号鍵管理ガイドライン:IPA 独立行政法人 情報処理推進機構
- セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
- 楕円曲線の理論的及び実用的可能性
- applied-quantum-safe-security_J.pdf
スライド
- ブロックチェーン系プロジェクトで着目される暗号技術
- BLS署名の実装とその応用
- ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
- 高速な暗号実装のためにしてきたこと
- レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
infoQ
- Tink - クラウド、Android、iOSに対応するGoogleの暗号化ライブラリ
- Adiantumによりローエンドのスマートフォンでディスク暗号化が可能に
- ポスト量子暗号とは - Jean-Philippe Aumasson氏に聞く
- Googleが完全準同型暗号トランスパイラーをオープンソース化
News
- ブロックチェーンの秘密鍵、生体認証で生成 日立が新技術 - ITmedia NEWS
- Google、社内サービスに利用する暗号ライブラリ「Tink」をオープンソースに | OSDN Magazine
- Intelが完全準同型暗号に関するDARPAのプログラムでMicrosoftと協業することを発表 - GIGAZINE
- 量子コンピュータの攻撃に備えるための4つの暗号化アルゴリズムをアメリカ国立標準技術研究所が採択 - GIGAZINE
- ASCII.jp:AtomベースのSmall CoreがTremontと判明 インテル CPUロードマップ (3/4)
- 情報処理推進機構:情報セキュリティ:セキュリティ関連 RFC
- エンドツーエンド暗号化 - Wikipedia
- google/tink: Tink is a multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
- キーペア (*.pfx) から秘密鍵のエクスポート - Web/DB プログラミング徹底解説
- SSLサーバ証明書 : opensslで秘密鍵のパスフレーズを解除する方法 | DigiCert
- Fadisさんのツイート: "RC4、最初にRC4と呼ばれる暗号を作ったRSAはアルゴリズムを公開していないけど等価な計算を行う方法が他所から公開されて、RSAはアルゴリズムを公開していないけどWebの標準の地位を確立して、RSAはアルゴリズムを公開していないけどこの暗号は弱いから使うのをやめよう、という話になってるの面白い"
- [2107.04940] You Really Shouldn't Roll Your Own Crypto: An Empirical Study of Vulnerabilities in Cryptographic Libraries
- angel (as ㌵㌤の猫)さんはTwitterを使っています: 「> 改竄されていないかの検証に使われる。 それを言うなら「認証」なので、また別方向に間違われるのでは。 zennの記事を見返してみると、そこがちょっと表現的に怪しいような気も。「署名」を「改ざん検知」で説明しようとするとピンボケになるし。」 / Twitter
- herumiさんはTwitterを使っています: 「NHKの笑わない数学「暗号理論」、DigiCertの公開鍵証明書の数値を見せてRSAで暗号化していると説明していた。以前「イラストで正しく理解するTLS 1.3の暗号技術」https://t.co/FNSL93Ps8c で書いたけど、それは暗号化ではなく改竄されていないかの検証に使われる。よく間違われるところなので残念。」 / Twitter
- イラストで正しく理解するTLS 1.3の暗号技術
秘密計算
- 秘密計算の発展
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「秘密計算がWalletに使われているようなのでメモ --- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings https://t.co/0ZRtpbWO8V」 / Twitter
- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings
- Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
- 暗号化したまま計算できる暗号技術とOSS開発による広がり
- 秘密計算エンジニアを始めて1年が経った。 - Qiita
- 秘密計算エンジニアを始めて2年半が経った。 - Qiita
CRYPTREC
- CRYPTREC | トップページ
- CRYPTREC - Wikipedia
- 電子行政:キーワード - CRYPTREC暗号リスト:ITpro
- 情報処理推進機構:情報セキュリティ : CRYPTREC
- CRYPTRECとは|Cryptography Research and Evaluation Committees - 意味 / 定義 : IT用語辞典
- Shigeki Ohtsuさんのツイート: "へぇ、CREPTRECも進めるのか。/ ポスト量子暗号の代表的な方式について調査を行っており、調査結果を2019年末までに公表予定。 / “耐量子計算機暗号の標準化動向” https://t.co/eQtZDVvuAT"
- ref4_takagi.pdf
- Makoto Kato ︎︎さんのツイート: "2年位前にCRYPTRECで出したSSLサーバー管理のPDFにGPKIとかの証明書を手動インストールする話を入れるかどうかをあの文書作ってる時議論したけど、そもそも手動で入れるってことを許可する自体セキュアじゃないって結論になって最終的に削除した"
- Shigeki Ohtsuさんのツイート: "CRYPTRECはChaCha20だけじゃなくx25519(ECDHE, 253bits)も認めないのかぁ。こりゃOpenSSL-1.1.x系をそのまま導入するとガイドライン違反になっちゃうよ。https://t.co/wn8GVeavEy"
- CRYPTREC | トピックス
- Shigeki Ohtsuさんのツイート: "ちょっ、GPKI発行の証明書でサイト運営しているCRYPTRECさん、ガイドライン満たしてよw… "
- Makoto Kato ︎︎さんのツイート: "私は、新しい版は関わってないですが、高木さんとか島岡さんとかも関わってなくなっているので、いろいろダメな感じになってますね。 https://t.co/kC7Xje31ks"
- Makoto Kato ︎︎さんのツイート: "SSL設定ガイドラインの1.0のところはサーバー側の面倒なところって、高木さんが書いてたとかあるし、証明書のところって島岡さんとかだから、2.0がダメダメなのは、まぁあの新しい委員が時代背景わかってないだけですね。これ。 https://t.co/21erXOccXG"
- SSL/TLS暗号設定ガイドライン
- Shigeki Ohtsuさんのツイート: "そこまでダメ感は感じないんですが、幾つか気になる点があるので、今まとめています。Changelogがほとんど書いてなく、今回の改訂のせいなのかちょっとわからないのが辛いですが。… "
- Makoto Kato ︎︎さんのツイート: "それよりもだな、CRYPTRECのサイトがGPKI使ってるけど、Baseline Requirementみたしてない(監査法人がまともに仕事してない)のは、MozillaでRejectされてるのでわかってるんだけど、それを使うのはいかがなものなかなって思ってる"
- Makoto Kato ︎︎さんのツイート: "1.0を作る際、数年おきに更新するようにしたいと言ってた話がちゃんと実行されているのは素晴らしいのですが、今回はいろいろ突っ込みたいところがあるので、次を作る時はもう少し人材を選んだ方がいいのではとは思うんですよ… "
- Makoto Kato ︎︎さんのツイート: "2018年にもなって、SSL3.0を優先するのが望ましいとか、それだめでしょ。SSL3.0も基本無効しかあり得ないと思うんだが。そんなクライアント使ってることが問題なのではと思うんだが。"
- Shigeki Ohtsuさんのツイート: "次は「0-RTT抜きでTLS1.3使え、以上」になるので、人材はいらないのではw そしたらCame***も…(以下自粛)… "
- Makoto Kato ︎︎さんのツイート: "https://t.co/9LR0nQ3YJQ を作る時も、いろんな理由にかこつけて、カメなんとか以外の国産暗号を排除してるだけにしか見えないから、まぁ。。。"
- CRYPTREC | 注意喚起情報
- ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応
- CRYPTREC | CRYPTREC Report 2020
FIPS
- 連邦情報処理標準 - Wikipedia
- FIPS 140 - Wikipedia
- 用語解説辞典|【公式】NTTPC
- FIPSとは|連邦情報処理標準|Federal Information Processing Standards - 意味 / 定義 : IT用語辞典
- NIST.gov - Computer Security Division - Computer Security Resource Center
- FIPS – アマゾン ウェブ サービス (AWS)
- 7594591200220899443さんのツイート: "そういう系の話でいうとFIPS 140-2にも似たような話がある。OpenSSLのFIPS認証はOpenSSLをアップデートしてしまうと無効になるため、新しいcypher suiteに移行するなどといったことができない。https://t.co/EBAVcoIQJM "Criticism" の項… https://t.co/IzBx4YNM7m"
- FIPS 140 - Wikipedia
- Shigeki OhtsuさんはTwitterを使っています: 「NISTからCurve25519/448とEdDSA(ed25519/448)のドラフトが出たぞ(SP 800-186, FIPS 186-5)。米国政府がdjbを認めることになるのはなんか象徴的だ。 https://t.co/p5YQ5OT8lp https://t.co/3fXKKMV8Ol」 / Twitter
- FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC
ARIA
- Shigeki Ohtsuさんのツイート: "韓国の暗号ARIA(RFC5794)がOpenSSLに入った。default不可。Oracle DBがOpenSSLを使うかららしい。GCM対応してないのでTLSでは使えません。 / “Implementation of the…” https://t.co/voIQNeRgPV"
- Shigeki Ohtsuさんのツイート: "ARIAのベンチ取ったけどasm対応もしてないからめちゃ遅い。これ、ホント Oracle DBで使うのか? 単に調達要件対応のためだけかもしれないなぁ。"
特権分離
- Kazuho's Weblog: Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)
- Kazuho OkuさんはTwitterを使っています: "blogged / “Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話” http://t.co/L69ZcPqcRM"
- U+4E0A U+6797さんはTwitterを使っています: "Heartbleedの後 SSLの特権分離を速攻実装したの OpenBSDのrelaydなんだけど 言及されていないのか<neverbleed"
鍵交換
DHE
- ディフィー・ヘルマン鍵共有 - Wikipedia
- Fadisさんのツイート: "TLSの鍵交換はかつてはサーバ証明書にくっ付いた公開鍵を使ってRSAで行われていた。この方法には通信内容を丸ごと記録している第三者が居た場合、後から秘密鍵が漏れると通信内容が全部解読されるという問題があったが、そんな大掛かりな手を使う奴はいないだろうと思われていた。実際に現れるまでは"
- Fadisさんのツイート: "で、その結果、教科書に書かれてるけどどこで使われているのか知らない物ランキング上位を狙えそうだったDiffie-Hellman鍵共有が「鍵共有の過程が見えていても鍵が分からない」という利点を買われて一躍TLSに欠かせないアルゴリズムになった"
- FadisさんはTwitterを使っています: 「鍵共有に使う鍵は毎回変えないと後から秘密鍵拾ったマンに解読されるけど、鍵が変わると相手が本物かわからないから、相手を確認する公開鍵と共通鍵を作るための公開鍵が別で必要で、しかも両者の持ち主が同一である事が保証されなければならない。だから今日の多くの安全な通信路は2段階のDHを行う」 / Twitter
- FadisさんはTwitterを使っています: 「という背景がわかるとWireGuardのアレが最高にcoolな通信プロトコルなのがわかる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ DH(鍵交換)は一回でもう一回は署名とその検証かと」 / Twitter
- FadisさんはTwitterを使っています: 「@kazuho そうですね。安全な通信路の定番TLSがその方式なのに「多くの安全な通信路」は大げさでした」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ ええ。というより、FSを実現するためには、長期鍵を暗号化に使ってはダメなんです」 / Twitter
- FadisさんはTwitterを使っています: 「@kazuho 長期鍵は共通鍵の素の全てになっていてはいけませんが、共通鍵に至る過程の一部になることはできます。例えば長期鍵でDHしたFSでない通信路で一時鍵DHを行う事でFSは得られると思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ そのような例では、長期鍵で確立した通信路が生きている期間をひとつのセッションとして扱うように思いました」 / Twitter
- angel as ㌵㌤の猫さんはTwitterを使っています: 「@fadis_ @kazuho DH+DHでFSを確保する実例は知りませんが、RSA暗号+RSA暗号であれば、SSHv1で使ってますね。 ※ただプロトコル自体に脆弱性があるのと、RSA短期鍵がどうしても使いづらいので、今実用にはならないでしょうが」 / Twitter
ECDHE(x25519)
- 楕円曲線上の離散対数問題に対するアプローチ(Baby-step giant-stepとPollard's rho algorithm) - sonickun.log
- Pari/GPで楕円曲線離散対数を計算してみる - ももいろテクノロジー
- 楕円曲線暗号の超簡単な理論の紹介 - Qiita
- 楕円曲線ディフィー・ヘルマン鍵共有 - Wikipedia
- WebCrypto APIでECDH鍵交換を用いた暗号化を使ってみる - Qiita
- クラウド時代の暗号化技術論(3):鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 (1/3) - @IT
- 暗号スイートの暗号強度と、公開鍵のビット数の設定、及びRSAとECDHEでサーバ負荷の比較 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
- 自堕落な技術者の日記 : ECDHE - livedoor Blog(ブログ)
認証
RSA
- SageMathを使ってCoppersmith's Attackをやってみる - ももいろテクノロジー
- plain RSAに対する攻撃手法を実装してみる - ももいろテクノロジー
- RSAに対する適応的選択暗号文攻撃とパディング方式 - ももいろテクノロジー
- Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA) - ももいろテクノロジー
- RSA暗号運用でやってはいけない n のこと #ssmjp
- Kazuho Okuさんのツイート: "良い。これならoaepとか特定のpadding推奨した方が良いのでは? / “RSA暗号運用でやってはいけない n のこと #ssmjp” https://t.co/fHDTsmoIFF"
- Hironobu SUZUKIさんのツイート: "@knok gniibe先生は、RSAの計算時にあったサイドチャネルアタックの対応のために、計算コードを書き換えたのはその通り。ほぼそっくり入れ替えたんじゃないかな。しかもオリジナルより計算速度が上がったというオマケ付きで。"
- www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2313-Ja.txt
- Shigeki Ohtsuさんのツイート: "djb がやったのは libgcrypt のRSA実装に対するサイドチャネル攻撃(CVE-2017-7526)で’RSA自体を破ったわけじゃないよね。 https://t.co/bYB7ABLrDi"
- Hideyuki Tanakaさんのツイート: "もっともらしい雑誌とかにも、スパコンは早晩時代遅れになる技術であるから、量子コンピューターじゃないと意味がないし、量子コンピューターができればRSAのあらゆる鍵は数秒で分解できてしまうから、今の暗号は意味をなさなくなるとか、ため息しか出ないクソ記事乗ってるし、どうすればいいのか。"
- Hideyuki Tanakaさんのツイート: "てかそれを論外のクソ記事だと判断できる人がそんなにいないものなのか。それなのにそれを信用できる人が多いのはどうしてなんだ。世の中困難なことが多すぎる(´・_・`)"
- Hideyuki Tanakaさんのツイート: "量子コンピューターができるのを早晩とかいう人にとっては数十年が早晩なんだねとか、今のRSA暗号のビット数何ビットあるかわかっとる?とかショアのアルゴリズムはビット数の3乗に比例する時間がかかることとか、わかっとる?とかさあ(´・_・`)"
- Hideyuki Tanakaさんのツイート: "ゲート型量子コンピューター、そもそも数千ビットまでスケールできるのか自体わかってないじゃん。そりゃいつかはできるのかもしれんけど、少なくともブレイクスルーがまだまだ必要だろうし、ブレイクスルー待ちのものが「早晩」できるとかいうのはさすがに楽観的過ぎるわなあと。"
- Rui Ueyamaさんのツイート: "お、RSAをよく理解してない実装のせいで中国のQQブラウザがまったくインセキュアになっているっていう事例紹介、今月の話か。暗号の授業はタイムリーで面白いな。 https://t.co/XD8HYHtrIF"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "RSAのオレオレ実装、20年近く前の初代MagicConnect実装でも似た話があったかも(笑) (多倍長演算も含めて、完全自作RSAだった時代。今はパブリックなSSL実装に移行しているはず) https://t.co/PNUXropPDM… https://t.co/QFuj7i1OqH"
- RSA 暗号がようやく分かった気がしたのでまとめてみる - tsujimotterのノートブック
- RSA公開鍵暗号アルゴリズムを理解する
- RSAが公開鍵暗号アルゴリズムをパブリック・ドメインに | 日経 xTECH(クロステック)
- RSA暗号運用でやってはいけない n のこと #ssmjp
- はじめに – まいとう情報通信研究会
- Makoto Kato ︎︎さんはTwitterを使っています 「これ、OpenSSL/BoringSSLとNSSとCoreCryptoのaarch64上のベンチしてるだけなんだけど、RSAは愚直にアセンブラでmpi的なの書いてあるかどうかなだけかと。あとx86だとまた結果変わると思う https://t.co/qZ8wj6piLU」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「いまさらRSA速くしても意味がそんなにないから最適化コード書く理由はブラウザ的にはそんなに意味ない」 / Twitter
- ブラウザのW3C Web Cryptography APIのRSA鍵処理の速度比較をしてみた
- Miura HidekiさんはTwitterを使っています: 「最初に学ぶべきアルゴリズム FFTによる高速多倍長乗算」 / Twitter
ECDSA
- Pari/GPでECDH鍵交換、ECDSA署名をやってみる - ももいろテクノロジー
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ECDSAは、nonce漏洩・再利用・低品質乱数で秘密鍵復元の可能性があるので、EdDSA/Ed25519を使いましょうという話。(Pythonコード例あり) yubikeyのRNGで、ECDSA用nonce 256bitのうち80bitが予測可能なバグとかすごいな、、、 https://t.co/GNUW9UPasS」 / Twitter
- ECDSA: Handle with Care | Trail of Bits Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IPAでも2011年にECDSA+nonce問題のレポートあり。 ただこの時点での想定より、もっと積極的に「ECDSAは使わない方がいい」という印象あるな、、、 https://t.co/AZMQNh3KQ4」 / Twitter
- 情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそも、nonceが漏洩したらダメという条件ってECDSAくらいしか知らないなぁ…普通IVやnonceは再利用ダメだけど、公開前提なのが多い印象。」 / Twitter
- 電子署名DSA/ECDSAの数的構造(1/2) - Qiita
- FUJI GoroさんはTwitterを使っています 「偉業 of 偉業だ…。証明書をRSAからECDSAに変えるだけで目に見えるほどの効果があるのかー。 / “数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog” https://t.co/l5YxsdJN5T」 / Twitter
- 数百万件残っていたHTTPのはてなブログを4年越しにすべてHTTPS化させた話 - Hatena Developer Blog
- 年末uさんはTwitterを使っています: 「TLS証明書に4096bit RSAの鍵ペアを使用するぐらいならECDSAに移行しようぜ。せやな。256bit ECDSAは3072-bit RSA相当。 / “TLS Key Size: Why Bigger isn't Always Better | Fastly” https://t.co/Jk5KGVrNah」 / Twitter
- TLS Key Size: Why Bigger isn't Always Better | Fastly | Fastly
- 年末uさんはTwitterを使っています: 「ECDSA-256とRSA-2048を比べると、署名生成はECDSAの方が高速だが、署名検証はRSAの方が高速。へーなるほど。 / “Is it Time for ECDSA Certificates?” https://t.co/h4cn2C3Q8t」 / Twitter
- Is it Time for ECDSA Certificates? | Fastly
Ed25519
- sshでed25519鍵を使うようにした - @znz blog
- OpenBSD、デジタル署名付きパッケージシステムに | マイナビニュース
- signify - sign and verify
- 七誌さんのツイート: "暗号とか以前に楕円曲線は難し過ぎて取り付く島がないと思っていたけど、Edwards曲線は高校数学でも扱えるような素性の良いものだそうです。 https://t.co/UQ74WzUdnN"
- Shigeki Ohtsuさんのツイート: "OpenSSLでed25519の実装が入りそう。現在curdleで仕様策定中のed25519署名の証明書サポートまで入るとは驚き。 / “WIP: Ed25519 support by snhenson · Pull Reque…” https://t.co/EOf2LUuFNU"
- Shigeki Ohtsuさんのツイート: "OpenSSLに Ed25519 が入ったでござるよ。 https://t.co/rx8rbTnLjS"
- Add Ed25519 algorithm. · openssl/openssl@06c6d05
- Shigeki Ohtsuさんのツイート: "ハッシュ計算中に電圧変化をかけて異なる署名を出力させてEd25519を破る技か。よく考えつくよなぁ。 / “How to defeat Ed25519 and EdDSA using faults” https://t.co/OgPN1Ne6xJ"
- How to defeat Ed25519 and EdDSA using faults
- kudelskisecurity/EdDSA-fault-attack: Fault attack agaisnt EdDSA demonstrated on an Arduino Nano board, allowing for partial key recovery and fake signatures.
- https://tools.ietf.org/rfc/rfc6979.txt
- https://tools.ietf.org/rfc/rfc8032.txt
- Shigeki Ohtsuさんのツイート: "乱数を使わないEdDSAのメリットが逆に狙われちゃってるのね。署名が決定的なのはやっぱり辛い部分もあるんか。"
- Shigeki Ohtsuさんのツイート: "おぉ、 djbのcurve25519, curve448(RFC7748)がNIST標準として採用されるのか。 / “Transition Plans for Key Establishment Schemes using Pu…” https://t.co/J3WBy3fs22"
- Fadisさんのツイート: "Curve25519は素数2^255-19を使う楕円曲線だからこう名付けられてるけど、この命名規則には19の部分が小さい整数でないと名前が長くなるという欠陥があって、2^448-2^224-1を使う楕円曲線は2^224-1を名前にそのまま書く事を断念してCurve448と名付けられた。結果Ed25519よりEd448の方が安全になった…"
- Fadisさんのツイート: "Curve25519と同じ命名規則で書くとCurve448はCurve44826959946667150639794667015087019630673637144422540572481103610249215"
- Fadisさんのツイート: "コードがでかいほどバグを作りやすくなるから、Curve25519を出来るだけ小さく実装してみたよ、という論文。読めるコードで18ツイート(英文でも140文字だった時代の論文なので1ツイート=140文字)、人間に厳しい書き方をすれば12ツイートで実装できた、としている https://t.co/A5aPGPNCl9"
- Wesley_Janssen___4037332___Curve25519_in_18_tweets.pdf
SSH
- RSA公開鍵のファイル形式とfingerprint - Qiita
- SSH 鍵 - ArchWiki
- ssh公開鍵認証方式で接続 | server-memo.net
- Fadisさんのツイート: "OpenSSHが自前のchacha20-poly1305とed25519を使ってOpenSSLなしで動くようになったのはOpenSSLのHeartbleedがあった後で、一見するとアレがきっかけで独自で暗号アルゴリズムを実装したように見えるんだけど、よく見るとchacha20-poly1305がOpenSSHに実装されたの、それより前なんだよな"
代数幾何学
- ồu🍆chí🍆minhさんはTwitterを使っています 「代数幾何なんて工学部では使わんやろと思っていた僕が馬鹿でした.マジで勉強しないといけない気がしてきた.」 / Twitter
- 🦝❄いなむのみたまのかみ🦊🌸さんはTwitterを使っています 「@kkZ3kTRT 代数幾何学なんてどこで使うんだ」 / Twitter
- ồu🍆chí🍆minhさんはTwitterを使っています 「@mitama_rs 楕円曲線暗号とかですね.情報工学科で暗号理論やってる時点でおかしいのかもしれない.🤔」 / Twitter
- 🦝❄いなむのみたまのかみ🦊🌸さんはTwitterを使っています 「@kkZ3kTRT ヴァイエルシュトラス」 / Twitter
楕円曲線
- C言語で楕円曲線の勉強(1.有限体)
- 楕円曲線暗号をプログラムしたらこうなった – Euniclus
- 楕円曲線暗号の実装をしていました - プログラマのつれづれなるままに
- 23-5.pdf
- ss2017_x1a - NTSS_25_01_03_Page043to068.pdf
- 2019115-154319-386.pdf
- paper.pdf
- 楕円曲線と楕円曲線暗号 - Qiita
- 楕円曲線の数論について - 自分でも少しプログラムを組んで計算... - Yahoo!知恵袋
- 楕円曲線暗号の(比較的理解しやすい)入門書
- ecc_rev30r.pdf
- 伊豆 哲也 (Tetsuya Izu) - 資料公開 - researchmap
- 楕円曲線暗号の超簡単な理論の紹介 - Qiita
- IPSJ-MGN561108.pdf
- lecture7.pdf
- 技術勉強会(楕円曲線暗号)資料
- 自堕落な技術者の日記 : (小ネタ)楕円曲線暗号をなんとなく理解した気になるオススメのリンク4選 - livedoor Blog(ブログ)
- Microsoft Word - citp_report2017_akane_20180822b.docx - CITP_report2017_05_akane.pdf
- ytakanoさんはTwitterを使っています: 「楕円曲線を久々にやったが、こいつから群を構成できることを発見したのが凄すぎる。」 / Twitter
- ytakanoさんはTwitterを使っています: 「楕円曲線はどう見て楕円には見えないけれど、数学者にはあれが楕円に見えるらしい。」 / Twitter
- ytakanoさんはTwitterを使っています: 「これが離散楕円曲線だが、これも楕円に見えるらしい。 https://t.co/MNQ48DxnqO」 / Twitter
- ytakanoさんはTwitterを使っています: 「曲線とは」 / Twitter
楕円曲線はなぜ豊かな性質を持つのか
- 村上友哉さんはTwitterを使っています 「「楕円曲線はなぜ豊かな性質を持つのか?」というのは大変興味深い問いだと思います。 「穴の数が1個だから」という答えが僕の理解です。 例えば楕円曲線が持つ豊かな性質として、その幾何学と非常にマッチした「群構造」があります。ℂ/(格子) という構造を持つと言い換えても良いです。」 / Twitter
- 平田朋義さんはTwitterを使っています 「数学詳しい人に聞きたいけど、楕円曲線ってなんで豊かな性質を持つのですか?もっと高次式の曲線考えたらそれも楕円曲線みたいに豊かな性質持ちますか?」 / Twitter
- 平田朋義さんはTwitterを使っています 「人類はまだ高次の曲線の性質を知らないから楕円曲線の研究をやってるのか、もうすでにいろいろ分かった上で楕円曲線が特別に面白いのかどっちなんだろ。」 / Twitter
- putStrさんはTwitterを使っています 「@tomo3141592653 (ガチの代数勢でないので詳しくは知らないですが、)昔見た動画。 https://t.co/3bFMwyOiq1」 / Twitter
- 楕円曲線はなぜ特別か? @第10回日曜数学会 - ニコニコ動画
- 村上友哉さんはTwitterを使っています 「こういう性質は「穴の数が1」だから成り立つことです。 というのも、一般に穴の数がg個の「曲線」(正確に言うと代数曲線やリーマン面)はℂ^g/(格子)の部分集合とみなせることが知られています。 ここでℂ^g/(格子)は次元がgで群構造も持ちます。 これはg=1のときだけ1次元、つまり「曲線」になり、」 / Twitter
- 村上友哉さんはTwitterを使っています 「元々考えていた「曲線」に一致することが分かります。 そういう訳で「穴の数が1」というのはとても特別なことです。」 / Twitter
- 村上友哉さんはTwitterを使っています 「では穴の数gが2以上だとどうでしょうか。 このとき元の曲線自体は楕円曲線のような群構造を持ちませんが、代わりに上で取り上げたℂ^g/(格子)は群構造を持つのでした。 なので楕円曲線の性質を一般化するなら元の曲線よりもℂ^g/(格子)に対して行う方が筋が良さそうです。 このℂ^g/(格子)という対象は」 / Twitter
- 村上友哉さんはTwitterを使っています 「ヤコビ多様体やアーベル多様体と呼ばれる対象で、楕円曲線の拡張概念としてたくさん研究されています。」 / Twitter
- 村上友哉さんはTwitterを使っています 「上の話をまとめると、楕円曲線が持つ様々な性質のうち群構造については 穴の数が多い曲線に対しては一般化できず、代わりにℂ^g/(格子)に一般化できる ということです。 となると群構造以外の他の性質はどうかが気になりますが、どうやらあまり研究が進んでおらず未解明の部分が多いような気がします。」 / Twitter
- 村上友哉さんはTwitterを使っています 「例えば、楕円曲線が持つ豊かな理論の一つに楕円関数論がありますが、これを他の曲線に拡張する研究は他分野ほどは進んでいない印象があります。 (※楕円関数論の拡張については、岩手大学の大西良博先生が大変興味深い研究を精力的にされております。参考: https://t.co/t0b5n2Q4vi)」 / Twitter
- 06onishi.pdf
- 村上友哉さんはTwitterを使っています 「……というような事情から、 「高次式の曲線も楕円曲線のように豊かな性質を持つか?」 という元ツイ2番目の問いに対しては ・元の曲線は持たないがℂ^g/(格子)が持つ性質もある ・持つかどうか未解明な性質もたくさんある というのが私の持ちうる答えになります。」 / Twitter
- 村上友哉さんはTwitterを使っています 「※ここで「高次式の曲線」と「穴の数が多い曲線」を同一視して話をしています。一般に曲線の定義方程式の次数が上がると穴の数も上がります。」 / Twitter
- 村上友哉さんはTwitterを使っています 「ここで 「楕円曲線が豊かな性質を持つのは穴の数が1だからだ」 という最初の話に立ち返ってみたいと思います。 これは逆に言うと 「曲線の穴の数が1なら豊かな性質を持つ」 と言ってしまえそうです。 ※対偶ではないので論理的には間違っています」 / Twitter
- 村上友哉さんはTwitterを使っています 「そこで、抽象度の高い数学の理論では 「穴の数が1の曲線を楕円曲線と呼ぶ」 としてしまうのです! ※数学ではこういう逆転現象がよく起こります」 / Twitter
- 村上友哉さんはTwitterを使っています 「実際のところ、この定義は元々の楕円曲線の定義と等価であることが分かります。 ※楕円曲線の通常の定義は y^2 = ax^3 + bx^2 + cx + d という定義方程式を持つ曲線だ、というものです」 / Twitter
- 村上友哉さんはTwitterを使っています 「「穴の数が1の曲線を楕円曲線と呼ぶ」 という定義を採用することのメリットは、適切な高次元化の方向性を考えやすくなるということです。 この方向性での高次元化としてカラビ・ヤウ多様体というものが考えられ、現在非常に活発に研究されています。 ※1次元カラビ・ヤウ多様体が楕円曲線」 / Twitter
- 村上友哉さんはTwitterを使っています 「まとめると、 「楕円曲線はなぜ豊かな性質を持つのか?」 という問いは 「楕円曲線の穴の数が1だから」 と答えることができ、しかもこの答えを掘り下げることで現在最前線で研究されている概念(カラビ・ヤウ多様体)に到達できる、ということになります。 元の問いの重要性が分かると思います。」 / Twitter
- 村上友哉さんはTwitterを使っています 「ここで書いたことは脇道に面白い話題がとてもたくさん転がっていて、本当はそれも話したいのですが、思っていたよりずっと分量が長くなってしまったのでここで打ち切ります。 この話題で僕が大好きなモジュラー曲線について触れないのは僕にとって有り得ないことなのですが、ぐっとこらえました(笑)」 / Twitter
- 南泰裕さんはTwitterを使っています 「@MurakamiMath これは興味深いですね。 楕円と言えば建築ではバロックですが、施工上の技術的課題から、厳密なので楕円ではないものも多いのが、また興味をそそります。 サイクロイドについても、建築でときどき議論になりますが、むしろこっちの方が実例があげやすいかも。」 / Twitter
- 村上友哉さんはTwitterを使っています 「@yas_minami ご興味を持って頂けて嬉しいです。 建築と数学の関係というのは素人ながら大変興味をそそられます。 バロック建築で楕円形が用いられるのは知りませんでした。画像検索してみましたがどれも美しいですね。 なお、ここで書いた「楕円曲線」は「楕円」とは完全に別の概念なのです。」 / Twitter
- 村上友哉さんはTwitterを使っています 「@yas_minami ややこしいので本当は別の用語を充てるべきなのですが、既に定着してしまって今更変えるわけにもいかないという事情があります。 ここで書いた「楕円曲線」は「楕円」というよりむしろドーナツ形やドーナツを輪切りにした時に出てくる図形に概念的には近いものになっています。」 / Twitter
- 南泰裕さんはTwitterを使っています 「@MurakamiMath なるほど、そうなんですね。 ご教示ありがとうございます。 私たち専門外の者には、なかなか理解が難しいですが、非常に興味深いです。 今度、幾何学専門の先生に、いろいろ教えてもらう予定です。どこまで理解できるか、心配ですが。」 / Twitter
- 楕円曲線暗号アルゴリズムを理解する
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題は1971年にSteve Cookによって提案された。あれから50年、P vs NP問題は依然として最も重要な問題のひとつである。アルゴリズムの進展により、最近ではP≠NPであってもそれなりの答えが出せるようになった。だがもしP=NPだった場合、公開鍵暗号は不可能になる。 https://t.co/wzPRQ9Po9o」 / Twitter
- Fifty Years of P vs. NP and the Possibility of the Impossible | January 2022 | Communications of the ACM
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「ふと気になってOpenSSLのspeedコマンドでCurve25519やCurve448って測定できるのかな?と思ってやってみた。 ついでなのでメジャーなところの楕円曲線別の性能は以下のとおりです。 Prime521が劇的に遅い笑 ここまで遅いと心配になる。 https://t.co/eM85Z9vuXM」 / Twitter
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「実施コマンドはこんな感じです。 ./openssl speed ecdhp256 ecdhp521 ecdhx25519 ecdhx448」 / Twitter
- SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか? - GIGAZINE
- 14年間気づかれなかった暗号の脆弱性を発見、焦りと戦ったNECの若手研究者 | 日経クロステック(xTECH)
- デジタル署名: 数学弱者のためのDSAの原理 - Qiita
- herumiさんはTwitterを使っています 「「公開鍵暗号」は秘匿化のための「公開鍵で暗号化して秘密鍵で復号する」暗号方式PKE(Public Key Encryption)と、PKEの他に鍵共有や署名などの「公開情報と秘密情報を組み合わせて使う」暗号技術全般を指すPKC(PK Cryptography)の二重の意味で使われると理解するのが重要。 https://t.co/snBSDs9jmK https://t.co/pyLxHT1HZD」 / Twitter
- herumiさんはTwitterを使っています 「この意味を混用して説明するとよく分からない、または間違ったことになる。で、ビットコインやTLS1.3などではPKEは登場しない(楕円曲線暗号ECCもPKEの意味は使われない)、ということを次回以降で説明します。 https://t.co/bamX88xxw5」 / Twitter
- Airbnbのオープンソース Ottr: サーバレス公開鍵インフラストラクチャーフレームワーク
- コミさんさんはTwitterを使っています 「アドベントカレンダー書いた! Rustで楕円曲線暗号を作った! 読んでね! https://t.co/BDxfLGpALV」 / Twitter
- Rustで作る公開鍵暗号 - hey Product Blog
- mod_poppoさんはTwitterを使っています 「RTした記事のFieldElement<T>の乗算、もうちょっとどうにかならんのか感がある(素性のわからない型Tをベースにしていてprimeのビット数を制限しなかったらそうならざるを得ないのか)」 / Twitter
- mod_poppoさんはTwitterを使っています 「図示されている楕円曲線の例の中に楕円曲線じゃないやつが混じってる気がしてWikipediaを見に行った」 / Twitter
対称暗号
AES
AES-NI
- マスターIT/暗号技術:第3回 AES暗号化 - @IT
- インテル® AES New Instructions (インテル® AES-NI) | iSUS
- インテル® AES New Instructions およびインテル® セキュアキーによるインテル® データ・プロテクション・テクノロジー
- AES-NI - Wikipedia
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「Roccaの処理速度はAES-GCMの4.5倍だとぅ...。 爆速ですな...。 性能比較を確認すると、RoccaはAES-NIで利用できる命令セットも利用できるように設計されているのかな? 気になりますっ!! #Beyond5G #6G #Authenticated_Encryption」 / Twitter
- ITmedia NEWSさんはTwitterを使っています 「KDDI総研ら、世界最速の暗号アルゴリズム開発 6G時代見据え https://t.co/KCmM4cDK6M https://t.co/rYhurXjXIh」 / Twitter
- KDDI総研ら、世界最速の暗号アルゴリズム開発 6G時代見据え - ITmedia NEWS
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「中身はこれですねっ! ---- 2E3-2: AES-NIを用いたBeyond 5G向け認証暗号Roccaのラウンド関数の最適性の検証 ◎ 竹内 信幸 (兵庫県立大学), 阪本 光星 (兵庫県立大学), 五十部 孝典 (兵庫県立大学/国立研究開発法人情報通信研究機構/国立研究開発法人科学技術振興機構) https://t.co/TZjSf5t4GD」 / Twitter
- コンピュータセキュリティシンポジウム2021(CSS2021)
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「FSE2022の論文はコレか〜。 Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G, https://t.co/ihV7pdY0IJ」 / Twitter
- Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G | IACR Transactions on Symmetric Cryptology
- libtom/libtomcrypt: LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
- kokke/tiny-AES128-C: Small portable AES128 in C
- jhjin/OpenAES: OpenAES library exported from
- AES implementations - Crypto Wiki - Wikia
- Rijndael Encryption Algorithm
- Poly1305-AES: a state-of-the-art message-authentication code
- BRG Main SIte
- BrianGladman/AES: AES code
- License Library - Brian Gladman License
- License Library - Brian Gladman Dual BSD-GPL
- 5100d_answer.pdf
- Advanced Encryption Standard - Wikipedia
- Shigeki Ohtsuさんのツイート: "GCM で使う Intel CPU命令 PCLMULQDQ です。 https://t.co/Brr9cwj375 #html5j_e"
- CLMUL instruction set - Wikipedia
- AESで不正な鍵で復号した時に何が起きるか - Qiita
- 「katagaitai CTF勉強会 - 関東|hard」の復習(脆弱なAES暗号の攻撃法) - Qiita
- AESを使ってみる - Qiita
- Rockridgeさんのツイート: "Fx56:AES-GCMアルゴリズムの処理パフォーマンスが、Mac版やLinux 32bit版、Intel AVXをサポートしない環境などで大幅に向上した。TLS暗号として頻繁に用いられるアルゴリズムだという。 / “Impro…” https://t.co/Ekkq7UG8RV"
- Improving AES-GCM Performance | Mozilla Security Blog
- Shigeki Ohtsuさんのツイート: "AESだけなら鍵長を増やせば対策できるがGCMが破られるのか。CCMならいけるが性能が出ないんだよなぁ。 / “量子コンピュータが共通鍵暗号の安全性に与える影響” https://t.co/0pHvQw8txT"
- 量子コンピュータが共通鍵暗号の安全性に与える影響
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、AES128よりAES256の方が攻撃しやすいパターンがある、という話題が出ていたが、結局、AES256の方が多数派になりつつある印象。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いや、少なくともwebサイト暗号化に関してはそんなことは無かった。 google/amazon/facebookなどは、TLS1.3に対応しつつ、AES128GCMを使っている様子。」 / Twitter
- Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
- Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (2/2)
- OpenSSLでAES暗号したときのPadding
- なぜ1億台のSamsung端末にセキュリティ上の欠陥が存在したのか - GIGAZINE
ChaCha20
- Kazuho OkuさんはTwitterを使っています: "「暗号計算にかかる時間が鍵によって異なってはならない」ってのセキュリティ要件ですよ"
- GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた - sonickun.log
- RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
- Salsa20 - Wikipedia
- Shigeki OhtsuさんはTwitterを使っています: "@voluntas AES-NIが使えない環境でこそメリットが出ます。仕組みが単純なのでAES-GCMと同等かそれ以上の速度が出ます。BoringSSLだとARM用のasmがあるので3倍ぐらい速いです。アンドロイドChromeはChaCha20を優先してCipher出してます。"
- Nginxでchacha20 poly1305を有効にする - ASnoKaze blog
- FadisさんはTwitterを使っています 「昨日カーネル/VMの懇親会でchacha20(salsa20)がpaperの段階でARMを意識してる話したけど、実際のpaper読み返してみたらARMとは明言してなくて、乗算が値によってサイクル数が変わるプロセッサがあって、そういうところに実装するときタイミングリークを防ぐのが辛いから乗算やだって言ってた」 / Twitter
- Ryoma ItoさんはTwitterを使っています 「ePrintに出しました。TLSで用いられているストリーム暗号ChaChaに対する安全性評価についてまとめた論文です🧐」 / Twitter
- IACRさんはTwitterを使っています 「#ePrint PNB-based Differential Cryptanalysis of ChaCha Stream Cipher: S Miyashita, R Ito, A Miyaji https://t.co/MEKOEXzPyn」 / Twitter
- Cryptology ePrint Archive: Report 2021/1537 - PNB-based Differential Cryptanalysis of ChaCha Stream Cipher
Rocca
- Kazuho OkuさんはTwitterを使っています 「「PCやスマートフォンのCPUで高速に処理可能な演算(AES-NIを含む)を主な構成要素とし、それらを効率よく並列処理することで高速性を実現。AESがAES-NIを利用した場合でも約4.5倍の高速化を達成」 / https://t.co/EErlW8MIQS」 / Twitter
- 世界最速 Beyond 5G/6Gに向けた超高速暗号アルゴリズム「Rocca」を開発 | 株式会社KDDI総合研究所
- Kazuho OkuさんはTwitterを使っています 「どういうことだろう? 比較対象になってるOpenSSLのAES-GCM実装は現実的なレコードサイズにおいてAES-NIの理論限界値の70%程度の速度は出してくるから、この説明は良く分からない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マルチコア向けの最適化が入ってるという話かな。OpenSSLの実装はシングルスレッド前提だから、複数コアで並列処理すれば速度上がるというのはありそう。AES-GCMでも複数レコードを同時に暗号化すればいい気はするけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「まあそのへん、L2だと低レイテンシかつ高スループット要求から複数レコード並列暗号化じゃダメなユースケースとかはありうるんだろうなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ありがとうございます。論文が出てるんですね、見てコメントすべきでした。256 bitにつきaesencを6回だから、128 bitにつき14回のaes256よりずっと軽いですね。なるほどこういう構造が提案されているのか… https://t.co/sDfOdGb1H7」 / Twitter
- View of Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G
- Takamichi Saito, 齋藤孝道さんはTwitterを使っています 「推察ですが、アルゴリズムが、AES265のラウンド数14に比べRoccaは1回?というストリームミング暗号方式なので安全性が確認されば圧倒的に早そうです。Roccaラウンド関数で、SubBytes等の処理をAES-NI命令で置き換え可能という仕組みのようなので、同条件で並列化したらAESより早そうではありますね」 / Twitter
- Takamichi Saito, 齋藤孝道さんはTwitterを使っています 「現状、TLS1.3で利用可能なAEADストリーミング暗号はCHACHA20-POLY13だけなので、この後、Roccaは期待値が高まりそう」 / Twitter
- 3DESの扱いが変わってきた - 生存報告
- Microsoft、IE11とMicrosoft EdgeのRC4暗号を計画より4か月遅れて無効化 | スラド セキュリティ
- Kazuho OkuさんはTwitterを使っています 「暗号ライブラリ自前実装してはならぬ論よくわからないというか、暗号アルゴリズムを自作してはいけない、は正しいし、公開鍵暗号の安全な自前実装が難しいのもそうなんだけど、ブロック暗号はそんなに難しくないと思うのよね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho それはkazuhoさんだから言えるセリフで、僕はたとえ正しいアルゴリズムが目の前にあっても、side channel attackその他に耐性のある実装をできる自信はないです…^^;」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda 最近の共通鍵暗号、テーブルも分岐も使わなくてすむように設計されてると思うんですよね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 安全だと判断できる十分な知識を自分が持っているという確信がないので躊躇してしまいます。 データの値に依存して実行時間の変わる演算を行っていないかは判断できそうな気はするんですが、値によって消費電力が観測可能なレベルで微妙に変わったりしないかはそもそも知らないですし…」 / Twitter
- 成瀬さんはTwitterを使っています 「「ブロック暗号は簡単!」って言いながらECBモードで NULパディングする未来しか見えない」 / Twitter
- daem0nc0reさんはTwitterを使っています 「RC4とSalsa20がアルゴリズムからしっかり勉強できるリバースエンジニアリングの記事 https://t.co/SIsrVWB3sd」 / Twitter
- Reverse Engineering Crypto Functions: RC4 and Salsa20 | GoggleHeadedHacker
メッセージ認証
Poly1305
- Poly1305 - Wikipedia
- Poly1305-AES: a state-of-the-art message-authentication code
- floodyberry/poly1305-donna: Implementations of a fast Message-Authentication Code
- メッセージ認証符号 - Wikipedia
- HMAC - Wikipedia
署名
QR-UOV署名
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「NIST PQCコンテストの3rd Round ファイナリストなデジタル署名アルゴリズム Rainbow と比較して、公開鍵サイズを削減した方式が 東大&九大&NTTからAsiacrypt 2021で発表された模様! ちょー素敵!」 / Twitter
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「Asiacrypt2021に採択された論文は以下のとおり。 ---- A New Variant of Unbalanced Oil and Vinegar Using Quotient Ring: QR-UOV Hiroki Furue, Yasuhiko Ikematsu, Yutaro Kiyomura, Tsuyoshi Takagi The University of Tokyo, Kyushu University, NTT Social Informatics Laboratories」 / Twitter
- ITmedia NEWSさんはTwitterを使っています 「量子コンピュータでも解読できない暗号技術、東大らが開発 https://t.co/AxTo08hTxJ https://t.co/vWkDeu4HUi」 / Twitter
- 量子コンピュータでも解読できない暗号技術、東大らが開発 - ITmedia NEWS
- エリー号さんはTwitterを使っています 「@itmedia_news 素人なのでよく分かりませんが、原理的に考えると ・量子側の解読が総当り制として ・公開鍵の候補数が天文学的な大きさで ・公開鍵のファイルサイズが小さい という事なのかな」 / Twitter
- 小原美香子さんはTwitterを使っています 「@itmedia_news 与えられた数字の山から『ある数字Xで割ったあまりがY』になる条件を満たす物を抽出しなさいという話かな。こーれは素因数分解するより難しい。」 / Twitter
- ランゲルハンスさんはTwitterを使っています 「@alen_bluebee @itmedia_news ほんとに素因数分解より難しいでしょうか?」 / Twitter
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「PQCな署名アルゴリズムについて、検討してくれていてありがたいです。 自分たちでも評価してみたいけど、社員の皆の衆...いかがお過ごしですか? https://t.co/aptprtWpue」 / Twitter
- Sizing Up Post-Quantum Signatures
- VさんはTwitterを使っています 「@satorukanno おー、面白そうですね。」 / Twitter
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「@voluntas 実際にプロトコルへ組み込むと、現在使われている暗号技術と鍵のデータサイズや暗号文サイズが異なるので見直さないといけないところはありそうなんですよね。 なので、暗号プリミティブだけでもさまざまな観点から計測して眺めてみると面白いかなと思ってみたりしています笑笑」 / Twitter
- herumiさんはTwitterを使っています 「後の勉強会でも触れるつもりですが、TLSの文脈では楕円ElGamalだけでなく公開鍵暗号PKE全般が前方秘匿性と相性がよくないから使われなさそう。署名は署名鍵が漏洩しても、それまでの検証が無駄になるわけではない。だからECDH鍵共有+署名+AEADの流れなんじゃないかと。 https://t.co/gCCnRv8PTw」 / Twitter
- 署名方法や仕組みから知る、電子契約サービスの選び方 | GMOグローバルサインカレッジ
- 「Java」に署名検証がフリーパスになってしまう危険な脆弱性 ~影響は計り知れず - 窓の杜
- CVE-2022-21449: Psychic Signatures in Java – Neil Madden
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Java 15~18で発見されたECDSA署名検証の致命的なバグ。ECDSA署名の検証には r, sの2つの値を使うが、r=s=0の場合はつねにmodが等しくなり署名は正しくなってしまう。Javaはこのチェックを忘れていた! そのためどんな検証でも通ってしまう「特殊な」署名を作成することが可能。 https://t.co/2AjeZTsop3」 / Twitter
- 【セキュリティ ニュース】「Java SE」脆弱性の詳細が明らかに - 発見者が影響の大きさ指摘(1ページ目 / 全1ページ):Security NEXT
- RSA署名を正しく理解する
ハッシュ
SHA-1
- Google Online Security Blog: Announcing the first SHA1 collision
- GoogleとCWI、SHA-1衝突に成功、ハッシュ値が同じ2つのPDFを公開 -INTERNET Watch
- Googleら、暗号学的ハッシュ関数SHA-1の衝突攻撃に成功 〜異なるファイルに同一ハッシュを持たせてなりすまし - PC Watch
- GoogleのSHA-1のはなし
- SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」 | スラド セキュリティ
- 【翻訳】ウェブの世界における SHA-1 の廃止 - Mozilla Security Blog 日本語版
- IIJ Security Diary: SHAttered attack (SHA-1コリジョン発見)
- Rockridgeさんのツイート: "Firefox 51以降、SHA-1証明書を用いた場合は安全でない接続と判断される。この設定が適用されるユーザーは、リリース後に段階を追って増えていく。ただし企業ユーザーがルート証明書をインポートした場合は例外となる。 / “P…” https://t.co/WQd5TRabbr"
- Google Developers Japan: SHA1 が初めて衝突
- GitHub Enterprise、SHA-1衝突を実行不能にするパッチを適用へ -INTERNET Watch
- Kazuho Okuさんのツイート: "sha1のコリジョンって、いったいどんだけデータためてたんだろ。2^64とかでもまだ1/2^40くらいの確率じゃないの? truncateしてたわけじゃないよね? データが同一だったわけでもないよね?"
- Kazuho Okuさんのツイート: "で、2^60個のsha1ハッシュ値の間でコリジョンを検出するためには、2^64バイト以上のストレージが必要なわけで"
- Kazuho Okuさんのツイート: "spares bit array使えばもうちょっと小さくなるかな"
- Shigeki Ohtsuさんのツイート: "あーぁ、SHA-1のChosen-Prefix衝突攻撃がおよそ1000万円以下程度のコストで可能になったとの論文。これでSHA-1証明書は完全に終わりです。 / “Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1” https://t.co/vpoSwrW7K8"
- Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1
- Shigeki Ohtsuさんのツイート: "あっ論文には詳しく書いていないですが2^63.4まで絞れたようです。https://t.co/TCcgMzyFPY > With some additional improvements that we are currently working on, we evaluate that one can find a chosen-prefix collision for SHA-1 with a budget of less than 100K US$… https://t.co/igcIjofPh6"
- Archive
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「2022年、最新のGPUを使ってSHA-1の衝突を発見するにはどれくらいかかる? 答え: 約5.4GPU-年、あるいはGPU30個で2か月。AWSを使った場合は2千万円 ($176k) 程度かかる。 https://t.co/Hj9oEf7haY」 / Twitter
- sha 1 - How easy is it in 2022 to find a SHA1 collision? - Cryptography Stack Exchange
SHA-2
- Shigeki Ohtsuさんのツイート: "SHA-256 の衝突って f(x) = x の固定点のやつじゃないのかい?"
- This is not a vulnerability, or worlds first · Issue #1 · laie/WorldsFirstSha2Vulnerability
- アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「実際に動かしながら見れるSHA-256の計算アルゴリズム。各ステップの解説つき。 https://t.co/nxf3o5dFzX」 / Twitter
- Sha256 Algorithm Explained
SHA-3
- Shigeki Ohtsuさんのツイート: "OpenSSLに SHA3 が来るのね。 AVX2/AVX512やらarmv4/v8など各種CPUのasm対応済 。どの程度性能が出るのかな。 / “Wire SHA3 to EVP. by dot-asm · Pull Req…” https://t.co/MJA0tXRlaR"
- Wire SHA3 to EVP. by dot-asm · Pull Request #3943 · openssl/openssl
BLAKE3
- FadisさんはTwitterを使っています 「BLAKE3のリファレンス実装の最初の安定版BLAKE3 1.0がリリースされるらしい。BLAKE3は流行りの暗号学的ハッシュアルゴリズムBLAKE2の後継で、計算手順をSIMD命令を使って並列化しやすい物にする事で、BLAKE2bと比較して3倍から6倍、BLAKE2bp比で2倍から4倍程高速に計算できる https://t.co/hgKaVbjsmJ」 / Twitter
- BLAKE3 Cryptographic Hash Implementation Preparing For v1.0 Release - Phoronix
- FadisさんはTwitterを使っています 「BLAKE3を巡っては、SIMDでスケールするというBLAKE3の特徴を活かして、GPUで爆速でハッシュ計算しようぜ、という試みもなされている https://t.co/OQ6KSOENoU」 / Twitter
- BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation - Phoronix
- ドッグさんはTwitterを使っています: 「暗号学的ハッシュ関数 BLAKE3.MD5, SHA-*, BLAKE2 より遥かに高速で,MD5 や SHA-1 と違い安全.任意の並列度(マルチコアや SIMD)で計算できる.SHA-2 や BLAKE2 と違い,1つのアルゴリズムで全ての platform で高いパフォーマンスが出せる | 'BLAKE3' https://t.co/6iN7yDMtI8」 / Twitter
- BLAKE3-team/BLAKE3: The BLAKE3 cryptographic hash function
- 暗号学的ハッシュ関数「BLAKE3 1.0」が公開 | OSDN Magazine
- 本の虫: GPGPU時代のハッシュアルゴリズム
- Kazuho Okuさんのツイート: "電話番号入れたら登録済かどうかわかるんだろうし、10^9とか総当たりで解けちゃうレベルでは? > 「暗号鍵と共に不可逆暗号化(ハッシュ化)して保存されている為、運営者サイドでも電話番号はわかりません」 / “キャンセルDB” https://t.co/nLrEmtmS9F"
- Kazuho Okuさんのツイート: "今はAESNIよりも、TLS 1.3等で多用されてるHKDFがIntel SHA Extensionsでどれだけ高速化されるかが気になってる"
- HKDF - Wikipedia
- HMACを利用した安全なAPIキーの送受信 | yohgaki's blog
- ハッシュ(HMAC)を使って弱い鍵を強い鍵に変える方法 | yohgaki's blog
- 暗号学的ハッシュを安全に使うには? – yohgaki's blog
- SHA_Performance_Review_In_UEFI: UEFI SHA1/SHA256 perf tests with C (and asm) | Firmware Security
- FadisさんはTwitterを使っています 「digestpp: C++暗号学的ハッシュ関数ライブラリ。header-onlyで実装されたクラスにrangeやstreamを食べさせるとハッシュになって出てくる。md5 sha256といった定番の関数の他、blake2 sha3 skeinといったナウめの関数や、streebogのような変わり種の関数も備える https://t.co/jDAvmKvqtH」 / Twitter
- kerukuro/digestpp: C++11 header-only message digest library
- 総当たり攻撃時のパスワード最大解読時間の表(by 上野宣)について分析した - Qiita
- CRYPTO2004 レポート ハッシュの厄日 – とりあえずノートがわりに書いてます
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「bcrypt、古い Blowfish拡張がコアなのは大丈夫なのかしらん?と思うことある。 (オリジナルのBlowfishは、64bit block、1/4096で弱鍵が発生、14ラウンドまで攻撃可能、みたいな弱点ある) https://t.co/t6ucqQ6dRY」 / Twitter
- bcrypt - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「bcrypt vs SHA512 では、GPU攻撃にはbcryptに軍配(FPGAには…?)という話など。 https://t.co/Tc1vxEaL8C」 / Twitter
- security - SHA512 vs. Blowfish and Bcrypt - Stack Overflow
Key Transparency
- Google Developers Japan: 透過性によるセキュリティ - Key Transparency
- google/keytransparency: A transparent and secure way to look up public keys.
KMIP
- クラウド利用における複数拠点の課題と「KMIP」という潮流 - IT、IT製品の情報なら【キーマンズネット】
- shindo.pdf
- OASIS Key Management Interoperability Protocol (KMIP) TC | OASIS
- Key Management Interoperability Protocol - Wikipedia
- IBM Knowledge Center - Key Management Interoperability Protocol を使用した鍵管理
- 自堕落な技術者の日記 : OASIS KMIP 鍵管理プロトコル - livedoor Blog(ブログ)
- ニュース - HP,RSA,IBMなど,暗号鍵管理仕様「KMIP」を標準化団体OASISに提出:ITpro
mcl
- herumi/mcl
- ペアリング暗号ライブラリmclを使ってみる - Qiita
- ペアリングの双線形性をmclを用いて確認する - Qiita
- 汎用性と高速性を目指したペアリング暗号ライブラリ mcl
- 加法準同型暗号を用いて暗号化したまま画像のエッジ検出をする - Qiita
HACL*
- Rockridgeさんのツイート: "Firefox 57には暗号プリミティブが公式に検証済みであるHACL*暗号ライブラリが導入される。これによりTLSの鍵交換に用いられるCurve25519アルゴリズムをサポートし、セキュリティの強化と高速化の両立が可能になった。 https://t.co/oQQFfUwXLN"
- Verified cryptography for Firefox 57 | Mozilla Security Blog
- mitls/hacl-star: HACL*, a formally verified cryptographic library written in F*
zk-SNARK
- Rui UeyamaさんはTwitterを使っています: 「暗号通貨の授業かなり興味深くなってきた。ゼロ知識証明を使って、公開情報から送金記録の正しさ(だけ)を誰でも確認できるのに、誰が誰にいくら送ったのかは全然わからないZCashというものの仕組みを学ぶみたいな。こういうのはちょっと痺れる。」 / Twitter
- herumiさんはTwitterを使っています: 「@rui314 zk-SNARKですね。数年前の提案者たちによる実装では、私のライブラリが使われていたりしました。 https://t.co/ym3QOVCgrK 和書だと今年発売された岡本龍明さんの『現代暗号の誕生と発展』が詳しいです。」 / Twitter
- scipr-lab/libsnark: C++ library for zkSNARKs
- Rui UeyamaさんはTwitterを使っています: 「@herumi まさにそうです。ここらへん、概念だけは知っていたようなものが見事にうまく組み合わされて、一見矛盾しているような要件をちゃんと満たしているシステムが作られていてかなり楽しいですね。あとnon-interactiveなゼロ知識証明というのがあるのはそもそも知りませんでしたが・・。」 / Twitter
- herumiさんはTwitterを使っています: 「@rui314 パズルみたいで楽しいですね。 私の去年の勉強会の資料 https://t.co/Jb3ngtSGmm やOsukeさんの https://t.co/YuJyVeVOa3 なども参考になるかもしれません。」 / Twitter
- Privacy on Blockchain - Speaker Deck
blog
- How Firefox Sync keeps your secrets if TLS fails – Mozilla Tech – Medium
- RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog
- 本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール
- 「月を入力すると日を返す多項式」と中国剰余定理 - tsujimotterのノートブック
- 認証付き暗号の鍵利用上限について - ASnoKaze blog
News
- グーグルが耐量子計算機暗号の実験を開始 - ZDNet Japan
- 世界で誰にも解読されていない暗号問題を初めて解読! | 株式会社KDDI研究所
- NICT NEWS
- 量子コンピュータでも解読が困難な新暗号方式が国内で開発 - PC Watch
- NTT、世界最高性能の耐量子公開鍵暗号を実現する新手法 ~CCA安全性を付与して量子コンピュータでも改竄不可能に - PC Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「既に把握済のNSA「…NEC許すまじ」とか思ってたりして。 https://t.co/acgT9LbZFp ちなみに、OCB2は初めて知った…後で勉強。 ECB/CBC/OFB/CFB までは古典、定番がCBCだったが脆弱報告が増えるにつれCTRに交代、さらに進化したGCMがメジャーに、という印象。 あとファイル暗号専用でXTXあたり。」 / Twitter
- NEC、共通鍵暗号化方式OCB2に脆弱性を発見 - 週刊アスキー
POSTD
- JOSEは、絶対に避けるべき悪い標準規格である | プログラミング | POSTD
GitHub
- LoupVaillant/Monocypher: An easy to use, easy to deploy crypto library
- B-Con/crypto-algorithms: Basic implementations of standard cryptography algorithms, like AES and SHA-1.
- skeeto/enchive: Encrypted personal archives
- Keccak Team
- gvanas/KeccakTools: KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「素敵な講義資料〜。 暗号技術の標準化について知ることができてよき。 IETFがたくさん出てくるのでテンションが上がるっっ https://t.co/T8phpLg69K」 / Twitter
- junkurihara/lecture-security_engineering
Qiita
- 準同型暗号の最前線1(入門編) - Qiita
- 準同型暗号の最前線2(原理編) - Qiita
- 準同型暗号の最前線3(理論編) - Qiita
- 2つの公開鍵暗号(公開鍵暗号の基礎知識) - Qiita
- 中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita
Twitter
TLS 1.3
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、DH や ECDH で共有される値の性質(何らかの偏りが起きてないか等)の研究ってあるのかな…?」 / Twitter
- herumiさんはTwitterを使っています 「ゆるい記事ではあるけどTLSの知識が古くなってないか是非確認してほしい。 >静的RSA(共通鍵暗号用の秘密情報をRSA暗号で暗号化)やAES-CBCは廃止され、楕円曲線は暗号化ではなく鍵共有や署名として使われ、ブロック暗号AESはストリーム暗号の擬似乱数生成器として使われる。 https://t.co/SXoybUNpxC」 / Twitter
- herumiさんはTwitterを使っています 「「イラストで正しく理解するTLS 1.3の暗号技術」というゆるい記事を書いてみました。Zennデビュー。 https://t.co/FNSL93xiU4 #暗認本」 / Twitter
- イラストで正しく理解するTLS 1.3の暗号技術
- herumiさんはTwitterを使っています 「@shirouzu ECDHは0以外の全ての巡回群の値をとりますが、楕円曲線の点はFp^2の全ての値を取れるわけではありません。鍵導出関数HKDFはエントロピーはあるけど一様ランダムとは限らないIKM(Input Keying Material)をとり、十分ランダムな出力をするよう考慮されています。https://t.co/Q7BjAlE9kD」 / Twitter
- RFC 5869 - HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@herumi おぉ、ありがとうございます! 一様でない点に関しては、鍵導出関数側で配慮していると。」 / Twitter
- Android端末のルート権限を一瞬で奪取するムービーが公開される、Linuxの脆弱性「Dirty Pipe」を用いた攻撃が現実的に - GIGAZINE
@herumi
- herumiさんのツイート: "1回だけ乗算可能な加法準同型暗号の論文「Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly」がASIACCS 2018に採択された。 https://t.co/Vaz2msN9dd 解説と実装はこちら https://t.co/2Ou4m5sh5G https://t.co/C58377CxZj"
- ACM ASIACCS2018 Program – ASIACCS 2018
- ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
- she-wasm | Two-level homomorphic encryption for Node.js by WebAssembly
- herumiさんのツイート: ".@hikalium 帰り話した暗号化したままテーブル引きのデモはこちら。https://t.co/ONiAYWLRBD 数字をいれて[問い合わせる]で入力値を暗号化してサーバに送り、サーバは暗号化したまま対応する桁の円周率のテーブル引きをして暗号文を返し、クライアントでそれを復号します。https://t.co/y8dpLaZcOO"
- 紛失通信デモ
- herumiさんのツイート: "CSS2018最優秀デモンストレーション賞受賞しました。ありがとうございます。 デモの一つ、紛失通信による円周率100万桁の問い合わせのソースコードはこちら。 https://t.co/dsWf1WuJkQ https://t.co/xZSQP3DBsn"
- herumi/ot-by-l2he: Oblivious Transfer demo by L2-HE
- herumiさんのツイート: "CSS2018の発表資料「レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明」を公開しました。 https://t.co/6nO9tikJiY https://t.co/GCHTSvNEht"
- herumiさんのツイート: "今年のラボユースは暗号系3人とOS系一人担当。 AESを一から実装したい人には有限体や拡大体の解説などから始めました。もう一人は楕円曲線暗号をやりたいので射影座標やC++の解説など。最後は完全準同型暗号を実装したいガチな方。格子暗号は実装したことないので私も一緒に勉強させてもらおう。"
- herumiさんはTwitterを使っています: 「SCIS2020 2C3 「ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用」の発表資料を置きました。 https://t.co/bmJIlvcEsu Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts https://t.co/62904XwYbX」 / Twitter
- Cryptology ePrint Archive: Report 2019/1233 - Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts
@jovi0608
- Shigeki Ohtsuさんのツイート: "Googleによる耐量子コンピュータの鍵交換暗号方式 CECPQ1が本格実験開始。 / “Google Online Security Blog: Experimenting with Post-Quantum Cryptogr…” https://t.co/I6quQhtuQU"
- Shigeki Ohtsuさんのツイート: "予想通りGoogleは CECPQ2 に djb の NTRU Prime を使う予定か。IP周りの問題は解消してるのかな。"
- Shigeki Ohtsuさんのツイート: "おぉ!n=60のLWEの格子暗号が解読されたか。60〜40までの殿堂入りは全部このチーム。GoogleのNewHopeはring-LWEでn=1024、将来的にどうなるか。 / “世界で誰にも解読されていない暗号問題を初めて解読…” https://t.co/gX9ujnCI6r"
- Shigeki Ohtsuさんのツイート: "EdDSA証明書を規定する仕様(curdle-pkix)がIESG承認されました。これでTLS1.2におけるDJB三部作(ChaCha20-Poly1305, X25519, Ed25519)の完成です。 https://t.co/5thG1tuXUP"
- [Curdle] Protocol Action: 'Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure' to Proposed Standard (draft-ietf-curdle-pkix-10.txt)
- Shigeki Ohtsuさんのツイート: "TLSより先にOpenPGP,S/MIMEでCBC/CFBがやられちゃったのかぁ。 / “EFAIL” https://t.co/IOJMsvjvCH"
- EFAIL
- Shigeki Ohtsuさんのツイート: "S/MIME、簡単に署名削除できちゃうって意味ないやん。CBCで偽造されても文句言えないわ。 "Every S/MIME signature can easily be removed from the multipart/signed mail body" https://t.co/QCgDUHRb0P"
- efail-attack-paper.pdf
- Shigeki Ohtsuさんのツイート: "GnuPGPはMDC(Modification Detection Code Packet)による完全性チェック機能があるけど、ちゃんとエラーチェックしてなかったり、パケット型を完全性確保のないやつに変えられたりできちゃうと。圧縮機能が入っている分S/MIMEより平文取得が難しいと。"
- Shigeki Ohtsuさんのツイート: "最終的にはAES-SIVを使うとかちゃんと認証付き暗号をサポートするような仕様にしなさいと。まぁ真っ当な流れだけど、これからどうするんだろう。"
- Shigeki Ohtsuさんのツイート: "10年以上前にAES-GCMをCMSで使うRFC5084が発行されていたのに、S/MIMEで使うような動きはなかったと、はぁ。 https://t.co/C6E6hp1wtg"
- OpenPGPとS/MIMEに脆弱性、暗号化メールを平文で取得可能に - INTERNET Watch
- 暗号化メールの内容が平文で漏洩する“EFAIL”脆弱性、欧州の研究者グループが発表 - 窓の杜
- PGPとS/MIMEによる暗号化メールに、Efail攻撃に対する脆弱性が見つかる
- Shigeki Ohtsuさんのツイート: "X25519はECDH(E)の鍵交換でed25519はEdDSAの署名。curdle-pkixで規定されたばかりのEdDSA証明書が出回らない以上EdDSAをガイドラインで使えるようにと求めてないのだが。あえて言及を避けているのか、本当に理解していないのか… https://t.co/SkM6IS342p https://t.co/2KaFKlD3Cj"
- Makoto Kato ︎︎さんのツイート: "CRYPTRECはNISTを参考にする組織なので、NISTのお墨付きがあればあのCRYPTRECのリストに入るけど、EdDSAってNIST的にお墨付きつけたんでしたっけ?EdDSAの背景がNISTが信用できないというところからはいったし。 (最近暗号関係追っかけてないから知らない)"
- Makoto Kato ︎︎さんのツイート: "HTTP/2、TLS1.3の時代になるんだから、そろそろ (NTTへの配慮があるにしろ) Camelliaをあの設定ガイドに入れるもはどうかなぁとは思ってはいる。ハードウェアで最適化できているものではないしね"
- Shigeki Ohtsuさんのツイート: "近い内に出るNIST SP 800-186で採用される予定です。https://t.co/WpfOswyv4j 今TLS関連のNIST更新はTLS1.3のRFC発行待ち状態な感じです。… "
- Makoto Kato ︎︎さんのツイート: "なるほど。それだったら、おそらく2019年 or 2020年のCRYPTRECの推奨リストにおそらく含まれることになるので、次?のTLSサーバー設定ガイドラインに入るんじゃないですかね。神田さん次第か… "
- Shigeki Ohtsuさんのツイート: "EdDSA証明書を発行するCAがないので特にガイドラインに入っていなくても問題ないと思います。RSA-PSSの証明書もまだ全然発行されていないし。CRYPTRECは署名方式だけ評価して楕円曲線自体の評価をせず、中途半端にNISTを参考にしているからこうなるわけで。… https://t.co/mY9RcOScf7"
- Shigeki OhtsuさんはTwitterを使っています: 「openssl ciphersでTLS1.3のCCMがリストされない理由は属性がNON_DEFAULTに指定されているから(あまり使われていないしそもそも性能悪い)。明示的にオプション指定で登録すれば表示されます。https://t.co/to3sMOLdJC / “SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/T…” https://t.co/VjT17vo5ck」 / Twitter
- SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/TLSのお話 〜 2回目 〜 TLS1.3 HTTP/2 のお話 | さくらのナレッジ
- Shigeki OhtsuさんはTwitterを使っています: 「@voluntas ストリーム処理ができないのでGCMやPoly1305より性能悪いんす。当初TLS1.3のcipherから外れていたんですがAEADなのに仲間外れはアカンということで入れられました。無線通信ではCCMが結構使われているようですね。」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています: 「@voluntas wikipedia見ただけですが、WPA2とかBluetoothLEに使われているようです。 https://t.co/OyutxMruhx 理由はよくわかりませんが、GCMより単純なのでLow Deviceでもちゃんと実装できるからじゃないですかねぇ。」 / Twitter
- CCM mode - Wikipedia
@fadis_
- Fadisさんのツイート: "SPDYはTLSの圧縮を使っていたが、HTTP/2ではこの機能の使用は禁止され、TLS 1.3では圧縮が廃止された。ユーザが任意のデータをコンテンツに埋められる場合、圧縮後のサイズから暗号化されたコンテンツの内容が予測できる為である https://t.co/BFGVHuK4Lx"
- CVE - CVE-2012-4929
- Fadisさんのツイート: "「圧縮後のサイズで何圧縮したかバレるぞ」と「圧縮に要した時間で何圧縮したかバレるぞ」は暗号化と圧縮が一緒に出てくる状況で簡単に踏むから常に気に掛けておきたい"
- Fadisさんのツイート: "気が付いたらブラウザのサンドボックスでx86バイナリを動かす技術の事じゃなくてナウい手法を実装した暗号ライブラリの事になっていたNaClさん"
- Fadisさんのツイート: "EFAIL: PGP等で暗号化されたメールを経路上で悪意ある第三者が改竄できる時に、暗号化されたパートの上下に「<img src="ほげほげ/」と「">」を加えてmultipart/mixedで合体させるメールに改竄すると、受信者が暗号化されたパートを復号した結果に上下のパートをくっ付けて出来たURLにアクセスしてくる"
- Fadisさんのツイート: "更にEFAILではOpenPGPがCBC modeを使っていて、しかも先頭のブロックが常にContent-type: multipart/signedである事を利用して、暗号化されたメッセージに<img src="を挿入できるCBC gadgetを作る。こちらの方法の場合mixedの結合が雑でないクライアントでも復号したメッセージを攻撃者に送ってしまう"
- Fadisさんのツイート: "暗号を効果的に使うのは難しいなぁ"
- Fadisさんのツイート: "RFC7693「BLAKE2は特別なHMAC関数を使わずにHMAC出来る」→HMAC1号 RFC5246「TLSでHMACする時はSHA-256以上の強度のハッシュをHMAC関数に通す事」 TLSの実装「仕方ないからBLAKE2をHMAC関数に通すよ」→HMAC2号 問題: TLSと無関係な規格がBLAKE2でHMACと言っている場合、その実装はどちらの事か"
- Fadisさんのツイート: "暗号屋さんの論文、 右辺と左辺のバイト列を結合する っていう意味の演算子として || がよく登場するんだけど、よく脳内で勝手にlogical orと解釈されて3行くらい読み進めたところで型が合わなくなって ??? ってなる"
- Fadisさんのツイート: "WireGuardの作者がLinuxカーネルに新しい暗号API Zincを提案している。曰く、既存のカーネルの暗号APIは高レイヤー過ぎて特定の暗号技術を部品として使いたい場合に使い辛いから、よりプリミティブでコンポーザブルな暗号APIを作った、とのこと https://t.co/zezc1YHowb"
- Zinc: The New Crypto Library Being Worked On As Part Of WireGuard - Phoronix
- Fadisさんのツイート: "オリジナルのWireGuardはカーネルのcrypto/ガン無視で独自で暗号を実装してるから、バニラカーネルに入れるのにあたって、なぜカーネルの標準の暗号APIを使わないのかという部分に説明が必要になったんだろうな"
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「楕円曲線暗号の鍵長に512bitがなく521bitがある理由」 メルセンヌ素数だと演算量が少なく、2^512付近だと2^521-1が該当、という話。 RSAで公開鍵の指数を2^16+1にすることで、べき乗の演算量を減らす工夫を思い出した。(2進数で1になっている桁だけ計算すれば良い) https://t.co/sP7bZfbInB"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、RSAの公開鍵指数で、2^16+1 = 65537 以外の実装ってあるのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "共通鍵暗号のCTRモードだと、暗号部のみ必要で復号部は不要…なのでHashで共通鍵暗号が作れる。 大昔、Pythonに共通鍵Libが無く、sha1+CTRを使った共通鍵暗号を作ったことがあるが、お話しにならないくらい遅かった(笑) ただ、xxHashに128bitが出来ると、AES-CTRとどちらが速くなるか興味がある。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「curve25519-sha256 と curve25519-sha256@libssh.org って、何が違うのだっけ…? https://t.co/pEbps6fjm0」 / Twitter
- sshd_config(5) - Linux manual page
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「openssl ファイル暗号化」で検索すると、AESに鍵をそのまま渡すパターンばかりだったが、実用的には PBKDF2等を使った方が良さそう。 (公開鍵を指定するのも良いけれど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「WindowsのCNG(Cryptography API Next Generation)だと、AESのブロックモードはCTRが無くGCMが使えるみたいなのだけど、最後のブロックを捨てれば同等になるのかな…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(あとCTRとGCMだとカウンタが1つずれてるのを意識したほうが良さそう)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近はAES-NIとかハードウェアサポートで、下手なハッシュ系の乱数ストリームより、AESの方が速かったりするのだよなぁ。 (xxHash3 とはさらに高速だけど、これは非暗号学的)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号モードの GCM/CTR は、暗号も復号もベースとなる暗号は「暗号化ルーチン」しか使わない(=乱数ストリームとして使う、疑似ワンタイムパッド)。 GCM/CTR のみの使用を想定した、AESより高速&高セキュアな暗号方式の研究はあるのかな…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CNGじゃないと、AES-NI使ってくれないのだよな、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AESをリファレンスC言語実装からCNG(bcrypt)に変えると、約8倍高速化。(256MB/s -> 2GB/s。1GB領域に対して) (AES-NI効果だが、ECB呼び出し+自前CTR計算のためこの程度。GCM呼び出しだと3GB/sに)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ElGamalとか暗号値のまま2倍にすると、復号値も2倍になるという、大昔は「改竄に弱い(ただしGCM等で防御可)」と微妙な目で見られた、準同形な性質を活用と。 なおDB&検索語を暗号化したまま検索=秘匿検索暗号はまた別かな? https://t.co/TVvDwgoYQS」 / Twitter
- Googleが世界初となるFHEの汎用トランスパイラーをオープンソース化 ~暗号データを復号せずにそのまま処理 - 窓の杜
@kazuho
- Kazuho OkuさんはTwitterを使っています 「SSLShader の crypto offload 部分、OSSだったのか。しかしスループットはともかくレイテンシみると使いづらそう https://t.co/Jt3OdGdPK0 https://t.co/X31ZrhIlsS」 / Twitter
- lwakefield/libgpucrypto
- SSLShader - GPU-accelerated SSL Proxy
- Kazuho OkuさんはTwitterを使っています 「約10年前のデータなので、レイテンシが1/10になってれば、ありなのかもしれないけど」 / Twitter
- Rockridgeさんのツイート: "民主・共和両党の議員で構成される米国議会暗号化ワーキンググループは、2016年末の報告の中で、「暗号化を弱めるいかなる手段も国益に反する」と述べた。FBIが求めるバックドアには反対ということ。 / “Bipartisan Con…” https://t.co/58wxxHcs2E"
- Rockridgeさんのツイート: "Firefoxアカウントではパスワードを元に認証キーと暗号キーを生成し、認証キーのみをサーバに送る。ユーザーのデータは暗号キーにより暗号化済みであり、認証キーが漏洩してもデータの復号はできない。 / “How Firefox S…” https://t.co/h8cvuv9QSi"
- 黒木玄 Gen Kurokiさんのツイート: "#数楽 楕円曲線暗号に応用されているEdwards曲線の加法公式はヤコビの楕円函数(cd t, sn t)=(cn t/dn t, sn t)の加法公式に一致する。ヤコビさんは約200年後に自分の名のついた楕円函数の加法公式がこんな形で応用されるとは思って無かっただろう。"
- Rui Ueyamaさんのツイート: "授業で教授がAES暗号の仕組みを解説しているのだが、実装するの簡単じゃんと思っても、素人実装は絶対に微妙な穴ができるから、授業を受ける前に決して自分では実装しないと誓ってくれと生徒に言っているw"
- Rui Ueyamaさんのツイート: "たぶんいろいろ噛み合ってないと思いますが、AESに対するサイドチャネル攻撃とその対策法などを知り尽くした人でなければ実際にセキュアなAES実装を書くのは難しいという意味です。たとえばdjbのこの論文ではタイミング攻撃を考慮してない昔のAES実装を使ったSSLを破ってます。https://t.co/4gSg0LGhIY… https://t.co/gw1A9ZwYr9"
- Rui Ueyamaさんのツイート: "というわけでAESの仕組みを学ぶのはよいことだけど、実装はいろいろ落とし穴があるので、自分で書くよりセキュリティ専門家のレビューを経た信頼できるコードを使いましょう、という話。実際問題RFCとかに載っているコードをそのままコピペして使えばいいので、再実装したい場面もほぼないと思います。… https://t.co/UgnJxStz6h"
- hsjoihs@数情物化語さんのツイート: "SHA-1について調べていたら面白い記事を見つけた(署名の検証に使っている暗号学的ハッシュをstrncmpで比較してしまっているため、160ビットの署名の大半が情報量が捨てられてしまう可能性があるというもの) https://t.co/Q7kjJnaZuJ… https://t.co/2QYu8Br7V9"
- debugmo.de :: Thank you, Datel.
- Makoto Kato ︎︎さんのツイート: "opensslなんて使わずにAESのコードを直書すればわかるけど、ThunderXのAESのインストラクション、むっちゃ遅い。Cortex-A53だと15倍近く速くなるのに、ThunderXなんて6倍くらいにしかならないから。"
- Makoto Kato ︎︎さんのツイート: "SHA2とかも同様でThunderXはCortex-Aシリーズに比べると遅いんだよね。。。"
- suzakiさんのツイート: "面白かった。 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 https://t.co/fAIJFugaDL パラメータに計算の効率が非常によい素数2^(521 -1)を使いたかったためです. ある論文には,521bitのほうが半分以下の256bitの時よりも計算速度が速くなっている... ルセンヌ素数を使うことによる効率化...… https://t.co/flUI3XOAjd"
- 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere
- Ryo SuzukiさんはTwitterを使っています 「cryptographically secure が要求される用途なら Salsa / ChaCha で、non-secure な MT19937 や Xorshift からの置き換えかつ 2^128〜2^1024 の周期で十分なら xoshiro 系が短くて速い。」 / Twitter
- あなたの「公開鍵暗号」はPKE? それともPKC? - Cybozu Inside Out | サイボウズエンジニアのブログ
- 4.5. List of RHEL applications using cryptography that is not compliant with FIPS 140-2 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
- YurikaさんはTwitterを使っています 「量子コンピュータの登場による暗号技術への懸念はCRYPRECとか日銀が色々調査しているのを追っかけてるのでメモ CRYPTREC https://t.co/KT8wtMd03i https://t.co/NVGOs3cJto https://t.co/yR0S19Mwve #secure旅団 #secureLiaison https://t.co/xEGhjBGHVP」 / Twitter
- CRYPTREC | 注意喚起情報
- ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応
- (日銀レビュー)量子コンピュータが金融サービスのセキュリティに与える影響とその対策 : 日本銀行 Bank of Japan
- YurikaさんはTwitterを使っています 「NISTの耐量子暗号標準化も進んでますが、それと並行して、暗号移行の議論 Crypto Agility も出てきている。 https://t.co/QenmCW73EM 日本でもこのあたりは専門家がみて世界の議論や標準化に加わってる方も」 / Twitter
- Crypto Agility: Considerations for Migrating to Post-Quantum Cryptographic Algorithms | NCCoE
乱数
スレッドセーフ
- キノコになりたい🍄さんはTwitterを使っています 「スレッドセーフな乱数生成アルゴリズムとかあるん C++の<random>に存在したりしてる・・・?」 / Twitter
- yohさんはTwitterを使っています 「@onihusube9 ぐろーばる・みゅーてっくすで保護した単一(グローバル変数)の乱数生成器を持てばよいというお話です?」 / Twitter
- ドッグさんはTwitterを使っています 「@yohhoy @onihusube9 もしくはスレッドごとに乱数生成器を持てば良いだけな気も.mt19937ar でもせいぜい内部状態 2kb とかそんなんですし」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp @onihusube9 よほど特殊な事情がない限り、スレッドごとに乱数生成器期を持つべきでしょうねw 疑似乱数なのでシードを意図的にずらす/真の乱数を使わないと、全スレッドで同一乱数列になってしまう点だけ注意が必要かなと。」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp @onihusube9 https://t.co/3pyzXC4iZn みたいなことを過去に書いてました。」 / Twitter
- スレッドセーフという幻想と現実 - yohhoyの日記(別館)
- てらモス♋️さんはTwitterを使っています 「決定論的な乱数生成機を複数のスレッドで独立にエントロピーで初期化しても、あんまり大量に生成すると同じ列に入ってしまう可能性がちょっと上がるわけで、その可能性もちゃんと消した独立な列を取れる方が望ましいという用途はある」 / Twitter
- Keigo NitadoriさんはTwitterを使っています 「@yohhoy @Linda_pp @onihusube9 単にseedを変えるだけでは誕生日のパラドックス的な衝突うが起こりやすいですよね。周期をスレッド数の2乗で割ったぐらいが十分に大きければいいんでしょうか?」 / Twitter
- yohさんはTwitterを使っています 「疑似乱数こわちか :;(∩´﹏`∩);:」 / Twitter
人間向けの補正
- R. ShioyaさんはTwitterを使っています 「今日やったアルゴリズム入門の講義では疑似乱数がテーマで、感想ながめてたら「RTA で出てくる乱数調整の意味がやっとわかりました!」てあったのだけど、あれは確かに話題として面白くて取り上げるといいのかもしれない」 / Twitter
- R. ShioyaさんはTwitterを使っています 「今日の講義では一様乱数は人間が感じるランダムさとはちょっと違うとか、ゲーム会社にいる後輩から聞いたガチャの乱数に補正入れたり入れなかったりする話もしたんだけど、スク○ニはきちんとしてると言う話をしたのにテーブルで今揉めてるのでこれも来週やったら面白いかもしれん」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 人間が乱数作ると、偏りっぽい並びやキリのいい数字が、過度に弾かれる的な話ですかね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとiPodのランダム再生にクレーム入った逸話とかもありましたね。 (ランダム再生では、本当のランダムを使ってはダメと)」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu はい,そんな感じの話です.ちゃんとした乱数だと直感よりも偏った(ように見える)連続が発生することはままあるので,それはそう言うものなのだとか,ゲームのガチャでは極端に不幸な人が一定数は出るので補正を入れているところもあるとかそんな話をしました.」 / Twitter
seed 固定
- ゆうだいさんはTwitterを使っています 「乱数ってseed固定したら,ほかの環境でも結果が再現されるの?」 / Twitter
- Willy 🌧米国大学教員さんはTwitterを使っています 「@physics303 詳しい事は分からないですが、「Rでseedを指定して乱数発生させて結果を提出」と言う宿題を出すと例年、みんな同じ結果を出してきます。」 / Twitter
- StoneDotさんはTwitterを使っています 「@physics303 乱数生成アルゴリズムとシードが一致すれば、再現するはず。 ただ、浮動小数点数の計算結果が環境によって変化する可能性があるので、乱数振る振らないが、浮動小数点数の計算結果に依存する場合は再現しない可能性もある」 / Twitter
- ゆうだいさんはTwitterを使っています 「@StoneDot ありがとう.初歩的な質問で恐縮なんだけど,その理屈で行くと,乱数シードを固定すると,同じPCを再起動しても,基本的には同じ乱数が生成されるよね? (np.random.seed(0) とかにしてnp.random.uniform(-1,1,10)とかすることを想定しているから乱数生成アルゴリズムは同じはず)」 / Twitter
- StoneDotさんはTwitterを使っています 「@physics303 Yes です。再起動後も生成される乱数は維持されます。 /dev/urandom みたいな外部エントロピー使わない乱数ではない限り同じ結果になりますー」 / Twitter
- Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~ - Qiita
- Taku KudoさんはTwitterを使っています 「詳しくは https://t.co/C2cQxC3x5S 失敗からこうなっている。 Thus, the API and implementation for previous iterations of generators within Google is, in many respects, effectively frozen in place and cannot be improved.」 / Twitter
- abseil / The Abseil Random Library
- Taku KudoさんはTwitterを使っています 「意外かもしれないが、absl::Random の疑似乱数はseed を与える機能が意図的になくしてある。テスト等で決定的動作にするために悪用されることがほとんどで、その結果修正不可なテストが増え、擬似乱数本来の改善が滞る結果になるから。使う側は乱数の本来の意味を理解して使うべき。」 / Twitter
- せり (zeriyoshi)さんはTwitterを使っています: 「はい、 PHP のメルセンヌ・ツイスタの固定化に成功しました syscall time, gettimeofday, getpid の結果が同一の場合必ず同じ乱数が生成されます https://t.co/7RTh6Oqu3W」 / Twitter
- songmuさんはTwitterを使っています: 「ゲームとかだと、乱数生成器作成時に使ったシードを記録しておけば、同じ状況を制限できるので便利、とかありますね。ソシャゲ開発していたときにやっていて、調査などに使っていた。」 / Twitter
- songmuさんはTwitterを使っています: 「「なんでバトルの結果がこうなってるんですか?」みたいな問い合わせに対して、手元で再現させて検証してから返答していた」 / Twitter
- songmuさんはTwitterを使っています: 「制限じゃなくて「再現」!」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「@songmu 僕もやってました。」 / Twitter
パスワード生成
- ぽんこつさんはTwitterを使っています 「なんでスマホのパスワード管理機能はパスワード生成できないの」 / Twitter
- fjのYog教祖様さんはTwitterを使っています 「@ponkotuy スマホの乱数発生器が当てにならないから、と言うのも理由の一つだと思う。」 / Twitter
- ぽんこつさんはTwitterを使っています 「@fjs_kyousosama サーバーよりは信用できそう」 / Twitter
- fjのYog教祖様さんはTwitterを使っています 「@ponkotuy サーバーの場合はこういうのをちゃんと指すことができるので…: https://t.co/CzqKowJRms サーバーよりは信用できる、と言うのはサーバーがポンコツなのであって決して携帯が十分な能力を持っているという意味やないねん…」 / Twitter
- 真性乱数生成器 vs 疑似乱数生成器 - wolfSSL
- ぽんこつさんはTwitterを使っています 「@fjs_kyousosama 人間が考えたパスワードと比較だから別にええねん。どうやってもだいぶマシ」 / Twitter
Xoshiro
- Ryo SuzukiさんはTwitterを使っています 「疑似乱数生成器 Xorshift の現代版、「Xoshiro」シリーズの C++ ラッパーライブラリのプロジェクトを公開しました。C++20 の標準乱数生成インタフェースに対応、ゲーム開発や研究プロジェクトに便利です (MIT ライセンス) https://t.co/JITqLE1thj」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「xoshiro256++ はメモリ消費 32 バイトで周期 2^256-1 の乱数列を生成、BigCrush 検定に合格する統計的品質。 一方 C++ 標準の std::mt19937 はメモリ消費 5,000 バイト(!)で周期 2^19937-1, BigCrush の一部に失敗する。 Xoshiro 開発者の解説記事 https://t.co/fH4AOGExdD」 / Twitter
- xoshiro/xoroshiro generators and the PRNG shootout
- Reputeless/Xoshiro-cpp: Header-only Xoshiro/Xoroshiro PRNG wrapper library for modern C++ (C++17/C++20)
- mod_poppoさんはTwitterを使っています 「Luaも5.4で擬似乱数アルゴリズム変えてるな(5.3まではC言語のrandのwrapperだったのが5.4でxoshiro256**に変わった)」 / Twitter
- mod_poppoさんはTwitterを使っています 「再現性のある擬似乱数が必要なら言語実装のバージョンを固定するか自前で乱数生成器を持つ必要があると思ってるんだけどそうでない考えの人もいるのか…?」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「そういえばJulia 1.7で疑似乱数を使った計算をする人は注意が必要で、1.7からデフォルトの乱数生成アルゴリズムが変わったので Random.seed! 関数で固定しただけでは乱数が再現しないです。 https://t.co/KF753DVtUV」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「これはJulia 1.6までの乱数生成を再現するにはどうすればいいかという話で、その必要がなければ素直に新しい疑似乱数生成器を使いましょう。軽くて速くなったらしいです。」 / Twitter
- Julia REPL stan accountさんはTwitterを使っています 「@bicycle1885 It’s quite tricky! PRNGs in Julia have *never* been guaranteed to generate identical sequences across Julia versions. It’s explicitly left as an implementation detail so that features and optimizations can be added later. For full reproducibility just store a vec of the values.」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@miguelraz_ You're right. But lazy people (including me) write code that depends on never-guaranteed features that have been preserved by chance. The tweet is intended to be a caution to those who failed to reproduce the previous results on Jupyter Notebook or other similar tools.」 / Twitter
- PeterChengさんはTwitterを使っています 「@bicycle1885 Since 1.7 change the default PRNG, you need to change from MersenneTwister to Random.Xoshiro」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@Cheng_Ching_Wen Yes, but the point of my tweet is to restore the old PRNG behavior after update.」 / Twitter
xorshift
- Kazuho OkuさんはTwitterを使っています 「テストに便利な * ステートの書出、読込が簡単で * 実装がpublic domainな 乱数発生器なにがあったかなーって、ちょっと悩んだけど、xorshift64でよかった(ステートがuint64_t一個で、著作権が発生しないレベルに単純なので)」 / Twitter
- 高梨陣平さんはTwitterを使っています: "V8で採用された新Math.random向けのアルゴリズムの元となったアルゴリズムxorshift32が3行のシフト演算しか行っていないのに疑似乱数として良い性質を持っていることの解説 https://t.co/H33lXhFaLc"
- Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
Blake2
- コミさんさんはTwitterを使っています 「Linuxカーネルの乱数生成で前までSHA1使ってたけど今はBlake2にしちゃってて、それで3.7倍高速になったらしい。すごすぎる。」 / Twitter
- Filippo ${jndi:ldap://filippo.io/x} ValsordaさんはTwitterを使っています 「Damn. @zx2c4 has been the Linux random driver maintainer for like a hot minute, and /dev/[u]random is now 100% SHA-1 free and 370% faster. Amazing. https://t.co/qh5eh0L9lN https://t.co/CuQD8pDrIg」 / Twitter
- [PATCH v2 2/2] random: use BLAKE2s instead of SHA1 in extraction - Jason A. Donenfeld
- [PATCH] random: avoid superfluous call to RDRAND in CRNG extraction - Jason A. Donenfeld
- 伊津野 英克さんはTwitterを使っています 「SHA-3としては選定されなかったが、理由はSHA-2に似ているため脆弱性が発見された場合に共倒れする懸念とHW実装時の効率性で負けたことが原因でソフトウェア実装だとblake2の方が優れているみたいhttps://t.co/3cpgG2Kzbm」 / Twitter
- sha 3 - What advantages does Keccak/SHA-3 have over BLAKE2? - Cryptography Stack Exchange
- クロマ@purplecatsギターさんはTwitterを使っています 「BLAKE2系よりもBLAKE3のほうが早いらしいけどどうなんだろう感はあった」 / Twitter
- FadisさんはTwitterを使っています 「WireGuard、鍵共有の手法は複雑だけどプロトコル自体はコマンドが4つしか無い超シンプル仕様だから、カーネルのが使えなかったらユーザ空間で書くかー、くらいのアレではある。実装するときはlibsodiumとlibsodiumの作者がissueに雑に転がしているblake2sの実装使うと楽」 / Twitter
GIGAZINE
カスペルスキー
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号学的な乱数は、量子効果や熱雑音によるハードウェア生成が一番良い。 だが「特定ハードウェア実装が信用できるか」問題は別途あって、例えばLinuxは Intel CPUの乱数命令をseedの一部にしか使用しない保険を掛けてたはず。 https://t.co/pd66rQzPxv」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「ただの擬似乱数と暗号学的に安全な擬似乱数は違うってのはセキュリティの基本なのですが、意外にちゃんと教えられてない気はしますね…私も学部授業のレベルでは教えられてない… とにかく「よい乱数」ってホントに奥が深くて難しい話なのです。だから素人が手を出すよりOS提供の関数を使うのが吉。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このコードだと、seedは100ns以降のカウンタを32bit圧縮となり、3億ではなく42億パターン(これも十分小さいが)になる。 (元英文解説だと、ここは使われず、time(0)が使われるとある…元ネタを確認しないとダメなgigazine記事(笑)) https://t.co/tKLNqF3vBT」 / Twitter
- カスペルスキーのパスワードマネージャーが生成したパスワードは総当たり攻撃で爆速突破が可能と判明、一体なぜか? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++だと、std::random_deviceを使えば、その環境でベストな暗号学的乱数が使ってくれる印象ある。 https://t.co/a9Cpd9hbq5 (なおパラノイア的には、IntelのHW実装やMSのCrypto実装をどこまで信用する?問題は残る(笑))」 / Twitter
- random_device - cpprefjp C++日本語リファレンス
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「あー確かに書き方悪かったかも。OS提供の関数には「ただの擬似乱数」と「暗号学的に安全な乱数」があるのでちゃんと使い分けましょうね、という話です。 WindowsはかつてCryptAPIにCryptGenRandomがあったんですが今はCryptAPI自体が非推奨になってて、CNG APIのBCryptGenRandomを使うお作法です。」 / Twitter
- 「史上最大の素数」約2年ぶりに更新、50番目のメルセンヌ素数で桁数は2324万9425桁 - GIGAZINE
- コンピューターはどうやって乱数を生み出しているのか? - GIGAZINE
blog
- メルセンヌ素数でxorshift疑似乱数の軽量化 - 一人一党党
- randの既定シード値は1 - yohhoyの日記
- Mersenne Twisterの出力を推測してみる - ももいろテクノロジー
- Z3Pyでxorshift128+の出力を推測してみる - ももいろテクノロジー
- Z3Pyでglibc rand(3)の出力を推測してみる - ももいろテクノロジー
- 乱数生成器とゲームと諜報活動の話|Rui Ueyama|note
- 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama|note
Wikipedia
- RdRand - Wikipedia, the free encyclopedia
- Xorshift - Wikipedia
- Xorshift - Wikipedia, the free encyclopedia
- Lagged Fibonacci 法 - Wikipedia
- メルセンヌ・ツイスタ - Wikipedia
- メルセンヌ数 - Wikipedia
- リュカ–レーマー・テストの証明 - Wikipedia
- GIMPS - Wikipedia
Twitter
- ぐらふぃさんのツイート: "胡散臭いけどやばい論文です https://t.co/92Mb6ZGmT4 Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine ニューラルネットに π や eといった数学定数とか Mersenne Twister の次の桁を予測させると統計的に優位に当たってる"
- Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine
- The Hacker NewsさんはTwitterを使っています: 「Breaking PHP's mt_rand() with 2 values and no bruteforce https://t.co/UwPLKeAuB9 Given two mt_rand() output values separated by 226 others, it is possible to compute, without any brute-force, the original seed, and therefore obtain any previous or subsequent mt_rand() output. https://t.co/EzxaraBgN6」 / Twitter
- Breaking PHP's mt_rand() with 2 values and no bruteforce
- Fadisさんのツイート: "CVE-2017-11671: gccがRDSEEDしたあとアプリケーションがキャリーフラグを読む前にキャリーフラグを書き換える命令を挟んできて実際には乱数取れてないのに取れた気分になってしまう不具合 https://t.co/JcvhFdbTyp"
- oss-sec: CVE-2017-11671: GCC generates incorrect code for RDRAND/RDSEED intrinsics
- Kazuho OkuさんはTwitterを使っています: 「CSPRNG(暗号論的擬似乱数生成器)じゃない乱数生成器はこうやってシードされてたりするから、セキュリティに関係する要件で使ってはいけないし、使わない限り問題ない。あるいは自分で urandom 等CSPRNGの値を注入して初期化してもよい https://t.co/kMa4KmGta9」 / Twitter
- Kazuho Okuさんのツイート: "PRNGの乱数性をどうプログラム内で担保するかについての僕の意見は https://t.co/crYMKCmrU0 のスレに記したとおりです"
- Kazuho Okuさんのツイート: "@__gfx__ それなら現実問題として、ランダム性を仮定しつつ、仮定が破れた場合にはassertion failureにする、くらいがバランスよさそう"
- Rui Ueyamaさんのツイート: "@kazuho 分散システムですぐにコリジョンが確認できない場合はどうしますか。"
- Kazuho OkuさんはTwitterを使っています: 「LAMP 系のマイナーな環境だと高精度のタイマもpidもちゃんと取れなくて、ランダムに生成されるはずのセッションIDがたまに衝突するとか...」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「余りをとるのは常套手段だけど割り切れないとわずかに歪むし、素朴にやり直すと最大回数がboundできないけど、やり直さないで完全に一様にする方法はあるんだろうか。ないとしたら、不可能であることはどう証明(というかそもそも定式化?)するんだろう。(よく知られている解があったらすみません) https://t.co/JEBMpWwZPL」 / Twitter
- ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています: 「例えば00000~99999の範囲で一様乱数を発生させてくれる機械があって、0~99の乱数がほしいとき、下2桁を見ればいい。ところが0~74みたいな中途半端な範囲の乱数がほしかったら?「下2桁が75~99のときはやり直す」というのもアリだが、5桁を全部見て75で割った余りを取っても、おおむね一様になる。」 / Twitter
- Yutaka OIWAさんはTwitterを使っています: 「@esumii ・ダイス振りn回以下のプロセスは、ぴったりn回のプロセスで表現可能(結果決まってからも余計に振る) ・k面ダイスn回のプロセスでの各出力の発生確率は k ** -n の倍数 ・あとは、nがいくつでも均等にならないことを帰納法なり代数なりで証明 でいいんじゃないでしょうか。」 / Twitter
- Yutaka OIWAさんはTwitterを使っています: 「@esumii あとこの件は、適切な割り算さえ入れれば、1回の試行で決定できる確率を 1/2超にできる。 そうすると、試行回数の期待値は2未満になるので、乱数がマトモなら、分布が歪むリスクを避けてまでループを避ける理由はない。 各回を独立試行にする限り、繰返し回数(処理時間)と出力値の相関もない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「実務的な話で言うと、実行時間のずれあるいは確率分布のずれを無視できる範囲にしてくれれば良くて、つまり、ダイスを一定回数振ってから剰余とる形が良さそう」 / Twitter
- SAKASHITA HirosiさんはTwitterを使っています: 「PHPで使われている疑似乱数関数mt_randについて、2つの出力値を得ることで残り全てが予測できる手法が編み出された模様です(中身はあまり読んでませんが…)。この関数で使われているMT法が暗号学的に十分セキュアでないことは聞いてましたが、これはびっくり。 https://t.co/Caj1nOK2Be」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@HPetegari もっと単純な話で、例えば8bitのランダムな整数をmod 26すると、0-21は10/256、22-25は9/256の確率で得られるので偏りが出るということです。良く使う手は、ランダムuint8を取って、それが234(=26*9)未満ならmod 26、以上なら再試行します。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「PCG (Permuted congruential generator) 乱数発生器のページ。他の乱数発生アルゴリズム (MT19937, arc4random, chacha20など) と比べて高速かつ安全で柔軟性があるとうたっている。 https://t.co/Sw3ZD2Lbvk」 / Twitter
- PCG, A Family of Better Random Number Generators | PCG, A Better Random Number Generator
- Kazuho OkuさんはTwitterを使っています 「んー、言語仕様的には線形合同法よりマトモな方法で実装しても構わなくて(つまり昔からあるCライブラリ特有の問題で)、昔からあって互換性重要なCライブラリの場合はrandomとかdrand48とか、よりマトモなものがPOSIXに定義されてる」 / Twitter
- 徳永広夢さんはTwitterを使っています 「C言語のrand、新しい標準の関数を追加するなり、deprecateするなりされないのが不思議」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ISO Cみたいな仕様で介入するとなると、一定品質以下のPRNGを非推奨にするみたいな形になるんだろうけど、品質の定義で合意とるの大変だろうなぁ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「LFSR (線形帰還シフトレジスタ) は疑似乱数を生成する簡易な方法である。ここでは高校数学の知識だけを使ってLFSRの原理を解説し、周期が最長となるような疑似乱数生成式を探索するアルゴリズムを紹介する。 https://t.co/4EIEvhfdVb」 / Twitter
- Demystifying the LFSR
- mattnさんはTwitterを使っています: 「たまーに rand を呼ぶ手前で毎回 srand(time(NULL)) を呼ぶようなコード(C言語以外でも)を見るのだけど、これ特に意味無さそうだし、なんならループの中で使うと疑似乱数が期待してない偏った数値が連続する可能性があるよね。」 / Twitter
- mattnさんはTwitterを使っています: 「まぁ main の頭で1回呼ぶ様なコードでもコマンドラインアプリとして1秒に数回起動したらどちみち偏るので、そういうアプリは srand(time(NULL)^getpid()); とかすべきなんだろうけど。」 / Twitter
- セキュアキー対応インテル® データ・プロテクション・テクノロジー: Gazzang 社のケーススタディー | iSUS
- MSC32-C. 乱数生成器には適切なシード値を与える
- EXP33-C. 初期化されていないメモリからの読み込みを行わない
- 最終回 発見プログラミング:増井ラボノート コロンブス日和|gihyo.jp … 技術評論社
- Miura HidekiさんはTwitterを使っています 「インテル® DRNG (Digital Random Number Generator) ソフトウェア実装ガイド https://t.co/PBT2RXroVX 乱数の種にチップ内の熱雑音を使っているとのことだけど、熱雑音って本当にランダム(分布が推定できない)なのだろうか?」 / Twitter
- インテル® DRNG (Digital Random Number Generator) ソフトウェア実装ガイド | iSUS
- Special Register Buffer Data Sampling (特殊レジスターバッファーデータサンプリング) - Red Hat Customer Portal
- Intel 社による 2020 年 6 月のマイクロコード更新 - Red Hat Customer Portal
- PHP の乱数実装がグダグダな話
素因数分解
素因数分解を (RSA を破壊するレベルで) 劇的に高速化
- Tsukasa #01さんはTwitterを使っています 「真偽はともかく、ちょっととんでもない論文が出てきたんだが。国際暗号学会の未査読論文だが、素因数分解を (RSA を破壊するレベルで) 劇的に高速化するアルゴリズムを開発したと主張している。 https://t.co/ApzLqRmjqR」 / Twitter
- Cryptology ePrint Archive: Report 2021/232 - Fast Factoring Integers by SVP Algorithms
- ManishさんはTwitterを使っています 「Seems like Schnorr just dropped a paper that reduces prime factorization to a shortest-vector-problem on a much smaller basis, and this might actually be the death knell of RSA? https://t.co/pN38MFn0zZ」 / Twitter
- Léo DucasさんはTwitterを使っています 「@chelseakomlo @asanso @_henrycase @FredericJacobs @CryptoBits_eu #SchnorrGate update: the new version of March 3rd is much easier to test, requiring SVP in dimension as low as 47 (down from 1800 !). Out of 1000 trials, no factoring relations was found. https://t.co/AXRQ6z3Dqm」 / Twitter
- lducas/SchnorrGate: Testing Schnorr's factorization claim in Sage
- Kazuho OkuさんはTwitterを使っています 「今のところ否定的な印象が多そうなイメージではあります https://t.co/N9CQbeJRew」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「@kazuho 流石に現段階ですぐ「真だと仮定する」のは危なすぎますが、再現実験はしたいですね……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@a4lg 引用したツイートは、実際に実装して試したけど機能しない、という専門家のツイート(再現コード含む)ですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RSAの素因数分解は懸賞金かかってるのが色々あるので、今回の手法が機能するなら、やぶろうとする人たちがいて、最初にやぶった人が権利を主張するために解を公開するだろうという見立ては妥当だと思う https://t.co/ohhpWVeHVH」 / Twitter
- RSA Factoring Challenge - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「既存手法でRSA-829が解かれてるのだから、劇的な進歩があったならRSA-896を解くのは当然可能なはずだ、と」 / Twitter
GCD
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「a, bが互いに素なら一次不定方程式ax+by=1が解けるという事実が、素因数分解の一意性を示すキーになるというのは、初等整数論を初めて勉強したときにびっくりしたことの一つ。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「キーになるのは★「pを素数として、p | ab ⇒ p | a または p | b」という命題。 pは素数なのでp, aの最大公約数は1, pのいずれか。 最大公約数がpなら p | a。 最大公約数が1ならば一次不定方程式 ax+py = 1 に解がある。これに b をかけて abx + pby = b。p | ab より p | b。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「★を使うと素因数分解の一意性が言えるんだけど、それはざっくり言うと次のように議論する。 n = p1p2…pk = q1q2…ql と二通りに素因数分解されたとする。 両辺p1で割れるのでq1q2…qlだが、★によりq1からqlまでのいずれかをp1が割り切る。 これを繰り返せば良いわけですね。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「「a, bが互いに素なら一次不定方程式 ax+by = 1 に解がある」というのは、整数環 ℤ はPID(単項イデアル整域)であるということ。素因数分解の一意性が成り立つというのは ℤ はUFD(一意分解環)であるということ。 上の話は環論的には「PIDならばUFD」を ℤ に適用してると思うことができますね。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「と、いう話を次のツイートを見て思いました。 高校のときにこの定理を習い、「どこでこんなの使うんだろう」と思った方も多いかもしれません。 実は縁の下の力持ち的な、結構重要な定理なんだというお話でした。」 / Twitter
- さんしさんはTwitterを使っています 「高校数学で最も影の薄そうな定理の一つ」 / Twitter
- dcさんはTwitterを使っています 「え、やばくね? https://t.co/oXliudrscK」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@tsujimotter ユークリッドですね。最近、GCDやりなおして、それがないと、素数の平方根が無理数なことを示せないってのを学びました。」 / Twitter
LGPL
- GNU Multi-Precision Library - Wikipedia
- 素数判定プログラム2 C言語 GMPライブラリ : Yuki Nakata's Blog
- 素数判定プログラム3 C言語GMPライブラリ : Yuki Nakata's Blog
- ecm.gforge.inria.fr
- 単純な素因数分解アルゴリズムを実装してみる - ももいろテクノロジー
- Msieveを使って大きな数を素因数分解してみる - ももいろテクノロジー
- Msieve download | SourceForge.net
- Msieve 日本語情報トップページ - OSDN
- Msieve の使い方
- 素因数分解プログラム msieve
- OpenSSLとPythonでRSA暗号の原理を知る - ももいろテクノロジー
- wbhart/bsdnt: BSD Licensed Bignum Library
- YAFUを使って大きな数を素因数分解してみる - ももいろテクノロジー
- フロイドの循環検出法 - Wikipedia
- ポラード・ロー素因数分解法 - Wikipedia
- MIT Tech Review: 51、57、91は素数? 数学者が考えたオンライン・ゲームが人気
- 松本 泰さんはTwitterを使っています 「もうひとつ誤解 「現在の量子コンピュータによる暗号技術の安全性への影響」 CRYPTRECの実質的な公式見解。これを出すまでにだいぶ時間がかかったけど。量子コンピュータが実用化すれば公開鍵暗号が解読されるというのは、まったくの誤解。実用化の意味を履き違えている。 https://t.co/ZCTTd1lOPd」 / Twitter
- CRYPTREC | 注意喚起情報
- Nが素因数分解可能ということのゼロ知識証明について - xagawa's diary
BASE64
- Base64 - Wikipedia
- BASE64エンコード - UIC
- base64ってなんぞ??理解のために実装してみた - Qiita
- Base64のデコード - オンラインBase64のデコーダ
- BASE64とは - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- Base64 Decode and Encode - Online
blog
GMOグローバルサインカレッジ
- JSON先進署名フォーマット「JAdES」解説 【第2回】先進署名フォーマットとプロファイルとは何か | GMOグローバルサインブログ
- SSLサーバ証明書における2021年以降の仕様変更および業界動向 | GMOグローバルサインブログ
- モバイルデバイス利用者・管理者双方の利便性とセキュリティレベル向上の両立を実現 | GMOグローバルサインブログ
- メール用電子証明書「S/MIME(エスマイム)」の最新調査結果を発表 | GMOグローバルサインカレッジ
- Opinium社が米英のIT責任者に独自調査 電子証明書の管理に関する課題や自動化対応状況を発表 | GMOグローバルサインカレッジ
- 有効期間3年のS/MIME用証明書提供に関するApple社の方針転換について | GMOグローバルサインカレッジ
- 医薬品・医療機器などに必要な米国の電子記録・署名に関する規則「21 CFR PART 11」とは? | GMOグローバルサインカレッジ
カスペルスキー公式ブログ
- SSL/TLS証明書、その特性について – カスペルスキー公式ブログ
- HTTPSが安全とは限らない | カスペルスキー公式ブログ
- 余分な証明書を悪用した、ドメインへの中間者攻撃とDoS攻撃 | カスペルスキー公式ブログ
インフラエンジニアway - Powered by HEARTBEATS
- TLS証明書チェッカーcheck-tls-certの公開 - インフラエンジニアway - Powered by HEARTBEATS
- OpenSSL 3.0のTLS証明書用プライベート鍵生成方法 - インフラエンジニアway - Powered by HEARTBEATS
ASnoKaze blog
- ZeroSSL ならIPアドレスのサーバ証明書が取得できる - ASnoKaze blog
- DigiCertによるプライベートアドレスの逆引き名の証明書誤発行 - ASnoKaze blog
自堕落な技術者の日記
- 自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングについて考える - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : X.509証明書の識別名などで使われるMulti-valued RDNとjsrsasignのサポートについて - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 最近の証明書の話題(3): デジタル証明書形式の電子委任状のプロファイルに関する考察 - livedoor Blog(ブログ)
- Project Zero: CVE-2021-30737, @xerub's 2021 iOS ASN.1 Vulnerability
- CVE-2020-0601でわかるMSのTLS証明書検証プロセスについて
- インターネットをよりロバストに。RPKIはじめます | IIJ Engineers Blog
- 改めて知ろう、SSLサーバー証明書とは?(第二回) - さくらのナレッジ
- Google Developers Japan: キーストアの鍵の構成証明
- 本の虫: 健全なP2Pネットワークの信用のためには全利用者の参加が必須であるという話
- 高木浩光@自宅の日記 - NEDOのサイトで4つのサプライズ, PKIよくある勘違い(0)「サーバ証明書は単なる暗号鍵であり認証局の署名は実在証明にすぎない」
- オレオレ証明書を使い続ける上場企業をまとめてみた - megamouthの葬列
- Windows CryptoAPIの脆弱性によるECC証明書の偽造(CVE-2020-0601) - ぼちぼち日記
- AWSにおけるSSL証明書の基本的な取扱い | 外道父の匠
- Chrome58になると自己署名の証明書がエラーになるので、OpenSSLに詳しくなった話
- heartbeatsjp/check-tls-cert: Check-tls-cert is a TLS certificate checker.
- certutilコマンドの非公開なオプションを表示する方法 - Eiji James Yoshidaの記録
- 安全な証明書自動更新のやり方 - Cybozu Inside Out | サイボウズエンジニアのブログ
スライド
- 動的証明書読み込み ngx_mruby編 #hoscon / GMO HosCon 2016 // Speaker Deck
- 秘密分散法の数理
- AM03_shimaoka.pdf
- マイナンバーカードで署名する - Speaker Deck
- LE宮地さんはTwitterを使っています 「JNSA電子署名WG 保証レベルTF から提案内容の説明の為に「電子署名保証レベル作業提案」を公開しました。近年色々な電子署名方式がありますがこれを1つの保証レベルにまとめる取り組みです。TFメンバーで議論して最終版を今年度末に正式公開する予定です。 https://t.co/qkLyRY97n6」 / Twitter
- Microsoft PowerPoint - NWP-eSignAL-20210929.pptx - NWP-eSignAL-20210929.pdf
- JNSA Electronic Signature Working Group
- Hybrid Public Key Encryption (HPKE)
- TLS, HTTP/2演習
Let's Encrypt
ACME
- autocert - GoDoc
- crypto/acme/autocert at master · golang/crypto
- jetstack/kube-lego: Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
- GKE でサービスを HTTPS と HTTP/2 に対応する(kube-lego 編) - Qiita
- Google Container Engine上でLet's Encryptによる証明書を自動更新する(kube-lego) - Qiita
- jetstack/kube-lego - Docker Hub
- Shigeki Ohtsuさんのツイート: "Let's EncryptのACME TLS-SNI-01問題は同一IPでマルチユーザホスティングで任意の証明書がアップロードできる所があったからか。ブラックリストを作って再開するらしいが根本解決はできるのかな? / “018.…” https://t.co/bgF6sTzfMv"
- Shigeki Ohtsuさんのツイート: "Let's EncryptのACME脆弱性の対応方針:TLS-SNI-01の利用は廃止の方向に。新規アカウントはSNI-01の利用禁止。既存アカウントはrenewalに限定。今後HTTP-01、DNS-01 のvalidationに移行を進めていくとのこと。… https://t.co/oe9ReJ1aAL"
- Let’s Encryptが「ACME v2」とワイルドカード証明書サポートを開始 | OSDN Magazine
- Rockridgeさんのツイート: "Let's Encryptでは、2018年3月14日のACME v2プロトコルの導入に伴い、ワイルドカード証明書の発行をサポートした。 / “ACME v2 and Wildcard Certificate Support is…” https://t.co/7VfbVMOAhJ"
- Let’s EncryptとACME | IIJ Engineers Blog
- 続 ACME | IIJ Engineers Blog
- xenolf/lego: Let's Encrypt client and ACME library written in Go
- containous/traefik: The Cloud Native Edge Router
- ゆきさんのツイート: "ACME Client Extension https://t.co/7TKBabYB4I ACMEを用いてクライアント証明書、コードサイニング証明書発行する拡張仕様。カジュアルな気持ちで読み始めたけど、難しい... #yuki_id"
- draft-moriarty-acme-client-00 - ACME Client Extension
- End of Life Plan for ACMEv1 - API Announcements - Let's Encrypt Community Support
- SSLサーバ証明書の自動更新を可能にするACMEプロトコルとは | GMOグローバルサインカレッジ
- YurikaさんはTwitterを使っています 「Let's Encrypt が証明書自動発行 ACMEのモジュールBoulderに検証不十分の問題があったとして、問題の期間の証明書を失効することに。失効対象にはメール済みで実施は1/28 影響は全体の<1%(約200万枚) で手動更新必要。質問はフォーラム↓で受付中 https://t.co/tL4STZYZi3」 / Twitter
- (1) Questions about Renewing before TLS-ALPN-01 Revocations - Help - Let's Encrypt Community Support
- Let's Encrypt証明書、誤発行発覚で約1%が1月28日失効 - 確認と更新を | TECH+
クロスサイン
- https://twitter.com/kazuho/status/1387965341855219721 の想定回答
- Kazuho OkuさんはTwitterを使っています 「面白い。そんなことになってるのか。R3自体が変わるわけじゃないのでショートチェーンは自分でチェーン作れば変えられそうだけど、R3自体が今年9月で寿命だからそれまでかな / https://t.co/NATgCsxkKS」 / Twitter
- Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho すみません、良く判って無いのですが「それまで」の意味は何でしょうか??」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu サーバ証明書 —> R3 --> DST Root CA X3というショートチェーンを作れるのは、です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu R3の次の中間証明書については、新方式に移行する以上、DST Rootに署名してもらうことはしないでしょうし」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho なるほど、判りました。 ご説明ありがとうございます。」 / Twitter
- ファーストサーバ、無料SSL証明書「Let's Encrypt」の取り扱いを開始 -INTERNET Watch
- 無償SSLサーバー証明書Let’s Encryptの普及とHTTP/2および常時SSL化 | OSDN Magazine
- Let’s Encrypt - ArchWiki
- matsuu序二段さんはTwitterを使っています: 「Let's EncryptなどでSSL証明書取得を行うとCT(Certificate Transparency)を監視している悪意ある第三者が即座にアクセスしてきて初期インストール状態のWordPressにバックドアを仕掛ける手口が横行。あー、ジレンマだ。 / “WordPress sites getting hacked ‘within seconds…” https://t.co/o5RJ7NtQPE」 / Twitter
- WordPress sites getting hacked ‘within seconds’ of TLS certificates being issued | The Daily Swig
- matsuu序二段さんはTwitterを使っています: 「ちなみにLet's Encryptのフォーラムでは、証明書取得から1分で/wp-include/.query.phpが生成された(statで生成日時を確認済)との報告もあったので、速攻でやられる可能性があります。」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「Let's EncryptのHTTP-01チャレンジのアクセス元IPアドレスは下記FAQにもあるとおり随時変わる可能性があるため、IPアドレスでの許可設定は難しいです。 https://t.co/zfMeW5riuk」 / Twitter
- よくある質問 (FAQ) - Let's Encrypt - フリーな SSL/TLS 証明書
- Rockridgeさんのツイート: "Let’s Encryptが国際化ドメイン名(IDN)を含むデジタル証明書の発行をサポート。 / “Introducing Internationalized Domain Name (IDN) Support - Let's …” https://t.co/9ywe6D5OTY"
- Autumn Goodさんのツイート: "2016年1月から2017年3月までに Let’s Encrypt が発行した"PayPal"の文字列を含む証明書はcrt.shで調査すると15,270件あったようです。もちろんほとんどはフィッシングで使われています。この傾向だと今年末にはさらに2万件増える見込みとのこと。 https://t.co/v32Qw4scSb"
- 2017/05/19にLet's Encryptで起こっていた障害についてのメモ - Technically, technophobic.
- Let's Encrypt、ワイルドカード証明書を2018年1月より無料提供 -INTERNET Watch
- ロリポップ!利用者向けにLet's Encryptの無料SSL証明書発行サービスを提供、GMOペパボ -INTERNET Watch
- Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 - さくらのナレッジ
- Let's Encryptのワイルドカード証明書対応はこうなる? DNS-01のみか - Qiita
- Rockridgeさんのツイート: "2017年12月時点で、Let's Encryptが発行したアクティブな証明書の数は4600万を突破。2018年中に9000万を目指す。また、2018年2月27日にはACME v2プロトコルを導入し、ワイルドカード証明書の発行を全… https://t.co/YWxZ14wH1U"
- ユーザーガイド - Let's Encrypt 総合ポータル
- Shigeki Ohtsuさんのツイート: "文科省外局のスポーツ庁の広報ページ https://t.co/qmRFNAsEYY でも Let's Encrypt のDV証明書を利用しているんですが… 他の https://t.co/lcSQE0omPH ドメインでちらほら。httpしか提供してないサイトよりよっぽどましかと。 https://t.co/vFqWfZMJBT"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー!証明書がLet‘s Encrypt!東証一部上場企業のサイトとしては衝撃的やな…この会社の情シスのレベルとか、この会社がサイバーでの信用というものをどう考えているかとか、色々考えさせられるわ… https://t.co/9UMVfA6BUl"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "この辺はまぁhttps://t.co/3fYww1OH4oの信頼で推すというのならまぁそうなんですねとしか言えません.民間CAにOVしてもらうのも結構面倒があるようなので,GPKIが正常化したら解決するのかなぁと思ってます…道のりはもう少しありそうですが.LGPKIが最近SECOM依拠になったので見習って欲しいなと.… https://t.co/s5Dju4emcw"
- Shigeki Ohtsuさんのツイート: "最近更新したGPKIの証明書を見ると https://t.co/J8DYsMrdi6 LGPKIと同様の正常化?するのではないかと淡い期待を持って見ています(ごめんなさい島岡さん)。 https://t.co/jlwCng5hKf も再来週expireなので同様に正常化していただきたいものです。… https://t.co/kJ6GZTFv6b"
- 上場企業やgo.jpドメインでもLet's Encryptのサーバ証明書の利用が広がる | スラド セキュリティ
- ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する - .mjtの日記復帰計画
- Let's Encryptさんのツイート: "Let's Encryptは1億5000万のドメインで使用されています。 https://t.co/RFNQqW12O5… "
- Looking Forward to 2019 - Let's Encrypt - Free SSL/TLS Certificates
- Shigeki OhtsuさんはTwitterを使っています 「Let's Encrypt続報: 未更新の130万証明書の半数以上が利用中。影響度を考慮しBR規定の5日以内の失効を止め、残り83日のExpireを待つ方針。引き続きモニターと連絡を継続。今後この様な大規模インシデントに対応できるよう失効通知するプロトコルの開発を進めると。 https://t.co/yNoxD0IrEk」 / Twitter
- 1619179 - Let's Encrypt: Incomplete revocation for CAA rechecking bug
- nsdでの letsencryptワイルドカード証明書の自動更新
- Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
- Shiro KawaiさんはTwitterを使っています 「あああ、SchemerがCommon Lispでよくやるミスだ。参照取っちゃう以外にクロージャに閉じ込んじゃうのもありがち。やはりループ変数を破壊的変更するのは人類の手に余るのでは https://t.co/k6AdNy068V」 / Twitter
- mattnさんはTwitterを使っています 「んータイムライン見てると Go の言語的な性質の様に書いてる人がいくらかいるけど、これ他の言語でも起きるよ?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@zacky1972 そっち行っちゃえば心配の必要がなくなるってのは自明ですが、ここでの話題は「ループ変数の更新は破壊的変更と気づきにくいからはまりやすいのでは」という話でして… なおSchemerにはループは再帰呼び出しに見えるので当然新しい束縛だろうと思うわけです」 / Twitter
- FadisさんはTwitterを使っています 「certbotのnginxプラグインを使ったLet's encryptの証明書の仕込みが簡単すぎて、TLS簡単になったなぁ、となった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今日、lets encryptの証明書取得したら4段になってて、おーって思った。メジャーなCAが4段発行するのひさしぶり感ある https://t.co/LPUM1W8d7d」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「2021年9月以降は今回のクロス証明書の状態の維持管理ができないので違反しているように思います」MUSTがあるのは同節最終段落で、ルート失効のタイミングで仕様を満たす検証機は失敗するようになるから問題ない気が / https://t.co/Fz1I9lRxtY」 / Twitter
- Let's Encryptのルート認証局移行についてちょっと調べてみた - Qiita
- Kazuho OkuさんはTwitterを使っています 「別の言い方をすると、Androidが仕様に反しルート証明書の有効期限検証していないのが問題であって、そこは、わざわざそうしている歴史的経緯がわからないと議論できないと思うけど僕は経緯をしらない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「規格では、validなパスが見つかるまで全探索しないといけないはずだけど、過去の署名を検証したいみたいなユースケースもあるわけで、有効期限切れのルートを無視するかどうかとかエッジケースの匂いがプンプン / https://t.co/vCya0X4h5J」 / Twitter
- Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
- YurikaさんはTwitterを使っています 「「監査的には有効期限を超えたクロスルートはOK(うろおぼえ)」みたいな話があったので、気になって見てみたけど、趣味レベル知識では、なるほどわからんだった。 WebTrust Principles and Criteria for Certification Authorities は鍵ペアのライフサイクル終了時には完全に破壊すること のようだし」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「まじか〜〜〜〜っ!!!Let's Encryptの期限切れになったDST Root X3、10月14日 朝06:20に次のCRL(CRLNumber=233)出してたよ〜〜〜〜!!!!鍵破壊してなかったんか〜〜〜〜い!!!!」 / Twitter
- Let's EncryptのDST Root X3ルート証明書の2021年9月30日の期限切れに伴うCRL発行の予想が外れた件のお詫び
- Let’s Encryptでワイルドカード証明書を取得する話 | IIJ Engineers Blog
BIMI
- BIMIとは? | SendGridブログ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GMailの場合、BIMI対応した企業ロゴ表示には、VMC(Verified Mark Certificates ) というロゴ証明書が必要。 DigiCertでのVMC料金は紹介割引で$899(定価$1499)、またロゴは事前に商標登録されている必要がある、と。 https://t.co/x8Gz6hD2rm」 / Twitter
- DigiCert Verified Mark Certificates
- 17: Let's Encryptの90日と1秒の証明書の対策のその後の議論の話、なりすましメール対策のBIMIとVMCの話 by ひとくちPKI • A podcast on Anchor
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VMCは、登録商標ロゴ+DMARCの紐づけ証明と。 類似ロゴを登録商標にした場合の誤認はありうるのかな? (商標は国ごとなので、国が違う類似商標など)」 / Twitter
S/MIME
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "S/MIMEは、有効期限が切れた証明書も全部残してないと古いメールの署名検証ができません。自分の過去の証明書もちゃんと残してないと古いメールが復号できなかったりします。ところが、その話をすると「おおっ」という反応がしばしば。つくづく使われてない技術だなと感じます。"
Qiita
- Kazuho OkuさんはTwitterを使っています 「書いてる人、すごい体系的に知識をダンプしていてプロだと思うけど一点「TLS「改ざんの有無」の説明が不適切。デジタル署名ではなく、MAC ( 今はAEAD) で担当」これは不正確。ハンドシェイクの改竄確認はデジタル署名 / https://t.co/BBbFeDodxW」 / Twitter
- 公開鍵暗号関連のテキストの間違いの典型例 - Qiita
- Kazuho OkuさんはTwitterを使っています 「ここまで細かく説明できる人だから、レコードレイヤの改竄検知はAEADだけど、ハンドシェイクレイヤはデジタル署名、というのも正確であってほしい、という」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「自分はここまで細かく網羅的な文章を書くことはできないだろうなーって思いつつ気軽にツッコミ入れてるだけです念のため」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています 「@kazuho PSK mode だと MAC(Finished) もあるかと。AEADじゃないですが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@jovi0608 おっしゃるとおりですね。PSKモード関係なくFinished「も」ある、という表現が的確でしょうか」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています 「@kazuho はい、そうですね。CertVerify と一部役割がかぶってて説明しずらいですが。」 / Twitter
- 図解 X.509 証明書 - Qiita
Twitter
その他
ASN.1
- ウチューじん・ささきさんはTwitterを使っています 「怪談だわ…(;゜Д゜) XMLって任意箇所に任意の長さのスペースや改行を突っ込めるし、タグに対応する閉じタグを探すには頭から1文字づつの文字列検索するしか無いので、パーサーの実行効率もメモリ効率も悪いと思う。」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「今まで扱ったXMLの中で一番地獄だったのは地図情報のGMLで、日本地図全部が数十ギガバイトのXMLファイル1本になっているやつだな。とにかくデータが重いし、普通のXMLパーサーで読むと死ぬのでいろいろ工夫が必要だった。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「と は い え。1970年代のOSI構想のなかで標準フォーマットとして制定されたASN.1はtag-length-valueのバイナリ形式(通常はBER、可変ビット長のPERもある)だったけど、これはこれで不評だったのよね。扱ううえで厄介なのはlengthじたいが可変長であること。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「読む方はともかくASN1 BERを作るとき、「その後に来るデータの長さ」がわからないと「長さの長さ」も確定しない。0-127までは1バイト、128以上だと81 80みたいに「1バイト目は長さの長さ|0x80、2バイト目以後に可変長の長さ」が付くフォーマットになる。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「事実上64Kバイト以上のデータなんて滅多に扱わないので、1バイトのデータでも82 00 01というエンコーディングにして実質固定長として扱っても良いんだけど、len部分に0x00が入るとエラー扱いにするASN1 BERパーサもあったらしい。いらんことすんなよバーカ!と思っていた。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「ASN1はSNMPに採用されて、90年代中頃に「何でもかんでもMIB定義してSNMPで管理するのが正義!」みたいな流行があった。PCのネット管理をSNMPで行おうとするDMTF:Desktop Management Task Force(プッシュホンのDTMF:Dial Tone Modulation Formatと紛らわしい)なんてのもあった。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「SNMPv1は不完全な仕様とされ、それを完全にすべくSNMPv2が企画され、数百Kバイトの仕様書の山を作ったあげく空中分解して崩壊した。その瓦礫の中から使える仕様を拾い集めたものがSNMPv2c(コンパクト)と呼ばれた。その後でもう一度やり直してSNMPv3を作ったときにはブームは終わっていた。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「SNMPv3が世に出た頃にはXMLブームで、世の中のすべてのデータはXMLで書いてSOAPで交換するのが正義!みたいに言われていた。SNMPブームの顛末を知っていると「あーはいはいまた新しいバズワードですね」としか思わなかったし、実際そうなった。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「くにゅさんには「車輪の再発明とか言うけど、結局みんな新しいものを欲しがるんだよね」と言われたけど、螺旋階段みたいなもので、何か同じとこグルグル回っているようでいて気が付くといろいろ高機能になって便利になっていることも事実だと思う。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「ASN.1フォーマットはデジタル証明書X509のフォーマットとして現役だったりする。CN=https://t.co/XVKvnG2uxL,O=Twitter, Inc.とかいう妙なフォーマットはOSIが規定した識別名システム、X.500 DN(Distinguished Name)と呼ばれるもの。現在ではCNだけを取り出しURLと照会して使っている。 https://t.co/u6AU5KskWK」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 ASN.1はDERってのもありましたね。規格化に参加していMHEGで採用していました。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy DERについては「BERみたいなもん」というボヤーっとした理解しかありませんでした。BERのサブセットで、BERでは許可されていた(というか禁止されていなかった)82 00 7Fみたいなlength表記が明確に禁止され「0-127はShort Format、128以上は桁が収まる最短のLong Format」と規定されているようです。」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 その頃はまだペーペーで議論に深くついて行けていなかったのですが、BERの方が冗長なのでhuman readableなtextual notationかASN.1 DERで符号化するという規定になった記憶があります。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy ASN1で表現しきれない部分、「項目Cの実装は任意である」とか「項目Bの実装は項目Aに依存している」とかの仕様をSNMPv2ではModule-ConformanceとかModule-Compliaceという記述で機械的に記述しようとしましたが、早い話が破綻しました。後になってXMLが似たようなことをやろうとしてましたね。」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 あーXMLにありますねぇそういうの。Relaxで出来ませんでしたっけ。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy DTDとかXSDとか何かいっぱい出てきたとき「すごく嫌な臭い」を感じて、XMLから離れるきっかけの一つになりました。もともと、XMLは「建前は立派だけど実装を見ると吐き気がするようなのばっかり」とも思っていました(^^;) https://t.co/NkO5hTu14j」 / Twitter
- XML schema - Wikipedia
- あうぇっどさんはTwitterを使っています 「@uchujin17 もともとSGMLが厳密さを求めたために使いづらいといって作りだされたのがXMLだと思っているので、メタ言語としてはいい加減なんですよねwそこに利便性を追加しまくった結果が今の状態かと。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 「A=1」というようなデータに10層を越える階層構造のタグを何キロバイトも被せて、そのタグの定義のDTDがまた何百キロバイトもあるとかを見ると「馬鹿なの?死ぬの?」と思いましたが、みんなそう思ったらしくJSONに流れてゆきましたね。」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 (笑)」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 10年くらい前にIOTブームがあったとき、各社各様のIOTプロトコルが発表されましたが、まだXMLブームを引きずっていたので如何にもWEB屋さんが考えたような仕様が多く、「こんなもん原価5ドルでFlash 128K+RAM 32Kのワンチップシステムに実装できんだろ」というのがまかり通っていました。」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 組み込み系とはとことん相性悪いですよね。XML。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy 5年前に書いた記事ですが、北米スマートグリッドの標準規格として持ち上げられていたSEP2.0仕様の話です。 https://t.co/CT8fVf0NFL」 / Twitter
- SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- あうぇっどさんはTwitterを使っています 「@uchujin17 Zigbee懐かしい。これ使ったスマートホームってのをサンディエゴに一軒家建てて実装サンプル作ったんですよね。あれその後どうなったんだろう。w」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy Zigbeeは「そういうのもある」レベルにとどまっていますねぇ。うちのアパートは去年玄関の鍵がスマートロック化されたんですが、リンク層は「まだ生きてたんかワレぇ!」と驚くZ-Waveでした。」 / Twitter
- あうぇっどさんはTwitterを使っています 「@uchujin17 それにつけてもECHONETの影の薄さよ」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Awed_Urshy ECHONET(Lite)は優しく眠らせてあげてください…いずれその上に神社でも建てて荒ぶる神を鎮めることでしょう(;_;)」 / Twitter
目視確認
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「Base64エンコードされた証明書などASN.1データを目読みできる人が一定数いる。JSONだとeyJとかで始まるくらいが関の山だが、証明書、CRL、OCSP、CMS SignedDataなどはもうちょっと見ることができて私のコツを紹介すると (1/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・SEQUENCE(30)で鍵の大きさにもよるが長さが820xxxになるので先頭は概ねMIIかMI ・RSA公開鍵、署名値などは非印字バイトとなるのでスラッシュやプラスが所々多く入る ・逆にASCII印字可能な識別名の値、有効期限の値などはスラッシュ、プラスが入らない (2/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・Base64は任意の3バイトを4文字で表現するので長い固定のバイトは後ろが3通りのみ ・rsaEncryptionやcommonNameなどの頻出OIDを3パターン知ってればその位置がわかる (3/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・上記により識別名やsubjectAltName、拡張のOIDなどの場所が大体わかる ・頻出する拡張タイプOID、CMS属性タイプなどの3パターンを覚えると更に読める (4/4) これで、みんなもPEM形式のX.509証明書大好きになっちゃうよね」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「おっと、忘れてた ・証明書の後ろは署名値だから非印字文字を含むのでスラッシュ、プラスが多めだよ これ、マメ知識な!!! (5/5)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「書き忘れ(2) ・主要な署名アルゴリズムのAlgorithmIdentifier構造も3パターン覚えておくと、tbsCertificateと署名値の区切りが大体わかってオススメだお」 / Twitter
histric-1
- Yosuke HASEGAWAさんのツイート: "Chrome 58になって、組織内でオレオレ証明書つかってると、ルート証明書いれててもページ遷移毎にmissing_subjectAltNameで証明書のエラー画面が出るようになったので、いろんな会社で叫び声きこえてておもしろいけど大変そう。"
- Rockridgeさんのツイート: "Fx52:security.enterprise_roots.enabledをtrueに設定した場合に、Windowsの証明書ストアに登録された証明書機関をチェックする範囲を拡大した。参照:… https://t.co/dolm0vhOaT"
- Rockridgeさんのツイート: "Fx56:中国の認証機関であるChina Internet Network Information Center(CNNIC)が発行したEV SSL証明書を無効なものとして取り扱うことにした。 / “show_bug.cgi?i…” https://t.co/f0F9XW4dg2"
- Shigeki Ohtsuさんのツイート: "うわっCIAのVault8 、ThawteのFake Root証明書を仕込んでカスペルスキーのWebサーバ証明書を作ってる。25年有効のシリアル番号1のSHA-1署名やん 。 https://t.co/98p2IZNMRa https://t.co/B01q0Wj0kR"
- Makoto Kato ︎︎さんのツイート: "WebTrust for BRに準拠してない運用してるGPKIよりもLet's Encryptの方がCAとしてマシな気がするし、そもそもLet's Encrypt使わない場合でもEVな証明書使わない気がするんだよね、そういうサイト。"
- himorin@5/19-20ベトナムフェスティバル2018さんのツイート: "そ、そろそろGPKIは部署ごとなかったことに・・・・したい・・・ですよねぇ。。… "
- Makoto Kato ︎︎さんのツイート: "ソフトバンクテクノロジー配下のCyber Trust JapanのCAがBR満たしてないかも話出てたけど、どうなったんだろ"
- Hideyuki Tanakaさんのツイート: "インターネッツのssl証明書は中間者攻撃を防ぐために必要な仕組みだったのに、いつの間にかお墨付きを与えるための高額商品みたいな商売になっていたのはなぜなのだろうか…(´・_・`)"
- Rockridgeさんのツイート: "Fx63:証明書のエラーページのデザインが新しくなった。 / “1463755 - Update the design of certificate error pages” https://t.co/MKaN8OGt3d"
- Shinko@C94金西も17bさんのツイート: "官報嘘だろ。 『オレオレ証明書インストールしてね』って頭湧いてんの。馬鹿なの? この国なんなの。まじかよ嘘だろ… https://t.co/UAyCRUkIga… "
- Kazuho Okuさんのツイート: "iOS含むAppleのプッシュサービスが、デバイス毎にユニークなクライアント証明書を使いwifiの切替の度にTLS 1.2で接続していたから、ネットワーク上からデバイスの位置をトラッキング可能だったという話。昨年修正済 #ietf102j"
- Kazuho Okuさんのツイート: "X509をひとことでいうと、証明書の署名鍵の証明する仕組。ダジャレじゃないよ!"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーは、VirtualBox内のSSL通信にも侵入して、証明書情報を書き換えてMITMを強制してくるのか…… "
- Rockridgeさんのツイート: "Comodo CAが2018年11月1日付けでSectigoへとブランド変更を実施。 / “Comodo CA Rebrands as Sectigo | Sectigo (formerly Comodo CA)” https://t.co/jsTnM8TY08"
- Kazuho Okuさんのツイート: "TLS 1.2までは証明書を平文で交換していたが、iPhoneのプッシュ通知においてデバイスのトラッキングが可能になるなどの問題があり(証明書はデバイス毎に一意だから)、1.3で暗号化されるようになった、と言えば覚えやすいのかしら https://t.co/JmkiJmswr9… https://t.co/23JzcdISGH"
- Push away your privacy: Precise user tracking based on TLS client certificate authentication - IEEE Conference Publication
- Vさんのツイート: "TLS 1.3 で証明書が暗号化されて送られるのまだ広まってないのか。"
- Kazuho Okuさんのツイート: "君たちの言っている公開鍵は、公開鍵交換なのか交換鍵署名なのか公開鍵暗号なのか"
- Kazuho Okuさんのツイート: "公開鍵は必ずしも一般に公開して使うものではないのですよ。例えば、クライアント認証に使う公開鍵は、通信相手毎に違うものを使い、かつ、経路上では暗号化して第三者に見えないようにすることで、名寄せやユーザートラッキングができないようにする、というのが今日的なベストプラクティス… https://t.co/dlSXIw4xQC"
- Kazuho Okuさんのツイート: "暗号応用の標準化に携わってる一技術者として言えることがあるとしたら、脅威モデルが何かという前提を明らかにせずに、あれが正しい、これが間違い、と主張するのは議論が空転するからさけたほうがいいよ、ってことですね"
- 佐々木聖也🍤인권さんのツイート: "> 経路上では暗号化して第三者に見えないようにすること ができるにもかかわらず,認証に共通鍵暗号ではなく公開鍵暗号を利用するのはなぜなのでしょうか。計算コストが無駄ではないですか?… "
- Kazuho Okuさんのツイート: "いい質問だと思います。標準化されていて柔軟(たとえばTLSのクライアント認証機能を使えば、上位で動作するアプリケーションごとに認証機能をもたなくてよい)、セキュア(クライアントデバイス外に鍵が漏れることがない)、しばしばハードウェアサポートがある、といったあたりが理由かなと… https://t.co/VPFg4ndiiF"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば最近はさすがに、公開鍵の特徴を説明しようとして、RSAの特徴を説明してしまうパターンは減った気がする。 (昔、猿にはわからんだろうけど…みたいなタイトルで啓蒙していた人の成果かな?)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは明確に複数の事実誤認(RSAとDHの原理の混同、またDHの方が先)してますね。 それ以外に気になったのはどのあたりでしょう?… "
- angel as ㌵㌤の猫さんのツイート: "これ…。第1回はいいけど…。山口准教授って、ガチの専門家のはずだよね。それでこの内容なの? 20年前だったらまだしようがないかもしれないけど、連載当時で2017年なんだよね。… "
- ぎょうせいオンラインさんのツイート: "【連載】カフェ発マイナンバー・ICTが拓くセキュアで豊かな社会 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) 山口 利恵・東京大学大学院情報理工学系研究科ソーシャルICT研究センター特任准教授 https://t.co/PyURnDLUcY"
- 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) | ぎょうせいオンライン 地方自治の総合サイト
- Shigeki OhtsuさんはTwitterを使っています 「Apple Safariが2020年9月1日以降発行の証明書の有効期限を1年(と+1ヶ月の398日)に制限をかけるようです。Chromeも追随しちゃうよな。 / “position-on-1-year-ssl-tls-certificates” https://t.co/PE4ehm5FrN」 / Twitter
- position-on-1-year-ssl-tls-certificates
- Shigeki OhtsuさんはTwitterを使っています 「Appleが2020年9月1日よりサーバ証明書の有効期限を最大398日に制限する正式アナウンスです。 / “About upcoming limits on trusted certificates - Apple Support” https://t.co/zZ7QtjieFZ」 / Twitter
- About upcoming limits on trusted certificates - Apple Support
- uint256_tさんはTwitterを使っています 「素数判定, miller rabin くらいしか知らないなあ」 / Twitter
- ほまれちゃん☃️さんはTwitterを使っています 「@uint256_t AKS法、フェルマーテスト、ソロベイ・シュトラッセンテスト等々色々ありますね(自分はミラーラビンとAKS法しか実装したことがない)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「拙作のPKIライブラリjsrsasign 10.5.0をリリースさせて頂きました。 https://t.co/nbciyg8CY2 今までBitcoinJSのECDSAを少しいじって使ってたんですが、どうもP-521に対応できなくて放置していたものをドイツの@cpluscharpさんが直してくれました。DaveさんがくれたRSAPSS対応と並ぶ最高のPRでした」 / Twitter
- kjur/jsrsasign: The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL, OCSP, CMS SignedData, TimeStamp, CAdES JSON Web Signature/Token in pure JavaScript.
- VさんはTwitterを使っています: 「Cloudflare 使うと Edge 証明書を自動更新してくれるし、勝手に HTTP/3 にしてくれるし、Origin 証明書発行してくれて、証明書更新におびえなくて良くなる。HTTPS 前提なら使わない理由が基本的にない。」 / Twitter
- VさんはTwitterを使っています: 「Edge 証明書は DigiCert だけじゃなく Let's Encrypt もあり、選択肢があるのも良い。」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています: 「フィッシング対策協議会はまーだこんなこと言ってるの? OUなんか見ても意味ないって。意味をなさないからブラウザが直接表示をやめている機能なのに、確認しろとかアホなの? 誰向けの記事なの? と思ったら、証明書販売業者の人たちが作成していた。 https://t.co/P3WHQTJeLd https://t.co/T04pbb0qK7」 / Twitter
- フィッシング対策協議会 Council of Anti-Phishing Japan | ニュース | 協議会からのお知らせ | Webサイトのサーバー証明書種類の確認方法(2022/09/06)
- YurikaさんはTwitterを使っています 「昨日発見した 証明書チェーン確認サイト、便利すぎるhttps://t.co/mynh3bqhGF https://t.co/fwRfk0vndP」 / Twitter
- Quick Chain Check - Powered by Certify The Web
- suzakiさんはTwitterを使っています 「Quick Chain Checker https://t.co/KOvOKY3FGM 面白い。 ついでに各Root CAがどれくらいのシェアがあるのか検索したら 「SSL証明書シェアの50%に到達」2019/05/29 https://t.co/9eYM4CpweO 下記の2018状況とだいぶ変わっている。 「世界のTLS証明書認証局の市場」 https://t.co/EWRwcIPEDQ」 / Twitter
- Let's EncryptのIdenTrust、SSL証明書シェアの50%に到達 | TECH+
- 世界のTLS証明書認証局の市場 - FS_WP_Digicert_Dec18_jw_JAJP.pdf
UEFI
その他
- C++编撰操作系统(1):基于 EFI 的 Bootloader_imooo软件程序bug解决方案
- Free Software EFI Drivers
- BIOS and UEFI Firmware Version - Find in Windows
- flat assembler - View topic - Multiprocessor support in UEFI
- Simonas / huehuehuehuehue · GitLab
- Comment #162 : Bug #1040557 : Bugs : Ubuntu CD Images
- 現在、Windows® OSをUEFIモードでインストールして使用しています。レガシーOSブートデバイスを第1 起動デバイスとして設定した場合、あるいはWindows Boot Managerを第2 起動デバイス以降に設定するとWindows® OSを起動することができません。 この問題の解決方法を教えてください。
- [FreeBSD-users-jp 95884] Re: UEFIモードでインストールしたがHDDから起動できない
- *BSD_サポート_FAQ_FreeBSD_ハード、ソフト等_ハードウェアセットアップ(a) | HPE 日本
- UEFI エミュレータで遊ぶ
- 数多くのPCで採用されているInsyde H2O UEFI BIOSに23個の脆弱性。開示で修正へ - PC Watch
- 23の主要なBIOSの脆弱性が発見され、Intel、Lenovo、その他に影響を与える|自作.com
- Backdooring Grub2 | StarkeBlog
- UEFI - FreeBSD Wiki
edk2
- musl libc
- edk2/MdePkg/Include/Library at master · tianocore/edk2
- edk2/PrintLib.h at master · tianocore/edk2
- edk2/MdePkg/Library/UefiLib at master · tianocore/edk2
- edk2/UefiLibPrint.c at master · tianocore/edk2
- edk2/MdePkg/Library/BasePrintLib at master · tianocore/edk2
- edk2/PrintLib.c at master · tianocore/edk2
- edk2/PrintLibInternal.c at master · tianocore/edk2
- edk2/PrintLibInternal.h at master · tianocore/edk2
musl, glibc
strlcpyに代わる新しい関数strscpy
- FadisさんはTwitterを使っています: 「Linuxカーネルのソースからstrlcpyを排除する努力がなされている話。strlcpyはstrncpyをより安全にする目的でBSDで発明された関数で、Linuxカーネルにも同じものが実装されて古くから使われてきたが、近年この関数が文字列操作を安全にするかについて疑問の声があがっていた https://t.co/wgEsW7Q9pm」 / Twitter
- FadisさんはTwitterを使っています: 「strncpyは文字列を別の領域にコピーする関数で、コピー元の文字列の長さがコピー先のバッファより長い場合に備えてコピー先の最大長を引数に渡すようになっている。問題はコピー先の最大長に達してコピーが止まった場合コピー先の文字列が\0で終端されない事」 / Twitter
- FadisさんはTwitterを使っています: 「この為strncpyした文字列は最後までコピーできたかどうかを常に確認しないと、コピーされた文字列を食べた別の関数が\0が無いためにバッファの終わりを超えて文字列を食べてしまうが、このチェックを忘れるプログラマは後を立たなかった」 / Twitter
- FadisさんはTwitterを使っています: 「そこでBSDで導入されたstrlcpyはコピー先のバッファのサイズ-1まで書いたらコピーを打ち切りバッファの最後に\0を書く。これでとりあえず文字列は確実に終端される。更にstrlcpyはコピー元の文字列の長さを返り値として返す為、返り値とバッファのサイズを比較すれば全て書けたかどうかが分かる」 / Twitter
- FadisさんはTwitterを使っています: 「この関数の問題はstrlcpyはコピー元の文字列の長さを返すためにまずコピー元の終端を探す点。もしもこの文字列が終端されていないとstrlcpyはバッファオーバーランを起こす。そのためこの関数は事前に長さがチェックされていない悪意があるかもしれない入力値に対して使われないように注意を要する」 / Twitter
- FadisさんはTwitterを使っています: 「そこでLinuxではstrlcpyに代わる新しい関数strscpyが用意された。strscpyはstrlcpy同様コピー先のサイズ-1バイトまで書いて最後に\0を書くが、返り値はコピー元の文字列の長さではなくコピーした文字数になっている。コピー先の終端に達して打ち切った場合はコピーした文字数ではなく-E2BIGが返る。」 / Twitter
- FadisさんはTwitterを使っています: 「現在Linuxではstrlcpyからstrscpyへの移行が進められているが、strlcpyが導入されたのはLinux 2.4の時代で、strlcpyが現れる箇所は膨大で、strscpyへの移行は長い道のりになっている。Linux 6.0-rc2の時点でstrlcpyを使っている箇所が1400以上に対して、strscpyに移行している箇所が1800箇所程らしい」 / Twitter
snprintf
- 社会人でもOSを作りたいさんのツイート: "え、完全に誤解してたわ 。https://t.co/tLot6IEr6Q によればsnprintfは書き込んだバイト数を返すが、それはバッファが十分大きく、すべてのデータが書き込めたと仮定した場合のバイト数であるらしい。"
- OS作れないマンさんのツイート: "データが書き込み先バッファより大きい場合、実際に書き込んだバイト数より大きな数が返ることになる。新しい関数scnprintfなら、本当に書き込んだバイト数を返してくれる、とのこと。"
- snprintf() confusion [LWN.net]
locale
- Kazuho OkuさんはTwitterを使っています 「桁区切り文字よりも小数点がロケールによって変わることの問題ですね。浮動小数を正しく文字列化するのは二進十進変換の関係から難しいので sprintf を使うのが妥当ですが、じゃあ小数点区切りを何に統一すべきか、と cf. https://t.co/n5A3D3UVZI」 / Twitter
- picojson/picojson.h at master · kazuho/picojson
- SouさんはTwitterを使っています 「文字列では使わないし、数字を桁区切り文字列で渡す事はないなぁ… そんなプログラム作る人がいるのはちょっと意外。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「printf / scanf とか全部この影響受けるから、文字列化したデータ生成・交換する場合には区切り符号の変換必須だけど、知っててもハマりがちな問題だよなぁ / https://t.co/i1PmoDBTxj」 / Twitter
- 国内音ゲー、「ベトナム語版がバグる」原因が開発者らの恐怖を呼ぶ。“カンマとピリオド逆問題”による数字のワナ - AUTOMATON
- 埼玉の猫さんはTwitterを使っています 「@kazuho 3.14を314E-2みたいに表記すれば小数点なくなりそう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shmorimo 指数の底もバイナリ表現と十進表現を変換する必要があるので、.を使わない表記に変換するコードを書くくらいなら、小数点ありの10進表現を文字列化するコードを書いても手間はかわらないかも...」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「sprintfやstrtoulがlocaleに依存することを嫌ったrubyは結局自分たちでlocale非依存のprintfとかを再発明するに至っていますね…」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「strtoulのどこにlocale依存があるんだよと思うと、あるんだなこれが。strtoul("i", 0, 36)がトルコ語かそうでないかでアルファベット順が違って破綻するんだ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「rubyはstrtodも自力で再発明していますが、これはlocale依存がどうというよりもlibcのstrtodの精度に不満があるとかなんとかだった気がする。今パッとチケット思い出せないけどたしかそんな理由で入ったはず。」 / Twitter
- musl - Wikipedia
- musl - Wikipedia, the free encyclopedia
- MinGW - Minimalist GNU for Windows | SourceForge.net
- MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
- _BitScanForward, _BitScanForward64
- Visual Studio Tips - Windows 2000 Blog
- LibC library musl ported to UEFI | Firmware Security
- Rich Felker(@RichFelker)さん | Twitter
- libc-testsuite - correctness and quality tests for libc implementations
- Makoto Kato ︎︎さんはTwitterを使っています 「perf issueとかrandom crash (use-after-free関連の)とかのデバッグやってればglibcとかMSVCRTとかが各CPU毎の最適化コードをアセンブラとかで書いてあるのは知って当然なはずだけど、みんなそこまでやらなくていいんだ。いいなぁ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「glibcもUlrichがやってた時はx86以外の最適化コードを入れてくれなくてホント面倒だったけど、彼がRedHat辞めたおかげで、いろいろ話が楽になったのはある。もうそれも10年くらい前か。」 / Twitter
- muslでビルドするにはmusl.ccが便利 - kateinoigakukunのブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「musl libcは GNU libcにおける __GLIBC__ のようなマクロを定義しない。muslの開発者によれば #ifdef で機能を検出するのは悪い習慣であり、つねに ./configureがやるようなテストを使うべきなのだ。しかしクロスコンパイル環境ではこのようなテストは使えない。 https://t.co/GXG4PFWPqR」 / Twitter
- The musl preprocessor debate | The Cat Fox Life
- Katsuhiro SuzukiさんはTwitterを使っています: 「あーそうか、libcのmemcpyはSIMDのLoad/Store(AVXとかSSE)をガンガン使ってくるから、rep movs*は使わないんだっけ……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「AMDさん... どうして... ってなってる(rep movs* はシステムコールで使われるメモリコピー手法) https://t.co/dwaflIqkXR」 / Twitter
cosmopolitan
- hikaliumさんはTwitterを使っています 「MacでもWindowsでもLinuxでも動くバイナリが出来上がるの面白すぎる(というかそんなことが可能だったのか…)。 https://t.co/pXZ2DbgO81」 / Twitter
- Cosmopolitan C Library
- 伊津野 英克さんはTwitterを使っています 「シェルスクリプトとして解釈できる Windows の exe で QEMU を実行して ELF バイナリを実行してる感じ? https://t.co/14z2RfWMMw」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「単一の実行ファイルなのにWindows/macOS/Linux/FreeBSD/OpenBSDで動く実行ファイルが作れるというCosmopolitanというプロジェクト、ヘビーに改造されたchibiccがリポジトリに入っている。 https://t.co/BJmfN3hrDc」 / Twitter
- cosmopolitan/third_party/chibicc at master · jart/cosmopolitan
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Windows/UNIX(macOS/Linux/FreeBSD等)/BIOSで実行できる単一バイナリ実行ファイル形式 actually portable executable (ape) が面白い。 https://t.co/Hh6DtqeEjp」 / Twitter
- Actually Portable Executable
- 品川@学生・共同研究募集中さんはTwitterを使っています 「基本はファイルの先頭にマジックナンバー "MZ" が付いているので、Windows の Portable Executable (PE) バイナリとしてそのまま実行できる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「UNIX系でシェルスクリプトとして実行すると、先頭部分は "MZqFpD='ヘッダ'" と解釈されるようになっていて、先頭のバイナリ部分は変数への代入になってスキップされて、その後ろにあるコマンドで macOS の Mach-O や Linux/FreeBSD の ELF のヘッダでファイルを自己書き換えして再実行している。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「BIOSから読み込んで実行すると、"MZ" は "dec %bp; pop %dx" になって無害、その後の "qFqD" は "jno 0x4a; jo 0x4a" でフラグの状態にかかわらずヘッダをスキップしてリアルモードのバイナリコードを開始できる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Arm でも実行できるようにするのは難しくないだろうけど、2つのバイナリを埋め込むことにはなるので、サイズは大きくなる。あと、UNIX系だと実行ファイルに書き込み許可が必要になるのが難点か。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「macOS かどうかの判定に "if [ -d /Applications ]; then" を使っているのは、微妙な気がするけど…」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Windows と UEFI で同時に実行できるバイナリファイルを作るのは無理っぽいかな。同じ PE フォーマットだから。subsystem の値を無視するファームウェアならいけるのかな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Cosmopolitanのこのページ、chibiccにdoxygenコメントを読む機能を追加して自動生成したページらしい。 https://t.co/dCAZBmhtEY」 / Twitter
- Cosmopolitan C Library
malloc
その他
- 動的メモリ確保 - Wikipedia
- malloc(3)のメモリ管理構造 | VA Linux Systems Japan株式会社
- 50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
- Project Zero: The poisoned NUL byte, 2014 edition
- Visual Studio C++でメモリリークの検出 crtdbg.h CrtSetDbgFl | urashita.com
- realloc関数怖い - ichirin2501's diary
- 'CVS: cvs.openbsd.org: src' - MARC
- Protectable Memory "Pmalloc" Support For The Linux Kernel Updated Again - Phoronix
- 日記 (2014 年 1 月上旬)
- メモリ管理
- 非カーネル用のスラブ・アロケータ - Tociyuki::Diary
- mallocの動作を追いかける(環境変数編) - Qiita
- std::alignを動的メモリ確保と一緒に使う - in neuro
- 論文「snmalloc: A Message Passing Allocator」(ISMM 2019)
- mimalloc のメモリ管理 - Qiita
- 論文「Reconsidering Custom Memory Allocation」(OOPSLA 2002)
- failmalloc - Google 検索
- p20191226a - K-kiwi
- 50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
- bump pointer - Google 検索
- バンプポインタアロケータ - Google 検索
- Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
- alloc_alignedの野良実装 - 豪鬼メモ
- reallocによる配列拡張の償却時間計算量 - 豪鬼メモ
- mumumuさんはTwitterを使っています 「MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels [ATC '21] OSのメモリ解放忘れを検出するために,エラーで早くreturnするパス(Early-Exit Path)を正常パスと比較する手法を提案してLinuxで実証.120このバグを見つけた.賢い. https://t.co/Kvw0RbNhxq」 / Twitter
- MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels | USENIX
- Rustで実装するmalloc - NTT Communications Engineers' Blog
- Libpasのすべて, Phil's Super Fast Malloc
- Windows版Firefoxの「メモリ不足によるクラッシュ」を70%減らした手法とは? - GIGAZINE
SegmentHeap
- メモリ食いのGoogle Chrome、ついに消費量削減へ - PC Watch
- Opt in to the Windows "segment heap" (I217d045e) · Gerrit Code Review
- May 2020 Updateの「Microsoft Edge」は省メモリ ~ブラウジング時の消費量を最大27%削減 - 窓の杜
- Improving Memory Usage in Microsoft Edge - Microsoft Edge Blog
- Application Manifests - Win32 apps | Microsoft Docs
- Visual C++ 2017 第4回 アプリケーションマニフェストの作成(1/2) : FENIX-PC
- us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
- Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion/ at master · synacktiv/Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion
MESH
- 論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)
- [1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
- plasma-umass/Mesh: A memory allocator that automatically reduces the memory footprint of C/C++ applications.
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 アロケータとしても面白いが、memfd_create と mmap の合わせ技で、(実ファイル無しに)別々の仮想ページを同じ物理ページにマップという、カーネル的な技をユーザランドで…というテクニックは別の用途でも利用してみたいなぁ。… https://t.co/JaO3GU9M6O"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちょっと違うが、pdumpfsというハードリンクによる実体共有を活用したソフトを思い出したり。 そして、リンク多用を想定していない dump/restore がメモリ不足で落ちたり、NTFS仕様のリンク上限1024に引っかかったりと、普通では発生しない問題に遭遇しやすかった記憶も。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のアロケータの場合、一つのページに沢山の共有が発生した場合のカーネル性能への影響は、カーネルのページ構造などに依存しそう。 それと、物理ページのコンパクションに対し、仮想空間はむしろ疎な利用が増えていきそうな印象も。(64bitなら別に気にしなくても感はあるが)"
- Kazuho Okuさんのツイート: "面白い。ある状況にむけた最適化を備えたmallocだと思えばvmaの上限値もブロッカーではない(最適化が効かなくなるだけ)と割り切れば使い手がありそう / https://t.co/Q0dHZmwGO5"
- Kazuho Okuさんのツイート: "MESHはiOSアプリでメモリ不足になってきたらコンパクションする、的な使い方とかできるのかなぁ。できそうな気もするしゲームとかだとうれしい気もする"
- takuya-aさんのツイート: "memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。 / “論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)” https://t.co/NPEgjELKQn"
TCMalloc
- Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (3) TCMallocでメモリ割り当てを高速化する | マイナビニュース
- gperftools/gperftools: Main gperftools repository
- デフォルトの malloc を差し替えずに tc_malloc を使う - Qiita
- TCMalloc : Thread-Caching Malloc
- g-TCmalloc.pdf
- Google Perf Tools (tcmalloc) の使い方
- Google Japan Blog: Google が公開しているソフトウェアの解説(その4)- Performance tools -
- TCMalloc : Thread-Caching Malloc
- How To Use TCMalloc? - Stack Overflow
- Google独自のC/C++用メモリアロケータTCMallocがオープンソースとして公開へ
jemalloc
- Rockridgeさんのツイート: "Fx52:jemalloc 4のバージョンを4.3.1にアップデート。しかし、いまだにjemalloc自体が有効化されていない。参照:https://t.co/Yb9QfsbvzR / “1277704 – Update jem…” https://t.co/lRfhoy8hP0"
- Rockridgeさんのツイート: "Firefoxのメモリアロケータをmozjemallocからjemalloc 4に置き換える作業を続けてきたが、パフォーマンスの低下とメモリ消費量の増加が一向に改善せず、置換計画は破棄された。参照:… https://t.co/JX4WNdhnHo"
- Removing Jemalloc 4 - Google グループ
- jemalloc について調べたのでまとめた - zonomasaの日記
- なかのん&マジックさんのツイート: "<input type=text>等のエディタのメモリ消費量を約半分に削減できる目処はたったんでやらないとな。 / Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24) https://t.co/mYUVCtJLOT @_clear_codeさんから"
- Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24)
- なかのん&マジックさんのツイート: "jemallocはフラグメント化を抑制するために一定の大きさの空間にオブジェクトを整理してるんだけど、TextEditorのinstanceの大きさを調べるとギリギリその閾値より大きい事が判明してしまった。"
- なかのん&マジックさんのツイート: "なので、input要素が大量にあるフォームに実際に入力していくと、一気にメモリ使用量が上がっちゃう。表示しただけならセーフ。"
- なかのん&マジックさんのツイート: "生の数字を言っちゃうと、今、TextEditorが1024バイトのエリアに配置されてる。実際は550バイト程度しか要らないんだけど。"
- なかのん&マジックさんのツイート: "64bit版の話。たぶん、32bit版は512バイトの線を割り込んでるはず。"
- そのっつ (Naotoshi Seo)さんはTwitterを使っています 「jemalloc v4, 5 より v3.6.0 の方がメモリ使用量少なくて良い説というのがあるのか :thinking_face: / “Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder · GitHub” https://t.co/8ENjuojmnA」 / Twitter
- Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder
- Miura HidekiさんはTwitterを使っています 「まあ、メモリアロケータなんてトレードオフの塊だからな。搭載メモリは単調増加することが期待できるからメモリを使って性能を上げる方がモチベーションとしては高そうだ」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「そりゃAlpine使ってんならもともとのmallocが遅めなのはそうでしょうな。Alpine(musl)のmallocがそういう特性だからね。でも実験してちゃんと自分達で定量的に評価しているのはすごい偉い。 https://t.co/ZbbikSeX5K」 / Twitter
- Ruby × jemallocのすすめ - メドピア開発者ブログ
- 7594591200220899443さんはTwitterを使っています 「mallocに正解はありません。ワークロード毎にこの戦略が良いとか悪いとか色々ある。自力で色々試して自分なりの納得を得る行為が尊い。」 / Twitter
mallocng-draft
- 7594591200220899443さんはTwitterを使っています 「mallocのメモリ消費といえばRich Felker が新しいmallocを考案中で、 https://t.co/mCPmHCJOpW まだ未完成だけどもデザインゴールとして「返せるメモリをOSに返そうとする」をやろうとしているんだよな、将来のAlpineとかに採用される見込み。」 / Twitter
- richfelker/mallocng-draft: Working draft of nextgen malloc implementation for musl libc
- SODA NoriyukiさんはTwitterを使っています 「@shyouhei OSに返すってのは、たぶんmusl libcの文脈ですよね… glibc malloc は既に返せるようになってるので。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@n_soda もうちょっとアグレッシブなはず、例えば前に読んだのはreallocでサイズが減ったとき減った部分だけ返すとかします、今もそうなってるかしりませんが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shyouhei 返すのを頑張りすぎると遅くなるので汎用OSだと加減が難しいんですよねえ。 musl libcは組み込み方面での利用が多くて、メモリ足りない度合いが高いので、頑張れるだけ頑張る方針なのかしら…」 / Twitter
mtrace
- 【メモリリーク】mtraceの使い方【glibc】 | FiS Project
- メモリリーク検出:mtrace編 : しっくハック
- Manpage of MTRACE
- メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
- mtraceでメモリーリークを検出する方法: 小粋空間
- 革命の日々! mtraceの使い方
- mtraceを使ってみる - Akio's Log
- Man page of MTRACE
Infallible memory allocation
- Makoto Kato ︎︎さんのツイート: "Infallible memory allocationになって5年以上経つけど、昔のコードは未だにmoz_xmallocとかに対してnullptrチェックしてるんだよね。あれコンパイラとかで消せないのかしら"
- Infallible memory allocation - Mozilla | MDN
VMA
- FadisさんはTwitterを使っています 「Vulkan Memory Allocator(VMA) 3.0がd出たらしい。Vulkanではmallocではダメな特殊なメモリの確保をvkAllocateMemoryで行うが、メモリ確保がページ単位、用途に合うメモリの選択が手動等不便なので、より便利なメモリ確保のためにVulkanとアプリケーションの間に入るのがVMA https://t.co/vcXtuc4kl3」 / Twitter
- AMD's GPUOpen Releases Vulkan Memory Allocator 3.0 - Phoronix
- FadisさんはTwitterを使っています 「VMA 3.0ではアプリケーションがどんな用途のメモリを欲しているかを表すフラグがより詳細になる。従来のフラグも互換性の為に残されるが、新しいフラグを使うことで特定用途向けに特殊な振る舞いをするメモリを持っているGPUでよりハードウェアを活用したメモリの選択が期待できる」 / Twitter
- FadisさんはTwitterを使っています 「VMA 3.0ではメモリアロケータのアルゴリズムが従来のリニアアロケータから、より高速でよく研究されているアルゴリズムであるTwo-Level Segregated Fitに変更されたらしい。また、なんとなく動いていたけど実はサポートしていなかったVulkan 1.2と1.3が正式にサポートされた」 / Twitter
- FadisさんはTwitterを使っています 「VMA 3.0ではVulkanがVK_KHR_buffer_device_address拡張に対応している場合、GPU側でのアドレスを取れるメモリをVMA経由で確保できるようになる。GPU側のアドレスはGPU上で木構造や連結リストを作る際に必要になりがちで、Vulkanでレイトレーシングを行う場合必須になる」 / Twitter
- FadisさんはTwitterを使っています 「またVMA 3.0はアロケータに優先度を付けられるようになる。VK_EXT_memory_priority拡張に対応するGPUでは、限られた高速なメモリにデータが乗り切らない時、透過的にページを低速なメモリに移動させるが、このとき優先度が高いページほど高速なメモリから落ちにくくなる」 / Twitter
メモリを再利用のためにプーリング
- Kazuho OkuさんはTwitterを使っています: 「これ実際に書いてみて5%くらい時間くってた malloc / free が実際に消えたわけだけど、そろそろ malloc 自体を実装したほうがいいんじゃないか感が出てきてる気がしないでもない https://t.co/oXUlbagLoC」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「メモリを再利用のためにプーリングするの、どういう設計がオートチューンするんだろう。直近期間内のプール最小・最大量を覚えておいて、記録された最小量の1/2を解放する操作を繰り返すとかで良いのかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「うんそれでよさそうな気がする」 / Twitter
- auto-tuning of memory recycler by kazuho · Pull Request #3031 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています: 「方向性としては、一定時間メモリを再利用しなかったら free する、というのの近似なのかな。こういう方向性自体はサーバだと一般的に有効だと思うし、先行例あっておかしくないと思うけど、皆どうしてるんだろう」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています: 「@kazuho jemalloc がタイマー使ってた遠い記憶🤔」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@objectxplosive opt.dirty_decay_ms ですね。ありがとうございます」 / Twitter
- (1) 眼力 玉壱號さんはTwitterを使っています: 「@kazuho https://t.co/VbzbRsXe7g で触れられてたのです > タイマー # Safari が内部的に使ってる bmalloc は unmap をある程度溜めて別 thread 起こして unmap してた(block する syscall を使うので)」 / Twitter
- Tick Tock, malloc Needs a Clock - YouTube
- Kazuho OkuさんはTwitterを使っています: 「@objectxplosive これはトピックとしてまとまっていてよさそう... あざます!」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています: 「@kazuho FYI: bmalloc の奴は https://t.co/mlrr2Z2PA8 スね」 / Twitter
- WebKit/Scavenger.cpp at 2462ad8f2b166850428dd345e0567a599244a783 · WebKit/WebKit
スライド
- Glibc malloc internal
- katagaitai CTF勉強会 #1 pwnables編 - DEFCON CTF 2014 pwn1 heap
- Kosaki - the malloc - - Togetter
- Glibc malloc internal
- The 67th Yokohama kernel reading party - YouTube
- osdev_moku2 #2 - Google スライド
- 「京」におけるマルチスレッドmalloc / malloc on K computer - Speaker Deck
OSDN
- 「glibc 2.26」リリース、mallocのスレッド毎キャッシュによる高速化やUnicode 10サポートなどが導入される | OSDN Magazine
POSTD
- OSのデバッグ:メモリアロケーション講座 | コンピュータサイエンス | POSTD
GitHub
- rampantpixels/rpmalloc: Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
- jemalloc
- jemalloc/jemalloc
- CCareaga/heap_allocator: A simple heap memory allocator in ~200 lines.
- cubanismo/allocator: Incubator for a general Unix Device Memory Allocation library
Twitter
その他
性能保証
- Miura HidekiさんはTwitterを使っています 「リアルタイム性という観点なら、GC無しでもヒープからな動的なメモリ割り当てを使っているなら、フラグメンテーションが進んだ状況を考えるとmallocやfreeの時間の最悪時間の保障って難しいじゃないかな?」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 今どきのスラブアロケータなら(一定以下のサイズなら)フラグメンテーションは起こらず、最悪時間も保証できる気がしますが、空間利用効率は落ちますかね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 フラグメンテーションは起きずらいと思いますが、そのサイズのアリーナを使い果たした場合とか速度低下の状況は考えられそうです。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 確かにガチのリアルタイムシステムだと「たまにしか遅くならないから許して」という言い訳は通用しなさそうですね。」 / Twitter
malloc 失敗
- Egtra (ysk-noh)さんのツイート: "基本的にはそうなんだけど、「数百MBのメモリ確保に失敗→その他の致命的例外同様、ログ吐いて続行」を経験したことがある。何事にも例外はあるんだと学んだ。 https://t.co/irgtFQDCFQ"
- Fadisさんのツイート: "「メモリが確保出来なかった」という理由で例外が飛んだ時、abortする以外にアプリケーションが出来る事は本当に少ない。デバッグの足しにしようとしてこの例外を捉えて行なった処理は大抵、再度メモリが確保出来ないという例外を飛ばす事になる"
- 島鉄雄さんのツイート: "> mallocが失敗した後だとprintf呼べない setvbuf() で自前のバッファを割り当てておけば一応呼べるはず。… "
- SODA Noriyukiさんのツイート: "みんなホントにmalloc失敗で単にabortしてるだけなの? そんなことないよね。 「このmallocは(ユーザー入力やら通信相手の挙動やらによって)現実に失敗しうるしその場合にabortじゃまずい」的な場所限定なら、実用プログラムではふつう最低限の対処は入れてると思うしそう難しくないと思うんだけど。"
- SODA Noriyukiさんのツイート: "640KBしかメモリがないMS-DOSでGosling Emacs動かすときにとった対処→ https://t.co/XMLSy0TkuG これは仮想記憶前提でmallocが絶対失敗しないという仮定のあるプログラムへの後づけのパッチなのでかなり無理してるけど、でもこの程度なら簡単。 GNU emacsなら元からもっとgracefulに対処してる筈。"
- わたなべごうさんのツイート: "制御用の処理とかは別途外側にスクリプト言語とかで組んでおいて、低層のライブラリでメモリエラーでたら可能な限り解放かけてから外側の言語に例外なげて後処理をまかせる、みたいな書き方はしますね。ゲームだとクイックセーブしてごめんなさいしてタイトルに戻る… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのバッファ指定で実行ボタンを押すと即死、とか嫌がられそうです(笑) 特に、32bit環境だと「OSの空き仮想メモリはあっても、プロセス内の連続アドレス空間が無く」というパターンでコケることもあったりします。… "
- まさみさんは語りたいさんのツイート: "結構abortしてる。kmalloc出来ないとか末期的だし。… "
- SODA Noriyukiさんのツイート: "組み込み用とかはそのために固定サイズの配列使うのが多いですよね。 僕の仕事関係はUNIXサーバー用で、abortするとまずいけど、メモリはあるだけ限界まで使いたいので固定サイズにはできず、malloc()失敗にはそれなりに対処できるように作ってるつもりです。(もちろん抜けはあると思います)… https://t.co/TFCiKl58Nm"
- SODA Noriyukiさんのツイート: "カーネルがminfree程度の空きメモリがあると仮定するのは(mmがそれを保証しようと努力する作りになってるわけで)アリですからね。 大きなサイズの動的メモリ確保については、gracefulに失敗する作りになっているところの方がふつうじゃないでしょうか?… "
- yohさんのツイート: "「malloc失敗後にできることは何もない」って データ永続化や次回起動時のためのMinimum Grace Shutdown処理とかもせーへんの?さすがに怖すぎない?"
- ケケモコソカメニハさんのツイート: "例えばエディタでファイルを開く時のメモリ確保はエラーハンドリングしないと、巨大ファイルを読み込ませたらアプリごと落ちましたというのはみっともないのでは……巨大なメモリ確保が失敗したからって後の実行に悪影響もないでしょうし適当なエラーダイアログ出してふつーに継続では"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、大き目データ群=VirtualAlloc(コミット済)、大き目になりうるデータ群=VirtualAlloc(アドレス空間確保)、それ以外はnew/mallocという使い分けで、前者2つはリカバリ可能な対処を入れてある、という感じ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現実的にエラーになりうるメモリ確保はVirtualAlloc系に集約して、ほぼ発生しないはずのmalloc/newエラーは放置という割り切りをした、とは言えるかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VirtualAlloc(アドレス空間確保)の良い点の一つは、PTEを全く消費しないこと。(MSの資料だけだと心配だったので、実験して確認したり) まあ、予約空間の1/1024ほどのサイズですが。"
- SODA Noriyukiさんのツイート: "ただしそういうアプリは、Cなんか使うのはやめて、もっと高級な言語使った方がいいだろうとも思ってますが。… "
- まさみさんは語りたいさんのツイート: "エラーハンドリングしてるかという事なら、yesですよ。メモリ取れなければエラーを返す。… "
- まさみさんは語りたいさんのツイート: "ただ、カーネル内でメモリが確保できない状況で、ユーザ空間に戻っても大したことはできないだろうなあと。… "
- SODA Noriyukiさんのツイート: "小さなサイズのメモリが確保できないケースは、ユーザーに殺すプロセスを選んでもらうくらいしかできませんよね。これに対しユーザーが指定した大きなサイズのメモリを確保するたぐいだと、単にその処理だけ失敗させて以後ふつうにシステムが動き続けることも多いんじゃないでしょうか。… https://t.co/8inAx1SUKx"
- Ryou Ezoeさんのツイート: "mallocが失敗した時 Linuxは失敗しない。メモリが足りなくなったらOOM Mac OSは失敗しない。メモリが足りなくなることはないという前提 Windowsはどういう戦略だっけ?"
- SODA Noriyukiさんのツイート: "いや ulimit コマンドで制限かけられるので、mallocがNULL返すことがありますよ>Linux 例えば $ ulimit -v 10000 としておいて malloc(20000000) すると NULL が返ります。… "
- TokusiNさんのツイート: "Win32は失敗する。Win64はどうだろう?確保しすぎるとOSの操作が困難になるぐらい重くなるから、その状態で更に確保して失敗するのは難しいんじゃないかなぁ… "
- まさみさんは語りたいさんのツイート: "ああ、確かにサイズ依存ですね。あとはkernelで使うメモリなのかどうかも。… "
- SODA Noriyukiさんのツイート: "ですよね。システムコールの引数サイズが可変でいったんカーネルメモリにコピーするみたいな処理だと、コピー先のカーネルメモリが確保できなかったら ENOMEM 返すのは簡単なわけで。… "
- まさみさんは語りたいさんのツイート: "そんなこと無いやろ。error injectionもあるんやで。… "
- Ryou Ezoeさんのツイート: "メモリ確保を失敗させると、今まで現実に動いてこなかったカーネル内のメモリ各区歩失敗のコードが動き始める。どんな不具合が表に出るかわからないので今更挙動を変えられない。しかし、メモリ確保が失敗しないならカーネルのメモリ確保失敗時のコードはすべて無用だ。"
- まさみさんは語りたいさんのツイート: "Linuxカーネルでもレイヤが低いところでのメモリ確保は厳禁だし、逆にユーザに近いところはバンバン使う。そこはレビューで指摘されるしね。"
- Miura Hidekiさんのツイート: "https://t.co/9Tulw464Mf 普通に売っている機器の組み込みプログラムはみんな何らかの対処をしていると思う。そうしないと、メモリが足りないから機械が動きませんじゃダサすぎる。"
- Miura Hidekiさんのツイート: "まあ、あらかじめ非常用のメモリ領域を確保しておいてそれを使って要らない領域をfreeしたり圧縮したりがありがちなパターンかな?"
- SODA Noriyukiさんのツイート: "小規模な組み込みプログラムはmalloc()使わず固定配列使ってるものが多いイメージがあります。ガラケーくらいリッチなハードになってもそんな感じに仕様で上限が固定数値になってたりとか。これがAndroid使ってるくらいまでリッチなハードになると対処してる方が多数派になりそうイメージが。… https://t.co/C5lCIXaYJT"
- Miura Hidekiさんのツイート: "小さいのは確かにそうですね。あまりリッチなのだとメモリを使い果たしてもLinuxは落ちないという話になってアプリケーションレイアの話ではなくなる気もします。私が唯一経験のあるプリンタを想定していました。あと、おそらくテレビとかもそうじゃないかなと想像しています。… "
- まさみさんは語りたいさんのツイート: "組み込み系とUnix系OSSとの相性が悪いの、mallocの話で理解できた気がする。小さいリソースから始めたプログラムは、リソースを固定的に扱い、徹底的に搾り取るのに対して、Unix系ではメモリは仮想化されたリソースで気にせず使うコーディングが許されてるからなあ。"
- Fadisさんのツイート: "oomkillerが走るほどメモリが逼迫している場合、既にページアウトできるものは頻繁に追い出されている状況なはずなので、ハードディスク等の絶望的に遅い2次記憶を使っている場合、プロセスがoomkillerに落とされる前にまずホスト上でのあらゆる処理が死ぬほど遅くて何もできない、という状態になる"
- 星山 等(E-SW20改)さんのツイート: "とある仕事でボード刷新してメモリが倍増するからOS使うよう再設計できるって喜んでたら、μITRONのシステムコールで使うリソースを全部調べて全タスクぶん集計して、メモリきつかったから使うシステムコールを制限する哀しいお仕事が待ってた記憶が蘇った。 仮想記憶ナニソレな世界は切ない…。… https://t.co/x2VrokzT1I"
- noblesse obligeさんのツイート: "最近はミドルの規模も大きいのでそこそこ余裕あるメモリを積んで動的に確保するほうが流行りなきがします。きっつきつにリソースを管理してるのはコストと性能要求がシビアで要件を満たすギリギリのSOCを選定するところですかね。… "
- Satoru Uedaさんのツイート: "そのようなことも、ディストロが成長するのを阻害する要因。… "
- GAUCHOさんのツイート: "弊社もついこの間まではコスト最優先でしたね。 いざ、スペックを見せられて、アホか!こんな貧弱なメモリーとプロセッサで作れるかー!ってなりましたもん。… "
abort
- このコード、オシャカルトっ!さんのツイート: "malloc系の関数でmemory corruptionでプログラム終了するときとか、abort()でプログラム終了する時の処理が今までと変わったりしてるんだな。 GNU C Library 2.27 released - https://t.co/CFSv43R4Zw"
- GNU C Library 2.27 released [LWN.net]
- KOSAKI Motohiroさんのツイート: "glibc 2.27 でついにabortが正しく async signal safeになりました。いままではバカなことにabortないでIOをflushしていたので、signal contextなどで呼び出した時は最悪デッドロックしていました。abortの途中でデッドロックして嬉しい人はいないため、これはよい変更。というかなぜ20年ほっておいた"
- まさみさんは語りたいさんのツイート: "abortが必要なほど複雑なプログラムは書いていなかった・・・とか?… "
- Ryou Ezoeさんのツイート: "めったに起こらないので、ハードウェアの問題とかソフトメモリエラーを起こす程度の確率と同じであれば、そのように認識されてしまったで問題視されていなかったのかな。 https://t.co/xa88xIFMpL"
- まさみさんは語りたいさんのツイート: "abortじゃなく、ちゃんとソフトウェアのエラーを回収できるように考えられたプログラムしか書いていなかったとか。そもそもabortが信用できないっていう状況なんだったら、そのようにソフトウェアを書くことが前提になっていた可能性もある。"
- KOSAKI Motohiroさんのツイート: "abortがちゃんと動かないって地味に困るんですよ。バグってassertに引っかかったら、ちゃんと終了してほしいんですよ。プロセス終了してくれたら、外で監視ソフトが異常検知してリカバリに移れるんですよ。デッドロックはそういうチャンスが失われるんですよ"
- SODA Noriyukiさんのツイート: "なんでこんなことになってんだっけと見てみたら、古いPOSIXだとflushが必要だと規定されてて、後でasync-signal-safe規定が入ったのか(→ https://t.co/1iuJ50DUpQ )。4.3BSD tahoeだとflushしてないので、これはSystem-V Interface Definitionが悪さしたんじゃないかしら。 https://t.co/EXX0VBOAnF"
- abort
- 本の虫: glibcのabortマニュアルの中絶方針ジョークについて
- Kazuho Okuさんのツイート: "RMSが実際に強権を発動したわけではないし、検閲規制委員会は誤訳だし、メキシコシティ云々も関係ない気が / “本の虫: glibcのabortマニュアルの中絶方針ジョークについて” https://t.co/swYqITC4yI"
- Kazuho Okuさんのツイート: "まあ、RMSが「GNUは純粋な技術的プロジェクトではない」から、他のコミッタのコンセンサスを無視し強権を発動してジョークを戻す、と言ったのは確かだし、そういうプロジェクトなんだということなのかなーとは言いたくなる"
@kazuho
ASAN
- Kazuho OkuさんはTwitterを使っています 「1バイトごとにfgetcしてreallocして追記してくの、テストコードだったらいいやん、って思うやん? asanをオンにしてると、500KB読むのに数分かかるんだぜ https://t.co/wkSAjTtXVs」 / Twitter
- faster CI by kazuho · Pull Request #2887 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「asanオフとオーダー2つ変わるのかー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「通常ならメモリ確保は毎回reallocを呼んでたとしても実際の再確保はexponential back offするからトータルコストはO(N)のところ、asanがオンだとoverrun検知の関係でO(N^2)になるのかなー」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho ASan 環境下で、早期の bug 検知の為に realloc が毎回再割り当てしてる可能性…🤔」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/U0mQIvIG8X そうだった…毎回違う領域確保して memcpy してるので、backoff を当てにすると焼かれる🧐 # heap overrun 検知する為にはそうなるよなあ🤔」 / Twitter
- llvm-project/asan_allocator.cpp at 07092ea6bd1370da5eb9e05cc2910039f5f08bbd · llvm/llvm-project
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive やっぱりそういうことなんですね。ありがとうございます」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho (interior pointer あるのに)アドレスが動くの忘れてるとか、余分があるから少しはみ出しても大丈夫みたいな事の早期検知と実装の手間を減らす為ですかねえ🧐 > realloc == malloc + free」 / Twitter
- Kazuho Okuさんのツイート: "あれ glibc で free 時に解放されるメモリを何かでフィルする機能(macOSでいうところのMallocScribble)みたいなのってないんだっけ"
- Kazuho Okuさんのツイート: "asanがscribbleもしてくれるんだっけ"
- Kazuho Okuさんのツイート: "ああこれは負荷低くて良さそうですね。ありがとうございます https://t.co/pgFnkQ9q9y"
- Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
- Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
- Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
- Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
- Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
- Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
- Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
- Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
- Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
- Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
- Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
- Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
- Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
- Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
- Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
- Thoughts on GCs | κeenのHappy Hacκing Blog
- Kazuho Okuさんのツイート: "ユーザ「終了時にメモリリークしてるってasanが言います」 僕(めんどいなー。どうせmainで確保してるコードだしallocaに変えよう。。。) ユーザ「修正を確認しました。ばっちりです」 僕「アラォッケーってか」"
- Kazuho Okuさんのツイート: "goto禁止教の人たちはソースコード見せなければ無害だけど、メモリ解放必須教の人たちは防ぎようがないんだよね"
- Kazuho Okuさんのツイート: "struct S *s; ... s = malloc(sizeof s); とかみんながやるミスでしょ。やったことない人いるの?"
- Kazuho Okuさんのツイート: "p = malloc(sizeof *p) は不整合が脆弱性につながるイディオムなのでラッパ書いてる人も多いんじゃないかな"
- Kazuho Okuさんのツイート: "「malloc失敗時にabortしていい」という主張は、malloc失敗を異常ケースとみなしていいという主張と同義なんだけど、昔はmalloc失敗はよくあることだったし、ディスクが遅いから自動保存なんてできなかったので、mallocに失敗してからファイル保存処理を実行できる必要があったとかなんとか"
- 7594591200220899443さんのツイート: "一年考えてまだなぜclangがこのコードを吐くのがバグじゃないのか理解できない。*p=1;(なにか);return *p;をclangはreturn 1;に最適化しているわけだけれども、なぜ(なにか)がpをぶっ壊してないことが静的に確定するのか?mallocがちょうどそのアドレスを返すことがあり得るよね?わからん。… https://t.co/2EJdGVDKqq"
- John Regehrさんのツイート: "here we try to guess the value of a pointer -- LLVM says we cannot guess it and GCC suspects we can https://t.co/iPzc11HRdR"
- Compiler Explorer
- Miura Hidekiさんのツイート: "mallocをどう解釈するかじゃないかなー?mallocを厳密にメモリ領域を確保するという解釈ならmallocのコールとoffset 0のデリファレンスをコード生成しないといけないだろうけど、mallocはローカル変数のように同じセマンティクスが実現できれば実体は無くていいという解釈ならclangの方法も正しい"
- Kazuho Okuさんのツイート: "mallocは常にエイリアスされ得ないアドレスを返すという関数宣言属性 __attribute__((malloc)) があって、それを認識してるだけでは?… "
- Kazuho Okuさんのツイート: "というか、*(int*)0xfeedcafeする時点でimplementation-defined behaviorになり、そして当該処理系は、mallocが返しうる領域をユーザがmallocを経由せずに指定した場合の挙動は定めていない、ということのような気がします… https://t.co/PtQpVsTsua"
- Kazuho OkuさんはTwitterを使っています 「slabっていうのかbinっていうのか知らないけど、各malloc実装があらかじめ用意している小容量のスロット群のサイズ一覧表みたいなのあるのかな。 何に使いたいかというと...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、18バイトの領域が4個必要だったとして、それは固定で確保しておいたほうがいいのか、mallocで18バイト毎に確保すればいいのか、みたいなことをパッと判断したい。 32バイトのbinが使われるなら、要素あたりのメモリ使用量はポインタ含め40バイト になるからmallocしなくていいか、とか...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「20バイトのbinが使われるなら、mallocもありかな、とか... 実際は20バイトのbinなんてないと思うけど、例として挙げてます」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「最近の64bitサーバなら、一番オーバーヘッドが少ないmallocでも16,32,48,64あたりじゃないかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「だいたい、malloc/freeとか、フラグメンテーションが起こりやすい仕組み使ってていいのは中学生までやねん。プロは動的メモリ管理はハンドルでやってコンパクション対応する …って、じっちゃんが言ってた」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「これ若者にはギャグだと通じないんですが大丈夫かな… # 解説: # 仮想記憶導入前に作られた太古のMacOSやWindows には、生ポインタ(*p)じゃなくポインタへのポインタ(**p)を使ってメモリ管理をする仕組みがありpをハンドルと呼んでいたのぢゃ # OS側が**pを勝手に変更してコンパクションしてたのぢゃ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「仮想記憶がある場合、論理アドレスは一定に保ったまま物理空間でコンパクションできるので、(論理アドレスを使う)ユーザ空間ではコンパクションを気にしなくてよくなった、という言い方もできますね。ページサイズ<<物理メモリ量なら、それで問題ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「既存のmallocに対する不満、munmap呼びすぎでコア数増加にともない負荷でかくなってきてるところにあって。じゃあ、全スレッドの解放メモリまとめて、一定間隔で一気にmunmapすればいいよねって話になるんだけど、そういうシステムコールがない気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「munmap呼ぶのはジャイアントロック取る以上に?凶悪なんだから、ロック減らす努力してるmallocはmunmap呼ぶ回数もCPU数に比例しないような設計を採用すべき」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「みたいなことを、ぼんやりと思ってて、だからまあ、やるなら本当にそこが問題なのか確認した上で、既存mallocとカーネルに手を加えてみるみたいなことをやればいいんだろうなと思うんですけど他の案件で忙しい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーそうですね。 https://t.co/Ac4IRrrt5b に MADV_FREE > MADV_DONTNEED > munmap である理由の解説がありました」 / Twitter
- mizushikaさんはTwitterを使っています 「最近 Go のメモリ解放処理を調べる機会があって、メモリ解放時に munmap せずに madvise(MADV_DONTNEED or MADV_FREE) している理由を考えていたのだけど、munmap が重い (tlb shootdown のせい) が主要因なのかな。」 / Twitter
- mizushikaさんはTwitterを使っています 「@kazuho なるほど、参考になります。MADV_FREE はダーティビットを落とすだけなので(すぐに再利用されたら)ページフォルトや確保が走らず、MADV_DONTNEEDよりも速い、と。ただ Go 1.6 では DONTNEED から FREE に変えていて、この辺は RSS がちゃんと観測できないのを嫌ったからみたいですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「boltみたいなltoとか、いろいろサーバ系の最適化あるけど、次に出てきそうなのはメモリプレッシャー見ながらメモリ使い回し戦略変えるアロケータとかかなとか思ってる(既にあるかも)」 / Twitter
histric
histric-1
- はろさんはTwitterを使っています: "#DroidKaigiA 「dalvikでは、dlmalloc, ARTではRosAllow。Segeregated free listを使い、並行メモリ割当に対応。」そういや、最近はjemallocがdefaultやね。Android."
- OS作れないマン WalB担当さんのツイート: "OSのメモリ管理方法として、可変長メモリブロックの先頭に管理用ヘッダを埋め込んでリンクリストを形成する方法に名前がついてた気がするけど、なんだったかな。"
- ゆたかさん🐬さんのツイート: "freeよりもmallocのほうがコストがかかるので、処理高速化のため実際に解放せずプールしているのだと思われます。 https://t.co/npAdD3xnfo"
- Rui Ueyamaさんのツイート: "なぜ速いかというと必要なメモリをスタックだけからアロケートしているというのと(やっぱmallocは遅い)、適切な中間表現を作ってパーズと文字列化を分離しているからだと思う。適切なデータ構造を選べばプログラムは簡単で速くなるんだなぁという感じ。"
- Rui Ueyamaさんのツイート: "いま思えばできる限り速いmallocを書くという課題(ベンチマークのスコアで点数がつく)は教育効果高かった。他人にシステムズプログラミングを教える立場になったらあれは活用したい。"
- がちゃぴん先生さんのツイート: "glibc 2.26 がリリースされました。今回は小粒な変更な印象。malloc の per-thread cache がパフォーマンスインパクト大きそうかな"
- Fadisさんのツイート: "mallocを使わないプログラマ、Cが透けて見えない言語の使い手の可能性と、ベアメタル魔人の可能性がある"
- Fadisさんのツイート: "mallocを使わない人、最近はHugepageを使わないとTLBミスががががが、な人達もいるか"
- 島鉄雄さんのツイート: "ゲームだと以下の原因がある。 1.メモリが枯渇している→特定の手順の時だけメモリ不足になる→フラグメントにより大きな空きが無い 2.同じアドレスでfreeを2回する(malloc管理領域が破壊) 3.メモリ破壊(free後に書き込む等) 1.2.はmalloc()をデバッグ機能付きにすれば対処可能だけど、3.は地獄…… https://t.co/gpPYUz1hTu"
- 島鉄雄さんのツイート: "ちょっと間違ってた… 1.の場合は NULL が返ってくるだけだから malloc で SEGV は発生しなかった。(NULL チェックしてなければその後 SEGV だが) 3.は必ず malloc が SEGV する訳じゃないけど、malloc の管理領域を破壊すると malloc の SEGV が発生する、という感じか。"
- OS自作 uchan_nosさんのツイート: "フル機能のsprintfは場合によってはmallocを呼ぶのでクソ.mallocとか絶対に呼ばないsprintfが欲しい."
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「20数年の時を経て、malloc/free論争の再開(笑) (当時、プロセス終了でリソース開放なら終了時freeは無駄、が多数派で終わった感) https://t.co/h9dteQ3XfV」 / Twitter
- FadisさんはTwitterを使っています: 「C++のRAIIによる確実なメモリの解放、プロセスの寿命を超えて生存するNVDIMM上のデータの前では無力で厳しい」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「記事がめっちゃ長くて読めてないんだけど、高位アドレスから低位アドレスに向かって確保するのが効率的な理由を、誰か一言で理由を教えてくれませんか」 / Twitter
- hikaliumさんはTwitterを使っています: 「@uchan_nos 高位から低位に確保すれば、アライメント合わせが切り捨て方向になる 確保サイズが空き容量よりも大きい時のオーバーフローの考慮が1個減らせる つまり条件分岐が減る だから速い」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「https://t.co/arNOjyAz8w 「確保しっぱなし」の簡易アロケーターを実装する場合、メモリ空間の上から下に向かって確保するのがよいという記事。たしかに何も言われないとつい下から上向きに実装してしまいそう。」 / Twitter
- Always Bump Downwards
- Masaki HaraさんはTwitterを使っています: 「@hutai 用語が古いのか仰りたいことが正確にはわかりませんが、おそらく問題をより複雑に読み違えているのでは。ここでは完全なヒープやガーベージコレクションなどは考えておらず、最もシンプルな形態のアロケーターを考えています。とりあえず元記事の前半を読むといいと思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「@hutai 考えていることはシンプルで昔のアーキテクチャにも当てはまるはずなので、昔から「常識」だったとしてもおかしくないとは思います。ただ、それをこうしてブログにしてより多くの人に知らしめた人が偉いのであって、暗黙知だったとあとから主張されてもあまり意味がないのかなと思います。」 / Twitter
- uchanさんはTwitterを使っています 「Intel Pinで解析対象プログラムのmallocを置き換え,ヒープオブジェクト一覧を得ることができた。『動的バイナリ解析の基礎』っていう同人誌に従ってやってみただけだけど。 https://t.co/L4ApEgvBKK https://t.co/SavCYgjuQK」 / Twitter
- 動的バイナリ解析の基礎 - バイナリイーター - BOOTH
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「とくにRustに限った話ではないが、例えばC++ならデストラクターを実行する必要がない型にしておいてmonotonic_buffer_resourceからメモリを確保するなどしてちょっと最適化できるかな。」 / Twitter
- κeenさんはTwitterを使っています 「んー、この発想はなかった。RustにGCがないとはいっても、大きなデータ構造を開放するときはstop the world的なのは起きうる。それを別スレッドに逃がす話。 Rust: Dropping heavy things in another thread can make your code 10000 times faster https://t.co/s0CRKTvemi」 / Twitter
- Rust: Dropping heavy things in another thread can make your code 10000 times faster
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「結局問題は、複雑なノードベースのデータ構造を構築する大量の小粒なメモリ群を一つづつ開放していくコストなので、専用のアロケーターを使えば効率的になる。」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「Chromiumのメモリ管理周辺のコードはガチガチに最適化してあるんだけど、たまに観察される現象が「関数をインライン展開しないほうが速い」。最近のCPUは相当賢いので、(インライン化による命令数削減のプラス効果)<(コードサイズ肥大化による命令キャッシュミス増加のマイナス効果)になりうる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「見識ありそうな人達の結論は「(まともなOS上なら)終了時freeは時間の無駄」だったかな。」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「malloc and free とは: かつて fj.comp.lang.c というニュースグループにおいて「プロセス終了時に free すべきか否か」という議論が紛糾し、1年以上続いた。 https://t.co/j64t4aYS6g で読めるけど有益な情報は特にないので読まなくていい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「時間の無駄」と表現したけど、「無意味」なだけでなく、実際のUXを悪化(なかなか終了しない)させる場合は積極的に悪い、という含意もあり。」 / Twitter
- ytakanoさんはTwitterを使っています 「mallocだけでaligned malloc作れるのか。メモ。 https://t.co/epXTIA5mwS」 / Twitter
- Generating Aligned Memory - Embedded Artistry
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Windows MSVCRTの malloc()実装はC言語史上最悪のクソだ。Linuxなら何も考えなくていいところを、Windowsではさまざまな小細工 (std::unordered_map を使わない、等) が必要にある。どうやらMS自身にとってもmallocは遅すぎたらしい。彼らは代替品の mimallocを開発している。 https://t.co/QiCOMDXPOm」 / Twitter
- The Windows malloc() Implementation Is A Trash Fire
- ytakanoさんはTwitterを使っています: 「メモリアロケータがKLEEのために想像外の方向へ進化していってた。 A Deterministic Memory Allocator for Dynamic Symbolic Execution https://t.co/b0Bamy9d5R」 / Twitter
- A Deterministic Memory Allocator for Dynamic Symbolic Execution - kdalloc-ecoop-22.pdf
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「アロケータまわりも「専用アロケータが正義→今はmallocが正義やで→やっぱり専用アロケータが正義→……」って感じでトレンドが輪廻してる気がする」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「チームのみんなががんばってくれました!!🙂これまでChromeはmallocを使ってましたが、徹底的に最適化し尽くした専用メモリアロケータ(PartitionAlloc)に切り替えて、Windowsで22%のメモリ削減を達成しました。セキュリティ面も強くなってます。他のOSも順次置き換えます。https://t.co/S4Me4uN1nS」 / Twitter
- Chromium Blog: Efficient And Safe Allocations Everywhere!
- Miura HidekiさんはTwitterを使っています 「静的解析や動的プロファイリングをして、そのアプリケーションに最適なアロケータをコンパイラが生成するって考えているけどよい考えが浮かばない。もっと一般化してランタイムを生成するのそのうち行うようになると思う。」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「いまどきmallocを再発明してどうするのと言われそうですが、メモリレイアウトを完全に支配できるのでChromeによるChromeのための最適化を徹底的にかけられるんですよね。(あとこれ、大学時代から数えてぼくが関与した6個目のメモリアロケータ作品になります 笑。しゅみ・・・)」 / Twitter
- Low-fragmentation Heap - Win32 apps | Microsoft Docs
- GetProcessHeap function (heapapi.h) - Win32 apps | Microsoft Docs
- HeapSetInformation function (heapapi.h) - Win32 apps | Microsoft Docs
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Cでは、malloc()の成功 == 本当にメモリが利用可能、とは限らない。たとえば1TBの値をmallocしようとすると、macOS/clangでもLinux/GCCでも成功したかのように見えるが、実際に割り当てているのは仮想メモリなので、書き込もうとした時点でクラッシュする。 https://t.co/tqpIMI3qrS」 / Twitter
- In C, how do you know if the dynamic allocation succeeded? – Daniel Lemire's blog
- κeenさんはTwitterを使っています 「有用そうなこと書いてある気がするんだけど長くて読んでない()誰か読んで解説して Investigating Memory Allocations in Rust | Y. Santos Personal Page https://t.co/ZTtW4iJ3wL」 / Twitter
- Investigating Memory Allocations in Rust | Y. Santos Personal Page
- Miura HidekiさんはTwitterを使っています 「@blackenedgold Google先生に助けてもらって日本語で読みました。最後のまとめだけを読めば必要十分に有用か面白いと思います。」 / Twitter
- κeenさんはTwitterを使っています 「@miura1729 ありがとうございます!」 / Twitter
- Retrofitting Temporal Memory Safety on C++ · V8
- Chromeにメモリを節約させる「メモリセーバー」機能が登場、バッテリーを長持ちさせる「省エネモード」も - GIGAZINE
PhoenixWiki
- EFI SYSTEM TABLE - PhoenixWiki
- EFI CONFIGURATION TABLE - PhoenixWiki
- EFI BOOT SERVICES - PhoenixWiki
- EFI RUNTIME SERVICES - PhoenixWiki
- EFI LOADED IMAGE PROTOCOL - PhoenixWiki
- EFI GRAPHICS OUTPUT PROTOCOL MODE - PhoenixWiki
- EFI STATUS - PhoenixWiki
- Category:Device Path - PhoenixWiki
- EFI LOAD FILE PROTOCOL - PhoenixWiki
- EFI MEMORY DESCRIPTOR - PhoenixWiki
- EFI GRAPHICS OUTPUT BLT PIXEL - PhoenixWiki
- EFI GRAPHICS OUTPUT BLT OPERATION - PhoenixWiki
- EFI GRAPHICS OUTPUT PROTOCOL - PhoenixWiki
- EFI GRAPHICS PIXEL FORMAT - PhoenixWiki
- TianoCore EDK2: MdePkg/Include/Uefi/UefiSpec.h File Reference
- Category:UEFI 2.0 - PhoenixWiki
uefi.org
- EBC_Driver_Presentation.pdf
- UEFI_Plugfest_2011Q4_P5_Insyde.pdf
- Windows Boot Environment
- edk2-platforms/Silicon/Intel at master · tianocore/edk2-platforms
- UEFI Summer Plugfest 2011
- UEFI Revocation List File | Unified Extensible Firmware Interface Forum
MS
高速スタートアップ
- System Power States (Windows)
- イーサネット - Windows 10 hardware dev
- 「通常シャットダウン」と「完全シャットダウン」 Windows10高速スタートアップの設定 | Mechalog
- 富士通Q&A - ハイブリットシャットダウンからの復帰後のサインイン画面で、Num Lock状態が解除される場合があります。 - FMVサポート : 富士通パソコン
- Windows 10で高速スタートアップを無効にする方法 – iBitzEdge
- ハイブリッドブートを無効にする方法【Windows 8】 | MacRuby
- シャットダウンと休止状態とスタンバイ(スリープ)状態の違いとメリットデメリット | パソコンの問題を改善
- Windows 10(完全なシャットダウンを実行する) | PC Cafe サービス・サポート編 | パナソニック パソコンサポート
- Windows10の通常シャットダウンと完全シャットダウンとスリープの違いとは | The Windowsマスター
- Windows10の高速スタートアップって何?速いけど危ない?無効にする方法は? | ligamap
- 121ware.com > サービス&サポート > Q&A > Q&A番号 018214
- Windows 8.1ミニTips (108) 「高速スタートアップ」有効時、BIOS/UEFIを呼び出すには | マイナビニュース
- Windows 8.1ミニTips (110) 高速スタートアップが使うハイバネーションファイルのサイズを変更する | マイナビニュース
- Windows 8レボリューション:第17回 素早い起動を可能にする「高速スタートアップ」 - @IT
- Windows 8で実装された「高速スタートアップ」とはどんな機能か解説 - 道すがら講堂
- Windows 8.1ミニTips (107) 高速スタートアップを有効にする | マイナビニュース
- パソコンの電源を完全に切る方法 (高速スタートアップを一時的に無効にして完全にシャットダウンする方法) - マイクロソフト コミュニティ
- Windows_Japanさんのツイート: "【実は違う「シャットダウン→起動」と「再起動」】 #Windows10 のシャットダウンでは、次の起動を高速化するために、“現在の環境を保存”する機能が働きます。 対して再起動では、“環境をリセット”して起動します。 #豆知識 https://t.co/pk5csWDib9"
- Windows_Japanさんのツイート: "【「シャットダウン→起動」と「再起動」の違い】 #Windows10 のシャットダウンでは、次の起動を高速化するために現在の環境を保存する機能が働きますが、再起動では環境をリセットしています。パソコンの調子が悪くなった時は、高速化しない「再起動」を試してみてくださいね。 #豆知識 https://t.co/9o1FbvwS6w"
- 日記 (2014 年 11 月下旬)
- exJP2QNBさんのツイート: "さらに『フルシャットダウン』なんてのもありますね。 シャットダウンより再起動、とのことですが、問題によっては、再起動では直らなくて、シャットダウン→電源オン、じゃないとだめなときもあります。 デバイスの電源管理の問題のときとか。… "
- SODA Noriyukiさんのツイート: "SHIFTキーを押しながらシャットダウンするとか、あるいは[設定]=>[更新とセキュリティ]=>[回復]=>[今すぐ再起動する]=>[PCの電源を切る]で呼び出す奴ですね。高速スタートアップOFFのシャットダウンはこれと同じになるんじゃないかと思ってるんだけど、違うあるんでしょうか?… https://t.co/TPU9fhPnLC"
- exJP2QNBさんのツイート: "PC内部のデバイスの電源管理に差があることがあります(某社だけ?じゃないと思いますが)。 バッテリー抜いたり、デスクトップならコンセントからプラグ抜いちゃえば、差はないですね。… "
Fast Boot
- Windows7でもFastBootが効くってホント? - 週刊アスキー
- 自作PCをよくするワザ、教えます(3) ~マザーボード 初級編~ - AKIBA PC Hotline!
- 本の虫: Windows要件を満たしたPCで、Microsoftの屈辱的なライセンスに同意せず別OSを使うのが困難な状況
- Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
- Windows の UEFI プロトコル - Windows 10 hardware dev
- ブート モード管理 UEFI プロトコル - Windows 10 hardware dev
- Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
- USB デバイスから Microsoft Surface を起動する
- UEFI ファームウェア - Windows 10 hardware dev
- UEFI 環境からのデバイス I/O - Windows 10 hardware dev
- Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
- /MACHINE (ターゲット プラットフォームの指定)
- UEFI ベースの推奨ディスク パーティション構成
- UEFI 検証オプション ROM ガイダンス - Windows 10 hardware dev
- セキュア ブートの無効化 - Windows 10 hardware dev
- Clarification of new Windows UEFI/SMM security feature | Firmware Security
- PC OEM requirements for Device Guard and Credential Guard | Microsoft Docs
- UEFI で OS 起動前の環境を保護する – Building Windows 8
- 山市良のえぬなんとかわーるど: Tips: Windows のインストール時に UEFI か BIOS か判断する方法
- 11月の月例アップデートで一部のLenovo製ラップトップが起動不能に - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VS2013まで、snprintf で n を超える場合、\0が付かない上に、戻り値に-1が返るという仕様だった。 https://t.co/KdPadErguz strncpy共々使いづらいため、snprintfz とか strncpyz みたいなオレオレ関数を作って対処していた。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に、VS2015以降のsnprintfがC99準拠になっていたのを初めて知った。」 / Twitter
- UEFI scanner brings Microsoft Defender ATP protection to a new level - Microsoft Security
- 拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
- Adventures in Microsoft UEFI Signing | James Bottomley's random Pages
Intel
- The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
- https://firmware.intel.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Memory_Map_in%20UEFI_BIOS.pdf
- A_Tour_Beyond_BIOS_Memory_Practices_with_UEFI.pdf
- Address Range Partial Memory Mirroring | Intel® Software
- intel/ModernFW
- Intel Seamless Update: Intel Preparing For System Firmware Updates Without The Reboot - Phoronix
- Open Source Firmware: Two Ends of the Spectrum | Intel® Software
- Intelが16の新しいBIOSファームウェアの脆弱性をリスト|自作.com
SMBIOS
- SMBIOS | DMTF
- www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf
SMM
- naitakuさんはTwitterを使っています 「SMRAMが書き換えられちゃうと本当にダメでHVCIすら突破出来るって話。」 / Twitter
- naitakuさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
- Attacking the Golden Ring on AMD Mini-PC | by danny odler | Medium
- naitakuさんはTwitterを使っています 「Haswell以降は"SMM Code Access Check"があるんで、これだけで任意のコードが実行できるわけではなさそうな気がするんですが、A potential vulnerability ってことなんですかね。」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「#seccamp で僕の講義受ける人、001はわかりやすいのでレポート読んでみてください。001の類似はセキュリティバウンダリーとツールの使い方を理解したら、あとはひたすら複数会社のBIOSダウンロードしてSMMのSMIリバースすれば絶対ほかにも見つけられます」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「001は要するに、高い権限で動くコードが低い権限のコード実行したらダメって話です。 カーネルがユーザーモードのコードそのまま実行したらだめ、VMMがカーネルやユーザーモードのコードそのまま実行したらダメ、SMMはそれ以外のどのコード実行してもダメ、ということ」 / Twitter
- BINARLYさんはTwitterを使っています 「#efiXplorer team discovers multiple vulnerabilities in Lenovo devices: [BRLY-2021-001] SMM arbitrary code execution (privilege escalation) [BRLY-2021-002] Misconfigured Intel Boot Guard protected ranges (IBB). Details: https://t.co/31BqiUFkLb Advisory: https://t.co/3HGdDosf7g」 / Twitter
- Vulnerability-REsearch/Lenovo at main · binarly-io/Vulnerability-REsearch
- Lenovo BIOS Vulnerabilities (July 2021) - Lenovo Support FR
- Satoshi TandaさんはTwitterを使っています 「@naitaku もし有効にされていたならば😉 レポートから見るに、明らかにcall out “できる“ 前提での実装なので意図して有効にしていないのでしょう」 / Twitter
- naitakuさんはTwitterを使っています 「@SatoshiTanda そうか。もともとのコードがSMM外のコード実行してるんで、それが動いていたのなら SMM Code Access Check は無効だった、ってことですね。このResetSystemを動かすために無効にしちゃったのかな。残念すぎる。 返信ありがとうございます!」 / Twitter
Golden Key
- Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea • The Register
- Oops! Microsoft Accidentally Leaks Backdoor Keys to Bypass UEFI Secure Boot
- Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
- Microsoft Secure Boot key debacle causes security panic | ZDNet
- Secure Boot Isn't So Secure After All: The Golden Key Is Out - Phoronix
- Windowsマシンのセキュアブートを無効化できるセキュアブートポリシーが流出、解析結果が公開される | スラド セキュリティ
- Windowsのセキュアブート機能が回避可能になっていたことが明らかに - GIGAZINE
- Microsoft Mistakenly Leaks Secure Boot Key | Threatpost | The first stop for security news
- Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open | Ars Technica
- Secure Golden Key Boot: (MS16-094 / CVE-2016-3287, and MS16-100 / CVE-2016-3320)
- MSのセキュアブートバイパス問題--セキュリティ研究者らが経緯を明らかに - ZDNet Japan
- Microsoft、UEFIセキュアブートのポリシーを誤って流出 | マイナビニュース
OSDev
- Broken UEFI implementations - OSDev Wiki
- El-Torito - OSDev Wiki
- Uefi.inc - OSDev Wiki
- Debugging UEFI applications with GDB - OSDev Wiki
- Livaさんのツイート: "qemuにgdbに繋いでデバッグすると「Remote 'g' packet reply is too long」とか言われてデバッグする問題、16bit->32bit->64bitの遷移が問題らしい https://t.co/jNipyBwgea #liva_notebook"
セキュアブート
- セキュアブート - ArchWiki
- Windows 10ロゴプログラムではセキュアブート無効化オプションの搭載が必須ではなくなる | スラド Linux
- Linux FoundationがUEFIブート向けのセキュアブートシステムを公開 | マイナビニュース
- Linuxのブートをセキュアにする「UEFI Secure Boot System」 - @IT
- Acer Iconia W4にLinuxをインストール…失敗 ( UNIX ) - 占い猫 ペンタクル★キャット - Yahoo!ブログ
- certificate 入門 パッケージ管理 - LinuxベースのディストリビューションでWindowsアプリケーションに署名する - CODE Q&A 問題解決
- OpenSSL-based signcode utility download | SourceForge.net
- ej-technologies blog Signing launchers and installers
- druides
- セキュアブートについて知ってほしい10のこと - wolfSSL
- Device Identity as Yet Untold - Speaker Deck
- ken\dさんはTwitterを使っています 「@KuniSuzaki @EurekaBerry @hkuni 今まではTPM内のみで電子署名ベースで完結していたSecure Boot in UEFIですが、動的な検査ができるようになったと解釈しております」 / Twitter
- ArchLinux にSecure Boot を導入する - Qiita
- 3.2. Shim
- suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 私のIIJセミナースライドがリンクされ恥ずかしい。 Trusted OS一覧は有用 HiSilicon/Huawei (TrustedCore) Qualcomm (QSEE) Motorola (Qualcomm SoC) HTC (Qualcomm SoC) Trustonic (Kinibi & MobiCore) Samsung (TEEGRIS) @enovella_ Thank you.」 / Twitter
- suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 書ききれなかったけど、下記の項目すごく大事。 TEE Fuzzing TEE Secure Boot Microarchitectural attacks applied to TEE」 / Twitter
- ほぼすべてのLinuxのブートローダーに脆弱性 - PC Watch
- There’s a Hole in the Boot - Eclypsium
- ADV200011 | Microsoft Guidance for Addressing Security Feature Bypass in GRUB
- ブートホールの脆弱性 - GRUB 2 ブートローダー - CVE-2020-10713 - Red Hat Customer Portal
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「grub[.]cfgが書き換えられた時点でそのシステム終わってますけどね https://t.co/V4NsylK3Wb」 / Twitter
- Linuxで広く使われるブートローダー「GRUB2」にセキュアブートを回避できる脆弱性「BootHole」が見つかる - GIGAZINE
- FadisさんはTwitterを使っています 「BootHole: GRUB2のgrub.cfgのパーサにバッファオーバーランを起こすバグがあり、細工したgrub.cfgで任意のコードを実行できる脆弱性。セキュアブートが有効であってもgrub.cfgは元々署名されていない為攻撃者によるコードの挿入を許してしまう https://t.co/kHuMomzj1n」 / Twitter
- FadisさんはTwitterを使っています 「ブートローダの脆弱性、アップデートでトラブルが起きそうだなと思ったらもう起きてた。 RHEL8でBootHole修正版のGRUB2にアップデートするとshim経由でGRUB2を起動している環境でGRUB2がメニューにたどり着く前にハングする不具合が報告されている https://t.co/hrESKklfN1」 / Twitter
- 1861977 – RHSA-2020:3216 grub2 security update renders system unbootable
- ブートローダーの「GRUB2」にバッファオーバーフローの脆弱性 | マイナビニュース
- BootHole対策パッチによってRed HatやUbuntuが起動不能に。さらなるパッチが公開 - PC Watch
- Bypassing UEFI Secure Boot with Thin-Hypervisor - Speaker Deck
- Microsoft、セキュア ブートの迂回攻撃を防止するセキュリティパッチを再リリース - 窓の杜
- Microsoft、Windows 10向けのUEFIセキュリティパッチを公開するも、問題発生により撤回 - 窓の杜
- Multiple New Security Issues Hit GRUB Bootloader Around Secure Boot - Phoronix
- Windowsのデバイスドライバをマイクロソフトに送って署名してもらう方法: なひたふJTAG日記
- Satoshi TandaさんはTwitterを使っています 「Secure Bootもいろいろ難しさがあって、セキュリティ上問題のあるモジュールが署名されていると、それがするっと実行&悪用されてしまう、という問題があります。これはそういうモジュールとExploitの例 https://t.co/5VCoL9Vi9I (これはWindowsでもある問題ですね) Revocation…? なにそれ🤷🏻♂️」 / Twitter
- HackingThings/SignedUEFIShell: Information about a signed UEFI Shell that can be used when Secure Boot is enabled.
- セキュアブートできるOVMFをソースからコンパイルする - Qiita
- Microsoft、誤ってマルウェア入りドライバに署名 - PC Watch
- Microsoftがコード署名プロセスの弱点を突かれて誤ってルートキットに署名したことが判明 - GIGAZINE
Grub
- grub rescueで'grub_file_filters' not foundが出るときの対処方 | κeenのHappy Hacκing Blog
- ubuntuのブートローダが壊れたけど、Live環境から「boot-repair」を使って無事修復できました - 日々過ごすブログ
- GRUB2(UEFI)のコンソールからの起動メモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- fedora 30からgrubの仕様が変わったのでφ(..)メモメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- このコード、オシャカルトっ!さんのツイート: "/boot/efi/EFI/xxx/にはBLS仕様になったgrub.cfgがあるので、grub.cfgを参照するというところは変わってなさそうです。… "
- GRUB/EFI サンプル - ArchWiki
blog
その他
- UEFI: The Oft-Rumored Death of UEFI's CSM Prophesied Again by Intel
- Step to UEFI (78) —–SERIAL_IO_PROTOCOL | www.lab-z.com
- Another attempt at blogging
- Display UEFI Firmware Version, Vendor, Revision and Build Date « Musings
- EFI_EVENTを使って非同期処理を行う - genkami.github.io
- ディスクイメージをネットワークブートする – Raphine Project
- UEFI + iPXE で自作 OS をネットワーク起動する - uchan note
- 【マザボ】 ASUSのZ390マザーボード環境にWindows10をインストールすると、勝手に『AsusUpdateCheck』というサービスが登録される。これはいったい? : ニッチなPCゲーマーの環境構築
- BIOSとUEFIの歴史 - syuu1228's blog
- UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Ubuntu14.04 と GPT と UEFI - Going My Linux Way - りなっくすいろいろ
- ASUS Z97-ProのM.2 SSDにOSをインストールして起動する: 論外なおちゃん
- Z77 Extreme4でPCIe NVMe SSDをOSブートさせる起動ドライブとして使う(BIOS書き換え,SM961+ST-M2PCE4XB) - If you are going through hell...keep going.
- セキュリティキャンプでxv6を64bitUEFIから起動した話 | カオスの坩堝
- サイバー攻撃から身を守る4つの方法 マルウェアアナリストが語る、日本が狙われる危険性とその対策 - ログミー[o_O]
- 小手先でつくる自作OS – UEFI bootからkernelロードまで | ふぁろぐねっと
- 自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動) - へにゃぺんて@日々勉強のまとめ
- RustでUEFIアプリケーションを書く 2020 Edition - 重力に縋るな
- 現在作っているブートローダに関して - トトのメモ帳
- 【ゼロからのOS自作入門】MikanOSをRustに移植する 1章・2章 - 日記
- BIOS・UEFI操作画面の起動とブートデバイスの設定
- BIOS or UEFI及び起動メニューの出し方:パソコン活用方法:So-netブログ
- UEFI(BIOS)設定の知識 : 初めてのLinux
- WinDbgとWindows XP/7/8/10のハンドルテーブル解析
- Goで作るモダン・ブートサーバー Day 1 - 基礎知識編 - Folioscope
借り初めのひみつきち
Rust
- Rust で UEFI のハローワールド - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 1 my new gear... - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 2 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 3 ブートローダー - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 6 過去最大の更新 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
- 妄想 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 8 🔔 - 借り初めのひみつきち
- ロゼッタと林檎と - 借り初めのひみつきち
- Rustの基本戦略 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 9 my new os... - 借り初めのひみつきち
- Rust の Null Pointer Optimization - 借り初めのひみつきち
- myos の描画アーキテクチャ - 借り初めのひみつきち
- ぬるぽ警察24時 - 借り初めのひみつきち
- 妖精さんとなかよくなるほうほう - 借り初めのひみつきち
最小ステップで作る UEFI OS
- 最小ステップで作る UEFI OS - 借り初めのひみつきち
- neri/moe: A Minimal Step OS using UEFI
- neri (Nerry)
- 最小ステップで作る UEFI OS v0.1 - 借り初めのひみつきち
- フォントのお話 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.2 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.2.1 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.3 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.3.1 - 借り初めのひみつきち
- History
- neri (Nerry)
- 最小ステップで作る UEFI OS v0.4 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.4.1? - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.5 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.5.1 - 借り初めのひみつきち
Twitter
- Nerry@求職中さんのツイート: "Surface RTで確認したけどやっぱりUEFIアプリは基本0x1C2でWin32は0x1C4だった。 ただしbootarm.efiやbootmgfw.efiは0x1C2なのにbootmgr.efiだけは0x1C4になってる。"
- Nerry@さんのツイート: "HPETのMain Count Value読むのは簡単にできた。… "
- Nerry@さんのツイート: "IPIが飛ばせた?… "
- Nerry@さんのツイート: "STIしないと割り込みおきないけどエラーコードは 0xFF2 の謎。0xFF3じゃないの?"
- Nerry@さんのツイート: "実機のエラーコード0x7FBでしたね。 こっちの方が正しい気がする。"
- Nerry@さんのツイート: "selector = 0x7F8 (int 0xFF) ldt = 0 idt = 1 ext = 1"
- Nerry@さんのツイート: "やっぱりqemuのエラーコードおかしい。実機はintelもamdも0x7fbだった"
- Nerry@さんのツイート: "PS2ポート存在するかどうかちゃんと確認するにはAML読まないとダメ?😱"
- Nerry@さんのツイート: "FADTのIAPC_BOOT_ARCHはときどき嘘が書いてる機種があってPS2ポートの存在を正しく認識できない"
- Nerry@さんのツイート: "SetVirtualAddressMapってEfiRuntimeServicesCode/EfiRuntimeServicesDataだけじゃ足りない機種もあるのね"
- Nerry@さんのツイート: "一部機種で異常なEDID取得してるのはEfiEdidActiveProtocolGuidの呼び出し方間違ってるんだろうか・・・"
- Nerry@さんのツイート: "UEFI Class 3の機種だと基本USB接続が多いけどSPIとかI2Cとかふざけてるものもある・・・"
- Nerry@さんのツイート: "PS/2はレガシーではあるけど、今のところCSM搭載してるラップトップPCはPS/2接続のキーボードが主流のようなのでPS/2をサポートしないと操作できないから完全に無駄ではない。"
- Nerry@さんのツイート: "タイマー割り込みで画面の左上のピクセル書き換わるようにしたら一部の機種でどうやっても変わらなくておかしいなって思ったら液晶の向きが左上だと思ってた場所が左下でしたね🤔"
- Nerry@さんのツイート: "ときどきキーボード受け付けなくなるのspurious割り込み関係なんだろうか・・・"
- Nerry@さんのツイート: "とある機種でEDIDの解像度がおかしい値だった→WindowsのEDIDみるツールだと常識的な値だった→UEFIで取得したEDIDよく見たら内容全部0だった💢"
- Nerry@さんのツイート: "正確にはLocateProtocol(&EfiEdidActiveProtocolGuid...)とかの戻り値が0だったのでアドレス0のデータをEDIDだと思って読み込んでた"
- Nerry@さんのツイート: "WindowsのUEFI要件が定まる前の機種でGOPの解像度とかも変"
- Nerry@さんのツイート: "Win8の頃のミ田キーが画面の端に独立して付いてる機種で何となく押してみたらPS/2経由で何かが入力された(実際のスキャンコードは見てないけどたぶんWindows Key) こういうのはGPIOとか使ってると思ったけどそうでもないものもあるのね"
- Nerry@さんのツイート: "マウスカーソル出た(出るだけ… "
- Nerry@さんのツイート: "4k以上のディスプレイのEDID見てみたい😤"
- Nerry@さんのツイート: "現在の実装 ・優先度未実装(すべてのスレッドが同じ優先度) ・スレッドの負荷はHPETを使って計測 ・タイマー割り込みで実行中のスレッドの負荷が一定数以上だった場合にquantumを消費 ・quantumが0になったスレッドをpreemption ・スケジューラーが1秒ごとにすべてのスレッドのload値を更新"
- Nerry@さんのツイート: "単純にタイマー割り込みでpreemptする場合に比べて負荷が正確に反映されて公平なpreemptできてる(気がする"
- Nerry@さんのツイート: "SIPI送れた… "
- Nerry@さんのツイート: "MultiProcessor完全に理解した(n_cpuインクリメントしてhltするだけ)"
- Nerry@さんのツイート: "もしかして個別にINIT SIPI投げるとダメなのか"
- Nerry@さんのツイート: "動いたり動かなかったりよくわからん・・・"
- Nerry@さんのツイート: "PICを使ってるとPS2をマスクするって発想がそもそもないのでPIC時代の感覚でPS2ポートを先に初期化するとAPIC側のマスクが解除されてなくて一部環境だとPS2初期化時に発生した割り込みが受け取れなくて止まる"
- Nerry@さんのツイート: "moeのps2ドライバは割り込みが起きたらとりあえずデータを抜き取ってキューに突っ込んですぐiretしてる。 実際のデータ処理はhidスレッドでパケット解析とウィンドウイベントへの変換をしてる。この部分をユーザーランドに追い出すのは比較的容易だと思われる。"
- Nerry@さんのツイート: "ウィンドウ背景にblur実装したい"
- Nerry@さんのツイート: "きれいにblurするにはあらかじめ周囲数pixelの情報が必要だから現在の部分再描画実装じゃ綺麗に描ける気がしない:;(∩´﹏`∩);:"
- Nerry@さんのツイート: "しかもウィンドウにblurかけるということは実際に必要なpixelは自分自身のウィンドウではなく下にある他人のウィンドウだったりするので再描画に必要な情報が多すぎる"
- EFI_ABSOLUTE_POINTER_PROTOCOL の不思議 - 借り初めのものがたり
- あべこべ。 - ねりりんと借り初めのものがたり
- はりぼてOSをUEFIで起動する/5日目? - 借り初めのひみつきち
- バイバイ、 gnu-efi - 借り初めのひみつきち
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える - 借り初めのひみつきち
- UEFI のクロス開発 - 借り初めのひみつきち
- 進捗的なもの。 - 借り初めのひみつきち
- 再度進捗的な。 - 借り初めのひみつきち
- BIOS で消耗するな、 UEFI で消耗せよ。 - 借り初めのひみつきち
- ACPI BGRT - 借り初めのひみつきち
- きんきょうてきな? - 借り初めのひみつきち
- WASM自作PCエミュレータ制作日記/5 - 借り初めのひみつきち
- UEFI自作OS日記 v0.6 再始動 - 借り初めのひみつきち
- 最小の UEFI Hello World - 借り初めのひみつきち
- EFER.LME と EFER.LMA - 借り初めのひみつきち
- ACPI 2.0 - 借り初めのひみつきち
- MYOS の起動処理概要 - 借り初めのひみつきち
- initramfs - 借り初めのひみつきち
- 今週の MYOS 🎉 - 借り初めのひみつきち
- GPD MicroPC の内蔵キーボードを使う方法 - 借り初めのひみつきち
ぼくんちのTV 別館
- UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 - ぼくんちのTV 別館
- UEFIやセキュアブートの勘違いしやすい設定30個 まとめ - ぼくんちのTV 別館
DXR165の備忘録
- PCのUEFI BIOS NVRAM(設定情報) 調査メモ - DXR165の備忘録
- Plextor M8Pe M.2 PCIe NVMe SSD 128GB 購入しました - DXR165の備忘録
- Windows 10 PC UEFIの役割としくみ - DXR165の備忘録
本の虫
- 本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚
- 本の虫: LenovoのWindows 10 Signature EditionがSATAがRAIDモードに固定されているのはIntelのせい
そそるめも
- Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
- Intel SSD 750 にはOption ROMにUEFI向けNVMeドライバが入ってるっぽい - そそるめも
livaの雑記帳
- UEFI対応 - livaの雑記帳
- grubのpf2ファイルの解析 - livaの雑記帳
- 自作OSにおけるUEFI対応戦略 - livaの雑記帳
- UEFI対応(その2) - livaの雑記帳
/var/log/hdk.log
- 日記 (2014 年 10 月上旬)
- 日記 (2014 年 10 月上旬)
- 日記 (2014 年 10 月中旬)
- 日記 (2014 年 10 月下旬)
- 日記 (2014 年 11 月中旬)
- 日記 (2014 年 11 月下旬)
- 日記 (2016 年 4 月下旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 9 月下旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2018 年 3 月)
- 日記 (2019 年 1 月上旬)
/home/tnishinaga/TechMEMO
- UEFIアプリでファイルを任意のメモリアドレスにロードする方法メモ - /home/tnishinaga/TechMEMO
- UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
- UEFIのHTTP BOOTを試してみる - /home/tnishinaga/TechMEMO
- UEFIの呼び出し規則について - /home/tnishinaga/TechMEMO
- UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
Blog posts by @retrage
- ELVMのEFI Byte Codeバックエンドを作る - めもちょー
- 文鎮化したMinnowboardを復旧させる - めもちょー
- LLVMのEFI Byte Codeバックエンドを作る - めもちょー
- OVMFのデバッグ - Blog posts by @retrage01
- EFI_STATUSの値 - Blog posts by @retrage01
- EDK2におけるDebugPrintErrorLevel - Blog posts by @retrage
- UEFI向け9P File Systemを作ってクラウドからネットワークブートできるようにした - Blog posts by @retrage
- ebcvm: A Usermode EFI Byte Code Virtual Machine - めもちょー
- EFI stubなArch Linuxのインストール - めもちょー
- 技術書典5で「UEFI読本 基礎編 Linux編」を頒布 - めもちょー
- EFI stubなLinux kernelのヘッダ部分を見てみる - めもちょー
- BitVisorのEFI向けVMM Loader(1st stage)のコードを読んでみる - めもちょー
- EFI Byte Code解説 - めもちょー
J’s Lab
- PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
- OVMFを使った簡単なUEFI Linux環境の構築の仕方 | J’s Lab
- OVMFをソースデバッグするお話 | J’s Lab
- そうだ、Intel DCIをしよう! | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
Converg.
- EDK IIの基礎 - Converg.
- EDK II Package - Converg.
- Module開発 - Converg.
Firmware Security
- Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
- Ulf: Attacking UEFI over DMA | Firmware Security
- Google Pawn: Intel firmware dumping tool! | Firmware Security
- new Apple tools: eficheck (and nvm) | Firmware Security
- UefiToolsPkg: making UEFI more useful to system hackers | Firmware Security
- UEFI-CheckScript: PowerShell script for SCCM/WinPE | Firmware Security
- diablolot53/uefi-checkscript
- William reviews ru.efi/ru.exe | Firmware Security
- Toms Hardware: Win10 unsupported disk layout UEFI error howto | Firmware Security
- efivalidate (and mojo_thor) | Firmware Security
- VisualUEFIShell | Firmware Security
- proposal: add Security Version to Linux Shim | Firmware Security
- Apple Secure Boot | Firmware Security
- RaspberryPiPkg – 64-bit Tiano Core UEFI for the Raspberry Pi 3 | Firmware Security
- ebc.asm: EFI Byte Code Assembler macroinstructions for fasmg assembly engine | Firmware Security
- Intel releases Firmware Engine for Linux and Windows | Firmware Security
- LUV 2.2-rc2 released | Firmware Security
- UEFIStarter: framework to simplify UEFI development with TianoCore EDK2 | Firmware Security
- efi_analyzer: Analyze EFI binaries | Firmware Security
- bootoption – Create a new EFI RT variable like BootXXXX but store the data in a property list | Firmware Security
- DBXtool has support for Microsoft dbxupdate.bin | Firmware Security
- Eclypsium at OPCDE: UEFI BIOS firmware analysis at scale | Firmware Security
- Tianocore Security Advisory 27: Minnowboard UEFI Variable Deletion/Corruption | Firmware Security
- RomDump: EFI BIOS dumping tools | Firmware Security
- Gloader: A simple wrapper for efibootmgr that can be used to create an entry in UEFI. | Firmware Security
- FindESP: tool to find the associated EFI System Partition from a given disk object or mount point | Firmware Security
- UEFImarkEbcEdition: UEFI Byte Code (EBC) benchmark utility | Firmware Security
- dkmsscripts: scripts to help with DKMS and UEFI boot keysigning | Firmware Security
mjg59
- mjg59 | Microsoft's compromised Secure Boot implementation
- mjg59 | Announcing the Shim review process
- mjg59 | Avoiding TPM PCR fragility using Secure Boot
- mjg59 | Linux kernel lockdown and UEFI Secure Boot
- Fadisさんのツイート: "SecureBootが有効な場合に署名のないカーネルモジュールのロードの禁止、パワフルすぎるデバイスの使用の禁止等を行うKernel LockdownにLinus氏が難色を示している。SecureBootの有無でカーネルの振る舞いが変わると報告された問題の再現が難しくなるのが理由 https://t.co/ZrpQi26TSl"
- Torvalds Expresses Concerns Over Current "Kernel Lockdown" Approach - Phoronix
スライド・PDF
- UEFIをつくる // Speaker Deck
- UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 // Speaker Deck
- UEFI向け自作OSの紹介
- EFI Byte Code Virtual Machine for Fun and Profit - Speaker Deck
- Practical Rust (Hypervisor) Firmware - Speaker Deck
- FadisさんはTwitterを使っています 「rust-hypervisor-firmware: KVMをバックエンドとして動くハイパーバイザ。コンテナのアイソレーション等を目的としており、物理ハードウェアのエミュレーションは目指しておらずvirtio等のデバイスだけを備えた軽量な実装になっている https://t.co/u1OlJwRWhu」 / Twitter
- cloud-hypervisor/rust-hypervisor-firmware
- Takahiro YamashitaさんはTwitterを使っています 「ExitBootServiceを呼び出した時点でRunTimeフェーズに移行する。 RuntimeServiceはメモリに残ってるから、そいつを意識してメモリ管理しないとダメなのか。 SetVirtualAddressMapをOSが呼ぶ必要がある。 #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「UEFIのランタイムサービスはブート時に一度メモリに置かれた後、OSが起動すると別のアドレスに退かされるため、リロケーションが2回行われる事になる #kernelvm」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@retrage ちなみにRuntime Servicesが保管されているメモリってOSから見るとReservedに見えるけど、直接中の関数を呼び出せるという不思議な作りですよね。EDK2だとnvmemデバイスのドライバが入ってるっぽくてちょっと面白い。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「EFIのRuntime Services、考え方がMS-DOSのhttps://t.co/vqtbFwavaYから変わってなくて面白い。」 / Twitter
- Xavier NXのカーネルとVMの話
- retrageさんはTwitterを使っています 「なのでWindowsだとIOMMU有効が推奨されています。若干違いますが同じような手法でBoot Servicesを書き換えてSecure Bootが回避できたりもします https://t.co/QXW9homgUB」 / Twitter
- るくすさんはTwitterを使っています 「1.5倍速で観返してるけどEFI Runtime ServiceってOS起動してからもremapされて生き残ってるんだな。DMAとかで関数ポインタ書き変えれたらバックドアにできそう #kernelvm」 / Twitter
- るくすさんはTwitterを使っています 「全く同じ試みがすでにされてた 草 Attacking UEFI Runtime Services and Linux https://t.co/z5Xp7hr1UP #kernelvm」 / Twitter
- Security | DMA | Hacking: Attacking UEFI Runtime Services and Linux
- るくすさんはTwitterを使っています 「remapする時は毎回同じアドレスに置かないほうが良さそうですよ "Luckily the location of the Runtime Services table is static and won't change between reboots" #kernelvm」 / Twitter
- retrageさんはTwitterを使っています 「@RKX1209 はい、WindowsだとRuntime ServicesにもKASLRが効いていて毎回違うアドレスにremapされます(のでデバッグが大変だったり)」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@retrage @RKX1209 Remapping (KASLR) は仮想メモリアドレスであって物理メモリ上ではリロケーションされないのでDMAに対しては意味ないですけどね 一般的なUEFIの実装はASLRないのでほぼアドレス固定なはず」 / Twitter
- retrageさんはTwitterを使っています 「@SatoshiTanda @RKX1209 そういえばそうでした。訂正します。」 / Twitter
- Network Boot from Bell Labs - Speaker Deck
- 準パススルー型VMM開発の難しいところ
- yvr18-508.pdf
- suzakiさんのツイート: "シリコン内のbootROMこそが、Trusted BootにおけるCRTM:Core Root of Trust Measurement。下記PDFの11ページの図が分かりやすい。 https://t.co/teuqFvo9qm CRTMがBIOSを計測してそれをTPMにextendすることから始まる。… https://t.co/qWwDVGcW1u"
- Microsoft PowerPoint - af-congdon-tcg-overview-1104
- retrageさんのツイート: "Wow. yabits was mentioned in the article. https://t.co/loj5lNiSVn"
- yabits: Fast and lightweight yet another UEFI implementation | yabits
- UEFIベアメタルプログラミング
- Address Range Memory Mirroring
News
- UEFIのルートキット、攻撃に使われていることを初めて確認 | マイナビニュース
- 129機種3000万台超のDell製デバイスに影響する重大な脆弱性が見つかる、BIOS/UEFIレベルの任意コード実行が可能 - GIGAZINE
- 再起動せずにマザーボードのUEFIをアップデートできるインテルの新機能|自作.com
- Linux 5.5 To Finally Wire Up EFI RNG Code For x86 As Another Source Of Entropy - Phoronix
- 最新SSDのキホン - AKIBA PC Hotline!
- Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2) - @IT
- Tech TIPS:Windows 10で素早くUEFIの設定画面を起動する - @IT
- 毎秒2.7GBで神速!NVMe対応超高速SSD『Intel SSD750シリーズ』がヤバすぎる - 週刊アスキー
- The bootstrap process on EFI systems [LWN.net]
- PC起動時に動作するBIOSに取って代わる「UEFI」とはいったい何なのか? - GIGAZINE
- HDD交換後も感染したPCに残るUEFIファームウェアを標的とする中国製マルウェア「MoonBounce」 - GIGAZINE
- BIOSからUEFIへ BIOSはなぜ終わらなければならなかったのか:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/4 ページ) - ITmedia NEWS
- TPM Invisible BIOSの脆弱性は、Dell、Alienwareマシンに影響を及ぼします|自作.com
- OSを再インストールしてもストレージを交換しても感染しっぱなしになるUEFIルートキット「CosmicStrand」が登場、ASUSやGIGABYTEのマザーボードが被害に - GIGAZINE
PC Watch
- 2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch
- ESET、UEFI検査やホームネットワーク保護機能が強化されたセキュリティソフト最新版 ~他社ソフトの窓口サポートにも対応 - PC Watch
- OS再インストールやHDD交換でも排除できない、UEFIルートキット「LoJax」 - PC Watch
- Kaspersky、UEFIに感染するブートキットを発見。OS再インストールでは排除できず - PC Watch
技術評論社
- 第441回 QEMU/KVMでUEFIファームウェアを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第444回 Ubuntuにおけるセキュアブートの仕組み:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第446回 QEMU/KVMでセキュアブートを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第511回 UEFIの設定が変更できなくなる,あのバグの話:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第77回 Plamo LinuxのGPT/UEFI対応[その1]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第78回 Plamo LinuxのGPT/UEFI対応[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第79回 Plamo LinuxのGPT/UEFI対応[その3]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第80回 Plamo-6.1 released:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 2020年2月14日 "Windows on Btrfs"を実現!? オープンソースのWindowsブートローダー「Quibble」:Linux Daily Topics|gihyo.jp … 技術評論社
- maharmstone/quibble: Quibble - the custom Windows bootloader
- 2022年5月6日 Fedoraプロジェクト,レガシーBIOSサポート終了の方針を一転,サポート継続へ:Linux Daily Topics|gihyo.jp … 技術評論社
OSDN
- 「Coreboot 4.6」リリース | OSDN Magazine
- 米Microsoftが「Project Mu」を発表、同社のUEFIコアをオープンソースに | OSDN Magazine
- Linuxカーネル3.15リリース、サスペンド/レジュームの高速化など多くの新機能を追加 | OSDN Magazine
Qiita
- UEFI Advent Calendar 2014 - Qiita
- "えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
- gnu-efiでUEFI遊びをはじめよう - Qiita
- FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
- "えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
GitHub
- clover/OhciDxe at master · Clover-EFI-Bootloader/clover
- uefireverse/efiperun at master · jethrogb/uefireverse
- EDK II white papers · tianocore/tianocore.github.io Wiki
- fuchsia-mirror/gigaboot20x6: GigaBoot20x6 - A Simple UEFI Bootloader for Magenta
- edk2/Command.c at master · vathpela/edk2
- cupnes/bare_metal_uefi
- thasenpusch/ExOS at aca6a389d54ae7c08e5073eae50d1ef134d7b322
- AuberLin/PiSmmSCRT
- ornitorrincos/OS at 1d3284be4af4da2a9690b89ebd958e6ca53ce8e6
- x86, efi: Retain boot service code until after switching to virtual mode · shr-distribution/linux@916f676
- BOOT UEFI · seporaitis/fuchsia Wiki
- uefi-programming/process.c at master · zhenghuadai/uefi-programming
- MatthewClarkMay/secure-boot-mok-scripts: Set of scripts I wrote to simplify UEFI Secure Boot Machine Owner Key generation, and signing of Nvidia, VMware, and VirtualBox kernel modules. These MOKs can be used to sign other kernel modules as well.
- Microsoft UEFI capsule update package on GitHub | Firmware Security
- MS_UEFI/MsCapsuleUpdatePkg at share/MsCapsuleSupport · Microsoft/MS_UEFI
- ちくわさんのツイート: "今現在開発中のyabits/uefiですが,OpenBSD 6.2が起動することを確認しました.これで少しはTianoCore以外のUEFIができた,と言えるのかな? https://t.co/P5uPiTPnhR https://t.co/5mFxTEpX5k"
- yabits/uefi: A minoca based UEFI coreboot payload
- Fadisさんのツイート: "Microsoft、TianoCoreのEDK2をforkして「ぼくのかんがえたさいきょうのUEFIアプリケーション開発用ライブラリ」を作るオープンソースプロジェクト Project Mu を立ち上げ https://t.co/huBeVkFboO"
- Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
- Project Mu
- Unofficial EDK2 nightly build | EDK2 Nightly Build
- How to debug OVMF with QEMU using GDB · tianocore/tianocore.github.io Wiki
- edk2/Readme.md at master · tianocore/edk2
- retrageさんはTwitterを使っています 「はりぼて状態だけど,Rustで書かれたEFI互換なfirmwareでUEFI Secure Bootが利用可能なUbuntuの起動がImageの変更なしにできるようになった.shimとか使ってても動きます.」 / Twitter
- retrage/rust-hypervisor-firmware at vanilla-ubuntu-boot
- retrageさんはTwitterを使っています 「なんかファームウェアをcargo testでちゃんとVMM立ち上げてテスト回すの,結構再現性が低い失敗が多くて大変」 / Twitter
- retrageさんはTwitterを使っています 「shimx64.efiとかのデバッグ,ソースコードが公開されている分winload.efiとかのデバッグよりはやりやすかった.」 / Twitter
- retrageさんのツイート: "EFI Byte CodeのVMを作っている。一通りの命令セットの実装が終わったので、デバッグをしていく。デバッガ対応とかnative codeの呼び出し、バイナリのロードなど、まだやるべきことがたくさんある https://t.co/GbbikoxJs0"
- retrage/ebcvm: EFI Byte Code Virtual Machine
- FadisさんはTwitterを使っています 「picolibc: 組み込み向けの小さいlibcの実装のニューフェイス。newlibのBSDライセンスな部分とAVR libcを組み合わせて、足りないところを気合で実装することでlibc全体がBSDライセンスで提供されているのが大きな特徴。arm arm64 x86 x86_64 riscv riscv64 ppc esp8266に対応 https://t.co/FYCHM6wnMa」 / Twitter
- picolibc/picolibc: picolibc - a C library designed for embedded 32- and 64- bit systems.
- retrage/rust-hypervisor-firmware at windows10-20h2-support
Twitter
その他
1MBを避ける
- 嶋田大貴さんはTwitterを使っています 「Linux 5.13より、x86(_64)では先頭1MBのメモリを使わないようになるとのこと。先頭の方のアドレスはBIOSにぶっ壊されがちで、個別に対処するのがしんどいのでもう固定で1MBリザーブにしちゃうと。 → Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM https://t.co/UXmhGWh21o」 / Twitter
- Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM - Phoronix
- FadisさんはTwitterを使っています 「Linuxカーネルはx86やx86_64で起動する場合にBIOSが使う可能性がある下位64kBのメモリを触らないようになっているが、一部のイカれたBIOSがOSに何の断りもなく下位1MBまで書き込んでいて、1MB以下にカーネルが何か書くと壊れる可能性があるので、1MBまで避けるようになった話 https://t.co/88Jf0ihKuo」 / Twitter
- It Turns Out Windows Unconditionally Reserves The First 1MB Of RAM, Linux Was Just Late To Do So - Phoronix
- FadisさんはTwitterを使っています 「このパッチについてWindowsも同じ問題にぶつかる筈だけどどうなっとるん、という話がでて、Windowsチームに確認をとってくれる親切なマイクロソフトの人が現れて「その問題があるからWindowsも結構前から先頭1MBは避けるようにしている」という話が飛び出してる」 / Twitter
- FadisさんはTwitterを使っています 「1MBまで勝手に使うBIOS、そのPC/AT互換機は本当にPC/ATと互換がありますか感がある」 / Twitter
- retrageさんはTwitterを使っています 「去年からCSMが無くなって本格的にx86システムはISAレベルでPC/ATとの互換性があるだけの周りのアーキテクチャは全く別ものなので今日のx86マシンはPC/AT互換機とは言えないと思う」 / Twitter
- retrageさんはTwitterを使っています 「PCHになって久しいのに未だにノースブリッジ、サウスブリッジの図で説明されたりするともんにょりする」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@retrage 去年CMSに何があったんですか? ググるとIntelは、2020年までにUEFIに移行する、と2017年に言ってたみたいですけど、実際はどうなんでしょう」 / Twitter
- retrageさんはTwitterを使っています 「@SatoshiTanda はい、そのことです。upstreamのedk2でもCSMの実装が無くなっている(OvmfPkgには残っていますが)ようなのでUEFIのみへの移行が進んでいると思います」 / Twitter
OS ベンダ登録
- Kimihiro Nonakaさんのツイート: "EFIブートの「/EFI/<OS vendor>/<OS image loader>] についてはUEFI spec https://t.co/STn4Gc05Go 2.7 (Errata A)だと「13.3.1.3 Directory Structure」に記載がある。OS vendorは https://t.co/kqpDxb4Kc4"
- SODA Noriyukiさんのツイート: "Debian と FreeBSD はあるんですねえ… NetBSD も欲しいなあ… "
- Kimihiro Nonakaさんのツイート: "UEFI Specification Workgroup Chairperson にメールを送れば良いみたいですけど… "
- SODA Noriyukiさんのツイート: "おお、ちゃんと見るとそう書いてありますね。 担当は board@ になる気がするのでメールしてみました(のなかさんにも CC: したので届いているはず)。 あとは board member である @_ki_nu さんが取りこぼさずに推進してくれることに期待?(ぉ… https://t.co/ASKcVS5QeV"
- Subdirectory Registry | Unified Extensible Firmware Interface Forum
virtio-fs
- retrageさんはTwitterを使っています 「virtio-fsがLinux kernelにマージされたのは記憶に新しいけど,最近になってEDK2のOVMFでもサポートが入るようになった.https://t.co/3dt4j9v19C」 / Twitter
- edk2/OvmfPkg/VirtioFsDxe at master · tianocore/edk2
- retrageさんはTwitterを使っています 「面白いのが直接virtio-fsを実装しているのではなく,間にFUSEのインターフェースを経由して実装されている点.この抽象化レイヤーを使えば他の*nix系のFSを移植するのもやりやすくなりそう.」 / Twitter
PXE, HTTP ブート
- FadisさんはTwitterを使っています 「古いストレージの残ってないPCをPXEブートで上げられるようにしようと思い立ったのが昨日、何故か他のホストはPXEで上がるのにそのホストだけtftpでタイムアウトして設定見直したりパケットダンプを眺めたりして夜が更け、今朝iPXEで普通に上がる(=NICのPXEの実装が腐ってる)のを発見した。眠い」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ 20年後くらいには iSCSI とかで見るのかな? UEFI から iSCSI の設定できるのとか、 古いおじさんにはキモくて仕方がないよ…」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs UEFI 2.5以上ならhttpでブートイメージを拾えるから、EFI stub付きのカーネルを雑にWebサーバで配るだけで良い(URLをUEFIの設定に保存)。めっちゃ簡単」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ VMware とか仮想マシンの仮想 UEFI から iSCSI boot したいんですよねぇ… http ブートも良いですねぇ。 ファームアップなんかも http でだいたいできるようになって、あと20年位で tftp のようやく捨てられるかな? 書き込みを考えると、S3 位は喋ってほしいところ。」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs いますぐiPXEでできそう https://t.co/eUFgRPMSgR」 / Twitter
- iPXE - open source boot firmware [cmd:sanboot]
- FadisさんはTwitterを使っています 「NICのROMに入ってるPXEブート、tftpでイメージを送ってる最中に関係ないパケットが来ると死んでしまう、みたいな実装もあって割と不幸のもとなんだよな。この種のNICではWoL後に起動確認としてpingする親切なサーバ管理ツールがサーバの起動絶対阻止するマンになる」 / Twitter
users
@mhiramat
- まさみさんは語りたいさんのツイート: "Linaroでuefi-toolsというのを作っていて、これはややこしいビルドを簡単にしてくれるらしい。"
- まさみさんは語りたいさんのツイート: "サーバを作って売る上で、LinuxとEDK2って扱いがちょっと違うよね。LinuxはOSベンダがメンテ出来るけど、自社のCPUやボード部分のUEFI対応はある意味BIOSと同じなのでサーバベンダがしないといけない。そう考えるとハードベンダもOSS活動しないといけないのか。"
- まさみさんは語りたいさんのツイート: "未踏、tianocore全否定なのか・・・。"
- まさみさんは語りたいさんのツイート: "まあ、ソースコードがお世辞にもいいとは思えないし大きいし、というのは理解できるけど、tianocoreもOSSなんだよな。文句があるならまずコミュニティに相談したらどうだ、という風に思っちゃう。"
@nonakap
- Kimihiro Nonakaさんのツイート: "EFI_BLOCK_IOのMedia->MediaIdってシステムでユニークという訳では無いんだなぁ…"
- Kimihiro Nonakaさんのツイート: "FreeBSDのefipartを参考にDevice Pathをいじくる様に修正しないと駄目だ(´・ω・`)"
- Kimihiro Nonakaさんのツイート: ""multiboot2 boot-services EFI specification" "multiboot2 EFI memory map specification" | NEWS - grub.git - GNU GRUB https://t.co/m9lIFSW7Y1"
- Kimihiro Nonakaさんのツイート: "efbootだとConventionalMemoryとかLoaderCodeとかLoaderDataとかBootServicesCodeとかBootServicesDataとかが利用可能メモリとして認識されるので、message bufferをなるべく保持したいという要求に応えられない気がする(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "たとえばESXi 6.5のUEFI環境だと「000000000dfa8000/000000000fffffff: available [BootServicesData]」が最上位空きメモリ領域なのでmsgbufとしてここを使うはずなので、起動する度にUEFIがぶち壊すと思うんだけどどうなんだろうか"
- Kimihiro Nonakaさんのツイート: "efibootを起動した時にConventionalMemoryとして認識されている上位アドレス空間をmsgbufとして使わないと駄目な気がするけど、こんなのUEFI実装によって違うからどうしようもない(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "BIOSとは違って最上位メモリアドレス付近は安全ではないのだ"
- Kimihiro Nonakaさんのツイート: "Fのloaderは1GB未満、OのLOADSPACEは256MB未満のメモリしか確保しないけど、これを真似してもmsgbufの保護にはならないので真似するのは止めました。UEFIの実装によっては保護になるとは思うけど、そういう実装が多いのか少ないのかは知らん(´・ω・`)"
@yasuoka_m
- YASUOKA Masahikoさんのツイート: "@nonakap O では、ExitBootService 後に memcpy しなおすことにしました"
- YASUOKA Masahikoさんのツイート: "@naobsd efiboot のシリアルコンソールですが、結局、こんな感じに実装してみました。ここまで頑張った挙句、ポートの特定はいい加減なので、カーネルでは別のポートでした、という問題はありそうな感じなのが弱いです。:) https://t.co/88WqKKVXy6"
- 'Re: efiboot serial console support' - MARC
@uchan_nos
- ファッション自作OSマンさんのツイート: "UEFIアプリとしてOSローダーを作る際のハマりどころ ・空きメモリ領域は機種によって違うので動的に取得する必要あり ・ABIの差。UEFIアプリのABIはMS x64 ABI、自作OSは大抵System V ABIで作るだろう… "
- 技術書典4 け-51 x86-64-128さんのツイート: "UEFIの仕様ではExitBootServices()した後はBootServiceを利用できないはずだが,実際にある実装では引き続きBootServiceが使えてしまう,らしい. #osdev_moku2"
- setup.c\kernel\x86\arch - kernel/git/torvalds/linux.git - Linux kernel source tree
- 技術書典4 け-51 x86-64-128さんのツイート: "ESPってただのFATかと思っていたら,GUIDが違うのか.知らなかった. #osdev_moku2"
histric
histric-1
- 嶋田大貴さんのツイート: "UEFIブートの時に画面つながってないと grubがstuckするの、ECS LIVAだけの問題じゃないっぽい https://t.co/a8XwYlw7I6"
- 173210さんのツイート: "jethrogb/uefireverse https://t.co/HsgGU1LvPn Linuxで実際にUEFIアプリケーションを走らせてみるという荒業。その発想はなかった。"
- iruka3さんのツイート: "ここでx86とかx86_64を持ち出さない理由は、intel系CPUでベアメタル・プログラムを組める人は特権階級な人達だけ、だから。 OS書いたりBIOS書いたりUEFI弄るような人。あとコーデックを高速化する人とか特殊な技能人 https://t.co/V27HEOrwea"
- 側転幼女おるみんちゃんさんのツイート: "UEFIとACPIとSATAとPCIeとUSBとネットワークでというモダーンなPCで自作OSみたいな本"
- СЮУ1228さんのツイート: "@kotatsu_mi あとさぁ、UEFI App/Driverだと間口狭い感じするんだけど、x64入門とか自作OS本の新しいやつみたいに考えるともうちょっと間口広いと思うんだよな。実装的にはUEFI使う感じで"
- СЮУ1228さんのツイート: "@kotatsu_mi 15日でできる!UEFI OS自作入門っていう本を二人で書こうぜ #題名ぱくり良くない"
- Takanori Watanabeさんのツイート: "@tenpoku1000 いやね、ストレートマップで呼び出したら途中でポインタが吹っ飛ぶ症状がある実装があって、どうも一部のモジュールのフィックスアップがSetVirtualAddressMapで行われるということっぽいので試すかという状況。"
- Tsukasa #01 [要出典]さんのツイート: "なるほど、VeraCrypt のレスキューディスクには新たな機能が搭載されてるんだね。UEFI のブート設定が初期化されたとしても、ブートメニューを再追加することができる。これで、BIOS アップデート後も大丈夫!"
- Orumin de Izumoensisさんのツイート: "@syuu1228 /sys に UEFI の RuntimeServices が見えなくなるとかのオプションで、UEFI での起動には問題ないらしい"
- ゆたかさん🐶さんのツイート: "UEFIモードだとLinux動作中にefibootmgrコマンドで、ブートオーダーを変えれて便利です。いちいち、BIOSのセットアップに入らなくてもよいので。"
- 太田 一季 (CV.どじょりん)さんのツイート: "@jisaku_Haswell BIOS Flashbackは生のBIOSバイナリ(.rom)を読み込んで直に書き込みするのね UEFI経由でアップデート用の、カプセル化されたバイナリ(.cap)は読み込まないのよー"
- 🍵🍡Tea Boyさんのツイート: "PC専門サイトでさえ、「BIOSからUEFIに移行」などと言う実態… BIOSはファームウェアですが、UEFIは仕様ですよ??"
- tnさんのツイート: "なるほど! UEFIのTCP4 PROTOCOLのハンドラはEFI_TCP4_PROTOCOLのGUIDでLocateHandle使って検索して得るのではなく、EFI_TCP4_SERVICE_BINDING_PROTOCOLのCreateChildを呼ぶと得られるのですね!! 一歩進んだぞ!!!"
- EFI_TCP4_SERVICE_BINDING_PROTOCOLとEFI_TCP4_PROTOCOLに関するメモ
- ゆたかさんさんのツイート: "BIOS(UEFIファームウェア)はWindowsを起動することを目的として作られるので、BIOS内のOS定義(_OSIメソッド)はWindowsになっていて、LinuxはBIOSがどのWindowsバージョン向けに作られたかを判断して、ハードウェアを初期化しています。… https://t.co/sCRRVdxEz4"
- 品川 高廣さんのツイート: "そういえば先週 @retrage01 さんの独自UEFI実装 yabits (Yet Another UEFI coreboot Payload) の話を聞いてきました。起動時間が速いそうなので、QEMU + OVMF で UEFI 上の自作OSをやってる人は OVMF の代わりに使うと便利かもしれないと思いました。https://t.co/GCDsCfRMDd https://t.co/TGvQ87r3Kx"
- 研究千年牛酪情報保管庫菩薩さんのツイート: "MD RAIDのメタデータ領域を壊れたGPTと誤認識して修復しようとゼロクリアするマザボ.... / “scan.php?page=news_item&px=Linux-Software-RAID-ASRock” https://t.co/ULL25yU7Ye"
- Some Linux Users Are Reporting Software RAID Issues With ASRock Motherboards - Phoronix
- Rui Ueyamaさんのツイート: "lldを使うとUEFIアプリケーションが簡単にビルドできるよ、という話。これよく聞く話なので思わぬところで役に立っているらしい。僕はブートローダーとかは書いたことないです。 https://t.co/2h4ZHk66dX"
- Goodbye Gnu-EFI!
- NerryさんはTwitterを使っています: 「BGRT正しく表示されない問題どうも液晶の方向と画像の方向に原因がある気がするが、データ上はどの画像も0℃扱いになっててwindowsはどうやって判別してるんだ・・・」 / Twitter
- NerryさんはTwitterを使っています: 「画像が縦長か横長で判別することにした:;(∩´﹏`∩);:」 / Twitter
- ret2rangeさんはTwitterを使っています: 「UEFI、規格にないだけでEDK2で実装されているがゆえに実質標準で実装されていることになっているProtocolとかたくさんあるんだよなあ」 / Twitter
- ret2rangeさんはTwitterを使っています: 「GRUBとかでもそういうのある前提の実装だったりする(Console Control Protocolとか」 / Twitter
- ret2rangeさんはTwitterを使っています: 「デバッグでprintfがない環境で値を16進数で出力したいときva_arg使うほどでもないとき、BitVisorのloadvmm.efiにあるprinthex関数が何気に便利だった https://t.co/mfyf4k8HYC」 / Twitter
- BitVisor loadvmm.efi printhex
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「fdは「空いている若い番号から使いまわされる整数」と言う点でハマりやすい。 (昔のUNIXはその性質を積極的に使って dup(2) とか…) なお、WindowsのHANDLEはオープン毎のシリアル番号付与で、意図しない再利用はまずない。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@ponkotuy 過渡期の UEFI 2.3b にギリギリ対応してなさそうだけど UEFI なマザーボードは微妙に貧弱なのでマザーボードの設定で CSM(UEFI の Legacy BIOS 互換機能)を無効化しないと,BIOS/UEFI 両方に対応したブートイメージだと BIOS boot のほうを優先して読むようなことがある」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@ponkotuy Windows も 7 とか UEFI boot 対応してるはずなのに CSM を無効化しない限り BIOS boot するようなことがあった(Windows 8 から UEFI 2.3b 対応(つまり SecureBoot 対応)がロゴシール貼る要件になったので,UEFI boot のほうを優先するようになった)」 / Twitter
- 全手動猫画像RT botさんはTwitterを使っています 「UEFI環境でNetBSDが起動しないときのトラブルシューティング、俺も教えてほしいよ。シリアルコンソールが無いと基本駄目ですね。あとはframebufferにどこまで進んだかをpixelで表現するくらいしかなさげ」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ソフトでもハードでもないからファームと呼ばれるようになったのに割と簡単にアップデートできるようになってしまい、何がファームウェアなのかというのも難しくなったなあ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@takehiro_t ROM(ただしフラッシュメモリ)とか、あのへんわけわからんですね」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@satoru_takeuchi ですねー。いまどきもうbt,etherとかのmacアドレスが書き換え可能とか全く驚かないけど、ああそうかここもいまやROMじゃないんだと最初は驚いた記憶」 / Twitter
- とみながたけひろさんはTwitterを使っています 「PCでない、で思い出したが、アングラ方面ではbiosと言えばゲーム機の本体ROMを吸い出したイメージで、isoと言えば光学ディスクを吸い出したイメージなのである。まあ「強いユニコード」とかと同じですな」 / Twitter
- timelerさんはTwitterを使っています 「なんとなくだけどPCでない機器のデバイスドライバーのイメージ😅 いい方変えるとこれ以外はファームウェアとは呼びたくないww」 / Twitter
- 強いユニコード - Google 検索
- Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年ほど前に担当してた「ファームウェア」はフロッピーからブートしてたのでまぁ… 汎用でないハード用のソフトはファームでいいんじゃないかと思うけど、最近はあんまり通じない感もあり、組込ソフト(embedded software)って言っちゃうことが多くなりました。」 / Twitter
- retrageさんはTwitterを使っています 「Windows,UEFI Variableがサポートされていない場合を想定していないらしく,BCD由来の値を使った演算を行う場合に特定の環境でゼロ徐算が行われて例外が発生する.」 / Twitter
- PG_MANAさんはTwitterを使っています 「ACPIのBootLogo GraphicってEfiBootServiceDataに格納されているんやな...おかげでこの領域をメモリ管理下に安易に置けない...」 / Twitter
- retrageさんはTwitterを使っています 「前に見かけたのでDMA attackでメモリ書き換えてチートする、というのがあった」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「普通に調べごとしてたら偶然 Apex Legends のチートの実装にたどり付いたんだけど、特定バイト列探して目的データを見つけるのは古典的な方法として、UEFIにプログラムロードしてるのね……。OSからも見えないところで下でチートツール動いてるやん。これにまともに対処しろってのが無理だわ……。」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「#seccamp のUEFI BIOSセキュリティの講義スライドと事前課題資料を公開しました! UEFIマルウェア、UEFIベースのゲームチートモジュール、SMMの脆弱性を解析したり、対策方法や解析方法を一緒に議論したりしました。考えつかなかったアイディアも聞けて楽しかったです https://t.co/AjDXz2jrnm https://t.co/auO5CUJeJO」 / Twitter
- tandasat/SecurityCamp: セキュリティキャンプ2021
- セキュリティ・キャンプさんはTwitterを使っています 「全国大会選択コースC4「UEFI BIOSセキュリティ」では、UEFI BIOSのアーキテクチャーと実装、アタックサーフェイス、それに対する悪用/攻撃の事例を学習します。また、実在する脆弱性の解析などの演習を通して、土台となる技能を得ることを目指します。 https://t.co/KOEahFhQc9」 / Twitter
- retrageさんはTwitterを使っています 「EmulatorPkg,2009年あたりにはAppleが使ってメンテナンスしていたっぽいけど,もう放置状態でGCC5でビルドしたときにSEGVするという問題ですらWAが示されているだけで修正されていない.」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「For friends who wanted to play with the Windows Platform Binary Table (WPBT) in response to Eclypsium's report, here is the tool for you. https://t.co/DxHJMUAsnd @HackingThings Thank you a lot for helping me reproduce this! https://t.co/NzM3TzV2H0」 / Twitter
- MickeyさんはTwitterを使っています 「Want to make your own persistent rootkit? Just sign your native windows binary with one of Hacking Team's revoked code signing certificates and you are all set! https://t.co/exqAYnxR4S Certificate: https://t.co/h3rVU7hRt7 https://t.co/7zfDgZX3oE」 / Twitter
- Everyone Gets a Rootkit - Eclypsium
- retrageさんはTwitterを使っています 「最近あんまり追っていなかったけど、MosaicRegressor後に出てきたやつか。今時BootGuardとかあるし、DXE_CORE書き換えてhookするようなのって、もう無理なんじゃないかな」 / Twitter
- retrageさんはTwitterを使っています 「https://t.co/JZcnWV1FYt」 / Twitter
- MoonBounce: the dark side of UEFI firmware | Securelist
- SecurelistさんはTwitterを使っています 「#MoonBounce: the dark side of UEFI firmware. https://t.co/ATUKfAfRDe」 / Twitter
- 瑠夏たそ@りなたそ(18)さんはTwitterを使っています: 「@tss_ontap 高速起動が有効になっているBIOS(UEFI)は基本的に起動時に設定画面は入れないので、Windowsログオンしてから再起動をshiftキー押しながら選択して、青い画面に進むとUEFIの設定画面に進めますよー。 ちなみにご想像通り今のWindowsのシャットダウンは完全なシャットダウンじゃないですね。」 / Twitter
- 瑠夏たそ@りなたそ(18)さんはTwitterを使っています: 「@tss_ontap 初見殺しですよねぇ。 ちなみに高速起動はUEFI(マザボ)側の設定と、Windows側の高速スタートアップ設定で2種類ありまして。Windowsのシャットダウンがちゃんとシャットダウンしないのは後者のせいですね。ちゃんとシャットダウンするにはshift+再起動の青い画面から落とす必要があります。」 / Twitter
- 瑠夏たそ@りなたそ(18)さんはTwitterを使っています: 「@tss_ontap なおさらに補足すると、普通に再起動すると高速スタートアップは効かなくなるので、デバイス等にトラブルがある場合などは普通に再起動でも問題ありません。」 / Twitter
- takotakotさんはTwitterを使っています: 「@lina_taso @tss_ontap 再起動して、途中でインタラプトすると「本来予期しているシャットダウン後の起動」に近いですね。」 / Twitter
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- Acknowledgements · EDK II UEFI Driver Writer's Guide
- UEFI Driver Writer's Guide · tianocore/tianocore.github.io Wiki
- Unified Extensible Firmware Interface - ArchWiki
- UEFIBooting - Community Help Wiki
- UEFI CPPC2 - Google 検索
WebAssembly
WebAssembly Studio
- mbebenita.github.io/WasmExplorer/
- WasmFiddle
- WebAssembly Studio
- wasdk/WebAssemblyStudio: Learn, Teach, Work and Play in the WebAssembly Studio
- Rockridgeさんのツイート: "既存のWasmExplorerとWasmFiddleを統合し、新機能を追加して、新たなオンライン統合開発環境であるWebAssembly Studioに生まれ変わるという。今のところAlpha版に近いBeta版の状態。 / “S…” https://t.co/o88We9ZzA3"
- Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE - Publickey
- Coding WebAssembly? New IDE Offers Alternative to Visual Studio -- Visual Studio Magazine
- WebAssembly Studio: MozillaによるオンラインWASM IDEツール
- AST explorer
- chikoskiさんのツイート: "WebAssembly Studioってコールグラフを可視化する機能があったのか。https://t.co/4iP8e3qcvC #webassembly"
WebAssembly
- WebAssembly/proposals: Tracking WebAssembly proposals
- WebAssembly Specification — WebAssembly 1.0
- WebAssembly Core Specification
- WebAssembly Specification
- WebAssembly
- Roadmap - WebAssembly
- Binary Encoding - WebAssembly
- Tanks! Demo - WebAssembly
- Submitting Feedback & Issues - WebAssembly
- Modules - WebAssembly
- JavaScript API - WebAssembly
- Web Embedding - WebAssembly
- NectarJS - JavaScript's God Mode
- WebAssembly Tail Call - Chrome Platform Status
- Embedding — WebAssembly 1.0
- Instructions — WebAssembly 1.0
- WebAssembly Core Specification
- Introduction to WebAssembly — Rasmus Andersson
- WebAssembly Reference Types - Chrome Platform Status
- 「Google Chrome 78」リリース | OSDN Magazine
- WebAssemblyソースコードがGDB、LLDBを使ってブラウザ外でデバッグ可能に
- WebAssembly/wasm-c-api: Wasm C API prototype
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「暗号関係の計算をサイドチャンネル攻撃から守る、などのためにconstant timeな命令をWasmに追加しようというproposal / 1件のコメント https://t.co/lzLoLIk7pr “GitHub - WebAssembly/constant-time: Constant-time WebAssembly” https://t.co/dkekeCzMFR」 / Twitter
- WebAssembly/constant-time: Constant-time WebAssembly
- ゴリラさんはTwitterを使っています: 「メモ wasmのtestsuiteの使い方の例 wast2jsonを使ってi32.wastからwasmとjsonに出力する jsonがテストケース、i32.0.wasm が module の定義(テスト対象が定義されている)ので jsonを読み取ってwasm runtimeに入力を渡し、出力をチェックするテストコードを書いて動かす https://t.co/SdbMTIKQS3」 / Twitter
MDN
- WebAssembly Concepts - WebAssembly | MDN
- WebAssembly テキストフォーマットから wasm に変換する - WebAssembly | MDN
- WebAssembly JavaScript API を使用する - WebAssembly | MDN
- WebAssembly テキストフォーマットを理解する - WebAssembly | MDN
- WebAssembly のコンセプト - WebAssembly | MDN
- WebAssembly | MDN
- WebAssembly.Module - JavaScript | MDN
- WebAssemblyコードのロードと実行 - WebAssembly | MDN
- コンパイルされた WebAssembly モジュールをキャッシュする - WebAssembly | MDN
- WebAssembly.instantiate() - JavaScript | MDN
- WebAssembly.compile() - JavaScript | MDN
- WebAssembly - JavaScript | MDN
W3C
- WebAssembly Core Specification
- WebAssembly JavaScript Interface
- WebAssembly Web API
- W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開 - Publickey
- Rockridgeさんのツイート: "W3CでWebAssembly Working Groupが発足。WebAssemblyの標準仕様化を目指す。なお、引き続きCommunity Groupにおいて新機能の検討が行われる。 / “Launching the Web…” https://t.co/CnyEYnYFAJ"
- WebAssembly Working Group Charter
- Launching the WebAssembly Working Group | W3C Blog
- public-webassembly@w3.org Mail Archives
- W3C Strategic Highlights: Strengthening the Core of the Web (Web Assembly) | W3C Blog
asm.js
HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーJavaScript が動く仕組み | HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 | HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーC / C++をasm.jsに変換するツールEmscripten | HTML5Experts.jp
blog
- JavaScriptの実行速度を劇的に改善するasm.jsの特徴は、CやC++のような言語をJavaScriptのサブセットで記述すること - Publickey
- asm.jsの基本的な使い方・まとめ
- ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く:CodeZine(コードジン)
- Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか? : document
- asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話 - ひつじのにっき
- Extending Emscripten to Support Objective-C — running iOS Apps on the Web
スライド
- 20170222-emscripten-fs // Speaker Deck
- asm.js 減量やってみた // Speaker Deck
- asm.jsとWebAssemblyって実際なんなの?
- asm.js x emscripten: The foundation of the next level Web games
- emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
Qiita
- asm.js: 仕様と実装の今 - Qiita
- asm.jsの速度検証 -その1- 何も考えずに書いてみる - Qiita
Twitter
- Rockridgeさんのツイート: "asm.jsの並列的コンパイルについて解説した記事。Firefoxではasm.jsとWebAssemblyの処理パイプラインを共通化しており、asm.jsでもwasm IRがベースになる。これを独立したスレッドで最適化する。 https://t.co/fvEoHlZ05X"
- Rockridgeさんのツイート: "Fx49:5MBを超える巨大なJavaScriptはメモリ内で圧縮が行われる。asm.jsの消費メモリ抑制に効果があるという。 / “1219098 – re-enable compression on large sources” https://t.co/BxTPVFXEgA"
- chikoskiさんのツイート: "Emscriptenでサポートされているioctl のフラグですが、ざっと読んだ限りFIONREADとTIOCGPGRPだけが実装をもち、TCSETSとTIOCSPGRPはエラーが返るようです。他のは"bad ioctl syscall"となるようです。 #emsn"
- Rockridgeさんのツイート: "asm.jsが何であって、何でないかということは、2013年6月という初期の段階でかなり詳細に説明されていた。 / “azakai: What asm.js is and what asm.js isn't” https://t.co/ivGMTBQa61"
- Fadisさんのツイート: "Linuxカーネルの中にはインラインアセンブリが使われている箇所があるが、JavaScriptエンジン上でLinuxカーネルを動かすには、emscriptenのasm(JavaScriptを挟める)に置き換える必要がある #kernelvm"
- maoさんのツイート: "WASMのパフォーマンスについて👀 良いのう。まぁ将来的にasm.jsはどの道廃止されるし。(2018.3からは非推奨警告が出る) WebAssembly Load Times and Performance https://t.co/bIVG7WrwRT"
- Embind — Emscripten 1.37.3 documentation
- WebIDL Binder — Emscripten 1.37.3 documentation
- asm.js
- PyPy.js
- kripken/emscripten: Emscripten: An LLVM-to-JavaScript Compiler
LEB128
- KMC Staff Blog:DWARF と有限状態機械
- DWARF 3.0 Standard
- LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- LEB128 ‐ 通信用語の基礎知識
- 左シフト演算子および右シフト演算子 (<< および >>)
- Little Endian Base 128 in JavaScript - Google スライド
関数へのポインタ
- WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
- 【WebAssembly】C/C++からJavaScriptで実装した関数を実行する - shogonir blog
- 【WebAssembly】wasm側で動的に作成したインスタンスをJSに渡す - shogonir blog
- WebAssembly モジュールの作成と操作 | Mozilla Developer Street (modest)
スライド・PDF
- 20160903-WebAssembly // Speaker Deck
- 20161005-WASM // Speaker Deck
- WebAssemblyに足りないもの - Google スライド
- WebAssembly 入門 // Speaker Deck
- コンパイラの人からみたWebAssembly | κeenのHappy Hacκing Blog
- WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
- NickBray_WebAssembly.pdf
- 詳説WebAssembly
- はじめてのWebAssembly // Speaker Deck
- 20170924-html5conference-wasm // Speaker Deck
- 20171018-WASM // Speaker Deck
- WebAssembly Proposals - Google スライド
- chikoskiさんのツイート: "WASM 今の提案まとめスライド(TPAC2017でつかわれたもの)。今の状態、レポジトリ、提案者がまるっとわかって便利 https://t.co/50lGscy6wA #emsn"
- WASM(WebAssembly)入門 ペアリング演算やってみた
- WebAssembly future - Speaker Deck
- WebAssemblyとABI | κeenのHappy Hacκing Blog
- コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
- TypeScript で WebAssembly 処理系を書いた話 - Speaker Deck
- AsteriusでHaskellの関数をJSから呼べるようにしてみた(けど失敗) (1)
- tweag/asterius: A Haskell to WebAssembly compiler
- C/C++とWebAssemblyを利用したライブラリ開発
- emscripten_night_7.pdf - Speaker Deck
- reg-viz/reg-cli: 📷 Visual regression test tool.
- WebAssemblyが切り拓くフロントエンドWeb開発の未来
- Updates in 2019 Q2 / WebIDL bindings - Google スライド
- WebAssembly outside of the browser - Speaker Deck
- Tiny WebAssembly Builds / WebAssembly Summit 2020 - Google スライド
- Wasmコンパイラー作りの楽しみ (1)
- Wasmリンカのつくりかた - Speaker Deck
- WebAssemblyのWeb以外のことぜんぶ話す
- Wasmで広がるEnvoyとIstioの世界 - Speaker Deck
- チェシャ猫さんはTwitterを使っています 「多分、世界初の日本語資料です。#k8sjp Policy as Code と言えば OPA が有名ですが、Rego を書くのは実際つらい。Kubewarden では、好きなプログラミング言語で書いたポリシを Wasm にコンパイルして利用できます。 Kubewarden を使って任意の言語でポリシを書こう https://t.co/zPtygOKckA」 / Twitter
- Kubewarden を使って任意の言語でポリシを書こう #k8sjp / Kubernetes Meetup Tokyo 42nd - Speaker Deck
- WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~ - Speaker Deck
- “世界最速”のペアリング暗号化技術をどう実現するか? ペアリングを使うのに固定多倍長演算が必要な理由 - ログミーTech
- WebAssembly向け多倍長演算の実装
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyを、中間表現を介さずに直接interpretする / 1件のコメント https://t.co/BlZT0Jt04Y “Interpreting WebAssembly” https://t.co/2Tnt8P3S0T」 / Twitter
- Interpreting WebAssembly - Google スライド
- WebAssembly-illustrated - WebAssembly_illustrated.pdf
- JavaScript による動的 WebAssembly 生成 - Google スライド
- CGO-less Foreign Function Interface With WebAssembly - Speaker Deck
- Ruby & WebAssembly Introduction - Speaker Deck
スタックマシン
Twitter
- chikoskiさんのツイート: "Stack machineでジャンプすると、スタックはどうなるんですかね。全部ポップしちゃっていいのかしら。"
- からふるさんのツイート: "ジャンプ先とバランスするようにポップ、もしくは必要ならプッシュしてからジャンプが基本だと思います。… "
- chikoskiさんのツイート: "バランスするがイメージつかないですが、例えば例外のようにジャンプしたまま戻ってこない場合は、必要なもの以外、全部捨ててしまって良いのかしら。… "
- からふるさんのツイート: "単に外に抜けるだけでしたら、基本的にその「外」に相当するスタックの位置まで全部ポップします。ただ、ポップする前にしないといけない操作があれば、もちろん行ってからポップする事になります。ループに飛び込むとかであれば逆に必要なものを積んでから飛びます… "
- chikoskiさんのツイート: "なるほど。積む時もあるんですねえ… "
- からふるさんのツイート: "ジャンプ先は基本的に合流ポイントなので、スタックの状態を他の実行パスと合わせる必要があるのです。なので、積むか下ろすかは状況次第です… "
- スタックマシン - Wikipedia
- www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
- プログラミング言語処理
- プログラミング言語処理
Relooper
- Alon Zakaiさんのツイート: "New C++ Relooper (blocks to JavaScript loops) now in great shape https://t.co/aLvxhFl9 , and ready for emscripten 2.0 https://t.co/v48XhKAx"
- kripken/Relooper: this repo is deprecated, see the main emscripten repo
- Zakai-Emscripten.pdf
- WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
- azakai's blog: Reloop All The Blocks
- emscripten/docs at master · emscripten-core/emscripten
- emscripten/paper.pdf at master · emscripten-core/emscripten
- emscripten/splashpres.pdf at master · emscripten-core/emscripten
色々足りてない
- κeenさんはTwitterを使っています: 「wasm、高級言語を動かすにはtail callとかfunction referenceとかexceptionとか(ランタイム軽くしたいなら)GCとか色々足りてないので気長に待ってほしいという気持」 / Twitter
- mizchiさんはTwitterを使っています: 「@blackenedgold tail call と exception は stage 3 だかまで来てる。 funcref は stage 2 だけど type sturcture と heap まで絡んでて、meeting notes みても議論が発散してる印象 https://t.co/YJZUs6vI6g」 / Twitter
- WebAssembly/proposals: Tracking WebAssembly proposals
- κeenさんはTwitterを使っています: 「@mizchi リポジトリをウォッチしてるんですが、stage 3まできたあとにstage 4にいくのも大分時間かかってるなという印象です。」 / Twitter
- mizchiさんはTwitterを使っています: 「現状のwasm吐き出し可能な言語の中で、Go が一番実用可能から遠いです。サブセットで Go channel と GC 捨てた仕様で整理できればワンチャンありますが、それは一般に Go と認められてないので (tinygo)」 / Twitter
- ドッグさんはTwitterを使っています: 「JabaScriptCore の Wasm 処理系に末尾再帰呼び出し最適化を実装した人の話 | 'Fantastic tail calls, and how to implement them.' https://t.co/gahHO5l44Y」 / Twitter
- Fantastic tail calls, and how to implement them. - Leaning Technologies
- ドッグさんはTwitterを使っています: 「s/Jaba/Java/ ジャバ…」 / Twitter
Emscripten
- Getting Started — Emscripten 1.37.3 documentation
- Introducing Emscripten — Emscripten 1.37.3 documentation
- API Reference — Emscripten 1.37.3 documentation
- Porting — Emscripten 1.37.3 documentation
- CyberDWARF Debugging — Emscripten 1.37.3 documentation
- API Limitations — Emscripten 1.37.3 documentation
- File System Overview — Emscripten 1.37.3 documentation
- File System API — Emscripten 1.37.3 documentation
- Portability Guidelines — Emscripten 1.37.3 documentation
- FAQ — Emscripten 1.37.3 documentation
- Debugging — Emscripten 1.37.3 documentation
- Emterpreter — Emscripten 1.37.3 documentation
- Interacting with code — Emscripten 1.36.11 documentation
- Emscripten and WebAssembly
- EmscriptenからSSEとかpthreadを使って爆速にする : KLabGames Tech Blog
blog
herumi
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
V8
- Up to 4GB of memory in WebAssembly · V8
- What’s in that .wasm? Introducing: wasm-decompile · V8
- WebAssembly Dynamic Tiering ready to try in Chrome 96 · V8
Publickey
- WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly JavaScript Interface 」の3つ - Publickey
- WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など - Publickey
- WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応 - Publickey
- WebAssemblyがSIMDをサポート、「WebAssemlby SIMD」がChromeやFirefoxで標準実装。画像処理や物理演算など高速実行 - Publickey
- CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応 - Publickey
- VMよりコンテナよりもさらに軽量な分離技術、V8のIsolateを用いてサーバレスコンピューティングを提供するCloudflare Workers - Publickey
- PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中 - Publickey
- Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
- Fastly、WebAssemblyランタイムのサーバレス「Compute@Edge」ベータ公開 - Publickey
- WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも - Publickey
- uint256_tさんはTwitterを使っています 「https://t.co/dyOhAhlQry 時代が追いついてきた」 / Twitter
- ブラウザがJavaScriptを直接サポートしない世界 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「参照型の説明が違う気がする。WASMの参照型は他の変数への参照ではなく、ホスト環境のオブジェクトへの参照のはず。」 / Twitter
- PublickeyさんはTwitterを使っています 「ブログ書きました: スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など https://t.co/K2Nwu5mzv1」 / Twitter
- スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など - Publickey
- WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021 - Publickey
- Fastly、JavaScriptエンジンをWebAssemblyで実装。CDNエッジのサーバレス環境「Compute@Edge」でJavaScriptサポート発表(訂正済み) - Publickey
- クラウドネイティブの注目動向、eBPFとWebAssemblyの利用が広がる、Appleが人材のブラックホールに。CNCFアンバサダー @_inductor_氏に聞いた - Publickey
- Amazon Prime Videoが動画再生にWebAssemblyを採用。再生デバイス上にWasm VMをデプロイ、高フレームレートなど実現 - Publickey
- WebAssembly製のx86仮想マシン「WebVM」が登場、Webブラウザ上でLinuxや各種コマンド、アプリがそのまま実行可能 - Publickey
- Webブラウザーで「Debian」Linuxが動く! WebAssembly製のx86仮想マシン「WebVM」 - 窓の杜
- WebAssemblyのパッケージマネジメントとレジストリ「WAPM」がリニューアルして登場 - Publickey
- WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。WebブラウザでRubyが動く世界がやってくる - Publickey
- WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly 2022 - Publickey
- WebAssembly化したPostgreSQLをWebブラウザ上で実際に動かして学ぶ「Postgres playground」をCrunchy Dataが公開 - Publickey
- PHPとSQLiteをWebAssembly化し、Webブラウザ上でWordPressを実行可能にしたデモをVMwareが公開 - Publickey
- CircleCIが「Visual Config Editor」を正式リリース、CI/CDパイプラインをビジュアルに作成しYAMLファイルを生成、編集可能 - Publickey
- WebAssemblyランタイム「Wasmtime」がバージョン1.0に到達、本番利用に対応。Bytecode Allianceによる事実上の参照実装 - Publickey
- WasmバイナリをWin/Mac/Linuxで実行可能なバイナリファイルへ変換可能に「Wasmer 3.0」正式リリース - Publickey
- 「WebAssembly 2.0」に関する最初のワーキングドラフが公開。整数における符号拡張命令、関数からの複数の戻り値などを拡張 - Publickey
借り初めのひみつきち
- Wasm on Wasm - 借り初めのひみつきち
- wasm ランタイムの高速化 - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
histric
histric-1
- WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
- WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
- WebAssembly Troubles part 3: What About Alloca?
- WebAssembly Troubles part 4: Microwasm
- 【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | ヌーラボ
- WebAssembly(wat)を手書きする | 株式会社カブク
- Writing WebAssembly By Hand
- WebAssembly を使って自作言語をブラウザで動かしてみよう - はやくプログラムになりたい
- パフォーマンス向上の次の一手はWebAssembly | フロントエンドBlog | ミツエーリンクス
- Google V8 JavaScript EngineでのWebAssemblyのi32.addの実装を見てみる - めもちょー
- Learning the Webassembly type system | Mauro Bringolf
- C. Gerard Gallant: WebAssembly – Caching to HTML5 IndexedDB
- Hijacking the control flow of a WebAssembly program
- Wasabi
- Olin – Defining a new operating primitive for event-driven services - 掃文資訊
- The future of WebAssembly - A look at upcoming features and proposals
- WebAssembly: 「なぜ」と「どうやって」 [翻訳記事] - DEV Community 👩💻👨💻
- HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
- WebAssembly版NCMBのビルドを簡単に行う方法 - ニフクラ mobile backend(mBaaS)お役立ちブログ
- WebAssemblyを使って乱数調整ツールをWebに移植した話 - mizdra's blog
- emruby: emscripten でブラウザで動く MRI - まめめも
- WebPerl | Run Perl in the browser with WebPerl!
- WebAssembly が WebGL ビルドのスタンダードに! – Unity Blog
- [続] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
- WebAssembly 開発環境構築の本 | WebAssembly 入門
- WebAssemblyを出力するMinCamlコンパイラを実装しました - a_kawashiroのブログ
- 例のアレをWebAssemblyで動かした - うひょー(ブログ)
histric-2
- [続々] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
- WebAssemblyちょっとやる - バランスを取りたい
- WebAssembly doesn’t make unsafe languages safe (yet) | Frank DENIS random thoughts.
- WebAssemblyのAOTコンパイラを作った - 飽きっぽい人のブログ
- |詳説|線形メモリとArrayBuffer |〜 wasm-bindgenではどのように文字列を扱っているのか?〜 - Mi in progress
- WebAssembly: Neither Web, Nor Assembly, but Revolutionary — JavaScript January
- Mozilla Hacks' 10 most-read posts of 2018 - Mozilla Hacks - the Web developer blog
- Chrome Dev Summitに参加しました! - from scratch
- ただの素人がフロー解析を通過した – 言語実装 Advent Calendar 2017 – kekyoの丼
- Episode 49 – Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code – Misreading Chat
- WebAssembly Troubles part 4: Microwasm
- Rust/WebAssembly でレトロシンセをエミュレートする | hiromasa.another :o)
- Lucet's performance and lifecycle
- Vim on Wasm on Web Worker on Browser with Atomics - はやくプログラムになりたい
- WASMでPCエミュレータ作った。 - 借り初めのひみつきち
- neri/vpc: A PC Emulator implemented by WebAssembly
- Virtual Playground
- 続・WASMでPCエミュレータ作った。 - 借り初めのひみつきち
- 夏休みだョ!WebAssembly Proposal全員集合!! | Kabuku Developers Blog
- Running Wasm on V8 Without JS API – kanejaku.org
- Fastly and partners form WebAssembly-based, open-source community Bytecode Alliance
- mallocを使えるようにする(libcのコンパイル) | ブログ - Sumire Articles
- ClangでWebAssemblyにコンパイル | ブログ - Sumire Articles
- What should the memory layout look like for wasm modules? · Issue #81 · rustwasm/team
- WebAssembly.Memory() - JavaScript | MDN
- 物体検出器 EfficientDet をブラウザで高速推論 - OPTiM TECH BLOG
- Web 以外でも期待される WebAssembly - Blockchain との親和性について - LINE ENGINEERING
- Using WebAssembly threads from C, C++ and Rust
- RubyとWebAssemblyの関係についてわかる範囲でまとめる | うなすけとあれこれ
- UTCTF 2020 writeup - Wasm Fans Only - こんとろーるしーこんとろーるぶい
- 出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか〜エンジニアが語る技術愛 #03〜|ミクシル
- Bytecode Alliance
- WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech
- 自作プログラミング言語と WebAssembly コンパイラ. このエントリでは、僕が趣味で作っている自作プログラミング言語の話を書こうと思う。… | by Yosuke Kurami | Dec, 2021 | Medium
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmに書き換えただけでそんなに速くなるというのもまた珍しい。随分前にMarkdownのrendererも速くできた、って例も聞いたことがあるのでまとまった文字列を組み立てるのは意外といいユースケースなのかも / “Rust+wasmでSVGを生成する” https://t.co/pV4Uu9OgMm」 / Twitter
- Rust+wasmでSVGを生成したら10倍速くなった | lacolaco/tech
- WebAssemblyランタイム「Wasmer 2.2」が公開 | OSDN Magazine
- WebAssemblyランタイム「Wasmer 2.3」が公開、スタックスイッチャを導入 | OSDN Magazine
- Cloudflare WorkersをRust(WASM)で書くと速いのか - console.lealog();
- WebAssemblyでLISPインタプリタを書いた | zick pages
- Blazor WebAssembly入門 | フューチャー技術ブログ
- WebAssembly を動的生成した場合のパフォーマンスについて
- 近況: RubyのWASM対応べんりそうなので、るりまにRUNボタンつける実装を試していた - hanachin temporary
- WebAssembly入門 ─ Webフロントエンドの現実的なユースケースを知り、Wasm製アプリケーションを体験してみよう! - エンジニアHub|Webエンジニアのキャリアを考える!
- nehan(縦書き文庫の組版エンジン)をWebAssembly化することで、約3倍の高速化を達成しました - anti scroll
- Bytecode Alliance
- Wasm Labsが「Wasm Worker Server」をオープンソースで公開。Node.jsやDenoのようにWebAssemblyのWorkerをインベントドリブンに実行 - Publickey
- WASMでできること、できそうなこと | κeenのHappy Hacκing Blog
WASI
setjmp
- Cedec 2015 : EmscriptenとC++で作るネイティブライクな商用ブラウザゲーム(Making WebApp like…
- Emscriptenチュートリアルコードの移植性と制限事項(a) - YUEDY
- How would setjmp/longjmp be implemented in WebAssembly? - Stack Overflow
- LLVM Weekly - #140, Sep 5th 2016
- A cartoon intro to WebAssembly | Hacker News
- src/setjmp/longjmp.c - external/github.com/WebAssembly/musl - Git at Google
- Drop emscripten-fastcomp in favor of WebAssembly ? - Google グループ
- ⚙ D24121 [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302)
- jfbastien/wasm-setjmp: Experimenting with setjmp / longjmp and exceptions in wasm
- Does WASM share a stack with JS? · Issue #126 · WebAssembly/design
Asyncify
- Asyncify — Emscripten 1.39.2 documentation
- GoogleChromeLabs/asyncify: Standalone Asyncify helper for Binaryen
- Pause and Resume WebAssembly with Binaryen's Asyncify
- Using asynchronous web APIs from WebAssembly
Twitter
その他
CloudABI
- Introducing CloudABI
- NuxiNL/cloudabi: Definitions for the CloudABI data types and system calls
- NuxiNL/cloudlibc: CloudABI's standard C library
histric
histric-1
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「MozillaとFastlyが推進してきたWebAssemblyのシステムプログラミング対応版WASIを更に押し進めるため昔からJS向けSIMD実装など貢献し続けてるIntelとRedHatが参加する形でBytecode Allianceを設立するとのこと。WASIのランタイムには組み込み想定のもあるし楽しみ過ぎる。 https://t.co/GHcgVVBsCb」 / Twitter
- Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly - Mozilla Hacks - the Web developer blog
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「長大だけど背景とか技術的視点で解説したHacksブログ記事もオススメ。 Nodeなどの既存エコシステムで問題になっている安全性の課題をランタイム設計から安全にすることで解消しつつハイパフォーマンスランタイムを実装していく。素敵。 https://t.co/qNwX8fm4zx」 / Twitter
- New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing - The Mozilla Blog
- WasmerさんはTwitterを使っています: 「Great presentation by @kripken showcasing Asyncify to enable async calls in #WebAssembly. ...with a demo using setjmp/longjmp with WASI and Wasmer! 😍 🎥 Talks are recorded and will be published by @wasmsf soon https://t.co/DFmf0iHVqX」 / Twitter
- chikoskiさんのツイート: ""Running WebAssembly on the Kernel" 衝撃的なタイトルですが、kernelモードでwasmを実行した話。wasmerのローダと、WASIの実装をkernel moduleとして実装するこで、ring0での実行を実現。TCPサーバーの例も付属。なおネイティブより10%程度の速度向上があった。理由は不明。 https://t.co/t1r6xSIhdh"
- Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks – the Web developer blog
- Masaki Haraさんのツイート: "https://t.co/saiSjSeTNr Rustのwasm32-unknown-wasiサポートが早速実装されてる。wasiはWebAssemblyをブラウザ以外(のサンドボックス用途)でも使うというやつらしい"
- Add intial support for wasm32-unknown-wasi by alexcrichton · Pull Request #1307 · rust-lang/libc
- chikoskiさんのツイート: "Lucet: fastly産のc / wasm32-unknown-wasiコンパイラ(Sandboxing WebAssembly コンパイラ、と彼らは呼んでいる)。バイナリの処理系もついてる。これもCraneLiftをバックエンドに使ってる。https://t.co/S0W0s9mJAn"
- chikoskiさんのツイート: "clangのターゲットにwasm32-unknown-wasiを追加するには / WASI向けにCをLLVMでコンパイルするには。LLVM8はwasm-32-unknown-unknownをサポートしているので、そこにwasi-sysrootからlibclang_rt.builtins-wasm32.aを追加することで、コンパイルできるようになるらしい:https://t.co/Tom22DOcpg… https://t.co/5L6mPOH733"
- Compiling C to WebAssembly using clang/LLVM and WASI. | Frank DENIS random thoughts.
- WebAssemblyWeeklyさんのツイート: "Compiling C to WebAssembly using clang/LLVM and WASI https://t.co/qYBrzqfUab this brief little guide shows you how to get the latest LLVM and WASI tooling working together"
- chikoskiさんのツイート: "WASIは周到に準備されてたんだなー感はあるな。もちろん様々な主体による継続的なツールに対する投資の結果ではあるのだけれど。"
- chikoskiさんのツイート: ".@wasmerio 0.3.0リリース。WASIに早速対応。すばやい。Lua, SQLite, PHPも実行可能に。デモ有り。… "
- chikoskiさんのツイート: "「既存プロジェクトをWASIに移植するには」1. clan-8を使うこと、2. setjmpやsocketをサポートしないので適切に修正すること、3. llvm-ar/llvm-ranlibなどのパスを正しく設定すること、4. configureも忘れずに修正すること、の4点がポイント、とのこと。移植の実例もあり。https://t.co/iJevDHWifX… https://t.co/dBvFUniyva"
- Porting projects to WASI: the flite program
- WebAssemblyWeeklyさんのツイート: "Porting projects to WASI: the flite program https://t.co/dwNDTilGFg flite is a tet-to-speech app - this post looks at porting it to WebAssembly using the WASI system interface"
- WASI resources.md
- chikoskiさんのツイート: "https://t.co/nMtZpZc33U あれ? --target wasm32-wasi になったの?"
- wasi-sysroot/expected/wasm32-wasi at master · CraneStation/wasi-sysroot
- Rui Ueyamaさんのツイート: "ブラウザ外でのWASMとか、それで大きなプログラムを動かすことを視野に入れて、ビルド速度のためにファイルフォーマットを多少変更してもらったことがある。 https://t.co/6hW1NkOpX4"
- Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
- chikoskiさんのツイート: "さままざまな言語の資産を使える方がネットワーク効果が高まっていいもんね。"
- Capsicum: Practical Capabilities for UNIX | USENIX
- chikoskiさんはTwitterを使っています: 「Emscriptenにstand aloneモードが追加:1) -oオプションにwasmファイルを指定するとこののモードに。2)WASIのエントリーポイントである_startを出力 3) WASIのAPIを可能な限り使う4) リロケータブルメモリのサポートが不要なのでサイドモジュールとして作ったものより軽量 https://t.co/ALCAtAmHIW」 / Twitter
- Outside the web: standalone WebAssembly binaries using Emscripten · V8
- WebAssembly Standalone · emscripten-core/emscripten Wiki
- emscripten/runtime.js at 65271b0ed8e77d07ced7f6873c3582b6b0ae2719 · emscripten-core/emscripten
- ドッグさんはTwitterを使っています 「ブラウザ外 Wasm の一番のユースケースは個人的にはプラグイン機構だと思ってるけどどうなんだろう.クロスプラットフォームで動くし,サンドボックス内で動かせるから使える API に制限かけてやれば比較的安全にサードパーティプラグインを動かせるし」 / Twitter
- ドッグさんはTwitterを使っています 「セキュリティをしっかり考えたいなら gVisor みたいな VM 使って実行環境を隔離したほうが良さそうではあるけど」 / Twitter
- chikoskiさんはTwitterを使っています 「@Linda_pp プラグインは有力なユースケースだと思います。Shopify は柔軟性とセキュリティの両方を提供するために、WASM プラグイン採用してますよね。あと Server-less での利用も同じ文脈かなと理解してます。」 / Twitter
- Yohei KusakabeさんはTwitterを使っています 「@Linda_pp EnvoyProxyのフィルターがWasmプラグインになったのはまさにそれですよね。同一プロセス上でWasmバイナリを動的にダウンロードして実行出来るしランタイムもある程度管理出来るしでかなり適したユースケースだと思います。最初に聞いたときはどゆこと?ってなりましたけどw」 / Twitter
- ドッグさんはTwitterを使っています 「@yo__ohei Envoy のフィルタが Wasm で書けるの知りませんでした.ありがとうございます.まだ試験的みたいですが,確かに用途にフィットしていて良さそうですね」 / Twitter
- FadisさんはTwitterを使っています 「wasmがどんなにサンドボックス内に隔離されていても、外とやりとりするAPIに穴が開いていたら安全ではなくなるので、WASIのようなAPIには独自にセキュリティ機構が求められる #kernelvm」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kotatsu_mi wasm-c-apiはWasmの処理系を埋め込むアプリケーションが、どうやってWasmファイルをcompileしたりinstantiateしたり実行したりするのかを規定したAPI群です。 WASIはWasmファイルがwasi-libcなどを通じておなじみprintfなどを実行するときに必要な、syscall相当のAPI群です。」 / Twitter
- Public preview: AKS support for WebAssembly System Interface (WASI) workloads | Azure の更新情報 | Microsoft Azure
- monochromeさんはTwitterを使っています 「そうか、Fiberもコンテキストスイッチする関数を差し替えて対応してるんだった(教えてもらったのに忘れていた wasmでこんな低レイヤっぽいこともできるんだなあ… https://t.co/y5V0LpcZpW」 / Twitter
- [wasm] add asyncify based setjmp, fiber, register scan emulation · ruby/ruby@65f95f2
- 市川 真一さんはTwitterを使っています 「WASI で JavaScript 実行環境が存在していることを前提にしてるコード例を見かけるけど、その際の JavaScript 実行環境はサンドボックス化されている保証はあるのだろうか。WASI は使う予定はないので、思っただけで深追いはしないけども」 / Twitter
- WASI |
- wasmtime/crates/wasi-common at main · bytecodealliance/wasmtime
- 2022年に注目したいCloudNative関連技術:新春特別企画|gihyo.jp … 技術評論社
- MozillaがWASIイニシアティブを発表、WebAssemblyをすべてのデバイス、コンピュータ、オペレーティングシステムで動作可能に
- Experiments in C# and WebAssembly Interface Types | by yowl yowlxx | Medium
- Updates in 2019Q1: specs and WASI - Google スライド
- Capability-Based Computer Systems
- Amoeba (オペレーティングシステム) - Wikipedia
- WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど - Publickey
- WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同 - Publickey
- WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
- Bytecode Alliance
- コンテナ技術を捨て、 WASIを試す. こんにちは、NTTの藤田です。 | by FUJITA Tomonori | nttlabs | Medium
- Rust で WASI 対応の WebAssembly を作成して実行 - なんとなくな Developer のメモ
- WebAssemblyランタイム「Wasmer 2.1」リリース。WASI用に仮想ファイルシステムを実装し、ブラウザでもWASIが利用可能に - Publickey
- RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように - Publickey
- RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応 - Publickey
- Rubyのコミッタになりました - kateinoigakukunのブログ
- Ruby On BrowserとRuby WASM/WASIの雑感 - ブログのおんがえし
- Ruby on Browser 1.0 リリース - ブログのおんがえし
- Webブラウザーで動作するRuby環境「Ruby on Browser」がv1.0に - 窓の杜
- 興味のおもむくままにWASM/WASIらへん
- Cloudflare WorkersがWebAssemblyでWASIをサポート。WebAssemblyはクロスプラットフォーム対応が当前の世界に - Publickey
- WebAssemblyに対してクラウドサービスを抽象化、そのままAWSでもAzureでもGoogle Cloudでも実行可能にする「SpiderLightning」、Deis Labsが公開、標準化も推進 - Publickey
- WASI の標準化: WebAssembly をウェブの外で使うためのシステムインターフェース (翻訳)
Mozilla
5x
- Rockridgeさんのツイート: "Fx52:WebAssemblyがデフォルト有効化。 / “1342060 – wasm: enable by default” https://t.co/zoPVRYdMbO"
- Rockridgeさんのツイート: "Fx57:Nightlyチャンネルに、WebAssemblyの段階的コンパイルに関する試験的実装が投入された。 / “1277562 - Wasm: tiered compiler” https://t.co/JDSGMaOgrN"
- Rockridgeさんのツイート: "Fx58:WebAssemblyでも、JavaScriptと同様にまずはBaselineがすべての関数をコンパイルし、必要に応じてIonMonkeyが最適化を行う。 / “1391196 - Enable wasm tierin…” https://t.co/sN68l2TzC7"
- Rockridgeさんのツイート: "Fx58:WebAssemblyからJITコンパイルされたJavaScriptを呼び出す処理が約50%高速化された模様。参照:https://t.co/N8YOBj3Z7u / “1360211 - Merge WasmActi…” https://t.co/eUXUP41rp8"
- Rockridgeさんのツイート: "Fx58:WebAssemblyのコンパイラが改良され、ダウンロード完了前のコンパイル開始(ストリーミング)が可能になったほか、メインスレッドで高速なコンパイルを行いつつ、別スレッドで最適化を進める仕組みも入った。 / “Mak…” https://t.co/1oBtpUzXk9"
- Rockridgeさんのツイート: "Firefox 58でWebAssemblyのコンパイラが改良された効果は大きく、コンパイルの所要時間が数分の1で済むようになっている。参照:https://t.co/Wt4o5HTRBo / “Impressive WebAs…” https://t.co/DRdvXbmp8l"
- Rockridgeさんのツイート: "Fx58:WebAssemblyのストリーミングは本バグが取り扱ったものとみられる。 / “1406421 - Baldr: actual streaming compilation of WebAssembly.compile…” https://t.co/A28nM21M6C"
6x
- Rockridgeさんのツイート: "Firefox 60では、JIT entry stubの仕組みを導入してJavaScript関数とWebAssembly関数とで呼び出しに差がないようにし、WebAssemblyの高速化を図った。また、JIT entry stub… https://t.co/xADYt0JAM3"
- Rockridgeさんのツイート: "Fx63:WebAssemblyテキストフォーマットの生成機能は、debugger.htmlに委ねて、SpiderMonkeyから削除。メンテナンスの負担が低下した。 / “1447591 - wasm:: Investigat…” https://t.co/zZjj0dXscY"
- SIMD.js(ECMAScript 7)
- SIMD型について - JS.next
- Rockridgeさんのツイート: "Fx63:SIMD.jsの実装を削除。今後はWebAssemblyにおけるSIMDのサポートに注力していくことになるようだ。参照:https://t.co/XpYmu7g1WF / “1416723 - Remove SIMD.…” https://t.co/nYli69PpbO"
- Rockridgeさんのツイート: "CraneliftはMozillaが開発中の低水準コード生成システムであり、FirefoxのWebAssemblyコンパイラとして導入され、将来的にはIonMonkeyの一部機能を置き換えてJavaScript JITコンパイラに… https://t.co/RVYYbGlWVz"
- Rockridgeさんのツイート: "Fx64:Nightlyチャンネルでは、既にCraneliftが導入済みであり、javascript.options.wasm_craneliftの設定をtrueに変更すれば有効となる。参照:… https://t.co/WjKgkWCY1L"
@rockridge07
連載
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第1弾。2008年のJITの導入以来、久々にJavaScriptのパフォーマンスが大きく向上するフェーズに入るという。 / “A cartoon intro to WebAssem…” https://t.co/TC0W4jBmPP"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第2弾。まずは前史であるJavaScriptインタープリタとJITのおさらいから。stubやbailing outの概念に加え、最適化についてもわかりやすい説明があって素晴らしい。 https://t.co/3rzNKlETYa"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第3弾。まだWebAssembly自体は出てこない。機械語とアセンブラ、さらに中間表現(IR)について、図を交えながら説明している。 / “A crash course in as…” https://t.co/t1Cpy2pWLZ"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第4弾。LLVMのIRからWebAssemblyへの変換についてや、モジュールの構造とコードの動作についてなど、一挙に核心に迫る。 / “Creating and working …” https://t.co/qXZod0OJ2F"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第5弾。WebAssemblyが通常のJavaScriptよりも高速に処理される理由を、Parsing/Compiling + optimizing/Re-optimizing/Ex… https://t.co/c9RUO6LEvm"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第6弾(最終)。2017年2月28日をもって、WebAssemblyはブラウザプレビューの段階を脱した。各社デフォルトで有効化していく。将来的にはDOMを直接操作可能にし、並列処理も… https://t.co/HdO4Hzemte"
histric-1
- Rockridgeさんのツイート: "レイトレーシングのデモによる速度比較。JavaScript版よりもWebAssembly版(Rustから変換)のほうが、およそ9倍高速になったという。 / “Ray Tracing: WebAssembly vs JavaScr…” https://t.co/R6weunJ5lE"
- RockridgeさんはTwitterを使っています: "WebAssemblyは、Mozillaが提唱するポータブルなバイナリフォーマット。LLVMなどを通じて生成される中間コードは、当初からasm.js相当の機能が確保され、動作
- Rockridgeさんのツイート: "WebAssemblyはasm.jsとの互換性を保ちつつ、実マシンのコードに近い仮想的な命令セットが定義され、メモリが連続的に確保されるなどの特徴を有する。本スライドの最後あたりに将来的な機能についても言及がある。 / “201…” https://t.co/OBNvFx6Jls"
- Rockridgeさんのツイート: "WebAssemblyは規格が候補版の段階に達し、各ブラウザでの実装も進んでいることから「ブラウザプレビュー」のフェーズに突入。MozillaはFirefox 52リリース版で有効化を目指す。既にasm.jsを超えるパフォーマンス… https://t.co/xeFEDDFrBC"
- Rockridgeさんのツイート: "WebAssemblyとWebGL 2.0を組み合わせた美麗なデモの動画。なお、デモ本体はファイルサイズが約100MBあり、動作にかなりのマシンパワーとメモリを必要とする。参照:https://t.co/z9SNQej2dc https://t.co/mwqnQ0f5jX"
- Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
- Rockridgeさんのツイート: "WebAssemblyは様々な点でasm.jsよりも高速に動作するよう設計・実装されている。コンパクトで解析の容易なバイナリフォーマットの採用、JavaScriptの制約を超えたCPU機能の活用、生成用ツールチェーンの改善など。 https://t.co/aT7e6rcQOU"
- Rockridgeさんのツイート: "FigmaはWeb上でUIデザインを共同編集するためのアプリ。asm.jsからWebAssemblyに移行したところ、Firefox上で使用した場合におけるドキュメントの読み込み時間が3分の1になったという。 / “WebAss…” https://t.co/GpjtLnctH1"
- Rockridgeさんのツイート: "「ブラウザプレビュー」フェーズ後のWebAssemblyのロードマップについて。 / “WebAssembly” https://t.co/TtgqkKKhSk"
- Rockridgeさんのツイート: "WebAssemblyのコードの構造と機能を詳細に分析した記事。WebAssemblyにおいて、プログラムとライブラリの区別はなく、すべてがモジュールとして取り扱われるという。 / “Introduction to WebAss…” https://t.co/tmzOgBstp7"
- Rockridgeさんのツイート: "HumbleNetはWebRTCとWebSocketsのラッパーとなるクロスプラットフォームなネットワークライブラリ。asm.js/WebAssemblyの形式でWebゲームに組み込むことで、対戦プレイを可能にする。 / “In…” https://t.co/joNpZrOJ9M"
- Introducing HumbleNet: a cross-platform networking library that works in the browser ★ Mozilla Hacks – the Web developer blog
histric-2
- Rockridgeさんのツイート: "コンパイル済みのWebAssemblyモジュールは今のところJavaScriptのインスタンスを生成して利用することになっている。生成時にはimportsオブジェクトという入れ物にvalues/function closures/… https://t.co/yhQjUcrfZX"
- Rockridgeさんのツイート: "WebAssemblyのメモリ管理はArrayBufferを通じて行われる。これによりメモリは他の部分から分離されて安全性が高まり、ガベージコレクションの対象にもなりつつ、JavaScriptとの値のやりとりが可能になるという。 https://t.co/cot74Cf7Wg"
- Rockridgeさんのツイート: "WebAssemblyには管理領域外のメモリに対しtableを通じて間接的にアクセスする仕組みがある。現在は利用ケースが限られているものの、将来的にDOMへのダイレクトアクセス機能を追加する際に生きてくるらしい。 / “WebA…” https://t.co/hgEqxUU6sl"
- Rockridgeさんのツイート: "WebAssemblyコミュニティグループは現在、SIMDやマルチスレッディングによる並列処理の有効化に注力しており、Firefoxでも2018年初めにはそうした機能がリリース版に実装されて、ネイティブゲームのWebへの移行を後押… https://t.co/edPq6X7wb6"
- Rockridgeさんのツイート: "OpenCVベースのリアルタイム顔検出デモを作成してWebAssemblyに変換した結果、パフォーマンスが同一アルゴリズムを用いたJavaScript版の10数倍になったとのこと。参照:https://t.co/7vfNAWG6Ph https://t.co/3wcMDiCiED"
- Rockridgeさんのツイート: "WebAssemblyの最新動向をトピックとして掲載しつつ、情報交換や議論のためのフォーラムでもあるようなWebサイト。 / “Home | WebAssembly Rocks” https://t.co/JIPIbBX81E"
- Home | WebAssembly Rocks
- Rockridgeさんのツイート: "Safari 11とEdgeHTML 16ベースのMicrosoft Edgeがリリースされたことにより、メジャーなブラウザすべてでWebAssemblyがサポートされるに至った。WebAssembly自体の用途が広がっているほか… https://t.co/nNPUSXMbAM"
- Rockridgeさんのツイート: "binaryen.jsはBinaryenのWeb移植版であり、JavaScriptからWebAssemblyのバイナリコードを生成できるという。TypeScriptもサポート。参照:https://t.co/JxXU0IIEXw https://t.co/LaybgGvW2S"
- Rockridgeさんのツイート: "「Unityなどのゲームエンジンなどで普通に出力される」数十MbのWebAssemblyファイルは、「現在のブラウザだと起動までに大変時間がかかってしまい」、「『タップしてすぐに起動』という世界には遠いのが現状です」。 / “巨…” https://t.co/GL3iRTCjVe"
- Rockridgeさんのツイート: "サムスンの調査によれば、配列のサイズが小さい場合、JavaScriptはWebAssemblyを上回るパフォーマンスとなる。大半のWebアプリはJavaScriptで十分であり、WebAssemblyはゲームのような計算量の多いW… https://t.co/k5XKvZwssk"
- Rockridgeさんのツイート: "Rust言語をWebAssemblyに変換するモジュールは、JavaScriptとWebAssemblyを協調して動作させる仕組みを学ぶのに適しているという。 / “Baby’s First Rust+WebAssembly m…” https://t.co/GySOyIkzcr"
- Rockridgeさんのツイート: "2018年7月にリリースされたUnity 2018.2では、WebGL出力の際にデフォルトでWebAssemblyが用いられるようになった。asm.jsが用いられていた従来に比べてコードサイズが10数%減ったという。 / “We…” https://t.co/irEQxQAGZL"
- Rockridgeさんのツイート: "Large-Allocationヘッダは、目標よりも少し遅れてFirefox 53で有効化されるようだ。ただし、32bit版限定。 / “Web Games Platform: Newest Developments ★ Moz…” https://t.co/LwWYzkkIYR"
- Rockridgeさんのツイート: "MozillaがWebAssembly Explorerと呼ばれるツールを開発中。ブラウザ内でC/C++のコードをコンパイルしてWebAssemblyに変換するとともにその過程を可視化する。生成されたWebAssemblyもテキス… https://t.co/RdcS92vr4Q"
- Previewing the WebAssembly Explorer ★ Mozilla Hacks – the Web developer blog
- Rockridgeさんのツイート: "Mozillaの構想では、将来的にWebAssemblyはメール、SNS、ワードプロセッサなどのアプリやJavaScriptフレームワークにも採用されていく。文字どおりWebを変えていく力を持つので、MozillaはWebAsse… https://t.co/sZyjNr10ZP"
- Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
- Rockridgeさんのツイート: "WebAssemblyベースのゲームなどが大量の連続的なメモリを確保できるように、Fx52でLarge-Allocationヘッダという仕組みを導入予定。e10s有効化を前提に独立のプロセスを割り当てる。32bit版Firefox… https://t.co/hGIg3w4sZx"
- Rockridgeさんのツイート: "MozillaはWebassemblyのコードをまずBaselineがコンパイルし、その後バックグラウンドにおいてIonMonkeyがコンパイルしたものに順次置き換えていくという段階的コンパイルの仕組みを開発中だ。 / “Was…” https://t.co/SFYzOVC0Gp"
- Rockridgeさんのツイート: "Emscriptenの開発スタート、asm.jsの導入、WebAssemblyへの発展という一連の流れを、Mozillaの開発者が語る。ゲームはユースケースであると同時にショーケースでもあり、他の分野にもWebAssemblyが広… https://t.co/GIsTGyx51x"
- Rockridgeさんのツイート: "ソースマップ・パーサの一部をWebAssemblyで置き換えた(従前はJavaScript)ところ、最大5.89倍の高速化を達成し、パフォーマンスのバラツキも抑えられた。RustからWebAssemblyにコンパイルしている点もポ… https://t.co/HgW3lAeEnH"
- Rockridgeさんのツイート: "最新のEmscriptenでは、生成するWebAssembly/JavaScriptについて不要なコードを含めず、無駄なコードを削除することで、サイズを従来の数分の1に減らすことに成功した。 / “Shrinking WebAs…” https://t.co/8UVetvYKj0"
- Rockridgeさんのツイート: "2018年3月に発表された構想を実現させるべく、wasm-packの開発がアナウンスされた。Rust言語のクレートをWebAssemblyに変換してnpmパッケージ化する。 / “Hello wasm-pack! – Mozil…” https://t.co/bGIOywM1c8"
- Rockridgeさんのツイート: "Binaryenコンパイラの最適化処理に新しくレベル4が加わった。レベル3と比較すると、生成されるWebAssemblyのサイズを20%削減できる一方、コンパイル時間は3倍かかるという。 / “Binaryen goes up …” https://t.co/9ntwdmcOxE"
- Firefoxバージョン58でWebAssemblyが10倍高速化
- Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え - Publickey
- Firefox 58でWebAssemblyの起動を大幅に高速化 - Mozilla Flux
- Mozilla HacksのWebAssembly連載記事の和訳が開始 続編に期待(追記あり) - Mozilla Flux
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは? | HTML5Experts.jp
- WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! | HTML5Experts.jp
- 清水智公@chikoski氏が語る「WebAssemblyで何ができるのか?」#html5jplat|CodeIQ MAGAZINE
- WebAssembly を速くするには? | Mozilla Developer Street (modest)
- MozillaがWebAssemblyに向けたツールチェインの取り組み「Binaryen」を明らかに | OSDN Magazine
- WebAssembly's post-MVP future: A cartoon skill tree - Mozilla Hacks - the Web developer blog
- MozillaはWebAssemblyのパフォーマンスと機能に焦点を当てている
- ドッグさんはTwitterを使っています 「Mozilla はブラウザの Wasm 実装に注力することになって,ブラウザ外の Wasm 処理系 Wasmtime のチームは Fastly が引き取ることになったのか.Fastly の Wasm 処理系 Lucet に Wasmtime が吸収されるのかな? | 'Bytecode Alliance: One year update' https://t.co/8to9T0g03Y」 / Twitter
- Bytecode Alliance
- ドッグさんはTwitterを使っています 「ちなみに Firefox では Wasm の JIT コンパイラ実装に Cranelift を使ってるので,Cranelift の開発は Mozilla も引き続き参加する」 / Twitter
- κeenさんはTwitterを使っています 「WebAssemblyのエコシステムを牽引するBytecodeAllianceにはWebAssemblyのランタイムが2つあった。Mozilla製のWasmtimeとFastly製のLucet。今回の移籍で元々計画されていた2つのマージが進展する見込。」 / Twitter
- Calls between JavaScript and WebAssembly are finally fast 🎉 - Mozilla Hacks - the Web developer blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「#WebAssembly でJSのAPIをたくさん呼んでDOMの操作をするのは効率が良くないだろうと思っているんですが、世の中のWebAssemblyの事例を見ると、WebGLのAPIをたくさん呼んで複雑なグラフィックを描画する例が多くあるようです。これらは実はJSから直接呼んだ方が効率が良かったりしないのでしょうか?」 / Twitter
- WebAssemblyを利用したFirefox 95の新しいサンドボックス技術「RLBox」 | TECH+
- 新サンドボックス技術を導入した「Firefox 95」が公開 | OSDN Magazine
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Firefoxの新しい権限分離 (sandbox)方式 RLBoxの説明。従来、ブラウザの権限分離はプロセスを分けることによって達成されていたが、これは効率に問題があった。RLBoxではコードを一度wasmに変換後、ネイティブに再コンパイルする。これによりアドレスの安全性が保障される。 https://t.co/v0ILe2qj9P」 / Twitter
- WebAssembly and Back Again: Fine-Grained Sandboxing in Firefox 95 - Mozilla Hacks - the Web developer blog
- ドッグさんはTwitterを使っています 「信頼されてないコードを実行する目的で Wasm の sandboxed なコードにコンパイルして実行したいけど,それだと遅いので,(ポータビリティと引き換えに)そこからさらに AOT コンパイルして最適化したいという話っぽい」 / Twitter
- ドッグさんはTwitterを使っています 「まあでも straightforward に Wasm の命令を C に落とし込めば,そんなにポータビリティ悪いコードにもならなさそう(コンパイラは要るけど)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「WASM → ネイティブコード、抽象解釈によるプログラム解析がすごく有効な気がするけど、あまりやる気が起きないな。明らかにうまく行く話はときめかないのかもしれない。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「凄く勝率が高そうなので誰かやればいいのに。もっとカオスなRubyからの変換にときめいちゃうのなんでだろうね。もっと現実的になればいろいろ幸せだろうに」 / Twitter
Google
Twitter
- chikoskiさんのツイート: "V8に入ったWASMのコンパイルを速くするLiftoffの紹介。 Streaming APIとの組み合わせでコード出力がTurbofanと比べて10倍高速に。(最適化という意味での)品質は二の次で、スピードを重視。WASMを使ったアプリの起動がグッと速くなる https://t.co/3S9vvtb4pc"
- V8 JavaScript Engine: Liftoff: a new baseline compiler for WebAssembly in V8
- Rockridgeさんのツイート: "LiftoffはChrome 69でデフォルト有効化されるV8搭載のWebAssembly向けベースラインコンパイラ。既存のTurboFanで最適化する場合と比べ、コードのパフォーマンスは半分程度に落ちるが、生成は10倍近く高速に… https://t.co/UlBWojjT4S"
- Rockridgeさんのツイート: "GoogleがPNaClを捨てて全面的にWebAssemblyにコミットする。2018年第1四半期にはChromeアプリと拡張機能以外ではPNaClはサポートされなくなるという。独自仕様による囲い込みの危険がなくなったのは素晴らし… https://t.co/NmM7lT9A6k"
- Rockridgeさんのツイート: "Chrome 57(V8 5.7搭載)では、WebAssemblyがデフォルト有効化されている。 / “V8 JavaScript Engine: V8 Release 5.7” https://t.co/to7mwgq5Wl"
- Rockridgeさんのツイート: "ChromeでWebAssemblyがデフォルト有効化へ。 / “Intent to Ship: WebAssembly” https://t.co/rRC6nqJGnt"
- Rockridgeさんのツイート: "Firefoxと並んでWebAssemblyの実装が進んでいるChromeだが、現在もフラグを有効化しないと試すことができない。もっとも、規格が完成する2017年第1四半期にはデフォルト有効化の見込み。 / “V8 JavaSc…” https://t.co/t0u6WAE6mj"
- Rockridgeさんのツイート: "GoogleはこれまでWebAssemblyのコードをasm.jsに変換してV8のTurboFanに処理させていたが、2016年12月にWebAssemblyをネイティブサポートした模様(デフォルト無効)。既にMassiveなどの… https://t.co/JM9sqkFaJZ"
- dynamis (でゅなみす@もじら)さんのツイート: "V8はそもそもFullcodegenとかCrankshaftとかが残ってるのを今年捨ててBaseline JITのIngitionとOptimizeのTurboFanのセットに切り替えることもあって、TurboFanにJS由来のバイトコードも.wasmも突っ込むシンプル設計になる"
- ドッグさんのツイート: "Google Earth で Wasm のマルチスレッド対応してるのか(あまり内部実装の話は無かったけど).sourcemap サポートは Chrome 71 から | 'Using WebAssembly and Threads (Chrome Dev Summit 2018)' https://t.co/BvT9X4i2j6"
- Surmaさんのツイート: "If you start Canary with the `--js-flags="--experimental-wasm-simd"` CLI flag, you can play with SIMD in WebAssembly 🎉… https://t.co/uILOfpYdBb"
- chikoskiさんはTwitterを使っています 「Chrome95 から Wasm module (WebAssembly.Module) を origin を超えて共有できなくなる、というアナウンス。 https://t.co/kVDpuB3i9O」 / Twitter
- Restricting Wasm module sharing to same-origin - Chrome Developers
- Google Developers Japan: V8 で WebAssembly を試験運用開始
- Chromium Blog: Goodbye PNaCl, Hello WebAssembly!
- Google Developers Japan: さよなら PNaCl、こんにちは WebAssembly
- bitWalk's: WebAssembly と Google Chrome 51
- Google Online Security Blog: Android Security Ecosystem Investments Pay Dividends for Pixel
- rL318539
- JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了 - Publickey
- external/github.com/WebAssembly/v8-native-prototype - Git at Google
- external/github.com/WebAssembly/musl - Git at Google
- Project Zero: The Problems and Promise of WebAssembly
- V8 release v7.0 · V8
- WebAssembly Threads ready to try in Chrome 70 | Web | Google Developers
- Google、画像圧縮WEBアプリ「Squoosh」公開。ブラウザだけで圧縮やフォーマット変換が可能 - Engadget 日本版
- Intent to ship: WebAssembly Threads - Google グループ
MS
- EdgeでWebAssemblyを動かしてみる - ぷろじぇくと、みすじら。 - Misuzilla.org
- Get started building .NET web apps that run in the browser with Blazor | ASP.NET Blog
- aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly
- Rockridgeさんのツイート: "MicrosoftもChakraCoreにWebAssemblyを実装中。数か月以内にMicrosoft Edgeの開発版で使えるようにするという。うまくいけばWindows 10 Creators Updateに間に合うだろう。 https://t.co/Tl13XoFqqO"
Apple
- Rockridgeさんのツイート: "次期Safari 11ではWebAssemblyをフルサポートする。B3 JITコンパイラをベースに、Build Bytecode Quickly(BBQ)とOptimized Machine-code Generator(OMG… https://t.co/iZ7DskdRPb"
- Assembling WebAssembly | WebKit
Swift
- kateinoigakukunさんはTwitterを使っています 「嬉しいお知らせです。WebAssemblyに提案していた相対アドレッシング向けの再配置タイプ実装がマージされました。がんばった。 [WebAssembly] Add new relocation for location relative data https://t.co/QYMGPzYvqH」 / Twitter
- ⚙ D96659 [WebAssembly] Add new relocation for location relative data
- kateinoigakukunさんはTwitterを使っています 「コレが入ることで何が嬉しいかというと、Swiftのメタデータが使っている相対ポインタというテクニックがWasm上でそのまま使えるようになって、プラットフォーム間でデータ構造の差異がなくなります。とくに64bit対応を考えると絶対ポインタだとアドレスサイズが変わって全部壊れます。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「詳しくは https://t.co/etuOYSMnqy」 / Twitter
- SwiftのWebAssembly対応の進捗 | メルカリエンジニアリング
- Swiftの関数型の実行時表現 - Speaker Deck
GitHub
- rhmoller/wasm-by-hand: Small cookbook examples of writing WebAssembly by hand in .wast format
- GoogleChromeLabs/wasm-feature-detect: A small library to detect which features of WebAssembly are supported.
- WebAssembly/wabt: The WebAssembly Binary Toolkit
- WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly, in C++
- WebAssembly/design: WebAssembly Design Documents
- design/Rationale.md at master · WebAssembly/design
- design/Semantics.md at master · WebAssembly/design
- design/Portability.md at master · WebAssembly/design
- WebAssembly/spec: WebAssembly draft specification, reference interpreter, and testsuite.
- WebAssembly/meetings: Information on in-person WebAssembly meetings
- webassemblyjs · webassemblyjs
- jfbastien/musl: musl libc experiment
- Standalone WebAssembly Example
- maierfelix/glmw: WebAssembly powered Matrix and Vector library
- mbasso/gccx: Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
- chikoskiさんのツイート: "JavaScript のようなWASMのテキスト表現。全ての式に型アノテーションが付いてないところが、asm.jsより素晴らしい(それだけで十分)。https://t.co/JwIuBytJZb… "
- Lord Of The Boardsさんのツイート: "I'm loving walt #javascript #WebAssembly https://t.co/0gGMPYh90z… "
- ballercat/walt: Walt is a JavaScript-like syntax for WebAssembly text format
- stevespringett/disable-webassembly: Browser hacks to disable WebAssembly (WASM)
- hajimehoshi/wasm-bench: Wasm Benchmark Experiment
- Kimundi/greenwasm: An implementation of the Webassembly spec in Rust
- Toru KomatsuさんはTwitterを使っています 「Container Security 🤝 WASM (@wasmerio) youki has succeeded in executing WASM files directly in a container instead of commands. This makes it easy for WASM to benefit from container security and resource control. Repo 👉 https://t.co/dMTFxshU97 Details 👉 https://t.co/qWsAFNQeFE https://t.co/MNBOFr6ed6」 / Twitter
- containers/youki: A container runtime written in Rust
- Webassembly - Youki User and Developer Documentation
- オレオレ言語を作る - Togetter
- オレオレ言語を作る
- sfpgmr/sgl2: TDOPパーサをベースとした言語を作っていく
- rianhunter/wasmjit: Kernel Mode WebAssembly Runtime for Linux
- https://wwwg.github.io/web-wasmdec/
- wwwg/wasmdec: WebAssembly to C decompiler
- WebAssembly
- kgtkr/cl8w
- WasmVM
- WasmVM/WasmVM: An unofficial standalone WebAssembly process virtual machine
- Wasmer
- wasmerio/wasmer: High-Performance WebAssembly JIT interpreter
- WebAssembly/threads: Threads and Atomics in WebAssembly
- design/FutureFeatures.md at master · WebAssembly/design
- WebAssembly逆アセンブルして調べるテスト
- wasm-usui-book/get-started-webassembly.re at master · ukyo/wasm-usui-book
- dcodeIO/webassembly: A minimal toolkit and runtime to produce and run WebAssembly modules.
- Putting in All the Stops: Execution Control for JavaScript
- cloudflare/worker-emscripten-template
- retrageさんはTwitterを使っています 「今回のKernel/VMでWebAssemblyの話が出てくるらしいので,唾つけときます.WIPですがNetBSD RumprunをWebAssemblyにコンパイルしてリンクまで出来たのソースコードが以下にあります.https://t.co/P1ZEkAA8Cw」 / Twitter
- retrage/frankenlibc at rump-wasm
- retrageさんはTwitterを使っています 「rumpkernel+libcを合わせたもので136.5 MBのwasmバイナリができます.(なお,動くとはいっていない) https://t.co/xj7XoKJq2Q」 / Twitter
- FadisさんはTwitterを使っています 「Proxy-wasm: wasmの実行環境に双方向の任意の言語で書かれた物に対するAPIハヤース https://t.co/IBJQezEH1n #kernelvm」 / Twitter
- Proxy-Wasm
- ドッグさんはTwitterを使っています 「Wasm module を事前に初期化してモジュールを初期化した状態に書き換えることで,Wasm のロードを速くするツールか.その分バイナリサイズは増えそうだけど | 'bytecodealliance/wizer' https://t.co/Xu1ArN7zIQ」 / Twitter
- ドッグさんはTwitterを使っています 「結果として初期化以外で使わなかったコードとかは wasm-opt で消えるのか.なるほど」 / Twitter
- bytecodealliance/wizer: The WebAssembly Pre-Initializer
- Virtual x86
- vshymanskyy/wasm2native: Turn WASI apps into native executables
- Zaplib/zaplib: ⚡ Zaplib is an open-source library for speeding up web applications using Rust and WebAssembly.
- fiberplane/fp-bindgen: Bindings generator for full-stack WASM plugins
- wasm-reference-manual/WebAssembly.md at master · sunfishcode/wasm-reference-manual
- deislabs/spiderlightning: A set of WIT definitions and associated implementations to enable app developers to work at a faster pace and require less knowledge of the environment in which they are executing.
infoQ
- WebでZoom: WebAssembly SIMD、WebTransport、およびWebCodecs
- WebAssemblyランタイムのwastimeがReference Typeを実装、Wasmで複合型の処理が可能に
- Ashley Williams氏がWebAssembly SummitでWebAssemblyの未来を語る
- WebAssemblyでコンテナレスの未来を築く - WebAssemblyサミットでのKevin Hoffman氏の講演
- Bytecode Allianceは、サーバサイドでのWebAssemblyの計画を示す
- markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー
- WebAssembly: デフォルトで安全なエコシステムの構築 - WebAssembly SummitでのLin Clark氏の講演
- "Wasmer" WebAssemblyランタイムを一般提供
- V8 JavaScript Engine 9.0で、JavaScript to WebAssemblyのパフォーマンスを向上
- ブラウザ内でNode.JSを実行するWebContainers
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「概ね全部読めたはず。WebAssembly Component Model結局はっきりとは分からなかったな。Interface TypesとModule LinkingとWASIを総合した何か、くらいか。 / 1件のコメント https://t.co/svht41FQv3 “Lin Clark on the WebAssembly Component Model” https://t.co/3QaOPYp4qi」 / Twitter
- Lin Clark on the WebAssembly Component Model
- コマンドラインJSONプロセッサJQをWebAssemblyでブラウザに移植する - Robert Aboukhali氏とのQ&A
- V8がWebAssembly SIMDをサポート
- WebAssembly 1.0がW3C推奨としてブラウザ上でネイティブ動作する第4の言語に
- 新たに創設されたBytecode Alliance、モジュールの安全使用のためにWebAssemblyナノプロセスを提案
- WebAssemblyでホットリローディング、リモートデバッグ、統一的なハードウェアアクセスを実現する
- WebAssemblyをブラウザの外で動かすWasmerを触ってみた
- Istio 1.5: Lin Sun氏とNeeraj Poddar氏がistiod、Wasm、およびマルチクラスタサポートについて議論
- Rustから生成されたWASMをCloudfareサーバレスワーカにデプロイする
- WebAssemblyとBlazor: 何十年の問題を解決する
- Grain: WebAssemblyファーストプログラミング言語 - WebAssembly Summit 2021
- PyodideがWebAssemblyを使ってPythonとその科学スタックをブラウザに提供
Zenn
- Webassemblyコンパイラを自作しよう
- WebAssemblyで利用する|実践:形態素解析 kagome v2
- 何も考えずにWASMインスタンスを混ぜると危ないかも
- WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
- WebAssemblyのメモリ領域をスナップショット取ってレストアする実験
- Webassemblyマルチスレッドクレート:wasm-mtを試す
- WebAssembly の GC Proposal とは何か / どこに向かおうとしてるのか
- webcontainer とは
- stackblitz/webcontainer-core
- 100日後にRustをちょっと知ってる人になる: [Day 51]Wasm Workers Server の動作
- WebAssembly 入門してみた
- Docker+Wasm Technical PreviewからWASMに入門する
- WebAssemblyの歴史について
Qiita
Rust
- Rustで書いたWebAssemblyに文字列を渡すときにUTF16, UTF8, StringBuilderのどれが速いか計測してみた(ついでにNative RustとWebAssemblyの速度差も調べた) - Qiita
- RustでWebAssemblyのライブラリを作るときは配列を引数にとらないように気をつけよう - Qiita
- 初めてRustでWebAssemblyするときに紹介したいチュートリアル (入門) - Qiita
- RustからWebAssemblyを出力するまで(2019年3月現在) - Qiita
- RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
- WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
- WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
- (Learn the Hard Way)nodejs-8でのWebAssembly自体を調べてみた - Qiita
- lldでwasmをリンクするまで - Qiita
- WindowsでWebAssemblyの環境を整える - Qiita
- WebAssemblyのloopはまりどころ - Qiita
- WebAssemblyのテストプログラム - Qiita
- なぜWebAssemblyはasm.jsより速いのか - Qiita
- WebAssembly のベンチマークとバイトコードと Lisp - Qiita
- NuxtでWebAssemblyが使えるようになったみたいなので動かしてみた - Qiita
- オールRubyでフロントエンド開発を夢見て <デモあり> - Qiita
- WebAssembly のベンチマークとバイトコードと Lisp - Qiita
- WebAssemblyにコンパイルする言語を実装する - Qiita
- WebAssembly / Rust / AudioWorklet でシンセ作ってみる - Qiita
- WebAssemblyでカメラをリアルタイムにWebM動画に変換する - Qiita
- 2019年のWebAssembly事情 - Qiita
- WebAssemblyのbr命令について - Qiita
- tkrさんはTwitterを使っています: 「あ、そっかwasmのlabelって完全にスタックスコープ離隔されてるのか」 / Twitter
- tkrさんはTwitterを使っています: 「ブロック外のスタックにはアクセス出来ない(スタックを受け取らずに0 or 1の結果を返す事しかできない) i32.const 1 i32.const 2 block (result i32) i32.add end」 / Twitter
- tkrさんはTwitterを使っています: 「(このwasmコードは無効)」 / Twitter
- tkrさんはTwitterを使っています: 「つまりスタック的には frame→label→codeの完全な階層構造と考えて良さそう」 / Twitter
- Node.jsでつくるNode.js-WASMコンパイラ - もくじ - Qiita
- 標準ライブラリ無しのWebAssemblyでDOOMを動かす実験 - Qiita
- Envoy での WebAssembly サポートと WebAssembly Hub, WASM OCI Image Specification について - Qiita
- WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita
- WebAssembly: data セクションの最適化 - Qiita
- FUJI GoroさんはTwitterを使っています: 「JavaScriptをベンチマークするときは入力が固定だと最適化エンジンが「効きすぎる」という問題があるので、入力をランダム化したり最適化オプションを無効化(nodejsだと--no-opt)して測定するとまた別の側面が見えるよ。 / “WASMのパフォーマンス最適化の勘所と使い所考…” https://t.co/mGxGGXDR9o」 / Twitter
- WASMのパフォーマンス最適化の勘所と使い所考察 - Qiita
Wikipedia
- WebAssembly - Wikipedia
- WebAssembly - Wikipedia
Twitter
その他
GC
- mizchiさんはTwitterを使っています 「最近 wasm の gc proposal ちゃんと読んでるんだけど、「wasm 内のセマンティクスとして gc 導入したい」という大目標に対して、いくつもの仕様に分割して個別にMVPしつつ統合していく流れがとても綺麗で、VM実装の進め方としてとても参考になる」 / Twitter
- mizchiさんはTwitterを使っています 「こんな感じに分割されてる - 参照型を定義する reference types - 外部から import した関数への inteface-types と type system - wasm 同士で動的リンクするための module link 仕様 - JS API で型 struct を定義 tc39 proposal structs との協調 - 新しく追加する heap のセマンティクス」 / Twitter
- mizchiさんはTwitterを使っています 「とにかく野心的なので最終的に GC が乗るかは五分五分だしかなり遠そうなんだけど、その過程で生まれたものは無駄にならないようになってる」 / Twitter
- mizchiさんはTwitterを使っています 「GC 追加されるにしても新しく作ったメモリ空間でやるので、既存のものがすべて gc 対応する必要はないようになってる」 / Twitter
- mizchiさんはTwitterを使っています 「実際に自分で仕様策定の流れを追うには overview を読みつつ、meeting log で何考えたり考慮してるか、みたいなのを読むのがいいです https://t.co/DIkWqcgbVJ https://t.co/48sQ3nSj8c」 / Twitter
- gc/Overview.md at master · WebAssembly/gc
- mizchiさんはTwitterを使っています 「gc proposal の中でも参照型の externref と anyref は正式に仕様になって、wasmtime とか各ブラウザでフラグつけると動くようになってますね」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GC proposal, GC typesとしてWasm自身ではなくホストが管理できる高レベルな型を導入しましょう、くらいの認識だったけどそこまで大きなものなのか。やはり自分十分に追えてないねぇ >RT」 / Twitter
- chikoskiさんはTwitterを使っています 「最後のセッション。スピーカーはW3C WASM CGのチェア。歴史の振り返りから。やると決めてから2週間でプロトタイプ作った。」 / Twitter
- chikoskiさんはTwitterを使っています 「工程。パーザーはやっぱり時間がかかる https://t.co/st1UTJ7yoU」 / Twitter
- chikoskiさんはTwitterを使っています 「2017年時点での仕様の分類 https://t.co/iqJLnzGfQV」 / Twitter
- chikoskiさんはTwitterを使っています 「2017年の時点で、GCは作ろうと思ったら作れた。全ての変数が線形メモリ上にあるなら。実際は、仕様上ローカル変数はスタックの上にあることが大切だったし、embedder側からの参照の解決も決まってなかった。」 / Twitter
- chikoskiさんはTwitterを使っています 「2018年の時点でのGC。参照や構造体を表す型が導入された。参照は、Embedder側の物も指せるのでなかなか大変。 https://t.co/IgQWboL5d7」 / Twitter
- chikoskiさんはTwitterを使っています 「C APIも2018年に定義された。これはプログラムからWASMランタイムをコントロールするためのAPI。」 / Twitter
- chikoskiさんはTwitterを使っています 「2019年の仕様。Host bindingsがInterface Typeに名前を替え、WASIが登場。 https://t.co/mHrwQb0qr6」 / Twitter
- chikoskiさんはTwitterを使っています 「2020年。参照型はPhase4になりそう。 どんどんパイが拡大していった様子を見ていった、という話でした。 終わり」 / Twitter
シフト
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「C言語とかでunsigned intな値を32bit以上シフトするのって未定義動作なんですかね。 https://t.co/BpKdcBSxpp が手元と結果が違うな。」 / Twitter
- 6Rr5UX - Online C Compiler & Debugging Tool - Ideone.com
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/sV2MCUIQpe いわくそうらしいな。」 / Twitter
- c - What's bad about shifting a 32-bit variable 32 bits? - Stack Overflow
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「未定義動作がないように作っているからWasmのi32.shlはmod 32した上でシフトするのか。なるほどなー。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうの漫然と仕様書読んでたときは全然気づかなかったなあ。やっぱ手動かしてこそやね」 / Twitter
Table
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのTableってどういうユースケースを想定してるんじゃろうか。大抵のホストの関数をimportすれば賄えるようにも見えるような...?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/TyUbPpRfF7 に詳しく書いてあるっぽいな。」 / Twitter
- WebAssembly table imports… what are they? - Mozilla Hacks - the Web developer blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、そうか。ホストの関数をWebAssemblyで書かれたコールバックを受け取る関数に渡したいときか。」 / Twitter
- S.F.さんはTwitterを使っています 「あとはtableだなあ。。これいわゆる関数ポインタを収めるテーブルなんだよね。関数の間接コールを実現するための仕組み。むかしむかしだとジャンプ・テーブルですな。」 / Twitter
- S.F.さんはTwitterを使っています 「線形メモリ上に関数のアドレスを置くというのはセキュリティ上の考慮からNGとなっていて、関数への参照をこのテーブルにセットするんだよね。そしてこのテーブルへのインデックスと関数の型(type)を指定して間接コールを実現する。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あれ、どういう場合に破壊的な書き換えが発生するのかわからなくなってきた... https://t.co/gtwIE299XX で紹介されているサンプルでは明らかに破壊的に変更してるのに、私が作ったサンプルでは書き換えられない...」 / Twitter
- WebAssembly.Table() - JavaScript | MDN
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「どうもコンパイルするwasmの内容に依存しているようなので、何か書き間違えてるんだろうけど...」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「(elem $tableName ...) ではダメで、 (elem (i32.const 0) ...) じゃないといけないのか。前者の方法ではtableの初期化が無視されている?」 / Twitter
wasm-decompile
- chikoskiさんはTwitterを使っています 「WebAssembly Binary Toolkit (wabt) に wasm-decompiler が追加されたよ、という記事。wasm を与えると、人間が読めるコードを出力するツール。同種のツールである wasm2wat よりも可読性は高い模様。メモリのインデックス操作やコントロールフローの解析は頑張ってる様子: https://t.co/tOYL9MMC5d」 / Twitter
- What’s in that .wasm? Introducing: wasm-decompile · V8
- chikoskiさんはTwitterを使っています 「wasm-decompiler の README: https://t.co/d3MEH5mcNK」 / Twitter
- wabt/decompiler.md at master · WebAssembly/wabt
Fiber
- monochromeさんはTwitterを使っています 「wasmにFiber移植できるの?? それはすごい」 / Twitter
- monochromeさんはTwitterを使っています 「これか https://t.co/nsmitzzdmB」 / Twitter
- rb-wasm-support/fiber.c at main · kateinoigakukun/rb-wasm-support
- monochromeさんはTwitterを使っています 「うーん、これでなぜwasmで動くのかわからん」 / Twitter
- ドッグさんはTwitterを使っています 「@s_isshiki1969 emscripten の asyncify 使ってるからですね.コンパイル時に LLVM の Pass 使って bitcode を書き換える実装になってます https://t.co/CULTe0Ptwt」 / Twitter
- Asyncify — Emscripten 2.0.33-git (dev) documentation
- monochromeさんはTwitterを使っています 「@Linda_pp なるほど、同期的な C/C++ 関数を非同期にしてJSから呼び出せるようにする…」 / Twitter
バイトコード
- Miura HidekiさんはTwitterを使っています 「P-System, Mesa, JVMと歴史を見ると共通のバイトコードを普及させる試みは大体失敗しているので、WebAssemblyも失敗すると思っている。JVMは失敗したかどうかは議論が分かれるけど、個人的には失敗したと思っている」 / Twitter
- Miura HidekiさんはTwitterを使っています 「llvmは成功したな。そういえば」 / Twitter
- Miura HidekiさんはTwitterを使っています 「llvmのbitcodeを共通バイナリにする話があまりないのは不思議」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 LLVM だと JIT 向きじゃないとかの理由で WebAssembly が出来たとかいう話が真なら、LLVM も失敗していることになりますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、確かに。そうすると、インタプリタ(JITを含む)を前提としたバイトコードは失敗しがち、ってことになりますね。この方がしっくりきます。」 / Twitter
インタプリタ
- chikoskiさんはTwitterを使っています 「次。JSC の WASM インタプリタについて。JSCはWebkitに載ってるランタイム。」 / Twitter
- chikoskiさんはTwitterを使っています 「JSCは2段階の最適化をする。BBQとOMG。どちらも同じ最適化エンジンを使うけど、最適化オプションが異なる。」 / Twitter
- chikoskiさんはTwitterを使っています 「コンパイルと実行前処理が時間がかかるので、インタプリタを導入した。offlineasmやbytecodeなどJSのインフラを再利用した。」 / Twitter
- chikoskiさんはTwitterを使っています 「苦労点その1。関数の呼び方。JSと同じやり方では、実行コードを切り替えられなかったので、インタプリタ用に中間層を入れた。」 / Twitter
- chikoskiさんはTwitterを使っています 「苦労点その2。コールスタックの扱いについて。レジスタの退避と書き戻しをすることとなった。 これらの苦労点は、ある関数はコンパイルされ、別の関数はインタプリタで動く、といったことが起こるから発生してる。」 / Twitter
サンドボックスで処理速度低下
- ドッグさんのツイート: "Wasm をサンドボックスの外で走らせると,マイクロベンチマークで C++ の95%の速さで実行できるらしい | 'Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed' https://t.co/G1ZABHv2rH"
- Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed
- ドッグさんのツイート: "ちなみに Wasm には LLVM のベクタライゼーション最適化を阻害する問題があって,それが直ればさらにこの差は小さくなるらしい"
- ドッグさんのツイート: "メモ: サンドボックスを有効にすると C++ の 75% の速さまで落ちる"
- イスラエルエリカちゃんさんのツイート: "サンドボックスやっぱそれなりにオーバヘッドでかいんやな"
memory_immediate
- tkrさんのツイート: "memory_immediate is 何"
- tkrさんのツイート: "オフセットとか指定出来るっぽい"
- tkrさんのツイート: "flagは意味分からん"
- tkrさんのツイート: "バイナリ読んだ感じデフォルト2っぽい?"
- クワーティさんのツイート: "デフォルト2?そんなはずは・・・"
- クワーティさんのツイート: "spec見落としあったっぽいな"
- クワーティさんのツイート: "規格は隅々まで読まないと駄目"
- tkrさんのツイート: "データ構造アライメント - Wikipedia https://t.co/D868WNYNFy"
- データ構造アライメント - Wikipedia
- クワーティさんのツイート: "wasm(バイナリの方)のmemoryのalignって実はalignそのものではないよね"
Security Model
- Kazuho Okuさんのツイート: "WebAssembly VMのセキュリティモデルざっと理解したけど、とても美しいな。NaClで問題だった点が全て解消されていて、かつ簡潔になっていて、これマジ速いわーという感じ。これ見てるとJava VMは完全に過去の遺物だと思う"
- Kazuho Okuさんのツイート: "x86-64で動かす場合、ユーザ空間は32bit。ベースポインタ加算して実際のアドレスにマップ。6GBのガードページを置いてゼロコストでメモリ保護。リテラルとスタックはユーザ空間(実行不可)にアプリが自由に設定。コードとリターンアドレススタックはユーザ空間外 https://t.co/SawKNZeSpj"
- Kazuho Okuさんのツイート: "64bitレジスタで32bitのポインタ演算すると上位32ビットはゼロ拡張されるからdisp(basereg,ptr)的なコードでアドレッシング可能。LLVM IR等でその最適化も期待できる。スタックもユーザ空間のグローバル変数にしちゃって、コンパイラに最適化させる感じ https://t.co/0SE20w6APX"
- Kazuho Okuさんのツイート: "x86-64のネイティブコードに対するオーバーヘッドは、indirect call、アドレッシングモードが少ない、使えるレジスタが実質2つすくない、くらいなんじゃないかな。indirect callの最適化はJITの得意領域だし、あとの2つはあまり問題にならなさそう https://t.co/G3pvKctc01"
- Kazuho Okuさんのツイート: "RISC(32bit,64bit問わず)の場合はx86-64と違って自動的なゼロ拡張使えないけど、それでもネイティブコードのオーバーヘッドはNaCl on ARMの5%を超えることはないんじゃないかな https://t.co/ksvZ1qEugL"
- Kazuho Okuさんのツイート: "i386の場合はセグメントレジスタ使えばゼロオーバーヘッドに。他のアーキについては https://t.co/sq50adLOkQ https://t.co/GP1zYhC5DG"
- Kazuho Okuさんのツイート: "ちなみになぜガードページが6Gかと言うと、出力されるx86-64のアドレッシングモードoff32(basereg,ptr)のoff32が0からINT32_MAXの間まで最適化する前提だからですね。ptr書いたとおりゼロ拡張されるuint32なのでこれでおk https://t.co/0SE20w6APX"
- Kazuho Okuさんのツイート: "んなとこです。主な参考資料: https://t.co/crxSDWBdMP https://t.co/LGyQwknaOY https://t.co/h0NYNGklDz"
- 七誌さんのツイート: "WebAssemblyのスタンドアロンVM。ブラウザと関係なく、独立したバイナリをmainから始まるプロセスとして実行。やっぱりこういうのを作っている人がいるんだ。 https://t.co/ddKeoHQEWV"
- Non-Web Embeddings - WebAssembly
- WebAssembly/wasm-jit-prototype: Standalone VM using LLVM JIT
- 35649.pdf
- Yuki Yugui Sonodaさんのツイート: "実行コードeipをメモリ空間の凄く離れた場所に置いて、且つ危険な領域に戻れるほど長いjmpがないことを確認すれば安全だよねとか、なかなか攻めていて良い"
- 小倉唯さんのツイート: "wasm の memory bound check は論文にある. JSC は signal か, pinned reg からの範囲チェック"
- 小倉唯さんのツイート: "segv 取ってなんなら CONTEXT 書き換えられるのか. Wasm signaling memory なんとかなるっぽいな https://t.co/ALaC1x5sLN"
- Cleanly recovering from Segfaults under Windows and Linux (32-bit, x86)
SIMD
- S.F.さんのツイート: "SIMD Extensionをちょこっと読んでる。 https://t.co/UHnG03JRSX"
- simd/SIMD.md at master · WebAssembly/simd
- S.F.さんのツイート: "仕様見てるとやっぱりモバイル・ターゲットなんだなぁと思う。これも時代の流れか。。"
- S.F.さんのツイート: "128bit長だとインテルCPUだとSSEレベル。 今どきのデスクトップCPUは512bitとかだからね。並列度が半端ない。。"
- S.F.さんのツイート: "違うか。。AVX-512はハイエンド仕様か。。デスクトップだと256bitか。。"
- S.F.さんのツイート: "しかし512bitだと32bit floatであれば16個パック可能となって、レジスタ1個で4×4の行列がパックできるんですな。恐ろしい時代ですわ。。"
- S.F.さんのツイート: "私のCPUだとAVX-2どまり。YMMレジスタ(256bit長)が16本か。それでもすごいな。。"
- S.F.さんのツイート: "行列の乗算が一発でできる命令とかはないから、コーディングには工夫は必要だろうな。。"
- S.F.さんのツイート: "ここにAVXを使った行列の乗算コードが載っている。8x8行列だが。。うーむ。。 https://t.co/ETZlMQEaHi"
- 小行列演算におけるインテル® AVX の利点 | iSUS
- S.F.さんのツイート: "Long SIMDというProposalもあるのか。。 https://t.co/QPz3FJpB3z #webassembly"
- design/FutureFeatures.md at master · WebAssembly/design
- S.F.さんのツイート: "Intelだと、4x4行列の乗算はSSE(128bit)とAVX(256bit)では1.8倍ほどAVXのほうが速いと書いてあるな。。"
- chikoskiさんはTwitterを使っています 「SIMDを有効にしたWASMでdot積を計算したら、JSより500倍早かった、というRedditへの投稿。デモサイトへのリンクあり。デモサイトはWASM SIMDを有効にしたChromeでしか動かないので注意(有効にする方法は記事の先頭に記載がある)。https://t.co/xQBu2KeYB2」 / Twitter
- Wasm SIMD is almost 500x as fast as JS at calculating dot product : WebAssembly
Go
- chikoskiさんのツイート: "GoのWASM出力、LLVMじゃなくて自前で書いてるみたい。https://t.co/u2OsYM5oHd https://t.co/ZQhvxNpNle 作るにあたって考えたことまとめ:https://t.co/mrOIy8pgDE GC, long jump, メモリの予約、スレッドなどが考慮されているみたい"
- chikoskiさんのツイート: "https://t.co/mrOIy8pgDE にはスタックマシンのWASMで、レジスタマシンのGoのセマンティクスを再現するために必要なことも載ってる。WASMのスタックを使わずメモリ上にGoのコールスタックを作る、レジスタを参照する演算を「WASMのスタックへの操作+演算」に書き換えるといったことをしてるh"
- chikoskiさんのツイート: "腑に落ちないのは"Note that the two SSA instructions can not be generated sequentially anymore, because their WebAssembly instructions are interleaved." WASMの命令って不連続なの?むしろ連続的だと思うんだけど。あれかなー、ロングジャンプを無理くり対応したからかな。"
- WebAssembly architecture for Go - Google ドキュメント
- Google、「Go 1.11」を公開。WebAssemblyを実験的にサポート | OSDN Magazine
reference types
- ドッグさんはTwitterを使っています 「Wasm の reference types 実装のために LLVM に複数アドレス空間対応を Igaria が提案.今はプログラムとデータは同じアドレス空間に置かれる前提になってる.別アドレス空間にある funcref と externref にコード側から触りたい | 'RFC: Multiple program address spaces' https://t.co/tuHL4ozmTz」 / Twitter
- [llvm-dev] RFC: Multiple program address spaces
- ドッグさんはTwitterを使っています 「もともとアドレス空間を指定する仕組み自体はある(例えばポインタ型はどのアドレス空間に属するかを持ってる)ので変更自体は小さいな https://t.co/t7BFrRQVVH」 / Twitter
- ⚙ D91428 Add support for multiple program address spaces
WebAssembly for Proxies (ABI specification)
- bells17 / べるさんはTwitterを使っています 「specはこれかな? https://t.co/uIjJ1y381a #wasmnight」 / Twitter
- proxy-wasm/spec: WebAssembly for Proxies (ABI specification)
- bells17 / べるさんはTwitterを使っています 「こっちはあくまでproxy-wasmにおいてのABIという感じの理解で良いのかな?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「proxy-wasmの難しいところ: - 任意のプログラムをproxyに挟んじゃって大丈夫? - 変なwasmを読んで変なところでクラッシュしない? #wasmnight」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラッシュについてはwasm-smithがいいテスト方法になるはず https://t.co/Bzbi3FRl7U 有効なWasmを生成するfuzz tester #wasmnight」 / Twitter
- wasm-tools/crates/wasm-smith at main · bytecodealliance/wasm-tools
- Proxy-Wasm: Wasmを利用したPlugin機構の開発 - Speaker Deck
Rust
- ドッグさんはTwitterを使っています 「rustc に WebAssembly 専用の "wasm" ABI が入った.Wasm の関数シグネチャに直接マップされる extern "wasm" fn 関数が定義できるようになる | 'rustc: Add a new wasm ABI #83763 - rust-lang/rust' https://t.co/yLKEOUVTjY」 / Twitter
- rustc: Add a new `wasm` ABI by alexcrichton · Pull Request #83763 · rust-lang/rust
- ドッグさんはTwitterを使っています 「今の Rust の Wasm 対応では,関数は C ABI で定義し,wasm-bindgen がグルーコードを吐くことで間をつないでる.でも実は C ABI は Wasm と互換なわけではなく,コンパイラ側に wasm-bindgen 互換な C ABI を設けるなどのハックが必要になっていた.新しい "wasm" ABI ではそれが不要」 / Twitter
- ドッグさんはTwitterを使っています 「この問題は Wasm の多値対応で決定的になったっぽい.Wasm は関数から多値を返せるようになったけど,C にはその仕組は無いので,C ABI では対応できない.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@Linda_pp 一応、構造体は返せるんだけど、ABIで複数レジスタで返すのはないんですよね。」 / Twitter
- ドッグさんはTwitterを使っています 「@shinji_kono はい,構造体に詰めて返すのとはまた話が変わりますね」 / Twitter
多倍長演算
- WebAssembly向け多倍長演算の実装
- FadisさんはTwitterを使っています 「ペアリングには楕円曲線暗号を使う→長い整数の演算が必要→多倍長演算ライブラリが欲しい→多倍長演算のアイデアは手で乗算をするときの筆算と同じで64bit同士のキャリーつきの乗算を行う事が筆算の1回の計算に対応する #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「多倍長乗算をする過程でmul命令がキャリーフラグを破壊するのが割と邪魔になるのでIntel CPUにはキャリーフラグを破壊しない乗算命令mulxが用意されている、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「wasmで多倍長演算を実装する場合キャリー付きの64bit演算がない→加算の場合は加算後の値と加算前の値を比較する事でキャリーフラグを取り戻せる #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「32bit単位で計算する方式と比較した結果、64bitで計算+carryを復元の方が若干早かった→32bit単位だと複数の加算のキャリーをまとめて扱える→これを活用して最適化した結果32bit単位で計算した方が速くなった、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「_ExtInt: clangの拡張で任意の長さのint型を作れる。多倍長演算はclangが勝手にやってくれる。C++に入れようという話もある #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「uint1024_t、パワみがある #kernelvm」 / Twitter
- herumiさんはTwitterを使っています 「[z] += [y] * xの形([]は多倍長, xは64bit)の形を中間レジスタ少なくして計算するのに2個のCF, OFがあれば十分なので、長いビット長でもそれ以上フラグを増やす必要はありません。 https://t.co/8XtC1GB6is」 / Twitter
- hotpepsiさんはTwitterを使っています 「512bitの乗算だとさらにもう一段のcarry flagが必要になるんですか? #kernelvm」 / Twitter
- herumiさんはTwitterを使っています 「typedef unsigned _ExtInt(13) T;でand 8191(=0x1fff)するコードが生成されました。#kernelvm https://t.co/VBtv01UA9O https://t.co/Km3oxAoFEE」 / Twitter
- Compiler Explorer
- Takahiro YamashitaさんはTwitterを使っています 「_ExtInt 、発表では1024bitのインパクト凄かったけど、例えば13bit変数なんかも定義できちゃう? https://t.co/nQnZrwhnIy #kernelvm」 / Twitter
- The LLVM Project Blog
- mod_poppoさんはTwitterを使っています 「Knuthの本読んで多倍長整数の除算の勉強してるけど、ここに載ってるアルゴリズムは2桁を1桁で割る割り算が使えると仮定してるのな。64ビット環境な場合基数は2^64じゃなくて2^32とかにしておくのが無難か」 / Twitter
- mod_poppoさんはTwitterを使っています 「GCCとかのint128みたいなやつはどうやって実装してるんだろう」 / Twitter
- mod_poppoさんはTwitterを使っています 「IntInfのquotRemのバグを取って十進文字列化ができるようになったけど、効率化されてないせいでフィボナッチ数の表示が桁が大きくなるにつれて遅くなっていくの、笑える」 / Twitter
- mod_poppoさんはTwitterを使っています 「Wordが64ビットな環境下ではWord32を要素にする方が良さそうなのと、乗算を高速化した方が良いのと、多倍長×単精度の特殊化された演算を用意した方が良い」 / Twitter
- mod_poppoさんはTwitterを使っています 「IntInf.toString(十進表記)が遅い件は10で割る代わりに10^9とかで割るようにすれば定数倍の高速化にはなるかな。本当はもっと抜本的な高速化をしたいところだけど」 / Twitter
制御フロー・例外
- Solving the structured control flow problem once and for all
- Eliminating go to's while preserving program structure | Journal of the ACM
- Bytecoder/SRC-RR-4.pdf at master · mirkosertic/Bytecoder
- WebAssemblyでgotoをつくる | zick pages
- Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
- monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
- κeenさんはTwitterを使っています 「@s_isshiki1969 もう少し詳しくいうと普通のジャンプくらいならloopや(名前つき)breakでどうにかできます。直接表現できないのはループの中に飛び込むgotoですね(双頭ループといわれるらしい) goto label; while(1) { label: } もちろん、チューリング完全な言語同士なので何かしらの翻訳は可能です。」 / Twitter
- monochromeさんはTwitterを使っています 「@blackenedgold なるほど、それを許すと静的な解析が色々と辛くなりそうですね。 まあ機械語に落とせるものならRustでエミュレータ書けば翻訳可能ですね(こういう話ではない」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「へぇ、もうLLVMやV8はWasmのexceptionを一応サポートしてるのか。 https://t.co/dgBIuIqDh4」 / Twitter
- Plan for Phase 4 · Issue #179 · WebAssembly/exception-handling
- Miura HidekiさんはTwitterを使っています 「ステートマシン記述用のswitch・caseはどうでしょうか?ステートのレジスタの設定をトレースして到達しないステートにワーニングを出したり効率的なステートのエンコードを生成するとか」 / Twitter
- Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています 「switch~case文の構文木を作るコードを書いてるところです。 HLSならではのswitch~case文って何をやったら面白いのかは依然として検討中です。 caseを排他的じゃなくして、マッチした物を全部並列ってのはどうやろか?スケジューリング側がメンドクサイですが……」 / Twitter
- WebAssemblyのgotoを妥協する | zick pages
256KB単位のチャンクに分割
- FadisさんはTwitterを使っています: 「Webブラウザ上で動くm68k MacのエミュレータInfinite Macを作った人の話。OSSなm68k MacのエミュレータBasilisk IIをEmscriptenでwasmにコンパイルしたものがベースになっていて、System 7とMacOS 8を起動するデモが公開されている https://t.co/7zV6GxDJJ3」 / Twitter
- persistent.info: Infinite Mac: An Instant-Booting Quadra in Your Browser
- Kazuho OkuさんはTwitterを使っています: 「当時のHDDより速いインターネットw」 / Twitter
- FadisさんはTwitterを使っています: 「同種のWebブラウザ上で動くm68k Macエミュレータは以前から存在したが、Infinite Macが新しいのはディスクイメージを最初に丸ごとダウンロードしない点。ディスクイメージは事前に256KB単位のチャンクに分割されていて、読もうとした部分が手元に無かった場合にJavaScript側でダウンロードが行われる」 / Twitter
- FadisさんはTwitterを使っています: 「この仕組みによって大きなディスクイメージを使っていても高速に起動できるようになり、当時のMacのアプリケーションを大量に突っ込んだデモをブラウザ上で動かせるようになったらしい。」 / Twitter
users
@chikoski
- chikoskiさんのツイート: "各ブラウザベンダ連名で出ているWASMの論文。簡約と検証のルールが明示されているのが良い。他のところにちゃんと明記されてないもんね。特にどのような簡約を行うとTrapが発生するのかがわかるところが重要:https://t.co/q0EeWovUsa"
- Bringing the Web up to Speed with WebAssembly - PLDI 2017
- chikoskiさんのツイート: "WebAssembly.compileStreamingが追加された意味。ファイルを全部ダウンロードしなくても、データが来たそばからコンパイルできる。… "
- chikoskiさんのツイート: "WASMからCのソースコードとヘッダファイルを作るコンバーター。https://t.co/DrGr0V9jDf これは結構強力な気がする。うまくするとTypeScript(AssemblyScript)で書いたプログラムをCに変換できるのではないかしら。"
- wabt/wasm2c at master · WebAssembly/wabt
- chikoskiさんのツイート: "JS vs AssemblyScript vs Rustから出力されたWASMの速度比較がメインのWASM紹介記事。配列と文字列操作については、JSが圧倒的に速い。ブラウザに任せられるものは任せよう、というゴールデンルールはここでも健在かな… https://t.co/6HjJMy9D6z"
- chikoskiさんのツイート: "Unityプロジェクトを使ったWASMの起動およびパフォーマンステストの結果。Firefoxがとても早く、Edgeも健闘。ストリームコンパイルを有効にしたChromeはロードがとても早くなっているのを見ると、ストリームコンパイル有無が大きいのだろうな https://t.co/UDU2h8zaP2"
- chikoskiさんのツイート: "WASMからbuiltin関数を呼ぶより速いのウケるけど、当然といえば当然か。… "
- Yosuke FURUKAWAさんのツイート: "まじか、JSからJSの関数呼び出すよりもJSからwasmの関数呼び出すほうが早くなるケースが大部分になりつつあると。JITとwasmのコンパイル後の距離が近くなったんだな。 / “Calls between JavaScript…” https://t.co/Y6Xbvs8VoG"
- toVersusさんのツイート: "JIT/wasm で Activation Record を統一して JS => wasm が JS => JS 並に速くなった。JIT-ed JS も WebAssembly も機械語に翻訳されるのに、以前は別々の Activation Record を C++ でセットアップしており、コストが高かった。"
- toVersusさんのツイート: "JS 側のパラメータを WebAssembly 側の関数に渡す前の unboxing 処理を C++ から JIT 直呼びに変更して、JS => wasm を高速にした。C++ のオーバーヘッドが無くなった。"
- toVersusさんのツイート: "JS がインライン関数を持っている場合、JS => JS の速度に勝てないが、将来的に JS の中に WebAssembly をインライン化できるようにする予定。"
- Wasabi - WebAssemblyにインジェクションしてデバッグを促進 MOONGIFT
- toVersusさんのツイート: "JS のビルトイン関数の中で C++ で実装されている関数の呼び出しにファストパスを設け、wasm => JS built-ins を高速化した。現状、WebAssembly の値型の制約で、math 関数のみ有効。近々、WebAssembly に参照型が追加されるので、wasm-bindgen のように JS を経由する必要がなくなる。"
- chikoskiさんのツイート: "Chrome CanaryでWASMのスレッド機能がプレビューできます。chrome://flags/#enable-webassembly-threads のフラグをenableすると使えます。スレッドについてはこちらにスペックがあります。https://t.co/lXH3TwY4xe… https://t.co/cEyD7AvlfI"
- threads/Overview.md at master · WebAssembly/threads
- bokuwebさんのツイート: "https://t.co/katFUFyNL8 のshared: trueでworker間で共有してるやつですよね?いまいちわかってないんですけど内部的にはsharedArrayBufferなんすか?… "
- chikoskiさんのツイート: "サーバレスWASM…… "
- chikoskiさんのツイート: "「WASMを君の洗濯機にも!」って書いてあって意味不明(褒め言葉)。FPGAに実装されたWASMのスタックマシン。https://t.co/AKt15VHcnf… "
- piranna/wasmachine: Put WebAssembly in your washing machine
- chikoskiさんのツイート: "「コンパイルはダウンロードよりも50M bit/s 速い」忘れがちだけど、ネットワークって随分と遠いところにあるのよね。https://t.co/h6WcuiVLog… "
- chikoskiさんのツイート: "「低水準APIを提供するWebRTC NVと、WASMとの組み合わせでできることは広がる。カスタマイズされたWebRTC実装の持つ機能を、実装をWASMに出力してWebRTC NVと組み合わせて実現するといったこともできる」… "
- chikoskiさんのツイート: "システムコールの呼び方を整理して、WASMの相互運用性をあげようという活動(かな)。今はRustで作ったWASMとEmscriptenで作ったものは、システムコールの呼び方が違うので、そこを統一したい、ということかな。面白いなー。 @wasmerio らしい要求だと思う。https://t.co/gn34VBSEkx"
- WebAssembly & CloudABI – Wasmer – Medium
- chikoskiさんのツイート: "https://t.co/XM7i4Bia1M によると、 命令セット、エンディアン、データ型、配置、呼出規約 システムコール、ファイルフォーマットを定めたものがABI。WASMの仕様で決まっていないのは、システムコールの部分だけ(こうなってるのは理由がある)。"
- chikoskiさんのツイート: "面白い試み。評価のところが面白い。"Speed comparison per browser"のbrowser 3, 4が大勢なら効果大って言えるけど、1,2だけならどうなんだろう?ってところが特に面白い。JS/WASMの呼び出しコストと、JSに対する最適化の結果がブラウザによってバラバラなのが、この差を生んでるのかしらー。… https://t.co/yRGUJ74rZ9"
- Yosuke FURUKAWAさんのツイート: "くぁーJSのホットスポットのところだけ最初からwasmにするっていうかっこいいアプローチ / “Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers” https://t.co/EZcSLKoIxN"
- Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers
- chikoskiさんのツイート: "twiggy is a code size profiler. https://t.co/2rMvCfcanE"
- Introduction - Twiggy🌱
- chikoskiさんのツイート: "WebAssemblyアプリの起動時間のほとんどはコンパイルに使われている。コンパイル結果をキャッシュして1000倍起動が早くなったよ、という記事。例に使ってるNginxはパーズとインスタンス化がそれぞれ10ms,20msなのに対し、コンパイルは1000msかかってる。これをキャッシュでほぼ0にするのでそりゃ速い。… https://t.co/2GUE83DHCS"
- chikoskiさんのツイート: "ついでにハッシュアルゴリズムをSHA256からmeowashに変えて、1MBのバイナリのハッシュ値生成にかかってた時間が5msから4μsへと125倍も速くなった。meowashはこれかなhttps://t.co/3gG4xlwZnc"
- chikoskiさんのツイート: "meowashはセキュティ目的に開発されていないが、https://t.co/e5cQzZBJTK のテストは全てパスしているし、開発陣が持っている大きなデータセットでも今のところハッシュ値の衝突は起きてないとのこと。キャッシュ用途には使えるってことかしら。"
- chikoskiさんのツイート: "インストールという形を取れないから、インストールの最後に「最適化の作業中です」と言いつつコンパイルして、その結果をキャッシュするといったことは取れない(?)。モジュールに分解した上で、小さいプログラムを動かしつつ、裏でコンパイルしていくというアプローチになるのかな。"
- chikoskiさんのツイート: "そういう賢いやつより、とりあえずバーストで転送してしまってガンガンコンパイルする方がいいのかもしれない。"
- chikoskiさんのツイート: "C/C++からのWebAssembly作成解説本。導入から既存プロジェクトの移植まで幅広く対応してる感じ。ファイルの扱いに関する記述があることと、Web workersとの連携について述べられていることが、他にはない特徴だと思う。https://t.co/0FBeCHYr6M #webassembly… https://t.co/Ey0VmZyUFE"
- Level Up with WebAssembly
- chikoskiさんのツイート: "インラインWASM …… "
- chikoskiさんのツイート: "WASMコンパイルされたwat2wasm (from https://t.co/ToKxthdHxQ)を使えば、watで書かれたWASMを、ダイナミックに評価することもできるよね。理論的には #webassembly"
- chikoskiさんのツイート: "SIMD in wasm: Chrome Canaryでフラグつきで使えるようになったWASMのSIMDですが、Emscriptenでの試し方をざっくり解説した記事 https://t.co/vdxPv3T5re"
- SIMD in WebAssembly – tales from the bleeding edge – brionv
- chikoskiさんのツイート: "旧聞ですが、WebAssembly.compileとWebAssembly.compileStreamingの比較: https://t.co/xqj5YE6EYK"
- Loading WebAssembly modules efficiently | Web | Google Developers
- chikoskiさんのツイート: "Twiggy: https://t.co/aFJNd9dRGT #webassembly の関数呼び出しを解析するツール。使われていないコードや、逆によく使われているコードを探すのに使える。バイナリサイズを大きくしているコードも探せる。"
- rustwasm/twiggy: Twiggy🌱 is a code size profiler
- chikoskiさんのツイート: "WASMになったエンコーダを使って、音声をブラウザ上でmp3にしているみたい。おもしろー… "
- Shunya Shishidoさんのツイート: "こえのブログ、すごいとは思っていたけど解説読んで震えている。FastlyとGCPのフル活用、PWA、Web Components、a11y、WASM、Perf Budgetsと、現代の技術全て注ぎ込んであそこまでの完成度に持って行けるのか〜悔しい!という気持ち。 https://t.co/ATSUQqggfD"
- アメブロ2019: こえのブログでのPWA
- chikoskiさんのツイート: "WASM向けJITコンパイラ/コードジェネレータのCrainlift。すでにFirefox Nightlyで使えるのか。フラグをつければ有効になる、とのことらしい。https://t.co/FfyO0Z409s"
- In Firefox Nightly, an option has arrived to use cranelift for wasm compilation : rust
- chikoskiさんのツイート: "その環境でサポートされているWASMの機能を調査するJSライブラリ。いまはミュータブルなグローバル変数、多値関数、多倍長整数のJSとの統合について調査できる。それぞれの機能を使った小さいWASMをインスタンス化して、その成否で調査をするという戦略。単純だけど、効果的だと思う。… https://t.co/q0SRRxZ7vV"
- chikoskiさんのツイート: "ソースコードはこちら https://t.co/MHIEHZ3R9j。デモへのリンクもある。"
- xtuc/webassembly-feature: Test if a WebAssembly feature is supported
- chikoskiさんのツイート: "autoconfという向きもあるでしょうが、polifillが実装済みの不要な機能を落とすといった使い方もあるかと思います。どっちにしてもWebAssemblyはバージョンレスであることを歌っているので、プログラムがランタイムの能力に合わせることが必要だと思います。… https://t.co/n2MKQ9W9XZ"
- Takashi Kawasakiさんのツイート: "autoconfの再来か。いろいろ先が心配にはなる。… "
- chikoskiさんのツイート: ".@wasmerio による、各WASMバックエンドの性能比較。ベンチマークによる性能比較と、ビルド時間を比較している。時間をかけて最適化をすると計算は速くなるという結果。Craneliftがコンパイル時間が短い割には性能が出ている点が面白い。https://t.co/bo3vBhvk8D"
- Benchmarking WebAssembly Runtimes – Wasmer – Medium
- Intent To Shipさんのツイート: "Blink: Intent to Ship: WebAssembly Bulk Memory operations https://t.co/0lZNT6uZ6d"
- Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
- chikoskiさんのツイート: ""Bulk Memory Operations and Conditional Segment Initialization": https://t.co/wFM4BD9lw5 memset / memcpy相当の命令を #webassembly に追加するプロポーザル。パフォーマンス向上が主なモチベーション。Blinkへのship approval request: https://t.co/rOAcpyWKch"
- bulk-memory-operations/Overview.md at master · WebAssembly/bulk-memory-operations
- chikoskiさんのツイート: "命令はまあ足せば足せるんだろうけど、どう足していくつもりなんだろう。CISC / RISCどっちのアプローチを取るんだろう?それとも、最近はそれ以外にもアプローチがあるのかしら?"
- chikoskiさんのツイート: "WASMバイナリを呼ぶためのPythonライブラリ。"🐍+🦀+🕸 Python extension to run WebAssembly binaries."というリード文が可愛い。内部は@wasmerio とうまくPythonを繋げてる模様。… https://t.co/MModWL9nam"
- chikoskiさんのツイート: "仕事を引き寄せる 愛され言語2019春(仮)の第6位がWebAssemblyの模様(StackOverflow調べ)。あれは言語、そう言語だけれども。… "
- WebAssemblyWeeklyさんのツイート: "WebAssembly - one of the most ‘loved’ languages in the StackOverflow developer survey 2019 https://t.co/kAqWTgLmca… "
- Stack Overflow Developer Survey 2019
- chikoskiさんのツイート: "用途にあわせて @wasmerio がバックエンド(wasm-nativie codeコンパイラ)を切り替えられるようにした話。とにかく起動を早くしたい、もしくはハードウェアが重たいコンパイル処理に耐えられない→シングルパス。性能が欲しい→LLVM。その中間→CraneLift https://t.co/LE6Szk31T4"
- A WebAssembly Compiler tale – Wasmer – Medium
- chikoskiさんのツイート: "WebAssembly Package Manager(WAPM). npmライクなWebAssembly向けパッケージマネージャ。今のところはパッケージ数も少ないし、パッケージの粒度もまちまちなので、よくわからないけれど、依存グラフの解決をやってくれると楽しくなる、かもしれない https://t.co/rEDWrABK4Q"
- Announcing WAPM: The WebAssembly Package Manager – Wasmer – Medium
- chikoskiさんのツイート: "公開されているパッケージの一覧はこちら:https://t.co/znQZHYUFjH ."
- wapm | WebAssembly Package Manager
- chikoskiさんのツイート: "wapmの利用ガイド:https://t.co/C8DrMCuTaf npm同様に install でパッケージを取得する。公開はpublicコマンド。package.jsonの代わりにwapt.tomlにパッケージのメタ情報を記述する。tomlを使うところはRust由来な感じ。"
- wapm | WebAssembly Package Manager
- chikoskiさんのツイート: "publicではなく、publishコマンドでした。タイプミス"
- chikoskiさんのツイート: "しゅーまい @__syumai さんにlikeされて思い出したけど、denolandと組み合わせると、結構面白くなるのでは。"
- 🦀 Ivan 🐘🐍💎 Enderlin 🕸さんのツイート: "JavaScriptCore as a WebAssembly binary, https://t.co/aQA2qyJObr. $ wapm install -g jsc $ jsc >>> function multiply(a, b) { return a * b } undefined >>> multiply(10, 20) 200 >>> Date() Mon Apr 15 2019, … Crazy :-). #webassembly #javascript #javascriptcore"
- jsc - wapm
- chikoskiさんのツイート: "Zephyr project(組み込み向けリアルタイムOS)の上で動くWASMランタイム。libcのサブセット(ほんとに小さい)付き。ワクワクするな!… "
- Anas Nashifさんのツイート: "Nice to see a WebAssembly Micro Runtime project from @IntelOpenSource running on @ZephyrIoT. https://t.co/djBVKTv5bO"
- intel/wasm-micro-runtime
- chikoskiさんのツイート: "ざっとREADME読んだ限りでは、割り込み周りはOSが面倒みてくれて、WASM的にはイベントとして抽象化される感じ。より細かいアクセスはネイティブコードをインポートとして与える感じになるのかな… "
- bokuwebさんのツイート: "うお、intelなのか。割り込みとのつなぎとかどうなるんだろうか。。。"
- chikoskiさんのツイート: "WASM Unikernel…パワーワードすぎる。@wasmerio をOPS unikernel上で走らせてみた話… "
- WebAssemblyWeeklyさんのツイート: "Running WASM Unikernels https://t.co/JJMoBksOoX - taking a simple Hello World app, compiling to wasm, running it on @wasmerio within an OPS unikernel"
- Running WASM Unikernels
- chikoskiさんのツイート: "WASM向けのtracing allocator。デバッグ向け。Rust製。Rustから作られたWASMのメモリ使用状況を調査できる。ブラウザでもNodeでも動作。 https://t.co/N54smbHKnz"
- rustwasm/wasm-tracing-allocator: A global allocator for Wasm that traces allocations and deallocations for debugging purposes.
- chikoskiさんのツイート: "1Passwoed、WebAssemblyを利用することで、Chromeでは最大13倍、 Firefoxでは同じく最大39倍の高速化に成功。… "
- 1Password X: May 2019 update | 1Password
- chikoskiさんのツイート: "味わい深い結果。v8の型推論は強力なのだなとも思えるし、生存期間が長く計算能力が必要な処理にはWASMを使った高速化は有効なのだろうとも思える。さて実行回数に対する損益分岐点はどこらへんになるのだろうか、などなど。"
- hiroppy🇮🇪さんのツイート: "Node.jsのECMAScript ModulesでWebAssemblyが使えるようになる🎉🎉🎉 https://t.co/LNPiT4UKvq… "
- esm: --experimental-wasm-modules integration support by guybedford · Pull Request #27659 · nodejs/node
- chikoskiさんのツイート: "WASMとES modulesとの相互運用性に関するプロポーザル(の説明スライド)なんだけれど、インポート、エクスポート、instantiationで、それぞれ何をやっているかを説明しているので、面白いかもしれない。文字がないのでわかる人はわかる、てきな感じかも、しれない。https://t.co/lFsG9XIoVc"
- WASM ES module proposal
- Running WebAssembly on the Kernel – Wasmer – Medium
- chikoskiさんのツイート: "この速度向上は、kernelモードとuserモードの切り替えがないことに由来する模様。なお今回の結果は、起動は早いが最適化は不十分なシングルパスバックエンドを利用したもの(@wasmerio はバックエンドを切り替えられる)。最適化をより行うCrainliftやLLVMのバックエンドを使えばより早くなる見込み。"
- chikoskiさんのツイート: "Bllockly (https://t.co/lwNdsDJCBO)向けのAssemblyScriptコードジェネレーターが作成された模様。つまり、ブラウザ上で動作しWebAssemblyにコンパイルできるビジュアルプログラミング言語がある、ということ。… https://t.co/VwZL2wQlv9"
- Blockly | Google Developers
- Robert Longさんのツイート: "Working on an @AssemblyScript code generator for Blockly and compiling it to WebAssembly in browser. Still a long way to go, but it looks doable. I'll open source it after I get a little further.… https://t.co/AuMqKuE4CS"
- chikoskiさんのツイート: ".NetのアプリをWebAssembly化するまでの話。Blazorを使って.Netで書かれたHello Worldアプリを、WASM化するまでの流れが説明されている。https://t.co/uTjWM1ln8a"
- WebAssembly-ifying .NET with Blazor
- chikoskiさんのツイート: "Compiling C to WebAssembly without Emscripten: https://t.co/zoV5YJSoYP Clangを使ったCからWASMへのコンパイルを、step by stepで解説している。前提知識があまりなくても読めます。一般のCコンパイラ話として読んでも楽しい。"
- Compiling C to WebAssembly without Emscripten — DasSur.ma
- chikoskiさんのツイート: "あと超適当ではあるけれど、メモリアロケータを実装してみてもいるので、何気なくnew Array();とかやっている裏で、何がおきているかに興味ある人もどうぞ。https://t.co/zoV5YJSoYP from @DasSurma"
- chikoskiさんのツイート: ""Audio Worklet Design Pattern":タイトルはAudio Workletだけれど、実質WASMを使ったストリーム処理のデザインパターン集になってる。データの受け渡し方法と、スレッド間の同期するかしないかが、デザインの分かれ目になっている。 https://t.co/qvJbiPmzQo"
- Audio Worklet Design Pattern | Web | Google Developers
- chikoskiさんのツイート: "サンプルコードはこちら:https://t.co/X7HG82OTop"
- web-audio-samples/audio-worklet/design-pattern at gh-pages · GoogleChromeLabs/web-audio-samples
- chikoskiさんはTwitterを使っています: 「さらっと書いてあるけど興味深い:Ayncifyによる非同期呼び出し。そして setjmp/longjmpのデモ。これでgoto文やexceptionを実現できる。 https://t.co/7S7YxHocwh」 / Twitter
- chikoskiさんはTwitterを使っています: 「EmscriptenがLLVMバックエンドを使うようになったので、./emsdk install latestでPost MVP機能が使えるコンパイラがインストールされるようになりました。そして、fastcompを使いたいときは、latest-fastcompと明示するようになりました。」 / Twitter
- chikoskiさんはTwitterを使っています 「Emscriptenを使わずに、Cでmp3デコーダをつくった話。 ヒープの管理方法についての説明が主なので、CプログラムのWASM化するさいにひろく参考になると思う。スタックの起点から上にヒープが伸びていく、ところがポイント https://t.co/bO8eSEaqua」 / Twitter
- Minimp3 Wasm Without Emscripten – kanejaku.org
- chikoskiさんはTwitterを使っています 「Conditional Sections. いくつかのsectionを複数回出現可能にした上で、sectionを有効にするための条件を記述するための conditional section を追加する。JS API も有効な機能セットを渡せるように拡張される、らしい: https://t.co/T0JbSAt73z」 / Twitter
- conditional-sections/Overview.md at master · WebAssembly/conditional-sections
- chikoskiさんはTwitterを使っています 「Firefox で使われているライブラリの一部を、WASMサンドボックス内で動かしてるよ、という話。 プロセスを作るまではいかないけど、メモリアイソレーションしたいというニーズに応えるため、RLBoxというサンドボックスを突くった、とのこと: https://t.co/sckg8jYfFB」 / Twitter
- Securing Firefox with WebAssembly - Mozilla Hacks - the Web developer blog
- chikoskiさんはTwitterを使っています 「論文:https://t.co/E6vAKhcnDi "we find the end-to-end memory overhead of RLBox to be modest—25% with SFI, 18% with process isolation—and transient, appearing only at content load time. The impact on page latency is small: 3% and 13% with SFI and process isolation, respectively"」 / Twitter
- LibrarySandboxing/paper.pdf at master · shravanrn/LibrarySandboxing
- chikoskiさんはTwitterを使っています 「NaCLについて、何も知らないんだけど、やっぱり振り返った方がいいんだろうか。」 / Twitter
@qwerty2501
- クワーティさんのツイート: "どうしてwasmにはfloatにだけmax,min命令があるんですかねぇ。しかも条件が結構複雑で実装がだるいという"
- クワーティさんのツイート: "wasmのfloatのminとmax命令よくわからんからlibcのfminとfmax関数にぶん投げてええか?"
- クワーティさんのツイート: "relopとfbinopを実装したし、今日の進捗としてはこんぐらいでいいだろ"
- クワーティさんのツイート: "LLVMBuildAShrとLLVMBuildLShrの説明がどこにも見つけられなくて困っている"
- Atsushi Enoさんのツイート: "arithmetic shift right とlogical shift rightでは… "
- クワーティさんのツイート: "あーそれだ。多分 ありがとうございます… "
- クワーティさんのツイート: "LLVMにrot命令が存在しない・・・"
- クワーティさんのツイート: "end命令のときに対応する命令がloopか、そうじゃないかで振る舞いが変わってくると思うんだけど"
- 7594591200220899443さんのツイート: "WASM案外遅くねえか?っていう報告が出ている https://t.co/sSZM7zkCPk"
- [1901.09056] Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code
- qwerty2501さんのツイート: "遅い理由として考えられるのは、 - 規格上余計にマシンコードと比べて余計に仮想メモリの処理が入る - ブラウザの最適化実装が甘い - スタックマシンなので言語のコンパイラが最適化しにくい? かな。現状遅い理由で多いのは2番目っぽそうだけど"
- qwerty2501さんのツイート: "個人的にWASM vs Native CodeよりもWASM vs JVMの比較のほうが妥当な比較な気がする。"
@blackenedgold
- κeenさんのツイート: "wasmは最初の引数がスタックの底。最後がスタックトップ。 #κeenメモ"
- κeenさんのツイート: "webassemblyのバイナリツール、セマンティクス的に間違っててもフォーマットが正しかったらとりあえずディスアセンブルしてほしい"
@rockridge07
- Rockridgeさんのツイート: "JavaVMのような実行環境があれば、将来的にWebAssemblyベースのデスクトップアプリケーションも作成可能になる。 / “WebAssembly is more than the web” https://t.co/77uD4mFOlU"
- Rockridgeさんのツイート: "Rust言語から生成されたWebAssemblyがマルチスレッドで動作し、各スレッドがメモリを共有するという仕組みができつつある。 / “Multithreading Rust and Wasm | Rust and WebAs…” https://t.co/r3PF3bUG87"
- Rockridgeさんのツイート: "WebAssemblyがMinimum Viable Product(MVP)に達した時点で、ゲームでいう「スキルツリー」が開放され、様々な領域へと発展していけるようになった。本記事では獲得間近の「スキル」に当たる各種新機能を紹介… https://t.co/rq0iPTUp4q"
- Rockridgeさんのツイート: "Doom 3をEmscriptenを用いてWebAssemblyに移植した話。サイズがおよそ400MBあるといい、読み込みには相当な時間がかかる。参照:https://t.co/kfsfSODK2i / “Google グループ” https://t.co/cdbKMmijAn"
- Rockridgeさんのツイート: "サイトに登録されたMIDI形式のファイルを再生できる。その数11万以上。C言語で書かれたプレイヤーをWebAssemblyとJavaScriptに移植したという。参照:https://t.co/axJZ5LsZXe / “Pop…” https://t.co/FbxpLWDpjW"
- The Lost Art of MIDI – Bringing <bgsound> Back to the Web - Speaker Deck
histric
histric-1
- 七誌さんのツイート: "WebAssemblyを少し眺めた。分岐で相対アドレスを使わずに構造化されているようで、ちょっとBrainf*ckに似ていると思った。 https://t.co/MrB6JRgGqP"
- Kazuho Okuさんのツイート: "goto 禁止教を信じていた頃は while (...) { switch (...) { ... continue; } } とか書いたりもしてたなぁ。最近は while ブロックの最後にラベル置いて goto します"
- Makoto Kato ︎︎さんのツイート: "Linが書いたHacksのWASMのbaseline compilerの話、HNではhttps://t.co/V45io6o5qq のベンチマークの話になってたけど、EdgeのWASMコンパイラでValidationがLazyだからロードだけは速いってのは初めて知った"
- https://lukewagner.github.io/test-tanks-compile-time/
- Rust and WebAssemblyさんのツイート: "Announcing the `web-sys` crate! 🎉🎈🎊 Bindings to ✔️ the DOM ✔️ Web Audio ✔️ 2D canvas ✔️ Web GL ✔️ fetch and the whole Web API!"
- ドッグさんのツイート: "Wasm にコンパイルする前提の C++ のウェブフロントエンドフレームワーク,C++ のコードに唐突に JSX 記法が出てくる(仮想DOMが生成されるっぽい) https://t.co/rRvZYUh8eT"
- asm-dom/todos.cpp at master · mbasso/asm-dom
- herumiさんのツイート: "intを返す関数をvoidを返す関数ポインタ(引数の型は同じ)にキャストして使うとx64では大丈夫だけどwasmだと実行時エラー。それをチェックするにはwasm-ldに--check-signaturesをつける。しかしwasm-ld-6はバグっててそれをつけると逆にエラー。ld-7ではOKでした。@blackenedgold #compiler_study"
- Yosuke FURUKAWAさんのツイート: "AudioWorkletからSharedArrayBuffer経由でwasm threadと直接データやりとりして、最後にAudioMixingEngineでUIにつなぎこむ、、!!ゴクリ #ChromeDevSummit_ja… "
- petamorikenさんのツイート: "@tkihira 突然失礼します。こちらの記事のコンパイル済みの WebAssembly を IndexedDB にキャッシュする件についてですが、 https://t.co/QF98zqUFpA 残念ながら仕様から消えてしまい、Firefox の実装からも無くなってしまったので、追記していただけると幸いです。 https://t.co/qTsuGa3kLn"
- dynamis (でゅなみす)さんのツイート: "貧弱だったWebRTCのエコーキャンセラーは年末あたりにバージョンアップして改善される一方、そもそもオーディオのコーデックとかも含めてWebAssemblyで実装してしまうアプリケーションが出てきてたりブラウザはメディア系も低レベルAPI提供の方向に向かいそうな話。 https://t.co/kF8T4X3e6R"
- ドッグさんのツイート: "Wasm はスタックマシンだと仕様にあるけど実際 locals はそうなってないという話.元々 asm.js のバイナリ表現としてレジスタマシンで設計されていたものからスタックマシンに切り替えた経緯があるのか | 'WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine' https://t.co/BEwMJf7AnT"
- WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
- Makoto Kato ︎︎さんはTwitterを使っています: 「パフォーマンストークでFFIが絡む話をする場合は、FFI部分を排除したデータがないと残念なプレゼンになるけど、まぁ結論として残念ですね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「WASMのJITもTierがあるので、JSのTierをなくしたデータを取るんだったら、WASMも同じようにInterpreter/BaselineJITだけのデータをとって比較しないと意味ないのでは?」 / Twitter
- VさんはTwitterを使っています 「WASM が未来なのすごくわかるなぁ。いつか汎用的な負荷試験ツールを作る日が来たら、シナリオは全部 WASM 化したい。好きな言語で好きなように書ける。」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています 「@voluntas 同感です。まずはプラグインとかスクリプト機能がWASMになるんでしょうね。ゆくゆくはユニバーサルバイナリーの地位を確立するかもというのも気になります。 ただ現時点だとLuaJITのほうが軽かったりしないのかなあと気になっているのですが。まあでもWASMが広まっていくんでしょうね。」 / Twitter
- VさんはTwitterを使っています 「@hnakamur2 まず Lua を覚えてもらうのと LuaJIT Binding を維持するコストが高いと思うんですよね。k6 がシナリオを JS にしたのは英断だなぁと思っています。「WASM にさえすれば何でもいい」というのは本当に強くて、あとは API をアプリ側に用意するというのは一番キレイな形だなと。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「アプリを動かすための仮想機械を作ったとしても、新しいプラットフォームで動かすには誰かがその仮想機械を移植する必要があるんだよな(そしてそれは「再コンパイルすれば済む」ような自明な作業ではない)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「元ツイートとは関係ないけど、Write once系の技術はdebug everywhereになりがち(抽象化に漏れがあったり、抽象化レイヤーの提供する機能が少なくて環境依存な方法を使ったりするような場合)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのセキュリティーについて https://t.co/MWJgBZqE4g とか読んで調べてるんだけど、Control Flow Integrityの辺りって処理系側が工夫しないと結構簡単にバッファーオーバーランとかで破られちゃうよな…」 / Twitter
- Security - WebAssembly
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いや、もちろん他の仕様も処理系がアホだと危ないのは当然なんだけど、ジャンプ先の制御って今自分が作ってるコンパイラーじゃ全然守れてないな…って。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「> wasm-ldに関する公式サイトというかドキュメントみたいのはどれを見ればよいでしょう? wasm-ldはlldのwasm向けポートなのでLLVMが公式ドキュメントということになるのかな? 一応申し訳程度のドキュメントがありますが、あまり期待しないほうが良いと思います!https://t.co/0gXTJKiEaK #wasmnight」 / Twitter
- WebAssembly lld port — lld 12 documentation
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmの例外やGCが実装してなお残る、高級なプログラミング言語のランタイムに必要な機能ってなんだろう。boxing・unboxingとか?軽量スレッドなんかも言語によっては必要かな?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@miura1729 物理CPUのinstruction setはハードウェアなので仕様先行にせざるを得ないが長い期間の蓄積がある& WebAssemblyみたいな仮想マシンコードも、50年くらい前からp-codeやAS/400の中間コードとして存在し、JVMや.NETのVM命令セットを含め、何度も何度も実装されて知見が蓄積されていますからね…」 / Twitter
- FadisさんはTwitterを使っています 「Wasmer 2.0が出たらしい。WasmerはWeb以外でWebAssemblyを動かす実行環境。2.0ではNaNの振る舞いが中間表現の仕様に入ってfloatの最適化がかけやすくなる、バックエンドにCraneliftが使えるようになる、wasmのデシリアライズが爆速になる等の性能面で影響の大きい改善が目立つ https://t.co/o72eOOATzy」 / Twitter
- Wasmer 2.0 Released With Significantly Faster Runtime Performance, Quicker Deserialization - Phoronix
- ノーンさんはTwitterを使っています 「AssemblyScript雑なまとめ - WASMのInterface Type(外部とやり取りする型)で文字をUSVに移行するという提案(セキュリティーに問題があるため) - 8/3の会議でGoogleやMozillaなどに可決されそう - でもAssemblyScriptは死ぬので、「巨人には勝てんわ。すまん」と声明を発表 https://t.co/wJIstrB3A4」 / Twitter
- mod_poppoさんはTwitterを使っています 「AssemblyScriptが死ぬ話、全然把握してないけど初期のUnicodeを16ビットに収めようとした連中が諸悪の根源であることだけはわかる」 / Twitter
- 艮 鮟鱇さんはTwitterを使っています: 「stack-basedなWebAssemblyをregister-basedなLLVMでどうやってコンパイルしているんだろうというのがずっと疑問だったが、今日コードを読んで、一旦wasmの命令をregister-based・stack-basedの双方で定義して、最適化をかけてからregister-basedな命令をstack-basedな命令に変換していることを知った。」 / Twitter
- 艮 鮟鱇さんはTwitterを使っています: 「これをするためにはregister-basedな命令のオペランドに入る値がinlineに成る必要があって、ようするに全体でtreeを構成しないとstack-basedな命令にうまく変換できないのだが、そうなるようにオペランドを変換する操作をstackifyと言うっぽい」 / Twitter
- idさんはTwitterを使っています 「Jupyterliteすごい。 wasm製のpython runtimeであるpyodide(のkernelのpyolite)を使ってるので、サーバ無しにJupyterが動く https://t.co/0AALJsgCyp」 / Twitter
- JupyterLite: Jupyter ❤️ WebAssembly ❤️ Python | by Jeremy Tuloup | Jul, 2021 | Jupyter Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「wasmer-jsみたいにブラウザーのWasm処理系を使うんじゃなくて、Rustで書かれたwasmerそのものがブラウザーで動くようになるってことか。Wasm3もそういえばやってたな / “Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer · GitHub” https://t.co/7Fw0jQmaPb」 / Twitter
- Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ちゃんと確かめてから記事にしようと早N月経ってるんだけど、WasmでDOMを操作するのはreference typesを使えば最早JS経由とすら言えないし、すでに直接操作できると言っていいのでは? https://t.co/uHZaaml4HN 曰くもうChromeもサポートしてるっぽいけど、ツールチェインがサポートしてないのかな。」 / Twitter
- WebAssembly Reference Types - Chrome Platform Status
- yukiさんはTwitterを使っています 「終わってから思い出したんですが、WebAssemblyをコンパイルターゲットとするGrainという言語があって、これも関数型プログラミング言語みたいです。個人的に注目してます。 #func_party https://t.co/lff4XxbFK0」 / Twitter
- grain-lang/grain: The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
- かめのこにょこにょこさんはTwitterを使っています 「今のところの JavaScript と比べたときの WebAssembly のTwitter上で観測される欠点は - 同じことをするにもサイズが 10倍以上に膨れがち - (JS側の) ArrayBuffer をそのまま扱えず、コピーが必要になる - .html ダブルクリックでローカルに実行できない - デバッガが貧弱すぎる ほかにもありそう」 / Twitter
- かめのこにょこにょこさんはTwitterを使っています 「- <script src="*.wasm"> で読み込めない - 学習コストが高い (Rust, C, AssemblyScript などを学ぶしかなく、既存の JS 資産を活かせない) - (画像処理などの重い処理で)ブラウザAPIを使うときより遅くなってしまう」 / Twitter
- mod_poppoさんはTwitterを使っています 「一昔前のコンパイラーだとアセンブリーに落とす前提で抽象機械を好きに設計できたけど、今時のコンパイラーはLLVM IRやWebAssemblyを出力する前提で抽象機械を設計しなければいけないのかなあとか思った」 / Twitter
- ノーンさんはTwitterを使っています 「「ユーザーに自由にプラグイン書いてほしいけど、プログラミング言語限定したくないし、早く動かしたいし、でもセキュアじゃないとやだ」みたいなユースケースだとwasmは完璧なので、もっと知られてほしい。」 / Twitter
- κeenさんはTwitterを使っています: 「WASMのパッケージング仕様にWAPMというのがあり、既にWASMにコンパイルできるRustからも簡単にそれにパッケージングできると嬉しいよねということでcargo-wapmを作ったよというアナウンス Announcing Cargo WAPM https://t.co/kpxjlGb0Fo」 / Twitter
- Michael-F-Bryan
- kuremaさんはTwitterを使っています 「@masayuki_koba それはXamarinの標準的な仕様のはずです。 dotnetで動いている都合上ランタイムを全部同梱していて、拡張子はdllです。 容量がでかいってのはXamarinのいくつかある欠点の一つですね。 Blazorとかだとブラウザにも大量のdllが落ちてきます。 別にWindows用のバイナリが添付されてる訳ではありません。 https://t.co/aczzSXrTsw」 / Twitter
- WebAssembly Community Group
- WebAssembly Specifications
- WebAssembly バイナリ表現 | WEBASSEMBLY USUI BOOK
- Takuo KihiraさんはTwitterを使っています: 「見てる: https://t.co/dex2rLwhPL "JWebAssembly"。これみたいな GC なしでも、edge で使うような使い捨てで即座に破棄されるようなインスタンスなら問題にならず、むしろサイズが小さくなって高速になって嬉しい、みたいなことはないのかな。」 / Twitter
- i-net-software/JWebAssembly: Java bytecode to WebAssembly compiler
C
その他
- SAL 注釈を使って C/C++ のコード障害を減らす方法 | Microsoft Docs
- llvm-project/clang/INPUTS at master · llvm/llvm-project
- ソフトウェア1 (2020)
- C99 - Ruby master - Ruby Issue Tracking System
- Learn c in Y Minutes
- C Reference Cheat Sheet by Ashlyn Black - Download free from Cheatography - Cheatography.com: Cheat Sheets For Every Occasion
- memory efficiency - Google 検索
- Shiro KawaiさんはTwitterを使っています 「polkitの脆弱性、mainに渡ってくるargcが0のケースを想定しておらず、その場合argv[1]を書き換える動作をしてしまうのだが、そこは環境変数の領域なのでうまく仕込めばPATHを書き換えられる、と https://t.co/uc7BVF2qub」 / Twitter
- PwnKit: Local Privilege Escalation Vulnerability Discovered in polkit’s pkexec (CVE-2021-4034) | Qualys Security Blog
- Shiro KawaiさんはTwitterを使っています 「argc == 0 のケースってのは確かに盲点かも。てかLinux、それでexecve()できたんだ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「参考までに、Linuxカーネルでは goto 結構使われてる話。 https://t.co/SYjjP5rkPu あとdeferある言語でリソース開放用ならgotoより早期リターンがいいという話。 https://t.co/jfCKkZ0TNs」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当たり前だけど、goto無しで「書ける」ことと、goto無しが「常に分り易い・メンテ性良い」かは別の話と。 (例えばC言語での異常処理や深いネスト脱出はgotoが合理的) 最新Linuxのkernel/sched/core.c だと 72個のgoto(全8079行)。 https://t.co/GHGOJTnOvF」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Ken Thompsonは1983年チューリング賞講演で「コンパイラ・バックドア攻撃」の概念を提案した。これは「login.cをコンパイルするとバックドアを仕掛ける」「 そのコンパイラ自身をコンパイルしても同じ機能が搭載される」仕組み。Thompson自身はこの攻撃を本当に実行していた。 https://t.co/FbPPrEd4AK」 / Twitter
- Ken Thompson Really Did Launch His "Trusting Trust" Trojan Attack in Real Life
- C 言語とその未定義動作を社会言語学的視点からも見る
- CompCert - Main page
- ELF を吐く C コンパイラを Rui 本の方式で作る
言語仕様
その他
Clockwise/Spiral Rule
- wint☸️: undefinedさんはTwitterを使っています: 「C言語、ポインタの notation どころか、すべての型の記法が spiral rule に従ってるのが狂気にしか見えないんだが、あれちゃんと擁護できるの?」 / Twitter
- "Clockwise/Spiral Rule''を使ってC言語の複雑な宣言を理解する - Qiita
- Spiral Rule for C
- Clockwise/Spiral Rule in C/C++ with Examples - Aticleworld
- Clockwise/Spiral Rule in C/C++ with Examples - GeeksforGeeks
- Clockwise/Spiral Rule
- 仮定義
- 日記 (2016 年 6 月上旬)
- 初期化子は定数 - とくにあぶなくないRiSKのブログ
- CとC++のIdent - in neuro
- NAKAMURA Minoru's Diary (2016年12月)
- C言語の現代化を目指すC2
- how-to-c-response/README.md at master · Keith-S-Thompson/how-to-c-response
- Origin of C Language
- Origin of C Language's 'struct'
- Language C FAQ
- ロボ太さんはTwitterを使っています: 「「-1/2」の結果がC/C++とRubyで違うということを初めて知った。」 / Twitter
- herumiさんはTwitterを使っています: 「https://t.co/LhrwyBIl7u 処理系依存が気になる古いC/C++の処理系ではdivを使う、までがセットですね。 https://t.co/Y1e4xaouPm」 / Twitter
- div, ldiv, lldiv, imaxdiv - cppreference.com
- /devさんはTwitterを使っています: 「C言語のお前そんな機能あったのシリーズ https://t.co/qZIUU2hjts」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GCCで-std=c99したらDBL_TRUE_MINが定義されてなかったんだけど、もしかしてこれC11以降の機能だな?」 / Twitter
- 「数学ソフトウェアの作り方」を読んだ | 雑記帳
C のメモリモデル
- yoh2さんはTwitterを使っています: 「ちょくちょくネタにしてるけど、C のポインタ演算といえば、きちんと参照先があるポインタ 2 つを大小比較しただけで未定義になるケースも。 実際にこれで問題が起こる処理系の存在は知らんが。 int a = 1; int b = 2; int x = &a < &b; // 未定義! (C++ なら未規定)」 / Twitter
- yoh2さんはTwitterを使っています: 「これを踏まえて、C 標準の範囲内で未定義の挙動を一切踏まない memmove を自作してみようというのもいつものネタ。」 / Twitter
- yoh2さんはTwitterを使っています: 「重なり把握のために dst と src のどっちが前か dst < src で比較 → 今書いた UB 踏む可能性があるぞ んじゃ一旦十分なサイズの整数にキャストして → 整数に直した時の大小関係とポインタ大小比較の大小関係が一致する保証はない ええい面倒くさい。一時領域 malloc して二回 memcpy じゃ! → 😇」 / Twitter
- yoh2さんはTwitterを使っています: 「== による比較は問題ないから src 先頭から 1 バイトずつ足していって dst と一致する要素があるか調べる。あったら末尾から、なかったら先頭からコピーすればいい。 → これならよさそうだけどチェックがクソ遅そう」 / Twitter
- yohさんはTwitterを使っています: 「@yoh2_sdj ではアセンブリ言語で書きます(ルール違反」 / Twitter
- 普通のC++使い、銀天すばるさんはTwitterを使っています: 「C++でも未規定だから、同一配列内にないオブジェクトを参照したポインタを比較したかったら std::less などを使うしかないんだよね」 / Twitter
- 普通のC++使い、銀天すばるさんはTwitterを使っています: 「std::less を使えばちゃんとした順序になることが期待できる」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「「Cのポインタは機械語(ないしアセンブリ)のアドレス」と理解してしまうといろいろ齟齬が生じる。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「Cのメモリモデルでは型ごとに違う「ワード」があり、メモリブロックは型情報と境界情報を持っていて、ポインタはメモリブロックの型情報・境界情報とブロック内の位置を指す、と思わないと、ISO Cのaliasing ruleとか、何が未定義動作なのか正しく解釈できない。>Cのメモリモデル」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「(確かメモリブロックの境界を「2つ」越えるポインタを作るだけでアクセスしなくても未定義動作、とかだった記憶(出先でスマホなので未確認」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「https://t.co/dXalgct5Gj なのでCのポインタをアセンブリ・機械語のアドレスとかで説明するのは誤りで、「メモリ上の配列(ブロック)のいずれかの要素を指す」(単独の変数は要素数1の配列とみなす)がおそらく簡潔かつ正確な説明。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「なお並列メモリモデルはまた研究論文レベルで魔境(仕様が間違っていたりした)なので知りません。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「https://t.co/pDY5Yj9XrB (確認していませんがおそらく)未定義動作なので、最適化で全く不定な値になる(どころか以降の別の処理もすべてサボる)コンパイラがあってもおかしくないかも?」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「https://t.co/0xUp9HXLqo 性能面でも「p[++i]すなわちi++,*(p+i)とかだといちいち配列(メモリブロック)の先頭pからi番目の要素を数えなおすことになって(最適化しないと)*(++p)より遅そうですよね」で説明できるので,アドレスがどうとか言わないほうがわかりやすいと思う.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「https://t.co/Xn3I6hurBE 最適化でそれ以降のすべての処理が無効になるコンパイラとかあっても驚きません!」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「「ポインタ=アドレス」と(誤って)理解していると https://t.co/rEUXLOLHDK みたいな,各種の未定義動作で本当にハマる.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「(当スレッドで,記憶に頼って未定義動作だろうと書いた2件は確かに未定義動作だった(いまISO仕様見た」 / Twitter
- てらモス♋️さんはTwitterを使っています: 「そしてCのメモリモデルとCPUのメモリモデルを対応させているのがABI(´・ω・`)?」 / Twitter
- yohさんはTwitterを使っています: 「@termoshtt addressingとかalignmentとかmemory layoutに関する領域であればABIの範疇だと思いまする」 / Twitter
未定義の動作・値
Twitter
議論
- 画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
- まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n <= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
- のぶしみさんはTwitterを使っています 「def f(n): if n<=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
- まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
- まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
- fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
- Compiler Explorer
- 7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
- N1528: Why undefined behavior for infinite loops?
- 7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
- Masaki HaraさんはTwitterを使っています 「> My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ > As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
- κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
- κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
- herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter
(char *)NULL + 0
- Kazuho OkuさんはTwitterを使っています: 「んー C++ だと (char *)NULL + 0 は未定義動作ではないっぽいけど、なんで C だと未定義なの? https://t.co/IaxRFvUSxs」 / Twitter
- [expr.add]p4 seem to conflict with [expr.add]p7 · Issue #2299 · cplusplus/draft
- Kazuho OkuさんはTwitterを使っています: 「(char *)NULL == (char *)NULL <=> (char *)NULL - (char *)NULL == 0 <=> (char *)NULL + 0 == (char *)NULL で問題ないと思うんだけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「c11だと1行目から2行目への変換が成り立たないのかな。同じオブジェクトを指すポインタ間の減算以外はUBだから」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@kazuho Cではリテラル0がnullptrなので + 0の0がnullptrとして解釈されるのではないでしょうか?言語弁護士ではないので、適当なこと言っていますが」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@miura1729 いや両辺がポインタならコンパイルエラーかと。0が数値として解釈されるからこそUBになる」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@kazuho 確かに」 / Twitter
- yohさんはTwitterを使っています: 「NULL-NULL=? - yohhoyの日記 https://t.co/S35Iee8T8g 理由までは分からないですが NULL周りの演算はCの方がC++よりも制限がキツイんですよね」 / Twitter
- NULL-NULL=? - yohhoyの日記
- Kazuho OkuさんはTwitterを使っています: 「@yohhoy よく整理された記事、ありがとうございます」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「標準化されたCはOSの開発には向いてない (PLOS'21論文)。ISO標準はあまりに抽象化されており、ほとんどのOSはコンパイラ依存の仕様に頼っている。そして未定義動作を最大限活用したコンパイラによる最適化がある。多くの場合、これら最適化によるメリットはさほど大きくない。 https://t.co/Sn3BfijR6x」 / Twitter
- [2201.07845] How ISO C became unusable for operating systems development
- zehnpaardさんはTwitterを使っています 「ISO標準がなんでOS開発に適さないかというと、未定義動作による(特にgccによる)アグレッシブな最適化が、システムの安全性を損なう割に最大で16%くらいしか性能に貢献していないようだから、なのか Coqで形式検証されたCompCertの話も出ていて面白かった」 / Twitter
- yoh2さんはTwitterを使っています 「> 未定義動作はエラーになるとは限らない これほんと忘れがちなんだよね。 ヌルポ参照で落ちるのは許容範囲だからと油断してるとコンパイラが ・NULLチェックされてないから(※)NULLでない前提で最適化できる ・そういやこれNULLかhogeしか入らんな ・なら常にhogeに展開しちゃえ とかやるからな。」 / Twitter
- yoh2さんはTwitterを使っています 「※の補足書こうとしたけど、前提書き間違えてた。 NULL チェックされてるかどうかは関係ない。 *p という式が評価される時点では NULL であってはならないというそれだけのこと。 で、NULL か hoge しか取らないという場合、コンパイラが常に hoge に展開する最適化をするのは合法、と。」 / Twitter
- yoh2さんはTwitterを使っています 「Q. じゃあ実際に NULL だったときに落ちないじゃないか A. そうですが、なにか? NULL だったときの挙動は未定義なんだから落ちてもいいし hoge に評価されたって構わない。 なんだよなあ (´・_・`)」 / Twitter
- 本の虫: 誤り:paizaの問題はC++17でも成り立つ
- ツイッターで出題した未定義問題のお詫びと調査と解説について - paiza開発日誌
- 水島宏太(Parser)さんのツイート: "ただ、 "未定義だと、動作が言語の実装に依存しますので、コンパイラなどの環境によって、結果が変わってしまいます。" 実装依存と未定義の区別がついてないような。未定義というのは本当に何が起こってもいいということであり、実装によって挙動が一つに定まるというのは違う。"
- 水島宏太(Parser)さんのツイート: "実際には、未定義動作を使ったCコードというのはあり、そういうコードを動かすためには、未定義動作だから何でもいいというのは困ることがあるけど、ともあれ未定義は未定義として区別されなければいけない。"
- Eijiro Sumiiさんのツイート: "「どうやら、"sequence points"の範囲の中でside effectが評価されるようです。」待て待て待て、副作用完了点も知らないでC(やC++)の問題出題したりエンジニア向けサイト運用してたのか…!? https://t.co/iJfbmMbP3I"
- 本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)
- 本の虫: C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合
- C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
- 未定義動作により最適化レベルで結果が変わるコード - Qiita
- ロボ太さんのツイート: "安全装置において、警告にとどめるか緊急停止させるかって、もちろん想定させる危険性に依存するじゃない?例えばコピー機で用紙サイズが合わなくても警告でいいけど、工業カッターが異物を検知したら緊急停止させなきゃいけない。「警告音で手を引っ込める」ことの賭金として指切断は高すぎるから。"
- ロボ太さんのツイート: "これ、別に言語仕様を変える必要はなくて、「未定義動作を検出したらエラーで落とす」というオプションつけて、それをデフォルトでオンにすればいいと思う。なんか互換性で問題起きたらオフにすればいいんだし。結局、安全側と便利側どっちに倒すか、という問題だと思う。"
- ロボ太さんのツイート: "同様に、もしコンパイラが未定義動作を検出してud2吐いたりretを消したりするなら、警告吐くだけじゃなくてエラーで落とすべきだと思う。それは明らかに重大事故だから。それを「ハナカラアクマ」って呪文唱えて、知らない人を締め出す先にあるのは、コミュニティの緩やかな死だと思う。"
- Undefined behavior can result in time travel (among other things, but time travel is the funkiest) | The Old New Thing
- mcyoungさんはTwitterを使っています 「char* null = 0x0; char* one = 0x1; null + 0 // UB in C and Rust, not C++ one + 0 // UB in C and C++, not Rust what does LLVM think? no one seems to know well done everyone」 / Twitter
- yoh2さんはTwitterを使っています 「ところで「Cは高級アセンブラ」という認識は罠にずっぽりハマるワードだと思うのでやめとけとなる。」 / Twitter
- yoh2さんはTwitterを使っています 「これを言う人、符号付き整数のオーバーフローとか type-punning とかに頓着しないコードを書いては「コンパイラがバグってるから最適化禁止 (本当はがっつり UB 引き起こすコードを書いてる)」と言い放ちがちなイメージ (ど偏見」 / Twitter
- yoh2さんはTwitterを使っています 「符号付きオーバーフローに無頓着というか、オーバーフローしたら一周すると信じてる、かな。 int n; ... if(n + 100 < n) { /* 100 足すとオーバーフローする場合 */ ... } みたいなコードとかね。んで最適化して if がごっそり消えるなど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「でもアセンブラでも符号に無頓着でバグる事があるから...」 / Twitter
- キャストに関わるGCCの謎挙動 - 豪鬼メモ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「頭がイカれた Cの未定義動作コンテスト」 多くは未定義動作のためにコンパイラが一部のコード生成を省略してしまい、深刻なバグにつながるというもの。「値が未定義な bool p について、if (p) と if (!p) がどちらも成立する」というコードも紹介されている。 https://t.co/QAIqzwWW9Z」 / Twitter
- Contest: Craziest Compiler Output due to Undefined Behavior – Embedded in Academia
- 未規定の動作
- 未定義の動作
- 処理系定義の動作
- 文化圏固有動作
- hsjoihsさんはTwitterを使っています: 「いま書いている資料、「未定義動作と最適化」ってタイトルで書き始めてたけど、一意性のかけらもないタイトルであるだけでなく内容ともあんまり合致してないので「C 言語とその未定義動作を社会言語学的視点からも見る - C はどうしてこんな言語になっちゃったのか -」へ改題 https://t.co/Wjl1RxExtB」 / Twitter
- C 言語とその未定義動作を社会言語学的視点からも見る - Google ドキュメント
型
- Clarification Request Summary for C11
- n1731.txt
- N1804: Discussions on DR440, DR441, DR442, DR444, and DR445
- Resolving DR444
ビットフィールド
- _ko1さんはTwitterを使っています 「0幅のbit fieldなんて初めて知ったよ...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なんかで見たな。なんだったっけ 明示的なパティングだったかな」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@miura1729 ですね https://t.co/cjEV1gCwT0」 / Twitter
- Bit field - cppreference.com
- 複数のビットフィールドを持つ数値の並列演算
ISO
- History of C - cppreference.com
- C99 - Wikipedia
- C11 (C standard revision) - Wikipedia
- C18 (C standard revision) - Wikipedia
- ISO/IEC JTC1/SC22/WG14 - C
- ISO/IEC 9899:201x - n1570.pdf
- ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
- Clarification Request Summary for C11
- N2349 - Toward more efficient string copying and concatenation
- Clarification Request Summary for C11
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語 C++11: 属性を導入して[[noreturn]]と書けるようにします ←わかる C11: _Noreturnを追加して<stdnoreturn.h>で#define noreturn _Noreturnします ←バカ C23: C++ライクな属性を導入します ←noreturnはどうなるの……」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C23のnoreturnに関してはこういうproposalが出てるけどまだworking draftには取り込まれてなさそう https://t.co/AxwUXEdjZi」 / Twitter
- n2410.pdf
- mod_poppoさんはTwitterを使っています: 「標準Cライブラリーに新たに追加される関数等のために、stdc_のようなプレフィックスを予約する提案 https://t.co/X6HxFai6s9 各種ビット演算を追加する提案(N2965)では実際に関数名にstdc_プレフィックスを使っている」 / Twitter
- N2968: Prefixes for the Standard Library
- mod_poppoさんはTwitterを使っています: 「C言語の可変長引数を、名前付きパラメーターが存在しない場合にも使えるように制限を緩和する提案。va_startの第2引数は使用されなくなる(省略可能になる) https://t.co/8PGCUiCfoH」 / Twitter
- n2975.pdf
- mod_poppoさんはTwitterを使っています: 「C言語にnullptrを入れる提案。ぬるぽ https://t.co/CBghNrgESL」 / Twitter
- Introduce the nullptr constant
- mod_poppoさんはTwitterを使っています: 「C言語に提案中の新機能、C++の後追いのやつが結構あるのと、コンパイラー・libcの実装がいつになるのかという問題があって、あまりワクワクしないんだよな」 / Twitter
JIS
- JISにおける規定を表す言葉の表現形式 - 水底の血
C23
C23
- mod_poppoさんはTwitterを使っています: 「C23がついに確定したらしい https://t.co/ex78wIUmwU」 / Twitter
- C23 now finalized! : C_Programming
- N 3041: Updated Agenda for July, 2022, r4
- ISO/IEC 9899:yyyy - n2912.pdf
- 🇺🇸 Robert C. Seacord 🇺🇦さんはTwitterを使っています: 「Cool stuff that got into C23 this week: - nullptr - typed enumerations - improved normal enumerations - Comma omission and comma deletion - constexpr - auto - TIME_MONOTONIC - bit-precise bit-fields - relaxed requirements for variadic parameter lists -」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C++ライクなautoを入れるやつはどうなったんだろう(キーワード)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C23では変数定義にconstexprが使える(関数定義には使えない)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「finally. #embed https://t.co/UkVjUabqmJ C23に入る #embed について」 / Twitter
- finally. #embed | The Pasture
- mod_poppoさんはTwitterを使っています: 「char8_tというのもあったな(C++とは違ってunsigned charのtypedef)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「新しいC言語はいつ使えるようになるのか。GCCとClangはC23の言語機能に対応するだろうけど、MSVCがどうするかというのと、コンパイラーとは別々に開発されている各種libcがどうするか」 / Twitter
- mod_poppoさんはTwitterを使っています: 「va_startの第二引数が必須にもかかわらず必須引数なしのhoge(...)が可能(引数にはアクセスできない)なC++という言語もある」 / Twitter
- れもん(杏botさんはTwitterを使っています: 「あ~そっか、va_startの第二引数が必須でなくなったからvoid hoge(...)が可能になったのか」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「C23は非互換も含む大きなバージョンでC++との互換性も向上し個人的には基本的には歓迎なんだけど、でも十年前に来てほしかっややつなんだよな。C99の次がこれになるべきだった。C99以降の二十年は無駄に浪費されたよ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「委員会言語のよくないところが凝縮された二十年だったと総括できなくもない。だれもヘゲモニーとれないから現状維持しか選択肢がないぽく見える。そうこうしている間にC++は着実に進んだのでC23については「C++に追いつく」で一応の一致を見た」 / Twitter
予約語の扱い
- yohさんはTwitterを使っています 「ISO C2xドラフト眺めてたら C言語標準での予約語が明確に記述されるようになってんね(J.6 Reserved identifiers and keywords, J.6.1 Rule based identifiers) 改めて見ると広すぎて酷いよなぁ https://t.co/NZenSxHmMp」 / Twitter
- ドッグさんはTwitterを使っています 「tolower みたいな関数名(to の後にアンダースコア入れない)は厳密には駄目なのか」 / Twitter
- ドッグさんはTwitterを使っています 「というか toggle みたいな普通の単語もダメだし無理がある…」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp 実例として "token" とか (Rectの)"top" が挙げられていて、そりゃ無理だわとなりました。」 / Twitter
- ドッグさんはTwitterを使っています 「E[0-9A-Z][a-zA-Z0-9_]* もだいぶすごいけど」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp C17現在は「予約語だから使うな」で、次期C2xからは「予約語になる可能性があるけど今は使ってもいいよ/コンパイラは将来予約語になった時ちゃんと警告しようね」という優しさを見せています。」 / Twitter
blog
- 2進数リテラル in 標準C - yohhoyの日記
- C2x標準の属性(attribute) - yohhoyの日記
- mod_poppoさんはTwitterを使っています 「次期C標準であるC23の紹介記事 / C-ing the Improvement: Progress on C23 https://t.co/W3VIUBoluy」 / Twitter
- C-ing the Improvement: Progress on C23 | The Pasture
- realloc(ptr, 0)は廃止予定 - yohhoyの日記
- 2進数フォーマット出力 @ 標準C - yohhoyの日記
- nullptr定数 in 標準C - yohhoyの日記
- reproducible/unsequenced属性 - yohhoyの日記
- typeof演算子 in 標準C - yohhoyの日記
- #embedディレクティブ - yohhoyの日記
- R.I.P. "= {0}" - yohhoyの日記
- Checked integer arithmetic in the prospect of C23 – Jens Gustedt's Blog
Zenn
- 次期C標準 (C23) の内容が固まったらしい
- 最近のC言語と、次期C標準(C23)
- C言語のbool型とその名前について 〜もう_Boolは嫌だ〜
- mod_poppoさんはTwitterを使っています: 「C23に入る整数のオーバーフロー検査にはキャスト時のオーバーフロー検査はないけど、チェック付き演算の入出力の型が異なっていても良いことを考えると「0と足す」みたいな感じで代用できるか https://t.co/L93WSoLs3W」 / Twitter
- C言語での整数のオーバーフロー検査
Twitter
その他
クロージャ
- FUJI GoroさんはTwitterを使っています 「それでも…それでも型推論と無名関数は欲しいんです!!!(現役Cプログラマーより)。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「C言語は化石なままでいいと思うんだけどねぇ。C言語はそのポジションやロール的に下手に弄って互換性崩される事が不味い。近代的な機能を使いたいなら素直に C++ なり Rust なり使えよ!って話だし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@__gfx__ わかりみな一方で、クロージャは変数キャプチャする関係で関数ポインタと互換性ないし、暗黙の参照カウンタ処理が入るはずで微妙感ある」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@kazuho キャプチャするやつへの懸念はそのとおりですが、キャプチャしない無名関数(つまり純粋な糖衣構文)もできるはずで、それだけでも使えるといいなあと。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kazuho @__gfx__ gccの関数内関数のような仕様にすれば関数ポインタと互換は取れるのではないでしょうか?クロージャを生成元からエスケープするとダメだけど、Cはもともとローカルなものをエスケープできないですし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「クロージャ使いまくるc2xで、ヒープに確保したデータの寿命管理、皆ちゃんとできるのかなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@miura1729 @__gfx__ gccのやり方でもスタック上にコード生成するわけで、仕様レベルでは入れづらい(し、今日の実行可能ページをできるだけ減らす方向にはそぐわない)と思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kazuho @__gfx__ 確かに、スタックにコード生成する実装くらいしか考えられない言語仕様を入れるのは考えにくいですね。あとは、ヒープに生成して参照カウントくらいですか。それもCの思想にそぐなわそう。」 / Twitter
histric
histric-1
- Urabe, Shyouheiさんのツイート: "次のCで20年ぶりくらいにCのfor文の挙動が変わるぽい。 https://t.co/CIY58JZBIt"
- scope of a for loop control declaration
- 7594591200220899443さんのツイート: "そろそろintmax_tは間違いだったと認めようや、なあ。という提案がCに来ている https://t.co/ad910VQix9"
- N2303: intmaxwidth.3emt, a way out
- 7594591200220899443さんはTwitterを使っています 「ちなみにc2xからポインタはアドレスじゃなくなります。詳細は https://t.co/RkF7ZVxFHB を参照してください」 / Twitter
- N2362: Moving to a provenance-aware memory object model for C - n2362.pdf
- 7594591200220899443さんはTwitterを使っています 「これが__attribute__((__malloc__))に対する委員会からの回答なのだと理解している。つまり「このポインタはこの瞬間には他のオブジェクトとエイリアスしません」みたいなやつを取り込もうとしているんだと思う」 / Twitter
- papers on formalized memory models
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- 井山梃子歴史館さんはTwitterを使っています 「ポインタはベースアドレスとオフセットとprovenanceの束だよ」 / Twitter
- provenance - Google 検索
- 束 - Wikipedia
- propagation - Google 検索
- 7594591200220899443さんはTwitterを使っています 「Provenance-aware memory object model はC2xに入れるんじゃなくて別のTSにすることにしたのか。 https://t.co/m7yjs4P9VR」 / Twitter
- n2577.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の「boolの代わりにintを返す関数」についてはintbool_t(C23の段階ではintのtypedef)を返すようにしよう、という提案がある https://t.co/FURMOzNdDE」 / Twitter
- N2712: intbool_t
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の次期標準(C2x)は「C23」になる見込みなのかな。順調に行けばの話だけど https://t.co/DIxPvxXNrO」 / Twitter
- WG 14 Document log
- だめぽラボ@技術書典9さんはTwitterを使っています 「C++にある二進リテラルや桁区切り文字はC言語に入るのかなあと気になってたけど、Proposalは出てるみたい https://t.co/sR4Y3483Vx https://t.co/LUx5Fl3eLp」 / Twitter
- n2549.pdf
- n2606.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「C23 (C2x) の新機能は今のところ ・浮動小数点数周り(最新のIEEE規格への追従;各種関数の追加、十進など) ・C++の機能の取り込み(属性、u8文字リテラルなど) ・一部のPOSIX関数の取り込み(strdupなど) ・K&Rスタイルの関数定義の削除 が主なものかなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C++やPOSIXの機能の取り込みはともかくとして、浮動小数点数周りは目新しい機能で、単なるライブラリー関数だけではなく#pragma等も含めるとまともに実装する処理系は現れるのかなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「だいたいC99のFENV_ACCESSすらメジャーなC処理系で実装されてなくて……と思ったけどClangに#pragma STDC FENV_ACCESSを実装する奴がマージされとるやんけ。Clang 12で使えるようになるのかな? https://t.co/HzL0M2yyUf https://t.co/gopObQBHtX」 / Twitter
- ⚙ D87528 Enable '#pragma STDC FENV_ACCESS' in frontend
- Clang Compiler User’s Manual — Clang 12 documentation
histric-2
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にもC++ライクなlambdaを入れようという提案はある https://t.co/IW2ZEXFaao」 / Twitter
- n2736.pdf
- mod_poppoさんはTwitterを使っています 「C言語の予約識別子が増えすぎて、逆に「絶対に予約されない識別子」の規定を追加しようぜ、という提案が出てきた https://t.co/823U3Ugu7R」 / Twitter
- N2807 identifiers for use by users
- mod_poppoさんはTwitterを使っています 「C言語にconstexprを追加する提案。この提案では再帰呼び出しができなかったりするので、C++11のそれよりも貧弱。 https://t.co/5r00eOuLNE」 / Twitter
- n2851.pdf
- mod_poppoさんはTwitterを使っています 「C言語のvoid *を型安全に使えるようにするための属性を追加しようという提案。 https://t.co/VfR7rIaL9y」 / Twitter
- n2853.pdf
- mod_poppoさんはTwitterを使っています 「C23にtail-call eliminationを追加する提案。Clangのmusttail属性といい、今C言語でのtail-call eliminationがアツい(ほんまか) https://t.co/llRoVC9p9r」 / Twitter
- n2855.pdf
- mod_poppoさんはTwitterを使っています 「C言語に多段breakを追加する提案。見た目がアレ。もうちょっとJavaみたいなやつにできなかったのか(それを言ったらgotoでいいだろとなりそう) https://t.co/9EU9lKGqvn」 / Twitter
- n2859 – break break - n2859.pdf
- mod_poppoさんはTwitterを使っています 「C言語にfatな関数ポインターを追加する提案 https://t.co/TU5Lo6dC5f」 / Twitter
- n2787.pdf
- 平田豊@フォロバ100さんはTwitterを使っています 「K&Rスタイルの関数定義は、C言語の仕様として規定されていたのですね。Optionalだけど。 そして、この仕様がC23でなくなるみたいです。 https://t.co/pgWhrHvJ5V」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではautoとlambdaの導入が検討されているみたいで、楽しみです。 しかし、開発の現場で導入するかは揉めそう。 年寄り「新しいものは保守できなくなる。そもそもチャラチャラしたのが嫌いじゃ!」 若者「開発効率上がるからいいんですよ!そうやって古いものにしがみつくから…」 https://t.co/JmnDDP5MYt」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではmemccpy関数が追加されますが、一生使うことがなさ…ゲフンゲフン #include <stdio.h> #include <string.h> int main() { char dst[16]; char *p; p = memccpy(dst, "55_kumamon", 'a', sizeof(dst)); if (p) *p = 0; printf("%s\n", dst); } https://t.co/fwcPmRpnjJ」 / Twitter
- progerさんはTwitterを使っています 「@yutakakn memccpy?何これ?と思ったけど、他の言語でいうところのsplit()みたいなことをしたいのですかね。機能的には、用途はあるとは思うものの、特定の文字列処理に特化した機能っぽいので、memcpyの一種みたいな位置付けは気持ち悪いですね。」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「@proger strccpyならまだわかるけど、memccpyはどういった場面で使うのかちょっと想像が付かないですよね。」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「C言語のC23ではlocaltime_r関数が追加されるようですが、やっとなのか!という思い。 localtime関数では内部でstaticにバッファを持つので、thread safeじゃないのですよね。 https://t.co/y2lRlKiCO7」 / Twitter
- arbor@プログラマー(サブ垢)さんはTwitterを使っています 「@yutakakn スレッドの概念自体がC11でやっと導入されたので、スレッドセーフにしていくのは次の段階だったんでしょうね。」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「C23で[[fallthrough]]のような属性がサポートされる予定になっていますが、C言語で角括弧2つの記載はなんだか違和感がありますね。 https://t.co/ogk7t198xR」 / Twitter
- arbor@反ワクチンではありません💉💉さんはTwitterを使っています 「@yutakakn もうC++で慣れたし、Cにバックポートされただけなのでほかの記法だと余計に違和感があります。」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「@arbor2018 gccだとコメントで、 /* FALLTHROUGH */ とつけるのが定番でしたよね。」 / Twitter
- arbor@反ワクチンではありません💉💉さんはTwitterを使っています 「@yutakakn ごめんなさい。 なんかコメントで書いていた記憶はありますが、定番の作法というのは馴染みがありません。 微妙に文化が異なる気がします。」 / Twitter
- ふろど#つくばセンターの主さんはTwitterを使っています 「@yutakakn __attribute__((used))とかの拡張なんですかね、これ。」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「@BoufrawFrodo2 C++の属性構文というやつみたいです。」 / Twitter
- ふろど#つくばセンターの主さんはTwitterを使っています 「@yutakakn なるほど、いまいち嬉しさがわかんなかったんですが、マクロでwarnとか書かなくて良くなるってことですかね?」 / Twitter
- 平田豊@フォロバ100さんはTwitterを使っています 「@BoufrawFrodo2 コンパイラによって書き方がいろいろだったので、C言語の仕様として統一しよう、ということですね。 2023年に嬉しくなる?😂」 / Twitter
histric-3
- Miura HidekiさんはTwitterを使っています 「longjmpにどう対応するのかワクワクして見たけど見た限り触れられていなかった。残念」 / Twitter
- mod_poppoさんはTwitterを使っています 「書き忘れたけどC23の変更に「K&Rスタイルの関数定義の廃止」もあった。」 / Twitter
- mod_poppoさんはTwitterを使っています 「C23が出れば堂々と「C言語には言語組み込みのbool, true, falseがある」と言えるようになる(かもしれない)(N2654, N2655参照)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C言語についにラムダが入るのか!? C23に入る(かもしれない)予定の "defer" 構文の提案: double* q = malloc(something); defer [q]{ free(q); }; のように、変数スコープが消える際に実行されるコードを記述できるというもの。 https://t.co/k4KvoF4pB9」 / Twitter
- A simple defer feature for C
- mod_poppoさんはTwitterを使っています 「glibcの新しいのが出て、C23で追加される浮動小数点数周りの関数が実装されたりしているらしい https://t.co/H6N6ri4V7X」 / Twitter
- The GNU C Library version 2.35 is now available
- mod_poppoさんはTwitterを使っています 「C言語の標準ライブラリーってOSと密接に関係していたり他の言語からも利用されてたりして異質というか、よくある「言語の標準ライブラリー」とは違うよな。何が言いたいかというとC23で追加される関数がLinux以外でいつ使えるようになるかわからないのがアレ」 / Twitter
- Bastard BjörkさんはTwitterを使っています 「Oh, right. C meeting is over. C23 added: - typeof(...) is standard - call_once is mandatory - char8_t (as a typedef) is in (u8"💣"[0] is mandated-unsigned!) - unreachable() for optimization - "\U12967849" is illegal (too-big for 21 bit code point) - = {} to replace memset is in.」 / Twitter
- Bastard BjörkさんはTwitterを使っています 「We also: - killed K&R declarations and definitions and made foo() mean that it takes no arguments - properly defined "primary-block" and "secondary-block" in the grammar (basically, nerd shit) - @, $, and ` (backtick) to the source character set - made attribute _Noreturn real」 / Twitter
- Bastard BjörkさんはTwitterを使っています 「Finally, we also fixed assert(). It now takes (...), which means you don't need to eat shit if you pass something that can be interpreted as multiple macro arguments. Same fix is headed for C++: thanks @PeterSommerlad!」 / Twitter
- Bastard BjörkさんはTwitterを使っています 「Oh, and a big deal: true/false are KEYWORDS NOW, and all of the bool/thread_local/etc. are all KEYWORDS NOW!!!! YEEESSSSS!!!」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「`int foo();` の意味がC++に寄せられた(引数0個の意味になった)のはrubyに直接の影響がありますね、ANYARGSがぶっ壊れるので。」 / Twitter
- yohさんはTwitterを使っています 「Ever Closer - C23 Draws Nearer | The Pasture https://t.co/v0DDCq5UOA C23でようやくK&R仕様の亡霊...もとい下方互換性が全廃されるのか とうとうC言語でも「void f();」が引数なし関数プロトタイプ宣言になる」 / Twitter
- Ever Closer - C23 Draws Nearer | The Pasture
- yohさんはTwitterを使っています 「onceプラグマ, defer, ラムダ, 多重loopからのbreak, constexprなどは C23入りはしないとのこと っつーか"break break"とかセンスが...(個人の見解です」 / Twitter
- mod_poppoさんはTwitterを使っています 「To Save C, We Must Save ABI https://t.co/xZxLRLFRNT 長いので全部は読んでないけど、CのABI互換の話とC23に提案されている_Aliasの話っぽい」 / Twitter
- To Save C, We Must Save ABI | The Pasture
- mod_poppoさんはTwitterを使っています 「提案されてるというか、この記事の著者が提案してるんだけど」 / Twitter
- ドッグさんはTwitterを使っています: 「C23 では true と false がマクロではなくキーワードとして入るのか.構文的には定義済み定数(predefined-constant)という要素が新たに追加される https://t.co/2yQKcQosg5」 / Twitter
- N2935: Make false and true first-class language features - n2935.pdf
- mod_poppoさんはTwitterを使っています: 「C標準にtypeofが入ることに驚く人たちはtypeofに気を取られるあまり、typeofと一緒にremove_qualsというイマイチなネーミングのやつが入ろうとしていることに気づかないのだ」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています: 「@mod_poppo WG21の方から「remove_quals という名前はやや一貫性に欠け、C と C++の前方互換性の妨げになる。」と言われてますね https://t.co/xTOONUOEiA」 / Twitter
- Consider renaming remove_quals.docx - p2541r0.pdf
- mod_poppoさんはTwitterを使っています: 「C言語にdecltypeが入ったらそれこそ非互換だろうが(C言語にreference型はないのだから)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C++のdecltypeは既存の(コンパイラー拡張の)typeofとはセマンティクスが異なるからこそ別のキーワードになったのだと思うし、既存のtypeofと同じようなセマンティクスの機能を導入しようという時にtypeofというキーワードが選択されるのは別に不思議ではない」 / Twitter
- 🇺🇸 Robert C. Seacord 🇺🇦さんはTwitterを使っています: 「Cool stuff that got into C23 this week: - nullptr - typed enumerations - improved normal enumerations - Comma omission and comma deletion - constexpr - auto - TIME_MONOTONIC - bit-precise bit-fields - relaxed requirements for variadic parameter lists - embed」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C23の_BitIntの最大幅BITINT_MAXWIDTHはULLONG_WIDTH以上であることしか規定されてないんだよな」 / Twitter
- FadisさんはTwitterを使っています: 「C23の策定が進んでいる。C23は来年の11月に完成を目指しているC17の後継にあたる新しいC言語の標準規格。C23ではclangの拡張として実装されていたbit数指定付き整数型_BitInt(n)が標準入りする見通しになっている https://t.co/GKygcKjcu1」 / Twitter
- C23 - cppreference.com
- FadisさんはTwitterを使っています: 「さらに複数のC++で導入された仕様がC言語にバックポートされる。まずUTF-8文字列を表すリテラルはunsigned char型の配列になる。変更の理由はC++20のchar8_t導入の経緯と同じで、UTF-8を扱う場合に文字がsignedの可能性があるとキャストしないと意図した文字の操作ができないから」 / Twitter
- FadisさんはTwitterを使っています: 「またC23ではC++で採用されたのと同じ形式の属性([[]])の記法が導入される。C++17までにC++に導入された6種類の属性のうち[[carries_dependency]]を除く5つがサポートされる他、副作用がなく同じ引数での実行結果は常に同じになると期待して良い事を表す[[reproducible]]等が用意される」 / Twitter
- FadisさんはTwitterを使っています: 「C23ではnullptr_t型とnullptr_t型のグローバル変数nullptrが導入される。これはC++11でC++に導入されたnullptrと同じ振る舞いをする。導入の理由もC++と同じで、C11で導入された_Genericを使う場合にNULLが整数として解釈されるのを回避する為」 / Twitter
- FadisさんはTwitterを使っています: 「他にもC23ではtrueとfalseがキーワードとして予約される。キーワードを使った結果は従来stdbool.hに定義されていたマクロと同じ効果になる。C言語にはC99でbool型が導入されたが、従来trueとfalseはマクロだった為複数のライブラリでなされた定義が衝突する事があった。変更はこれを防ぐ為のもの」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C23でfesetmode/fegetmodeという関数が追加されるのか」 / Twitter
- C2x Charter(C2x 憲章) - Qiita
- C言語の次期ISO標準となるC2x
- C2x - Wikipedia
- WG 14 N 2086 -- C2x Charter
- ISO/IEC 9899:yyyy - n2731.pdf
- The ISO C WG has started working on a new standard: C2X : C_Programming
- C – Preliminary C2x Charter | Hacker News
- mod_poppoさんはTwitterを使っています: 「C23の直近の会議の議事録が出てる。remove_qualsはtypeof_unqualになったっぽい? https://t.co/3VXcsAZz5M」 / Twitter
- https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3044.txt
- mod_poppoさんはTwitterを使っています: 「この間の記事でC標準の属性を6個挙げたけど、N2956が採択されたということは[[unsequenced]]と[[reproducible]]も追加か」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C11/17からの変更: 改名(alternative spellingあり):_Alignas→alignas, _Alignof→alignof, _Bool→bool, _Static_assert→static_assert, _Thread_local→thread_local 新規:constexpr, false, nullptr, true, typeof, typeof_unqual, _BitInt, _Decimal128, _Decimal32, _Decimal64」 / Twitter
- 最新C++(C++23)からみた最新C(C23) - Qiita
C11
スラド
- [C/C++規格: 10] C11の新機能 その1 -- 新機能概要 | Yoh2の日記 | スラド
- [C/C++規格: 11] C11の新機能 その2 -- 型ジェネリック式 | Yoh2の日記 | スラド
- [C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
- C言語は滅びるべきか | スラド デベロッパー
Qiita
- C17 (not C++17) - Qiita
- C11 の _Generic の罠 - Qiita
- C言語(C11)で可変長の配列を使う方法 - Qiita
Twitter
- LLVM / Clang 6.0 Should Be Released Soon With Its Many New Features - Phoronix
- Fadisさんのツイート: "PhoronixによるとLLVM 6.0からC言語の標準にC17が選べるようになるらしい。そんな標準あったんか、と思って調べたらC11から既知の問題を修正したマイナーアップデートらしい。そしてもう2018年だけどまだドラフトらしい… https://t.co/8qTVqGgxWg"
- ドッグさんはTwitterを使っています: 「今の C って配列の最後の要素の1つ後ろまでポインタ取れるのか int main() { int array[3]; int *p = NULL; return p < &array[3]; }」 / Twitter
- ドッグさんはTwitterを使っています: 「@ryutorion 詳しくないのですが,どうやら C11 からの仕様らしいです: https://t.co/hiLd35nmHf (6.5.6-8)」 / Twitter
- www.iso-9899.info/n1570.html
- M.KさんはTwitterを使っています: 「@Linda_pp これって,ポインタの計算がオーバーフローするかどうか,とかの話では?」 / Twitter
- ドッグさんはTwitterを使っています: 「@ryutorion ポインタを足した結果が配列の最後の要素の1つ後ろを指す時,それがオーバーフローしてはいけない(逆に言うとオーバーフローしなければ OK)→ 1つ後ろの要素を指すポインタは合法 と読んだのですが,間違ってるかもしれないです」 / Twitter
- M.KさんはTwitterを使っています: 「@Linda_pp どちらかというと,ループの終了条件として最後の次のポインタを指すことはままあることなので,それがオーバーフローしないことを保証すること,って話なのかなと.1つ後ろを取ることが合法って言うよりは.」 / Twitter
- FadisさんはTwitterを使っています 「Linuxがgccの最低要求バージョンを4.8から4.9に上げるらしい。ARM向けのカーネルをビルドする際にgcc-4.8がICEする不具合の回避などのつらいコードを消したい、C11の_Genericを使いたいといった理由かららしい https://t.co/bb1C2EKelc」 / Twitter
- Linux Kernel Raising Compiler Build Requirement To GCC 4.9 - Phoronix
- FadisさんはTwitterを使っています 「まだサポートが終了していないRHEL7は標準のコンパイラがgcc-4.8だが、そんな環境で標準のコンパイラで最新のカーネルビルドするヤツの為にgcc-4.8をサポートし続けるのは辛くなったという判断らしい」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C言語だと型にalignasをアタッチできない?」 / Twitter
- mod_poppoさんはTwitterを使っています: 「構造体の場合は最初のメンバーにalignasをつければ構造体全体につけるのと実質同じになる気がする」 / Twitter
- C11 の機能 - Oracle® Solaris Studio 12.4: C ユーザーガイド
- C言語の最新事情を知る: C11の仕様-脆弱性対応に関連する機能強化点 - Build Insider
- C11の仕様-それ以外の主な機能強化点[C言語] - Build Insider
- DCL03-C. 定数式の値をテストするには静的アサートを使う
- _Static_assert とは - とくにあぶなくないRiSKのブログ
- アトミック操作ライブラリ - cppreference.com
- IBM Knowledge Center - _Static_assert 宣言 (C1X)
- c - The concept of a type name scope in C11 - Stack Overflow
- N1570 April 12, 2011 ISO/IEC 9899:201x
- Wayback Machine
- /std (言語の標準バージョンの指定) | Microsoft Docs
- Visual Studio に C11 および C17 サポートをインストールする | Microsoft Docs
- Visual Studio での C++ の新機能 | Microsoft Docs
- Microsoft C/C++ 言語の準拠 | Microsoft Docs
- 7594591200220899443さんはTwitterを使っています 「この論文の例やべえ」 / Twitter
- Shafik YaghmourさんはTwitterを使っています 「This paper "A Simple, Possibly Correct LR Parser for C11" is a treasure trove of cursed code: https://t.co/D2zS3Fzl59 #programming https://t.co/ewsWNnqE0M」 / Twitter
- A Simple, Possibly Correct LR Parser for C11 - jourdan2017simple.pdf
- mod_poppoさんはTwitterを使っています: 「#C言語のざんねんなしよう事典 _Noreturnと<stdnoreturn.h>: C11で導入されたが早くもC23で要らん子になりそう。C23ではC++と互換な[[noreturn]]属性が導入される見込みなので。わざわざヘッダーまで用意してもらったのに……。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「#C言語のざんねんなしよう事典 Annex Kのbsearch_s: Annex KといえばMSVCのアレ(名前が_sで終わる「安全な」関数)を規格に取り入れたもの……と思いきや、bsearch_sは比較関数の引数の順序が変わっている。しかも型がvoid *とかconst void *だから間違えてもエラーは出なさそう。どうしてこうなった」 / Twitter
- mod_poppoさんはTwitterを使っています: 「(続き)つまりMSVCはAnnex K準拠のbsearch_sを提供することはできないのだ。マジでどうしてこうなった」 / Twitter
- えびちゃんさんはTwitterを使っています: 「intN_t は 2 の補数表現なのも定めてたはずで、そうでない処理系では提供されないみたいなのがあったような」 / Twitter
- mod_poppoさんはTwitterを使っています: 「intN_tが2の補数表現を要求されてるの知らなかった(N1570の7.20.1.1.1)」 / Twitter
C99
除算
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、知らんかった。 C言語系: -13 / 10 --> -1 Python3: -13 // 10 --> -2 (そして Python3の方が数論的には正しいと) https://t.co/pX8Rd3Qfb4」 / Twitter
- python - Integer division by negative number - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお C99とC++11以降は上記の通りだが、それ以前は処理系依存だったらしい。 (ただし、このC99/C++11仕様は現状追認で決まっただけだろうな) https://t.co/x8L0ur3lvi」 / Twitter
- 整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
引数
- va_argマクロの奇妙な制限事項 - yohhoyの日記
- 可変引数リストと文字列とヌルポインタの特別な関係 - yohhoyの日記
- 関数パラメータリストと配列型 - yohhoyの日記
- C/C++関数引数の評価順序 - yohhoyの日記
書式文字列
- 書式指定%lsとwchar_t型 - yohhoyの日記
- printfファミリ書式指定%nの応用例 - yohhoyの日記
- printfとsize_t型 - yohhoyの日記
文字列・メモリ
- scanf文字列取得と動的メモリ確保 - yohhoyの日記
- strncpy関数仕様のナゾ - yohhoyの日記
- パスワードとmemset関数 - yohhoyの日記
- malloc(0)の振る舞い - yohhoyの日記
- 長さゼロ on 文字列/メモリ操作関数 - yohhoyの日記
- Duff's device - yohhoyの日記
配列・ポインタ
- 可変長配列の正式名称 - yohhoyの日記
- 配列有効範囲外を指すポインタ値は存在が許されない - yohhoyの日記
- ポインタ型への非NULLアノテーションもどき - yohhoyの日記
リテラル・定数・初期化
- 初期化子リスト要素数不足時の初期値 - yohhoyの日記
- 文字列リテラル最大長の最低保証 - yohhoyの日記
- size_tと値-1 - yohhoyの日記
- 複合リテラルの有効期間 - yohhoyの日記
- 数字から数値への変換: ch - '0' - yohhoyの日記
- 文字列リテラルは変更できないlvalue - yohhoyの日記
- ヌルポインタの内部表現 - yohhoyの日記
- mod_poppoさんはTwitterを使っています 「C言語の\uxxxxってコードポイントが00A0未満の文字を指定できないんだ(ただし$,@,`は例外的に指定できる)」 / Twitter
- mod_poppoさんはTwitterを使っています 「識別子中で使えないのは仕方ないという気がするが、リテラル中でも使えないのは意外」 / Twitter
演算子
- 条件演算子と左辺値の扱いの差 - yohhoyの日記
- sizeof演算子とオペランドの評価 - yohhoyの日記
blog
- C言語の標準規格一覧 - yohhoyの日記
- 環境依存コード切り替えマクロ - yohhoyの日記
- asmキーワードの扱いの違い - yohhoyの日記
- ビットフィールド幅の上限値 - yohhoyの日記
- main関数のreturn省略 - yohhoyの日記
- main関数returnと他スレッドの関係 - yohhoyの日記
- C11/C++11/POSIXスレッドAPI比較 - yohhoyの日記
- C99のVLAは関数の本体が空でもコードが書ける
- C99 doesn't need function bodies, or 'VLAs are Turing complete'
- C言語の最新事情を知る: C99の仕様 - Build Insider
- プログラミング言語 C の新機能
- IBM Knowledge Center - 複合リテラル式
- Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
- Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
- 関数定義の一部である関数原型形式の関数宣言子の仮引数型並びと、非原型形式の関数宣言子の識別子並び・宣言並び、および関数定義の一部でない関数原型形式/非原型形式の関数宣言子について - Qiita
- Array initialization - cppreference.com
- yoh2さんはTwitterを使っています 「C99 以降、 for ステートメントは for の () 内で宣言した変数が外に漏れないよう、それ自身が独立したブロック (※) になったというのは知ってたけど、if, switch, while, do-while もブロック扱いになってたことをたった今知った。 ※ C99 の for(;;) ... は C89 だと { for(;;) ... } のようなもの」 / Twitter
- ARR32-C. 可変長配列のサイズ引数は適切な範囲内にあることを保証する
- MEM05-C. スタック上で大きなサイズの割り当てを行わない
- The Linux Kernel Is Now VLA-Free: A Win For Security, Less Overhead & Better For Clang - Phoronix
- Warning Options (Using the GNU Compiler Collection (GCC))
- Variable Length (Using the GNU Compiler Collection (GCC))
- 本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
- mod_poppoさんはTwitterを使っています: 「#C言語のざんねんなしよう事典 intmax_t: C99で導入されたが、後付けでint128_tを導入できない原因となってしまった。C ABIの責任は重大なのだ。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「#C言語のざんねんなしよう事典 _Imaginary: 2大CコンパイラーであるところのGCCとClangが実装していない。一部のマイナーなコンパイラーは実装しているらしいが……。余談だが、_Imaginaryを持たない環境で起こる問題の対策としてC11ではCMPLXマクロが導入された。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「#C言語のざんねんなしよう事典 スタック上のVLA: まず、最大長がわからないデータをスタック上に確保するべきではない(スタックオーバーフローの危険があるので)。そして最大長がわかっているデータなら固定長配列で十分である。VLAはC99では必須だったがC11ではoptionalな機能に格下げされた。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「(続き)「スタック上」と書いたのは、mallocで確保したメモリ領域をVLA型にキャストして使うことができるから。こちらはコンパイラと仕様を複雑にする以外の問題はないが、やはりC11ではoptionalに。C23に向けてこちらのVLAを必須に戻そうと言う動きもあるようだが、どうなることやら。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「(続き)ちなみに、allocaとスタック上のVLAを比較した場合、for等のループの中で使った時の挙動が異なる。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「C99で導入された VLA(可変長配列) はチューリング完全だった。ここでは配列の添え字にどんな式を入れてもよいので int main(int argc, char *argv[printf("Hello")]) { printf(" world!\n"); } のようなことができてしまう。 (C11ではVLAは標準でなくなった) https://t.co/PSasvEiZG5」 / Twitter
- Microsoft Word - C99RationaleV5-10.doc - C99RationaleV5.10.pdf
OpenMP
- インテル® C++/Fortran コンパイラーによる OpenMP* 3.1 仕様のサポート | iSUS
- OpenMP* 4.x による新しいレベルの並列化 (全2回) | iSUS
- 現在と将来の OpenMP* API 仕様 | iSUS
- OpenMP* 5.0 TR7 の仕様抜粋訳 | iSUS
- Fadisさんのツイート: "OpenMPの最新の仕様、OpenMP 5.0がリリースされた。OpenMP 5.0では明示的にflushしないと一貫性が保たれないメモリのサポートや、タスク間でのリダクションのサポート、配列から範囲と間隔を指定して部分配列を取り出す文法他大量の機能が追加される https://t.co/ppnZMPGBBT"
- OPENMP 5.0 IS A MAJOR LEAP FORWARD - OpenMP
C++
その他
- C++20 - cpprefjp C++日本語リファレンス
- is_pod - cpprefjp C++日本語リファレンス
- algorithm - cpprefjp C++日本語リファレンス
- 符号付き整数型が2の補数表現であることを規定 - cpprefjp C++日本語リファレンス
- C++20は最終版に、C++23がスターティングブロックに
- オープン化が進むC++の現状と展望 - Speaker Deck
- MSVC C++20 and the /std:c++20 Switch | C++ Team Blog
- 14882: Contents
- -fimplicit-constexprオプション - yohhoyの日記
- C++オブジェクト基本操作:Copyable/Movable/Swappable - yohhoyの日記
- hsjoihsさんはTwitterを使っています: 「n 年前に @EzoeRyou さんの https://t.co/0iEky1lDKH に「int a[5]; に対して a + 5 は合法だが、&a[5] という式は a[5] という違法なものを含むのでアウトだったりしないか?」と訊いて「多分アウトじゃないかなぁ」みたいな返事を頂いた記憶があるが、ちゃんと規格を追ってこれ確認しておきたいな」 / Twitter
- 即時関数 - cpprefjp C++日本語リファレンス
- CEDEC2020 - Speaker Deck
- オーバーロード関数とテンプレート引数推論 - yohhoyの日記
- std::views::splitとstd::views::lazy_split - yohhoyの日記
- Order of evaluation - cppreference.com
- [C++]沼底のvoidify() - 地面を見下ろす少年の足蹴にされる私
本の虫
- EzoeRyou/cpp-book: C++11 textbook
- EzoeRyou/cpp14-appendix: Appendix for C++14 features
- EzoeRyou/cpp17book: textbook for C++17
- cpp17book/003-cpp14-core-binary-literals.md at master · EzoeRyou/cpp17book
- cpp17book/004-cpp14-core-digit-separator.md at master · EzoeRyou/cpp17book
- cpp17book/017-cpp17-core-u8-character-literals.md at master · EzoeRyou/cpp17book
- 本の虫: P1337R0: 標準ライブラリへのエイリアスを追加してC++を復活させる提案
- Ryou Ezoeさんのツイート: "転職先を探しているのだが、この私のコネを持ってしてもC++17を使っている企業はなかなか見つからないぞ。"
- Ryou Ezoeさんのツイート: "プログラマー以外の仕事をするとしたら何だろ。クライミングジムのスタッフとかやりたい。給料低いだろうけど。"
- Ryou Ezoeさんのツイート: "C++を単に書くだけの仕事なら、普通に海外に行ったほうがいいんだろうなぁ。"
- 本の虫: 標準C++規格が3年おきに制定される理由
- 本の虫: C++20標準規格がほぼ固まった
プリプロセッサ
- 可変引数が空でない場合のトークン置換 - cpprefjp C++日本語リファレンス
- __has_include - cpprefjp C++日本語リファレンス
- トライグラフの削除 - cpprefjp C++日本語リファレンス
キーワード
- auto - cpprefjp C++日本語リファレンス
- registerキーワードを非推奨化 - cpprefjp C++日本語リファレンス
- 非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
- alignas - cpprefjp C++日本語リファレンス
- alignof - cpprefjp C++日本語リファレンス
- static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス
- P1152R0: Deprecating <code>volatile</code>
- 論理 AND 演算子:&& | Microsoft Docs
リテラル
- 生文字列リテラル - cpprefjp C++日本語リファレンス
- UTF-8文字リテラル - cpprefjp C++日本語リファレンス
- 2進数リテラル - cpprefjp C++日本語リファレンス
- 数値リテラルの桁区切り文字 - cpprefjp C++日本語リファレンス
- 十六進浮動小数点数リテラル - cpprefjp C++日本語リファレンス
- Ryo SuzukiさんはTwitterを使っています 「size_t 用の整数リテラルサフィックス uz が C++23 に入った! auto i = 0uz; // size_t 型」 / Twitter
式と文
- 整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
- 厳密な式の評価順 - cpprefjp C++日本語リファレンス
- if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス
- constexpr if 文 - cpprefjp C++日本語リファレンス
- 非推奨だった bool 型に対するインクリメント演算子を削除 - cpprefjp C++日本語リファレンス
- 非推奨だった古い例外仕様を削除 - cpprefjp C++日本語リファレンス
- ビットフィールドのメンバ変数初期化 - cpprefjp C++日本語リファレンス
- C++ if文再訪 - in neuro
- 高梨陣平さんはTwitterを使っています 「この記事がものすごくわかりやすかった。C++のLambdaの話。contextのcaptureが内部でどのように実装されているか、コンパイラの解説になっている。 https://t.co/aR0eDTQwCH」 / Twitter
- LobstersさんはTwitterを使っています 「Demystifying C++ lambdas https://t.co/u1dgCRTSfL #c++ https://t.co/cHk3zxlKeB」 / Twitter
- Demystifying C++ lambdas - Sticky Bits - Powered by FeabhasSticky Bits – Powered by Feabhas
- 一貫比較 - cpprefjp C++日本語リファレンス
属性
- [[fallthrough]]属性 - cpprefjp C++日本語リファレンス
- [[maybe_unused]]属性 - cpprefjp C++日本語リファレンス
- [[nodiscard]]属性 - cpprefjp C++日本語リファレンス
- 名前空間と列挙子への属性付加を許可 - cpprefjp C++日本語リファレンス
- 不明な属性を無視する - cpprefjp C++日本語リファレンス
- [C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - Qiita
- 謎の用語niebloid - にゃははー
静的リフレクション案
- 島鉄雄さんのツイート: "Common(Emacs) Lisp のマクロはただのリスト操作に過ぎないんで、他の言語が真似する事は絶対出来ないだろう。 強いて言えば C のマクロで既にある程度カバーできてる。 リフレクションやメタクラスは、Meta Object Protocol (いわゆる MOP)の範疇でしょ。マクロではない。… https://t.co/UDQ62hNh7D"
- Ryou Ezoeさんのツイート: "今、C++は関数型プログラミングを取り入れるめどがついているので、C++20でお手軽な関数合成ぐらいできるようになるし、次かその次の規格ではモナドも入るだろう。次にC++が狙うのはCommon Lispのマクロだ。"
- Ryou Ezoeさんのツイート: "それを言い出すと本物のオブジェクト指向を実装している言語はSimulaかSmalltalkだけになってしまう。… "
- 島鉄雄さんのツイート: "Simula とか知らないけど、静的リフレクションとメタクラスを Lisp のマクロに結びつける事に違和感があった Lisp のマクロはリストをいじって見た目を変えるだけのものと考えるべき (dolist (a b) ...) dolist はマクロで、b はリスト型でないといけないけど、マクロはそんな事分からず変形だけする… https://t.co/ctaYDsrq7E"
- Ryou Ezoeさんのツイート: "C++の静的リフレクションも、どのように実装するべきかまだ議論中だが、1つの案としてはソースコードのトークン列を得てそこに対して変形ができる案がある。… "
- 島鉄雄さんのツイート: "なるほど! それなら納得です。Elixir は Lisp 並みのマクロがある事も売りの一つのようだけど、AST をいじくるという地獄の様な仕様になってしまってるので、そうならないように祈るばかりです。… "
- Ryou Ezoeさんのツイート: "C++で策定中の静的リフレクション機能は、ソースコード情報をコンパイル時処理で得るだけではなく、改変するという機能もセット。… "
- 島鉄雄さんのツイート: "了解です!説明ありがとうございました。… "
パターンマッチの網羅性検査の仕様案
- ケケモコソカメニハさんはTwitterを使っています 「@gogo_gaspard @wraith13 @mandel59 到達しないコードに警告を出してくれるコンパイラは大概パターン漏れにも警告出してくれる気がしますので、逆にdefaultを書いていると要素を追加した時に警告が握りつぶされて困ることないですか」 / Twitter
- kinabaさんはTwitterを使っています 「https://t.co/jdau702kNX C++のパターンマッチ(の網羅性検査の仕様案;5節)でこの話があって、はは〜と思ったの思い出した。C++なのでenumの外の値は来得るので防衛的default書きたくなるが、それで網羅性検査が無効になるは困るので、ハックで避けるか網羅性に寄与しないdefaultみたいな構文いれるか」 / Twitter
- Exhaustiveness Checking for Pattern Matching - p2211r0.pdf
std::unreachable()
- FadisさんはTwitterを使っています 「C++23ではコード上のある位置に到達しない事を明示する関数std::unreachable() (P0627)が追加される。C++コンパイラは[[noreturn]]された関数が返る可能性がある場合警告を出すが、[[noreturn]]でない絶対返らない関数を呼んでいる場合コンパイラには判断がつかず警告が出る https://t.co/l4ctAuj6wL」 / Twitter
- p0627r6.pdf
- FadisさんはTwitterを使っています 「[[noreturn]]はC++の機能なので、戻ってこないC言語の関数には[[noreturn]]は付いていない。このような場合に関数の呼び出しの後でstd::unreachable()を呼ぶと、コンパイラはstd::unreachable()に到達する事は決して無い(=そこに分岐してこないかそこまでのいずれかの処理が返らない)と解釈する」 / Twitter
- FadisさんはTwitterを使っています 「面白いのはstd::unreachable()の定義で、この関数は「必ず未定義動作になる」事が保証される。C++ではある条件でコードを実行した結果未定義動作になる場合、コンパイラはそのコードの実行時にそのような条件が決して成立しないと考えて良い事になっている(N4860 §4.1.1-5) https://t.co/wlccdE614g」 / Twitter
- C++ Draft International Standard - N4860.pdf
- FadisさんはTwitterを使っています 「直前の関数が返ったらstd::unreachable()が実行される(=未定義動作になる)のであれば、直前の関数が返ることは決して無いと判断できる。このため複数のコンパイラで独自拡張で提供されているstd::unreachable()相当の機能が既に未定義動作になる関数として実装されており、標準はそれに合わせたらしい」 / Twitter
- FadisさんはTwitterを使っています 「関数にある値が入ってきた場合に未定義動作となる場合、コンパイラは入力値がその値で入ってくる事は決して無いと考えて良い。これは最適化の過程で値がとりうる範囲を絞り込むための重要な情報として用いられる。このためstd::unreachable()は不要な条件分岐を削る為のヒントとしても活用が期待される」 / Twitter
- FadisさんはTwitterを使っています 「libc++15からこのstd::unreachable()が利用可能になるらしい。Clangには元々同様の「必ず未定義動作になる」ビルトイン関数__builtin_unreachable()が用意されていたので、libc++の実装はこのビルトイン関数が利用可能な場合それを呼ぶだけのラッパーになっている https://t.co/vqort5jKoD」 / Twitter
- llvm-project/unreachable.h at main · llvm/llvm-project
static_vector
- FadisさんはTwitterを使っています: 「C++の標準ライブラリにstatic_vectorを入れようという提案(P0843)がなされている。static_vectorはvectorのように操作できるシーケンシャルコンテナだが、テンプレート引数として最大要素数を取り、最大要素数分の領域をメンバとして直接持つ事でアロケータを不要にしている https://t.co/8kCgNGTJfE」 / Twitter
- static_vector
- FadisさんはTwitterを使っています: 「メモリの確保はそれなりに高コストな処理なので、性能に大きく影響するクリティカルパスの中ではvectorの要素数を変える操作が許容できないという事がしばしばある。static_vectorはそのような状況でも標準コンテナと同じ操作方法で要素の追加削除を行うコードを書けるようにするコンテナ」 / Twitter
- FadisさんはTwitterを使っています: 「このようなコンテナはBoost、Folly、EASTL等の複数のC++ライブラリで提供されてきたが、提案されているのはBoostに実装されていたstatic_vectorをベースに、比較を三方比較演算のオーバーロードにする等のC++20の標準コンテナの要件に合わせた近代化を行った物」 / Twitter
UCN
- FadisさんはTwitterを使っています 「C++のuniversal-character-namesの定義をUnicodeのUAX#31に基づく物に変えようという提案がなされている。C++の識別子に絵文字を使った場合の不思議な振る舞い等をを解消するのが狙い。また提案には移植性のあるC++のコードにはNFCによる正規化を要求する事も盛り込まれている https://t.co/DgYWjxOV5I」 / Twitter
- C++ Identifier Syntax using Unicode Standard Annex 31
- FadisさんはTwitterを使っています 「C++11以降のC++では識別子にUnicode文字を使う事ができる。ただ識別子である以上制御文字等を好き放題使われても困るので、識別子に使えるUnicode文字を定める必要があった。この機能が提案された当時Unicodeには丁度良い文字の分類が無かった為、C++の規格には使える文字の範囲が全て列挙されている」 / Twitter
- FadisさんはTwitterを使っています 「このリストがuniversal-character-namesだが、Unicodeは膨大なので実際には入っていないと困る文字がこの範囲に入っていなかったり、入っているべきではない文字が含まれていたり、比較的最近Unicodeに追加された絵文字等はダメだったりするなど「ちゃんと調べないと使える文字かわからん」状態だった」 / Twitter
- FadisさんはTwitterを使っています 「UAX#31はUnicodeの文字のうち識別子に使うのに適している文字のグループをUnicode側が定めた物で、提案はこれを使ってuniversal-character-namesをID_Startまたは_から始まりXID_Continueが0個以上続く物、と定義し直し、リストの問題を解消すると共にC++の規格が最新のUnicodeに追従する必要をなくす」 / Twitter
- FadisさんはTwitterを使っています 「現行のC++ではUnicode絵文字の一部だけが識別子に使える状態になっているが、提案されている変更では全ての絵文字が使えなくなる。使えなくする側に倒したのは、絵文字にはEmoji Modifier Sequence等のややこしいルールがあり、C++がこれらをどう扱うかについてはより慎重な議論が必要だかららしい」 / Twitter
- FadisさんはTwitterを使っています 「で、ここのgccの実装状況によると、gcc-12以上なら-std=c++2bが指定されている場合に識別子に使えるUnicode文字が新しく提案されている物になるらしい https://t.co/XPytv0cVgX」 / Twitter
- C++ Standards Support in GCC - GNU Project
- FadisさんはTwitterを使っています 「仮にEmoji Modifier Sequencesを認めるとすると、肌の色が異なる👋は同じ識別子と見做されるべきなのか、違う識別子と見做されるべきなのか、みたいな問題が出てくるもんな…」 / Twitter
Carbon
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Carbon (先日公開されたC++の後継言語) の呼び出し規約に関する考察。Carbonの通常の引数は(C++でいうところの) const T& で渡されるが、コンパイラは必要に応じてこれを即値Tとして扱うことができる。これによりコピーの必要が減り、多くの最適化の可能性が生まれる。 https://t.co/Vjx9R89vYv」 / Twitter
- Carbon's most exciting feature is its calling convention
- Google、C++後継目指す実験プロジェクト「Carbon」を発表 | OSDN Magazine
blog
- Designated Initialization @ C++ - yohhoyの日記
- C++20 Contract - in neuro
- [C++]さらに出来るようになったconstexpr(C++20) - 地面を見下ろす少年の足蹴にされる私
- static variableの初期化順序 - in neuro
- コンセプトのパラメータ置換失敗はハードエラーではない - yohhoyの日記
- Static Initialization Order Fiasco - in neuro
- [C++]Boost.PFRの実装の解説のような。 - 賢朽脳瘏
- コンセプト制約式の包摂関係とオーバーロード解決 - yohhoyの日記
- WG14 redirect service - yohhoyの日記
- WG21 redirect service - yohhoyの日記
- [C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私
- [C++]コンセプトの5景 - 地面を見下ろす少年の足蹴にされる私
- C++ 規格書 - C++ の歩き方 | cppmap
- C++23 の新機能 - C++ の歩き方 | cppmap
- Taku KudoさんはTwitterを使っています 「auto (型推論) の多用は単に怠け者と勘違いされがちだけど、暗黙の型変換が動くのではといった余計な詮索が入り、いまとなっては左辺に型を書くのは読みにくく感じる。議論の余地はあるが、AAAスタイルで書きたい。https://t.co/b6ncBDWpKu」 / Twitter
- GotW #94 Solution: AAA Style (Almost Always Auto) – Sutter’s Mill
- Eigen: Common pitfalls
- 本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
- seyko2/cfront-3: self education and historical research of the C++ compiler cfront v3
- 1 << 31 == ? - yohhoyの日記
- おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
- 可変長テンプレートでもstd::source_locationを使いたい! - in neuro
- C++のiostreamの<<を導入したのはストラウストラップ - Arantium Maestum
- std::generator<R> - yohhoyの日記
- [C++]集成体のコピー/ムーブコンストラクタを制御する - 地面を見下ろす少年の足蹴にされる私
- [C++]type punningとオブジェクト生存期間 - 地面を見下ろす少年の足蹴にされる私
- [C++]地に足のついた範囲for文 - 地面を見下ろす少年の足蹴にされる私
Qiita
- C++20便利機能の紹介:自動joinスレッドと停止機構 std::jthread, stop_token - Qiita
- C++20コルーチンで遊ぶ with OpenSiv3D - Qiita
- C++20コンセプト入門以前 - Qiita
- C++コルーチン拡張メモ - Qiita
- トライグラフが廃止だって??! - Qiita
- mod_poppoさんはTwitterを使っています 「C++のエラーメッセージの改善のために本当に必要だったのはコンセプトではなく、アドホックなオーバーロードの廃止だったのか……?」 / Twitter
- C++20コンセプト時代のエラーメッセージとの付き合い方 - Qiita
- 【C++】メソッドチェーンにおける未定義動作 - Qiita
Twitter
static operator()
- FadisさんはTwitterを使っています: 「C++のoperator()にstaticをつけられるようにする提案(P1169)。提案ではoperator()をstaticなメンバ関数にできるようにする他、staticで良いはずなのにstaticにできないoperator()の大きな発生源であるキャプチャのないラムダ式についてもstaticにする記法が追加される https://t.co/D7uHjVzz4C」 / Twitter
- static operator()
- FadisさんはTwitterを使っています: 「現状C++ではメンバ関数として定義された演算子オーバーロードをstaticにできない。これはユーザ定義型のインスタンスに対する演算を定義するという演算子オーバーロードの役割から言えば自然だが、C++ではしばしば状態を持たないoperator()が定義された型を処理内容を受け渡す手段として用いる」 / Twitter
- FadisさんはTwitterを使っています: 「提案によるとstaticでないメンバ関数を呼ぶ場合、たとえデータメンバに一切アクセスしなかったとしてもstaticなメンバ関数を呼ぶ場合と比較してコンパイラが余計な命令を吐くらしい。operator()をstaticにできない事には技術的な利点がない一方で、このオーバーヘッドを強いられる欠点がある」 / Twitter
- FadisさんはTwitterを使っています: 「ラムダはoperator()を持つ一意な型を作るのとほぼ同義なので、ラムダにキャプチャが無い場合ラムダのoperator()もstaticになって欲しい。ただ暗黙にstaticにするとdecltype(&T::operator())の型が変わって破壊的変更になってしまう為、operator()をstaticにしたいラムダにはstaticを明示的に付ける」 / Twitter
histric
histric-1
- Fadisさんのツイート: "Haskellを学んできたマンはしばしばC++で>>=をオーバーロードして関数を繋ぎたがるが、大変残念な事にC++の>>=は右結合なので、ストレートに実装した場合その関数は期待した順序で実行されない"
- でちまるさん(実際かわいい)さんのツイート: "なので<<=を使えば全て解決する… "
- Fadisさんのツイート: "C++20で符号付き整数の表現が規格で定まった事でC++17まであった不思議仕様「符号無しを符号付きに変換すると2の補数表現の値が得られるが、符号付きを符号無しに変換した結果は実装依存(n4659 §7.8)」がC++20では「整数型は他の整数型に変換できる(n4800 §7.3.8)」だけになったのは大きい"
- Fadisさんのツイート: "Unicodeでは大文字小文字の対応がある文字はどれかが規格で定められていて、全角アルファベット等も含まれている。ここに大文字小文字を区別しない古典的なファイルシステムが合わさると、UTF-8のファイル名はascii外の文字でも大文字小文字を区別しないべきではという悪魔のproposalが誕生するらしい"
- Fadisさんのツイート: "C++20のconceptは少なくとも言語自体にとっては「boolを返すメタ関数をconceptと一目でわかる書き方で書く方法」と「そのメタ関数を使ってconceptと一目でわかる書き方でSFINAEする方法」のセットだから従来のC++から大きな変化ではないよ。標準ライブラリ側はこれを活用して大きく変わるけど"
- FadisさんはTwitterを使っています: 「C言語のポインタは幅広い用途で使えるが、その万能さこそが静的型付け言語のチェックを甘くする原因になる。だからC++ではポインタの用途の一部だけを満たす参照やoptional、スマートポインタ等が提供されていて、ポインタはどうしてもポインタの万能さが必要な時にやむなく使う物になっている」 / Twitter
- FadisさんはTwitterを使っています: 「gcc10からC++20のコルーチンの試験的なサポートが入るらしい。コルーチンは特定の位置で実行を止め、後で続きから実行ができるような関数で、非同期処理をまるで同期のような読みやすい形で書く、無限に値の列を吐き出す関数を作る、といった使い方ができる https://t.co/kXoubQDT0M」 / Twitter
- Experimental Support For C++20 Coroutines Has Landed In GCC 10 - Phoronix
- セクスィ・ナカナカピエロさんはTwitterを使っています: 「@fadis_ @adhara_mathphys Pythonでいうgenerator(yield文)みたいなやつですか?」 / Twitter
- FadisさんはTwitterを使っています: 「@NakanakaPierrot yieldのようなものをC++で実装するために使うことはできますが、コルーチン自体の返り値はIterableではありません。コルーチンはPythonで言うyieldやasync/awaitといった物をライブラリで実現するための土台となる機能です」 / Twitter
- FadisさんはTwitterを使っています: 「コルーチンには「コルーチンから呼んだ関数がyieldしたらコルーチンの呼び出し元まで戻る(=スタックを丸ごと保存する)」stackfulと「コルーチンから呼んだ関数がyieldしてはいけない(=コルーチンのローカル変数だけ保存する)」stacklessの2種類があって、C++の言語機能に入ったのは後者」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「C++ の場合は A を継承した B と C が有って、B と C を継承した D は A を2つ持つ事になって人間が混乱するってのがあって良くないのだろう。(コンパイラは曖昧な時はエラーにするので混乱しない) なので、仮想継承を使う事になるけど、そうすると仮想関数呼び出しがかなり遅くなるというのがある。 https://t.co/fh1ub7l2zu」 / Twitter
- mattn and 100 othersさんはTwitterを使っています: 「オブジェクト指向じゃなく多重継承が良くないよねって言われてるのに「オブジェクト指向は悪」って言ってるの見るとモヤモヤする。そもそもオブジェクト指向のコンセプトに継承とか無い気がするけど。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「仮想継承時の仮想関数呼び出しがどれだけ遅くなるか、ベンチマークしてみた。 この状況だと倍遅くなった。(正しい計測コードになってるかは若干不安が有るが…) https://t.co/4qI3IglOfr https://t.co/vbUPt2sZom」 / Twitter
- 仮想継承時の仮想関数呼び出しのベンチマーク
- 7594591200220899443さんはTwitterを使っています 「ところで四半世紀前ならいざしらず今となってはC++はCの上位互換でもなんでもないわけだけれど、じゃあ具体的にどこのへんが違うんですかというのはたとえば以下のレポジトリによくまとまっている。 https://t.co/BT5DWTcRyn」 / Twitter
- shafik/determine_c_or_cpp: Determine programatically C from C++ as well as various versions
- FadisさんはTwitterを使っています 「もう1つの大きな新機能coroutineも言語機能としては入ったけど、言語が提供するのはstacklessコルーチンなので、現状どこからでも気軽にyield出来るstackfulなコルーチンが欲しかったら「気合で作れ」という修羅の道になっている。C++23も、大きな変化になる気がする」 / Twitter
- yohさんはTwitterを使っています 「d=std::move(s) データ取出し後にはもう興味がない(実際にはデータが残ってることもある) / d=std::exchange(s, {}) 確実にデータ取出し&クリアしておきたい みたいなニュアンスの違いが」 / Twitter
- にゃっほい屋さんはTwitterを使っています 「C++17の畳み込み式を使ったらもうC++14には戻れない。再帰でやるのに比べると圧倒的にコードが読みやすい。ただVisual Studio 2017だとテンプレートの<>の中で畳み込み式をやろうとするとエラーになってしまうのが残念。2019では直ってるらしいけど。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「C++のベストプラクティスにJSと同じで可能ならばすべてconstを付けようというものがあるんですが、(ついさっきまで忘れてた、Effective C++参照)、一方でmoveのためにconstを付けてはいけない場所というものもあって大変だ」 / Twitter
- キノコになりたい🍄さんはTwitterを使っています 「暗黙のムーブ、returnしたい暗黙のムーブ対象オブジェクト(ローカル変数の値or右辺値参照)をすべて右辺値として戻り値型を構築するためのオーバーロード解決にかけて、結果ムーブコンストラクタ等が選択されれば自動ムーブされる なんだ簡単じゃん()」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最新C++でもスマートな解決は無いのだっけ…? (const/non-const operator [] が混在すると(non-const object に対しては)常に non-const operator[] が選ばれる問題) https://t.co/6udj1CuXI9」 / Twitter
- c++ - Force compiler to choose const operator overload - Stack Overflow
- SODA NoriyukiさんはTwitterを使っています 「C++言語の作者であるStroustrupが「int* foo;」のように型名に寄せて書く派で、そのせいで広まったのよね。 でも抽象構文木的には「int *foo;」的に解釈されてるわけで(「int* foo, bar;」がどう解釈されるかを考えても明らか)、誤解を招くので昔から嫌い…」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「これは完全に偏見なんだけど、C++でint* hogeとかint& hageとか書く人は初心者みたいなイメージある」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「1988年刊の最初の「プログラミング言語C++」(もちろん著者はStroustrup)の時点で既に「int* foo;」って書き方をしている。 C言語風の構文規則が嫌いなら(実際C言語の「*」演算子の構文には問題がある)、違う文法を定義すればいいのに… 言語の作者なわけだし…」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「thisを明示的に引数として書けるのはもっとはやくにやるべきだった。cv-qualifierとかref-qualifierみたいなクソみたいな特殊な文法を生み出す前にやれただろうに。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C++でstd::moveをちゃんと使うために、無駄な構造体・クラスのコピーを減らそうとコピーコンストラクタを=deleteしていくと、アホみたいにコピーしてるところ見つかるので、move or copyを明示的に使うRustはわかりやすくて便利。人間は暗黙的な変換に慣れすぎてる」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C++でPromise的なコードや現在のスレッドやバックグラウンドスレッドに小さなタスクを作るときにラムダ多用することになるけど、暗黙的なコピーになっちゃうので一見わからん」 / Twitter
histric-2
- 7594591200220899443さんはTwitterを使っています 「https://t.co/llp4igzqlo 今時C++例外なんて時代遅れですよねーみたいな話。ABIがいけてないからunwindがマルチスレッドにできないとかへーそうなんだという感じ」 / Twitter
- P2544R0: C++ exceptions are becoming more and more problematic
- でちまるさん(実際かわいい)さんはTwitterを使っています 「C++例外は「自爆するしかねえ」ってときに遺言を残すために使うようであって,よその言語みたいにセーフlongjmpとして使おうとするのは誤りやろがい,という定番の話が久々に登場」 / Twitter
- FadisさんはTwitterを使っています 「正常系のループの中でジャンプ目的で飛んでる例外をgdbが拾って発狂する経験を経て人は例外を正しく使おうという気持ちを身につける」 / Twitter
- c++ - How to get the actual type of a template typed class member with Clang? - Stack Overflow
- algorithm - cpprefjp C++日本語リファレンス
- にゃっほい屋さんはTwitterを使っています 「たしかstd::variantのインデックスでのgetのための処理。コンパイル時に処理される部分なので、実行時の処理負荷はどのみち0なのだけれど、コンパイル時間短縮のためにコンパイル時バイナリサーチとかしている。すごいけどstd::variantに64個とか型を指定することあるんだろうか。」 / Twitter
- てゃいのさんはTwitterを使っています 「見てはいけない部分を見てしまった... https://t.co/98rKsdKLT6」 / Twitter
- にゃっほい屋さんはTwitterを使っています 「バイナリサーチじゃないか。64、32、16のようにまとめて処理することで、効率的に再帰回数を少なくしている。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++はCから派生したにもかかわらず、まったく違う哲学の言語になった。C開発者から見ると、C++は頭がおかしい。一方それ以外の言語の開発者からは、Cは「ABI記述言語」に見えるのだ。Cはプログラマを信頼するのに対して、C++はコンパイラを信頼する言語といえるかもしれない。 https://t.co/Ae8j25xmvH」 / Twitter
- The problem with C | cor3ntin
- FadisさんはTwitterを使っています 「P2036R3: Change scope of lambda trailing-return-type 従来のC++では後置の戻り値型を使っても直前に書かれたラムダのキャプチャが戻り値の型の決定に用いられないため、decltype等で型を決定した場合にキャプチャより遠くで宣言された値が使われるのが罠いから変える提案 https://t.co/BHMi5BdrKt」 / Twitter
- Change scope of lambda trailing-return-type
- FadisさんはTwitterを使っています: 「C++のunique_ptrをconstexprにしようという提案(P2273)がなされている。C++20以降のC++ではconstexprでnewとdeleteを使えるが、標準のスマートポインタがconstexprになっていない為コンパイル時にメモリを確保すると突然人力でメモリを管理する苦行を強いられる問題があった https://t.co/lhxOyeZ9si」 / Twitter
- Making std::unique_ptr constexpr - p2273r3.pdf
- FadisさんはTwitterを使っています: 「std::unique_ptrはC++20のconstexprで可能な範囲で無理なくconstexprにできる一方、std::shared_ptrは中でconstexprでは使えないatomicを使っている等の理由で実装に相応の工夫が必要になる。このため提案ではとりあえずunique_ptrだけconstexprにしてshared_ptrのconstexpr化は別で提案するとしている」 / Twitter
- FadisさんはTwitterを使っています: 「C++のオーバーロードの選択でrewrittenでない比較演算オーバーロードの候補を優先度をrewrittenな比較演算オーバーロードの候補より高くしようという提案(P2468)。C++20で導入された比較演算のrewritten candidatesが原因でオーバーロードの解決ができなくなる問題を解決する https://t.co/f8L98o2Wla」 / Twitter
- P2468R1R1: The Equality Operator You Are Looking For
- FadisさんはTwitterを使っています: 「C++20では型が合うa != bのオーバーロードが無い場合に!(a == b )やb != aが可能ならそれらをオーバーロードの候補に含める(rewritten candidates)事になっているが、以下のようなコードでは暗黙のキャストを経て呼び出し可能なオーバーロードの候補が複数生じる https://t.co/8RO3PPagU4」 / Twitter
- [C++] clang 14.0.0 - Wandbox
- FadisさんはTwitterを使っています: 「これらの候補間には優先順位が無い為規格に厳密に沿うとオーバーロードの解決ができずコンパイルエラーになる。実際のコンパイラではそれだと不便なので警告を出しつつコンパイラ固有の方法で優先順位が与えられている。提案はgccで採用されている優先順位を正式な規格にして統一を図ろう、というもの」 / Twitter
- FadisさんはTwitterを使っています: 「C++標準ライブラリにmoveできるがcopyできないかもしれない型を要素として持つfunction、std::move_only_functionを追加しようという提案(P0288)。std::functionは要素の型にcopy可能であることを要求していたため実際にはcopyしない場合でもcopy出来ない型を突っ込めなかった https://t.co/b0zsSKhc0w」 / Twitter
- P0288R9: move_only_function
- FadisさんはTwitterを使っています: 「functionは「引数と返り値の型さえ合っていれば突っ込める」をする為に型消去する。型消去される型はfunctionが要求する全ての操作を備える必要がある為、copyしなくてもcopy可能を求められる。move_only_functionは殆どfunctionと同じように振る舞うが、copyできず型消去される型にcopy可能を求めない」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「libcxxに含まれるstd::sortを改良するまでの長い道のり。STL時代のsortはクイックソートと挿入ソートを組み合わせた方式だったが、C++11では「最悪」ではなく「平均」計算量を規定するようにした。要素数が小さい場合 は強化学習(!)を使って発見された比較方法を使っている。 https://t.co/qR1Do6atKg」 / Twitter
- Changing std::sort at Google’s Scale and Beyond – Experimental chill
- FadisさんはTwitterを使っています: 「C++のメンバ関数のdeleteに理由を表す文字列を設定できるようにしようという提案(P2573)がなされている。deleteされたメンバ関数を呼んだ場合のエラーメッセージをより親切なものにするのが狙い https://t.co/S09FzJHACQ」 / Twitter
- P2573R0: <code>= delete("should have a reason");</code>
- FadisさんはTwitterを使っています: 「C++11では書かないとデフォルトの定義が用いられるコピー/ムーブコンストラクタ、代入演算等に対してそれらの操作を明示的に禁止する為に= deleteを付けられるようになった。元々C++のメンバ関数はprivateにすれば使えなくする事はできたが= deleteでより適切なエラーメッセージを出せるようになった」 / Twitter
- FadisさんはTwitterを使っています: 「これを順当に「よりわかりやすいエラーメッセージを出す」方向に拡張しようとすると「なんでこのクラスはコピーを禁じているの?」がエラーメッセージに出てほしい。というわけでdeleteの後ろに( “理由” )を付けると、そのdeleteされたメンバ関数を踏んだ時に理由が表示されるようにしよう、というもの」 / Twitter
- FadisさんはTwitterを使っています: 「C++の標準ライブラリにflat_mapとflat_multimapを入れようという提案(P0429)がなされている。いずれもBoost.Containerにあった物とほぼ同じ振る舞いをするAssociativeContainerで、イテレータはrandom_access_iteratorを満たす。Boostにはflat_setもあるがそちらは含まれない https://t.co/n2jLmD1q2Y」 / Twitter
- A Standard flatmap - p0429r8.pdf
- FadisさんはTwitterを使っています: 「flat_mapはコンテナの要素を連続したメモリにソートされた順序で配置する。要素を追加する場合はその要素より後ろに来る要素は全て後ろにmoveされる。検索は二分探索を用いる。挿入と削除のコストは高いがメモリに密にデータが置かれる為キャッシュヒット率が高く検索の性能が高い」 / Twitter
- FadisさんはTwitterを使っています: 「提案されているstd版のflat_mapはBoost.Containerのflat_mapと比較してmerge()が廃止されている他、比較演算が三方比較演算子(<=>)を使って定義しなおされている、erase_ifのオーバーロードが用意されている等C++20の標準コンテナの要件に合わせた変更が加えられている」 / Twitter
- FadisさんはTwitterを使っています: 「来週にも出る見通しのgcc 12の新機能についてRedHatの中の人が解説している話。gcc 12では特に指定しなかった場合C++のコードをC++17と見做してコンパイルするようになる他、C++23の新機能がたくさん実装される https://t.co/vYm7p7WqvA」 / Twitter
- GCC 12's Shiny New C++ Features - More Of C++23 Implemented - Phoronix
- FadisさんはTwitterを使っています: 「gcc 12ではif constevalが使えるようになる。if consteval { A; } else { B; }すると、そのブロックにコンパイル時に到達した場合はAが、実行時に到達した場合はBがinstantiateされる。選ばれなかった方は何が書いてあってもinstantiateされない https://t.co/rE9AP1LqPO」 / Twitter
- `if consteval`
- FadisさんはTwitterを使っています: 「更にgcc 12ではauto(x)が使えるようになる。何らかの変数xがある時にauto(x)と書くと「何の型の値かは知らんが新しいprvalueにコピーする」ができる。xがstd::stringならstd::string(x)と書くのと一緒だが、xが何型かよくわからないような場合に便利 https://t.co/Ikghjw8AHy」 / Twitter
- auto(x): decay-copy in the language - HackMD
- FadisさんはTwitterを使っています: 「更にgcc 12では多次元添字演算子が使えるようになる。値xに対してx[1,2,3]と書くとxの演算子オーバーロードoperator[]( int a, int b, int c )がa b cに1 2 3が入った状態で呼ばれる。添字演算子の中で()で囲まずにカンマ演算子を使う事はC++20で既に非推奨になっている https://t.co/jzeIuIoaMl」 / Twitter
- p2128r6.pdf
- キノコになりたい🍄さんはTwitterを使っています: 「拡張浮動小数点数型の提案、C++23入りほぼ確してた https://t.co/ewLon1idY3」 / Twitter
- P1467 Extended floating-point types and standard names · Issue #227 · cplusplus/papers
- herumiさんはTwitterを使っています: 「https://t.co/lkhMbm6k61 // C++ struct X{int a,b;}; void f() { X *p = (X*)malloc(sizeof(X)); if (p == nullptr) return; p->a=1; // 未定義動作! } なんだって...! 私は20年以上C++を雰囲気で書いていた。」 / Twitter
- P0593R6: Implicit creation of objects for low-level object manipulation
- herumiさんはTwitterを使っています: 「驚いた点は例のように仮想関数もcstrやdstrも持たない単純な構造体(トリビアルな型)でも未定義動作なこと(Cでは合法)。それを解決するためにstd::start_lifetime_as<T>が提案されている。 via https://t.co/moWppNjnoX いつも勉強になってます。ありがとうございます。」 / Twitter
- 地面を見下ろす少年の足蹴にされる私
- Kazuho OkuさんはTwitterを使っています: 「podの例外規定ないのか」 / Twitter
- 愉快な生活送り太郎さんはTwitterを使っています: 「ポインタ操作のような低次元の悩みから解放されたC++使いは、「代入操作がただの代入なのか、コピーコンストラクタなのか、ムーブコンストラクタなのか、代入演算子のオーバーロードなのか」といった、より高度でエレガントな問題に注力する事ができます。」 / Twitter
- yohさんはTwitterを使っています: 「あれStructuredBindingsって int a[]={1,2}; auto[x,y]=a; だけじゃなく auto[x,y]{a}; とか auto[x,y](a); も許可されての... 激しく混乱を招きそうな表記だがw」 / Twitter
- yohさんはTwitterを使っています: 「auto[a,b]([]{return std::make_pair(1,2);}()); #cpp」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「C++で p と &*p は別物だったりするの、微妙に気持ち悪い。」 / Twitter
- ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP
- ISO C++ Standards Committee
- KMC Staff Blog:C++11以降の未使用の関数引数の書き方
- mod_poppoさんはTwitterを使っています: 「C xor C++ Programming https://t.co/C2I4xSkdqt CとC++の非互換性リストらしい」 / Twitter
- n3065.pdf
man
- 付録 C ISO/IEC C 99 の処理系定義の動作 (Sun Studio 12: C ユーザーズガイド)
- 6.12 互換型と複合型 (Sun Studio 12: C ユーザーズガイド)
- GCC online documentation - GNU Project - Free Software Foundation (FSF)
- C Extensions - Using the GNU Compiler Collection (GCC)
- Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
きじねこ
- 第10回 翻訳フェーズ | 株式会社きじねこ
- 第9回 浮動小数点数と実数 | 株式会社きじねこ
- [迷信] 0xe-0xe はゼロ | 株式会社きじねこ
- [C99] 第2回 オブジェクトの宣言 | 株式会社きじねこ
- [C99] 第11回 その他、細部のちがい | 株式会社きじねこ
- [C99] 第9回 リテラル | 株式会社きじねこ
- [C99] 第7回 修飾子と記憶クラス指定子 | 株式会社きじねこ
- [C99] 第3回 関数 | 株式会社きじねこ
- [C99] 第5回 型と型変換 | 株式会社きじねこ
- [迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ
本の虫
- 本の虫: 最近のC言語の配列
- 本の虫: fcloseはリソース解放を失敗しない
- 本の虫: CとC++の違い:式編
- 本の虫: C++03とC++11の違い: 式編
- 本の虫: C++で、(a/b)*b + a%b != aとなる例
Twitter
C の auto/ラムダの提案
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語のWG14の1月の文書が出ておるな。C++ライクなautoやラムダ式を入れようという提案がある https://t.co/DIxPvxXNrO」 / Twitter
- WG 14 Document log
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にはstd::functionもテンプレート関数もないし、キャプチャーを持つラムダを他の関数に渡す手段はないのかな?(キャプチャーがなければ関数ポインターに変換できる)(変数への格納はautoがあればできる)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「type-generic lambdaも入れば「キャプチャーを持つ関数を他の関数に渡す」ことができるようになったりするのかな?」 / Twitter
- FadisさんはTwitterを使っています 「括弧が多すぎることに定評のあるC++のラムダ式から関数の引数が空の場合に()を省略できるようにする提案がなされていて、これがC++23で標準に入りそうな雰囲気だからgcc 11とclang 13から試験的に使えるようになってるらしい https://t.co/ijFBsYQTEZ」 / Twitter
- P1102R2: Down with ()!
- FadisさんはTwitterを使っています 「現行のC++でも関数にmutable等の修飾が何もついていない場合()の省略が許容されているけど、この提案では修飾が付いていても引数が空なら省略していいじゃん、って話っぽい」 / Twitter
配列
- hsjoihsさんのツイート: "実は、アドレスも型も一致しているのにポインタとしては別、という状況は普通にあり得たりします。… "
- hsjoihsさんのツイート: "過去にブログに書いてました。「ちなみに、話が逸れますが、アドレスが同一で型が同一でもポインタとして同一であるとは限りません。」のところです。このことを知らなかったことに由来するバグの話も。 https://t.co/AfS0fgeCQN… "
- C(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diary
- yoh2さんのツイート: "int d[4][8] で、d[0][10] が d[1][2] と同じにならないことがあるというのは、 &d[0][10] と &d[1][2] が同一アドレス、同一型で結果が異なるというより、 &d[0][10] というアドレス自体が UB により算出不能と考えるべきだと思います。 うーん、言葉だけの問題かなぁ。… https://t.co/K66AFBX7D5"
- hsjoihsさんのツイート: "「アドレス値が同じで共に合法なポインタ」という条件を満たす、↓に書いてある「配列の最終要素の次を指すポインタ」vs.「その配列にたまたま隣り合って置かれている配列の先頭要素へのポインタ」とかのほうがよい例かもですね https://t.co/WhmcFM5kYd… https://t.co/JXaaQEYd8M"
- Pointers Are Complicated, or: What's in a Byte?
- デダルス・ユメノさんのツイート: "「異なるポインタ」の意味するところが曖昧なんですが、その両者は==で比較すれば真になるわけですよね。あれ、もしかしてコンパイラ最適化によって(実行時に本当に同じアドレス値になるとしても)偽になることもある?… "
- Shinya Katoさんのツイート: "ubを踏んでいるのでそもそも同じアドレスになる保証がされていないというだけで、実行時に運よく同じアドレスになれば真になるんじゃないですかね?… "
- 置き引きにあったマヌケな鳥頭さんのツイート: "one past the end ポインタと、隙間なく置かれている次のオブジェクトへのポインタは == で true になるとC言語の規格に明確に書かれていますね… もちろん one past the end ポインタへの関節参照は UB なので、同じはずなのに違うポインタってことになるのかな…… https://t.co/H4VwVPHfrW"
オブジェクトの初期化
- Kazuho Okuさんのツイート: "struct の初期化が = {}; じゃダメだとすると {0} か {NULL} かはともかく {{0}} みたいなパターンはちゃんと考えて書かないとダメなのか。めんどくさ"
- Fadisさんのツイート: "グローバル変数の0初期化、規格がどうなってるか気になって見たんだけどC11の規格読む限り§5.1.2で「静的に確保されたオブジェクトプログラムの開始前に初期値で初期化される」って書かれてるけど整数型の初期値とは0の事であるとはどこにも書かれてないように見える…"
- Fadisさんのツイート: "§6.7.9の10項に静的またはスレッドローカルなストレージを持つ算術型の値はゼロに初期化しろよって書かれてた。よかった、グローバル変数の初期値0はやっぱり期待しても良かったんだ"
- ちゃーしゅーねこさんのツイート: "C言語の規格としては未初期化の変数が0ないしnullになるとなっているとしても、それがbssに置かれるかは別問題じゃないの知らんけど"
- 黄前 久美子さんのツイート: "C 言語の規格として,static や グローバル変数みたいな静的に確保される変数は必ず 0-fill されなければならなくて,ELF の bss はそのために生まれたセクション,というのを正確さを欠いて書いたけどまあそういうことです。… "
- 黄前 久美子さんのツイート: "普通にスタックに乗る変数は初期化しないと単なる未定義値… "
- Yusuke Endohさんのツイート: "次の C プログラムが 0 を出力することは保証される? typedef struct foo { int a; int b; } foo; int main() { foo v[1] = {{0, }}; printf("%d\n", v->b); }"
- Yusuke Endohさんのツイート: "何人かに「される」という回答をもらったので仕様書見たら、確かにされるようでした(途中まで初期化してあったら残りは 0 初期化されるらしい)。ありがとうございました… "
register 変数
- yoh2さんのツイート: "のっけから濃いのキター! 結論から言うとエラーになるのが正解かと。ISO/IEC 9899:2011 6.7 にある脚注121でアドレスが取れない例として配列→アドレスの暗黙変換が挙げられてます。 #質問箱 #peing_yoh2_sdj… https://t.co/k6Om9ahoBF"
- yoh2さんのツイート: "ところで、手持ちの環境では gcc 4.5.4, 4.9.3, 5.4.0, 6.4.0 でエラーに。clang 3.9.1 ではエラーにならず。"
C99 プロトタイプ宣言
- Kazuho Okuさんのツイート: "えっCで引数にnon-null制約を宣言すふ方法があるってこと?すごい便利じゃん… "
- Keigo Imaiさんのツイート: "Modern C (pdf) https://t.co/fCcGkR0zpr"
- Modern C
- Keigo Imaiさんのツイート: "puts のプロトタイプ宣言: int puts(char const s[static 1]); この static is 何"
- Keigo Imaiさんのツイート: "長さゼロの配列って何だっけと思ったのですが(たしか構造体の最後のフィールドでのみ宣言可能?)、 それとは別に NULL が渡されるのを排除するために static 1 が使える、とのこと。 https://t.co/BjczgzaW1B @objectxplosive"
- A nice, little known C feature: Static array indices in parameter declarations
- KUDO Muttonski Takashiさんのツイート: "知らなかった、C99 付いていけてないな。… "
- Kazuho Okuさんのツイート: "つまり、引数の型が type* ならnullable pointerで type [static 1] ならnon-nullable pointer ってこと"
- Kazuho Okuさんのツイート: "とか言ってたら、自分の管理してるコードで `[static NN]` が使われてて、それをC89互換性のために廃止する PR が来てたことに気づいた"
- Rui Ueyamaさんのツイート: "C89はさすがにもうよくないですか。… "
- Kazuho Okuさんのツイート: "正確にいうと、「C++にないC99の機能」には依存したくないという文脈なんだろうと思います。Visual Studio... https://t.co/WXfdMh7y1e… "
- Reader Q&A: What about VC++ and C99? | Sutter’s Mill
- Rui Ueyamaさんのツイート: "それはまっとうな要望な気がしますね。… "
- Keigo Imaiさんのツイート: "あまり深追いはしてくれない模様ですね… https://t.co/GTKNgfflAv… "
- ryochackさんのツイート: "うーん、当然ながらポインタ渡しでは検出してくれないのでやらないよりはマシかな、くらいの感覚。配列のアドレスをそのまま渡すってケースは結構少ないんだよなぁ。 https://t.co/UwX1zjBE7R"
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
void 引数
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "ANSI Cより前の話が、もはや忘れられつつある昔話であることを実感する。 / “【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報” https://t.co/OYjiCJd8Mo"
- 【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報
- AoiMoe a.k.aしお兄Pさんのツイート: "ちなみに「引数が無い関数は f(void) と書いたほうがいい」ではなくて、「関数プロトタイプにおいて、引数が無い関数であることを明示したければ f(void) と書かなければならない」だからね。"
- SODA Noriyukiさんのツイート: "1980年代後半~1990年代にC書いてた人間には完全に常識だったので、時の流れを痛感する。"
後置演算子
- やねうら王さんのツイート: "私にはコンパイラの気持ちはわからないが、コンパイラ作成者の気持ちはわかるので、returnと後置インクリメントを併用したときに適切なコードを生成するのが難しいことはわかるし、当時はそういう地雷を踏みそうなコードはなるべく避けながらプログラムを書くのが常識であった。(と思う)"
- FFFumihiro MMMatsuiさんのツイート: "あー確かにコード生成のやり方によってはスタックに積んで即 ret で飛んで直後の加算が実行されないとかのバグありそう"
- FFFumihiro MMMatsuiさんのツイート: "後置インクリメントは式の中では加算前の値を見せつつその後に変数が加算されてないといけないから演算子一個なのに吐くコードがちょっと複雑"
- FFFumihiro MMMatsuiさんのツイート: "なんであれ演算子にしたんだろう"
- FFFumihiro MMMatsuiさんのツイート: "あれが演算子であるために副作用完了点まわりで未定義動作のコードが結構たくさん生産されてるよなたぶん"
式の評価など
- まあぼ@cubさんのツイート: "つまり「添字演算子を評価した結果の"値"にアドレス演算子を評価できるのはなぜか」ということか。言語仕様そのままだとコンパイラが作れないってことだよね。指摘した人しゅごい。"
- Masaki⊣Haraさんのツイート: "型aの値を単に横にn個並べたものが配列で、アドレスであって参照先が型aであると見なせるものがポインタというイメージ (つまりぜんぜん違う) 似ているように見えるのは、配列のrvalueが特定の文脈で自動的に配列の先頭へのポインタのlvalueに自動変換されるから という認識"
- るくすさんのツイート: "まあ別にローカルスコープ内でしか使わない変数をchar *s=" "としようがchar s[]=" "としようが、ホットスポットでも無い限りキャッシュ効率がどうのとかでも無いんだけど、前者の書き方は普通にイラッとくる"
- なぎせ ゆうきさんのツイート: "int i = -(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-5; ひゃっほーい… "
- りあね xa1 ver 21.5.0さんのツイート: "CastExpressionはUnaryExpressionNotPlusMinusの一種で、それはUnaryExpressionの一種。前置演算子やプリミティブ型へのキャスト演算子の右にはUnaryExpressionが来れるので、キャストと前置演算子は同じ優先度のはず。「-(int)-5」が通ると思う"
- Rui Ueyamaさんのツイート: "うわー、C言語初心者レベルで勘違いしてた。xが配列のとき&xもxもxのアドレスなんだった。&xなんてか書かないから忘れてたわ。フルスクラッチからCコンパイラを書いたことすらあるのに。"
- 水島宏太(ゆる糖質制限)さんのツイート: "一つ提案してみたいのだが、C, Java, Ruby, Python, 等の値渡ししかない言語で、そもそも参照渡しという用語が登場する意味がないので、それらの入門書において、値渡し/参照渡しという用語を使うこと自体をやめてみてはと思う。"
- Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C言語の配列引数の[]の中に色々書くやつ、配列引数の場合restrictはあの位置にしか書けないはず https://t.co/KhSqH4DW7R」 / Twitter
- Compiler Explorer
- mod_poppoさんはTwitterを使っています: 「この例だとrestrictの有無で生成されるコードの量が変わる」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Pythonの %演算子は (Cと違って) ちゃんと負の値に対しても正のモジュロを返す (-1%3 == 2)。これに対してCの%はモジュロでなく「剰余」なので (-1%3 == -1)、インデックスの計算などに使えない場面が存在する。」 / Twitter
- John CarmackさんはTwitterを使っています 「I only just noticed that python, unlike C, had the mod operator always return a positive number, even if the first argument is negative, which is great for wrapping buffers! Who ever wanted negative mod results?」 / Twitter
- yoh2さんはTwitterを使っています: 「long typedef unsigned hoge; のようにして混乱を招く遊びはよくやってるけど、構造体定義と混ぜるとまた違った味わいがあってとても良いということを学んだ。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「sizeofの中身は評価されるか?VLAの場合 / [C] gcc 12.1.0 - Wandbox https://t.co/EggLvk6NJf」 / Twitter
- [C] gcc 12.1.0 - Wandbox
- mod_poppoさんはTwitterを使っています: 「VLAのサイズが式を評価しないと決まらないやつは当然評価されて、「VLAへのポインター」みたいに実は式を評価しなくても値がわかるやつで評価されるかどうかは実装依存みたいな感じだった気がする」 / Twitter
- RISC of RainさんはTwitterを使っています: 「C標準に提案された末尾呼び出しアノテーションはClangのmusttail相当になりそう。つまり、callerとcalleeのシグネチャが基本同じでないといけない。一般の末尾呼び出しに拡張するのは移植性に難があるらしい https://t.co/zLAhU7s6AW」 / Twitter
- n2920.pdf
- 改行コード(CR/LF)と改行文字と標準C - yohhoyの日記
- mod_poppoさんはTwitterを使っています: 「C言語で関数ポインターを返す関数の型がメチャクチャになる問題、typeofが入れば typeof(int (int)) *foo(); みたいに書けて解決だな?」 / Twitter
CERT C
PRE
- PRE05-C. 字句の結合や文字列化を行う際のマクロ置換動作をよく理解する
- PRE10-C. 複数の文からなるマクロは do-while ループで包む
- PRE32-C. マクロの引数内で前処理指令を使用しない
MSC
- MSC06-C. コンパイラの最適化に注意する
- MSC24-C. 非推奨関数や時代遅れの関数を使用しない
- MSC15-C. 未定義の動作に依存しない
ARR
- ARR02-C. 初期化子が暗黙的にサイズを定義する場合であっても、配列のサイズは明示的に指定する
- ARR30-C. 境界外を指すポインタや配列添字を生成したり使用したりしない
DCL
- DCL12-C. 抽象データ型は opaque な型を使って実装する
- DCL13-C. 関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
- DCL21-C. 複合リテラルの記憶域を理解する
MEM
- MEM02-C. メモリ割り当て関数の結果は、割り当てた型へのポインタに即座にキャストする
- MEM03-C. 再利用可能なリソースに格納された機密情報は消去する
- MEM04-C. サイズ 0 のメモリ割り当てを行わない
- MEM07-C. calloc() の引数は乗算した結果がラップアラウンドしないようにする
- MEM08-C. realloc() は動的に割り当てられた配列のサイズ変更にのみ使用する
- MEM09-C. メモリ割り当て関数がメモリを初期化すると仮定しない
- MEM36-C. realloc() 関数呼び出しでオブジェクトのアラインメントを変更しない
STR
- STR05-C. 文字列リテラルの参照には const へのポインタを使用する
- STR11-C. 文字列リテラルで初期化される文字配列のサイズを指定しない
- STR30-C. 文字列リテラルを変更しない
- STR32-C. 文字列を引数にとるライブラリ関数に null 終端されていない文字配列を渡さない
EXP
- EXP34-C. null ポインタを参照しない
- EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- EXP30-C. 副作用が発生する式の評価順序に依存しない
FIO
- FIO17-C. fread() を使用するときは、null 終端文字に依存しない
- FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない
INT
- INT09-C. 列挙定数が一意の値に対応することを保証する
- INT10-C. % 演算子を使用する際、結果の剰余が正であると想定しない
- INT33-C. 除算および剰余演算がゼロ除算エラーを引き起こさないことを保証する
- INT34-C. 負のビット数のシフトやオペランドのビット数以上のシフトを行わない
- INT02-C. 整数変換のルールを理解する
ERR
- ERR30-C. 関数を呼び出す前に errno をゼロに初期化し、関数の異常終了時にのみ errno を参照する
- ERR33-C. 標準ライブラリ関数のエラーを検出し対処する
FLP
- FLP00-C. 浮動小数点数の限界を理解する
- FLP03-C. 浮動小数点エラーを検知して処理する
- FLP34-C. 浮動小数点の型変換は変換後の型の範囲に収まるようにする
- isgreater - cppreference.com
- isless - cppreference.com
fno-delete-null-pointer-checks
- KMC Staff Blog:fno-delete-null-pointer-checks
- 第5回 Linuxのカーネルに潜む脆弱性をつぶすパッチ
- JVNVU#162289: ある種の範囲チェックを破棄するC コンパイラの最適化の問題
- 情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構
- Using the GNU Compiler Collection (GCC): Optimize Options
- [llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang
fread
- _sopen_s、_wsopen_s
- _fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32
- _fdopen、_wfdopen
- fread
- fclose、_fcloseall
- Man page of FREAD
- FIO17-C. fread() を使用するときは、null 終端文字に依存しない
- FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない
- SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
- CERT C コーディングスタンダード
- 実例で学ぶ脆弱性対策コーディング
Entry Point
TLS(DLL)
Fiber Local Storage
- Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
- Fibers - Windows applications | Microsoft Docs
- Be aware: FLS-Fiber Local Storage – Slava Oks's WebLog
- Fiber local storage - 1.66.0
- windows - FLS vs TLS, can I use Fiber Local Storage in place of TLS? - Stack Overflow
- 実行時メッセージ「JMP0015I-U」のシステムからのエラーコードに「0x45A」が通知されます。
- Fiber Local Storage - How is Fiber Local Storage abbreviated?
- FLS (Fiber Local Storage) limitations in Windows
- How does one emulate c++11 thread_local but for fibers (Fiber Local Storage)? · Issue #179 · boostorg/fiber
- Fiber (computer science) - Wikipedia
- Windows 10プレビュー、“Cドライブ”への圧迫を軽減する機能 - PC Watch
- スレッド ローカル ストレージ (TLS: Thread Local Storage)
- DLL_THREAD_ATTACHで割り当たTLSをDLL_PROCESS_DETACHで解放するには?
- スレッド局所記憶 - Wikipedia
- 6.6 .tlsセクション
- TLS Callbacks - セキュリティごった煮ブログ|ネットエージェント
- DLLのマルチスレッド対応
- 第V部~マクロから呼び出すDLLの作り方
- __thread で指定した変数の領域はスレッド終了時に開放されるのか? -> できるだけ使いまわすようです - Qiita
- スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)
- IBM Knowledge Center - __thread ストレージ・クラス指定子
- Using the GNU Compiler Collection (GCC)
- スレッドローカルストレージ - cpprefjp C++日本語リファレンス
- Thread local storage - 兼雑記
- __thread、マルチスレッド変数
- c - How does the gcc `__thread` work? - Stack Overflow
- プログラムはどこから始まるの? ~ WinMain とは? - Web/DB プログラミング徹底解説
- main関数 ‐ 通信用語の基礎知識
- スタートアップルーチン ‐ 通信用語の基礎知識
- -ENTRY (Entry-Point Symbol)
- Assembler/ForFun(x86_32)/06, 32bit Windows with NASM - Glamenv-Septzen.net
- winapi - C++ Windows return vs ExitProcess - Stack Overflow
- x64 アセンブリーの概要 | iSUS
- x64 Architecture | Microsoft Docs
- If you return from the main thread, does the process exit? – The Old New Thing
- Assembly Programming on x86-64 Linux (04)
- プログラミングノート - x86
- アセンブラに手を出してみる - Qiita
- 関数実行の流れを紐解く(弊研究室の某課題について考える2日目) - ごちうさ民の覚え書き
- C - CreateThreadで指定するスタックサイズ(43694)|teratail
- マルチスレッドのWindowsプログラミングでは、スタックはどう扱われてい... - Yahoo!知恵袋
- OSとプログラミング言語の関係 - 現在組み込み系のプログラムを学習中です。... - Yahoo!知恵袋
- 64ビット環境におけるリバースエンジニアリング - セキュリティごった煮ブログ|ネットエージェント
- アレ用の何か
- Fadisさんのツイート: "x86_64のABIでは%raxで返り値を返す為、C言語のmain関数でreturnしなかった場合%raxがステータスコードになる #kernelvm"
- Fadisさんのツイート: "スタートアップルーチンの段階でスタックポインタの設定などを行う段階で%raxを使っており、ASLRでスタックポインタのアドレスが毎回変わる為毎回異なるステータスコードが帰ってくる #kernelvm"
- Fadisさんのツイート: "ちなみにこれ、C++の場合規格でmain関数のreturnが省略された場合return 0;を書いたように振る舞う事が定められているから、C++としてコンパイルすると必ず0が返ると思う #kernelvm"
プリプロセッサ
mcpp
- (macro-of-inline report) mcppという選択肢 - テストステ論
- 還暦過ぎても、こんなすごいプログラムが書ける: ホットコーナー
- mcpp -- a portable C preprocessor with Validation Suite
- h8liu/mcpp: A portable C/C++ preprocessor
- www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
本の虫
- 本の虫: Raw String Literalとプリプロセッサ
- 本の虫: C/C++で0xf+1は合法なのに0xe+1はコンパイルエラーになるのはなんで?
- Shinya Katoさんのツイート: "pp-numberは全ての整数と浮動小数点の形式を内包していて、その形式に則って字句解析すると0xe-8は一つのpp-numberトークンになるはず で、プリプロセッサの処理が終わって値と型を特定するタイミングで整数表現としも浮動小数点としてもありえない0xe-8が出てきてエラーになるということだと思われる"
- OS開発ゼミ担当 uchan_nosさんのツイート: "0xe-8は整数/浮動小数点数として解釈できないが,規格では字句解析の段階でpp-number(整数と浮動小数点数を表す)型のトークンになってしまい,後段で整数にも浮動小数点数にも解釈できずコンパイルエラーになる,という話だそうです.添字に浮動小数点数が使えない,というのは関係ない話ですね.… https://t.co/vh1fEHlaKa"
- ぷりさんのツイート: "演算子の前後に空白を入れないのがダメなのはコンパイラによっては構文解析に失敗してコンパイルエラーになる場合があるためです。… "
- ぷりさんのツイート: "a[0xe-8] とかいうコードを書くとエラーになるんですよ。… "
- 本の虫: なぜGCCのCプリプロセッサーはlinuxという名前のマクロ名を定義するのか
- 本の虫: cstdint.hのMIN/MAXマクロ
整数定数式
- suzuki shingoさんのツイート: "C でコンパイル時に式が整数定数式か判断するマクロを考えた人がいるみたい。良くこんなの思いついたな » Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming https://t.co/pgOp6AR36O"
- Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming
- SODA Noriyukiさんのツイート: "非定数式xについて「(x) * 0L」をコンパイラが 0に最適化『できない』ことに依存しているので、コンパイラのバージョンに依存しそうだなと思ったら、gcc-4.4以前だと副作用のない整数式を、このマクロが誤って定数式と見なしてしまうことがスレッドの続きで指摘されてますね: https://t.co/OvdSHP2kTg… https://t.co/HDvdBk3igb"
- SODA Noriyukiさんのツイート: "新しいバージョンのコンパイラの方が、最適化能力が落ちているように見えるのがなんか不思議… LLVM 8.1.0 では gcc-4.5以降と同じ結果でした。… "
- 前田敦司さんのツイート: "「(x) * 0L」を0に最適化したとしても,それはC99規格でいう「整数定数式」ではなく「0になるとわかっている整数式をvoid *にキャストしたもの」に過ぎず,sizeofの結果が異なるということのようです. https://t.co/rO4U40Ffqr… https://t.co/bqaKLblELW"
- 前田敦司さんのツイート: "あ,それは「0になる整数式」とはまた話が違って,「整数式を整数定数式扱いしちゃった」ってことですね.それは規格違反のバグということになるんでは.たしかにバグのあるバージョンなら動かない,ということはあるでしょうね.… "
- 前田敦司さんのツイート: "null pointer constant(npc)は「値が0である〈整数定数式〉をvoid*にキャストしたもの」と定義されていて https://t.co/VMHqNU2JYZ たとえば「変数 * 0L」は整数定数式でないのでnpcじゃない,ということですね.… https://t.co/JCZTcQxcoz"
- 前田敦司さんのツイート: "また,a?b:cで,bかcのどちらかがnpcで他方がポインタなら,結果はnpcでない方のポインタ型になる. そうでなくてどちらかがvoid*なら結果はvoid*になる,と書いてありました. https://t.co/LeYT6XZkml 6の最後.… https://t.co/p2RLZzkfpl"
- 前田敦司さんのツイート: "まさにこの仕様を用いて,1 ? ((void*)((x)*0L)) : (int *)… は xが整数定数→ :の左はnpc → 全体は(int*) xが整数定数でない→ :の左はnpcでないvoid* → 全体は(void*) となってるわけですね.… https://t.co/LU1OAnSGWk"
- 前田敦司さんのツイート: "補足: ・?:のポインタ型変換の仕様が肝なので,a?b:cの値がbかcかは関係ない.実際 (1 ? …)を(0?…)に変えても動きます. ・ 整数定数式はcaseラベル,(可変長でない)配列のサイズ,プリプロセッサディレクティブなどで使われ,処理系や最適化レベルによらず必ずコンパイル時に値が決まります.… https://t.co/L1dtyfPQYu"
- KaiGai Koheiさんのツイート: "https://t.co/25XfMZpHnV PostgreSQLでintやfloatのプリミティブ型演算子のオーバーフローチェックって割とexpensiveなんだけど、ビルド環境によってはこーゆーの使ってもいいよね。(検算するよりキャリーフラグ見た方が軽い)"
- Using the GNU Compiler Collection (GCC): Integer Overflow Builtins
- Arithmetic overflow checks in C++ Core Check | Visual C++ Team Blog
- c++ - How to detect integer overflow? - Stack Overflow
- x64 (amd64) Intrinsics List | Microsoft Docs
- __readeflags | Microsoft Docs
- rL256686
- Kirill Yukhin - Re: [PATCH i386] Introduce __readeflags () and __writeeflags () intrinsi
#pragma once 等
- mod_poppoさんはTwitterを使っています 「最近のコンパイラーだとinclude guardを認識して2回目以降はファイルの読み込みをスキップするようになってなかったっけ」 / Twitter
- mod_poppoさんはTwitterを使っています 「https://t.co/Wy6zofeANa "CPP optimizes even further. It remembers when a header file has a wrapper ‘#ifndef’. If a subsequent ‘#include’ specifies that header, and the macro in the ‘#ifndef’ is still defined, it does not bother to rescan the file at all."」 / Twitter
- mod_poppoさんはTwitterを使っています 「#pragma onceみたいなやつをC言語に入れようとする直近の試み。識別子を与えると旧来のインクルードガードっぽく、与えないと(細かい挙動が実装依存の)#pragma onceっぽく振る舞う。なお否決されてC23には入らないらしい。 https://t.co/1QzQGNwTZw」 / Twitter
- `#once`
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「include guard は一度ファイルを読んだ上で無視するのでオーバーヘッドがあるのだが、一方 pragma once も挙動が明確化というと怪しく……」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「pragma once の怪しさ、たとえば symlink や hard link や junction で別のパスの同じファイルを読んだらどうなる? などがある」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「インクルードガードとpragma once - にゃははー https://t.co/3jTcvxjqhv いい感じのページあったわ、これ読んで」 / Twitter
- インクルードガードとpragma once - にゃははー
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「> また一部では#pragma onceは2回目の時プリプロセッサが展開を行おうとしないので早いみたいな記述も見受けられますが、現代のプリプロセッサではそんなことは百も承知で、if-defined-endifの流れを見つけると完全に省略する最適化をすでに実装しています*1。 そっかー……」 / Twitter
blog
- 最近プリプロセス時処理が楽しい - 茅の下
- Kazuho's Weblog: pthread_once が嫌いすぎて再実装した話
- Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
- __VA_ARGS__の引数をループするやつはなぜ動くのか - in neuro
- C言語のマクロであんまり使わないけど(低レイヤプログラミングにおいて)猛烈に便利な演算子 - FPGA開発日記
- #elifdefと#elifndef - yohhoyの日記
- プログラマーの理想と現実 - C言語のテクニカルバグ—マクロの問題 | 株式会社創夢 — SOUM/misc
- printf 用のマクロの話 - 兼雑記
- Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
- プリプロセッサのトークン結合演算子「##」の仕様が不明 - satosystemsの日記
- Episode.1 #defineを「使うな」と「使え」 - キチガイ瀬奈科さん一家の解放治療場
interface
- mattnさんはTwitterを使っています 「C99 で interface を実現するライブラリ(ヘッダオンリー) / “GitHub - Hirrolot/interface99: Zero-boilerplate interfaces for C99” https://t.co/9mpldfb2My」 / Twitter
- Hirrolot/interface99: Zero-boilerplate interfaces for C99
- mattnさんはTwitterを使っています 「COM ぽさある。」 / Twitter
- C++でCプリプロセッサを作ったり速くしたりしたお話
- blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
- blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
- x3J11-86-196.pdf
- cpp.algo.pdf
- C言語/前処理指令 - Wikibooks
- C/C++ プリプロセッサ リファレンス
- Preprocessor Reference
- How to remove lines added by default by the C preprocessor to the top of the output? - Stack Overflow
- #include ディレクティブ (C/C++) | Microsoft Docs
- Clarification Request Summary for C11
- herumiさんはTwitterを使っています 「dirty hackが必要になって #define AAA aaa #if AAA == aaa void foo() {} #endif #undef AAA #define AAA bbb #if AAA == aaa void foo() {} #endif というようなコードを書いたらfoo()が二重定義のエラーになってしばらく悩んだ。よく考えたら確かにそうなる。マクロむずい。」 / Twitter
- std::めるぽんさんはTwitterを使っています 「BOOST_PP_STRINGIZE が存在してる理由を知ってたおかげで原因不明の問題を解決できた。ほんとプリプロセッサの挙動怖いな…」 / Twitter
- std::めるぽんさんはTwitterを使っています 「#define REGISTER(func) void func() { ((Func)dlsym(mod, #func))(); } REGISTER(foo); REGISTER(bar); みたいなことをした時に、foo や bar が実は #define で foo_v2 や bar_v2 みたいな別の名前になってた(しかも foo や bar 関数も dll 内に存在してる)って問題だった」 / Twitter
- 822823回マクロを展開するとGCCが死ぬ - Qiita
- 入谷 優さんはTwitterを使っています 「とあるマクロに与えた __VA_ARGS__ が単一引数として扱われて困っていたのですが、MSVC ではちょっとした回避策が必要になるのですね。マクロの展開順序について理解を深めなければ…… https://t.co/tzDtyubnWq」 / Twitter
- visual c++ - MSVC doesn't expand __VA_ARGS__ correctly - Stack Overflow
- C言語でよく定義するマクロまとめ - Qiita
- Masaki HaraさんはTwitterを使っています 「しかしCのパーサーパイプラインはすごいよな。trigraph → line concat → pre-tokenize → preprocess → tokenize → parse ってなってるわけで……」 / Twitter
型
型名と関数名重複
- 根っこさんはTwitterを使っています 「C++で型名と関数名重複した場合、使用時、関数名が優先されるのか。型名の方を使いたいときの書きかたってないのかな(識別子変える以外で) なんかなかったっけ… https://t.co/LTuiU1seeo」 / Twitter
- mmYYmmddさんはTwitterを使っています 「@nekko1119 struct 'hoge' is hidden by a non-type declaration of 'hoge' なるほどこうなるのか https://t.co/uhOGXqYzqz」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- 根っこさんはTwitterを使っています 「@mmYYmmdd です。あー、めっちゃエラー文にstructつければいいって書いてありますね…」 / Twitter
型変換
- punningの意味・用例|英辞郎 on the WEB:アルク
- 型変換
- 型変換
- C/C++における整数型の昇格 - Qiita
- C言語で暗黙の型変換が発生する16のパターン(+演算子の結果型5パターン) - Qiita
- hikaliumさんのツイート: "え…整数の縮小変換って -Wall -Wpedantic -std=c11 つけていてもだめでさらに -Wconversion つけないと教えてくれないの?コンパイラさん、信じてたのに…(想定通りの値が出ないのでQEMUのソースまで読みに行った挙句の初歩的ミスだった)。… https://t.co/p9joqP2nqO"
- herumiさんはTwitterを使っています: 「今日の気づき : clangで(unsigned int)(-2.0)はでたらめな値を返す。https://t.co/P0oktu52Br 未定義なのは知っていたけどx86環境なら(unsigned int)(-2)ぐらいになるだろう(こちらはvalid)と勝手に思っていた。VCはそうなった。gccだと0だった(バーションやオプションにもよる)。」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- herumiさんはTwitterを使っています: 「補足。clangだと-fsanitize=undefinedで実行時に「runtime error: -2 is outside the range of representable values of type 'unsigned int'」と怒ってくれる。 https://t.co/gQneIrIyuW」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さすがはclang…B.メイヤー先生の品質基準の一つ「ロバストネス性(仕様外領域の(なるべく安全な)グレードダウン)」みたいな発想は皆無(笑) なお、float f = 2.0; を(u_int)f; にキャストした場合は、他と同じ結果になる様子。 https://t.co/WMuDyQjmBH」 / Twitter
- 汎整数拡張 - Wikipedia
キャスト
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「朝起きたら、Twitterがfj.comp.lang.cになっていた」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「記事読んでみたけど、インターフェースの記事の方が正しいですね。 不要なキャストを書くと、せっかく(弱いながらも)存在する型チェックが台無しになるってのが最大のデメリット。 不要なキャストは書くべきじゃないです。」 / Twitter
- mattnさんはTwitterを使っています 「@n_soda 気になったのですが pseudo code で表して頂く事、可能でしょうか。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@mattn_jp 記事では関数プロトタイプ ER tk_wai_sem(ID smeid, INT cnt, TMO tmout); という関数に対し tk_wai_sem((ID)id, (INT)cnt, (TMO)tmout) のように無駄なキャストをつけて呼び出すことを批判してました。 キャストなしなら型チェックが効きますが、無駄なキャストをつけると効かなくなります」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@mattn_jp ただ記事が勧めている方針自体は正しいんですが、「型チェックが効かなくなるから」という説明はないので、文章の内容は改善の余地ありって感じです。 でもまあ「無駄でもキャストをわざわざ書くべき」っていう方針よりは遥かにマシです。」 / Twitter
- mattnさんはTwitterを使っています 「@n_soda ありがとうございます。同意です。警告消す為に機械的にキャストしまくったら動作変わってしまったとかよくある話ですね。」 / Twitter
アライメント
構造体・共用体
- Kazuho OkuさんはTwitterを使っています 「全てのメンバが uintX_t である struct の alignof は alignof(uintX_t) に等しい、って C99 の規格上言えるんでしたっけ?」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho alignof は C11 で規定されたものと思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 あっすみません、アラインメントが、という意味です」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho JIS §6.7.2.1 構造体又は共用体オブジェクトのビットフィールド以外の各メンバの境界は,その型に適した処理系定義の方法で調整する。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 ありがとうございます。たとえば union U { struct { uint32_t x, y; } s; uint32_t a[2]; }; において、offsetof(U.a[1]) == offsetof(U.y) である保証はないと」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho 構造体の padding (メンバ間と末尾のメンバの後)が入る条件が処理系定義だから、その保証はないと解釈しました」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ビット演算のバイブル、ハッカーの楽しみは凄いという感想はたまに見るが、内容に関する議論は殆ど見たことが無い (私も凄いと言う感想しか言えない」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 アライメントの padding の計算くらいしか活用できてないです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 1引くとビットマスクになる奴ですね。私はaと-aの論理演算がどうも苦手です」 / Twitter
倍数
- 倍数 - Wikipedia
- C言語について質問です。 - 以下の仕様を満たす倍数判定プログラムを... - Yahoo!知恵袋
MS
- Alignment | Microsoft Docs
- Padding and Alignment of Structure Members (構造体メンバーのパディングとアラインメント) | Microsoft Docs
- MM_BAD_POINTER macro - Windows drivers | Microsoft Docs
- x64 software conventions | Microsoft Docs
- align (C++) | Microsoft Docs
Intel
- Align and Organize Data for Better Performance
- Coding for Performance: Data alignment and structures
通信用語の基礎知識
- XMMレジスター ‐ 通信用語の基礎知識
- __m128 ‐ 通信用語の基礎知識
- YMMレジスター ‐ 通信用語の基礎知識
- __m256 ‐ 通信用語の基礎知識
- ZMMレジスター ‐ 通信用語の基礎知識
- __m512 ‐ 通信用語の基礎知識
きじねこ
- 第3回 境界調整(アラインメント)を調べる | 株式会社きじねこ
- 5.3 アラインメント調整のため、オフセットを切り上げる。 | 株式会社きじねこ
- データ型のアラインメントとは何か,なぜ必要なのか?
- C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)
- アラインメントの大きなメモリ領域を確保する方法
@kazuho
- Kazuho OkuさんはTwitterを使っています: 「複数の型を格納する可能性のアドレスは、すべての型のアラインメント要求を満たすアドレスでないといけないから、というとC言語っぽくなるやつ」 / Twitter
- まどちん●さんはTwitterを使っています: 「・a7はスタックポインタである ・割込み(トラップ)が発生すると、必ずスタックにアドレス(32bit)が積まれる ・68kは奇数アドレスからは1バイトの読み書きしかできない(するとアドレスエラーが発生) 以上のことから、スタックポインタが奇数になる瞬間があってはならないことになる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「レジスタがa7の場合は、add.bの場合も2加算である。 これはなぜか? 考察せよ」 / Twitter
- だーすー:||(Hiroshi Suda)さんはTwitterを使っています: 「@kazuho 懐かしいです. 68000だとメモリへのwordとlong word単位のアクセス時に偶数アドレスからしかアクセスできず,a7はスタックポインタであるためlong word単位のアドレスが積まれることがあるから奇数アドレスにならないようになっている. で合っていますでしょうか?(抜けがありそう)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@suda_hiroshi 良いと思います! 細かなツッコミとしては、スタックにはwordを積むことももちろんありますが、理由の説明は完璧かと」 / Twitter
Twitter
- x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
- Intel GoldmontとMPXとゆるふわなごや
- assembly - Does x64 support imply BMI1 support? - Stack Overflow
- BMI support in Skylake - Intel Community
- X86 Bit manipulation instruction set - Wikipedia
- _tzcnt_u32/64
- Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
- Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
- Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
- Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
- Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
- Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
- Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
- Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
- Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
- Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
- Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
- Izumi Tsutsuiさんのツイート: "であれば、「ARM用としてカーネルをいじるようなヤツならちゃんとルール守ったコードを書け、 unaligned access なんぞするんじゃねえ」ということで、カーネルは常に -mno-unaligned-access 付きでビルドせよ、という姿勢が正しいのかもしれない"
- SASANO Takayoshiさんのツイート: "x86/x64であってもunaligned accessは禁止、という方向に持ってった方が良いんじゃないかな…(確か禁止するフラグありましたよね?"
- OS作れないマン WalB担当さんのツイート: "C++11から導入されたalignasいいね。手軽。"
- Kazuho Okuさんのツイート: "sizeof は変数を引数に取れるのに、alignof / _Alignof はなぜ型しか引数に取れないのか"
- Kazuho Okuさんのツイート: "@objectxplosive まあ __alignof__ なければ16にするとかでいいので"
- Yaðuaki Möritaさんのツイート: "@kazuho なんででしょうね、alignasでアラインを大きく取った変数の参照取ってデリファレンスしてalignofとかが実装依存になりそうだからかな、、"
- Kazuho Okuさんのツイート: "@MoritaYasuaki あー。 p = aligned_alloc(alignof(*p), sizeof(*p)) って書きたいだけなんですけどねぇ"
- yohさんはTwitterを使っています 「(n+N)&~N派かな N=(1<<B)-1」 / Twitter
- \助けよや/さんはTwitterを使っています 「アラインメント揃えのパディングに便利なイディオム。 [0,1,2,3,4,5].forEach(n => console.log(n, (n+3) & -4)); 0 0 1 4 2 4 3 4 4 4 5 8」 / Twitter
- \助けよや/さんはTwitterを使っています 「2の補数表現ビット列に依存したコードなので、あまり期待してなかった。」 / Twitter
- \助けよや/さんはTwitterを使っています 「-1 は当然 all 1 の 11(略)1111で、-2 は 11(略)11110、-4 は 11(略)1100、-8 は 11(略)1000 … ((1 + 3) & -4) => 4 & 11(略)1100 = 4 ((2 + 3) & -4) => 5 & 11(略)1100 = 4 ((3 + 3) & -4) => 6 & 11(略)1100 = 4 ((4 + 3) & -4) => 7 & 11(略)1100 = 4 ((5 + 3) & -4) => 8 & 11(略)1100 = 8」 / Twitter
- \助けよや/さんはTwitterを使っています 「@yohhoy 確かにそっちの方が直感的ですよね。」 / Twitter
- yohさんはTwitterを使っています 「@yoya まぁ小さいBに関しては定数を覚えてしまってるので、どっちでもさほど変わらない疑惑👻」 / Twitter
- データとコードの並べ替え: 最適化とメモリー – パート 2 | iSUS
- AoS and SoA - Wikipedia
- データ構造アライメント - Wikipedia
- Data structure alignment - Wikipedia
- 剰余演算 - Wikipedia
- 端数処理 - Wikipedia
- ARM64 で非キャッシュ領域に memset() を実行するとバスエラーになる件 - Qiita
- メモリアライメントの話 @ゲームプログラマの小話[開発:メモリ] - Qiita
- アライメント計算 : Follow The Master
- アライメント(バイト境界)
- アライメントを知る - 組込屋
- メモリ上での配置に関して、多次元配列と構造体の配列の比較 - in neuro
- C++17: 動的メモリ確保とアライメント - in neuro
- アライメント解説 - in neuro
- GCC - __attribute__ ((packed)) 指定に反してアライメント調整が適用される(29684)|teratail
- c - Why does GCC pad functions with NOPs? - Stack Overflow
- c - Question about round_up macro - Stack Overflow
- Skyrocketing
- アライメント(アラインメント)とは - IT用語辞典 e-Words
- アライメントとか、ワード境界とか
- Blog Alpha Networking: ビット(bit)演算操作の覚え書き
- C言語で2の累乗(2^n)への切り上げ&切り捨て | ハングスタック
ビット演算
ビットフィールド
- とみながたけひろさんはTwitterを使っています 「@yohhoy webkitという辛いブツがあるんですよね https://t.co/ADzU8yYXlx 「一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです」」 / Twitter
- WebKit について (コード) - 兼雑記
- 2007-06-01
- \助けよや/さんはTwitterを使っています 「実際のコードでバイナリ記述に使おうとすると struct の word アライメントで、byte がパッキングしたりしなかったりで死ぬ。(何度か死んだ」 / Twitter
- yohさんはTwitterを使っています 「@yoya https://t.co/V371DTSGiG プログラマの期待に反して、外部データとのやり取りには使い物にならないですよね。」 / Twitter
- EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
- yoh2さんはTwitterを使っています 「環境によって宣言順が異なる struct iphdr の version フィールドと ihl (ヘッダ長) フィールド……」 / Twitter
POPCNT
- ビットを数える・探すアルゴリズム
- x86x64 SSE4.2 POPCNT
- Popcntによるハミング距離計算
- __popcnt16、__popcnt、__popcnt64 | Microsoft Docs
- marisa-trie の PopCount を改良しました - やた@はてな日記
- Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
- Binary Hacks と 64bit popCount 問題 | TAKESAKO @ Yet another Cybozu Labs
- x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
- SIMD TZCNT: TERNLOG 0x22 -> ANDN · InstLatx64/InstLatX64_Demo@b672b0a
- InstLatX64さんはTwitterを使っています 「An example on how useful are the new #AVX512-levels: SIMD TZCNT emu, POPCNT vs LZCNT - Byte/Word, not just DWord/QWord - faster, 5vs8 clks on TGL - tzcnt(a)=popcnt(tzmsk(a))=popcnt(~a&(a-1))=popcnt(ternlog(a, a, a-1, 0x22)) - 0-case handled Free source: https://t.co/3sbGqNKn3J https://t.co/41UEv3SUNc」 / Twitter
- SIMD TZCNT w/AVX512 · InstLatx64/InstLatX64_Demo@2ed2029
- InstLatX64さんはTwitterを使っています 「Thx! Fixed, I hope now it is correct: https://t.co/RdcVyaF5Lp」 / Twitter
- SIMD TZCNT: undefined handling · InstLatx64/InstLatX64_Demo@f2405bf
- TZCNT — Count the Number of Trailing Zero Bits
- 整数データのビット操作の組込み関数
- __lzcnt16、__lzcnt、__lzcnt64 | Microsoft Docs
- LZCNT — Count the Number of Leading Zero Bits
- Intel GoldmontとMPXとゆるふわなごや
- assembly - Does x64 support imply BMI1 support? - Stack Overflow
- BMI support in Skylake - Intel Community
- X86 Bit manipulation instruction set - Wikipedia
- _tzcnt_u32/64
Twitter
- herumiさんのツイート: "整数絶対値のトリックは昔Oh! FM(-TOWNS)に載っていて感動して高速化にはまった(当時のHigh-Cが既に利用)。ビット演算で今まで一番頭をひねったのは某コーデックのプロファイルで70%を占めてたやつ。 https://t.co/W3xh7jK9jh 「calcは最適化可能」というヒントありでもかなり難しいと思う。#tcfm"
- misc/codec-calc.cpp at master · herumi/misc
- herumiさんのツイート: "考えてみたい人のために問題にすると、リンク先のcalc()関数はassertの条件下で分岐無しアルゴリズムに変換できる。テーブル参照は使わない。 https://t.co/6ISKNUBHOB"
- shinichiro hamajiさんのツイート: "一行になったけどこれで良いのかな https://t.co/uLVp8o4dZ1 https://t.co/bgNE78joyw"
- for https://github.com/herumi/misc/blob/master/codec-calc.cpp
- herumiさんのツイート: "レスポンスめっちゃはやっ!! すごい。 私の想定解です。コードから想像すると同値な変形をしながらロジカルに攻めたのでしょうか。ループを消すところにひらめきがいりそうに思いますが。 私の場合は出力結果とにらめっこしながら、その結果になるような式を調整して見つけました。… "
- shinichiro hamajiさんのツイート: "a&bはaでいいですね。calc_mine1でこの分岐は上位2bitの組み合わせだなあと理解、calc_mine2で3つ目のブランチが消えて上位1bitが異なるかどうかだけでループ止めてるのでclz一発だな、と。当然実際はもっと試行錯誤しています。これを高速化できるという情報無しでされたのはすごいと思います。… https://t.co/QxVxR1XBRD"
- herumiさんのツイート: "ビット演算クイズ回答編 https://t.co/pCg5HtSvaY https://t.co/7gspg4slex"
- melancholic afternoon
- shinichiro hamajiさんのツイート: "僕の試行過程を書いてみた https://t.co/8j0KDewPSi 一気に書いたのに途中で文体変わる不思議 https://t.co/vsybCYy9vC"
- ビット演算クイズを解いた時の話 - 兼雑記
- herumiさんのツイート: "ビット演算クイズを解いた時の話 https://t.co/SGgeEwDTXc こういう作業の他人の思考経路を見られることはあまりないのでめちゃ面白い(特にbn\anのテーブル簡略化とループいらなくね?のあたり、そうやって突破するんだという)。 https://t.co/Fftbw6tj73"
- shinichiro hamajiさんのツイート: "正直同じ問題を解いた人しか面白くない記述だろうなあ、つまり @herumi さん以外に想定読者がいねえなあ、と思いながら書いていたので、面白いと思っていただいてありがたいです。面白い問題ありがとうございます!… "
- とみながたけひろさんはTwitterを使っています 「ビットフィールド、最上位ビットに1ビット割り当てると最適化が進むという特性がある(符号判断でビット判断を置き換えることができることが多いため)。まあ、爪に火を点すビンボーという奴ですね」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なお21世紀の近代的なCPUは最上位以外でも「ビットが立ってたら分岐」みたいなのを一命令で実行できるので(ARM64)、こういうビンボーは考えなくてもよくなった。x86-64は…BEXTR命令ょゎょゎやし対応CPU少ないめやからなあ…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「複数のbitを同時に触りたいことがあって (例えば bitset & user_modifiable とか)、bool や bit field を使うとそれが面倒くさくなるので、整数型を使って各ビットに名前を定義する派です←完全にオッサンの発想」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ビット演算のバイブル、ハッカーの楽しみは凄いという感想はたまに見るが、内容に関する議論は殆ど見たことが無い (私も凄いと言う感想しか言えない」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 アライメントの padding の計算くらいしか活用できてないです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 1引くとビットマスクになる奴ですね。私はaと-aの論理演算がどうも苦手です」 / Twitter
- satさんはTwitterを使っています 「簡単なビット演算といえばenumでフラグ定義して flagset |= 1 << flag flagset &= ~flag if flagset & 1 << flag っていうのはどこでも出てきそうだけどどんなもんだろう。富豪的にbool変数を並べるほうが多いのかな?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi そういや僕がビットフィールド的な整数の使い方便利じゃんと思ったのはこのコード書いたときでした。switchのcaseは定数式が書けるので、"signed"と"int"だけがきっかり1回ずつ出現しているとき、みたいなのがcaseで表現できる。 https://t.co/xocEgvfu0u」 / Twitter
- chibicc/parse.c at main · rui314/chibicc
- satさんはTwitterを使っています 「@rui314 おお、これは面白い。こんなんよく思いつきましたね」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi これ別々の変数でカウントしてたら、一つ一つのcaseが`if (num_int == 1 && num_long == 0 && num_short == 0 && num_signed == 1 && num_unsigned == 0 && ...)`みたいになっちゃうんですよね。スーパーめんどくさいのでなんとかならないかと考えたらこうなった。」 / Twitter
- Blog Alpha Networking: ビット(bit)操作の覚え書き
- Big Endian と Little Endian の判別(Kodama's tips page)
- すばらしいビット | プログラミング | POSTD
- 明日使えないすごいビット演算
- bit manipulation - Get bit offset in C++ - Stack Overflow
- 複数のビットフィールドを持つ数値の並列演算
ポインタ
CERT-C
- MEM10-C. ポインタ検証関数を定義して使用する
- MSC16-C. 関数ポインタの暗号化を検討する
- PRE03-C. ポインタ型でない型をエンコードするには define よりも typedef を選ぶ
- INT36-C. ポインタから整数への変換、整数からポインタへの変換
- EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
- EXP37-C. 正しい引数の数と型で関数を呼び出す
- ポインタ演算
- 配列とポインタ
- 3次元配列でのポインタ - C・C++ - 教えて!goo
- くいなちゃんさんはTwitterを使っています: "C言語のポインタは簡単です。 例えば、 printf("Hello World!!\n"); と書くところを、 (*************************************printf)("Hello World!!\n"); と書いても動きま
- Tsukasa #01さんはTwitterを使っています: "つまり、くいなちゃんの例では * 一回で、"関数型" → "関数へのポインタ型" (暗黙の変換) → "関数型" (* 演算子) という変換が行われてることになる。C9
- 関数ポインタと実体で引数が違うと、CではエラーにならないがC++ではエラーにな... - Yahoo!知恵袋
- C FAQ 5
- 人はなぜポインタで苦しむのか - Qiita
- プログラマでいたい:[C言語]voidポインタの演算 - livedoor Blog(ブログ)
- EncodePointer function (Windows)
- DecodePointer function (Windows)
- Protecting against Pointer Subterfuge (Kinda!) – Michael Howard's Web Log
- NAKAMURA Minoru's Diary (2010年4月)
- S.F.さんのツイート: "タグ付きポインタか。。なるほど。。現代のCPUアーキテクチャは32/64ビットで、4/8バイト でアラインメントされるのが通常だから、アドレスの下位2ビットもしくは3ビットをタグ(フラグ)として利用するのか。。"
- S.F.さんのツイート: "更には64ビットCPUであってもアドレス空間は実質はそれ以下だから、更にタグ用に使えるビット数は増えるのか。。"
- uchanさんはTwitterを使っています 「なんでstrtol()の第2引数はconstポインタじゃないの??? long strtol(const char *str, char **str_end, int base)」 / Twitter
- にゃははー仙人さんはTwitterを使っています 「@uchan_nos 説明が雑すぎた。char*な文字列を使っている場合にconst char*にはできるけどconst char**にはできないのでそうなってるはず。元からconst char*な文字列を使ってればいいんだけど、Cって大体mutableな方を優先して提供している感じなので(正確な議論は知らないけど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ポインタを純粋なアドレスとして使うのは太古から strict aliasing rule に引っかかって問題になるし provenance 以前にそのあたりを説明するべきだと思う / https://t.co/JLwsBhkCvV」 / Twitter
strict aliasing rules
- (翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
- strict aliasing rules, type punning解説 その1 - gununuの日記
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- 猫科研究所 - gcc option
- C - strict aliasing ruleについて|teratail
- 16.1 strict alias rule · ThePolitewaylearntoCPP17
- SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
- strict aliasing rules, type punning解説 その1 - gununuの日記
- c - What is the strict aliasing rule? - Stack Overflow
- std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
- What is Strict Aliasing and Why do we Care?
- GCC いろいろ - akcnvの個人的備忘録 @ ウィキ - アットウィキ
- 【C/C++】Strict Aliasing Rule - Togetter
- ISO Cの型違いポインタアクセス禁止規則 - sumiiのブログ
- OS自作したい。技術書典6・う38さんのツイート: "strict aliasing ruleとunionてどんな関係になってるんや?"
- OS自作したい。技術書典6・う38さんのツイート: "https://t.co/Mhzu2hcon2 にはstrict aliasing rulesに抵触しないエンディアン変換方法としてmemcpyやunionを使った手法が紹介されているけど,普通にビットシフトとor演算を使った方法でも,最適化によってbswap命令に置き換えてくれるみたい.テストコード→ https://t.co/Ez50MPHGwY"
- convert_endianness_optimization.cpp
- 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
- Kazuho OkuさんはTwitterを使っています 「Cのポインタをどう説明するかについては、型ごとのviewであって、viewが重なるか(重なりうるか)に関しては、、、って aliasing, restrict, provenance あたりを説明するのが、僕は一番伝わりやすいと思う」 / Twitter
- Pointers Are Complicated II, or: We need better language specs
- 井山梃子歴史館さんはTwitterを使っています 「某記事ってCの話したいわけじゃないんだよね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「UBの話,最適化と安全性のトレードオフという言語デザインの話であってクリスプに〇×別れるものではない,というのは広く知られていないと思う」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「「有益な最適化をできるだけ残したい」vs「最適化によってプログラムの意味を捻じ曲げたくない」のどこでバランスをとるか,という話なんだよね」 / Twitter
- κeenさんはTwitterを使っています 「CとかRustとかにはポインタの来歴という概念があるけど、それが何故必要なのかを最適化によってプログラムが壊れる例を挙げて解説している。ほとんどのコンパイラがその問題を踏んだので難しいよねとも Pointers Are Complicated II, or: We need better language specs https://t.co/oDZfQPhsaJ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「関数呼び出しと関数へのポインタを返す式は、デリファレンスを1回やるかどうかの違いだけなので、大した違いではない」 / Twitter
long double
- long double ‐ 通信用語の基礎知識
- www-an.acs.i.kyoto-u.ac.jp/~fujiwara/server/longdouble.html
- long double - Wikipedia
- calculation with long double precision
128 ビット整数
- C - 64bit以上のビットボードを扱いたい(18432)|teratail
- gcc拡張、128bit integer | messier42の日記 | スラド
@kazuho
- Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
- Kazuho Okuさんのツイート: "C言語にはクロージャがないからコールバック関数定義してデータ構造体を持ちまわってる? マクロつかえばいいのに、ご苦労じゃね"
- Kazuho Okuさんのツイート: "と思ったけど、100行以上続くマクロ展開のあるCコードとか書いてるわ。闇技術www https://t.co/PTgNiPTrbL"
- picotls/picotls.c at master · h2o/picotls
- Kazuho Okuさんのツイート: "構造化データのcodecをCで書いてるとマクロにブロック埋め込むの超便利でクロージャ気分なんだけど、マクロ内のステートメント単位でデバッガで追えないのだけが辛い。ちなみにこんな感じ https://t.co/k8xRffKEzg"
- picotls/picotls.c at master · h2o/picotls
- Kazuho Okuさんのツイート: "僕のCコードの中で再頻出のメンバ名は super です。なぜなら struct Dog { struct Animal super; void (*bark)(Dog *dog); }; ... struct Dog *dog = (Dog *)get_animal(...); とか書くから。今時のCなら当然ですよね。"
- Kazuho Okuさんのツイート: "言語のもつパラダイムによって特定のデザインパターンを強制されないのがC言語のいい(わるい)ところです"
- Kazuho OkuさんはTwitterを使っています 「ふと気になって試してわかったけど、↓みたいな感じで書けば関数宣言をコピーすることできるんだ。。。 typedef __typeof(fprintf) fprintf_t; fprintf_t foo; int main(int argc, char **argv) { foo(stdout, "hello world\n"); return 0; }」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu プロトタイプ宣言しかしてないのでリンクできない感じですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「何をやってたかというと、プロトタイプを全く書かずに、ライブラリ実装のコンパイルタイムでの切り替えをサポートすることはできるのかなーって試してたのでした。(実際にやるかどうかほ別として)できそうという結論に達した https://t.co/RUh0FZEJwM」 / Twitter
- introduce `h2o_sysfn` macro; allows deployments to replace certain syscalls with their own by kazuho · Pull Request #2418 · h2o/h2o
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「C言語が単純だ」なんて誰が言った? たとえばsizeof()の値はつねにunsignedなので、 (1 - sizeof(int)) >> 32 は算術シフトではなく論理シフトになり、答えは-1でなく0となる。 こんなん全部知ってたら神だな。 https://t.co/UVroy5P8TB」 / Twitter
- Who Says C is Simple?
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「C言語における構造体パッキングの秘儀。構造体メンバの順序を変えることによりアラインメント制約が変化し、これがメモリ使用量と速度に影響する。各CPUアーキテクチャ(x64/ARM)と言語ごとの違いも解説。ビットフィールドやキャッシュ局所性についての注意もある。 https://t.co/RKdU4fXiCd」 / Twitter
- The Lost Art of Structure Packing
- 今までに遭遇したことのない警告が出て困っています。 - Windows7 3... - Yahoo!知恵袋
- Hideyuki Tanakaさんのツイート: "式の型と値の型の区別がついてない人が多いんじゃない?(知らんけど)"
- alignas - cppreference.com
- /J (既定の char 型の unsigned への変更) | Microsoft Docs
- とが🍀🌈🎵さんはTwitterを使っています 「C 言語の宣言で * とか [] が右側に付く理由 https://t.co/NsmgruqH59」 / Twitter
- とが🍀🌈🎵さんはTwitterを使っています 「・「もとは」というのは B 言語まで遡ります ・今のような型の概念は C 言語から(B では配列や右辺値/左辺値程度の区別しかなかった)なので「もともと型の違いを表していた」というのも正確には「今の型の概念のうち配列型・ポインタ型・関数型に相当する部分が右側の書き方で区別されていた」です」 / Twitter
- とが🍀🌈🎵さんはTwitterを使っています 「https://t.co/LbcV47i5dM」 / Twitter
- しる@人口知能モドキ(IQ3)さんはTwitterを使っています 「@57tggx そういえば昔は「int型のポインタ変数」だったのが、いつの間にか「intポインタ型の変数」になりましたね。」 / Twitter
- Slashdot | Interviews | C++ Answers From Bjarne Stroustrup
- paul-j-lucas/cdecl: Composing and deciphering C (or C++) declarations or casts, aka ‘‘gibberish.’’
- Interview with Dennis Ritchie, Bjarne Stroustrup, James Gosling
- Kazuho OkuさんはTwitterを使っています 「いい質問。 ・拡張性不要なら型を表すenumとunionで十分 ・関数ポインタを直接入れるのは型enumと比べて空間効率が悪い。vtbl形式は実行効率で劣位 ・なので関数ポインタを入れるのは大規模かつ拡張性が必要なプログラム(例. カーネル)以外では珍しい みたいな感じかな」 / Twitter
- mitsuo_suwaさんはTwitterを使っています 「#C言語 の構造体に #関数 の #ポインタ を持たせて #クラス っぽく使ったり出来ます。privateっぽくメンバ変数を持つことも出来ます。つまりはC言語でも #OOP が出来ます。なのになぜか、そうする人がいないのです。手を抜いてるのか能力がないのか、その両方なのか。困ったものです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「このあたりの話、bit連載の7bitsの「必然的にオブジェクト指向」でとても良い議論をやっているだけど、もう手に入らないかな (ソフトウエア千一夜にあった気もする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「うろ覚えだけど、優秀で遠慮のない新人プログラマが上司と上司の恩師の所に行って話をするという話。新人君がオブジェクト指向なんて優雅なこと言ってるけど、現場のプログラマにはそんな余裕はないですよ(まあ30年くらい前の話だし)、みたいなことを言って話が始まる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「恩師はそんなことは無いと言うことで、UNIXのファイルデバイスを例に挙げる。ファイルデバイスはopen/write/readなどのシステムコールに対応した関数ポインタメンバーを持った構造体を使うことでデバイスの詳細が分からなくてもファイルを扱うことが出来る。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「みたいな感じで話が進む。構造体のメンバーが大域変数と同じくらい重要なものであるとかそんな感じで当時の現場で使うようなCでもオブジェクト指向の考え方が有用だよと言う話。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「昔は盛んにやられてましたが、規模が大きくなるとひたすら面倒になること、俺OOを持つライブラリと別の俺OOを持つライブラリとを一緒に使おうとすると組み合わせの数だけ手間が増えること、等から、面倒を自動的にみてくれる言語に流れるのは無理からぬことでしょうねえ。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「類似の構造はメモリ管理にも言えるかも。リファレンスカウンティングとかマークスイープとかを自分のライブラリだけで実装するのは難しくないけど、複数の独自実装を混ぜて使おうとすると超面倒になるので、言語でサポートされるならそれに越したことないってなる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Cのvirtual関数相当のことをやっている実例を2つ挙げておくと * OpenSSLの暗号エンジン (たとえばrsa_st::methodが仮想関数テーブル https://t.co/8UGRJhp5oG) * linuxの仮想ファイルシステム (たとえばinode::i_fopが仮想関数テーブル https://t.co/VCh1tat8AO) みたいな感じ」 / Twitter
- openssl/rsa_local.h at OpenSSL_1_1_1l · openssl/openssl
- linux/fs.h at v5.14 · torvalds/linux
オーバーラップ判定
- ほっとさんのツイート: "C/C++で、異なる配列内の要素を指すポインタ同士の大小比較は未定義っての、同僚に指摘してもらって初めて知った。 メモリのオーバーラップを検知したいという状況だったけど、調べてみたらなかなか奥が深いのな… https://t.co/SCZqm5ci8v とか https://t.co/rC9W7i4E0P とか"
- C++においてメモリブロックのオーバーラップ判定は不可能なのか - センニジュウヨン
- How to check if a pointer is in a range of memory | The Old New Thing
- Fadisさんのツイート: "あー、でもundefined behaviorになった時点でコンパイラはこの比較をそれらしいマシン語に落とす必要が無くなるから、それも保証されないか"
データ構造とパフォーマンス
- 眼力 玉壱號さんはTwitterを使っています 「cache miss penalty が 30年位前とは比較にならない位デカイんだよねえ…なので pointer で繋いでいくタイプの data structure は理論性能と実性能が乖離しやすくなってる cf. https://t.co/YQ2cIuYuPV」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/UE5Q4LKWva の p.40 位に Hurb Shutter センセの『黙って array 使え』的な話が…勿論問題規模に依存はするけど、かなりの場合 array で行ける的な感触スね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyでは動的にサイズ変更できるVBufという、アドレス空間予約(MEM_RESERVE)利用の Arrayを多用している。 Win32アドレス空間予約は、mmap等の仮想メモリ確保と違い、 ・PTD/PTEすら消費しない ・プロセス/OSの仮想メモリ量は増えない のが良い点。 https://t.co/Y8mvNKscpm」 / Twitter
- SHIROUZU Personal Log
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、64bit OSでアドレス空間が増えてから特に威力を増した印象ある。 (予約だけならPTD/PTE増えず、タスクマネージャでも仮想ページ増えないため、遠慮なく大きくできる) 1dir直下に2000万ファイルといった状況にも対応できるよう、stat領域に8GB空間予約していたりなど。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そして何より、性能と使い勝手はArrayそのものというのが良い」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこれ、スタック的な成長方向だけでなく、やろうと思えば基底側の成長できたりする。 (でもそれが必要な状況が浮かばない…思考が制約されてるのだろうか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オープンアドレス法は、MS-DOS時代に全盛だった方法くらいに捉えていて(想定以上のコリジョンで指数的に破綻、削除で嫌らしい話が出る)、大人になってこの方、チェイン法ばかり使っていたなぁ…ちょっと勉強し直すかな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ、「テーブルとデータ配列は別確保」という変則オープンアドレス版の話であって普通のそれは敬遠したほうが良さそう)」 / Twitter
MiraclePtr<T>
- Kentaro HaraさんはTwitterを使っています 「MiraclePtr(みらくる☆ぽいんた!!)が記事に取り上げられてた。まだ実験段階のプロジェクトですが、Chromiumの生ポインタを「Use-after-freeを検知して安全にクラッシュするポインタ」に性能劣化0%・メモリ劣化0%・コード自動書換で置き換えるというみらくるな構想で、 https://t.co/qXowPSx0Nt」 / Twitter
- MiraclePtr<T> One Pager [PUBLIC] - Google ドキュメント
- Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(<--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プログラム解析を駆使して、必要なければGCをスキップして生ポインタを使って必要ならGCを使うっていうことはmmcの経験から可能だろうなーっておもう。問題は、GCとかメモリ管理のランタイム側をそのように対応しないといけないこと。この辺もプログラムに合わせて自動生成するようになっていくと思う」 / Twitter
- hikaliumさんはTwitterを使っています 「MTECheckedPtr, めっちゃおもしろい。アロケータのメタデータにタグ情報を突っ込んでおいて、derefするときはそのtagで上位16bitをxorしてからderefする。freeされたらtagを違う値に書き換えておけば、derefするときにnon-canonicalになってuse-after-freeを防げる。うおお。 https://t.co/JVaIsdZhEm」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「https://t.co/tjZR3BEWlU MTECheckedPtr<T> 、なるほどと感心した。セキュリティ的にはオーバーヘッドに対してこれどのくらいカタいのかな。任意アドレスに書く状況になってたらアドレス漏れててタグも漏れてそうで、入口部分の、読ませちゃダメな領域を読んじゃう機会が減るという感じかな」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「@shinh タグが漏れてるとアウトだし、せいぜい16bitが限度なので回数攻撃で突破できるかもですね。結局はリスクの程度問題で、いまはUaFのバグ修正に膨大なエンジニアリングコストとインフラコストを費やしてるので、UaFのリスクを減らすことでそれを減らせないかなというお話です。」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@xharaken なるほど、やっぱり mitigation で、トレードオフの問題になる感じですよね。 16bit 限度なのは ASLR の上位 bit に犠牲になってもらえば巨大 null page 作って増やせそうですね……まあ別の mitigation 弱めるのは本末転倒感がありますが。面白いドキュメントありがとうございます!」 / Twitter
strict aliasing rules
- strict aliasing rules, type punning解説 その1 - gununuの日記
- C++ エイリアスと最適化の危険な関係 - プログラミングの教科書を置いておくところ
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- C++警察のあんたがたにpointer interconvertibleという新たなおもちゃのおしらせです - Qiita
- std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
- c - strict aliasing rulesにおけるアクセスの基準 - スタック・オーバーフロー
- strict aliasing ruleについて
- SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
- 厳密なエイリアスルールとは何ですか?
1バイト == 8ビット
histric
histric-1
- Why is one byte formed by 8 bits? - Quora
- Kazuho OkuさんはTwitterを使っています 「360説は有力だと思うけど、技術的合理性の説明にはなってなくて、じゃあただの100%偶然なの?技術的合理性があるんじゃないの、とツッコミいれたくなるクラスタ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「1byte = 8bitの理由、TLで流れている説を総合すると、IBM 360という理由が一番大きいのかな?EBCDICが広まらないのはなぜ?という話はあんなクソなものが広まるわけないだろで終わりということで」 / Twitter
- Miura HidekiさんはTwitterを使っています 「パンチカードを使うことを前提に考えると分からないでもないのだが」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 たぶん唯一の要因ていうのは無くていくつかのイベントのカスケードだと思うんだけど、言語処理系実装の観点からだとPDP-11 (1970) の影響は大きかったんじゃないかって気がする。それまで18bitや12bitワードだったのを16bitワードにしたのは文字が6bitじゃ足らなくなったせいだろうけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana 何気にDECのマシンの影響は大きそうです。今の主流はメインフレームよりUNIXの流れですので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そもそも1byteが何bitかはっきりしなかった頃のコンピュータって、文字をどの程度どうやって使ってたの? 国鉄の予約システム(マルス)とか1960年だし、多数の専用通信端末と一定規模のストレージをもつシステムだけど、中の構造が具体的にどうなってなのか、ハードもソフトも知らない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「コアメモリとドラムディスクだったのかな? バックアップと障害からのリカバリどうしてたんだろ? 内部データ構造は? 通信規格は? ...」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho PDP-10 (36bit word machine) の場合、アプリによりけりで 6bit×6文字、7bit×5文字、8bit×(1~4文字)を32bitに詰めるといったパターンがあって、カオスだったっぽいような? https://t.co/GFHfsWM4O4 実際に使ってたわけじゃないので自信ありません…」 / Twitter
- PDP-10 ASCII
- SODA NoriyukiさんはTwitterを使っています 「@kazuho あ、Portable C Compiler の 9bit×4文字を書き忘れてました…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「COSMACって知らなかった… (SC/MPは知ってます、大学時代の無線部の1年先輩が好きだった奴w) メインフレームのSystem/360が8bit byteだったことと、ミニコンベストセラーのPDP-11が8bit byteだったことで、1970年代中盤には趨勢がほぼ確定してたのかしら?」 / Twitter
- Hacker MaskeeさんはTwitterを使っています 「70年代のマイクロコンピュータ 8080 の他にも 6800,6502,SC/MP,COSMACとかあったけど、どれも 8bitなのよね。この頃には、CPUの基本単位として 8bit がメジャーというのは確立していたような気がする」 / Twitter
- Hacker MaskeeさんはTwitterを使っています 「もちろん、アドレッシング巾の話とデータバス巾の話と1byteは何bitかという話は一応独立した話というのは承知の上で」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@n_soda 1980年頃のカタログです (日立に 1980年10月改版とあるので他社もその頃のはず)。 4bit 1 チップマイクロコンピュータが組み込み制御系等でそれなりにあったと思います (実物は見たことありませんが)。 COSMACは RCA 1802ですね。 https://t.co/PDa0oLkfyo」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@ogawa_tter ありがとうございます。 この中だと16bit CPUへの言及のない富士通のが一番古そうですね…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バイトサイズがバラバラだった1960年代って、まだコアメモリの時代で、職人さんが1ビットごとに手編みしてた時代だから、配線減らせるとかそういうレベルじゃないと思う... 違うのかな🤔 https://t.co/dlg26Fk29D」 / Twitter
- 磁気コアメモリ - Wikipedia
- Hideyuki TanakaさんはTwitterを使っています 「1バイトは基本的にパラでデータを持ってくるデータバスの幅がこの倍数になるだろうから、これが多すぎるのも、初期のマシンには配線が多くなりすぎてつらかったんでは。バイトより小さい単位でしかデータを取ってこれないマシンは、いくら何でもめんどすぎるし速くしづらい気がする。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「メモリが半導体になってすぐに多ビット化が始まるあたりでバス幅が2の累乗に整理されるというのはその通りなのかもというのは https://t.co/CMLV3mhegp のスレ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「実際、ワードマシンの中でもメジャーな部類の DECSYSTEM-20 (PDP-10。1985年くらいにアスキー社内で使われているのを見せてもらったことがある)は36bitマシンで、6bit byteや9bit byteなら整数倍になるけど、7bit byteや9bit byteで使われてたケースもあるっぽい→ https://t.co/gOqsuvWkV2」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「バイト幅が 8bit に定まる前のマシンの趨勢はワードマシンなので、ワード幅がバイト幅の整数倍にすらなってないのも珍しいことではなかったり」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「s/7bit byteや9bit byteで/7bit byteや8bit byteで/」 / Twitter
- artonさんはTwitterを使っています 「@kazuho 8ビットのうち1ビットをパリティに利用して物理8ビット論理7ビットということはないですか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@arton パリティを求めるようなハイエンドなシステムが、市場全体の製品構成を決めるほどの数が出るのか(実際出ていたのか)という話かなと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @arton byte machineで、1byte != 8bit であるマシンって存在したんでしょうか。 1byte != 8bit であるマシンはほぼすべて byte machine ではなく word machine じゃないかと疑ってます。 というわけで、parity 説には不賛成かなあ。」 / Twitter
histric-2
- SODA NoriyukiさんはTwitterを使っています 「うーん、そうなのかなあ… シリアル通信では7bit + parityも使ったけど、あれはあくまで通信プロトコルでの話で、いったんメモリに取り込んだ状態でparity bitって使った経験ないっす。 UNIX系のコマンド群でも、昔は最上位ビットを別用途で使ってたものはあったけど、parity用途はなかったと思う。」 / Twitter
- ひろせつよしさんはTwitterを使っています 「@nagise まず、文字系のASCII7ビット+パリティ1ビットありきだった気がします。送らないときはパリティいらないので7ビット。 で、メモリ読み書きするときに効率よくするには8ビット単位で読んで…みたいな。日本語とかだと8ビットは文字数に対して領域足らないので16ビットにして…みたいな感じだったかな。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そもそもなぜSystem/360が1バイト8bitになったのか。360に先立つEBCDICが8bitコードである主な理由について、1979年に書かれた書籍(著者はIBM)は2点挙げていて * 1960年代の想定では計算機の想定用途の75%が数値計算でpacked BCDによる空間効率向上が文字コードの非効率性よりも重要」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* 7030(スパコン)がバイナリ指向で64bit浮動小数を想定したアドレシングで、その整数分の1である8bitが都合よかった https://t.co/RUAAClseQW」 / Twitter
- Coded Character Sets: History and Development: MacKenzie, Charles E.: 9780201144604: Amazon.com: Books
- Kazuho OkuさんはTwitterを使っています 「いいですか!これ面接で聞かれるからね!!!(絶対ない)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「https://t.co/fTJi3AfFDc のp.122です」 / Twitter
- Mackenzie_CodedCharSets.pdf
- Kazuho OkuさんはTwitterを使っています 「Q「なぜ1byteは8bitなのか」 A「EBCDICも8bitだし」 Q「なぜEBCDICは8bitなのか」 A「浮動小数に64bitが都合よかったから」 この展開は想定外すぎる」 / Twitter
- FadisさんはTwitterを使っています 「IntelがLinuxのIntel GPUのドライバをARM向けにビルドできるようにする変更を用意している話。Intel GPUは従来統合GPUだった為そのドライバはx86以外でのビルドを想定せずに実装されてきたが、IntelがディスクリートGPUを作った事でハードとしてはx86以外に繋げるようになった https://t.co/dQC7hYKgMg」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「やっぱりASCII 7bit + parityが理由ってのは勘違いってことでいいと思う>RT参照」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda ハードウェアでのパリティビットサポートはありますが、メインメモリのパリティビットをCPUの命令セットからいじるというのは速度的にも機能的にも良く分からないですね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho ハードウェアの場合も、8bitの倍数のバス幅+parity bitっていうのがほとんどで、7bit + parity はシリアル通信以外だと思いつかないです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「面接で聞いていいの、せいぜいが 「ASCIIの制御コードのうち、なぜDELだけが離れたところ(0x7f)にあるのか?」 くらいまでだと思うんだよね #ダメ」 / Twitter
- KOIZUKA, AkihikoさんはTwitterを使っています 「パンチカードで全部に穴を空けるやつだ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ASCIIが投票で7 bitに決まった(8 bitよりも多くの票が集まった)経緯も書いてて、標準化委員会の決定文に「まぁ7bitとか内部コードでは使われないんだろうけど」とか色々書いてあるってさ p.217」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「追記「1文字6bitじゃ足りなくなってきたというのは些細な話。そうではなく上記2点の根本的理由から、Syste/360で1バイト8bitにすると決め、その結果として文字数を増やしたんだ」とも、はっきり書いてある」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています 「パンチカード時代の文字消去に都合が良かった。間違った文字に全部穴を開け0x7f = DEL文字にする。DEL文字はシステムに無視されるので、間違った文字を消したのと同義。 しかしもはやどうでもいい知識だし、これ聞く面接官いたら「何が聞きたいのか??」と相手を困惑させるだけだろうなー……。」 / Twitter
- Masayoshi TakahashiさんはTwitterを使っています 「@kazuho https://t.co/dvmV34v9Ox MARS-101(最初の試作機MARS-1ではなくてその後の本格版の方)については日立評論1964年6月号の特集が詳しいようでした。1ワードは40bit+パリティ1bitだったそうです」 / Twitter
- 1964年6月号:日立評論
histric-3
- Kazuho OkuさんはTwitterを使っています 「IBMが7030/360での2進法への移行に「1バイト8ビットでええんや。BCD考えても効率いいし」ってやったのに対し、360より後にでたPDP-8とかが可変長バイトに対応していたりするのは、やはり製品価格帯の違い(PDP-8のがずっと安い)のと市場への影響力(仕様を押しつける力)の違いなんですかね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「僕は通信屋だけど、パリティビットはハードウェア処理しないと遅くて意味がないから命令セットの議論には関係ないし、System/360系の議論の典拠となっている書籍の著者は文字コード屋さんだ(正確に言うとパンチカードの標準化委員会の議長とか勤めた人)、というのは指摘しておきたい」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「1バイトが何ビットなのか問題、そもそもCPUにとっての「バイト」っていう単位がなんなのかそもそも分かってないので誰か教えてください。」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「@igrep ビット生だと扱いづらいのでまとめてビットアレイにしましょう.その単位をbyteと呼びましょう.低レイヤーなのでCPUレベルでサポートして高速化しましょう.物理でビットアレイの長さを決めなきゃいけないのでソフトがどのCPUアーキでも使い易いように規格化で8bitにしましょう.って感じですかね.」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マイナーメーカーの戦略が標準技術がんばることで市場リーダーの優位性なくすってのは昨今かわらないし、ASCIIが6ビットでなく7ビットになった時点でバイト=8ビットになる流れは決まったんじゃないの? 7ビットは内部アーキテクチャとして筋が悪いわけで(というのはASCIIの決定文にも出てくる)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ASCIIが6 bitのシフトつきコードになってたら、内部アーキテクチャ6*nビットが主流になってた世界線もひょっとしたらありえたんじゃないの? System/360やASCIIと同時期に開発された12ビット機PDP-8の話だけど」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@kazuho IBM Sytem/360の方向性を検討した SPREAD task group, Final, Dec 28 1961 (Sep 1966) のここですね https://t.co/cXLqIYzAFu 参考にされた IBM 7030 Stretchは英語版 Wekipediaによると https://t.co/KQOsBwBnB6 Bytes: Variable length (1 to 8 bits) "the eight-bit byte for I/O" とあり確認中です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @sarashinoio @igrep @methane @kotatsu_mi 昔の文書だと4-bit byte and 8-bit byte(つまりBCDの1ニブルと8bit文字をそれぞれバイトと呼んでいる)のような言及はあるので、「処理するデータ単位」くらいの意味もあるでしょう。英語版Wikipediaみるとそもそも揺れがあったようですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @sarashinoio @igrep @methane @kotatsu_mi "Decimal digits and alphanumeric characters will be represented in four-bit and eight-bit bytes." https://t.co/dD7vTtAKen」 / Twitter
- Final report of SPREAD task group with associated correspondence and notes | 102713231 | Computer History Museum
- Kazuho OkuさんはTwitterを使っています 「バイトがなぜ8ビットかって、昔のコンピュータは10進演算で数字一桁格納するのに4ビット使ってて、その「倍」だから「バイト」なんだよ。日本製のコンピュータが強くてIBMが訴訟起こした頃の話」 / Twitter
- Hacker MaskeeさんはTwitterを使っています 「まあ、70年代マイコン少年だったから、1byte = 8bit は当然というか定義だったし、K&R に「1byte = 8bit を想定するとポータビリティ無くすよ」って言われて「マジかよ」って思ってたクチではあります」 / Twitter
- Hacker MaskeeさんはTwitterを使っています 「昨日からTL眺めてたので、「何故1byte = 8bitか?」の答えは「大ヒットした System/360 が採用したので業界標準になった」と即答できるようになった」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「@methane @n_soda @igrep @kotatsu_mi 正確にはwordっていうのも間違いじゃないんです,ibm stretchではbyte=可変wordだったので.そこからbyteが巣立ったということだと思います.」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「@methane @n_soda @igrep @kotatsu_mi >It combines fixed word length arithmetic for performing floating point operations with the flexibility of variable word length arithmetic in which the words can be composed of "bytes" with from one to eight bits in a byte. https://t.co/8caHc2kNuS」 / Twitter
- Organization Sketch of IBM Stretch -- Mark Smotherman
- SODA NoriyukiさんはTwitterを使っています 「でもって System/360 が 1byte=8bit とした理由はこちらのスレッドに→ https://t.co/iZMVNqdfTj」 / Twitter
histric-4
- まさみさん⋈語りたいさんはTwitterを使っています 「1バイト8ビットの由来、System/360系からはPacked BCDや計算効率、浮動小数点計算から2進数を選んだことになっていて、文字コード勢からはASCII+パリティビット由来になっていて、誰かが「これはこう!」と決めたわけではなく、デファクトがデ・ジュールになっただけなんだろうなあ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「System/360が全ての計算機の元祖ではないっていう話ですあしからず。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@kazuho 個人的な感想としては「System/360が1バイト=8ビットを選んだ」ことと「今殆どのアーキテクチャで1バイト=8ビット」になっていることの間に何があったのかの方が気になりました。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@kazuho System/360がそれを選んだ理由については調査ありがとうございます。大変勉強になりました。追随した製品が同じ方式を選んだのはやっぱり売れたから、ということになるんでしょうね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@mhiramat 😘 データ互換性がどれだけ求められたかはわかりませんが(パンチカードは基本的にEBCDICでもASCIIでもなかったわけで)、IBMが市場の過半を抑えていた以上、周辺機器等エコシステムは引っ張られたでしょうね。System/360の周辺機器ケーブル(Bus and Tag; FIPS 60)は8 bit+parityだったようですし」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@mhiramat cf. https://t.co/xLhe2aK8H9」 / Twitter
- FIPS_60 2_IO_Channel_Interface_Jul83 FIPS 60 2 IO Channel Interface Jul83
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「1バイトが何ビットなのか問題、そもそもCPUにとっての「バイト」っていう単位がなんなのかそもそも分かってないので誰か教えてください。」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「@igrep ビット生だと扱いづらいのでまとめてビットアレイにしましょう.その単位をbyteと呼びましょう.低レイヤーなのでCPUレベルでサポートして高速化しましょう.物理でビットアレイの長さを決めなきゃいけないのでソフトがどのCPUアーキでも使い易いように規格化で8bitにしましょう.って感じですかね.」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 複数ビットをまとめたアドレス可能な最小単位という意味では、byteだけではなく、word machineのword(36bitとかで、それを分割してbyteとして扱っていた)でも同じことなので、byteの定義にはならないと思います。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi 初期のコンピュータの主用途は数値計算・会計計算なのでintがそのまま扱えるword machineの方がある意味自然でしょう。 ではbyteの主用途とは?というと https://t.co/bPqCwMxlT9 にもある通り文字だと思います。」 / Twitter
- Sarashino(晒野)さんはTwitterを使っています 「@n_soda @igrep @methane @kotatsu_mi アドレス可能な最小単位とは一言も言ってないですw あんまり私が言ってることと相違ないようですがなにか意図ありますか?」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@sarashinoio @n_soda @igrep @kotatsu_mi 「アドレス可能な」と言ったのは私ですね。 「CPUにとって」というよりC言語にとってのバイト(sizeof(char))という意味でした。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@sarashinoio @igrep @methane @kotatsu_mi リプライ元だった https://t.co/DubIHQLPCT への引用ツイートである https://t.co/i0k9vCsKiE および https://t.co/i0k9vCsKiE への返事でしたが、スレッドを分岐させると読みづらくなるので @sarashinoio さんのツイートにぶら下げてしましました。 わかりづらくて済みません。_o_」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@ogawa_tter ありがとうございます。この資料の存在、知りませんでした。4-bit単位でのアドレッシングも想定されていたんですね(BCD考えると当然)。System/360で実際できたんでしょうか」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@kazuho 当時の IBMの超々極秘プロジェクトの報告書で歴史的価値が非常に高いので公開されてるのでしょう。IBMの歴史を眺めていたらここで紹介されていて見つけました https://t.co/C4iSgPDsHU ※これは IBMメインフレームの歴史等々のスレッドです。 360での 4bitアドレッシングは実装されてないと思います。」 / Twitter
histric-5
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho System/360の1byte=8bit決定の理由ついては、ブルックスの見解では違うように見えます。 (下記に続くの小川さんのツイートも参照下さい) https://t.co/ra86NEfsTV」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。これは当時の関係者間で見解が割れるパターン!!!」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「System/360のF.ブルックスが「従来は6bitだったが、(浮動小数点関連に加えて)、将来の小文字対応のために 6→8bitにした」と書いていて、「それが決め手だったとは…(長期の技術的展望でなく)」と少し驚いた覚えが。 https://t.co/DzMsATPLRD https://t.co/wxFabcIt6H」 / Twitter
- satさんはTwitterを使っています 「https://t.co/yGOy9LLaL5」 / Twitter
- 1バイトが8bitに定まったのは2008年 - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@shirouzu 出典は F.ブルックス「デザインのためのデザイン」 https://t.co/cXN4GJY5md」 / Twitter
- デザインのためのデザイン | フレデリック・P・ブルックス Jr., 松田 晃一, 小沼千絵 |本 | 通販 | Amazon
- OGAWA, TadashiさんはTwitterを使っています 「@shirouzu .@shirouzu アルファベット向けに 8-bitを 1Byteとするは、IBM System/360の方向性を検討した SPREAD task groupのレポートで提言されてますね (画像 4枚目) https://t.co/HMzYK64cEv 1つ前のツイもご参照に。 https://t.co/9bYll5ua5J」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「データバス幅減らすとアドレス(アドレスバス幅ではなく、総量)が増えるので、手配線ならむしろ広めのワードアドレッシングの方が有利じゃないかな。なのでむしろ初期のマシンは36bitとか18bitとかだったわけで。 IC使うようになってバランスが変わったというのも要因のひとつかも。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「1バイトは基本的にパラでデータを持ってくるデータバスの幅がこの倍数になるだろうから、これが多すぎるのも、初期のマシンには配線が多くなりすぎてつらかったんでは。バイトより小さい単位でしかデータを取ってこれないマシンは、いくら何でもめんどすぎるし速くしづらい気がする。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@kazuho @shirouzu F. Brooks氏の Turing Awardサイト https://t.co/dLKG0gKmvg 公開されているビデオで 360 and adoption of the 8 bit byte https://t.co/tVSSxDFbyZ 6/8 bitの議論が紹介され、 Really better for 6 bit: Scientific 8 bit: Commercial 最終的に Brooks氏が決定と。 Stretchの可変 bit Byteは過剰と…」 / Twitter
- Frederick Brooks - A.M. Turing Award Laureate
- Brooks on the System 360 and adoption of the 8 bit byte - YouTube
- Kazuho OkuさんはTwitterを使っています 「まあBrooksがインタビューの中で「商業分野においては1バイト8ビットが優れていると判断された」って言ってるのはpacked BCDの話だろうし、そう考えると、両者の言ってることはそこまでずれてもいない」 / Twitter
histric-6
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「昨日も書いたけど、「世界で初めて商業的に成功したバイトマシンである IBM System/360 が 8bit を採用した理由」は、「現在 8bit である理由」の大きな要因の一つではあっても、理由のすべてではないので、それだけでは理由の説明としては片手落ちです。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@AoiMoe 流れとしては https://t.co/jDnMGFPhWg な感じで、このツイートの「?」のところの正確な理由が何かってことですね。 で、「?」の部分には、「System/360の選択に合わせた」以外に、「System/360が8bitを選択した理由が、ミニコンやマイコンにも当てはまった」というのがあると思います」 / Twitter
- ひろせつよしさんはTwitterを使っています 「@n_soda あー。そうかもです。30何年前にモデムでインターネットつなげるときにどっかのサイトと通信できなくて「相手がパリティ取ってないから」みたいな。 CPUの読み書き単位が文字基準、は当時いた会社の開発課長から聞いた気が…ダンプ読みやすいでしょ、とか言われて読めねーよ、と思った記憶があります。」 / Twitter
- ひろせつよしさんはTwitterを使っています 「@n_soda いったん4040(でしたっけ?)行ったときに4ビットひとくくりにしなかったのは流石に小さすぎたんでしょうね。勉強になりました。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@vdmkt RS-232Cでの通信は8bit non-parityか7bit parity付が主流で、これがあってないと文字化けしましたからね。(文字化けの理由はbaudrate違いなど他にもありましたが) 1byte=8bitの起源の方は https://t.co/iZMVNqdfTj でしょう」 / Twitter
- ひろせつよしさんはTwitterを使っています 「@n_soda 8ビットにした理由、は理解したんですけど8ビットが勝った理由、はやっぱり8080のバカ売れでしょうかね? あるいはダンプ読みやすいから?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@vdmkt ・メインフレームの世界で System/360 が商業的に成功したこと ・(System/360の影響で?) byte==8bit を採用した PDP-11 および VAX-11 がミニコン分野での覇者となったこと ・ (ミニコンの影響で?)マイコン(intel 8080を含む)がすべて byte==8bit を採用したこと みたいな流れだと思います。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @AoiMoe 文字コードについては多分に外部性の議論がありそうな気がします。弱小が独自規格でがんばるのは辛い」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho byte machineじゃなくて、36bit くらいの word machine が世界制覇してた可能性はありえたと思います。 ただアドレスの最小単位のbit数が2の冪乗であることは、初期の計算機(初期のマイコンも含む)だと無視できないメリットとしてあると思うので、36bit wordよりも32bit wordの方がありえたかも?」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@n_soda @kazuho 東芝の 12ビットマイクロプロセッサ TLCS-12A https://t.co/B6QkRCQdR5 がありましたね。TLCS-12:1973年、TLCS-12A:1975年。 チップではありませんが、4bit BIt-Sliceを 3個使った 12bitマシン (オフコン) もあったはずです。4bit BCD 3桁は 000桁表現と相性が良いとの理由だったはずです。」 / Twitter
- TLCS-12A - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「@ogawa_tter @n_soda 6bitで1byteなら、12bitアーキ、24bit、48bitって進化になったんですかね。それなりにうまくいったと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @ogawa_tter よく知らないんですが、成功したword machineには、PDP-10、UNIVAC 1103のように36bit wordが多かったんではないかという印象があります。 NECのNEAC-2201は40bit/32bit/36bit/37bitのバリエーションがあり、このうち36bitのNEAC-2203の系列で後継機が作られたとか: https://t.co/MAlXEdxWpz」 / Twitter
- NEAC - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「@n_soda @ogawa_tter 6bitが1バイトの世界でも普通にバイトマシンは作れた(intは2^nバイト)でしょうし、ワードマシンの生き残りに寄与する理由はない気がします」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama バスを3bitの倍数で作り、アドレシングは6bit単位(つまりはバイトマシン)にすれば普通にいけると思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama バス幅を」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @ogawa_tter たぶんbyte machineが生まれたら、そちらが勝つ可能性の方が(もしそれ以外の商業的要因が同一であれば)高く、 word machineが覇権をとる可能性というのは以下のどちらかのケースじゃないかなと… ・byter/word 以外の商業的要因の方が支配的だった ・byte machineがそもそも生まれなかった」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama いますぐには思いつきませんが、bit数が2の冪乗でないと面倒くさくなる処理って、他にもありませんかね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama データが1文字6bitなら問題ないと思います。データがASCIIで、1文字7bitだったりすると死ぬし、1文字12bitだと空間効率悪いですね」 / Twitter
histric-7
- fjのYog教祖様さんはTwitterを使っています 「@kazuho MPUはmicro codeで命令セットを定義していたぐらいでメモリIOの方がMPU処理速度より速かった時代なので。 なので、6bit MPU上でASCIIを処理したければ内部で6bit register pair を定義する形にすれば良かったはずで、こういう形式が禍根になるのは大分後だと思う。 そう考えると「なんともわからん」」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama @kazuho うーん、6bit byteだと、アドレス算出でシフト演算じゃなくて6による除算が必要になるわけで、除算命令もバレルシフタもない時代のマイコンでそういうのはきついと思います。」 / Twitter
- fjのYog教祖様さんはTwitterを使っています 「@n_soda @kazuho アドレス計算では、何も変わらないと思いますよ。だって「1バイトが」何ビットなのかは影響を受けても「何バイト動くのか」は1byte何ビットなのかの影響を受け無いもの。 bit field の利用は頻度が下がる、と言う程度だと思う。メモリ利用効率が悪化するので「マイコン」は普及が遅れると思うけど」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama @kazuho モノクロframe bufferやbit vectorのアドレス計算が、 offset = n >> 3; bit = 1 << (n & 7); から offset = n / 6; bit = 1 << (n % 6); に変わるわけで、現代のCPUなら全然問題ありませんが、8bit CPU時代だと、かなりキツイと思います。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama それは逆のことも言えて、ASCII文字は古来5x7のマトリックスに1ピクセルの余白なので、6bitが有利なんですよ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama フォントはシフトするだけですけど、割り算はそうもいかないので、割り算の方が辛い印象が。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama もちろんルックアップ組み合わせるんでしょうけど、その複雑さは例えば5x7文字のラスタリングの複雑さと、そう変わらないと思うんですよね。別に6bitが良かったとは思わないですけど、差がつくほどのものがあるかと言われるとない気がします。カラーグラフィックになると3の倍数は有利だし」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama ふーむ、なるほど。 でもbit vectorの方だとその有利さはないですよね。 あとPC-98育ちなので、石器時代のカラーグラフィックはモノクロフレームバッファ×3プレーンと刷り込まれてたり。^^;」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama bit vectorは一般はおっしゃるとおりで、空間効率を犠牲にすることになったんでしょうね。4/6で入れるか16/18で入れるか、みたいな。そういえば56001は割と最近まで使われていた24bit archになるんでしょうか。ワードマシンですが。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama 56001って知らないなあと思ったらDSPですか。 24bit wordなんですね…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama んー、10で割る専用回路のほうが需要高そうな気がしません?(でもない)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama たしかに。 8bitマイコン黎明期にはどっちも入れる余裕なかったし、余裕ができたころには除算命令が入って不要になったって奴なんでしょうね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @fjs_kyousosama BCD命令ないやつってあるんですか?(よく知らない) 文意としては、特定の変換が頻出として除算命令じゃなくデータの持ち方で問題回避する方法もあるよという意図です」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @fjs_kyousosama 10進補正命令か10進加算命令のどちらかは、知ってる8bit CPUには全部あります。回路規模もたぶん小さいですし。 問題回避の方はなるほどです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「LARC(初期のスパコン)が48bit(BCD11桁)だったり、1バイト8ビット化の過程でBrooksが「科学分野は6ビットのが便利」って言ってたりするの、有効精度を10進で10桁くらいあれば十分みたいな考え方があったんですかね? みたいなのは、まだ気になってる。2進浮動小数にしてもその精度なら48bitなので」 / Twitter
- 成瀬さんはTwitterを使っています 「アルファベットに小文字がなかったら1バイト6bitになっていただろうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@nalsh ASCIIの制定過程にしても、大文字のみの6bit規格を複数カバーすると決まった時点で7bitになり、その結果、小文字も入れることにした、という流れなので、小文字がなかったとしても、どのみち1バイト8bitに落ち着いたんじゃないでしょうか」 / Twitter
- 成瀬さんはTwitterを使っています 「@kazuho 小文字やアクセントがあるからある程度拡大するのは不可避だと思われていただろうわけで、実際モールス信号時代から4->6->8と増え、その次は16間で飛ぶわけじゃないですか。6bitのタイミングで普及帯で磁気テープが使われるようになり、通信路も6bitベースで設計されてしまったらどうかなと」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@nalsh 実際はSystem/360での8bit以降と同時に周辺回路も8bitで統一された (cf. https://t.co/0vcOzDzds2) だと思いますが、それがもし6bitだったら、しばらくは文字は6bit、やがて12bitで行ったんでしょうね。別にそれでなんとかなるし。シフトコードもSystem/360以前から既に使われてわけで」 / Twitter
- Bus and Tag - Wikipedia
histric-8
- 「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から(1/7 ページ) - ITmedia NEWS
- かりやみつらない 3042798775655さんはTwitterを使っています 「「欧州向けには複数の国の文字に対応するISO/IEC 8859-1という規格が定められたが、これもやはり8bitに拡張し、前半はASCIIコードそのままで後半にいろいろ詰め込んだ(しかも複数のマッピングが存在する)」 いや 8859-1 には複数マッピングは存在せんやろ… https://t.co/9P0mmb36O9」 / Twitter
- かりやみつらない 3042798775655さんはTwitterを使っています 「「前半分はASCIIコードそのままで、後半分に半角カナ」 C 6220 のカナは 7 ビットコードで使えるし後半分と決まってる訳では無いのでは… https://t.co/9P0mmb36O9」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「良い記事だし概ねあってると思うけど、典拠が明記されてないと確認できないし悪い記事と区別つかないし、良い記事だからこそ参考文献貼ってほしい / https://t.co/dq6YK7ARna」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「今では当たり前のことが、昔はそうじゃなかったんだなあ…」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@sakamotoh @n_soda @wtnbgo bit / Byteから離れますが、Brooks氏のビデオを見てて、今では一般的な "(全てのモデルでの) binary compatible" は当時としては革新的で技術的難題で、「あ!」っと感じました https://t.co/cXLqIYhZgU "This report- recommends a new family of compatible processor~ for the IBM. product line." https://t.co/WqpfdPZbcP」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「IBM System/360 https://t.co/A4PKD8aERB Final report of SPREAD task group with associated correspondence and notes, Dec 28 1961 (Sep 1966) https://t.co/HMzYK64cEv Formats & Addressing "Decimal digits and alphanumeric characters will be represented in four-bit and eight-bit bytes." https://t.co/2880k4IaHq」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@kazuho @shirouzu "IBM's 360 and Early 370 Systems", History of Computing, MIT Press, 1991 https://t.co/Bs73LynwMU 著者は IBM Research を眺めてますが 6-bit Byte: Gene Amdahl 8-bit Byte: Gerrit Blaauw https://t.co/JjH57PbY8a (↑ Wikipediaにも記載)。 貴重な写真も多く人間ドラマ的にも興味深い大著」 / Twitter
- IBM's 360 and Early 370 Systems | The MIT Press
- Gerrit Blaauw - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「「インターネットは、ずっと1バイト8bit」論をどこかでみたけど、IP網は確かにそのとおり。 でもインターネットを使うプロトコルの多くはサーバ(中継含む)を経由して、HTTP以前は7bitしか通さない実装も、ままあった。また、インターネットは必ずしもIP網のみから成り立つわけではなくuucpのようなバ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「どうみても1ツイートには収まらない新たな老人ホイホイ」 / Twitter
- 1byte = 8bitsにしたのは「人月の神話」のフレッド・ブルックス? - Arantium Maestum
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「バイトのビット数、「ワードマシン(計算に都合のいいビット数を1単位にしてアクセスするアーキテクチャ)が先にあって、ワードだと一文字を表現するのに大きすぎるので、1ワードに複数文字をパックするためにバイトという単位が作り出された」みたいなところから話が始まるので即答は無理だ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バイト指向のメモリアクセス命令をもつCPUで8-bitの倍数じゃない幅を使うアーキテクチャって、過去にほとんどないんじゃないの? 文字を使わない場合の4-bitを除く」 / Twitter
- とみながたけひろさんはTwitterを使っています 「1byteが8bitになった経緯はなかなか難しいが、1bitが二値なのは何故とか、コンピューターはなぜ二値をベースにしてて三値じゃないの、とかも十分に難しいな」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なお最近の個人的流行はMIPIのC-phyの基本思想を学ぶことです。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「3値の状態変数って正負零にすると使いやすいよね。 68000とかだとtst命令ひとつでフラグ変えたあと、正負零の3通りの任意のパターンで分岐するというのができるし、MIPSとかならtstすらいらない」 / Twitter
- roentgen/技術書典3 か-46さんはTwitterを使っています 「8bit かどうかはともかく固定ワードとバイトアドレッシングは低コストで高クロックのマシンを作るのに絶対必要で、これがなきゃ俺ら未だに 166MHz の java machine みたいなカスの上で flash の AS みたいなデータ表現で計算してたかも知れない。対するに EBDIC はただのクソ」 / Twitter
- びばのん/馬鹿家元さんはTwitterを使っています 「だが待って欲しい。 1byte=8bitが一般的になった理由をSystem/360が売れたから“だけ”で説明するなら、標準的文字コードがEBCDIC文字コードにならなかった理由が説明出来ないのでは? https://t.co/YbcngeEzmK」 / Twitter
- KOIZUKA, AkihikoさんはTwitterを使っています 「↓これが割と一言で言うのにかなりの要点をカバーしている気はする。つまり、汎用機の歴史として、System/360が当時の選択として8bitを意識して採用していて、文字コード体系も決定し、各種ハードを揃え、かつ売れたようだしなぁ https://t.co/xmTNYwlCBG」 / Twitter
- Shin AdachiさんはTwitterを使っています 「なんで1Byte=8bitになったか、の即答は結局なんなのか? System/360が売れたから?」 / Twitter
- しょうゆさんはTwitterを使っています 「@koizuka 多分想定している答えが「2進数で、10よりも0b1000の方がキリがいいから」と言わせたいんじゃないんでしょうか。 そもそもオクテットとバイトは同じでない場合もある気がしますが。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「1byteは何故8bitなのか?」いい質問だと思う。確定的な答えをする人は、何か知識がずれているか、知ったかぶりをする人だってわかるってことでしょ? えっそういう話だよね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「7-bitが使い勝手悪かっただろうってのは、命令セットの点よりもハードの点から言えるだろうってのはあって。メモリバスの幅がx-bitだと、チップをy個積めばx*y bitのバスをもつマシンができるけど、7って大きな素数なのよね。メモリ製造のエコシステムとして無駄が多い」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Intel 1101 はデータピンは1-bitだったみたいだけど、その後の製品はどうだったのかしら」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「確かインテルは70年代の最大手メモリ企業だったわけだけど、4004と同時に出したROM(4001),RAM(4002)は4-bitバスだし、4-bitの累乗で製品展開しない理由ってのがないと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Intel の初期のメモリ製品みても、バス幅は2の累乗っぽいな。例外は7 row * 5 bit のROMだ!(何に使うかと言うと、もちろん文字描画) cf. https://t.co/CAgU6Sl5wB https://t.co/XOU58FOkXb」 / Twitter
- Collectors Guide to - VintageIntelMicrochipsRev4.pdf
- Kazuho OkuさんはTwitterを使っています 「1byte8bitのアーキテクチャを4bitバスのメモリに対応させようとすると、データピン4本とか8本とか16本とかで作れるのに、7bitなら28本必要(もしくは複雑な回路挟むことになる)わけで、1bit節約する意味なかったんじゃない、という」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「文字のビット数に関していうとASCIIが7 bitになった経緯は英語版Wikipediaに書いてあって、いわく、ITA2やEBCDICなど複数の先行技術をカバーする必要があって7 bitになった。6 bit+シフトコードと8 bit案は却下された、らしい。これ日本語版Wikipediaには書いてない https://t.co/vAxUbHefYX」 / Twitter
- ASCII - Wikipedia
- OGAWA, TadashiさんはTwitterを使っています 「@n_soda G. Amdahl; G Blaauw; F. Brooks氏らの "Architecture of the IBM System/360", IBM J of R&D, Apr 1964 の Abstを確認したら (本文は要登録) https://t.co/cq7CUTIGiA Four innovationsの一つが 4. "Strict upward and downward machine-language compatibility over a line of six models " ですね。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Architecture of the IBM System/360", G. Amdahl; G Blaauw; F. Brooks, IBM J of R&D, Apr 1964 https://t.co/WBLFlDriLW 1. An approach to storage 2. An input/output system 3. A truly general-purpose machine organization 4. Machine-language compatibility https://t.co/TVBc332lDh https://t.co/O4y4GwLN2E」 / Twitter
- Architecture of the IBM System/360 | IBM Journals & Magazine | IEEE Xplore
rlwrap
- mod_poppoさんはTwitterを使っています: 「標準出力の末尾に改行コードを出力しないプログラムにrlwrapを噛ませると改行コードが補われるのか」 / Twitter
- rlwrap(1) - Linux man page
- rlwrapコマンドの使い方: UNIX/Linuxの部屋
- hanslub42/rlwrap: A readline wrapper
Linux
連結リスト
- FadisさんはTwitterを使っています 「Linuxカーネルの連結リストを舐める操作を安全に行うための新しいマクロについて。連結リストのノードの型は値の型によって変わるため、Linuxではlist_head型の値を持つ構造体を連結リストのノードと見做す。未知の型が対象になるためリストの操作はマクロで実装される https://t.co/sK4YH9XRWB」 / Twitter
- FadisさんはTwitterを使っています 「list_for_each_entryは連結リストの全要素を舐める為のマクロで展開するとfor文になる。現在のノードを指す為にポインタ(イテレータ)が必要だが、ノードの型が不明なのでイテレータはマクロの外でユーザが宣言する必要がある。これはfor文の外のブロックでイテレータが見える事を意味する。」 / Twitter
- FadisさんはTwitterを使っています 「list_for_each_entryの外でイテレータの参照先を触った場合、おそらくその操作はプログラマが意図した物ではないにもかかわらず、何の警告もなくコンパイルが通ってしまう。そこで、何とかしてこの状況でコンパイラが怒るようにできんか、という試行錯誤がなされている」 / Twitter
- FadisさんはTwitterを使っています 「色々な方法が提案された中でLinus氏が提案したのは、変数名に ## でsuffixを付けた名前を持つノードの型へのポインタ型の変数を、リストの先頭を表すlist_head構造体の宣言時に一緒に作り、リストの変数名からtypeofでノードの型を求め、その型でfor文のブロック内のみで有効なイテレータを作る方法」 / Twitter
- FadisさんはTwitterを使っています 「C言語、autoがなくてかわいそう、っていう気持ちでいっぱいになるハックだ…」 / Twitter
LLVM
MLIR
- コンパイラのための新しい中間表現 MLIR の論文を読む - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(2. MLIRに関するコード生成を試す) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(4. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(6. MLIRに関する発表資料を読む) - FPGA開発日記
本の虫
- 本の虫: MPEG RVCからLLVMアセンブリを出力するJADE
- 本の虫: LLVMに電力効率を最適化するコンパイルオプションの議論
blog
- LLVM + clang で LLVM IR やアセンブリを出力する – ymyzk’s blog
- C のコードから LLVM IR コード(LLVM アセンブリ)を生成したり LLVM ビットコードに変換したりする | Meta Meta Lab.
- LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ - 脱力系日記
- LLVM bitcodeのCFGを生成する - 脱力系日記
- LLVMについて調べたことまとめ - kotetuのブログ
- HaskellでLisp to LLVM IRコンパイラ その4 (SSA中間言語) - Arantium Maestum
- オープンソース活動がフルタイムの仕事になる仕組みの話|Rui Ueyama|note
- 2019年度未踏体験記 | カオスの坩堝
- LLVM IR: The Esperanto of Computer Languages - Pat Shaughnessy
- KMC Staff Blog:Ubuntu上でWindows用clangをカナディアンクロスビルドする
- KMC Staff Blog:GCC/Clangで複数命令を含むインラインアセンブラを記述する際の注意点
- memzero
OSDN
- LLVMのコンパイラ「Clang」、セルフホスティングに成功 | OSDN Magazine
- 性能を改善した「LLVM 2.5」がリリース | OSDN Magazine
- LLVM 2.6リリース | OSDN Magazine
- C/C++/Objective-Cサポートが強化された「LLVM 2.8」がリリース | OSDN Magazine
- LLVM Project、最後の2.xリリースとなる「LLVM 2.9」を公開 | OSDN Magazine
- LLVM Project、LLVM 3.0をリリース | OSDN Magazine
- LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
- コンパイラ環境「LLVM 3.2」をリリース、最適化機能を強化 | OSDN Magazine
- 最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現 | OSDN Magazine
- 「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
- Goバインディングが加わった「LLVM 3.6」リリース | OSDN Magazine
- 「LLVM 3.9」リリース | OSDN Magazine
- 「LLVM 5.0」リリース | OSDN Magazine
- 「LLVM 6.0」リリース | OSDN Magazine
- 「LLVM 7.0」リリース | OSDN Magazine
- 「LLVM 8.0」登場、WebAssemblyを正式サポート | OSDN Magazine
- 「LLVM 9.0」リリース、asm gotoのサポートでLinuxカーネルのビルドが可能に | OSDN Magazine
Qiita
- Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) - Qiita
- LLVM bitcode基礎知識 - Qiita
- 「LLVM bitcode はポータブルでない」ってどういう意味なの? - Qiita
Twitter
その他
SSA
- Miura Hidekiさんのツイート: "llvmでは基本ブロックがすべて独立していて、IRコードが字面上連続していてもジャンプ命令が必要。今度作るのはどうしようか考えている。llvmの仕様はインプリメントでは楽できるが、使う人が大はまりするおそれがある、というか大はまりした。"
- zehnpaardさんのツイート: "いったんASTを自分が定義した別のSSA IRに落とし込んでからllvm irに変換するようにした方がスッキリする"
- Shunsuke Shidaさんのツイート: "ASTからLLVM IRを作ってた頃は支配辺境が自明な構文(for, if等)ではあっさりとSSA形式に出来たけど、breakやcontinue等で苦労する羽目に。 バイトコードからの方が最終的には正確にやれそう。"
- ドッグさんのツイート: "SSA な処理系の中間言語は割とそんな感じかと(LLVM IR とか)… "
- Kenta IDAさんのツイート: "LLVM-IRはやっぱ解析するの前提やし、レジスタマシン、SSAなので楽やなーと思ったりする。 #dotnetconf"
- Urabe, Shyouheiさんのツイート: "LLVM IRそんな読みづらいかなあ?いやSSAだから手書きは面倒だし書けとは俺も言わんけどさ。読むのは普通じゃね? http://t.co/0AAS8FH0bx"
- Urabe, Shyouheiさんのツイート: "LLVM IRがCよりマシな理由第1位として「手書きがめんどう」という話がある(手でSSA変換できるやつは少ない)。なのでクソコードが書かれる蓋然性が低い。"
- 光のインターネットの闇さんのツイート: "LLVM IRってSSAだからmovっぽいものがない?"
- azuさんのツイート: "LLVM IRはSSAなので変数を再利用しない"
- κeenさんのツイート: "LLVMのmem2reg、適当なコード吐いても最適化しくれるくらいにしか思ってなかったけどレジスタが全部SSAなLLVM IRだとミュータブルな変数は全部スタック使うしかなくてmem2regがないとまともな速度出ないのか。"
- ロックフリーのkumagiさんのツイート: "x86はmov命令だけでチューリング完全の域に達しているのにLLVM-IRにはmov命令が存在しないからやる気が足りない(SSAを根本から冒涜した無知な発言)"
最適化
- うー@技術書典8 Day1う31 BitNOSさんはTwitterを使っています: 「Clangってcosやsinなどの数学関数を副作用が無い前提で最適化してくれないっぽい?引数が同じなら何回も計算し直す必要無いはずなのに,律儀に何回も呼び出してくれちゃう。」 / Twitter
- yohさんはTwitterを使っています: 「@uchan_nos https://t.co/aVORPK6mI4 -ffast-mathオプションとかどです?」 / Twitter
- Compiler Explorer
- とみながたけひろさんはTwitterを使っています: 「@yohhoy @uchan_nos fastmathなしだと毎回例外が起きることを期待するからですねー」 / Twitter
- yohさんはTwitterを使っています: 「@takehiro_t @uchan_nos https://t.co/VQGtBfFSzw 同じ効果を得るなら、-fno-math-errnoオプションの方が-ffast-mathより"安全"かもですね。」 / Twitter
- c++ - How to force GCC to assume that a floating-point expression is non-negative? - Stack Overflow
LLVM 14
- FadisさんはTwitterを使っています 「LLVM 14のリリースタグが打たれたらしい。まだWebの方には反映されていないがgithubのReleasesからソースを落とせる状態になっている。LLVM 14の目玉はプロファイルベースのバイナリ最適化BOLTがメインラインにマージされた事だが、その他にも様々な改良が加えられている https://t.co/LfUkm3d7ht」 / Twitter
- LLVM / Clang 14.0 Prepared For Release With With Armv9, BOLT, More C++20 & C23 - Phoronix
- FadisさんはTwitterを使っています 「LLVM 14は新しめのXeonに載っているAVX-512 FP16拡張命令を吐けるようになる他、デフォルトのデバッグ情報の形式がDWARF5に変更される。LLVM 14で入ったLICM(ループ内で毎回やらんで良い処理を外に追い出す最適化)の改良は複数のベンチマークで顕著な性能向上が見られるらしい https://t.co/bGsRWhr9Xq」 / Twitter
- LLVM Clang 14 Lands An "Amazing" Performance Optimization - Phoronix
- FadisさんはTwitterを使っています 「libc++14ではC++23で追加される見通しのstd::optionalのmonadic operations(P0798)が実装される。これはstd::optionalにメンバ関数transform、and_then、or_elseを追加する物で、transformはHaskellのMaybeに対するfmap、and_thenはbind(>>=)に相当する操作を提供する。 https://t.co/ZxdSHO96N3」 / Twitter
- P0798R8: Monadic operations for std::optional
- FadisさんはTwitterを使っています 「C++に型に依存しないmonadic interfaceを生やす提案(P0650)は結構昔からあがっているが、今の所標準には入っていない。P0650は言語のシンタックスシュガーの追加なしには辛い記法を強いられる為P0798はP0650のインターフェースに合わせていないが、簡単なラッパーでP0650に対応できるようになっている」 / Twitter
- FadisさんはTwitterを使っています 「libc++14ではこの他にも型安全な次世代printfことstd::format(P0645)が実装される。この機能はMSVCが真っ先にサポートした事で話題になったが、以降他のコンパイラでの対応はまだ無く、libc++14が2番手になった。 https://t.co/0h9uHhLbqA」 / Twitter
- Text Formatting
histric
histric-1
- x86-64-128さんのツイート: "戻り値がvoidではない関数でreturnを書き忘れた場合,Clangだとret命令が生成されないんだね.戻り値がゴミになるだけかと思ったらプログラムが暴走してびっくりした."
- Kazuho Okuさんのツイート: "LLVM の bitcode 使うことで GCC のインラインアセンブリよりも(場合によっては)高速なコードが書く方法 / “Kazuho's Weblog: Writing fast code using C++, LLVM b…” http://t.co/tMHWNmCF"
- Kazuho's Weblog: Writing fast, processor-independent code using C++ and LLVM bitcode
- Kazuho Okuさんのツイート: "内部中間表現として bitcode 使ってるだけならそれで問題ないですしねぇ RT @Constellation: LLVM, 基本くるくる変わるから, project に突っ込むのが常套手段っぽい."
- Kazuho Okuさんのツイート: ".@wasabiz コンパイラは、仕様が不安定な LLVM bitcode より C 言語を出力すべきみたいな話をこのまえ同僚とした"
- Taisuke OEさんのツイート: "UnityのWebGLサポートの仕組み。 C#ソース -(mcs)-> .NET bytecode -(IL2CPP)-> C++ソース -(clang)-> LLVM bitcode -(emscripten w/ asm.js)-> Javascript #unitej"
- Hajime Moritaさんのツイート: "ところで Vulkan といえばセットになってるシェーダ用バイトコードの SPIR というのがまたやばい。LLVM の bitcode そのまま標準かした仕様。一方でシェーダコンパイラを実行時に動かす OpenGL もそれはそれでやばい。グラフィクス近づくべからず。"
- Atsushi Enoさんのツイート: "KotlinのIRからLLVM bitcodeを生成するのがKotlin/Nativeの核心で、LLVM bitcodeさえ出来てしまえば後はllvmがやってくれる領域です(純粋bitcodeではないかもしれない)。Kotlin/JVMと共通化できるKotlin IRを設計したのもすごいけど多分これはK/N部隊の仕事じゃない気がする。… https://t.co/ulm8s4JGyZ"
- sicさんのツイート: "C拡張を動かすために LLVM bitcode のインタプリタ持ってるの異常 #rubykaigi"
- ぬるぽへ@技術書"典"5か31さんのツイート: "「LLVMの真実」、LLVM bitcodeはarch依存の色々なものが入っていて全然portableじゃないしあーき共通じゃない #kernelvm"
- Fadisさんのツイート: "LLVMにbinutilsのstripの置き換えを目指す新しいツールllvm-stripが追加された。stripはオブジェクトファイルや実行可能バイナリから不要なシンボルを削除してバイナリを小さくしたり、うっかり必要なシンボルまで削除して実行不能バイナリを作るのに用いられる https://t.co/CxUZNEwHQv"
- LLVM-Strip Introduced As An Alternative To GNU Strip - Phoronix
- shinichiro hamajiさんのツイート: "#rebuildfm のSwift話、Swiftはclangと違ってもともとSILていう中間言語がLLVM bitcodeの前にあったので、アクセラレータに投げられるTFグラフの抽出がこのレイヤで自然に行なえる、て話があるのも面白いところだと思う。SILについては https://t.co/4u2GuUI07K"
- SIL v13.key
- 朝はむずかしいさんのツイート: "MS がLLVM IRへのデコンパイラを出したっぽい。今のところ、ELFにのみ対応。https://t.co/DJeVnAPKrq"
- Microsoft/llvm-mctoll: llvm-mctoll
- 10/27,28はOSC Tokyoさんのツイート: "Clangに-fno-pltを付けることが自作OSだと重要かも."
- OS自作したい。技術書典6・う38さんのツイート: "vimの補完にclangdを使っているんだけど,しばらくvimを起動しっぱなしにするとclangdがめっちゃメモリ食ってある瞬間にほぼ動作が止まってしまう."
- Fadisさんのツイート: "clang9から新しいオプション-ftime-traceが追加されている。gccやclangは以前から-ftime-reportでコンパイルのどの段階にどの程度の時間を要したかを出力できたが、-ftime-traceでは更に階層的な処理の内訳をchrome://tracingで読めるJSON形式で出力する事ができる https://t.co/jIyy3xv6yQ"
- LLVM Clang 9.0 Adds "-ftime-trace" To Produce Useful Time Trace Profiling Data - Phoronix
- Makoto Kato ︎︎さんのツイート: "The Clang AST can now be dumped to JSON. https://t.co/PTLLZ1yknh まじか"
- rL360622
- Fadisさんのツイート: "GoogleがLLVMと組み合わせて使う新しいlibcを作ろうとしている。新しいlibcは既存のlibcよりモジュラ−で、non-PIEやstatic-PIEな実行可能バイナリをロードでき、基本的には標準に沿って実装するが今日では使われないような機能まで網羅するつもりはないとしている https://t.co/KoEd3Wl1G6"
- Google Developers Are Looking At Creating A New libc For LLVM - Phoronix
- Fadisさんのツイート: "LLVMメーリングリストに投稿された内容では、このlibcは少なくとも当初はx86_64だけをターゲットとして実装するとされているが、それに対して別のGoogleの中の人が「Fuchsiaで使いたいからAArch64で動かしたいんだけど、どのへんがアーキテクチャ依存になるの?」って返してる https://t.co/oYxtjLR0u7"
- [llvm-dev] A libc in LLVM
- uint256_tさんはTwitterを使っています: 「実際, CilkがどのようにIRをアセンブリにまで落としているのか簡単な経路を書くと, IR > DAG > MachineInst > アセンブリ となる」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t さっさとDAGの説明に移りましょう. IRはDAG(directed acyclic graph)形式へと変換される. なぜこんなことをするのかと言うと, グラフ構造のほうがパターンマッチなどを使った変換がやりやすいから.」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t この時点で, 例えば ((node + c1) + c2) のようなグラフが, (node + (c1 + c2)) と変換されます. (cXは定数, c1+c2は定数畳込みされる) ほかにも, x86など複雑なアドレス指定ができる環境では, loadやgetelementptrのまとまりを一つの命令に置き換えるなどの処理もする」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t 次はMachineInst. DAGはMachineInstへと変換されるが, これは何なのかというと もはやグラフ構造ではなく命令の列. どんな命令なのかと言うと, 特定の命令セットの命令や, Cilk特有の命令が混じった状態のもの.」 / Twitter
- uchanさんはTwitterを使っています 「__attribute__((interrupt))を付けているのに,Clangがスタックの計算をミスっている気がするよ。」 / Twitter
- LLVM - Wikipedia
- LLVM Language Reference Manual — LLVM 9 documentation
- LLVM Bitcode File Format — LLVM 8 documentation
- LLVM Bitcode Introduction
- emit-llvm - Google 検索
- clang - the Clang C, C++, and Objective-C compiler — Clang 10 documentation
- "compiler-rt" Runtime Library
- libunwind LLVM Unwinder — libunwind 8.0 documentation
- LLVM Backend の紹介
- AddressSanitizer — Clang 11 documentation
- Compiling Native Projects to LLVM Bitcode
- Intel Fully Embracing LLVM For Their C/C++ Compilers - Phoronix
- [下書き] LLVMバックエンド for RV16Kv2 開発文書
- 手を動かせばできるLLVMバックエンド チュートリアル
- LLVM入門 - javascript使いがLLVM(Rust:inkwell)でjavascriptをJITコンパイルするまで
- llvm-mirror/clang-tools-extra: Mirror kept for legacy. Moved to https://github.com/llvm/llvm-project
- mod_poppoさんはTwitterを使っています: 「アセンブリー言語を生成するコードを書く際にCコンパイラーの出力を参考にするようなノリで、LLVM IRを生成するコードを書く際にはclang -emit-llvmの出力を参考にすれば良いことがわかった」 / Twitter
GCC
returns_twice 属性
- mod_poppoさんはTwitterを使っています: 「GCCにはreturns_twiceという属性がある https://t.co/9nzmigNn2S」 / Twitter
- Common Function Attributes (Using the GNU Compiler Collection (GCC))
- tkrさんはTwitterを使っています: 「setjmpとlongjmp軽く聞いたことしかなかったから調べてみたら想像以上に凄い関数で草 なんでこれライブラリとして実装したんや…スタックいじれば確かにできそうだけど」 / Twitter
- tkrさんはTwitterを使っています: 「実装詳細はしらないけどスタック領域とかpcいじってジャンプってそもそも未定義動作じゃないの?最適化で壊れそうだけど」 / Twitter
- tkrさんはTwitterを使っています: 「可変長引数の話聞いたときも引いたけどそれ以上にすごいなこれ…」 / Twitter
- tkrさんはTwitterを使っています: 「C/C++ってわりと強めの仮定置いて最適化してるのに「関数一回の呼び出しで複数回戻ってくることはない」みたいな仮定はないのかみたいになってる」 / Twitter
- happo31@マスク買えさんはTwitterを使っています: 「@kgtkr レジスタの状態をスタックに積んだり戻したりするだけだから特別変なことしてるわけではないですね 呼び出し規約とかは考慮する必要あるけど」 / Twitter
- tkrさんはTwitterを使っています: 「@hapo31_t そういうことを関数の中でするのは問題ないんですね」 / Twitter
- happo31@マスク買えさんはTwitterを使っています: 「@kgtkr Cの構文/機能レベルで実現するのは不可能なので大抵のコンパイラではインラインアセンブラを関数内に書くことで実現されていると思います」 / Twitter
- tkrさんはTwitterを使っています: 「@hapo31_t やっばりインラインアセンブラじゃないと無理ですよね なるほどなるほど、、」 / Twitter
KMC Staff Blog
- KMC Staff Blog:cast-as-lvalue
- KMC Staff Blog:gccの便利なオプション (-save-temps)
- KMC Staff Blog:GCC10の最適化によるmemsetでの無限ループの発生
本の虫
- 本の虫: GCCのSVN trunkをビルドする方法
- 本の虫: Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる
- 本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
- 本の虫: GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話
- 本の虫: GCC 4.8でぶっ壊れるSPECのお粗末なコード
- 本の虫: GCCエクスプローラー
- 本の虫: ソフトウェアの思想が設計にもたらす影響
- 本の虫: GCC 6にインデントミスの警告機能が追加
blog
- x86/x86_64関数呼び出しチートシートを書いた | d.sunnyone.org
- [GDB] Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録
- はじめてのにき(2018-09-28)
- SEGV探偵が往く - なるせにっき
- gcc 組込み関数(memcpyとか)のインライン展開抑制
- GCCの拡張機能を使ってSTLもどきを作る | 株式会社きじねこ
- melancholic afternoon
- gccのインラインアセンブラ内からcのラベルにgotoでジャンプ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- GCCの-Wshadowとその推移について、あとお前を消す方法 - in neuro
- GCC 11のビルドとldconfig - uchan note
- LD_LIBRARY_PATH を設定しても反映されないことがある | 穀風
- 【知っておくと便利】C++で問題を解くときにおすすめのコンパイルオプション - TechFULの中の人
- returns_twice属性 - yohhoyの日記
OSDN
- GCCプロジェクト、25周年記念リリースとなるGCC 4.7.0を公開 | OSDN Magazine
- C++への移行が完了、最適化機能も強化された「GCC 4.8」リリース | OSDN Magazine
- C++11やC++14のサポート改善や最適化機能の強化が行われた「GCC 4.9」リリース | OSDN Magazine
- GCC 5系初のリリースとなる「GCC 5.1」登場 | OSDN Magazine
- 「GCC 5.2」リリース、多数のバグが修正される | OSDN Magazine
- 140件以上のバグを修正した「GCC 5.3」リリース | OSDN Magazine
- 5系で最後のリリースとなる「GCC 5.5」公開 | OSDN Magazine
- 「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
- 「GCC 6.4」リリース、不具合修正がメイン | OSDN Magazine
- 「GCC 7.1」リリース、長らく使われていたReloadがLRAに置き換えられる | OSDN Magazine
- 「GCC 7.2」が公開 | OSDN Magazine
- 「GCC 7.3」リリース、CPUの脆弱性「Spectre」への対応も含む | OSDN Magazine
- 「GCC 7.4」が公開、バグ修正が中心 | OSDN Magazine
- GCC7系の最終リリースとなる「GCC 7.5」リリース | OSDN Magazine
- 「GCC 8.1」リリース | OSDN Magazine
- 8系最初のポイントリリースとなる「GCC 8.2」が公開 | OSDN Magazine
- 「GCC 8.3」リリース | OSDN Magazine
- 「GCC 9.1」リリース、D言語サポートが追加される | OSDN Magazine
- 「GCC 9.2」リリース | OSDN Magazine
- 「GCC 9.3」リリース、157件以上のバグを修正したポイントリリース | OSDN Magazine
- 「GCC 10.1」リリース、静的コード解析機能が実験的に導入される | OSDN Magazine
- 「GCC 12.1」が公開 | OSDN Magazine
Qiita
- GNU コンパイラ・コレクション C言語拡張 - Qiita
- x86-64プロセッサのスタックを理解する - Qiita
- MacのGCCで返り値を返さない関数を書くと鼻から悪魔が出る - Qiita
- コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita
- 最低限のクロスコンパイラの作り方 - Qiita
Twitter
histric
histric-1
- Fadisさんのツイート: "メモリ1GBのマシンではもはやGCCのアップデートが自力でできないという厳しい現実に直面している"
- Fadisさんのツイート: "gcc「警告: {}無しのif文の次の行に同じインデントで文を書くの、if文の中身と見間違われるからやめといたほうがいいんじゃないかな」"
- 品川 高廣さんのツイート: "MinGW の gcc は -mno-ms-bitfields を付けないと struct の __attribute__((packed)) を黙って無視するのか。これは酷い。"
- Kazuho Okuさんのツイート: "gccにも__has_builtinが来そうな流れ? / “66970 – Add __has_builtin() macro” https://t.co/Zacd0derfz"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "SEGV探偵が往く - なるせにっき https://t.co/1FXYvbbQcM 「CFLAGSの行に-save-tempsを追加してビルドし直すとコンパイル中の一時ファイルが残ります」知らなかった。ずっとgcc -Eしていた…結構前に新設されたオプションのようだ"
- Kazuho Okuさんのツイート: "union使った型変換はコンパイラ依存。GCCでは合法 https://t.co/zqOrxLkF3K"
- Structures unions enumerations and bit-fields implementation - Using the GNU Compiler Collection (GCC)
- とみながたけひろさんのツイート: "そうそう、最近のgccって「おまえバージョンコントロールソフトでコンフリクトした部分を直してないだろ」とか「これはgoto failバグじゃねーの」みたいなのを専用の警告で教えてくれるんだよな。なんか笑ってしまうが笑ってはいけないんだろうな…"
- taklさんのツイート: "昔相当頑張って調べた記憶がある。昔の話だけどEBP使わずにESPだけを使うと遅くなるケースがかなりたくさんあった。gcc3の頃は-O3付けても-fomit-frame-pointerが有効にならなかった。最近は-O3付けると-fomit-frame-pointerが自動で有効になるから、コンパイラかCPUの進化で良くなったんだろう(昔話)"
- はぇ~☆さんのツイート: "ローカル変数にEBPを使うのはABIでそう定められているからなので、本来、最適化とは関係ないっぽいです。ESPを使えば汎用変数が1つ自由になるので確実に速くなります。EBP / ESPどちらにしてもスタックのアライメントに注意しないとローカル変数の参照が遅くなります。… https://t.co/aeyDBYlgSl"
- はぇ~☆さんのツイート: "んで、EBPを使う場合はスタックのアラインメントとは別にEBPのアライメントが可能なので、コード生成が楽になります。とはいえESPとてスタックに積むサイズに注意を払えばアライメントは維持できるわけで。そんな程度の差だそうです。… "
- taklさんのツイート: "こんにちは。気になったので少し調べてみたのですが、最適化マニュアルの1997年版では「葉関数ではEBPをGPRとして使え」1999年版では「デバッグ情報が不要なときはESPベースの、必要なときはEBPベースのスタックフレームを使え」になっていました。世代毎に色々ありそうですね。… https://t.co/xKWo4ndu8C"
- Kazuho Okuさんのツイート: "sprintf(char [6], "%" PRIu16, ...) が GCC でバッファサイズが足りないと言われることがあるというのと、それが HEAD で修正されたという話を読んだ。なるほどこれはこうなるわ... https://t.co/R8961RXSTB"
- Kazuho Okuさんのツイート: "習性としては、予約済のマクロを再定義した場合の挙動は未定義という規約を利用して、GCC側で PRIu16 のマッピングを "%hu" あたりにハードコードしたのかなと想像"
- ともきさんのツイート: "gcc -g でコンパイルして objdump -S すると (VS でよくある) アセンブラと C を同時に見るモードになることがわかった https://t.co/Wat6thyOgE"
- Shiro Kawaiさんのツイート: "うお、いつの間にかgccが、未宣言関数呼び出しのwarningに似ている関数名をdid you mean...?ってサジェストしてくれるようになってる"
- Fadisさんのツイート: "gccの-Wallが名前に反して全ての警告を有効にしなくて、更に多くの警告を有効にするための-Wextraがあるけど、それでも有効にならない警告があって、そいつらを1つづつ有効にするのめんどくさいから、-Weverythingで全部有効になるようにしようぜ、という提案がなされている https://t.co/ygUtTq7uwJ"
- GCC Unlikely To Adopt A "-Weverything" For Exposing All Possible Code Warnings - Phoronix
- Fadisさんのツイート: "gccの警告全部盛り-Weverything、一見良さそうに見えるけど「お前のインデントが気に入らない(-Wmisleading-indentation)」とか「Effective C++読んで出直してこい(-Weffc++)」とかものってくるわけでだな…"
- Fadisさんのツイート: "コンパイルエラーを人間が読みやすい形で出力する事は一方でコンパイルエラーをパースするスクリプトを発狂させる事になる為、gcc9はコンパイルエラーをより読みやすい形式に変更すると同時に、コンパイルエラーをJSONで出力できるようになるらしい https://t.co/tgysp6OBnu"
- にゃははー仙人さんのツイート: "インクルドガードがわからないから2回読まないといけないというの、もう何年も前にコンパイラはインクルードガードを識別して展開をスキップしてるからそれは速度向上の理由じゃない https://t.co/MdEYZD2Njp #cppmix"
- The GNU C Preprocessor Internals: Guard Macros
- Fadisさんのツイート: "svnからgitへの移行を進めるgccが一部のまだ変換されていないブランチを除いてgithubで見れるようになったらしい。gccはsvn上の全てのブランチ、全てのコミットをgitに移そうとしていたが、gccの歴史が長すぎて難航、メモリ価格の高騰によって頓挫しかかったりしていた https://t.co/arBhv3e3iI"
- A Linaro Developer Has Taken Up The Effort Of Converting GCC's SVN To Git - Phoronix
- Fadisさんのツイート: "これ、コンパイラのバージョンの問題じゃなくてNXビットまたはそれに類する仕組みを持つアーキテクチャであることと、ldがそれを活用していることの2つが条件じゃないかな"
- ←↓↑→さんのツイート: "今日一部の識者と話した結果、main = 195;は最新のgccでコンパイルした場合だとSegmentation faultが発生してしまうけど、__attribute__((section(".text"))) main = 195;ならば動くという事を知った。 実行結果:https://t.co/Yg3pVuNDHT"
- Kazuho OkuさんはTwitterを使っています: 「C互換のクロージャは昔のGCCが-fnested-functionでやってて、あれはスタック上にトランポリンコード生成してたけど、ヒープにコードと変数領域わけるとか近代的なやり方すれば今でも可能だとは思うんですよね」 / Twitter
- taklさんはTwitterを使っています 「「GCCだと」整数をポインタにキャストしたときのビット表現がどうなるか定められている。 https://t.co/uTEjdbk3Gn ヌルポインタは「定数の」0をポインタに変換したときに得られるので、ヌルポインタでないビット表現が0のポインタを得るには (void *)(uintptr_t)0 とかでいいと思うけど、自信ない。」 / Twitter
- Using the GNU Compiler Collection (GCC): Arrays and pointers implementation
- herumiさんはTwitterを使っています 「https://t.co/37AzusUhoc Cの規格(6.3.2.3 3)では整数定数0か(void*)0がヌルポインタ(NULL)。NULLへのアクセスは未定義。したがって0へのアクセスは不可能。それ以外の整数からポインタへのキャストは処理系依存。 このコードはNULLへのアクセスと等価とみなしてgccやclangはud2を生成するようです。」 / Twitter
- hikaliumさんはTwitterを使っています 「@uchan_nos uint8_t *p = 1; p--; *p = v;」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@hikalium @uchan_nos アドレスを即値指定した時点でUBになったりしません? だとしたら0番地に書くのも処理系・プラットフォーム依存なのでその処理系特有のマクロが用意されていると仮定して良さそうな」 / Twitter
- herumiさんはTwitterを使っています 「ちなみにud2は無効例外を出す命令。 CPUのパイプラインでud2を検出すると継続する命令のデコードを停止してCPU負荷を下げる働きをします(Intel最適化マニュアル3.4.1.5 Branch Type Selection)。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi これカーネルや組込だと怖い感じがするのですが、別途0番地へのアクセスを許可したりNULLを別の値に変えるコンパイラオプションがあるのでしょうか」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho ちゃんと調べてないですがgccだと-fno-isolate-erroneous-paths-dereferenceというオプションがありました。 *(char*)0 = 1;が-Ofastでも期待通りの出力をしました。clang-8はそのオプションは無いようです(同様のものがあるかは未確認)。」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho -fno-delete-null-pointer-checksだとgcc/clangともに*(char*)0 = 0;で期待する(?)コードがでました。dereferenceしてるのでその先のポインタはNULLじゃないとみなす? 本来int a = p->v; if(!p)...の後ろのチェックを省略するやつ(デフォルトon)なので意味的に逆な感じもするのですが。@hikalium」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @hikalium おー。名前はともかく https://t.co/PrJRKGyXl9 の説明みると、これが null へ理由があってアクセスしうる場合に設定すべきフラグのようですね」 / Twitter
- C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
- mod_poppoさんはTwitterを使っています 「GCCに__has_builtinが実装されたのはバージョン10から #だめぽメモ」 / Twitter
Q & A
- C - アセンブリとC言語(47437)|teratail
- c - Trying to understand gcc option -fomit-frame-pointer - Stack Overflow
- depfile gcc format - Google 検索
- GCC -mtune 何やってるか
- 微妙に便利なgccのオプション - in neuro
- difference between gcc and vc
- C++とCは互換ではないです (#2214382) | GCC、CからC++への移行が完了 | スラド
- Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
- 新しいGCC 8.1がC++2aのいくつかの機能をサポート
- 45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
- C言語におけるラムダを関数マクロで実現したものです。 GNU拡張文法(複文の式化、関数内の関数定義)を用いているので、gccでしか用いることができません。 また、トップレベルで用いることも不可能です。 C++でもコンパイルエラーにならないように、C++0xのラムダに変換するようにしています。 利便性を考え、ある程度の省略表記を許すようにしています。
- GitMirror - GCC Wiki
- Instrumentation Options (Using the GNU Compiler Collection (GCC))
- Krister Walfridsson’s blog: Writing a GCC back end
- Shiro KawaiさんはTwitterを使っています 「gcc11でsha1 digestの結果が変わってたの、キャストしたポインタの参照先へのストアが最適化で削られてたからなんだけど、これってUBだったっけ? https://t.co/cwtaX1CgGw」 / Twitter
- Gauche Devlog - Is this an Undefined Behavior?
- FadisさんはTwitterを使っています 「最近のgccの警告昔と比べてとても賢くなったんだけど、最近のgccで古いgccビルドするとうっかり「配列のサイズが負になる」とか見つけてきて頭抱える」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「初心者のためのGCC入門 (使うのではなく、コンパイラをいじる人向け)。各ステージの解説から内部構造、gdbを使ったデバッグ方法、テストの使い方、メモリ管理の解説まで。単純に読み物としてもおもしろい。 https://t.co/Q5n0dCblCU」 / Twitter
- GCC for New Contributors — GCC Contributors Guide 0.1 documentation
- list_head ‐ 通信用語の基礎知識
- list_entry ‐ 通信用語の基礎知識
- container_of ‐ 通信用語の基礎知識
- C言語でRAII
- linux-2.6.25/container_of() - コグノスケ
- ユーティリティー - container_of() - linuxのメモ
- container_ofマクロ - Linuxの備忘録とか・・・(目次へ)
- container_of(マクロ): ふらふら日記
- container_of()/linux2.6 - LinuxKernelHackJapan
- おべんきょーぶろぐ: container_of
- container_ofでsysfsのコールバック関数を一元化 - shimada-kの日記
- Callgrind + Kcachegrindで関数呼び出しのトレースをする - Qiita
- Linuxカーネルにおけるstrn系関数の挙動のまとめ - Qiita
- ソースコード直接実行のテクニック - 何とは言わない天然水飲みたさ
- bcc(1): Bruce's C compiler - Linux man page
- あじのり→ᓚᘏᗢ ‹ロボマス!さんのツイート: "関数の型を書いたあと改行するスタイルは初めて見た… "
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "それはUnixでは標準的なスタイル。こうすると^hogeで関数定義を探せる。GNU https://t.co/JQuSui39Oi もこのスタイル。https://t.co/7N1kAyiaDH"
- GNU Coding Standards
- SODA Noriyukiさんのツイート: "*BSD系のカーネルで使われているスタイル KNF - kernel normal form もこのスタイルですね: https://t.co/njRYAuY76V… "
- src/share/misc/style - view - 1.54
- 社会人でもOSを作りたいさんはTwitterを使っています: 「初心者がC言語でまず覚えるべき構文 __attribute__((interrupt))」 / Twitter
- 電子工作室
- Unicode 14に対応した「GNU C Library 2.35」が公開 | OSDN Magazine
- GNU Binutilsバージョン2.38がリリース | TECH+
- バイナリツールセットの「GNU Binutils 2.38」が公開 | OSDN Magazine
- FadisさんはTwitterを使っています: 「Clang 15からgccのRandStruct相当の機能が使えるようになる話。RandStructは専用の属性を付けた構造体の要素のメモリ上の並び順を、コンパイル時に与えたseedに基づく乱数でシャッフルする。異なる翻訳単位の間でも同じseedが使われている限り構造体を正しく読み書きできる https://t.co/obZw8RUUbI」 / Twitter
- Clang 15 Lands Support To Randomize Structure Layout, Linux Prepares To Use It - Phoronix
- FadisさんはTwitterを使っています: 「構造体のデータの並び順が予想できないと攻撃者が任意のコードを実行できても必要なデータにアクセスできる確率が低くなる。Linuxカーネルはsensitiveな構造体にRandStructを使えるようになっている。このClangの変更によりLinuxカーネルをclangでビルドする場合でもRandStructを使えるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「ちなみにC言語の構造体のbit-fieldでない要素は定義した順にメモリに並ぶ事が規格で定められている(N2176 6.7.2.1-6)。C++も継承のないbit-fieldもないstandard layoutな構造体の先頭には最初のメンバ変数が来る事になっている(N4860 11.4-26)。RandStructな構造体はこのへんの規格に従わなくなる」 / Twitter
- 「GNU C Library 2.36」が公開 | OSDN Magazine
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「C言語のint型を正しく理解しているか?」クイズ。GCC/LLVM x86/x64の挙動を仮定した問題だが、はっきりいって超難しい。新山は2問目からコケた。 https://t.co/Esjrcid1hs」 / Twitter
- John Regehr's Integers in C
blog
はてなブログ
- C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
- RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
- マジックナンバー0x03F566ED27179461の求め方とHD流のNLZ - Koonies/こりゃいいな!
- atoi関数のかしこい実装 - yohhoyの日記
- 条件変数 Step-by-Step入門 - yohhoyの日記(別館)
- C++ミューテックス・コレクション -みゅーこれ- 紹介編 - yohhoyの日記(別館)
- C++ミューテックス・コレクション -みゅーこれ- 実装編 - yohhoyの日記(別館)
- 独自診断メッセージ diagnose_if属性 - yohhoyの日記
- ビルドもできるヘッダオンリーライブラリ - in neuro
- 絵で見てわかるC言語入門 - 第1章 - w_o’s diary
- 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
- MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する
- レトロPCとレトロプログラミング カテゴリーの記事一覧 - 少ないリソースを酷使する
- cccコンパイラのバックエンド - molecular coordinates
- compilium v2 におけるdeclarationの実装 - /var/log/hikalium
- コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
- セルフホスティングCコンパイラを書いた - 茅の下
- const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
- 10年ほど後のBinary Hacks - 兼雑記
- 自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた - 詩と創作・思索のひろば
- std::string_view - Geekになりたいママエンジニアのブログ
- C++でファイルを後ろ向きに読み込むときはバッファリングに気をつけようって話 - Kampersanda's Blog
- NASA 小野雅裕氏に聞く、なぜ宇宙では「C言語」が使われるのか 『宇宙兄弟』の人気コラムニスト|ビジネス+IT
- メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
- はじめてのにき(2018-06-21)
- プログラミング、リファクタリング、そしてすべてにおける究極の疑問 | iSUS
- 巡回的な添字
- Cの配列はa[i][j]とa[i*Nj+j]のどちらが速いか試してみた | ナンクル力学系
- CASL II 入門講座 第5章 数値を10進数の文字列に変換する
- 10進文字列と整数値の相互変換 - プログラミングのメモ帳
- 整数を文字列に変換してみる: 毒を食らわば皿までど~ぞ
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- 本の虫: MSVCのSTLがGitHubで公開
- microsoft/STL: MSVC's implementation of the C++ Standard Library.
- Kazuho's Weblog: C言語で配列の要素数を安全に数える話
- C言語のワイド文字入出力 | 雑記帳
- プログラミング言語の構文とセミコロン - ベインのブログ
- Cコンパイラを作っています | KOZOSのブログ
- c - Whatever happened to the 'entry' keyword? - Stack Overflow
- tolower() in bulk at speed – Tony Finch
- Cコンパイラを作ろう! | 東京工業大学デジタル創作同好会traP
- C言語でクロージャーを実現したい、あるいは実行時のコード生成によるクロージャー | 雑記帳
- Cコンパイラ作成で出会ったgdbあれこれ | 東京工業大学デジタル創作同好会traP
- Modern C++でのループ展開の書き方 - Fixstars Tech Blog /proc/cpuinfo
スライド
- コンパイラのいじめかた / How to fight the compiler - Speaker Deck
- C言語プログラムの構造とほんの少し解釈 - Speaker Deck
- Rui Ueyama compilerbook any% 縛り実況 - Google スライド
POSTD
- 学校では習わないコーディングスキル:オブジェクト所有権 | プログラミング | POSTD
- C言語 | POSTD
- 高速なハッシュテーブルを設計する | プログラミング | POSTD
- C言語パズル集:Cにまつわる興味深い問題あれこれ | プログラミング | POSTD
- 2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
- 2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
- C90, C99, C11, C++98, C++11で異なる動作をするコード | プログラミング | POSTD
- C++11のスレッド、アフィニティ、ハイパースレッディング | プログラミング | POSTD
- C言語、知ってるつもり? | コンピュータサイエンス | POSTD
- 私はC言語を知らない | コンピュータサイエンス | POSTD
- 型安全性とは何か | プログラミング | POSTD
Zenn
- Clang のスレッドセーフ分析
- プログラムがメモリをどう使うかを理解する(1)
- プログラムがメモリをどう使うかを理解する(2)
- herumiさんはTwitterを使っています: 「楕円曲線やペアリング暗号で使う多倍長整数演算の実装記事を書き始めました。 多倍長整数の実装1(C/C++) https://t.co/GweJcT7L9i 多倍長整数の実装2(Xbyak) https://t.co/fYOZPZMZJb 少しずつ追加する予定です」 / Twitter
- 多倍長整数の実装1(C/C++)
- 多倍長整数の実装2(Xbyak)
- herumiさんはTwitterを使っています: 「「多倍長整数の実装3(intrinsic)」 https://t.co/JDyPTmnNVM Xbyakを使わずにコンパイラのintrinsic関数を使う方法を紹介します。久しぶりにC++03でも使えるtemplateを使った再帰テクニックを使ってみました。C++17のconstexp ifは便利ですね。 https://t.co/l8hWNXgrB0」 / Twitter
- 多倍長整数の実装3(intrinsic)
- herumiさんはTwitterを使っています: 「「多倍長整数の実装4(乗算の基礎)」 https://t.co/z8KKuqazOa typedef __attribute__((mode(TI))) unsigned int uint128_t; はときどき便利な豆知識です。Visual Studioにはないのが残念。」 / Twitter
- 多倍長整数の実装4(乗算の基礎)
- herumiさんはTwitterを使っています: 「多倍長整数の実装5(乗算とmulx) https://t.co/YxzqSZH91t N桁x1桁の乗算を効率よく行う方法を紹介しました。 adcとmulxのintrinsic命令である_addcarry_u64と_mulx_u64を組み合わせて理想のコードを生成します。 https://t.co/TIes8ZoJTt」 / Twitter
- 多倍長整数の実装5(乗算とmulx)
- 多倍長整数の実装8(LLVMを用いたasmコード生成)
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Pythonの多倍長演算(bignum)は非効率であり、これがDDoS攻撃に使われる可能性は2年前のCVEで知られていたが、最近やっと対処された。しかしこの対応 (sys.set_int_max_str_digitsで最大桁数を指定、デフォルトは4300桁) はアドホックであり、論議を呼んでいる。 https://t.co/YJDAjGk1C6」 / Twitter
Qiita
- printf のマイナーな機能の紹介 - Qiita
- linuxカーネルで学ぶC言語のマクロ - Qiita
- 1バイトが8bitに定まったのは2008年 - Qiita
- char の符号 - Qiita
- sizeof演算子にまつわるアレコレ - Qiita
- C言語のバグ回避をするための習慣 - Qiita
- C言語分かってなかった (I Do Not Know C) - Qiita
- C言語のポインタを含む構造体の初期化まとめ。 - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第2回 : 符号無し整数型のチェック) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第3回 : C言語の整数の性質を知る) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第4回 : 符号付き整数型のチェックと動機の動機) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第5回 : 続・符号付き整数型のチェック) - Qiita
- printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
- Asyncify を使ってみた - Qiita
- reallocの怪 - Qiita
- C言語における多次元配列の動的な確保 - Qiita
- MISRA related document - safety and security on c and c++ - Qiita
- Ancient C探訪記
- shinichiro hamajiさんはTwitterを使っています 「式だと 6B が最短だと思ってて、その中では --*""; が好きで SEGV デバッグする時に使ってる https://t.co/3r8zdb42JH」 / Twitter
- C言語で16文字でセグフォらせる - Qiita
- C言語でオブジェクト指向を表現する (クラス、継承) - Qiita
- 無料になったIntel compilerをCentOS8にインストールしてみる - Qiita
- C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita
GitHub
テスト
- hsjoihs @ セキュリティ・キャンプ C コンパイラゼミ / C100一日目(土)東ペ33bさんはTwitterを使っています: 「浮動小数点数を実装していない自作 C コンパイラでも使えるように改造した、整数演算版 donut.c がこちらになります。皆様の自作コンパイラでも是非これを走らせてみてください(「このテストケースでバグを発見できました」という受講生の声を多数頂いております) #seccamp https://t.co/4zoDSo2pDQ https://t.co/XFVsoXFqJ6」 / Twitter
- c-compiler/donut_donut.c at master · hsjoihs/c-compiler · GitHub
- hsjoihs @ セキュリティ・キャンプ C コンパイラゼミ / C100一日目(土)東ペ33bさんはTwitterを使っています: 「2006 年に @a1k0n さんという方が実装したものが元ネタとなっています https://t.co/VqJONjYVI4」 / Twitter
- Donut math: how donut.c works – a1k0n.net
- Andy SloaneさんはTwitterを使っています: 「@hsjoihs There's also a no-float version at the bottom of https://t.co/FtjHkRHJz2」 / Twitter
- donut.c without a math library – a1k0n.net
- C100一日目(土)東ペ33bさんはTwitterを使っています: 「@a1k0n Oh, didn't realize that. Thanks for letting me know!」 / Twitter
mimalloc
- ドッグさんのツイート: "MS が公開した新しい汎用メモリアロケータ mimalloc 気になる.3500 LOC の小ささで高速高効率(benchmark あり)セキュアで,malloc をそのまま置き換えて使える | 'microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.' https://t.co/NSYMGEXf8N"
- microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
- ドッグさんのツイート: "まだよく読んでないけど,でかい1つの free list ではなくページごとの小さい free list をたくさん持つらしい.あとページ内のメモリが全開放されると積極的に OS に返すらしい.technical report の paper: https://t.co/Bt9lC3zhMz"
- Mimalloc: Free List Sharding in Action - Microsoft Research
- Microsoft、高性能メモリアロケータ「mimalloc」公開 | マイナビニュース
- くまさんさんはTwitterを使っています: 「mimallocすごいな。heapを表す構造体が用意されていて、このheapは複数存在できて、その複数ある中のあるheapからいろんなオブジェクトにメモリを割り当てているとき、これらのオブジェクトを一気に解放するってことができるところが気に入った。 オブジェクトを一つ一つfree呼んで解放しなくていい。」 / Twitter
- libdivide, optimized integer division
- ridiculousfish/libdivide: Official git repository for libdivide: optimized integer division
- はじめてのにき(2018-03-13)
- 8cc/parse.c at master · rui314/8cc · GitHub
- rui314/9cc: A Small C Compiler
- https://maierfelix.github.io/mini-c/
- maierfelix/mini-c: C to WebAssembly compiler
- まさみさんは語りたいさんのツイート: "G-FreeはROPで利用されるガジェットになりうるコードシーケンスを生成しないCコンパイラのようだ。そしてx86のガジェットコード面白い。CISCだけにやりたい放題だ(笑)。 https://t.co/xm0vGaR1Tk… "
- acsac2010rop.pdf
- pagabucさんのツイート: "Today we are releasing clang-gfree, a set of LLVM machine passes to produce (almost) gadget-less binaries for x86-64! Go check it out: https://t.co/ZSUIe4gJtr"
- pagabuc/gfree: Implementation of G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
- Fadisさんのツイート: "libxsmm: Intelアーキテクチャ上で小さい行列を効率よく計算するために作られたライブラリ https://t.co/JCouuNTCnW #kernelvm"
- hfp/libxsmm: Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives.
- gifnksm/gifcc: Tiny c compiler
- chikoskiさんのツイート: "ES5をCにコンパイルするツール、JS2C https://t.co/zkhgpD4DzY 開発中のようで、ノート(https://t.co/m9rliFekyO)やブログ(https://t.co/GQBeobM22z)は示唆に富んでて面白い。"
- js-to-c/NOTES.md at master · timruffles/js-to-c
- septag/sx: Portable base library for C programmers, designed for performance and simplicity.
- cdecl.c
- Rui Ueyamaさんのツイート: "不必要に難しいことで有名なC言語の型の構文を解説してみた。これを読めばvoid (*signal(int, void (*)(int)))(int)とかも読めるようになるはず(多分)。 https://t.co/a85pc5FsV2"
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- (*(void (*)())shellcode)() とは - Qiita
- hiromi-miさんはTwitterを使っています: 「というわけで #seccamp 2019 Y-II Cコンパイラ自作ゼミに参加してきました、ありがとうございました. 結局、C++のクラス機構の一部、ステップ実行情報の出力、template <typename T>add<T>(T a, T b); のような関数定義を実体化できるようにしました. 進捗は次の通りです: https://t.co/tiEFbPYtG0」 / Twitter
- hiromi-mi/hanando-fukui: Self-hosted (Subset of) C Compiler
- DoctorWkt/acwj: A Compiler Writing Journey
- Cello • High Level C
- orangeduck/Cello: Higher level programming in C
- arithy/packcc: A packrat parser generator for C
- Rui UeyamaさんはTwitterを使っています 「いままでにないレベルでchibiccに機能追加している人からメールがきた。GCC互換inline asmとかint128みたいな機能とかが増えてる。これはすごいな。https://t.co/LlyFPZiD6z」 / Twitter
- cosmopolitan/README.cosmo at master · jart/cosmopolitan
- blog/bit-operation.md at main · herumi/blog
- thradams/cake: Cake a C23 front end and transpiler written in C
Wikipedia
演算子
- 条件演算子 - Wikipedia
- エルビス演算子 - Wikipedia
- Null合体演算子 - Wikipedia
- Null条件演算子 - Wikipedia
- Three-way comparison - Wikipedia
- CとC++の演算子 - Wikipedia
ライブラリ
- ssize_t ‐ 通信用語の基礎知識
- time_t - Wikipedia
- printf - Wikipedia
- printf - Wikipedia
- strlcpy - Wikipedia
- strlcat - Wikipedia
- strlcpy(3)
- strscpy
- まさみさんは語りたいさんのツイート: "TLの皆さんから教わったstr*cpy再度まとめ ・strncpy:固定長の配列に文字列をコピーするための関数 ・strlcpy:ユーザが勘違いしているstrncpyの挙動をするように作られた ・strscpy:挙動をより安全側に倒したstrlcpyの実装(ただし極端なアドレスを渡せば死亡する)"
- まさみさんは語りたいさんのツイート: "ちなみにlinuxカーネルのstrncpy_from_*は動作が違う・・・ ・strncpy_from_user:strncpyとほぼ同じだがdstの残りを0埋めはしない ・strncpy_from_unsafe:strscpyとほぼ同じだが-E2BIGを返さない。"
- まさみさんは語りたいさんのツイート: "strscpyの実装、面白いな。2つのループになってるのか。1つ目はlong型でaligned access、2つ目はcharで1byteずつアクセスしてる。"
- 引数 - Wikipedia
- 評価戦略 - Wikipedia
- 結合法則 - Wikipedia
- 冪乗 - Wikipedia
- 端数処理 - Wikipedia
- 絶対値 - Wikipedia
- フリースタンディング環境 - Wikipedia
- C99 - Wikipedia
- C11 (C言語) - Wikipedia
- mattnさんはTwitterを使っています 「C言語の switch 文、緩すぎて脱法できちゃうからなぁ。 https://t.co/lS7fAWSXZL」 / Twitter
- mattnさんはTwitterを使っています 「ちなみにこれは Duff's device という手法です。 https://t.co/iBSCogYHQp」 / Twitter
- Duff's device - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「これ send(short to, short from, int count) { if (count > 0) to[0] = from[count -1]; } と等価だよね、という」 / Twitter
- CPL (プログラミング言語) - Wikipedia
- BCPL - Wikipedia
- B言語 - Wikipedia
- 前方宣言 - Wikipedia
Twitter
その他
最初のコンパイラ
- Miura HidekiさんはTwitterを使っています 「多分、B(かBCPL)」 / Twitter
- Shinya KatoさんはTwitterを使っています 「C コンパイラの最初の実装って何の言語で書かれていたんだろうか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ごめんなさい、アセンブラだそうです... https://t.co/VtEH7n4sec」 / Twitter
- c — Cコンパイラの歴史は何ですか?
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 最初のフルセットのCコンパイラはCで書かれていた可能性もあるかな。もっとも、何をもって「フルセットのCコンパイラ」とするかは言語仕様も厳格でなかったでしょうからどうとでも言えそうですが :)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 仕様が固まったCの最初はPCC(Portable C Compiler)でしょうかね。もちろん、Cで書かれています。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「と思ったら、やっぱりBを順次拡張していったっぽい https://t.co/PN8ZvyyGuh」 / Twitter
- Chistory
- Shinya KatoさんはTwitterを使っています 「@miura1729 B を1度セルフホストして、そこから拡張していったっぽい感じがしますよね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f 論文を読む限りそんな感じですね。Bそのもの(と拡張の末に作られたC)以外はアセンブラで書いたっぽいですけど」 / Twitter
C++
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (true) int a = 1; else int a = 0; まあ書けるだろうけどなんとも違和感がある」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (false) int32_t int32_t; else int32_t int32_t;」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「for (int i = 0; i <100; ++ i) ... だけでなくて for (100; ;) ... とかも書ける (それはそう)」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「int a = 0; ← これは declaration using ll = long long; ← これも declaration static_assert (true, ""); ← これも ; ← これも」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「0ull や 0llU などは書けるが 0lul とか 0lL とかは書けないらしい」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「pure virtual method を宣言するときの ... = 0; の 0 の部分があるために integer-literal のうちで 0 だけ特別扱いしないとだめに見える」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「どう考えてもおかしいと思ってたら参考にしてた文法の表のミスだった」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「C++ の文法、複雑すぎます」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「std::set に対する std::lower_bound で TLE する C++ 初心者の話はたまに聞くけど、このミスは clang-tidy に -checks=perf\* を付けて実行したら自動で指摘してもらえるようです https://t.co/w3xKjahP9K」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「-fix って付けたら自動で修正までしてもらえました」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばSpider MonkeyをWASIで動かしたというあのプロジェクト、現状のwasi-sdkだとC++の例外が使えない問題とかどうしたんだろう。まさか例外を一切使ってない?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「聞いてみたら本当にSpider Monkeyは例外をそもそも使ってないらしい。おまけでV8やJavaScriptCoreも使っていないらしいことを教わった。マジか。」 / Twitter
- エヌユルさんはTwitterを使っています 「@igrep C++の例外割と忌み嫌われてますからねえ Googleも基本的にコーディングルールで使わないらしい」 / Twitter
_Atomic
- Nerry さんはTwitterを使っています: 「usbcmdレジスタを_Atomic uint32で定義して usbcmd |= hogehoge すると機種によってはうまく動かない」 / Twitter
- Nerry さんはTwitterを使っています: 「usbcmd |= hogehoge をコンパイルすると lock or [usbcmd], hogehoge になるが、うまく動く機種と動かない機種がある。 usbcmd = usbcmd | hoge に書き換えると以下のような機械語になって動く mov eax, [usbcmd] or eax, hogehoge xchg [ucbcmd], eax」 / Twitter
- Nerry さんはTwitterを使っています: 「以上から A |= B と A = A | B は必ずしも等価ではない。」 / Twitter
メンバ関数へのポインタ
- 鯉江さんのツイート: "メンバ関数のポインタは確認してないですが、メンバのポインタは素朴に実装すると構造体の先頭からのオフセットになって、それだと0に特別な意味は持たせられないのでnull pointerのビット表現には別のものをつかう、というはなしがARM書いてあったような記憶です。 https://t.co/uwEdj5dzaR… https://t.co/Q7Y6J3ZTBR"
- Ideone.com - YK4oHe - Online C++ Compiler & Debugging Tool
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い、x64でもそうなりますね。知らなかった。… "
opaque pointer
- ゆたかさんさんのツイート: "C言語で構造体は使えるけれど、構造体のメンバーに直接アクセスさせないようにするにはどうすればよいでしょうか? 答え:構造体をtypedefしたものだけを開示してポインタとして使う… "
- SODA Noriyukiさんのツイート: "このイディオムはopaque pointerと呼ばれててその名でググれます。 typedefはせず struct foo; で済ませ、またヘッダ内で宣言されてる関数呼ばない場合は # include "foo.h" の代わりに struct foo; で済ます変種もあったり(再コンパイルの必要性が減るのでこっちの方が好き) https://t.co/u0BXaV0O0H"
- まさみさんは語りたいさんのツイート: "私はelfutilsで知りましたが、デバッグが大変面倒なので死にそうになりました。全部ソースコードひっくり返して実装調べた記憶が。… "
- SODA Noriyukiさんのツイート: "その辺は良い開発支援ツールがあるか、あるいはコーディング規約の縛りがあればあまり困らないような。 もう30年くらいopaque poniterばかり使ってプログラム書いてますが、「struct foo の関数宣言は foo.h に入れ、構造体定義は foo.c に入れる」程度の規約で運用していて特に困った覚えがないです… https://t.co/q5yAWmsBsf"
- KOYAMA Youichiさんのツイート: "私も同様に foo.h には関数だけ書いて foo.c に構造体を書くのですが、 foo をライブラリとして提供する場合 (おそらく strip しちゃうので)、それを使ったプログラムをビルドすると gdb とかでのデバッグ時にロクに構造体の中身が表示できないというワナはありそうですね。… https://t.co/qd1yeCaw5I"
- SODA Noriyukiさんのツイート: "プロプライエタリのライブラリの内部でコケてると、死んで!って気持ちになりそうですね…^^;… "
- なかのん&マジックさんのツイート: "こういうの常識では……違うの……?"
- y-Akiさんのツイート: "C(++)言語で大きな物を作るときは必須と言える手法ですね。大規模C++本とかにもあるっけか ちっちゃいプログラムしか扱ってないなら知らない事も多いかも… "
- なかのん&マジックさんのツイート: "OSのAPIがそもそも使ってる手法なのに……… "
qrintf
- Kazuho OkuさんはTwitterを使っています 「呼びました? https://t.co/66DW6gsNz6」 / Twitter
- h2o/qrintf: sprintf accelerator for GCC and Clang
- Hideki EIRAKUさんはTwitterを使っています 「そういえば、C の printf ってやつはランタイムで文字列から % 記号を見つけ出して解釈して中身を置き換えるっていう、ある意味インタープリター的に計算資源を浪費する仕組みなんだけど、昔から使われているよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実際問題として速度差が出るのはI/Oを含まないsprintf系だけで、規格はそのような最適化を認めてるしstrcpyへの変換とかはCコンパイラもやると思うけどCプログラムでそこがボトルネックになる場合は専用コード書く人も多くて…みたいな印象。qrintfで速くなるプログラムはある」 / Twitter
NULL
- Kazuho OkuさんはTwitterを使っています 「NULLが0じゃないみたいな、esotericなアーキテクチャでいうと、WebAssemblyのメモリモデルは結局、ノイマン型になったの? それともデータ空間と関数ポインタで値が被ったりするハーバード型なの?」 / Twitter
- yoh2さんはTwitterを使っています 「C 界隈のめんどくさい人はそこで NULL のビットパターンはゼロではないかもしれないが 0 をポインタにキャストすると NULL であることは確かだと言い始める。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「構造体をmemsetでゼロクリアするコード見るたびに苦笑いするやつ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「*a = (struct S){.i = 123}; とか書けば、i を123にセットしつつ、他のメンバーは数値型の場合はゼロ、ポインタの場合はNULLに初期化してくれるし、よっぽど便利」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「それはそうとNULLのビットパターンがゼロじゃない処理系には近づかないのが一番ですね」 / Twitter
NUL 終端していない文字列の printf
- けろ🐸さんのツイート: "最近C言語で「ほえ~」ってなったのは、 char buf[4] = 'ABCD'; printf("%.*s", sizeof(buf), buf); でNULL終端してないchar*が簡単にprintfできること……はよ知りたかったわ"
- けろ🐸さんのツイート: "コンパイル通さずに書いて怒られたけど、一行目はchar buf[4] = {'A','B','C','D'};の間違いだから、ゆるして…。(まあ雰囲気は伝わるはず)"
- 株式会社クローバーフィールドさんのツイート: "char buf[4] = “ABCD”; でもOKですね。 あと、厳密なことをいうと、*はint型の実引数を期待するので、sizeofの評価結果を渡すと未定義になります。 明示的にintでキャストしましょう。… "
フォーマット文字の文字数
- るくすさんのツイート: "int len = sprintf(NULL, 0, format, args)でフォーマット文字の文字数返ってくるテクニック良くみるんだけど、これPOSIXに書いてある仕様なんすかね https://t.co/8pYFEklqsn"
- まさみさんは語りたいさんのツイート: "カーネル内ではよくお世話になっています・・・。… "
- Hiroaki Nakamuraさんのツイート: "おお、そんな技あったんですね。検索してみると https://t.co/xKejO9kgJU のRETURN VALUEに int len = snprintf(NULL, 0, format, args) で文字数取れるようなことが書いてありました。… "
- fprintf, printf, snprintf, sprintf - print formatted output
- herumiさんのツイート: "char buf[10]; int n = snprintf(NULL, 0, format, args); if (0 <= n && n < 10) { sprintf(buf, format, args); } がバッファオーバーフローする状況はありえるか(10点)。 https://t.co/U3OJlbAsk0"
- herumiさんのツイート: "私の想定解は次のものでした。 const char *fmt="%'d\n"; int v = 12345678; // LC_NUMERIC=Cだった n=snprintf(NULL, 0, fmt, v);// 12345678なのでn=9 // 別スレッドでsetlocale(LC_NUMERIC, "en_US.UTF-8");が呼ばれた sprintf(buf, fmt, v); // 12,345,678が書き込まれてバッファオーバーフロー… https://t.co/5kU9QwuPUV"
- herumiさんのツイート: "グローバルな状態に依存したくないときのために非標準ですがロケールを指定できるsnprintf_lとかWindowsだと_vscprintf_lとかがありますね。… "
- herumiさんのツイート: "C++もずっとCのロケールを引きずっていて、数値と文字列の相互変換ですらロケール非依存でできる標準ライブラリが入ったのはC++17になってからです。… "
- Kazuho Okuさんのツイート: "そもそもs(n)printf実行中に別スレッドでsetlocale呼ばれる可能性のあるコード、ということになると未定義動作になるような気がしました。未定義動作にバッファオーバーフローも含まれるという点に異論はないですが… "
- herumiさんのツイート: "一応たまたま二つの関数の間で呼ばれたというつもりでした。 実行中にsetlocaleが呼ばれると未定義というのには同意です。 まあ、あまりよい問題ではなかったですね。すいません。>るくすさん。… "
- るくすさんのツイート: "いえいえ。 この手の限られた制約からの状況把握はシステムの脆弱性を突いてエクスプロイトを書く際の重要なステップなので良い訓練になります。面白かったです。結構使うんですよね、TOCTOUは。 例えばメモリ使い果たして文字数の返り値だけネガティブにしとくとかも。race conditionはキリがないすね… https://t.co/pUiIYbPzCp"
klib
- Kazuho Okuさんのツイート: "最近は klib とか使うイメージ。部品ごとに分かれてるし https://t.co/AVmoh0Zfw9… "
- Klib — a generic library in C
- attractivechaos/klib: A standalone and lightweight C library
- NaOHaq(苛性ソーダ)さんのツイート: "Cで書いてると連結リストも連想配列も基本的に自前で実装せざるを得ないんだよな……。既製品を使おうとするとものごっついフレームワークの一部だったりするし……。"
3-stage bootstrap
- Fumihiro MatsuiさんはTwitterを使っています: 「そういえばセルフホストは複数世代検証が要るんだっけか。まず既存コンパイラで自作のをコンパイルしてAを作って、それ使ってBを作って、さらにBでCを作って、BとCが等しいか比較検証とかするんだっけ。BもCも自作コンパイラ由来(Aは違う)なので入力等しければ本来は同じはずで。全然詳しくないけど」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「でもコンパイラって、リンクされるライブラリの寄与とか除いても、自身のソースには無いけど自身をコンパイルした親コンパイラに由来するバイナリが普通に混じり得るはずで、そういうのの伝搬とかちゃんと考えるとなんかそれ自体結構面倒そうだな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「なんか3回って数字が妙に記憶に残ってるんだけど単にGCCのビルド&検証がそうだったからかも」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「そうだそうだ、3-stage bootstrap ってやつだ」 / Twitter
配列とポインタの判別
- Kazuho OkuさんはTwitterを使っています 「C言語で、ある値がポインタなのか配列なのかを知る方法ってあるのかなぁ(gcc/clang拡張でも可)。意図としては countof(array) みたいなマクロで、引数arrayに渡されるものがポインタではなく配列であることをビルド時に保証したい cf. https://t.co/izurmOdiTl」 / Twitter
- _countof Macro | Microsoft Docs
- Yuki Yugui SonodaさんはTwitterを使っています 「@kazuho &してからintptr_tにキャストして、元の値と比較したらイケませんか? もっと移植性のある方法もあった気はするんですが」 / Twitter
- mattnさんはTwitterを使っています 「@kazuho gcc だとこのマクロがうまく動きそうです。 # define IS_ARRAY(arg) __builtin_choose_expr(__builtin_types_compatible_p(typeof(arg[0]) [], typeof(arg)), 1, 0)」 / Twitter
- mattnさんはTwitterを使っています 「@kazuho ビルド時じゃないか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@mattn_jp いや __builtin_constant_p に食わせてOKなら使えばいいので、これもいけそうな気がしますねありがとうございます」 / Twitter
GNU
- Kazuho OkuさんはTwitterを使っています 「char buf[256]; strerror_r(errno, buf, sizeof(buf)); printf("%s\n", buf); このコードが未定義動作になっちゃうことがあるlinuxの罠に(また)はまった」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の場合は buf に格納されるとは限らない、ってことですか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira yes! そのせいで、どっかで _GNU_SOURCE が定義されていると未定義動作になります」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の仕様、気持ちはわかるけれど、これはひどいですねw」 / Twitter
- asariさんはTwitterを使っています 「@tkihira @kazuho 知らなかったです。戻り値を受け取っていればコンパイル時に警告が出てはくれるわけですね。うーん https://t.co/LY6oEJVbYk」 / Twitter
- MSC14-C. 必要もなくコードをプラットフォーム依存にしない
変わったエンディアン
- FadisさんはTwitterを使っています 「リトルエンディアンとビッグエンディアンの両方に対応して万全なつもりでいるアプリケーションに襲いかかるPDPエンディアン」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「K.トンプソンの名付けたNUXI問題、PDPよりさらに変態な順序あるとP.J.プラウガーが書いていたっけ…8byteだと更に悪夢に。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「解析されないように,狂ったエンディアン(3,1,2,0 とか)を持つオリジナルの命令セットの VM を作って,その上で認証とかのコードを動かしたりしてるのを見たことがあったり」 / Twitter
- R. ShioyaさんはTwitterを使っています 「ちなみにこれ確か最終的にはクラックされてしまったのだけど,あそこまでやってダメならやっぱアルゴリズムを秘密にすることで守る方法はダメなんだなというのを体感する良い機会だったように思う」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya ほほぅ…カジュアルな解析を防ぐ、みたいな意味ですかね。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu 大分むかしの話なんですけど,コピー対策としてできる事はなんでもやるというような雰囲気だったと思います.一番やられると困るのが解析の結果プロダクトキーのジェネレータを作られてしまうことなんですが,そこは今は一般にネットワーク認証の導入で解決されているように思います.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そういうコンテキストでしたか。 (昔は守る方も破る方も良く考えるなぁ…と思うマニアックなこと多かった印象ありますね…FDD/FDCを直接操作して不正セクタ存在が正規品とか)」 / Twitter
加算のキャリービット
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Verilogで、加算のキャリービットを取得することってできるのだろうか?こんなことがやりたいのだけど。 c, addr <= addr + 11'd1; addrは11ビットのレジスタ。インクリメントしていって、オーバーフローした瞬間を捉えたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uchan_nos https://t.co/hxGl6B4OuC 出力を1bit余分に多く宣言すればいいみたいですね」 / Twitter
- FPGAで信号処理:加算・減算とエラー処理
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@miura1729 1ビット以上大きな信号を定義して代入する方法ですね。なるほど。」 / Twitter
簡易なレジスタマシン
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「ASTからいきなりレジスタマシンの機械語を吐くのは辛いことが分かった。スタックマシンの機械語を吐く様にした後、本物の機械語ではなく中間言語(無限のレジスタを持つ機械語みたいなもの)を吐く様にしてから、レジスタ割り付けを行うというのが9ccでの手法みたい。」 / Twitter
- monochromeさんはTwitterを使っています 「@uchan_nos 最新作のchibiccでは、シンプルな方法でASTから直接レジスタマシンっぽいアセンブリを吐くようになってますね。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 おお、そうなんですか」 / Twitter
- monochromeさんはTwitterを使っています 「@uchan_nos 加算命令だと①右辺を評価してraxへ②raxをpush③左辺をraxへ④右辺をrdiへpop⑤add rdi,raxみたいな感じですね。CPUスタックも使うので本物のレジスタマシンよりは遅くなりますが、シンプルでそこそこ速い割り切ったやり方です。 https://t.co/2P7BqgGvHE」 / Twitter
- chibicc/codegen.c at 90d1f7f199cc55b13c7fdb5839d1409806633fdb · rui314/chibicc
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 なるほど。これなら1 passなのにそれなりのレジスタマシンぽいコードが吐けるんですね。しかし、私が昨日考えた方式では、1 passなのにスタックを全く使わず、限られた個数のレジスタで任意の四則演算式を計算できるのではないかと思っています。これから検証しますが。」 / Twitter
bss
- DQNEOさんはTwitterを使っています 「ネットで見かけて都市伝説かと思ってたけど、本当にあるんですね…」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「組み込み機器向けのCコンパイラで、起動の高速化のために.bss領域をゼロクリアせず、結果としてstatic変数がゼロで初期化されない奴に出会ってから、仕様に書いてあるからこうやって使っても安全、みたいな考え方が出来なくなってしまったw」 / Twitter
- どぅーあきさんはTwitterを使っています 「@DQNEO こういうのに限らず、C言語はコンパイラのバグって結構あった印象ある」 / Twitter
- DQNEOさんはTwitterを使っています 「@do_aki Cコンパイラの多様性ってすごいですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「コンパイラの問題なのかな、というか、コンパイラがANSI準拠してることと、プログラムがある環境のある条件で実行される場合に、その実行環境がANSI準拠かは割と別問題だと思うので(たとえば、一定の条件下ではstatic変数が一切使えないとかあるよね)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、昔の Palm OS だと、起動条件によってはアクセスできるのは code segment の一部(最大32KBのみ)で、static 変数も使えなかった。僕は自分でローダ書いて展開してたけど」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「bssのクリアはコンパイラじゃなくてランタイム(startupルーチン)の分担で、組み込みだとstartupルーチンもカスタマイズしてるってのもよくある話なので、単にそのプロジェクトでよく分かってないにも関わらずカスタマイズしててバグらせただけっていうオチの可能性が残ってるような気もする…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「あるいは元ツイートに「起動の高速化のために」って書いてあるように、そのプロジェクトでは意図的にstartupルーチンをカスタマイズしてて、自前で初期化するコード規約にしているとか。 どちらかというとこっちかな… その場合もコンパイラのせいじゃなく、言語仕様に反するカスタマイズも可能って話」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んー、別にそう決まっているわけでもないと思う。たとえば、昔懐かしCOMだとtextもdataもbssも区別なく、ただコンパイラが吐いたファイルをそのままメモリにロードするだけじゃなかったでしたっけ」 / Twitter
- 椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「初期値なしのグローバル変数や static 変数は bss 領域に配置され,main() が呼ばれる前に startup でゼロクリアされることは言語仕様として明記されている。でもそれはコンパイラの仕事ではなく,ランタイムシステムで実装されるべきこと(普通はアセンブラで書いてある)。」 / Twitter
可変長引数
- 眼力 玉壱號さんはTwitterを使っています 「引数を全部 stack で渡す場合、可変長引数を考えた時に右側から評価すれば計算しては push を引数の数だけ繰り返す事で実装出来る。左側からだとちょっと頑張らないといけない。」 / Twitter
- ロボ太さんはTwitterを使っています 「@Masa_nus 複数の引数を持つ関数に、副作用を伴う処理を引数として渡した場合、その処理の順番は規定されておらず、未定義ないし処理系依存動作になるんだったと思いますが、x86とARMで逆になる実装を採用した理由は私は知りません……」 / Twitter
- 𝙎𝙪𝙨𝙝𝙞𝙧𝙤𝙪 🍆𝙉𝙖𝙨𝙪🍣さんはTwitterを使っています 「@kaityo256 これ、メモリが後ろから確保されるか前から確保されるかみたいな話なんでしょうか?」 / Twitter
- ロボ太さんはTwitterを使っています 「おー、有名なこれ、ちゃんとx86では「3 2 1」に、ARMでは「1 2 3」になるんだ。 https://t.co/dLF8voQvHF」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「Resister 渡しが一般化したんでその辺はどうでも良くなった感じ…」 / Twitter
void*
- ケケモコソカメニハさんはTwitterを使っています 「実際にサイズ0のvoid型変数を使えてしまうと、void *へのポインタ演算が足しても引いても同じ値ということになって、多くのコンパイラでのvoid *の演算は生のアドレス演算というのが変に。規格ではvoid *の演算はどうでしたっけ……?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@ytomino void *の演算は規格では未定義、GNU Cではchar *の演算と同じ、だったはずです」 / Twitter
- ケケモコソカメニハさんはTwitterを使っています 「@rui314 ありがとうございます。未定義なら仮にvoid *p; ++p;してもpの値が変化しない実装をしても違反ではないですね。若干の希望が!?(でもvoid x[2];で&x[0] == &x[1]になってしまうのは違反っぽいです)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@ytomino void x[2]というのが未定義ですよね? void *x[2]なら合法ですけど。」 / Twitter
- ケケモコソカメニハさんはTwitterを使っています 「@rui314 や、すみません。voidを他言語のunit型同様に扱えるようにするならば、という仮定の上での話です。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@ytomino 一般に&x[0] != &x[1]にならないといけないんでしたっけ? あとvoid以外にstruct{}というのもゼロ幅な型としてはしっくりくるような。」 / Twitter
- ケケモコソカメニハさんはTwitterを使っています 「@rui314 各オブジェクトのポインタの値は全部違ってなければいけなかった気がします……と思って試してみたら、gcc/clangではsizeof(struct { }) == 0になりますね(????)」 / Twitter
- ケケモコソカメニハさんはTwitterを使っています 「@rui314 http://t.co/MkFkwf9rAW gcc拡張でした。」 / Twitter
- Empty Structures - Using the GNU Compiler Collection (GCC)
- ケケモコソカメニハさんはTwitterを使っています 「@rui314 g++を使うとsizeof(struct { }) == 1でした。ああ冷や汗をかきました。」 / Twitter
2 つの uint の中点の計算
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2つのuintの中点を計算するいくつかの方法: よく言われる (a+b)/2 はオーバーフローする危険性があるので low+(high-low)/2 を使え、というのは知られているが、(a/2)+(b/2)+(a&b&1) というのは知らなかった。ほー。これらをSIMDを使って書く方法も紹介されている。 https://t.co/TdOlendXF2」 / Twitter
- On finding the average of two unsigned integers without overflow - The Old New Thing
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: C++に入ったstd::midpointは、実はこんだけ奥が深い。型の差異、アセンブラ、移植性、ポインタ、そしてINFやNaNも考慮しなければならない。 https://t.co/VjXzCHqkY1」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「おお、これは賢い。しかし2016年までSamsungが特許持ってたんだ。https://t.co/o2xgy1Etwx」 / Twitter
- US6007232A - Calculating the average of two integer numbers rounded towards zero in a single instruction cycle - Google Patents
char の挙動
- FadisさんはTwitterを使っています: 「Linuxカーネルにおけるchar型の符号の有無を統一しようという提案とそこから生じた議論について。charが符号付き整数として振る舞うか符号なし整数として振る舞うかは実装依存で、Linuxがサポートするアーキテクチャの中には符号なしで扱う物も符号付きで扱う物もある https://t.co/lBEpBoCf01」 / Twitter
- FadisさんはTwitterを使っています: 「C言語の規格ではchar型はsigned charともunsigned charとも異なり、signed charまたはunsigned charのいずれかと同じ振る舞いをする型とされている。x86ではcharはsigned charと同じ振る舞いをするが、ARMやPowerPCではcharはunsigned charと同じ振る舞いをする」 / Twitter
- FadisさんはTwitterを使っています: 「この為x86でcharが符号付き整数として振る舞う事を期待して書かれたコードは他のアーキテクチャでは意図しない動きをする事がある。そこで、カーネル内でそうした不具合が出るのを防ぐ為にcharを常に符号付き整数にするフラグを付けてカーネルをビルドしようという提案がなされた」 / Twitter
- FadisさんはTwitterを使っています: 「しかしこの提案はすぐにABI破壊になる事が指摘された。また、一部のアーキテクチャではゼロ拡張と符号拡張のコストが異なっていて、性能上の理由からcharをunsigned charとしている場合があり、x86に合わせる為に生成されるコードの品質を下げなければならないのはおかしい、という指摘が出てきた」 / Twitter
- FadisさんはTwitterを使っています: 「この指摘では代わりに現在Linuxカーネルのビルドで無効化されている-Wpointer-signを有効にしてcharの符号が変わっている事に起因する問題を警告で見つける事が提案された。しかしLinus氏は符号をの問題を回避する為に符号を明示的に指定しているコードがこの警告に引っかかって使い物にならないとした」 / Twitter
- FadisさんはTwitterを使っています: 「この議論でLinus氏は全てのアーキテクチャをunsigned char側に統一する方法なら性能上の問題は起こらないかもしれないとした。いずれにしてもABI破壊となるこの変更は入れられないが、この話から派生して一時的にcharの型を変えてみることでcharの符号由来のバグを炙り出せる可能性が指摘された」 / Twitter
- FadisさんはTwitterを使っています: 「早速x86でcharをunsigned char相当にしてカーネルをビルドするパッチが用意されたが、Linux 6.1に向けたマージウィンドウは残り期間が少ない為、この実験はLinux 6.2のマージウィンドウに持ち越しになったらしい」 / Twitter
@kazuho
その他
- Kazuho OkuさんはTwitterを使っています 「sprintf使えばいいのに。正しいコードを書くのが目的なんであって、バグがあるかもしれないけどバッファオーバーランしないコードを書くのが目的ではないでしょ」 / Twitter
- FUJI GoroさんはTwitterを使っています 「snprintf(NULL, 0, "...", ...) とすると生成するはずの文字列の長さだけを得られるのだけど、何度もsnprintfを呼び出して文字列を生成するときに最後のsnprintfの第2引数でNULのぶんを考慮していなかったため、format文字列が1文字削れてNULが差し込まれるというバグだった。」 / Twitter
- FUJI GoroさんはTwitterを使っています 「Cでsprintf()ではなくsnprintf()を使っていたがゆえにおきたバグと格闘して学びがあった。 sprintf()に書き直したかったけど、そうするとlinterがうるさいんだよな…というわけでsnprintfを使うままで修正。はあ疲れた。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「https://t.co/CocyabJ20Z」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「全てのケースでstrcpy_sでエラーチェック頑張るのも大変だし、文字数制限がないなら動的メモリ確保、あるなら長さチェックしてからstrcpyとかでいい」 / Twitter
- Takafumi YonekuraさんはTwitterを使っています 「僕はプログラミングに対して一家言*無い*人なので、「え?strcpy使ってるの?ニマァ」みたいなのほんと苦手なんだよね。もうちょっと世界を良くする方向性で生きたら?と思ってしまう。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「strcpyとかsprintfのかわりにstrlcpyとかsnprintfを勧める人、バッファオーバーランを防げばプログラムが正しく動くようになると思ってるんですか、って話なんだよね。実際はtruncationによるデータ破壊や脆弱性とかあるし、他の言語同様に動的にメモリ確保するのが一番 (e.g., strdup, asprintf)」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@kazuho 100%同意なんですがlinterを黙らせるのが面倒くさくてつい…いや…lieterのせいでバグを誘発しやすいコードを書くくらいならそのルールはdisableすべきですね……。本来あるべき姿にします…!!!!!!」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「すべてのケースでstrcpy_sで置換、、、って話、それWindows XP SP1でやった話だけどな。でもstrcat_sと書き換えようとしてstrcpy_sになってたというとあるタイポは笑った」 / Twitter
intptr_t
- Kazuho OkuさんはTwitterを使っています: 「まあ、それはそうとして符号付きである intptr_t は必然性がよくわからんというのは同意見で、正確なビット数やレイアウトがわかってれば intptr_t 不要だし(tagged pointerなんかはこのケース)、サイズもわからないようなケースではオーバーフローのない uintptr_t だけでいい気がする」 / Twitter
- mattnさんはTwitterを使っています: 「カンマを使って複数宣言すると左しかポインタにならないので(1個限定にするか)全ての変数名に * 付けるか intptr_t を使う派です。 int* p1, p2; // p2 は int int *p1, *p2; // p1 も pt2 も int* intptr_t p1, p2; // どちらも intptr_t」 / Twitter
- toyoさんはTwitterを使っています: 「C言語のポインタの定義、アスタリスクを型の方にくっつけて、 int* p; みたいに書いた方が「intポインタ型のp」という感じで分かりやすい気がするけれど、どうなのかな?」 / Twitter
- Yuji GodaさんはTwitterを使っています: 「@toyo9 私、そっち派です。 もっと具体的には、 「アドレスが格納される変数の宣言なわけだから、宣言の対象は*pじゃなくてpじゃないの?」 派です。 ハードウェア寄りの人間だからそう思考するだけな気もします。」 / Twitter
- mattnさんはTwitterを使っています: 「なお Go は型が後置きなので型の方に付けても大丈夫。 var p1, p2 *int (Go の話はしていない)」 / Twitter
- mattnさんはTwitterを使っています: 「intptr_t は違う型でした。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「strcpyとかsprintfのかわりにstrlcpyとかsnprintfを勧める人、バッファオーバーランを防げばプログラムが正しく動くようになると思ってるんですか、って話なんだよね。実際はtruncationによるデータ破壊や脆弱性とかあるし、他の言語同様に動的にメモリ確保するのが一番 (e.g., strdup, asprintf)」 / Twitter
- Takafumi YonekuraさんはTwitterを使っています 「僕はプログラミングに対して一家言*無い*人なので、「え?strcpy使ってるの?ニマァ」みたいなのほんと苦手なんだよね。もうちょっと世界を良くする方向性で生きたら?と思ってしまう。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「全てのケースでstrcpy_sでエラーチェック頑張るのも大変だし、文字数制限がないなら動的メモリ確保、あるなら長さチェックしてからstrcpyとかでいい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「プログラミング言語、特に習熟の過程で「よくわかんないけど動いた」みたいなのは絶対必要なんだけど、C言語の場合、「よくわかんないけど動いたり動かなかったり、なんか関係ないところ破壊しながら動いてたりする」。バグを踏むケースで危険な副作用出る可能性が高いがゆえに...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「新しいCプログラマが育ちにくい(育てにくい)というのがC言語の限界なんだと思う」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho ユーザーランドで何やったって何が壊れるわけでもないので、バンバン書いてクラッシュさせればいいのにねーと思うんですよね。誰が死ぬわけでもなし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@basuke ええ。最近だとasanとかubsanとか使えば、だいぶマシにはなりますからね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「char buf[sizeof("255")]; sprintf(buf, "%" PRIu8, uint8_val); みたいなコードを書いてる時に、snprintf使わないんですかって言われて、勘弁してよ... ってなるわけです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「プログラミングと標準化の技術的アプローチって、ちょっと違っていて。 プログラミングが、一番正しい答えを追い求めて駒を進めて作業だとしたら、標準化は、前提条件によって異なる様々なパターンを想定して、その中で許容できるものを最大限にしつつ定石を求めていくのに近いっていうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえあば、ある種の設計は仕様としては許可されるけど、なんらかの問題がある設計だから、パフォーマンス要件上は無視して構わない、とか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んー、言語仕様的には線形合同法よりマトモな方法で実装しても構わなくて(つまり昔からあるCライブラリ特有の問題で)、昔からあって互換性重要なCライブラリの場合はrandomとかdrand48とか、よりマトモなものがPOSIXに定義されてる」 / Twitter
- 徳永広夢さんはTwitterを使っています 「C言語のrand、新しい標準の関数を追加するなり、deprecateするなりされないのが不思議」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ISO Cみたいな仕様で介入するとなると、一定品質以下のPRNGを非推奨にするみたいな形になるんだろうけど、品質の定義で合意とるの大変だろうなぁ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、(IntelやARM環境のコードレビューで)memset(ptr_array, 0, ...) という初期化コードにダメ出しする人は居るのかな…?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「NULLのビットパターンが0だとは限らないというやつなぁ。個人的には複合代入で初期化するのが好き struct S s = {0}」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「でも複合代入はパディングにゴミ(下手したら機微な情報)が残る関係でそのままダンプしづらいとか、違う問題が…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「structをmemsetでゼロ初期化したあとで即一部メンバに非ゼロ値を設定するコード、最近のx86だと実質全てのケースでstore forwardingが働いてペナルティはないと思っていいのかな?」 / Twitter
- fjのYog教祖様さんはTwitterを使っています: 「@kazuho struct が volatile で宣言されていなければ。 (宣言されているとどうにかして volatile を cast away しないと memset() に渡そうとすると warning が出るし、きちんと希望通りの動きになる保証がない)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「はー ubsan 嫌い。これで反転の場所で array index out of bounds 言われる。普通のCプログラムやのに、ちょっと末尾をunionに入れただけやのに... https://t.co/uOpz3q8M9O」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「これどうにもならんな。 * あちこちで使われてる型だから関数単位でattributeつけるのもよくないし、 * 型定義の配列サイズを大きくして malloc で絞ると、全てのメンバアクセスがハネられる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「結局、subtyping しました https://t.co/BbcP70TyoT」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「確実に消したいメモリを消すためにmemsetを関数ポインタ経由で呼ぶとかは普通ですね(UB利用の最適化の抑制ではないけれど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「三項演算子、ブロックの演算結果を代入できない言語の悪あがきくらいの気持ち a = if b < 1: c else d; くらいに自然に書ければよかったのに」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「C言語でユニットテスト書くとき、テスト失敗したケースで undefined behavior が出る可能性があると、最適化のせいでテスト失敗したのに成功と表示されることがある、みたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「(言語によるのかもだけど)これ入れ替えというか代入で良くて、何がいいかっていうと条件分岐が一切なくなって、 a[i] = a[a.length - 1]; --a.length; でいけるところ。配列の任意位置の要素削除として最もシンプル」 / Twitter
- いなにわさんはTwitterを使っています: 「Listのi番目を削除したいとき、i番目と末尾を入れ替えてから末尾を消すことでO(1)で削除できるテク、多用してる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「GCC / clang 前提でいいなら、式が符号つき型か判断するのは #define expr_is_signed(e) ((__typeof__(e))0 - 1 < 0) でいいのかしら」 / Twitter
- さけい・くらさんはTwitterを使っています: 「それだと int より小さい型の場合に0が一旦intになってしまうので #define expr_is_signed(e) ((__typeof__(e))-1 < 0) かなと」 / Twitter
- さけい・くらさんはTwitterを使っています: 「あ、「式」に変数が含まれるのかどうか、という話はあるのかな…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@sakeikuratarako ありがとうございます。ですね」 / Twitter
histric
histric-1
- Kazuho Okuさんのツイート: "Cのソースファイルから(プリプロセッサかけた後でもいいので) ASTをサクッと、JSON等で取り出すプログラムってないのかしら。structをダンプするコードを生成したい"
- Kazuho Okuさんのツイート: "こういうコードを手書きするの嫌なんです… "
- 成瀬さんのツイート: "libclangとか使う感じですかねぇ。前に書いたスクリプトだと https://t.co/tcqh5OJUIm こういう… "
- Add CRubyBot · nadoka/nadoka@1b7ae45
- Kazuho Okuさんのツイート: "libclang を使うプログラムを書くのは嫌じゃーって思ってたんですが、なるほど FFI で叩くという手は良いかもですね… "
- Daisuke Makiさんのツイート: "うろ覚えですが、これがgoで似たようなことしてた気がします https://t.co/OLAFiEnzhp… "
- Kazuho Okuさんのツイート: "srd!!! ありがとうございますありがとうございます… "
- Yoshimasa Niwaさんのツイート: "`clang -cc1 -ast-dump` の結果をなんかスクリプトでちょいちょいする感じですかね… "
- Keigo Imaiさんのツイート: "大昔に Haskell の Language.C で似たようなことをやりました。この手のことをやるの代数的データ型があると最強ですね。 https://t.co/kzjJukBpUH… "
- Language.C を使ってC言語のソースコードを解析する (with Data.Generics) - keigoiの日記
- ケケモコソカメニハさんのツイート: "https://t.co/L82sPEejNW ocamlですが、まさにそういうことを目的としたCILもあります… "
- cil-project/cil: C Intermediate Language
- Qさんのツイート: ".oO(CIL開発が停滞しているのでは。。。)… "
- 島鉄雄さんのツイート: "stdio バッファは printf 等が改行を出力する度にバッファをフラッシュするもんだと思ってた。 printf は改行かもしれないけど、fwrite はファイルに書き出した後に fflush() せずに close() (fclose() でない)すると何も書きだされない。 I/O のたびに自動的にフラッシュするは違うような気がする…… https://t.co/s6nvyep2Pq"
- 島鉄雄さんのツイート: "#include <stdio.h> #include <unistd.h> int main() { FILE* file = fopen("test.txt", "w"); fwrite("test", 1, 4, file); // fflush(file); close(fileno(file)); } このコードを実行すると 0 バイトの test.txt が書きだされる。(Linux, Windows とも) fflush() すれば勿論 4 バイトになる"
- 島鉄雄さんのツイート: "Wikipedia を見ていたら uint64_t xorshift128plus(uint64_t state[static 2]) { [static 2] みたいな書き方を始めて見た… stackoverflow に答えがあったけど、少なくとも2要素があるという事らしい でも1要素の配列を渡してもワーニングすら出ないのはC言語らしいがw https://t.co/cTYZuD0pn9… https://t.co/QrK99wKVS9"
- c - What is the purpose of static keyword in array parameter of function like "char s[static 10]"? - Stack Overflow
- コンパイラ作りの魅力を語る / Making compilers is fun - Speaker Deck
- DQNEOさんのツイート: "PHPerKaigi 2019で、C/Goコンパイラを作る過程で学んだことについて話しました! 資料を公開しました。 「コンパイラ作りの魅力を語る」 https://t.co/CRvivRYFAa #phperkaigi"
- Kazuho Okuさんのツイート: "C言語、だいたいいいんだけどクロージャがないことだけが辛い"
- Fadisさんのツイート: "ベアメタルC++動かす準備ってCで使ってたldscriptにvtable置き場足して、bssとdataを初期値にして(Cでもやるやつ)preinit_arrayとinit_arrayの中のポインタを全てcallして(Cでもやるやつ)、ハードウェアのセットアップして(Cでもやるやつ)mainに飛ぶだけ(Cでもやるやつ)だったと思うんだけどな"
- Fadisさんのツイート: "ベアメタルC++でnewするにはメモリ確保できる必要があるけど、libstdc++のlibsupc++を使う場合最終的にlibcのmallocが呼ばれる。libcにnewlibを使う場合最終的にプラットフォーム毎に実装する関数_sbrk()にたどり着く為、「newされたらどうしよう」はここで解決すると良い"
- 品川 高廣さんのツイート: "gcc/clang限定。 #include <stdio.h> int main(int argc, char *argv[]) { if ((void*)main < __builtin_return_address(0) && __builtin_return_address(0) < &&e + 0xff) return argc > 1 ? *argv[argc-1]-'0' + main(argc-1, argv) : 0; printf("%d\n", main(argc, argv)); e: return 0; }… https://t.co/V5IzQQX9y9"
- hikaliumさんのツイート: "これの何がおもしろいのかというと、低レイヤの人なら親しみのある「その型のアドレスの下位ビット、常に0では?」というネタに加え、ポインタ-整数キャストをできないなら隣接要素のアドレス差が1byteのchar*にキャストして(char*)0との差分を取ればいいじゃない、という狂った発想です。 #w2019progB… https://t.co/zTUX91qJfR"
- hikaliumさんのツイート: "ついにワンライナーになった(誰も嬉しくない)。 #include <stdio.h> int main(int c, char*v[]) { return c>=2? ((char*)v-((char*)0))&1? ((char**)(((char*)v-((char*)0))-1))[1][0]-'0'+main(c-1,v+1) :printf("%d¥n",main(c,(char**)(((char*)v-((char*)0))|1))) :0; }"
- 品川 高廣さんのツイート: "関数末尾のアドレスを正確に求められないのが難点。このコードは clang -O3 でコンパイルすると、ラベル e の後ろで main() を呼び出すコードが生成される。asm volatile ("") を挟むと clang では回避できるが、今度は gcc で動かなくなる。UNIX 限定なら etext が使える。"
histric-2
- 島鉄雄さんのツイート: "C11を使ってオブジェクト指向もどきをしてみた。 https://t.co/fG0XngOOfp 自前プリプロセッサでオブジェクト指向する方法は色々あるけど、C11だと合法的(?)にここまで出来るっていうテスト。 自前プリプロセッサを突き詰めると別言語になってしまうけど、この程度なら全然良いんじゃないかね。… https://t.co/nmmm8OqDyi"
- C 言語でオブジェクト指向(案)
- 島鉄雄さんのツイート: "ほんとはコンストラクタとか凝りたかったけど、長くなるので今回は割愛。 C11 でオブジェクト指向する標準的な規約(プロトコル)を少し考えたくなった。 最終的には GObject に行きつくだけかもしれないが… いや GTK の API にこのプリプロセッサをかませばいいのか…"
- Kazuho OkuさんはTwitterを使っています: 「return a == b; を書き直させられた話、「言語仕様知ってればわかるだろ」って批判するなら、GCCの「ビット演算子と比較演算子を組み合わせる場合には () を使え」っていう警告(-Wparentheses)も同じ勢いで批判してほしい気持ちある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なんていうか、言語仕様知ってればわかるだろ、っていうのは読みやすさに関するコンパイラの警告全否定する話だし、return a == b が許容されるのは、return a = b が警告を出すという前提において、読み誤りようがないから、とかそういう理由づけになるんじゃないか」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「sprintfで「%.8s」という記法が役立つ日が来た。%sに対して精度(.n)を与えることで配列の末尾がnul終端されてなくても使えるんだよ。っていうのを以前ベテラン組み込みエンジニアさんから教えてもらった。」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「(Cの)const外しキャストは従来から違法だったわけだけど、const外しキャストが違法であることを積極的に活用してconst外し==dead code判定==最適化で消すコンパイラが爆誕して人類とバグとの戦いは新たなステージへと https://t.co/P8R6MnVMLB」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「const外しキャストは明示的なキャストなので、プログラマの意図を尊重するため型の不一致の警告とかは出ない。出ないが、const外しキャストをdead codeの意図で使ってるプログラマなどいないはずなので、結果的に警告も何もなく既存のプログラムがなぜかぶっ壊れるという惨状が発生している」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「me freaks, adds `#define const` https://t.co/iHMVgTHXmC」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「そうか、constなオブジェクトを変更することがUBなんであって、const落としても変更してなければ大丈夫なのか。 https://t.co/AlXoj5CheU」 / Twitter
- yohさんはTwitterを使っています: 「@n_soda このケースはconst-ness objectそれ自身に対してconst除去したからマズイいのであって、const char* process0(const char*)内部実装をchar* process1(char*)で代用する程度の話には影響しないと思いました。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ごもっとも。 C/C++の規約原理主義的な最適化は、そろそろ何とかして欲しい。 (未定義のアクロバティックな活用ではなく、警告 or エラー停止する方向に) https://t.co/eWPAQsBxKC … https://t.co/oif4y0wVJ5」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「メモリマップドI/Oの場合はその領域はそもそもキャッシュしない指定になってるはずだけど、通常のメモリ領域の場合は普通にキャッシュに載るでしょ。 で、CPUのキャッシュコヒーレンシにより一貫性が保たれてるはず。 DMAする為だけのデータをキャッシュに載せたくない場合は専用の命令がSSEにある。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「元記事の > volatileなオブジェクト(volatileと指定されたメモリ領域)へのアクセスは、CPU内部のキャッシュ機構を通り越してその領域へ直接読み書きする形になっているはずです。 は間違ってると思われる。 volatileは最適化でレジスタに値を保持せずに、逐一メモリにアクセスするってだけでしょ。 https://t.co/voiP4LxzGZ」 / Twitter
- FadisさんはTwitterを使っています: 「if「文」と三項演算子は別モンで、一番大きな違いは文であるため評価結果の型を決定する必要がない点」 / Twitter
- yoh2さんはTwitterを使っています: 「?: 演算子の左端がCとC++で違うという割とどうでもいい気付きを得た。 cond ? a : b = c; がこうなる。 C: (cond ? a : b) = c; と同じ (エラー) C++: cond ? a : (b = c); と同じ」 / Twitter
- yoh2さんはTwitterを使っています: 「ちなみにC++ で (cond ? a : b) = c; と書くと a か b へ c を代入する意味に。 代入演算子の左辺もCとC++で違うんだよね。Cでは unary-expression, C++では logical-or-expression。」 / Twitter
- yoh2さんはTwitterを使っています: 「s/左端/右端/」 / Twitter
- 重巡洋艦 キノガッサさんはTwitterを使っています: 「@yoh2_sdj https://t.co/HiFMrmPJ0f」 / Twitter
- 条件演算子と左辺値の扱いの差 - yohhoyの日記
- uint256_tさんはTwitterを使っています: 「clang, return 0 の 0のために alloca i32するのなんでだろう」 / Twitter
- DrumatoさんはTwitterを使っています: 「@uint256_t これは結果論なんですが, int main(){ int x = 40; if(x == 30){ return 1; } } みたいなコードをclangに入力すると, true-block内でalloca i32した仮想レジスタに1を代入しています. main関数内で明示的にreturnされなかったときのために利用されているのかもしれませんね.」 / Twitter
- uint256_tさんはTwitterを使っています: 「LLVM, 賢いからmem2regとかそのあたりの最適化でallocaとかが消えて, phiとかで代用するのかな https://t.co/hBzjs8VNVR」 / Twitter
- uint256_tさんはTwitterを使っています: 「@drumato clangを軽く読んでみました. どうやらこの方法のほうが, コードが簡単になりそう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@uint256_t LLVMのallocaは確実にスタックに領域を取ってくれると思っていると最適化で酷い目に合います(それで泣いた」 / Twitter
- uint256_tさんはTwitterを使っています: 「@miura1729 賢くなりすぎたコンパイラが人間を苦しめるいい例ですね」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@uint256_t 確かに。仕様をちゃんと読まないのが悪いと言えば悪いんですけど...」 / Twitter
histric-3
- うーさんはTwitterを使っています: 「システムコールからの戻り値って基本はint型の戻り値だけなので,どうやってその値からerrnoに代入する値を決めているのかなあと思ったらこのコードにたどり着いた。-256<result<0なら,符号反転した値をerrnoに代入してる。 https://t.co/bQSGe54e08」 / Twitter
- libc/bionic/__set_errno.c - platform/bionic - Git at Google
- 島鉄雄さんはTwitterを使っています 「これは、いわゆるパターンマッチに漏れがあるとエラーになる言語を使えば防げるバグだろう。 なのでこれは糞コードではない。 最近の C/C++ のコンパイラは switch で漏れがあると警告を出すから分かるけど、エラーにしてしまうべきだろう。 そういうオプションが無いかちょっと調べてみる。 https://t.co/lLpwF38si8」 / Twitter
- 島鉄雄さんはTwitterを使っています 「-Werror=switch で、switch の漏れをエラーに出来た。 C++ の場合は enum class があって int 等には無理やりキャストしない限り変換できないから、より安全になる。 あと、if 文の羅列で分岐されると漏れをチェックできないから、やっぱり古い言語では限界があるのかね… https://t.co/Nh2YlqmJWy https://t.co/WIHFSX2FgY」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「名前つき番兵のメリットは値を読めるところなので、ポインタをデリファレンスすることで(も)終端判定したい場合には使ったりする https://t.co/vXyBV3CbHy」 / Twitter
- ハガさんはTwitterを使っています 「@kazuho うーん、僕はむしろ、デリファレンスできない可能性を持っていることがポインタのメリットだと思っているので、特に終端判定の場合にデリファレンス後に判定というのはちょっと想像できませんでした。」 / Twitter
- 藤枝和宏 - ぱんなこった@佐鎮さんはTwitterを使っています 「この番兵は高速化のためだと思う。linked listでキーを探すときに番兵にキーをセットしてから探す。最後で必ず止まるので次が最後か調べずにループを回せて条件分岐1回お得。 / “ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)” https://t.co/ZrCqgKPJID」 / Twitter
- ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)
- FadisさんはTwitterを使っています 「ポインタがめんどくさい事になるのはSEGVした時じゃなくて、SEGVせずに走ってしまった時だよ。読んではいけないものを読んでリモートにぶちまけたり、書き換わってはいけない物を上書きしたり、飛んではいけないところに飛んで実行してしまったり」 / Twitter
- あわねずみさんはTwitterを使っています 「C言語の授業 ある子がarray[i]とi[array]を間違える。 先生「i[array]はできません」 私「*(i+array)です」 先生「*なんてありません」 私「*はあります。ポインタの参照演算子が*です」 先生「誰に教えてもらったんですか?」 私「お母さんです」 →懇談会で母親に事前学習をしないように念押しされる」 / Twitter
- kinabaさんはTwitterを使っています 「A Simple, Possibly Correct LR Parser for C11 https://t.co/jPKTn3ikIN めっちゃ面白かった。C言語文法の決定性文脈自由じゃないところ全集。「lexerに情報共有して識別子毎に型名か否か区別してトークンを出させる」という、概念としては定番の実装なんだけど、細部の罠と解決策が楽しい」 / Twitter
- A Simple, Possibly Correct LR Parser for C11 | ACM Transactions on Programming Languages and Systems
- kinabaさんはTwitterを使っています 「特にdangling-else問題と識別子の文脈依存性の問題が混ざるとより問題が深まる(GCCも昔のバージョンで構文解析バグっていたらしい)というの考えたことがなかった。おもしろいなー」 / Twitter
- herumiさんはTwitterを使っています 「https://t.co/athh4LqnMQ #define N 16 char str[N]; memset(str, 0, N + 1); この例のコードならcppcheck, Visual Studioの/analyze, pvs-studioなどの静的解析ツールやclang-9で警告出ますね。https://t.co/Oj0EEqANG4 #yurubug」 / Twitter
- なたがわさんはTwitterを使っています 「a[i]とi[a]が意味的に等価なのはe1[e2]が*((e1) + (e2))のsugarだから、ってのは知ってるけど、そもそもこの加算が意味的に非対称な演算なのに逆も許してる (というかint + ptr要る?) のは謎だし、i[a]を許しても嬉しいのはparserで即desugarしてASTサボれるくらいでは...? なんか歴史/理由あるのかな」 / Twitter
- FadisさんはTwitterを使っています 「volatileは、コンパイラは言われたのと同等の結果になるアセンブリは吐くけど、言われた通りの順序で計算するアセンブリを吐くとは限らないぞ(=計算過程を横から覗き見できる場合、期待したのと違う状態が観測されるかもしれないぞ)、という前提知識を要するから、初心者への説明は詰まりがちだよな…」 / Twitter
- FadisさんはTwitterを使っています 「横から覗き見する手段とは具体的には、シグナルハンドラや割り込みで実行を中断して別の処理を行なっているとか、ハードウェアのレジスタを操作しているといった状況が該当する。別のプロセッサが同じメモリを見ている状況はキャッシュやアウトオブオーダーの影響が載る為volatileでは救いきれない」 / Twitter
- 対鉱物用武装さんはTwitterを使っています 「volatileの法則 1. つけるな。 2. (上級者限定)まだつけるな。」 / Twitter
- 対鉱物用武装さんはTwitterを使っています 「MMIOはふつうベンダ提供のマクロで隠されてるし、シグナルハンドラは同期化して受けるほうが安全」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語で struct S s; load(&s); みたいなやつ、2行になるやん? 実は struct S s = (load(&s), s); と書けば1行でvalidなCになる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「パフォーマンス意識したコードをメンテしていくのはCの方が楽だと思う」 / Twitter
- ハガさんはTwitterを使っています 「まぁ、いまどきC++ではなくCを使う[理由]はあっても、[利点]は無いよなっていう。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C++、Cよりロジックを組み合わせてコードを構築する手法が多いのはいいんだけど、その複雑性が利点になるか弱点になるかはケースバイケースだと感じてる。コードを書き捨てるケースではC++使うけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「もうちょっと具体的に書いておくと、たとえば、C++の優位点というのは、汎用的なデータ構造があるという点に多分に依存しているが、速度重視でコードを書く場合は専用のデータ構造を起こすことが多いので、汎用的なデータ構造をあまり使わない、とか」 / Twitter
histric-4
- くいなちゃんさんはTwitterを使っています 「「三項演算子とは、三項の演算子すべてを指す広い言葉だから、?: は三項演算子ではなく条件演算子と呼ぶべき。」 とよく聞きますが、条件演算子以外の三項演算子を見たことがありませんでした。 あります…?」 / Twitter
- しさしさんはTwitterを使っています 「@kuina_ch SQL の BETWEEN 演算子とかどうですか? x BETWEEN y AND z」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「整数オーバーフロー例外発生のコンパイルオプション付けると、整数演算が3-12倍遅くなる(前者clang, 後者gcc)という実験。 わざわざ調べてる人いるのね。 https://t.co/eEjmc2ZWEV」 / Twitter
- How expensive is integer-overflow trapping in C++? – Daniel Lemire's blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語に register というキーワードあるけど、今時だと firstcache とか lastcache みたいなキーワードがあっても良いかも。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドコードが動いている時にいきなり _exit (3) を呼ぶの、なんとなく正常終了できるつもりだったけど、スレッド破棄順序によって他のスレッドのスタック参照してるスレッドが SEGV する可能性があるのかぁ、ってなってる。そりゃそうだよな」 / Twitter
- yoh2さんはTwitterを使っています 「「C89 と C99 のどちらでも well-formed でありながら結果の異なるプログラムを定義済マクロに頼らず書ける」並に重箱の隅。 (知ってるのは enum 使うやつ)」 / Twitter
- yoh2さんはTwitterを使っています 「これね。 https://t.co/fP8aCUvAQ2」 / Twitter
- yoh2さんはTwitterを使っています 「類似でちょっと思い出したネタ。 # include <stdio.h> enum E { A = 1 }; int main(void) { int n = 0; for(n = 0; n < (enum E { A = 2 })1; n++) /* (enum { ... }) はキャスト兼 enum 宣言 */ ; printf("%d\n", A); /* C99以降: 1, それより前: 2 */ }」 / Twitter
- yoh2さんはTwitterを使っています 「C オタクに C++ オタク、妙なところに宣言を埋め込みがち。」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「一般 C++er「using によるエイリアス宣言は typedef の上位互換」 C++ 規格オタク「typedef だけ許される文脈がある」 https://t.co/ZbTY3SCir1 https://t.co/2lKIzwGsfT」 / Twitter
- A typedef for when an alias declaration cannot // [unfold] Bits of awareness
- mattnさんはTwitterを使っています 「C言語のポインタが初学者を悩ませる理由は宣言時と使用時に * が付いたり付かなかったりする int *p; p = &v; のと配列の参照方法が *(p+2) と p[2] の2つがあるというのが原因だわね。 Go は意図的にこれをさせない様にした。」 / Twitter
- KateさんはTwitterを使っています 「finally worked out how to make a function for addition. C isn't as hard as people say https://t.co/OFdqEKs6HR」 / Twitter
- yoh2さんはTwitterを使っています 「int a[n] とint *a が別物だというのと同じように int a[m][n] と int (*a)[n] は別物だが、 int a[n] と宣言した変数が式中で表れると一部を除き int * 型になるように int a[m][n] と宣言した変数は式中に表れると int (*)[n] 型になる。 ……を一言で説明できる語彙力を下さい。」 / Twitter
- yohさんはTwitterを使っています 「ISO/IEC9899 (違」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「C言語できる人」で、芋づる式に、disasコードも読める、ダンプ解析できる、カーネソース読める(OSの諸概念知ってる)、みたいなニュアンスまで含むこともあったり…(笑)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「C言語ができるできない」ではなくて、他のプログラミング言語を使えて、かつ、OSやCPUについて学んでいれば、Cは読めるはずだし、すぐ書けるようになる、という話じゃないのかな。高級アセンブラなので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語、プログラマにとっての英語みたいなもので、日常、できなくて困らない人も多いけど、たまに使って何かを得てる人もいれば、毎日使ってそれでご飯を食べてる人もいる、くらいのもんでしょう。 英語同様できたほうがいいけど「できないとダメ」みたいな呪いじゃない」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆にそういう人達は、単にC言語書ける人より何倍も強いので、それを目指すべく、C言語から吐き出すdisasコードを読んだり、ダンプを眺めたり、OSの本を読んだりすると良いかも。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「極めて普通だし、共通型を構造体の先頭に置いて super とか名前をつけてポインタキャストするのも普通」 / Twitter
- mattnさんはTwitterを使っています 「C言語をずっとやってると第一引数がオブジェクトに見えてくるし関数呼び出しがメソッドに見えてきます。(なにその GTK)」 / Twitter
- kiwanamiさんはTwitterを使っています 「まあ、分かるけど、JavaとかC#とかJS書いてる人がたくさんいる中で、オブジェクト指向いらないんですと言われても、では今書いているこの言語や実行環境は何なの?みたいな感じになる。」 / Twitter
- きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「オブジェクト指向について書いたゾ https://t.co/b1gDtbUMRS」 / Twitter
- オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
histric-5
- Rui UeyamaさんはTwitterを使っています 「@taijin_t 構文解析が簡単になるんですよね。Cだとx *yは、xが型名ならxのポインタ型の変数yの宣言になるけど、xが変数ならxかけるyになるので、これを解決するには型の解釈と構文解析を同時に進めないといけない。GoとかPascalの順番だとそこがキレイに分離できる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter
- 齊藤敦志さんはTwitterを使っています 「@rui314 C11 だと (初期化されているなら) 構造体のパディングはゼロということになっているっぽいです。 (私は英語が不得意なので解釈に自信がありません。 当該項目を提示しておきます。) https://t.co/rbGnAxhGQi https://t.co/BHwKYPcrtW」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「こういうやつ https://t.co/WiBv5VMn4D」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「まーそれはそれとして、 「なぜ data ポインタをもたないのか?」 「構造体の中に部分型を入れてアドレスオフセット&キャストすればいい」 「???」 「C++になったつもりで考えて」 みたいなやりとりは、ありがち」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語でオブジェクト指向の話、「container_of って何?」て聞いて知らなかったり、自分で書けなかったりする人は詳しくないと思っていいです」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho 初めて知った…😨 https://t.co/00kyqUwu22 スか # ワシ、そういうのに触る前に C++ 行っちゃった感はある(で cfront が吐いた C を読んでたりしてた😅)」 / Twitter
- linux-4.4.1/container_of() - コグノスケ
- Kazuho OkuさんはTwitterを使っています 「補足しておくと、メンバへのポインタからコンテナへのポインタを得るというのはインターフェイス継承実装時に求められることなので、その具体例を知らない、かつ、実装もできないのであれば、C言語でオブジェクト指向プログラムを書く難易度について正しく評価できるのか疑問符がつく、という意味です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「格好つけようとして複雑にしてバグしこんじゃうやつ?」 / Twitter
- mumumuさんはTwitterを使っています 「C言語でconstをたくさん置けることを知った. const const const const int c = 0;みたいなのが許されるっぽい.めっちゃ強調できるじゃんw」 / Twitter
- FadisさんはTwitterを使っています 「RISC-V、ポインタとlong long long intの長さが128bitになるRV128 ISAが提案されていて力強い https://t.co/3ZXkYuRlup」 / Twitter
- riscv-meta/rv128.md at master · brucehoult/riscv-meta
- FadisさんはTwitterを使っています 「64bitのISAと互換を取りやすいLP64FP128では近くのアドレスを表すポインタは64bitで表現して、遠くのアドレスを指すポインタ(far pointer)は128bitで表現する、って遠くのアドレスどんだけ遠いんだw」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS-DOS時代、far/near/hugeポインタに悩まされた記憶が… (といいつつ、機械語の中ではshort/near/far jmpとか良くある)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(関数ポインタとデータポインタで、ポインタサイズが違うことあった。あと32bit far ポインタもインクリメントでは16bit範囲だけを回るとか、お約束多すぎ)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語ですら検出できる誤用を検出できないプログラミング言語を使っている皆さん!!! (clang, gccあたりは関数宣言に__attribute__((__format__(__printf__)))属性をつければ、コンパイラが書式文字列が定数かチェックしてくれる)」 / Twitter
- Moriyoshi KoizumiさんはTwitterを使っています 「printf(3)の第1引数に誤って書式文字列ではなく任意の文字列を与えるという間違いは割と避けることができているが、ロガーの関数で同様のことを気遣いできる自信はあまりない。APIの設計にもアフォーダンスというものがあると思う」 / Twitter
- Moriyoshi KoizumiさんはTwitterを使っています 「とはいえ、log4jの脆弱性という見方には違和感がなくもない...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「真面目な話としては、 logger.format(fmt).emit(param1, param2) みたいなAPIにすべきだ、という話なのかな」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「ところが、今回の問題の場合 param1, param2 に相当すうるものも置き換え対象になり攻撃を受けるらしく、本当にひどい ソース: https://t.co/og2vj5Gwhv の「unfortunately the lookup is performed after formatting the message」のところ」 / Twitter
- [LOG4J2-3198] Message lookups should be disabled by default - ASF JIRA
- 令掛ベインさんはTwitterを使っています 「Cのコンパイルユニットをむりやり1個にするのアマルガメーション(amalgamation)というらしい / [How to Write Portable C Without Complicating Your Build](https://t.co/qD2bmTkCse)」 / Twitter
- How to Write Portable C Without Complicating Your Build
- Kazuho OkuさんはTwitterを使っています 「Rustのさまざまな支援はあると助かるけど、並列安全性を気にしなくていいCプログラムで、所有権以外のバグっていっぱいあるんですよね。結局ロジックが複雑になって「動いてるからヨシ」になる問題はどの言語でもかわらんと思う」 / Twitter
- Ph.D.ritaさんはTwitterを使っています 「これを、オブジェクトの所有権や並列安全性の観点で大リーグ養成ギプス的なガチガチの制約と優しいエラーメッセージでサポートしてくれるのがRust、という認識なんだけど、そこまで導いてくれるのかしら。。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ごく一握りの、課題を単純な問題に帰着させてからのみプログラムを書くような自律と問題解決力があるエンジニアにとっては良い言語であることは確かだと思う。djb…」 / Twitter
histric-6
- fjのYog教祖様さんはTwitterを使っています 「@n_soda これ、案外大事で、 bit field の特定のビットを「0にする」のに x: bit field y: 0にしたいビットだけが1になっているbit field が与えられて、 x ^= y; をやっちゃう人が多い。 (正解は x &= ~(y);) 手癖なのか何なのか、結構な人数を見かける。」 / Twitter
- FadisさんはTwitterを使っています 「kmallocしてmemsetでゼロクリアする事多いからゼロクリアするメモリ確保kzmallocを用意したい→既存の膨大なコードをどうやって置き換えよう→Semantic Patch。具体的にはCoccinelle https://t.co/TtIo1wfNCG #kernelvm」 / Twitter
- Coccinelle: A Program Matching and Transformation Tool for Systems Code
- FadisさんはTwitterを使っています 「難題: CPPで変換されているコード→ CPPをかけた後のコードのASTを作って変換することはできる。しかし、変換後のコードはCPPをかける前の形になっていなければならないがCPPで逆変換をする事ができない #kernelvm」 / Twitter
- Coccinelle — The Linux Kernel documentation
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関数がinline宣言されたからといって、必ずインライン展開されるわけではない。C++ではinline宣言された関数はたとえ使わなくてもリンカが残す。いっぽうCでは"inline"宣言され使用されない関数は削除されるが、"inline extern" や "inline static" では事情が異なる。 https://t.co/UovN5VSChb」 / Twitter
- [llvm-dev] Inline function not eventually inlined is removed
- Kazuho OkuさんはTwitterを使っています 「一応マジレスしておくと、アセンブリ読み書きできなくてもプログラム書くためのツールがC言語だし、APIを整理したりインタプリタ作ったりすることで、Cを読み書きできなくてもプログラム書いたりできるようにしてきたわけですね。まあ、読み書き必須な類の仕事というのはあるけど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「定理証明とか構成的プログラミングでバグ0を狙う方向は、あまりに難しい。(生産性が上がらない) 設計/開発での予防とテストでの確認、でバグを一定以下に抑えるほうが、稀に事後バグ対応コストがあったとしてもトータルで低コストというのが多くの開発者の感触かな。 (予防法の進化は歓迎だけど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(元ツイートは、カーニハンだかの言葉「デバッグは開発より2倍難しいから、あなたはあなたのプログラムをデバッグできるほど賢くない」を思い出す(笑))」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(皆、能力不足の地位になるまで昇進するから、安定ポジション=皆能力不足説とか。何の法則だったか忘れた)」 / Twitter
- kenichiudaさんはTwitterを使っています 「@shirouzu ピーターの法則でしょうか。 最近ググりました。」 / Twitter
- `('-' )’さんはTwitterを使っています 「@shirouzu この法則は「その組織の仕事は、まだ出世の余地のある人間によって遂行される。」が論理的な帰結として導き出されてしまうところが上手いなと。 https://t.co/u5DGkF8wzM」 / Twitter
- ピーターの法則 - Wikipedia
- Reservoir sampling - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうはいっても、昔よりは随分と安全サイドに最初からコストかけるようにはなったとは思う。 (太古のサッカーはほぼ全員が攻撃手だったが、研究が進むにつれ攻撃手は1,2人になり、直感より防御優先の方が合理的となった歴史を連想したり)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「標準化されたCはOSの開発には向いてない (PLOS'21論文)。ISO標準はあまりに抽象化されており、ほとんどのOSはコンパイラ依存の仕様に頼っている。そして未定義動作を最大限活用したコンパイラによる最適化がある。多くの場合、これら最適化によるメリットはさほど大きくない。 https://t.co/Sn3BfijR6x」 / Twitter
- [2201.07845] How ISO C became unusable for operating systems development
- zehnpaardさんはTwitterを使っています 「ISO標準がなんでOS開発に適さないかというと、未定義動作による(特にgccによる)アグレッシブな最適化が、システムの安全性を損なう割に最大で16%くらいしか性能に貢献していないようだから、なのか Coqで形式検証されたCompCertの話も出ていて面白かった」 / Twitter
- Kazutoshi SATODAさんはTwitterを使っています 「@kaityo256 未定義動作に至る「可能性がある」という時点でエラーで落とすというのはおそらく規格に違反することになってしまうので、デフォルトでオンにするという判断は取りにくいだろうと思います。 https://t.co/Cr5uC0fCeZ」 / Twitter
- [intro.compliance]
- Kazutoshi SATODAさんはTwitterを使っています 「@kaityo256 まぁ「ここは安全のため意図的に規格に違反してるよ」ってコンパイラの仕様に明記しておけば可能になるんですけどね。」 / Twitter
- zehnpaardさんはTwitterを使っています 「@shirouzu 元の論文にDennis RitchieがこういったISO Cの過激な最適化に批判的だった、という話も出ていました “the committee is planting timebombs that are sure to explode in people’s faces. “」 / Twitter
- zehnpaardさんはTwitterを使っています 「@shirouzu 続き “Assigning an ordinary pointer to a pointer to a ‘noalias’ ob- ject is a license for the compiler to undertake aggressive optimizations that are completely legal by the committee’s rules, but make hash of apparently safe programs.”」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@zehnpaard ありがとうございます。参考になります。 さすがはD.リッチーさん、ホント「時限爆弾」ですね。」 / Twitter
histric-7
- mattnさんはTwitterを使っています: 「実際のところ分かる必要はなく、使うと怒られます。」 / Twitter
- 夜糸さんはTwitterを使っています: 「C言語習いたてで右も左も分からない人に int a[5]; に対して *0[&a] は? とか訊いてみたい」 / Twitter
- mattnさんはTwitterを使っています: 「覚えておくべきは long a; long *p = &a; p++; これが1バイトではなく sizeof(long) 分足されるという点。」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「コンピュータの世界では矛盾する数式を扱った場合にエラーとしてしまうのを嫌い、infinity(無限大)とする処理系も存在する。 これはそういうルールになるだけで問題は特に発生しないがプログラミングを書く上では注意が必要になる。」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「例えば if ((i / j) == 1) { //この中身は(int)i == (int)jの場合に実行されるが、j==0の場合は実行されない } みたいなことがおこる。」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「しかもその場合に問題が発生していることが検出しにくい。」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「C/C++はゼロ初期化するコストももったいない!という言語なので仕方がない。速度と省メモリのためのDSLなので。ゼロオーバーヘッド至高主義なんだ!とわかってからC++とは仲良くなれた。」 / Twitter
- hsjoihs (はすじょい)さんはTwitterを使っています: 「スタックガード、自作 C コンパイラでも実装したなぁ。最近のコンパイラだとローカルで配列を宣言している場合にはスタックガードが行われるので、可変長引数を受け取る関数では va_list args; が必要だからスタックガードが生えるのよね #kernelvm」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ほとんどの学校で、C言語はまずい教え方をされている。C言語は今後もシステム保守のために長く必要とされるだろうが、多くの教材は古く、悪い習慣を教えており、今日の低水準プログラミングで必要なセキュリティ上の考慮や未定義動作について触れていない。 https://t.co/R7dYmDBO3u」 / Twitter
- Teaching C – Embedded in Academia
- Kazuho OkuさんはTwitterを使っています 「えーなんでここで schemes が non-NULL なの? 酔っ払ってるのかな https://t.co/PkAohxLU4s」 / Twitter
- ItSANgoさんはTwitterを使っています 「@kazuho 関数を2回以上通っていませんか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@ItSANgo ほんまや! 誰や static とかつけたやつ!!! ありがとうございます」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「C言語、整数リテラルのデフォルトが代入先がullでもintで後ろにullつけないと警告なしにシフト演算するとあふれるの、どうなん(死んだ目)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「いろいろな演算 (比較、反転、ビット拡張など) をビット演算だけを使ってやる手法の一覧。ナイーブな方法から、値に依存しない (定数時間の) 方法までが紹介されている。 https://t.co/lzFKQqDSzy」 / Twitter
- Bit Twiddling Hacks
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「最近のC/C++コンパイラ、言語仕様ギリギリを攻めた最適化と引き換えに、どれだけバグを顕在化&(優秀な人を含めて)人月を失わせているのか、ちょっと気が遠くなる。 (でも VC++ ではあまり聞かない気がする不思議) https://t.co/wovWEpQNT9」 / Twitter
- プログラミングで「C言語」が難しいとされる理由は何ですか?に対するShiro Kawaiさんの回答 - Quora
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Strict Aliasing に関してはこの翻訳が参考になる。 ---- 「C/C++のStrict Aliasingを理解する」 https://t.co/dSWhbuSYoN」 / Twitter
- (翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
- mod_poppoさんはTwitterを使っています: 「LuaJITのint64_t, 単項マイナスでUB踏む可能性がある気がするな(int64_tの状態で単項マイナスを計算している)(本家Luaはunsignedにキャストしているから単項マイナスしているので問題なさそう)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「https://t.co/KogYeuuk54」 / Twitter
- LuaJIT/lj_carith.c at 7306ba78d62b55a64f25231df1d5697345a5572e · LuaJIT/LuaJIT
- LuaJITの64ビット整数
- Kazuho OkuさんはTwitterを使っています: 「往時のPascalとか var x, y : Integer; みたく型名を後置する言語と比べてコンパクトなのはCの利点だと思うし、70年代の言語としては変数一個につき一行は富豪すぎると思う。昔は画面せまかったので… 式評価のパーサをそのまま活用できるという点でも、あのやり方は合理的だったのだろう(過去形)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Pascalだと複数の変数を一度に宣言する場合、宣言時代入できないんじゃないかな。Cならできる!!!!」 / Twitter
- mod_poppoさんはTwitterを使っています: 「C言語のポインターの宣言で int *a, b; とやるとハマる問題の最終的な解決策:変数の宣言に常にtypeofを使うようにする typeof(int *) a, b; ※C23またはGNU拡張が必要」 / Twitter
- yohさんはTwitterを使っています: 「https://t.co/ocwGq0UV1V " Analogical reasoning led to a declaration syntax for names mirroring that of the expression syntax in which the names typically appear." Dennis M. Ritchieもこう書いてるし まあまあ妥当なんじゃないかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「int a, *b; とか、メンタルモデルとして、「int型であるところの変数aと、int型へのポインタであるところの変数b」と考えた方が読みやすいから、現実問題*は変数に寄せるんだと思う」 / Twitter
- Takumi SuedaさんはTwitterを使っています: 「Cはポインタも含めて型だから型の識別子の側にアスタリスクも寄せるのが好きなんだけど大半のスタイルでは変数の識別子にアスタリスクを寄せる方がメジャーていう事実」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「C言語に慣れてる人は、int *a; を見ると (*a) が int型という脳内解釈してて、それはそれで自然な気がする。 逆にC/C++言語で、int* a と書くスタイルにするなら、1行につき変数は一つというスタイルも付け加えて欲しいかな。」 / Twitter
- kmizuさんはTwitterを使っています: 「@angel_p_57 全て駄目かというと意見の相違はあると思いますが、関数ポインタを含むCのポインタの文法が他言語に比べてわかりづらくややこしいのは間違いないかと。 void(*signal(int sig, void(*func)(int)))(int); と int->void signal(int sig, int->void *func); だと後者の方が明らかに理解しやすいかと。」 / Twitter
- kmizuさんはTwitterを使っています: 「@angel_p_57 そして、実際問題、Ritchieが後で設計したRimboなどの言語だと関数ポインタはこれに近い文法になっていますし、より後発の他の言語を見てもおおむねそういう「まともな」文法になっているかと。」 / Twitter
- yoh2さんはTwitterを使っています: 「理由はともあれ (知らんとも言う)、規格の方でも C と C++ でスタイルが異なっていて、C 規格書 (ISO/IEC 9899:2018) だと int *p スタイルで、C++ 規格書 (ISO/IEC 14882:2020) だと int* p スタイルなんですよね。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「そしてVisual Studio(だけじゃないかも?)は何故 int *p; を int* p; にオートコレクトするのか(ggre」 / Twitter
- mod_poppoさんはTwitterを使っています: 「最近のCコンパイラーは x == -x についてxが符号付きか符号なしかで異なるコードを生成しうるらしい(C言語では符号付き整数のオーバーフローはUBなのでx == -xをx == 0に最適化できる)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なんかCで配列メンバーのポインタとるとき &p[i] って書くか p + i って書くか。ずっと前者が迂遠で気持ち悪いと思ってたけど(C++の場合はまあ差があるかもみたいな話は置いておく)、最近はだんだん許せるようになってきた」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「p=NULL, i=0の場合も両方undefined behaviorでしたっけ...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なんで前者が気持ち悪いかというと、p[i] は *(p + i) と等価と定義されているので、 &p[i] は &*(p + i) のsyntax sugarだという話になるからです。だったら p + i でいいやん、と」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Cの複合代入で自分自身の参照ってできるんでしたっけ? 具体的には s = (struct S){.foo = https://t.co/9j7UIE1GC8}; みたいなやつ」 / Twitter
Assembly
UTF-8 validation
- ドッグさんはTwitterを使っています 「Lemire 氏次は UTF-8 の validation か.SIMD の pshufb 命令を使って 16バイトごとの table lookup に vectorize して,それを3回やるだけでできるのか | 'Ridiculously fast unicode (UTF-8) validation' https://t.co/sfVDunjaAL」 / Twitter
- Ridiculously fast unicode (UTF-8) validation – Daniel Lemire's blog
- ドッグさんはTwitterを使っています 「paper: https://t.co/Vz0fa836MD 6.1 の最後の段落と TABLE 9 に具体例が載ってる」 / Twitter
- 2010.03090.pdf
- ドッグさんはTwitterを使っています 「Rust も String や str の値の動的な生成には unsafe 使わない限り UTF-8 validation が必ず入るので高速化すると嬉しい気がする」 / Twitter
ABI
その他
その他
- shinichiro hamajiさんのツイート: "ABI 地獄は Qt/KDE で10年以上 C++ ライブラリを配るということにつきあってた人の、この話が面白かった気がする https://t.co/fx80ZQ4teS #cppmix"
- Cover Slide Title
- Thread Local Storageの初期値について調べた - Qiita
- ABI の境界 (Modern C) での移植性 | Microsoft Docs
- C言語系/呼び出し規約/x86/naked - Glamenv-Septzen.net
- KMC Staff Blog:QEMU の Microsoft x64 環境での不具合
- APIとかABIとかシステムコールとか - Qiita
- Makoto Kato ︎︎さんはTwitterを使っています: 「Linux/aarch64のコードをWindows/arm64にポートする時に気をつけないといけないのは、x18がLinuxだとスクラッチレジスタだけど、Windows (iOSもだけど) だとスクラッチレジスタではないので、ちゃんと値を保持しないといけないってところ。ABIの定義みたら、プラットフォーム依存と書かれたはず」 / Twitter
- FadisさんはTwitterを使っています 「intのサイズがいくつでlongのサイズがいくつってのはC++の規格じゃなくてABIが決めるところで、ABI次第では両者は同じサイズになり得る。でもサイズが同じである事と、型が同じであることは別の話で、両者が同一の型扱いされることは無い」 / Twitter
- ARM64EC Support in Visual Studio | C++ Team Blog
objdump
- [reverse-engineering] objdumpを使用したフラットバイナリファイルの逆アセンブル [disassembly] | CODE Q&A 問題解決 [日本語]
- 2590 - x86-64 validator allows addressing mode with the redundant "%riz" encoding - nativeclient - Monorail
- 【ベースアドレス】の例文集・使い方辞典 - 用例.jp
POSIX
可変長引数
- ロボ太さんはTwitterを使っています: 「C/C++で、以下の実行結果が「3 1.200000」になることを知って震えている。 printf("%d %f\n", 1.2, 3);」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「これどういうことかと思ったらva_listの構造も特殊なのか。たとえばPowerPC64 System V ABI V2だとva_listは引数を順に並べたものになっているので、可変長な関数を呼ぶときはcalling conventionが変化するんだけど、AMD64 System V ABIでは%alに使用したSSEレジスタの個数を入れるだけしい」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「まず前提条件として ・固定長引数関数は、できるだけ引数をレジスタに入れて渡したい ・可変長引数関数はどうせva_listに入るのでスタックに入れて渡したい という要件があるんだけど、ここでnon-prototype関数という厄介なやつがいる (伝統的なC言語にある、引数型が不明な関数)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「こいつは呼び出し側からは固定長か可変長かすらわからないので、わからないなりに上手く呼べる必要がある。なので基本的に以下のような戦略になる ・引数はできるだけレジスタに入れて渡す ・可変長引数のときは必要に応じてレジスタからスタックにコピーしなおす」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「で、レジスタとスタック上の位置が1対1対応してればここまでの議論で完結するんだけど、多くの場合は整数と浮動小数点数は別のレジスタに入れたほうが効率がよい (固定長引数のときはそうしたい)。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「しかも、できれば沢山レジスタに入るほうがいいので、整数レジスタは整数レジスタで詰めて入れたいし、浮動小数点数レジスタも同様。 ところがスタック部分は共用なので、「どこからがスタックに溢れたのか」がわからなくなる。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「レジスタに置いて呼んでからスタックにコピーされるのかあ」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「なんかレジスタ経由して「書式文字列通りに引数並べてあったらレジスタにこう置いてあるでしょ他は知らん」みたいなノリなのかな、でもなあって思ったら意外と部分的にそういうノリっぽい上にもっとあれな話だった」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「Cの処理系は初期の仕様をカバーしつつ効率的なコードを吐く事の両立を求められるとほんときつそう。gccとかclangとか超感謝」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「発展課題: これが当然だと思った皆さんは、va_start, va_arg, va_stop の実装を考えてみましょう https://t.co/jXo8DhCdd9」 / Twitter
値渡し
- uint256_tさんはTwitterを使っています 「#cilk 構造体を値渡しするためには,かなり大がかりな改修が必要なことが分かった.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t ほんとあれややこしいんで、そんなに得になっているのか誰かにちゃんと説明してほしい。あと、 struct { double x, y; }みたいなやつは2つのXMMレジスタで渡されたりしますよね(さらにトリッキー)。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 xmmなどのレジスタが関わってくる場合については,どこかに詳細なドキュメントが置いてあったりするのでしょうか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t https://t.co/1SIFcKzwpt の 3.2.3 Parameter Passing のあたりです」 / Twitter
- psABI-x86_64.pdf
- uint256_tさんはTwitterを使っています 「@rui314 ありがとうございます (確かにこれはややこしい)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t まあx87の80ビット浮動小数点数とか__m256あたりはとりあえず無視していいとは思いますけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t そこらへんをとりあえず置いておくと、 - 16バイトより大きいとかunalignedなメンバがあったりするとスタック渡し - それ以外の場合、8バイトごとに区切って考えて、8バイトに含まれているメンバが全部浮動小数点数型ならXMM、そうでなければ整数レジスタ渡し というルールのはず。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 かなりすっきりしますね.わかりやすい.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t struct { int a; float b; double c; }だと、aとbは(上位32ビットと下位32ビットで)まとめて1つの整数レジスタで渡して、cはXMMという。そこまで詰めるメリットあるのかなぁという感じですけど。」 / Twitter
- _ko1さんのツイート: "https://t.co/Wlk3omuOir (VALUE)(*funcptr)(VALUE) と (VALUE)(*funcptr)() で呼び出し時のコンベンションが違うようなんですが、後者って何? eax なんて callee は見ないよね?"
- Shiro Kawaiさんのツイート: "funcptrがvarargだった時にFP引数の数をalに入れることになってるので、それを0にしとくため?… "
- _ko1さんのツイート: "FP引数!! 知りませんでした… "
- Shiro Kawaiさんのツイート: "callee側でどう使ってるのかはよく理解してない。スタックにスピルした場合でも結局va_argで渡される情報を信用してアクセスするしかなさそうだけど…xmmの退避に関係する?… "
- Kazuho Okuさんのツイート: "va_startは引数かもしれないレジスタを全部スタックに展開するけどxmmでそれやるとさすがにメモリ食い過ぎるから… "
- Shiro Kawaiさんのツイート: "なるほど。va_listの実体をスタックに持たないとならないからか。全部va_argで使い切られてたらどのレジスタ使えばいいのかわかるけど、va_listのまま他の関数に渡される場合があるからコピーは必要と。… "
- mpx-linux64-abi.pdf
- Cの可変長引数とABIの奇妙な関係 - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SPARC(32bit)で構造体を渡す時、レジスタに収まるサイズでも、ポインタ経由になるの、考慮漏れだったのかな? v9でもx64でも、レジスタサイズより大きい場合にはじめて、ポインタ経由になる。」 / Twitter
- kubo39@求職中さんはTwitterを使っています 「@rui314 @uint256_t x86においてebxレジスタをGOTのために予約していた話でしょうか。GCC 5以降はそうではなくなりました。 https://t.co/m571IdUGTV」 / Twitter
- New Optimizations for X86 in Upcoming GCC 5.0: PIC in 32-Bit Mode
- Assembly 2: Calling convention – CS 61
- 2021-05-04_-The-Complete-Guide-to-return-x-1.pdf
x64 ABI
- WINAPI とは何か? - C/C++ 入門
- melancholic afternoon
- ACCU :: Windows 64-bit Calling Conventions
- Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
- Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
- Makoto Kato ︎︎さんのツイート: "@d_toybox (Unix ABIだと6個だけど)。uint64_t -> uint32_t の暗黙的な変換とかは別に命令実行する必要ないんでそんな関係しない"
- Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
x32 ABI
本の虫
- 本の虫: x32 ABIの簡易的なまとめ
- 本の虫: GoogleのNative ClientチームがLLVMにx32を所望
- 本の虫: glibc 2.16がリリース。x32をサポート
- 本の虫: LLVMにx32のサポートを追加するパッチ
- x32-abi
- Fadisさんのツイート: "Linuxカーネル開発者達がx32 ABIの廃止を検討している。x32はx86_64のハードウェアを要求しながら32bitのアドレスを使う事でx86_64の機能を利用した性能の向上と、アドレスが短い事による性能とバイナリサイズでの強みを共に享受しようというABIで、あまり流行っていない https://t.co/hvFqRfIW66"
- Linux、x32のサポート終了か - ト―バルス氏は賛成 | マイナビニュース
kABI
- kABIとは何か - 赤帽エンジニアブログ
スタック
- [C言語]コールスタック(スタックフレーム)の仕組みを復習する | KentaKomai Blog
- WIN64スタック | さすらいのプログラマ - 楽天ブログ
- スタックと割り込み ―― プログラムが動く仕組みを知ろう|Tech Village (テックビレッジ) / CQ出版株式会社
- スタックフレーム - 関数に渡される引数を知る - Web/DB プログラミング徹底解説
- windows - newbie trying to understand disassembled code - Reverse Engineering Stack Exchange
- c - マシンコード実行時のランタイムエラーが不明確
エンディアン
- エンディアン - Wikipedia
- エンディアン - デバイスドライバの記述
- PCI - OSDev Wiki
- Ext4 Disk Layout - Ext4
ABI
- ι∵さんはTwitterを使っています: 「> 本来であれば関数の呼び出し元に戻すためには call の次の命令のアドレスを push されるべきですがそれはされていません。 これは x86_64 アーキテクチャの call 命令が命令の次のアドレスの push と jmp を同時に行う命令だから push が明示的に現れていないという話ではない?」 / Twitter
- ι∵さんはTwitterを使っています: 「ちなみに記事内でリンクされているページのこのへんにも書かれている https://t.co/z53O0OBkgD」 / Twitter
- x86アセンブリ言語での関数コール
- 統合開発環境さんはTwitterを使っています: 「情報処理試験「関数を呼び出すとスタックが使われるんだよ」 ぼく「使われてへんやんけーーーーーーーーー」 っていうブログ書きました。 https://t.co/qyl2lITFbs」 / Twitter
- stackにpushする試行錯誤 | blog.ojisan.io
- 統合開発環境さんはTwitterを使っています: 「あーエゴサしてて分かった。呼び出し元のpushに関しては、callがpushとjumpを兼ねてるからいきなりcallで大丈夫なのか。」 / Twitter
- 統合開発環境さんはTwitterを使っています: 「引数をスタックに積まないのは今時のコンパイラはレジスタを優先的に使うからという理解でよさそうな雰囲気は感じた。けどどう言うドキュメント読めばいいか分からない。どこでその知識手に入れたのだろうか…」 / Twitter
- tomiyさんはTwitterを使っています: 「@sadnessOjisan https://t.co/1F1NQSy2rB これとかいいですよ(p. 24あたり) スタックはメモリ上に置かれるためレジスタに比べると遅いのでx86_64の環境だとレジスタを優先的に使いますね x86は汎用レジスタの数が少ないのでスタックを使ってたんじゃないですかね?」 / Twitter
- abi.pdf
- 統合開発環境さんはTwitterを使っています: 「@tomiy_0x62 あーなるほど、レジスタの使い方が明記されていて良いですね。こういった体型だったものを探していました。ありがとうございますmm」 / Twitter
- r7kamuraさんはTwitterを使っています: 「@sadnessOjisan 最近の言語用のコンパイラの利用するABI (Applicatoin Binary Interface) とか見てけば分かるんじゃないか?あとはCコンパイラつくってみて必要に応じてドキュメント読むとか」 / Twitter
- 統合開発環境さんはTwitterを使っています: 「@r7kamura 多分、ドキュメント読んでコンパイラ自作はどちらにせよ古典的なものを作ってしまうと思うので、先に実用されてるABIだったりコンパイラバックエンド読むしかないのかみたいな気持ちになりました」 / Twitter
ソフトウェア規約
- x64 でのソフトウェア規約 | Microsoft Docs
- x64 software conventions | Microsoft Docs
- __fastcall | Microsoft Docs
- /favor (アーキテクチャ固有の最適化) | Microsoft Docs
- /Zp (構造体メンバーの配置) | Microsoft Docs
- コンパイラ組み込み | Microsoft Docs
- 呼び出し規則 | Microsoft Docs
呼び出し規約
- x64 での呼び出し規則 | Microsoft Docs
- x64 calling convention | Microsoft Docs
- __m128 | Microsoft Docs
- setjmp | Microsoft Docs
- longjmp | Microsoft Docs
- コンピューター:C言語講座:構造体・共用体・ビットフィールド
スタックの使用
- x64 スタック使用量 | Microsoft Docs
- x64 stack usage | Microsoft Docs
- Gamasutra - In-depth: Windows x64 ABI: Stack frames
- malloc | Microsoft Docs
- __m128 | Microsoft Docs
- _aligned_malloc | Microsoft Docs
- _alloca | Microsoft Docs
- align (C++) | Microsoft Docs
- __declspec | Microsoft Docs
プロローグとエピローグ
- x64 プロローグとエピローグ | Microsoft Docs
- x64 prolog and epilog | Microsoft Docs
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
- X64 Memory segmentation – Is the game over? | AaLl86 Security
- 或るプログラマの一生 » x64 環境でのアセンブラプログラミングにおける注意点
- x64 Assembly Language Programming
- 64-bit _alloca. How to use from FPC and Delphi? | Atelier Web
- Saving Space When Saving Space - emsea
- Thread’s Stack – Satyem
- assembly - Meaning of BND RET in x86 - Stack Overflow
- assembly - What does `rep ret` mean? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "余談ですが、x64は概ねプロローグでstack事前確保(alloca系は別として)なので、関数内でcall毎のpush/popがない分、x86よりダンプが読みやすい印象があります。 (ただダンプ解析では、引数がスタックにない分、若干解析しづらい)… "
例外処理
- x64 例外処理 | Microsoft Docs
- x64 exception handling | Microsoft Docs
- MSVC の例外処理 | Microsoft Docs
Win32 ABI (Linux)
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linux上の安定したABIといえるはWin32だけだ。Glibc-2.36ではELF形式のハッシュ方式が変わり、ValveのEAC (Easy AntiCheat) を使っているゲームが動かなくなった。元の仕様に戻る気配はないらしい。ネイティブなゲームをLinux上で作るのはこのように余計な労力がともなう。 https://t.co/szYtMiOGWU」 / Twitter
- Win32 Is The Only Stable ABI on Linux
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「以前にも似たような話がった。 https://t.co/7G8vkEj4Zj」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxの安定したユーザランドABIとしてのWin32、という考え。Linuxは依存ライブラリやファイルシステム構造等に大きく差があり、事実上複数の異なるOSといえるほどである。Valveは最近「Linux版」の開発はもう不要と言い出した。エミュレートしたほうが統一されていて楽なのだ https://t.co/Z24fXao2lo」 / Twitter
- Win32 is the stable Linux userland ABI (and the consequences) - the sporks space
- LinuxやmacOSでWindowsアプリを動作可能にする「Wine 7.0」リリース | TECH+
- 「Wine 7.0」が正式リリース ~新しいWoW64アーキテクチャーなどを導入 - 窓の杜
- 【西川和久の不定期コラム】Chrome OS Flexと最新版Wine 7.0の組み合わせでWindowsアプリを動かしてみる - PC Watch
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linus Torvalds「なぜデスクトップLinuxはダメなのか」(2014年) 「カーネルには唯一絶対の原則がある: ユーザランドの仕様を変えないこと。ところがライブラリ開発者はいともたやすくABI互換性を壊す。これじゃ話にならん。もしかするとValveならこの状況を変えてくれるかも」 https://t.co/7bS8UfYrp6」 / Twitter
- Linus Torvalds on why desktop Linux sucks - YouTube
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Wineの仕組み解説。Wine自体はエミュレータではない。x86 LinuxはWindowsのコードをそのまま実行できるため、Wineは基本的にhttps://t.co/pIdnhRShMVのような動的ローダの一種とみなせる。大変なのはWindowsの膨大なAPIをひとつひとつ実装することである。 https://t.co/7qPhTFUl3n」 / Twitter
- How Wine works 101 · Reboot and Shine
Arm
- Announcing ARM64EC: Building Native and Interoperable Apps for Windows 11 on ARM - Windows Developer Blog
- ARM 上の Windows 11 アプリ用 ARM64EC - UWP applications | Microsoft Docs
- Overview of ARM64 ABI conventions | Microsoft Docs
- 64-Bit Office for Windows on ARM
- ARMネイティブの速度とx64相互運用を両立 ~Microsoft、「ARM64EC」を発表 - 窓の杜
- abi-aa/aapcs64.rst at main · ARM-software/abi-aa
- x86-64とARM64の可変長引数関数の呼び出し規約 - Qiita
- 2x-3x Performance Improvements for Debug Builds | C++ Team Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「x86の引数はpushでズルズルとスタック確保していくけど、x64は呼び元関数のプロローグで事前に引数分のスタックは確保済み。 引数セットはレジスタかmovなので、実装次第で、引数評価順はどちらでも作りやすいそう。」 / Twitter
- ロボ太さんはTwitterを使っています 「うげ、インクリメント演算子関係なく、純粋に引数の評価順序が処理系に依存するのか。 https://t.co/jhvIAT7eRI」 / Twitter
- てらモス♋️さんはTwitterを使っています: 「そしてCのメモリモデルとCPUのメモリモデルを対応させているのがABI(´・ω・`)?」 / Twitter
- yohさんはTwitterを使っています: 「@termoshtt addressingとかalignmentとかmemory layoutに関する領域であればABIの範疇だと思いまする」 / Twitter
- 64bitのPEにおけるコールスタック構築方法の解説 - FFRIエンジニアブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Windowsでは「すべての関数はXMM7レジスタの値を保存せねばならない」というABIが存在する。この規約を破る関数が大量の呼び出し中のどこかに存在すると、その後の関数すべてが誤動作する危険性がある。Chromeでこれが原因の謎クラッシュが発生中。レジスタの値は保存すべし。 https://t.co/PJh96mADhw」 / Twitter
- Please Restore Our Registers When You’re Done With Them | Random ASCII – tech blog of Bruce Dawson
MS
- 定義済みマクロ
- WINVER および _WIN32_WINNT の変更
- /DISASM
- /HEADERS
- /SECTION (DUMPBIN)
- Microsoft Macro Assembler Reference
- MASM for x64 (ml64.exe)
- ML and ML64 Command-Line Reference
- PROC
- .ENDPROLOG
- SEGMENT
- COMM
- EXTERN (MASM)
- INCLUDELIB (MASM)
- INCLUDE (MASM)
- PUBLIC (MASM)
- Directives Reference
- .MODEL
- Symbols Reference
- ML Error Messages
- Operators Reference
- MASM Numbers and Operators - Windows 10 hardware dev
- アセンブリ言語の式
- operator IMAGEREL
x64
その他
- X86 Opcode and Instruction Reference
- Intel XED
- SSSE3: fast popcount
- WojciechMula/sse-popcount: SIMD (SSE) population count --- http://0x80.pl/articles/sse-popcount.html
- Expression templateとfmaについて - in neuro
- maveの中身について - in neuro
- SIMDベクトル・行列ライブラリを作った - in neuro
- 本の虫: 今でも乗除算をビット演算に展開する意義はあるんだろうか
- part03.pdf
- アセンブリ – 64ビットコールゲートの使い方 - コードログ
- Nerry さんはTwitterを使っています: 「deadbeefみたいなの、x64ではあまり適当に設定しすぎるとpage faultの前にcanonical violationに引っかかって例外のエラーコードとして取れないのしんどい」 / Twitter
- パフォーマンス – x86_64:IMULは2x SHL 2x ADDより速いですか? - コードログ
- minix86
- アセンブリ – x86で相対的な短いjmpをエンコードする方法 - コードログ
- エンコーディング – 相対JMP(x86)はアセンブラーにどのように実装されていますか? - コードログ
- x86 の汎用レジスタのルーツ - 借り初めのひみつきち
- x64で配列の添字にintを使うと遅い - in neuro
- InstLatX64さんはTwitterを使っています 「#Intel refreshed the "Data Streaming Accelerator Architecture Specification" to 1.1 with #ENQCMD/ENQCMDS of #SapphireRapids https://t.co/SDQ1mg5Tpt https://t.co/Z9jztPsq2Y」 / Twitter
- INTEL® DATA STREAMING ACCELERATOR ARCHITECTURE SPECIFICATION - 341204-intel-data-streaming-accelerator-spec.pdf
- PEXT/PDEP - Google 検索
- 中村 実さんはTwitterを使っています 「日高 徹・青山 学著『8086マシン語秘伝の書』は面白いので知らない人は一読をおすすめする。全文がEPUBやPDFで公開されいるみたいだし。 https://t.co/Dm1CpJQmzh」 / Twitter
- 8086マシン語秘伝の書 : 日高徹, 青山学 : Free Download, Borrow, and Streaming : Internet Archive
- アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
- 命令エンコード - panda's tech note
- ハードウェアに対する分岐ヒント : 竹下世界塔の計算機よもやま話
herumi
- introduction to x86-asm
- x64 Assembly Language Programming
- Intel optimization
- misc/fence.md at master · herumi/misc
- herumiさんのツイート: "mclの基礎体のx64(Xbyak)実装の多少詳しめの解説(書きかけ)。今日の社内勉強会の資料。adoxやadcxの解説ってあまり見かけない(というか命令の存在自体知らない人が多そうな印象)。 https://t.co/FCz6Zm7NMW"
- opti/field-impl.md at master · herumi/opti
- melancholic afternoon
- MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
- herumiさんのツイート: "先日のIntel MKL-DNNについてのブログを書いてるときに見つけたAVX-512用指数関数expの改良(22命令→19命令)のpull requestがmergeされた。 https://t.co/nviKW0gyrK そしてvcvtps2dq + vcvtdq2psはvrndscalepsに出来るというのを知った。これはvroundpsの拡張だったのか。 https://t.co/o2DiBVCRZZ"
- herumiさんのツイート: "xchg eax, eaxは64bit環境じゃnopじゃないよと説明したよね、と思ったけど@sksat_tty さんはその日は休んでいたのだった。 https://t.co/93Hh1WE9R6"
- melancholic afternoon
- melancholic afternoon
iSUS
- x64 アセンブリーの概要 | iSUS
- Microsoft* Windows* 10 における新しい命令セットの利用 | iSUS
- ソフトウェアは実際に新しい命令セットを使用しているのか? | iSUS
命令
- melancholic afternoon
- MULX — Unsigned Multiply Without Affecting Flags
- ADCX — Unsigned Integer Addition of Two Operands with Carry Flag
- ADOX — Unsigned Integer Addition of Two Operands with Overflow Flag
- 算術命令
- xorpd | xchg rax,rax
- X86-64 Instruction Encoding - OSDev Wiki
- AMD64の特徴と機械語コーディング (1/2):CodeZine
- assembly - Why did GCC generate mov %eax,%eax and what does it mean? - Stack Overflow
- MOV命令
- お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
- Nerry さんはTwitterを使っています: 「x64ってデフォルトオペランドサイズ32bitだけど、32bitと64bitでそれぞれ意味のある命令、強制的に64bitで実行される命令、明示的に64bitにしないと実質意味のない命令が混在してて禿げる」 / Twitter
- Nerry さんはTwitterを使っています: 「push/popやcall/ret(near)は強制64bit iretqとかは明示的に64bitにしないと禿げる奴」 / Twitter
- BitTest 命令 - 借り初めのひみつきち
- PDEP/PEXT命令 - Google 検索
- Makoto Kato ︎︎さんはTwitterを使っています 「インテルなんてsha256とかの拡張が32bitでも提供してるのはびっくりした」 / Twitter
- FadisさんはTwitterを使っています 「Arch Linuxがx86-64-v3版の提供を検討しているらしい。x86_64には多くの拡張命令が追加されてきた為、初代Athlon64に合わせてビルドしたバイナリは今日のCPUを活かす事ができない。 この為Archでは以前からx86_64ならどこでも動くv1とNehalem以上を要求するv2が提供されていた https://t.co/7GjGxZGB9W」 / Twitter
- Arch Linux Developers Discuss Idea Of Providing An x86-64-v3 Port - Phoronix
- FadisさんはTwitterを使っています 「新しいx86-64-v3ではAVX、AVX2、MOVBE、XSAVE等が使えるようになり、最低でもIntelならHaswell以上、AMDならZen以上のCPUを要求するようになる」 / Twitter
- SIMD-accelerated regular expression matching | Proceedings of the 12th International Workshop on Data Management on New Hardware
- Rust の勉強と CPUID の実践と | Coelacanth's Dream
- InstLatX64さんはTwitterを使っています 「@PerforatedBlob Thank you very much! You are right, ternlog is unnecessary here. Fix: https://t.co/dqvq82omja」 / Twitter
- Windows 11の暗号化にデータ破損の不具合。修正の適用を - PC Watch
- やねうら王のRyzen Threadripper 3990X最適化について | やねうら王 公式サイト
二分探索
- Kazuho OkuさんはTwitterを使っています 「いい紹介記事。参考にコード書く上では、分岐予測があたる場合「CMOVのほうが遅くなりがち」なことも注意必要だと思う。基本的に分岐予測が当たらない時に使うものという認識 / https://t.co/FposYiiW60」 / Twitter
- Binary search with modern processors - Speaker Deck
- Kazuho OkuさんはTwitterを使っています 「aarch32 で全命令に predicate(実行条件指定)があったのが aarch64 でなくなったのも、反映されない命令を常に実行するよりも、分岐予測を使って実行する命令数を減らすほうが有効だという現実があるからなわけで」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「演算器があまってる場合はCMOV使っても問題ないとか、そうすることでBP/BTBの消費が抑えられるとか言い出すと沼」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ところで論旨に関係ないけど、CMOV使う版は配列の要素数が2のベキ乗じゃない場合の処理をさぼってない?」 / Twitter
Intel Key Locker
- Intel Key Locker Specification - 343965-intel-key-locker-specification.pdf
OFFSET FLAT:
- x86 Disassembly/Variables - Wikibooks, open books for an open world
- It's science, but it works like magic.: Gas Problems
- ia32_chap_04.pdf
- ブートストラップローダ領域でHello, World! - Qiita
Unreal Mode
- “Unreal mode”と呼ばれているx86の状態について | KEI SAKAKI's PAGE.
- Unreal Mode - OSDev Wiki
- Unreal mode - Wikipedia
- savaさんのツイート: "めも:(i386の)アンリアルモード略史 https://t.co/aYuRbCWKxM インテルは最初、i386でも(286と同様に)プロテクト→リアルモードに戻る手段を提供しない予定だった、というのははじめて知りました…"
- A Brief History of Unreal Mode | OS/2 Museum
リアルモード
- X86アセンブラ/x86アーキテクチャ - Wikibooks
- x86_mode - OS-Wiki
- リアルモード - Wikipedia
- 8086による機械語入門 - Qiita
- リアルモードでも32bitのレジスタを使うことができる - 脱力系日記
blog
- 原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
- はじめてのにき(2010-07-06)
- x86 でリンクコール - Think Stitch - PRINCIPIA
- gccのx86インラインアセンブリに関して
- はじめてのにき(2009-03-31)
- Assembly Programming on x86-64 Linux (05)
- Assembly Programming on x86-64 Linux (02)
- 2014.seccon.jp/mailmagazine/backnumber07.txt
- 2014.seccon.jp/mailmagazine/backnumber08.txt
- Intel Ice Lakeのプロセッサは整数除算命令がアツい - chroot("/home/hibari")
- Ice Lakeプロセッサは整数除算がアツい 数値計算編 - chroot("/home/hibari")
- 日記 (2019 年 7 月中旬)
- 日記 (2019 年 7 月中旬)
- 或るプログラマの一生 » Zen は PEXT/PDEP 命令が遅い
- A fast perfect shuffle for n≤64
スライド
- SSE4.2の文字列処理命令の紹介
- あなたの知らないnopたち@ラボユース合宿
- Shinjuku.rs#15 Rustでつくるx86アセンブラ - Speaker Deck
Qiita
- x86-64プロセッサでGNU assemblerを使う - Qiita
- ハードウェア乱数 RDRAND命令の使い方 - Qiita
- 初学者向け x86/MacOSX 64bit アセンブリ - Qiita
- FMA (fused multiply-add) の話 - Qiita
- NOP WORD PTR? - Qiita
Twitter
16 ビット long モード
- Nerry さんはTwitterを使っています: 「今まで16bitロングモードがうまく動かない理由がやっとわかった:;(∩´﹏`∩);: https://t.co/DkozHhnKZj」 / Twitter
- Nerry さんはTwitterを使っています: 「実際には16bitロングモード自体は以前から動いていたけど、ロングモードに遷移直後のfar jump命令が間違っててそのままGPF→triple faultみたいな」 / Twitter
- Nerry さんはTwitterを使っています: 「これによって今までは起動時に RM16→PM16→PM32→LM32(CM32)→LM64 という遷移が必要だったのが、RM16→PM16→LM16(CM16)→LM64 に直接遷移できるようになって中間の32bitセグメントがいらなくなったヽ(•̀ω•́ )ゝ✧」 / Twitter
- Nerry さんはTwitterを使っています: 「x86の命令エンコーディングの複雑さを改めて実感した。 x86命令って16bitと32bitの単純な2種類あるわけじゃなくて、デフォルトオペランドサイズと66 67の組み合わせで(命令によっては)4種類の命令が混在している。」 / Twitter
- Nerry さんはTwitterを使っています: 「困ったことに4種類の命令全てにちゃんと名前がついてるわけじゃなくて、アセンブラや逆アセンブラ上では表現できない命令も存在している」 / Twitter
- Nerry さんはTwitterを使っています: 「スレッドディスパッチャ完成する前にSMPのAP起動コード動いた🤔」 / Twitter
整数乗算
- R. ShioyaさんはTwitterを使っています 「一時期はそうだったけど最近のインテルだと整数乗算がレイテンシ3サイクルで,SIMD の FP だと 4 なので整数のが速いかも.整数乗算がボトルネックになるのは構造体の配列アクセスとか,固定値での除算からの変換,ハッシュ表のハッシュ値の計算とか暗黙な場合が多いかも https://t.co/yCoJ6a5rdR」 / Twitter
- instruction_tables.pdf
- Kazuho OkuさんはTwitterを使っています 「除算はともかく、乗算については(特にSIMDの)浮動小数でやった方が整数でやるよりも速いCPUの方が多いんじゃないかなぁ。結局、実用途でボトルネックになる乗算は大抵浮動小数なので」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこの間、塩谷先生に教えてもらった資料に、こんな記述あったっけ。 ---- 「Alphaは整数除算命令を欠いており…驚くべき結果として、ほとんどの実装で浮動小数点除算が整数除算よりも大幅に高速になりました」 https://t.co/sjOdraolxv」 / Twitter
- Waterman_berkeley_0028E_15908.pdf
- FadisさんはTwitterを使っています 「乗算が加算より遅いかはプロセッサによる。シフトより乗算のほうが有利なアーキテクチャさえ存在する。コンパイラはプロセッサが命令を処理するのに必要なサイクルに基づいて等価な命令への置き換えを行うので多くの場合高級言語における計算式はその意味通りに書いて正しいmarchを指定したほうが良い」 / Twitter
REX
- uchanさんはTwitterを使っています 「MOVZX r64, r/m8は何のために存在するのか分からない - uchan note https://t.co/kxARiS5J4G」 / Twitter
- MOVZX r64, r/m8は何のために存在するのか分からない - uchan note
- yohさんはTwitterを使っています 「@uchan_nos へーときになって検索だけしてみたのですが https://t.co/mG50BAKT2D が答えになっています?」 / Twitter
- assembly - What's the point of instructions with only the REX prefix in 64bit mode? - Stack Overflow
- yohさんはTwitterを使っています 「@uchan_nos 良く読み直したら REX-prefix 有無じゃなくて EAX / RAX の違いに関してなんですね。失礼しました(r64直指定とr32指定+上位32bit自動Zero化で何か違うかという点)」 / Twitter
- yohさんはTwitterを使っています 「@uchan_nos FYI: 趣旨がよく似た https://t.co/1tmIUpiP0y "Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86" ってのがありました。」 / Twitter
- assembly - Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86 - Stack Overflow
- Yasuo ItabashiさんはTwitterを使っています 「@uchan_nos 元記事の通り「規則性を満たすために項目だけは用意されている」のだと思います。命令のデコーダを作る観点からするとプレフィックスを付けた時の意味に対する(上位32bitがクリアされる)動作が(結果的に重複したものだとしても)妥当であるのに、わざわざr64のものを弾くのは回路が無駄に複雑になります」 / Twitter
- Keigo NitadoriさんはTwitterを使っています 「raxやripレジスタのr、REX prefixとは何か調べていたら "Register EXtension"らしい。ラテン語の王様ではないのか。 » assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow https://t.co/GvTykx3BV6」 / Twitter
- assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow
- Keigo NitadoriさんはTwitterを使っています 「Accumulator, Base, Counter, Dataでa b c dの8-bitレジスタだったけど、16-bitになったときah, alみたいに上下触れてaxがその両方。 ソースは不明だが32-bitに拡張されたeaxのeもxもextend由来という記事も。 https://t.co/WNmPXLtucj」 / Twitter
- レジスタ (コンピュータ) - Wikipedia
histric-1
- るくすさんのツイート: "まあrex prefixの有無がdec %eaxに解釈されるかされないかで判定するというのはあまりにも有名なテクだけど、test $0xF9F9F9F9,%eaxでsetcondに解釈されるというのは、なるほどという感じ"
- Urabe, Shyouheiさんのツイート: "x86というのは同じことをするのに様々な書き方ができるISAなわけだけれども、同じことをするのであれば短く書いたほうが速い、という話。 ようは最近のx86ではfetchの帯域が律速している。 https://t.co/a9AVqgJWTN"
- Micro-op fusion in x86. | Denis Bakhvalov | C++ enthusiast.
- はぇ~☆さんのツイート: "いろいろ制約があって、コード次第で状況が毎回違うんですよね。… "
- まさみさんは語りたいさんのツイート: "ああ、REXが。。。… "
- Fadisさんのツイート: "x86_64のpop %r15の命令の途中にジャンプすると%rdiがpopされる。pop %rdiを必死で探し回ったけど見つけられなかったROPerは覚えておくと時々役に立つ"
- OS自作 uchan_nosさんのツイート: "x86-64アーキテクチャのretfとlretqとREX.Wプレフィクスの関係を学んだ."
- Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
- まさみさんは語りたいさんのツイート: "Modifier + Register/Memory indicator = ModRM"
- 解答略さんのツイート: "x86の機械語をざっと見渡すには、このpdfが世界で一番整理されてると思う。https://t.co/00G7QFh8sN これはx86エミュレータ作るとき大変世話になった。人力objdumpするなら、とりあえずこの表を小一時間眺めるのが良さそう。nopはxchg eax, eaxとか色々わかる。これのx64版、誰か作ってくれないかな"
- Wayback Machine
- 解答略さんのツイート: "前ツイートのpdfは、このサイト https://t.co/9Zw3y6hZIG のpdfがリンク切れなのでwebarchiveから拾ってきたものです。ModRM周りを理解するために、僕はニーモニックをnasmでアセンブルして表と見比べてた。強者はIntelの仕様書眺めりゃ理解できるのだろう。あとx86エミュレータ本は実装の参考になった"
- ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
- Nerry@さんのツイート: "x64ってデフォルトサイズが32bitになってて ・暗黙的に64bitで解釈される命令 ・32bitと64bitでそれぞれ意味のある命令 ・実質的に64bit専用なのに64bitの明示が必要な命令 が混在してるんだよね"
- Kazuho Okuさんのツイート: "VMとかステートマシン書いてると、分岐先予測があたるようにコールサイト(分岐元)を複数に分けるのは常套手段ですよね?"
- Kazuho Okuさんのツイート: "詳しくはこのへん https://t.co/owIgORoNEy"
- assembly - X86 prefetching optimizations: "computed goto" threaded code - Stack Overflow
- Kazuho Okuさんのツイート: "絶対アドレスやip相対の無条件分岐命令が、それ以外の分岐命令と同様にbtbを消費するのかは気になってる(実務上はそこまでシビアなコードは書かないから気になるどまりなんだけど)。cpu的にはそこ節約することは可能だと思う一方、そこがんばるかわりにbtbのエントリ増やしてそうでもあり"
- Kazuho Okuさんのツイート: "僕はデータキャッシュやTLBよりも圧倒的に分岐予測を気にしてコード書いてる。キャッシュはb-wayだから一個あてなくてもペナルティは発生しにくいんだけど、あたりにくい条件分岐は一個ホットパスにおいただけで確実にペナルティ食う… "
- 成瀬さんのツイート: "CPUの気持ちって分岐予測とキャッシュかなぁって感じだけど、パフォーマンスカウンターを読めるようにならないとだめかなぁってところでとまっている"
- 島鉄雄さんのツイート: "https://t.co/cpb2LfGJV6 Zen 2が最強の分岐予測を実装してIPCが大幅に向上したようだけど、やっぱり条件分岐自体がコードを遅くする原因だから、なるべくcmovになるようにコーディングすべきなんだよね。 試したら2つ目の書き方がcmovになった。 (gcc -Ofast でコンパイルした)… https://t.co/PJDhXk3Hk8"
- Nerry さんはTwitterを使っています: 「滅多に使われないDFのために要所要所にCLD命令を配置しなければならないx86のstring命令の設計ミス」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「far retは低い権限レベルに戻るときと権限レベルが変わらないときで,SS/RSPをポップするかどうかが切り替わるの知らなくて数十分ハマった」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「関数コールが即値アドレス,変数読み書きがRIP相対になるのはなぜという話。callは即値としてRIPを基準にしたオフセットを取るが,movはRIP相対とするためには[rip+...]のような形式のアドレッシングが必要だから,逆アセンブルしてみるとcallは即値コール,movはRIP相対に見えるだけでは?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えー aes128gcm、パケットサイズが 1KB とかになると i7-4870HQ (4th gen Core i7) と Atom x5-Z8350 (Cherry Trail) でスループットが10倍違うのマジですか。。。通常のワークロードだと4倍くらいなのでビビってる」 / Twitter
- mattnさんはTwitterを使っています 「Windows で動く x86/x64 アセンブリの REPL。 / “GitHub - zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows” https://t.co/UnLQMtDh1V」 / Twitter
- zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows
- Miura HidekiさんはTwitterを使っています 「意味がわからなかったけど、PC8001のマシン語モニターの1行アセンブラみたいなものか」 / Twitter
- ロボ太さんはTwitterを使っています 「SIMD化をすると早くなったり遅くなったりするぞい。」 / Twitter
- InstLatX64さんはTwitterを使っています 「@mjcharney refreshed #Intel XED. These #AlderLake and #SapphireRapids datafiles detail the #GoldenCove and #Gracemont ISA capabilities https://t.co/nyQ0LEZKRv https://t.co/5vPFG6JTiW https://t.co/fJgfOCa74v」 / Twitter
- DQNEOさんはTwitterを使っています 「* ジャンプ先未定の可変長命令を、未決定リストに登録 * 未決定リストのメンバーについて、相対距離を特定できるものは卒業扱いにする * 相対距離が未定でもレンジ(min,max)がわかれば命令長は決定可能 * 「命令長が決まった」と「ジャンプ先が決まった」を別の状態として扱う」 / Twitter
- DQNEOさんはTwitterを使っています 「以上の処理を、メンバーが全員卒業できるまで無限ループ という自作アルゴリズムで動かしてみたら見事に全ジャンプ命令を決定できた。」 / Twitter
- herumiさんはTwitterを使っています 「Xbyakにfar jmp/callのサポートPRが来て、そんなマニアックな機能要らね?と返事したら、AArch64上でx86/x64を動かすエミュレータで使うらしい。 https://t.co/ans2GhKSWw それならとサポートすることにしたのだけどasm表記がアセンブラによって違って調べるのに時間がかかった。」 / Twitter
- FEX-Emu/FEX: A fast usermode x86 and x86-64 emulator for Arm64
- herumiさんはTwitterを使っています 「nasmのjmp far[rax]は yasmでjmp far qword[rax]で gasならrex64 ljmp *(%rax) だって。 yasmのjmp far[rax]はdwordの意味でデフォルト値がnasmと異なってる。 Xbyakではサイズを明示するようjmp(qword[rax], T_FAR)にした。」 / Twitter
- Intel® Intrinsics Guide
- asmjit/asmjit: Machine code generation for C++
- intelxed/xed: x86 encoder decoder
- Kazuho OkuさんはTwitterを使っています: 「Intel のCPU、任意長のmemcpyを実行してくれる専用命令があって便利!すごい!!」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ERMSB(カーネル内などAVXレジスタが使えない環境で使われるコピー命令)のベンチマークないかなーと思って探したら、herumiさんのところにあった。助かる / https://t.co/Zf28Dj3zOn」 / Twitter
- melancholic afternoon
- Kazuho OkuさんはTwitterを使っています: 「データがL1にあるのか、L2なのか、L3なのか、メインメモリなのかによって、memcpyの bytes/cycle がどのように変わるのか、僕は肌感ないので、まだまだ」 / Twitter
MASM
- MASM32によるアセンブラ入門:パート1 - インターネットコム
- Win32 MASM プログラミング入門
- VC++のデバッグモードとリリースモードの違いについて。 - VC++を使って... - Yahoo!知恵袋
- visual studio 2013で「最適化コンパイルのオプションを切る」ってどうすれば... - Yahoo!知恵袋
- Visual C++ 2010 express のインラインアセンブラのOFFSET演算子に... - Yahoo!知恵袋
- CX's Hello, World! » Hello, MASM World!
- MASM のデータ型
- MASM のデータ型
- MASM の 実行時比較演算子,TYPE演算子, 他
- Microsoft Macro Assembler のメモ セグメント
- Entis Laboratory
- Microsoft Macro Assembler のメモ モデル
- MASM 6.1 Documentation
- MASMReference.pdf
MASM 以外
Yasm
- The Yasm Modular Assembler Project
- Libyasm · yasm/yasm Wiki
- yasm/yasm: Yasm Assembler mainline development tree
- Yasm - Wikipedia
- yasm/COPYING at master · yasm/yasm
- Amd64 · yasm/yasm Wiki
- libyasm: File List
- yasm-doc/manual.txt at master · yasm/yasm-doc
- Chapter 16. win64: PE32+ (Microsoft Win64) Object Files
- Win64object · yasm/yasm Wiki
- Programmerreferences · yasm/yasm Wiki
- Codeviewdebug · yasm/yasm Wiki
- Dwarfdebug · yasm/yasm Wiki
- Faq · yasm/yasm Wiki
- Visualstudio2005 · yasm/yasm Wiki
- yasm-1.3.0
- yasm-1.3.0
- Yasmのコンパイル&インストール お気に入りの動画を携帯で見よう
- 猫科研究所 - 今更MinGW 2009.06(5) nasm,yasm
- 1.7. Supported Debugging Formats
- Yasm User Manual
- Yasm 1.2.0 - The Yasm Modular Assembler Project
- x86 - Debugging assembly code created with yasm - Stack Overflow
- c++ - How can I use gdb to debug code assembled using yasm? - Stack Overflow
- Ubuntu Manpage: yasm - The Yasm Modular Assembler
NASM
- Netwide Assembler - Wikipedia
- Netwide Assembler - Wikipedia
- NASM
- Public Git Hosting - nasm.git/summary
- NASM
- NASM - The Netwide Assembler
- NASMとMASMの違い - その他(プログラミング・開発) 解決済み| 【OKWAVE】
- https://web.archive.org/web/20100719062549/http://www.yuasa.kuis.kyoto-u.ac.jp:80/~nobu/study/nasm/chap2.html
- NASM - The Netwide Assembler
- nasmのバグ? - 借り初めのひみつきち
- WindowsでNASMを使ってアセンブラを動かしてみる - Qiita
- アセンブラ環境 NASMとALINK - Namareba食べたい
- アセンブリでWin32APIを呼んでみよう! | Developers.IO
- 南関東開発機構 : アセンブリ言語でWindowsプログラミング
- アセンブリ言語入門 | nasmの使い方-4 | サラリーマンがハッカーを真剣に目指す
- NASM - The Netwide Assembler
GAS
- Linux のアセンブラー: GAS と NASM を比較する
- KMC Staff Blog:gas のインテル構文
- GNU アセンブラ - OS Project Wiki
- GASとNASMとNASKについて - Project_Rena_( unofficial plan : shoko ) - Seesaa Wiki(ウィキ)
- GAS と NASM ではどちらが使い易いのでしょう? - 「はじめて読む8086... - Yahoo!知恵袋
- GAS_基本書式 CapmNetwork
- Using as: Pseudo Ops
- Using as: i386-Dependent
- Using as - Assembler Directives
- 日記 (2017 年 7 月中旬)
- 日記 (2017 年 7 月中旬)
- uchanさんはTwitterを使っています 「https://t.co/xIXWlggjpu これが答えっぽい。GNU asはqword==8として解釈するから push qword [rax]は push 8 [rax] に解釈されるらしい。 おそらくAT&T記法によるところのpush 8(%rax)の意味になっていると思われる。これなら筋が通る。」 / Twitter
- assembly - Gnu assembler gives unexpected memory operand - Stack Overflow
Xbyak
- XBYAK
- herumi/xbyak: a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header
- xbyak/readme.txt at master · herumi/xbyak
- Xbyakで始めるx86(IA-32)入門 (mitsunari@cybozu labs)
- 暗号の世界最速実装を目指す ── 光成滋生 - Cybozu Inside Out | サイボウズエンジニアのブログ
- S.F. Blog:Xbyakのしくみ
- Xbyakで簡単な関数を実行時に生成する - Kludge Factory
- C++/Xbyak - discypus
- Xbyakの紹介とその周辺
- melancholic afternoon
- Function Calling Convention (x86-64) - Qiita
- assembly - How to generate plain binaries like nasm -f bin with the GNU GAS assembler? - Stack Overflow
Wikibooks
- X86アセンブラ/x86アセンブラ - Wikibooks
- X86アセンブラ/GASでの文法 - Wikibooks
- X86アセンブラ/MASMでの文法 - Wikibooks
- X86アセンブラ - Wikibooks
通信用語の基礎知識
- オペコード (IA-32) ‐ 通信用語の基礎知識
- オペランド ‐ 通信用語の基礎知識
- ModR/M ‐ 通信用語の基礎知識
- SIBバイト ‐ 通信用語の基礎知識
- 命令プリフィックス ‐ 通信用語の基礎知識
- REXプリフィックス ‐ 通信用語の基礎知識
- REX.W ‐ 通信用語の基礎知識
- プリフィックス ‐ 通信用語の基礎知識
- XOPプリフィックス ‐ 通信用語の基礎知識
- VEXプリフィックス ‐ 通信用語の基礎知識
- EVEXプリフィックス ‐ 通信用語の基礎知識
- Intel AVX ‐ 通信用語の基礎知識
- Intel AVX2 ‐ 通信用語の基礎知識
- __m256 ‐ 通信用語の基礎知識
- Intel AVX-512 ‐ 通信用語の基礎知識
- __m512 ‐ 通信用語の基礎知識
- FMA3 ‐ 通信用語の基礎知識
- FMA4 ‐ 通信用語の基礎知識
- HLE ‐ 通信用語の基礎知識
- RTM ‐ 通信用語の基礎知識
- AMD64 ‐ 通信用語の基礎知識
- cpuid (x86) ‐ 通信用語の基礎知識
Wikipedia
- x86 calling conventions - Wikipedia
- 呼出規約 - Wikipedia
- Calling convention - Wikipedia
- Application Binary Interface - Wikipedia
- Application binary interface - Wikipedia
- コールスタック - Wikipedia
- Call stack - Wikipedia
- 符号拡張 - Wikipedia
- 3DNow! - Wikipedia
- SIMD - Wikipedia
- コンピュータアーキテクチャの話(314) Teslaアーキテクチャが採用した「SIMT方式」 | TECH+
- 単一命令列・複数データ(SIMD: シムディー)の並列 - Qiita
- x86 - Wikipedia
- x64 - Wikipedia
- プロテクトモード - Wikipedia
- 積和演算 - Wikipedia
- 80x86 の命令の自己書き換え (#1559838) | もうやらなくていい昔のコーディングテクニックあれこれ | スラド
- 自己書き換えコード - Wikipedia
- Self-modifying code - Wikipedia
Qiita
- アセンブラに手を出してみる - Qiita
- アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
- C言語の勉強がてら、CASL II処理システムを実装した話 - Qiita
- EVEX - Qiita
- Pelemay 0.0.10 で生成されるアセンブリコード - Qiita
- 2で割ることと3で割ること - Qiita
- IA32(x86)汎用命令対応のアセンブラ実装方法(1) - Qiita
- IA32(x86)汎用命令対応のアセンブラ実装方法(2) - Qiita
Twitter
その他
分岐
- uint256_tさんはTwitterを使っています 「フレーム内での位置を決定する前に命令を選択しているから, s0-10000みたいな位置に変数が置かれると, sd a5, -10000(s0) というinvalidなアセンブリが生成されてしまう.」 / Twitter
- uint256_tさんはTwitterを使っています 「先にとても雑にフレームの位置を計算すればいいのか??」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t これは分岐命令とかも同じじゃないですか? こういう問題は、命令を生成した後に自分が生成した命令をスキャンし直して、大きすぎるオフセットを持ってる命令を複数の命令列で置き換えるという処理を入れるしかないような。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t しかも分岐命令だと収束するまで繰り返し再スキャンしないといけないですよね。1つの命令を複数命令列に置き換えることで、既存の命令のジャンプ先へのオフセットが若干大きくなることがありえるので。」 / Twitter
- msyksphinz_devさんはTwitterを使っています 「LLVMだとeliminateFrameIndex()がその修正を担いますかね。 MachineInstrの状態でオフセットを計算し、即値が入り切らなければ、そこでさらに1命令突っ込みます。」 / Twitter
AT&T 記法
- Tsukasa #01 [要出典]さんのツイート: "AT&T 記法、オペランドの向きが一般的なアセンブリ言語と逆なことまでは許せる。が、lea 命令をあんな形式にしたのはどう頑張っても擁護できない。"
- Tsukasa #01 [要出典]さんのツイート: "lea 命令だけじゃないな。レジスタ 2 個以上がかかわる全てのアドレッシング形式 (特に Intel シンタックスでいう [4*ecx+esi+8] のような表記は AT&T シンタックスだと……)。"
- Tsukasa #01 [要出典]さんのツイート: "[4*ecx+esi+8] → 8(%esi, %ecx, 4) …………。"
- Tsukasa #01 [要出典]さんのツイート: "これは重要なことだと思うけど、アセンブリ言語は機械語そのものじゃない。"
- rnurachueさんのツイート: "disasmすると落ちる情報もあるんやで(asmの表現力によるかもしれないが)"
- rnurachueさんのツイート: "アーキによるかもしれんな"
- Tsukasa #01 [要出典]さんのツイート: "まぁアーキ次第ではあるけど言いたいことはよく分かる。ジャンプ幅を意図的に決められる nasm のような処理系でも、8B 50 00 と 8B 90 00 00 00 00 は区別する方法が無いし、disasm 結果のアセンブリ部分を使うとバイナリが変わる。"
- Tsukasa #01 [要出典]さんのツイート: "あるいは x86 における 87 c0 と 90。このときは ndiasm はバイナリの違いをちゃんと復元するが、nasm が気を利かせて前者を 90 にコンパイルし直す。"
- herumiさんのツイート: "よく使われる命令はよいですがfsubrp, fsubpのAT&T記法の扱いはバグだと思いました(昔めちゃくちゃはまりました)。後、例えばvcvtpd2dq xmm0, yword [eax+32]といった新しい命令がどうなるかいちいち調べないといけないのも二度手間です。Intelが本家なのだからそれに従うのがよいと思います。… https://t.co/bFmd2lZY9j"
- herumiさんのツイート: "補足するとIntelでのfsubrpはfsubrp st1,stの略(rはreverseでバイトコードはde e1)で意味はstからst1を引いて結果をst1に格納してレジスタポップだけどAT&Tでは何故かrがないfsubp %st, %st(1)になる。逆にfsubpはfsubrpになる。引数の順序だけでなく命令も入れ代わる。 https://t.co/hPLHkN7O1o"
インラインアセンブリ
- Hideyuki Tanakaさんのツイート: "オッ(´・_・`) / “[Pre-RFC]: Inline assembly - language design - Rust Internals” https://t.co/GXv8c1KgHx"
- Hideyuki Tanakaさんのツイート: "rustのインラインアセンブリのstable化にあたって、gcc互換の実装じゃなくて、もうちょっとわかりやすくするような文法定義する動きがあるのか。現状の案では、文字列ベースで似たような感じではあるみたいだけど、どうせやるならVCとかのようなEDSLタイプがいいんすけどね~"
- Hideyuki Tanakaさんのツイート: "ただアレでやるには、ただバックエンドに文字列送るだけじゃなくて、引数とかのどれが書き換えられるとかそういうのの知識が必要になるから、コンパイラレベルでISAの知識が必要になるよな~まあそのほうが使い勝手はいいし、今時それぐらいはやってもいい気はするが。"
- Hideyuki Tanakaさんのツイート: "D言語もVCみたいなEDSL形式のインラインアセンブリ持ってるんすねえ。あれ新しいプロセッサに対応するときD言語のバックエンドにそれ用のコードを追加しなきゃいけないんすかね~(´・_・`)"
- Hideyuki Tanakaさんのツイート: "@ishitatsuyuki ふむふむやっぱあれはとりあえず必要だから入れてたけど理想の形ではなかったでしたか"
- 品川 高廣さんのツイート: "インラインアセンブラも -masm=intel を指定すれば Intel記法に出来ますよね。あまり見たことないですが。… "
- 技術書典4 け-51 x86-64-128さんのツイート: "Clangだと、インラインアセンブラの先頭行に.intel_syntax noprefixと書けば良いらしい。-masm=intelは不要。 https://t.co/8wRykdWsk3… "
- 品川 高廣さんのツイート: "gcc で Intel 記法を使うときはコマンドラインオプションで -masm=intel を付ける。clang で Intel 記法を使うときはインラインアセンブラの先頭で ".intel_syntax noprefix\n" と書く。両方やっておけば、gcc でも clang でもコンパイルできる。"
mov 命令
- 解答略さんのツイート: "昨晩からx86-80386のCPUをFPGAで自作してるんだけど、ようやくMOV命令が動いた。あと半日あればかなりの量の命令が実装できる気がする。FPGA慣れてきた。#低レイヤ https://t.co/L7oZSvx4aF"
- Fadisさんのツイート: "x86のmov命令は1命令だけでチューリング完全の要件を満たせる事が知られている( https://t.co/01OSrCDOTX )し、mov命令が動くCPUは完全なCPUと言って良いのでは"
- Fadisさんのツイート: "そして驚くべき事に、実際にmovしか吐かないC言語コンパイラ(フロントエンドはLCC)を作ってしまった猛者がいるらしい / M/o/Vfuscator https://t.co/DyXoBYQ4T7"
- Mov is turing-complete
- xoreaxeaxeax/movfuscator: The single instruction C compiler
即値埋め込み
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「OpeLaをx86-64からAArch64に移植していて分かったのは、即値を使う命令でAArch64だと余分にレジスタが必要になり、余分なpush/popが必要になって困ることがしばしばあること。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@uchan_nos 複数回演算とかコード上のをPC相対とか色々方法はあるけど。よく使う数値は命令に埋め込めるはず。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@shinji_kono 「コード上のをPC相対」っていうのは、コードの他の部分に埋め込まれた即値をldrで取ってくるってことですか?なるほど……」 / Twitter
最適化
- Katsuhiro SuzukiさんはTwitterを使っています: 「10%早くなるんだスゴイな!って思ってアセンブラ見てみると、 GCC「どっちもおなじや。3番目もxorにしといたわ」 Clang「これ条件分岐や。3番目はif文にしといたわ」 となってて悲しみ。 https://t.co/u3DqHYlWAo https://t.co/CluTMQn834」 / Twitter
- Bit Twiddling Hacks
- Miura HidekiさんはTwitterを使っています: 「clangは条件分岐が論理演算数個よりコストが低いと考えているのだな。参考になるなー」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そのうちCPUが実行時にインライン展開とかやりそうだな」 / Twitter
- GNUE(鵺) 🍁さんはTwitterを使っています: 「@miura1729 トランスメタのコードモーフィング?w」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@gnue 動的に内部IRに変換する際にプロファイリングしてcall/returnを無くすとか出来ないかなと思いました。特に最近はセキュリティ関係でスタックのreturn addressをいじられないようにする傾向があるから」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 そうなんですか?どのあたりに書いてあります?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 前のリツイートのコンパイラ結果から推測しました」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 x86-64で試してみたらgccはbranchless、clangはcmoveを使ったコードになりました。(cmoveはconditional branchではない、という理解でよいのだろうか)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにx86-64だとcmoveが出てくると元ツイートでもリプライにありました。cmoveはパイプラインが乱れないから速そうな気がします。32bitだとなぜcmoveじゃなくてジャンプなのか謎ですが」 / Twitter
users
@7shi
- 七誌さんのツイート: "VAXのアセンブラを作り始めた。まずはオペランドのパーサから。ランダムなバイト配列を逆アセンブルして、それをアセンブルして元に戻るかで確認。乱数ではなく定理証明するべきだと言われそうだけど…"
- 七誌さんのツイート: "機械語を調べるために1行アセンブルはよくやっていたのだけど、REPLがあれば効率化できるという発想はなかった。だからrappelを見て驚いた。完全にインスパイアされた… https://t.co/EbLbs6ap2d"
- 七誌さんのツイート: "総当たりで逆アセンブラを作ろうとしたとき、先に分析を済ませてからコードを書こうとしたのは、あまり良くなかったと気付いた。分析と並行してコードを書いて、うまくいった部分は分析対象から除外していかないと、複雑なものではなかなか収拾が付かない。"
- 七誌さんはTwitterを使っています: 「RETRO UNIX 8086(UNIX V1の8086移植)でもMulticsと同じようなlist形式を見付けました。私は知らなかったのですが、どうやらこういう形式があるようですね。 https://t.co/i2qycHaDts」 / Twitter
- https://www.singlix.com/runix/runix8086/unix.lst
- SODA NoriyukiさんはTwitterを使っています: 「@7shi https://t.co/rBSLFpGfPi の Example code とか https://t.co/75vJ7L8XQd みたいなアセンブリ言語と機械語を併置する奴ですか? アセンブリ言語でプログラミングし、機械語を見ながらデバッグする時代には一般的でした。」 / Twitter
- Zilog Z80 - Wikipedia
- Assembly language - Wikipedia
- ぬん。さんはTwitterを使っています: 「@7shi @n_soda linuxでも、 objdump --disassemble <binary> するとでてくる形式ですかね。(コメントはないですが)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@7shi @amasawa_seiji マニュアル見てみたら GNU as でも -al オプションで出すことができるみたいですね。」 / Twitter
@kazuho
- Kazuho Okuさんのツイート: "@nalsh @shyouhei @n_soda オーバーフローは例外的なケースだから、cmovより分岐予測あてるほうが良いのでは?"
- Kazuho Okuさんのツイート: "mov eax,eax はx86-64だとnopじゃなくてraxへのゼロ拡張なのか #spkai"
- Kazuho Okuさんのツイート: "@kazuho で、ymmいじられたかどうか覚えてるのは、コンテクストスイッチの際に退避すべき量を最小限にするためじゃないのかな #spkai"
- Kazuho Okuさんのツイート: "任意順序でのビット列並び替えが20命令前後で書けるのか / “Bit manipulations using BMI2 — bitbashing” https://t.co/aAQRwNaQS0"
- Bit manipulations using BMI2 — bitbashing
- Kazuho Okuさんのツイート: "direct-threaded codeの効果はNehalem世代で10.1%だったのがHaswellで2.8%に減少 / “Branch Prediction and the Performance of Interprete…” https://t.co/R9loLePdjF"
@kariya_mitsuru
- ngtkさんのツイート: "@uchan_nos 64bitモードで32bit命令を実行すると64bitレジスタの上位32bitは0クリアされるとかそういう話ですか?"
- OS作れないマン 技術書典3 あ11企さんのツイート: "REXプレフィックス付けなくても上位32ビットクリアされて嬉しいなーということだな。汚い。"
- disassembly - xor eax, eax in x64 - Reverse Engineering Stack Exchange
- 置き引きにあったマヌケな鳥頭さんのツイート: "@uchan_nos s/push cs/push es/ で、push es の前にオペランドサイズプレフィックス(0x66)付けたら16ビットでプッシュ出来たりしません?"
- 置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos あ~、push es は 8086/88 の時からあります"
- 置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos pop cs はテロ行為っぽいですからね…"
histric
histric-1
- ひらナツさん@散文家さんのツイート: "AVXとSSEの命令がミックスされて実行されると、SSE命令の過去互換性を保つために、SSE命令が遅くなる(エミュレートされた状態になる?)AVXのレジスタ上位をクリアする命令をAVX実行後に実行してやると、もとのSSE命令に戻る。 #spkai"
- インターネットの闇さんのツイート: "@func_hs load effective addressですね~~~"
- InstLatX64さんのツイート: "A Venn-diagram to understand the 12 levels of #AVX512 in #Intel processors https://t.co/5cV9nTDTRb"
- Fadisさんのツイート: "128bit整数があると64bitのアドレスにタグやカウンタをくっ付けた物をatomic演算で書き込む(今日の主要な64bitプロセッサは128bit atomic演算をサポートしている)のを高級言語で書けるんだ。これができるとロックフリーデータ構造におけるABA問題をあまり頭を使わずに解決できる"
- ロボ太さんのツイート: "アセンブリの話になると必ず「アセンブラ言語は誤りで、アセンブリ言語が正しい」という人が湧いて、それはいいんだけど、とりあえずIBMは「Assembler language」と呼んでることと、ARMが「Unified Assembler Language (UAL)」を規定していることは知ってても良いかもしれない。"
- ロボ太さんのツイート: "まぁARMは「アセンブリ言語(assembly language)」派だけれども。なのになぜ「UAL」が「Unified Assembly Language」ではなく「Unified Assembler Language」の略なのかは知らない。"
- uint256_tさんはTwitterを使っています: 「関数呼び出し時に保存されないといけない(仮想)レジスタがどれかを判断するには, 呼び出しの周りで個々レジスタの生存期間を参照して判断すればいいかと思っていたけど, そもそも呼び出しがレジスタの値を破棄する物と扱えば, レジスタ退避のための処理と統合できるという(当たり前の)事実に気づいた.」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t コードの実行時間や利用可能な並列性をモデル化したアセンブラがあると良いなと思っています。」 / Twitter
- uint256_tさんはTwitterを使っています 「@zacky1972 モデル化というのはどういう意味でしょうか」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t たとえば命令スケジューリングをするときの指針になるような機能が欲しいと思っていて,いろいろな命令の並びに対して実行時間をシミュレーションできるようなモデルがあると良いんじゃないかと思いました。」 / Twitter
- uint256_tさんはTwitterを使っています 「@zacky1972 可能な命令の並び方に対して一つずつベンチマークできると便利かもしれませんね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MASM/GAS/Apple AS/ARM ASMのフォーマットの違いで痛い目にあっている自分としては、特殊なCPU命令ごときでアセンブラを使うのは得策ではないという知見。できるかぎりintrinsicを使うべき」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GNU AS/Apple AS/ARM RealView (Microsoft) ASとARMであっても三種類のシンタックスがあるんだから、ARMでもnasm的なの必要だよな」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++例外処理の詳細 (2013年)。やや古い記事でgcc/x86のケースを対象にしているが、ABIからスタックフレームの復元までアセンブリレベルで説明している。 (新山は読む気なし) https://t.co/Rez7LkG2Kx」 / Twitter
- Infinite monkey - Nico Brailovsky's blog: C++ exceptions under the hood
- とみながたけひろさんはTwitterを使っています 「CPUのエミュレータ書くときはキャリーとかオーバーフローとかいったフラグ処理が辛いのだが(PS1のアレとかとてもめんどくさい)、8bitマシンだと楽をする方法があり、それは「計算結果は普通に計算して求めるが、フラグは全演算パターンの変化の仕方をテーブルにしてそれを読むだけにする」である」 / Twitter
- とみながたけひろさんはTwitterを使っています 「x68kで作ったファミコンとかz80エミュはこれをやった。ハーフキャリーとか絶望的に計算大変やからな… D$サイズの関係で一時期真面目にif文書いたほうが有利になったけど、最近はまたテーブルの方が楽になりつつあるみたい」 / Twitter
- とみながたけひろさんはTwitterを使っています 「遅延評価で必要なときだけあとから再計算とかそういうのもありだがコードがむずくなる割に成果が小さくてつらく、実用に持っていけたことがない JITコンパイルする場合はフロー解析でフラグ不要部は計算しないコードを生成とかできるけど、こっちはいい感じに実装できたことが多い」 / Twitter
- とみながたけひろさんはTwitterを使っています 「あれファミコンはPentium100MHzぐらいのlinuxでの話やな。まちがい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ハーフキャリーは確かにクソめんどくさいからハーフキャリーだけをテーブル参照すればいいじゃんって思ったけど、他のフラグもなんだかんだめんどくさそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ゼロフラグとオーバフローフラグで条件ブランチが発生してパイプラインが乱れそうだな。キャリーは9bitで計算すればいいだろうけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「世界初のアセンブリ言語を発明したKathleen Booth氏が他界と」 / Twitter
- Tariq KRIMさんはTwitterを使っています: 「RIP Kathleen Booth, who Invented the first assembly language. She was 100 years old, and I have not seen anything in the news about it, unfortunately. With her husband, they formed the smallest computer group in the UK. Respect! https://t.co/dzgioMBybE」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「なぜAT&T記法アセンブリは使うべきでないのか: - 混乱しやすい表記: 28, $28, ($28) で意味が違う - オペランドの左右が逆 - $とか%の多用、Perlじゃないんだから - movq, movl, movsbl, movzbl, movb - どっちがわかりやすい? [edi + 8*ebx + 3] と 3(%edi,%ebx,8) https://t.co/Vl4GnylAXf」 / Twitter
- Why no one should use the AT&T syntax ever, for any reason, under any circumstances
- Introduce assembler macros by DQNEO · Pull Request #22 · DQNEO/minigo
- A bug story: data alignment on x86
- NOP命令と都市伝説
- タネ明かし: Whitespaceコンパイラを作った話の裏側 | κeenのHappy Hacκing Blog
- なぜCPUメーカはレジスタの数を増やさず、最先端の64ビットCPUでも16個しかないのですか? - Quora
- 富岳のディープラーニング処理を支えるJITコンパイラ「Xbyak_aarch64」誕生秘話:インタビュー|gihyo.jp … 技術評論社
- 実行した命令数をカウントする - Fixstars Tech Blog /proc/cpuinfo
- 2の補数表現をちょっと違った見方をしてみる - Fixstars Tech Blog /proc/cpuinfo
- takenobu-hs/cpu-assembly-examples: CPU assembly examples
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「8bit整数の -128は、符号反転しても -128である (16bitの-32768とかでも同様)。なぜなら2の補数表現では、符号反転は「ビット反転して+1」だから、-128 (10000000) を反転してそこに+1すると、元に戻ってしまうのだ! このバグはGCCやClangでは検出できないが、Adaでは可能。 https://t.co/Nkq80xpffT」 / Twitter
- Signed Integers are Asymmetrical
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、32bitモードだけBCD(10進)内部80bit演算が使えたのだけど、つい最近、この命令は廃止されたらしい。 https://t.co/Qiudaxiu6q」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「x86 BCDの場合、80bit FPUに載せて、80bitBCDで取り出したり、加算したりという感じで、そもそも精度は64bitが限界。」 / Twitter
- 簡易アセンブリの相対ラベル - Tociyuki::Diary
- アセンブリのコメントファイル。命令の位置を記録 - Google 検索
- 3入力以上のXORは真の個数が奇数か判定している - Panda Noir
Linker & Loader
その他
- ABI Navigator
- ソフトウェアの互換性と僕らの"User-Agent"文字列問題|Rui Ueyama|note
- 「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
- LLVMの新しいリンカLLDがLLVM 4で導入へ
- LLD - The LLVM Linker — lld 6 documentation
- The ELF and COFF Linkers — lld 6 documentation
- LLVM Link Time Optimization: Design and Implementation — LLVM 6 documentation
- Winux Project 7
- KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法
- 2011年11月2日 脱GPLとBSDライセンスツールチェーン - 最後の砦「リンカー」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- Linkers and Loaders
- カジュアルに実行時リンク&ロードする - 事例2 - 関数を呼んでる関数を呼びたい
- リンカ
- Terse Executable Format - PhoenixWiki
- CRubyとLink Time Optimizationについて - なるせにっき
- melancholic afternoon
- リンカの役割 自分メモメモ - Qiita
- ⚙ D69607 Add a feature to explain why some file gets included to the linker's output
- カジュアルに実行時リンク&ロードする - カジュアルに実行時リンク&ロードする
- SwiftコンパイラのAuto-linkingとそれを直した話 - kateinoigakukunのブログ
- 依存地獄の解決
PE
その他
- Hexacorn | Blog
- PEファイル (PortableExecutableFile)(2) – ヘッダについて « 来栖川電算
- PE(Portable Executable)ファイルフォーマットの概要
- Exeファイルを解読してみよう(後編)
- 日記移転先(゜▽゜)::EXEヘッダ/PEヘッダ/NEヘッダ
- リンカ作ろうJP$1 - yutopp's blog
- EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
- Windowsプログラミング その1
- d4.princess.ne.jp/diary/201411.html
- PEファイルの謎
- linker_kernelvm5.pdf
- C言語/システム/実行ファイル/COFF | LaboICT.
- Tiny PE
- 最小のEXEファイル? - 借り初めのひみつきち
- /DYNAMICBASE一問一答 « 他人の空似
- Windows support — lld 10 documentation
- windres - Google 検索
- i-saintさんはTwitterを使っています: 「VicualC++ は string literal は 16384 byte までという上限があるらしい。でかいデータを埋め込みたい場合 http://t.co/MJLnzo4E ここの Binary to MS COFF で .obj ファイルにしてリンクするといいっぽい。」 / Twitter
- Vortex's Utilities, Tools And Toys
- Tiny PE
- PEを理解したかったのでreadpeってものを作った - Qiita
- Effectiveさお
- LIEF の紹介 - FFRIエンジニアブログ
MS
その他
- DUMPBIN のオプション
- ValveTimeさんのツイート: "Former Microsoft Architect and MS-DOS Pioneer Mark Zbikowski joins Valve as a Software Engineer. https://t.co/Le02aK5LLS #valve https://t.co/9Us2aIWZjF"
- savaさんのツイート: "https://t.co/xtJD4LzUGi おいマジかよ… (MS-DOSのメモリ周りを見る(弄る)プログラムを作った人なら誰でもメモリブロック先頭にあるMやZの文字のことをご存知のはずですが、これってこの人のイニシャルなんですよ…)"
- Mark Zbikowski - アメリカ合衆国 グレーター・シアトル エリア | プロフィール | LinkedIn
- 任意の64ビットバイナリにHigh Entropy ASLRを適用する設定を見つけるまでの備忘録 - Togetter
- Address Space Load Randomization
- PE Format - Windows applications | Microsoft Docs
- Peering Inside the PE: A Tour of the Win32 Portable Executable File Format | Microsoft Docs
- Windows ISV Software Security Defenses | Microsoft Docs
- /BASE (Base Address) | Microsoft Docs
- /HIGHENTROPYVA (Support 64-Bit ASLR) | Microsoft Docs
- /DYNAMICBASE (Use address space layout randomization) | Microsoft Docs
- Migrating 32-bit Managed Code to 64-bit | Microsoft Docs
- C の装飾名の形式 | Microsoft Docs
- 重箱の隅のデバッグ(1) – インポートセクションで設定するブレークポイント – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ImageHlp Structures - Windows applications | Microsoft Docs
- -SECTION (Specify Section Attributes) | Microsoft Docs
- LIB リファレンス | Microsoft Docs
- MSVC リンカー オプション | Microsoft Docs
- DUMPBIN リファレンス | Microsoft Docs
- /BASE (ベース アドレス) | Microsoft Docs
- /FIXED (固定ベース アドレス) | Microsoft Docs
- MSVC リンカー オプション | Microsoft Docs
- /LARGEADDRESSAWARE (大きいアドレスの処理) | Microsoft Docs
- /OPT (最適化) | Microsoft Docs
- /PROFILE (パフォーマンス ツール プロファイラー) | Microsoft Docs
- /ORDER (関数の順序) | Microsoft Docs
- Rui UeyamaさんはTwitterを使っています: 「VS2019でリンカが速くなったのは、間違いなくlldがMSリンカより何倍も速いのを見てMicrosoftが真剣になったからなので、間接的にもいろんな人の役に立ってると言えるかもなぁ。あと競争は重要だね。競争がないと重要なコンポーネントでも放置されがち。 https://t.co/3tHRSefWMB」 / Twitter
- Improved Linker Fundamentals in Visual Studio 2019 | C++ Team Blog
- Rui UeyamaさんはTwitterを使っています: 「まあ大幅な高速化が可能であるということが実証された後で、しかもそのソースコードを読んだりもできるという状況で、うちもエンジニアリングリソースを割いてキャッチアップしよう!とならないのは逆にありえないんだけど。」 / Twitter
- New Compiler Warnings for Dynamic Initialization and User Defined Sections | C++ Team Blog
- /bigobj (.obj ファイル内のセクションの数を増やす) | Microsoft Docs
CheckSum
- PE Checksum Algorithm的较简实现 - 011 - 博客园
- An Analysis of the Windows PE Checksum Algorithm - CodeProject
- RFC 1071 - Computing the Internet checksum
- RFC 1141 - Incremental updating of the Internet checksum
- RFC 1624 - Computation of the Internet Checksum via Incremental Update
- Standard PE checksum - Source Codes - rohitab.com - Forums
- windows research kernel(work) - Google 検索
鷲ノ巣
- PE ファイルについて (1) - IMAGE_DOS_HEADER - 鷲ノ巣
- PE ファイルについて (2) - IMAGE_FILE_HEADER - 鷲ノ巣
- PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER - 鷲ノ巣
- PE ファイルについて (4) - IMAGE_SECTION_HEADER - 鷲ノ巣
- PE ファイルについて (5) - IMAGE_DATA_DIRECTORY - 鷲ノ巣
- PE ファイルについて (6) - 補足 - 鷲ノ巣
- PE ファイルについて (6.5) - 相対仮想アドレス - 鷲ノ巣
- PE ファイルについて (7) - エクスポート編 - 鷲ノ巣
- PE ファイルについて (8) - インポート 基本編 - 鷲ノ巣
Glamenv-Septzen.net
- 技術/Windows/PE(Portable Executable)フォーマットの実験 - Glamenv-Septzen.net
- 技術/Windows/PE(Portable Executable)フォーマットの実験/02, 再配置情報で遊ぼう! - Glamenv-Septzen.net
PE_FORMAT
- 目次
- 目次
- 1.基本概念
- 2. 概要
ファイルヘッダ
- 3. ファイル ヘッダ
- 3.1 MS-DOSのスタブ(イメージのみ)
- 3.2 シグネチャ(イメージのみ)
- 3.3 COFFファイル ヘッダ(オブジェクトとイメージ)
- 3.3.1 マシン タイプ
- 3.3.2 特性
- 3.4 オプション ヘッダ(通常はイメージのみ)
- 3.4.1 オプション ヘッダの標準フィールド(イメージのみ)
- 3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ)
- 3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)
- 4. セクション テーブル(セクション ヘッダ)
- 4.1 セクション フラグ
- 4.2 Grouped Sections(オブジェクトのみ)
- 5.2 COFFの再配置(オブジェクトのみ)
- 5. 他のファイル内容
- 5.1 セクション データ
- 5.2.1 タイプ インジケータ
シンボル情報
- 5.3 COFF行番号
- 5.4 COFFシンボル テーブル
- 5.4.1 シンボル名の表現
- 5.4.2 セクション番号の値
- 5.4.3 型の表現
- 5.4.4 ストレージ クラス
- 5.6. COFF文字列テーブル
- 5.5 補助シンボル レコード
- 5.5.1 補助形式1:関数定義
- 5.5.2 補助形式2:.bf および .ef シンボル
- 5.5.3 補助形式3:弱い外部参照
- 5.5.4 補助形式4:ファイル
- 5.5.5 補助形式5:セクション定義
- 5.5.6 COMDATセクション(オブジェクトのみ)
- 6. 特殊セクション
デバッグ情報
- 6.1 .debugセクション
- 6.1.1 デバッグ ディレクトリ(イメージのみ)
- 6.1.2 デバッグ タイプ
- 6.1.3 .debug$F(オブジェクトのみ)
- 6.1.4 .debug$S(オブジェクトのみ)
- 6.1.5 .debug$T(オブジェクトのみ)
- 6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
- 6.2 .drectveセクション(オブジェクトのみ)
.idataセクション
- 6.4 .idataセクション
- 6.4.1 インポート ディレクトリ テーブル
- 6.4.2 インポート ルックアップ テーブル
- 6.4.3 ヒント/名前テーブル
- 6.4.4 インポート アドレス テーブル
再配置情報
- 6.5 .relocセクション(イメージのみ)
- 6.5.1 fixupブロック
- 6.5.2 fixupタイプ
- 6.8 .textbssセクション(イメージのみ)
アーカイブファイル形式
- 7. アーカイブ(ライブラリ)ファイル形式
- 7.1 アーカイブ ファイル シグネチャ
- 7.2 アーカイブ メンバ ヘッダ
- 7.3 第1リンカ メンバ
- 7.4 第2リンカ メンバ
- 7.5 長い名前メンバ
インポートライブラリの形式
- 8. インポート ライブラリの形式
- 8.1 インポート ヘッダ
- 8.2 インポート タイプ
- 8.3 インポート名の種類
- ダイジェストに含めないフィールド
- 付録:イメージ メッセージ ダイジェストの計算
アレ用の何か
- アレ用の何か
- アレ用の何か
- アレ用の何か
- アレ用の何か
CodeZine
- x86系CPUのネイティブコードを解析する (1/3):CodeZine
- プログラムからEXEファイルを生成してみよう (1/3):CodeZine
- EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
- EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine(コードジン)
- Windows実行ファイルのバイナリ概要 (1/2):CodeZine(コードジン)
リソース
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
DLL
MS
- LoadLibraryEx 関数
- GetProcAddress 関数
- FreeLibrary 関数
- FreeLibraryAndExitThread 関数
- DllMain 関数
- SODA Noriyukiさんのツイート: "thread local storage を持つ shared object を dlopen() したら、その TLS をスレッドライブラリに通知して各スレッドの TLS を拡張するみたいな処理がたぶん必要だよね? このあたりは完全にOSおよびそのバージョン依存になるから、OS付属のrtldを拡張する方針にしないと死ぬばっかじゃないかなあ。"
- NaOHaq(仮性ソーダ)さんのツイート: "Windows だと、thread が作られたときにDllMain関数 https://t.co/hM1IbMgqiW が呼ばれてそこで処理しろってなってるっぽいですね… "
- DLL の植え付けの脆弱性のトリアージ – 日本のセキュリティチーム
- Dynamic-Link Library Search Order (Windows)
- Load Library Safely – Security Research & Defense
- PROCESS_MITIGATION_IMAGE_LOAD_POLICY structure (Preliminary)
- Masaru IritaniさんはTwitterを使っています: 「今日のチーム内勉強会では、DllMain でお行儀の悪いことをするとシステムのハングを引き起こせることを学びました。時間ができたら試してみましょうか。 https://t.co/OaYB0NuVXu」 / Twitter
- Another reason not to do anything scary in your DllMain: Inadvertent deadlock | The Old New Thing
- yohさんはTwitterを使っています 「DLL の植え付けの脆弱性のトリアージ https://t.co/1yfe3WYY23 "DLL planting" とも言うのか... hijackingやpreloadingしか聞いたことなかった」 / Twitter
- DLL の植え付けの脆弱性のトリアージ - Microsoft Security Response Center
- Dynamic-Link Library Best Practices - Win32 apps | Microsoft Docs
- Dynamic-Link Library Redirection - Win32 apps | Microsoft Docs
- GetFullPathNameA function (fileapi.h) - Win32 apps | Microsoft Docs
- SetSearchPathMode function (winbase.h) - Win32 apps | Microsoft Docs
- SetErrorMode function (errhandlingapi.h) - Win32 apps | Microsoft Docs
- Dynamic-Link Library Search Order - Win32 apps | Microsoft Docs
- ダイナミックリンクライブラリのセキュリティ-Win32アプリ| Microsoft Docs
- 新しい低レベル バイナリ
- How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses? – The Old New Thing
- Why am I getting a crash at shutdown inside the thread pool? | The Old New Thing
Export Address Table
- ITセキュリティのアライ出し (46) EAF出撃す | マイナビニュース
- 6.3.2 エクスポート アドレス テーブル
Import Address Table
- IAT:インポートアドレステーブルについて - Log.i53
- 騙せるPE解析ツールのImport API表示機能(2016-11-28)
- マニュアルアンパックのIAT再構築を手動でやった話 - Qiita
- wivern.com | 「リバースエンジニアリングバイブル」勉強メモ#5
- PEの.idataをアセンブラで考える - 七誌の開発日記
- GOT、PLTとIAT - 脱力系日記
- IAT | すなのかたまり
- DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識
- DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識(続き)
- コグノスケ
- インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説
ASLR
- 第三話:ASLRの意味をデバッガで見てみる|トリコロールな猫|note
- WindowsでASLR(Address Space Layout Randomization)を確認してみる。 - バイナリの歩き方
- 本の虫: Windows 7におけるプリコンパイルドヘッダーのエラーについて
- WindowsのASLRに脆弱性、米セキュリティ機関が対策呼び掛け - ITmedia エンタープライズ
- JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
- Positive Technologies - learn and secure : Windows 8 ASLR Internals
- Proj 9x: Understanding PE Files and ASLR on Windows (15 pts.)
- 設定によりWindows8以降のASLRが不適切に行われる可能性 | SCTブログ | 三和コムテック
- -DYNAMICBASE (使用してアドレス空間レイアウトのランダム化) | Microsoft Docs
遅延ロード
- /DELAYLOAD (遅延読み込みのインポート)
- C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
- C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
- DLLの遅延読み込みをフックする | ::Hikaru's blog
- VS2008/VS2010 memo
- リンカーによる DLL の遅延読み込み
- 遅延読み込みする DLL の指定
- DLL の遅延読み込みの制約
プリロード
golang の DLL プリロード対策
- Vim界の声の大きい人さんのツイート: "ちなみに golang は既に DLL プリロード対策がされていて、起動時に LoadLibraryEx と AddDllDirectory が使える環境はそれが設定され、使えない環境はシステム DLL は直パスでロードされてます。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "?? System32配下のDLLは沢山あると思いますが、全てロード or それとも限定する選択基準があるのでしょうか? >システム DLL は直パスでロード… "
- mattnさんのツイート: "限定的です。ここに列挙されてる DLL のみ、フォールバック時に直パスで読まれます。 https://t.co/t2YOTqsoyN… "
- go/zsyscall_windows.go at master · golang/go
- Shirouzu Hiroaki(白水啓章)さんのツイート: "参考になります。 この選択の基準があれば知りたいですね。… "
- mattnさんのツイート: "僕はその際の改善には関わらなかったですが、眺めてた所だと、golang の標準パッケージが使っている DLL を列挙した様でした。なのでユーザが追加でロードする物に関しては(AddDllDirectoryが使えない環境は)問題が起きうると思います。これは仕方ないかなと思ってます。… https://t.co/GEWqnZHWHz"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、了解です。exeの横に危険なdllが置かれるのは、主にインストーラなので、そうでなければ、そこまで神経質になる必要はないですね。… "
- mattnさんのツイート: "ちなみにその際の issue がこちらです。 https://t.co/7oGxhnRDhy… "
- syscall: guard against Windows DLL preloading attacks · Issue #14959 · golang/go
- JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実行に関する問題
- 第35回 2017年6月~EOLなWindowsへの修正ファイル提供と,DLLプリロードの問題:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
- UNLHA32.DLLにおける任意のDLL読み込みに関する脆弱性
- Windows DLLプリロード攻撃の新しいパターンと防御法
- Windows Defender Advanced Threat Protection で反射型の DLL 読み込みを検出 – 日本のセキュリティチーム
- 第43回 2018年2月~いまも発見される,DLL読み込みに関する脆弱性~どう悪用されるのか?&対処は?:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
- Windows DLLプリロード攻撃の新しいパターンと防御法
- 脆弱性ポータルサイトJVN、Windows 7に存在する“DLLの植え付け”脆弱性を注意喚起 - 窓の杜
- LoadLibraryAによるDLL読み込み順序とDLLプリロード攻撃 - Qiita
- DLLプリロード攻撃のチェッカーをリリース « 他人の空似
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ダウト。2010年頃のDLLハイジャックと2016年以降のそれは別物。「3-4年も経つのに…」が正解。(トレンドマイクロがダメダメな点は賛成) JPCERT戸田さん「DLL読み込みの問題を読み解く」 https://t.co/w47xvkATgf 私「Windows DLLプリロード攻撃の新しいパターンと防御法」 https://t.co/prt4LLm1oH https://t.co/UdQEW4GX8j」 / Twitter
- DLL読み込みの問題を読み解く
- Windows DLLプリロード攻撃の新しいパターンと防御法
- DLL プリロード攻撃を防止するためのライブラリの安全な読み込み
- Process Monitor | Microsoft Docs
- DLLの検索
インジェクション
Rapport
- なかのん&マジックさんのツイート: "なんか、Rapport入ってるとFirefoxクラッシュするとかいう話が昔あった気がする。"
- Makoto Kato ︎︎さんのツイート: "Firefoxのバージョンが上がる度にクラッシュしてた。IBMに直してよって投げてたけど、最近はそんな聞かない… "
- Makoto Kato ︎︎さんのツイート: "DLL blocklistを読み込む前にDLLが注入される作りで、ブロックできないんだよね"
- Makoto Kato ︎︎さんのツイート: "ああいうセキュリティ対策系のソフトで一番素直なつくりはMSなんで、MSのが一番いいと思うよ"
- Makoto Kato ︎︎さんのツイート: "何処かのベンダーのやつは、注入したDLL内でクラッシュするんでFirefoxが強制終了しまくる話があって、いろいろ問い合わせたら聞いたこないっていってたけど、体験版ですぐ再現する話だったのは、ホントイラついた"
- Makoto Kato ︎︎さんのツイート: "アドオンごとブロックリスト行きにしたら、直してくれたけどさ"
- なかのん&マジックさんのツイート: "あれって、XULアドオンだったわけじゃなくて、外部アプリなのにやらかしてくれてたんですか?… "
- Makoto Kato ︎︎さんのツイート: "そうです。アドオンじゃなかったんですよ。プロセス起動時にDLLを注入しちゃうタイプで。。。… "
- なかのん&マジックさんのツイート: "もはや、マルウェア……… "
- Rockridgeさんのツイート: "Firefoxプロセスのアドレス空間にインジェクトされるDLLは、現在ブラックリスト方式で管理されているが、将来的にこれをホワイトリスト方式に改める。参照:https://t.co/mXNDx0IYAZ / “Platform/…” https://t.co/vDVhfKue2B"
- CreateRemoteThread関数によるDLLインジェクションをやってみる - ももいろテクノロジー
- DLL injectionでWindows APIによる暗号化処理を覗いてみる - ももいろテクノロジー
- DLLインジェクション - Wikipedia
- DLL injection - Wikipedia
- DLLインジェクションを学ぶためのオンラインパッチの実験 - Qiita
- 早川顕太:Windows 上における危険な処理の... - Google Scholar
- Rockridgeさんのツイート: "Fx53:アドオンやサードパーティー製ソフトウェアがFirefoxのプロセス内にDLLを読み込むことは、原則としてできなくなるようだ。WebExtensionsのNative Messaging API(Fx50でサポート)を使う… https://t.co/PgVacMWk7Z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsの場合、サードパーティDLLが勝手にプロセスに dll injectionして例外を起こすことがある。 (先ほど、香港ユーザから届いた例外ダンプを解析したら、google検索に1件も引っ掛からない、謎DLLで例外が発生していたというオチ) https://t.co/hBqrjpv8iR"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション問題(EXEフォルダ用)でのMSさんの解決策は、PreferSystem32というSYSTEM32を優先するオプション増設っぽい。 https://t.co/I3NvwwBAWa だがデフォルトだと、WinAPIやCOM I/F経由での、パスなし標準DLL読み込み問題は残ったままの様子。(手元で再確認) https://t.co/YZs6GBMXyc"
- 【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】 - Windows 2000 Blog
NyaRuRuが地球にいたころ
- DLLの闇 (0) - NyaRuRuが地球にいたころ
- DLLの闇 (1) - NyaRuRuが地球にいたころ
- DLLの闇 (2) - NyaRuRuが地球にいたころ
- DLLの闇 (3) - NyaRuRuが地球にいたころ
- DLL の闇 (4) - NyaRuRuが地球にいたころ
- DLL の闇 (5) - NyaRuRuが地球にいたころ
- TLS Callbacks - NyaRuRuが地球にいたころ
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLが自分自身でアンロードするための、FreeLibraryAndExitThread というAPIがある。 FreeLibrary と ExitThread を発行するだけのコードだが、それが標準DLL側コードに存在するため、FreeLibrary後もExitThreadが実行できる。 https://t.co/tqpkwFae6r"
- What is the point of FreeLibraryAndExitThread? | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション後のクリーンナップのために設計された感じ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は pragma でリンクするDLLを指定するのは邪道だと思っていたが、(Win32以外に移植予定が無いなら)こちらの方がメリットが多いな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "kernel32.dllは遅延ロードできない。 (GetProcAddressといった遅延ロードに必要なAPI自体が存在するため) https://t.co/j4HLtmgrvt kernel32関数の場合、昔ながらの GetProcAddress で解決するしかなさそう。"
- Why can't I use the linker to delay-load a function from kernel32? | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現状では Vista 以降をサポート。(非公式にはXPでも動作) 新しいOSでは、主に遅延リンクで追加APIを使う形。 (ただしkernel32内APIだけは、それが出来ないのでGetProcAddress利用)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のマルウェアは、rundll32経由dllロード→svchostを起動してdllインジェクションして、そのsvchostが永続動作、みたいな形が増えてる? (確かにsvchost多すぎて気づき辛い) https://t.co/TjFBzlXHJz」 / Twitter
- 日本国内の組織を狙ったマルウエアLODEINFO - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
- rundll32.exeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- ダイナミック リンク ライブラリ(DLL)の基礎知識
- DLL から「正しい」LIB ファイルを作るには
- DLLファイルからLIBファイルを作成する(_stdcall宣言)
- Takashi KawasakiさんはTwitterを使っています: 「完全に解決したとは言えないけど、お行儀の悪いインストーラが駆逐、あるいは、OS側機能で仮想化され、今となってはほとんど悪いことが起きなくなった。あとは、アプリ毎に同一ディレクトリ内にすべてのDLLを持つことは非推奨であっても禁止はされていない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「WindowsでのSide-by-side DLLの仕組みとか、残ってはいるけど、複雑すぎて誰も幸せにならなかったので、なかったかのようになってるよな。」 / Twitter
- Microsoft Windows library files - Wikipedia
- ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
- ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
- アレ用の何か
- C言語系/memos/VC++/06, DLLの事前バインド(BindImageEx()) (v1) - Glamenv-Septzen.net
- ReadApiSetSchema更新 « 他人の空似
- VirtualDLLの仕組み « 他人の空似
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~DLLプリロード攻撃~ « 他人の空似
- GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
- 碧落 - Win64 開発
- 4億円超の広告枠を中国のハッカーが購入して詐欺広告を表示しまくった手口とは? - GIGAZINE
- Adaptive DLL Hijacking – Silent Break Security
COFF
- COFF - Wikipedia
- COFF - Wikipedia
- coff.h Source File
- COFF - OSDev Wiki
- DJGPP COFF Spec
- Common Object File Format (COFF
- avrcoff.pdf
GitHub
- erocarrera/pefile: pefile is a Python module to read and work with PE (Portable Executable) files
- notes/index.md at master · yukitos/notes
- COFF形式ファイルのいろいろ · HobbyOSs/opennask Wiki
- study-re-201805/study-memo-dynamicbase at master · SecureSkyTechnology/study-re-201805
Wikipedia
- Portable Executable - Wikipedia
- Portable Executable - Wikipedia
- PE - OSDev Wiki
- x86 Disassembly/Windows Executable Files - Wikibooks, open books for an open world
- 本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
- wivern.com | 見る価値のある5つの PE 解析ツール
- PE Explorer: EXE File Editor, Resource Editor, DLL View Scan Tool, Disassembler.
- WJR Software - PEview (PE/COFF file viewer),...
- PE形式バイナリ変換ツール
- PEダンパー兼PEエディタ「UMPE」
- C11/C++11 TLS変数への間接アクセス - yohhoyの日記
- Auto-linkingまとめ - kateinoigakukunのブログ
- daem0nc0reさんはTwitterを使っています 「PEファイルに悪意のあるコードを埋め込むための、アンチウイルス検知回避の手法 https://t.co/vFtpH0cOkc」 / Twitter
- undetectable backdooring PE file
ELF
Explore cs in depth!
- 実行プログラム作成基盤をフルスクラッチで書いた - Explore "Full-Stack" in depth!
- TUIベースのELF解析ツールを作りました - Explore cs in depth!
- ELFバイナリに含まれるnullセクション/ヘッダの真実…? - Explore cs in depth!
- オブジェクトファイルのシンボルテーブルを最低限理解する。 - Explore cs in depth!
- readelf -S を簡易実装してセクションヘッダを理解する - Explore cs in depth!
- readelf -lを簡易実装してELFフォーマットの理解を深める。 - Explore cs in depth!
- バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説 - Explore cs in depth!
@IT
- Linuxカーネルに見る、システムコール番号と引数、システムコール・ラッパーとは:main()関数の前には何があるのか(7)(1/2 ページ) - @IT
- あなたが知らないプログラムの真の始まり――main()関数の前にあるスタートアップとは:main()関数の前には何があるのか(8)(2/3 ページ) - @IT
ABI
- Linux Foundation Referenced Specifications
- gabi41.pdf
- System V Application Binary Interface - DRAFT
- x86_64-abi-0.99.pdf
GOT, PLT, PIC, PIE, ASLR
- C - C言語の位置独立コード、GOT(53994)|teratail
- アーキテクチャ - GOTとPLTについて確認です。(48163)|teratail
- PIC,PIE,shellcode,ASLR
- Akira Kawata (a_kawashiro)さんはTwitterを使っています 「Architectural Support for Dynamic Linking https://t.co/PpqTEZHDjr Dynamic Linkしたライブラリ中の関数を呼び出すときは、PLTからGOTのアドレスを読んで間接ジャンプすることになるが、GOTは一度書き込まれると基本変わらないので、分岐予測を改良すれば、このオーバーヘッドを削れる。」 / Twitter
- Architectural Support for Dynamic Linking | Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems
Full RELRO
- Relocation Read-Only (RELRO) - CTF 101
- 実行ファイルのセキュリティ機構についてまとめてみる - misoの雑記
- partialRELRO/fullRELRO、あるいは-fno-pltの話 - kubo39's blog
- Hardening ELF binaries using Relocation Read-Only (RELRO)
- Linux の実行ファイルのセキュリティについて勉強した記録 - Qiita
- ハリネズミ本 pwn編 最終問題 Full RELROの場合の解法 - ACCE55_DE21ED
- RELROとformat string attackによるリターンアドレス書き換え - ももいろテクノロジー
- Linux保护机制 | 偏有宸机
- Pwn学习笔记15:Full-RELRO与library | 喵喵喵喵 | 某鱼唇的人类
- 二进制漏洞挖掘之栈溢出-开启RELRO_sp00f的博客-CSDN博客_partial relro
readelf
- readelf (GNU Binary Utilities)
- readelf コマンド – ELFファイルについての情報を表示する | Linuxコマンド.NET
- 第5章 elfutils Red Hat Developer Toolset 9 | Red Hat Customer Portal
blog
- ELFから公開されている関数名を抜き出す - ククログ(2009-05-22)
- DSAS開発者の部屋:Android で今後ネイティブ実行形式を扱う際に注意すべきこと
- eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - Tier IV Tech Blog
- .note.ABI-tagとはなにか - VA Linux エンジニアブログ
- 最小限のELF | κeenのHappy Hacκing Blog
- Some Assembly Required*: Relocations, Relocations
- Reversingとかpwnとかを解くときのメモ(かきかけ) - 忖度
- PIE(position-independent executable)なオブジェクトの中身を見てみる - 情弱ログ
- Brainf*ckトランスレータ (5) 位置独立コード - 七誌の開発日記
- バイナリ解析についてのメモ
- GOT、PLTとIAT - 脱力系日記
- 共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証 - 誰にも見えないブログ
- 静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - (iwi) 備忘録
- Goのバイナリから依存するmodule情報を取り出す方法 - knqyf263's blog
- ELFファイルを取り扱うためのlibelfライブラリ調査 - FPGA開発日記
- BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
- BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
- GNU_IFUNCとは何か - a_kawashiroのブログ
- 【CTF入門】ELFバイナリのリバースエンジニアリングに入門してみよう - かえるのほんだな
- LD_AUDITとGlobal Offset Table - a_kawashiroのブログ
- objcopyで textセクションの抽出 - e-tipsmemo
スライド
- EuroLLVM 2016: New LLD linker for ELF - Google スライド
- ELFの動的リンク
- セキュリティ・キャンプ2019 Z2. ELFマルウェア検知エンジンの試作 成果報告 - Speaker Deck
- cybozu-labs-youth-10th - Speaker Deck
- soldスライド for kernelvm 2021/11/20 - sold_kernelvm_20211120.pdf
- 補助ベクトルとプロセスのロード - 2022/08/27 kernelvm - Google スライド
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「mainの第3引数「補助ベクトル」(aux vector)と自作プログラムローダー。libcを静的リンクしたバイナリを起動しようとしたら_dl_randomが呼ばれる部分でヌルポ。_dl_randomに補助ベクトルを渡し忘れていたのが原因。 #kernelvm」 / Twitter
- sold: A linker for shared objects - Speaker Deck
Qiita
- C++ユーザーの為のリンクの話1 - Qiita
- assemblyからhello world programを追いかける - Qiita
Twitter
C
- Rui Ueyamaさんのツイート: "Cコンパイラ本に初期化式についての説明を足してみた。プログラムはなぜ動くのか、みたいな本になりつつあるけど、その説明なしに解説するのは逆に無理だ。 https://t.co/dGjZVzZJEe"
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- Rui Ueyamaさんのツイート: "Cの仕様書だとこのあたりの動作はすごく抽象的に書いてあって、意味も必然性もわからない。僕が説明してるような特定のモデルを念頭に置いて読むといろいろ腑に落ちるんだけど、それをできるだけ一般的に説明しようとするとああなってしまうんだと思う。いいんだか悪いんだか。"
- _ko1さんのツイート: "init section とかは ELF (とかa.out?)だと思いますが、具体名かいちゃわないんでしょうか。Linuxの実行ファイルといえば一意に決まるから、要らんのかな(一意に決まるかどうか、知らないのだけど)… "
- Rui Ueyamaさんのツイート: "ELFだと名前は重要ではないということになっているので、SHT_INIT_ARRAYタイプのセクションは一応全部initセクションということになるんですよね。とはいえ`.init_array`であるのを前提にしちゃってるプログラムが多いですけど。… "
- _ko1さんのツイート: "おお、なるほど、私のうろ覚えの理解も間違ってました(詳細はさっぱり知らなかった)。「initと呼ばれる特別なセクションに出力する」とあったので、特定の環境を想定しているのかな、と思ったんですが、その特定の環境かいてないなあと思った次第でして。… "
- Rui Ueyamaさんのツイート: "initというのは一般名称のつもりでした。確かにそれは伝わらないかも。… "
- shinichiro hamajiさんのツイート: "「initセクション/セグメント」と言われると.initセクションとDT_INITのことかな、と思ってしまう(この方式の時は実際関数ポインタが入ってたセクションは.ctorsでした)ので、ちゃんとinit_arrayという名前を明示してほしい気持ちあるかもです… https://t.co/mTpGnUNT5G"
- Rui Ueyamaさんのツイート: "まあ足しとくか・・… "
.so
- エミュー(減酒)さんはTwitterを使っています: 「やっぱり動的リンカについて体系的にまとまってるものがないのがアレなんだよな、namachan唆して書かせるしかないか。」 / Twitter
- ウシさんはTwitterを使っています: 「@shitsyndrome @namachan10777 一応Oracleがまとめてくれているっちゃまとめてくれています、これだけで理解するのは厳しいですが…… https://t.co/28v58jmATM」 / Twitter
- 動的リンク (リンカーとライブラリ)
- エミュー(減酒)さんはTwitterを使っています: 「@totsugeki_tai @namachan10777 ありがとうございます。このへんベースにrelocation、full relro、TLSモデル、copy relocation、dlopen()がなにやってるかといったあたりが体系的にまとまってるのが欲しいなという感じでした。oracleのやつは前みたんですがsparc前提だったり、やはりちと古いですね(init/finiとか)」 / Twitter
- ウシさんはTwitterを使っています: 「@shitsyndrome @namachan10777 なるほど、その辺まで知ろうとすると確かにOracleのページでは厳しいですね チマチマ解析してみたいと思います」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「共有ライブラリ (.so) の依存関係を木構造で表示するツール。といか、なぜlddはデフォルトでこれをやってくれないんだ。 https://t.co/ZPaUI0wH0J」 / Twitter
- haampie/libtree: ldd as a tree with an option to bundle dependencies into a single folder
- るくすさんのツイート: "分かった... リンカが物理アドレス節約のために、セクションが小さい場合は全部まとめて先頭の空きスペースに持ってこようとするから、先頭からのオフセットが変わってるんだ... 気付くかよそんなの..."
- るくすさんのツイート: "リンカスクリプトに陽に指定していないセクションは、なるべく空きスペースに置くようにしているのか いやまあそりゃそうだろって感じだが... まさか先頭に置いたつもりのセクションがこれの影響でずれるとは"
- るくすさんのツイート: "あああ まさにこれだ。 linker scriptでセクションの順番を指定しても、物理アドレスは変わるけどELF内のオフセットが制御できなくてブートローダーから飛べない問題。 質問している人がいた https://t.co/LyFtwAU8uy"
- るくすさんのツイート: "まあこの人は、ブートローダーとかじゃなく.textの前にシンボル置いたんだけど、実際のELF内オフセットは.textより後になっちゃう って言ってる"
- るくすさんのツイート: "まあブートローダーでELFをちゃんとパースしろやwというのが正論だし、物理的な配置をELF側に求めるのは間違ってるんですが..."
- るくすさんのツイート: "物理アドレスのオフセット値とelf内のオフセットが合わない仕様、やはり何とかするべきでは... 直感に反しすぎる..."
- るくすさんのツイート: "何が起こるかというとELFを0x40100000に置いた後、0x40101000にアクセスすると先頭からオフセット0x1000のセクションにアクセスできそうなのに、実際は対応するセクションは0x2000にあるなどが起こる。"
- るくすさんのツイート: "OFFSET 0x2000のセクションが0x40101000に配置されるの、マジで直感に反するからやめろ"
- るくすさんのツイート: "いやまあbssセクションの後とかだったら、実際のELFオフセットと物理アドレスがずれるとかはあると思うんですけど、これ一番初めの(NULLの次)セクションで起こってるんだよな... 2,3,4番目のセクションが一番目のセクションより先に配置されるなどする"
- Rui Ueyamaさんのツイート: "今調べている時間がないからここに書くけど、.gnu.hashをある方法で作るとUnixでのプロセスのスタートアップがかなり速くなるぽいんだけど、なぜそんなに違いが生じるのか誰もよくわかってません。数%は違いが出るので、わりと世の中的に役に立つはずなんだけど。誰か調べてほしい。"
- ファッション自作OSマンさんのツイート: "ELFローダーを作る際のハマりどころ ・PT_LOADは複数になることがある ・PIEバイナリの場合、sh_addrやp_vaddrなどは0オリジンなので、実際のロードアドレスを加算する必要あり ・もちろんリロケーション時にも。… "
- ファッション自作OSマンさんのツイート: "ところで、PT_LOADが複数あるELFバイナリの場合、すべてのPT_LOADは基本的に連続(アライメントのために多少隙間はあるにせよ)と考えてOK?"
- C++でOS自作 技術書典5 お05さんのツイート: "ELFのDYNAMICセグメントに基づきリロケートした結果、C++のvtableの内容が正しくアップデートされ、仮想関数が動くようになった。画面表示バグが直って正しく描画されると嬉しい。"
- Rockridgeさんのツイート: "Fx64:Linux版の実行ファイルが位置独立実行形式(PIE)になった。参照:https://t.co/quDHNpLxZD / “1079662 - Enable PIE on Linux” https://t.co/BIF3z3Icrl"
- 品川 高廣さんのツイート: "ELF ファイルの PT_LOAD セグメントで対応するファイルサイズ(p_filesz)が 0 ということはあり得るんだな。"
- Rui Ueyamaさんのツイート: "リンカは、ELFを読んだあとに同じ名前のセクションをそのまま連結して、.rela.*で指示されている箇所のアドレスをfix upすれば完成、という感じですよ。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「/proc/[pid]/maps に、同じ.soファイルが、異なるページ属性で別の位置にマップされている理由。 https://t.co/hVzNTKGEWV」 / Twitter
- linux - Shared library mappings in /proc/pid/maps - Unix & Linux Stack Exchange
- shinichiro hamajiさんはTwitterを使っています: 「最近、ことあるごとにglibcのローダはシンボルテーブルがフラットで、DT_NEEDEDをRTLD_GLOBALで解決するのがダメ、Bionicやdyldの方が良い、あとC++標準はDLL的なものに言及すべき(visibilityとかdllexport的なやつ)と主張してるのだけど、そう言う人を見ない気がする。みんな困っていないのかなあ」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「linuxのx86バイナリ、かなりcrazyなことになっていて、ビルドした後に独自のobjtoolでバイナリを解析してエラーチェックとかシンボル抜き出し、セクション追加などを行っている。non-blockingな自己書き換え手法が確立した後のはっちゃけ具合が凄い。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「両方の技術の元ネタ(kprobe jump optimization+x86 instruction decoder)を提供した身としてはwktkしてる。」 / Twitter
- DrumatoさんはTwitterを使っています 「ELFをパースしたときにはbytes:Vec<u8>にしておいて,あとからシンボルテーブルを使う場合のみ構築する方法を取ったけど, ユーザ側が計算量のこと考えないと毎回テーブル作り直す重い処理になってしまう.」 / Twitter
- DrumatoさんはTwitterを使っています 「というこでEnum実装に変更して, パース時のコストを許容し,その後スマートに使用できる仕組みを取ろうと思っている.」 / Twitter
- DrumatoさんはTwitterを使っています 「抽象的で使いやすいELFライブラリを作るためには,ユーザが考慮すべきことを減らさなければ」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:単純な動的リロケーションの問題; ・ダイナミックリロケーションを行うべき場所は、普通はとても多い ・全部リロケーションするとロードが遅くなる ・物理メモリの共有もできなくなる #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:PLTとGOT: ・間接参照を導入 ・テーブルを作り、リロケーションする場所を集約 ・一個のモジュールについての相対的位置は変わらないので、まずはPLTに飛ぶようにしておけば良い ・PLTやGOTはリンカが作る #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「共有ライブラリ内のあらゆるアドレスをロード時に書き換えると書き換え箇所が多すぎる→PLTやGOTの値を見て共有ライブラリの中身のオフセットを知る→ライブラリの中身の並び順はどこにロードしても相対的には変わらないので、これらの値だけで全てのアドレスを書き換えるのを代替できる #kernelvm」 / Twitter
- retrageさんはTwitterを使っています 「なんか最近見かけた問題に近かった気がする。ELFのローダを作っていたんだけど、最低限必要なものとしDT_RELAのPT_DYNAMICに対してR_X86_64_RELATIVEのときだけrelocationをするんだけど、実装によって元の値を足したり足してなかったりで異なっていた https://t.co/HDDox4Jgv3」 / Twitter
- rust-hypervisor-firmware/elf.rs at 6c6fddf2eb290a1c2f10b54d5b659ac1b08edb2b · retrage/rust-hypervisor-firmware
- retrageさんはTwitterを使っています 「で、rustcが吐くELFだと全部元の値が0で問題にならなかったので足さないようにした」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「.debへの言及だけじゃなくて .a への言及も欲しかったかなあ(Linux 使ってる人は「ar tv /usr/lib64/libc.a」とか試してみてね) 今のarはシンボルテーブル構築機能まで含んでるけど、昔はranlibコマンドがその担当で、アーカイブの中身の先頭の __.SYMDEF ファイルとしてシンボル情報を追加してたのね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「シンボルテーブル構築機能を ar コマンドへ統合したのは System-V 系だと思う。1990年代初頭の 4BSD系 UNIX だとまだ ranlib コマンドの実行が必要だったけど、その頃既に System-V 系 UNIX だと不要になってた記憶が… 統合は機能分割的には微妙な判断だと思ってたなあ…」 / Twitter
- retrageさんはTwitterを使っています 「ld\.soのman pageにHardware Capabilitiesという項目があり、SSEとかのCPU拡張命令が使えればそれに対応したオブジェクトファイルにリンクする、っていう機能があるらしいんですが、最近の拡張命令がなくて誰も使ってなさそう https://t.co/YOw1zwU5jf」 / Twitter
- ld.so(8) - Linux manual page
- DQNEOさんはTwitterを使っています 「びっくりしたんだけど、ELFの仕様って1995年から変わってないのねw なんという息の長い技術や... https://t.co/29CdJt6aoJ」 / Twitter
- sjiさんはTwitterを使っています 「@DQNEO 実際には仕様化されてない GNU 拡張がデファクト気味に広がったり、新しいプロセッサに対応する補遺が出たり、TLS 対応の拡張が入ったり、みたいな増築はあったりします」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「elfshaker - バイナリファイル用に最適化されたgitのようなもの。多数のバージョン違いのビルド (clangなど、数百MBあるもの) を高速で切り替えるのに使う。 https://t.co/Jry3xNQg42」 / Twitter
- elfshaker/elfshaker: elfshaker stores binary objects efficiently
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linux(x86)で可能な限り小さいELFバイナリを作るには? - 普通の方法: 3998バイト - stripして-O3: 2616バイト - Cを使わずアセンブリで書く: 2604バイト - libcを使わずint 0x80: 372バイト - ELFヘッダを手作成: 91バイト - 汚いトリックで不完全なELFヘッダに: 45バイト https://t.co/ayEjII8vKD」 / Twitter
- A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux
- Kazuho OkuさんはTwitterを使っています 「linuxの場合、実行中のバイナリは書換え不可能(ETXTBSY)だが共有ライブラリは書換え自由。バイナリの書換え禁止機構も今後廃止される可能性が高い、と。 "current Linux systems will happily allow a suitably privileged user to overwrite in-use, shared libraries." https://t.co/MNP4fOoj25」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シェルスクリプトは実行途中に読み込まれるから実行中にファイルを書き換えてはいけない、って、ネイティブコードにコンパイルされたプログラムも同様じゃないの? 何か違う条件でもあるの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「MAP_SHAREDでマップしてることは覚えててもETXTBSYとか存在忘れてたわ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「"For extra fun, the changed code will only be read if it is faulted into RAM, meaning that said unhappy outcomes might not happen until hours (or days) after the file has been overwritten." えっ、いつの時代の話してるの(偉そう)??? と思ったら、コメントでツッコミ入ってた。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「答え: https://t.co/C9eKGT4Gxy」 / Twitter
- ichimalさんはTwitterを使っています 「NFSクライアント側で実行中のバイナリをサーバ側で書き換えてSEGV発生余裕です なので、正直なところETXTBSYには存在意義を感じない」 / Twitter
- ELF Golf
- binstudy/ELF-section.txt at master · warabanshi/binstudy
- GNU Hash ELF Sections | Oracle Ali Bahrami Blog
- 違法素数 - Wikipedia
- 最小限で理解しつつ作るELF parser入門 in Rust
- 共有ライブラリーを解剖する
- Linux Insides : カーネル起動プロセス part5(終) | POSTD
- 技術レポート「Linuxのライブラリ開発」|ソフテックだより|株式会社ソフテック
- Man page of ELF
- ELFの動的リンク(1) - 七誌の開発日記
- linker - What does R_X86_64_IRELATIV mean? - Stack Overflow
- mods/android/bionic/linker/arch/nacl/begin.c - arc/arc - Git at Google
- ELF - osdev-j
- ELF/実行時の話 - osdev-j
- ELF/実行時の話/プロセッサに依存する話/i386 - osdev-j
- Man page of GETAUXVAL
高速化
BOLT
- Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
- まさみさんは語りたいさんのツイート: "Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey https://t.co/BxqLSo1Bk4 おっ、これは。関数単位じゃなく分岐単位にするのかな?"
- suzakiさんのツイート: "FaceBookのBOLT:Binary Optimization and Layout Toolは面白いが、やっていることはPGO: Profile Guided Optimizationではないのか? PGOはプロファイルを取り、そのプロファイルをコンパイラに与えて、最適化するもの。違いはソースコードを必要とするかしないか、が大きく違いますが。… https://t.co/qgIw73yWLb"
- suzakiさんのツイート: "最近、この周りの調査をしているのですが、正しく『関数の実行時間』に苦労ししています。ThreadingやMulti Coreが当たり前となり、正確な時間が取れない。 使っているのはgporf, Google Perf, Oprofileですが、それぞれ一長一短あり。"
- suzakiさんのツイート: "BOLTのHPによるとバイナリはnon-PIEのみとある。現在のディストロだときつそうに思えるが、実はPIEはあまり使われてないと言う調査をACSAC17ポスターで発表しました Analysis of Code Protection Technologies in ELF binaries in Major Linux Distributions and Generations https://t.co/6oUL31K4XL"
- まさみさんは語りたいさんのツイート: "単に今実装していないだけの可能性がありますね。中を読むと機械語命令単位で解析と再構築をしてるようなので、そちらの実装を優先したのかも。… "
- Miura Hidekiさんのツイート: "https://t.co/xGnFIJn4pU 手前みそだけど、こんな感じで出来るような気がする https://t.co/9e3Rs0McNB"
- まさみさんは語りたいさんのツイート: "BOLTの場合、ホットスポットを纏めることでキャッシュヒット率の向上を狙ってるようなので、あまり個々の関数の実行時間は気にしてないのではないでしょうか。要するにバイナリ全体に対してunlikelyマクロを適用する感じでは。… "
- suzakiさんのツイート: "perfで性能評価しているので関数単位ぐらいしか取れないと思ったら perf data with LBR (branch information) と記述がありました。 https://t.co/xzdaACuvm5 Branch単位でコードのレイアウトを変えることで、ヒートマップにあるように最適化できるのか?それにしてもヒートマップが効果が良すぎる。… https://t.co/jIfcMNx0Ba"
- まさみさんは語りたいさんのツイート: "そもそもプログラムのコードの殆どはエラー処理なので、それを追い出せたら綺麗になるということなのでしょう。なのでunlikelyだなと。… "
- LLVM Weeklyさんのツイート: "Applying the BOLT post-link optimiser to Clang for up to 15% performance improvement <https://t.co/KI7RQd0YYo>. A member of Google's compiler optimisation team shares some detailed thoughts on improving scalability with linker assistance https://t.co/a1xKohkyk2"
- BOLT/OptimizingClang.md at master · facebookincubator/BOLT
- [llvm-dev] Making Clang/LLVM faster using code layout optimizations
- Fadisさんのツイート: "BOLT: 実行可能バイナリと、それを動かして得たプロファイルを入力として、分岐の確率に基づく最適化、キャッシュやTLBによりヒットしやすくする為のバイナリレイアウトの変更等を行った実行可能バイナリを生成するリンク「後」最適化コンパイラ https://t.co/jkGgM3eVvk"
- facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
- Google Propellerが大規模LLVMバイナリからさらなるパフォーマンスを引き出す
- FadisさんはTwitterを使っています 「Facebookが同社のリンク「後」最適化BOLTをLLVM本家に入れたがっているらしい。BOLTはx86_64の実行可能バイナリを実行して得たプロファイルをもとに、実行可能バイナリに分岐のヒントを挟んだりキャッシュに当たりやすい配置に入れ替えたりといった最適化を行う https://t.co/5wODv8QlLd」 / Twitter
- Facebook Is Looking To Upstream Their BOLT Binary Performance Optimizer Into LLVM - Phoronix
- R. ShioyaさんはTwitterを使っています 「@shirouzu 一般的な最適化というよりは,確か命令列の配置方法により特化していたと思います.よく通る実行パスの命令を連続した領域上に再配置することで命令フェッチの効率を上げたり(分岐で飛ぶと読み出しが止まるので連続になっててほしい),キャッシュやTLBのヒット率を上げるのを狙っていたと思います.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、ありがとうございます。 逆に言うと、バイナリのみだと目立った改善点はそのあたりだけになるんでしょうねぇ。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu なにかあれが出てきた背景としては,バイナリ最適化で試行錯誤した延長というよりは,最近?コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていたので,それを何とかしたくて考えてああなったって感じじゃないかなと思っています.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そんな話があったのですね。勉強になります。 > コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていた」 / Twitter
- ドッグさんはTwitterを使っています 「Facebook の BOLT 最適化フレームワーク,LLVM に入れたいという話は前からあったけど,正式に RFC 出たのか | '[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization' https://t.co/jq5gWi76Hz」 / Twitter
- [llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization
- FadisさんはTwitterを使っています 「FacebookがLinuxカーネルをBOLTで最適化できるようにした話。既にLinuxカーネルに用いられた事例があるプロファイルベースの最適化PGOと組み合わせてコンパイルベンチで最大で49%の性能向上が見られる、としている https://t.co/DOmIG8n9Xy」 / Twitter
- Facebook Has Been Working On BOLT'ing The Linux Kernel For Greater Performance - Phoronix
- FadisさんはTwitterを使っています 「BOLTはFacebookが開発したリンク後最適化フレームワークで、x86_64またはARMのバイナリを実行して得たプロファイルをもとに、頻繁に触られる実行可能バイナリがメモリ上にかたまって配置されるようにバイナリを編集する。キャッシュのヒット率が上がる為性能向上に繋がる https://t.co/jkGgM3eVvk」 / Twitter
- FadisさんはTwitterを使っています 「s/ARM/64bit ARM/」 / Twitter
- R. ShioyaさんはTwitterを使っています 「これはキャッシュのヒット率が単純に上がると言うよりは(ヒット率が上がらないことは無いだろうけど),実行パスが連続アドレス上に乗るので一度にたくさんフェッチできる効果と,I-TLB ヒット率向上の効果が特に効いてたんじゃなかったかなと.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「条件分岐が成立して離れたアドレスに飛ぶとそこで命令キャッシュの読み出しが1回途切れるけど,不成立で次のアドレスにいくなら同じラインに乗ってる限りは一度にガバッと取れるので,if 文の条件を変換する感じでなるべく不成立が続くようにバイナリを編集するみたいなことしてたはず.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「リンク済みバイナリ内の配置を変えるのは結構しんどくて,BOLT の論文内でも何回か「これは簡単な仕事ではない」と強調されてたけど,特に関数ポインタとか仮想関数,C++例外とかがどこからどこに飛んでるのかをバイナリから把握して書き換えるのは一筋縄ではいかないのではなかったかなと」 / Twitter
- hrk先生さんはTwitterを使っています 「@r_shioya 最後のものが大きいのじゃないかな?」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@Prof_hrk 図は clang バイナリを実行した際の,各手法を適用した場合のミス数の減少率ですが,やっぱり I-TLB が特に効いてそうです.D-Cache や D-TLB まで減ってるのは特に説明されていないのですが,ちょっと謎です・・・ https://t.co/7fgSo6bC6Q」 / Twitter
- hrk先生さんはTwitterを使っています 「@r_shioya それは、実は謎シミュレーションだったりするかもしれません。」 / Twitter
- FadisさんはTwitterを使っています 「雑なアムダールの法則: 処理の中にスケールしない部分があると、並列度が上がるほどその部分が深刻なボトルネックになるぞ! #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldはなぜ速いのか: ・中間表現を作らず、mmapした入力ファイルのデータを可能な限りそのまま使う ・可能な限りすべての内部パスを並列化 →並列化されていないとそこがボトルネックに #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「リンカが扱うデータ(シンボル名)は沢山あるから、手法を慎重に選ぶとデータ並列で性能を稼ぎやすいのか… #kernelvm」 / Twitter
- 𝚊𝚖𝚎𝚖𝚒𝚢𝚊.𝚍𝚎𝚟さんはTwitterを使っています 「rustでいうrayonみたいなアプローチか > データ並列 #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:データ並列: ・同じタイプのでーたが大量にあって、1つ1つを個別に処理 ・スレッド間の依存性がないのでよくスケールする #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・単なる並列forループなので、複雑な同期メカニズムやメッセージングメカニズムを使った並列化と比べてい理解しやすい #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:並行コンテナ: ・Intel TBB のものを使っている #kernelvm #kernelvm_tw」 / Twitter
- Hiroshi ShimamotoさんはTwitterを使っています 「Intel TBB使って、並列forループ #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldにおけるシンボル解決: ・シンボルを並行ハッシュマップに同時に追加する #kernelvm #kernelvm_tw」 / Twitter
- KOBA789さんはTwitterを使っています 「ここでマークルツリーの名を聞くことになるとは #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:Map-reduceパターン: ・リンカに-build-idオプションを渡すと、出力ファイルを生成した後に、ファイルのハッシュ値を取ってそれをファイルに埋め込むことができる #kernelvm #kernelvm_tw」 / Twitter
- データ検証などで利用するMerkle Treeのメモ – Siguniang's Blog
- KOBA789さんはTwitterを使っています 「マージソートみたいな見た目だな #kernelvm」 / Twitter
- kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「ほー。コンカレントハッシュマップ。通常、並行な処理は共有するデータに書き込む際にはそこをクリティカルクションに入れるため低速になってしまうが、コンカレントハッシュマップを利用するといい感じに並行な処理をしつつ且つ高速に動作すると。 #kernelvm」 / Twitter
- Susumu MiwaさんはTwitterを使っています 「Parallel Scanパターン #kernelvm」 / Twitter
- KOBA789さんはTwitterを使っています 「ファイルを上書きしたほうが速い、それなー #kernelvm」 / Twitter
- 百千万億 萬さんはTwitterを使っています 「Prefix Sum の並列化テクやん~ https://t.co/g9nNepI4Ai #kernelvm」 / Twitter
- Prefix sum - Wikipedia
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:細かい高速化テクニック: ・glibcのデフォルトのmallocはあまりコア数に対してスケールしない →mimallocを使っている #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・新規ファイルを作ってそこにデータを書き込むより、すでにバッファーキャッシュ入っているファイルを上書きするほうが速い #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・大量のファイルをmmapしている場合、プロセス終了に数百ミリ秒かかる #kernelvm #kernelvm_tw」 / Twitter
- 基礎から学ぶ 組込みRust 4/20 発売予定さんはTwitterを使っています 「いっぱい mmap しているとプロセスの exit が遅いから、子プロセスを作って exit させることで、そっちは時間かかってもユーザーには見えないから良し! #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:速いプログラムを書くためのヒント: ・推測せず、計測する ・凝ったコードを書くのではなく、自然と速くなるようなデータ構造を考える ・複数実装してみて一番速いものを選ぶ ・何度か同じプログラムを書く #kernelvm #kernelvm_tw」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「差分リンクうまく実装しないと遅い。リンクしなおした方が今は早い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「差分リンクはアイデアとしては速そうだけど、1個のシンボルを足した時に影響がある範囲を調べるのはローカルな処理では済まず、そのチェックに時間がかかって差分リンクは思ったほど速くならない、と #kernelvm」 / Twitter
- hotpepsiさんはTwitterを使っています 「link time optimization って中間コードをまとめるみたいな仕組みなのか、なるほど #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「LTOの挙動(llvm)中間言語として出力、リンク時にモジュールを超えた最適化を行う。処理としては重い。moldは今のところすぐに実装する予定はない #kernelvm」 / Twitter
- mold: modern linker - Google スライド
Wikipedia
- リンケージエディタ - Wikipedia
- Linker (computing) - Wikipedia
- 名前修飾 - Wikipedia
- 位置独立コード - Wikipedia
- EXEフォーマット - Wikipedia
- New Executable - Wikipedia
- COMファイル - Wikipedia
- きしもとさんのツイート: "@knok 一応英語版のほうは、いくつかの例を挙げる形で、どれが決定版だとも言えないよ、ぐらいのスタンスに見えます https://t.co/0UIBmDCnjM"
- .bss - Wikipedia
- .bss - Wikipedia
- システムイメージ - Wikipedia
Twitter
Plankalkuel
- Shinya KatoさんはTwitterを使っています 「ENIAC の頃には既にリンカとローダーのような仕組みが存在していたらしいんだけど、アセンブリすら存在しない頃からリンカとローダーが存在したってのは本当におもしろいよなぁ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「リンカもローダーもアセンブラも無かった時に、いきなりプランカリキュールですからね。ほんとうにコンピュータの歴史は面白い」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プランカルキュールでした」 / Twitter
- Hjul(ゆーる)さんはTwitterを使っています 「プランカルキュールのRubyラッパ、とりあえずこのPlankalkuelLoaderクラスの実装がすべてな気がする>>plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby · GitHub https://t.co/rzV3nq64sr」 / Twitter
- plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby
@rui314
mold
グラフ同値性判定
- Rui UeyamaさんはTwitterを使っています 「グラフの同値性判定の実用例(名前が違うだけで全く同一の振る舞いをする関数を見つけてマージするという最適化)。関数呼び出し関係というのがグラフになるので、グラフにおける同値性判定問題になる。 https://t.co/UGyHkOucy7」 / Twitter
- mold/icf.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「2つの関数について(無限に深いかもしれない)コールツリーを作ったとして、コールツリーの形と、コールツリーのそれぞれのノードのマシンコードが同じなら、その関数は全く同じ振る舞いをするので、同値ということにする。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「実際にリンカで行ないたいことは2つのグラフの同値性判定より大変で、与えられたグラフのすべてのノードのペアについて、それらから到達可能なサブグラフが同値かどうかを判定したいので、うまくやらないとめちゃくちゃ遅い。moldのアルゴリズムは暗号的ハッシュ関数を使ってその辺うまくやっている。」 / Twitter
依存関係の出力
- Rui UeyamaさんはTwitterを使っています 「I added the `--print-dependencies` flag to mold to print out all dependencies between input files. Here is an example output: https://t.co/eUIBbrFJHb If you like or dislike it, please leave a comment here: https://t.co/bLLT1pkkNc I haven't decided if we'll ship this flag.」 / Twitter
- gist:e1d70bbdebfabb881be7167314b58f48
- [ELF] Add --print-dependencies · rui314/mold@a1287c2
- Rui UeyamaさんはTwitterを使っています 「@HaskRay Do you have any opinion? I thought that just printing out not one but all undefined references between input files can be a one-stop solution for several feature requests.」 / Twitter
histric
histric-1
- Rui UeyamaさんはTwitterを使っています 「前回パースした結果をうまくメモリに持っておくことで、ホントにChromiumが2秒でリンクできるようなリンカを作れる可能性がある気がする。初回起動時はやっぱり12秒くらいかかってしまいそうだけど、初回ビルドはどうせ遅いので別にいいし。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@rui314 リンカデーモン?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@anohana 初回起動したときに勝手にデーモンみたいに裏で動き続けるようになるとか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカをメモリに常駐させておけば勝手に速くなってくれるということはなくて、ファイルを読み込むときにやってよい処理と、本当にコマンドが起動されたときに行わないといけない処理の2つにうまくステージを分割して、後半が極力早く終わるように前半をうまくやるということが必要になってくる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じのデータ構造を考えつくかどうかで、こういう分割がうまくいくかどうかが決まるんだよね。実際、コードよりも、データをどう持つかというのがプログラミングで一番重要なところなんだよな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いまのところChromeをリンクするとき、実際のデータのコピーを始められるまでの処理に400ミリ秒くらいかかってる。もう一声縮めたいけど、100万個単位で存在するシンボルとかセクションとかを扱っているわりには悪くない数字。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカたるもの、入力から出力にデータコピーするところはどうやっても省きようがないので、 - 出力ファイルのレイアウトを極力早く決めてデータコピーをとにかくさっさと開始する - データをコピーしている間に、余っているコアで付加的なデータを構築する というのが肝になるかなと。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeの入力オブジェクトファイルを出力ファイルにコピーし終わるまでちょうど1秒くらいだ。実際にはまだやらないといけないことがあるけど、目標の2秒までまだ1秒もバジェットが余ってる。これは本当に2秒切れる可能性ある。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「新しいリンカの名前、modern linker、略してmoldにしようかな。理由はカビっぽくてなんとなく面白い名前だから。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldリンカのソースアップロードしておいた(まだ使い物になるとかそういうレベルじゃないけど)。日本人らしくいらすとやの画像を貼っといた。 https://t.co/V5MIFw4jJB」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「いろいろ実験して、どういう処理がどれくらいの時間を必要とするのか調べてみてるんだけど、Chromeのリンク、2秒どころか1.5秒も可能かもしれない。とりあえずそれを目標にしてみよ。」 / Twitter
- Adam Van ProoyenさんはTwitterを使っています 「@rui314 lldだと?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@docileninja 12 seconds」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「My linker is now able to create an statically-linked executable that does nothing but runs an infinite loop.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Next I have to support common symbols, and I want to do that really quick. I mean I don't want to spend more than, say, 20 milliseconds for them in total even for a >1GB executable.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「It looks like my new linker can fix the layout of an output file for Chromium in 300 milliseconds. Copying file contents takes 700 ms, and I guess applying relocations would take another 500 ms. So a linker that links Chromium in 1.5 seconds is possible?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「For comparison, lld takes 12 seconds, and GNU gold takes more than 50 seconds to link Chromium.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Constructing a string table was a tough one because it's simply huge (~600 MiB for Chromium), but I think I managed to create it with less than 300 milliseconds overhead.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「学期末までにまだ40日あるからChromeをリンクできる完成度まで高めるの可能かもしれないな。Chromeが2秒でリンクできたらさすがにA+くれるんじゃないか(というかそんなの授業で作るレベルのものかっていう)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか今作ってるリンカ、64コアマシンなのに16スレッドくらいで性能が伸びなくなっちゃうんだよな。小さなデータセットについてじっくり計算するタスクだともっとスケールするんだろうけど、大きなデータセットを素早く処理するみたいなやつだとメモリバスが厳しくてコアを全部使い切れないみたい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Ryzen 3990Xは癖が強すぎで、やっぱ3950Xがコスパ的にも最強マシンだったか。今なら5950Xだな。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@rui314 L3キャッシュを共有するCCXあたりで8コア16スレッドなのが関係してるかもしれませんね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「マルチコア向けのプログラムを書くための高水準ライブラリとしてIntel TBBというのがあるんだけど、これの出来がとてもよい。とりあえず使っとけばいいという感じ。あと、こういうよくできたライブラリがあるからC++で書いててよかったなってなる。やっぱりC++はよい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こんなライブラリ作ってくれてるのにAMDのCPUで動かしていてすまんな・・って思うけど、でもこれとはそれと別で、なんで最近こんなダメダメなのっていう。Intelは数十年に渡って絶対王者的ポジションを占めていたのに。」 / Twitter
histric-2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このレベルになると、OS固有機能を活用しての高速化したい感じ。 (書き込み後にもOSキャッシュ載せたい場合は(DirectI/O使えないので)、fallocate + mmap後に、msyncで最後に手動一括sync出来ると良いのかな…だがlinuxにはmmapの自動syncをpendingする仕組みが無いっぽい)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うわー、tmpfsだとめちゃくちゃ速いな。RAMディスクだから当たり前なのかもしれないけど。tmpfsに出力するようにしたらChromeのリンク1秒切るのももしかしたら余裕なのかもしれない。」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@rui314 でもそれ、最終的に何処かへ copy する必要があるのでは…」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@objectxplosive ビルドディレクトリ全体をtmpfsに置くというのはわりと普通に行われているので。」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@rui314 source まるごと置くのが一番速そうだけど、何か不幸な事があると消えるスよね😅。out-of-source-tree build で artifacts だけ tmpfs 送りスか?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@objectxplosive リンカなのでソースは置かなくていいです。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Wow, copying file contents is extremely fast on tmpfs. We might be able to link chromium in less than a second on tmpfs if these numbers are true.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そろそろHello worldくらいは動くようにしないといけないな。今のところは壊れた実行ファイルを誰よりも素早く作成できるリンカになってしまっている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Hello worldを動かすために、まずシンボルテーブルを出力できるようにしてから、_startからディスアセンブリをたどっていく作業してる。何かをゼロから作るとHello world表示するまでが遠いんだぜ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうの普通はよく知らない仕組みにぶち当たって学びながら作っていくので、ときには途中でデザインを基本から変えないといけなかったりすることがあるけど、僕は一応2回めだから根本的に間違ってるところはない、はず。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか.gotを作るようにしたら_startから__libc_start_mainまでたどりつけるようになった。けどまだmainにたどりつく前にクラッシュしてる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Improved my new linker to emit a symbol table for debugging and then investigating why a "hello world" crashes before main(). If you create something from scratch, "hello world" isn't the first step but is actually an achievement.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I don't know why, but this kind of mysterious low-level errors can almost always be fixed in a few days. The most difficult part is to set my mind to dive into disassembly and hexdump. I guess I've spent far more time for procrastinating than for debugging.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeのリンク、2秒じゃなくて1秒目指そうぜという気分になってきた。cpがちょうど1秒くらいだから、cpと同じ速さというとインパクトがでかい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「出力ファイルをcpするのと同じくらい速いリンカなんて原理的に不可能そうだけど、①そもそもcpがファイルコピーコマンドとしてあまり速くない、②ファイルの内容をコピーしてる間に別のコアで時間のかかる計算をする余地がある、というので、絶対無理というわけでは多分ない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「_startの直後に呼ばれる__libc_start_mainの中でクラッシュする問題は直したけど、まだmain()より前のどっかで落ちてる。正直こういうバグ直すのめんどくさい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「"Hello world"が静的リンクできる程度のリンカを書くの、プログラムが低レベルでどう動くのかを理解しないといけないのでめっちゃ勉強になるな。一回書いたでしょという話はあるけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか芋づる式にいろんな機能を実装する必要があって終わりが見えない。Hello world難しすぎワロタってなってる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おおお、数日間のデバッグの末ついに自作リンカでhello worldがスタティックリンクできた! main()より前に実行されるコードの実行を逆アセンブリでひたすら追ったりして、なかなか大変だったぜ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「やはりこういうプログラムを作るときに一番必要なのは、くじけない心。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Hey, so I managed to fix critical bugs so that my new linker is now able to statically-link a "hello world" program against glibc.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今クオーターの終わりまでにChromeがリンクできるようになるわけ?という質問には、善処しますとしか言えなかったわ。Hello worldやっとできたところからChromeを出力できるまで1ヶ月で足りるか・・?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Bumped up my (already ridiculously ambitious) goal from 2 seconds to 1 second to link chromium. I *believe* that's not entirely impossible. https://t.co/V5MIFw4jJB」 / Twitter
histric-3
- Rui UeyamaさんはTwitterを使っています 「自作リンカでビルドしたhello world、./helloだとメッセージがでるのに./hello | catだと出なくなるというバグがあった。単に一つリンカの機能が欠けてただけだったけど、こんなバグどうやって直すんだ(直したけど)。」 / Twitter
- gitster@ Git v2.30 12月28日発売 予約受付中(うそよ)さんはTwitterを使っています 「@rui314 こんなバグどうやって発現するんだ?という方が気になりますね。実行時にwrite(2)の行き先がttyかパイプかによって挙動を変えるなんて、狙ってもリンカレベルでどうやるんだろ?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 デフォルトだとstdoutは行バッファリングですけど、isattyがfalseだとフルバッファリングになるので、そのときにはexitするときにバッファをフラッシュするんですよね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 フラッシュする関数のリストは__libc_atexitというセクションに入っているんですが、リンカが定義するべき__start___libc_atexitと__stop___libc_atexitというシンボルを定義しわすれていた。その結果exitのタイミングでstdioの後始末をする関数が全然呼ばれていなかったという。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ここ1ヶ月くらい土日もなく起きてる時間コードばっかり書いてる気がする。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現段階で2500行くらいか。僕の野生の勘ではトータル6000行くらい書けばとりあえずChromeをリンクして動かせるんじゃないかと思うんだけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「コードも凝ったところがなくてかなりわかりやすく書けてると思うし(こういうあまり誰もよく知らない低レイヤだと「何をする必要があるのか」というのを知るほうが大変なんだけど)、速度も出るし、いまのところ結構よい感じ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「僕は自由研究の工作としてのプログラミングが好きなだけなので、あんまり競技プログラミングとかにはやる気がわかないのであった。食わず嫌いもよくないからやろうと思ったことはあったけど、結局やらずじまい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最近は競技プログラミングの人気が上がっているので、ある程度以上できるプログラマだとそういうのやってると思われることもあるけど、別にそんなことはないです。というか一般にはそういう話をあまり見聞きしない。趣味でやってていい成績だしている人はすごいなぁとは思うけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカを作っているとどんなバグがでてくるのかをまとめてみた。これからも更新予定。https://t.co/SuxohXLQTO」 / Twitter
- mold/BUGS.md at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「I decided to keep a note about interesting linker bugs before I forget. I'll update this doc as I meet a new one. https://t.co/SuxohXLQTO」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「When working on the binary level, a very subtle bug can cause a program crash with a very little trace of what was wrong. I still don't know how to efficiently debug this kind of issues, but it looks like patience is most important...」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「んー、やっぱり10ミリ秒単位の最適化を考えたりするのは、コンピュータをうまく使っている感じがして楽しいな。1000ミリ秒でchromeをリンクするという目標があると張り合いがあってよい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「速度を知りたいだけだから、やっつけなプロトタイプ作ったら、変種パターンでの確認も必要となり、速度実験用プロトタイプこそ最初から拡張性考えて作っとけ、みたいな羽目になることある(笑)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「高速化できそうなアイデアがあったので実装してみたけど速くならなかったのでボツ。こういうの、いろいろアイデアがあっても結局最後は実装して試してみるしかないので、プログラムを高速化するためには自分のプログラミングも速いほうがずっと有利っていう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一般的には、最初から拡張性を仕込むのは悪手なこと多い。 思考実験的に、こういう拡張はここを変えればいける、という見通しだけくらいで良い。 YAGNI https://t.co/KqTrhwJLM6」 / Twitter
- YAGNI と premature complication #4
- Rui UeyamaさんはTwitterを使っています 「Chromeを1秒でリンクするのはどうやっても無理かも。データをコピーするだけで0.75秒くらいかかるから、まともな処理をするには残りの時間が少なすぎる。1.5秒でリンクするのなら現実味あるかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「データをmemcpyでコピーするところは数コアでサチるので、根本的にメモリバスがボトルネックで、速度を上げようがない(多分)。」 / Twitter
histric-4
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても仮想ページの初期化コストって、0初期化よりも、割り込み→物理ページ割り付け、にコストが掛かっている感じある。 …だとすると large page明示指定できるなら高速化可能?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 手元のWindowsだと(i5-8600K)、memcpy自体より仮想メモリのページ初期化コストが大きいですね。 1GB領域のmemset/memcpy速度実験。 VirtualAlloc(≒mmap(anon)) .. ほぼノーコスト 1st memset ... 2.5GB/s(4KBページの先頭のみ初期化だと3.3GB/s) 2nd memset ... 21GB/s 2nd memcpy ... 10.6GB/s」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu mmapしたタイミングでページテーブルも埋めるMAP_POPULATEというフラグがあるんですが、それをつけても速くならなかったんですよねぇ・・。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 同じmmap領域に、memcpyのセットを2回以上行っても、速度は大して速くならない感じでしょうか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの large page は使い辛そう。 https://t.co/cEh2whGBfX」 / Twitter
- やねうら王、Large Page対応で10数%速くなった件 | やねうら王 公式サイト
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu メモリが十分余っているなら、連続する仮想アドレスに対するアクセスを検知して後続する有効な仮想アドレスを事前に割り当てるサイズを適応的に拡大していけば、page fault handler の呼び出し回数と page table の書き換え回数の両方をだいぶ減らせそうな気がします。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu やねうら王の場合、ページ自体は既に割りつけられていてアクティブに使われている状況下での高速化でしょうから、TLB miss低減の方の効果でしょうね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda 検知+適応的に、というのはOS側がそんな挙動をすれば…という意味でしょうか?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu その意味でした。 カーネルの改造が必要なのでWindowsの場合、Microsoftでないとできないっすね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「とりあえずChromeは大きすぎだから、gitを自作リンカでリンクして動かすというのを目指すのがよさそう。自作Cコンパイラでgitをコンパイルして動かすのよりずっと簡単な目標でしょ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VirtualAlloc(MEM_LARGE_PAGES) の結果。 やはり物理ページ割り付け・初期化コストが物凄く減った。 (なおVirtualAlloc自体の時間は僅かに掛かる…遅いと125GB/s、速い場合は計測不能) 1st memset ... 21.2GB/s 2nd memset ... 31.7GB/s 2nd memcpy ... 10.6GB/s https://t.co/xPUE5uqvS5」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu 入力ファイルをMAP_POPULATEつきでmmapして効果ないなぁと思っていたんですが、出力ファイルをMAP_POPULATEつきでmmapすると顕著に効果ありました。その代わりmmapが非常に遅くなりますが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 mmap(anon) + write1回の方が速かったりしませんかね。 (direct I/O write 1回(必要あれば追加truncate)が一番速そうですが、リンカだと通常writeでキャッシュに載せた方が後々嬉しいのでしたっけ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 あと、Win32だと large page で初期ページ割り付けコストがかなり減るみたいですね…mmap(MAP_HUGETLB)で意味があるかはわかりませんが。 https://t.co/BOaM1tVLDu」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ただし 2nd memcpy が 15.8GB/s 出ないのがやや謎…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この結果を見ると、もう少しWin32でもlarge pageの利用ハードル(gpeditでユーザ許可必要、原則要admin)を下げて欲しいところ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ついにいい方法を見つけた気がする。出力先のファイルがすでに存在する場合、新たなファイルを作るかわりに、既存ファイルをそのままmmapして内容を上書きしてしまえばいいんだ。遅いのはページフォールトではなく、ファイルシステムが新たなブロックをファイルに割り当てるところだった(多分)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「これでファイルの書き込みにかかる時間が750msから500msになって、1秒切りのゴールにぐっと近づいた感がある。まあデメリットとしては、中途半端なところでリンカが殺されると食われた状態の出力ファイルが残るというのがあるけど、これは速度のために許してもらおう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux kernel を漁る時に、関数ポインタテーブルになってる部分が追いづらい… fop->write() みたいなコードになっている時、代入されうるxxx_write がリスト選択して追えるサイトって無いのかしらん?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 昔のSolarisのコードだと write(2) の entry部分で rw_lock(inode, writer_mode) みたいなコードでシリアライズ強制でしたが、今時のwrite(2)でも同一fdでは並列動作しないという感じですかね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu MAP_ANONでmmapした領域にmadviseをするとtransparent huge pagesを有効にできたりするんですが、そういうのを試しても速くなりませんでしたね。最後のwriteが遅すぎて(O_DIRECT使って、かつ複数のスレッドから呼んでも)。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…通常の方式だと、物理デバイスへのmsync/fsyncは待たずに終了なのでしたっけ。 (だとしたら、O_DIRECTは遅くなる方向にしか効かないですね) あと、O_DIRECT + 複数スレッドというのは、write(2)を複数回実行ということでしょうか…?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu そうです。writeに2GBのバッファへのポインタを渡してもカーネル内でシングルスレッドでデータコピーしているぽいので、バッファを複数のブロックにわけて複数のスレッドからpwriteしてみました。」 / Twitter
histric-5
- Brian GesiakさんはTwitterを使っています 「@rui314 I'm not an expert by any means, but would it be possible to install a signal handler to delete the file if mold is halfway through updating it? Or is the overhead of adding a signal handler not worth it?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache The usual technique to create an output file is to create it with a temporary name and then rename it an output filename. Since renaming is atomic on filesystem, it is either you'll have the original file with the original name or the new file will replace the original one.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache But if you overwrite an existing file, you can't undo it easily. If you keep the original file contents somewhere, you may be able to write it back, but that incurs the cost of copying file contents at the beginning.」 / Twitter
- Brian GesiakさんはTwitterを使っています 「@rui314 Oh yeah, totally. I thought a concern would be having a file remain there, but with broken content. If mold is interrupted, I thought it'd be nice to delete the half-overwritten file, since it almost certainly shouldn't be used.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache Ah, sure, good point. Deleting a broken file is probably better than leaving it as-is.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「一回作ったことがあるリンカをもう一回作るというよく知ってるテーマでここ一ヶ月ほど暇を惜しんでコードを書いてて、自分一人でやっているし、条件としては最もよいはずなんだけど、月産2700行しか書いてない。プログラマの生産性なんてこんなものです。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「簡単なプログラムがリンクできるようになったので、リンカのソースをいじっていろいろ整理してる。動くようにする(なにをするべきかを学ぶ)のと、その過程で学んだことを元にコードを整理するというのは、やっぱり小さいステップで交互にやるのがよさそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうのは多分ある程度は経験が必要で、経験が浅いと不必要に汎用的(と自分は思っているけど本当は単にややこしいだけ)なコードを書きがち。多くの場合、とりあえず動くやつを書いて、あとから必要に応じて整理したり書き直したりするほうがいいと思う。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「あとこういうのは、コードを大切にしすぎないのが多分重要で、リファクタリングしたつもりで書き直したけどやっぱり後で元の方法に戻した、とかもいいと思うんだよね。そういう試行錯誤をするためにはコーディングとかタイピングが速いほうが有利なので、量が質に転化するみたいなところはある。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldもいい感じに開発が進んでて、8コアくらいの中堅PCでもChromeみたいな巨大なプログラムを1秒以内でリンクできるようになる可能性ある。しかしこの目標達成できたら、ビルドのリンクのステップが遅いという何十年もプログラマを悩ませてきた問題が、ついに完全かつ最終的に解決されてしまうのでは?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「とりあえず自作リンカでgitをリンクできるようにしようとしてる。なんかすごく似たことをつい数ヶ月前にもやってたような・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんかリンカばかり作ってるけどこれは偶然の成り行きで、最初にlldを作ったときは、コンパイラとリンカを作らないといけないけどどっちがいい? とマネージャに聞かれたので、コンパイラはむずそうだけどリンカは気合いで作れそうだなと思ってリンカにしますと言ったからそうなっただけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「言語処理系好きなひとはコンパイラをやりたがるからリンカを選ぶ人は珍しいなと言われたんだけど、そもそもそれまで僕はJavaとJavaScriptでWebフロントエンド書くみたいなことをやっていたので、まいっかという感じであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今また別のmoldというリンカを作っているのは、学校での研究としていい感じに動くコンパイラを作ろうと思ってたんだけど、学期が始まった後に「作ってみました」だけじゃどうかなぁ・・と教授に言われたので、しょうがなく超速いリンカを作るというプロジェクトに切り替えただけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じに動く面白いものを作りたいとは思うけど、具体的なテーマそのものにはあんまりこだわりないかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「マネージャにはWindows向けのちゃんと動くリンカを作ってよと言われただけだったんだけど、すごく速いやつを作ったらこれをUnixに移植して使いたいという人たちが出てきて、僕もそれに取り組んでた。なので高速Unixリンカを書くというのは完全に脱線状態なだけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今週の教授との定例ミーティング終わり。なんでmoldが速いくてどこらへんに新規性があるのかをプレゼンを用意して説明したら喜んでもらえたぽい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おお? 自作リンカでリンクしたgitが動いた! なんかコマンドが終了するタイミングで必ずクラッシュするけど・・。」 / Twitter
- dancerj 🗾さんはTwitterを使っています 「@rui314 .finiセクションかなんだったかデストラクターのセクションだったかが順番間違ってるとかありがち・・・」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@dancerj 普通にありえる」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今日のプレゼン資料の1枚目には、「catコマンドより速いリンカを作ってビルドのリンクが遅いという問題を最終的かつ完全に解決する」とババーンと書いておきました。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git --helpが最後に落ちるのは、stdoutがあらぬところを指しているからだった。コピーリロケーションを実装したら動くようになった。stdoutがデタラメな値なのに途中まで動くっていうのもすごいけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「次はenvironがあらぬところを指しているらしい。オールスターだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「environ変数が見えない問題は直した。なんかコピーリロケーションの微妙な問題だったんだけど、こんな世界でも100人くらいしか実際の仕様を知らなさそうな微妙な動作(文章化されてない)にあらゆるLinux実行ファイルが依存してていいんだろうか? 低レイヤだとありがちな状態だけど・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや、なんか違うかも。仕事ももちろんフルタイムで取り組んでいたし、OKRとかで期末までに成果を上げてほしいという仕組みがあったし、いい仕事をするインセンティブもあったと思うけど、今ほどのやる気はなかったような・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「A+が欲しいから選んでみたテーマだけど、最速リンカを作るというのはいいテーマだったかも。というかフルタイムで取り組める時間と、学期末までに成果を出したいという気持ちの両方があれば、いろんなテーマでそこそこ面白いものが作れるんだろうけど、学校というのはそういう意味で悪くないのかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんとなくあと数日デバグを頑張ったらgitが動くようになりそうという気がする。moldでgitがリンクできるようになったら、chibiccとmoldでgitをビルドしてみて自作ツールチェインの完成度の高まりを感じてみたい。」 / Twitter
histric-6
- Rui UeyamaさんはTwitterを使っています 「よっしゃ。chibiccでコンパイルしてmoldでリンクしたgitのバイナリで自作ツールチェインのリポジトリをgithubにpushするのに成功した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現在3677行。そんなに欠けてる機能があるとは思えないから、多分4000行でChromeをリンクできるリンカを書ける。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git range-diffの表示するdiffが少しだけ違うという問題をデバグしてる。リンカのエラーでこんな微妙な問題、どうやったら生じるんだろ?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「これはlibcにregexecという同名の関数が複数含まれていて、想定してるのと違う古いバージョンのを偶然使ってしまっているからぽい。つまりシンボルバージョニングに対応しないといけないぽい。バージョニングには対応しなくても動くと思っていたけど、想定甘すぎた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldでリンクしたgit、テスト完走した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git linked with mold (my new linker) can now pass all its tests.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「学期末まであと1週間半で、目標のchromeはまだ動かすには至ってないけど、gitが動くところまで来てるんだし、現時点でもA+もらえるんじゃないかなぁ。lldの10倍速いリンカを作ってみるなんて、学生の一学期分の研究成果としては正直やりすぎなくらいだろうし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldでmold自身をリンクして全部普通にテストが通った。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今週のウィークリーミーティング終わり。USENIX ATCに出すかーみたいな話をしたけど、それなら論文提出締め切り1月15日なんだよね。忙しくなりそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おお?? 新作の自作リンカことmoldでリンクしたChromiumが、あっさりと普通に起動してしまった。ここまで2ヶ月しかかかってないぞ。 https://t.co/Vj9iHq7Kdh」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kw_udon_ いまのところ5秒弱かな。これでもlldより倍以上速いけど、ファイル読み込みんだ後のイメージをデーモンにしてメモリに常駐させることで1秒切るところまで縮めるつもり。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kw_udon_ 実際ファイル読み込みのところとかを除くと0.8秒くらいしかかかっていないので、1秒切りは普通に可能な目標という感じ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Looks like Chromium linked with mold (my new linker) started working just fine. I've spent only two months so far for this project, though. https://t.co/WOEAJPtReg」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカを書くのは実はそんなには難しくなくて、moldも4000行しかない。ただ、ドキュメント化されていない隠れた仕様が多い上に、それを正しく実装してないとわけのわからないエラーで落ちる実行ファイルができてしまうパターンが多いというのがつらい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「教授との最終のミーティングが終わった。なんかポリシーとして(?)A+はないけどAだし、PhDいくならいい推薦状書くよと言っていたけど、A+ないんか〜 最初から言ってくれ〜。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この論文、USENIX ATCよりACM OOPSLAに出すほうがよくない?という気がしてきた。教授に相談してみるか・・。しかし教授も正直この分野そんなに詳しくないと言っていたからどうしたもんか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMをライブラリとして使ってELFファイルを読み込んでたんだけど、自前コードで書き直してLLVMを使わなくすることに成功した。そんなに重要じゃない使い方なのに大きいライブラリに依存してるのってあまりよくないので。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMへの依存性をなくした代わりに、string_viewとかspanみたいなC++17/C++20の機能使いまくりのコードになってしまった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うーん、やっぱりC++は手に馴染むな・・。書きやすいし性能も出るし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「C++に慣れれば慣れるほど構造体に毛の生えた程度のbetter C的な書き方になっていくのは気のせいか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold普通にリンカとして悪くないのでは? という完成度になってきたけど、コードはC++で4600行。C++標準ライブラリにしか依存してないし(マルチスレッドのためにIntel TBBは使ってるけど意味的には無視できる)、シンプルで高性能で結構よいのでは。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、お膳立ては揃ったから、いよいよChromeを本当に1秒でリンクできるようにしてみるかな。ただ、予備実験ではfork(2)をすると(多分copy-on-writeのオーバーヘッドのせいで)リンクに1.5秒くらいかかるようになってしまったので、ちょっと別の方法を考えないといけない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うまくやれば多分1秒どころか800ミリ秒くらいでいけると思うので、単なるファイルコピーより速いリンカという目標を達成できると思う(cpとかcatだと1.1秒くらい)。」 / Twitter
- 成瀬さんはTwitterを使っています 「よっしゃ、vfork(1)の出番だ!!」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「あら? moldでのChromeのリンク時間、mallocをtcmallocとかtbbmallocに換えただけで4.5秒→2.5秒になってしまった。glibcについてくるデフォルトのやつはマルチスレッドでそんなに遅かったのか・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「メモリをたくさん使っているプロセスは_exit(2)ですら500ミリ秒くらいかかったりするので、それを隠蔽するようにしたら2.0秒になった。lldだと11.5秒くらいかかるから、もうデーモン化みたいなしゃらくさいことをしなくてもこれで十分じゃないか?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするのにかかる時間です。64コアマシンだけど、16スレッド動かせば十分という感じ。もっといい感じにスケールしてほしいけど、まあこんなもんかなぁ・・。 https://t.co/gZM7ejtbEt」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかし2秒だと普通に使ってて「はやっ」ってなるわ。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@rui314 「アムダールの法則」のカープになっているように見えます。」 / Twitter
- アムダールの法則 - Google 検索
histric-7
- Rui UeyamaさんはTwitterを使っています 「mold、完全に目処がついたと言ってよさそう。Chromeをリンクするのに2.5秒、直前に同一コマンドを実行してファイルをプリロードしておくと、ほとんどの入力ファイルが同じ場合に0.8秒という結果になった(16スレッドでテスト)。ほかのリンカだと最低10秒かかるから、めちゃくちゃ速いといっていい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「どう考えても仕事をやめた後のほうがいいプロダクトを作れている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この個人プロジェクト、別にGoogleでやるのも不可能じゃかったとは思うけど、こういう自由研究みたいなのを一人でできる立場になるのって結構大変だと思うんだよね。かといって別の本業プロジェクトの片手間でやるとなんか肩身狭いし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかし2ヶ月頑張っただけでこんなに劇的に速いリンカが作れるというのも、簡単すぎてちょっと変な話なんだよな。リンクが遅いというのは多くのプログラマがビルドコマンドを叩くたびに感じていることで、なぜそういう日常的な問題がこんなに放置されていたのか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「まあ「作るという発想がないから」というのが答えなんだろうけど、同じ理由で、広く使われているのにしょぼい状態で放置されているものってたくさんあるのかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Intel TBBがなければこんなに簡単にパラレルなプログラムは書けなかったのでIntel TBB様々だわ。よいライブラリだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldにバックグラウンドでのファイル読み込み機能を実装して、直前(数秒前とか)に同じコマンドを--preloadオプション付きで実行しておくとChromeが1秒でリンクできるのを実際に確認した。これで数ヶ月前に立てた目標を無事達成! 無理そうな目標があっさりと実現できてしまいましたね・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最後の最後にUNIXドメインソケットとかfile descriptor passingみたいな知識が必要になって、UNIX詳解プログラミングを読んでおいてよかったなと思いました。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldリンカいまでも十分に速いけど、一層速くするには自分でコンカレントなハッシュマップを自分で書かないとダメかもな。ここらへんを参考にちょっと書いてみてもいいかも。 https://t.co/O2alK8E3jS」 / Twitter
- Algorithmic improvements for fast concurrent Cuckoo hashing | Proceedings of the Ninth European Conference on Computer Systems
- Rui UeyamaさんはTwitterを使っています 「64コアThreadripper使い切るの難しいというか、アプリケーションによってはほとんど不可能だな。今書いてるやつだと10コア20スレッドくらいで性能が頭打ちだし、これ以上スケールするように書ける気がしない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I/Oが少なくてずっと計算をするようなタイプの処理がたくさんあるなら、64コアまでスケールするのかもしれない。そういうワークロードじゃなければ、Ryzen 5900X(12コア)か5950X(16コア)あたりで十分そう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「もう十分に速いから最適化はこれくらいにしとこうかな。2GBのChromeのファイルを10コア20スレッドで1.8秒でリンクできるし(デーモン化みたいなトリックなしに)、これ以上はどんなにがんばっても数百ミリ秒しか速くならないだろうし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いつのまにかmoldがRedditに投稿されていた。この作者の目標は過大すぎて疑わしいみたいな感じのことを言っている人もいるけど、README更新してなかっただけでもう結構実証されてるんだよな・・😅 https://t.co/VX2I0PXfeD」 / Twitter
- mold: A Modern Linker : cpp
- Rui UeyamaさんはTwitterを使っています 「C++で例外をスローできるようになった(なんかリンカがテーブルを作成したりしないといけない)。これなしでChromeをリンクして動いてたってのはすごいな。。しかしこれで主要機能を全部実装したのでは。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 Chromeは例外使ってないのを徹底してるってことですか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 でもなんかいろんなライブラリが入っていて、どれでも使ってないというのはありえるのかなぁ。まあ、起動してちょっとサーフィンするくらいなら使ってないのかも。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 使ってたらビルドできなそうじゃないすか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 リンクはできちゃうんですよ、ただそのままだと例外が投げられたタイミングでハンドラが見つからなくてクラッシュするだけで。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 なるほど、単にセクション無視しちゃうだけと」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 例外のハンドルの仕方がわかるレコードがたくさん入っているセクションがあるんですけど(.eh_frame)、これをリニアにスキャンするとめちゃくちゃ遅いので、関数のアドレスで二分探索できるテーブルがあって(.eh_frame_hdr)、これを作らないと例外がキャッチできないという。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 (多分あんまり)undocumented world だ」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「高速化のためのアイデアとそれを実装しなかった理由というのをREADMEに追記してみた。実装からは何が実装されたのかがわかっても、何がなぜ実装されなかったのかはわからないので。 https://t.co/V5MIFw4jJB」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカの機能を説明するためにUnixの歴史を説明するというアアプローチになった(未完)。 https://t.co/iCaLUnJSzi」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「moldのマルチスレッドの使い方について追記してみた。 https://t.co/IS736Nd7lT」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするときにgoldで50秒、lldで5秒かかる機能を1秒に縮めることができた。新規性あるアルゴリズムぽいから論文書くか。」 / Twitter
histric-8
- Rui UeyamaさんはTwitterを使っています 「しかしグラフの問題に帰着するのでいかにも先行研究がありそうなんだけど、あんまり詳しくなくて(というか分野が深すぎて)どうしたもんだか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「goldで50秒かかる処理をlldで5秒にしたときは、何週間もアルゴリズムについて考えていたし、結果として劇的に速くしたと思ったもんだけど、数年後にまたいいアイデアがわりと簡単に出たりするから面白いもんだ。今回は1〜2日しか考えてないし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや、これは去年、学校の授業(具体的には暗号の授業)でいろいろ課題をやったから簡単に考えつくことができたアルゴリズムだな。数年前より成長している。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じに計算量が少なくて並列化もしやすいアルゴリズムを考えて、実際のコンピュータでいい感じに動くように実装するの(コンパクトなデータ構造を考えてキャッシュによりやすくするとか)、腕の見せどころという感じだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「アルゴリズムを考案するのは面白いけど、それを性能評価できるレベルまで実装するのは結構辛い。実装してみたら大して性能出ませんでした、というのもあるし。どうしても根性みたいなものがいる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「さらにちょっと最適化して1秒→770ミリ秒まで縮めた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや違うな、同じコア数だと940ミリ秒くらいだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最近考えていたアルゴリズムについてコメントを足してみようと思ったけど、これこそコメントじゃなくちゃんと書くべきなのかもな。正直こういうグラフの問題は図がないとわからないし。 https://t.co/UGyHkOucy7」 / Twitter
- mold/icf.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「今書いてる論文、思ってたよりちゃんと数学的な証明を書かなくてはいけなくて、宿題で証明問題がやたら出ていたグラフ理論の授業ありがとうという気持ちになっている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「昨日まで考えていた証明に穴があったので今日またずっと考えてたんだけど、正しい証明にたどり着いた気がする。数学っぽいやつは時間がやたらかかる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「僕が今まで当然正しいと思って使っていたアルゴリズム、よく考えてみると本当にきちんと動くかどうか全然自明じゃなかったという。怖い話だ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「論文書くの疲れた」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「普通にLinuxで動くリンカを作るために必要な機能をまとめたサーベイ論文も書きたいんだよな。これは本当に必要というか、実際のコーディングよりもこの調査のほうが大変という状態なので。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「サーベイ論文というと近年の研究をまとめたものというイメージだけど、こういうなんのドキュメントにもなってないものを文章化するみたいなやつもサーベイ論文と言うんだろうか。まあサーベイではあるからサーベイ論文なのかな?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「論文、アルゴリズムと実装の部分は書き終えたから、あとはベンチマークだ。これは結構手間かかるだろうなぁ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なぜmoldをRustで書かないのかという質問が来たけど、 1. C++が一番慣れてる 2. Intel TBBみたいな良いライブラリがそろってる 3. こういうプロジェクトでは、実装しようとしているもの自体が興味深いのであって、どの言語で実装するかはそこまで重要ではない という感じかな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、Firefoxのビルドもびっくりするほど速い。ビルドしたバイナリが動作しないという点を除けば完璧だな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「お、moldでFirefox動いた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「.soファイルやビルド途中のアーティファクトも含めて、ChromeとFirefoxの全体がmoldでビルドできた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんかリンカの微妙なバグにより、Ctrl-wでウィンドウを閉じたときにChromeがクラッシュするという謎の問題が発生したけど、エスパーにより数時間で原因が判明してしまった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMをリンクしてテストが完走した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold is now able to link Chrome, Firefox and LLVM! Still buggy but getting closer to be a production quality linker.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Everybody loves benchmark, so here are some numbers. mold vs. lld link time: - Chrome (1.9GB): 2.1s vs. 12.0s - Firefox (libxul.so, 1.3GB): 1.5s vs. 6.2s - Clang (2.1GB): 2.0s vs. 4.7s So mold achieves roughly 1GB/s throughput. All builds are w/ debug info.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「現代的なソフトウェア産業の方向性とは全然違うけど、いい感じのプログラムを一人で作ってるときが一番楽しいな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold isn't just fast but small and simple. Currently 6.5 kloc. IMO its source code is pretty clean. I'd like to write "demystifying ELF linking" paper based on it if I have enough time.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、なんじゃこりゃというくらい新機能追加が簡単だな。目ぼしい機能は実装してしまったから後はバグ出しか。」 / Twitter
histric-9
- Rui UeyamaさんはTwitterを使っています 「It is sometimes surprisingly hard to modify a build system to use an alternative linker, so I made it easy by a hack. By running make as `mold -run make`, mold intercepts all invocations of /usr/bin/ld to redirect it to itself. https://t.co/0UXU4iT9xP」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「I was trying to build various programs with mold for testing, but it's not easy to figure out how to make them to use the nonstandard linker. Me: "But isn't this exactly the issue a potential mold user would face on day one?" So I came up with this hack.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「For now, mold can link chromium, firefox, llvm, mysql, postgresl, ffmpeg, libunwind, openssl, zlib & a few more. What else?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現状で9000行くらい。機能を足していくとどうしてもコード量は増えてしまうな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「x86-64以外に移植するためにmoldを改造してみた。アーキテクチャ依存の部分をくくり出すんじゃなくて、ほとんどのクラスと関数をテンプレートにして、実質4パターン(ELF 32/64 little/big endian)のコードをまるごと生成するという荒業だけど、まあ悪くなさそう。 https://t.co/V5MIFw4jJB」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Trying to make mold portable. Instead of separating arch-dependent code from indep one, I made almost all functions and classes template to virtually create 4 different linkers (ELF 32/64 LE/BE) living in a single exe. Kinda brute force and little bit inefficient but not too bad.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold is gaining i386 support. It can read i386 object files and create an i386 exe, though the produced binary crashes inside libc_start_main.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldはx86-64ベタベタで書いてたけど、その気になれば2日でi386サポートが大体動くところまで改造できるわけで、最初は移植性について考えないというやり方で正解だった。新しくプログラムを書くときは、あれもこれもと考えがちだけど、ある程度完成するまで余計なこと考えてもしょうがないんだよね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Dynamically-linked "hello world" program worked with mold/i386! i386-dependent code in mold is just this: https://t.co/JOnDDKiGOO」 / Twitter
- mold/arch_i386.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「mold no longer leaks memory. I don't care too much about memory leaks if it is a short-lived program such as a linker, but I did it because it wasn't too hard to fix leaks. It was actually trivial thanks to AddressSanitizer.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I made a few changes to make mold suitable to be installed under /usr/bin. One thing I had to do was to write a man page. https://t.co/gjGgRBmTqr」 / Twitter
- Man page of MOLD
- Rui UeyamaさんはTwitterを使っています 「Finally figured out why go's gc collects live objects only when some .so are linked with mold. It was extremely puzzling and took a few days to debug. Turned out it was a go's bug and not mine. https://t.co/R1NaMn5Y2Q」 / Twitter
- cmd/link: `go tool dist test testshared` failed if linked with lld or mold · Issue #46560 · golang/go
- Rui UeyamaさんはTwitterを使っています 「I already made a change to mold to appease go, even though technically it's their fault. It's an inconvenient fact: complying with the standard is not enough, you need to make it bug-compatible to make your linker work in real life.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldのclangのリンク時間を3.6s→2.5sに縮めた。出来合いの並行ハッシュマップだと性能が出ないので、HyperLogLogアルゴリズムでテーブルサイズの見当をあらかじめつける&並行ハッシュマップを自分で書くという合わせ技。 https://t.co/1nJcV4exCV」 / Twitter
- Optimize string merging · rui314/mold@41b2fa7
- Rui UeyamaさんはTwitterを使っています 「moldリンカは速いけどメモリをそこまで使うわけではない。というかメモリは可能ならあまり使わないほうがキャッシュ効率が上がってよい。なので大量にアロケートする構造体のサイズとかは結構気を使っている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そういえば先月、プログラムのビルドやロード周りとリンカ、および並列プログラミングについて講義をしました。」 / Twitter
- 42 Tokyo | 仏発ソフトウェアエンジニア養成機関さんはTwitterを使っています 「42東京で行われた「lldリンカ」プロジェクトオーナー植山類さんによる講義のアーカイブを公開しました🎥 学生が直接オファーしたことから実現した講義でした! 植山さん @rui314 ありがとうございました🙇♀️ ▼ アーカイブ(全2回) part1: https://t.co/aGvzRDWIa5 part2 : https://t.co/phmmikWyo1 https://t.co/uo4A96bqll」 / Twitter
- 【第1回】植山類さん講演会 - 42 Tokyo - YouTube
- 【第2回】植山類さん講演会 - 42 Tokyo - YouTube
- FadisさんはTwitterを使っています 「mold初の安定版リリースとなるmold 1.0.0がリリースされたらしい。moldはGNU ldを置き換えて使う事を意図したリンカで、不要なデータのコピーを回避する工夫と並列化可能な処理を積極的に並列にする工夫で同じく高速なldを目指して作られたgoldやlldを圧倒する速さを叩き出す https://t.co/aLJ8xIoje7」 / Twitter
- Release mold 1.0 · rui314/mold
- Google Chromeのリンク時間24倍高速化、最新リンカー「mold 1.0」登場 | TECH+
- Rui UeyamaさんはTwitterを使っています 「mold gained yet another performance optimization. It reduces libQt6Gui.so link time from 1.10s to 0.05s thanks to the Aho-Corasick algorithm. https://t.co/dqWkLOMdoc」 / Twitter
- [ELF] Use Aho-Corasick algo to handle version script patternsC · rui314/mold@d0c1c4d
- [ELF] Support LTO plugin API · rui314/mold@46995bc
- Rui UeyamaさんはTwitterを使っています 「mold now gained --shuffle-sections to randomize address space by shuffling input sections. This commit uses Xorshift random number generator and the Fisher-Yates algorithm to shuffle sections. https://t.co/wQVMzjtm0d」 / Twitter
- [ELF] Add the --shuffle-sections option · rui314/mold@7e91897
- リンカー「mold 1.1」が公開、LOTをネイティブサポート | OSDN Magazine
- FadisさんはTwitterを使っています: 「mold 1.2がリリースされたらしい。moldは不要なコピーの回避や積極的な並列化等の工夫で既存の実装を圧倒する性能を発揮する超高速リンカ。1.2では32bit ARMのサポートが追加された他、gdbがシンボルテーブルを高速に作る為の追加情報.gdb_indexを吐けるようになった https://t.co/AMgtUsjfo8」 / Twitter
- Release mold 1.2.0 · rui314/mold
- mold/bugs.md at main · rui314/mold
- FadisさんはTwitterを使っています: 「mold 1.6が出たらしい。moldは不要なコピーの回避や積極的な並列化等の工夫で既存の実装を圧倒する性能を発揮するリンカ。1.6ではPPC64 ELFv1とIBM s390x向けのバイナリを吐けるようになる。また64bit ARMで-static-pieを付けると動かないバイナリができる不具合が修正される https://t.co/1CCbbGCa36」 / Twitter
- Mold 1.6 High Speed Linker Adds PPC64 and s390x, Smaller Output Files - Phoronix
- FadisさんはTwitterを使っています: 「64bitのPowerPCでLinuxを動かす場合、ELFv1とELFv2と呼ばれる2種類のABIが存在する。ELFv2はPOWER8以上を前提として2014年頃に作られた新しいABIで、イマドキのPowerPCなLinuxマシンはELFv2のバイナリを動かしている。ELFv2にはbig-endian版とlittle-endian版がある。」 / Twitter
- FadisさんはTwitterを使っています: 「ELFv1はELFv2ができるより前からPowerPC上でLinuxを動かす場合に使われていたABIでbig-endian専用。古いPowerPCなLinuxマシンではこのABIが使われている事がある。今回追加されたのはELFv1のサポートで、ELFv2に関しては前のバージョン1.5でELFv2 little-endianのサポートが追加されている。」 / Twitter
- 20220115 Kernel/VM moldリンカの移植 - Google スライド
コーディング規約
- Rui UeyamaさんはTwitterを使っています 「I tried to explain the coding rules in mold, especially as to why I always use int64 instead of int. https://t.co/nl7TUI8y0D」 / Twitter
- mold/coding-guidelines.md at main · rui314/mold
- Brandon FalkさんはTwitterを使っています 「@rui314 Oooh! There's actually a slight difference between 64-bit and 32-bit operations in the CPU. It's minor but definitely measurable. That being said, I'm all for strong typing like that (and also like how Rust is like that).」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 The performance difference is pretty minor, but also can affect things like cache locality as you "push" more things out of memory by having things less dense. That being said, not a huge issue. The largest realizable issue from 64-bit is that you 1/2 your performance for SIMD」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 ... but ofc that only matters if you're doing simd (which your compiler might be doing for you, ofc).」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@gamozolabs Which instructions can we observe a difference?」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 Pretty much all! I did this research like ~10 years ago, so tonight I'll try to update it with my more modern coding styles and display. Let me see if I can find the old graph, but it's a pretty noticeable difference on almost all instructions, even `add reg, reg`」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 (unless uarches have changed enough since then) (Going out for dinner right now, so I might not be able to find the graph or the data right now, but if I can't find it I'll reproduce it, I love doing CPU uarch stuff)」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 That being said, this is not really a strong reason to change designs. Ultimately the CPU is probably memory/cache starved, these measurements are really only relevant if you're absolutely saturating and pipelining your integer operations.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@gamozolabs Yup. I guess in my actual application, the difference is hidden in noise. I occasionally change some variables to 32 bits to see if it can speed up some internal passes and got negative results.」 / Twitter
- Brandon FalkさんはTwitterを使っています 「@rui314 Yeah, I would totally expect that. Except for raw HPC/mathematical operations it'd be impossible to notice minor changes like this over the noise floor. CPUs just are waiting for memory or dependent operations so much more than they're doing independent work. `u64 ii` ♥️」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@gamozolabs Oh, really. I was thinking that they cost the same. Curious to see if it still stands on modern 64-bit processors.」 / Twitter
histric-1
- Rui Ueyamaさんのツイート: "今日説明していて思ったけど、lldは僕の考え方を反映した、普通にはよくないとされているけど僕は良いと思っている手法が導入されているんだなと思った。 - メモリはプログラムの終了時まで解放しない - コード重複はしてもいいのでプラットフォーム共通になるように抽象化しない"
- Rui Ueyamaさんのツイート: "lldにおいては成功した取り組みだったと思うけど、いずれにせよソフトウェアエンジニアリングというのは実践的なもので、「正解」があるものではないので、非伝統的や非正統的であっても、単に自分がよいと思うものがあったら追求していってほしい。例えばオブジェクト指向とか別にどうでもいいし。"
- Rui Ueyamaさんのツイート: "「メモリを途中で解放してもたかが知れてるから最後まで解放しないほうが単純」とか「抽象化せず多少重複したコードを書くほうが簡単」とか主張するのは勇気がいります。XX原則に従ってないとか必ず言われるからね。でも多分そんなに難しく考える必要ないと思う。簡単に書くのが一番重要。"
- Rui Ueyamaさんのツイート: "リンカをより速くするプロポーザル書いた。 https://t.co/tsCOkSOXvO"
- [llvm-dev] [RFC] lld: mostly-concurrent symbol resolution
- Rui UeyamaさんはTwitterを使っています: 「goldはタスクを小さいジョブに分けて、依存関係を管理しつつ、実行できるジョブを並列にどんどん実行していくみたいな凝った作りになってるのに、単純な並列forループしか使ってないlldのほうがスケールするのは面白い。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldはGNUリンカとの完全互換を目指していたので、あんまり重要ではない、ただ伝統的にそうなっているという動作を同じように実装する必要があって、最適化には限界があった。もっとシンプルな作りで、スピードを第一目標にしたリンカを作ってみたいとは思ってた。ニーズも大いにあるし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldを使っても大規模プロジェクトだとリンクは遅くて、プログラマの生産性を明らかに下げてる。しかし既存リンカとのコマンドライン互換を諦めたらあと10倍くらい速いやつが作れそうな気も?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「小規模プロジェクトだとそもそもリンカに対してニーズが特にないのでコマンドライン互換でそのまま使えればいいという感じだけど、大規模プロジェクトだとビルドファイルに変更を加えてもいいからとにかく速くリンクしたいというニーズがあって、後者にフォーカスすればlldを置き換えれるかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「オブジェクトファイルをcatして1つのファイルにまとめるのと同じくらい速いリンカというのを作りたいんだよな。あながち無理でもなさそうというか、catって複数のファイルをまとめるコマンドとしてはあんまり速くないし。」 / Twitter
- Junio C HamanoさんはTwitterを使っています 「@rui314 出来上がりのバイナリが実行開始するまでのレイテンシーを犠牲にしてよいのなら、ホントにcat程度にしておいて、起動後、実行時に、通常ならリンカがするはずの大方の処理を行なう、みたいなズルはできそうだけど、そういうのを狙ってるわけじゃないよね😜?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 今までのリンカが並列にやってこなかったことを並列にやるみたいな感じのことを考えてます。コマンドを起動したらまっさきにファイルをコピーし始めるくらいの勢いで動くものを。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「1.9 GBのchromeの実行ファイルをリンクするのにlldで12秒かかる。これを2秒とかでできるリンカが作れないかなと考えてる。理想を言えば1秒にしたいけど(1.9 GBのファイルをcpすると1秒かかるので)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「goldリンカだと54秒かかるので、lld作った時点ですでに相当速くしちゃってるんだよな(自分でハードルを上げていくスタイル)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンクの遅さに対する対策として、プログラムを複数の.soに分割したりインクリメンタルなリンクを実装するというアイデアがよくでてくるけど、なんかいろいろ複雑になっちゃうから、そういうのは根本的にはあんまり筋がよくない解決策だと思う。単にリンカをすごく速くするほうがいいはず。」 / Twitter
- ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (2/2)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++のリンカだと、ファイルIOが主要ネックに見えるけど、すでに読み取り1回、書き込み1回的な状態になっているのかしらん?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu ファイルIOがない考えてるだけの時間が長過ぎるんですよね」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…オンメモリ処理が1/5~10になるとしたら凄いですね。」 / Twitter
- Lizan ZhouさんはTwitterを使っています 「ほしい…ASANでコードサイズが爆発的に増えても速くリンクできるようになるとうれしいな…」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@lizan ASANでそんなにリンク遅くなるっけ?」 / Twitter
- Lizan ZhouさんはTwitterを使っています 「@rui314 コードサイズが倍近くになるはず」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@lizan ああそうか確かに」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そういやAndroidもlldに移行すると言っていたけど、もうそろそろ完了してそう。ほかにもPlayStation、Switch、Chromeとかはlldを使っているはずだから、僕らが作ったリンカの出力が我が家でもいたるところにあるな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldを速くするという研究で論文を書いている人がいた。スウェーデンの学生の卒論かな。 https://t.co/moXtdj4WZE」 / Twitter
- Optimizing the LLVM ELF linker for a distributed compilation environment : Concurrent Linking with LLVM LLD
- Rui UeyamaさんはTwitterを使っています 「僕がオリジナルのコードを書くと、メモリリークしたままexitするのはないわとか、グローバル変数使いすぎとか言われるんだけど、そういう細かいところじゃなくてもっと本質的に何やってるかに着目してくれ〜。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「まああと、メモリ解放しないまま最後にexitでまとめて始末するのもやり方としてはありだし、プログラム中に1個しかないものならグローバル変数を使っても別にいいし(というか多くの人が必要以上に避けすぎ)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「コードからファイルを開くのが、例えばmainに渡されるFileOpenerというオブジェクト経由でしかできないみたいな仕様になっていたら、グローバル変数に代入したくない一心でFileOpenerをあらゆる関数の引数に足すひと結構いるんだろうなと思う。つまり実質グローバル変数みんな普通に使ってるのよ。」 / Twitter
- 市川 真一さんはTwitterを使っています 「メモリ解放せずに exit するポリシーだと、そのような発想になるのは理解できます。それで、実質的にグローバル変数を使ってるという認識は当然あるのですけど、exit せずにプログラム全体を再始動させたりするのに、グローバル変数の参照がプログラムの至る所にあると難しいというのが理由です:」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「速いプログラムを書くためには、性能の出そうなコードを結局何パターンも書いて一番いいものを選ぶとかしないといけないので、勘と実装力の両方が問われる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「よさそうなアルゴリズムを思いついたので実装してみたら、かなり有望な数字が出てきた。これ特にVisual Studioのリンカが速くなりそうだなぁ。またMicrosoftに感謝されそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「有向グラフにおいて「あるノードから到達可能なすべてのノードとエッジからなるサブグラフ」を一言で言う用語ないんだっけ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Demystifying Unix linkersなるドキュメントを書き始めた。めちゃくちゃ基本から解説して、誰でもUnixリンカの動作とか機能を理解できるものにしたい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「このテーマだと僕より詳しい人はほとんどいないし(成り行き上詳しくなっただけだけど)、ここまでの調査に要した時間を考えるとドキュメントにまとめないのは大きな損失なんだよな。自分でも忘れてきてるし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@ZebraCakes 英語で書いてます(日本語はないです)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「There are not too many people who know how hard a linker development can be, and Jakub and I are the ones!」 / Twitter
- Jakub KonkaさんはTwitterを使っています 「After a lot (and I mean it, a lot) of debugging, and a few rewrites, I am super happy to announce that @ziglang ld (or zld) is successfully able to link C++ on arm64 macOS, and as a result, you can now bootstrap Zig's stage1 compiler from anywhere: https://t.co/jUYoXDdvjY」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Linker is not a very complicated program IMO, but it is hard to develop because of a few reasons: - lack of documentation - debugging a program-generating program is generally hard」 / Twitter
- 高速なリンカー「mold 1.0」が公開 | OSDN Magazine
- コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み - ログミーTech
- lldを凌駕する高速な新リンカmold
@fadis_
- Fadisさんのツイート: "本日最後のセッション、 @rui314 さんの「 lld: 速くてシンプルなリンカ」が始まります #kernelvm"
- Fadisさんのツイート: "lld: ELF、COFF、March-Oを喋る事ができるリンカ #kernelvm"
- Fadisさんのツイート: "GPL3のbinutilsを使いたく無いBSDな人たちがシステム丸ごとlldでリンクできるようにしようと頑張っているらしい #kernelvm"
- Fadisさんのツイート: "lldでWebAssemblyのリンクも行う事ができる!! #kernelvm"
- Fadisさんのツイート: "lldの目標: GNUリンカよりシンプル シンプルなら簡単に理解でき、hackableにできる #kernelvm"
- Fadisさんのツイート: "lldはGNU ldの為のリンカスクリプトをできるだけそのまま使えるようにしているが、当のGNU ldも従来のldとgoldでリンカスクリプトの解釈が違っていて厳密な互換はそもそも取れそうにない、と #kernelvm"
- Fadisさんのツイート: "プログラムのサイズにもよるがlldはgoldより2倍から5倍速い #kernelvm"
- Fadisさんのツイート: "「2ソケット20コア40スレッドのXeonでリンカのパフォーマンスを比較」 「パワフル過ぎでは」 #kernelvm"
- Fadisさんのツイート: "新規に作ったリンカである為正確に何が速度の差の決め手になっているかは作者も分かっていないが、問題に対して素直なデータ構造で実装すれば速さはついてくる、というポリシーに基づいて開発している、と #kernelvm"
- Fadisさんのツイート: "C++では名前のマングリングが行われる為シンボル名がとても長くなる傾向がある → これが並んだシンボルテーブルの参照は遅い → C++で速いリンカを作るためにはシンボルテーブルの参照を可能な限り減らす必要がある #kernelvm"
- Fadisさんのツイート: "リンカをマルチスレッド化する際には出力が決定論的になる(スレッドがどう実行されたかによって順番が違っていても良い情報が入れ替わったりしない)ように注意して実装する必要がある、と #kernelvm"
- Fadisさんのツイート: "リンカの実行時間のほとんどは入力ファイルを出力ファイルに置き直す時間と、大量の文字列のマージでと、シンボル名解決で、このうちマルチスレッド化が難しいシンボル名解決以外をマルチスレッド化する #kernelvm"
- Fadisさんのツイート: "文字列のマージは従来1つのハッシュテーブルを使っていたが、複数のスレッドが挿入すると順序が決定論的にならない → スレッドごとにハッシュテーブルを作って、全てのハッシュテーブルに対して挿入したい値の存在のチェックをする #kernelvm"
- Fadisさんのツイート: "lldとgoldのコードの複雑さをコードの長さで比較しようにも、goldがアーキテクチャ毎にコピペプログラミングをしていてコード量が爆発していてあまり良い指標にならない、と #kernelvm"
- Fadisさんのツイート: "clangがきっかけとなってC++のエラーメッセージは随分読みやすくなった → リンカのエラーメッセージも読みやすくしよう、ということでlldはDWARFの情報を呼んで人間に優しいエラーメッセージを出している #kernelvm"
- Fadisさんのツイート: "いかに短いC++のコードから膨大なエラーを出すかを競うコンテスト https://t.co/6EbOnBTHaY #kernelvm"
- Fadisさんのツイート: "lldにおけるLTOでは、lld自体に複雑な最適化は実装せず、リンクが完了したネイティブバイナリの代わりにLLVM IRを吐き出し、LLVMの最適化機能に最適化を丸投げする #kernelvm"
- Fadisさんのツイート: "lldの実装綺麗だなぁ"
- Fadisさんのツイート: "lldはホスト依存の暗黙のパラメータを持たない(リンカを呼ぶコンパイラはどうせ必要な情報を全て渡してくるのでリンカ自体はどこで動かしても同じ動きをするように実装する) #kernelvm"
- Fadisさんのツイート: "質問者「BSDがGPL3を避けてlldを試みているということはMacもそうなのか」 → 「MacはMach-Oを吐くために独自のリンカを使っているためlldを必要とはしていない」 #kernelvm"
- Fadisさんのツイート: "make -jしたビルドが最後のリンクで詰まってマルチコアで性能が伸び悩むの、極めて手軽にアムダール則を体感するヤツだ"
- Fadisさんのツイート: "C++、シンボル名が超長いから「シンボルを解決するための文字列比較にやたら時間がかかる」事を想定していないリンカでリンクすると、リンク時間もエグくなりがち"
- FadisさんはTwitterを使っています 「linuxカーネルは攻撃者が狙った関数に飛びにくいように関数にASLRが出来るが、カーネルの.textは1つしかないためセクション単位で位置が変わってもアドレスがバレやすい。そこで関数毎にセクションを分けてカーネルのASLRの効果を高めようという提案がなされているらしい https://t.co/RYaxOpE4T8」 / Twitter
- FadisさんはTwitterを使っています 「C++、カジュアルに型で計算する言語なので、型のテンプレート引数に膨大な情報が載りがちで、それをマングルすると 長さが100kBを超えるシンボル名 が生み出されて、それを文字列比較するリンクがビルド時間全体の1/3に達したり、デバッグ情報が4GBを超えてRPMに入らなくなったりしがち」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "#ifdef 等によって、機能差を持つバリエーションを作るのではなく、ビルド後のバイナリ内にパッチを当てることで、バリエーションを作るテスト。 (一部ユーザ向けに、slack転送を無効化したIPMsgを用意する)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "有効化するかの条件分岐にnopを入れるという話ではなくて、volatile int64 flag=シグネチャ値; if (flag) というコードを書いた後、バイナリからシグネチャ値を見つけて0にする、という感じ。 (万一偶数のバッティング時はシグネチャ値を変更)"
- 鯉江さんのツイート: "config.cのようなものにflagをあつめてリンク時につけかえるのではだめ? volatileとなっているところをみるとオプティマイザが頑張ってif(flag)を消してしまう可能性がある?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "volatileを入れているのは、最適化オプションで「プログラム全体の最適化」「リンク時にコード生成」という機能があって、それらを有効にしているとプログラムを1ソースで書いたのに近い最適化が施されるはずなので、その対策です。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、flagはグローバル変数として定義して、複数ソースから参照しています。 (その前提を書いていないと前説明が意味不明だったかも)… "
- The SQLite Amalgamation
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、sqliteは、ビルド用にソース群を一つの.cに変換して、強力な最適化を促すという「Amalgamation」というテクニックを使っていて驚いた記憶。 https://t.co/kg6HB6pz3n… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ごく一部で欲しい組織があるかもしれないので、Slack等への外部転送無効化バージョンを追加しておいた。 https://t.co/wDjue1IdtK"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、ベース版バイナリにパッチを当てる形で作成。 そのため、pdbやcodファイルは、ベース版のみ保持すればよい形に。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「昔は動的リンクで.soを交換すればlibのバグは修正可能。しかし現在はsymbolがversioningされ特定のlibのバイナリに依存」 昔は、DLLがupdateされて既存アプリが動かなくなる=DLL地獄、と言われていた。上記対応(WinだとSxS)で、DLL地獄が解消されたが、同時にDLL更新メリットも消滅した形。… https://t.co/SCKOMkizWI"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、SxS導入以降は IPMsg/FastCopyは共に静的リンクでリリースしていたりする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsg/FastCopyは、GUI関係のライブラリ(MFCやQtなど)って、使ってないんですよね。(GDI APIを直接呼んでいます) 静的リンクしているのはC/C++の標準ラインタイムだけですね。… "
- SODA Noriyukiさんのツイート: "なるほど、それなら納得です。 Plan 9の場合は gdi32.dll とか user32.dll 相当のものまで静的リンクしてしまい、異なるバイナリで共有して利用されるのはカーネル部分だけってことになるので、さらに大胆な話だと言えると思います。(まあ太古のUNIXはみんなそうだったんですが)… https://t.co/62NThqcbgv"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 ちなみにIPMsg/FastCopyが静的リンク化したのは、VistaのSxSが導入 + VS2005以降crt系バージョン確認が厳格になり、ビルド時と完全同一crtがユーザ環境にも必須になったため、というのが大きかったです。 (この制限はVS2010以降は緩和されましたが)… https://t.co/pG4I7EOB9g"
- きしもとさんのツイート: "「バージョンを選択する方法」次第のように思うのですが。バージョン番号 x.y.z の、z については大は小を兼ねる、といったようにして、「特定のlibのバイナリに依存」はしないようにするのが普通とか… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにそうですね。 あと、WinSxSだと、Vista時代にWinUpdate程度のcrtのわずかなバージョン違いでもDLLロード拒否を食らった覚えがあるので、OSによる許容ポリシーの違いがあるかもしれません。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "正確に思い出すと、開発環境VistaをWinUpdateすると、利用者側VistaもWinUpdateしないと、DLL版が動作しなくなる、という話だったと思う。 (もしくは Update版の頒布用crtを別途インストールしてもらうか)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VC++ で .lib を指定した時に使っていない .o が取り込まれる不思議。 しかもリンク時最適化を有効にしているのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「通常の静的リンクだと、使っている関数を含む .o だけ取り込まれるはず。 さらにリンク時最適化有効だと、.oの中で利用関数と変数以外は削除、と理解しているのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「むむ、関数単位の依存関係は無かったが、.o単位だと隠れた依存関係があった。 プログラム全体最適化を有効にしている場合は、関数単位の依存関係で見て欲しかった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用メモ。 こういう参照関係のときにも、(呼ばれない)mod1_f2() とそれが参照している、mod2/mod3 がリンクされてしまう、という話。 mod1_f1 と mod1_f2 を別ファイルとし、mod1_static をどちらかに寄せて、もう片方は extern参照すれば解決(ただしmod間参照なのでstaticは外す必要) https://t.co/yIYhi6eIZR」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大昔、同じoだがaだかを二度指定するしか無かった時に、負けた感があった、、、」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@shirouzu あるある。ライブラリ間で循環参照的なのがあったりすると必要になるんですよねえ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「暗記するのは確かに無駄なんだけど、リンカーがどうやってライブラリに含まれるオブジェクトファイルを拾っていくかを想像すると、暗記するまでもなく(昔のヘボい計算機リソースで簡単にできる実装としては)当たり前の動作って感じになります。」 / Twitter
- 𝒯𝒶𝓉𝓈𝓊ℴ 𝒮ℯ𝓀𝒾𝓃ℯさんはTwitterを使っています: 「確かにちょっとはまった記憶があって、とりあえず 「CFLAGS と LDFLAGS はちゃんと分けて書かないと駄目」ぐらいに覚えてた。 また一つムダ知識が(でも多分、すぐ忘れるw)」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「おお、gccのオプションって順番に意味があったのか・・・。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「gcc "CFLAGS" source "LDFLAGS" output みたいになっているようだ。-lcapをCFLAGSに入れたら無視された。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これはgccというよりはベル研時代からの cc ドライバや ld の仕様ですね。cc に渡した順番で (.c が .o に変換されて) 引数が ld に渡り、ld は引数を先頭から解釈していき、ライブラリの中からリンクするオブジェクトを選択するのは、そのライブラリ引数出現時点で、未解決のシンボルのみなので…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat というわけでライブラリを先頭に書くと、その時点では未解決シンボルが存在しないので、そのライブラリ中のオブジェクトファイルは決して選択されないというハメに」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@n_soda これは酷い仕様ですね・・・。必要のない後方互換性は残すことないのに・・・。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これは UNIX のリンカーに特有ってわけじゃなくて、伝統的なリンカーはだいたいこういう動作だったと思います。CP/M の L80 とか、MS-DOS の link.exe もこうだったような。」 / Twitter
- fjのYog教祖様さんはTwitterを使っています: 「@mhiramat @n_soda いや、そうしないと「未解決なシンボル」が無くなるのが「全部のライブラリをリンクした時」(不要なライブラリが無くなってしまう、と言う意味)になる。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@fjs_kyousosama @mhiramat 現代なら計算機が強力なので、未解決シンボルが残ってたら引数を再度頭から舐めるっていう動作にすることは可能は可能だと思います。 とはいえ超大規模プログラムだと、現代でもリンクにかかる時間が馬鹿にならないらしい(だからこそ @rui314 さんのリンカーが生まれた)ので、やっぱダメかも?」 / Twitter
@k_takata
- K.Takataさんのツイート: "VCはずいぶん昔から、使っていない関数をリンク時に除外してファイルサイズを小さくする機能があるが、gccには無いのだろうかと思っていたら、あったようだ。 https://t.co/fYP9rIR2bn コンパイル時に -fdata-sections -ffunction-sections を指定し、リンク時に -Wl,--gc-sections を指定する。"
- How to remove unused C/C++ symbols with GCC and ld? - Stack Overflow
- K.Takataさんのツイート: "ただ、MinGWでは使えないという話もあって調べてみると、--gc-sectionsがPE形式で使えるようになったのはbinutils 2.25かららしい。 https://t.co/8Imo5XHSvm さらにコンパイル時に -fno-asynchronous-unwind-tables も指定する必要があるらしい。"
- 11539 – ld --gc-sections should work for PE-COFF on MinGW
- K.Takataさんのツイート: "で、wxGoをビルドするのに -ffunction-sections を指定してサイズを小さくできないか試してみたところ、too many sections (70137) というエラーになってしまった。従来のCOFF形式オブジェクトファイルだとセクション数は16bitで管理しており、それを超えてしまったらしい。"
- K.Takataさんのツイート: "コンパイル時に -Wa,-mbig-obj を指定すると、big-obj形式 https://t.co/5GwXmQGy2x が使われて、セクション数の制限が事実上無くなるらしいのだが、cgoがbig-obj形式をサポートしておらず、エラーになってしまった。 cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE object"
@kazuho
- Kazuho Okuさんのツイート: "実際にコンパイルさせてみて成功したらオッケーっていうダックタイピング万歳なautoconfなんやから、リンカの引数も全部試してみたらええねん :-p"
- Kazuho Okuさんのツイート: "コンパイラ間の競争が激しくなって __builtin_feature みたいなフィーチャーディテクション機能も導入されたし、リンカもはやくそうなってほしい感ある"
- Kazuho Okuさんのツイート: "「シンボル名のハッシュ値計算するのめんどくさいからシンボル名全部sha1とかしときたい」www #spkai"
- Kazuho Okuさんのツイート: "未使用の関数やグローバル変数はリンク時になかったことにできると思ってたけど、 ``` void (*foo)(void) = myfunc; ``` みたいなコードがある場合はmyfuncを落とすのが特に難しくなったりするのかなぁ(fooをmyfuncに初期化するためのコードが生成され、それがmyfuncを参照しちゃう的な)"
@liva_jy
- Livaさんのツイート: "セクションの開始位置はアラインメントしよう、という知見を得た。 #liva_notebook"
- Livaさんのツイート: "きちんとアラインされてない場合、リンク時に上手い具合にずらしてしまう事があって、下手なリンカスクリプトを書いていると、リンカが解決した関数のアドレスと、実際にロードされたアドレスがずれてしまう #liva_notebook"
- hikaliumさんのツイート: "なるほど!LLVMで挙動を見てみたところ、翻訳時に既知でないラベル(後方のラベル参照等)は未解決のまま残されるのね。(つまり常にrel32として場所はとられる。) で、リンカがあとでそれを埋めてくれると。なんとまあ。 (まだまだ勉強が足りないというお気持ちになった。こういう発見が楽しい。)… https://t.co/u1OU8WNMCS"
- Rockridgeさんのツイート: "Fx63:clang-clを用いたWindows版のビルドにおいてThinLTOとPGOが有効化。64bit版のSpeedometerスコアがMSVC比で6%アップした。参照:https://t.co/ipbr5LRbF0 … https://t.co/euttRNA8Ez"
- 10/27,28はOSC Tokyoさんのツイート: "僕のLDが壊れている.undefinedなシンボル(operator new)に対してエラーにならない.自分で宣言した関数の場合はエラーになるのに."
- Nerry@さんのツイート: "gnu-efi使ってた時ldが未解決シンボルでエラーにならない挙動すごく困った… "
- 10/27,28はOSC Tokyoさんのツイート: "同じく悩んでる人がいるとは!… "
- しんやさん@檸檬堂友の会さんはTwitterを使っています: 「C言語にてテスト時に便利な技術 これができればテストマスターだ! インターポジショニング →既存関数を自由に置き換える Weakシンボル →テスト時のみに関数をリンクさせたい時 objcopy →シンボルを置き換える、最強」 / Twitter
- インターポジショニング - Google 検索
- weakシンボル - Google 検索
- DrumatoさんはTwitterを使っています 「もし読み込んだセクションのオフセット+サイズがセクションのオフセットになっていないとき, 間にパディングがあると考えてセクションヘッダを挿入する,みたいな実装で対応しようと思う」 / Twitter
- DrumatoさんはTwitterを使っています 「gccの吐くバイナリ,どこのセクションにも所属していないパディングが沢山存在するのだけれど, これ普通にそういう意図のセクションを作って欲しい. これ凄い困るなあ,どうしよう.」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ロードアドレス先頭からのオフセットからシンボル付きバイナリ見るかな。今どきのカーネルやハイパバイザ、aslrあるしロード時に動的書き換えするしモジュール構成取ってたりもするので、専用デバッグ機構がないと基本辛いが、リリース版に入れると今度はセキュリティホールになったりする。つらい」 / Twitter
- とみながたけひろさんはTwitterを使っています 「落ちたところのバイナリ並び見て似た命令をシンボル付きelfから探す、が見つからず あ、これロード時とか初期化終わったところで書き換えられるのか、みたいな。Linux頑張りすぎやとおもう…」 / Twitter
- c - different type variables with same identifier linked together - Stack Overflow
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:リンカが行うことのまとめ: ・与えられたファイルをすべて読む ・シンボルを解決 ・リロケーションテーブルを読んでPLTやGOTを作る ・出力のレイアウトを決める ・ #kernelvm #kernelvm_tw」 / Twitter
- プロセス、実行形式、リンク
- A method of machine code translation to intermediate representation | IEEE Conference Publication | IEEE Xplore
- リストとマップファイルの生成
- クロス・リファレンス情報 | CS+ V4.01.00
- マップ情報を出力する | CS+ V8.02.00
- KMC Staff Blog:Thread Local StorageをOSに頼らず実装する方法
- KMC Staff Blog:GNU ldのEXCLUDE_FILEの注意点
- PlugXローダーの進化 - FFRIエンジニアブログ
ビルドシステム
その他
その他
- OWASP Dependency-Check Project | OWASP
- MavenによるOWASPの脆弱性チェック
- 分散型ソフトウェアビルドシステム「Pants 2.8」 | OSDN Magazine
- Naoki TakezoeさんはTwitterを使っています 「Databricks社内のCIをJenkinsからScala + PostgreSQL + EC2で動くシンプルなRunbotという自前システムに置き換えたという話。Beforeが辛すぎて泣きそうになってしまった。 https://t.co/EZssomxB6O」 / Twitter
- Developing Databricks' Runbot CI Solution - The Databricks Blog
- 令掛ベインさんはTwitterを使っています 「サンドボックス化によってビルドルールの依存関係の記入漏れを検出するやつを探していて、おそらくこれ / [Sandboxing - Bazel main](https://t.co/sXQMpjP60s)」 / Twitter
- Sandboxing - Bazel main
- Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに - Publickey
- GENTOO INSTALL 週間さんはTwitterを使っています 「コンテナ時代の自動ビルドツール。各種言語と各種CIの橋渡しになるらしい。ビルド用のMakefile、シェルスクリプト、Dockerfileなどの代替。ほう / “GitHub - vladaionescu/earthly: Build automation for the container era” https://t.co/WwRQmgkQ4l」 / Twitter
- vladaionescu/earthly: Build automation for the container era
- 東陽テクニカ、7時間かかるビルドを30分に短縮する開発高速化ツール | TECH+
- Gradle7.4でテストレポートの統合へ
- sccache - Google 検索
- Kazuho OkuさんはTwitterを使っています: 「ほーよさげ。依存関係についてはpkg-config対応してるしそれでだいたい事足りそう / https://t.co/3CDSD3JGb7」 / Twitter
- ZigはCMakeの代替となるか
- てらモス🈚さんはTwitterを使っています: 「> ただし、CMakeのfind_packageに相当する機能が未実装なため、全てを置き換えることはできなかった https://t.co/S2RhdkIdup cmakeの本体ってここだしな...(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「pkg-configの出力に関する仕様は多分定まってなくて、gccが受け入れるのは何でも出力していい感じっぽい運用なのでパースする方も大変やな...(´・ω・`)」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「zigでビルドスクリプトを書くのって、普通の言語なので小回りがきくのは当たり前だとして、じゃぁ、なんで今まで使ってきたビルドシステムって、宣言的な方法でビルドスクリプトを書いてたのかみたいな・・・。CMakeとか拗らせすぎなので抹殺することに何の躊躇もないが。」 / Twitter
- ytakanoさんはTwitterを使っています: 「Riker: Always-Correct and Fast Incremental Builds from Simple Specifications https://t.co/4nVz01QbZR USENIX ATC 2022のbest paperだけど、たしかに面白い。Makefileのように依存関係を人が書いていくのではなく、依存関係を自動で解析していくビルドシステム。」 / Twitter
- Riker: Always-Correct and Fast Incremental Builds from Simple Specifications | USENIX
- ytakanoさんはTwitterを使っています: 「https://t.co/m5TpZtWff8 ソースコードもある。」 / Twitter
- GitHub - curtsinger-lab/riker: Always-Correct and Fast Incremental Builds from Simple Specifications
- A failure occurred while executing com.android.build.gradle.tasks.AidlCompile$AidlCompileRunnable - Stack Overflow
- メルカリiOSアプリのBazelを使った高速・高信頼性ビルド | メルカリエンジニアリング
- ローカル環境を汚さずDockerコンテナのオーバーヘッドもなく、開発環境を自在に構築できる「Devbox 0.2.0」登場 - Publickey
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「可搬性のあるMakefileの書き方チュートリアル (初心者向け)。makeはPOSIXで規定されているものとGNUが実装したもの、およびBSDに附属するものがある。 - Makefileを分割するべからず - 依存関係の記述が面倒くさい場合は -MM -MTオプションを使え - MS製nmake対応は諦めよ https://t.co/HrA22WU8eJ」 / Twitter
- A Tutorial on Portable Makefiles
- make cmake convert - Google 検索
- mattnさんはTwitterを使っています: 「ビルドシステムって make 以上に高度な拡張性入れようとすると DSL 必須になるのだけど、結局 cmake もコンパイラの違いによるハックが必要になるので、そのコンパイラ専用の DSL つまりその言語そのもので書かれてるのが便利なんかもなぁ。rake もしかり zig もしかり。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実際のところ、gmakeに足りないのって ・依存チェックをもっと書きやすくする (pkgconf およびテストプログラム) ・前回の設定を覚えておいて、次回のmakeで使える くらいの気がするんだよねぇ。 ついでにいうと、CMakeみたくCLionとかでプロジェクトファイルとして使えると良い(ハードル上げる)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「shell script 複雑になるなと思った瞬間に Makefile にしちゃう。ステップごとに定義できるし、エラーが発生したら自動終了するし、どんなコマンドが実行されたかも画面にでるし、冪等性使える」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかしこれconfigureとかlibtoolが逆に移植をめんどくさくしている感じがする。2020年現在はもう変な野良Unixみたいなのほとんど存在しないわけだし、こういうツールは意味あるんだろうかと思ってしまう。」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「make はコマンド変わった時にリビルドする機能が追加されるとだいぶ良くなる気がしてる」 / Twitter
- sccache - Google 検索
- ドッグさんはTwitterを使っています 「パッケージのコンパイル時 feature flag が増えて特定の組み合わせでしかテストしてない時,他の組み合わせでも最低限コンパイルは通ることぐらいは確認してくれる機能が cargo check あたりの拡張でほしいな」 / Twitter
- Kazuho's Weblog: komake: Make の -j オプションに潜む罠とその解決策
- 平岡 拓也さんはTwitterを使っています 「ライブラリの依存解決とか、より良い解決方法を持っている他言語エコシステムとかに触れたりしないと、問題を認識出来ない感はあると思う(´・_・`) Rustのcargoとかは相当良いけど、それを知るまでは僕はライブラリがすぐに動かない事は問題ではあるにせよ、当たり前だと思っていた。」 / Twitter
- MakeをPythonのタスクランナーとして使う | Honai's Blog
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellコードに加えた変更がビルド時間にどのような影響があるか判定するツールが欲しい。10回ぐらいビルドを走らせて平均と分散を計算するみたいなやつ」 / Twitter
- MSBuild - MSBuild | Microsoft Docs
- 某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
- NMAKE の実行 | Microsoft Docs
- Makefile で第2引数を使う方法 - Qiita
- iOSアプリのビルド時間を短縮することを目的としたXCRemoteCacheとは
- google/wireit: Wireit upgrades your npm scripts to make them smarter and more efficient.
- matsuu序二段さんはTwitterを使っています: 「コンパイラのコンパイル結果をキャッシュして高速化するccacheに、クラウドストレージにコンパイル結果を保存する機能を追加した代替ツール。Rust実装。わいわい。 / “GitHub - mozilla/sccache: sccache is ccache with cloud storage” https://t.co/4LC8hQKkHi」 / Twitter
- mozilla/sccache: sccache is ccache with cloud storage
- gccとの連携とdepend擬似ターゲット
- AlmaLinux、ビルドシステム「AlmaLinux Build System(ALBS)」を公開 | OSDN Magazine
トポロジカルソート
強連結成分
- 強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
- 連結グラフ - Wikipedia
- 強連結成分分解 | グラフ | Aizu Online Judge
- 目指せグラフマスター
- Microsoft PowerPoint - ad11-12.pptx
- Microsoft PowerPoint - 6.6-6.7配布
- ALG2012-B.ppt
- グラフとネットワーク 第 10回 連結性:モデル化
- 強連結成分分解 (Tarjan) | libalgo
- AWK 本記載の循環検出付き改良版 Tarjan のトポロジカルソート - Tociyuki::Diary
- Tarjan のトポロジカルソート - Tociyuki::Diary
- Kahn 系統のトポロジカルソート - Tociyuki::Diary
- トポロジカルソート - Wikipedia
- ネットワーク・トポロジー - Wikipedia
- tsort - Wikipedia
- 有向非巡回グラフ - Wikipedia
- 二項関係 - Wikipedia
- 順序集合 - Wikipedia
- 全順序 - Wikipedia
- 深さ優先探索 - Wikipedia
- Depth-first search - Wikipedia
- Spaghetti Source - トポロジカルソート
- Topological sort
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「トポロジカルソートのテストむずいね」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「多分合ってるんだけど、fast-check使って入力をシャッフルしてるから結果が安定しない。properties based testを諦めるか、もうちょっと凝ったテストにするか...」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「これでええやん for (const { from, to } of edges) { const iFrom = actual.indexOf(from); expect(iFrom).not.toEqual(-1); const iTo = actual.indexOf(to); expect(iTo).not.toEqual(-1); expect(iFrom).toBeLessThan(iTo); }」 / Twitter
- アルゴリズムと データ構造
- 第 7 章: グラフ (graph) — WTOPIA v1.0 documentation
- 隣接行列 - Wikipedia
- グラフ理論の基礎 | 高校数学の美しい物語
- オイラーグラフの定理とその証明 | 高校数学の美しい物語
- 隣接行列,接続行列,ラプラシアン行列 | 高校数学の美しい物語
- グラフを表すデータ構造(隣接行列と隣接リスト) - 具体例で学ぶ数学
- Microsoft PowerPoint - ad11-09.pptx
- Microsoft PowerPoint - 数理計画と最適化101210prn.ppt
- オイラーグラフとハミルトングラフ
- スペクトラルグラフ理論入門
- 隣接行列 — WTOPIA v1.0 documentation
- グラフ構造で位相空間のイメージをつかむ - Qiita
CMake
MSVC
- Use CMake Converter — CMake-Converter 1.2 documentation
- visual studio - How to support both vcxproj to cmake on a project? - Stack Overflow
- cmake-converter · PyPI
- cmake_converter Documentation
- Visual C++ での CMake プロジェクト | Microsoft Docs
- visual-studio vcproj2cmake convert - How to support both vcxproj to cmake on a project? - CODE Q&A Solved
MSBuild
MSBuild
- MSBuild (Visual C) | Microsoft Docs
- MSBuild (Visual C) の概要 | Microsoft Docs
MSBuild
- MSBuild | Microsoft Docs
MSBuild
- チュートリアル: MSBuild の使用 | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成 | Microsoft Docs
- MSBuild プロパティ | Microsoft Docs
- MSBuild 項目 | Microsoft Docs
- MSBuild でのビルド ログの取得 | Microsoft Docs
- MSBuild でのログ | Microsoft Docs
- MSBuild リファレンス | Microsoft Docs
MSBuild リファレンス
- MSBuild の条件構造 | Microsoft Docs
- MSBuild の予約済みおよび既知のプロパティ | Microsoft Docs
- MSBuild プロジェクトの共通項目 | Microsoft Docs
- MSBuild .Targets ファイル | Microsoft Docs
- MSBuild 既知のアイテム メタデータ | Microsoft Docs
- Msdn forums - MSBuild
- WPF MSBuild リファレンス | Microsoft Docs
- エスケープする特殊文字 | Microsoft Docs
- MSBuild プロジェクト ファイル スキーマ リファレンス | Microsoft Docs
MSBuild プロジェクト ファイル スキーマ リファレンス
- Choose 要素 (MSBuild) | Microsoft Docs
- Import 要素 (MSBuild) | Microsoft Docs
- ImportGroup 要素 | Microsoft Docs
- Item 要素 (MSBuild) | Microsoft Docs
- ItemDefinitionGroup 要素 (MSBuild) | Microsoft Docs
- ItemGroup 要素 (MSBuild) | Microsoft Docs
- ItemMetadata 要素 (MSBuild) | Microsoft Docs
- OnError 要素 (MSBuild) | Microsoft Docs
- Otherwise 要素 (MSBuild) | Microsoft Docs
- Output 要素 (MSBuild) | Microsoft Docs
- Parameter 要素 | Microsoft Docs
- ParameterGroup 要素 | Microsoft Docs
- Project 要素 (MSBuild) | Microsoft Docs
- ProjectExtensions 要素 (MSBuild) | Microsoft Docs
- Property 要素 (MSBuild) | Microsoft Docs
- PropertyGroup 要素 (MSBuild) | Microsoft Docs
- Sdk 要素 (MSBuild) | Microsoft Docs
- Target 要素 (MSBuild) | Microsoft Docs
- Task 要素 (MSBuild) | Microsoft Docs
- TaskBody 要素 (MSBuild) | Microsoft Docs
- Task 要素の使用 (MSBuild) | Microsoft Docs
- When 要素 (MSBuild) | Microsoft Docs
- MSBuild コマンド ライン リファレンス | Microsoft Docs
MSBuild コマンド ライン リファレンス
- MSBuild プロジェクトの共通プロパティ | Microsoft Docs
- MSBuild での複数のプロジェクトの並行ビルド | Microsoft Docs
- Import 要素 (MSBuild) | Microsoft Docs
- 方法: 複数のプロジェクト ファイルで同じターゲットを使用する | Microsoft Docs
- ターゲットのビルド順序 | Microsoft Docs
- 方法: 最初にビルドするターゲットを指定する | Microsoft Docs
- MSBuild ターゲット | Microsoft Docs
- Project 要素 (MSBuild) | Microsoft Docs
- ToolsVersion 設定のオーバーライド | Microsoft Docs
- MSBuild ツールセット (ToolsVersion) | Microsoft Docs
- 標準ツールセット構成とカスタム ツールセット構成 | Microsoft Docs
- MSBuild のマルチターゲットの概要 | Microsoft Docs
- MSBuild ターゲット フレームワークおよびターゲット プラットフォーム | Microsoft Docs
- MSBuild 応答ファイル | Microsoft Docs
- Binary Log · Microsoft/msbuild Wiki
- MSBuild タスク リファレンス | Microsoft Docs
Visual C++ に固有の MSBuild タスク
- Visual C++ に固有の MSBuild タスク | Microsoft Docs
- MSBuild の条件 | Microsoft Docs
- Target 要素 (MSBuild) | Microsoft Docs
- 方法: タスクで発生したエラーを無視する | Microsoft Docs
- BscMake タスク | Microsoft Docs
- CL タスク | Microsoft Docs
- CPPClean タスク | Microsoft Docs
- LIB タスク | Microsoft Docs
- Link タスク | Microsoft Docs
- MIDL タスク | Microsoft Docs
- MT タスク | Microsoft Docs
- RC タスク | Microsoft Docs
- SetEnv タスク | Microsoft Docs
- VCMessage タスク | Microsoft Docs
- XDCMake タスク | Microsoft Docs
- XSD タスク | Microsoft Docs
- MSBuild リファレンス | Microsoft Docs
- MSBuild タスク | Microsoft Docs
- タスクの作成 | Microsoft Docs
- ビルド システムの変更 | Microsoft Docs
- チュートリアル: MSBuild を使用した Visual C プロジェクトの作成 | Microsoft Docs
- 方法: MSBuild プロジェクトでビルド イベントを使用して | Microsoft Docs
- 方法: MSBuild プロジェクトにカスタム ビルド ステップを追加 | Microsoft Docs
- 方法: カスタム ビルド ツール MSBuild プロジェクトを追加する | Microsoft Docs
- 方法: プロジェクトのプロパティにカスタム ツールを統合 | Microsoft Docs
- 方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更 | Microsoft Docs
Visual Studio 2015
- MSBuild リファレンス
- MSBuild プロジェクト ファイル スキーマ リファレンス
- MSBuild Task Reference
- MSBuild Conditions
- MSBuild Conditional Constructs
- MSBuild の予約済みおよび既知のプロパティ
- Common MSBuild Project Properties
- Common MSBuild Project Items
- MSBuild Command-Line Reference
- MSBuild .Targets ファイル
- MSBuild Well-known Item Metadata
- MSBuild Response Files
- MSBuild の追加のリソース
- WPF MSBuild Reference
- Special Characters to Escape
コマンドライン
- コマンドラインで C/C++ コードをビルド | Microsoft Docs
- C/C++ プログラムのコンパイル | Microsoft Docs
- リンク |Microsoft ドキュメント | Microsoft Docs
- Visual Studio Devenv コマンド ライン スイッチ | Microsoft Docs
- NMAKE リファレンス | Microsoft Docs
GitHub
- Microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
- Microsoft/MSBuildSdks: MSBuild project SDKs
- Microsoft/MSBuildLocator: An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.
CMake
- CMake
- Licensing | CMake
- Download | CMake
- CMake / CMake · GitLab
- Documentation | CMake
- CMake - KitwarePublic
- CMake FAQ - KitwarePublic
- CMake Reference Documentation — CMake 3.10.3 Documentation
Command-Line Tools
- cmake(1) — CMake 3.10.3 Documentation
- ctest(1) — CMake 3.10.3 Documentation
- cpack(1) — CMake 3.10.3 Documentation
Interactive Dialogs
- cmake-gui(1) — CMake 3.10.3 Documentation
- ccmake(1) — CMake 3.10.3 Documentation
Reference Manuals
- cmake-buildsystem(7) — CMake 3.11.1 Documentation
- cmake-commands(7) — CMake 3.11.1 Documentation
- cmake-compile-features(7) — CMake 3.11.1 Documentation
- cmake-developer(7) — CMake 3.11.1 Documentation
- cmake-generator-expressions(7) — CMake 3.11.1 Documentation
- cmake-generators(7) — CMake 3.11.1 Documentation
- cmake-language(7) — CMake 3.11.1 Documentation
- cmake-server(7) — CMake 3.11.1 Documentation
- cmake-modules(7) — CMake 3.11.1 Documentation
- cmake-packages(7) — CMake 3.11.1 Documentation
- cmake-policies(7) — CMake 3.11.1 Documentation
- cmake-properties(7) — CMake 3.11.1 Documentation
- cmake-qt(7) — CMake 3.11.1 Documentation
- cmake-toolchains(7) — CMake 3.11.1 Documentation
- cmake-variables(7) — CMake 3.11.1 Documentation
- cmake-env-variables(7) — CMake 3.11.1 Documentation
- CMake/Windows-MSVC-C.cmake at master · Kitware/CMake
Learning CMake
- Learning CMake
- Learning CMake
Ninja
- Ninja — CMake 3.11.1 Documentation
- Building with CMake, Ninja and Clang on Windows - Stack Overflow
- CMakeでNinja向けファイルを生成する - なんとな~くしあわせ?の日記
- 10.2.3で CMake with Ninjaを使う - Community Blogs - Embarcadero Community
- cmakeゆとり用 - 藻ログ
blog
- CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
- CMakeを使ってみた(2)もう少しまともなプロジェクト - wagavulin's blog
- MakefileをCMakeLists.txtに置き換える - Narrow Escape
- CMakeとProtocol BuffersとVisual Studio 2015 – sgryjp.log
- CMakeを使ってOpenCVを楽にセットアップする方法 (for Visual Studio 2010) - 意識の高いLISPマシン
- Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る - 座敷牢日誌
- Cmakeの使い方 – インストールと実行 | Sumire Lab Docs
- CMakeの基礎とTheolizerの組み込み方 | Theolizer®
- 参°ぼっくす: cmakeの使い方
- CMake の練習
- モジュールセットファイルの構文
- ビルドシステムとしてCMakeを導入する - FPGA開発日記
- cmake チートシート - Qoosky
- cmake での shared library/static library のテストプロジェクト
- CMake を利用したライブラリの作成 - def yasuharu519(self):
- CMake に入門&対処事例
- 超初心者の Visual C++ , CMake とともに。 – o6asan's soliloquy-part2
- Makefileなんて書いてられない・・・CMakeでいってみる - alpaca2unix blog
- CMakeで生成されたファイルを一気に削除 - Ry0 Note
- CMake - CMakeLists.txtで用いられるFIND_PACKAGEについて(63275)|teratail
- 出力ディレクトリを指定する - Faith and Brave - C++で遊ぼう
- CMakeによって生成されるVisual C++プロジェクトの構成 - Faith and Brave - C++で遊ぼう
- CMakeで設定されているすべての変数を出力する - 座敷牢日誌
- CMake と SWIG を使って C++ と Python と ROOT に対応させる - 宇宙線実験の覚え書き
- Android C++開発 [1] : CMakeプロジェクトの作成 - つくるの大好き。
- CMakeをSchemeにする -- S式のtokenize - .mjtの日記復帰計画
- cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド - 誰にも見えないブログ
- cmake tutorialその2:ライブラリ、テスト、Usage Requierment - 誰にも見えないブログ
- cmake-tuorialその3:実行環境の確認 - 誰にも見えないブログ
- cmake tuorialその4:ファイル生成,インストーラーのビルド等 - 誰にも見えないブログ
- cmakeチュートリアルその5 - 誰にも見えないブログ
- cmake tutorialその6 - 誰にも見えないブログ
- 自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中) - 誰にも見えないブログ
- cmakeでinstallしたtargetを削除する方法 - 誰にも見えないブログ
- cmake tutorial その7(最終回):EXPORT,find_package()など - 誰にも見えないブログ
- C++ Modules in CMake with Visual Studio - C++ Team Blog
GitHub
- How to write CMakeLists
- HelloWorld for cmake
- ijt/cmakelists_parsing: Python module for parsing CMakeLists.txt files
- CMake 3.8.0以降のCTestの文字化け対策 · Issue #37 · yossi-tahara/Theolizer
- CMakeをより便利にするライブラリ "CMakeSupports" がオープンソースになりました
- flokart-world/cmake-supports: A collection of utilities for creating projects with CMake scripts.
- Effective Modern CMake
Qiita
- CMake Advent Calendar 2014 - Qiita
- CMakeLists.txt から始めよう - Qiita
- CMake言語の基本構造 - Qiita
- CMakeの構文調べてみた - Qiita
- CMake: 条件分岐 - Qiita
- CMake: コメント - Qiita
- ごく簡単なcmakeの使い方 - Qiita
- CMakeで大きめのプロジェクトを構成するためのメモ - Qiita
- CMake: ポリシー - Qiita
- CMake: 便利なコマンド・変数 - Qiita
- CMake の情報と 3.1.0 での変更点 - Qiita
- CMake+Ninja 使ってるヤツは直ちに CMake-3.9 に乗り換えろ - Qiita
- CMakeの使い方(その1) - Qiita
- CMakeの使い方(その2) - Qiita
- たのしい組み込みCMake - Qiita
- CMake: target_link_libraries(PUBLIC/PRIVATE/INTERFACE) の実践的な解説 - Qiita
- CMakeスクリプトを作成する際のガイドライン - Qiita
- CMakeでマルチプラットフォーム開発 (ラズパイ用クロスコンパイル含む) - Qiita
Wikipedia
- CMake - Wikipedia
- CMake - Wikipedia
Twitter
- 渋川よしきさんのツイート: "C++で開発する時にまずやったのは、CMakeListsを自動生成もしてくれるパッケージマネージャをGoで作ることだった。"
- 渋川よしきさんのツイート: "C/C++のMakeっぽいものを作ろうとする人はかなり環境を限定しないとムリだよね。CMakeはこの世の闇をすべてその身に宿すことで世界に仮りそめの秩序をもたらす存在(modulesフォルダ以下を眺めながら) https://t.co/Wpv4tZBNbK"
- 渋川よしきさんのツイート: "CMakeのレイヤーはそのままで、CMakeラッパーというのが最近よく観る流れ。"
- mitsutaka.takedaさんはTwitterを使っています: "https://t.co/PCM6K74XHy https://t.co/mRUQvdD8ar cmakeビルド時にinclude-what-you-useでチェックすればOK。直すのも自動化用のスクリプトがあるあらしいが未確認 https:
- ロックフリーのkumagiさんのツイート: ".cファイルを新たに追加した時に漏れ無くビルドシステムに追加するようにする方法、cmakeならGLOBでゴリッとできるやんと思ったけどcmake的にGLOBは非推奨らしく(cmake初回時にしか実行しないから?)結局大抵の真面目なプロジェクトはGLOB使わずいちいちファイル名列挙しておりこの世に神はいない。"
- Kazuho Okuさんのツイート: "CMakeは色んな環境で動いて色んなビルドツール用のファイルを生成できるというのが売りであって、あとは見るべきところないと思ってる"
- Makoto Kato ︎︎さんのツイート: "*NIX環境で使われるautotoolsのほうが技術的負債だよ。Windows本体ののビルド環境はコンパイラまでレポジトリに入ってるからね。"
- Ryou Ezoeさんのツイート: "autotoolsの競合はだいたい失敗している。CMakeとかひどい有様。いまMesonが流行りだがどうなることやら。… "
- Makoto Kato ︎︎さんのツイート: "結局ChromeもFirefoxもコンパイラをダウンロードするってのが一番正しいということにたどりついたわけだし、まぁ多様性がありすぎるってのは変なバグを発生させる原因だと思うんだよね。。。"
- Ryou Ezoeさんのツイート: "OSやブラウザーのような大規模なソフトウェアにはできるが、一般にはやりづらい。… "
- Makoto Kato ︎︎さんのツイート: "Firefoxがビルドできないという話をIRCとかで見るたびに、どこから持ってきたのかわからない変なオプション使ってたり、タイポあったりするので、自動でできる限り設定されるべきなんだよね、いろんなデフォルトビルド設定は"
- FadisさんはTwitterを使っています 「CMake、地道に便利機能が追加されていってて「RHEL7|CentOS7に入っているCMake 2.8(2013年時点の最新)でも動くようにせよ」という要件が万物を台無しにしがち」 / Twitter
- 中村さんはTwitterを使っています 「CMakeは共有できるベストプラクティス集みたいなのがないから、大々的に使えない。海外の記事のリンクとか渡しても困るだろうし。(bazelはもっと情報ないきもするが)」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています 「cmakeはすごく強力なんだけど、動かなかったときにさっぱり意味が分からなくて、デバッグが辛い。 autoconf/automakeは後ろのシェルスクリプトやMakefileが透けて見える(ただしm4に手を出し始めると地獄)、cmakeは癖が強すぎて「俺は何をしてるんだろうか……??」という気分になる。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter
- ✧*。ヾ(。ᐳ﹏ᐸ。)ノ゙。*✧さんはTwitterを使っています 「何でも CMake にやらせようとした、でも面倒になったのか途中から Python とか呼び出しはじめて、ソースの依存関係が壊れてたり out-of-source build できなくされてたりするプロジェクトに遭遇したとか」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「cmakeの利点としてcpackが存在しているので、scikit-build見たいなツールを作る際に援用できるという点がある(´・ω・`)」 / Twitter
- CMake-3.11.0
- cmake-converter 0.0.2 : Python Package Index
- peg-cmake - npm
- Policies/CMake and Source Compatibility - KDE Community Wiki
- cmake の使い方 - PukiWiki
- cmakeコマンド構文の質問 [build-process] | CODE Q&A [日本語]
- 初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】 - Build Insider
- CMake チュートリアル — Cmake-Tutorial
- Learning CMake
- CMakeの使い方.pdf
- CMake を使ったクロスプラットフォーム開発環境 : LINE Engineering Blog
- クイックCMakeチュートリアル - 公式ヘルプ | CLion
- libressl cmake - Google 検索
- shozfさんはTwitterを使っています 「CMakeと戯れ中💦 本家のリファレンスは網羅的で詳しく書かれているのだが、そこそこCMakeに慣れていないとハードルが高い。取っ掛かりはこの↓ドキュメントが良さそうかな。 Modern CMake: https://t.co/3yrFD9MGd5」 / Twitter
- An Introduction to Modern CMake · Modern CMake
- Tomoki HasegawaさんはTwitterを使っています: 「CMakeて、 cmake -S . -B build → cmake --build build みたいなことすると思うのだけど、このコマンド打つのが面倒臭い、Makefile 作りたくなってくるけど、何かおかしい気がする…。」 / Twitter
- MURAOKA TaroさんはTwitterを使っています: 「@tomzoh ぼくMakefile書いちゃってますw https://t.co/yY5YV9BBpG」 / Twitter
- yuiop60pi/Makefile at main · koron/yuiop60pi
- Tomoki HasegawaさんはTwitterを使っています: 「@kaoriya ww なるほど〜〜〜。参考になる!ありがとうございます!」 / Twitter
Ninja
Twitter
- R. ShioyaさんはTwitterを使っています 「256 スレッド同時に走るマシン,gcc のコンパイルをするとコンパイル自体じゃなくて随所に入っているシェルスクリプトとかの実行で律速されるし,こまかいファイルを大量につくる系の実験してたらストレージキャッシュのデーモンで律速されるし,アムダールの法則の世界へようこそって感じだ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとメモリバスもキツそうですね。」 / Twitter
- とよしまさんはTwitterを使っています 「@r_shioya そうそう、そういうのさせないために依存関係だけ書いてninjaにぶん回させる、どうしてもな部分を処理するためにgnでルール記述してninjaを生成する、みたいになった。そして今はリンカが並列化限界を律速してるのでRuiさんのリンカはキャッシュみたいなのまで持ち込んで高速化してるって流れよね。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim 研究室だと今までそこまで大きなソースをコンパイルする事もなく複数ノードで分散ビルドすることも無かったのですが,最近は単一ノードでもスレッド数が相当増えたり割とみんな LLVM 触ってたりで実感することが出てきた感じです.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim リンカの速度で律速されるのは身近だと RTL シミュレータの verilator を使ってる時もよく感じます.verilog->C++ に変換してから普通にコンパイルするのですが,途中のコンパイルは並列で走ったりキャッシュが効いたりでかなり高速なのに,でかいので最後のリンクがどうしても時間がかかります.」 / Twitter
- shinichiro hamajiさんのツイート: "アンドロのヌルビルドがまだ遅いぽいの悲しい。3年前にねじ込めてれば、一回3秒ほどだったか、トータルでは結構な時短だった気がするんだよなあ https://t.co/LJwEeotrl8 https://t.co/md5k1YDMMj… "
- mayahさんのツイート: "ninja 速くするアイデアは色々あるけど大体 nico に ninja はシンプルなままでいたいと言われて却下されるんだよな… ninja fork の機運か?"
- Introduce binary manifest format by shinh · Pull Request #1093 · ninja-build/ninja
- Add a flag to remain persistent. by jmgao · Pull Request #1389 · ninja-build/ninja
- shinichiro hamajiさんのツイート: "本題関係ないけど、今はninjaが1.5GBあるのか…katiやってたときは500MBくらいだったぽい [generated by kati, 412MB] [generated by soong, 1078MB]… "
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaが話題になっている。やることはありきたりだが、細かい最適化を積み重ねて早くしている。 https://t.co/aWEtQ9gokP」 / Twitter
- Tech Notes: The Success and Failure of Ninja
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは常駐を考えずに設計された。常駐する理由はキャッシュのためだ。でもカーネルはすでにファイルをキャッシュしているから不要だろ。 https://t.co/aWEtQ9gokP」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは依存関係のグラフ構築だけをやる。ユーザー向けの機能は別のフロントエンドにまかせる。この仕組みはうまく言った。 https://t.co/aWEtQ9gokP」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そんなのは誰でも考えつくがなぜninja以外のビルドシステムはうまくやれていないのか。厳密に分離するのは強い意志が必要だからだろう。みんな軟弱な思想で混ぜてしまう。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Windowsへの移植が大変だった。ninjaはカーネルがファイル情報をキャッシュしてくれて速いということを当てにしていたのだがWindowsはぽんこつにもそうではない。 https://t.co/aWEtQ9gokP」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「しかし、依存関係の解決ってこんなに簡単だったんだな。ビルドシステムで一番難しいのはこれだと思っていたらそうではなかった。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「でも、世の中にここ5年10年ぐらいで出てきている高速なビルドシステムって何を持って高速化しているのだろう。ようするに柔軟で動的な挙動をやめている程度なのだろうか。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「やはり不必要な便利機能を削ぎ落とすことで高速化を図っているのか https://t.co/Rugxjtq8MJ」 / Twitter
- The Ninja build system
- 本の虫: 新しいビルドシステム、ニンジャ
- Big Sky :: 高速なビルドシステム「ninja」
- Linux kernelをninjaでビルドする - Gentoo metalog
- kati とか依存関係とか strace とか - 200MB-300MBのbuild.ninjaファイル
- ninja-build/ninja: a small build system with a focus on speed
- Ninja, a small build system with a focus on speed
- The Ninja build system
- ninja-build/ninja-build.github.io: github pages
- FAQ · ninja-build/ninja Wiki
- build.ninja
- michaelforney/samurai: ninja-compatible build tool written in C
- 本の虫: C++標準化委員会の10月の興味深い文書
- tzikさんのツイート: "ninjaの並列化proposalが出てる。https://t.co/ZggyThRvXk 。マルチスレッドなプログラムは一般にforkと相性悪いけど、.protoがあるし、forkする部分を別プロセスに分離してるのかな。"
- Parallelized Ninja for faster Android builds - Google グループ
- tzikさんのツイート: "並列化してるのはhttps://t.co/88NHGe7UXmのパースとかグラフ生成とかの部分で、コマンドの実行時にはスレッドプールはいらなそう。現状joinせずにそのままforkするフェイズに入っているけど、スレッドたちをjoinしさえすればよさげ。"
- cmake経由でmake実行時に-jオプションを渡す(未解決) - 誰にも見えないブログ
- Ninjaの速さを体感するともはやMakeには戻れない - Qiita
- ミローネ言語の開発用にビルドツールninjaを使っている感想など - ベインのブログ
- raviqqe/turtle-build: Ninja build system clone in Rust
kati
DSan
- Dependency Sanitizer - Google ドキュメント
- Diff - f0a465c2cb5921762d7d17d65cd7352d0f64c261^1..f0a465c2cb5921762d7d17d65cd7352d0f64c261 - platform/build - Git at Google
- shinichiro hamajiさんのツイート: "動機も似てて、kati+ninja+gomaで並列度上げてビルドするとはじめて発生するバグとかが出てきて、調べてみると依存関係壊れてるだけで俺悪くないやんけ、てことがたまにあったので根本的に解決したくなったっていう話"
- shinichiro hamajiさんのツイート: "あとmakeは普通に書くと依存関係を適切に設定するのを絶対に間違えてしまうようなツールなので、Androidみたいに宣言的に記述するDSLにして定型パターンは間違えにくいようにするのは理に適っていると思う……がそのトレードオフとしてあの遅さを得たわけだった"
- kati について - 兼雑記
- kati とか依存関係とか strace とか - システムプログラミングぽい最適化
- SetProcessAffinityMask 関数
- はじめてのにき(2018-02-22)
- google/kati: An experimental GNU make clone
- StringPiece というライブラリの話 - 兼雑記
- C++1z 文字配列をコピーせず参照してbasic_stringライクな操作をするstring_view - Faith and Brave - C++で遊ぼう
- はじめてのにき(2018-08-17)
- SetAffinityForMultiThread before execve. by yoshisatoyanagisawa · Pull Request #154 · google/kati
- はじめてのにき(2018-10-31)
- Improve regen performance by setting cpu affinity by danw · Pull Request #156 · google/kati
- ラムダ式とMakefileマクロ - Qiita
- 日記 (2020 年 2 月)
Landlock Make
- てらモス🈚さんはTwitterを使っています: 「Landlockは元々Bazel対抗のビルドシステムで明示的に依存に含まれるファイルだけをプロセスに見せることで暗黙の依存を排除し、それによって依存グラフを効率的に処理してビルドを高速化するというプロジェクトがあったから知ったはずなんだけど、肝心のそのプロジェクト名忘れた(´・ω・`)」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@termoshtt これですか? jart/landlock-make: Sandboxing for GNU Make has never been easier https://t.co/tp23b4zwWd」 / Twitter
- jart/landlock-make: Sandboxing for GNU Make has never been easier
- てらモス🈚さんはTwitterを使っています: 「@tenpoku1000 あーそれですそれです(´・ω・`)」 / Twitter
- Landlock: ユーザ権限によるアクセス制御
- Landlock LSM: kernel documentation — The Linux Kernel documentation
- Landlock: unprivileged access control — The Linux Kernel documentation
- てらモス🈚さんはTwitterを使っています: 「なるほどmakeがプロセスとして起動したとき、そのプロセスからごく限られたファイルにしかアクセスさせずに実行することで依存関係を把握する(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「Makefileにちゃんと依存が書いてあるやつにはアクセスできるので、正しく依存がかけてないと動かないわけね(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「Landlock: unprivileged access control — Landlock documentation https://t.co/E0of2qAdMz これを使ってファイルアクセスを制限できるのね(´・ω・`)」 / Twitter
- Landlock: unprivileged access control — Landlock documentation
- てらモス🈚さんはTwitterを使っています: 「landlock-lsm/go-landlock: A Go library for the Linux Landlock sandboxing feature https://t.co/vZgax6aXIL」 / Twitter
- landlock-lsm/go-landlock: A Go library for the Linux Landlock sandboxing feature
- てらモス🈚さんはTwitterを使っています: 「Landlockの仕様が一部変わってるLinux 5.19がリリースされた2022/8の頃に色々皆試してるわけやな(´・ω・`) https://t.co/bJ4UTcPKYT」 / Twitter
- Landlock news #2 - Mickaël Salaün
autoconf
- Shiro KawaiさんはTwitterを使っています 「autoconfは、開発者がrepoを抱えててtarballで配布→各ユーザが手元でコンパイルするが環境がバラバラ、という条件の下でうまく設計されたシステムだけど、repoが公開されてて誰でも引っ張ってこれる/コンパイルする人の環境をある程度想定できる、という時代には合わないかもなあ」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「本件、基本的な方針として * 今までgitからのbuildだとautoconfしてconfigureを都度作っていたのをやめて、tarball同様に、OTPチームの作ったconfigureを使用するようにする ということだそうです。 #erlang」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「考えてみれば、GaucheをrepoからコンパイルするにはGaucheが必要なんだから、そしたらGauche自身のconfigureもGaucheで書けるじゃん、ということに気づいてしまった。でもbdwgcやatomic_opsでautoconf使うから無理に切り替えることないけど。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「正確には、autoconf相当のものをGaucheで書ける、だな。configure自体はGaucheの無い環境でも走らないとならないので。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「開発側/内部的には、ソフトウェア部品化は大事だけど、エンドユーザにそれらの部品が見えたり、個別設定を強いられるのはダメダメと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ Dockerイメージで凌ぐのは、ジャンボロック風味すぎる…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(上記より少しミクロな話だけど、古の automake / configure って、環境を調べてそれに合わせた makefile を作るとか、結構頑張ってたっけ…用意する方は大変だったのだろうけど)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「似てるけど使い方がちょっと違うのかあ。autoconf的にはそれぞれを検出できるソースをコンパイルしてみるのが正解だと思うなあ。UNIX系の場合、ABI互換性はわりと保つけどソースコード(API)互換性はあまり気にしないので、APIがメジャーな実装と互換に変わる可能性もあるけどこ、それにも対応できるし」 / Twitter
- ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「仕様通りに動作するかテストするコードをコンパイルしてテストが通ったら有効化する、なんて autoconf だか Waf (https://t.co/bd1RNuBwBt) なコードも見たことあるが、どうするのがベターなのかねぇ…。」 / Twitter
- Waf - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「autoconf 系のフィーチャー検出、嫌いなんだよね。試しにコンパイルしてみてビルドできたら対応してるって判定するって、それダックタイピングやん。C/C++言語で書いてるのに????という」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「というわけで一個消す PR https://t.co/5A2puIdBb2」 / Twitter
- [FreeBSD] use pthread_setaffinity_np by kazuho · Pull Request #2942 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「仕様が標準化されてるオプショナルAPIで、それへの対応があるかどうか調べるならいいんだけど、pthread_setaffinity_npとかOS毎に違うAPIもあったりするので、そんなのでビルド通ったらオッケーとかやばい、って話」 / Twitter
infoQ
- BazelがAndroidオープンソースプロジェクトの新しいビルドシステムになる
- Npm 7がワークスペースと決定論的ビルドをサポートで一般提供
- PantsビルドシステムがJava、Scala、Goを新たにサポート
Package Manager
パッケージ・マネージャ
- エヌユルさんはTwitterを使っています 「普通は「外部言語のライブラリが管理できないのでこれをinstallする時はOSのパッケージマネージャとかでインストールしてね(gtkとかがよく対象になる)」ってやるでしょ なんでBitbucketから直接ダウンロードしようってなるんだ BitbucketからGitLabに移ったから昔のバージョン全部installできない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「OSのパッケージ機構に頼らずにHTTPで取得してしまいたい気持ちはよくわかってな…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「例えば自分でHTTPで配布してしまえばその配布物に対してだけ責任を持てばいいわけだけど、外部の配布機構を頼ると外部の配布機構の数だけサポートすることになるんだ…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「各Linux distribution毎にintel-mklがどうやってどこにインストールされるか、とかOpenBLASのビルド時のフラグがどうなってるかとかを全部調べて回らなくてよくなるわけですよ(´・ω・`)」 / Twitter
- retrageさんはTwitterを使っています 「前にパッケージマネージャの設計について依存関係の充足問題を解く、みたいな解説記事を読んだ覚えがあるが思い出せない」 / Twitter
- retrageさんはTwitterを使っています 「research!rsc: Version SAT これな気がする。 https://t.co/AAU17fUhty」 / Twitter
- research!rsc: Version SAT
- retrageさんはTwitterを使っています 「2016年の記事だけどSwiftとかRustのCargoはbacktrace solver使っているそうな」 / Twitter
Nix Package Manager
- 井山梃子歴史館さんはTwitterを使っています 「コンピュータ科学の銀の弾丸だ https://t.co/CMU7VaSexG」 / Twitter
- NixOS - Nix 2.3.10 manual
- 井山梃子歴史館さんはTwitterを使っています 「@mt_tilde Indirection」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Nix使ってRustバイナリビルドするやつできた(依存関係キャッシュもしてくれる) https://t.co/39r3zpWiFh」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「バージョン指定もできるようにした https://t.co/4PK7FoIbL6」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「いろいろビルドしてみるか」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Nixのマニュアル何言ってるか分かんないし果てには「自然演繹で定義するね!」って言いだしててキレそう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「NixOS - Nix Pills https://t.co/BU1eAXbwvq propagatedBuildInputsってそういう意味だったんだ…」 / Twitter
- NixOS - Nix Pills
- 井山梃子歴史館さんはTwitterを使っています 「NixOS - Nixpkgs 20.09 manual https://t.co/FpLJIB1Je4 これで読むの3回目ぐらいだけどそれでもいまいち分からんな」 / Twitter
- NixOS - Nixpkgs 20.09 manual
- 井山梃子歴史館さんはTwitterを使っています 「depsHostHostが推奨されない理由が分からんな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「buildInputsでいっか!w」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「default.nixを書いたのですが,このパッケージだけ含むシェルってどう作るんだ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「依存関係を追加しても既存のはキャッシュしてくれてうれしい crate2nix最高」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「tracing-error/color-eyreで実質バックトレース」 / Twitter
- 2021年6月29日 Is NixOS Reproducible? ―NixOS,最小イメージのビルドを100%再現可能に:Linux Daily Topics|gihyo.jp … 技術評論社
- NixでZenn CLIをビルドする
- Shinji KonoさんはTwitterを使っています 「いろいろなpackage管理はコンテナで解決しつつあるんだが、GUI/IDE側がな。 コンテナとpackage管理は本来関係ないのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GUI/IDEも構成管理ベースでイメージ配布になる気がする。もうなってるかも知れん。」 / Twitter
- hkobaさんはTwitterを使っています 「flatpakが近いかも、です? https://t.co/HryP0y2Uzo」 / Twitter
- 第513回 新しいパッケージの仕組み,Flatpakを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Shinji KonoさんはTwitterを使っています 「@hkoba あぁ、brew cask みたいなのかな。」 / Twitter
- GNU Guix - Google 検索
- gnu stow - Google 検索
- Noriyuki OHKAWAさんはTwitterを使っています: 「インターフェース互換性を人がちゃんと管理するのがそも無理なので,(インターフェースとしての型がちゃんと付くとかで機械的に前verとどうなったかわかる部分が大きい言語ならば)パッケージリポジトリがその機能としてアップロードされたときにバージョニングすべきじゃないかと常々」 / Twitter
blog
Arantium Maestum
histric
histric-1
- 非S式なRacket後継言語?のRhombusとShrubbery記法について - Arantium Maestum
- Impredicative Typesについてのメモ - Arantium Maestum
- 型システムのカインドという概念についてのメモ - Arantium Maestum
- 高カインド型・高階多相についてのメモ - Arantium Maestum
- パラメトリック多相と型コンストラクタ - Arantium Maestum
- なぜプログラミングでは掛け算をアステリスクで表すのか、などの文字コードの話 - Arantium Maestum
- OCamlでmliいつ書くの問題 - Arantium Maestum
- ミニマルなA正規化コードサンプル解説 - Arantium Maestum
- 条件分岐のある言語のA正規化 - Arantium Maestum
- 関数のある言語のA正規化 - Arantium Maestum
- A正規化されたIRをCEK抽象機械で実行 - Arantium Maestum
- CEK抽象機械をCESK抽象機械に拡張する - Arantium Maestum
- A正規化されたIRをCPSに変換する - Arantium Maestum
- Algorithm W実装のためにPrincipal Type Schemes for Functional Programsを読む(前編) - Arantium Maestum
- 論文メモ:Abstract machines for programming language implementation - Arantium Maestum
- Algorithm W実装のためにPrincipal Type Schemes for Functional Programsを読む(中編) - Arantium Maestum
- Algorithm W実装のためにPrincipal Type Schemes for Functional Programsを読む(後編) - Arantium Maestum
- 論文メモ:ORBIT: An Optimizing Compiler for Scheme - Arantium Maestum
- tr445.pdf
- T Project
- Compiling with ContinuationsとORBITの関係 - Arantium Maestum
- 論文メモ:Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I - Arantium Maestum
- プログラミング言語における再帰の初出はLISPではなかった - Arantium Maestum
- 論文メモ:Programming Language Semantics - It's Easy as 1,2,3 - Arantium Maestum
- Every language is a Perlis language - Arantium Maestum
- Graydon HoareのCompiler講義資料が面白かった話 - Arantium Maestum
- CompilerTalkFinal - CompilerTalk-2019.pdf
- PerlisとDijkstraとBauerとAPL - Arantium Maestum
- 論文メモ:The Next 700 Programming Languages - Arantium Maestum
- あの頃読んでた英語テックブログ - Arantium Maestum
histric-2
- 計算機科学の「傑作論文集」集 - Arantium Maestum
- バッカスの功績と経歴 - Arantium Maestum
- 読書メモ:The Rise of "Worse is Better" - Arantium Maestum
- JOSSについての覚え書き - Arantium Maestum
- アラン・ケイとJOSS - Arantium Maestum
- 「Haskellっぽさ」という「関数型プログラミング」のイメージ - Arantium Maestum
- 簡単な型システムを実装していく1 序文 - Arantium Maestum
- 簡単な型システムを実装していく2 STLC - Arantium Maestum
- 簡単な型システムを実装していく3 STLC + Bool - Arantium Maestum
- 簡単な型システムを実装していく4 STLC + Bool + Nat - Arantium Maestum
- 簡単な型システムを実装していく5 STLC+Bool+Nat+Let - Arantium Maestum
- 簡単な型システムを実装していく6 STLC+Bool+Nat+Let+Record - Arantium Maestum
- 簡単な型システムを実装していく7 STLC+Bool+Nat+Let+Record+Variant - Arantium Maestum
- 簡単な型システムを実装していく8 STLC+...+Variant+Fix - Arantium Maestum
- 簡単な型システムを実装していく9 STLC+...+Variant+Fix+Ref - Arantium Maestum
- 簡単な型システムを実装していく10 STLC+...+Error (1) - Arantium Maestum
- 簡単な型システムを実装していく11 STLC+...+Error (2) - Arantium Maestum
- 簡単な型システムを実装していく12 STLC+...+Error (3) - Arantium Maestum
- 簡単な型システムを実装していく13 STLC+...+Error (4) - Arantium Maestum
- 簡単な型システムを実装していく14 STLC+...+Error (5) - Arantium Maestum
- 簡単な型システムを実装していく15 STLC+...+Error (6) - Arantium Maestum
- 型推論を実装・改善していく1 純粋関数型な単相型推論(前編) - Arantium Maestum
- 型推論を実装・改善していく2 純粋関数型な単相型推論(中編) - Arantium Maestum
- 型推論を実装・改善していく3 純粋関数型な単相型推論(後編) - Arantium Maestum
histric-3
- 型推論を実装・改善していく4 状態を持つ型変数生成 - Arantium Maestum
- 型推論を実装・改善していく5 ミュータブルな型変数を使った単相型推論(前編) - Arantium Maestum
- 型推論を実装・改善していく6 ミュータブルな型変数を使った単相型推論(後編) - Arantium Maestum
- 型推論を実装・改善していく7 Let多相型推論(前編) - Arantium Maestum
- 型推論を実装・改善していく8 Let多相型推論(後編) - Arantium Maestum
- 型推論を実装・改善していく9 レベルによるLet多相の効率化(前編) - Arantium Maestum
- 型推論を実装・改善していく10 レベルによるLet多相の効率化(後編) - Arantium Maestum
- 型推論を実装・改善していく6.5 組み込み関数の多相型推論 - Arantium Maestum
- OCamlコンパイラのバックエンドを提供するMalfunctionが面白そう - Arantium Maestum
- Hindley Milner型推論に機能を追加していく1 Unit型の追加 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく2 Bool型の追加 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく3 Int型の追加 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく4 Tuple型の追加 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく5 Record型の追加 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく6 Variant型の追加(前編) - Arantium Maestum
- Hindley Milner型推論に機能を追加していく7 Variant型の追加(後編) - Arantium Maestum
- Hindley Milner型推論に機能を追加していく8 Fixの追加 - Arantium Maestum
- 型コンストラクタは型なのか - Arantium Maestum
- Hindley Milner型推論に機能を追加していく9 Refの追加(前編) - Arantium Maestum
- Hindley Milner型推論に機能を追加していく10 Refの追加(中編) - Arantium Maestum
- Hindley Milner型推論に機能を追加していく11 Refの追加(後編) - Arantium Maestum
- Today I Learnedという記事フォーマット - Arantium Maestum
- TIL: gitで差分なしコミット - Arantium Maestum
- TIL: 世界恐慌で滅んだ世界的マッチ王 - Arantium Maestum
- Hindley Milner型推論に機能を追加していく12 Listの追加(前編) - Arantium Maestum
- Hindley Milner型推論に機能を追加していく13 Listの追加(後編) - Arantium Maestum
- 型システム実装幕間1 各種matchヘルパ関数について - Arantium Maestum
- TIL:OCamlコンパイラのrectypesフラグ - Arantium Maestum
- 型システム実装幕間2 unifyとoccurs check、adjust levelについて - Arantium Maestum
- zehnpaardさんはTwitterを使っています: 「考えれば考えるほどwamlは(wasmとは関係なく)すごいな。正格評価なラムダ計算ベースのコア言語、代数的データ型、パターンマッチ、型推論、モジュールやファンクタとまさにML言語の本質っぽいところがつまったミニ言語だ」 / Twitter
- wasm GC Proposalのために作られた実験的な関数型言語処理系Wamlが面白そう - Arantium Maestum
- 再帰型の実装に関して悩んでいること1 再帰する型変数の表現 - Arantium Maestum
- 再帰型の実装に関して悩んでいること2 equi-recursive対iso-recursive - Arantium Maestum
- wamlのコードを読んでる - Arantium Maestum
- TIL:OCamlのバリアントは比較できる - Arantium Maestum
- Lispを実装したくなったら読んでほしい本6選 - Arantium Maestum
- TIL: OCamlで再帰とlet多相 - Arantium Maestum
- OCaml 5.0のEffect Handlerのチュートリアルをやりはじめた - Arantium Maestum
- OCaml Effects Tutorialの第一演習「Exceptionの再実装」をやってみる1 - Arantium Maestum
- OCaml Effects Tutorialの第一演習「Exceptionの再実装」をやってみる2 - Arantium Maestum
- OCaml Effects Tutorialの例題「Stateの実装」を追ってみる - Arantium Maestum
- OCaml Effects Tutorialの演習「StateのPut実装」をやってみる - Arantium Maestum
- OCaml Effects Tutorialの演習「StateのHistory実装」をやってみる - Arantium Maestum
- OCamlのlocally abstract typeに関するメモ1 (基本的な疑問) - Arantium Maestum
- OCamlのlocally abstract typeに関するメモ2 (構文) - Arantium Maestum
- Effect.Deepで書かれたResumable ExceptionをEffect.Shallowで書き直す - Arantium Maestum
- OCaml Effects Tutorialの演習「Generators from iterators」をやってみる1 - Arantium Maestum
- OCaml Effects Tutorialの演習「Generators from iterators」をやってみる2 - Arantium Maestum
- OCaml Effects Tutorialの演習「Generators from iterators」をやってみる3 - Arantium Maestum
- OCaml 5.0のEffect HandlersでExtensible Interpreter - Arantium Maestum
- OCaml 5.0のEffect HandlersでExtensible Interpreter 続 - Arantium Maestum
- OCaml 5.0のEffect HandlersでComposable Interpreter - Arantium Maestum
- Effect Handler、Extensible Interpreter、Expression Problem - Arantium Maestum
- Effect Handlerで相互再帰を分割する - Arantium Maestum
- Effect Handlerで相互再帰を分割するコードの変遷 - Arantium Maestum
- OCaml Effects Tutorialの演習「Async/await」をやってみる - Arantium Maestum
κeenのHappy Hacκing Blog
- 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
- マクロやコンパイラプラグインの実装方法色々 | κeenのHappy Hacκing Blog
- 新しいコンパイラバックエンドcretonne | κeenのHappy Hacκing Blog
- Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「Standard MLのwithtypeの挙動 https://t.co/tv2kGfi26c」 / Twitter
- Standard MLのwithtypeの挙動
- Summary of proposed changes · SMLFamily/Successor-ML Wiki
- F-ing Modules, yabaitech.tokyo vol.5
- κeenさんはTwitterを使っています 「Erlangの歴史を紐解きつつJIT導入への道程を示している。過去に高速化の話はいくつかあったがそれぞれ問題を抱えていた The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP. https://t.co/f1z09Cijsk」 / Twitter
- The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP.
- シャドイングの嬉しさ | κeenのHappy Hacκing Blog
- 【プログラミング言語速度比較】Collatz数列ベンチマークを言語別比較しよー! - 関数型言語で競プロ精進!
- 論文メモ:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
- 2020年振り返り | κeenのHappy Hacκing Blog
- 2021年抱負 | κeenのHappy Hacκing Blog
- プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
- 今さら聞けないアヴィウムプルヌス入門 | κeenのHappy Hacκing Blog
- 今さら聞けないアヴィウムプルヌス入門のタネ明かし | κeenのHappy Hacκing Blog
- 論文メモの続き:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
- Idris2の依存型つき木 | κeenのHappy Hacκing Blog
- DropとFutureとDropのfuture | κeenのHappy Hacκing Blog
- Rustのコードチェックを強力にする3つのツール | κeenのHappy Hacκing Blog
- よくあるベンチマークを調べたい | κeenのHappy Hacκing Blog
- 関数型データ構造と依存型同時入門 | κeenのHappy Hacκing Blog
雑記帳
- 手っ取り早く実用的なプログラミング言語を作るために | 雑記帳
- 2021年振り返りと来年に向けて | 雑記帳
- 2022年振り返りと来年に向けて | 雑記帳
- AArch64アセンブリーを出力するBrainfuckコンパイラーを書いてみる | 雑記帳
- 限定継続と例外とモナド | 雑記帳
- LunarMLと継続 | 雑記帳
- LunarMLが自身をコンパイルできるようになった | 雑記帳
- HaskellでつくるAArch64版MinCaml | 雑記帳
- LunarML進捗・2022年6月 | 雑記帳
形式手法・型システム・型理論・ラムダ計算・論理
- 定理証明支援系とは何か、何ができるのか|森北出版|note
- エフェクト解析による動的言語最適化 Part.1 - Advanced Technology Lab
- よわよわエンジニアがTAPL(型システム入門)を読んだら | sititou70
- 1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Go Generics で実装する Y コンビネータ、再帰関数を汎用的にメモ化する - アルパカの徒然文
- Project Loom - 限定継続と軽量スレッド -
- 二項関係と非決定性関数 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 交差型を持つ単純型付きλ計算の型付け可能性について - fetburner.core
- 形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
- 競技プログラミングの問題を自動で解きたい - うさぎ小屋
- 一緒に学ぼう,Rustで作る単相型システム - Explore cs in depth!
- メタ関数のカリー化 - yaito3014のブログ
- Notions of Computations and Effects - Just $ A sandbox
- monadからeffectへ - Just $ A sandbox
- Idrisとはじめる型駆動開発 - console.log( ME );
- 議論を形式論理化することの重要性について - hisaketM’s diary
- Malgo開発記録:型シノニムとimport - 星にゃーんの日記帳
- どうしようもなくnaive realism - 井山梃子歴史館
- 数学に正解は一つしかないのか? - 井山梃子歴史館
- 『トポスと高階論理』を読んでいる - 井山梃子歴史館
- 「型システム入門」第4章の実装をRustでやってみた - なんか考えてることとか
- 代数的データ型を論理回路で理解する記事 - なんか考えてることとか
- 直和型を「C言語の共用体に相当する」と説明するのは、もはや誤解を生むだけである - なんか考えてることとか
- Mapをレコード代わりにするための型付け - ベインのブログ
- 関数を渡すvs.エフェクトを返す - ベインのブログ
- 相互再帰関数の型推論で問題になったケース - ベインのブログ
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,レキシカルスコープの #ラムダ式 だけで超循環評価器定義したことなかったなあ,ということで定義してみた.無名相互再帰がひたすら面倒だった.ある意味当たり前だけど,ダイナミックスコープのラムダ式は簡単だったなあ. #Scheme #LISP #lambda #programming https://t.co/e6myIVPgeb」 / Twitter
- ytaki0801/mcescheme: Meta-Circular Evaluator in Scheme by using lambda with lexical scope, without define special form
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ただこれ,あまりスマートな定義じゃないのだよな.ユーティリティ関数セットを引数たらい回しがイケてない感じ.jmc.lispみたいなリファレンス実装ないかな.#CommonLisp でもいいんだけど(などとタグ付きで投下する).#LISP #programming」 / Twitter
- 再構築可能なインフラのための文芸的コンピューティング(LC4RI) | とりあえずやってみよう
- Pointer compression in Oilpan · V8
- Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
- Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
- 俺のシステムがこんなに脆弱性だらけのわけがない(linkedpackageの紹介) | フューチャー技術ブログ
- 新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だったのか?』の草稿を公開します - まめめも
- nullが生まれた背景と現在のnullの問題点 ― null参照問題(前編) - Build Insider
- nullはポインタだがリファレンスではない - ベインのブログ
- Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
- JavaScriptでパーサコンビネータのコンセプトを理解する(「正規表現だけに頼ってはいけない」の続き) - id:anatooのブログ
- パーサコンビネータとPEGの違いについて - kmizuの日記
- neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス
- Big bag of pagesで型情報を節約する - 思考録++
- 詳説コンピュテーション式 - ぐるぐる~
- Call-by-needを採用した言語のインタプリタの実装 - fetburner.core
- ドラゴンの力でControl Flowからバイナリ解析を手助けする - GeT_Pwn3d!
- Python 3.11で末尾再帰が書けるようになる - なんか考えてることとか
- コンパイラでのエラーの扱い - ベインのブログ
- 式指向構文が言語処理系にもたらす複雑性 - ベインのブログ
- 関数型プログラミング言語の構文は「すべてが式」ではない - ベインのブログ
スライド
PDF
- Curry-Howard の対応 - slide2013.pdf
PDF
PDF
- Homepage of Kazushige TERUI
- 五十嵐 淳 (Atsushi IGARASHI)
- famc.pdf
- module_patterns.pdf
- Exception Handling and Classical Logic - PPDP19.pdf
- Tronso_35_16.pdf
- 階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
- Strong normalizability of the non-deterministic catch/throw calculi - ScienceDirect
- simple_ml_modules.pdf
- LR構文解析の原理
- 情報学広場:情報処理学会電子図書館
- 配信講義 計算科学技術特論A (2019)(4月11日~7月25日) | 理化学研究所 計算科学研究センター(R-CCS)
- 整数の不思議(その1) - prog_languages2.pdf
- 06gun_04hen_07.pdf
- 名称未設定 - part2.pdf
- 超限帰納法
- 超限帰納法 - transfinite-induction-20210725.pdf
- slpj-book-1987.djvu - slpj-book-1987-small.pdf
- tfp12.pdf
- fujii21.pdf
- kitagawa21.pdf
- akiyama22.pdf
- fujii22.pdf
- ishio22.pdf
- ishio20.pdf
- furukawa20.pdf
- sou19.pdf
- ishio19.pdf
- sou18.pdf
- ishio18.pdf
- wakikawa18.pdf
- sou17.pdf
- uehara17.pdf
- kadowaki16.pdf
- kadowaki15.pdf
- sou15.pdf
- ueda15.pdf
- sou14.pdf
- ishii14.pdf
- asai14.pdf
- kaneko13.pdf
- tsushima13.pdf
- masuko13.pdf
- hirota13.pdf
- tsushima12.pdf
- ueda10.pdf
- tsushima10.pdf
- ppl10.dvi - masuko10.pdf
- sakurai10.pdf
- kitani10.pdf
- kitani09.pdf
- masuko09.pdf
- sakaue09.pdf
- suzuki06.pdf
- sasaki04.pdf
- nakagawa04.pdf
- cs2012ch1.dvi - cs2012ch1.pdf
- 第13回「不完全性定理」 - 14.pdf
- PSSJ-JSRNPS1(2018)_Hiromi_Tanaka.pdf
- [PDF] PPTX - Free Download PDF
- 「計算と論理」 Software Foundations その8 - handout8.pdf
- riron.pdf
- 情報科学系セミナー(第5回) - is20171023.pdf
- 整数の不思議(その1) - predicate_logic.pdf
- 論理と計算 講義ノート - logic2018spring-draft.pdf
- [PDF] 一般化された体系における cut除去定理の 成立条件 - Free Download PDF
- IPSJ-MGN300605.pdf
- logic-ss13.dvi - logic-ss13.pdf
- nyumon_logic.pdf
- PowerPoint Presentation - quiz.pdf
- 20200601_14.pdf
- wakatenokai_FY2020_program.pdf
- tabata3.pdf
- 50yearsPT.pdf
- program.pages - program.pdf
- birth.dvi - birth.pdf
- 9.pdf
- 62_0621115.pdf
- GHC illustrated - haskell_ghc_illustrated.pdf
- 高等学校数学科「行列入門」 - 20210525-mxt_kyoiku01-000009442_1_1.pdf
- main-j.pdf
- lattice20211108.pdf
- bidir.pdf
- LintオタクによるLint解説 / Introduction to Lints - Speaker Deck
- サーバーレスは操作的意味論の夢を見るか? #AWSDevDay / AWS Dev Day 2022 Japan - Speaker Deck
- AWS Dev Day 2022 Japan に「サーバーレスは操作的意味論の夢を見るか?」というタイトルで登壇してきました - チェシャ猫の消滅定理
GitHub
定理証明支援系
- こたつがめさんはTwitterを使っています 「できた。とりあえず、正しくて単純な証明をやらせようとすると動く。 https://t.co/k5eUB8p0Jh」 / Twitter
- kotatsugame/proof_assistant
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「定理証明支援系を書くの、いいよね」 / Twitter
Jikka
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「競プロの問題を自動で解いてくれるソルバ Jikka を作っています https://t.co/gwZuWGCdbu」 / Twitter
- kmyk/Jikka: an automated solver for problems of competitive programming
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「「競プロの問題を自動で解く」にも様々な形がありますが、この問題を「プログラムを入力として受け取り、これを最適化して時間計算量を落としたプログラムを出力する」という問題へと整理し、Jikka はこれを解きます 競技プログラミングの問題を自動で解きたい - うさぎ小屋 https://t.co/WMmYRK6QMB」 / Twitter
- 競技プログラミングの問題を自動で解きたい - うさぎ小屋
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「具体的には、Jikka はかなり aggressive に計算量レベルの最適化をする Python から C++ へのトランスパイラになっています。ただしその Python 部分は競プロで問題にならない範囲でいくらか制限されていて、静的型付き純粋関数型プログラミング言語となっています」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「たとえば Fibonacci 数を求める愚直 O(N) の Python コードを行列累乗 O(log N) の C++ コードに変換してくれます https://t.co/XYulILOxpk」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「自動でセグメント木も貼ってくれます。愚直 O(N^2) が勝手に O(N log N) になります https://t.co/vBO9bUqzDM」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「もちろんなんでも解けるわけではなくて、解ける問題と解けない問題とがあります。具体的にはいわゆる「実家 DP」のあたりが得意です 行ってくれる最適化の一覧は docs/optimization.ja.md にあります https://t.co/2262Fn4NNm」 / Twitter
- Jikka/optimization.ja.md at master · kmyk/Jikka
Sorbet Compiler
- Miura HidekiさんはTwitterを使っています 「Rubyは静的型付け言語、そう言う処理系が作れたのだから間違いない >RT」 / Twitter
- Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
- Miura HidekiさんはTwitterを使っています 「https://t.co/o5E1Ypvew7 パーサーもバイトコードを解析する部分も見つからなくて、悩んだけど説明見たらsorbetの解析結果が型情報つきの特製IRとあってなるほどと思った。」 / Twitter
- sorbet/compiler at master · sorbet/sorbet
- Miura HidekiさんはTwitterを使っています 「Rubyで単純に機械語やLLVM IRに変換しても余り速くなる気がしないのだが、Sorbetだと静的型情報を持っているわけなのでこれがどう効いてくるのか興味がある」 / Twitter
histric-1
- ein-lang/ein: The functional programming language for scalable development
- raviqqe/ssf: Structurally-typed strict functional core language
- raviqqe/fmm
- nikosai/lambda-friends: Web上で動作するラムダ計算のインタプリタ「らむだフレンズ」
- セルフホスト可能なCコンパイラを書く – GitHub 出張所 – プログラム関係のブログはここに
- 自作コンパイラ基盤の内部構造を書くところ - uint256_t's blog
- 日刊Coroutines(0) コルーチンのおさらいと近年の動向(若干) - lilyum ensemble
- 先読み付き正規表現の微分について
- ELVM Scratch 3.0 backend | Reinventing Square Wheels - algon's blog
- Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの? - lilyum ensemble
- ML Advent Calendar 2020 20日目
- GitHub - miura1729/mruby-meta-circular: mruby by mruby
- yuk1ty/learning-systems-programming-in-rust: 「Rustならわかるシステムプログラミング」
- ab25cq (DAISUKE MINATO)
- maekawatoshiki (uint256_t)
- mir/MIR.md at master · vnmakarov/mir
- 手を動かせばできるLLVMバックエンド チュートリアル
- TypeScriptでカリー=ハワード同型対応(?)
- aalhour/awesome-compilers: Curated list of awesome resources on Compilers, Interpreters and Runtimes
- Alternative names · coq/coq Wiki
- kousoz80 ( スーザン・キャルヴィン)
- Program Analysis Resources (WIP draft)
- hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
- OpeLa Register Assignment · osdev-jp/osdev-jp.github.io Wiki
- jonsequitur/dotnet-repl
- Standard MLと型生成性
- Yosuke FurukawaさんはTwitterを使っています 「最高かよ... Rust のライフタイムと所有権のメカニズムを可視化して見せてくれる本 / “GitHub - rustviz/rustviz: Interactively Visualizing Ownership and Borrowing” https://t.co/0fYBUNJtg6」 / Twitter
- rustviz/rustviz: Interactively Visualizing Ownership and Borrowing
- MetaCoq/metacoq: Metaprogramming in Coq
- たなかさんさんはTwitterを使っています 「jcってコマンド便利すぎる。あらゆるテキストをjson形式にできてjqの世界に持ち込める。 lsの結果をjsonとかにできる。 ``` $ ls -l /usr/bin | jc --ls -p [ { "filename": "apropos", "link_to": "whatis", "flags": "lrwxrwxrwx.", ... ``` https://t.co/72IEt0tL67」 / Twitter
- kellyjonbrazil/jc: CLI tool and python library that converts the output of popular command-line tools and file-types to JSON or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.
- mitsuchi/copl-in-prolog: 書籍「プログラミング言語の基礎概念」の Prolog による実装
- proposal/generics-implementation-dictionaries-go1.18.md at master · golang/proposal
- colun/mmlang: Competitive Programming Language MM
- dowanna @PrAha Inc.(株式会社プラハ) CEOさんはTwitterを使っています: 「「React周りの知見がまとまっている技術書を教えて〜!」 ってちょいちょい聞かれるけど、変化が激しくて本では追ってないから答えられず...代わりに大体bulletproofシリーズを伝えてる https://t.co/OwzVsujsuX」 / Twitter
- alan2207/bulletproof-react: 🛡️ ⚛️ A simple, scalable, and powerful architecture for building production ready React applications.
- Introduction - Secure Rust Guidelines
- GitHub - ab25cq/comelang: Modern C compiler. LLVM-C Based. Self-host . Generics. inline function, method block, protocol. Collection, string libraries using boehm GC.
- erg-lang/erg: A Python-compatible statically typed language
- Shunsuke ShibayamaさんはTwitterを使っています: 「ergの発音ですが、僕はエルグと呼んでいます 英語だとアーグみたいな発音になるようですが、元々のギリシャ語εργονはエルグの方が近いですね」 / Twitter
- Shunsuke ShibayamaさんはTwitterを使っています: 「Ergの篩型と依存型は推論可能なようにかなり制限されています また所有権システムはありますが、参照は関数の引数として渡すことしかできません ライフタイム注釈を省略するためです」 / Twitter
- Go Secure Coding Practice の日本語翻訳を公開します - Techtouch Developers Blog
- techtouch-inc/Go-SCP-jaJP: Japanese translated https://github.com/OWASP/Go-SCP/
- ytakano/baremetalisp
- kspalaiologos/malbolge-lisp: A lightweight (150MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.
- daem0nc0reさんはTwitterを使っています 「Reverse Engineeringの無料教材。x86系だけじゃなくて、ARM系も含まれています。 https://t.co/aRGAcGCM9b」 / Twitter
- mytechnotalent/Reverse-Engineering: A FREE comprehensive reverse engineering course covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
- Go FujitaさんはTwitterを使っています 「『Pharo by Examples』はPharo Smalltalkのテキスト。 現行バージョン(9.0)対応の文章が少しずつ公開されているので、それを毎週追いかけています。 2018年版(ver 5対応)はひと通りよみましたが、その差分から学ぶことも多いと感じ」 / Twitter
- Release Release v1.7.5 · guillep/PharoBootstrap
- malbolge - Google 検索
- Malbolge
Wikipedia
Wikipedia
Wikipedia
- 動的コンパイル - Wikipedia
- トレーシング実行時コンパイル - Wikipedia
- キャメルケース - Wikipedia
- カーゴ・カルト・プログラミング - Wikipedia
- Cargo cult programming - Wikipedia
- フィーチャートグル - Wikipedia
- 命令スケジューリング - Wikipedia
- タプル - Wikipedia
- オフサイドルール - Wikipedia
- グラフ理論 - Wikipedia
- グラフ彩色 - Wikipedia
- Data dependency - Wikipedia
- インテンショナルプログラミング - Wikipedia
- インタプリタ - Wikipedia
- シェープ解析 - Wikipedia
- ポインタ解析 - Wikipedia
- エイリアス解析 - Wikipedia
- エスケープ解析 - Wikipedia
- スレッデッドコード - Wikipedia
- バイトコード - Wikipedia
- ファイバー (コンピュータ) - Wikipedia
- コルーチン - Wikipedia
- ジェネレータ (プログラミング) - Wikipedia
- イテレータ - Wikipedia
- ワードマシン - Wikipedia
- 操車場アルゴリズム - Wikipedia
- 木構造 (データ構造) - Wikipedia
- ボックス化 - Wikipedia
- LISPマシン - Wikipedia
論理
- 第五世代コンピュータ - Wikipedia
- Guarded Horn Clauses - Wikipedia
- KL1 - Wikipedia
- Concurrent Prolog - Wikipedia
- 並行論理プログラミング - Wikipedia
- 論理プログラミング - Wikipedia
- カリー=ハワード同型対応 - Wikipedia
- コンビネータ論理 - Wikipedia
- ゲーデルの完全性定理 - Wikipedia
- 述語論理 - Wikipedia
- 様相論理 - Wikipedia
- 古典論理 - Wikipedia
- 非古典論理 - Wikipedia
- 時相論理 - Wikipedia
- 計算木論理 - Wikipedia
- 線形時相論理 - Wikipedia
- 義務論理 - Wikipedia
- 直観主義論理 - Wikipedia
- ゲルハルト・ゲンツェン - Wikipedia
- Gerhard Gentzen - Wikipedia
- 論理記号の一覧 - Wikipedia
- Microsoft PowerPoint - HITproplogic.ppt - HITproplogic.pdf
- 量化 - Wikipedia
- 存在記号 - Wikipedia
- 全称記号 - Wikipedia
- パースの法則 - Wikipedia
- ボトム型 - Wikipedia
- 垂直記号 - Wikipedia
言語
- Rust (プログラミング言語) - Wikipedia
- LISPマシン - Wikipedia
- シンボリックス - Wikipedia
- Rust (programming language) - Wikipedia
- Julia (プログラミング言語) - Wikipedia
- Julia (programming language) - Wikipedia
- TLA+ - Wikipedia
- 弱い参照 - Wikipedia
- CLU - Wikipedia
- CLU (programming language) - Wikipedia
チャーチ=チューリングのテーゼ
- チャーチ=チューリングのテーゼ - Wikipedia
- Church–Turing thesis - Wikipedia
- 決定可能性 - Wikipedia
- Decidability (logic) - Wikipedia
- 宣言型プログラミング - Wikipedia
- 制約プログラミング - Wikipedia
- 項書き換え - Wikipedia
- Haskell/Denotational semantics - Wikibooks
- 自明性 (数学) - Wikipedia
- プロセス計算 - Wikipedia
- アクターモデル - Wikipedia
- セル・オートマトン - Wikipedia
- コラッツの問題 - Wikipedia
- 決定問題 - Wikipedia
- コンパクト性定理 - Wikipedia
- クワイン (プログラミング) - Wikipedia
- 値 (情報工学) - Wikipedia
- 無限降下法 - Wikipedia
- 数学的帰納法 - Wikipedia
- 契約プログラミング - Wikipedia
- ボイラープレートコード - Wikipedia
- ALTQ - Wikipedia
- 形式科学 - Wikipedia
- Formal science - Wikipedia
- スペースカデットキーボード - Wikipedia
- PAL (programming language) - Wikipedia
- Pattern matching - Wikipedia
- Functional programming - Wikipedia
- メモ化 - Wikipedia
- Memoization - Wikipedia
- ソフトウェアファクトリー - Wikipedia
- カリー=ハワード同型対応 - Wikipedia
- 継続 - Wikipedia
- 継続渡しスタイル - Wikipedia
- Metamath - Wikipedia
- ISWIM - Wikipedia
- ISWIM - Wikipedia
- The next 700 programming languages - Landin66.pdf
- タンデムコンピューターズ - Wikipedia
- まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap ロックステップでしょうか。 https://t.co/coCZwt2QUX 2システムの場合は問題の検出を、3システムの場合は問題の自動回復をするとありますね。」 / Twitter
- Lockstep (computing) - Wikipedia
- 操車場アルゴリズム - Wikipedia
- プロトコル - Wikipedia
- 超関数 - Wikipedia
- 群の表現 - Wikipedia
- 解析学 - Wikipedia
- 微分方程式 - Wikipedia
- 確率論 - Wikipedia
- 確率空間 - Wikipedia
- 統計学 - Wikipedia
- 出版-購読型モデル - Wikipedia
- イベント駆動型プログラミング - Wikipedia
- メッセージ指向ミドルウェア - Wikipedia
- データフロープログラミング - Wikipedia
- シグナルプログラミング - Wikipedia
- CompCert - Wikipedia
- CompCert - The CompCert C compiler
- AbsInt/CompCert: The CompCert formally-verified C compiler
- ブートストラップ問題 - Wikipedia
- コードの臭い - Wikipedia
- 委譲 - Wikipedia
Twitter
状態遷移
- naoyaさんはTwitterを使っています: 「iterate f n の n 最初: 再帰の初期値ですね → アキュムレータですね → 処分された情報が蓄積されているものですね → つまり状態ですね → iterate はある状態から始まった状態遷移列を得る関数ですね こんな感じでメンタルモデルが変わっていく」 / Twitter
- naoyaさんはTwitterを使っています: 「https://t.co/M6HebOwh9J この AtCoder 入門でよく見る問題。 [8, 12, 40] という数列をそれぞれ2で割り続けて、 [2, 3, 10] みたいに数列の中に奇数が出てくるまで何回 2 で割れるかという問題だけど」 / Twitter
- B - Shift only
- naoyaさんはTwitterを使っています: 「これを [8, 12, 40] -> [4, 6, 20] -> [2, 3, 10] というリスト値の状態遷移だ、と捉える」 / Twitter
- naoyaさんはTwitterを使っています: 「こう状態遷移だと捉えて先の「iterate 関数は状態遷移列を得る関数」という認識で使うと iterate (map (`div` 2)) [8, 12, 40] これで、その状態遷移列が得られる」 / Twitter
- naoyaさんはTwitterを使っています: 「状態遷移列が得られたら、列の長さが遷移回数になるので length . takeWhile (all even) $ iterate (map (`div` 2)) [8, 12, 40] これで回答になる」 / Twitter
- naoyaさんはTwitterを使っています: 「iterate というシンプルな関数をどういうメンタルモデルで捉えるかで、問題の解き方、捉え方が大きく変わる。プログラミングのメンタルモデルを頭の中で調整していくというのはこういうことだなあと」 / Twitter
- naoyaさんはTwitterを使っています: 「iterate (map (`div` 2)) [8, 12, 40] の map は、ある状態を次の状態に遷移させる写像、と捉える」 / Twitter
@keigoi
- 今井 敬吾
- Keigo ImaiさんはTwitterを使っています 「非決定性オートマトンの determinization を遅延評価を使って Haskell で実装する Credit Card Transform という話がある。元は Oleg さんのメーリングリストの投稿 https://t.co/h7uBIFgwuY」 / Twitter
- Tying the Knot - HaskellWiki
- Keigo ImaiさんはTwitterを使っています 「これと同じものをCoqのCoinductiveで書けないだろうか?」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これ、SWI-Prolog での (co-facts の) 実装が公開されてます。この co-facts は coaxiom に相当するように見えます。coinduction を詳細にコントロールするのにcoaxiom/corule が使えます 実装: https://t.co/iysPAfMFNO 論文: https://t.co/1zel0zgxLB」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prolog より何かすごいのかもw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Corule で意味論をつくるのが楽しい https://t.co/1jMoEuWPHe」 / Twitter
- DROPS - Modeling Infinite Behaviour by Corules
- https://person.dibris.unige.it/ancona-davide/Software/cofacts.zip
- [1709.04901v1] Extending Coinductive Logic Programming with Co-Facts
- Keigo ImaiさんはTwitterを使っています 「グラフが扱えるのでオートマトンの決定化に使えないか。既にありそうだけど、 ε-NFA を決定化するときにε遷移を追いまくるとラベルなしで自分に戻ってくるケースがあり、そこの扱いに使う…とか?」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@keigoi coFJもあるんですね。 https://t.co/iQ6VSNTTnd ソースも https://t.co/BxQ6XwHodc」 / Twitter
- Sound regular corecursion in coFJ - 2005.14085.pdf
- h_sakuraiさんはTwitterを使っています 「@keigoi 人間にしかできないと思っていたようなことができちゃってそうw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@h_sakurai regular な範囲ならループがあっても自動的に検出して止まってくれる…といいな…」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの左再帰な無限ループ回避できる子ルールを決めるとか何かして数学的帰納法的なところからなんかうまくいくっぽいw なんかってなに?って感じだけどw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「何とかMLer向けにと気負ってしまい発表資料えらい苦戦したんですけど、そもそもセッション型 (のグローバルタイプ) は型付きのプロトコルDSLとしてギリギリ成立するかしないかの部分があって、DSLとコード生成系の中間でちょうど良い方法があるんじゃないかと感じる」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「I presented at ML workshop 2021: https://t.co/fOvFwgNjZt」 / Twitter
- Verifying Multiparty Communication Protocols using ML Type Systems (ML 2021) - ICFP 2021
- 品川@UKさんはTwitterを使っています 「KISS (keep it simple stupid) の原則。」 / Twitter
- 品川@UKさんはTwitterを使っています 「Log4j の脆弱性の経験を踏まえて、KISS の原則を再確認すべき時が来た。 https://t.co/q8fT2TPOGp」 / Twitter
- KISSの原則 - Wikipedia
- KISS principle - Wikipedia
- kawasimaさんはTwitterを使っています: 「こういうの。オブジェクト指向DDDにこだわり過ぎると、商品追加のビジネスルールをCartクラスに持たせなきゃ、という思いから全部ロードパターンを捨てられないこともありそう。 https://t.co/VnH1870YSn」 / Twitter
- kawasimaさんはTwitterを使っています: 「部門に社員を配属するとか、カートに商品追加するとか、コレクションを集約としてアイテムを追加する訳だが、件数多くいちいちコレクション全体をメモリにロードしてられないこともある(というかそういうケースの方が多いのでは?) 。そういう時にどういう設計パターンが考えうるか、まで論じて欲しい。」 / Twitter
- kawasimaさんはTwitterを使っています: 「イミュータブルデータモデル。内容をアップデートしていけるように、最新版をSlideshareでなくscrapboxに置きます。スライドだけでは読み取りにくかった分の補足も入れてますので、ご愛顧いただいている皆様には、以後こちらを参照いただけますようお願いします! https://t.co/WLbmffsIai」 / Twitter
- イミュータブルデータモデル - kawasima
Advent Calendar
その他
- Rui Ueyamaさんのツイート: "Forth書いたこともWindowsバイナリ手書きしたこともコンパイラのセルフホストしたこともあるけど、この記事すごくよいのでは? 1日ではできないだろうけど腰を据えて読めば。 https://t.co/sCr5wN2uZZ"
- 一日でできるセルフホスティングForthコンパイラ - Qiita
- Shiro Kawaiさんのツイート: "うん、とても良い。セルフホストで立ち上げるの楽しいんで自分も記事書いてみたいと思うんだけどいろいろ細かい話がたくさんあって全部説明しつつ短い記事にまとめるのがすごく難しい。なのでこんだけまとめて書けるのすごい。 https://t.co/ZDjB0sbM3A"
- PyPy Advent Calendar 2011 まとめ - pypy-ja
- ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita
- MPI Advent Calendar 2017 - Adventar
- AVX-512 Advent Calendar 2014 - Qiita
- AVX/AVX2/AVX512のカレンダー | Advent Calendar 2021 - Qiita
- Emacs Advent Calendar 2018 - Qiita
- セキュリティツール系 Advent Calendar 2018 - Adventar
- Brainf*ck Advent Calendar 2019 - Adventar
- Ruby 2.7 Advent Calendar 2019 - Qiita
- Elixir Advent Calendar 2019 - Qiita
- 自作言語 Advent Calendar 2019 - Qiita
- 意味論 Advent Calendar 2016 - Adventar
- 型 Advent Calendar 2019 - Qiita
- Idris Advent Calendar 2020 - Qiita
- 型理論のカレンダー | Advent Calendar 2021 - Qiita
- Garbage Collection Advent Calendar 2012 - Adventar
- Narihiro Nakamura’s Presentations on SlideShare
- Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita
- Smalltalkのカレンダー | Advent Calendar 2021 - Qiita
- C++のカレンダー | Advent Calendar 2021 - Qiita
- JuliaLangのカレンダー | Advent Calendar 2022 - Qiita
Theorem Prover
- Theorem Prover Advent Calendar 2013 - Qiita
- Theorem Prover Advent Calendar 2014 - Qiita
- Theorem Prover Advent Calendar 2015 - Qiita
- Theorem Prover Advent Calendar 2016 - Qiita
- Theorem Prover Advent Calendar 2017 - Qiita
ML
- ML Advent Calendar 2014 - Qiita
- ML Advent Calendar 2015 - Adventar
- ML Advent Calendar 2016 - Qiita
- ML Advent Calendar 2017 - Adventar
- ML Advent Calendar 2020 - Qiita
- ML (Meta Languages)のカレンダー | Advent Calendar 2021 - Qiita
アルゴリズム
- グラフ探索アルゴリズム Advent Calendar 2015 - Qiita
- 文字列アルゴリズム Advent Calendar 2016 - Qiita
- 文字列アルゴリズム Advent Calendar 2017 - Qiita
- データ構造とアルゴリズム Advent Calendar 2018 - Qiita
- データ構造とアルゴリズム #2 Advent Calendar 2018 - Qiita
- データ構造とアルゴリズム Advent Calendar 2019 - Qiita
- データ構造とアルゴリズム Advent Calendar 2020 - Qiita
- データ構造とアルゴリズム Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita
WebAssembly
- WebAssembly Advent Calendar 2017 - Qiita
- WebAssembly Advent Calendar 2018 - Adventar
- WebAssembly Advent Calendar 2018 - Qiita
- WebAssembly Advent Calendar 2019 - Qiita
- WebAssembly Advent Calendar 2020 - Adventar
- WebAssembly Advent Calendar 2020 - Qiita
C 言語
- C言語 Advent Calendar 2015 - Qiita
- C言語 Advent Calendar 2016 - Qiita
- C言語 Advent Calendar 2017 - Qiita
- C言語 Advent Calendar 2018 - Qiita
- C言語 Advent Calendar 2019 - Qiita
Lisp
- Clojure Advent Calendar 2018 - Qiita
- Clojure Advent Calendar 2019 - Qiita
- Clojure Advent Calendar 2020 - Qiita
- Lisp SETF Advent Calendar 2018 - Qiita
- Lisp メソッドコンビネーション Advent Calendar 2018 - Qiita
- lisp Advent Calendar 2018 - Qiita
- Lisp Advent Calendar 2019 - Qiita
- Lisp Advent Calendar 2020 - Qiita
- Lispのカレンダー | Advent Calendar 2021 - Qiita
テスト
- ソフトウェアテスト Advent Calendar 2016 - Qiita
- ソフトウェアテスト Advent Calendar 2017 - Qiita
- ソフトウェアテスト Advent Calendar 2018 - Qiita
- ソフトウェアテスト Advent Calendar 2019 - Qiita
- ソフトウェアテスト Advent Calendar 2020 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2018 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2019 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita
Rust
- Rust Advent Calendar 2020 - Qiita
- Rustのカレンダー | Advent Calendar 2021 - Qiita
- Rustのカレンダー | Advent Calendar 2022 - Qiita
- 言語実装 Advent Calendar 2015 - Qiita
- 言語実装 Advent Calendar 2016 - Qiita
- 言語実装 Advent Calendar 2017 - Qiita
- 言語実装 Advent Calendar 2018 - Qiita
- 言語実装 Advent Calendar 2019 - Qiita
- 言語実装 Advent Calendar 2020 - Qiita
- 言語実装のカレンダー | Advent Calendar 2021 - Qiita
- 言語実装のカレンダー | Advent Calendar 2022 - Qiita
OS
- GIGABYTE - eSupport
- Desktop operating system market share in Japan | StatCounter Global Stats
- Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
- Home | CVE
その他
その他
- I2C-bus specification and user manual - UM10204.pdf
- ざっくり理解するSRE - 赤帽エンジニアブログ
- OSKitで遊ぼう - Kota Abe
- 筑波大学情報科学類:情報システム実験:カーネルハック
- メインフレームの異常処理 - Qiita
- 「フェイルバック(failback)」と「フォールバック(fallback)」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- ガラパゴスは此処に在った!自作OSの上で自作CADを動かす猛者 | Scene Research Station
- Blog - seiya.me
- 煉々ねりぃ / Nerry🍆(@t9jyc)さん / Twitter
- 最近の myos - 借り初めのひみつきち
- Desktop browser market share in Japan | StatCounter Global Stats
- FreeRTOS POSIX porting + Catch2 でマルチタスクなユニットテスト環境を整備する part1 - Nature Engineering Blog
- アポロコンピュータ - Wikipedia
- Apollo Computer - Wikipedia
- 異世界人のための OS を作っていく (long version) - Google スライド
Linux, POSIX, UNIX, Multics, Plan 9
その他
- 「Linux」マルウェア「OrBit」発見--検出、削除が難しい新種 - ZDNet Japan
- 暗黒美無王 dark VimさんはTwitterを使っています 「これを読むと、なぜArchLinuxが流行らないのかがわかりやすいですよ。 広く使われるLinuxは安定していて、そこに価値があるんです。 https://t.co/5p0kyP9rtz」 / Twitter
- 「Steam」開発のValveはなぜDebianからArch Linuxに乗り換えたのか? - GIGAZINE
- OS「UNIX」の生みの親が残した「ソースを調べても発見できないトロイの木馬の可能性」の証拠が40年越しに再発見される - GIGAZINE
- /var/tmp にプログラムを置くのはまずい話 - 赤帽エンジニアブログ
- 【Ubuntu日和】【第13回】Ubuntuの商用サポートと、無償で使える「Kernel Livepatch」機能 - PC Watch
- リーナス・トーバルズが開発者に「ギリギリになってあわてて作業するのは高校で卒業すべき」と助言 - GIGAZINE
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「ターミナル操作の動画を作成するツール。コマンド名がエモい。一連のコマンドやsleepなどをDSLで書いて動画ファイルを生成。golang実装でlinuxはもちろんのことmacやwinでも動作可。いいなこれ。 / “GitHub - charmbracelet/vhs: Your CLI home video recorder 📼” https://t.co/rjDM9DLmwv」 / Twitter
- charmbracelet/vhs: Your CLI home video recorder 📼
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「わいわい。個人的にはdashでも動作するようにしたいところですが、このテンプレートはいいんじゃないでしょうか。 / “Shell Script Best Practices — The Sharat's” https://t.co/hohXrEoWo9」 / Twitter
- Shell Script Best Practices — The Sharat's
- GoogleのShell Style Guideの邦訳 - Qiita
- Envader | インフラエンジニアを目指すための学習サイト
- Linuxカーネルを新しいCPUに移植する - 豆腐の豆腐和え
- A4用紙40枚で1969年から2022年までのUNIXの歴史「Unix History」を一望してみた - GIGAZINE
- 【Ubuntu日和】【第18回】Ubuntuが起動しなくなった時にストレージ全体を退避する方法 - PC Watch
WSL
その他
histric
histric-1
- Microsoft、システム監視ツール「Sysmon」のLinux版オープンソースで公開 | TECH+
- lsofの使い方まとめてみた - CubicLouve
- ifconfigコマンドとipコマンドの違いと比較 – エラーの向こうへ
- linux debugfs - Google 検索
- Darling | macOS translation layer for Linux
- 1Password for Linux beta is now open 🎊 🐧 🎊 | 1Password
- X.Org Serverは見捨てられたソフトウェアなのか | スラド オープンソース
- Linuxで発表動画を撮る | κeenのHappy Hacκing Blog
- AppArmor - Ubuntu Wiki
- Security - AppArmor | Server documentation | Ubuntu
- Yubikey覚書 | teqblog
- 超入門USDT - ローファイ日記
- Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
- Linux カーネルでの Sphinx 利用法を見てみよう - Hack like a rolling stone
- The Linux Kernel documentation — The Linux Kernel documentation
- Enterキーが押されるのを待たずに、標準入力から文字をキャプチャします
- if0604_60.pdf
- Windowsマシンを使う - in neuro
- Ubuntu 20.04 LTS : NVIDIA ドライバーインストール : Server World
- remmina - Google 検索
- Ss systemdのwslディストロを作る kernelvm探検隊online part 3
- Ansible Collections を使ってみよう! - 赤帽エンジニアブログ
- screen serial - Google 検索
- Ubuntuのインストール時に設定すること | OsaruSystem
- fbiとfbvのインストール・設定 | ペンギンの道しるべ
- 【systemd】Type=notifyについて調べたメモ - 地方エンジニアの学習日記
- WindowsにWSL2とDockerをインストールする手順 | カフーブログ
- Verilatorのリグレッションテスト用にWSL2上にDocker環境を構築する試行 - FPGA開発日記
- WSL2でMySQLを起動するときは mysqld --daemonize を使う - そーだいなるらくがき帳
- WSL2のUbuntuにpdftkをインストールするためのsnapのためにsystemdを起動する(必要はない)
- リモートマシンのルートファイルシステムをぶっ飛ばした話 - 覚書
- 2021年10月13日 Snapにもっと自由を ―Ubuntu開発者によるSnapサーバのオープンソースオルタナティブ:Linux Daily Topics|gihyo.jp … 技術評論社
- Windows 11ビルド22518は、音声アクセス、ウィジェット、WSLに大きな変更をもたらします|自作.com
- ZshでOSC 133に対応する
- proposals/semantic-prompts.md · master · Per Bothner / specifications · GitLab
- scriptコマンドで作業ログを記録 | DevelopersIO
- zaw(zsh anything.el-like widget)による圧倒的な操作性の向上 - Qiita
- 古い記事を読んでいるmatsuuさんはTwitterを使っています 「CPU情報を取得していい感じのバナーをコンソール上に表示するツール。OS起動時やSSH接続時のmotdの代わりに表示したいところだ。 / “GitHub - Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool” https://t.co/YsIe1sf12W」 / Twitter
- Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool
- 日記 (2020 年 7 月)
- JeroenDelcour/tplot: A library for creating text-based graphs in the terminal
- 米MSと英Canonical、WSLでsystemdサポート | OSDN Magazine
- 山市良のえぬなんとかわーるど: Win-KeX on WSL2
- WSL2 で Systemd と docker を有効にする - hidekatsu-izuno 日々の記録
MS
- GitHub - microsoft/WSL: Issues found on WSL
- WSL 1 と WSL 2 の比較 | Microsoft Docs
- USB デバイスを接続する | Microsoft Docs
- DirectX ❤ Linux | DirectX Developer Blog
- Linux との Windows の相互運用性 | Microsoft Docs
- WSL で Linux GUI アプリを実行する | Microsoft Docs
Ubuntu
技術評論社
histric
histric-1
- 第633回 字幕ファイルを作成し,動画に焼き込む:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第663回 Ubuntu 21.04の主な変更点:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第667回 Warpinatorでお手軽LAN内ファイル転送:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第669回 Ubuntuとデスクトップフォルダー機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第680回 LXDコンテナ上のWindowsでWSL環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第696回 UbuntuでもWi-Fi 6を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第697回 AMD Ryzen 5 5800Xで学ぶ,Ubuntuにおけるシステムの動作確認:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第698回 デスクトップ環境の2021-2022年:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第699回 「ファイル(Nautilus)」のさまざまな機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第701回 ストレージ管理ツール「ディスク」を活用する[2022年版]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第705回 Radeon Software for Linuxを使用する[2022年版]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第708回 GUIでネットワーク設定を行う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第712回 Ubuntu 22.04 LTSの変更点:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第713回 Ubuntu 22.04 LTSの新機能,リモートデスクトップのRDPサポートを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第714回 Firefoxを含むsnapパッケージとの付き合い方:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第715回 Lenovo ThinkPad X13 Gen2 AMDにUbuntu 22.04 LTSをインストールして使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第716回 Ubuntuにおけるマイクやスピーカーの切り替えを,システムメニューを使って手早く切り替える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第718回 needrestartで学ぶパッケージのフック処理:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第720回 Ubuntuの最小インストールとFlatpakでいつでも最新アプリ生活:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第721回 新型ベアボーンキットであるDeskMeetと最新CPUであるAlder Lakeで夢のパワフルUbuntuライフ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第722回 UrBackupでお手軽ランサムウェア対策:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp
- 第724回 CPUコアごとのベンチマークをPythonで簡単に取得してみる | gihyo.jp
- 第725回 Rcloneと専用GNOME Shell拡張機能を併用して、Ubuntuからさまざまなクラウドストレージサービスにアクセスする | gihyo.jp
- 第726回 Slackの代替として、ハドルミーティングも実装されたオープンソース版のMattermostはいかが? | gihyo.jp
- 第727回 格安2in1 PC、FFF-PCM2BにUbuntu 22.04 LTSをインストールする(前編) | gihyo.jp
- 第728回 格安2in1 PC、FFF-PCM2BにUbuntu 22.04 LTSをインストールする(後編) | gihyo.jp
- 第730回 Shinobiとネットワークカメラで監視カメラシステムを作る🥷 | gihyo.jp
- 第731回 Ubuntuのドキュメントビューアーとして最適なOkularを使用する | gihyo.jp
- 第732回 大人気ベアボーンASRock DeskMeetとUbuntuでNASを組む[ハードウェア選定編] | gihyo.jp
- Ubuntu release cycle | Ubuntu
- Releases - Ubuntu Wiki
- 【西川和久の不定期コラム】最新のUbuntu Desktop 22.04 LTSはどこまで仕事に使えるか?モニターのキャリブレーションをやってみた! - PC Watch
- Canonical、「Ubuntu 22.04 LTS」の提供を開始 ~WSLパッケージもストアに登場 - 窓の杜
- 「Ubuntu 22.04 LTS」が「リモート デスクトップ接続」に対応したらしい - やじうまの杜 - 窓の杜
- Ubuntu 22.04に上げたときに起きた問題と解決 | κeenのHappy Hacκing Blog
- 2021年10月22日号 Ubuntu 22.04 LTS “Jammy Jellyfish”の開発開始:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- 【西川和久の不定期コラム】Ubuntu 22.04を使ってMastodon(非Docker)を動かす!正式リリースされたストア版WSL2で起動 - PC Watch
ssh
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「vs code remoteでhostがWindowsの時にssh + agent forwardってどうするのがいいんだろうな。そもそもwindowsでのssh-agentが魔境っぽい https://t.co/qpQrmejS2h」 / Twitter
- 混沌を極めるWindowsのssh-agent事情 - Qiita
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8iPT8zgYvf そして今ならなんと標準サービスでssh-agentが動くことを知る」 / Twitter
- わたなべごうさんはTwitterを使っています 「@knok こちらの stream-connector を使うと、Win標準の ssh-agent から、msys or cygwin/wsl1 or wsl2 いずれにも一発でソケットトンネルつくってくれるので集約できますね。https://t.co/g03ftElHB9 鍵管理系アプリだと KeePassXC とかが Win標準の ssh-agent への鍵登録に対応してたりします」 / Twitter
- stream-connector - Programming Field
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@wtnbgo KeePassXC使えるのはいいですね。情報ありがとうございます」 / Twitter
- Kaz Nishimura, C++UnitX (cppunitx) 作者さんはTwitterを使っています 「@knok WSL 上では ssh.exe を使うことにするといろいろ楽」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@kazssym ssh_configのwildcardの扱いがちょっと面倒なんですよね… 当初git for winのssh.exeを使ってたのですが、利用可能なセッション数に上限があるようで、今はwin10標準にしています。wildcardはgit bash経由で処理させています」 / Twitter
- [Windows] VSCode で使うssh-agentについて VSCode Remote Development - Boards - Crieit
tmux
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更ながらの tmux、PuTTYが切れて再接続しても、tmux a で、バックログを含めたセッション再開できるのがとても良いね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二つのターミナルから、tmux a とやると、相互ミラーリング的な表示になるのね…何の役に立つか判らないけど面白い。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu レッスンに使えそうですね」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「TeraTerm愛用してるから普通に腹立つんだけど💢 以前、タブ式のターミナルを使った事あるんだけど、ありゃダメだった。 cscopeでソース見ながら、emacsで自前コードを書いて、シェルでゴニョゴニョする感じなので、いちいちタブを切り替えるワンステップ入るのがね。 https://t.co/N2AFuiX4zc」 / Twitter
- 時代遅れなソフトウェア達
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「タブ式だの画面分割だので頑張るくらいなら、横長のウルトラワイド液晶ディスプレイ買えばいいじゃん(煽」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@kkaigai タブ式のターミナル、面倒なのよくわかります。参照しながら仕事するから、常に3つのターミナル画面立ち上げてますが、ブラウザと被ってしまって…。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「tmux の Ctrl+B は「他のショートカットに被らない」を優先と思うのだけど、多用する場合は使いづらい。 先人の定番とかあるのかな?」 / Twitter
- 鯉江さんはTwitterを使っています 「@shirouzu わたしはC-l(える)にしてます。tmux外の環境でおしてしまっても被害が少ないのが理由です。 一般的にはC-]が多いんじゃないかと(個人的想像です)。ほかとキーバインドがかぶりにくいので。わたしはviのタグジャンプでつかうので避けました。 https://t.co/u9LZFsR4Hd」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど、良いかもですね。 ありがとうございます。」 / Twitter
- QGBCSさんはTwitterを使っています 「@shirouzu Ctrl+`」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とほほ氏は Ctrl-j かな? https://t.co/SsAqQuE8fL https://t.co/Ird5pasp0h」 / Twitter
- tmux入門 - とほほのWWW入門
- Using tmux for automating interactive reverse shells | by Ulisses Alves | Jul, 2021 | InfoSec Write-ups
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「メモ 設定リロード: tmux source-file ~/.tmux.conf tmux.conf で カレントディレクトリ付で新規ペイン: bind - split-window -v -c '#{pane_current_path}' bind \\ split-window -h -c '#{pane_current_path}' (私は -,\ を水平,垂直セパレータにしてる)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY内の tmux で scroll buffer の clipboardコピーができないの、よく考えたら当たり前だった。 (X経由の何かを使わないとダメと) https://t.co/A7Z3g9w8fk」 / Twitter
- vim - How to copy from tmux running in putty to windows clipboard - Stack Overflow
- yutkatさんはTwitterを使っています 「ターミナル使うとき、Neovimのターミナル使ってるか、tmux使ってるか、その他(たぶん端末アプリ自体の分割とか)のどれを使ってるかのアンケート 個人的にはNeovimのターミナルじゃないとファイル名からジャンプとかできなくてつらい印象ある https://t.co/FjEJmzfnS5」 / Twitter
- How do you guys work with terminals? : neovim
- yutkatさんはTwitterを使っています 「neovim’s built-in terminalが最下位とか正気か・・・!?」 / Twitter
- hikaliumさんはTwitterを使っています 「Tmuxのセッションを再起動後に復元できるプラグイン、めっちゃ便利じゃん!ってなっている(ユーザーが本当にほしかったものだ) Restore Tmux Sessions https://t.co/qJZLfm9buk」 / Twitter
- Restore Tmux Sessions — tech.serhatteker.com
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「うっかり普通の端末で開始してしまった (なかなか終わらない) プロセスをtmux上に移行させるには? reptyrというツールを使えばそれが可能: 1. Ctrl-Zで停止 2. bg + disownでシェルから切り離す 3. tmuxを起動 4. reptyr PIDで端末を再接続 https://t.co/NXg3gl3Ssg」 / Twitter
- Move a running process into a tmux session | ./xai.sh
シェル
その他
zsh
- .zshrcに書いておくべきこと - sanoto_nittc’s diary
- SODA NoriyukiさんはTwitterを使っています 「@kazuho これは zsh の echo が、デフォルトだと System-V /bin/echo と同様な動作をするせいですね。 setopt bsdecho しておけば、echo が \ を解釈するのを止められると思います。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho zshのデフォルトって、他のBourne shell系シェルとの違いが結構大きいので、~/.zshenv に setopt bsdecho globsubst ksharrays nonomatch shwordsplit あたりを設定しておいた方がいいかもしれません。 (詳しいことは @satoh_fumiyasu さんの https://t.co/hGCN2f3Dmd 参照)」 / Twitter
- zsh でシェルスクリプトを書くときの留意点 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
- ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「@n_soda @kazuho zsh を Bourne shell 互換設定にすると動かない zsh 拡張機能もあるので、それらを有効にして利用していると困ることあるかも。昔、いろいろカスタマイズしている自分の .zshrc で試したとき何かが動きませんでした。デフォルトなら影響ないと思うけど、たぶん。」 / Twitter
- hkobaさんはTwitterを使っています 「.oO(…少数派の zsh 主義者からの意見ですが、せっかく zsh 使うのに setopt shwordsplit してしまうのは、 zsh の設計思想に逆行してる感があって残念と思ってますん…もちろん進歩より posix sh 互換性という優先順位もあるとは思いますが…)」 / Twitter
- hkobaさんはTwitterを使っています 「せっかく配列をまともに使えるモードが用意されたのに、それを殺すなんて勿体ない、という考えです。 (正確に言えば、スカラー変数を配列代わりに使う機能をオフにするモード)」 / Twitter
- hkobaさんはTwitterを使っています 「@n_soda やはりそこは使いますよね~ で、 "$file" を単に $file と書いても完全に安全なのが、 zsh の良いところかなと。 ファイル配列への追加も argv+=($newfile) 辺りで。」 / Twitter
- Zshで環境変数とその値を補完する
zx
- Teppei SatoさんはTwitterを使っています 「UNIX的なシェルコマンド、パイプの強さを活かしつつ、プログラミング部分はJSで書けるっていういいとこ取りのバランスが良い。コンソールのアウトプットもきれいい / “GitHub - google/zx: A tool for writing better scripts” https://t.co/DFhZf07nr1」 / Twitter
- google/zx: A tool for writing better scripts
- Teppei SatoさんはTwitterを使っています 「チームで使うかっていうとあれだけど、JS系のプロジェクトでちょっとしたビルド系のスクリプト書くときは良さそう。特殊な知識なくても読めるし。npx zx script.mjs ワンコマンドでいけるし」 / Twitter
histric
histric-1
- oilshell/oil: Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
- nuta/nsh: A command-line shell like fish, but POSIX compatible.
- ShellCheck – shell script analysis tool
- 高梨陣平さんはTwitterを使っています 「はてなのブコメにもあったけれども、bashスクリプトの先頭には #!/usr/env bash set -euo pipefail これを入れましょう。変数の未設定での実行が阻止されます。」 / Twitter
- カナやん@みかん本停滞中さんはTwitterを使っています 「@jingbay /usr/bin/envだと思う。」 / Twitter
- stさんはTwitterを使っています 「@jingbay これは変数展開の:?を付けるよりも便利に使えそうですね!(用途に応じて使い分け)」 / Twitter
- bash スクリプトの実行中上書き動作について
- 自己追記によるFizzBuzz
- c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
- Kazuo MoriwakaさんはTwitterを使っています 「きっとこうなる人がいるけどrpmは大丈夫だから安心してアップデートしてね。 シェルスクリプトを(方法はしらないけど)置き換えて事故ったー → よくわからんけど動かしてるシェルスクリプト書き換えるのまずい → シェルスクリプトを含むrpmパッケージ更新したくない ↑↑rpmは大丈夫↑↑」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「スクリプトだろうとバイナリだろうとファイルを上書きする方法でプログラムを更新するのがダメなのであって、インストールコマンドの類はその辺をケアしてる(mvで更新してるか、あるいはrm&&cpで更新してる)から大丈夫だし、シェルスクリプトかどうかは関係ないっス。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@n_soda Windows だと実行中の exe ファイルを上書きできない仕様で救われてる案件もあるのかもと思いました。あれって面倒でもあるのですが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tenpoku1000 あるでしょうね。UNIXでも実行ファイル自身でありかつlocal filesystemなら Text busy エラーが出て上書き不能ですがLinuxだとこのチェックは廃止方向だとか: https://t.co/ykPatqFt7q」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ファイルをインストールする時は、一時ファイルに書き込んでからmvすべし、という古からの教えはこのためにあったのじゃ。」 / Twitter
- junさんはTwitterを使っています 「>途中から修正したシェルスクリプトの再読み込みが発生し、結果的に未定義の変数を含むfindコマンドが実行されてしまいました。 https://t.co/25rxjWiXOR おそろしや…」 / Twitter
- file_loss_insident_20211228.pdf
- Kazuho OkuさんはTwitterを使っています 「プログラマとしては、ファイルをいつ読み終わるかの保証なんて普通しないし、実行中の書き換えはスクリプトであれ設定ファイルであれ禁止だとしか言いようがない(SIGHUP受信したら読み直すとかはあるけど)。まあ、守れなくて失敗するのは分かる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「bashの実行しながら読み込みを踏む前に、実行ファイルをftruncateしてsegv踏むのが普通じゃないの?」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「gdb で親に入って親の環境をいじる手法で外部 cd コマンドを実現するての、たぶん @tanaka_akr さんの記事で見たから丸パクリなんだけど、見つからないなあ、と、思ってたんだけど、がんばって探したら binary hacks にあった https://t.co/nlZAY1PATc」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@miura1729 @mattn_jp exportコマンドをインストールしていないのでは? https://t.co/fgOLbEs5ex」 / Twitter
- export command
- shinichiro hamajiさんはTwitterを使っています 「僕のやつは親が https://t.co/qB21I8LTDy なので、 system(x) は要するに sh -c x なので親の親を見ないといけない、という差分があった (だから gdb 二回使ってる)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「シェル書いてみます while (1) system(gets()); (冗談です。念のため」 / Twitter
- シェルスクリプトの set -e は罠いっぱい - Togetter
histric-2
- SODA NoriyukiさんはTwitterを使っています 「@BsdHacker 直前のコマンドの出力だけを手軽に切り出したいってことなので、scriptだと切り出すのが不便じゃないかと。 ・macOS iTerm2 + shell integration: https://t.co/QfGzCbR4eB ・zsh preexec: https://t.co/pKjj3GWbiu ・Jupiter Notebook: https://t.co/5upu4eTh2o ・emacsシェルモード あたりですかね」 / Twitter
- シェルスクリプトのset -eを正しく使ってエラー処理を楽にしよう! - Qiita
- シェルスクリプトの罠「whileの中の変数が見えない」の推奨の解決方法5選 〜 パイプ・サブシェル問題 - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Idempotent (複数回実行しても安全) な Bashスクリプトを書くコツ。mkdirには-pをつける。rmやln -sには-fをつける。ファイルに行を追記するときは (すでに追加されてないか) 前もってgrepで確認。mkfsするときはblkidで確認。mountするときはmountpointで確認。 https://t.co/ey5hsfPQyQ」 / Twitter
- How to write idempotent Bash scripts · Fatih Arslan
- ドッグさんはTwitterを使っています 「シェルのコマンド履歴をディレクトリごとに持つのは良いアイデアかも https://t.co/gElBKTCgcW」 / Twitter
- natethinks/jog: Simple script to print the last 10 commands you ran in the current directory
- シェルスクリプトを書くときにいつもやるやつを調べた - Please Sleep
- あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
- 2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」:Linux Daily Topics|gihyo.jp … 技術評論社
- satさんはTwitterを使っています 「shell(bashなどの特定のshellだけかも)で"$_"が「直前に実行したコマンドの最終引数」と言うことを知っていたかどうか。たとえば以下のようにすると一行目で作ったディレクトリに移動できる ``` $ mkdir -p path/to/dir $ cd $_ ```」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi meta-.で直前の行の最後の引数が入力できるというのは。」 / Twitter
- グロブ - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「bash でワイルドカード引数でコマンド実行すると、マッチしない場合は bash がエラーメッセージを出してコマンドは実行されないという挙動という認識だった。 最近気づいたのは、展開できないとワイルドカードをそのままコマンドに渡す、みたいな挙動になっているのね…危ない例とか無いのかしらん?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「すごいわかる。実行したコマンドの history は覚えてるんだし、結果も覚えておいてくれたらいいやん。どうせテキストだし、メモリ富豪な現代においては、常に覚えておいてほしい」 / Twitter
- _ko1さんはTwitterを使っています 「shell よく知らないんですが、nantoka shell で、スクリーンに出てきた stderr/out の出力を、コマンド実行後に得る、みたいな方法ってありますかね。裏で勝手に stdout/err をいい感じにファイルとかメモリにのっけておく、でもいいんだけど。数千行、毎回 terminal からコピペしてるのがつらい。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「こういう用途には Emacs のシェルモードがおススメ! (CTRL-c CTRL-s で直前に実行したコマンドの出力だけをファイルへ書き出せます)」 / Twitter
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@shinji_kono axiom は古代ギリシャ語 at-幹名詞 ἀξίωμα axioma が、フランス語の axiome を経由して語尾が取れてしまった形なので、ラテン語やギリシャ語の o-幹名詞(例 datum, criterion)とは違いますね。 もし axioma のまま入ってきていたら、 lemma のように axioma, axiomata みたいになっていたはずです」 / Twitter
- わたなべごうさんはTwitterを使っています 「tee とかで自前で記録とるのではなく、shell 側の機能としてほしいやつですね。Jupyter Notebook で bash カーネルがたぶんやりたいことに近いと思われる。参考記事 https://t.co/RFBvh5JwZ9 今だとnushell カーネルとかをためしてもいいかも」 / Twitter
- シェル芸人のためのJupyter環境 - A painter and a black cat
- SODA NoriyukiさんはTwitterを使っています 「Emacsのシェルモードでコマンドの出力を切り出す場合だと TAB や 制御文字の多くがそのまま保存されてるってのも地味に嬉しい。 xtermからのコピペだとダメ(TABはスペースに展開、制御文字は消える)だし、tmux show-buffer でもダメっぽい。 ただシェルモードでもESCシーケンスはダメ。」 / Twitter
histric-3
- shinichiro hamajiさんはTwitterを使っています 「これ、知人と話してたら https://t.co/8h0hxJIYhw を作ってくれたけど自分でやりたくなって https://t.co/Ytm1P64Ixw を作って使ってる。 screen が動いてる前提の作りで、 less /tmp/tanlog/make/P とかで前に使った make の出力が残ってる https://t.co/5tEBimWAJI」 / Twitter
- omakoto/zenlog
- test/tanlog.rb at master · shinh/test
- shinichiro hamajiさんはTwitterを使っています 「端末レベルで記録すると ssh とかも残るから便利なんだよなあ。このへんは UNIX 哲学とか忘れて、端末+shell+screen は単一のアプリにした方が便利だしやれること増えるんじゃないかな、と思ってる。 ref: https://t.co/uTVKnmy9xj」 / Twitter
- はじめてのにき(2020-06-30)
- Miura HidekiさんはTwitterを使っています 「teeでリダイレクトするとかそのままリダイレクトするとかあるけど、逆にこういうことしたい時はファイルが巨大になり過ぎるきらいがあるから、何らかのリミッタが欲しい所」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「bash乃バージョン間の差異で悩まされた経験があるのであまり同意できない…」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最近、bashが最強のプログラミング環境であると思い始めている。圧倒的なポータビリティとスケーリングを実現できる。」 / Twitter
- fish の始め方 – GitHub 出張所 – プログラム関係のブログはここに
- Kazuho OkuさんはTwitterを使っています 「シェルってだいたい dynamic scope なんじゃないの? (というかperlのlocalはシェル由来だったりしないのかしら)」 / Twitter
- matsuu (ウー馬場ーイー2)さんはTwitterを使っています 「せやな。自分もmanで-exec {} +を見つけてから積極的に使ってる。めちゃ高速だし。削除については-exec rmではなく-deleteを使ってます。わいわい。 / “POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita” https://t.co/LLaKsOIh9M」 / Twitter
- POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
- Kazuyoshi KatoさんはTwitterを使っています 「ブログを書きました。我々中年プログラマ諸氏はPerl書けるけど封印しているじゃないですか。シェルスクリプトもそろそろ封印したら良いのではという話です。インターンの人に「この比較のところ、空白が入ると壊れるからクオートして...」とかコードレビューでやりたくない。 https://t.co/K9igYPQiqy」 / Twitter
- シェルスクリプトを書くのをやめる - blog.8-p.info
- 伊津野 英克さんはTwitterを使っています 「シェルスクリプトが色々あれなのは事実だけど、ランタイムが最初から入っててライブラリの依存性がローカルに閉じてて、ファイル操作が容易で grep 相当の機能が必要となるとあんまり選択肢がないんだよなぁ。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「一時期Bashスクリプトにコンパイルするまともな文法のalt bash scriptみたいなのを作ってたことがあるんですが、結果として何が起きたかというとめちゃくちゃシェルスクリプトに詳しくなってシェルスクリプトが書けるようになった」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「とりあえずシェルスクリプトは文法がクソすぎてダメってのはあのBill Joyですら二十代のころに同じ発想でcsh書いて失敗したやつだからな。はしかみたいなもんです。みんな一度はやる。」 / Twitter
- 環境変数 PATH に空文字があるとカレントディレクトリが指定されているのと同じ意味になる
- Rui UeyamaさんはTwitterを使っています 「tacコマンド(catの反対だからtac)の新たな使い方を知った。コマンドfooの出力を全部バッファリングしたいときは foo | tac | tac とすればいい。」 / Twitter
- ドッグさんはTwitterを使っています 「このページに載ってるシェル起動時のスクリプト読み込みフローが便利🙄 | 'Shell startup scripts' https://t.co/k16JJX3Y8v https://t.co/7PkE0kjYuY」 / Twitter
- Shell startup scripts — flowblok’s blog
- ダウンローダーGNU Wgetの後継となる「GNU Wget2 2.0」が公開 | OSDN Magazine
- ファイル/シェル/テキスト操作のユーティリティ集「coreutils-9.0」が公開 | OSDN Magazine
- mod_poppoさんはTwitterを使っています 「シェルスクリプトでisatty相当のことはtest -t fdでできる #だめぽメモ」 / Twitter
histric-4
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GTFOBins - Unixで、たとえシェルを直接実行できなくても、これらのコマンドさえ実行できれば間接的にシェルを起動したり、任意のファイルが読めたりするコマンド一覧。バイナリをsetuidしている場合は特に注意。 texからシェルが起動できるとは初めて知った。 https://t.co/eZU3I8kmGg」 / Twitter
- GTFOBins
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「あと $PAGER を勝手に呼ぶコマンド (dmesgとか) も要注意。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「Linuxのdmesgって、-Hオプションつけると内部的に$PAGERを呼び出すのか… ちょっとびっくり」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Bash関数は func() { ... } という構文のほかに func() ( ... ) という構文も許されている。こうすると関数本体はサブシェルの中で実行され、状態は完全に分離される。効率を除けば、こちらのほうがおすすめ。 https://t.co/vBY8Q1SubN」 / Twitter
- Cuddly, Octo-Palm Tree: Bash functions are better than I thought
- Kazuho OkuさんはTwitterを使っています 「for と while はどちらもALGOL68で … do … od だったけど、Bourne shell では od コマンドが先に存在したために done になったと。なるほどー https://t.co/vny7WVtyWu」 / Twitter
- history - Is it true that "do ... done" blocks in Bash do not end with "od" because od existed before Bash/Bourne shell? - Retrocomputing Stack Exchange
- えびちゃんさんはTwitterを使っています 「if を fi で閉じるなら for と while も rof と elihw で閉じろよとなる」 / Twitter
- bashで手軽に非同期処理しつつ実行結果を簡単に受け取る方法 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- 7594591200220899443さんはTwitterを使っています 「UNIXのシェルは対話環境になぜだかオートパイロット機能がついてきているわけだけど、このデザインはさほど自明ではないよな。一体どういう経緯で誰が着想したんだろうね。」 / Twitter
- Yusuke EndohさんはTwitterを使っています 「@shyouhei Louis Pouzin って人が着想したっぽい文書を発見しました https://t.co/Pn58sKawcj」 / Twitter
- The Origin of the Shell
- 7594591200220899443さんはTwitterを使っています 「@mametter へー。すごい。面白い。初めて知りました」 / Twitter
- Yusuke EndohさんはTwitterを使っています 「@shyouhei 参照されてる論文読まないとよくわからないですが、コマンドのオートパイロットツール(RUNCOM)が先に作られて、それから似たようなコマンド体系を持つ対話環境が開発されて、Multicsを作るときにそいつらを合体させた(なぜ?)、という雰囲気ですかねえ」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「Q: 何故、この着想に至ったのか? A: あれこれ試行錯誤した結果、残ったのがこの方法だった」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「シェルスクリプトは外部コマンドを実行して動作する前提で設計されているため、システムの構成に対して仮定を置かざるを得ず、そうすると高価なUNIXシステムを共有して使っていた時代と違ってコンテナみたいに一つのシステムが作っては破棄される世界とは相性が悪い感(´・ω・`)」 / Twitter
- Kazuho Okuさんのツイート: "シェルのタブ補完、先頭一致だけじゃなくて中間一致も試すモードがほしい。git branch ... とか中間しか覚えてなかったりする"
- 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
- 個人的なシェル芸(シェルワンライナー)のまとめ | 俺的備忘録 〜なんかいろいろ〜
- シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「UNIXの login.c は、ログイン時に実行されるプロセスの argv[0] の最初の文字を '-' に変更し、これによりシェルは自分がログインシェルであるかどうかを判定する。この仕様は、約50年前の UNIX v2時代からすでに存在していたことが判明。 https://t.co/C7KgB7fLQY」 / Twitter
- Chris's Wiki :: blog/unix/LoginShellMarkerHistory
- echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita
apt
- 第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- aptコマンドチートシート - Qiita
- Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape
- 「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 | Linux Fan
- WSLのUbuntu環境で「apt」コマンドを使ってパッケージを更新/管理する:Tech TIPS - @IT
- KeN's GNU/Linux Diary(2018-07-28)
- 第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第676回 aptコマンドの最新機能あれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第677回 aptで使うsources.listのオプションいろいろ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- ASCII.jp:WSLにインストールされているファイルから原因となるパッケージを探す (1/2)
- matsuu序二段さんはTwitterを使っています: 「恥ずかしながら「apt で再起動が必要な更新があった場合は自動的に再起動」する設定があることを知らなかった。Unattended-Upgrade::Automatic-Reboot、へー。 / “Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ” https://t.co/6LkTxy0OOh」 / Twitter
- Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ
ASCII.jp
- ASCII.jp:20H1の完成とともにWindows Subsystem for Linux 2が来る (1/2)
- ASCII.jp:Windows 10のWSL2からGPUが使えるようになった (1/2)
- ASCII.jp:WSL2にCUDA on WSLをインストールする (1/2)
- ASCII.jp:WSL2で外部ストレージをマウントできるようになった (1/2)
- ASCII.jp:Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う (1/2)
- ASCII.jp:LinuxのGUIアプリケーションに対応するWSL2 (1/2)
- ASCII.jp:WSL2ではRDPでLinux GUIアプリのウィンドウを表示する (1/2)
- ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)
- ASCII.jp:WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた (1/2)
- ASCII.jp:WSL2でのGUIアプリケーションを動かす「WSLg」の仕組み (1/2)
- ASCII.jp:WSL2で用いるルートファイルシステムの容量を拡大する方法は?
- ASCII.jp:増えたWindows Subsystem for Linuxのバージョン、またUSBデバイスの接続が可能に (1/2)
- ASCII.jp:WindowsでLinux GUIアプリを動かす「WSLg」のWindows 11での状況を見る
- ASCII.jp:WSL(Windows Subsystem for Linux)のカーネルは差し替えられる (1/2)
- ASCII.jp:Microsoftストア版でプレビューが進められているWSL(Windows Subsystem for Linux) (1/2)
- ASCII.jp: Microsoftストア版WSLが正式版になり、Windows 10でも動作可能に (1/2)
- ASCII.jp:WSL(Windows Subsystem for Linux)がMicrosoftストア版に一本化される
窓の杜
- Canonical、「Ubuntu 20.10」の提供を開始 - 窓の杜
- “wsl --install”で「WSL」を一発セットアップ ~Dev版「Windows 10」Build 20246 - 窓の杜
- プレビュー版「Windows 10」のタスクバーにニュース機能 ~WSL起動時のコマンド実行にも対応 - 窓の杜
- 「Docker Desktop 3.0.0」が正式リリース ~差分更新によりアップデートが手軽に - 窓の杜
- WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー - 窓の杜
- 「Docker Desktop 3.3」が公開 ~アップデート通知を行い、勝手に更新しないように - 窓の杜
- 「Docker Desktop 3.4」が公開 ~有償版でないと更新スキップできないと誤解を招くリマインダーを改善 - 窓の杜
- WSLがコマンド一発でインストール可能に - 窓の杜
- 「Windows 10 バージョン 21H2」の新機能が実装、Release Previewチャネルで提供開始 - 窓の杜
- 「Ubuntu 14.04」と「Ubuntu 16.04」のライフサイクルが計10年へ延長 - 窓の杜
- 完全な互換性と改善されたI/Oパフォーマンス ~Canonical、「Ubuntu」の「WSL 2」対応を発表 - 窓の杜
- ストアにある3つの「Ubuntu」の違いは? ~WLSの「Ubuntu」をアップグレードする方法 - やじうまの杜 - 窓の杜
- Microsoft、Linux版「Sysmon」をオープンソースプロジェクトに - 窓の杜
- プレビュー版「WSL」のアイコンが「これでええんか?」とちょっと話題に - やじうまの杜 - 窓の杜
- 「wsl.exe --install」コマンドでインストールされる「WSL」がストア版に - 窓の杜
- パスワードなどが診断データに紛れて流出、「Docker Desktop」に情報漏洩の脆弱性 - 窓の杜
- 「WSL 2」が「Windows Server」で利用可能に - 窓の杜
- Linux GUIアプリがWindowsで動作 ~Microsoft、新しいWSL 2機能「WSLg」を初期プレビュー - 窓の杜
- 「Windows Subsystem for Linux」が「systemd」に対応へ - 窓の杜
- Microsoft Store版「Windows Subsystem for Linux」がv1.0.0に到達、プレビューを卒業 - 窓の杜
- Windows 10でもLinux GUIアプリが利用可能 ~Microsoft Store版が既定の「WSL」に - 窓の杜
PC Watch
- Windows 10プレビュー版、WSLでのGPUコンピューティング対応やWi-Fiセキュリティ強化を実施 - PC Watch
- Microsoft Store版WSLがWindows 11向けに提供開始 - PC Watch
GIGAZINE
- MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 - GIGAZINE
- Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か? - GIGAZINE
- LinuxアプリをWindowsで動かす「Windows Subsystem for Linux(WSL)」のMicrosoft Store版がついに正式版に到達 - GIGAZINE
Publickey
- Windows 10のファイルエクスプローラがWSL機能を統合。Linuxを示すペンギンアイコンが登場 - Publickey
- 個人開発者はRed Hat Enterprise Linuxを無料で最大16システムまで利用可能に、本番環境もOK。Red Hatが開発者向けプログラムの拡大を発表 - Publickey
- Ubuntu 21.04正式リリース。Active Directoryとネイティブ統合、最適化されたSQL Server対応、Flutter用SDK搭載、Waylandがデフォルトに、など - Publickey
- Kubernetes環境をWindows 10/macOSへ簡単にインストール。「Rancher Desktop」がオープンソースで公開 - Publickey
- 第671回 パッケージのアップデートとアップグレードを制御する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
マイナビニュース
- WSL 2に特化した「Ubuntu on Windows Community Preview」とは - 阿久津良和のWindows Weekly Report | マイナビニュース
- WindowsとLinuxの融合をさらに進めたマウントオプション - 阿久津良和のWindows Weekly Report | マイナビニュース
- Linux GUIアプリが動作する最新Windows 10 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
- Linuxとの統合を目指すWindows 10 - 阿久津良和のWindows Weekly Report | マイナビニュース
- WSLgをサポートしたプレビュー版WSLがMicrosoft Storeに登場 - 阿久津良和のWindows Weekly Report | マイナビニュース
infoQ
- zx - より良いスクリプトを書くためのツール
- Microsoftが保有する社内用のLinuxディストリビューションビルダーCBL-Marinerとは
Qiita
- WSL2によるホストのメモリ枯渇を防ぐための暫定対処 - Qiita
- WSLでWindows側とLinux側のパイプの使い分けについて - Qiita
- 待ってました CUDA on WSL 2 - Qiita
- WSL上でDocker Engineが動くようになっていたっぽいという話 - Qiita
- WSLのディストリビューションの切り替えに関するメモ - Qiita
- WSL2でsystemdを動かすDistrodが便利だった件 - Qiita
- nullpo-head/wsl-distrod: Distrod is a meta-distro for WSL 2 which installs Ubuntu, Arch, Debian, Gentoo, etc. with systemd in a minute for you. Distrod also has built-in auto-start feature on Windows startup and port forwarding ability.
- WSL2でのメモリ使用量制限まとめ - Qiita
- WSLにてapt update時の『Temporary failure resolving ~』を解決する方法 - Qiita
Twitter
- すずかさんはTwitterを使っています 「\\wsl$ でWSLのfsに入れることを知っているだけで効率が100倍くらい変わる https://t.co/4Ar76maM3R」 / Twitter
- 高梨陣平さんはTwitterを使っています 「あまり話題になっていないですが、WSL1と異なりWSL2はNW通信がWindows Firewallを経由しません。 WSL2はHyper-V上でWindowsと同格のゲストOSです。WSL2上でfirewallの設定が必要なので注意しましょう。」 / Twitter
- FadisさんはTwitterを使っています 「WSL2でGUIなアプリケーションを動かす為に、Microsoftが独自のWaylandコンポジタを実装している、という話。このコンポジタはWestonをベースに、ルートレスでリモートのウィンドウを表示するRDP-RAILを喋れるように拡張したものらしい https://t.co/MWNdc2GCWF」 / Twitter
- Microsoft Is Writing Its Own Wayland Compositor As Part Of WSL2 GUI Efforts - Phoronix
- FadisさんはTwitterを使っています 「マイクロソフトがWSLの新機能WSLgの解説を行なっている話。WSLgはWSL2で動くLinux環境にWaylandとXとPulseAudioを生やし、映像、音双方でWindowsネイティブなアプリケーションと同じ感覚でLinux向けGUIアプリケーションを動かせる。GPUによるアクセラレーションにも対応。 https://t.co/FjCoG2Puwo」 / Twitter
- Microsoft Posts WSLg Preview - GUI App Support With Windows Subsystem For Linux - Phoronix
- knj08aさんはTwitterを使っています 「CPU依存ぽいね https://t.co/4wko9X80ZE」 / Twitter
- After most recent WSL update, WSL won't start · Issue #33 · microsoft/wslg
- knj08aさんはTwitterを使っています 「問題が発生している環境は i7-3770K ivy bridgeか・・・古いな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「未だにSandy Bridge搭載マシンを使っているのがいけなかったか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
- Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
- Akihiko OtaさんはTwitterを使っています 「「Windowsからならファイルエクスプローラーを開いた上で,「Ctrl-l」を押し,アドレスバーに「\\wsl$」と入力します。これでディストリビューションごとのファイルシステムがネットワークファイルシステムとしてアクセスできます。」 しらんかった…毎回WSL2側からcpでもってきてた…」 / Twitter
- hitoさんはTwitterを使っています 「@skywalker_37th WSL2側でexplorer.exe起動してもいいんやで……」 / Twitter
- Akihiko OtaさんはTwitterを使っています 「@_hito_ まじか…めっちゃキモい…」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「有用な ls* コマンド群。lsblk, lscpu, lshw, lsmod, lsof, lspci, lsusb, lslocks など。lslogins とか初めて知った。しかも util-linuxに含まれている。」 / Twitter
- hackerbot.ethさんはTwitterを使っています 「ls* Commands Are Even More Useful Than You May Have Thought: https://t.co/G6ragdRv60」 / Twitter
- ls* Commands Are Even More Useful Than You May Have Thought - nixCraft
- ぬるぽへさんはTwitterを使っています 「WSLでsystemdが動く状態のArchやgentooなど多くのディストロをインストールできる、Distrodをリリースしました!今使ってるディストロをsystemd化することもできます。windows起動時の自動起動とポート開放もできるからぶっちゃけ最高のWSL環境ができます https://t.co/ifHqa2vOTR upvoteもできれば... https://t.co/RgT4Fic75J」 / Twitter
- Show HN: Distrod – WSL2 Distros with Systemd; Arch, Gentoo and More with Systemd | Hacker News
- ぬるぽへさんはTwitterを使っています 「MSからこれは脆弱性ではない(UACバイパスは脆弱性ではないという意味と、これはWSLの仕様でバグではないという二つの意味で)ことの確認が取れました、数日早ければkernel/vmでもうちょっと歯切れよく話せたね UACバイパスの中でもalways confirmにしててもconfirm出ないやつだからそこだけは注意」 / Twitter
- ぬるぽへさんはTwitterを使っています 「WSL2, Windowsの管理者権限で動かしたプロセスを一匹でも動かしてると、Windowsの通常権限プロセスが権限昇格できる道を作っちゃってるの罠だよなー https://t.co/a9bPuo6ObC」 / Twitter
- WSL 2使用時の注意点(BIOS(UEFI)でCPUの仮想化機能の有効化について)
- WSL CUDA - Google 検索
- WSLg Architecture | Windows Command Line
- WSL | CLion
- Little-known facts about WSL2
- WSLでデータサイエンティストの作業環境を4ステップで構築する方法 | TECH+
- Ubuntuでamdgpuのドライバインストールに失敗したあとGPUが使えなくなったときの対処法 | κeenのHappy Hacκing Blog
- Windows11 の WSL2 + WSLg で GUI アプリ実行時に発生するエラー「Error: Can’t open display: 0」の対処方法 | Snow System
- Windows 10 or 11 (WSL2)のUbuntuでsystemctlを利用する方法(systemdをPID1で動作させる方法) | Snow System
- 山市良のえぬなんとかわーるど: ストア版WSL GA (バージョン 1.0.0.0)、ストア版 WSL が今後のインストールの既定に
- 「Windows Subsystem for Linux」が正式版に到達 - Nishiki-Hub
ncurses
Wikipedia
- ncurses - Wikipedia
- ncurses - Wikipedia
- curses - Wikipedia
- curses (programming library) - Wikipedia
- 端末 - Wikipedia
- Computer terminal - Wikipedia
- Terminfo - Wikipedia
- Terminfo - Wikipedia
- Termcap - Wikipedia
- Termcap - Wikipedia
- ncurses関連manエントリ/関数一覧 - Qiita
- ncurses 3x 非公式日本語訳
- ncurses入門してみた – Linux Training X
- ソフトウェアインストールメモ
- curses
- ncurses(3) manページ
- ncurses(3)
- ncurses(3) - Linux man page
- Curses Programming with Python — Python 3.7.0 documentation
- ncurses
- Man page of curs_window
- Ncurses programming guide
- Linux Manpages Online - man.cx manual pages
- NCURSESライブラリ - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- NCURSES雑多な自分メモ01 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- ANSI Escape Codes
- TUIツール「Notcurses 2.4」公開、WindowsとmacOSもサポート | OSDN Magazine
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザ上で動くxterm。CJKや絵文字、GPUレンダリング、スクリーンリーダもサポートされており高速。依存がなくスタンドアロンで動作できる。 https://t.co/6HCsuh5XLY」 / Twitter
- xtermjs/xterm.js: A terminal for the web
- Kunihiko Imaiさんのツイート: "UNIX の場合,改行コードとか行編集とかの typewriter 端末相当の機能はカーネル側で処理するけど,カーソル移動とか色とかの制御は curses ライブラリとか使ってユーザプロセス側で処理する. 歴史的理由なんだろうけど,今見るとキリが悪いよな."
- curses
- curses --- 文字セル表示を扱うための端末操作 — Python 3.12.0a0 ドキュメント
- Python で Curses プログラミング — Python 3.12.0a0 ドキュメント
NetBSD
- NetBSD Internals
- NetBSDを手探りで移植したときの話 - Qiita
- Kimihiro Nonakaさんのツイート: "今のNetBSDだとカーネルはsrc/sys以下だけではなくsrc/commonも見てるはず"
- SODA Noriyukiさんのツイート: "kernel と userland で共用するコードという意味で common なんですね https://t.co/L5DibO5j4x"
- Kimihiro Nonakaさんのツイート: "NetBSDは不要な機能をディレクトリ毎消すとfiles.*が無くなるのでそれだけは残さないと駄目か。sys/conf/filesとsys/arch/XXX/conf/files.XXXを見れば何が必要なのかは判る"
- IIJ-NetBSD/netbsd-src: automatically converted from www.netbsd.org
- The NetBSD Foundation
- SODA NoriyukiさんはTwitterを使っています 「ゴッタ煮のカオスになっていた /usr/lib を、意味によって /usr/lib (.so および .a のみを置く)、/usr/libdata、/usr/libexec、/usr/share、/var に分けたっていうのが歴史的経緯なわけで、 /var/lib っていわば /usr/lib/lib みたいなもんでチョー気持ち悪いんだよなあ」 / Twitter
FreeBSD
- /pub/FreeBSD/releases/amd64/amd64/ のインデックス
- Falling - Google スライド
- Kernel/VM part5 - Google スライド
- freebsd/freebsd: FreeBSD src tree (read-only mirror)
- Hiromichi ItouさんはTwitterを使っています: 「Netflixが2ソケットの配信サーバ1台で800Gbpsのトラフィックを捌いている仕組みの解説しているスライド(去年は400Gbpsだったのに、さらなる改善で倍になってるの凄い) PDF注意 Serving Netflix Video Traffic at 800Gb/s and Beyond https://t.co/9ImdBr3tdn」 / Twitter
- 2022-Streaming-Summit-Netflix.pdf
- Netflixはどのようにして800Gb/sものデータ転送を実現しようとしているのか? - GIGAZINE
Multics
- MR12.7 - Multics Wiki
- BAN.AI Public Access Multics
- Ban.ai Public Access Multics | Hacker News
Plan 9
- Plan 9 Foundation
- Plan 9 From Bell Labs - Plan 9 from Bell Labs 翻訳プロジェクト
- Plan 9 from Bell Labs in Cyberspace! - Nokia Bell Labs
- plan9foundation/plan9: Plan 9 History, from 1992-09-21 to 2015-01-10.
Illumos
- illumos - Wikipedia
- Illumos - Wikipedia
- illumos
- illumos
技術評論社
histric
histric-1
- 2021年8月26日 Happy Anniversary! Linux,30歳になる:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年12月7日 「OpenIndiana Hipster 2021.10」がリリース,OpenSolaris後継の最新版:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年9月10日 Linusもたまには折れる!? "-Werror"問題は「"COMPILE_TEST"有効時」で決着:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年1月12日 2022年最初のカーネル「Linux 5.16」がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年2月9日 StarlingX ―OpenStackの流れを汲むエッジコンピューティングのオープンソースプラットフォーム:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年2月21日 Fedora,pkexecをオプション扱いに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年3月25日 Linux 5.17がリリース,「AMD P-State」新ドライバサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年3月29日 Debianプロジェクト,ポイントリリース「Debian 11.3」「Debian 10.12」を同時に公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年3月30日 Fedora Linux 36 Betaが公開,正式リリースは4月末予定:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年4月12日 Fedora,レガシーBIOSのサポートを段階的に終了へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年4月19日 完全に”フリー”なラズパイは実現可能か ―Debian開発者,ラズパイ用のフリーファームウェア開発状況を報告:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年5月10日 Bash-Oneliner ―bashの操作をより便利にするワンライナーコレクション:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年5月11日 コミュニティによるコミュニティのためのディストロ ―Fedora Linux 36がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年5月17日 Red Hat Enterprise Linux 8.6が提供開始,RHEL 9のリリースは数週間以内に:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年5月25日 Linux 5.18リリース,カーネル開発をC11に移行:Linux Daily Topics|gihyo.jp … 技術評論社
- #01 期待される“クラウド運用エンジニア”の可能性 ―「Cloud Operator Days Tokyo 2022」プレイベントから:クラウド運用のリアルを変革につなげるには?―「Cloud Operator Days Tokyo 2022」の歩き方|gihyo.jp … 技術評論社
- 2022年6月20日 ワンライナーのお手本!? SUSEエンジニアが作成したext4のパフォーマンス改善パッチ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年6月22日 RHEL互換OSのAlmaLinux,ディストリビューション/パッケージのビルドを自動化する「AlmaLinux Build Syatem」を公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年7月8日 Fedora,次バージョンでRaspberry Pi 4をオフィシャルサポート:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年7月11日 Debian 11.4リリース、セキュリティアップデートが中心 | gihyo.jp
- 2022年7月13日 Red Hat、新CEOにマット・ヒックスを指名、現CEOのポール・コーミアはチェアマンに | gihyo.jp
- Debianベースのロードバランサー「ZEVENET」、バージョン5.12.2にマイナーアップデート | gihyo.jp
- 原点回帰!? Slax開発者、Slackware+FluxBoxのプロトタイプを期間限定で公開 | gihyo.jp
- メンテナーが消えた!? ―Fedora、メンテナー不在のSpins/Labsについて方針を示唆 | gihyo.jp
- GNOME開発チーム、セキュアブートチェック機能をブートスプラッシュ「Plymouth」に実装中 | gihyo.jp
- Linux 5.19が公開、LinusはMacBook Airでリリース作業 | gihyo.jp
- メジャーナンバーがカウントアップ! Linux 6.0-rc1公開、正式リリースは10月初旬か? | gihyo.jp
- GNOME、25歳になる ―GNOME 43 Betaも公開 | gihyo.jp
- Linuxパッケージ管理ソフトFlatpakの新バージョンFlatpak 1.14.0がリリース | gihyo.jp
- 「Open Source Security Summit Japan」開催、オープンソースのセキュリティ課題に官民連携で取り組む姿勢 | gihyo.jp
- Debianプロジェクト、ノンフリーファームウェアへの対応変更を審議中 | gihyo.jp
- Debian “Buster”と“Bullseye”がそれぞれアップデート | gihyo.jp
- Fedora Linux 37 Betaが公開、デスクトップ環境にGNOME 43 Betaを実装 | gihyo.jp
- GNOME 43 ”Guadalajara”がリリース、主要コンポーネントの多くがGTK4に移植 | gihyo.jp
- Linux 6.0がリリース、ハードウェアサポート拡大、Rustの採用は6.1以降に | gihyo.jp
- 第743回 Ubuntuの標準ブートローダーであるGRUBを改めて見直す | gihyo.jp
- より堅牢なLinux起動プロセスを求めて ―Fedora,段階的な「Unified Kernel Image」サポートに向けてスタート | gihyo.jp
- シャットダウンは15秒以内に ―Fedora、systemdのシャットダウンタイマーを短縮へ | gihyo.jp
- 第745回 Ubuntuとデスクトップ環境の2022-2023年 | gihyo.jp
blog
VA Linux エンジニアブログ
- vmlinuxのヒミツ - VA Linux エンジニアブログ
- vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その1 - VA Linux エンジニアブログ
- .note.ABI-tagとはなにか - VA Linux エンジニアブログ
- AF_XDPアプリケーション性能特性の定性的評価 〜レイテンシ編 - VA Linux エンジニアブログ
- vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ - VA Linux エンジニアブログ
- vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その3 - exception table - VA Linux エンジニアブログ
- GNU/Hurd Continues Effort To Use NetBSD's Drivers For Better Hardware Support - Phoronix
- UNIXv1のエミュレーション環境の構築 - トトのメモ帳
- GNU catを読む - 全体的な流れ - ボクノス
- 低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|Webエンジニアのキャリアを考える!
- 「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは: ITジャーナリスト星暁雄の"情報論"ノート
- お手軽Linuxカーネル開発/自動テスト - 覚書
- uint256_tさんはTwitterを使っています 「自動テストができないソフトウェアって何」 / Twitter
- 市川 真一さんはTwitterを使っています 「@uint256_t 実機で動作する UEFI のようなファームウェアや OS、仮想化ソフトウェアみたいなものって、自動テストやりにくい印象を持っています。仮想環境でテストしたところで、そのテスト結果は実機と等価じゃないですから」 / Twitter
- systemd serviceから呼ぶシェルではsudoではなくsetprivを使う - 赤帽エンジニアブログ
Twitter
histric
histric-1
- とりさんさんはTwitterを使っています: 「@termoshtt それそれ.常用しないやつはGUIじゃないと操作法忘れちゃうってのはあるわね. エディタもキーバインド表示してるってだけでnano使う.」 / Twitter
- Jun Rekimoto : 暦本純一さんはTwitterを使っています: 「「言語こそ究極のメタバース」という気がします。」 / Twitter
- 宮下芳明 Homei Miyashita (Professor, Meiji University)さんはTwitterを使っています: 「DALL-E2の作例を見ていると「CUIの逆襲」が始まったかのようだ。コマンドラインでオプション指定するかのように、いくつものキーワードをカンマ区切りで並べて絵を作り込む。そのノウハウがCGM的に積み上げられ始めている。もはや「機能」の数は、GUIのプルダウンメニューに収まる規模ではないだろう。 https://t.co/jEUNFG7DYG」 / Twitter
- kobakosさんはTwitterを使っています: 「redditにDALL-E2の生成した画像を貼ってくスレッドがあるけど本当にすごい https://t.co/uVeT8hxVhP」 / Twitter
- kobakosさんはTwitterを使っています: 「なんか変に伸びてるな お気に入りは「WiFiが効かないさまを書いた中性の絵画」 https://t.co/wCtVpoiXTU」 / Twitter
- 宮下芳明 Homei Miyashita (Professor, Meiji University)さんはTwitterを使っています: 「上記ツィート、写真をクリックしてそれぞれの入力文を見てほしいです。もちろん、本ツィートのように比較的シンプルに対象とスタイルを指定してもすごい結果なのですが、僕は「ユーザーがどんどんキーワードを追加して絵を作り込んでいくさま」を見て、GUIの終焉を感じているというわけです。 https://t.co/014b5BKVMH」 / Twitter
- 宮下芳明 Homei Miyashita (Professor, Meiji University)さんはTwitterを使っています: 「最初のツィートのトトロ、多くの作例が「Photo」とか「detailed」というキーワードを使う中、「Unreal Engine」ってキーワードを追加してるの、すごいだと思う。よくそんなこと思いつくわ。」 / Twitter
- Merzmensch KosmopolさんはTwitterを使っています: 「@HomeiMiyashita そう言えば、DALL·E は日本語も出来ます https://t.co/rYzph0NtST」 / Twitter
- Merzmensch KosmopolさんはTwitterを使っています: 「OMG again. Created with DALL·E 2 by @OpenAI 📝 "古池や / 蛙飛び込む / 水の音", 北斎の浮世絵 "Old pond / frog jumped in / sound of water", an Ukiyo-e by Hokusai. 🔎 9 from 10 images are perfect. #DALLE // #dalle2 // #DALLEmerz https://t.co/tnLHxQj6tt」 / Twitter
- Merzmensch KosmopolさんはTwitterを使っています: 「Created with DALL·E 2 by @OpenAI 📝 "古池や / 蛙飛び込む / 水の音", 北斎の浮世絵 "Old pond / frog jumped in / sound of water", an Ukiyo-e by Hokusai. 🔎 I like the giant black frog. Wouldn't fit into the old pond. でかっす #DALLE // #dalle2 // #DALLEmerz https://t.co/UIvXu7g4LU」 / Twitter
- Jun Rekimoto : 暦本純一さんはTwitterを使っています: 「ラスコーの壁画など、言語以前はむしろイマーシブでVR的。初期の映像もリュミエールのように「現実をそのまま再現」する没入的なものだった。それが戦艦ポチョムキン(エイゼンシュテイン)になると映像に言語構造が入る(モンタージュ技法)。https://t.co/ddEsJIZd5v」 / Twitter
- ラ・シオタ駅への列車の到着(L'arrivée d'un train en gare de La Ciotat) - YouTube
- Jun Rekimoto : 暦本純一さんはTwitterを使っています: 「時制も発明されると「国境の長いトンネルを抜けると雪国であった」と書けるし、これを読むの要する時間は1秒ぐらい。つまり超高密度で情報伝達がなされている。比喩暗喩も発明されて「烈火のごとく怒る」と書ける。そして、いまやAIにより言語からイマーシブ表現への逆展開ができるようになった...」 / Twitter
- Jun Rekimoto : 暦本純一さんはTwitterを使っています: 「俳句とVRの関係も面白い。8K 5Gの世界より17文字のほうが豊かであったりする... みたいな話を、ヒューマンオーグメンテーション学シンポジウム「The Future is Already Heare: SFと人間拡張の未来」で議論しています(ドミニク・チェン、上田岳弘)のでぜひどうぞ: https://t.co/9ZUS6MLLkB https://t.co/SJ0uV7Ufge」 / Twitter
- ヒューマンオーグメンテーション学(ソニー寄付講座)活動記録Ⅰ - habook_i.pdf
- Jun Rekimoto : 暦本純一さんはTwitterを使っています: 「宣伝ついでに、こちらの「認知の拡張」も(藤井直孝、今井むつみ)言葉とVR的世界の関係の議論が展開されていて非常にエキサイティングです。みんな大好きピダハン語も出てきますw https://t.co/3PH9fTYWvV https://t.co/Lwin4PgRlp」 / Twitter
- ヒューマンオーグメンテーション学(ソニー寄付講座)活動記録III - habook_iii_2020.pdf
- MURAOKA TaroさんはTwitterを使っています: 「GUIに対するCLIの優位性って、ツールを組み合わせて自動化(≒新しいツールを作る)をしやすいってところだよ。GUIでもできなくはないけど、CLIに比べると再現性とか安定性で数段劣る状況が長年変わってない。」 / Twitter
- MURAOKA TaroさんはTwitterを使っています: 「逆にCLIでも他のツールと組み合わせにくいツールは、その優位性を殺してるって解釈できるかな。」 / Twitter
- ドッグさんのツイート: "テキストベースの Linux デスクトップ環境すごい… テキストなので SSH でリモートから描画できる | ‘tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable ov… https://t.co/aQJeubNwUS"
- browsh-org/browsh: A fully-modern text-based browser, rendering to TTY and browsers
- 最高のターミナルを作る2019 - Panda Noir
- 品川@Imperial, UKさんはTwitterを使っています: 「OSの教科書としては、第一線で活躍している研究者が書いた “Operating Systems: Three Easy Pieces” が内容が古くなくて、抽象性と具体性のバランスも比較的良いと思う。無料でも読めるし。 https://t.co/19fANmMXdK」 / Twitter
- Operating Systems: Three Easy Pieces
- 品川@Imperial, UKさんはTwitterを使っています: 「OSの演習として実際に手を動かしてみたいなら、やっぱり xv6 かな。 https://t.co/c8V6b7Ius6」 / Twitter
- xv6: a simple, Unix-like teaching operating system - book-riscv-rev2.pdf
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ブラウザ上で動作するPDP10エミュレータ。これを見ると、昔のコンピュータってPC(プログラムカウンタ)の変化を目で追えたんだな...ということに気づく。 https://t.co/a7b8yso8mn」 / Twitter
- paulnank/nankervis-pdp10-js: DECsystem-10 (PDP-10 KI10) Emulator in Javascript
- Makoto Kato ︎︎さんはTwitterを使っています 「BSDがなぜLinuxになれなかったのか論争を定期的にみるけど、所詮IBMとかの開発リソースを持った企業がどっちについたかだけだと思うんだけど。所詮リソースが多いほうが勝つ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「1990年後半にIBMがLinux+Javaを選択したからね」 / Twitter
- CONTENTS
- UNIX®, an Open Group Standard
- The Register of UNIX® Certified Products
- Beyond Linux® From Scratch
- The Linux Kernel Archives
- openbsd/src: Public git conversion mirror of OpenBSD's official cvs src repository.
- textutilsコマンドの使い方: UNIX/Linuxの部屋
- Decoded: GNU coreutils – MaiZure's Projects
- history - Why was '~' chosen to represent the home directory? - Unix & Linux Stack Exchange
Google
Twitter
- ぬん。さんはTwitterを使っています 「これ、まじ使える!! もっと早く知りたかった。 #linux のコマンドラインからめっちゃ簡単に #Android とかに通知送れるの。 時間かかる計算とかコンパイルしている時に超絶便利。 /Send push notifications to your phone or desktop via PUT/POST https://t.co/gWQLOdwFbl https://t.co/oBAoQ6Dlls」 / Twitter
- ntfy.sh | PUT / POSTを介して携帯電話にプッシュ通知を送信します
- binwiederhier/ntfy: Send push notifications to your phone or desktop using PUT/POST
- κeenさんはTwitterを使っています 「Googleの作ってるOS、Fuchsiaのセキュリティについての書き散らし。メッセージパッシングにすることで権限管理がやりやすいよねと。Fuchsiaはかなりの部分がRustで書かれている。 cr0 blog: A few thoughts on Fuchsia security https://t.co/TKQYWVkhwZ」 / Twitter
- cr0 blog: A few thoughts on Fuchsia security
- Makoto Kato ︎︎さんはTwitterを使っています 「Chrome OSの利点ってアップデートも含めだと思うのだが 、こういうChrome OSのforkをインストールしてって話はセキュリティの担保の保証が難しいので勧めるのはどうかと思う。(CloudReady自体はGoogleが買ったから別になるかもだけど) https://t.co/rasVmwhdZT」 / Twitter
- Windows 11に見捨てられたPCをChromebook化して幸せに:小寺信良のIT大作戦(1/4 ページ) - ITmedia NEWS
- Makoto Kato ︎︎さんはTwitterを使っています 「担保の保証ってなんで2重になってんだ。書き直しミスった」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@makoto_kato CloudReady のアップデートポリシーってどうなるんですかねぇ。 ホンモノのChromebookの方もアップデートは機種毎の期限付だし、こう言う目的には合わなさそうですが。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「@ichinose_iroha 現時点でなにも考えてないと思いますよ」 / Twitter
- Taku KudoさんはTwitterを使っています 「chromebook以外使うのホント辛い。クラウドネイティブじゃないレガシーOSって、いちいち「保存しますか」的なダイアログが出てイライラする。」 / Twitter
- FadisさんはTwitterを使っています 「Freedrenoの作者が開発の近況を解説している話。FreedrenoはQualcomm SnapdragonのGPU用のOSSドライバで、リバースエンジニアリングで開発されている。このドライバはAndroidで既に使われているが、Snapdragon上で動くChromeOSのために改良が進められてきた事が述べられている https://t.co/hVSeQeb1DL」 / Twitter
- Google Is Successfully Using The Open-Source Qualcomm GL/VLK Drivers On Chromebooks - Phoronix
- FadisさんはTwitterを使っています 「SnapdragonはAndroidで定番のパワフルなARM SoCだが、純正のGPUドライバはdolphinの開発者からHorribleと評される品質だった。マシなドライバを自作しようとFreedrenoを立ち上げたRob Clark氏らをGoogleが雇い、Pixel3a以降のGoogleのAndroid端末では純正ドライバではなくFreedrenoが用いられている」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Googleアカウント (Gmail等) は、しばらく使わないでいるとある日「このデバイスから本人確認する手段がありません」としてログインできなくなるらしい。Amazonでも似たような問題があるという。たとえ利用料を払っていてもサポートはないも同然。 https://t.co/w5O3ZpHjNU」 / Twitter
- Ask HN: Gmail account security | Hacker News
- エヌユルさんはTwitterを使っています 「最近のAndroid端末はswap機能を備えてることが増えてきたんだけど、 Windowsの用語に合わせて「仮想メモリ」って言われてることが多くて「いや違うだろ」ってよくなってる」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Android 13の新規APIを見てたけど、これは自分が一番ほしかったやつでは? datalistとかspellcheckerの実装に使えるのではと https://t.co/FC3uoCYPUd」 / Twitter
- TextAttribute | Android Developers
- Makoto Kato ︎︎さんはTwitterを使っています: 「Windowsは裏でいろんなものが動いているけど、そんなのWeb Browserに比べれば軽いし、JavaScriptの速度はCPUの速度に依存するんだから、結局ChromeOSなLaptopはハイエンド買わざるを得ないと思うよ (=だったらWindowsでも変わらない)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Firefox OSのときは省メモリで動かす仕組みをいろいろ入れてたけど、Webコンテンツが重ければどうしようもならんかったし」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Cortex-A72なChromebookとほぼ同スペックのWindows/ArmなLaptop持ってるけど、体感変わらない」 / Twitter
- shinobu.dartさんはTwitterを使っています 「いや、ほんとAndroid Code Search コードを読む上でほしい機能が揃いまくっててすごすぎるよこれは☺️ https://t.co/FXQ78WY99w」 / Twitter
- Android Code Search
- Downloading the Source | Android Open Source Project
- The Android Source Code | Android Open Source Project
- Selecting Devices | Android Open Source Project
- Codenames, Tags, and Build Numbers | Android Open Source Project
- Android Compatibility Definition Document | Android Open Source Project
- platform/ - Git at Google
- platform/development.git - Git at Google
- android/platform_development
- どのようにscrcpyがADBだけでAndroidの画面操作を実現しているのか | CyberAgent Developers Blog
- PC/MacからAndroid端末を操作できるツール「scrcpy」、HID/OTGをサポート - 窓の杜
- USB/Wi-Fi接続されたAndrod端末の画面をPCで表示・操作できる「scrcpy」【レビュー】 - 窓の杜
- Android 13 Beta 1がプライバシーサンドボックスプレビューと共に利用可能に
- Architecture Overview of Fuchsia OS - Speaker Deck
- 厳しくなったSafetyNet Attestationによる端末チェック - Speaker Deck
- Running Android Apps on VM in Chrome OS - Google スライド
- Project Zero: The quantum state of Linux kernel garbage collection CVE-2021-0920 (Part I)
- won't fix: いまさらながらAndroidのAutofill Frameworkの困った話
MS
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「NTカーネルの仕様書を読んだことある人って、どれくらいいるんだろうか? 昔CD-ROMに焼いて配ったんで、それなりの数の人が目を通したはずだけど。今どきOS/2 NTと書かれてても何ソレ?ってスルーされちゃうかも知れず / “Windows-Research-Kernel-WRK-/NT_Design_Workbook…” https://t.co/TDaKERbmK3」 / Twitter
- Windows-Research-Kernel-WRK-/NT_Design_Workbook/Get_Workbook at master · HighSchoolSoftwareClub/Windows-Research-Kernel-WRK- · GitHub
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「とりあえずke.docがカーネル全体について記述しているので、その辺から読むといいかも。そこから先は趣味ですがvmdesign.doc辺りを読むと、いきなりNTカーネルが当初i860向けに開発されたことなんかを知ることができて面白いですね。i386/486も似たようなPTEフォーマットで云々」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ぶっちゃけ30年前に書かれたカーネルの仕様書を読んで何になるのか?という話ではあるのだけど、四半世紀以上も生き残った商用ソフトウェアの初期仕様書を読める例って本当に少ないので、少なくとも考古学的な価値は高いんじゃないかな。読みやすさでいえばタンネンバウム先生のMinix本の方が上だけど」 / Twitter
- 「Windows 11」は操作への応答が高速化 ~Microsoftがその秘密を解説 - やじうまの杜 - 窓の杜
- マイクロソフト、Windows 11をWindows 10よりも高速化した方法を詳述|自作.com
- マイクロソフトがWindows 11のアップデートサイズを制限する方法|自作.com
- ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
- Microsoftが諦めた幻のモバイルOS「Andromeda OS」とは? - GIGAZINE
- Microsoft・EA・CD Projekt Redがロシアでの製品販売およびサービス提供を停止 - GIGAZINE
- ロシアでWindows 10とWindows 11のダウンロードがブロックされる - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Windowsでは、すべての関数の先頭に MOV EDI, EDIという何もしない2バイトの命令が入っている。これは関数にパッチを当てるためのもので、パッチ時はこれをJMP $-5に置き換え、さらに別の5バイトでフルジャンプを実行する。NOP×2個にしなかったのは、このほうが実行が速いため https://t.co/z4VGujNdGd」 / Twitter
- Why do Windows functions all begin with a pointless MOV EDI, EDI instruction? - The Old New Thing
- Ken Gregg's answer to Does Windows use Big Endian? - Quora
- Takashi Kawasakiさんのツイート: "今やWindowsが凄いとかそういう話、誰も興味ないと思うんだけどさ、現存するどころか、かなりのシェアを持ってるUNIXじゃない思想で設計されたOSなんて凄くないですか!そして、互換性重視で来たので、かなり初期の謎の機能の痕跡とかが残ってるんですよ!"
- Windows 11のシェアはWindows XPを追い抜くもWindows 7に及ばず - GIGAZINE
- マイクロソフトがチラ見せ?Windows 12のプロトタイプと見られるUIデザインが公開される | ギズモード・ジャパン
- Windows 12のUIはmacOSのまね?上部にメニュー、タスクバーが宙に浮かぶ - iPhone Mania
- Windows 95は16ビット版シムシティの実行を検出すると特別なモードに入っていた - GIGAZINE
FreeDOS
OpenGEM
- GUIデスクトップ(2) - GEM - - DOS環境構築日記
- OpenGEM - Opendawn
- shanecoughlan/OpenGEM: OpenGEM is a non-multitasking 16-bit graphical user interface (GUI) for DOS. It is an extended distribution of FreeGEM that includes features of the original Digital Research GEM. Learn more here: http://www.opendawn.com/opengem/
- Graphics Environment Manager - Wikipedia
- GEM (desktop environment) - Wikipedia
1.2
- FreeDOS 1.2 がリリースされたので FreeDOS/V 化してみた: Aiming Off のブログ
- FreeDOS 1.2正式版がリリース - 新しいインストーラーやコマンドが追加
- FreeDOS1.1のインストール - トトのメモ帳
1.3
- FreeDOS 1.3 Release Candidate Available For Retaining MS-DOS Compatibility In 2019 - Phoronix
- FreeDOS 1.3が登場、2016年以来の最初のメジャーアップデート|自作.com
- 2022年2月22日 「FreeDOS 1.3」がリリース,オープンソースのMS-DOS互換OSが5年ぶりにアップデート:Linux Daily Topics|gihyo.jp … 技術評論社
- 「FreeDOS 1.3」がリリース ~オープンソースの「MS-DOS」互換OS - 窓の杜
- FreeDOS | The FreeDOS Project
- FreeDOS/Vページ
- はたけやまたかしさんはTwitterを使っています: 「はじめて読む8086に出てくるアセンブラ(MASM)やリンカ(LINK)がFreeDOSには含まれていなくてどうしたものかと悩んでいたのだけど、マイクロソフトがGithubで公開しているMS-DOSのリポジトリの中に含まれてた!これでいけるかも! https://t.co/q3VvL9CNyE」 / Twitter
- microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes
- はたけやまたかしさんはTwitterを使っています: 「Githubに公開されてるMS-DOSのソースコードについては、こちらの記事が詳しいです。 https://t.co/hzFW2Gx9kD」 / Twitter
- MS-DOS温故知新 ~ソースコード公開を期にパソコン大衆化の原点を振り返る~:MS-DOS歴史的遺産化記念企画 - @IT
- MS-DOSに続いてGW-Basicがオープンソースに
- microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983
- RawWrite for Windows: FDをイメージ化したりイメージをFDに戻すツール - ぼくんちのTV 別館
- chrysocome.net - RawWrite for Windows
- ibiblio FreeDOS Package -- OpenGEM desktop (Utilities)
- DosUSB - providing USB support for DOS
- http://bretjohnson.us/forum • View topic - FreeDOS and USB Flash Drives
- Karellen's Unix Blog: Basic networking with FreeDOS
- Antique Software
- FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する - Qiita
- 日記 (2014 年 3 月下旬)
- DOSBox, an x86 emulator with DOS
- File Cabinet - JamesOnline - Electrical Controls
- open-watcom-v2/usage.sp at master · open-watcom/open-watcom-v2
- DJGPP
- MS-DOS Player for Win32-x64 謎WIPページ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Null pointer "Exception" ではなく "Assignment" と聞いて、何のことか判るのがロートル。 (メモリ保護が無いMS-DOSでプロセス終了時に出る)」 / Twitter
CP/M
- CP/M is really open-source now
- License Agreement
- Digital Mark λ 🕹 🪣: "CP/M is now actually open source! Finally you can…" - AppDot.Net
TRON
- トロンフォーラム
- 製品紹介 / 特長 - 超漢字ウェブサイト
- TRONWARE VOL.191 - パーソナルメディア書籍サイト
- BTRONマイクロスクリプト - パーソナルメディア書籍サイト
- μITRON4.0仕様に準拠するためには | OsaruSystem
- なぜTRON OSが「非常に優れていたが外圧で潰された」とか「組み込みで世界標準OSだ」とかいう誇張された伝説をいまだに信じている人が大勢いるのですか?に対するFurukawa Isaoさんの回答 - Quora
- もなかさんはTwitterを使っています 「実身仮身ファイルシステムとか TRON 文字コードとか、構想先行の部分はあったけれども。 そして、割と上手く行かなかったのは構想先行の部分に偏っている、という雑感はある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「実身仮身ファイルシステム、ナイーブに考えると何の制約もないグラフになるから実装大変だろうなって思う。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 ファイルシステムにデータモデルをマップしていると(例えば大きなCG映画の製作過程)、木構造の制約がきつくて有向グラフに出来たら楽なのにと思うけど、実際やろうとしてみると性能や安定性、そして何よりユーザのメンタルモデルがついていけなくなる」 / Twitter
- もなかさんはTwitterを使っています 「今の技術と使える計算機資源で、実身仮身ファイルシステムと TACL を実装するなら、どう作るだろう。 というのは、暇なときに、時々考える。 分散ハッシュとスマートコントラクトになるのだろうねぇ。ぶろっくちぇーん。」 / Twitter
- もなかさんはTwitterを使っています 「DHT に基づく分散ストレージだけで、概ね作れちゃいそうだけど。 永続性の強いリンクを張り続けようとすると、復元できる履歴を保存する必要がある。 そうすると、ブロックチェーンのお出ましだわなぁ。」 / Twitter
- 四弦/超越基底:いぶきさん.kml (佐藤陽花)@分散処理/RT-OS/コンピュータ言語さんはTwitterを使っています 「@monamour555 今これに取り組んでいます 恐らく今冬か来年あたりには最初の学会発表できそうではあります」 / Twitter
- 超漢字ウェブサイト
- 超漢字開発者サイト - 超漢字ウェブサイト
- BTRON1プログラミング標準ハンドブック - パーソナルメディア書籍サイト
- 社会人でもOSを作りたいさんはTwitterを使っています: 「BTRONの実身/仮身モデルとWindowsのOLEって似てるんじゃないかと思って検索したらこんな記事があった。 "TRON Project と BTRON の概要" https://t.co/l3CGMOBCO6」 / Twitter
- TRON Project と BTRON の概要
- 社会人でもOSを作りたいさんはTwitterを使っています: 「いやー,先行研究の調査って大事だなあ。OLEが結構やりたかったことに近いぽい。BTRONの実身/仮身モデルを借用したようなアーキテクチャ。」 / Twitter
Alto, JStar
- Xerox Alto - Wikipedia
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「こんなすごい動画があったとは。長生きはするものです。 JStar's debut in 1981 - The Mother of All Demos of Personal Computers in Japan」 / Twitter
- Taro TeraoさんはTwitterを使っています 「40年前に発表されたんですね 1981-04-27 https://t.co/tlakCxFfXQ」 / Twitter
- JStar debut 1981-The Mother of All Demos of Personal Computers in Japan https://youtu.be/GdQzSt_X8f4 - YouTube
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「当時このデモを見ていた人たちにこのすごさがどのくらい伝わったのだろう。逆に、いまの人がこれを見ても当たり前すぎて伝わらない気がする。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「JStarはすごくよく出来ているのだけど、厳密にWYSIWYGで画面の拡大ができないから、老眼にはとても辛い」 / Twitter
超流動 OS
- KJ00001340121.pdf
- IPSJ-OS94065016.pdf
Magic Cap
- Magic Cap - Wikipedia
- Magic Cap - Wikipedia
- ASCII.jp:15年はやくスマートフォンになろうとした端末
- General Magic / MagicLink (1) 発端 | Good Old Bits
VA Linux エンジニアブログ
- RISC-V OSを作ろう (1) ~ブート処理 - VA Linux エンジニアブログ
- RISC-V OSを作ろう (2) ~ タスク切り替え - VA Linux エンジニアブログ
- RISC-V OSを作ろう (3) ~ 割り込み - VA Linux エンジニアブログ
- RISC-V OSを作ろう (4) ~ タイムシェアリングスケジューリング - VA Linux エンジニアブログ
- RISC-V OSを作ろう (5) ~ 時限待ち - VA Linux エンジニアブログ
- RISC-V OSを作ろう (6) ~ セマフォ - VA Linux エンジニアブログ
Rust
- ytakanoさんはTwitterを使っています: 「最近のUSENIXのOS研究はほとんどRustで実装されていて、さらにRustの機能をフルに使っているので、Rustにしないと先端研究の成果が取り入れられないと言う状況。」 / Twitter
- ytakanoさんはTwitterを使っています: 「Rustにも色々不満点はあるが、Haskellとかはまずランタイムをなんとかしてくれないと、システムソフトウェアで使うのはキツい。」 / Twitter
- ytakanoさんはTwitterを使っています: 「Rustの一番の不満点は、計算効果をうまく表現できないところ。20年後ぐらいには改善されてるか、もっと良い言語がでてくるかな?」 / Twitter
- RustでRTOSを考える - Ryuz's tech blog
- Rustをフル活用したリアルタイムOS「Tock」の特異性:リアルタイムOS列伝(18)(1/3 ページ) - MONOist
- RustがAndroid OSセキュリティのための新しい基盤を提供
- 2021年8月第4週 Android OSの開発にRustが使われる:Android Weekly Topics|gihyo.jp … 技術評論社
- ytakanoさんはTwitterを使っています 「Linux nextにrustと言うディレクトリが掘られていて、色々あって面白い。 https://t.co/oBvpGXhX29」 / Twitter
- rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
- ytakanoさんはTwitterを使っています 「Linux Rustのpreludeはkernel::preludeっぽい。 https://t.co/a9GooZmtR2」 / Twitter
- prelude.rs « kernel « rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
- ytakanoさんはTwitterを使っています 「カレントタスクはTask::current()で取得できて面白い。Iteratorは実装してないのかな? https://t.co/dxMfOK9MXv」 / Twitter
- task.rs « kernel « rust - kernel/git/next/linux-next.git - The linux-next integration testing tree
- ytakanoさんはTwitterを使っています 「TaskがDropで自動的に参照カウンタをデクリメントするから、currentで取ってきた場合はManualllyDropするためにTaskRefと言う別の型にしているのか。cloneすると参照カウンタがインクリメントされてTask自体が返ると。なるほど。」 / Twitter
- ytakanoさんはTwitterを使っています 「幽霊型でsend出来なくしてるのか。賢いな。」 / Twitter
- Danna@クラウドネイティブジャパニーズな電網妄想さんはTwitterを使っています 「@ytakanoster この前、SREconで、Linux Kernelとドライバをrustに書き換えまくってるぜ!全部rustに変えるのが目標!っていうと叫んでる人がいたので、マジメにKernelコードからCが無くなる日が来るのではと期待している…」 / Twitter
- ytakanoさんはTwitterを使っています 「Rustでコード書いていたら、アドレスの挙動が意味わからなくてLinuxカーネルソースまで見るハメになった…」 / Twitter
- ytakanoさんはTwitterを使っています: 「A pair of Rust kernel modules [https://t.co/KbemMhucHs] > experiment with async Rust in the kernel Async/awaitをLinux Kernelで使えるようにしようとしている!?期待したい。『並行プログラミング入門』でもKernelに入るかもと書いたけれど、動きが早い。 https://t.co/qt2EMo4wwf」 / Twitter
- RustでOSを書いた
企業
- Igalia - Open Source Consultancy and Development | Index
- Birchill
- Preferred Networks Research & Development
- 岡野原大輔が令和4年度 卓越した技能者(現代の名工)を受賞 - 株式会社Preferred Networks
- Idein(イデイン)株式会社 ― エッジAIでDXを成功に導きます
- 株式会社フィックスターズ
- 株式会社リチェルカセキュリティ
- ブログ – 株式会社 ITS more
- ArkEdge Space
- Makoto Kato ︎︎さんのツイート: "SONYはWebKitにコミットしてる (WebKit reviewerも社員にいる) ので、次もWebKitだと思いますよ。任天堂はACCESS次第 (これ https://t.co/TbaGqgBZsa)… "
- WebKitブラウザ「NetFront® Browser NX」|ブラウザ|製品情報 | 株式会社ACCESS
News
- これまでどんなOSが開発されてきたのか&どう派生したのかが見てわかる系図が公開 - GIGAZINE
- オープンソースOS「SerenityOS」開発者はいかにして生計を立てているのか? - GIGAZINE
Twitter
- ヨコヤマ(横山哲也)さんはTwitterを使っています 「むかしのモニターが黒背景なのは、ベクタースキャンの名残。でも、VT-100の時点で白背景も設定できた。ウィンドウが白背景なのはPARCの人たちが「紙は白い」と主張したから。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「黒背景白文字 vs. 白背景黒文字、歴史的背景が気になるというか。 昔のモニタが黒背景なのは、滲み等考えるとそのほうが読みやすいから? ウィンドウ環境で白背景黒文字へ移行したのには、PCの場合(DTP前提の)WYSIWYGもあるだろうけど、Mac以前からあるワークステーションもそういう理由だったの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「1964年に System/360 とともに発表されたビデオターミナルを見ると、2250 はベクタースキャンで 2260 はラスタースキャンだったのか。後者は音響遅延回路(管?)を使って描画内容を記憶していたと https://t.co/8Q5ZhnYHRP」 / Twitter
- IBM 2260 - Wikipedia
- ShigeyaさんはTwitterを使っています 「@n_soda @yume_piece1010 @kazuho black on white は Xerox Alto (1973)とかあの筋のものとP ERQ(1980年頃)とか、Symoblics(これも1980年頃)ぐらいしかなかったと思います。Altoが圧倒的に先 https://t.co/AqZT1SLhkS」 / Twitter
- PERQ - Wikipedia
- sumimさんはTwitterを使っています 「@shigeyas @n_soda @yume_piece1010 @kazuho Altoも1968年のNLSの模倣なので、これが今のblack-on-whiteの元ですね。NLSでは通常のwhite-on-blackの画面をビデオカメラで撮影し、それを反転出力していました(参考→https://t.co/6PdauZLfIr ) 切り替え可でblack-on-whiteの方が好まれたらしいですが肝心の何故そうしたかは分かりませんでした^^;」 / Twitter
- The Mother of All Demos, presented by Douglas Engelbart (1968) - YouTube
- sumimさんはTwitterを使っています 「「GUIのマイルストーン:Alto、Apple、Blit、Paintbox、その他の初期のシステム」 ロブ・パイクらの Blit https://t.co/Lm3LArUk6C に触れているところが渋い。 それにつけても、ロシア語の文章がこんなに気軽に読めるなんて。DeepLに感謝!」 / Twitter
- The Blit: A Multiplexed Graphics Terminal
- Хабр ДизайнさんはTwitterを使っています 「Вехи развития GUI: Alto, Apple, Blit, Paintbox и другие ранние системы https://t.co/Qe7nrb4JV3」 / Twitter
- Вехи развития GUI: Alto, Apple, Blit, Paintbox и другие ранние системы / Хабр
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「1983年~2002年までに研究開発されたユーザーインターフェイスのデモ動画一覧。MITの Project Athenaや Xerox PARC のSmallTalkなどもある。 https://t.co/7CAuTkStcZ」 / Twitter
- Jack Rusher ☞ Classic HCI demos
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ユーザインターフェイス (UI) の歴史。Windows/Macだけでなく、1973年の Xerox Altoから Apple Lisa、Amiga Workbench、KDEやGNOMEなども紹介されている。 https://t.co/mUFoAeYsCc」 / Twitter
- The History of User Interfaces
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「スクロールバーはなぜウインドウの左側ではなく、右側につくようになったのか? ユーザの視線はよくウインドウの左端を見ているので、スクロールバーが右にあると視線が動いてしまう。答え「スクロールバーが左にあると、右手でタッチパネルをさわったときに手がかぶるから」 https://t.co/i0VVdw5rjZ」 / Twitter
- Hands across the screen
- Satoshi MatsuokaさんはTwitterを使っています: 「The 'Myths' paper is out: Satoshi Matsuoka, Jens Domke, Mohamed Wahib, Aleksandr Drozd, Torsten Hoefler. "Myths and Legends in High-Performance Computing" https://t.co/iATKiQZaMH" undergoing peer review. Hopefully the community will be engaged in yes/no discussions on Twitter!」 / Twitter
- [2301.02432] Myths and Legends in High-Performance Computing
Install
- Home | endoflife.date
- セキュリティ更新プログラム リリース スケジュール (2022 年) – Microsoft Security Response Center
- Windows client documentation for IT Pros - Windows for IT Pros | Microsoft Docs
- Windows 10 / Windows 11 基本のセキュリティ対策
- Microsoft Rewards
- Microsoft Rewards を獲得し、より良い世界に貢献する
その他
- Software Download
- Identify CPU features (beta)
- Windows | ダウンロード | Slack
- iCloud を入手 - Microsoft Store ja-JP
- X410 を購入 - Microsoft Store ja-JP
- VcXsrv Windows X Server download | SourceForge.net
- クイック スタート - Azure Portal で Windows VM を作成する - Azure Virtual Machines | Microsoft Docs
- Download Windows 10
- Pricing and Licensing - MATLAB & Simulink
- MATLAB Home - MATLAB & Simulink
- Rockridgeさんのツイート: "Pwn2Ownで脆弱性が発見されてから22時間未満でFirefox 59.0.1をリリースできた背景事情を説明した記事。複数のOSと90言語をサポートし、1800万行を超えるソフトウェアでこれを実現したところに意味がある。 https://t.co/l2J3r1xdI9"
- ツールに全幅の信頼を置くべきか? – Sysdig
MS
ライフサイクル
- Search Product and Services Lifecycle Information - Microsoft Lifecycle | Microsoft Docs
- Windows 10 Home and Pro | Microsoft Docs
- Windows ライフサイクルのファクト シート - Windows ヘルプ
- サービスとしての Windows のクイック ガイド (Windows 10) - Windows Deployment | Microsoft Docs
- Windows 10 UWP アプリのライフサイクル - UWP app developer | Microsoft Docs
- ライフサイクルに関する FAQ - Windows 製品 | Microsoft Docs
- ライフサイクルに関する FAQ - Internet Explorer および Microsoft Edge | Microsoft Docs
- ライフサイクルに関する FAQ - モダン ポリシー | Microsoft Docs
- モダン ライフサイクル ポリシー | Microsoft Docs
- Office と Windows のサービスとサポートの変更 - Windows Blog for JapanWindows Blog for Japan
- Tech TIPS:一目で分かる、Visual Studioの各バージョンのサポート期限 - @IT
- マイクロソフト、2025年までにWindows 10のサポートを終了する|自作.com
- ASCII.jp:今秋にはWindows 10もアップデートするが今回も小規模? 21H2のプレビュー開始
- Windows 11 Home and Pro (Version 21H2) - Microsoft Lifecycle | Microsoft Docs
- Overview of Windows as a service - Windows Deployment | Microsoft Docs
- Lifecycle FAQ - Windows | Microsoft Docs
- 2022年でサポート終了のMicrosoft製品は? 今のうちにチェック! - やじうまの杜 - 窓の杜
- Support ends for older versions of Visual Studio - Visual Studio Blog
セキュリティ
- マイクロソフト脆弱性報告窓口 ガイド (日本語) – Microsoft Security Response Center
- YurikaさんはTwitterを使っています 「英語の窓口は不安、という場合はMSの場合は英語の窓口に投げる時に「日本語対応希望」と一言書いていただだければコミュニケーション自体は日本語で対応します! 困ったこととか相談とかあればお気軽に https://t.co/y6tGB9UMf4」 / Twitter
- 日本語でマイクロソフトに脆弱性を報告する方法 – Microsoft Security Response Center
- Yosuke HASEGAWAさんはTwitterを使っています 「経験的には、マイクロソフト製品の脆弱性は直接英語窓口に届けるのが楽。細かな記載事項の形式的な不備とか気にしなくても最低限の手順などが書かれていれば受け入れてくれる。直接的な脆弱性とまで言えない挙動でも(修正されるか否かは別として)「報告ありがとう」という姿勢なのでこちらも気持ちいい」 / Twitter
- Windows security baselines guide - Windows security | Microsoft Docs
- Windows security - Windows security | Microsoft Docs
- Submit a file for malware analysis - Microsoft Security Intelligence
- Microsoft Digital Defense Report – Microsoft Security
- Microsoft Digital Defense Report でサイバーセキュリティの動向を知る - Microsoft Security Response Center
- 「なりすまし」増加中! Microsoftが個人向け「Microsoft Defender」に監視機能を導入 - 窓の杜
- Microsoft サービス規約
- Microsoft のプライバシーに関する声明 – Microsoft のプライバシー
- RiskIQ Community Edition
- あなたの Microsoft アカウントにパスワードレスの未来を - News Center Japan
- Microsoft アカウントへのサインイン
- プライバシー
- サービスの状態
- Microsoft 365 Service health status
- Skype Status | Skype Support
- Microsoft Docs
- Windows 開発者向けドキュメント | Microsoft Docs
- Windows 開発者向けドキュメント - Windows drivers | Microsoft Docs
- Microsoft Edge issue tracker - Microsoft Edge Development
- Windows Insider Program の結果 - マイクロソフト コミュニティ
- tenpoku1000
- Discussions - Microsoft Tech Community
- Microsoft Learn | Microsoft Docs
- よく寄せられる質問
- Microsoft アカウント | ホーム
- アカウントの一時停止
- Flight Hub | Microsoft Docs
- Windows のリリースの正常性 | Microsoft Docs
- Windows release health | Microsoft Docs
Tools
その他
Office
- ExcelやWordなどのOfficeファイルのマクロをデフォルトで無効にするとMicrosoftが発表 - GIGAZINE
- Microsoft、インターネットから取得したOfficeファイルのVBAマクロをブロック | TECH+
- Microsoft Excel、新しいJavaScript API導入で独自のカスタムデータ型 | TECH+
- Macros from the internet are blocked by default in Office - Deploy Office | Microsoft Docs
- Excel CSV形式ファイルにおける今どきUTF-8文字コード問題の傾向と対策:Tech TIPS - @IT
- 【笠原一輝のユビキタス情報局】なぜ日本のMicrosoft 365 Personalは高いのか? 個人/法人で買うべきOfficeをアドバイス - PC Watch
- Web版Excel、業務自動化スクリプトに対応 - PC Watch
- Office 2021がWindows 11と同じ10月5日より提供開始。Excelに「XLOOKUP」実装など - PC Watch
- ダウンロードファイルのVBAマクロをデフォルト無効化。Officeに仕様変更 - PC Watch
- Masaru Iritaniさんのツイート: "Outlook で電子メールをカレンダーにドラッグ アンド ドロップすると簡単に予定を作れることを知ってから、作業依頼の電子メールはすぐ予定にして時間を確保するようにしています。"
- EaseUS OS2GO - Windows 11、10、8、7向けの最高の起動可能なポータブルUSBドライブを作成するツール
- キーボードだけでサクサク使える電卓アプリ「Calctus」レビュー、変数を用いた複雑な計算も可能 - GIGAZINE
- Latest topics > Windows 10で「デスクトップの解像度」と「アクティブな信号解像度」が一致しない現象が発生したときの解決方法 - outsider reflex
- 秀丸エディタが11年8カ月ぶりにメジャーバージョンアップ、標準エンコードにUTF-8を選択可能に - ITmedia PC USER
- Windowsエクスプローラー特殊Tips【5選】 ― 開発者/クリエイターにおすすめ - Build Insider
- 文字の消滅から11年、Windowsの「スタートボタン」が最近のユーザーには通じないという指摘【やじうまWatch】 - INTERNET Watch
- Windows 8 で ISO の「マウント」が出来くなってしまったら | The Simplest Essence
- Windowsのコマンドライン引数でのクォートの話 | Qrunch(クランチ)
- Otter Voice Meeting Notes - Otter.ai
- pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
- とほほのSELinux入門 - とほほのWWW入門
- Install Docker Desktop on Windows | Docker Documentation
- Docker for Windows release notes | Docker Documentation
- Bridge - Uniant
- Tablacus Explorer - アドオンで拡張できるタブ型ファイラー
- Windows 10 ログインできないパソコンを初期化する - PCまなぶ
- オープンソースの電子メールクライアント「Claws Mail 4.1」が公開 | OSDN Magazine
- 山市良のえぬなんとかわーるど: 総クラスター数っす
- 北森瓦版 - ローカルアカウントでWindows 11をインストールする方法
- 「Windows Autopilot」で、PCもスマホのように手軽に“機種変”しよう ~買ったPCを箱から出してすぐに環境が再現可能- PC Watch[Sponsored]
- 【特集】回復キーを無くすと終わるBitLocker。自動で有効化されてしまうことも。まさかのためのBitLocker入門 - PC Watch
- Microsoftが広告付きのWindowsを開発中の模様。
- Microsoftが「広告を搭載した安価なPCのサブスクリプション」を検討していると報じられる - GIGAZINE
- ノートンやAvast、Avira、AVGといった著名アンチウイルスが「Gen」に統合 - PC Watch
- TablePlus | Modern, Native Tool for Database Management
- Windows 12では、セキュリティ向上のために「Microsoftサポート診断ツール」が廃止される模様 | TEXAL
Chocolatey
Packages
主要なソフトウェア
- Chocolatey Gallery | 7-Zip 16.4.0.20170506
- Chocolatey Gallery | Beyond Compare 4.2.3.22587
- Chocolatey Gallery | Everything 1.4.1877.20170915
- Chocolatey Gallery | Git 2.15.1.2
- Chocolatey Software | GitHub Desktop 2.5.3
- Chocolatey Gallery | MSYS2 20161025.0.0
- Chocolatey Gallery | NetWide Assembler 2.13.02
- Chocolatey Gallery | Node.js LTS (Install) 8.9.4
- Chocolatey Software | Python 3.8.5.20200721
- Chocolatey Gallery | Tera Term 4.97
- Chocolatey Software | Visual Studio Code 1.67.2
- Chocolatey Software | VirtualBox 6.1.12
メディア関連
- Chocolatey Software | Adobe Acrobat Reader DC 2020.012.20043
- Chocolatey Gallery | Avidemux 2.7.0
- Chocolatey Gallery | MediaInfo 17.12
- Chocolatey Gallery | PowerISO 7.0
- Chocolatey Gallery | Screen To Gif 2.10
- Chocolatey Gallery | VLC media player 2.2.8
- 無料でオープンソースのメディアプレイヤー「VLC」で簡単にPCの画面を録画する方法 - GIGAZINE
- Chocolatey Gallery | Packages
配布元
主要なソフトウェア
- 圧縮・解凍ソフト 7-Zip
- 解凍・圧縮ソフト「7-Zip」に未修正の脆弱性 ~セキュリティ研究者が明らかに - 窓の杜
Beyond Compare
- Scooter Software: Home of Beyond Compare
- Beyond Compare Technical Support
- WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool) - いろいろ備忘録日記
- Beyond CompareでCSVのデータを比較する - プログラマーな日々
- もうひとつのGUI diffツール「Beyond Compare 4」|TechRacho by BPS株式会社
- xdocdiff WinMerge Plugin -Word、Excel、PowerPoint、pdfの比較・差分を見る-
Everything
- 人気の高速ファイル検索ソフト「Everything」v1.4が正式版に ~“ReFS”をサポート - 窓の杜
- Downloads - voidtools
- OSの検索機能を完全に置き換え ~「EverythingToolbar」に待望の機能が実験搭載 - 窓の杜
- stnkl/EverythingToolbar: Everything integration for the Windows taskbar.
- Git - Downloads
GitHub Desktop
Qiita
- GitHub Desktopの使い方 - Qiita
- Github Desktopを使った開発の流れ(入門) - Qiita
- GitHub Desktop | Simple collaboration from your desktop
- desktop/desktop: Simple collaboration from your desktop
- Sample reports | GitHub Desktop
- Set Up Git - User Documentation
- よくあるうっかりミスを防止する機能が2つ導入された「GitHub Desktop 2.3」 - 窓の杜
- プロキシを自動検出・設定、イシューの作成にも対応した「GitHub Desktop 2.4」がリリース - 窓の杜
- 待望の差分の分割表示をサポートした「GitHub Desktop 2.6」 - 窓の杜
- 「GitHub Desktop 2.7」でD&Dによるチェリーピッキング(git cherry-pick)が可能に - 窓の杜
- 差分表示にちょっとうれしいオプションを追加した「GitHub Desktop 2.8」 - 窓の杜
- 「GitHub Desktop」が2年ぶりのメジャーバージョンアップ、v3.0に - 窓の杜
- GitHub Desktop 1.5でマージコンフリクトの解決が容易に
- GitHub Desktop 3.0でコラボレーションと開発ワークフローが改善
MSYS2
- MSYS2 homepage
- Package: mingw-w64-x86_64-lld - MSYS2 Packages
- MSYS2
- MSYS2でclang(64bit版)
- WindowsでClangを使うならmsys2が便利 - Qiita
- Download LLVM releases
- msys2とC++で特定のDLLに依存しないwindowsバイナリを作る - siunのメモ
- zig/Findllvm.cmake at master · ziglang/zig
- 「MSYS2」がWindows 7対応の段階的廃止を開始 ~まずはハードウェア要件を引き上げ - 窓の杜
- NASM
Node.js
RobotJS
- RobotJS - Node.js Desktop Automation
- octalmage/robotjs: Node.js Desktop Automation.
- ダウンロード | Node.js
- ドキュメント | Node.js
- Node.js 日本ユーザーグループ
- node.js npm - Google 検索
- ドッグさんはTwitterを使っています 「LTS でないバージョンの node 使ってても npm install は気にせず LTS 向けの npm を入れてるっぽい.そういうもんか…」 / Twitter
- 「Node.js 18」がリリース ~fetch API、Web Streams APIがグローバルスコープで利用可能に - 窓の杜
Python
- Download Python | Python.org
- Python製のマルウェアが台頭してきているという指摘 - GIGAZINE
- pipでパッケージの更新をしたらアンインストールエラーが出た話|ジャンク松本|note
- ドッグさんはTwitterを使っています 「pip の,1つのパッケージは依存関係内に1つのバージョンしか存在できない制限がなかなかキツい」 / Twitter
- 小川雄太郎さんはTwitterを使っています 「Pythonで実装した処理ファイルを他人に渡したり、活用してもらう際に、Python環境を用意してもらうや、Google Colabなどは面倒なので、exe化したいです。 いくつか方法はあるのですが、その一つが紹介された記事になります。 https://t.co/TwydGZD8Fu」 / Twitter
- How to Easily Convert a Python Script to an Executable File (.exe) | by Frank Andrade | May, 2021 | Towards Data Science
- ぽんたさんはTwitterを使っています 「Pyinstaller で exe化したもの (onefile オプション付) って起動に数秒かかる印象があるんだけど、実際どうなんだろう」 / Twitter
- 〒みやらん🐶❄ゆきんこさんはTwitterを使っています 「色々と方法あるんやなぁ。 Windows であれば、 WinPython が全部固めて渡せる最強だと思っている(´・ω・`)」 / Twitter
- fkubota 🦉さんはTwitterを使っています 「まじでマジックコマンドの"%debug"便利なのでjupyter使ってる人で知らない人いたら一度使ってみてほしい。。。 「知らんかった!!」っていう人があまりにも多い。。。 わざわざgif作ったよ! 「エラー出た!!」で後出しでデバッグできるんだから使わない手はないよね。 https://t.co/t2yjMqn1vV」 / Twitter
- fkubota 🦉さんはTwitterを使っています 「デバッガの使い方は、pdbやipdbと同じなのでこの当たりが参考になります。 https://t.co/C3iiywUdAG」 / Twitter
- Pythonにおけるデバッガ: pdb, ipdb - Qiita
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「IPython とか Jupyter やるなら SageMath もいいですよ」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Windows でプログラミングを始めようとして Python を入れようとすると - python org > 公式だよ! - Windows Store > Windows の公式だよ! - Visual Studio > Microsoft 公式の開発環境だよ! - anaconda > 必要な環境全部そろってるよ! - ... とかでしょ」 / Twitter
- 「JupyterLab」のデスクトップアプリ「JupyterLab App」がリリース。Pythonなどに対応した統合開発環境 - Publickey
- プログラミング言語のコードを逐次実行できるノートブック環境「JupyterLab」がスタンドアロンアプリに - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「メモ) Windows環境Pythonで、親proc無関係に生き残る新規proc生成には、subprocess の Popen(...creationflags=CREATE_BREAKAWAY_FROM_JOB) と。 (CREATE_NEW_PROCESS_GROUP は効果なし)」 / Twitter
Tera Term
- Tera Term Open Source Project
- 💉💉💉まあぼ@cub 𓁅さんはTwitterを使っています: 「TeraTermは制御コードが来るとすぐ文字化けする(Terminalリセット必須) ということは、もしかしてTeraTermだから状態確認できない可能性あるのでは? ←TeraTerm →cu (on Linux) https://t.co/MYYfVZ5P5Y」 / Twitter
メディア関連
- PDFリーダー、PDFビューア | Adobe Acrobat Reader DC
- ストア版「Acrobat Reader」も64bitに ~Windows 11のシンプルな右クリックメニューにも対応 - 窓の杜
- 64bit版「Acrobat Reader DC」が日本でも提供開始 ~32bit版からの更新も順次開始 - 窓の杜
- Avidemux - Downloads
- MediaInfo
- PowerISO - Create, Burn, Mount, Edit, Compress, Encrypt, Split, Extract ISO file, ISO/BIN converter, Virtual Drive
- Releases · NickeManarin/ScreenToGif
- Official download of VLC media player, the best Open Source player - VideoLAN
- Chocolatey
- Installation
- Pricing
- ChocolateyFAQs
- chocolatey/choco: Chocolatey CLI
- Home · chocolatey/choco Wiki
- 久しぶりにWindowsの環境構築をした · 電子雪原ちほー
- Chocolateyの自作パッケージ入門(1) · 電子雪原ちほー
- Chocolatey にパッケージを公開する #1 全体手順 - Qiita
- spp5: Chocolateyでカスタムパッケージを作成する
- ChocolateyとSetting Syncで開発環境をサクっと整える | フロントエンドBlog | ミツエーリンクス
MS
廃止・非推奨
- Windows 10 - Features that have been removed - Windows Deployment | Microsoft Docs
- Windows 10 features we’re no longer developing - Windows Deployment | Microsoft Docs
- Microsoft、OEM向けWindows 10は今後32bit版を提供せず - PC Watch
- 「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! - やじうまの杜 - 窓の杜
- 次期Windows 10で非推奨となる「ペイント」アプリ、“ストア”で無償提供されることに - 窓の杜
- 「ディスク クリーンアップ」は非推奨に ~“ストレージ センサー”への移行を - 窓の杜
- 「Windows To Go」は終了へ ~「May 2019 Update」で削除・置き換え予定の機能が発表 - 窓の杜
- 「Windows 10 Fall Creators Update」で廃止・非推奨となる機能が明らかに - 窓の杜
- Microsoft、「Windows 10 October 2018 Update」で削除・開発終了となる機能を案内 - 窓の杜
- 「Windows 10 November 2019 Update」で開発が終了する機能、削除される機能が発表 - 窓の杜
- Silverlightは時間切れ
- Microsoft、「October 2020 Update」で削除・開発終了となる機能を案内 - 窓の杜
- 旧「Edge」、「IE11」、wmicコマンド……「Windows 10 バージョン 21H1」で削除・非推奨となる機能たち - 窓の杜
Windows 11
その他
- Configuration Manager を用いた Windows 11 の OS 展開
- Windows 10はなぜ最後じゃなかった?次世代の「Windows 11」がリリースされた理由 - CNET Japan
- Windows 11で可能になったパブリックDNS利用時のDoHによる暗号化を試す【イニシャルB】 - INTERNET Watch
- Windows 11のインストールをブロックする方法 - ソフトアンテナブログ
- 【Tips】Windows 11でMicrosoftアカウントをローカルアカウントに切り替える方法(逆も) - ソフトアンテナブログ
- [速報]マイクロソフト「Windows 365 Cloud PC」正式発表。Windowsをクラウドサービスとして月額定額料金で提供、デスクトップ仮想化をベースに - Publickey
- Windows 365 Cloud PCとAzure Virtual DesktopでWindows 11が利用可能に - Publickey
- Windows 11の開発ビルド22509では、スタートメニューに関する不満に対応|自作.com
- Windows 11のアップデートでBSODが再び青くなり、ファイルエクスプローラーの主要なバグが修正される|自作.com
- Windows 11 SEについて知っていること|自作.com
- OneDriveバックアップ機能が起こす4つの問題│ITサポート SORA|埼玉県ふじみ野市
- Windows11のタスクバー移動機能、実装予定なし。Microsoftが回答 | ニッチなPCゲーマーの環境構築Z
- 【Windows 11】PrintScrnキー一発でWin+Shift+S(範囲指定スクリーンショット)をできるようにする:Tech TIPS - @IT
- やっとまともに!? Windows 11のマルチディスプレイ機能再整理:Tech TIPS - @IT
- 山市良のえぬなんとかわーるど: 本日 (9/21 JST) の Windows Update - 2022-09C と Windows 11 22H2 GA
- 山市良のえぬなんとかわーるど: 検証:Windows 11 ver 22H2 は外部タイプの Hyper-V 仮想スイッチを壊す?
- WindowsのVPN切り替えコマンドで学ぶ各シェルのエイリアス設定方法 | フューチャー技術ブログ
GIGAZINE
- Windows 11でゴッドモードをアンロックする方法 - GIGAZINE
- Windows 11の新しいタスクマネージャーのデザインが明らかに - GIGAZINE
- Windows 11でAndroidアプリが実行可能になる機能の公開プレビュー版が2022年2月登場、他にもタスクバーの改善・メモ帳とメディアプレーヤーアプリの再設計などがめじろ押し - GIGAZINE
- MicrosoftがAmazon Appstore Preview経由でWindows 11向けに1000以上のAndroidアプリを提供開始 - GIGAZINE
- Windows 11に追加される新機能まとめ「スタートメニューのフォルダ分け」「エクスプローラーの改善」「新設計のタスクマネージャー」など盛りだくさん - GIGAZINE
- Windows 11 ProもHomeと同じくMicrosoftアカウントが必須になる見込み - GIGAZINE
- Windowsを自動更新する「Windows Autopatch」が2022年7月に登場 - GIGAZINE
- Windows 11のタスクバー位置移動機能の開発にMicrosoftは消極的 - GIGAZINE
- ゲーマーのWindows 11採用速度はWindows 10の約半分、一体なぜ? - GIGAZINE
- Windows 11で録音アプリの「サウンドレコーダー」が復活、録音・再生中音声の波形表示や再生速度変更などが可能に - GIGAZINE
- ついに日本でもWindows 11でAndroidアプリを使える「Amazon Appstore」が提供開始へ - GIGAZINE
- 2022年後半にサードパーティのWindows 11ウィジェットをMicrosoftがサポート予定、開発者はウィジェットをWin32またはPWAアプリの「コンパニオンエクスペリエンス」として提供可能に - GIGAZINE
- 非対応のはずのPCに「Windows 11のインストール推奨画面」が表示されたという報告が大量に寄せられる - GIGAZINE
- Windows 11のウィジェットがタスクバー上で通知を表示できるようにライブアニメーションに対応 - GIGAZINE
- Windows 11の大規模アップデート「Windows 11 2022 Update」配信開始、スタートメニューのフォルダ分類機能と通知抑制機能が追加&2万本以上のAndroidアプリとゲームをサポート - GIGAZINE
マイナビニュース
- なぜWindows 11のタスクバーはデスクトップ下部に固定? - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11のコンテキストメニューはシンプルに - 阿久津良和のWindows Weekly Report | マイナビニュース
- MicrosoftがWindows 11のCPU&TPMチェックをスキップする情報を公開 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 次々更新されるWindows 11アクセサリーは歓迎すべき? 阿久津良和のWindows Weekly Report | マイナビニュース
- 2022年のWindows 11には何が待つか - 阿久津良和のWindows Weekly Report | マイナビニュース
- エクスプローラーの不具合が改善? 2021年最後のWindows 11ビルド22523 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11で「空フォルダが沢山作られる奇妙な動き」を確認する方法 | TECH+
- Microsoftの個人向けチャット環境はどこへ行く - 阿久津良和のWindows Weekly Report | マイナビニュース
- リリース間近のWindows 11 バージョン22H2 - 阿久津良和のWindows Weekly Report | マイナビニュース
- デスクトップ版Windowsスポットライトが有効に - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11 Insierに2種類のビルドが配信された - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11標準のカメラアプリとメディアプレーヤーがバージョンアップ - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11のタスクバー新機能は吉か凶か - 阿久津良和のWindows Weekly Report | マイナビニュース
- 「Windows 11 バージョン22H2」リリース、おもな新機能は? - 阿久津良和のWindows Weekly Report | マイナビニュース
- 拍子抜けするほど安定しているWindows 11 22H2 - 阿久津良和のWindows Weekly Report | マイナビニュース
- サードパーティー製アプリの既定インストールは是か非か - 阿久津良和のWindows Weekly Report | マイナビニュース
窓の杜
- Windows 11で絶対使いたいアプリ 2021年 記事一覧
- Windows 11で絶対使いたいアプリ 2022年 記事一覧
- Windows 11のタスクバーを上・右・左へ配置できる「Winaero Tweaker」v1.30 - 窓の杜
- Windows 11のタスクバーをチャーミングな角丸にできる「RoundedTB」 - Windows 11で絶対使いたいアプリ - 窓の杜
- Stardock、Windows 10/11のスタート画面をクラシックスタイルにする「Start11」をベータ公開 - 窓の杜
- スタート画面のカスタマイズツール「Start11」がピン止めアプリのフォルダー分けに対応 - 窓の杜
- Windows 11の右クリックメニューをWindows 10以前に戻す「Windows 11 Classic Context Menu」 - Windows 11で絶対使いたいアプリ - 窓の杜
- シンプル過ぎて少し不便なWindows 11の右クリックメニューに好みのコマンドを追加する方法 - Windows 11で絶対使いたいアプリ - 窓の杜
- 「Windows 11よ、まだまだ詰めが甘いな」 新しい[Windows]+[X]メニューに隙あり! - やじうまの杜 - 窓の杜
- Windows 11の音量コントロールが気に入らない? クラシックなスタイルに戻す方法 - Windows 11で絶対使いたいアプリ - 窓の杜
- なんでWindows 11はセカンダリモニターに時計がないんや……っていう人に「ElevenClock」 - Windows 11で絶対使いたいアプリ - 窓の杜
- Windows 11でセカンダリモニターの時計を復活させる「ElevenClock」がv3.0.0に - 窓の杜
- 「ElevenClock」でマルウェア検出の報告 ~Windows 11のサブモニターにも時計を表示するツール - 窓の杜
- Windows 11環境でInternet Explorer 11を起動するショートカットを錬成してみる - やじうまの杜 - 窓の杜
- モダンルックな「タスク マネージャー」の開発が進行中? - やじうまの杜 - 窓の杜
- Windows 11の設定画面に「Microsoft アカウント」の項目、Bing技術でヘルプも強化 - 窓の杜
- なんでドラッグ&ドロップできないの! Windows 11に欠けたタスクバー機能を補うツール - Windows 11で絶対使いたいアプリ - 窓の杜
- 失われたことすら認識されていないあの機能をWindows 11に取り戻す「野心的」アプリ - Windows 11で絶対使いたいアプリ - 窓の杜
- 「Windows 11 Home」をローカルアカウントでセットアップする方法 - やじうまの杜 - 窓の杜
- 「Windows 11 Pro」でも「Microsoft アカウント」が必須に? プレビュー版に気になる変更 - やじうまの杜 - 窓の杜
- Windows 11の右クリックメニューに好きな項目を追加できる「Custom Context Menu」がv3に - 窓の杜
- いつものゲームをすぐプレイ ~Microsoft 、Windows 11の新機能「コントローラーバー」を発表 - 窓の杜
- 年内の日本展開を前に「Windows Subsystem for Android」がAV1コーデックに対応 - 窓の杜
- 「Windows 11」のライセンスがようやく「Microsoft Store」で販売開始 - やじうまの杜 - 窓の杜
- Windows 11はパスワードの総当たり攻撃にも強い ~中の人が新しい対策を明らかに - やじうまの杜 - 窓の杜
- 【速報】「Windows 11 2022 Update」の一般提供が開始 ~初の大型アップデート - 窓の杜
- 「Windows 11 2022 Update」のサポートは基本2年 ~更新メカニズムも大幅改善で小さく・速く・中断が少なく - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- Windows 11のタブ型のエクスプローラーやタスクバーのオーバーフローメニューは未提供 - 窓の杜
- タブはまだだけど、注目すべき改善は盛沢山 ~「Windows 11 2022 Update」の「エクスプローラー」 - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- ウィンドウスナップが使いやすい! 「Windows 11 2022 Update」はデスクトップの隅々までモダン - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- Windows 11への無償アップグレードに「特定の終了日は設けていない」 ~マイクロソフトが公式FAQを訂正 - 窓の杜
- タスクバーのD&Dが復活! 応答不可モードも導入された「Windows 11 2022 Update」 - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- ガッチガチのセキュリティを求めるなら「Windows 11 2022 Update」への更新はアリ - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- マルチモニター、ゲーム、電力消費……「Windows 11 2022 Update」の恩恵はほかにもいっぱい! - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- タブ付きエクスプローラーなど、「Windows 11 2022 Update」の新機能が一般提供開始 - 窓の杜
PC Watch
その他
- 【特集】Windowsキーを使わないなんてとんでもない!知っておきたいWindowsキーでできる便利なこと7選 - PC Watch
- 【山田祥平のRe:config.sys】Windowsはどう使われたがっているのか - PC Watch
- 【山田祥平のRe:config.sys】クラウドPCのオンとオフ - PC Watch
- 【笠原一輝のユビキタス情報局】Armにとって劇的転換点となるWindows 11 - PC Watch
- 【特集】Windows 11は結局何が良くて何が微妙なのか?OSの出来やゲーム性能などを三者三様に分析 - PC Watch
- 【やじうまPC Watch】Windows 11の新しいメモ帳、歯車をクルクル回せます - PC Watch
- Windows 11、パスワードの再利用や平文保存で警告表示へ - PC Watch
- Windows 11のエクスプローラーにタブ機能追加 - PC Watch
- Windows 11でSSDが遅くなる不具合。ランダムライトが半分以下の場合も - PC Watch
- 起動時にクラウドのWindows 11に直接ログインできるWindows 365 boot - PC Watch
- Microsoft、HDR調整アプリを提供へ - PC Watch
- Windows 11だとゲームやアプリが不調は本当?Windows 10との比較で噂を検証 - PC Watch[Sponsored]
- Microsoft、Windows 11/Edgeのゲーム向け機能を拡張。Xbox Game Passも拡充 - PC Watch
- Windows 11のメモ帳がArmにネイティブ対応。性能向上やアクセシビリティ機能強化など - PC Watch
- 「Windows 11 2022 Update」が本日より提供開始。一部機能は10月に追加予定 - PC Watch
- 【特集】ついに出た!Windows 11「22H2」の変更点まとめ。どこが変わって何が新しくなったのか? - PC Watch
- 【特集】Windows 11へのアップグレードはいつまで無料?改めて10からのアップグレード要件を確認する - PC Watch
- 【山田祥平のRe:config.sys】よろしくWindows - PC Watch
- インテルSSTを更新していないWindows 11マシンは22H2を受け取れず - PC Watch
- エクスプローラーのタブ機能など、Windows 11新機能が一般提供開始 - PC Watch
- 【Windows 11便利テク】Windows 11ではジェスチャーを使いたい。ショートカットよりも素早い操作を可能にする方法 - PC Watch
- 【Windows 11便利テク】Windows 11のウィジェットに好みの情報を表示する方法 - PC Watch
- 【Windows 11便利テク】ウィンドウを縦横きれいに並べるWindows 11のスナップレイアウトを使いこなす - PC Watch
- 【Windows 11便利テク】何かと便利なWindows 11の「クイック設定」をカスタマイズしてみる - PC Watch
- 【Windows 11便利テク】Windows 11のエクスプローラーの違和感を軽減する - PC Watch
- 【Windows 11便利テク】Windows 11のスタートメニューをカスタマイズして使いやすくする - PC Watch
- 【Windows 11便利テク】やっぱり左下にしたいWindows 11のスタートボタン。タスクバーの不要なアイコンも削除 - PC Watch
- 【Windows 11便利テク】Windows 11でファイルの関連付けができない!そんな時に役立つアプリのリセット - PC Watch
- 【Windows 11便利テク】なんか勝手に起動してる?Windows 11で自動起動アプリをオン/オフする方法まとめ - PC Watch
- 【Windows 11便利テク】ライトとダークの組み合わせが柔軟に!Windows 11でアプリのデザインをカスタマイズする - PC Watch
- 【Windows 11便利テク】Windows 11でより使いやすくなったHyper-V。サクッと無料で仮想環境を作ってみる - PC Watch
- 【Windows 11便利テク】PC不調の最終手段!Windows 11を初期化する2つの方法 - PC Watch
- 【Windows 11便利テク】Windows 11の画面をちょっと見やすくするコツ - PC Watch
- 【Windows 11便利テク】使ってる? 分かりにくいWindows 11の「チャット」。ビジネス向けTeamsと何が違うのか - PC Watch
- 【Windows 11便利テク】「メモ帳」と「メディアプレーヤー」どこが新しくなった?Windows 11で最新版登場 - PC Watch
- 【Windows 11便利テク】いざという時に役立つWindows 11のスクリーンショットを取得する4つの方法 - PC Watch
- 【Windows 11便利テク】PINコードはなぜ安全?Windowsでさらに防御力が高める方法とは? - PC Watch
- 【Windows 11便利テク】Windows 11のネットワーク設定。知っておくと便利な項目は? - PC Watch
- 【Windows 11便利テク】「ニンジャキャット」OUT、代わりにヤツがIN - PC Watch
- 【Windows 11便利テク】Internet Explorer完全終了間近!IE向けWebページをEdgeで表示する方法は? - PC Watch
- 【Windows 11便利テク】便利なWindows 11の新ショートカットキーを活用しよう - PC Watch
- 【Windows 11便利テク】不要なアプリはサクっと削除。3通りあるWindows 11のアプリアンインストール方法 - PC Watch
- 【Windows 11便利テク】充電できないときに活用したい!Windows 11の「バッテリー節約機能」 - PC Watch
- 【Windows 11便利テク】知らないと“いざ”というときに詰む「BitLocker回復キー」 - PC Watch
- 【Windows 11便利テク】定番の[ディスクの管理]はもう不要?PCのストレージを[記憶域]で管理する方法 - PC Watch
- 【Windows 11便利テク】PCの動作があやしいときに役立つ「Windows 回復環境」 - PC Watch
- 【Windows 11便利テク】Windows起動前からBitLockerでPCを保護する方法 - PC Watch
- 【Windows 11便利テク】英語版のWindows 11を日本語環境にする - PC Watch
- 【Windows 11便利テク】Microsoftのファイル復活ツール「winfr」なら、USBやSDカードの削除データを救出できる - PC Watch
ASCII.jp
- ASCII.jp:Androidアプリの提供だけではないWindows 11のMicrosoftストアの進化点 MSIやEXEインストーラーにも対応 (1/2)
- ASCII.jp:Windows上から今動いているのがWindows 11なのか10なのかを確認したが、答えはバラバラ (1/2)
- ASCII.jp:Windows 11でもアップデートの方法は改良が進み、最終的には短い中断で済むようになる? (1/2)
- ASCII.jp:Windows 11の右クリックメニューが変わった問題など、細かなWin11対策を紹介 (1/2)
- ASCII.jp:Windows 11は最大化ボタンから、簡単にウィンドウのスナップ機能を利用できる (1/2)
- ASCII.jp:Windows 11の大型アップデート「Ver.22H2」ではこんな改良点がある【タスクバーとスナップレイアウト】 (1/2)
- ASCII.jp:Windows 11で初めての大型アップデート、Ver.22H2はこうなる
- ASCII.jp:Windows 11の大型アップデート「Ver.22H2」ではこんな改良点がある【エクスプローラー&タスクマネージャー】 (1/2)
- ASCII.jp:Windows 11の大型アップデート「Ver.22H2」ではこんな改良点がある【システム&設定アプリ】 (1/2)
- ASCII.jp:Windows 11 2022 Updateが登場もAndroidアプリの動作など一部の新機能は順次
- ASCII.jp:あらためてWindows 11でのWindows Insider Programの参加方法とやめ方 (1/2)
- ASCII.jp:ウィンドウを配置するWindows 11の便利機能の「Windowsスナップ」と「FancyZones」 (1/3)
ニッチなPCゲーマーの環境構築Z
- Windows11はTPM 1.2でもいける?どちらが正しい? | ニッチなPCゲーマーの環境構築Z
- Windows11のタスクバー位置はレジストリから変更可能。ただし左右への移動はバグる | ニッチなPCゲーマーの環境構築Z
- Windows11のスタートメニュー変更レジストリが無効化される | ニッチなPCゲーマーの環境構築Z
- Windows11で時計の秒数表示が無効化される | ニッチなPCゲーマーの環境構築Z
- Windows11は7のプロダクトキーでも認証できるのか | ニッチなPCゲーマーの環境構築Z
- Windows11のインストール中に『0x8007007f』エラー。対処方法あり | ニッチなPCゲーマーの環境構築Z
- 非サポートPCにWindows11をインストールする方法 | ニッチなPCゲーマーの環境構築Z
- TPM 2.0 / CPUチェックを回避してWindows10からWindows11へとアップグレードする方法 | ニッチなPCゲーマーの環境構築Z
- Windows11にアプグレ後もWindows10のタスクバーが表示されてスタートメニューが動作しなくなる不具合 | ニッチなPCゲーマーの環境構築Z
- Windows11に空のフォルダが大量に作成される不具合。Windows10から継続 | ニッチなPCゲーマーの環境構築Z
- Windows11のシェア率はわずか1%未満 | ニッチなPCゲーマーの環境構築Z
- Microsoft、Windows11における既定のブラウザの面倒な変更方法を撤回 | ニッチなPCゲーマーの環境構築Z
- パッケージ版Windows11 HomeおよびProが発売!お値段は…… | ニッチなPCゲーマーの環境構築Z
- Windows11 22H2は2022年8月に正式リリースか | ニッチなPCゲーマーの環境構築Z
- Windows11 バージョン22H2の既知の不具合 | ニッチなPCゲーマーの環境構築Z
- Windows 11 の仕様 - Microsoft
- What's new in Windows 11 | Microsoft Docs
- Ways to install Windows 11
- 新しい Windows 11 OS へのアップグレード | Microsoft
- Windows lifecycle and servicing update - Microsoft Tech Community
- Planning for Windows 11: best practices for organizations - Microsoft Tech Community
- Windows Processor Requirements Windows 11 Supported Intel Processors | Microsoft Docs
- Windows Processor Requirements Windows 11 Supported AMD Processors | Microsoft Docs
- Windows Processor Requirements Windows 11 Supported Qualcomm Processors | Microsoft Docs
- On Windows 11, Win32 apps can not be updated via the Microsoft Store - MSPoweruser
Microsoft Store
MS
- Windows File Recovery を入手 - Microsoft Store ja-JP
- HEIF 画像拡張機能 を入手 - Microsoft Store ja-JP
- HEIC Image Converter を購入 - Microsoft Store ja-JP
- HEVC ビデオ拡張機能 を購入 - Microsoft Store ja-JP
- Raw Image Extension を入手 - Microsoft Store ja-JP
- AV1 Video Extension を入手 - Microsoft Store ja-JP
- MPEG-2 ビデオ拡張機能 を入手 - Microsoft Store ja-JP
- ProcDump - Windows Sysinternals | Microsoft Docs
- DebugView - Windows Sysinternals | Microsoft Docs
- RAMMap - Windows Sysinternals | Microsoft Docs
- A5:SQL Mk-2 (x64) を入手 - Microsoft Store ja-JP
- Microsoft Store のポリシーの変更履歴 - UWP applications | Microsoft Docs
- Microsoft Store ポリシー - UWP applications | Microsoft Docs
窓の杜
- 「Microsoft Sore」のWebインターフェイスが刷新 - 窓の杜
- Win32アプリの待機リストは解消、アプリの復元などの注目機能も――「Microsoft Store」の改善はまだまだ続く - 窓の杜
- 新しい「Windows Store」のベストアプリを選出!「Microsoft Store App Awards 2022」が発表 - 窓の杜
- 「ストア」アプリがARM64ネイティブ対応へ ~Devチャネルでテスト開始 - 窓の杜
- オープンソースアプリの販売を禁止? Microsoft Storeのポリシー改定が物議を醸す - やじうまの杜 - 窓の杜
- 「Microsoft Store」広告が始動、パイロットプログラムへの待機リストがオープン - 窓の杜
- Microsoft、ストア広告のテスト運用を開始 ~「Amazon Appstore」は世界31カ国へ拡大 - 窓の杜
- 今度はパスワード管理アプリに偽物が……「Microsoft Store」でまた偽アプリが出没 - 窓の杜
- 「KeePassXC」の偽アプリ問題が解決 ~「Microsoft Store」で公式バイナリが利用可能に - 窓の杜
- Microsoftがアプリストア「Microsoft Store」の一新を図っている - GIGAZINE
- Windows 11で「アプリ復元」機能がテスト中、以前インストールしていたアプリを丸ごと移行できる便利機能 - GIGAZINE
- Microsoft Store ポリシー改訂、Chrome や Firefox の公開が可能に | スラド デベロッパー
- Windows ストアにアプリやゲームを公開する – Develop for Microsoft
- 新デザインのMicrosoft StoreアプリがWindows 10に展開 - PC Watch
- 新Microsoft StoreがWindows 10でも利用可能に - 阿久津良和のWindows Weekly Report | マイナビニュース
- AndroidスマホのゲームがまもなくWindows 10/11でプレイ可能に - PC Watch
- Epic GamesやDiscord、ZoomなどがWindowsのストアから利用可能に - PC Watch
- Windows 11ストアでWin32アプリのアップデートができない|自作.com
- マイクロソフト、「Windows Subsystem for Android」をWindows 11のWindows Insider Program向けに配布開始、KindleなどのAndroidアプリが実行可能に - Publickey
- Microsoft Storeがオープンソースソフトウェアの販売を禁止する方針を撤回 - GIGAZINE
- 米MS、アプリストアに導入予定だったオープンソースソフト販売禁止条項を撤廃 | OSDN Magazine
DevToys
- 「Visual Studio」の中の人が作ったプログラマー向け十徳ナイフ「DevToys」 - 窓の杜
- プログラマー向けの十徳ナイフ「DevToys」にARM64ビルド ~最新版は日本語にも対応 - 窓の杜
- 「DevToys」にcronパーサーが追加 ~開発者向けに便利なツールを集めた十徳ナイフ - 窓の杜
PowerToys
PC Watch
- キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」 - PC Watch
- 【山田祥平のRe:config.sys】あらゆるアプリを同じ操作で - PC Watch
- PowerToys、PCを起動しっぱなしにできる機能でCPU高負荷となる問題を修正 - PC Watch
- PowerToysがWindows 11っぽい見た目に。Fluentデザイン採用の最新版公開 - PC Watch
- PowerToysがWindows 11向けにストアで配信 - PC Watch
- PowerToys、安定版初のビデオ会議ミュート機能などを実装した「0.49.0」 - PC Watch
- 高解像度や複数ディスプレイ環境に便利!PowerToys v0.51.0公開 - PC Watch
- 安定性を重要視した「PowerToys v0.57.0」 - PC Watch
- 「PowerToys」安定版リリースにバグ修正を加えたv0.57.2 - PC Watch
- PowerToys、Windows 11での使いやすさを向上 - PC Watch
- 画面のパーツの大きさも測れる定規機能がPowerToysに実装へ - PC Watch
- PowerToys、画像から文字を抽出できる機能を開発中 - PC Watch
- 画面上のさまざまな長さが測れる機能を搭載したPowerToys - PC Watch
- 「PowerToys v0.63.0」で容量大幅削減。安定性も向上 - PC Watch
- PowerToys、ファイルがどのプロセスで使われているか分かる機能 - PC Watch
- PowerToysのコードベース刷新。Color Picker改善なども - PC Watch
窓の杜
- 「PowerToys」にMarkdown/SVGプレビューと画像リサイズ、検索ベースのタスク切り替えが追加 - 窓の杜
- 「PowerToys」を使いこなして効率UP! プレビュー版を一足先に体験 2020年 記事一覧
- OSの使い勝手を改善する「PowerToys」がWindows 11にピッタリのモダンスタイルに - 窓の杜
- 「PowerToys」に新機能? マウスカーソル付近を丸くハイライトするデモがお披露目 - 窓の杜
- 「PowerToys」のオンライン会議支援機能がようやく安定版に、見失ったマウスカーソルを見つける機能も - 窓の杜
- 見失ったマウスカーソルを探す「PowerToys」機能が強化、プレゼン支援機能も追加される - 窓の杜
- 「Microsoft PowerToys」にホットキーでウィンドウを最前面に固定する機能 - 窓の杜
- 誰でも使えマウス! 「PowerToys」に新しいアクセシビリティ機能が実装へ - やじうまの杜 - 窓の杜
- マウスカーソルを見逃さない! 「Microsoft PowerToys 0.55」に新しいアクセシビリティ機能 - 窓の杜
- ちょっとだけPCをつけっぱなしにしておきたい……そんな時に役立つ「Awake」 - 生産性を上げる!PowerToys活用術 - 窓の杜
- Macのようにシェイクしてマウスカーソルを発見できるようになった「PowerToys 0.56」 - 窓の杜
- ウィンドウが他のアプリに隠れちゃうのが不便……そんなときは「常に手前に表示」 - 生産性を上げる!PowerToys活用術 - 窓の杜
- 今日の日時を一瞬で入力可能に ~パワーユーザー向けツール「PowerToys 0.57」 - 窓の杜
- Macで人気のファイル「チラ見」機能が「PowerToys」に? - やじうまの杜 - 窓の杜
- ARM64版の準備も完了 ~.NET 6/WinUI 3への移行を果たした「PowerToys 0.58」 - 窓の杜
- 「PowerToys」で環境変数エディターの導入が検討中? - やじうまの杜 - 窓の杜
- Web会議ツールのミュート操作を統一したい……カメラとマイクをキー一発でON/OFFする「ビデオ会議のミュート」 - 生産性を上げる!PowerToys活用術 - 窓の杜
- ARM64ネイティブ対応の「PowerToys」ビルドが初めて公開 - 窓の杜
- 「PowerToys 0.60」が公開、「PowerRename」「Image Resizer」がWindows 11の新コンテキストメニューに対応 - 窓の杜
- 画像からテキストを抽出 ~「PowerToys」に簡易OCR・物差しなど3つの新ツール - 窓の杜
- なぜかファイルを削除できない……を解消する便利機能が「PowerToys」に導入へ - やじうまの杜 - 窓の杜
- ファイルのロック解除とホスト編集ツールを追加した「PowerToys 0.64」が公開 - 窓の杜
- 「PowerToys」にWindows 11の[クイック設定]っぽいモダンなランチャーUIが導入? - やじうまの杜 - 窓の杜
- 「PowerToys 0.65」が公開 ~「ColorPicker」にカスタムフォーマット機能 - 窓の杜
- OCR機能や記号入力補助ツールを強化した「PowerToys 0.66.0」がリリース - 窓の杜
ASCII.jp
- ASCII.jp:Windows 10用ユーティリティ「PowerToys」がv0.16.1に 新機能をチェック (1/2)
- ASCII.jp:キーやショートカットキーの変更にも対応したWindows 10用ユーティリティ「PowerToys」の新バージョン (1/2)
- ASCII.jp:正式版は年内と延びるも、完成度は高まっているWindows 10向けPowerToys (1/2)
- ASCII.jp:キーカスタマイズやスナップ機能が便利なWindows用ツール、PowerToys最新版の11の機能を整理 (1/2)
マイナビニュース
- PowerToysに「Find My Mouse」などのマウスユーティリティ導入へ、Microsoft | TECH+
- PowerRenameUIを刷新、Mouse utilities搭載の「PowerToys バージョン0.49.0」 | TECH+
- Microsoft PowerToys、十字線でマウスカーソルを強調表示する機能追加へ | TECH+
- PowerToys新バージョン、新機能はないが適用しておきたい更新あり | TECH+
- より便利になったWindows 10・11用「PowerToys」- 阿久津良和のWindows Weekly Report | マイナビニュース
Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「むー。たぶんこれ、対応しないと今のGeckoではリマッピングに対応できないだろうな。Windows標準のショートカットキーハンドリングはVKに従うっぽいけど、Geckoは入力文字の方を見てるんだよね……」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「PowerToysのショートカットガイド、割と便利だと思っていたのに出てこなくなってて??ってなってたのだが、呼び出すためのキーが変わってた。このキーを思い出すためのガイドが必要だな。 https://t.co/RL2mUdg2yv」 / Twitter
- 入谷 優さんはTwitterを使っています 「PowerToys の Keyboard Manager で Space and Shift (SandS) を実現したいので、単押しと同時押しで割り当てを変える機能はとても欲しいです。 https://t.co/kNieE3edjy」 / Twitter
- [KBM] Separate function for key press vs key hold (a la dual-key-remap) · Issue #5679 · microsoft/PowerToys
- Releases · microsoft/PowerToys
- PowerToys/KeyboardManager.md at feature/keyboardmanager · microsoft/PowerToys
- MS、Windows 10向け「キー割り当て変更ソフト」開発中。軽量なUIを約束 - Engadget 日本版
- 無料で使用可能なクイックランチャー機能「PowerToys Run」がMicrosoft公式のWindows 10拡張ソフト「PowerToys」に登場 - GIGAZINE
- 「PowerToys Run」は評判の悪いWindows 11スタートメニューの解決策だ - ソフトアンテナブログ
- 「ウィンドウを常に最上部に表示」「ウィンドウレイアウトをカスタマイズ」「行方不明のマウスポインターを強調表示」などMicrosoft公式の小技アプリ集「PowerToys」を使ってみた - GIGAZINE
- PowerToysに設定バックアップ機能、hostsファイル編集ツールが追加へ - ソフトアンテナ
Power Apps
Publickey
- [速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey
- Excelの数式をベースにしたプログラミング言語が登場、「Microsoft Power Fx」。オープンソースで公開予定。Microsoft Ignite 2021 - Publickey
- Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に - Publickey
- [速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey (1)
- Microsoft Power AppsでiOS/Androidのネイティブアプリ開発が可能に。Iginte 2021 - Publickey
- マイクロソフト、Excel関数ベースのローコード言語「Power Fx」をオープンソースで公開。さまざまなソフトウェアでの採用が可能に - Publickey
- Windows 11にRPA機能の「Power Automate」標準搭載、インストール不要で利用可能に。マイクロソフトが発表 - Publickey
- [速報]マイクロソフト、手書きのスケッチをAIでアプリ画面に手軽に変換できる「Power Apps Express design」発表。Microsoft Build 2022 - Publickey
- [速報]マイクロソフト、Power Automateに自然言語の指示でフローを生成する新機能。Ignite 2022 - Publickey
窓の杜
- 「Power Automate Desktop」の6月更新 ~フローから別のフローを呼び出せるように - 窓の杜
- デスクトップ版「Power Automate」の10月更新 ~変数を機密情報扱いにする機能を追加 - 窓の杜
- 「Excel」のようなローコード向けプログラミング言語「Power Fx」、初期版が一般公開 - 窓の杜
- 独自の入力フォームを作成可能に ~デスクトップ版「Power Automate」の2月更新 - 窓の杜
- デスクトップ版「Power Automate」の3月更新、「Microsoft Edge」の「IE モード」に対応 - 窓の杜
- デスクトップ版「Power Automate」の4月更新、実践的なサンプルを大量にビルトイン - 窓の杜
- デスクトップ版「Power Automate」の独自フォーム機能が一般提供に - 窓の杜
- Microsoft、ローコードで高度なビジネスWebサイトを作成可能な「Power Pages」をプレビュー公開 - 窓の杜
- 日本マイクロソフトが無料で『ノーコード/ローコード開発 ガイド』を配布中 ~「Power Apps」活用のメリットとは? - Book Watch/ニュース - 窓の杜
- 真偽値やリスト、テーブルといった変数型に対応 ~デスクトップ版「Power Automate」の6月更新 - 窓の杜
- デスクトップ版「Power Automate」がCitrix/Microsoft仮想マシンへのRDP接続に対応 - 窓の杜
- Excel方眼紙の自動化も視野に? デスクトップ版「Power Automate」2022年8月更新 - 窓の杜
- Microsoft、新しいAndroid版「Power Automate」アプリを一般公開 - 窓の杜
- Microsoft、ロー・ノーコードで安全なWebサイトが作成可能な「Power Pages」の一般提供を開始 - 窓の杜
- デスクトップ版「Power Automate」2022年11月更新 ~新しいホーム画面を導入 - 窓の杜
- フリーのRPAツール「Power Automate for desktop」2022年12月更新、ブラウザー拡張機能が「Manifest V3」に - 窓の杜
マイナビニュース
- 自動化ツール「Power Automate Desktop」の無償化はMicrosoftの英断 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 世界のプログラミング言語(38) 無料になったPower Automateはマウス操作で作業自動化できる言語 | TECH+
GIGAZINE
- Microsoftが文章生成AI「GPT-3」をビジネスアプリ作成ツールに統合すると発表、文章形式でアプリ作成が可能に - GIGAZINE
- 3800万件分の個人情報がMicrosoftのツールから流出 - GIGAZINE
- デバイスで Power Automate Desktop を設定する - Power Automate | Microsoft Docs
- Set up Power Automate Desktop on your device - Power Automate | Microsoft Docs
- Dataverse のドキュメント - Power Apps | Microsoft Docs
- Analyze and resolve Portal Checker diagnostics results - Power Apps | Microsoft Docs
- Important changes coming in Power Apps portals - Power Apps | Microsoft Docs
- ASCII.jp:Windows 10で無料で使える、デスクトップ操作の自動化ツール「Power Automate Desktop」を試す (1/2)
- 話し言葉でプログラミング Microsoft、ノーコード進化: 日本経済新聞
- 【特集】Windows 11の業務自動化ツールでラクがしたい!純正アプリ「Power Automate Desktop」の使い方 - PC Watch
- 自動化ツールのPower AutomateがWindows 11標準搭載に - PC Watch
- 【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita
- Power Automate を使ってはんこプロセスを自動化する | IIJ Engineers Blog
- RPAとマクロ/VBAの違いは?
- Power Automateで祝日名を出力する | IIJ Engineers Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Power Desktopで画面操作を記録する要領でテストケースを作れる、と。 #JPPC2022 #AP2」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Power Automate Desktopね。 #JPPC2022 #AP2」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「これとは別にPower Platformの「ソリューション」って機能を使えばPower Automateとかも含めてバージョン管理ができるらしい。Gitのリポジトリーと直接同期する、今回の機能とは全然違うものみたいね #JPPC2022 #AU3 https://t.co/urDnc8SRqy」 / Twitter
- Source control with solution files (Microsoft Dataverse) - Power Platform | Microsoft Learn
Terminal
ASCII.jp
- ASCII.jp:正式版が登場したWindows Terminalをカスタマイズする (1/2)
- ASCII.jp:Windows Terminalのカスタマイズを研究【キーボード編】 (1/2)
- ASCII.jp:プレビュー版で開発が進められているWindows Terminal (1/2)
- ASCII.jp:Windows 10で標準で用意されるようになったcurlを使ってみる (1/2)
- ASCII.jp:Windows 10の新コンソール、Windows Terminalが完成直前のv0.11に (1/2)
- ASCII.jp:機能的にはほぼ完成されたWindows 10の新コンソール、Windows Terminal v0.9 (1/2)
- ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
- ASCII.jp:Preview版でv1.5まで進化したWindows Terminalの新機能を確認 (1/2)
- ASCII.jp:v1.6まで進化し、GUIでの設定ページも用意されたWindows Terminal (1/2)
- ASCII.jp:コマンドラインからウィンドウの制御が可能になったWindows Terminal v1.7 (1/2)
- ASCII.jp:あらためて「PowerShell」の現状と登場後の経緯を整理する (1/2)
- ASCII.jp:Windows Terminalは安定版v1.8、Preview版v1.9が登場 v2.0に向け進化が続く (1/2)
- ASCII.jp:Windows PowerShellからスクリプトの完了をトースト通知で知らせる (1/2)
- ASCII.jp:Windows Terminalのコマンドラインを極める (1/2)
- ASCII.jp:v2.0が近づいてきたWindows Terminal プレビュー版1.11の新機能を解説する (1/2)
- ASCII.jp:Windowsでちょっと文字コードを調べたいときの方法 (1/2)
- ASCII.jp:Windows 11では標準コンソールの変更が可能になったのでWindows Terminalを設定する (1/2)
- ASCII.jp:PowerShellでWindowsが起動してからの時間を計算する (1/2)
- ASCII.jp:ちょっとしたスクリプトにWindowsに含まれているアイコンを流用して、自分で作らずに済ませる方法 (1/2)
- ASCII.jp:dotnetコマンドを使って、Visual Studioを起動せずに簡単にプログラムを作成する (1/2)
- ASCII.jp:Windowsのcmd.exeからLinuxコマンドを使う際はエスケープ文字の使い方を覚える (1/2)
- ASCII.jp:地道な改良が進む、Windows Terminal Preview v1.13/1.14の改良点を見る (1/2)
- ASCII.jp:Windowsでコンソールのウィンドウタイトルを書き換える (1/2)
- ASCII.jp:Windowsにおける「パス」をあらためて考える (1/2)
- ASCII.jp:WindowsのファイアウォールをPowerShellから制御する
- ASCII.jp:PowerShellで任意の日付を計算する (1/2)
- ASCII.jp:WindowsのPowerShellコマンドラインで複雑な条件でファイルを検索する (1/2)
窓の杜
- 「Visual Studio」に「Windows Terminal」を合体 ~Microsoft、「VS Terminal」を発表 - 窓の杜
- ジャンプリスト対応の「Windows Terminal 1.4」が正式版に ~次期版は改良されたハイパーリンク機能を搭載 - 窓の杜
- 「Windows Terminal」に待望の設定GUI ~v1.6プレビュー版で先行導入 - 窓の杜
- 「Windows Terminal 1.7」プレビュー、GUI設定画面が既定に。JSONスニペットの共有でカスタマイズも簡単 - 窓の杜
- 「Windows Terminal 1.7」が正式リリース、設定GUIを安定版に - 窓の杜
- 「Quake」モードを追加した「Windows Terminal Preview 1.9」 ~既定のターミナルも「conhost」から「Windows Terminal」に切り替え可能 - 窓の杜
- 既定のターミナルを「Windows Terminal」に変更 ~プレビュー版Windows 10でテスト - 窓の杜
- 「PowerShell 7.2」は「Microsoft Update」経由でアップデート可能に - 窓の杜
- 「Quake」モードを追加した「Windows Terminal 1.9」が正式版に ~既定ターミナルの置き換えは搭載見送り - 窓の杜
- プレビュー版「Windows Terminal」のタブバーにアクリル効果、スタイリッシュな見栄えに - 窓の杜
- Microsoft、「PowerShell 7.2」を一般公開 ~Microsoft Update経由の自動更新に対応 - 窓の杜
- Windows 11の既定ターミナルは「Windows Terminal」に ~2022年中にも - 窓の杜
- 「Windows Terminal」プレビュー版に新しい描画エンジン、管理者権限でプロファイルを起動するオプションも - 窓の杜
- 「Windows Terminal」にWindows 11専用版、ファイルサイズは半分に - 窓の杜
- 入力したシェルコマンドとそのオプションを丁寧に教えてくれるWebサービス「shell.how」が面白いかも - やじうまの杜 - 窓の杜
- 「Windows Terminal」に新しい設定画面 ~Windows 11のデザイン原則に準拠 - 窓の杜
- 「Windows Terminal Preview 1.14」が公開 ~背景指定に新しいオプション、全選択アクションも追加 - 窓の杜
- 入力しようとしているコマンドを予測 ~PowerShellで「Predictive IntelliSense」が既定有効に - 窓の杜
- キー操作だけでテキストを選択できる「マークモード」が「Windows Terminal」に追加 - 窓の杜
- 「Windows Terminal」ユーザーはぜひ知っておきたい、タブを管理者権限で起動する裏技 - やじうまの杜 - 窓の杜
- テーマ機能と新しいテキスト描画エンジンを搭載した「Windows Terminal 1.16」がプレビュー公開 - 窓の杜
- 「Windows Terminal」がようやくOS既定のターミナルに ~「Windows 11 2022 Update」で - 窓の杜
- 「PowerShell 7.3」が正式公開 ~シェル環境としての使い勝手を改善 - 窓の杜
マイナビニュース
- Windows Terminalプレビュー バージョン1.12リリース | TECH+
- PowerShell バージョン7.2がリリース | TECH+
- Windows 11、「Windows Terminal」をデフォルトに、2022年に置き換え | TECH+
- 2年ぶりのバージョンアップとなる「GNU Screen v.4.9.0」 | TECH+
Qiita
- PowerShell 使い方メモ - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY から RLogin に移行…サーバ群の一括ログイン(復元)が出来て、ログイン時tmux起動と組み合わせでコンテキスト復元まで出来るのが良い。 (コンテキスト維持は大事。その意味で WindowsUpdateの邪悪さ…) https://t.co/UtVgljvR4V」 / Twitter
- ログイン時にtmuxを自動起動したい! - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RLoginって、設定変更中とか結構な頻度で落ちるのね。 (tmux上で作業する分には影響少ないけど)」 / Twitter
- SETX コマンドで環境変数を永続的に設定する - Qiita
- Windowsのコマンドライン引数でのクォートの話 - Qiita
- Powershell でファイルの先頭から少々のバイナリーを眺めたい時に使うコマンドのメモ - Qiita
Twitter
- ドッグさんはTwitterを使っています 「pip はもう古い.これからは python -m pip」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Windows Terminal Previewがconemu OSCというものでタイトルバーとタスクバー上のプログレスバーに対応しているということなので、うちの会社で作ってる変換君もそれに対応してみた。 https://t.co/KKrDDbK4oj https://t.co/6YDxsmaZSG」 / Twitter
- ConEmu | ANSI X3.64 and Xterm-256 Support
- 入谷 優さんはTwitterを使っています 「PowerShell で関数の引数をそのまま別の関数に渡すにはどうしたら良いのかなと思って調べたら、$PSBoundParameters なる変数が使えることを学びました。 https://t.co/Y5me0pqH6l」 / Twitter
- about_Splatting - PowerShell | Microsoft Docs
- 入谷 優さんはTwitterを使っています 「#PowerShell 7.2.0-preview.5 にしてから、cmd を呼ぶスクリプトがエラーを吐くようになってしまいました。どうやら二重引用符の扱いが変わっているようです。 https://t.co/63eduvIkL1」 / Twitter
- Experimental feature PSNativeCommandArgumentPassing breaks cmd /c calls with embedded double quotes · Issue #15239 · PowerShell/PowerShell
- mattnさんはTwitterを使っています 「豆知識: C: は C ドライブのカレントディレクトリという意味です。 C:. と同じ。」 / Twitter
- yuyabu🍥さんはTwitterを使っています 「よくコマンドでないものコンソールにコピペしてしまうことがあるけど有効なコマンドとして解釈されたら怖いなぁと思ってる」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PowerShell で UTF-8でリダイレクト等するには、この呪文と。 (それにしても PowerShellって苦手だなぁ) ---- https://t.co/u0OJwraD13 $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding」 / Twitter
- Using UTF-8 Encoding (CHCP 65001) in Command Prompt / Windows Powershell (Windows 10) - Stack Overflow
- 入谷 優さんはTwitterを使っています 「先日職場の人から、他の PowerShell セッションからコマンドを引っ張ってくる Import-PSSession なるコマンドレットを教わりました。謎に便利な機能です。 https://t.co/sF1hkhSWYR」 / Twitter
- Import-PSSession (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowアプリとコンソールアプリは、OS的にEXE種類(PEヘッダのSubsystem番号)が違いまして。 前者は、終了を待たずにプロンプトに戻る、コンソール入出力を前提にしてない(^Cで停止できない)などの違いがあるのですね。 (start "" /wait を使うと、ほぼコンソールアプリっぽくはできるのですが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「cmd.exe で pushd UNC名 とすると、UNCを空きドライブレターに割り付けた上で、カレントをそのドライブに移動するという豪快な動作と。 (popd で割り付け解除して戻る) https://t.co/HnsjE7SZ8L」 / Twitter
- pushd/popdでフォルダーを移動する:Tech TIPS - @IT
- mattnさんはTwitterを使っています: 「Windows は UNIX と違い、コマンドを入力した際にカレントディレクトリにある実行モジュールまでも実行してしまうんだけど、環境変数 NoDefaultCurrentDirectoryInExePath でそれを制御できるという知見を得た。 https://t.co/C8NJWar2RU」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「Windows Terminal用のPaperColor風カラーテーマはこちら。LightとDarkを用意しています。settings.jsonのschemesへコピペ。 / “PaperColor Theme for Windows Terminal based on https://t.co/MyJtbnIDtP” https://t.co/IBS9d9Fx8n」 / Twitter
- PaperColor Theme for Windows Terminal based on https://github.com/marhs/material-terminator
- 入谷 優さんはTwitterを使っています: 「PowerShell の switch 文が思った通りに動かない、と思ったら、Enum を使う場合には括弧で括るよう指示がありました。ちょっとした罠です。 https://t.co/zPwmiABGBd」 / Twitter
- Everything you ever wanted to know about the switch statement - PowerShell | Microsoft Docs
- Tsukasa #01 (3x vaccinated)さんはTwitterを使っています: 「tmux の良さを実感した回。Windows Terminal + SSH で接続したウィンドウが Windows Update の影響で閉じたにもかかわらず、セッションは継続していたので tmux a で戻れた。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「プリインの何もしないpython.exeの方が悪質。さらに0を返すので救いようがない。」 / Twitter
- ((🐑++))さんはTwitterを使っています: 「PowerShell「curl.exeだと思った?残念!Invoke-WebRequestのAliasでした〜!」」 / Twitter
- ((🐑++))さんはTwitterを使っています: 「てなわけでスクリプト書くときはRemove-Aliasするか拡張子をちゃんと書きましょう」 / Twitter
- ((🐑++))🍥さんはTwitterを使っています: 「Windows PowerShell「powershell.exeです」 PowerShell Core「pwshです」 内部略称「PSです」 コミュニティ「pshです」「poshです」」 / Twitter
- ((🐑++))🍥さんはTwitterを使っています: 「拡張子「.ps1です」」 / Twitter
- Windows Terminal を入手 - Microsoft Store ja-JP
- Searching, Downloading, and Installing Updates - Win32 apps | Microsoft Docs
- Windows のコマンド | Microsoft Docs
- Windows ターミナル ペイン | Microsoft Docs
- microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!
- PowerShell/PowerShell: PowerShell for every system!
- PowerShellで改行せずにファイルに追記する方法 - ncaq
- PowerShellでのOut-Fileコマンドの使い方|各オプションもご紹介 | テックマガジン from FEnetインフラ
- Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
- Microsoft、Windows Terminalプレビュー版。設定UIの標準化や読み取り専用モードを追加 - PC Watch
- プロファイル、複数のペイン、Unicode文字をサポートするWindows Terminal 1.0がリリース
- 山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)
- Windows Terminalの使い方
- パス名にスペースのある実行ファイルの指定方法
- ファイル共有とシンボリックリンクの利用について – Ask the Network & AD Support Team
- Windows で sudo なことをする。 | みむらの手記手帳
- PowerShellでいろいろな文字コードを扱う - じゅんじゅんのきまぐれ
- Windows Terminal のインストールとおすすめカスタマイズ方法 | Snow System
- Windows11でコマンドプロンプトを置き換えるWindowsターミナル|自作.com
- Windows Terminal、コマンドプロンプトを含むWindowsにおけるターミナル画面のデフォルトに。Windows 11で - Publickey
- Windows・macOS・Linuxを標的にするバックドアマルウェア「SysJoker」が報告される - GIGAZINE
- Takashi KawasakiさんはTwitterを使っています 「$Profile編集するぐらいなら、$env:PATHを設定するようにすればいいと思うんだよなぁ。Windowsの設定画面から環境変数設定するのは筋悪。」 / Twitter
- ごまふあざらしさんはTwitterを使っています 「https://t.co/iedoHCR86S pathを追加するは人類には高度すぎる手順だと思ってる。 普通にパスが通ってるところにおいて欲しい(・ω・`)。。。」 / Twitter
- WindowsのPowerShell環境でVim入れてPython開発環境をつくるメモ | 7me
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「WSL2からWindows側のプログラムを管理者権限で起動する方法って無いだろうか。sudo cmd.exe /C args的なことが出来たら嬉しいな、というイメージ」 / Twitter
- Kenta IDAさんはTwitterを使っています 「@uchan_nos runasでだめだっけ?と思ったけど、どうもUAC以降ダメなので、powershellのStart-Processに -Verbでrunasを指定するのがはやいっぽいですね。 WSLからでも powershell.exe Start-Process notepad.exe -Verb runas でメモ帳が管理者権限で開きます。」 / Twitter
- 演算子について - PowerShell | Microsoft Docs
- Windows への PowerShell のインストール - PowerShell | Microsoft Docs
- .NET SDK の概要 | Microsoft Docs
- EricTetz/keyrate: Small utility for setting the keyrate to higher speeds than is normally allowed by the Windows keyboard control panel.
- Auth0全ユーザー数取得コマンドをPowerShellのInvokeコマンドで行う | フューチャー技術ブログ
winget
ASCII.jp
- ASCII.jp:Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す (1/2)
- ASCII.jp:Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった? (1/2)
- ASCII.jp:Windowsで開発中のパッケージマネージャー「winget」がv0.3に (1/2)
- ASCII.jp:一般向けの配布も開始されているWindows用のパッケージ管理ツール「winget」がv1.1に (1/2)
- ASCII.jp:Windowsのシステム引っ越し作業にWingetを使って、アプリインストールを楽にするのを試みる (1/2)
窓の杜
- “Microsoft Store”のアプリもコマンドラインで導入 ~Microsoft、「winget」を更新 - 窓の杜
- 「winget」の最新プレビュー版v0.3が公開 ~importコマンドとグループポリシーに対応 - 窓の杜
- matsuu序二段さんはTwitterを使っています: 「winget.exe、ようやく使い始めたんだけど、野良でインストールしたmsiのバージョンアップが候補に出てきてビックリしている。みんな winget.exe upgrade を試してみるんだ。アップグレード実行は winget.exe upgrade --all とすればok / “コマンド一発でアプリをセットアッ…” https://t.co/jVPZk8sura」 / Twitter
- コマンド一発でアプリをセットアップ ~CUIのアプリ管理ツール「winget」がv1.0に - 窓の杜
- matsuu序二段さんはTwitterを使っています: 「upgrade --allだと個々のパッケージインストールで同意画面が出てきてしまうが、 --accept-package-agreements と --accept-source-agreements もつければ一撃アップグレードもできるかも(未確認」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「試したみたけど、一撃アップグレードできないこともある模様。特権を必要とした場合かな。 ちなみに野良でインストールしたmsiなどがアップグレード 対象に含まれることがあるのは、開発者がこれに登録してるからと思われますたぶん。 https://t.co/vstg1oa6ya」 / Twitter
- Windows パッケージ マネージャーにパッケージを送信する | Microsoft Docs
- 「winget」がv1.1に ~Windows 10/11で利用できるCUIのアプリ管理ツール - 窓の杜
- ポータブルアプリに対応した「Windows Package Manager(winget) 1.3」が公開 - 窓の杜
- microsoft/winget-cli: Windows Package Manager CLI (aka winget)
- まちカドおるみんさんはTwitterを使っています 「パッケージの依存解決したり追跡・アンインストールするための機能がないしこいつは何も管理してないじゃんかという批判。ごもっとも。 >> Not a package manager · Issue #223 · microsoft/winget-cli https://t.co/Z4fyQ0jG1n」 / Twitter
- Not a package manager · Issue #223 · microsoft/winget-cli
- Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール「winget」とは:Windows 10 The Latest(1/2 ページ) - @IT
- アプリ インストーラー を入手 - Microsoft Store ja-JP
- リポジトリにマニフェストを送信する | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MSさんによってFastCopyの winget用manifestが作られていて、wingetでインストールできるようになっていた…へぇ。 https://t.co/tXLsSZyl9r」 / Twitter
- winget-pkgs/manifests/f/FastCopy/FastCopy/3.92 at master · microsoft/winget-pkgs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちゃんと /SILENT という、(私が用意した)インストーラ・オプションが指定してある)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IP Messenger も winget できるよう、MS に pull request を送ってみた…何がしか進んでいるっぽい。 https://t.co/8II9HlIFCV」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無事、マージされた様子。 インストールには winget install ipmsg で OK。 https://t.co/JvaoPvROYs https://t.co/nleokvHdC2」 / Twitter
- Create FastCopy.IPMsg.yaml by shirouzu · Pull Request #19575 · microsoft/winget-pkgs
マルチブート
- Tech TIPS:Windowsのbcdeditでブートメニューの項目を追加する - @IT
- [Windows10]マルチブート(デュアルブート)起動時のオペレーティングシステム(OS)名称を変更する:初心者のためのHTMLとWindows(ウィンドウズ)、エクセル講座。HTML・CSSを使ったホームページ作成やWindows(ウィンドウズ)、エクセル(EXCEL)・メール(outlook)・フォトショップ(Photoshop)入門
- (UEFI環境 編)Microsoft Windows10 と Ubuntu 14.04 LTS とのデュアルブート環境の構築 | えび天サーバ ( abten server )
- FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
- デュアル ブート PC でブート メニューを修復する - Windows 10 hardware dev
- grub にWindows10起動メニューを追加する(Boot-Repairを利用する) - Qiita
Process Monitor
- Process Monitor
- Process Monitor – Japan WDK Support Blog
- Process Monitor ログの採取手順 | Japan Developer Support Core Team Blog
- 「ProcMon」がダークモードに対応 ~Microsoft製のプロセスモニタリングツール - 窓の杜
Process Explorer
- Process Explorer - Windows Sysinternals | Microsoft Docs
- Process Explorer が Paging List 統計情報の表示に対応していた件 - NyaRuRuが地球にいたころ
- Process Explorer で探る Windows Vista メモリ管理戦略 - NyaRuRuが地球にいたころ
- 3 分ぐらいでわかる,Process Explorer による Windows Vista メモリ使用状況の調べ方 - NyaRuRuが地球にいたころ
- メモリ周りを見るときの Process Explorer の準備 - NyaRuRuが地球にいたころ
- 「Process Explorer」v16.4はプロセスのフィルタリングが可能に ~セキュリティ機能「CET」にも対応 - 窓の杜
- Handle - Windows Sysinternals | Microsoft Docs
- 「Process Explorer」が約9年ぶりのメジャーバージョンアップ、ダークモードに対応 - 窓の杜
パフォーマンス診断
- パフォーマンス診断コンソール - NyaRuRuが地球にいたころ
- pfmon.exe - NyaRuRuが地球にいたころ
- Perforator とは - NyaRuRuが地球にいたころ
- Xperf : Event Tracing for Windows frontend - NyaRuRuが地球にいたころ
- Download DTrace On Windows from Official Microsoft Download Center
Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「いや、フィードバックhubがまともに機能してるのを見たことないんだが。あれだとまともなものが埋もれる。 バグ報告系でちゃんと直るのはVisual Studioのコンパイラ関連のバグ報告受付サイトくらい。オープンソースなものを除く https://t.co/qrLhXLAeiw」 / Twitter
- 知ってるか? Windowsの問題はマイクロソフトに直接報告する方法がある
- Makoto Kato ︎︎さんはTwitterを使っています 「昔、IEのDoSみたいなコードが2chに貼られてて、それをOEMサポート契約でレポートしてきたのがあったりした。SNSでビューが多ければなんだかんだで社内に届くとは思うけどね、直るかどうかは別にして」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「でもアップルとかグーグルだとより直らない気がするんだよな、オープンソースな部分でパッチを受け入れてくれるもの以外は。マイクロソフトは金を積んだら直すというパス (プレミアサポート) があるし。必ずしもhotfix作る訳ではないが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@objectxplosive @methane Windows の方は https://t.co/KmYqquedPZ によるとメールアドレスの最初の5文字(全ての文字ではない)だそうで、なんでこれが万人を満足させると考えたのか問い詰めたいです」 / Twitter
- わたなべごうさんはTwitterを使っています 「MSアカウントだとアカウント名が日本語にされてしまう問題はだいぶ前に解消済(Windows10は最初から大丈夫)なんだけど根にもってる人多いんやね。現在は「メールアドレスの名前部の最初5文字まで」なので切られるのが嫌な人はやっぱりローカルアカウントからつくるしかないです」 / Twitter
- わたなべごうさんはTwitterを使っています 「ローカルアカウントのほうは「名前:」欄に入力したものがそのまま使われるので、リアルタイムで事故ってる例はそこで日本語いれちゃった人のが多いと思うのね。ネットワークつながってない環境での初期セットアップ時に事故るはず」 / Twitter
- わたなべごうさんはTwitterを使っています 「アカウントの件AzureADで試してみたら、 ・ADで作成して同期:ADそのまま(英字) ・サイトで新規作成:表示名と同じ(日本語) ・長い名前でもカットされたりはしない わーい。挙動の謎が増えたぞw 推定ですがディレクトリに最初にアカウント名として登録されたものが使われてるのかな?」 / Twitter
- YurikaさんはTwitterを使っています 「📝 Office ファイルの信頼済みドキュメントの挙動が変更に マクロ等を含むコンテンツは管理者の設定があってもユーザーで信頼済みとして実行可能でしたが実行不可に。 Insider build 2110に導入、CCは2022年2月から導入予定(古いバージョン導入予定はなし)のところなし) https://t.co/OhOQT26UuI」 / Twitter
- New security hardening policies for Trusted Documents - Microsoft Tech Community
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Explorer Patcher を使うと、Win11 でもタスクバーを縦置きにできるらしい。 (それ以外にも Win10ライクなタスクバーに戻す機能) https://t.co/D503s1hvIg」 / Twitter
- valinet/ExplorerPatcher: This project aims to enhance the working environment on Windows
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(Explorerのコンテキストメニューを Win10ライクに戻す機能なども)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大き目Windows Updateのたびに、このソフトも改修を迫られるのだろうなぁ…大変そうだし、どこかの時点で力尽きてもおかしくない気が。 (MSさんがこれらの動作変更を正式オプション化してくれると良いのだけれども、たぶん無さそう)」 / Twitter
- Skype | 友達や家族への無料通話
- Microsoftアカウントを「パスワードレス」化! 困ることはない?【イニシャルB】 - INTERNET Watch
- Windowsとスマートフォンを接続するMicrosoft製アプリ「Your Phone」が進化して「Phone Link」に - GIGAZINE
- KB4589212: Intel microcode updates for Windows 10, version 2004 and 20H2, and Windows Server, version 2004 and 20H2
- Windows Insiders gain new DNS over HTTPS controls - Microsoft Tech Community
- エクスプローラーで色付きソースコードを表示する方法 (1) | TECH+
- ブログ: Microsoftを忘れてはいけない
- UWP アプリから nul ポートが指定されているプリンターに印刷できない | Japan WDK Support Blog
- Windows PE で IOCTL サンプルを動作させる方法について | Japan WDK Support Blog
- Azure Spot Virtual Machines – スポット価格と特徴 | Microsoft Azure
- Azure Spot Virtual Machines を使用する - Azure Virtual Machines | Microsoft Docs
- Microsoft、「Office」ブランドを「Microsoft 365」に(買い切り版以外で) - ITmedia NEWS
- Microsoft Designer - Stunning designs in a flash
- Microsoft Loop: 柔軟なキャンバス アプリ | Microsoft 365
LibreOffice
- Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
- Details for crash report: dad46271-da1e-4651-9069-8fa026a75616
- Reports for signature: ScDocument::HasTable(short)
- Crash reporting for the LibreOffice project
- LibreOfficeのバグ報告方法 - The Document Foundation Wiki
- How to get a backtrace with WinDbg - The Document Foundation Wiki
- How to debug - The Document Foundation Wiki
- Users - Calc でコピー・アンド・ペーストを繰り返すとハングアップする問題
- Users - Windows 版 LibreOffice の更新インストール時に権限の問題で処理が完了しない事象
- LibreOffice 日本語チームさんはTwitterを使っています: 「最近、不具合の話が目に付くので皆様にお願いです。 LibreOfficeの不具合はBugzilla(バグ管理システム)に登録されて問題として認識されます。逆に言うと登録されない限りは誰も気がつかないので、もし不具合を見つけたらBugzillaで検索もしくはバグ報告をお願いします https://t.co/dqFnj2kBsZ」 / Twitter
- LibreOffice 日本語チームさんはTwitterを使っています: 「Twitterを見ていますが中の人も拾うには限界があって、先日のMacの不具合のような大きな問題でなければ動くことはできないので、Twitterでつぶやいた後は検索と報告もよろしくお願いします🙇♂️」 / Twitter
- LibreOffice 日本語チームさんはTwitterを使っています: 「メーリングリストなので基本的にメールでやりとりですが、Webから掲示板のように書き込めるNabbleというシステムもあります。こちらもアカウントを作る必要はありますがメーラーを使わなくていいので楽に使えると思います https://t.co/w3RzbkOUxw」 / Twitter
- Document Foundation Mail Archive - Users | Mailing List Archive
- Bugzilla Main Page
- メーリングリスト | LibreOffice - オフィススイートのルネサンス
- Mail Index - The Document Foundation Mailing List Archives
- Mail Index - The Document Foundation Mailing List Archives
- LibreOffice 7.4 Communityがリリース、画像フォーマットとしてWebPをサポート | gihyo.jp
- 「LibreOffice 7.4 Community」が公開、スプレッドシートで16,384列まで扱えるように - 窓の杜
- WebP画像に対応した「LibreOffice 7.4 Community」公開 | OSDN Magazine
メディア関連
その他
- gnuplot - Google 検索
- gnuplot FAQ
- matpyplot - Google 検索
- matplotlib - Google 検索
- ASCII.jp:テキストの入った画像を「ImageMagick」を用いてコマンドライン上で作る (1/2)
- オンラインイベントのバーチャルスタジオ作りに使えるTeamsのNDI対応 (OBSレイヤーの組み方サンプルあり) | IIJ Engineers Blog
- Yutori/ゆとりんさんはTwitterを使っています 「OBSのやべープラグイン出てた! Windowsのアプリケーションの音声をデスクトップキャプチャを使わずにそのままOBSに入力出来るプラグイン まさにこれを求めてた https://t.co/tYAfu16pzO」 / Twitter
- win-capture-audio | OBS Forums
- エヌユルさんはTwitterを使っています 「これ何度か読んでも理解できなかったけどやっと理解できた、SDRモード時のモニタの明るさがそもそもおかしいけどWindows HDRはSDRに忠実にするから暗く見えるのでモニタの明るさを変えろという話か / “Windows HDR (とキャプチャ問題について) の解説” https://t.co/bSsW5onrf1」 / Twitter
- VOICEVOX | 無料で使える中品質なテキスト読み上げソフトウェア
- Waves Audio - 音楽制作プラグイン - Clarity Vx
- 画像処理ツール「Image-Processing-Node-Editor」インストール方法
- convertコマンドでエラー - Qiita
- ImageMagickでepsファイルを作成 - Qiita
- ImageMagickでPNGをPDFに変換する
- slideshareをPDFダウンロードするRubyスクリプト&Webアプリ - PIYO - Tech & Life -
- download slideshare slide as PDF
- はじめてのRuby!Nokogiriでスクレイピングの基礎を理解しよう! | 侍エンジニアブログ
- RubyのPDFライブラリ "Prawn" のご紹介 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- ruby on rails - rubyのopen-uriで403エラー - スタック・オーバーフロー
- OBS Studio 28.0が正式版に 〜 Apple Siliconにネイティブ対応・RTX機能の追加やHDRへの対応などを含む大型アップデート - Nishiki-Hub
- 満足度の高いPDF編集ツール 本家のAcrobatを抑えて1位になった無料ツールは【2022年9月版】 - ITmedia NEWS
- Whisperとゲームバーで会議議事録作成を自動化する - TadaoYamaokaの開発日記
- 年末uさんはTwitterを使っています: 「音声認識ツールWhisperで作成した字幕テキストの無音部分を除去していい感じのタイムスタンプにしてくれるライブラリ。試してみたらとても良かった。YouTubeの字幕作成にも良さそう / “GitHub - jianfch/stable-ts: Timestamping Spoken Words” https://t.co/cKyC7PqBJ3」 / Twitter
- jianfch/stable-ts: Timestamping Spoken Words
- 【藤本健のDigital Audio Laboratory】AIでボーカル・ドラムを取り出す、無料音声分離「Demucs」を試す-AV Watch
- じえさんはTwitterを使っています: 「動画から人を消す?スクリプトを公開しました。 GPUが必要で、Ubuntuで動作確認してあります。 https://t.co/6DRphutbgt」 / Twitter
- xiong-jie-y/remimi: 3D Reconstruction tools and examples.
技術評論社
- 第662回 Docker+Selenium ServerでWebブラウザ自動操作環境を作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第664回 スマートフォンをWebカメラとして使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
GIGAZINE
Audio
- 無料の音声編集ソフト「Audacity」のバージョン3.0.0がリリース - GIGAZINE
- 無料の音声編集ソフト「Audacity」が「法執行に必要なデータを収集する」と発表、開発者は「データ収集なしのAudacityのフォーク」に着手 - GIGAZINE
- 無料で文章から自動で読み上げ音声を合成してくれるソフト「VOICEVOX」を使ってみた - GIGAZINE
- 無料でPC上でシンセサイザーを構築できるオープンソースのソフトウェアモジュラー「BESPOKE」が登場 - GIGAZINE
- 無料でさまざまな音声合成エンジンや音声ライブラリを扱える汎用合成音声エディタ「ユニコエ」が登場 - GIGAZINE
- ElgatoのUSBコンデンサーマイク「Wave:3」の機能を引き出すミキサーソフト「Wave Link」使用レビュー - GIGAZINE
- 無料でブラウザから簡単に声を10種類に変換できるボイスチェンジャー「Koe Recast」を使ってみた - GIGAZINE
- 歌や楽器の録音をMIDIファイルへ正確に変換してくれるオープンソースのMIDIコンバーター「Basic Pitch」 - GIGAZINE
OBS
- ライブ配信ソフト「OBS Studio」でNVIDIAのノイズ除去フィルタが利用可能に、実際に使ってみるとこんな感じ - GIGAZINE
- 無料でオープンソースのライブ配信ソフト「OBS」で画面を録画&ビデオ会議で画面を簡単にキャプチャーする方法 - GIGAZINE
- ライブ配信ソフト「Streamlabs OBS」からOBSの名前が削除される、一体なぜ? - GIGAZINE
- 配信ソフト「OBS」上でアプリごとに音声のオン・オフや音量調整が可能になるプラグイン「win-capture-audio」を導入してみた - GIGAZINE
- OBS上でウェブカメラの背景を自動で消してくれる無料プラグイン「obs-backgroundremoval」を使ってみた - GIGAZINE
- 配信ソフト「OBS」のバージョン28.0登場をNVIDIAが自社ツールを紹介するとともに祝福 - GIGAZINE
プレーヤ
- 画像・ムービー・PDFを1つの画面で連続表示できるオンライン配信向けメディアプレイヤー「Sanscadre」を使ってみた - GIGAZINE
- 老舗メディアプレイヤー「Winamp」がプロジェクト一新でベータテスター募集中 - GIGAZINE
- Winampのバージョン5.9リリース候補版が4年の開発期間を経て公式にリリースされる - GIGAZINE
動画編集
- 基本無料&ブラウザ上でサクッと動画編集や録画が可能なMicrosoftの「Clipchamp」を使ってみた - GIGAZINE
- 完全無料の動画編集ソフト「VideoProc Vlogger」は多種多様な便利機能の使いやすさが圧倒的で初心者にもオススメ - GIGAZINE
- 動画に映り込んだ不要物に画像を重ねて隠したり音声だけを削除したりする方法を無料の動画編集ツール「VideoProc Vlogger」で試してみた - GIGAZINE
- AviUtlのフィルタ処理をGPU使用で高速化するプラグインが登場 - GIGAZINE
YouTube
- YouTubeやニコニコ動画などのムービーを最高画質・高音質でダウンロード可能な「yt-dlp」の使い方まとめ、年齢制限ムービーも一発ダウンロード可能 - GIGAZINE
- YouTubeやニコニコ動画からムービーのダウンロード&動画編集も簡単にできる超絶多機能な「VideoProc Converter」のお手軽「録画」機能でPC/iPhone/iPadの画面を録画してみた - GIGAZINE
- YouTubeの動画ダウンロードからPCやスマホの画面録画まで可能な多機能ツール「VideoProc Converter」で録画しながら画面にリアルタイムで線や文字を書き入れてみた - GIGAZINE
- 最強YouTubeダウンローダー「yt-dlp」でムービーの指定時間を切り抜きダウンロードする手順 - GIGAZINE
- Spotifyで配信中の音楽をYouTube Musicからダウンロード可能な「spotDL」使い方まとめ - GIGAZINE
Zoom
- 1兆6000億円超でオンライン会議ツールのZoomが買収した「Five9」とは? - GIGAZINE
- Zoomで「マイクが自動的にオンになって勝手に録音が始まる」という事例が公式フォーラムに多数投稿される - GIGAZINE
- Zoomに「顔をアバターに置き換える機能」が追加されたので使ってみた - GIGAZINE
- 無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう - GIGAZINE
- 画像の解像度を「2倍」にするPhotoshopの新機能「スーパー解像度」の使い方&仕組みはこんな感じ - GIGAZINE
- サブスク途中解約でAdobeから2万円以上請求されたユーザーが支払いを回避した方法とは? - GIGAZINE
- Amazon | CLIP STUDIO PAINT PRO 公式ガイドブックモデル改訂版 セットモデル | イラスト・ペイント | ソフトウェア
- イラスト マンガ制作ソフト・アプリ CLIP STUDIO PAINT(クリップスタジオペイント)
- 無料&簡単に画像を使ったオシャレなHTMLメールを「テンプレートを選ぶだけ」で作成できる「Mail Studio」を使ってみた - GIGAZINE
- イラストを線画に変換する「Anime2Sketch」が登場 - GIGAZINE
- 軽量動作&簡単操作でPC画面をキャプチャーできる「wcap」レビュー - GIGAZINE
- 「画像の一括ダウンロード」「ページ情報の抽出」などの操作をプログラミング不要で自動化できる「Browserflow」レビュー - GIGAZINE
- 無料でキャラクターボイスを自動で合成してくれるAIトークソフト「COEIROINK」は誰でも超簡単に創作物の「声」を作り出せる - GIGAZINE
- 無料&PCとウェブカメラだけで簡単にVTuberになれるツール「RiBLA Broadcast (β)」レビュー、指の動きもトラッキング可能で配信に即利用可能 - GIGAZINE
- iOS版TwitterにGIFアニメ撮影&投稿機能が登場、実際の使い方はこんな感じ - GIGAZINE
- AIの力で自分の声を好きな声にリアルタイム変換できるボイスチェンジャー「MMVC」が登場 - GIGAZINE
- 無料で写真から3Dプリント出力可能なモデルを生成できるオープンソースの3D再構築ソフト「Meshroom」 - GIGAZINE
- Microsoftが子ども向け3DCGアニメーション制作ソフトウェア「3Dムービーメーカー」をオープンソース化 - GIGAZINE
- ついにKindleがEPUB形式の電子書籍に対応 - GIGAZINE
- 面倒な文字起こし作業を一瞬で実行可能なLINE製AI音声認識アプリ「CLOVA Note」の使い方まとめ - GIGAZINE
- 一発でDVDをいつでもどこでもスマホなどから鑑賞可能なファイルに変換できる「VideoProc Converter」レビュー、DVDリッピング以外にもとにかく便利な機能満載 - GIGAZINE
- 無料で簡単にAIで低画質な画像を高画質に4倍アップコンバートできる「Upscayl」を使ってみた - GIGAZINE
- Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた - GIGAZINE
- 「Google Chrome 104」安定版リリース、画面共有を便利にするRegion Capture機能を実装 - GIGAZINE
- Windowsエクスプローラー上で3Dモデルのプレビューがサムネイル表示できる「space-thumbnails」 - GIGAZINE
- 無料で自動文字起こししてくれるMicrosoft製アプリ「Group Transcribe」を使ってみた - GIGAZINE
- Windows版のApple Music&Apple TVアプリが2023年に登場、WindowsのフォトアプリもiCloudと統合 - GIGAZINE
- 画像の処理内容を数珠つなぎに設定して複雑な処理を一発実行できる無料ツール「chaiNNer」を使ってみたよレビュー - GIGAZINE
- 閲覧中のウェブページ全体を単一のhtmlファイルとしてダウンロード&注釈付けも可能な「SingleFile」レビュー - GIGAZINE
- ドラッグ&ドロップで画像ファイルのExif情報をサクッと削除できる無料アプリ「ExifCleaner」レビュー - GIGAZINE
- 無料で「.ai」ファイルをPNGなどの画像ファイルに変換しIllustratorなしで開くことができる「ShapeConverter」の使い方 - GIGAZINE
PC Watch
Zoom
- Zoom、Internet Explorer 11のサポートを9月末で終了 - PC Watch
- Zoomで会議中のシームレスなデバイス間移動をサポート - PC Watch
- Zoom、アバターでWeb会議に参加できる機能 - PC Watch
- Zoom、ライブ文字起こしが日本語やウクライナ語で順次利用できるように - PC Watch
- Zoom、「翻訳された字幕」機能がアドオンに。有料ユーザーなら月5ドルで利用可能 - PC Watch
OBS
- 【特集】デフォルト設定で使ってる人は注意。配信ソフト「OBS」で見落としがちな高画質化/フレーム落ち対策のポイント - PC Watch
- OBS StudioにNVIDIA Broadcast相当のノイズ抑制や“元に戻す”機能が追加 - PC Watch
- 【Hothotレビュー】ゲーム生配信後に編集動画をアップしている人待望のOBSプラグイン「Source Record」 ~ワイプやゲーム画面を配信時にフルサイズで同時記録 - PC Watch
- 【特集】OBSの神プラグインにまた新機能。配信やWeb会議の画面を拡張現実っぽく見せることが可能に - PC Watch
- HDR/10bitカラー対応となった次期OBSベータ版公開。GPU支援で背景除去なども可能に - PC Watch
- HDR配信/ビデオキャプチャやApple Siliconに対応した「OBS Studio 28.0」 - PC Watch
- OBSベータ版、AMD/Intel製GPUでのAV1エンコードに対応 - PC Watch
- OBS Studio 29.0でAMD/Intel GPUのAV1ハードウェアエンコに正式対応 - PC Watch
Adobe
- Premiere Pro、自動文字起こし機能が正式公開。日本語含む13言語対応でテロップ配置支援も - PC Watch
- ブラウザ版PhotoshopやIllustratorが登場。Web活用でコラボレーションを強力に支援 - PC Watch
- Adobe、無料の「Creative Cloud Express」投入。デザインの心得がなくても高品質コンテンツを簡単に作成可能に - PC Watch
- AIが古い写真を綺麗に復元。ベータ版Photoshopで新たなニューラルフィルターが利用可能に - PC Watch
- プロジェクトファイルが分割されなくなった「Audacity 3.0.0」 - PC Watch
- Microsoft、AIがプレゼンのうまさを評価/指導してくれる機能 - PC Watch
- Windows 10に既存ゲームを自動でHDR化する機能 - PC Watch
- Windows版「mmhmm」のオープンベータ3公開。一括管理できる法人向けプランも登場 - PC Watch
- 無料のAI音声合成ソフト「VOICEVOX」公開。商用利用も可 - PC Watch
- 【ニュース・フラッシュ】ふりがな自動設定機能や地図作成ツールなども備えるDTPソフト - PC Watch
- 新Winampがベータテスター募集 - PC Watch
- TwitterのiOSアプリでアニメGIFが撮影可能に - PC Watch
- 実際は寝間着姿でもカメラにはスーツ姿の自分。AIで顔や姿をリアルタイム変換するツール - PC Watch
- 【特集】音声合成ソフトの進化がすごい!無料で使えるVOICEVOXや有料のVOICEPEAKを試してみた - PC Watch
- 男性が喋っても女性の声になるリアルタイムAIボイスチェンジャー「MMVC」でずんだもんなどがサポート - PC Watch
- 【山田祥平のRe:config.sys】メディアの仮想化 - PC Watch
窓の杜
- 厳密なCDリッピングが行える「AccurateRip」に対応した「fre:ac」v1.1.5が公開 - 窓の杜
- 時間無制限・透かしなしの無償デスクトップ録画ツール「TapeX」 ~Windows/Mac対応【レビュー】 - 窓の杜
- Windows 11では「Snipping Tool」のデザインも刷新 ~モダンな使い勝手に - 窓の杜
- 新スクショツール「Screen Sketch」に遅延撮影機能が追加、「Snipping Tool」は延命? - やじうまの杜 - 窓の杜
- 「Snipping Tool」もストアでアップデートできるように ~Windows 10 Build 21354 - 窓の杜
- OS標準アプリ「ペイント」がストア経由で更新可能に ~Windows 10でプレビュー - 窓の杜
- 個人利用無料、軽量・簡素・高速なリモートデスクトップ接続アプリ「AnyDesk 7.0.0」 - 窓の杜
- Windows 11の丸角のウィンドウの端までキッチリ撮れるスクショ撮影ツール「PriScVista」v3.0が公開 - 窓の杜
- Macのファイルプレビュー「Quick Look」をWindowsで再現した「WinQuickLook」、ARM64にネイティブ対応 - 窓の杜
- デスクトップのスクリーンショット撮影は「Snipping Tool」アプリにお任せ! - Windows新標準アプリ徹底解説 - 窓の杜
- 「Zoom」のWeb版で日本語のライブ字幕が利用可能に ~9月にかけて順次提供を発表 - 窓の杜
- 雪のなかのスフィンクスも創造、PhotoshopのニューラルフィルターをAdobeが紹介 - 窓の杜
- 「Zoom」で、英語とほかの11言語間の「翻訳キャプション」機能が利用可能に - 窓の杜
- AIで画像をアップスケールする無償ツール「Upscayl」に16倍拡大モードとバッチ処理が追加 - 窓の杜
- オープンソースの老舗メールソフト「Sylpheed」、開発を「Subversion」から「GitHub」へ - 窓の杜
- ビデオを3D変換してVRヘッドセットで楽しめる「Universal Media Server 13.0.0」 - 窓の杜
OSDN
- オープンソースの動画エディタ「Kdenlive 21.12」が公開 | OSDN Magazine
- リソースシステムを一新した「Krita 5.0」が公開 | OSDN Magazine
- 「darktable 3.8.0」が公開 | OSDN Magazine
- オープンソースのストリーミング配信ソフト「OBS Studio 27.2」が公開 | OSDN Magazine
- オープンソースの電子書籍管理ソフト「Calibre 5.40」が公開 | OSDN Magazine
- ベクター画像編集ソフト「Inkscape 1.2」が公開 | OSDN Magazine
- 「Blender 3.2」が公開 | OSDN Magazine
- AdobeのCAI、デジタルコンテンツの真正性を表示する開発ツールを公開 | OSDN Magazine
- オープンソースのオーディオプレイヤー「Audacious 4.2」 | OSDN Magazine
- 全文検索が加わった「Calibre 6」が登場 | OSDN Magazine
- UIを一新、新カラーサイエンスを導入した「darktable 4」が公開 | OSDN Magazine
- オープンソースの写真管理ソフト「digiKam 7.7」が公開 | OSDN Magazine
CDDB
- 音楽CDのメタ情報を提供するCDDBサーバー“freeDB.org”が、3月31日で終了 - やじうまの杜 - 窓の杜
- 「freeDBTagger」楽曲長の組み合わせでアルバムを特定して楽曲情報を自動入力 - 窓の杜
- MusicBrainz - The Open Music Encyclopedia
- 「foobar2000」ユーザーインターフェイスや機能を自由にカスタマイズできる音楽プレイヤー - 窓の杜
- foobar2000: Components Repository - MusicBrainz Tagger
- CDDBサーバーのfreeDB.orgが遂に停止してしまったので代わりにfreedb 日本語を使ってみた | DevelopersIO
- freedb 日本語
Wget
- wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
- Wget - GNU Project - Free Software Foundation
Wireshark
- 無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE
- Wireshark · Go Deep.
- status:open | code.wireshark Code Review
- wireshark/wireshark: Read-only mirror of Wireshark's Git repository. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at https://code.wireshark.org/review/ .
- CloudShark - The easiest way to analyze and share network capture files. | CloudShark
- CaptureSetup/USB - The Wireshark Wiki
- GolangでUDPサーバー&クライアントを作成してWiresharkで検証する - Yabu.log
- Golangで書かれたWebサーバーでHTTP/1.1のkeep-aliveを検証する - Yabu.log
- Golangで作成したWEBサーバーのTCP通信(HTTP GET)をWiresharkで検証 - Yabu.log
- Wiresharkでlocalhost(127.0.0.1)宛のパケット送受信をキャプチャする方法 - Yabu.log
- USBPcap
- WiresharkのUSBPcapのログの見方 - Qiita
- WiresharkでUSBメモリのパケットキャプチャしてみた! | LoT ラブオンテック
- msaitohさんはTwitterを使っています 「てゆーか、新しいのゲットしたら MII ID1, ID2 を繋げてbitreverse したものを IEEE OUI.txt から検索するよね。最近は Wireshark OUI Lookup Tool もあるけど https://t.co/ZIMUOyt0YK」 / Twitter
- Wireshark · OUI Lookup Tool
- Wireshark Tutorial: Wireshark Workshop Videos Now Available
- オープンソースのパケットアナライザ「Wireshark 3.6」が公開 | OSDN Magazine
- 脆弱性に対処した「Wireshark 3.6.8」 ~オープンソースのパケット取得・解析ツール - 窓の杜
- 「Wireshark 4.0」が正式公開 ~デザインやフィルター構文を更新、32bit版はなし - 窓の杜
- フリーの高機能パケット解析ツール「Wireshark 4.0.2」が公開 ~2件の脆弱性を修正 - 窓の杜
SuperPuTTY
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーん、やっぱりどーにも合わない。 マルチタブ機能のあるPuTTYを探そう…良いのあるかな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とりあえず、SuperPuTTY という PuTTY wrapper を試してみる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SuperPuTTY はwrapperなのでアレなところあるけど、基本 PuTTY なので扱いやすい。」 / Twitter
PGP
- gpg (GNU Privacy Guard)の使い方 - Qiita
- GnuPG チートシート(簡易版) - Qiita
- SKS OpenPGP Public Key Server
- ytakanoさんはTwitterを使っています 「GPGで署名したコードがGitHub上でunverifiedになって悩んでいたら、副鍵を相互署名していないからだった。GPG難しい。」 / Twitter
- Web Compatibility | webcompat.com
- SlideShareで公開されているスライドをpdfでダウンロードするコマンド - A painter and a black cat
- Ubuntu18.04にImageMagickをインストールするには | Ninton
- 新しい RealPlayer(RealTimes)無料 Windows
- Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.
- XMedia Recode - Download
- XRECODE3
- 17 Free Audio Converter Software Pieces [2019] Check now >
- TuneBrowser – TuneBrowser は Windows 用の音楽管理・再生ソフトです.
- Amazon.co.jp: Kindle for PC (Windows) [ダウンロード]: ソフトウェア
- calibre - E-book management
- Releases · apprenticeharper/DeDRM_tools
- ダウンロード | らくちんプリント2.0
- Rufus - 起動可能なUSBドライブを簡単に作成できます
- 【SuperCollider】ブラウザ(Chrome)でSuperColliderを動かす - Qiita
- 音声合成業界に激震! もはや人間の喋り声、入力文字読み上げソフトVOICEPEAKはビジネス用途でも自由に利用可能
- ✝ iigau ✝さんはTwitterを使っています: 「PDFを一般人にとって印刷できる単位に分割して、しかも糊付け位置までちゃんと示してくれる神ツール LinuxとMacバイナリしかないけど、Linux版のバイナリをWSLにぶっこめばもう動いちゃうわけよ!あああああああ最高か https://t.co/eHZDE2BY1W」 / Twitter
- oxplot/pdftilecut: pdftilecut lets you sub-divide a PDF page(s) into smaller pages so you can print them on small form printers.
ハードウェア関連
- FirmwareTablesView
- Core Temp
- Coreinfo
- CPU-Z | Softwares | CPUID
- PCI-Z detect unknown PCI devices
- GPU-Z Video card GPU Information Utility
- HWiNFO - Hardware Information, Analysis and Monitoring Tools
- iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
- CrystalDiskInfo – Crystal Dew World
- MemTest86 - Offical Site of the x86 Memory Testing Tool
- 無料&インストール不要で32GB以上でもFAT32フォーマット可能な「FAT32 Format」 - GIGAZINE
- ASCII.jp:Windowsマシンの電源関係を制御する「Powercfg」コマンドを極める (1/2)|Windows Info
- ASCII.jp:Windows 10で電力プラン情報を取得する
- USB Device Tree Viewer
- バッテリー残量や電圧が規定値以下のときメールを送ったり基準放電速度との比較ができたりするバッテリー監視ソフト「PassMark BatteryMon」レビュー - GIGAZINE
- 端末が機械学習アプリに適しているか測定する「Geekbench ML」 - GIGAZINE
- CPU・メモリ・GPU使用率や天気予報・ビットコインの価格などあらゆる情報を表示できるシステムモニター「thilmera」レビュー - GIGAZINE
- システムモニター「thilmera 7」が完全無料化 ~シェアウェア版の機能を解放 - 窓の杜
- 無料のシステムモニター「thilmera 7」v0b171が連続更新 ~クラッシュなどを修正 - 窓の杜
- https://www.highrez.co.uk/downloads/xmousebuttoncontrol.htm
- ネコの走るスピードでCPU負荷を知らせるWindows版「RunCat」がメジャーバージョンアップ - 窓の杜
- 【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
- Windows 10にしたら夜中のスリープ復帰が増えた!【Windows 10移行相談室】 - 窓の杜
- 「TreeSize Free」がついに64bit化 ~ファイルのディスク占有率を高速に可視化する無償アプリ - 窓の杜
- ノートPCのバッテリーの使用履歴を抽出・表示「BatteryHistoryView」【レビュー】 - 窓の杜
- Windows 11のちょっと残念なバッテリー表示を少しリッチにする「Fluent Flyouts Battery」 - Windows 11で絶対使いたいアプリ - 窓の杜
GIGAZINE
セキュリティ
- Microsoftが「ExcelやWordなどのOfficeファイルのマクロを無効にする」仕様をユーザーに知らせないまま撤回していた - GIGAZINE
- Windows 10の顔認証機能は赤外線写真の低解像度カラーコピーでだませることが判明 - GIGAZINE
- 「Windows Hello」の顔認証は赤外線画像で突破できると判明 - GIGAZINE
- Windowsのパスワードを「chntpw」で強制リセットしてログインできなくなったPCを使えるようにする方法 - GIGAZINE
- 完璧にパスワードを設定するための4つの方法 - GIGAZINE
- Microsoftアカウントのサインインでパスワードが完全不要に - GIGAZINE
- Windows標準のセキュリティシステム「Microsoft Defender」を最大限に活用する方法 - GIGAZINE
- 見落とされがちなWindows 10の便利機能5選 - GIGAZINE
- 累計10億ダウンロードを老舗ポータブルアプリ配布サイト「PortableApps.com」が達成 - GIGAZINE
- 超初心者でも他人のPCを簡単にリモート操作できるWindows標準機能「クイック アシスト」の使い方 - GIGAZINE
- PCのハードウェアの信頼性を確かめる負荷試験を行う「PassMark BurnInTest」レビュー - GIGAZINE
- Windows Updateを正常にインストールするには最低8時間オンラインのままである必要アリ - GIGAZINE
- ともい(Tomoi,S.)さんはTwitterを使っています: 「「Windowsでコピペできるデータの最大サイズとは?」(GIGAZINE , https://t.co/KV6ydTeBqI) 読んでて、遅延ロードを埋め込めるのは新たに知りましたが、原文と対照しないと不足している部分があると思いました。 具体的には、クリップボードに複数形式が格納される可能性がある示唆が抜けてます。」 / Twitter
- Windowsでコピペできるデータの最大サイズとは? - GIGAZINE
- ともい(Tomoi,S.)さんはTwitterを使っています: 「まあでもこれ、プログラムでクリップボード処理したり、その手のツールを使わないと形式がマルチになっている場合がある事は見逃してしまいそうではあり…。 (おそらくプログラムと連携するケースは稀で、基本的にはコピー時にあらかじめ相手が受け付けそうな形式を全てコピーしておく必要がある)」 / Twitter
- ともい(Tomoi,S.)さんはTwitterを使っています: 「で、実際に見出しの疑問に立ち返ると、 >You are limited only by available memory and address space.(原文) であり、格別の制限がないことがわかります。 (というよりそれを知りたいためだけに開いて、副次的に遅延ロードの情報を得た形になったので、見出しの工夫が必要なケース。)」 / Twitter
窓の杜
MS
Excel
- Microsoft、「Excel」に14の新関数を追加へ ~テキスト・配列操作が簡単に - 窓の杜
- Web版「Excel」がリッチテキストに対応、セルテキストの一部にだけ書式を追加できる - 窓の杜
- Microsoft、「Excel」に14の新関数を追加 ~文字列・配列操作が簡単に - 窓の杜
- 【Excel】半・全角の統一はJIS/ASC関数! では英数字→半角・カタカナ→全角にするには? - いまさら聞けないExcelの使い方講座 - 窓の杜
- 「ExcelAPI」と新関数「IMAGE」を組み合わせたデモが早速お披露目 - やじうまの杜 - 窓の杜
- 日付、住所、文字列、辞書、翻訳……なんでもござれの「ExcelAPI」がスゴい - やじうまの杜 - 窓の杜
- 「Excel」に新関数「IMAGE」が追加 ~セルへインターネットの画像を簡単に挿入できる - 窓の杜
- 【Excel】コピペした表のレイアウト崩れを直すのは面倒 ~無駄な手間を省くコピーのワザ - いまさら聞けないExcelの使い方講座 - 窓の杜
- 【Excel】SUMIFのことは忘れてっ! 条件に合うデータのみの合算に使う関数はSUMIFS - いまさら聞けないExcelの使い方講座 - 窓の杜
- Excelでのファイルリスト作成で[F2]キーを使うのは不毛! 一気にファイル名を取得する方法 - 残業を減らす!Officeテクニック - 窓の杜
- Windows/Mac版「Microsoft Excel」にブックの変更履歴機能 ~プレビュー展開中 - 窓の杜
- Excelに大規模な機能追加 ~Microsoftが8月の更新まとめを発表 - 窓の杜
- ExcelのVBAマクロがブロックされて解除できない! ブロックの解除方法を解説 - やじうまの杜 - 窓の杜
- 【Excel】XLOOKUP関数はもう常識! VLOOKUP関数から切り替えるべき理由 - いまさら聞けないExcelの使い方講座 - 窓の杜
- Excelを使って複数のフォルダーを一括作成するウラ技 ~月別フォルダー作成が捗る! - 残業を減らす!Officeテクニック - 窓の杜
- 【Excel】表のデザイン野暮ったい…… データを見やすくする基本テクニック - いまさら聞けないExcelの使い方講座 - 窓の杜
- ダウンロードしたVBAマクロは既定でブロックへ ~「Microsoft Office」攻撃への対策を強化 - 窓の杜
- Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に - 窓の杜
- 「Excel」でMapやReduce~ラムダを引数にとる7つの関数がテスト導入 - 窓の杜
- 「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に - 窓の杜
- Web版「Excel」の新しいマクロ機能「Office スクリプト」が一般リリース - 窓の杜
- 重い「Excel」ファイルから不要データを削除して軽く ~MicrosoftがWeb版に新機能 - 窓の杜
- 「Excel」2022年9月のアップデートまとめが公開 ~不要データ削除機能など - 窓の杜
Windows Sysinternals
- Process Hollowing/Herpaderping攻撃の検出に対応した「Sysmon」v13.00が公開 - 窓の杜
- Microsoft、「Autoruns」v14.0を公開 ~不審なスタートアッププログラムの炙り出しツール - 窓の杜
- 「TCPView」がメジャーアップデート ~検索ボックスやダークモードに対応したv4.0が公開 - 窓の杜
- 「Sysmon 14.0」が公開、マルウェアの検知・解析だけでなくブロックも可能に - 窓の杜
ショートカットキー
- 作業効率を引き上げる「クリップボード」系の上級ショートカットキーをマスターしよう - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- 「タスク マネージャー」を起動するなら[Ctrl]+[Alt]+[Delete]よりも早い方法がある - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- [Alt]+[Tab]キーよりも爆速なタスク切り替えショートカットキーを使いこなせ! - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- ショートカットキーでウィンドウを開きすぎてゴチャゴチャしたデスクトップをスッキリさせる - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- [Ctrl]、[Shift]、[Alt]、[Windows]の4キーを同時に押すとどうなる? - やじうまの杜 - 窓の杜
- 緊急救難信号受信! 田舎のおかんを助けるには[Windows]+[Ctrl]+[Q]キーを押してもらう - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- 作業中のウィンドウをササっと動画キャプチャーできるショートカットキー - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- ペンでもOK! サクッとメモを取りたいときに最適なショートカットキー - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- 便利機能がたくさん詰まった[Windows]+[X]キーは覚えていて損はなし - 脱初心者!すぐに役立つショートカットキー - 窓の杜
Windows Update
- 細切れに利用しているPCは「Windows Update」を確実に受け取れないかも - やじうまの杜 - 窓の杜
- Windowsの「B」、「C」、「定例外」リリースってなに? ~更新プログラムの仕組み - やじうまの杜 - 窓の杜
- Windows Update履歴にある「オンライン サービス エクスペリエンス パック」ってナニ? - やじうまの杜 - 窓の杜
- 「Windows Update」でトラブル発生、更新プログラムを削除するには?【令和最新版】 - やじうまの杜 - 窓の杜
Windows 11
- Windows 11の通常版はどこで買えばいいの? - やじうまの杜 - 窓の杜
- タスクバーの端にニュースをお届け ~Windows 11に「ウィジェット通知」が導入 - 窓の杜
- 「エクスプローラー」にタブ機能 ~Microsoft、Windows 11の新要素を発表 - 窓の杜
- Windows 11のシステム要件を更新でも迂回可能に ~インストールメディア作成ツール「Rufus」v3.18 - 窓の杜
- 「Windows 11 2022 Update」の[スタート]画面にフォルダー機能が帰ってきた! - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
- 「Windows 11 バージョン 22H2」で注目のキーボードショートカットたち - やじうまの杜 - 窓の杜
- 「Windows 11 バージョン 22H2」には新しい「クイック アシスト」がプリインストール - 窓の杜
Windows 10
- Windows 10で[同期の設定]が機能しないケースについてMicrosoftが案内 - 窓の杜
- Windows 10のセキュリティの質問って覚えてる?思い出せないなら「SecurityQuestionsView」【レビュー】 - 窓の杜
- Windows 10の[スタート]画面が再編中? 確かにプログラムフォルダーはスッキリしたけど、あのツールはどこ行った! - やじうまの杜 - 窓の杜
- Microsoft、Windows 10で迷惑アプリのブロック機能をデフォルト有効に - 窓の杜
- え、こんな機能が? Windows 10のマイナー機能を活用しよう! 2018年 記事一覧
- 書式なし(プレーン)テキストとして貼り付けたい場合は[Windows]+[V]がお勧め - やじうまの杜 - 窓の杜
- キーボードだけでアプリを管理者権限で実行するには? - 脱初心者!すぐに役立つショートカットキー - 窓の杜
- ぇ、それだけでよかったの? Windowsのユーザーフォルダーを開く最速の技 - やじうまの杜 - 窓の杜
- Windowsのドライバー検証が強化 ~2020年10月更新以降、導入時にエラーが発生することも - 窓の杜
- “セーフガードホールド”ってなに? ~Microsoftがサポートページで詳細を案内 - やじうまの杜 - 窓の杜
- 新しい「Microsoft Defender」アプリがストアに登場 ~有償セキュリティ機能の提供を画策か - やじうまの杜 - 窓の杜
- 「スマホ同期」がリニューアル、「電話リンク」に - 窓の杜
- 「Hyper-V」仮想マシンに「Windows 11 バージョン 22H2」をインストールする方法 - やじうまの杜 - 窓の杜
- デスクトップ版「Outlook」に「Microsoft To-Do」がいよいよ統合 ~メールをタスクへ変換可能に - 窓の杜
- Microsoft、データベース移行ツール「SQL Server Migration Assistant」v9.0を公開 - 窓の杜
- 余計なことをしないで! Wordの邪魔な自動変換機能を回避する方法 - 残業を減らす!Officeテクニック - 窓の杜
- 「Microsoft 365」デスクトップ向けアプリの最新版が公開 - 窓の杜
- どうせスライドにするなら最初からパワポでメモればいいのでは? アウトライン表示活用術 - 残業を減らす!Officeテクニック - 窓の杜
- ブルースクリーンエラーを人為的に発生させるMicrosoft公式ツールがARM64にネイティブ対応 - 窓の杜
- Microsoftがなんか「CCleaner」っぽいシステム最適化ツールを配っている - やじうまの杜 - 窓の杜
- Microsoft 365の「Outlook.com」は個人用メアドが作成・再追加不能に ~Personal/Familyが対象 - 窓の杜
- CSVファイルが勝手に「Excel」ファイルに? 「OneDrive」の謎仕様に驚きと戸惑いの声 - やじうまの杜 - 窓の杜
- 窓の杜が選ぶ! 2022年注目のニュースはMicrosoftのなんか「CCleaner」っぽいシステム最適化ツール、もとい「PC Cleaner」 - やじうまの杜 - 窓の杜
- 「Windows回復環境」(WinRE)の脆弱性に注意、Windowsへ月例パッチを適用するだけでは不十分 - 窓の杜
バックアップ・コピー・イメージ・セットアップ・カスタマイズ
- ZST/ZIPX形式を解凍できる「WinRAR 6.10」、Windows 11のシンプル右クリックメニューにも対応 - 窓の杜
- Windows 11標準にしたいぐらいのカッコいいファイラー「Files」がARM64にネイティブ対応 - 窓の杜
- ドラッグ&ドロップによるファイルコピーのわずらわしさを軽減してくれる「DropPoint」【レビュー】 - 窓の杜
- ローカルアカウントのOSセットアップも簡単 ~インストールメディア作成ツール「Rufus」v3.20 - 窓の杜
- 高速ファイルコピーツール「FastCopy」が約6年半ぶりのメジャーバージョンアップ - 窓の杜
- 無料パーティション編集ツール「EaseUS Partition Master Free」がexFATに基本対応 - 窓の杜
- 「Acronis True Image」が「Acronis Cyber Protect Home Office」にリブランド - 窓の杜
- 無償のイメージバックアップツール「EaseUS Todo Backup Free 2022」がリリース - 窓の杜
- 「EaseUS Todo Backup 2022」のクラウドバックアップをWebページ上で削除可能に - 窓の杜
- 1TBのクラウドへのバックアップが可能になった「EaseUS Todo Backup Home」v13.5 - 窓の杜
- 次期Windows 11に対応した「Winaero Tweaker」v1.40 ~隠し機能「ステッカー」も有効化可能 - 窓の杜
- OSカスタマイズツール「Windhawk」にライブサムネイルをD&Dで入れ替える新しいMod - 窓の杜
- 「Orchis」さまざまな方法でメニューを呼び出せるランチャー - 窓の杜
- 「Clibor」定型文の挿入もできるテキスト専用のクリップボード履歴ソフト - 窓の杜
- アプリUI上のあらゆるテキストをコピー・検索・翻訳できる「Textify」v1.9 - 窓の杜
- 「PuTTY」が「Microsoft Store」に登場 ~ストアに蔓延する偽物対策か - 窓の杜
- 「sexe」が10年ぶりにバージョンアップ ~通常のアプリを無理やりWindowsサービス化するツール - 窓の杜
- WindowsをUSBメモリに入れて持ち運べる「EaseUS OS2GO」が発売開始 ~Macでも起動 - 窓の杜
- プレゼン向け虫眼鏡ツール「ZoomIt」がデスクトップ録画にも対応 - 窓の杜
- 登場から早や20年、いまだに話題となるデスクトップマスコット「伺か」ってなに? - やじうまの杜 - 窓の杜
- JPCERT/CC、「EmoCheck」v2.2を公開 ~再流行中のマルウェア「Emotet」に警戒 - 窓の杜
- 「Microsoft Office」がなくても感染する「Emotet」の亜種 ~ショートカットファイル実行で感染 - 窓の杜
- 【セキュリティ ニュース】開くだけで感染、「Emotet」新手口 - 「アイコン偽装」でさらに拡張子を隠蔽(1ページ目 / 全2ページ):Security NEXT
- Microsoft製のシステムメンテナンスソフト「PC Manager」にポップアップブロック機能 - やじうまの杜 - 窓の杜
- 「iCloud フォト」を統合した「フォト」アプリの展開が開始 - 窓の杜
- フリー&オープンソースのファイヤーウォールアプリ「Portmaster」がv1.0.0に - 窓の杜
- 多機能すぎるExcelアドイン「SuperXLe Basic」にWindowsの各種管理機能を呼び出す機能 - 窓の杜
- 「GlassWire 3.0」がリリース ~モダンなトラフィック監視&ファイヤーウォールツール - 窓の杜
- 高機能でスタイリッシュなファイラー「Files」が「Windows App SDK」移行でOS標準の「エクスプローラー」に対抗 - 窓の杜
- 全グローバルホットキーを表示して使っているアプリを突き止める無料ツールが公開 - 窓の杜
- モダンな高機能ファイラー「Files」v2.4が公開 ~「Windows App SDK」移行で高速に - 窓の杜
- 「AutoHotkey」がv2.0.0に ~ホットキーでWindowsやアプリの操作を自動化するツール - 窓の杜
- ModでOSをカスタムする「Windhawk」がv1.0に ~初のメジャーバージョンアップ - 窓の杜
マイナビニュース
- プレビュー版「コンパクトモード」から見るエクスプローラーの進化 - 阿久津良和のWindows Weekly Report | マイナビニュース
- アイコン変更とキーバインド修正から見る次期Windows 10への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
- プロアクティブな設定「Customize your device」への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 10ミニTips(204) コマンドラインからWindows Updateを実行する | マイナビニュース
- このタイミングでデバイスマネージャーに改良を加えるMicrosoftの狙い - 阿久津良和のWindows Weekly Report | マイナビニュース
- また消えた「Windows」の文字 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11でリニューアルされるSnipping Tool - 阿久津良和のWindows Weekly Report | マイナビニュース
- Microsoftアカウントがパスワードレスになった - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windowsデバイスを最新に保つには、更新後最低6時間はオンラインに | TECH+
- エクスプローラーのタブ機能がInsider Previewで復活? 阿久津良和のWindows Weekly Report | マイナビニュース
- Insider PreviewのMarch 2022 Bug Bashに参加 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 「Windows Powers the Future of Hybrid Work」で明かされる内容 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 待望のMicrosoftプロファイル切り替え機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
- ポイントプログラム「Microsoft Rewards」の拡大 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 機能強化が多い2022年11月のWindows 11更新プログラム - 阿久津良和のWindows Weekly Report | マイナビニュース
- 11月のWindows 11更新プログラム、2回目のプレビューをリリース - 阿久津良和のWindows Weekly Report | マイナビニュース
- よりクラウド化したWindows 11とローカル向けのWindows 11が欲しい - 阿久津良和のWindows Weekly Report | マイナビニュース
- Teamsで従業員のつながりを生む「Games for Work」は日本になじむか - 阿久津良和のWindows Weekly Report | マイナビニュース
- 次のWindows 11はタスクトレイの時刻に秒表示が復活? 阿久津良和のWindows Weekly Report | マイナビニュース
- ダウンロード版Windows 10は2023年1月いっぱいで終了 - 阿久津良和のWindows Weekly Report | マイナビニュース
ASCII.jp
- ASCII.jp:Windows 10の標準アプリが動かなったときの対処法 (1/2)
- ASCII.jp:Windowsキー絡みのショートカットは徐々に増えて、減って、また増えている (1/2)
- ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)
- ASCII.jp:Windows 10におけるキーボードの秘密 (1/2)
- ASCII.jp:Windows Updateを飼い慣らして、都合のいい時間に再起動させる方法 (1/2)
- ASCII.jp:Windows 10のデバイスドライバーで見えた、今秋の大型アップデートの可能性 (1/2)
- ASCII.jp:年2回のWindows 10のアップデートに要する時間に大きな差 フルアップデートとサービステクノロジーアップデート (1/2)
- ASCII.jp:Windows 10は好きな文章を合成音声で簡単に喋らせることができる (1/2)
- ASCII.jp:デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない (1/2)
- ASCII.jp:BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)
- ASCII.jp:Windows 10が起動しない場合の最終手段「Windows RE」の基本 (1/2)
- ASCII.jp:WindowsのコマンドでLAN内のデバイスを探す (1/2)
- ASCII.jp:Windows 11ではARM版も改良が進んだ (1/2)
- ASCII.jp:Windows Updateの状態をコマンドラインから調べる方法を考える (1/2)
- ASCII.jp:4Kディスプレイを導入してWindowsの文字が小さいときにやること、やってはいけないこと (1/2)
- ASCII.jp:Windowsでキートップにないさまざまな文字を入力する方法を整理する (1/2)
- ASCII.jp:WindowsのコマンドラインからUSBデバイスについて調べる方法 (1/2)
- ASCII.jp:Windows Insider Programに変化あり 次期Windows 11ベータテストへの布石か (1/2)
- ASCII.jp:Windowsでコマンドラインから画面キャプチャーをする (1/2)
- ASCII.jp:Windowsの基本機能 クリップボードをさらに活用する
- ASCII.jp:今更ながらコンピュータにおけるエンディアンの話 (1/2)
- ASCII.jp:この先、Windowsはどうなる? 2024年にWindows 12が登場する可能性がある? (1/2)
- ASCII.jp:エクスプローラーのWindowsサーチ機能ではなく、コマンドラインからテキスト検索をする (1/2)
- ASCII.jp:マイクロソフトのオープンソースソフトウェアを整理する (1/2)
- ASCII.jp:レジストリエディタ以外、reg.exeコマンドやPowerShellからレジストリを操作する (1/2)
- ASCII.jp:フォルダーやファイルがリネームできない! ファイルを開いているプロセスを探す方法 (1/2)
- ASCII.jp:Outlookの25年の歴史を整理する (1/2)
- ASCII.jp:Windowsにおける環境変数をあらためて整理する (1/2)
- ASCII.jp:Windowsでプログラムを実行するルールをあらためて掘り下げる
- ASCII.jp:2023年のWindowsは大きな変化がある可能性 まさかのWindows 12が今年出る説!? (1/2)
@IT
- Windows 10のエクスプローラを便利に使うTIPS 10本:Tech TIPS - @IT
- Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
- Robocopyより高機能。ファイル同期ツールの決定版「FreeFileSync」:知っトクWindowsツール(1/2 ページ) - @IT
- 面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その1):企業ユーザーに贈るWindows 10への乗り換え案内(29) - @IT
- 面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その2):企業ユーザーに贈るWindows 10への乗り換え案内(30) - @IT
- 「Windows 10 バージョン21H1」が正式リリース、Windows Updateによる機能更新プログラム配布をコントロールする2つの方法とは:企業ユーザーに贈るWindows 10への乗り換え案内(100) - @IT
- WindowsUpdateProviderモジュールとWindows Update WMIプロバイダーの廃止によるWindows Update自動化への影響:企業ユーザーに贈るWindows 10への乗り換え案内(78) - @IT
- 刷新された「Windowsのリリースの正常性」サイトの歩き方:企業ユーザーに贈るWindows 10への乗り換え案内(99) - @IT
- Windows 10 バージョン2004の隠れた新機能、クライアントOSでもシリアルコンソール(SAC)が利用可能に:企業ユーザーに贈るWindows 10への乗り換え案内(77) - @IT
- Windows 10の登場から6年で削除された機能、廃止予定機能のざっくりまとめ:企業ユーザーに贈るWindows 10への乗り換え案内(97) - @IT
- SSE2非対応の古いプロセッサがWindowsに見捨てられたというウワサは本当? (1/2):その知識、ホントに正しい? Windowsにまつわる都市伝説(113) - @IT
技術評論社
- 第661回 リモートデスクトップビューアー,Remminaを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
blog
山市良のえぬなんとかわーるど
- 山市良のえぬなんとかわーるど: "About your PC" を検索せよ
- 山市良のえぬなんとかわーるど: Windows Sysinternals 更新情報 (2021 年 4 月 22 日) - Procmon v3.70、Sysmon v13.10、Autoruns v13.99、TCPView v4.01、WinObj v3.03
- 山市良のえぬなんとかわーるど: Windows Update に 8 時間必要?(それとも 6 時間?、自動更新の場合の話)
- 山市良のえぬなんとかわーるど: WinSxS\Temp であっても触れてはいけない
- WinSxS フォルダーのクリーンアップ | Microsoft Docs
Publickey
- [速報]マイクロソフト、無料でRPA機能「Power Automate Desktop」をWindows 10ユーザーに提供開始。Microsoft Ignite 2021 - Publickey
- マイクロソフト、「Universal Print」正式リリースを発表。プリンタサーバをクラウド化し、プリンタドライバを不要に。Microsoft Ignite 2021 - Publickey
- 「Windows Server 2022」プレビュー版が登場、安全なブートなどセキュリティ強化。Microsoft Ignite 2021 - Publickey
- VMware、自宅サーバ愛好家のために「動作保証はないけど動くらしい」非公式ハードウェアリストを作成開始、コミュニティに情報提供を呼びかけ - Publickey
- [速報]マイクロソフト、「Windows 365 Boot」発表。起動するとクラウドPCが即利用可能、「Windows 365 Offline」によりオフラインでも利用可能に - Publickey
- [速報]Windows 11のFile Explorerにタブ機能、集中作業用のタイマー機能、オンライン会議のアイコンタクト機能など新機能 - Publickey
- マイクロソフト、クラウドPCが起動する「Windows 365 Boot」やオフライン対応の「Windows 365 Offline」のデモ動画を公開 - Publickey
- Google、ノーコード開発ツールのAppSheetに新機能「Apps Script connector for AppSheet」。Apps Script経由でのGoogle Workspaceとの連携処理が容易に - Publickey
- マイクロソフト、開発環境をクラウドPCとしてデスクトップ仮想化経由で利用できる「Dev Box」のパブリックプレビューを開始 - Publickey
- マイクロソフト、Windows Serverの仮想コア対応などライセンス規約の更新を発表。クラウドや仮想環境などとのシームレスな運用が容易に - Publickey
午前7時のしなもんぶろぐ
- セキュリティ調査に役立つブラウザ拡張機能のまとめ - 午前7時のしなもんぶろぐ
- CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ
- 怪しいファイル・サイトを検査! 「VirusTotal」の安全な使い方教えます! - 午前7時のしなもんぶろぐ
- 小規模CSIRT向けWindowsイベントログで押さえておくこと|セキュリティブログ
- 【Win10】Windows 10 Homeバージョンで Hyper-Vを有効にする方法【Tips】 : 0から楽しむパソコン講座のブログ
- Windows 読み取り専用になったディスクを読み書き可能にする方法 - 元「なんでもエンジニ屋」のダメ日記
- エクスプローラで移動や削除が重いのを改善する(Windows10) - jBlog
- Windowsイベントログ解析ツール「Hayabusa」を使ってみる - itiblog
- Microsoft、wushowhide.diagcabを再公開。署名をSHA-2へと変更 | ニッチなPCゲーマーの環境構築Z
- A5:SQL Mk-2に回帰した話 | フューチャー技術ブログ
- [速報]マイクロソフト、ArmネイティブなVSCode、.NET、WSLなど投入へ。Python、Node.jsなどのArm対応も進行中。Microsoft Build 2022 - Publickey
- Makoto Kato ︎︎さんはTwitterを使っています: 「WSLもVSCodeもARM64版すでにあるのではと (RustのいくつかのcrateのパッチはWoAなWSL上で書いた) https://t.co/ILx1UIE9vX」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「ARM64版のgit for Windowsは確かMicrosoft社員じゃない人がもうコードを入れてたはず。パッケージがビルドされてないだけで」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「VimはARM64版のビルド環境でビルドすれば、そのまま動くけど、公式パッケージやるきなさそう」 / Twitter
infoQ
- Googleの2FAは2FAを必要とせずに無効にできる
- JDKMon - JDKの検出と更新を行う新ツール
Zenn
- Microsoft Defenderを眺めてると「もう全部あいつ一人でいいんじゃないかな」という気分になる
Qiita
- bootrec /RebuildBcd 指定されたパスがみつかりません - Qiita
- 自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法 - Qiita
Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「嘘書いてなぁ。 "USBキーボードは、デバイスに関する情報を返すことが可能で、メーカー名やキーボード名を取得することが可能で、これを使ってレイアウトを判別することは可能なのだが" https://t.co/OqzdTpJJDy」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 2000のリリース時はそういう意図でDesignされていたんだけど、実際世の中で発売されるキーボードはUSレイアウトと日本語レイアウトで同じIDを返すものがほとんどだった。だから不可能だったんだよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「最終的にはHotfixを作って、自動に選択されないようにした (たしか*.infに入っている情報消すようなHotfixだった記憶) 。2000年くらいのお話ですね。」 / Twitter
- 入谷 優さんはTwitterを使っています 「因みに、スタート メニューの検索結果でも、Ctrl + Shift + Enter でアプリを管理者として起動できます。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Intel用CPUに特化されたPython。NumPy, scikit-learn等を含んでいる。バイナリはかなりデカいらしい。conda/dockerから利用可能。 https://t.co/CDSptqqCeB」 / Twitter
- Intel® Distribution for Python
- 入谷 優さんはTwitterを使っています 「certutil.exe を使うと HRESULT 値を解読できるとは! https://t.co/kIobiZqDy5」 / Twitter
- The CertUtil program will decode Windows error codes, and in a variety of formats - The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy.exe は Win32 GUIアプリなので(=EXEのPEヘッダ subsystem=2、なおコンソールだと 3)、起動した瞬間、親プロセスから detach されます。 (start "" /wait fastcopy.exe とやれば、終了まで待ちますが、Ctrl-C は効かないままですね) https://t.co/377ByMZIOA」 / Twitter
- PE(Portable Executable)ファイルフォーマットの概要
- YurikaさんはTwitterを使っています 「今日はマイクロソフト定例セキュリティパッチの日。今月は50件の脆弱性を修正しました。 既定では自動更新が有効ですが、ぜひ早期の適用をよろしくお願いいたします。IT管理者向けに概要をブログで公開していますのでぜひご覧ください。 https://t.co/wzO5GYxB3Y (メモ続く→) https://t.co/Fba7WNpqXm」 / Twitter
- [IT管理者向け] DCOM の脆弱性 (CVE-2021-26414) に対応するためのガイダンス – Microsoft Security Response Center
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「パスワードの規則」って最悪。これらの規則はシステム設計者の恣意的な基準にすぎず、サイトごとにバラバラである。だからパスワード生成器でつけたパスワードですら「数字が2個以上含まれていない」という理由で却下されたりする。 https://t.co/B6NAJ7P5kq」 / Twitter
- Why I Hate Password Rules - Schneier on Security
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的にはpwgenが便利でいいよね。 https://t.co/mNQInwpgXd」 / Twitter
- HashiCorpがHCP Packerのパブリックベータを開始
- YurikaさんはTwitterを使っています 「正規のドライバーの脆弱性が悪用されたり、悪意のあるコードが仕込まれてしまう件の増加を踏まえ、ドライバーの脆弱性や悪意のある挙動をスキャンすることができるポータル Vulnerable and Malicious Driver Reporting Centerを開設。E3/E5はASRやWDACと連携も可 https://t.co/89NNadP9vj」 / Twitter
- Improve kernel security with the new Microsoft Vulnerable and Malicious Driver Reporting Center - Microsoft Security Blog
- ViVi web site
- オンラインスキャン for Home Network - トレンドマイクロ
- トレンドマイクロの「スマートホームスキャナー」Windows版インストーラーに脆弱性 - 窓の杜
- Windows10 設定変更ツール
- VMware Workstation Player | VMware | JP
Visual Studio
- Windows Dev Center
- Windows SDK and developer tools - Windows app development
- Visual Studio Older Downloads - 2019, 2017, 2015 & Previous Versions
- Download the Windows Driver Kit (WDK) | Microsoft Docs
- Incredibuild - Turbocharge compilation, tests, and other DEV workloads
- [速報]マイクロソフト、開発環境をまるごとクラウドPCとして用意できる「Dev Box」を発表。Microsoft Build 2022 - Publickey
MS
- Execution and Static Analysis Support for MSVC on Compiler Explorer - C++ Team Blog
- Visual Studio のロードマップ | Microsoft Docs
- Visual Studio 2017 15.9 リリース ノート | Microsoft Docs
- Visual Studio 2019 リリース ノート | Microsoft Docs
- Visual Studio 2022 Preview リリース ノート | Microsoft Docs
- Visual Studio Preview
- Microsoft C++ Build Tools - Visual Studio
- Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
- VsVim - Visual Studio Marketplace
- EditorConfig - Visual Studio Marketplace
- EditorConfig Language Service - Visual Studio Marketplace
- Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
- インストールに使用するコマンド ライン パラメーターの例 - Visual Studio | Microsoft Docs
- コマンド ライン パラメーターを使用して Visual Studio をインストールする | Microsoft Docs
- /STACK (スタック割り当て) | Microsoft Docs
- Support Statement for Visual Basic 6.0 | Microsoft Docs
- CPU Usage Tool Improvements - Visual Studio Blog
- Updates to Visual Studio Build Tools license for C and C++ Open-Source projects - C++ Team Blog
- プリンタ― ドライバ―のアップデートを行った際に DEVMODE 情報が更新されない | Japan WDK Support Blog
- Microsoft C++ Code Analysis Warnings with Key Events - C++ Team Blog
- What’s New for C++ Developers in Visual Studio 2022 17.4 - C++ Team Blog
- Visual Studio 2022 Performance: Faster C++ Source Code Indexing - C++ Team Blog
- Introducing Visual Studio Rollback! - Visual Studio Blog
- MSVC OpenMP Update - C++ Team Blog
- Removing out-of-support components from your Visual Studio installations - Visual Studio Blog
vswhere.exe
- Visual Studio インスタンスの検出および管理用のツール | Microsoft Docs
- Locating MSBuild on a machine - Meziantou's blog
- シンクリッジ - : 技術系備忘録/C++/VisualStudio/MSBuild.exeのパスを解決して実行
- Visual Studio 201x の devenv.com はどこにある? - Qiita
窓の杜
- 「Visual Studio 2019」はパフォーマンスが大きく向上 ~Microsoftが詳細を解説 - 窓の杜
- Microsoft、「MSVC」のSTL実装をオープンソースとしてリリース - 窓の杜
- 「Visual Studio 2019」にタブを縦並びにする機能 ~プレビュー版でテスト中 - 窓の杜
- Microsoft、「Visual Studio 2019」v16.4を正式公開 ~「.NET Core 3.1」を同梱 - 窓の杜
- Microsoft、「Visual Studio 2019」v16.5を正式リリース - 窓の杜
- 「Git」連携を刷新、メインメニューにも追加 ~「Visual Studio 2019」v16.6.0が正式公開 - 窓の杜
- 「Visual Studio 2019」v16.7が正式公開 ~「Git」関連の機能を引き続き強化 - 窓の杜
- Microsoft、「Visual Studio」の「Unity」解析ツールをオープンソースに - 窓の杜
- 「.NET 5.0」に対応した「Visual Studio 2019」v16.8.0が正式公開 ~新しいGit機能もプレビュー卒業 - 窓の杜
- 「Visual Studio 2019」v16.9が正式公開 ~4番目の長期サポートリリース - 窓の杜
- 待望の64bit化 ~Microsoft、「Visual Studio 2022」を発表 - 窓の杜
- 「Visual Studio 2019」の最新プレビュー版がC++20機能の実装を完了 - 窓の杜
- 「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応 - 窓の杜
- 64bit化された「Visual Studio 2022」、初のプレビュー版がリリース - 窓の杜
- 「Visual Studio 2019」の最終版、v16.11が正式リリース - 窓の杜
- 「Visual Studio 2022」は11月8日に一般公開 ~Go-Liveライセンス付きのRC版が公開 - 窓の杜
- 「Visual Studio 2022」が一般公開 ~64bit化された初めての「Visual Studio」 - 窓の杜
- 「Visual Studio 2012」の製品寿命はあと1年 ~その他のバージョンもサポート切れに注意 - 窓の杜
- 「Visual Studio 2022」に初めてのマイナーアップデート ~v17.1を公開 - 窓の杜
- 「Visual Studio」に新しいオールインワン検索機能が導入へ - 窓の杜
- 「Visual Studio 2022」v17.2が公開 ~18カ月サポートされるLTSリリース - 窓の杜
- 「Visual Studio」がARM64へネイティブ対応へ ~近々プレビュー版がリリース - 窓の杜
- ARM64にネイティブ対応した「Visual Studio」がWindows 11で利用可能に - 窓の杜
- Microsoft、複数の「Visual Studio」を色で見分けやすくする拡張機能を公開 - 窓の杜
- 「Visual Studio 2022」v17.3が公開 ~「.NET MAUI」デスクトップ・モバイル開発に対応 - 窓の杜
- 「Visual Studio」拡張機能がARM64に対応 - 窓の杜
- 「Visual Studio」にようやく差分表示(Diff)が実装へ? ~叩き台となる拡張機能が公開 - 窓の杜
- Comparing files in Visual Studio - Visual Studio Blog
- コードのコピペ時にほぼ絶対やる失敗を「Visual Studio」が防ぐようになる? - 窓の杜
- 「Visual Studio 2022」v17.4が公開 ~ARM64を正式にサポートした初の「Visual Studio」 - 窓の杜
- 「PHP Tools for Visual Studio」の機能の大部分が無償で利用可能に - 窓の杜
- 「VS Code」でも人気の「固定スクロール」が「Visual Studio 2022」に - 窓の杜
- 「Visual Studio 2022」にMarkdownエディターが導入へ ~拡張機能なしで編集・プレビュー - 窓の杜
infoQ
- Microsoft、Bridge to Kubernetesをリリース
- MicrosoftがVisual StudioでGit Experienceをリリース
- Diablo IV:Visual StudioでLinuxのデバッグ
- MicrosoftがVisual Studio 2019 v16.9をリリース
- Microsoftが64ビットのVisual Studio 2022を発表
- MicrosoftがVisual Studio 2022の最初のプレビューをリリース
- Visual Studio 2022プレビュー2は即時フィードバックにフォーカスしたものに
- MicrosoftがVisual Studio 2022の最初のプレビューをリリース
- Visual Studio 2022: Leslie Richardson氏とそのチームに聞く
News
- Microsoftが提供する統合開発環境「Visual Studio 2022」の詳細が発表 - GIGAZINE
- Microsoft、「Visual Studio 2022」と「.NET 6」を正式リリース | TECH+
Visual Studio Feedback
- VS2022 Missing compatible WDK - Visual Studio Feedback
- Visual Studio Feedback
- Prevent automatically inserting of /IMPLIB - Visual Studio Feedback
blog
その他
- Visual Studioで64bitコンパイラツールセットを使う方法。C1060への対処。 - 賢朽脳瘏
- [C++]コンソール出力にchar8_t文字列を出力したい! - 地面を見下ろす少年の足蹴にされる私
- 山市良のえぬなんとかわーるど: Visual Studio 2022(の Preview 予定)
- Visual Studio で UTF-8 でC++を書いたら心が折れそうになった件 - Hikware.Tech
- Visual Studio 2022が公開 - 64bit対応 - ソフトアンテナブログ
Publickey
- 次期Visual Studio 2022はマルチリポジトリ対応になるとマイクロソフトが明らかに - Publickey
- Visual Studio 2022 Preview 4が公開。CSSの変更がすぐプレビューに反映されるホットリロードなど新機能 - Publickey
- Visual Studio 2022正式リリース。初の64ビット化による高速化、実行中のアプリにコード変更が反映される「ホットリロード」、.NET 6対応など新機能 - Publickey
- Visual Studio 17.1 Preview 2が登場、Gitのブランチを他のブランチと比較する機能、セーブ時にコードを自動的にクリーンナップする機能など追加 - Publickey
- 同一ソースコードから生成されるビルド成果物のバイナリ同一性について | Japan Developer Support Core Team Blog
- [メモリリーク #1] [HOWTO] UMDH を用いたメモリリーク調査技法 | Japan Developer Support Core Team Blog
- Visual Studio 2019 version 16.3.x でビルドした C/C++ アプリが例外 0xC000001d で異常終了する | Japan Developer Support Core Team Blog
- Improving developer security with Visual Studio 2022 | Visual Studio Blog
- C++ build throughput investigation and tune up - C++ Team Blog
- ドッグさんはTwitterを使っています 「Visual Studio 2019 v16.9 で address sanitizer (asan) がフルサポートされた (/fsanitize=address).試験実装として元々入っていたのが安定版になった https://t.co/RbdxBIufev」 / Twitter
- Address Sanitizer for MSVC Now Generally Available | C++ Team Blog
- AddressSanitizer | Microsoft Docs
- Suffer from Ctrl+S fatigue? We have a feature for you - Visual Studio Blog
- Supercharge your Git experience in VS - Visual Studio Blog
- Serial and Zephyr support for Visual Studio and VS Code - C++ Team Blog
- New Profiler feature in Visual Studio - Visual Studio Blog
- Arm64 Visual Studio - Visual Studio Blog
- Analysis Services and Reporting Services extensions for Visual Studio 2022 are here! - Visual Studio Blog
- Integrated Terminal in Visual Studio: New SSH integration for Linux targeting - C++ Team Blog
- MSBuild Low Priority Builds in Visual Studio - C++ Team Blog
- vcpkg July 2022 Release is Now Available: Shared Libraries on Linux, Improved vcpkg new, Optional name and version Fields, and More… - C++ Team Blog
- MSVC Backend Updates in Visual Studio 2022 version 17.3 - C++ Team Blog
- Official Support for Arm64EC is Here - C++ Team Blog
- Visual Studio 2022 17.4 Preview 2 - Visual Studio Blog
- Dev Containers for C++ in Visual Studio - C++ Team Blog
- It’s finally here. Bicep is in Visual Studio! - Visual Studio Blog
- A Tour of 4 MSVC Backend Improvements - C++ Team Blog
- What’s new in Visual Studio productivity - Visual Studio Blog
- Improving the State of Debug Performance in C++ - C++ Team Blog
- Standards conformance improvements to /Gw in Visual Studio version 17.5 Preview 2 - C++ Team Blog
- High-confidence Lifetime Checks in Visual Studio version 17.5 Preview 2 - C++ Team Blog
- C11 Atomics in Visual Studio 2022 version 17.5 Preview 2 - C++ Team Blog
Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@uint256_t 作者の思い込みを炙り出す Property Based Testing は Example Based Testing を書くよりも少し作成 cost が高い。Fuzzing は『あらゆる入力に対して適切な対応が出来る・落ちない』という property を探る PBT だけど、問題空間が大きくなるとつらくなって行く…」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@uint256_t fuzzing の方が導入が簡単ってのはあるんだろうなあ(そういえば MSVC も fuzzer 入れてきたな https://t.co/RgKU1yOgIZ )」 / Twitter
- Visual Studio 2022 Preview 4 is now available! - Visual Studio Blog
- 入谷 優さんはTwitterを使っています 「特定箇所を通った時だけブレークしてほしい、という場合は頻繁に有るので、Visual Studio 2022 Preview 4 の Dependent breakpoints は期待大です。」 / Twitter
- わたなべごうさんはTwitterを使っています: 「@TokihiroNaito @kondoujp @snapwith @sinpen 最近の VisualStudio あるいは VSCode でも、Ctrl+@ (メニュー/表示/ターミナル。英語キーボードだとバインド違うかも)でIDE内部窓で現在のプロジェクトの場所でターミナル開くのでそちらでも良いかもしれません。(標準はPowerShellですが設定ボタンの先でどれを標準にするか変更できます)」 / Twitter
- Microsoft Visual Studio - Wikipedia
- 2010年2月号 目次 | Interface – CQ出版
- インターフェース誌のダウンロードコーナ デバイスドライバーズ
- 入谷 優さんはTwitterを使っています 「ソリューションのルートに .vsconfig を置くと、不足している Visual Studio のコンポーネントを自動的にインストールできることを知りました。あれこれをインストールせよ、と手順書に書く必要が無くなりますね。 https://t.co/XooypAT0dI」 / Twitter
- インストール構成をインポートまたはエクスポートする | Microsoft Docs
- dotnet/cli-lab: A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
- Releases · Microsoft/VisualStudioUninstaller
- Visual Studioでも最新のClangが使いたい! - Qiita
Edge
- Microsoft Edge Insider Channels をダウンロード
- Microsoft Edge Insider
- Microsoft Edge Insider - Microsoft Tech Community
- ビジネス向け Microsoft Edge のダウンロード | Microsoft
- マイ フィードバック · Community
拡張
GIGAZINE
- Chromeの操作を記録してPuppeteerやPlaywrightのコードに置き換えてくれる「Headless Recorder」レビュー - GIGAZINE
- URLについてくる不要なパラメーターを消してくれる拡張機能「ClearURLs」レビュー - GIGAZINE
- 2000件以上のGoogle Chrome向け拡張機能がセキュリティを低下させているという指摘 - GIGAZINE
- 無料で文章やコードを校正できる「textlint」にブラウザ拡張機能「textlint editor」が登場したので使ってみた - GIGAZINE
- 大量に開いたタブをURLに応じて自動的にグループ化してくれるChrome向け拡張機能「Acid Tabs」レビュー - GIGAZINE
- 無料でJavaScriptによるトラッキングを防げるマルウェア対策拡張機能「JShelter」をフリーソフトウェア財団が発表 - GIGAZINE
- Chrome拡張機能の新仕様「Manifest V3」は非常に有害だと電子フロンティア財団が非難 - GIGAZINE
- ブラウザで動作&TwitterやYouTubeも購読可能なRSSリーダー「Feedbro」を使って情報収集を爆速化してみた - GIGAZINE
- 無料でページを保存&完全オフラインで動作&ユーザー登録不要のChrome・Firefox・Edge拡張「TagSpaces Web Clipper」 - GIGAZINE
- Twitterで「このユーザーに関わっている人を全員ブロック」を一発実行できる「Red Block」の使い方 - GIGAZINE
- 「Cookieを許可してください」を自動的に非表示にできる拡張機能「I don’t care about cookies」を使ってみた - GIGAZINE
- 無料でChrome・Firefoxの操作を自動化&ファイルのアップロードやデスクトップの操作もできる「UI.Vision」 - GIGAZINE
- YouTubeの字幕を自動で翻訳して読み上げてくれる拡張機能「CaptionSpeaker」を使ってみた - GIGAZINE
- AdGuardが世界初となるChromeの「Manifest V3」対応版広告ブロッカー「AdGuard Browser extension V3」をリリース - GIGAZINE
- Chromeの人気拡張機能に「不正なアフィリエイトを挿入するコード」が仕込まれていることが判明 - GIGAZINE
- 悪名高いChromeの拡張機能新仕様「Manifest V3」の移行スケジュール発表、広告ブロッカーや競合ブラウザの対応は? - GIGAZINE
窓の杜
- 「Google Chrome」の「保護強化機能」を有効化して鉄壁のセキュリティに - 窓の杜
- Google、「Manifest V2」準拠のChrome拡張を段階的に廃止 ~2023年には利用不能に - 窓の杜
- 「VirusTotal」公式の拡張機能「VT4Browsers 4.0」が公開 ~ただし使い方には注意 - 窓の杜
- 拡張機能に安心を ~Googleが「Chrome ウェブストア」に2つの認定バッジを導入 - 窓の杜
- 「Manifest V2」の完全廃止は2024年1月 ~Googleが移行スケジュールをアップデート - 窓の杜
- Microsoft公式、GitHubリポジトリをWeb版「Visual Studio Code」で開くブラウザー拡張が登場 - 窓の杜
infoQ
- Chromeブラウザ拡張機能の調査により、人気のある拡張機能のパフォーマンス影響が明らかに
- MetaがWebコードの真正性を立証するためのブラウザ拡張をオープンソース化
blog
- GhostText: 好きなブラウザでの入力を好きなエディタで行う
- Webブラウザの拡張機能を標準化へ、Apple、Google、Mozilla、マイクロソフトらがW3C WebExtensions Community発足 - Publickey
- PDF Translator 使い方 - pipbcmsi’s diary
- ドキュネオさんはTwitterを使っています 「tenntennさんに収録のテクニック教えてもらいました 🙏 * 録画中に喋りをミスった場合、そのまま喋り直して、編集でカット * QuickTimeで録画して.movで保存 * Picture-in-Picture Extensionを使えばセルフィ埋め込みが可能 * カメラ横に人形を置いてそれに話かける * カメラ横にカンペを表示」 / Twitter
- Create Link - Chrome ウェブストア
- Google 翻訳 - Chrome ウェブストア
- PDF Viewer - Chrome ウェブストア
- Tracking Token Stripper - Chrome ウェブストア
- Wayback Machine - Chrome ウェブストア
- Google アナリティクス オプトアウト アドオンのダウンロード ページ
- テキストエンコーディング - Chrome ウェブストア
- Picture-in-Picture Extension (by Google) - Chrome ウェブストア
- Vimium - Chrome ウェブストア
- ふりがな付与機能・サテライトオフィス - Chrome ウェブストア
- Twitterで消せない「おすすめ」を消すChrome拡張
- iCloudパスワード - Chrome ウェブストア
- Microsoft Power Automate - Microsoft Edge Addons
- PDF Translator - Chrome ウェブストア
- yoshinobc/PDF-Translator: PDF Translator Chrome-extension
- Microsoft エディター、スペルと文法のチェック
- Microsoft Edge アドオンストアの開発者ポリシー - Microsoft Edge Development | Microsoft Docs
- DeepL翻訳(ベータ版) - Chrome ウェブストア
- DeepLでPDFファイルのレイアウトを崩さず丸ごと翻訳できるサードパーティChrome拡張機能「DeepL Opener」を使ってみた - GIGAZINE
- DeepL opener - Chrome ウェブストア
- Cookieなどを削除してペイウォールを解除するブラウザ拡張機能「Bypass Paywalls Clean」 - GIGAZINE
- ウェブページ全体をスクリーンショット - FireShot - Chrome ウェブストア
- How to inspect network traffic from Chrome extensions - Stack Overflow
- 広告ブロッカーを殺すChromeの新しい拡張機能プラットフォーム「Manifest V3」の移行スケジュールが発表、2024年1月に完全移行へ | TEXAL
窓の杜
- Microsoft、「Internet Explorer 11」のサポート終了を発表、~猶予期間は約1年、2022年6月15日まで - 窓の杜
- 「Microsoft Edge 91」からダウンロードファイルへの警告が強化 - 窓の杜
- 「Microsoft Edge」でダウンロードしたアプリに警告が……実行して大丈夫? - やじうまの杜 - 窓の杜
- Webページのリンクになっている文字列をコピーするスマートな方法 - やじうまの杜 - 窓の杜
- やればできるじゃん! Windows 11に既定ブラウザーを簡単にセットできる機能 - やじうまの杜 - 窓の杜
- 「Microsoft Edge 101」が安定版に ~PWA関連の改善を順次展開 - 窓の杜
- 「Microsoft Edge」開発者ツールの3Dビューツールが強化 - 窓の杜
- 「Microsoft Edge 104」が正式版に ~セキュリティ優先モードに「ベーシック」レベルを追加 - 窓の杜
- 「Microsoft Edge」に「Visual Studio Code」みたいなコマンドパレットが試験導入中 - やじうまの杜 - 窓の杜
- 推しユーチューバーをフォロー可能に ~「Microsoft Edge」のコレクション機能が強化 - 窓の杜
- 「Microsoft Edge」にキャッシュの自動圧縮機能 ~パフォーマンスとディスク使用量に効果あり - 窓の杜
- 「Microsoft Edge」の「めっちゃすげえセキュリティモード」、CET/ACGの導入で鉄壁に - 窓の杜
- JITをやめてみる ~Microsoft、「Edge」で「めっちゃすげえセキュリティモード」をテスト - 窓の杜
- めっちゃすげえセキュリティモード、「Microsoft Edge 96」で秘かにリリース - 窓の杜
- 次期「Microsoft Edge」に気になる変更……検索エンジンが「Bing」から変えられない - やじうまの杜 - 窓の杜
- 「Microsoft Edge 106」が正式版に ~フィッシング対策「SmartScreen」が刷新 - 窓の杜
- 「Microsoft Edge」に電卓やゲームを詰め込んだサイドバー ~「Edge 106」から展開中? - やじうまの杜 - 窓の杜
- Microsoft、「Edge」の新機能を発表 ~チームでタブ・お気に入り・履歴を共有 - 窓の杜
- 「Microsoft Edge」の省電力機能「効率モード」が改善、より分かりやすく - 窓の杜
- 「Microsoft Edge」のPWAアプリ対応が強化 ~タイトルバーのカスタムに対応、通知も強化 - 窓の杜
PC Watch
- Internet Explorer 11のサポートが2022年6月で終了 - PC Watch
- 文書作成など、Chromeのアドレスバーからコマンド呼び出し可能に - PC Watch
- IEのサポート終了まで3カ月。Microsoft、EdgeのIEモードを改善 - PC Watch
マイナビニュース
- Edgeのタブ共有機能を1カ所に集約した「Desktop Sharing Hub」- 阿久津良和のWindows Weekly Report | マイナビニュース
- 「Edge縛り」に見るMicrosoftの姿勢はいただけない - 阿久津良和のWindows Weekly Report | マイナビニュース
- 拡張が進むEdgeは高機能化なのか肥大化なのか - 阿久津良和のWindows Weekly Report | マイナビニュース
- 早過ぎる新「Microsoft Edge」のリリースサイクルを緩和する「延長安定版チャネル」とは:企業ユーザーに贈るWindows 10への乗り換え案内(98) - @IT
- IE11 サポート終了の歴史 | blog.jxck.io
- マイクロソフトは、2022年までにInternet Explorer 11を廃止します。|自作.com
- 山市良のえぬなんとかわーるど: メモ:Edge で support.microsoft.com の表示がおかしくなったら...
- ASCII.jp:現在表示中のウェブページを他のブラウザで開くのをコピペより簡単にする方法 (1/2)
- Internet Explorer 11 デスクトップ アプリケーションのサポート終了 – 発表に関連する FAQ のアップデート - Windows Blog for Japan
- Windows 11に「規定のブラウザ」選択機能が追加、Microsoft Edge囲い込み戦略に改善の兆し - GIGAZINE
- 2022年6月15日にサポートが終了するInternet Explorerをただちに廃止するようにMicrosoftが警告 - GIGAZINE
- Internet Explorer 11 はサポートを終了しました。長年のご愛顧ありがとうございました。 - Windows Blog for Japan
- Microsoftがブラウザ組み込みVPN機能「Microsoft Edge Secure Network」をEdge Canaryに搭載 - GIGAZINE
- [速報]マイクロソフト、Webブラウザの複数タブをまとめてリアルタイムにチームで共有できる「Microsoft Edge Workspaces」発表。Ignite 2022 - Publickey
- Microsoft Edge
IME
- IME Cursor
- IME Cursor Forum - Google グループ
- 日本語入力システム「ATOK」 | ATOK Passport |【公式】ATOK.com
デバイス
- ソニー株式会社 | FeliCa | 個人のお客様 | サポート・ダウンロード | 基本ソフトウェア | NFCポートソフトウェア
- Sony Japan | FeliCa | 個人のお客様 | ダウンロード | SFCard Viewer 2
- SFCard Viewer Web版
- HL-L2360DN | 日本 | ブラザーサポート
- 日本 | ブラザーサポート | ブラザー製品調査・サポートプログラムのダウンロードとインストール
- 【西川和久の不定期コラム】Windowsマシン同士のHID共有、コピペなど可能な「Mouse without Borders」を試す ~Universal Controlの補足説明も - PC Watch
- Download Microsoft Garage Mouse without Borders from Official Microsoft Download Center
Intel
- Free Intel® Software Development Tools
- Intel® Software Development Emulator
- インテル® Manageability Commander
- インテル最新CPU「第12世代Core」でvProに新展開、「スモールビジネス向けのvPro」も発表 - INTERNET Watch
- 単一ソースコードでメニーコアやGPUやFPGAに対応したクロスアーキテクチャー対応のソフトウェア開発を可能に。インテルの「oneAPI ツールキット 2022」[PR] - Publickey
- OpenVINO™ ツールキット | ソフトウェア開発 | Intel Japan
- oneapi-src/oneDNN: oneAPI Deep Neural Network Library (oneDNN)
- 富岳でも活用。競合他社製品もカバーするインテルの最新開発環境 - PC Watch[Sponsored]
- Intel oneAPIを入れるとClangが死ぬかもしれない
- Intel oneAPIのIntelコンパイラやDPC++についてちょっと調べた
- Intel、oneAPIツールキット2023年版を12月に提供開始 - PC Watch
- Intel oneDNN 2.7 Released With Sapphire Rapids & DG2 Optimizations, AMD GPU Bringup - Phoronix
- Intel's Codeplay Will Now Oversee The oneAPI Development Community - Phoronix
- Intel Releases oneVPL 2022.2 With GPU Copy Improvements, Linux System Analyzer - Phoronix
- Intel Hosting oneAPI AI/HPC Developer Summit Next Week - Phoronix
- Intel oneDNN 3.0 Being Prepared With More Performance Optimizations - Phoronix
- Intel oneAPI Level Zero Being Packaged Up For Fedora - Phoronix
- Intel oneAPI 2023 Released - AMD & NVIDIA Plugins Available - Phoronix
- Intel Preparing More oneAPI GPU Accelerated Components For Blender - Phoronix
- Intel Releases oneDNN 3.0 In Advance Of Sapphire Rapids - Phoronix
- インテルのソフトウェアに権限昇格の恐れ ~2023年1月のIntelセキュリティアドバイザリが公開 - 窓の杜
- Download LibreOffice | LibreOffice - Free Office Suite - Based on OpenOffice - Compatible with Microsoft
- ダウンロード:WindowsとmacOSへDeepLを組み込む
- ダウンロードセンター - Zoom
- アプリ インストーラー を入手 - Microsoft Store ja-JP
- iTunes を入手 - Microsoft Store ja-JP
- WSL のインストール | Microsoft Docs
- 以前のバージョンの WSL の手動インストール手順 | Microsoft Docs
- Ubuntu 22.04 LTS を入手 - Microsoft Store ja-JP
- Download Ubuntu Desktop | Download | Ubuntu
- Download Windows 11
- 実行ポリシーについて - PowerShell | Microsoft Docs
Hardware
その他
- ALLDATASHEET.COM - Datasheet search site for Electronic Components and Semiconductors and other semiconductors.
- どうして昔の人は八進数でしゃべるのか?
- IBM 7030 - Wikipedia
- Cray-2 - Wikipedia
- IBM Power Virtual Server - 概要 - 日本 | IBM
- リーク情報の用語解説 - 自作ユーザーが解説するゲーミングPCガイド
- OEMとかリテールとかってなんだ? - 自作ユーザーが解説するゲーミングPCガイド
- CPUサーマルグリスについて - 自作ユーザーが解説するゲーミングPCガイド
- CPUサーマルパッドについて - 自作ユーザーが解説するゲーミングPCガイド
- 140mm/120mm PWMファンの比較 -Noctua神話は本当か?- - 自作ユーザーが解説するゲーミングPCガイド
- BugStories
- マイコン製品における出荷テストとは:ハイレベルマイコン講座【出荷テスト編】(1)(1/4 ページ) - EDN Japan
- マイコン製品出荷時に実施されているテスト内容:ハイレベルマイコン講座【出荷テスト編】(2)(1/5 ページ) - EDN Japan
- Kano PC - 借り初めのひみつきち
- CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明 - Qiita
- “PC”の定義は何か まずはIBM PC登場以前のお話から (1/3) - ITmedia NEWS
- ASCII.jp:Windows PCのヘッドセット端子にマイクは直接接続可能……ではない!? (1/2)
- 【藤山哲人と愛すべき工具たち】ネジ山が潰れた! ネジ頭が取れた! 悲劇を救う天使の工具 - PC Watch
- 【大原雄介の半導体業界こぼれ話】高速化が進む電気信号 - PC Watch
- 東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネルギー効率3.8倍 - PC Watch
- Hara-Laboratory/subrisc: SubRISC: Simple Instruction-Set Computer for IoT edge devices
- SUBRISC - Google 検索
- SubRISC+ メモ : 竹下世界塔の計算機よもやま話
- Thoughts on Corewar...: Redcode's OISC - the DJN Computer
プロセスルール
- 半導体のプロセスルールについての補足
- ゆきぞー𓃢さんはTwitterを使っています: 「いまのCPU回路で言われる7nm,5nm,3nmと言われているプロセスルールは、実体は20nmくらいで3D配線で作られていて前世代に比べて積み込めるトランジスタ数の仮想的な数字になっているのだとか。」 / Twitter
- ゆきぞー𓃢さんはTwitterを使っています: 「エレクトロマイグレーション現象で流れる電子によって配線の原子が削られて劣化するので20nm当たりが耐用年数的に限界とか。」 / Twitter
- ゆきぞー𓃢さんはTwitterを使っています: 「Intel,TMSC,SAMSUNGで同じ7nmでも性能が違うという話を前に聴いたことがあるけど、そういうことだったのかな。」 / Twitter
- ゆきぞー𓃢さんはTwitterを使っています: 「「7nmの半導体」に7nmの箇所はどこにもなかった https://t.co/FTn17gRDVf」 / Twitter
- 「7nmの半導体」に7nmの箇所はどこにもなかった - ライブドアニュース
Intel
その他
その他
- 米IntelがRISC-V Internationalに最高位レベルで加盟 | OSDN Magazine
- intelのCPUロードマップ : 過去・現在・未来のLake – curional
- インテル、CPUの性能アンロックコードを販売 - Engadget 日本版
- 20210327
- IACAとは何ですか?どのように使用しますか? - Javaer101
- Intel Invests $3.5 Billion in New Mexico Fab to Focus on Foveros Packaging Technology
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「今日のi386系列CPUはすべて石器時代の16bitモードで起動するようになっており、32/64bitを使うには起動後に切り替える必要がある。しかし最初から32ビットモードで起動する「幻のCPU」があった。Intel 80376 (1989年) である。しかしこれはページングをサポートしてなかった。 https://t.co/Y9Zf80ovQ4」 / Twitter
- The Intel 80376 – a Legacy-Free i386 (with a Twist!) – pagetable.com
- nviennot/core-to-core-latency: Measures the latency between CPU cores
- cpu-assembly-examples/x86/linux/E00.perf_expt at master · takenobu-hs/cpu-assembly-examples
- Intelの課金システムの仕様が確定。名称はIntel On Demand
- Intel® Data Streaming Accelerator User Guide
News
ITmedia NEWS
- RISCとCISCの境目がなくなる Pentium Proの逆襲 (1/3) - ITmedia NEWS
- Intel、「Intel Pentium」と「Intel Celeron」ブランドはただの「Intel」に 2023年から - ITmedia NEWS
Phoronix
- "Intel Processor" Replaces Pentium & Celeron Brands - Phoronix
- Intel Confirms "On Demand" Upgrades With Sapphire Rapids (Software Defined Silicon) - Phoronix
- LLVM Begins Preparing For Intel Sierra Forest & Grand Ridge CPUs - Phoronix
- Intel Granite Rapids Support Submitted For The GCC Compiler - Phoronix
- Intel MIC Offloading For Xeon Phi Dropped With GCC 13 Compiler - Phoronix
- Intel In-Field Scan (IFS) Driver Improved - Will Remove Its "Broken" Tag - Phoronix
- Intel Details The Accelerators & Security Features For On Demand / Software Defined Silicon - Phoronix
- Intel Posts Reworked Linux Patches To Improve Hybrid CPU + HT/SMT Kernel Behavior - Phoronix
- Intel Habana Labs SynapseAI Core Updated With Gaudi2 Support - Phoronix
- Intel's IPU6 Webcam Linux Driver Still A Mess, But Some Patches To Help - Phoronix
- Intel On Demand Driver Ready To Activate Your Licensed CPU Features With Linux 6.2 - Phoronix
- Intel Adds "Emerald Rapids" Support To The GCC 13 Compiler - Phoronix
- LLVM Lands Support For Intel's Emerald Rapids - Phoronix
TEXAL
- インテル、量子チップの量産化で大きなマイルストーンを達成 | TEXAL
- インテルCEOゲルシンガー氏、AMDチップを自社工場で製造すること前向き、世界最速のCPU、GPU、ディスクリートGPUの製造を目指すと表明 | TEXAL
- ファンを使わずチップを直接冷却する「AirJet」が、今後のIntelに製品に搭載される | TEXAL
- インテルの研究者が、2030年までに1兆個のトランジスタを搭載したチップを実現する道筋を示す | TEXAL
- Intel、今後の4、3nmノードや、オングストロームスケールへと至るビジョンを共有 | TEXAL
北森瓦版
- 北森瓦版 - Intel コンシューマ向けのOptane SSDを終売へ―後継製品の予定もなし
- 北森瓦版 - 2023年以降、Mobile向け製品からPentium, Celeronのブランドが消滅する
- 北森瓦版 - 今後のXeonの流れ、“Genoa”の性能など
- 北森瓦版 - ムーアの法則は続く―2030年までに1兆トランジスタを目指すIntel
Coelacanth's Dream
- Intel Lightning Mountain を追う | Coelacanth's Dream
- 謎?のコードネーム、Intel Molasses Rapids | Coelacanth's Dream
- Intel Pentium, Celeron ブランドが簡素化され "Intel" ブランドに ―― Alder Lake-N から適用か | Coelacanth's Dream
- コードネームあれこれ ―― Phoenix/2, Plum Bonito, Wheat Nas, Hotpink Bonefish, Intel PTP | Coelacanth's Dream
- Intel Sierra Forest, Grand Ridge, Granite Rapids でサポートされる新命令 | Coelacanth's Dream
- Intel Rocket Lake-U の断片 | Coelacanth's Dream
- [雑記] 2022/10/20 | Coelacanth's Dream
- Intel SDSi の名称が Intel On Demand に | Coelacanth's Dream
- Intel Emerald Rapids の CPUID Model と Granite Rapids のセグメント | Coelacanth's Dream
Nishiki-Hub
- Intel、UCIeの採用を発表 〜 Arrow Lakeより後の製品で - Nishiki-Hub
- Intel、「Celeron」「Pentium」ブランドを廃止し「Intel Processor」ブランドへ統一 〜 2023年 ラップトップ向けSKUから - Nishiki-Hub
- Intel、課金することでCPUの機能を開放するサブスク「Intel On Demand」を発表 〜 データセンター向けCPUで採用 - Nishiki-Hub
- Intel、2030年までに1パッケージあたり1兆トランジスタを目指す 〜 ムーアの法則は続くと主張 - Nishiki-Hub
PC Watch
- 【大原雄介の半導体業界こぼれ話】消える100ドル未満のプロセッサ - PC Watch
- Intel、ポストCMOSとなる新半導体素材「MESO」 ~CMOS比30分の1の消費電力や5倍の演算性能、ムーアの法則継続にも - PC Watch
- 他人のPCで仮想通貨マイニングする攻撃を防ぐIntelとMicrosoftの技術 - PC Watch
- Intel、仮想化処理などデータセンターのCPU負荷を軽減する「IPU」 - PC Watch
- Intel、半導体技術首位の座を2025年に奪還する意欲的な新ロードマップ - PC Watch
- 【笠原一輝のユビキタス情報局】巻き返しなるか!? Intelが今後4~5年で5世代分のプロセスノードを連投 - PC Watch
- Intelプロセッサを利用したAIの実装のメリットとは? ~Intelがなぜデータセンターで強いのか? その包括的な製品群を徹底解剖!- PC Watch[Sponsored]
- 世界初のマイクロプロセッサ「Intel 4004」生誕50周年 - PC Watch
- CPUを評価する時に最も注目すべき「リアル・ワークロード」とは? - PC Watch[Sponsored]
- Intel、ファウンドリ事業に10億ドルの基金。RISC-V IPコアも提供 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、製造技術「Intel 18A」の開発を前倒し、自社製品製造とファンダリサービスが相乗効果を生む - PC Watch
- 第12世代Coreベースでセキュリティ性が向上した「vPro」、Chromebookにも展開 - PC Watch
- Intel、第2世代DLアクセラレータ「Habana Gaudi2」。NVIDIA A100の約2倍の性能 - PC Watch
- 競合との競争の中で生きてくる、インテルCPU“5つの強み” - PC Watch[Sponsored]
- Intelの半導体製造、独立化をさらに推進 - PC Watch
- 後藤弘茂のWeekly海外ニュース
- 【レビュー】新世代CPUと旧世代マザーを通販で購入。未対応BIOSをUSBメモリで更新してみた - PC Watch
- Intel、2030年までに1パッケージに1兆トランジスタ実現へ - PC Watch
- 【福田昭のセミコン業界最前線】IntelがIEDM 2022で披露する次世代の半導体デバイス技術 - PC Watch
- 【笠原一輝のユビキタス情報局】チップレットになった「第4世代Xeon SP」、性能向上の鍵はAMXと4つのアクセラレータ - PC Watch
GIGAZINE
- Intelの先進研究機関「Intel Labs」がどのような問題に取り組んでいるのかを中の人が解説 - GIGAZINE
- Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか? - GIGAZINE
- Intelが自動車向けチップ生産を計画中、6~9カ月以内の生産開始が目標 - GIGAZINE
- MicrosoftとIntelが勝手に仮想通貨を採掘する「クリプトジャッキング」からデバイスを保護する機能を発表 - GIGAZINE
- IntelがQualcommと提携し新チップを製造すると発表、2025年までのロードマップも公開 - GIGAZINE
- Intelが第2世代ニューロモルフィックチップ「Loihi 2」を発表、試作段階の「Intel 4」プロセスノードを採用 - GIGAZINE
- およそ3000種類の過去製品を保管する「Intelの秘密倉庫」の役割とは? - GIGAZINE
- Intelがムーアの法則を加速させるための計画を発表、配線密度10倍以上&ロジックスケーリング最大50%向上を目指す - GIGAZINE
- Intel史上最も驚異的なマシン「EUVシステム」の裏側を追ったムービーが公開中 - GIGAZINE
- Intelが1000億円越えのファンドを設立しオープンソースのRISC-Vに投資 - GIGAZINE
- IntelとAMDがロシアへの半導体販売を停止、TSMCも制裁に参加でロシアの国産チップにも影響する可能性 - GIGAZINE
- Intelの新プロセスノード「Intel 4」は従来製品と同じ電力で21.5%の性能向上&同性能を電力量40%減で実現 - GIGAZINE
- Intelがチップ価格を最大20%引き上げる予定、インフレによるコスト増で秋には幅広いCPUや周辺機器の価格が上昇か - GIGAZINE
- IntelがLinuxカーネルに用途不明のコードを追加、新たな収入源の模索か - GIGAZINE
- Intel・AMD・Microsoft・TSMC・Samsungなどがチップレットの新規格を策定する「UCIe」コンソーシアム設立を発表 - GIGAZINE
- Intelが考える「ムーアの法則」の次の波とは? - GIGAZINE
Publickey
- インテルから「oneAPI」登場。アプリケーション起動時にCPU/GPU/FPGA構成を自動判別、処理を適切なプロセッサに割り振る[PR] - Publickey
- インテル、新デバイス「Infrastructure Processing Unit」(IPU)発表。スマートNICを拡張しストレージ仮想化やネットワーク仮想化処理などCPUからオフロード可能に - Publickey
- インテル、オープンな命令セットを推進する「RISC-V 」に最高位メンバーとして加盟。RISC-VベースのFPGAチップも提供開始など、RISC-Vへのコミットを明確に - Publickey
マイナビニュース
- 完全版!! 「Core i7」極限検証 - 内部アーキテクチャ解析編 (13) Cache (3) | マイナビニュース
- なぜTSMCだけEUVプロセスで高い歩留まりを達成できるのか? | マイナビニュース
- Intel 4004が50周年、第12世代Coreまで続くマイクロプロセッサのマイルストーン | マイナビニュース
- Intel、「ムーアの法則」維持・前進のための最新技術を公開 | マイナビニュース
- Intel、原子3個分の厚さしかない新素材でトランジスタ微細化へ 2030年までに1兆個集積 | マイナビニュース
ASCII.jp
- ASCII.jp:次世代CPUのIntel 4とIntel 18Aを半年前倒しで投入 インテル CPUロードマップ (1/3)
- ASCII.jp:忘れ去られたCPU黒歴史 20年早すぎたCPU iAPX 432 (1/3)
- ASCII.jp:インテル初のEUV露光を採用したIntel 4プロセスの詳細 インテル CPUロードマップ (1/3)
- ASCII.jp:Sapphire Rapidsの量産は2023年に延期、Optaneが終焉 インテル CPUロードマップ (1/3)
EE Times Japan
- AMDは2016、Intelは2014……。最新CPUチップの刻印が意味するもの (1/3) - EE Times Japan
- 前進し続けるIntel:製造委託は成熟したアプローチ - EE Times Japan
自作.com
- Sapphire Rapidsの予備機能が明らかに。56コア、64GB HBM2E、MCMデザイン|自作.com
- インテルとマイクロソフト、仮想通貨ジャッキング対策で提携|自作.com
- インテルのSkylake Visionaryがクライアントチップ開発の指揮に復帰|自作.com
- インテルがGlobalFoundriesを300億ドルで買収する交渉を開始|自作.com
- 2025年までのインテルのプロセスロードマップ。プロセスノードの名称変更、オングストローム時代の幕開け|自作.com
- インテル社、第3四半期の消費者向けチップの不足を警告|自作.com
- Intel: 来るべき米国のFabは小さな都市になり、600億~1,200億ドルのコストがかかる|自作.com
- インテル、ソフトウェア定義のXeon CPUを準備:今買って、後で機能を追加|自作.com
- intel/intel-sdsi
- インテル、4nmのLoihi 2 Neuromorphicリサーチチップを公開|自作.com
- インテルが20億ドルでSiFive社を買収しようとしたが、失敗に終わったと報道される|自作.com
- インテル社のパット・ゲルシンガー氏が語る「スーパー・ムーアの法則」と数十億ドルの賭け|自作.com
- Intelによると、ITCが重要な材料を禁止すると、供給不足が悪化する可能性あり|自作.com
- Intelは新しいFabサイトで2,000億ドルの決定を遅らせる|自作.com
- IntelCEOのPatGelsingerがSamsungを訪問し、コラボレーション交渉の可能性を探る|自作.com
- IntelがZettascaleスーパーコンピューターのRISC-Vアーキテクチャを調査|自作.com
自作ユーザーが解説するゲーミングPCガイド
- インテル、民生用チップ向けに2021年第3四半期までABF基板が不足することを確認、CPU価格の上昇を予想 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、2025年以降のプロセスロードマップを発表。新しいネーミングスキーム、10nm ESFはIntel 7、7nmはIntel 4、Intel 3、Intel 20A、そしてその先へ - 自作ユーザーが解説するゲーミングPCガイド
- 2022年からのIntelのデスクトップCPUの考察 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、RTX/DLSS技術を開発した元NVIDIA研究員のAnton Kaplanyan氏を引き抜き - 自作ユーザーが解説するゲーミングPCガイド
- インテル社がx86人材のためにVIAテクノロジー社と1億2500万ドルの買収契約を開始し、混乱が生じる - 自作ユーザーが解説するゲーミングPCガイド
- インテル、IEDM 2021でムーアの法則を加速させる計画を発表:10倍の密度向上、最大50%のロジック・スケーリング、ポストシリコン・トランジスタの時代へ - 自作ユーザーが解説するゲーミングPCガイド
- インテル、ファウンドリ・イノベーション・エコシステム構築のための10億ドルファンドを発表。Open RISC-VとChipletの技術を活用する - 自作ユーザーが解説するゲーミングPCガイド
- インテル、CPUの追加機能を購入後に有料で提供することを希望 - 自作ユーザーが解説するゲーミングPCガイド
- インテルCEO、AMDチップの自社工場での製造に前向き、世界最速のCPU、GPU、ディスクリートGPUの製造を目指すと表明 - 自作ユーザーが解説するゲーミングPCガイド
- instlatx64
- Identify CPU features (beta)
- インテル チップセット - Wikipedia
- Template:Intel processors - Wikipedia
- mjg59 | Microsoft aren't forcing Lenovo to block free operating systems
- a4lg.com | x86 ファミリーとモデル一覧
- IntelのCPUの末尾についているK, S, Tなどのアルファベットについて
- Intel CoreなどIntel製CPUの型番ごとの違いや性能と見分け方を解説
- BIOS Implementation Test Suite
- bochs.sourceforge.net/techspec/PORTS.LST
- ASRock Rack > E3C236D2I
- Intel iAPX 432 - Wikipedia
- Microarchitecture Cheat Sheet - Google スプレッドシート
- MIPI* SoundWire* Interface - 006 - ID:631119 | Intel® 500 Series Chipset Family On-Package PCH Datasheet Volume 1
- SoundWire - Phoronix
Intel
SDM・ISA Extensions・Optimization
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
- ISA Extensions | Intel® Software
- Intel AVX512-FP16 Architecture Specification
- Intel® Software Development Emulator
- Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
- Intel® Architecture Instruction Set Extensions Programming Reference | Intel® Software
- Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
- intel/optimization-manual: Contains the source code examples described in the "Intel® 64 and IA-32 Architectures Optimization Reference Manual"
- Intel(R) 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
- Intel® 64 and IA-32 Architectures Optimization Reference Manual
- Hisaki Oharaさんのツイート: "ISA Extensions出てた。主にguest OS monitoringを実現するためのEPT-based Sub page permission、これ変態機能でしょう https://t.co/7yNl961Zl7"
- Hisaki Oharaさんのツイート: "ISA ExtensionsのTable 1-1が死ぬほど便利。特定の命令セットがどの世代から入ったかまとめられている。つうかなんで今までなかったのか。あとさりげなくIcelakeの文字が。 https://t.co/7yNl961Zl7 https://t.co/sujkidSIX2"
- Hisaki Oharaさんのツイート: "BPU (Branch Prediction Unit)は最近のOptimization Reference Manualには最低限のことしか書いていないのだけど、Branch Target Bufferといった言葉の意味を知る程度でよければ、Pentium IIとかIIIの時代… https://t.co/frQiiqVWPA"
- Intel® Architecture Optimization
- Hisaki Oharaさんのツイート: "いまどきのアーキテクチャでは激変しているはずなので参考以上で受け取っては駄目です。ただ、Google Project Zeroのblogを読む際の一助になるかもしれない。つうかこのファイル、https://t.co/SJAL9HrWvEからまだダウンロードできるようになっていると… https://t.co/rB3R5eKitY"
- Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- Intel® Architecture Instruction Set Extensions and Future Features Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
Processors and Chipsets
- Intel Processors and Chipsets by Platform Code Name
- Intel® Core™ Processors Technical Resources
- Intel® Xeon® Processors Technical Resources
- Intel® Chipsets
- Intel® Desktop Chipsets
- Intel® Mobile Chipsets
- Intel® Server Chipsets
- Intel® Product Specifications
- 8th and 9th Generation Intel® Core™ Processor Families Datasheet, Volume 1 of 2
- 10th Generation Intel® Core™ Processor Instruction Throughput and Latency Docs | Intel® Software
- Intel® Processors based on Gracemont Microarchitecture Instruction Throughput and Latency - 350391-Intel-Processors-Based-on-Gracemont-Microarchitecture-Latency-Throughput.pdf
Security
- Best Practices for Software Security
- Technical Documentation for Software Security
- white-paper-intel-hardware-shield.pdf
- Intel Security Features and Technologies Related to Transient...
- Intel® Boot Guard - Understanding the UEFI Secure Boot Chain
- What is Intel® Secure Key Technology?
- Intel® Product Security Center
- Memory Encryption Technologies
- Affected Processors: Transient Execution Attacks & Related Security...
- Adam LangleyさんはTwitterを使っています: 「It appears that Intel doesn't guarantee constant-time execution of _any_ instructions on Ice Lake or later unless a configuration bit is set: https://t.co/00RUCwUGSm」 / Twitter
- Data Operand Independent Timing ISA Guidance
- Hardware List
- Microcode Revision Guidance (Apr 3, 2018)
- インテル® リソース・ディレクター・テクノロジー (インテル® RDT)
- IPMI Technical Resources
- 製品の仕様情報 - Intel® Optane™ Memory Series
- Intel® Virtualization Technology for Directed I/O Architecture...
- Flexible Return and Event Delivery (FRED) Draft Specification
- Benefitting Power and Performance Sleep Loops | Intel® Developer Zone
- Nios® V Processor - Intel® FPGA
- Intel® Intrinsics Guide
- ゲーム用 PC の組み立て方 : ゲーム用 PC パーツとセットアップ手順 | インテル
- Intel® In-Memory Analytics Accelerator Architecture Specification - 350295-iaa-specification.pdf
- 01.org distribution(download.01.org)
デスクトップ
Coffee Lake
Intel
- Intel Core i38100 Processor 6M Cache 3.60 GHz Product Specifications
- Intel Core i59400 Processor 9M Cache up to 4.10 GHz Product Specifications
- 新しい保護機能をハードウェアに実装
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol.1
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol.2
- 8th Gen (S-platform) Intel® Processor Family Spec Update
- Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 1
- Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 2
- Intel® H370 Chipset Product Brief
- Intel® Z390 Chipset Product Brief
- インテル® Wireless-AC 9260 製品仕様
- インテル® Wireless-AC 9560 製品仕様
- Coffee Lake - Microarchitectures - Intel - WikiChip
- Core i3-8100 - Intel - WikiChip
- Intel Core i3-8100 - CM8068403377308 / BX80684I38100 / BXC80684I38100
- ASRock > B360M-HDV
- 【後藤弘茂のWeekly海外ニュース】Intel「第8世代Core」に見る、微細化準備が整っても、製品を移行させない/させたくない理由 - PC Watch
- Intel、第9世代Coreプロセッサに「Meltdown」対策をハードウェア実装 ~開発中の“単体GPU”のコンシューマ向け投入も明言 - PC Watch
- Intel、次期CPUにSpectre対策機能をハード実装 - PC Watch
- Intel、第9世代Core「Coffee Lake Refresh」を2021年末に製造終了 - PC Watch
- Core i7-9700Kの新ステッピング、今度はリテールパッケージが入荷 - AKIBA PC Hotline!
- Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE
- 新ステッピング「R0」のCore i7-9700Kが発売開始~既流通品と選択可能~ - エルミタージュ秋葉原
- 北森瓦版 - デスクトップ向けCore i 9000 seriesのS-specとsteppingを理解しよう
- Intelで脆弱性緩和済みCPUリスト - Qiita
- Spectre and Meltdown Hardware Protection Added to Intel's 9th Gen CPUs
- Best motherboard manufacturers. Biostar provides various high quality motherboard gaming series, including am4 motherboa
Comet Lake
- Intel® Celeron® Processor G5905
- Intel Celeron G5905 - CM8070104292115 / BX80701G5905 / BXC80701G5905
- Comet Lake - Microarchitectures - Intel - WikiChip
- Z490 UD AC (rev. 1.0) フォトギャラリー | マザーボード - GIGABYTE Japan
- Intel® Celeron® Processor G5925
- Intel Celeron G5925 - CM8070104292013 / BX80701G5925 / BXC80701G5925
- PRIME B460M-A - スペック|マザーボード|ASUS 日本
- Intel、10コア/5.3GHz動作の「Core i9-10900K」など第10世代Sプロセッサを展開 ~TB Max 3.0やThermal Velocity Boostサポートで高クロック動作 - PC Watch
- Intel、よりセキュアな第10世代Core vProプロセッサ - PC Watch
- BIOSTAR製IntelマザーがAMD Smart Access Memoryをサポートへ ~2021年1月より提供の最新BIOSで対応予定 - PC Watch
- ASUS、最新のBIOSアップデートによりIntel Z490, H470 & B460マザーボードのサイズ変更可能なBAR(スマートアクセスメモリ)をサポート可能に - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Radeon RX 6000 seriesのSmart Access Memoryの話題いろいろ
- 北森瓦版 - “Comet Lake-S”のPL1, PL2, Tauの値
- intelの第10世代は、あらかたの脆弱性が対策済みなのですか? - Quora
Rocket Lake
- Intel Core i5-11500 - CM8070804496809 / BX8070811500 / BXC8070811500
- CPUID for Intel Core i5-11500 (by tenpoku1000)
- Rocket Lake - Microarchitectures - Intel - WikiChip
- Z590 D (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump (#CypressCove, #AVX512F/CD/BW/DQ/IFMA/VBMI/VBMI2/VNNI/BITALG/VPOPCNTDQ/GFNI/AES/VPCLMUL supported, #AVX512_VP2INTERSECT unsupported) Commit: https://t.co/7vEz7YzH9P https://t.co/hVTEgW2O6M」 / Twitter
- Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump · InstLatx64/InstLatx64@1bbddaf
- InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700K (#RocketLake-S) A0671 CPUID dump, x64 InstLat dump added (thx, @IanCutress!) Good: critical byte-granularity cross-lane instructions behave the same way as on SNC/WLC Bad: tp of FP zmms are half of ymms = single 512bFPU Commit: https://t.co/jLHZfEFvCR https://t.co/STWAZddr7E」 / Twitter
- OctalCore Intel Core i7-11700K (Rocket Lake-H/S) A0671 CPUID dump, x6… · InstLatx64/InstLatx64@2903c11
- Intel、デスクトップ向け第11世代Core「Rocket Lake-S」の詳細を発表 ~CPUはIPCを大幅向上させたCypress Cove、GPUにXe Graphicsを採用 - PC Watch
- Rocket Lake-Sこと第11世代Coreデスクトップ・プロセッサが正式発表 - PC Watch
- 【Hothotレビュー】新コア設計でゲーム性能が向上した第11世代Coreを徹底ベンチマーク - PC Watch
- GeForce RTX 30シリーズで「Resizable BAR」対応開始 - PC Watch
- ASUS、M.2 SSDをツールレスで固定できる新機構「M.2 Q-LATCH」 - PC Watch
- Intel B460/H410マザーは第11世代Core対応できず - PC Watch
- GCC と LLVM に Rocket Lake のオプションが追加 | Coelacanth's Dream
- Intel Core i511500 Processor 12M Cache up to 4.60 GHz Product Specifications
- Intelの第11世代Coreプロセッサ「Rocket Lake」はそんなにダメだったのか? - GIGAZINE
Tiger Lake
- Intel、65W動作のデスクトップ版Tiger Lake「Core i9-11900KB」を追加 - PC Watch
- intel 10nm Tiger Lake CPUが第11世代デスクトップ・プラットフォームに登場、WillowCoveコア搭載のBシリーズチップ、TDP65Wを実現 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、超高クロックの65W BシリーズTiger Lake CPUを掲載|自作.com
- Intelの愛好家グレードのCore i9-11900KB Tiger Lake CPUがベンチマークされた|自作.com
- 北森瓦版 - “Tiger Lake-H”―Core i5 11260Hを搭載したMSI Pro HM570TI-B I526
Alder Lake
その他
M1 対 Alder Lake 性能談義
- SODA NoriyukiさんはTwitterを使っています 「例えば以下のuop cacheヒット時の同時実行可能op数とか見てもM1はCPUコアそのものが速い https://t.co/x4BvCw83BX Skylake: 4 fused uops/cycle Ice Lake: 5 fused uops/cycle Zen, Zen 2: 6 MOPs/cyle, 5 instructions/cycle Zen 3: 6 MOPs/cycle, 6 instructions/cycle Apple M1: 8 ops/cycle」 / Twitter
- Performance Speed Limits | Performance Matters
- MURAOKA TaroさんはTwitterを使っています 「うーん「M1 macにしたらコンパイルが速くなった」なんてのはメモリやディスクの帯域が増えてることが支配的であって、CPUそのものではないと思うんだよな。まぁ普通のユーザーにとっては知ったこっちゃないんだろうけど、ソフトウェアエンジニアはその違いを認識していて欲しいと願ったり。」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@n_soda https://t.co/WZmTHbnJvu」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「変にバズってるから補足しておくけど、M1のCPU部分が遅いと言っているわけではないです。自分で買って試しているからそれが速いことはよくわかってます。 一方でエンジニアならばベンチマーク対象であるタスクが何を測ってるか=何が支配的な要素であるかを認識しておいて欲しい、という話しです。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kaoriya M1のディスク帯域はWindows PCの最速機よりはむしろ遅いですし メモリ性能もTiger LakeだったらLPDDR4x-4266のモデルがあり、M1とスペック的には同じ性能が出るはずです。あと(iGPU性能とは異なり)メモリバンド幅がCPU性能でボトルネックになることは少なくM1との性能差を説明するのは無理ではないかと」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@n_soda エンジニアならそういうことを踏まえてちゃんと調べて把握したほうが良いよという話です。ただコンパイルというタスクにおいてはI/Oがボトルネックになってるケースが多かったので、そこを均さずベンチマークの結果だけに一喜一憂するのはエンジニア的ではないなと。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kaoriya コンパイルでI/Oがボトルネックというのも対象プログラムによりけりで、NetBSDのOS全体(ソース3.5GB )の並列ビルドを vmstat で眺めていると、ほぼほぼCPUボトルネックでした。 ふつうのPCの方がI/Oデバイスをリッチにできますから、本当にI/Oがボトルネックだったらx86の方が速くできそうですね…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kaoriya CPUネックだった場合も、(並列ビルド可能なソースツリーであれば) M1よりもRyzen Threadripperを使った方が間違いなく速そう…」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@n_soda ですね。なのでそういう諸条件を加味せずに一喜一憂するのはエンジニア的ではないという話です。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「Apple M1で、実測 7.36 instructions/cycle 出てるという例もググったらあった: https://t.co/ho5H2CpaEb」 / Twitter
- Counting cycles and instructions on the Apple M1 processor – Daniel Lemire's blog
- SODA NoriyukiさんはTwitterを使っています 「Alder Lakeはμop cacheからのスループット8μop/cycleに増えてるって話が出てたけど、 @tanakmura さんの実測値 https://t.co/unTSsDe1OV を見ると(8μopではなく実命令で) 6命令/cyleなので、IPC的にM1を越えるのは無理そう。 クロックはAlder Lakeの方が速いけど。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「https://t.co/v2t4FKv1Zj ごめん実況すると言ってたけどIPCひとりで取ってしまった。」 / Twitter
- 11-12.md
- tanakmura🎯さんはTwitterを使っています 「デコーダが6に増えてるので、xorとかの消えるやつが6になっとる。あとなんかの間違いでなければ lea がIPC6いってる。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「これは P core で、E coreはperfのインターフェースが変わっていてなんか対応しないとinstruction,cycleが取れない。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「説明書いてないけど、比較元はtigerlake」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「https://t.co/CoNcncxuqL いやleaのレイテンシが1より減ってるから、なんかの理由で演算が消えてる。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「lea は dst と src が同じだと消えるんかな…あ、lea eax,[eax]とかはアラインするための2byte nopとして使われてるから、これが消えると嬉しい場面はあるのか。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「@n_soda これは、一種類の命令しか出してないので、最大値ではないと思います。 MAX値はbit演算+add+mul+load+storeみたいなうまくいく組み合わせを探す必要があります。」 / Twitter
- tanakmura🎯さんはTwitterを使っています 「@n_soda 自動で見つけるいい手段思い付かないのでやってないですが、llvmのツール類の中にやろうとしてるのはありました (多分これ:https://t.co/hZQLx6GizI)」 / Twitter
- llvm-exegesis - LLVM Machine Instruction Benchmark — LLVM 13 documentation
- SODA NoriyukiさんはTwitterを使っています 「@tanakmura ありがとうございます。 https://t.co/ho5H2CpaEb がdoubleを扱うプログラムで計測していたのはそういう背景があったわけですか...」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @kaoriya 近年のコンパイル速度ネックは CPUが多いように思いますね。(RAM-DISKで爆速化したのは MS-DOS時代) https://t.co/kGPiuy91pG」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やはり手元の環境(i5-6500)では、現在も VC++ビルドで SSDよりもCPUがボトルネックに。 https://t.co/dCEuwNAy8H RAM Diskより、CPUコアを増やす方がビルド時間短縮には効果が高そう。 https://t.co/iCVw8LbV1e」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1993年頃にMS-C出力のHDD→RamDisk移行でビルド爆速化を経験して、2007年頃に再びVC++で試すと僅かしか速くならず調べると、.cは速くなるが、.cppはHDDよりCPUが主要な律速要因になっていた、という経験を思い出した。 ただ今の多コアだとまた状況は違うのかな https://t.co/PfsUrQRZcs」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「Visual Studioってメモリ上で全部ビルド(いわゆるLinuxでいうtmpfsで全部ビルド)ってできるんだっけ?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @kaoriya (原因を見極めようという意図は判るも、まずアタリを付けるための常識感覚も大事だよねと)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kaoriya IOネックかCPUネックかは、Windowsならタスクマネージャ、macOSならアクティビティモニタを出していれば判別できますから、ふだんからこの辺を出しっぱなしにして常識を養っておくかどうかですよね」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「@n_soda @shirouzu それでわかるのは自分がやってる作業についての傾向であって常識とは言えませんよ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kaoriya @shirouzu 自分のやっている作業についての常識は分かりますし、たとえばコンパイルにおいてIOネックであるという主張を出すのであれば、こういった根拠を同時に出すべきだと思います。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最初のアタリを付ける感覚と、さらに頭をリセットして網羅的な候補&確率分布を考える/思い浮かべられる能力、どちらも大事だよねと。 (なお初発に見える事象に対し、異様に鋭い洞察を働かせる方も居て参ることある…普段から対象のモデリング精度が高いのだろうな)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(蛇足だけど私の場合、技術的に「○○が支配的であって、XXではないと思うんだよな。…その違いを認識して欲しい」とまで書いて、その内容が間違い/微妙だったら、訂正/補足を書くかな…事実優先というか)」 / Twitter
Coelacanth's Dream
- Intel Alder Lake、Sapphire Rapids にて追加される2つの命令 ――AVX2 VNNI /HFNI | Coelacanth's Dream
- Intel、拡張命令リファレンスをアップデート (Sapphire Rapids /Alder Lake /ハイブリッドプロセッサ) | Coelacanth's Dream
- ChromiumOSへのパッチから Alderlake-S / Alderlake-P を確認 | Coelacanth's Dream
- Alder Lake では BIOS から一方の CPUタイプを無効化可能 | Coelacanth's Dream
- Alder Lake (Golden Cove + Gracemont) のキャッシュ詳細 | Coelacanth's Dream
- Intel Architecture Day 2021 個人的まとめ ―― Gracemont, Golden Cove, Alder Lake | Coelacanth's Dream
- Intel、Alder Lake Developer Guide を公開 | Coelacanth's Dream
- N バリアントも存在する Alder Lake | Coelacanth's Dream
- Alder Lake-N は Atom系コアのみの構成か | Coelacanth's Dream
- Alder Lake-N の PCIe I/O 構成 | Coelacanth's Dream
- Linux Kernel に Intel HFI を活用するパッチ | Coelacanth's Dream
- Intel Alder Lake と Rocket Lake に追加される CPUID Model | Coelacanth's Dream
- Intel、SDM に Golden Cove、Gracemont アーキテクチャの詳細を追加 | Coelacanth's Dream
- Intel、GCC に Sapphire Rapids と Alder Lake をサポートするパッチを投稿 | Coelacanth's Dream
Chips and Cheese
- Gracemont: Revenge of the Atom Cores – Chips and Cheese
- Intel’s Tremont: Atom Changes Course – Chips and Cheese
- Alder Lake – E-Cores, Ring Clock, and Hybrid Teething Troubles – Chips and Cheese
- Popping the Hood on Golden Cove – Chips and Cheese
- Alder Lake’s Power Efficiency – A Complicated Picture – Chips and Cheese
- Going Armchair Quarterback on Golden Cove’s Caches – Chips and Cheese
- Intel Z690チップセット搭載マザーボード(Alder Lake CPU用)の24ピンコネクタの保持について - 自作ユーザーが解説するゲーミングPCガイド
- Intel、次期BIOSでAlder Lakeの全CPUのAVX-512サポートをマザーボードメーカーに強制的に無効化させる - 自作ユーザーが解説するゲーミングPCガイド
- MSI MEG Z690 Unify-Xマザーボードは、BIOS内のマイクロコード選択により、AVX-512サポートを有効にすることができます。 - 自作ユーザーが解説するゲーミングPCガイド
- インテル社製デスクトップCPU「Alder Lake」では、旧型のCPUクーラーでは取り付けや圧力分散に問題がある可能性があることが判明 - 自作ユーザーが解説するゲーミングPCガイド
- LGA1700のCPUが反ってしまう問題 - 自作ユーザーが解説するゲーミングPCガイド
- Intel、Alder LakeのAVX-512サポートを廃止、今度はシリコンの配線をカット - 自作ユーザーが解説するゲーミングPCガイド
- インテル、Alder Lake CPUの反り・曲がり問題について反論、保証の無効化について注意喚起 - 自作ユーザーが解説するゲーミングPCガイド
- Intelの第12世代プロセッサ「Alder Lake」でターボボタンが復活したと話題に - GIGAZINE
- Intelの次世代CPU「Alder Lake」は,高性能コアと高効率コアを組み合わせてPC向けCPUに変革をもたらす
- 北森瓦版 - “Alder Lake”は“Commet Lake / Rocket Lake”よりも高消費電力になる?
- CapFrameXさんはTwitterを使っています 「i9-12900K supports AVX512 when E cores are disabled. https://t.co/WPilMgtz5k」 / Twitter
- Intel Alder Lake PCIe5.0の構成がcorebootで詳しく説明されていると報告|自作.com
- Alder LakeのチップセットはPCIe Gen 5.0をサポートしない|自作.com
- ASUS Z690 Q-ReleaseボタンでGPUの取り外しが簡単にできるようになりました。|自作.com
- Windows 11はAlder LakeのCPU搭載のLinuxを上回る、スケジューラーが原因か|自作.com
- Intel Axes Alder LakeのAVX-512サポート、シリコンで融合|自作.com
- IntelはコンシューマーAlderLakeCPUでECCメモリを有効にします|自作.com
- 北森瓦版 - Intel W680チップセットのブロックダイアグラム
- Intel、Alder Lakeが曲がることを認めるも仕様と回答 | ニッチなPCゲーマーの環境構築Z
- Alder Lakeマイクロプロセッサ - Wikipedia
- Alder Lake - Wikipedia
- ASCII.jp:Z690マザーでNVMe SSDが認識しない!? 「Intel VMD」で変わるOSインストールの手順 (1/2)
- Home · zingaburga/alderlake_avx512 Wiki
- Intel Enables ECC Memory on Consumer Alder Lake CPUs | Tom's Hardware
- 第12世代Core「Alder Lake」のソースコードがハッキングが原因で流出した可能性 - Nishiki-Hub
- インテル、リークされた Alder Lake BIOS ソース コードが本物であることを確認 | TEXAL
- Intel第12世代 Core「Alder Lake」対応BIOS関連のソースコードが流出、Intelも本物であると認める - GIGAZINE
- Intel P-State Driver Seeing More Fixes For Hybrid CPUs With Linux 6.2 - Phoronix
Intel
- Intel® Core™ i5-12600K Processor
- Intel® Codename Alder Lake (ADL) Developer Guide
- Optimizing Software for x86 Hybrid Architecture - 348851-optimizing-x86-hybrid-cpus.pdf
- intel/dptf
- Deprecated Technologies - 004 - ID:655258 | Core™ Processors
- Intel Z690 Chipset Product Specifications
- include/pci_ids/iris_pci_ids.h · main · Mesa / mesa · GitLab
- Home · zingaburga/alderlake_avx512 Wiki
- Intel Disabled AVX-512, but Not Really - The Intel 12th Gen Core i9-12900K Review: Hybrid Performance Brings Hybrid Complexity
- InstLatX64さんはTwitterを使っています: 「The official #Intel #GoldenCove instruction latency and throughput table v2.0: https://t.co/UggTfWSwHP Registration is not required https://t.co/XszyQKqgYC」 / Twitter
- Golden Cove - Microarchitectures - Intel - WikiChip
- Alder Lake - Microarchitectures - Intel - WikiChip
- Z690 UD (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- CPUID for Intel 12th Gen Intel Core i5-12600K i5-12600K (by tenpoku1000)
- INTEL 第12世代Coreプロセッサー Alder Lake-S (LGA1700) 対応情報 - 株式会社サイズ
- Intel、次期CPU「Alder Lake」に搭載される新コアの詳細を発表 - PC Watch
- Intel次期CPU「Alder Lake」はWindows 11に最適化されたスレッド割り当て機能を搭載 - PC Watch
- Intel、ゲーミング向けCPUで最速の座奪還を狙う第12世代Coreを11月4日に発売 - PC Watch
- 【レビュー】Alder Lakeこと第12世代Coreが編集部に着弾!早速開封してみる - PC Watch
- 第12世代Coreと一部ゲームに互換性問題。暫定対策はScroll Lockキー - PC Watch
- 【笠原一輝のユビキタス情報局】第12世代CoreのDRM問題は解決の方向へ。Intel開発者が語るAlder Lakeがゲームに魅力的な理由とは - PC Watch
- Intel、最大5.5GHzまでブーストできる第12世代Core KSシリーズ。GPU「Arc」もデモ - PC Watch
- デスクトップ向け第12世代Coreに安価モデル追加。H670/B660/H610チップセットも - PC Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PだけよりP&Eが速くなる?…説明が全く理解できない(笑) ---- 「CPUの演算器をずっと使っているようなマルチスレッド処理を行なう場合には、実はPコアよりも効率よく処理することができる、それがEコアの特徴だ」 「結果的により早く処理することが可能になる」 https://t.co/YbV9OVionk」 / Twitter
- 【笠原一輝のユビキタス情報局】第12世代Core、PコアとEコアという2種類のCPUの組み合わせなのになぜRyzenより速い? - PC Watch
- 【Hothotレビュー】「Alder LakeのEコアはSkylake級の性能」は本当?Pコアを使わずベンチマークで検証 - PC Watch
- Core i9-12900Kの性能が出るのはWindows 11とWindows 10どっち? - AKIBA PC Hotline!
- Gracemont (microarchitecture) - Wikipedia
- Intel Atom - Wikipedia
Raptor Lake
- Intel® Core™ i5-13600K Processor
- Z790 UD (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- 第13世代Coreはシングルスレッドで15%、マルチスレッドで41%性能向上を実現 - PC Watch
- Intel、新チップセットZ790を第13世代Core向けに投入 - PC Watch
- 【笠原一輝のユビキタス情報局】Alder Lake/Raptor Lakeの「高性能の秘密」はPコアに内蔵されたマイクロコントローラにあった! - PC Watch
- 第13世代Core正式発表。キャッシュ/Eコアを増量し性能が最大41%アップ。10月20日販売開始 - PC Watch
- Intel、ターボ時最大6GHzに達する第13世代Coreを年明けに限定数発売 - PC Watch
- 【笠原一輝のユビキタス情報局】第13世代Coreは、マルチスレッドアプリで前世代比4割の性能向上 - PC Watch
- 【Hothotレビュー】ただ高クロックなだけじゃない。ゲーム性能も確実に向上した「Core i9-13900K」 - PC Watch
- ASCII.jp:Tech Tourで判明したRaptor Lakeの内部構造 インテル CPUロードマップ (1/3)
- ASCII.jp: Raptor Lakeの開発を半年短縮できたのはイスラエルチームのおかげ? インテルCPUロードマップ (1/3)
- Intel Raptor Lake-S Bootlog | Coelacanth's Dream
- Raptor Lake と Meteor Lake の CPUID Model | Coelacanth's Dream
- Intel Innovation 2022 Day 1 個人的メモ | Coelacanth's Dream
- 北森瓦版 - “Raptor Lake-S”とIntel 700 seriesのブロックダイグラムがリーク
- 北森瓦版 - Core i5 13600K/KF未満のモデルには“Alder Lake-S”のダイが用いられる
- 北森瓦版 - Core i5 13400に“Alder Lake”と“Raptor Lake”が混在する可能性?
- 北森瓦版 - デスクトップ向け“Raptor Lake”へのDLVRの搭載は見送られた模様
- Intel Raptor Lake-Sに搭載予定だった省電力機能DLVRは無効化されている模様
- Linux 6.1 Picking Up A Few Missing Intel Raptor Lake IDs - Phoronix
Meteor Lake
特許
- UnderfoxさんはTwitterを使っています: 「About Intel Ocean Cove: Since the beginning of 2018, I had been following the work of the Hillsboro team, looking forward to have access to the first patent of the disruptive new architecture that was being developed... And in 2019, this patent was finally published. https://t.co/7ggNFk05RL」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「IntelがZenの特許取得したってマジ???(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「(´・_・`)これよくわからんのだけど、IntelがZenのスライド丸パクリの特許を申請して、それがあろうことか受理されたってこと?そんなことってあんの?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「まじでZenのスライドと全く同じだけど、これホンマにIntelが特許申請したん?見れるようになってたりせんのやろか?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「https://t.co/KJPcKzyVou (´・_・`)これかあ。Date of PatentがApr. 5, 2022、Filed が Aug. 28, 2018ってなっとるわな。AMDのスライドに関しては検索したら2016年当時の各種メディアが引用してる画像がたくさん出てくる。」 / Twitter
- Apparatuses and methods for a processor architecture
- UnderfoxさんはTwitterを使っています: 「After all, what conclusions can I draw from this patent? 1 - Zen Revolution was really greater than my expectations. 2 - The best is yet to come™ ... for Intel too.」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「結局どういうことなんだよ(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「つまりOcean CoveはZenと全く同じアーキになるってこと?」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています: 「@tanakh えええ!?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「@ipv6labs Ocean Coveの特許のアーキの図がこれなら、そういうことになる気がする・・・」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「AMDとIntelは包括的なクロスライセンス契約を結んでいて、お互いに特許権を行使できないことになっている。これはとても包括的なので、IntelはAMDの特許の画像を使うこともできる。・・・ってコト!?(´・_・`)」 / Twitter
- presentation title - HC28.23.930-X86-core-MikeClark-AMD-final_v2-28.pdf
- US20190012266A1 - Apparatuses and methods for a processor architecture - Google Patents
- Ocean Cove - Microarchitectures - Intel - WikiChip
- Meteor Lake - Microarchitectures - Intel - WikiChip
- Intel、2023年に7nmのコンピュートタイルを持つ「Meteor Lake」を投入。x86 CPUのIPも顧客に提供へ - PC Watch
- Intel、次期CPU「Meteor Lake」、HPC向けGPU「Ponte Vecchio」を展示 - PC Watch
- Intel新ロードマップを発表。Meteor Lake、Arrow Lake、Lunar Lakeへと進化 - PC Watch
- 【福田昭のセミコン業界最前線】Meteor Lakeのシリコンを創るIntelの次世代技術「Intel 4」 - PC Watch
- Intel、Meteor Lakeで3Dチップレット技術を採用。計画通り2023年登場 - PC Watch
- Intel Meteor Lake Introducing "Standalone Media" Unit - Phoronix
- Intel Meteor Lake Thunderbolt Support Slated For Linux 6.1 - Phoronix
- Intel Sends Out Meteor Lake & Sierra Forest Patches For The GCC Compiler - Phoronix
- Intel Meteor Lake "-march=meteorlake" Support Lands In GCC 13 - Phoronix
- Intel、Meteor Lakeに遅延はないと明言。2023年発売。tGPUはTSMC 5nm(N5)を採用 | ニッチなPCゲーマーの環境構築Z
- Redwood Cove の Native Model ID が更新 | Coelacanth's Dream
- IntelのデスクトップCPUロードマップがリーク、デスクトップ向けMeteor Lakeは2024年以降の登場か | TEXAL
- リーマン・ショック級のメモリ不況の到来 ~その陰にIntelの不調アリ:湯之上隆のナノフォーカス(56)(5/5 ページ) - EE Times Japan
- 北森瓦版 - “Meteor Lake-S”がキャンセルされたという噂とその後のIntel CPUの噂
- Intel Meteor Lake-Sでは最大14コア構成に? Core i9は登場しない可能性も
- Intel Meteor Lake-SデスクトップCPUのキャンセルが噂される、LGA 1851はCoreファミリーのトリオをサポートするかもしれない。 - 自作ユーザーが解説するゲーミングPCガイド
- PCテクノロジートレンド 2023 - CPU編 (1) | マイナビニュース
Arrow Lake
- Intel Arrow Lake-S Desktop CPUはTSMC 3nmを、Arrow Lake-P モバイルは20Aプロセスノードを採用するとの噂がある - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Arrow Lake”は“-P”がIntel 20A、“-S”がTSMC N3で製造される?
- 【スペック一覧】デスクトップ向けIntelプロセッサー・ナンバー一覧表 - PC Watch
- x86 CPU、デスクトップ向けは30%減も売上額は好調でAMD躍進 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、2023年の製品計画プランを延期。ゲルシンガー氏の新体制で強いIntelへの回帰なるか - PC Watch
- インテルが、今後4年間に5つのプロセス世代にまたがるプロセッサ製品を発売するという目標を改めて表明 | TEXAL
- Intel Advances Linux "IPC Classes" Design To Improve Load Balancing For Hybrid CPUs - Phoronix
- インテル、将来のデスクトップCPUにDLVR「デジタル電圧レギュレータ」を導入する可能性 - 自作ユーザーが解説するゲーミングPCガイド
モバイル
その他
- 専用ベンチではRyzenが高性能でも、ゲーム性能ではCoreが勝つ理由とは ~Intelがベンチマーク説明会を開催 - PC Watch
- 歴史的融合。IntelがAMD GPU内蔵Coreプロセッサを発表 ~1パッケージにCPU、GPU、HBM2を包含 - PC Watch
- IntelとAMDの異色コラボが実現した「Kaby Lake-G」、生産終了へ - PC Watch
- インテル、“ノートならEvo”の指名買い目指す - PC Watch
- Intel、“Eコアだけ”のNシリーズプロセッサ - PC Watch
8th, 9th Core
- 【笠原一輝のユビキタス情報局】第8世代Coreプロセッサの本当のコードネームはどれ? ~Kaby Lake Refresh、Coffee Lake、Cannonlakeの3つが同じ製品ブランドで同時展開 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、今年後半に8コアのCoffee Lake Refresh、2019年にComet Lakeを投入へ ~Xプロセッサの28コアはBasin Falls Refreshに - PC Watch
- 【笠原一輝のユビキタス情報局】Whiskey LakeとAmber Lakeの正体 - PC Watch
- インテル® Core™ i5-8250U プロセッサー (6M キャッシュ、最大 3.40 GHz) 製品仕様
- Intel Core i5-8250U Mobile processor - FJ8067703282221
- iiyama STYLE-15FH038-i5-UHEX [Windows 10 Home] | パソコン工房【公式通販】
- インテル® Core™ i5-8265U プロセッサー (6M キャッシュ、最大 3.90 GHz) 製品仕様
- DELL CINEMAテクノロジー搭載のInspiron 15インチ5583ノートパソコン | Dell 日本
- 最新Intel NUC「BEAN CANYON」が計4モデル発売、Core i7/i5は4コア8スレッド - AKIBA PC Hotline!
- Intel NUC「BEAN CANYON」の薄型モデルにCore i3搭載版が登場 - AKIBA PC Hotline!
- 製品の開発コード名 Whiskey Lake
- Whiskey Lake-Uを搭載したNUCマザーボード、ASRock「NUC-8365U」 - エルミタージュ秋葉原
- ASRock Industrial > NUC-8265U
- 製品の開発コード名 Amber Lake Y
- デル、Amber Lake搭載の「XPS 13 2-in-1」を国内投入 - PC Watch
- Amber Lake-Y搭載の7型2in1「OneMix 2S」 - PC Watch
- Core m3-8100Y/256GB SSD搭載になった「GPD WIN 2」が発売 ~基板刷新で放熱性、オーディオ音質が向上 - PC Watch
- Intel Core i38145U Processor 4M Cache up to 3.90 GHz Product Specifications
Comet Lake
- Intelが6コア12スレッドのモバイルPC向け第10世代Coreプロセッサ「Comet Lake」を発表 - GIGAZINE
- ASCII.jp:Comet Lakeは事実上Coffee Lake Refresh インテル CPUロードマップ (1/4)|ロードマップでわかる!当世プロセッサー事情
- Intel、"2種類目"のモバイル向け第10世代Coreプロセッサを発表 - PC Watch
- Intel® Core™ i5-10210U Processor (6M Cache, up to 4.10 GHz) 製品仕様
- デル、13.3型プレミアムノート「XPS 13」の第10世代Coreモデル - PC Watch
- 日本エイサー、Comet Lake搭載の15.6型ノートPC - PC Watch
- A315-54-F58U/K | acer
- Intel® 400 Series Chipset Family On-Package Platform Controller Hub. Datasheet, Volume 1 of 2
- 中小企業にもSOHOにもうれしい超絶コスパノートPC「ThinkBook 14」を徹底分析 (1/2) - ITmedia PC USER
- インテル® Core™ i3-10110U プロセッサー (4M キャッシュ、最大 4.10 GHz) 製品仕様
- 最新Intel NUC「Frost Canyon」のCore i3搭載モデルが発売、税込38,500円 - AKIBA PC Hotline!
Lakefield
Atom
- Intel Celeron (2010年) - Wikipedia
- MinnowBoard.org
- Intel Celeron J1900 - FH8065301615009
- Intel Celeron J3160 - FH8066501715935
- Intel Celeron J3455 - FH8066802986102
- Apollo Lakeが長期稼働で信号劣化し品質基準を満たさず。ステッピング変更へ - PC Watch
- Intel Pentium J5005 - FH8068003067415
- Intel Celeron J4105 - FH8068003067403
- ASRock > J4105-ITX
- 製品の仕様情報 - Intel® Celeron® J4005 Processor (4M Cache, up to 2.70 GHz)
- Intel Celeron J4005 - FH8068003067416
- インテル® ネクスト・ユニット・オブ・コンピューティング・キット NUC7CJYH 製品仕様
- PRIME J4005I-C | マザーボード | ASUS 日本
- ファンレスGemini Lake世代SoC intel Celeron J4005搭載Mini-ITXマザーボードがASUSから販売開始 | Ark Tech and Market News Vol.3002134
- Intel、次世代省電力コア「Tremont」でシングルスレッド性能を改善 ~マイクロアーキテクチャを公開 - PC Watch
- 2019年9月18日 Linux 5.3がリリース,「AMD Navi」「Intel Speed Select」のサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 10nmプロセスがようやく。 インテルの2021年までのCPUロードマップがリーク
- Intel Atom® Processor based on Tremont Microarchitecture Instruction Throughput and Latency - intel-atom-tremont-microarchitecture-throughput-and-latency.pdf
- ASCII.jp:Ice Lake-SPは2021年第1四半期に遅延、Elkhart Lakeの機能追加に仰天 インテル CPUロードマップ (3/3)
- ASCII.jp:最後のAtomとなるChromebook向けプロセッサーのJasper Lake インテル CPUロードマップ (3/3)
- Intel、前世代からGPU性能が78%向上した「Jasper Lake」CPU - PC Watch
- FadisさんはTwitterを使っています 「誰も使っていないプラットフォームのサポートの大掃除を進めるLinuxでIntelのMoorestown及びMedfieldマイクロアーキテクチャのサポートが廃止が決定したらしい。これらはAtomの中でも特に省電力を重視したSoCで、IntelがまだスマートフォンでARMと戦う気があった時代の産物 https://t.co/KlKx8M0ug6」 / Twitter
- Linux Says Farewell To Intel's Smartphone Attempts With Clearing Out Moorestown / Medfield - Phoronix
- FadisさんはTwitterを使っています 「「誰も使っていない」と判断した理由が「ここ数年このプラットフォームでLinuxが動かなくなるような変更が入った際にIntel以外から不具合の報告が上がったためしが無い」(つまりIntelは今もしっかり保守しているけどこのSoCを使っているユーザは存在しない)なのが哀愁漂ってる」 / Twitter
- 製品の開発コード名 Elkhart Lake
- 【イベントレポート】Intel、次世代10nm CPUと22nm Atomを積層した混載CPU「Lakefield」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelが3D積層のヘテロジニアスマルチコアCPU「Lakefield」の技術を発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】2020年代のIntel CPUのカギとなる新2.5D/3D積層技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】チップレットレースで静かに突き進むIntelのパッケージ技術 - PC Watch
- Samsung、異種混在CPU“Lakefield”搭載のモバイルノート「Galaxy Book S」 - PC Watch
- 【笠原一輝のユビキタス情報局】CoreとAtomを両搭載するIntelの新CPU「Lakefield」 - PC Watch
- Products formerly Lakefield
- InstLatX64さんはTwitterを使っています 「5-Core #Intel Core i5-L16G7 (#Lakefield) 806A1 CPUID dump added - Supported: SSE4.2, GFNI, CLWB, HYBRID - Unsupported: MOVDIR*, WAITPKG, CLDEMOTE, AVX, FMA, BMI, HTT, LZCNT, ADX, X2APIC, PAGE1GB, X2APIC, MPX, SGX https://t.co/f2lANECbdu https://t.co/0Lvti67aSq」 / Twitter
Ice Lake
- Ice Lake (client) - Microarchitectures - Intel - WikiChip
- Sunny Cove - Microarchitectures - Intel - WikiChip
- Products formerly Ice Lake
- Intel Core i31005G1 Processor 4M Cache up to 3.40 GHz Product Specifications
- 価格.com - ASUS VivoBook 15 X512JA X512JA-EJ115T 価格比較
- herumiさんのツイート: "Cascade Lake-AP https://t.co/MdOLsFwmDv >プログラマーはMKL-DNNの最新版を利用することで、VNNIに自分のソフトウェアを対応させることができる。 Xbyakも1年以上前からVNNIに対応してます。というかMKL-DNNはXbyak経由でvpdpbusdを使ってるともいう。 https://t.co/x2N8zFJOE9"
- mkl-dnn/jit_avx512_core_gemm_s8u8s32_kern.cpp at master · intel/mkl-dnn
- Intel、次世代CPUアーキテクチャ「Sunny Cove」の概要を明らかに ~Willow Cove、Golden Coveと進化予定、Atomのロードマップも更新 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの10nm世代CPUコア「Sunny Cove」のカギとなるAVX-512 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelが10nmプロセスの「Ice Lake」を正式発表 - PC Watch
- 【笠原一輝のユビキタス情報局】Intelが新CPUを製品コードネームではなくマイクロアーキテクチャ名で説明したその背景 - PC Watch
- Intel、10nmの第10世代Coreを出荷開始。プロセッサー・ナンバー変更 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、第10世代Core発表。10nmプロセスで、L1が1.5倍、L2は倍増に - PC Watch
- 【イベントレポート】次世代ノートPCでは1秒復帰/薄型狭額縁/AI機能/Core i5以上が標準に ~Intelのモダン化規格「Project Athena 1.0」を公表 - PC Watch
- 「Project Athena」でユーザーの声を汲み上げたモバイルPCを提供するIntel - PC Watch
- 【笠原一輝のユビキタス情報局】第10世代Coreの複雑怪奇なプロセッサナンバーを理解する - PC Watch
- 第231回 Intelの新プロセッサ「第10世代Coreプロセッサ」3つの特徴をざっくり検証:頭脳放談 - @IT
- インテル® Adaptix™ テクノロジーが実現する自動チューニング
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
- 10th Gen Intel® Core™ Processor Families Datasheet, Vol. 1
- 10th Gen Intel® Core™ Processor Families Datasheet, Vol. 2
- IntelがIce Lake世代のCPUに施した「目立たないパワーアップ」とは? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ネタ自体は面白いけど、GIGAZINEさん自身は bit と byte をあちこち混同して説明してるな。 ---- 「32bitを1単位として、「ymm1」レジスタの値をメモリに書き込んで」 「256bit分の領域を値で埋めることができたら…次のループに備えています。… add rax, 256」 https://t.co/6Zfi4RC5pl」 / Twitter
- IntelのIce Lake世代CPUは「命令の種類による最大クロック制限」が緩和されている - GIGAZINE
- InstLatX64さんはTwitterを使っています 「The only non-Core #SunnyCove, the Pentium 6805 also supports #AVX512: https://t.co/mrQjdBqlkV Source: https://t.co/WtIwBkuCx4 Well done! https://t.co/lmZFwjiWqO」 / Twitter
- Intel® Pentium® Processor 6805 (4M Cache, up to 3.00 GHz) Product Specifications
- Asus Laptop X515JA-BR661 Pentium 6805 тест с комментариями - YouTube
- 価格.com - ASUS VivoBook 15 X512JA X512JA-EJ115T 価格比較
Tiger Lake
- Willow Cove - Microarchitectures - Intel - WikiChip
- Products formerly Tiger Lake
- Intel Celeron 6305 Processor 4M Cache 1.80 GHz with IPU Product Specifications
- Intel® Core™ i3-1115G4 Processor
- Tiger Lake - Wikipedia
- Intel、新GPU「Xe」内蔵の「Tiger Lake」プロセッサを2020年投入 - PC Watch
- 【イベントレポート】Intel、10nm+のTiger LakeとXeアーキテクチャの単体GPU「DG1」を実機デモ - PC Watch
- Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加 - PC Watch
- Intel、次世代モバイルプロセッサ「Tiger Lake」の詳細を明らかに ~L2/L3が大幅増加、96EUのXe-LPを内蔵、LPDDR5やPCIe Gen4などに対応 - PC Watch
- Intel、第11世代Coreプロセッサーを正式発表。「Intel Evo platform」のブランドも導入 - PC Watch
- 第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
- Intel、“AMDのノートはバッテリ駆動時に性能が大きく低下”と指摘 - PC Watch
- Intel Sunny Cove - Agner's CPU blog
- InstLatX64さんはTwitterを使っています 「#Intel #Celeron 6305 (#TigerLake-UP3) 806C1 (#AVX512 enabled, #AVX512_VP2INTERSECT, MOVDIRI, MOVDIR64B, CLWB, RDT_A) CPUID dump Thx, @ccc00911! https://t.co/9y3gXcmKJW https://t.co/KqURzj8psd」 / Twitter
- InstLatX64さんはTwitterを使っています 「#Intel Ark seems wrong regarding SIMD support of #Pentium Gold 7505 and #Celeron 6305: https://t.co/YuspuMvlHQ https://t.co/wIUSyAIE0A」 / Twitter
- Intel® Product Specification Comparison
- Intel、最大8コアになったゲーミングノート向け第11世代Core - PC Watch
- Intel、TDP 35Wの高性能CPU「第11世代Core H35シリーズ」を発表。VAIOの次世代ハイエンドノートと思しきマシンがチラ見せ - PC Watch
- PC=職場という新しい認識にマッチした第11世代vPro搭載ノート - PC Watch
- 価格.com - ビデオチップ:Intel 系のノートパソコン 価格の安い順 (開発コード:Tiger Lake,表面処理:ノングレア(非光沢),メモリ容量:8GB~16GB未満)
Alder Lake
- 12th Generation Intel® Core™ i3 Processors Product Specifications
- 【笠原一輝のユビキタス情報局】モバイル版第12世代Coreは、M1 MaxやRyzen 9を超える性能を発揮 - PC Watch
- Intel、性能が4割向上したノート向け第12世代Core - PC Watch
- 【笠原一輝のユビキタス情報局】なぜ第12世代Core Pは性能が2倍になるのか?第3世代Evo登場で薄型ゲーミングノート流行の兆しも - PC Watch
- Intel、薄型軽量ノート向け第12世代Coreを出荷開始。28Wでも14コア - PC Watch
- Intel、16コア/24スレッドのゲーミング/モバイルWS向け第12世代Core HXプロセッサ - PC Watch
- 【笠原一輝のユビキタス情報局】TDPが上がった第12世代Core HXは、ノートPCの新しいデザインポイントを実現する - PC Watch
- Alder Lake-P のブートログ | Coelacanth's Dream
- ALDERLAKE_L と Alder Lake-P/M | Coelacanth's Dream
- Alder Lake-M 関連のパッチが Coreboot に投稿される ―― ADL-M は ADL-P の I/O 縮小版か | Coelacanth's Dream
- Alder Lake-P/M のステッピング、PL1/PL2 参考値 | Coelacanth's Dream
- Alder Lake-P/M の PL4 参考値と Brya の設定値 | Coelacanth's Dream
- Alder Lake-N を搭載する Chromebookボード Nissa, Nivviks, Nereid | Coelacanth's Dream
- CPU 8-Thread、GPU 32EU を持つ Alder Lake-N | Coelacanth's Dream
- メモリコントローラー 1基 (64-bit) の Alder Lake-N | Coelacanth's Dream
- Alder Lake-N のコア数と TDP (PL1), PL2 | Coelacanth's Dream
- Linux Kernel に V2 Extended Topology Enumeration の扱いを改善するパッチ | Coelacanth's Dream
- Intel Core i71255U Processor 12M Cache up to 4.70 GHz Product Specifications
- Kazuho OkuさんはTwitterを使っています: 「Core i3-1215UとかPentium Gold 8505とか、モバイル向けのAlder Lake、セキュリティ機能としてQuickAssistアクセラレータ対応ってなってるんだけど、だれか試したひといるのかしら https://t.co/9nE7l06mDq」 / Twitter
- インテル® Core™ i3-1215U プロセッサー
- Linux Patch Pending To Help Lower Alder Lake N & Raptor Lake P Power Consumption - Phoronix
- 北森瓦版 - 4-coreの“Gracemont”からなるIntel N95
- Linux 6.2 Will Help With Power Savings For Intel Alder Lake N & Raptor Lake P - Phoronix
Raptor Lake
- 各種 OSS で Raptor Lake-P のサポートが進められる | Coelacanth's Dream
- 新体制で大きく変貌するIntel。2022年後半以降もさらに強力なCPUを投入 ~第12世代Coreはノート用でも、かつてのデスクトップ最上位CPUと渡り合える性能を発揮!- PC Watch[Sponsored]
- 北森瓦版 - IntelのVPUは第13世代 Mobileで登場、第14世代でフル実装
- Intel、AI用処理ユニット「VPU」の導入計画を発表 〜 第13世代「Raptor Lake」で「Wi-FI 7」や「Bluetooth LE Audio」でワイヤレス体験も強化 - Nishiki-Hub
- Intel Raptor Lake-P の PCIe I/O 構成 | Coelacanth's Dream
- Intel、Pコア高速化でEコア倍増の65W版第13世代Core - PC Watch
- Intel、ノートPCでも24コア/32スレッドを実現する第13世代Core - PC Watch
- 【笠原一輝のユビキタス情報局】ノート向け第13世代CoreにEコアが8つ増えた「HX」と、L2キャッシュ増量の「H/P/U」が登場。いずれも高クロック動作 - PC Watch
Meteor Lake
- Coreboot に Meteor Lake-M/P の DeviceID が追加される | Coelacanth's Dream
- Intel Meteor Lake-P Bootlog | Coelacanth's Dream
- Intel 第14世代Meteor Lakeは、tGPU用のTSMC 3nmノードを削除し、第15世代Arrow Lake CPUに採用される可能性があると噂されています。 - 自作ユーザーが解説するゲーミングPCガイド
- Native Model ID が更新される Crestmont と更新されない Redwood Cove | Coelacanth's Dream
- Intel、次世代のMeteor LakeにVPUを統合予定。第13世代CoreでLE Audio対応も - PC Watch
Lunar Lake
- Intel Lunar Lakeは、ゼロから構築された全く新しいCPUアーキテクチャを搭載し、モバイルに焦点を当てたパフォーマンス/ワットを実現します。 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Lunar Lake”は新しいアーキテクチャで低消費電力デバイス向けとなる
- Intel Lunar Lakeは電力効率を重視。性能を犠牲にすることなく1日中バッテリー駆動が可能に | ニッチなPCゲーマーの環境構築Z
- Intel「Lunar Lake」は特にモバイルデバイス向けに設計された全く新しいアーキテクチャを備える | TEXAL
- Intel 第16世代CPU Lunar Lakeでは完全新設計に。ただし、ノートPC向けのみ?
- 【スペック一覧】モバイル向けIntelプロセッサー・ナンバー一覧表 - PC Watch
- パソコン/タブレット/スマートフォン ノートパソコン Acer - PC Watch
- PCパーツ ベアボーン Intel - AKIBA PC Hotline!
レガシー
Pentium Pro
- ASUS P/I-XP6NP5 - Specs | BIOS | Drivers | Manual | Download
- ASUS 日本
- Pentium Pro - Wikipedia
- P6マイクロアーキテクチャ - Wikipedia
- Socket 8 - Wikipedia
- I2O - Wikipedia
- I2O - Wikipedia
- Dynamic Random Access Memory - Wikipedia
Ivy Bridge
- Westmere - Microarchitectures - Intel - WikiChip
- Sandy Bridge (client) - Microarchitectures - Intel - WikiChip
- Ivy Bridge - Microarchitectures - Intel - WikiChip
- 「第3世代Coreプロセッサ・ファミリ」はどこが進化したのか - @IT
- GA-H77M-D3H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- Intel Core i3-3220 - CM8063701137502 / BX80637I33220 / BXC80637I33220
- Intel Core i33220 Processor 3M Cache 3.30 GHz Product Specifications
- Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
- Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Desktop 3rd Generation Intel® Core™ Processor Family: Spec Update
- Mobile 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
- Mobile 3rd Generation Intel® Core™ Processor Family, Mobile Intel® Pentium® Processor Family, and Mobile Intel® Celeron® Processor Family - Datasheet, Volume 2
- Mobile 3rd Generation Intel® Core™ Processor Family: Spec Update
- Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Family - Datasheet Specification Update
Haswell
- Haswell - Microarchitectures - Intel - WikiChip
- E1-572-A54D_H1 - E1-572-A54D_201306.pdf
- Intel Core i5-4200U Mobile processor - CL8064701477702
- Intel Core i54200U Processor 3M Cache up to 2.60 GHz Product Specifications
- 製品サポート
- 価格.com - Acer Aspire E1 E1-572-A54D スペック・仕様
- ASUS H87-PRO Review & Specs - Pangoly
- H87-PRO - サポート
- J8223-H87_PRO.pdf
- Intel® Celeron® Processor G1820
- Intel Celeron G1820 - CM8064601483405 / BX80646G1820 / BXC80646G1820
- Intel® Core™ Processors (M/H-Processor Lines) Datasheet, Vol. 1
- Mobile 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Mobile 4th Gen Intel® Core™ Processor Family I/O: Datasheet
- Mobile 4th Gen Intel® Core™ Processors Spec Update
- Desktop 4th Gen Intel® Core™ Processors Datasheet, Vol. 1
- Desktop 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Desktop 4th Gen Intel® Core™ Processors Spec Update
- Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
- Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 8/C220 Series Chipset Platform Controller Hub: Update
- 14nmの不足の中で、Intelは22nm Pentium G3420に命を吹き込みます - 自作ユーザーが解説するゲーミングPCガイド
- 価格.com - 東芝 dynabook Satellite R35 R35/M PR35MGAD423AD71 価格比較
- Intel Core i3-4005U Mobile processor - CL8064701478404
Broadwell
- Broadwell - Microarchitectures - Intel - WikiChip
- 5th Generation Intel® Core™ Processor Family Datasheet Vol. 1
- 5th Generation Intel® Core™ Processor Family Datasheet Volume 2
- Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 1
- Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 2
- Desktop/Mobile 5th Gen Intel® Core™ Processor Family Spec Update
- Intel® 9 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 9 Series Chipset Platform Controller Hub Spec Update
- MSI、Intel 9シリーズマザーのBIOS更新でNVM Expressに対応 - PC Watch
- Intel Core i5-5675C - CM8065802483201 / BX80658I55675C
- H97-PRO - サポート
- Intel Core i55675C Processor 4M Cache up to 3.60 GHz Product Specifications
Skylake
Intel
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
- 6th Generation Intel® Processor Datasheet for S-Platforms — Datasheet – Volume 2 of 2
- 6th Generation Intel® Processor Family
- 6th Generation Intel® Processor Family Uncore Reference Manual
- 6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 1
- 6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 2
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 2
- Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
- Intel® 100 Series Chipset Family PCH Datasheet, Vol. 2
- Intel® 100 Series Chipset Family PCH Specification Update
- Intel Core i36100 Processor 3M Cache 3.70 GHz Product Specifications
Errata
- Skylake CPUで複雑な処理を実行させるとPCがフリーズするバグが確認される | スラド IT
- IntelのSkylakeプロセッサに複雑な計算プログラム実行でシステムフリーズするバグが見つかる - GIGAZINE
- 【PC】Intel Skylake/Kaby Lakeに深刻な欠陥 Hyper-Threadingでシステムが予測不能な動作、データ損失などの可能性 すべてのOSに影響 | LH MAGAZINE
- [WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
- Skylake/Kaby LakeプロセッサのHTTに不具合 | スラド Linux
- IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
- Skylake/Kaby Lakeでシステムクラッシュを引き起こすエラッタが発見。BIOS更新が必要 - PC Watch
- 北森瓦版 - “Skylake”と“KabyLake”にHyperThreading周りのエラッタが発見される
- 2017年6月29日 Debian開発者,Intel Skylake/Kaby Lakeユーザにハイパースレッディング無効化を警告:Linux Daily Topics|gihyo.jp … 技術評論社
News
- 北森瓦版 - “Skylake”で導入された“Speed Shift technology”
- 【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に : ニッチなPCゲーマーの環境構築
- 質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
- 第 6 世代インテル® Core™ プロセッサー (開発コード名 Skylake) の概要
- 古田雄介のアキバPickUp!:Skylakeに低GPU内蔵のPモデルが登場! (1/4) - ITmedia PC USER
- Hot Chips 28 - Inside Skylakeと題したIntelの発表 (1) 消費電力管理に改良が施されたIntelのSkylake | マイナビニュース
- 【特集】「Skylake」完全攻略!!(追加検証) - 内部解析で第6世代Coreの謎に迫る | マイナビニュース
- Intel、SpectreパッチでのOS再起動問題に対処したSkylake向けファームウェアを提供 - PC Watch
- Intel microcode updates
- Microsoft Update カタログ
- J10812_H170-PRO_web_only.pdf
- Intel® Management Engine の重要なファームウェア・アップデート | サポート 公式 | ASUS 日本
- Skylake (client) - Microarchitectures - Intel - WikiChip
- Core i3-6100 - Intel - WikiChip
- Intel Core i3-6100 - CM8066201927202 / BX80662I36100 / BXC80662I36100
- H170-PRO - サポート
Kaby Lake
- Kaby Lake - Microarchitectures - Intel - WikiChip
- Core i3-7100 - Intel - WikiChip
- Intel Core i37100 Processor 3M Cache 3.90 GHz Product Specifications
- Datasheet, Vol. 1: 7th Gen Intel® Processor Family for S Platforms
- Datasheet, Vol. 2: 7th Gen Intel® Processor Family for S Platforms...
- Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH
- Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH
- Intel® 200 and Z370 Series Chipset Families PCH Spec Update
- GA-Z270X-UD5 (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- Intel Core i3-7100 - CM8067703014612 / BX80677I37100 / BXC80677I37100
- Intel、Core 2 Duoなど旧CPUの「Spectre」対策を中止 - PC Watch
- 1502494_PC_AT_Technical_Reference_Mar84.pdf
- Chromeは15年以上前のプロセッサではまもなく機能しなくなります|自作.com
- 化石レベルの古いCPUは切り捨て ~「Google Chrome 89」でx86版はSSE3命令が必須に - やじうまの杜 - 窓の杜
- Flash対応を廃止。「Electron 12」が正式リリース ~SSE3命令が必須に - 窓の杜
- 「Cannon Lake-Y」のサンプル品のダイの写真が登場 〜 3ダイからなるMCM構成 - Nishiki-Hub
GPU
その他
- Intel Graphics - ArchWiki
- drivers/gpu/msd-intel-gen - Git at Google
- Makoto Kato ︎︎さんのツイート: "先週聞いた面白バグでDXGI_USAGE_SHADER_INPUTを使うかどうかでIntel GPUが激速くなるって話があったんだけど、これのRoot cause知りたい https://t.co/VgdEMJsdZA"
- 1528865 - Blitting picture cache tiles seems slower on Windows/ANGLE for the same hardware.
- グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて - DXR165の備忘録
- Intel Processor Graphics 調査メモ - DXR165の備忘録
- 実機でIntel Processor Graphicsメモリ検証 - DXR165の備忘録
- Windows 10プレビューに“外部GPUの安全な取り外し”機能追加 - PC Watch
- Windows 10プレビュー版、iGPU/dGPUを任意に切り替え可能に - PC Watch
- 【イベントレポート】Intel、ノートPC向けディスプレイの消費電力を削減する新技術 - PC Watch
- CURD: A Dynamic CUDA Race Detector
- FadisさんはTwitterを使っています 「初期のPC向けGPUは座標変換をCPUに任せていたけど、それだと座標変換で詰まるって事で座標変換もGPUで行うようになった。その後GPUがプログラマブルになると頂点計算する演算器とピクセル計算する演算器をパイプラインを止めない割合で積むのが難しくなり、両方を共通のプロセッサで行うGPUが登場した」 / Twitter
- FadisさんはTwitterを使っています 「一方SGIのワークステーションは、浮動小数点数の計算が超速いDSP積んだからそこで全部なんとかしろ、というハードウェアだったので、PCのGPUは試行錯誤の末にSGIと同じ形にたどり着いた感がある」 / Twitter
- Intel GPUドライバ、PCメーカー版と相互入れ替え可能に - PC Watch
- Intel、内蔵GPUによるウイルスチェック機能を実装。チップ消費電力を半減 - PC Watch
- 統合型GPUでメモリ内のマルウェアをスキャン。Intelがセキュリティに関する新技術や取り組みを発表 - 4Gamer.net
- IntelがマルウェアスキャンにGPUの使用を開始
- Intel、Lakefield の GPU Programmer's Reference Manuals を公開 | Coelacanth's Dream
- 【山田祥平のRe:config.sys】本当に必要なのかを悩み続けるグラボ狂想曲 - PC Watch
- Intel Laptop Users Should Avoid Linux 5.19.12 To Avoid Potentially Damaging The Display - Phoronix
- Linux 環境で GPU デバイス名を偽装する | Coelacanth's Dream
- 画質比較 (2022.12)
Coelacanth's Dream
- Intel のマルチタイル GPU をサポートするパッチが投稿される | Coelacanth's Dream
- Xe-HPC のサポートが intel-graphics-compiler、oneDNN に追加される | Coelacanth's Dream
- 最大 16本の Pixel Pipe を持つ Intel DG2 | Coelacanth's Dream
- 3種類存在するかも知れない Intel Alchemist/DG2 と 2種類存在する Ponte Vecchio | Coelacanth's Dream
- Intel Alchemist/DG2 は AV1エンコードをサポートか | Coelacanth's Dream
- DG2-G12, DG2 L3 banks, SIMD width | Coelacanth's Dream
- DG2 と Arctic Sound-M の関係性 | Coelacanth's Dream
- 2つの非同期パイプラインが追加される XeHP EU | Coelacanth's Dream
- Intel Xe-HP EU に追加されるパイプラインと増加するスレッド、レジスタファイル | Coelacanth's Dream
- Linux Kernel に Intel Xe-HP SDV, DG2 をサポートする最初のパッチが投稿される | Coelacanth's Dream
- Xe-LP/HP より大きな命令キャッシュを持つ Xe-HPG | Coelacanth's Dream
- Intel、Display13 改め "XE_LPD" をサポートするパッチを投稿 ―― 今後は独立して各 IP が更新されるように | Coelacanth's Dream
- Intel DG2-G10 (512EU) Bootlog | Coelacanth's Dream
- Intel Arc Aシリーズ/ATS-M 個人的まとめ | Coelacanth's Dream
- x86-64 CPU 以外のサポートを進める Intel GPUドライバー | Coelacanth's Dream
- Intel GPU ドライバーに Ponte Vecchio をサポートするパッチが投稿される | Coelacanth's Dream
- Intel、次世代の HPC 向け GPU となる Rialto Bridge を公開 | Coelacanth's Dream
- Intel Graphics Compiler で Meteor Lake のサポートが進み始める ―― Xe-HPG、XMXユニットは非搭載か、再度 FP64 に対応 | Coelacanth's Dream
- Intel GFX ドライバーに Meteor Lake をサポートする最初のパッチが投稿される ―― Gen12.7, Xe_LPD+, Xe_LPM+ | Coelacanth's Dream
- FP8 と BF8 に対応する AMD GFX940/CDNA 3 と BF8 に対応する Intel Xe-HPC | Coelacanth's Dream
- レイトレーシング対応が進む Intel Vulkan ドライバー、Windows ドライバーと共有のライブラリを導入 | Coelacanth's Dream
- Meteor Lake に向けた Intel Graphics Compiler へのさらなるパッチ | Coelacanth's Dream
- GPU と Media Engine が別タイルに搭載される Meteor Lake | Coelacanth's Dream
- Intel、デスクトップ向け DG2/Alchemist SKU の仕様を公開 | Coelacanth's Dream
- Intel Meteor Lake GPU は Xe-LPG に、Xe-LPM+ では引き続き AV1 エンコードをサポートか | Coelacanth's Dream
- Meteor Lake GPU GT2/GT3 の EU数 | Coelacanth's Dream
Phoronix
Vulkan
- HasVK Trims Some Fat For This Old Intel Hardware Vulkan Driver - Phoronix
- Intel Vulkan Driver Split Happens - "HASVK" Introduced For Older Gen7/Gen8 Graphics - Phoronix
- Intel's Open-Source Driver Lands Vulkan Mesh Shader Support - Phoronix
- Few Lines Of Code Increases Intel's Vulkan Driver Draw Throughput By 60%+ - Phoronix
- Intel's Vulkan Linux Driver Lands A "Bunch" Of Ray Query Fixes - Phoronix
- Intel Open-Source Vulkan Linux Driver Now Exposes Ray-Tracing For Arc Graphics - Phoronix
- Intel's Vulkan Driver Lands More Patches To Help Reduce CPU Overhead - Phoronix
- Intel's Linux Vulkan Driver Lands Workaround For HITMAN 3 - Phoronix
- Intel Open-Source Vulkan Driver Sees New Work On Vulkan Video Extensions - Phoronix
OpenGL
- Intel's Open-Source OpenGL Driver Adds Support For "Protected Content" - Phoronix
Mesa
- Intel Mesa Code Now Exposes DG2/Alchemist Performance Metrics - Phoronix
- Intel Mesa Driver Changes Land For Building On Non-x86 CPUs - Phoronix
- Mesa 22.3-devel Lands Latest Workarounds For Intel Arc Graphics - Phoronix
- Mesa 22.3 Merges The Big Draw Throughput Improvement For Intel's Vulkan Driver - Phoronix
- Intel Gallium3D "Iris" Driver Changes Merged For Rusticl's OpenCL 3.0 - Phoronix
oneVPL
- oneVPL 2023.1 Released For Intel's Open-Source Video Processing Library - Phoronix
- Intel Publishes New Media Driver, oneVPL GPU Runtime "2022Q3" Releases - Phoronix
- Intel Talks Up Their oneVPL Acceleration Within FFmpeg - Phoronix
Video
- Intel Lands An AV1 QSV Encoder In FFmpeg - Phoronix
- Intel Preparing HDMI 2.1 FRL For Their Linux Driver, Native HDMI 2.1 For Meteor Lake - Phoronix
- Intel Publishes Latest FFmpeg Patches For Better GPU Video Encode/Decode - Phoronix
Arc
- Intel's Open-Source Arc Graphics Driver Not Yet Working On POWER Hardware - Phoronix
- Intel Arc Graphics A750 + A770 Are Ready To Run On Open-Source Linux Drivers - Phoronix
- Intel Releases Packaged Arc Graphics Driver For Ubuntu 22.04 LTS - Phoronix
- Intel ME-Enabled System Needed For Updating Arc Graphics GSC Firmware - Phoronix
- Linux 6.2 Will No Longer Treat Intel Arc Graphics As Experimental - Phoronix
- Intel Begins Readying Graphics Driver Changes For Linux 6.1 - More DG2/Alchemist Work - Phoronix
- Intel Smooth Sync Support Being Worked On For Linux Graphics Driver - Phoronix
- Intel Revises Linux Graphics Driver Support For DP MST Display Stream Compression - Phoronix
- Intel Prepares Updated Linux Graphics Driver Handling For GPU Firmware - Phoronix
- Intel Acquires The Team Behind ArrayFire GPU Acceleration / Parallel Computing Software - Phoronix
- Intel Details More Arc Graphics A-Series Hardware Specifications - Phoronix
- Intel Sends Updated GPU Firmware Handling, More Meteor Lake Graphics Code For Linux 6.1 - Phoronix
- Intel Sends More Meteor Lake Code, GSC For Xe HP SDV For Linux 6.1 - Phoronix
- Intel Becomes First Major Corporate Backer To Krita Open-Source Digital Painting Program - Phoronix
- Intel Publishes Xe Super Sampling "XeSS" 1.0 SDK - Phoronix
- Intel XeSS 1.0.1 Released With Bug Fixes - Phoronix
- Intel Extension For TensorFlow Released - Provides Intel GPU Acceleration - Phoronix
- Intel Begins Sending In Their Graphics Driver Changes For Linux 6.2 - Phoronix
- Linux 6.2 Preparing Intel HuC, OA, PS64 & Sensor Monitoring For Arc Graphics - Phoronix
- Fixed Intel IFS Driver Ready To Go With Linux 6.2 - Phoronix
- Intel Linux Kernel Graphics Driver Patched For New Security Sensitive Bug - Phoronix
- Intel IGC 1.0.12504.5 Released As Big Graphics Compiler Update - MTL, Ray-Tracing - Phoronix
- OpenVINO 2022.3 Released With Full Support For Sapphire Rapids, Intel dGPUs - Phoronix
- Intel Preparing New "Xe" Linux Kernel Graphics Driver For Modern iGPUs & dGPUs - Phoronix
Driver
- グラフィックドライバーを更新してハードウェアアクセラレーション機能と WebGL を使用する | Firefox ヘルプ
- インテル® ドライバー & サポート・アシスタント
- AMD Radeonの公式ソフトウェアおよびドライバー
- NVIDIAドライバダウンロード
- ドット絵を引き伸ばしてもボヤけない機能、Ice Lakeの内蔵GPUにも実装 - PC Watch
Intel
- Hardware Specification - PRMs | 01.org
- VAAPI | 01.org
- Hardware Accelerated H.264 Video Encoding using VAAPI on the Intel® Atom™ Processor E6xx Series
- インテル® プロセッサー・グラフィックス | iSUS
- Intel® Processor Graphics | Intel® Software
- インテル® グラフィックス・コントローラーの識別
- Identify Your Intel® Graphics Controller
- Quick Reference Guide for Intel® Core™ Processor Graphics | Intel® Developer Zone
- Using hardware video decode on Mobile Internet Devices | Intel® Developer Zone
- 01org/intel-hybrid-driver
レガシー
Clarkdale
- 【多和田新也のニューアイテム診断室】CPU+GPUを統合したClarkdaleこと「Core i5-661」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】BecktonからClarkdaleまでの実態が明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】IntelがMoorestownとClarkdaleの新情報を公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Westmere系CPUのラッシュとなるIntelの2010年ロードマップ - PC Watch
Sandy Bridge
- Intel Fanboy Blog: いまさらSandy Bridge 2: RWT Graphics編
- Intel Fanboy Blog: Agner氏の最適化manualが更新された
- Intel Fanboy Blog: いまさらSandy Bridge 1: RWT編
- Intel Fanboy Blog: Sandy Bridgeの最適化マニュアル
- Intel Fanboy Blog: 駄文: uop長とuop cache
- Intel Fanboy Blog: 単一uopで128b/256bのLoadを実現するSandy Bridge
- 【後藤弘茂のWeekly海外ニュース】今どきのGPUコアへと生まれ変わるSandy Bridge - PC Watch
Ivy Bridge
- 【後藤弘茂のWeekly海外ニュース】Ivy Bridgeの強化ポイントはGPUアーキテクチャの改革 - PC Watch
Haswell
- 【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】次世代CPU「Haswell」の2倍強力なGPUコア - PC Watch
Broadwell
- 【後藤弘茂のWeekly海外ニュース】IDFでIntelが14nmプロセス世代の「Broadwell」を公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelがデスクトップ/eDRAM版を含めた「Broadwell」ファミリを説明 - PC Watch
Skylake
- COOL Chips XIX - コンピューティングの新たなフロンティア (1) SkylakeのGPUが示したIntelの新たな方向性 | マイナビニュース
- COOL Chips XIX - コンピューティングの新たなフロンティア (2) SkylakeのGPUの構造 | マイナビニュース
- 歴代Intelグラフィックの劇的進化が第6世代Intel Coreプロセッサ「Skylake」のGPU詳細から浮き彫りに - GIGAZINE
- 【後藤弘茂のWeekly海外ニュース】Intelがチラ見せする「Skylake」世代のCPUの姿 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Skylakeアーキテクチャの謎 その2 ~5命令デコーダと6命令uOPキャッシュ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】実行モデルを変更したSkylakeのGPUコア ~より汎用的なGPUコンピューティングに向いた設計へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GPUコンピューティング機能を強化したSkylakeのGPU ~タブレットの応答性が向上 - PC Watch
Kaby Lake
- Intel、Kaby Lakeこと第7世代Coreプロセッサを正式発表 ~Skylakeからビデオエンジンが強化 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの「Kaby Lake」は“+”プロセス世代初のCPU - PC Watch
Ice Lake
- 【イベントレポート】Intel製Gen11 GPUは、ユニット3割増で1080pゲームも可能に。Adaptive-Syncにも初対応 - PC Watch
- Intelの次期内蔵GPUは1TFLOPSの性能で3Dゲームにも対応 - PC Watch
- 西川善司の3DGE:第10世代Coreプロセッサに統合されたGPUの正体。性能はRyzen 7 3700Uの内蔵Vegaとほぼ同等で,Variable Rate Shadingにも対応 - 4Gamer.net
- Intel、第10世代以前のCPU内蔵GPUをレガシー扱いに。致命的なバグ/脆弱性修正のみ提供へ - PC Watch
- Intel To Split Off Their Old Haswell/Broadwell Vulkan Code Into Separate Driver - Phoronix
Tiger Lake
- 【やじうまPC Watch】Tiger Lake内蔵のXe GPUで「バトルフィールドV」がプレイ可能 - PC Watch
- 薄型ノートでゲーミングを可能にするIntel Xe GPUまとめ 〜ゲーム認証プログラムが日本国内でも開始 - PC Watch
Alder Lake
- Linux Kernel に Intel Alder Lake-P をサポートするパッチが投稿される ―― ディスプレイエンジンに "XE_LPD" | Coelacanth's Dream
Raptor Lake
- Alder Lake-S と同じ GPU IP となる Raptor Lake-S | Coelacanth's Dream
Meteor Lake
- Meteor Lake Support Lands Within The Intel Graphics Compiler "IGC" - Phoronix
- More Meteor Lake Enablement Readied For Intel Graphics Driver With Linux 6.1 - Phoronix
- 北森瓦版 - “Meteor Lake”はAV1エンコード・デコードをサポートする
- Intel Meteor LakeではAV1エンコーダー・デコーダーを内蔵が確定
- Intel Meteor LakeはAV1エンコードとデコードのサポートを提供することが確認されました。 - 自作ユーザーが解説するゲーミングPCガイド
DG1
- 【後藤弘茂のWeekly海外ニュース】IntelがディスクリートGPUのプロトタイプを発表 - PC Watch
- 【イベントレポート】Intel、同社初の単体GPU「DG1」搭載ビデオカードを初披露。開発者向けボードは第1四半期中に出荷 - PC Watch
- 【PR】Architecture Dayに見た、Intelの底力と変貌【新GPU「Xe」編】 ~GPUでもトップ性能を狙うIntelの秘技とは- PC Watch
- Intel、22年ぶりのディスクリートGPU「Iris Xe MAX」を正式発表 - PC Watch
- Intel、ゲーミング向けXeとなるXe-HPGの存在を明らかに ~Xe-HPGは外部のファウンダリで製造され、2021年に市場投入 - PC Watch
- Xe LP採用ビデオカード「DG1-4G」スペック公開。対応マザボは2種類限定 - PC Watch
- i740以来のIntelビデオカードがついに登場。まずASUSから - PC Watch
Intel Arc
- 製品の開発コード名 Alchemist
- Intel Arcデスクトップ版の仕様が全公開 - PC Watch
- Intel Arcのレイトレーシングの実装が明らかに。上位の「A770」はRTX 3060をやや上回る性能 - PC Watch
- 【Hothotレビュー】IntelミドルレンジGPUのお手並み拝見!発売前のArc 770とA750をベンチマークテスト - PC Watch
- Intel製GPU「Arc」に搭載される高解像技術「XeSS」、初のゲームデモ - PC Watch
- FadisさんはTwitterを使っています: 「Intel GPUをWindowsのDirectX9で使うためにIntelが提供しているドライバの中身が、どうもDXVKだという話。Intelは最新のドライバでDirectX9の実装が刷新され、古いゲームのパフォーマンスが大きく向上するとしていた https://t.co/VSZKhC4o6H」 / Twitter
- Intel using DXVK (part of Steam Proton) for their Windows Arc GPU DX 9 drivers | GamingOnLinux
- FadisさんはTwitterを使っています: 「DXVKはDirectX9、10、11をVulkanに翻訳して実行するDirectXのオープンソースな実装。WINEと組み合わせてLinux上でWindowsのゲームを動かすのに使われる。SteamDeck等で何故かDirectXなゲームがぬるぬる動くのはだいたいコイツのお陰で、Valveが中心となって開発している」 / Twitter
- FadisさんはTwitterを使っています: 「DirectX9が期待するGPUのモデルと今日のGPUの実際の動きは大きく乖離していて、DirectX9上で動くアプリケーションを最新のGPUで性能が出るように動かすのは簡単なタスクではなくなっている。Intelは今まで自前でこの努力をしていたが、オープンソースの実装使った方が性能が良かったというオチらしい」 / Twitter
- 星くず彼方にさんはTwitterを使っています: 「@fadis_ 以前は自前ではなくMicrosoftのD3D9On12という変換レイヤーを使ってたんです。 https://t.co/bzWa40w2I6」 / Twitter
- Intel Arc GPUはDirectX 9サポートを切り捨て。変換レイヤーで対応へ - PC Watch
- 【Ubuntu日和】【第15回】おっとIntelのdGPUはUbuntu用のドライバがリリースされているだと…… よっしゃNVIDIAもAMDもまとめてDeskMeet X300で動作させるぞ!(Intelと簡易ベンチマーク編) - PC Watch
- Intel Arc A380でGPGPUをする - Qiita
- Intel Arc AV1エンコーダが、AMDとNVIDIAのH.264エンコーダを打ち負かす | TEXAL
- Intel Arc A770 AV1 のパフォーマンスは、4K および 8K 解像度で NVIDIA RTX 4090 よりも優れた結果を示した | TEXAL
- Intel 第14世代CPU、Meteor Lake内蔵のGPU性能はArc A380並みに
- IntelがGPU部門のAXGを分割、Raja氏は降格。Battlemage GPUは開発中の模様
- 非対応CPUは悲惨。Arc A770ではResizable BAR無しで性能が約20%低下
- 「Intel Arc」GPUの推奨環境やらResizableBARやらの制約や影響をまとめる - Nishiki-Hub
- Intel Meteor Lake CPUは、GT2「64 EU」とGT3「128 EU」のXe Tiled-GPUモデルで登場予定 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Raja Koduri氏が語るIntelのdGPUの開発方針、考え方そして将来など
Wikipedia
- Intel Arc - Wikipedia
- Intel Xe - Wikipedia
- Intel Xe - Wikipedia
- Intel HD Graphics - Wikipedia
- Intel HD and Iris Graphics - Wikipedia
- Intel GMA - Wikipedia
- Intel Extreme Graphics - Wikipedia
- Intel 845 - Wikipedia
- Intel 830 - Wikipedia
- Intel 815 - Wikipedia
- Intel 810 - Wikipedia
- Intel 740 - Wikipedia
- Intel740 - Wikipedia
- Accelerated Graphics Port - Wikipedia
- 実行ユニット - Wikipedia
- High-bandwidth Digital Content Protection - Wikipedia
MIMD/SIMT
- Hideyuki Tanakaさんのツイート: "てか僕はいまだにMIMDでなんでNVIDIAと同じぐらいの面積当たり演算性能出せてるのかがいまだに謎(´・_・`)いやまあ若干低いけど、それがそこまでのコストになんないならなんでNVIDIAがSIMTにこだわる必要があったんだろうとか。"
- 青子守歌さんのツイート: "@tanakh GPUだから・・・"
- Hideyuki Tanakaさんのツイート: "@aokomoriuta そりゃまあそうですね…"
- Hideyuki Tanakaさんのツイート: "結局クソでかいレジスタファイルは用意しないといけないし、面積インパクトとして独立したIPもってデコードして云々はそんなにでかくもなかったというのがアレなのかなあ。"
- Jun Makinoさんのツイート: "フルデコードの倍精度浮動小数点演算器1つに比べてプロセッサコアは「小さい」のでMIMD にすることのシリコン面積的なオーバーヘッドはせいぜい 30%(数字は適当) という議論はまさに2014年3月にTさんとした。"
IPU
- Intel、第11世代Coreプロセッサの技術詳細を語る:新技術「SuperFinテクノロジー」採用(3/3 ページ) - EE Times Japan
- 第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
- Intel,デスクトップPC向け第11世代Coreプロセッサ「Rocket Lake-S」を発表。14nmプロセスを使いながら6年ぶりにCPUコアを一新
- Image Signal Processing of Intel® Core™ Processors: Presentation
- 17. Intel Image Processing Unit 3 (IPU3) Imaging Unit (ImgU) driver — The Linux Kernel documentation
- Intel GFX CI
GNA
- AI 機能を搭載したインテリジェントな PC
- intel/gna: GNA - Gaussian & Neural Accelerator Library repository
- GNA Plugin — OpenVINO™ documentation
- ASCII.jp:Windowsの顔認証などで利用されているインテルの推論向けコプロセッサー「GNA」 AIプロセッサーの昨今 (1/3)
- Intel Spins Up Revised GNA Driver For AI Neural Co-Processor - Phoronix
IPU
- Miura HidekiさんはTwitterを使っています 「メインフレームの時代はチャネルに振るのが善だったわけだから時代が一周しただけのような気がする」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 汎用vs専用コアか... あまり専用プロセッサが専用につくられていないと「あれ? このコアでも汎用計算させればいいんじゃね?」となると予想。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki それをずっと繰り返していますね。GPUとかは結構汎用的ですからCPUにパスが回ってくるのはメモリ帯域とかの理由になるかなーって思います。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「ほんと、「CPU使ったら負け」な世界になってきた。」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「今はクラウド利用者の処理⇒CPU、クラウドプロバイダの処理⇒IPUという形で、プロセッサレベルで処理を分けるのか。その方がセキュリティなどでも優位と。さらにDisklessなサーバ構成が実現できる。 「インフラ処理でCPUを使ったら負け」はつよいなー。」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「@kkaigai そうなりつつありますねー。やっぱり自社DCは厳しい。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@tzkb 規模の経済性で、従来は汎用のCPUを行わざるを得なかった処理も、大手クラウドDC並みの規模になると、専用プロセッサを使っても利益を出せる…みたいな世界観なんでしょうね。 たぶん、頭で分かってても真似できないヤツ。」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています 「で、IPUでもIntelとArmが戦っており、ArmのNeoverseがAWSやOracle Cloud、Alibabaで採用されるなど優勢のようだ。」 / Twitter
- Intelが新カテゴリーのプロセッサー「IPU」 NICでCPUの負荷軽減 | 日経クロステック(xTECH)
- Intel、400Gbに対応したネットワーク処理をオフロードするIPUを投入へ - PC Watch
VPU
- Intel Movidius VPU に関するメモ ―― Keem Bay, Thunder Bay, Meteor Lake | Coelacanth's Dream
- Versatile Processing Unit を搭載する Intel Meteor Lake | Coelacanth's Dream
- Intel 第14世代Meteor Lake Mobility CPUの詳細がリーク。トリプルハイブリッドコア設計、最大14コア、Xe-LPG GPU、LPDDR5X-7467をサポートし、2023年後半に登場予定 - 自作ユーザーが解説するゲーミングPCガイド
- ASCII.jp:マルチメディア向けからAI向けに大変貌を遂げたMovidiusのMyriad 2 AIプロセッサーの昨今 (1/3)
- ASCII.jp:AIプロセッサー「GAUDI 2」と「GRECO」が年内に登場予定 インテルCPUロードマップ (1/3)
- Intel VPU Driver Adapted To Linux's New Accelerator Framework - Phoronix
- Intel Meteor Lake's VPU Linux Driver Updated, UMD Code Posted - Phoronix
- Intel® In-Memory Analytics Accelerator Architecture Specification - 350295-iaa-specification.pdf
- IntelのCPU開発コードネームを理解する(Skylake以降) - Nishiki-Hub
- Linux 6.2 "char/misc" Changes Land With Continued Intel Gaudi2 Enablement - Phoronix
- 今年のIntel、AMD、NVIDIA、Apple Siliconの動向をおさらい ~ 決して良い年は言えなかったけれど、重要な年になった - Nishiki-Hub
AMD
TAGE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2レベル適応型分岐予測で知識が止まっていて、TAGE知らなかった。 見た感じ、2レベル適応型をベースに、履歴ビット長を級数別で用意みたいな雰囲気…?なぜオカルト派的な話が出るのか不思議。 https://t.co/hqKVDOoXjX https://t.co/2l4pAU6FJa」 / Twitter
- 【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
- R. ShioyaさんはTwitterを使っています: 「「原理的には相関がある分岐がロジカルに見つかるはず」なデジタル派と「分岐予測ってのは,とどのつまり流れなわけよ流れ」とか言ってるオカルト派みたいに分かれて話してた https://t.co/vgXW8DNZqx」 / Twitter
- hrk先生さんはTwitterを使っています: 「@r_shioya TAGEは巧みな方法ですが、動作内容を理解してない人が多すぎ。オカルトと思っているのじゃないかな?分岐予測論文で比較対象として実装して提案手法の優位性をしめしている論文の少なくない割合の論文では実装が間違っている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔々「2レベル適応型分岐予測」を知った時に、もう十分賢いから改善余地無さそうと思っていたけど、最後の数%ミスで数10%のパフォーマンス影響とは…」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「TAGE 自体に興味ある方は,BATAGE という改良版のこの論文が過去の予測器の経緯とかも含めてコンパクトにまとまってると思いますので読んでみてはと. https://t.co/ovCGPq4jkk https://t.co/WVYvMPQIwb」 / Twitter
- An Alternative TAGE-like Conditional Branch Predictor
- R. ShioyaさんはTwitterを使っています: 「@shirouzu オカルトについては別に書いた通りなんですが,今日日だと「1サイクル8命令フェッチ × 予測ミス判明まで最短15サイクル=120命令取り消し」みたいのが,2レベル適応型だと1000命令あたり10回ぐらいはおきるので,実質半分以上無駄に実行してるみたいになって,これでは全然精度たりないみたいな感じです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya ご説明ありがとうございます。まさにそこが判らなかった点でした。 (パイプライン10数段のペナルティ=10数命令破棄だけのはずでは、と) なるほど、そういうことなのですね。とても興味深いです。」 / Twitter
- Branch Prediction and the Performance of Interpreters - Don't Trust Folklore
脆弱性
- AMDプロセッサーにも脆弱性みつかる。Ryzen 7 / Threadripperまで2011年以降全CPU - Engadget 日本版
- Project Zero: Release of Technical Report into the AMD Security Processor
- AMD CPUの脆弱性が発見され、管理者以外のユーザーのパスワードを漏らしてしまう - 自作ユーザーが解説するゲーミングPCガイド
- Researchers Disclose Meltdown-like Vulnerability for AMD Processors (Updated) | Tom's Hardware
- AMD製プロセッサーに複数の脆弱性 ~Athlon、Ryzen、Threadripperなどに影響 - 窓の杜
UEFI CPPC2
- UEFI CPPC2 - Google 検索
- AMD、Windows 11でRyzen CPUの「UEFI CPPC2」問題を解決するチップセットドライバーをリリース - 窓の杜
- AMDとマイクロソフト、Ryzen CPUのL3とCCPC2の問題を修正するWindows 11エラーの公式パッチを公開 - 自作ユーザーが解説するゲーミングPCガイド
- 【やじうまPC Watch】初のWindows 11パッチでRyzenのL3遅延がさらに悪化? - PC Watch
- Windows 11でのRyzenのL3キャッシュ遅延問題が解消 - PC Watch
- AMD製CPUとWindows 11で起こる不具合が複数解消 - PC Watch
- AMD、Windows 11のバグに対する最初の公式修正プログラムを公開|自作.com
- テスト済み。Windows 11でAMDのCPUキャッシュレイテンシーが最大で12倍遅くなる|自作.com
- Ryzen等でWindows11を実行するとゲーム性能が低下。2021年10月中に修正 [Update 1: 修正] | ニッチなPCゲーマーの環境構築Z
- AMDが「Windows 11でRyzenプロセッサのパフォーマンスが最大15%低下する問題」を修正するチップセットドライバーを配布 - GIGAZINE
- 「Windows 11におけるAMD Ryzenプロセッサの性能低下」問題の次期アップデートでの解決をMicrosoftが報告 - GIGAZINE
性能低下
- Windows 11テスト版でRyzenのL3キャッシュ遅延問題が修正。非ASCII文字+レジストリの不具合も対処 - PC Watch
- Windows 11のベータ版にRyzen Cacheのレイテンシーを修正|自作.com
- AMD製CPUでfTPM機能を有効にしているとWindowsの性能が一時的に低下する可能性がある - GIGAZINE
- 「Windows 11でAMD製CPUのパフォーマンスが低下する問題」が更新プログラムでさらに悪化 - GIGAZINE
- Windows 11環境でRyzenなどの性能が低下する問題があるとAMDが発表 - GIGAZINE
Kaveri
- AMD A6-Series A6-7400K - AD740KYBI23JA / AD740KYBJABOX
- ASRock > FM2A68M-HD+
BIOS Flashback™
- [マザーボード] BIOS Flashback™ の使い方 | サポート 公式 | ASUS 日本
- 【ASUS】USB BIOS Flashbackによる更新手順を一挙公開! | パシャログ
- 最強のBIOS更新機能 ASUS「USB BIOS Flashback」を使ってみた。 | Kb
Zen 3 APU
- AMD Ryzen™ 5 5600G | AMD
- AMD Ryzen 5 5600G - 100-000000252
- CPUID for AMD Ryzen 5 5600G (by tenpoku1000)
- TUF GAMING B550-PLUS - スペック|マザーボード|ASUS 日本
- ThunderboltEX 4|マザーボード|ASUS 日本
- AMDのCPU「Zen 3」にSpectre類似の脆弱性が存在|自作.com
- 【後藤弘茂のWeekly海外ニュース】AMD Ryzenの「Zen 3」と「Zen 4」アーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】7nmプロセスに最適化したAMDのRyzen 4000 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】7nmで作られた第3世代Ryzenのトランジスタ密度が低い理由 - PC Watch
- AMD、Re-Size BAR対応のRyzen 5000シリーズ向け新BIOSを2月に公開 - PC Watch
- Ryzen 5000などにSpectreに似た投機実行の脆弱性 - PC Watch
- 第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch
Zen 4
- AMD Ryzen™ 5 7600X | AMD
- TUF GAMING B650-PLUS WIFI - スペック|マザーボード|ASUS 日本
- ThunderboltEX 4|マザーボード|ASUS 日本
- AMDがRyzen 7000シリーズを減産へ。売れ行きが芳しくない模様
- 【笠原一輝のユビキタス情報局】Zen 4、AVX-512対応、GPU統合、AM5、供給電力拡張の5つの強化点を持つRyzen 7000 - PC Watch
- 【シミラボ出張所】Ryzen 7000の爆熱は簡単に下げられる!CPU設定で温度と電力を最適に調整する方法 - PC Watch
- Ryzen 7000シリーズはDDR5-6000がスイートスポット。メモリの枚数にも注意 | ニッチなPCゲーマーの環境構築Z
- AMD Ryzen 7000 X3D CPUはマニュアル・オーバークロックを搭載せず、MicrosoftはWindows 11で最適化を提供予定 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - デスクトップ向けにRyzen 7000X3D, Ryzen 7000 non-X seriesが発表される
- AMD、Zen 4に3D V-Cacheを搭載した「Ryzen 7000X3D」シリーズが発表 〜 最大144MBのキャッシュを搭載する - Nishiki-Hub
- V-Cache搭載Ryzen 7000シリーズは2月発売。Core i9-13900Kより最大24%高速
- 北森瓦版 - Ryzen 7000X3Dのもう少し掘り下げた話
- AMD Ryzen 7000X3Dはオーバークロック不可。Microsoftは最適化を実施へ
- AMDの新型Ryzen 7000X3Dシリーズが高クロック動作を実現できた理由やWindows 11における最適化について | TEXAL
- 北森瓦版 - Ryzen 7000X3D seriesのもう少し掘り下げた話 2
Zen 5
- ASCII.jp:Zen 5に搭載するAIエンジンのベースとなったXilinxの「Everest」 AIプロセッサーの昨今 (1/3)
- AMDの「Zen 5」採用CPUではIPCが最大10%向上し「RDNA 3」採用GPUではワットパフォーマンスが50%向上することが明かされる - GIGAZINE
- AMDの次世代CPU「Zen 5」がHWiNFOで早期サポートを開始 - 自作ユーザーが解説するゲーミングPCガイド
- AMD、独自のbig.LITTLE Techの特許を出願 - プロセッサクラスタ - 自作ユーザーが解説するゲーミングPCガイド
- AMD、BIG/LITTLEプロセッサ間のタスク移行方式の特許を取得 - 自作ユーザーが解説するゲーミングPCガイド
- Zen 4 Dense (Zen4D)はIntel Hybrid Technologyに対するAMDの回答かもしれない - 自作ユーザーが解説するゲーミングPCガイド
Zen 6
- AMD Zen 6アーキテクチャがEPYC VeniceサーバーCPUに搭載されると噂される。200コア以上、完全に再設計されたL2/L3キャッシュとHBM SKUs - 自作ユーザーが解説するゲーミングPCガイド
News
Phoronix
Zen 4
- AMD Zen 4 LbrExtV2 Feature Queued Ahead Of Linux 6.1 - Phoronix
Automatic IBRS
- AMD Posts Linux Patches For "Automatic IBRS" Feature New To Zen 4 - Phoronix
- AMD Auto IBRS Linux Patches Updated For Better Performance Over Generic Retpolines - Phoronix
Upper Address Ignore
- AMD Posts New Linux Code For Zen 4's UAI Feature - Phoronix
GCC
- AMD Sends Out Basic Zen 4 "Znver4" Enablement For The GCC Compiler - Phoronix
- Initial AMD Zen 4 "znver4" Support Merged Into GCC 13 - Phoronix
- AMD Zen 4 "znver4" Support Lands In GNU Binutils - Phoronix
- AMD Sends Out Follow-Up Zen 4 Patch For The GCC Compiler - Phoronix
- AMD Zen 4 Cost Table & Tuning Patches Posted For The GCC Compiler - Phoronix
- AMD Zen 4 Tuning Patches Begin Landing In GCC 13 - Phoronix
- More AMD Zen 4 Compiler Code Merged For GCC 13 - Phoronix
- More AMD Zen 4 Tuning Ongoing For GCC 13 Compiler - Phoronix
LLVM
- Initial AMD Zen 4 Support Patch Under Review For LLVM/Clang - Phoronix
- Initial AMD Zen 4 Enablement Lands In LLVM Clang 16.0 - Phoronix
- AMD Zen 4 AVX-512 Performance Analysis On The Ryzen 9 7950X Review - Phoronix
- Linux 6.2 Adds AMD Zen 4 Pipeline Utilization Data To Help Find Performance Bottlenecks - Phoronix
- With AMD Zen 4, It's Surprisingly Not Worthwhile Disabling CPU Security Mitigations - Phoronix
- AMD Announces Ryzen 7040/7045HX Mobile CPUs, Ryzen 7000 Series X3D, Instinct MI300 - Phoronix
- DragonFlyBSD Adds Temperature Sensor Support For AMD Zen 3 / Zen 4 - Phoronix
P-State
- AMD P-State Patches Updated But Miss The Linux 6.0 Merge Window - Phoronix
- AMD Posts "P-State EPP" Driver As New Attempt To Improve Performance-Per-Watt On Linux - Phoronix
- AMD P-State EPP Driver Updated For Improving Linux Power Efficiency - Phoronix
- AMD P-State Fixes, Fixing s2idle For Some Rembrandt Laptops Lead ACPI/PM For Linux 6.1 - Phoronix
- AMD P-State EPP Driver Updated For More Power/Performance Control On Linux - Phoronix
- New Patches Allow More Easily Managing The AMD P-State Linux Driver - Phoronix
- Linux 6.1-rc7 Makes It Easier To Manage The AMD P-State Driver - Phoronix
- AMD Posts P-State Linux Patches For New "Guided Autonomous Mode" - Phoronix
- AMD P-State EPP Won't Be Ready Until Linux 6.3 - Phoronix
- AMD P-State EPP Patches Spun An 8th Time For Helping Out Linux Performance & Efficiency - Phoronix
- AMD Posts P-State EPP v9 Driver That Aims To Be Ready For Linux 6.3 - Phoronix
Microcode
- AMD Per-Thread CPU Microcode Loading Fix Submitted For Linux 6.1-rc2 - Phoronix
- AMD CPU Microcode Fix For Linux To Patch Every Logical Thread Nears Mainline - Phoronix
IOMMU
- AMD IOMMU v2 Page Tables Getting Wired Up For Linux 6.1 - Phoronix
Coreboot
- Coreboot Begins Enabling Support For AMD Morgana & Glinda SoCs - Phoronix
AOMP
- AMD Releases AOMP 16.0-1 With Initial Support For RDNA3 "GFX11" GPUs - Phoronix
- AMD Releases AOMP 16.0-2 For Its Radeon OpenMP Offloading Compiler - Phoronix
- AMD Releases AOMP 16.0-3 Compiler - Phoronix
PCID
- AMD Prepping PCID/INVPCID Support For KVM Guests On Zen 3 EPYC - Phoronix
- AMD Programmer Manual Update Points To PCID Support, Memory Protection Keys - Phoronix
CXL
- AMD Updates Linux QoS Patches For SMBA With CXL Memory, BMEC - Phoronix
PMF
- AMD PMF Driver Queued Ahead Of Linux 6.1 Later This Year - Phoronix
- AMD's New PMF CPU Linux Driver Now Preparing For "CnQF" - Phoronix
Discontinuing
- Old AMD CPU & Motherboard Support Removed From Open-Source Coreboot - Phoronix
GPU
- AMD Releases Brotli-G For GPU-Accelerated Brotli Compression - Phoronix
- AMD Improving The Linux Experience When Running New GPUs Without Proper Driver Support - Phoronix
- AMD Details New Model Numbering System For 2023 Mobile Processors - Phoronix
- AMD Engineers Held Several Interesting Talks At This Week's Linux Conferences - Phoronix
- More AMD Ryzen Laptops See Suspend-To-Idle Fix - Phoronix
- Linux 6.1 Perf Adds AMD CPU Cache-To-Cache & Memory Reporting Capabilities - Phoronix
- AMD Platform Management Framework Merged For Linux 6.1 With Many Laptop Improvements - Phoronix
- More AMD "Glinda" SoC Enablement Code Begins Landing In Coreboot - Phoronix
- AMD To Unveil Next-Gen Server Processors On 10 November - Phoronix
- Patches Revised For AMD PerfMonV2 PMU Guest Support - Phoronix
- AMD "Mayan Morgana" Reference Motherboard Added To Coreboot - Phoronix
- AMD Software: PRO Edition 22.Q4 for Linux Released - Phoronix
- AMD Cezanne Laptops See Last Minute Suspend/Resume Fix With Linux 6.1 - Phoronix
- Linux Kernel Set To Finally Retire AMD 3DNow! - Phoronix
- AMD Posts Latest VNMI Patches For The Linux Kernel - Phoronix
- AMD Continued Its Great Linux Embrace In 2022 With Better Launch-Day Support + Optimizations - Phoronix
- Linux 6.2 Lands S0ix Idle Change For AMD Ryzen "Rembrandt" Laptops & Newer - Phoronix
- AMD Rolling Out New Website Area For Zen Software Studio - Phoronix
Coelacanth's Dream
- Aldebaran/gfx90a への対応を進める ROCmソフトウェア | Coelacanth's Dream
- AMD の次世代モバイルプラットフォームでは人感センサーをサポート | Coelacanth's Dream
- AMD CES 2022 個人的まとめ | Coelacanth's Dream
- UEFI/BIOS の Resizable BAR オプションが与える影響 | Coelacanth's Dream
- AMD Financial Analyst Day 個人的まとめ | Coelacanth's Dream
- Linux Kernel に AMD Platform Management Framework ドライバーを追加するパッチが投稿される | Coelacanth's Dream
- AMD64 Architecture Programmer’s Manual アップデート、CPUID に非対称トポロジ関連の項目が追加 | Coelacanth's Dream
PC Watch
Zen
- 【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Zen」アーキテクチャの概要を発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代コア「Zen」などの概要が明らかに ~「Hot Chips 28」セッションにて、IBM製CPU「Power9」の概要も - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPU「ZEN」の整数ユニットはBulldozer系と全く異なる - PC Watch
- 【後藤弘茂のWeekly海外ニュース】相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニット - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ISSCCで明らかにされたAMD Zen CPUコアの実装 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが新CPU「Ryzen 7」を発売。続けて「Ryzen 5」と「Ryzen 3」も投入へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch
Zen 2
- 【後藤弘茂のWeekly海外ニュース】AMDがチップレットアーキテクチャのクライアント版Zen 2を投入へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが16コアRyzen 9を含むZen 2の概要とアーキテクチャを発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に - PC Watch
- 【後藤弘茂のWeekly海外ニュース】処理能力が2倍に拡張されたAMD Zen 2のAVXユニット - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ZEN 2ベースの64コアCPU「Rome」はなぜCPUとI/Oを分離したのか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの7nmプロセス「ZEN 2」CPUコアのマイクロアーキテクチャ拡張 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD、7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD、“Renoir”ことZen 2ベースAPU「Ryzen Mobile 4000シリーズ」の概要を明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2 CPUコアの物理的な姿が明らかに - PC Watch
Zen 3+
- Ryzen 6000モバイル版で遂にGPUにてこ入れ。Zen3+とRDNA2で性能大幅引き上げ - PC Watch
- AMD、高性能かつ長時間駆動なモバイルノートを実現するRyzen 6000シリーズ - PC Watch
- 【笠原一輝のユビキタス情報局】AMDのモバイルハイエンドCPU「Ryzen 6000シリーズ」、その高性能の秘密 - PC Watch
GPU
- 【やじうまPC Watch】最新のAMD GPUドライバが勝手にCPU設定を変更 - PC Watch
- AMD、Linux版GPUドライバがレイトレに対応 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDやIBM、Armが「Hot Chips 31」でCPUアーキテクチャを公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが目指すマルチダイ統合最初の一歩“ZENのMCMアプローチ” - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDがISSCCでZENベースSoC「Zeppelin」の詳細を明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの2017年以降の全チップの土台となる「Infinity Fabric」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが12nmプロセスの第2世代Ryzenファミリを正式発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが第2世代RyzenやAPU版Ryzen、モバイル版Vegaなどを一挙発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ZEN+Vegaとなった「Ryzen Mobile」ファミリの詳細 - PC Watch
- AMD、高速L3キャッシュでゲーム性能を15%向上させる3D積層技術 - PC Watch
- 【笠原一輝のユビキタス情報局】AMD RyzenがIntelより優位な理由。プロセッサの競争軸を変えていく「3Dパッケージング技術」とは? ~AMDが3D Chiplet Technologyを発表 - PC Watch
- AMD、LinuxのNUMA性能を約15%高める400行未満のコード - PC Watch
- Ryzen イベント 18 WHEA-Logger Cache Hierarchy Error 対策に CPU LLC Level 変更が効いた - ..たれろぐ..
- リリースされたばかりの「Firefox 106」がAMD Zen 1環境でクラッシュしてしまう問題 - 窓の杜
- 本の虫: AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題
- swayからi3へ移行しました - w_o’s diary
- Versioned Chip Endorsement Key (VCEK) Certificate and KDS Interface Specification - 57230.pdf
- インテル社外秘。アップルとAMDは、M2 MacBookとRembrandtノートパソコンからインテル製ハードウェアをすべて削除 - 自作ユーザーが解説するゲーミングPCガイド
- AMDはRyzen USB接続の問題の可能な修正を提案します|自作.com
- 「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE
PDF
- AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
- security-analysis-predictive-store-forwarding.pdf
- SEV Secure Nested Paging Firmware ABI Specification - 56860.pdf
- technical-guidance-for-mitigating-branch-type-confusion.pdf
Wikipedia
- Template:AMD x86 CPU features - Wikipedia
- Template:AMD APU features - Wikipedia
- Ryzen - Wikipedia
- Ryzen - Wikipedia
- Zen (microarchitecture) - Wikipedia
- Zen (first generation) - Wikipedia
- Zen+ - Wikipedia
- Zen 2 - Wikipedia
- Zen 2 - Wikipedia
- Zen 3 - Wikipedia
- Zen 3 - Wikipedia
- Zen 4 - Wikipedia
- Zen 5 - Wikipedia
Twitter
AGESA
- suzakiさんはTwitterを使っています 「メモ。AMDのUEFI以前にPSP(Platform Security Processor) とAGESA(AMD Generic Encapsulated Software Architecture )が行っていることについての記事。 AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? https://t.co/4bUtwxGeXR」 / Twitter
- AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? | igor'sLAB
- suzakiさんはTwitterを使っています 「AMDのAGESA(AMD Generic Encapsulated Software Architecture )インターフェース仕様 AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification https://t.co/cxmRjqmYZ9」 / Twitter
- AMD Generic Encapsulated Software Architecture (AGESA™)Interface Specificationfor Arch2008 - 44065_Arch2008.pdf
OpenBMC
- suzakiさんはTwitterを使っています 「メモ。AMDで進むオープンソースのファームウェア。まず、OpenBMCから ”AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC” https://t.co/dpY5gqjWv2 Open-Source Firmware Conference (OSFC 2020)での発表で水ども公開さ入れている。 https://t.co/2QDUUsdDJX」 / Twitter
- AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC - Phoronix
- AMD's Journey towards Open Source OpenBMC firmware :: Open Source Firmware Conference 2020 :: pretalx
histric
histric-1
- Fumihiro MatsuiさんはTwitterを使っています: 「そういえば某社CPUのRDRAND命令の起動後エントロピー少ない場合の挙動あれじゃね?の件どうなったんだろうっていまググったら既にパッチ(マイクロコードアプデ?)で対応されたみたいだった」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@MikeHommey あえて空冷にしました。 https://t.co/LLDs9ArmPV 見た目よりも大きいので、PCIeスロットがソケットに普通より近いモデルではグラフィックカードと干渉します。また、高さもあるのでケースも選びます。私はLEDを設定するためのUSBケーブルが、グラフィックカードと干渉して付けられませんでした。」 / Twitter
- Cooler Master: Wraith Ripper
- うーさんはTwitterを使っています: 「もしやと思ってIA32_STAR[48:63]に設定する値(アプリ用のスタックセグメントセレクタ)に3を足してみたら(RPL=3)GPが出なくなった。多分AMDのCPUのバグだこれ。」 / Twitter
- うーさんはTwitterを使っています: 「いや,バグじゃない。仕様通りだ。IntelのCPUで例外にならずAMDのCPUで例外になるというのが仕様通り。やられた。」 / Twitter
- FadisさんはTwitterを使っています: 「AMDの少し古いCPUでLinuxカーネルから得るCPU情報を「乱数生成器なし」にする提案がなされている。対象のCPUは乱数生成器を持つが、このCPU向けの一部のBIOSがサスペンドから復帰する際に乱数生成器を正しく初期化せず、復帰後予測可能な値が出てくる問題が指摘されていた https://t.co/CmBOGEFq84」 / Twitter
- AMD Bulldozer/Jaguar CPUs Will No Longer Advertise RdRand Support Under Linux - Phoronix
- Takuto NaitoさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
- Attacking the Golden Ring on AMD Mini-PC - danny odler - Medium
- Kota Mizushima (on a diet)さんはTwitterを使っています 「「安定性はIntel」って言葉を(自作かじってるくらいの人が言ってるのを)未だにちょくちょく見かけるけど、どういう意味なのだろう?Intel 系にしかない命令セット使ったなら、そりゃIntelでしか動かないと思うけど、安定性とは如何に……」 / Twitter
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu クリエーター系のツール群をA社が出してますが、3世代目になったA社のR CPUでも若干不安定という話もあるので、ハードのみならずソフトウェアの互換性でもその言葉に意味はあるかも。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@keisuke_n 若干不安定て https://t.co/7E7es9Ta4q 辺りでしょうか?ただ、これくらいしか、落ちる系の話見当たらないんですよね。「安定」って何かを考えた時に、デバイスドライバはまあ、M/Bとかも絡むので、ともかくアプリケーションレベルだと、安定しなかったらCPUの不具合だと思うのです……」 / Twitter
- AMD・Ryzenに対してAdobeのソフトウェアは最適化されておらず相性が悪いというのは本当か?
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu プレミア(映像編集)あたりで特によく落ちるということなのでSIMD関連(SSE/AVX)が一番の問題だったのかと思います。3000番台になってから特にSIMD関連のチューニングされたらしいとのことです。 ただ業務だと敏感になるところなのでIntelにしておきたいという本音はあるかと思います」 / Twitter
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu 追記:3000番台になって落ちにくくなった。 CPUの挙動は結構バラバラ(特にタイミング)なのでたぶんA社がかなりクリティカルなアセンブリなコードを書いていてそれで意図しない動作になってしまっているのかと思います。まぁ実際はApple Siliconでは動いているようですけど(^^;。」 / Twitter
- InstLatX64さんはTwitterを使っています 「My #Zen3 expectations -Documented non-Zen2 feats:#VAES,#VPCLMUL, PKU, PCIDE -Dual int store -300+ ROB -Better L1,L2 latency to compensate bigger L3 -4x256b, more symmetrical FPU (2x256b (v)shift, store, perm, div) -fewer ucoded insts -0 crosslane penalties My Zen2 complaint list https://t.co/j78IT9NdQx」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 1: Application Programming" with shadow stack support https://t.co/5MgdnLZ0gg https://t.co/uZpXkdmLEH」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.36 with shadow stack support https://t.co/gzSS39wm69 https://t.co/oKqqTdz0wJ」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" 24594.pdf to 3.31 with new features for #Zen3 https://t.co/tQvRMvLG86 https://t.co/f92iS17RQ2」 / Twitter
- HXLさんはTwitterを使っています 「Zen 4 Support AVX512? https://t.co/ZwNql3MPxL」 / Twitter
- 北森瓦版 - “Zen 4”はAVX3-512とBFloat 16をサポートする
- InstLatX64さんはTwitterを使っています 「#AMD released the Supervisor Entry Extensions 0.50 pdf with Enhanced SYSCALL/SYSRET (#ESC), Reserved Supervisor Shadow Stacks (#RSSS) and Re-Entrancy Protection https://t.co/QKShUOqs56 https://t.co/7O2CxXhjZS」 / Twitter
- AMD Supervisor Entry Extensions, 57115 - 57115_0.50.pdf
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.37 with #X2APIC, #APERF, SPEC_CTRL, PRED_CMD MSRs, etc. https://t.co/nndFzrwnqA https://t.co/sJGJtv7lGb」 / Twitter
- AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
- Rui UeyamaさんはTwitterを使っています 「しかしx86エコシステム全体からみてみると、x86がIntelオンリーだったら今ごろTSMC製造のARMチップと性能差がつきすぎて、真剣にARMへの移行を検討するクラウドベンダとかが出てきたかもしれないから、AMDが存在しているのはIntelにとってもよかったのかもしれない。」 / Twitter
- FadisさんはTwitterを使っています 「PhoronixがGoogle Cloudが近く公開する新しいVM「Tau VM」の性能を大体同じ値段で借りられるAmazon EC2のGraviton2と比較したベンチマーク。Tau VMにはAMD EPYC 7B13(Zen3)が載っていて、ベンチマークの結果は総じてTau VM有利で内容によっては倍以上の性能差が出ている https://t.co/RxtY0jYk3G」 / Twitter
- Google Cloud Tau VM Instances Deliver Better Performance, Price-Performance Than Graviton2 M6g - Phoronix
- FadisさんはTwitterを使っています 「AmazonがわざわざARMのインスタンスを用意した狙いがサーバの性能あたりのコストを抑える為だったわけで、Zen3はそれをも乗り越えてくるプロセッサなのか」 / Twitter
- FadisさんはTwitterを使っています 「AMDがCPUの新機能Smart Trace Buffer(略してstb)をLinuxのユーザ空間から読む為のパッチを投げている話。stbについて公式な発表はないが、パッチの説明は問題が生じた時に直前に通過したfeatureを取れるdebug trace bufferとなっておりIntel Trace Hubに類するものと思われる https://t.co/YKVQhmbFwE」 / Twitter
- AMD "Smart Trace Buffer" Feature Being Wired Up For Linux - Phoronix
- FadisさんはTwitterを使っています 「AMDが次の世代のAMD CPUで必要になるとして、CCD(core-complex dies)が12基載っている場合に全てのCCDから温度を取れるようにする変更をLinuxカーネルに入れている話 https://t.co/fSKzU3oumU」 / Twitter
- Linux Prepares For Next-Gen AMD CPUs With Up To 12 CCDs - Phoronix
- FadisさんはTwitterを使っています 「AMDのCPUはCPU外とのデータの出入りを担うIODと演算を行うCCDに分離されていて、CCDの個数を変える事で幅広い用途向けの製品を出し分けている。現行の製品で最もCCDが多いのは8コア16スレッドを1CCDに収め、CCDを8基積む128スレッドのEPYCだった」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「やっぱ Ryzen はベンチマーク取りにくいなぁ。procfs からmin, maxクロックを固定しても、その外で動くみたいなことが普通にある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あーってかIntelの場合aesencとpclmulqdqで実行ポートが違うから並列実行できるんだけど、AMDの場合、その保証がない気がする... 公式みてもaesencがFP0/1なのに対してpclmulqdqがマイクロコードってなってる...」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています: 「あーそうか、libcのmemcpyはSIMDのLoad/Store(AVXとかSSE)をガンガン使ってくるから、rep movs*は使わないんだっけ……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「AMDさん... どうして... ってなってる(rep movs* はシステムコールで使われるメモリコピー手法) https://t.co/dwaflIqkXR」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なるほどねー。うーん https://t.co/KulbPM0ueK」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「単純に、Zen 2 の rep movs* のマイクロコードが、L3$ からの読み込みに必要なタイミングで prefetch できてないみたいな感じある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Zen 3 は 256-bit AESNI 命令が使えると聞いて注文した勢」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「えー 32MB のメインメモリにひたすら書いていくベンチマーク、hugepage の有無で20%近くスループットかわるの... https://t.co/wLDU03Z4SK」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「32MBだとL2 TLB足りないし、47GB/sってことは10byte超/clockだから、miss penaltyが54? clockってなってることと整合性はある https://t.co/dldhbDP0pM だから僕の感覚がおかしいってことだな。勉強になる」 / Twitter
- AMD Zen2
- RetiredEngineer®さんはTwitterを使っています: 「Zen3 vs Zen4, FYI. https://t.co/LZDHIgpDm2」 / Twitter
- David SchorさんはTwitterを使っています: 「Been working on some Zen4 stuff and decided to completely redo the AVX-512 diagram ...again. With all recent archs added, there's actually no real fragmentation left which was a major criticism early on. I also expect Zen5 to have parity with Intel. LMK if you spot any errors. https://t.co/ex1r74oTME」 / Twitter
- InstLatX64さんはTwitterを使っています: 「Little peek into the future: AsymmetricTopology... HeterogeneousCores... EfficiencyRankingAvailable.. #AMD #Zen5 https://t.co/n2HGPzWElm https://t.co/G5dJ0aIbQO」 / Twitter
- InstLatX64さんはTwitterを使っています: 「Finally! CPUID 8000_0026h - Extended CPU Topology for 128+cores /256+threads https://t.co/bAW1RQmsJR」 / Twitter
- WSL 2使用時の注意点(BIOS(UEFI)でCPUの仮想化機能の有効化について)
- Developer Guides, Manuals & ISA Documents - AMD
- GPUOpen - GPUOpen
- Welcome to ROCm Platform — ROCm Documentation latest documentation
DM&P Electronics
- PCテクノロジートレンド 2022 - CPU編 (1) | マイナビニュース
- DMP Electronics Inc. | 製品情報 | ダイトロン株式会社
- Vortex86 - Wikipedia
- Vortex86 - Wikipedia
- DMP Electronics INC.
- PCM-9343EFG-S6A1E-CIRCUIT BOARD, DMP Vortex86DX 800MHz w/graphic,512MB,dual LAN
- 3.5"シングルボードコンピュータ - VMXP-6453M - ICOP TECHNOLOGY - DM&P Vortex86MX+ / 搭載
- DMP
- Digital Media Professionals Inc.@Digital Media Professionals Inc.
- DM&P Electronics - WikiChip
Apple
Apple
ソフトウェア
- 各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
- iTunes で iPhone、iPad、iPod が認識されない場合 - Apple サポート
- iTunes の USB 関連の警告を解決する - Apple サポート
- Use zsh as the default shell on your Mac - Apple Support
- Apple ID - Apple サポート
- Apple IDの復旧 - Apple (JP)
- Apple ID の 2 ファクタ認証 - Apple サポート
- セキュリティと Apple ID - Apple サポート
- Apple ID のデバイスリストを調べて Apple ID でサインインしているデバイスを確認する - Apple サポート
- 定期購読内容を表示・変更・解約する - Apple サポート
- プライバシー - Apple(日本)
- Apple セキュリティアップデート - Apple サポート
- Apple security updates - Apple Support
- Apple Pay に対応しているアジア太平洋地域の銀行とカード発行会社 - Apple サポート
- WebKit Downloads | WebKit
- Getting the Code | WebKit
- WebKit/webkit: Unofficial mirror of the WebKit SVN repository
- Bugzilla Main Page
- iTunes Store で購入したコンテンツの再生時に iTunes からコンピュータの認証を求められる場合 - Apple サポート
- iTunes Store で -45054 エラーが表示される場合 - Apple サポート
- iTunes でコンピュータの認証を解除する - Apple サポート
- アップル、157ページに及ぶ詳細なセキュリティガイドを公開 - ZDNet Japan
- Apple Platform Security
- 「+メッセージ(プラスメッセージ)」をApp Storeで
- Apple Open Source
- About the Rosetta Translation Environment | Apple Developer Documentation
- Appleシリコン搭載MacのRosetta 2 - Apple サポート (日本)
- Rosetta 2のx86からarm64への変換はどのように動作するのか
技術仕様
- iPhone 6 Plus - 技術仕様
- iOS UPnP/SSDP Multicast over USB Tethering | Apple Developer Forums
- usb endosope | Apple Developer Forums
- Tethering over USB protocols? | Official Apple Support Communities
修理
- 保証状況と修理サービスオプションについて - Apple サポート
- 製品の保証状況とサービス期間を確認する - Apple サポート
- iPhone、iPad、iPod touch を修理に出す準備をする - Apple サポート
- 「iPhone を探す」のアクティベーションロックを無効にする - Apple サポート
- 修理 - Apple サポート 公式サイト
サポート
- Welcome - Apple Support
- ビンテージ製品とオブソリート製品 - Apple サポート
- ARM ベースおよび Intel CPU の投機的実行の脆弱性について - Apple サポート
- iPhone、iPad、iPod touch でメッセージを送受信できない場合 - Apple サポート
- [HD] Steve Jobs - iPhone Introduction in 2007 (Complete) - YouTube
- Appleプラットフォームのセキュリティ - apple-platform-security-guide-j.pdf
- Apple(日本)
- iCloud
- 復旧キーを生成する方法 - Apple サポート
- Apple ID を管理
- apple id 削除 サインアウトできない - Google 検索
- iPhone、iPad、iPod touch を売却、譲渡、下取りに出す前にやっておくべきこと - Apple サポート
- Apple - Support - System Status
- MFi Program - Apple Developer
- バッテリー - サービスとリサイクル - Apple(日本)
- 環境 - Apple(日本)
- iOS 14 や iPadOS に対応しているデバイス - Apple サポート
- iOS 15 や iPadOS 15 に対応しているデバイス - Apple サポート (日本)
- Lightning - 3.5 mmヘッドフォンジャックアダプタ - Apple(日本)
blog
- Windows10でiPhone・iPadとiTunesが連携しない|Tascal PCサポート情報
- Windowsにおいて、iTunesをインストールせずiPhoneイーサネットドライバのみをインストールする方法(USBテザリング可能に) – Luna Blanca
- iPhoneで有線LAN接続はできる?
- iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
- 【知ってた?】iPhoneが勝手に「弱Wi-Fi」を拾わないようにする方法(iOS 11新機能) | できるネット
- スティーブ・ジョブズは自分の子どもにiPadを禁止したのか?|中植正剛|note
- 「iOS 15」 「iPadOS 15」 対応機種まとめ。初代iPhone SEもサポート継続 | CoRRiENTE.top
- SMSを利用したフィッシング詐欺「スミッシング」から身を守るには | GMOグローバルサインブログ
- それを作れば彼らはやってくる:Appleが開く世界的な監視・検閲へのバックドア | P2Pとかその辺のお話R
- Apple File Systemの下にはEFI driverが埋まっている - Blog posts by @retrage
- iPhone XR 充電仕様調査
- iPhone 13 miniを使ってみたら意外と気に入った話
- iPhone 13 mini 充電仕様調査
- スマホを替える時は、Microsoft Authenticator の移行を忘れないでください! | Japan Azure Identity Support Blog
- Microsoft Authenticator による強力なパスワードの生成 | Japan Azure Identity Support Blog
- Mac の特殊キー記号の由来 - 情報と音楽
- 「iOS 16/iPadOS 16」 対応機種まとめ。初代iPhone SEやiPhone 6s/7がサポート対象外に | CoRRiENTE.top
- iOS 16 新機能:iPhoneのeSIMをBluetooth経由で転送可能に | CoRRiENTE.top
- 「Macが異常に遅い」を解決! kernel_taskの暴走を止める方法 – あの角を曲がれば、かぼしー
- MacのVPNをコマンドでスムーズに切り替えよう | フューチャー技術ブログ
- M1Mac向けにコンパイルする - Kludge Factory
- Project Champollion: Reverse-engineering Rosetta 2 の紹介 - FFRIエンジニアブログ
- Reverse-engineering Rosetta 2 part1: Analyzing AOT files and Rosetta 2 runtime - Project Champollion
- 【M1 Mac】パスの設定をしたのにgcc/g++コマンドでまだClangが呼び出される or gcc/g++が実行されないときの対処法 - Nishiki-Hub
- naoyaさんはTwitterを使っています: 「https://t.co/Kd3pRrqn0G ステージマネージャ、結構便利に使っている。もう少し UI がこなれてくるといいんだけど Shift キー + ウィンドウやタイトルクリックでとウィンドウの追加・削除がクイックにできるとな」 / Twitter
- ステージマネージャの使い方 - cockscomblog?
- naoyaさんはTwitterを使っています: 「Mission Control でステージマネジャ単位でアプリケーション一覧できるようになると良いんだけどなあ」 / Twitter
- naoyaさんはTwitterを使っています: 「Shift キーの用途を覚えただけで、結構変わる」 / Twitter
- Microsoft Authenticator が FIPS 140 に準拠しました | Japan Azure Identity Support Blog
News
修理
- 「iPhone 11/11 Pro」は非正規のディスプレイ交換サービスを利用すると警告が出る - GIGAZINE
- iPhone 13はサードパーティーの修理業者に画面修理を依頼するとFace IDが機能しなくなる可能性 - GIGAZINE
- iPhoneの「サードパーティーによるディスプレイ交換が行われた場合Face IDが使用不可になる」仕様がiOS 15.2で変更に - GIGAZINE
- Appleがサードパーティーの修理業者にも正規の部品&修理ツールを供給 - GIGAZINE
- AppleはiPhoneのバッテリーをロックして非正規プロバイダーが交換できないようにしている - GIGAZINE
- 「修理する権利」を保証する法律をイギリスが施行、ただしスマホやノートPCは対象外 - GIGAZINE
- iPhone 13の「認定業者以外がディスプレイを交換するとFace IDが使えなくなる罠」がまもなく解除されるという報道 - GIGAZINE
- Appleがついに自分でiPhoneを修理可能な部品やツールを一般販売すると発表 - GIGAZINE
- Appleは認定サービスで修理したiPhoneやMacを再びAppleCare+に加入できるようにするオプションを検討中 - GIGAZINE
- Appleが紛失・盗難されたiPhoneの修理を拒絶することに - GIGAZINE
- AppleがiPhone 13・iPhone 12・iPhone SEの「自分で修理プログラム」開始 - GIGAZINE
- 広い範囲の電子機器を対象とした「修理する権利」を認める法案をニューヨーク州議会がアメリカで初めて可決 - GIGAZINE
- 自分で自分のデバイスを修理できるAppleの「セルフサービス修理プログラム」対象にM1搭載型のMacBook AirとMaBook Proが追加される - GIGAZINE
- MacBook Proのバッテリー交換マニュアルは162ページの分厚さ、「AppleはMacを修理しにくくさせている」とiFixitが苦言 - GIGAZINE
- スマホのバッテリー寿命を延ばし修理パーツを5年間提供することを義務化する法案がEUで検討中 - GIGAZINE
- iPhone 14のバッテリー交換費用が世界的に大幅値上げ、日本ではiPhone 13シリーズより5000円以上も高くなる - GIGAZINE
- ヤマダ、iPhoneの修理取次サービス開始 - Impress Watch
- AppleやGoogleが圧倒的多数の賛成で可決した「修理する権利」を認める法案に反対し施行を阻止しようとしている - GIGAZINE
PACMAN
- FadisさんはTwitterを使っています: 「PACMAN: Apple M1 CPUでPointer Authenticationによる防御を無力化させる事ができる脆弱性。Pointer Authenticationはソフトウェアに脆弱性があって攻撃者が任意のアドレスを渡せる状況でそれが利用される事を防ぐ為の仕組みなので、まずソフトウェアが壊れている必要がある https://t.co/1P8rOOptb7」 / Twitter
- PACMAN
- FadisさんはTwitterを使っています: 「ARMv8.3以降のARM CPUではアドレスに特権モードでしか触れない鍵で署名を付けるPointer Authenticationが使える。署名が正しくないアドレスでのメモリへのアクセスは拒否される。攻撃者がポインタを書き換えられる状況でも鍵が分からないと正しい署名を付けられないので任意の処理の実行が阻止される」 / Twitter
- FadisさんはTwitterを使っています: 「PACMANでは、Apple M1 CPUのTLBの振る舞いをリバースエンジニアリングし、投機的実行がPointer Authentication付きのメモリアクセスを超えて行われる事を発見。投機的実行中のメモリアクセスで何かが読まれたかどうかをTLBの反応を見るサイドチャネル攻撃で判定することで、鍵を特定する」 / Twitter
- FadisさんはTwitterを使っています: 「Pointer Authentication自体はApple M1 CPU以外にも複数のARMベースのプロセッサに実装されているが、この攻撃が成立するかどうかは投機的実行とTLBの振る舞いに大きく依存する為、Apple M1 CPU以外でも同様の攻撃が成立するかは不明」 / Twitter
- Apple M1チップの修正不可能な脆弱性を突く攻撃「PACMAN」が見つかる - GIGAZINE
GIGAZINE
- 「AppleやAmazonは電子廃棄物の津波を引き起こしている」という批判 - GIGAZINE
- 第6世代「iPad mini」は画面スクロール時に表示が崩れる「ゼリースクロール」が生じる - GIGAZINE
- スマホに「5年間のセキュリティアップデート」と「3年間のOSアップデート」を義務付ける法案がEUで検討中 - GIGAZINE
- 電源オフのiPhoneでも「探す」機能で位置を特定できるのはなぜか? - GIGAZINE
- Appleの「ロスレスオーディオ」はAirPods ProやAirPods Maxでは利用できない - GIGAZINE
- HTMLだけでスマートフォンのカメラにアクセスするクールな方法 - GIGAZINE
- 無料&広告なしで圏外でも使えるオープンソースの地図アプリ「Organic Maps」を使ってみた - GIGAZINE
- iPhone 13 Pro以外のiPhoneでもマクロ撮影が可能になるカメラアプリ「Halide」を使ってみた - GIGAZINE
- Appleが二要素認証へのセキュリティキー追加やiCloudの暗号化対象拡大などセキュリティ機能3つの追加を発表 - GIGAZINE
- Apple M1環境でLinuxを動かす「Asahi Linux」向けのApple GPUドライバーがついに実装される - GIGAZINE
- Appleは2024年発売予定の「第4世代iPhone SE」の大量生産を延期もしくはキャンセルする可能性があると報じられる - GIGAZINE
- Apple Storeで一括購入したiPhoneになぜかドコモのネットワーク利用制限が () - AKIBA PC Hotline!
- 【悲報】iPad mini 6でディスプレイの歪み・変色問題が報告される - ソフトアンテナブログ
- 「iPhone」で部品と修理履歴を表示へ--「iOS 15.2」から - CNET Japan
- AuguryはAppleシリコンに影響を及ぼす新たなマイクロアーキテクチャ攻撃
- iPhone 14で注目 いま「スマホで衛星通信」が盛り上がる理由【西田宗千佳のイマトミライ】-Impress Watch
- 「Nature Remoアプリ」で「電気ひっ迫予報」ウィジェット、iOS向けに - ケータイ Watch
- もし死んでもiPhone/iPadを家族・友人託せる ~Apple、「iOS 15.2」「iPadOS 15.2」を公開 - 窓の杜
- 「Microsoft Authenticator」が住所と支払い情報の自動入力に対応 ~Edge、公式Chrome拡張とも連携 - 窓の杜
- Black Hat USA 2022 注目発表 2 ~ macOS のセキュリティの発表紹介 - FFRIエンジニアブログ
- ASCII.jp:iPhoneのアラームをバイブレーションだけで静かに使う方法
- ASCII.jp:みんなに役立つ! iPhoneの「アクセシビリティ」機能を知ってほしい (1/3)
- Intel、EvoブランドのノートPCとAndroid/iPhoneを連携させるツール「Unison」 - PC Watch
- iPadOS 16のステージマネージャと外部ディスプレイ利用が超便利【先行レビュー】(1/3 ページ) - ITmedia NEWS
- Appleの独自開発モデムチップは2024年のiPhoneから搭載の可能性 - Wi-Fi、Bluetoothの統合チップも開発が行われている | TEXAL
Wikipedia
- iOS version history - Wikipedia
- Apple Pay - Wikipedia
- History of iTunes - Wikipedia
- Safari version history - Wikipedia
- Apple motion coprocessors - Wikipedia
- Secure Enclave - Wikipedia
- iPhone - Wikipedia
- iPhone SE (第3世代) - Wikipedia
- iPad mini (第6世代) - Wikipedia
- Apple A15 - Wikipedia
Twitter
histric
histric-1
- トワイライト - Le☆S☆Caさんのツイート: "iOSのSafariは更新マーク長押しでPCレイアウトに出来る、っていうの人に教わるまでずっと知らなかった https://t.co/LsEfkYZZav"
- Tsuzuさんのツイート: "多分USB/Bluetoothテザリングに限ると思うけど"
- Tsuzuさんのツイート: "待って、iOS12ってiPhoneはWi-Fiに接続しながらPCはテザリングとかいうやばいことができるようになってるんですか すごいですね(誰得"
- まちカドおるみんさんはTwitterを使っています 「macOS が安定しているという意見を散見するんだけど、マジかって感じです。たぶんそれ環境が不安定になるまえにハードウェア換えるから不安定なの踏まないだけだよ、サポート中でもサポート終わりかけのときは Windows とは比べものにならないぐらい不安定になる。まあはよ買い替えろだけど」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「iMac 2011 は High Sierra までサポートされてたけれど、Mojave や Catalina 出る前から不安定だった。3 回に 1 回くらいは cold boot コケるし。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「macOS で sudo nvram boot-args="-v" すると splash screen の皮が剥れて黒背景に白文字のなんの色気もない verbose な boot log が画面に出てくるけれど、こっちのほうがまだコケたところわかるから安心できる」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「たぶん大多数のユーザーは黒地に見慣れない白文字がダーッて吐かれたら不安なことこの上ない、というのはわかる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Google Docs のスライドに、自分の話しているところをオーバーレイして、動画にしたいことって、あるじゃないですか。QuickTime Viewerのビデオ録画ウィンドウをスライドの前に配置して、QuickTime Viewerでスクリーンキャプチャ動画を録画すれば、簡単にできるというのが、今日の学びです https://t.co/wmd0DkQ8nL」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「フフフ… そんなローテクな方法で合成してるとは、誰も気づくまい」 / Twitter
- KOBA789さんはTwitterを使っています 「macOS だと開発がハードモードなもの、iOS または macOS 向けアプリ以外すべて、という雰囲気になってきたよな」 / Twitter
- カナやん@みかん本重ね合わせ中さんはTwitterを使っています 「@KOBA789 SIP導入されたあたりから、少しずつ使い勝手が悪くなってきている印象ありますね。最近だとYosemiteあたりが一番使いやすかった。」 / Twitter
- hikaliumさんはTwitterを使っています 「macOS上のQEMUで、-smp cores=2にしてもEFI_MP_SERVICES_PROTOCOLが1コアしかないぞって言ってきており悲しい(むずかしい)。 https://t.co/SUORcbo5Xw」 / Twitter
- hikaliumさんはTwitterを使っています 「kvm有効にしたLinuxホスト上なら4コア見えることが確認できた。結局kvmかあ〜(たぶんみんな-enable-kvmの状態しかテストしてない/使っていないんだと思う)。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「iOS 15では iPhoneが完全にシャットダウンされていてもデバイスが「発見」可能である。これはメインのプロセッサと独立して AOP (Always-on Processor) と呼ばれる電源管理チップとBluetoothチップが動作し、シャットダウン直前に暗号化キーを転送することにより行われる。 https://t.co/gq1vAxbxbc」 / Twitter
- Always-on Processor magic: How Find My works while iPhone is powered off
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「週末に見たドキュメンタリー映画「GENERAL MAGIC」の紹介記事を書きました。1990年創設、約1,900億円を調達、スターエンジニアが集まりスマホを生み出そうとした熱気、華々しいIPO、そしてその崩壊。後にスマホを生む2人もGM社で机を並べていた、とはすごい話です。 https://t.co/bpnaiQWxSK」 / Twitter
- iPhone誕生まで17年―、シリコンバレーで最も重要な失敗をした企業とは? | Coral Capital
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「このドキュメンタリーで最も重要なメッセージは「アイデアも会社も失敗する。でも、そこで仕事していた人たちは失敗したと言えるんだろうか?」というもの。iPod・iPhone発明者・共同発明者のトニー・ファデルもAndroid生みの親のアンディー・ルービンもGMにいて、トニーは「訓練の場だった」と回想」 / Twitter
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「General Magic社員集会の映像には、後に業界で活躍する人物が高密度に映ってた。TwitterのCTO、LinkedIn共同創業者のCTO、女性初の米政府CTO、Dreamweaver創業者で後のAdobeのCTO、Safariブラウザ開発のヘッド、AppleのAI部門トップ、Nest Lab共同創業者、WebTVの創業者など。超新星爆発のような現象」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンピュータの世界って歴史を変えたけどそれ自体は商業的には失敗したってプロダクトが時々でて来るよね。たとえば、Stretch, ALTO,Apollo,NeXT,CRAY2,Magic CAPなど。最近は見ないな。そろそろ面白いものが出てこないかな?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「IBMの計算機でStretchが一番好き。いまのCPUの高速化の技法はだいたいStretchが元と言う。動的型付け言語の最適化技法が大体Selfが元って言うのと似ている。そういえば、Selfも歴史を変えた商業的に失敗したプロダクトだな」 / Twitter
histric-2
- 暗黒美無王 dark VimさんはTwitterを使っています 「macOSやWindowsがLinuxと違ってソースコード公開されてないから優れてるとか優れてないとかいう話ではない。 ソースコードが公開されてないということはアップルやマイクロソフトが問題が起こったら対応してくれるということで、それは非常に便利なのです。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@ShougoMatsu macOSは カーネル: https://t.co/sMPx4URRBg とか libc: https://t.co/6A2qvSrsj9 のソースは無償公開されていて、そういう部分についてはハマった時にソースを見て挙動を確認できるので、Windowsよりはマシですね。 まあ、ありえないコードを発見→絶望もあるわけですが…: https://t.co/YatbzRPllJ」 / Twitter
- Source Browser
- Source Browser
- Backport #5155: [BUG] pthread_cond_signal: Resource temporarily unavailable (EAGAIN) - Backport192 - Ruby Issue Tracking System
- noppeさんはTwitterを使っています 「これスクショ撮った時にSafariだけフルページっていう裏オプションが出てきてそこからも出来る」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「多分知られていないiOSの秘密機能なんですけどね、Safariで印刷する画面でプリントを長押しするとPDFで保存できるんですよ。さらに共有のマークアップでなにも書かずに完了を押すと見ているページ全体が縦長のPDFで保存できるんですよ。サイトで印刷しかできない結果を保存するのに便利です。 https://t.co/zb2PBL0Vla」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「@noppefoxwolf うわ、それは知らなかった... 便利...」 / Twitter
- 渋川よしきさんはTwitterを使っています 「M1 mac、基本的にバッテリー長持ちなのだけど、DockerとJetBrainsのIDEを使うと本体があったかくなってバッテリーがどんどん減っていく。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「iOS用のVPNはぶっこわれている。これは一見、正しく動いているように見えるが、VPNを使わない (おもにAppleのサービスに対する) 通信がそこかしこに発生する。これを完全に止める手段はなく、Appleに問い合わせても無反応。iOS 15.6 でもまだ解決していない。 https://t.co/moidjJHZbc」 / Twitter
- VPNs on iOS are a scam
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「iOSのアプリ内で独自実装されているブラウザは危険である (Safariの部品を利用している場合はOK)。これらは閲覧中のページに勝手にJSを挿入し各種情報を盗み見する。とくにひどいのはTikTokで、これの内蔵ブラウザは事実上キーロガーと同様の挙動をしている。 https://t.co/ccBR6jKFMu」 / Twitter
- iOS Privacy: Announcing InAppBrowser.com - see what JavaScript commands get injected through an in-app browser · Felix Krause
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「以下のページにアクセスすると、各種内蔵ブラウザがどういう悪さをしているかが検出できる。普通の「安全な」ブラウザからアクセスした場合には何も検出されない。 https://t.co/UJVifGWqqx」 / Twitter
- inAppBrowser.com
- Makoto Kato ︎︎さんはTwitterを使っています: 「パスワードマネージャのautofill、macOSは中途半端なAutofillサポートが入ってるけど (TextViewしか使えないのでCustom Viewを使うWebブラウザで実装不可)、WindowsがAutofillサポート入れない理由なんだろうな」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「過去6カ月で、macOSのマルウェア検出機能は飛躍的に向上した。macOS 12.3まで、マルウェアのスキャンはXProtectとMRTが処理していたが、いまや10以上のプログラムが走っている。これらはマルウェアの先手を打つためにあらゆる機会をとらえてスキャンをおこなっている。 https://t.co/BuMAeiQex0」 / Twitter
- macOS now scans for malware whenever it gets a chance – The Eclectic Light Company
- ドッグさんはTwitterを使っています: 「Apple M1/M2 に実装されてる非公開な AMX 命令の仕様(Intel の AMX 命令とは別物らしい) https://t.co/XnwvKQiMtq」 / Twitter
- amx/Instructions.md at main · corsix/amx
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Appleが1985年に出した Inside Macintoshオリジナル版のPDFがダウンロード可能。当時はほとんど知られていなかった GUIの考え方について丁寧な説明が書かれており、開発者文書としては秀逸の出来。3巻構成で全1284ページ。 https://t.co/8c54CdsZP3」 / Twitter
- Inside Macintosh Volumes I, II, III (PDF) – pagetable.com
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「中小アプリ開発業者の連合」と標榜する団体 "The App Association" はアプリの独自課金システムに反対するロビー活動をおこなっている。この団体にAppleがこっそり数億円の資金提供をしていたことが判明。彼らはAppleのフロント団体であることを否定している。 https://t.co/12UeHrTKgc」 / Twitter
- Apple is top funder of lobby group that says it represents small developers | Ars Technica
- なかのん&マジックさんのツイート: "USBの仕様に全然詳しくないのでなんとも言えないけど、Appleは自社のデバイスは認識時に特別扱いするようになってるのかなってのは思うなぁ。キーボードやマウスのテストしてると。"
- なかのん&マジックさんのツイート: "Macユーザは同等なハードで、Apple純正か、サードパーティー製か悩んだ時はApple製の方が間違いは無いってのは感じるな。そんな市場は嫌なので個人の金を投げ入れたいとは思わないけど。"
- Satsuya OhataさんはTwitterを使っています: 「スマートフォンのマイクはユーザが許可を出さなければ使えないけど、許可無しで使える加速度センサやジャイロスコープでも音声を盗聴できたよ、という話。 https://t.co/DAmiKTOzfl」 / Twitter
- AccEar: Accelerometer Acoustic Eavesdropping with Unconstrained Vocabulary
- mod_poppoさんはTwitterを使っています: 「https://t.co/dwePObkTnx Rosetta 2の速さの秘訣を探る記事。x86→Armのトランスレーターは意外とシンプルで、面倒な部分はハードウェア(独自命令含む)に任せているらしい。変換後のコードを見るにはSIPを無効にする必要があるそう。」 / Twitter
- Why is Rosetta 2 fast? | dougallj
- mod_poppoさんはTwitterを使っています: 「最近のArm命令の中にはx86のエミュレーションに都合がいい仕様のものがあるという話は俺も前にツイートした https://t.co/khKTqrbrNL」 / Twitter
- mod_poppoさんはTwitterを使っています: 「こういう話もあった https://t.co/96FVDoTDSv」 / Twitter
- BCNランキング - BCN+R
- 中古スマホ・タブレット販売の【イオシス】|けっこう安い。
- 株式会社デジフォース
- The Official Bluetooth SIG Member Website
- 【mį】iPhone6PlusのBluetoothは何台まで同時接続出来るの!? | ミヤチャンブログ
- libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
- libimobiledevice/libplist: A library to handle Apple Property List format in binary or XML
- Diego Giagio :: Personal Website - iPhoneEthernetDriver
- dgiagio/ipheth: iPhone USB Ethernet Driver
- M1RACLES: M1ssing Register Access Controls Leak EL0 State
- Amazon EC2 Mac インスタンス – アマゾン ウェブ サービス
- Apple Silicon M2はM1シリーズと比べて命令セットが拡張されている - Qiita
- Porting Just-In-Time Compilers to Apple Silicon | Apple Developer Documentation
- mprotect fails after MacOS 11.2 fo… | Apple Developer Forums
- Microsoft Intune とは | Microsoft Learn
- iPhone引越しで躓きがちなポイント。SuicaとLINEに注意しよう - Impress Watch
- Apple Silicon M2はM1シリーズと比べて命令セットが拡張されている - Qiita
- リソース & 必要システム要件 | Parallels Desktop 16 for Mac
- Remote Debugging — The LLDB Debugger
USB
USB4
その他
- USBプロモーター・グループがUSB4仕様を発表:時事ドットコム
- 最大転送速度は40Gbps、USB 4ではThunderboltとUSBが完全統合 | TechCrunch Japan
- 「USB4」の仕様が発表、より高速かつスマートな転送が可能に - CNET Japan
- USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに - 4Gamer.net
- 「USB4」が普及すれば、規格乱立という問題が今度こそ解決する(かもしれない)|WIRED.jp
- USB4は転送速度40Gbpsに100W給電対応!アレと同じ! - ハイパーガジェット通信 | SIMフリースマートフォン/iPhone/タブレット/充電器/便利グッズ
- 「USB4」でカオス状態が解消される!?「USB」の気になるアレコレを徹底解説! - 価格.comマガジン
- USB 4はバスのプロトコルトンネリングをサポートし、40 Gbpsの転送をサポートします - 自作ユーザーが解説するゲーミングPCガイド
- USB4とは?—Thunderbolt 3(DP・PCIe)を内包した新規格を事前予習|8vivid
- USB 3.xでプラグをゆっくり挿すとUSB 2.0で接続されてしまうという話 | Interface – CQ出版
- 【USBコラム13】USB認証とUSB機器間認証は別物 | Interface – CQ出版
- AMD の USB4 ホストルーターをサポートするパッチが投稿される | Coelacanth's Dream
- CalDigit USB-C Pro Dock レビュー:Thunderbolt 3接続もDP Alt Mode接続もイケるUSB-Cドック
USB4 Version 2.0
- 「USB4 Version 2.0」はUSB4の倍速 既存のType-Cケーブルで - ITmedia NEWS
- USB4、次期仕様「Version 2.0」で80Gbpsに高速化、11月までに仕様リリース | マイナビニュース
- 80Gbps転送を実現した「USB4 Version 2.0」登場 - PC Watch
- 「USB4 Version 2.0」の仕様の一部が明らかに、従来の40Gbps対応ケーブルで最大80Gbpsのデータ転送速度を実現 - GIGAZINE
- USB Promoter Group、「USB4 Version 2」を発表 〜 USB4の2倍の帯域である80Gbpsを実現・NVMe 4.0より広帯域 - Nishiki-Hub
- 80Gbpsでのデータ転送を可能にしたアップデート「USB4 Version 2.0」 - ケータイ Watch
- USB4 Version 2では、片方向で最大120Gbpsが実現するモードが実装されるかもしれない - Nishiki-Hub
- 北森瓦版 - USB-IF 最大80Gbpsの転送速度を実現するUSB 4 Version 2.0を発表
- 「80Gbpsでの高速通信」に対応した次世代ThunderboltのデモをIntelが公開 - GIGAZINE
- Intel、80Gbpsの次世代Thunderboltの実動デモ。USB4 Version 2.0と基礎技術を共有 - PC Watch
- Intel、80Gbpsの帯域を実現するThunderboltのデモを実施 - Nishiki-Hub
- Thunderbolt 5は80 Gbpsに達する可能性がある、とリークされた画像が示す|自作.com
- Thunderbolt 5の仕様が明らかに?有効帯域幅が2倍、転送速度は80Gbps - iPhone Mania
- Thunderbolt 5、PAM-3変調により80 Gbpsの帯域幅を実現か - 自作ユーザーが解説するゲーミングPCガイド
- 最大80Gbpsで双方向通信が可能な「USB4 Version 2.0」が正式に発表 | TEXAL
- 最大120Gbpsでのデータ転送をサポートする「USB4 Version 2.0」の仕様が公開される - GIGAZINE
- USB-IF USB 80Gbps Announcement_FINAL_v2.pdf
- USB4® Specification v2.0 | USB-IF
- USB-IF、最大120Gbpsの片方向通信を実現した「USB4 Version 2.0」の仕様を発表 - Nishiki-Hub
- 「USB4 Version 2.0」の仕様を公開、最大120Gbpsを実現 - ケータイ Watch
Thunderbolt
Thunderbolt
- Thunderbolt Technology Community
- IDF Session Presentation Template
- Intel Presentation Template Overview
- Thunderbolt 3 Overview Slides_Web_v3
- Thunderbolt3_TechBrief_FINAL.pdf
- PowerPoint Presentation
DP Alternate Mode
- DisplayPort - Wikipedia
- DisplayPort - Wikipedia
- Snapdragon 835はDisplayPort Altモードに対応、USB Type-Cからの画面出力が可能 | ガジェット通信
- VESA、8K解像度を見据えた映像出力インタフェース規格「DisplayPort 2.0」を発表 (2019年6月27日) - エキサイトニュース
- DisplayPort 2.0 Published For 3x Increase In Data Bandwidth Performance - Phoronix
- 最大帯域幅77.4Gbpsで16KディスプレイやVRをサポートする「DisplayPort 2.0」が発表される - GIGAZINE
- 16K解像度に対応した新規格「DisplayPort 2.0」が重要な理由 | ギズモード・ジャパン
- VESA、ケーブル1本で16K 60Hz/HDRの伝送が可能な「DisplayPort 2.0」 - PC Watch
- 次世代USB「USB4」ではDisplayPort出力対応が“必須要件” ~DisplayPort 2.0はThunderbolt 3並の速度へ - PC Watch
- VESA、DisplayPortコネクタのフェードアウトを示唆。将来的にはUSB Type-Cに集約 ~DisplayPort 1.4規格の現況を報告 - PC Watch
- FadisさんはTwitterを使っています 「USB端子を通してDisplayPortの信号を吐くDisplayPort Alternate Modeの規格がバージョン2.0になったらしい。この変更でUSB4 Type-Cの端子が生えている場合にDisplayPort 2.0相当のレートで信号を吐けるようになり、8Kを超える画面や高解像度のHDRに対応できるようになる https://t.co/cuP50cq9oL」 / Twitter
- DisplayPort Alt Mode 2.0 Brings Interoperability With USB4 - Phoronix
- USB4互換で16K HDR対応の「DisplayPort Alt Mode 2.0」 - PC Watch
- DisplayPortやUSB Type-Cで8K伝送、VESA「HBR3」。製品の早期開発用に認定プログラム - AV Watch
- とみながたけひろさんはTwitterを使っています 「@n_soda @k_nitadori @DIME_HACKS USB-CのAltModeでDP使う場合、最大4lane使えるので、DP1.4(HBR3)流せば8.1Gbps*4流せます。まあそれでも4laneで4k*2k*60fps*30bpp*2あたりが限界ですが、いいやつだといまどきはDSC使っての圧縮ができるので更に頑張れます」 / Twitter
- 可食さんはTwitterを使っています 「USB Type-CハブのUSB Type-Cポートから映像出そうとして失敗してる人たまに見かけるけど、仕様で禁止されているのでどのハブを使っても無理 https://t.co/CaD9TNQD2Q」 / Twitter
Thunderbolt 3
- 分かりづらいThunderbolt 3とUSB Type-Cの違いについてまとめた | HANPEN-BLOG
- Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
- Amazon.co.jp: 【USB-IF 認証済み】Cable Matters Thunderbolt 3ケーブル (20 Gbps) サンダーボルト3ケーブル/ USB-C 3.1 Gen 2 (10 Gbps) ケーブル USB2.0 / 3.0 / 3.1 対応 2m(ブラック): 家電・カメラ
- Thunderbolt™ 3 Controllers Product Specifications
- hanpenさんはTwitterを使っています 「@uchan_nos Thunderbolt 3コントローラーにはAlpine Ridge(古)とTitan Ridge(新)の大きく2種類があるんですが、Alpine Ridge採用デバイスはThunderbolt 3ホストにしか対応していません。USB接続は不可です。Titan Ridge採用デバイスはUSBホストとThunderbolt 3ホストの両方で使えます。」 / Twitter
- 【イベントレポート】Intel第10世代Coreは、Thunderbolt 3をオンダイ統合 - PC Watch
- WindowsでもMacでも使える最速のThunderbolt 3 SSDを作る
Thunderbolt 4
- ASCII.jp:その名はTiger Lake、IntelがノートPC向け最新CPUを発表:CES 2020|CES 2020レポート
- ASCII.jp:IntelがThunderbolt 4の詳細要件とIntel 8000シリーズコントローラーを発表
- ASRock > Thunderbolt 4 AIC
- Thunderbolt 4 AIC:ASRock Thunderbolt™ 4 増設ボード | CFD販売株式会社 CFD Sales INC.
- Thunderbolt 4について解説。USB4やThunderbolt 3と何が違うのか
- ThunderboltEX 4 - Tech Specs|Motherboards|ASUS Global
- IntelがUSB4に準拠したThunderbolt 4の概要を発表、次世代Intel CPUが対応予定 - GIGAZINE
- 【山田祥平のRe:config.sys】周辺機器接続用としてのThunderbolt 4ケーブル - PC Watch
- M1 Macにも対応した3ポートThunderbolt 4ハブが入荷、USB Type-Aもあり - AKIBA PC Hotline!
- Intel、USB4準拠の「Thunderbolt 4」を次期CPUに搭載 ~単体のIntel 8000シリーズのコントローラも - PC Watch
- Thunderbolt 4 Explained | Eaton
Thunderbolt 5
- Thunderbolt 5で8Kディスプレイのデュアル接続がMacで可能に - iPhone Mania
- Intel、80Gbpsの帯域と120Gbpsの映像転送を実現した次期「Thunderbolt」について説明 - Nishiki-Hub
- 最大帯域120Gbpsを実現、Intelが次世代「Thunderbolt」規格を公開 | マイナビニュース
- Thunderbolt 5の転送速度は「80Gbps」と現行の2倍となる可能性 - GIGAZINE
- USB4 Version 2.0に基づく「次世代Thunderbolt」の概要をIntelが発表、双方向で最大80Gbps・外部ディスプレイ用に片道最大120Gbpsを実現 - GIGAZINE
- 最大120Gbpsの高解像度映像向けモードも搭載する次世代Thunderbolt - PC Watch
- インテル、120Gbpsを達成する次世代Thunderboltを初披露 | TEXAL
- 【山田祥平のRe:config.sys】また速くなって役に立つUSB Type-C、Thunderboltも高速化 - PC Watch
Intel
- TB-TechBrief-02.indd
- Thunderbolt™ Controllers Product Specifications
- 製品の開発コード名 Alpine Ridge
- 製品の開発コード名 Titan Ridge
- Introducing Thunderbolt 4: Universal Cable Connectivity for Everyone | Intel Newsroom
AMD
- AMD XConnect™テクノロジー | AMD
- AMD,Thunderbolt 3接続の外付けGPU技術「XConnect」を正式発表 - 4Gamer.net
- AMD、外付けGPUとノートPCをThunderbolt 3でつなぐ「AMD XConnect」 | マイナビニュース
- AMD、Thunderbolt 3経由でノートPCに外部GPUを接続する技術「XConnect」 ~再起動不要で着脱可 - PC Watch
GIGABYTE
- 反撃の狼煙を上げるGIGABYTE、「ビデオカード部門とマザーボード部門の統合」で何が変わるのか? - AKIBA PC Hotline!
- GC-ALPINE RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
- GC-ALPINE RIDGE (rev. 2.0) | マザーボード - GIGABYTE Japan
- GC-TITAN RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
- GC-TITAN RIDGE (rev. 2.0) フォトギャラリー | マザーボード - GIGABYTE Japan
- GC-MAPLE RIDGE (rev. 1.0) 主な特徴 | マザーボード - GIGABYTE Japan
- GIGABYTEからThunderbolt 4増設ボード「GC-MAPLE RIDGE」が登場
- GIGABYTE、7万円超のハイエンドIntel Z390搭載マザーボード ~X299マザーやThunderbolt 3増設カードも - PC Watch
- GIGABYTE、Thunderbolt 4を2基増設できるPCIe 3.0 x4接続の拡張カード - PC Watch
- GC-TITAN RIDGE (rev.1.0): どてやの戯れ言
- Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
- USB4製品の登場と次期Ryzenなど: どてやの戯れ言
- Thunderblt AIC: どてやの戯れ言
脆弱性
- Thunderboltポート経由でPCのシステムメモリを直接読み書き可能となる脆弱性「Thunderclap」 - GIGAZINE
- 数分でPC内のデータにアクセス可能なThunderboltの脆弱性が判明、ソフトウェアによる修正は不可能 - GIGAZINE
- Fadisさんのツイート: "Thunderclap: 多くのOSでデバイスがアクセスできるメモリを制限するIOMMUの扱いがMMUほど徹底されておらず、悪意あるデバイスがDMAを使ってメモリ上の触ってはいけないデータを読み書きできるよ、という脆弱性 https://t.co/W1OCHgK14b"
- Thunderclap
- Fadisさんのツイート: "Thunderclapはハードウェアに物理的なアクセスを要する脆弱性ではあるけど、最近のPCはThunderbolt3とかいうPCI-Express(もちろんDMA付き)が充電端子として生えている為「悪意ある充電スタンドが任意のコードを実行できる」というシナリオが容易に想像できるあたりが問題を深刻にしてるっぽい"
- Kernel DMA Protection for Thunderbolt™ 3 (Windows 10) - Microsoft 365 Security | Microsoft Docs
- More information on Thunderbolt™ security research published by Eindhoven University
- More information on Thunderclap
- Thunderboltに数分でハッキング完了可能な脆弱性。2011年以降のPCが対象 - PC Watch
- Thunderbolt - Wikipedia
- Thunderbolt (interface) - Wikipedia
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第15回 PCIパススルーその1「PCIパススルーとIOMMU」
- 日記 (2019 年 3 月上旬)
- iommu - Google 検索
- 【山田祥平のRe:config.sys】ゆくポートくるポート - PC Watch
- ThunderboltEX 4 - スペック|マザーボード|ASUS 日本
- 【編集部・ライターの今年“これ買った”!】安定しなかったUSB 3.0の2.5GbEから脱出できた救世主。Intel 2.5GbE内蔵Thunderbolt 4ドック「CalDigit TS4」 - PC Watch
USB Type-C
PC Watch
- 【山田祥平のRe:config.sys】転ばぬ先のType-C - PC Watch
- 【山田祥平のRe:config.sys】Type-Cポリスの憂鬱 - PC Watch
- 【山田祥平のRe:config.sys】何がなんでもType-C - PC Watch
- 【笠原一輝のユビキタス情報局】DisplayPort/Thunderbolt/ACアダプタを飲み込んだUSB Type-C ~5年後ノートPCの専用アダプタは消滅する? - PC Watch
- 【特集】USB Type-Cの挙動を探る(ディスプレイ編) ~Type-C搭載ディスプレイの映像出力&給電機能をチェック - PC Watch
- 【特集】ケーブル選びに失敗しないための「USB Type-C」基礎知識 - PC Watch
- 【山田祥平のRe:config.sys】ありがちのType-C、まさかのType-C - PC Watch
- Cypress、USB4とPD 3.0対応のUSB Type-Cコントローラをサンプル出荷 - PC Watch
- 【藤山哲人と愛すべき工具たち】USB Type-C壁コンセントの組み込み手順を紹介。LAN付きテーブルタップへの改造も - PC Watch
- 【特集】「USB Type-C」と「Thunderbolt」って同じもの?よく分かる最新コネクタ解説 - PC Watch
- 【山田祥平のRe:config.sys】Type-C、ややこしいのはポートの仕様 - PC Watch
- 【山田祥平のRe:config.sys】USB Type-C以外のレガシーポートはなくても困らない - PC Watch
- 【山田祥平のRe:config.sys】USB Type-Cケーブルの長さとしなやかさと色分けはコーデの基本 - PC Watch
- 【やじうまミニレビュー】USB Type-Cを磁石式コネクタに変換してくれるアダプタが便利 - PC Watch
- 【山田祥平のRe:config.sys】立って一畳寝て半畳 Version 2.0m - PC Watch
GIGAZINE
- USB Type-Cケーブルにはなぜたくさんの種類があるのか、どうやって見分ければいいのか? - GIGAZINE
- USB Type-Cに「表裏」を取り戻させる悪魔のデバイスが爆誕 - GIGAZINE
- USB Type-CをDisplayPortに変換するハブはどのように選べばよいのか? - GIGAZINE
- PCを破壊する恐るべきType-CのUSBケーブルがちまたにあふれかえる現状にGoogleエンジニアが怒りのAmazonレビューを連載中 - GIGAZINE
blog
- 規格的にアウトなUSB Type-C変換アダプタが売られている話 | HANPEN-BLOG
- USB-C – イヤホンジャックの変換アダプタは2種類あるので要注意
- 日本で買えるUSB-IF認証済みUSB Type-Cアクセサリのリスト
- USB Type-C プラグがゆるくなったときの対策と直す方法|What to do when USB-C become loose. | フレークの素 | Web制作・システム開発のCreativeFlakeブログ
- Thunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG
- USB-TypeCで、地獄をみた話。 | モテモテテクノロジーブログ
- 「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など | AndMem
- プロフィール
- USB 3.0/3.1/3.2の違い—速度・形状・4つの注意点を簡単にまとめたよ!|8vivid
- 仕様違反のUSB Type-C変換アダプターが売られている話
- 【2022年1月】管理人が使っているUSB Type-C周辺機器
- USB 3.2 Gen 2×2の拡張カードとSSDケースを買った
Twitter
- finoさんのツイート: "USB Type-Cくんのまとめ、拡散されちゃったんでアレだけど一応書きもらしとかツッコミあったやつ追記したらもっと長くなりました https://t.co/JWOg9xwFAi"
- Fadisさんのツイート: "Type-C登場以前から電源周りに関してUSBの規格は無視され続けているが、問題はそこから供給される電力が大きなものになってきて、昔のようにいいかげんなままにしておくと危険なものになってきた事なんだよな"
- UTiCd/うちかどさんのツイート: "USB PDのデュアルロール持ってるデバイスは、強制給電-自動選択-強制受電 くらいのスイッチ(もしくは内部設定)を付けておいてくれればって話よね・・・ 特にモバイルバッテリとノートPCを繋いだときにどっち方向に給電されるのか分からないの勘弁して欲しい"
- 岡田哲哉さんのツイート: "Mac同士をUSB-Cで繋ぐと「給電ガチャ」が楽しめますw(実験済み)… "
- Kazuho Okuさんのツイート: "レビュー削除以前の話として、USB-C規格に不適合な製品を「USB-C対応」として販売することに法律上の問題はないのかな / “Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ” https://t.co/ojX1JV4IDH"
- Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ
- しめじさんのツイート: "Type-C、なんでレセクタプル側の内部に薄い基板付ける構造にしたのか、本当に分からん。折れたら機器の修理、交換だぞ… "
- 伯爵格雷 ✌️🐸✌️さんのツイート: "・モバイル版Chromeはアドイン出来ないし広告ブロッカー外付けだし何の価値ですか? ・どうせW1チップ搭載機に取り込まれるのだ諦めよ ・TypeCは中のベロが腐る ・高い(わかる)"
- なかのん&マジックさんのツイート: "適度に故障からの買い換え需要を狙ってるのでは……microBでもデバイスのコネクタがグラグラしてくるからどっちみちって気もする。"
- とみながたけひろさんのツイート: "規格上、ハブ通すとPDやaltモードが使えなくなって色々と不便(PDは使えたかも、自信なし)、というのを理解してもらうコストが高いとかかなあ… "
- かごめPはマスタリング講座始めましたさんのツイート: "教えて偉い人! USB Type-cのハブが欲しいなあとぼんやり思っているんですが、市販のハブで「USB Type-CをUSB Type-C複数口に分配するハブ」が無いんです。USB Type-Cを複数口出せるハブが欲しいんだけど、そういうのって無いんです?規格上の問題?"
- はんぺんさんのツイート: "PCメーカー各社はマジで ・USB 2.0 / 3.1 Gen.1 / 3.1 Gen.2 のどれなのか ・USB PDで充電できるのか ・何W以上のUSB PDなら充電できるのか ・DisplayPort Alt Modeの有無 ・最大の解像度とフレームレート ・DisplayPort MSTの有無 ぐらいは詳細スペックのどこかに書いといてほしい"
- monochromeさんはTwitterを使っています 「規格上は遅くなることはないが、規格に準拠していない粗悪品があって、それだと実際に遅くなることがあるという話らしい」 / Twitter
- 也田嗔/旧式P [焼]さんはTwitterを使っています 「USB TYPE-Cはどっち向きでも挿せるけど、端子の並びは完全対称ではないので、実は表裏が存在する。 そのため、データの転送速度がなんか遅いなって時は表裏を変えると改善する場合がある。 #新年だからみんなに役立つこと言うぞ選手権 https://t.co/ZdggXFCaWq」 / Twitter
- HiguchiさんはTwitterを使っています 「@latentacle @yumori0305 外部から失礼&書き足したい補足説明 皆さん勘違いされてますけどUSBの企画に準拠したtype-cは転送速度が遅くなることはありません。企画に準拠していない粗悪品では遅くなる可能性がある、というだけで、間違えた知識になりませんように。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「1本のケーブルで全てを接続」、聞こえはいいけど何らかの不具合の時にHDD等がそれ経由で刺さっていると「試しに抜き差ししてみる」という手段が取りにくいのが厄介」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「どうせ据え置きで使うのだし、Type-Cしか挿さらないMacBook Proにドッキングステーション経由で色々繋いで使うよりは、アダプターなしでUSB Type-AやEthernetやHDMIが繋がるMac miniを使った方が良い気がするな」 / Twitter
- hanpenさんはTwitterを使っています 「建前:USB Type-Cは裏表どっちで挿しても動く 現実:仕様書を読まないで作ると普通に片面でしか動作しないUSB Type-C製品が爆誕する」 / Twitter
- 「USB-C」が本領発揮できる環境が、ようやく整ってきた|WIRED.jp
- 100均(ダイソー)で売ってたUSB Type-Cのケーブルやアダプタをたくさん分解してみた:ウェブ情報実験室 - Engadget 日本版
USB 3.2
- 転送速度を2倍に引き上げた「USB 3.2」が策定 - PC Watch
- USBの新仕様「USB 3.2」は対応端末ならマルチレーン動作可能で最大速度はUSB 3.1の2倍に - GIGAZINE
- マルチレーンにより2倍の転送速度を実現する「USB 3.2」 | マイナビニュース
- USB 3.2の仕様が正式公開 - PC Watch
- 北森瓦版 - USB 3.2の規格策定が完了―Dual-laneで最高20.0Gbpsに対応可能に
- 一ノ瀬 いろはさんのツイート: "“「USB 3.2 Gen.1x1」と書けば、USB 3.0と同じシングルレーンの5Gbps転送にしか対応しないのに「USB 3.2」と記載できる” / “「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術…” https://t.co/Et6I5QlmTw"
- 「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術 (1/3) - ITmedia PC USER
- 一ノ瀬 いろはさんのツイート: "USB-IF はわざと混乱を起こそうとしているのでは無いか。"
- 期待がすごい。20Gbps/sの激速なUSB 3.2、年内に対応製品登場へ | ギズモード・ジャパン
- 20Gbpsの転送速度を誇るUSBの次期規格「USB3.2」は2019年中にPCへの搭載が始まる見通し - GIGAZINE
- 20Gbpsに対応したUSB 3.2、2019年後半にデスクトップPC向けに登場予定 - Engadget 日本版
- ASCII.jp:USB 4の発表で、USB 3.2はどうなった? (1/5)|ロードマップでわかる!当世プロセッサー事情
- 【イベントレポート】ASMedia、転送速度20Gbpsの「USB 3.2 Gen2x2」コントローラを展示 - PC Watch
- 【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
USB Power Delivery
EPR
- 「USB Type-C Revision 2.1」では240Wと現行の倍以上の電力が供給可能に、PCやモニターをUSBで使えるようになる可能性も - GIGAZINE
- naitakuさんはTwitterを使っています 「EPR (Extended Power Range) Mode なるもので240Wまで供給できるようになるっぽい?5/25に仕様書更新されたみたい https://t.co/cTRM7baDXT」 / Twitter
- USB Power Delivery | USB-IF
- hnpnさんはTwitterを使っています 「USB Type-C Revision 2.1と今後公開される新しいリビジョンのUSB PDを組み合わせると最大240Wの電力供給が可能になるらしい」 / Twitter
- hnpnさんはTwitterを使っています 「- 240W = Extended Power Range (EPR) - 電流は最大5Aのままで電圧が50V (正確には48V) になる - ケーブルのeMarkerを確認するので、EPR非対応のケーブルに48Vが掛かることはない - EPR対応ケーブルはEPRロゴの表示が必須なので見た目で区別できる」 / Twitter
- 「これ一本で十分」な時代もすぐそこに!USB PD EPR認証ケーブルとは?240W給電で充電の常識が変わる!
- 新しいUSBロゴは最大240Wの充電機能を示す|自作.com
- 最大40Gbps転送のUSB4と240W給電可能なUSB PD EPRに合わせた新しいUSBの認証ロゴが発表される - GIGAZINE
- USBに新ロゴ。USB4および240W PD向け - PC Watch
PowerIQ
- 第692回:PowerIQとは - ケータイ Watch Watch
- Anker、急速充電の新技術「PowerIQ 3.0」発表 USB PD互換に - Engadget 日本版
- Anker PowerPort Ⅲ Duo レビュー – すまほん!!
- USB Type-AとType-Cを両方搭載、最大出力45WでノートPCも充電できるUSB PD充電器 - ケータイ Watch
Quick Charge
- 【山田祥平のRe:config.sys】QuickChargeがUSB Power Deliveryを包み込む将来 - PC Watch
- Qualcomm、従来より低温で35%充電速度が向上した「Quick Charge 3+」 - PC Watch
- Qualcomm、「Quick Charge 4+」でさらなる充電速度向上と温度低下を実現 - PC Watch
- 第812回:Quick Charge 4/Quick Charge 4+とは - ケータイ Watch
- Qualcomm、4倍高速で100W超の充電可能な「Quick Charge 5」規格 - PC Watch
- Quick Charge 4/4+とは一体何だったのか
- Quick Charge 4+スマートフォンをQC4+充電器で充電したら、むしろ充電が遅くなったりそもそも充電できなかった話
PC Watch
histric
histric-1
- Anker、30WのUSB PD給電対応で低価格化した5ポートUSB充電器 - PC Watch
- 【山田祥平のRe:config.sys】USB PD時代のチャージャー選び - PC Watch
- ASUS、USB PDやQC 3.0対応のモバイルバッテリ2種 - PC Watch
- TI、200W給電対応のUSB Type-C/PDコントローラ ~USB接続で端末の急速充電から“電動工具”まで対応 - PC Watch
- 【山田祥平のRe:config.sys】USB Type-C充電統一への道遙か - PC Watch
- 【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【PC給電編】 ~MacBookとThinkPadで各社のケーブルをチェック - PC Watch
- 【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【スマホ編】 ~Type-C搭載スマホの充電速度をチェック - PC Watch
- 日本初のUSB-IF認証取得USB PD対応ACアダプタ - PC Watch
- 「Type-C=USB PD対応」ではない。高速充電には認証済みType-Cケーブルも必要 ~USB-IF認証取得の充電器「Energear」発表会レポート - PC Watch
- 【特集】これで失敗しない、USB PD充電器選び(解説編) - PC Watch
- 【山田祥平のRe:config.sys】世界中の電源プラグをUSB Type-Cに置き換えるサイプレスの野望 - PC Watch
- 【特集】これで失敗しない、USB PD充電器選び(ノートPC編) ~ThinkPadとMacBook Proで検証 - PC Watch
- 【特集】【特集】これで失敗しない、USB PD充電器選び(タブレット/スマホ/ゲーム機編) ~iPad ProとPixel 3、Nintendo Switchで検証 - PC Watch
- 【特集】これで失敗しない、iPhone/iPadを高速充電できるUSB PD充電器選び ~8製品×7アダプタの組み合わせでチェック - PC Watch
- Anker、100W給電可能なUSB PD×2搭載の急速充電器 - PC Watch
- 【山田祥平のRe:config.sys】理想のマルチポートPDチャージャーを考える人間のわがまま - PC Watch
- AnkerのUSB充電器で発煙の報告。回収へ - PC Watch
- 【山田祥平のRe:config.sys】それでもType-C、やっぱりType-C - PC Watch
- 【特集】ノートPCを充電できるUSB PDモバイルバッテリ、失敗しない選び方はこれだ! ~容量10,000mAh以上/最大出力30W以上の6製品を検証 - PC Watch
- 【山田祥平のRe:config.sys】Type-C PD、怖いながらもNew Normal - PC Watch
- 【山田祥平のRe:config.sys】Type-CがさらにややこC - PC Watch
- 【特集】徹底解明。VAIOが電源オフでもバッテリを使っている真の理由 ~VAIO開発者が語るUSB PD設計の難しさ - PC Watch
- Anker、Type-C搭載で直接スマホを充電できる電源タップ。30W USB PD対応 - PC Watch
- USB Type-Cの給電能力を240Wに引き上げる「USB PD EPR」 - PC Watch
- 【山田祥平のRe:config.sys】30WアダプタはUSB PD充電の新定番 - PC Watch
- 【特集】イマドキの急速充電機能「USB PD」って知ってる?スマホ/タブレット/ノートPCで即役立つ充電の必須知識 - PC Watch
- Gloture、合計150Wまでの給電に対応する4ポートUSB PD充電器 - PC Watch
- 【特集】18~100WまでのUSB PD充電器を徹底検証!出力が違うとノートPCの挙動はどう変わる?11機種を総当たりチェック - PC Watch
- 最大100W出力対応の3ポートUSB PD充電器 - PC Watch
- CIO、USB PD/PPSに対応した小型Type-C充電器。40W出力で2ポート - PC Watch
- 【ニュース・フラッシュ】エレコム、手のひらサイズのUSB PD対応Type-C充電器の2個セットなど - PC Watch
- 【特集】【最新版】ノートPCにも使える30W以上のおすすめUSB PD充電器6選 - PC Watch
- USB PD EPR対応のType-Cケーブル - PC Watch
- エレコム、最大240W出力対応のUSB4対応ケーブル - PC Watch
- 欧州、2024年までにスマホなどでType-C充電を義務付け。ノートPCも40カ月後に対象へ - PC Watch
- Anker、「充電器の過電流は通常の使用では問題なし」。ただし、今後は仕様を変更 - PC Watch
- 最大140W出力に対応したUSB PD 3.1準拠の高出力充電器 - PC Watch
- ベルキン、M2 MacBook Airに好適と謳うUSB Type-Cポート×2搭載のPD充電器 - PC Watch
- Anker、140W出力のUSB PD 3.1対応充電器とモバイルバッテリ - PC Watch
- Anker、GaN技術を進化させ、小型化と複数充電を実現した「GaNPrime」シリーズ - PC Watch
- 【ニュース・フラッシュ】エレコム、GaN採用の小型45W USB PD充電器。10,000mAhのモバイルバッテリも - PC Watch
- USB Type-C/PD給電対応のPC切替器、サンワサプライから - PC Watch
- オウルテック、乾電池をモバイルバッテリ化する「電池でGO!!」 - PC Watch
- 【山田祥平のRe:config.sys】充電と給電についての気の長い話 - PC Watch
- プリンストン、USB PD対応のGaN採用充電器 - PC Watch
- 【山田祥平のRe:config.sys】充電にまつわる業界標準とプロプライエタリ - PC Watch
INTERNET Watch
- Anker、“500円玉ぐらい”のコンパクトなUSB PD充電器「Anker Nano II 30W」発売、2990円 - INTERNET Watch
- Anker、最大100Wのハイパワー充電器「736 Charger」とバッテリーつきコンパクト充電器「511 Power Bank」を発売 - INTERNET Watch
- AnkerのUSB充電器、特殊な環境下で3Aケーブルに5Aの電流が流れる現象、「通常の使用においては安全」【やじうまWatch】 - INTERNET Watch
- 最大出力65W、2mのケーブルが付属するUSB PD充電器「ACA-PD91BK」、サンワサプライが発売 - INTERNET Watch
- シガーソケットでノートPCを充電したい!! 車内で仕事するのに高出力のUSB PD充電器を探してみた【テレワークグッズレビュー 第48回】 - INTERNET Watch
GIGAZINE
- 最大20W出力が可能なモバイルバッテリー兼急速充電器「Anker PowerCore Fusion 10000」と薄さ1.5cmのモバイルバッテリー「Anker PowerCore Slim 10000 PD」レビュー - GIGAZINE
- コンパクトかつ最大45WでスマホからノートPCまで充電可能な「Anker Nano ll 45W」レビュー - GIGAZINE
- iPhoneのUSB電源アダプタを分解したら中身はこんな感じ、Apple純正は一体何が違うのか? - GIGAZINE
- AnkerのACアダプターをバラバラに分解、玉石混交のACアダプターでも「良品」はこうなっている - GIGAZINE
- 3ポート最大120W出力が可能な「Anker 737 Charger (GaNPrime 120W)」を使ってみた - GIGAZINE
- 最大30W出力可能なのにプラグが折りたたみ式でコンパクトな「Anker 511 Charger(Nano 3, 30W)」を使ってみた - GIGAZINE
@IT
- 【USB】第6回 USB充電を大きく変える新規格、USB PDとは? (1/3):ITの教室 - @IT
- 第4回: eMarker内蔵Type-CケーブルのUSB PDプロトコルを見てみよう:ThousanDIYの「ガジェット分解ライフ」:エンジニアライフ
blog
- 多機能USB電力メーター AVHzY CT-2を使ってみた
- USB Power Delivery Analyzer of MediaLogic
- LightningなiPhone・iPadでUSB PD充電に失敗する場合がある
- USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい
- USB PD 60W対応Anker PowerPort Speed PD 60 暫定レビュー
- USB Power Deliveryの規格について調べた | HANPEN-BLOG
- Nintendo Switchの純正ACアダプタはUSB PDの規格に準拠していないという話 | HANPEN-BLOG
- 乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG
- USB-IF認証済み Anker PowerPort I PD レビュー | HANPEN-BLOG
- 誰でも出来る? USB Type-Cケーブルや充電器が規格に適合しているか安価に調べる方法 - AndroPlus
- Apple純正品の仕様をコピーしているサードパーティUSB PD製品の話
- USB Type-CとUSB PDの仕様がアップデート 240Wまで受給電可能に | Interface – CQ出版
- ThinkPadなどのノートPCが一部のUSB PD ACアダプターで充電できない話
- USB PD非対応のUSB Type-Cケーブルは仕様上存在しない
- Ankerのモバイルバッテリーに付属してきた変換アダプターが最悪だった
- 一部のPPS対応ACアダプターで充電できない不具合が修正されるアップデートがThinkPadに降ってきているらしい
- Innergie C3 Duo レビュー
- Innergie C6 レビュー:リクエストされていないのに20Vを出力する充電器 (現在は改修済み)
- Samsung・Xiaomi・OPPO・vivo・Huaweiの急速充電規格メモ
- Amazon | USB Power Delivery アナライザ DTW2U3 (PDワットみるC) | メディアロジック (Media Logic, corp.) | USBフィギュア 通販
- しっかり分かる“USB パワーデリバリ”入門:ついにやってきたUSB Power Delivery(USB PD)とは (1/3) - EDN Japan
- (3)規格が守るUSP PDの安全性 偽造品を見逃さない機器間認証(C-AUTH) | ルネサス エレクトロニクス
- USB-IF、USB-C向け認証プログラムを発表。粗悪な充電器などを排除 - Engadget 日本版
- 第840回:VOOC とは - ケータイ Watch
- 最新モバイルバッテリーの価格破壊がアツい!! PC派待望「5000円でUSB-C 45W」製品も(橋本新義) - Engadget 日本版
- TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual (Rev. B)
- aroe(Yoshio Nomura)さんはTwitterを使っています 「USB PDのコントローラーIC、最初は各社バラバラに作ってて制御方法もバラバラだったけど最近はUSB-IFが制定したTCPI(Type-C Port Interface)という名称の規格で統一されてきてる。I2Cスレーブとして動作してレジスタの配置も決められてるので、共通のコードで動作するようになってる https://t.co/AnE3CrGZ8H」 / Twitter
- aroe(Yoshio Nomura)さんはTwitterを使っています 「微妙に間違えてた。正しくはTCPCI(Type-C Port Controller Interface)である。対応した製品として FUSB307B(On),TUSB422(TI),PTN5110(NXP)がある 対応したMCU向けライブラリとしてはSTMicroのX-CUBE-USB-PDがある。これは一応FUSB307Bに作られてるけど他にも使えるっぽい」 / Twitter
- 葛城玲さんはTwitterを使っています 「@uchan_nos PDパススルーはアクセサリーの電力を横取りするので、容量がギリギリだと上手く動きません。 また、ただでさえ相性問題多発のPD充電器に機器を2台も繋ぐと色々起こります」 / Twitter
- GIGABYTE、100W給電が可能なUSB3.1 Type-Cフロントパネル「GC-USB 3.1 BAY」など2種 - エルミタージュ秋葉原
- FadisさんはTwitterを使っています: 「USB機器はホストに自分が何mA使うつもりか申告していて、ホストはその情報に基づいて必要な電流を供給できない場合デバイスを拒否できる、というのはもう少し知れ渡ってほしい」 / Twitter
- 日本産業規格(JIS)を制定・改正しました(2021年5月分) (METI/経済産業省)
- JIS C 62368-3:2021 オーディオ・ビデオ,情報及び通信技術機器―第3部:通信ケーブル及び通信ポートを介する直流電力伝送の安全性要求事項 | 日本規格協会 JSA Group Webdesk
- UTiCd(モデルナ×3)さんはTwitterを使っています 「https://t.co/XOZF9PCdBx デルタ製Type-C 60W出力ACアダプタ、Innergie 60C Pro(Fold)も3990円になってるじゃん。さすがに買い足さないけど。30.4 x 30.4 x 60 mm(ブレード折り畳み時)の小型サイズだし、ブレードが折り畳みの都合で中心から外れてるから、隣の差込口もまず塞がないよ!」 / Twitter
- 製品一覧 | Innergie
- USB-IF、給電能力を示す新しい認定USB-Cケーブル・ロゴ発表、USB4ロゴも更新 | マイナビニュース
- アンカーから「GaNPrime」技術搭載の充電器5種が発売 - ケータイ Watch
日経 xTECH(クロステック)
- USB4の実像に迫る | 日経 xTECH(クロステック)
- USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経 xTECH(クロステック)
- USB4で採用した3つの新機能、高速化には「あの部品」が不可欠に | 日経 xTECH(クロステック)
- 高速化だけじゃない、USB4はここが違う | 日経 xTECH(クロステック)
- USB4の実像に迫る | 日経 xTECH(クロステック)
- USB4が40Gbpsの超高速を実現した技術とは | 日経 xTECH(クロステック)
- 11年ぶりの大幅アップデート、USB4の真の価値とは | 日経 xTECH(クロステック)
- USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経クロステック(xTECH)
ギズモード・ジャパン
- USB 4が発表。ややこしい規格が統一されてほしい | ギズモード・ジャパン
- 新規格「USB4」発表。何がどう変わるか、今知っておくべきこと | ギズモード・ジャパン
GIGAZINE
- 最大40Gbpsの転送速度を想定した新規格「USB4」の暫定仕様が発表される - GIGAZINE
- 最大転送速度40GbpsでUSB 3.0の8倍速い「USB4」の技術仕様をUSB-IFが正式に公開 - GIGAZINE
- 新旧入り交じり混乱を極めるUSB規格をスッキリ解説 - GIGAZINE
- PCがUSBデバイスを認識した時に何が起こるのか? - GIGAZINE
- 「USB 3.0」「USB 3.1」「USB 3.2」の違いを解説 - GIGAZINE
PC Watch
- Thunderbolt 3が「USB4」として登場へ - PC Watch
- エレコム、業界初のUSB-IF認証取得済みUSB4対応ケーブル - PC Watch
- ケイデンス、業界初のUSB4検証IP - PC Watch
- 【特集】「USB 3.0」=「USB 3.1 Gen 1」=「USB 3.2 Gen 1」? すぐ分かるUSBの「Gen」表記ルール - PC Watch
- 【山田祥平のRe:config.sys】USB4の高速ポートをどう使う - PC Watch
- 【特集】Amazonの安いThunderbolt 4/USB4ケーブルは大丈夫なのか?ケーブル10種で4K×2同時出力・100W充電・データ転送を試してみた - PC Watch
- VIA、USB4ドッキングステーション向けコントローラ「VL830」 - PC Watch
ITmedia
- 「USB4」発表 「Thunderbolt 3」ベースでデータ転送速度は40Gbps - ITmedia NEWS
- USB 4がついに船出 Thunderbolt 3ベースで最大40Gbpsを実現 - ITmedia PC USER
iPhone Mania
- USB4の仕様が発表。2021年までは製品化されない? - iPhone Mania
- ややこしい?「Thunderbolt 4」は「3」よりも転送速度は速くない - iPhone Mania
Twitter
- 確定未申告さんのツイート: "あー、現状のTB3ポートはUSB 3.2の2レーン動作をサポートしてないから、Thunderbolt 3ポート ≠ USB 4ポートか あと、現状のTB3アクティブケーブルはUSB 3.XやTB以外のModal Operationをサポートしてないから、USB 4にTB3が取り込まれればそれが解決するな"
- す~さんはTwitterを使っています: 「USB 4はUSB 2.0のバスを使いつつ、USB 4のレーンを別で使うのでUSB 2.0と互換性がある。 USB 4の電源はType-C, PDの定義に従うためUSB 4では定義されない。 USB3/DisplayPort/Host2Hostトンネルをサポート。 PCIeトンネル/Thunderbolt3/Alternate Modeはオプションサポート https://t.co/15HEztQExD」 / Twitter
- す~さんはTwitterを使っています: 「USB4ではUSB2.0バスを制御用バスとして生かして、高速データ転送のために別レーンでGen 2(10Gbps),3(20Gbps)と高速化、さらに帯域稼ぐのにレーンを多重化してGen 2x2, Gen3x2として行く。 USB3/4は互いに物理層での互換性がないため物理的にUSB3/4を用意してMUXする」 / Twitter
- FadisさんはTwitterを使っています: 「linux-5.6でUSB4のサポートがバニラカーネル入りする見通しらしい。USB4は最大40Gbpsの次世代USBとして今年の夏に標準化された規格。Thunderbolt3をUSBの規格に取り込んだような物で、USBケーブル上でPCI-Express Gen3 x2レーンを喋るEnhanced Super Speedモードが追加される https://t.co/cN8Ns9gYTj」 / Twitter
- USB4 Support Being Introduced With Linux 5.6 Kernel - Phoronix
- 🍭さんはTwitterを使っています 「今まではeMarkerが無かったり全部のピンが結線されてない仕様違反ケーブルでも問題なく使えちゃうケースもあったけど、USB4からはeMarker必須でFull-Featuredじゃないとうまく動かん (はず) なので、昔買った仕様違反ケーブルが原因でUSB 3.xケーブルなのにUSB4で使えないみたいなことが増えそう」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プライバシー保護という観点からは、AndroidもiPhoneも50歩100歩という研究結果。どちらのデバイスも (ログインしなくても) 4~5分に1回の頻度でデータを送信する。データの量ではAndroidのほうがiPhoneより10倍以上多いが、iPhoneは周辺のデバイスに関する情報も送っている。 https://t.co/c4R79eb85J」 / Twitter
- New study reveals iPhones aren't as private as you think | Tom's Guide
- Thunderbolt 3 40Gbpsに対応しないUSB4 40Gbpsケーブルの話
- 玄人志向 | GWM.2NVMe-40GC:USB-C接続 M.2 NVMe対応SSD用ポータブルケース
- USB規格が分かりにくいブランド名を廃止し、転送速度などによる分かりやすい表記に移行予定 | TEXAL
- 🐟🐠🐡🦑🐙さんはTwitterを使っています: 「100Wのロゴがないのは、今後出てくる5AケーブルはEPR 48V対応だと高を括っているのか、それとも100Wの認証自体をやめる予定なのか https://t.co/z22Ex6vSix」 / Twitter
- Benson LeungさんはTwitterを使っています: 「@hnpn914 100W cable is deprecated, and yes, certification will stop. Manufacturers are encouraged to upgrade their designs to 240W for simplicity, and because the delta in cost is small.」 / Twitter
- Benson LeungさんはTwitterを使っています: 「@hnpn914 Note, the small upgrade cost is in the cable between 5A 100W and 5A 240W. Obviously sources and sinks are much bigger cost to upgrade.」 / Twitter
- USB-IF、「SuperSpeed」ブランドとロゴを廃止し、性能を明確にした新ロゴへ移行 - Nishiki-Hub
- USBの新しいマーケティング名と認定製品用ロゴ
- 最初からこうすべきだった。「USB」の速度が分かりやすい表記に - PC Watch
- 「USB」の新ロゴ表記が決まる、データ転送速度が一目瞭然でわかりやすく | マイナビニュース
- 【編集後記】USB-Cに統一されるのは手放しに歓迎していいものではない - Nishiki-Hub
- わかりにくすぎる「USB-C」形状をまとめる。 - Nishiki-Hub
- ユニバーサル シリアル バス 4 (USB4™) のドメイン間接続 | Microsoft Learn
- Linux 6.1 Thunderbolt Networking To Support USB4 End-To-End Flow Control - Phoronix
FIDO
YubiKeys
- drduh/YubiKey-Guide: Guide to using YubiKey for GPG and SSH
- Compare YubiKeys | Strong Two-Factor Authentication for Secure Logins | Yubico
- Basic YubiKey Troubleshooting : Yubico Support
- YubiKeyストア
- USB-based YubiKey Now Boosts Security for iPhones Running iOS 11 | Digital Trends
- Yubikeyを使う:OpenPG編 | κeenのHappy Hacκing Blog
- YubiKeyをLinuxの「鍵」にする | κeenのHappy Hacκing Blog
MS
- YubikeyでLinuxサーバへの二要素認証sshログインを行う | 俺的備忘録 〜なんかいろいろ〜
- YubiKey Personalization Tools | Yubico
- OpenSC/OpenSC: Open source smart card tools and middleware. PKCS#11/MiniDriver/Tokend
- Home · OpenSC/OpenSC Wiki
- 秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
- Yubikey (スマートカード)に入れた秘密鍵を使ってSSHにログインする | n10の個人的なメモ
- Yubikey 4 にSSHの秘密鍵を格納する | n10の個人的なメモ
- Windows Hello and FIDO2 Security Keys enable secure and easy authentication for shared devices - Windows For Your BusinessWindows For Your Business
- YubiKey for Windows Hello を入手 - Microsoft Store ja-JP
- YubiKey Edge で 2段階認証 ~ Windows10編 - Qiita
- IdM実験室: [Windows Hello]Yubikeyを使ってWindows 10 PCにサインインする
- 指紋認証は高精度な偽の指紋なら成功率80%で突破可能 - GIGAZINE
- ASCII.jp:Windows 10、パスワードなしの世界へ一歩前進 (1/2)
- FIDO 標準の拡張と Microsoft のパスワードレス ソリューションへの新たなアップデート | Japan Azure Identity Support Blog
GIGAZINE
- 指紋認証システムは機械学習で生成した「マスター指紋」でも突破可能だと判明 - GIGAZINE
- 3Dプリンターで作った石膏の「顔」でスマホの顔認証は突破される危険性あり - GIGAZINE
- GmailやYahoo!メールの2段階認証を無効化するフィッシング詐欺が横行している - GIGAZINE
- Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み - GIGAZINE
- Googleの安全な2段階認証を構築し不正アクセスを防ぐ物理キー「Titan セキュリティ キー」が日本で登場 - GIGAZINE
- iPhoneに物理的に挿入するだけで二段階認証が可能なセキュリティトークン「YubiKey 5Ci」 - GIGAZINE
- GitHubがWebAuthn対応で物理セキュリティキーによる二段階認証を正式にサポート - GIGAZINE
- Googleの2段階認証を構築する「Titan セキュリティ キー」にUSB Type-Cタイプが登場 - GIGAZINE
- 物理セキュリティキーの「YubiKey」でついに生体認証が可能となることが判明 - GIGAZINE
- スマホでもPCでも使えるUSB Type-CとNFCを搭載した物理セキュリティキー「YubiKey 5C NFC」レビュー - GIGAZINE
- 2020年アメリカ大統領選でメール流出がなかったのは「物理的なセキュリティキー」の採用による可能性 - GIGAZINE
- Googleの物理キー「Titan セキュリティ キー」がサイドチャネル攻撃により突破される - GIGAZINE
- 「セキュリティリスクが高い」のにパスワードが認証方法として使われ続ける理由とは? - GIGAZINE
- 「パスワード認証なし」の世界に向けて足りなかったピースをFIDOアライアンスが発見 - GIGAZINE
- パスワードを過去のものにするAppleの「Passkeys」とは? - GIGAZINE
- Office 365のアカウントを多要素認証すら回避して乗っ取るAiTMフィッシング攻撃が1万以上の組織を標的にしていたとMicrosoftが公表 - GIGAZINE
- AndroidとChromeで指紋や顔認証でウェブサービスにパスワードなしで安全にログインできる認証システム「パスキー」のサポートが開始 - GIGAZINE
News
- FIDO U2F/PKCS#11対応で4つの鍵が管理できるセキュリティキー - PC Watch
- Twitterのセキュリティキー実装の概要
- Apple、Google、Microsoftがパスワードなしサインイン標準サポート拡大 - ITmedia NEWS
- Chromeがついに「パスキー」を正式サポート、パスワードレスでのログインが可能に | TEXAL
- パスワードの次は「パスキー」が個人情報を守る、FIDOアライアンスの説明会 - ケータイ Watch
- iOSやAndroidでも採用、パスワードを使わない認証方式「パスキー」とは何か? | TEXAL
- Google Chrome、パスワードレス認証「パスキー」を導入 - PC Watch
- パスワード不要、スマホの指紋認証でPCサイトへログイン ~「Google Chrome 108」が「パスキー」に対応 - 窓の杜
Publickey
- パスワードマネージャのLastPassと1Passwordが相次いでFIDO/WebAuthnへの対応を発表。パスワードレスの時代にパスワードマネージャの存在意義はどうなるのか? - Publickey
- GitHubがWebAuthn対応を開始。MacのTouch IDやWindows Helloの指紋認証などを使いパスワードレスでログイン可能に - Publickey
- LINEがオープンソースで「LINE FIDO2 Server」公開。パスワード不要でログインできる「FIDO2/WebAuthn」を実現 - Publickey
- パスワードレスを実現するFIDO/WebAuthのさらなる普及へ、新提案を公開。デバイス間でのクレデンシャル同期、Bluetooth経由でのローミング認証器など - Publickey
- Apple、Google、マイクロソフトが対応表明した、パスワードレスがさらに便利になる2つの新機能とは。 PCがスマホとBluetooth通信でパスワード不要に、2台目のスマホにもクレデンシャルを簡単リストア - Publickey
- iPhoneのパスワードレス機能はWindowsとも連携するとAppleが発表。Windows上のChromeにiPhoneをかざしてログインも可能に、FIDO標準への対応で - Publickey
- Google、パスワードレスを実現する「Passkey」の開発者向けサポート開始。Androidデバイス間の同期、Androidを使ってWin/MacでのWebサイトへのログインなど実現 - Publickey
- 最新のGoogle Chrome 108で「Passkey」が利用可能に。Googleアカウントでクレデンシャル同期など - Publickey
- Safari 16がリリース、パスワードレスを実現する「Passkeys」に対応。Web Push、サブグリッド、AVIF画像形式など新機能 - Publickey
blog
- FIDO/WebAuthNにおけるAndroid SafetyNet AttestationとKey Attestationの違い - Got Some \W+ech?
- スマホを買い替えても二要素認証を継続できるWebAuthn Level3 | IIJ Engineers Blog
- パスワードのいらない世界 -あなたのスマホをセキュリティキーに- | IIJ Engineers Blog
- パスワードレス技術の現状と未来について | フューチャー技術ブログ
Qiita
- YubiKeyを実用面から機能別レビュー - Qiita
- YubiKey+Pageantでらくらく秘密鍵管理 on Windows - Qiita
- 秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
- Yubikeyを使って、Githubのcommitをverifyする - Qiita
- 今さら聞けない2段階認証の話いろいろ - Qiita
- YubiKey NEO で Linux でも 2段階認証しよう! - Qiita
- FIDO(ファイド)に準拠した認証セキリティデバイス | 飛天ジャパン
- Fingerprint USB Dongle - PQIグループ- モバイル向け周辺機器の総合メーカー [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
- Fingerprint reader
- Sign in if you’re locked out on iOS 12.3 - Google アカウント ヘルプ
- FadisさんはTwitterを使っています 「ちなみにWebUSBは、フィッシングサイトがFIDO U2FのドングルとWebUSBで直接お話して2要素認証を台無しにする脆弱性 が見つかったあと多くの主要なデバイスクラスのデバイスをWebUSBから使えなくする変更が入った為、楽しむのは難しいAPIになった」 / Twitter
- A Side Journey to Titan - NinjaLab
- Keisuke KATOさんはTwitterを使っています 「YubiKey Bio は OpenPGP に対応していない?そろそろ自分も SSH は GnuPG をやめて FIDO2 resident key に切り替えたい… が,git の署名がまだ GPG か… ssh-keygen -t ed25519-sk -O resident」 / Twitter
- yubico-pam
- Brian in PittsburghさんはTwitterを使っています: 「The failure of Apple, Google, and Microsoft to implement practical cross-interoperability between supposedly "standards compatible" WebAuthn/FIDO2 platform authenticators and their respective services is one of the most important and underappreciated tech debacles of our time.」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「各サービス間のInteroperabilityをやらなければ、三社とも巨額賠償金をEUに払うはめになる気がするんだよね、passkey」 / Twitter
FeliCa
- Sony Japan | FeliCa | 個人のお客様 | 製品情報 | RC-S380
- ソニー、次世代型FeliCaチップ開発 クラウド連携機能を追加 - ITmedia NEWS
- マイナンバーカードをMacで利用可能、ソニーの「PaSoRi」がmacOSに初対応 - INTERNET Watch
- ソニー株式会社 | FeliCa | 個人のお客様 | 製品情報 | RC-S300
- ソニー株式会社 | FeliCa | 個人のお客様 | アプリ・ソフトウェア
I/F
- GC-USB 3.1 BAY (rev. 1.0) | Motherboard - GIGABYTE Global
- REX-PCIU3製品仕様[RATOC]
- 玄人志向 | USB2.0V-P4-PCI:VIA社製 VT6212L搭載 USB2.0 外部x4 内部x1 ※合計4ポートまで同時使用可 インターフェースボード(PCI接続)
- 玄人志向 | USB3.0R-P2-LPPCI:Renesas社製 μPD720202搭載 USB3.0×2 インターフェースボード(PCI接続)
- 玄人志向 | USB3.1C-P2-PCIE:ASMedia社製 ASM2142搭載 USB3.1 Type-C x2 インターフェース(PCI-Express x4接続)
- USB 3.1 Gen 2対応コントローラは搭載チップにより性能が異なる!? ASMedia ASM1142 / Intel DSL6540 : AKIBAオーバークロックCafe
- 「1mのケーブル長さ制限を克服」とうたうUSB 3.1カード - AKIBA PC Hotline!
- GIGABYTE、世界初のUSB3.2 Gen.2×2拡張カード「GC-USB 3.2 GEN2X2」 - エルミタージュ秋葉原
Hub
- USB2.0ハブ 4ポートタイプ|株式会社バッファロー BUFFALO
- Inateck - Portable Mini 4-Port USB 3.0 Hub HBU3VL2-4
- Anker 4-Port Ultra-Slim USB 3.0 Hub|USBハブの製品情報 | Anker (アンカー) Japan公式サイト
- USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト
- USB Type-Cハブ(4ポート・USB3.1 Gen2・セルフパワー・ブラック)400-HUB061の販売商品 | 通販ならサンワダイレクト
- あまりにも便利すぎるアイ・オー・データ製USBハブ「US2C-HB2/PD」をChromecast with Google TVにつなげウェブカメラなどあらゆる周辺機器をくっつけまくってみた - GIGAZINE
- 10年以上前の規格である「USB2.0」のポートが多くのUSBハブに搭載され続けている理由とは? - GIGAZINE
- BSH4U505C1PBK : USBハブ | バッファロー
UART
- FTDI Chip launches USB 3.1 evaluation modules
- ラトック、USB Type-C接続のシリアルポート変換ケーブル - PC Watch
- 定番USBシリアルコンバータのUSB Type-Cバージョン RS-USB60FC [RATOC]
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「懐かしのInterlinkでシリアル転送したいのですが、左のクロスケーブルを買ったけどぜんぜんつながりませんでした… 結線が違う右のやつを見つけたのですが、これだといけるの?? ていうか両方ともクロスケーブルって言って売ってるのに何が違うの???? シリアルケーブルくわしいニキ助けて!>< https://t.co/lDtEjXaQDZ」 / Twitter
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「よくみたら右のにはヌルモデムケーブルって書いてありました。 Interlinkの説明に「クロスケーブル(ヌルモデムケーブル)」って書いてあるから、やっぱり右のじゃないとダメなのかな… ヌルモデムってなんぞ… おねえさん17歳だからわからない><」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird ヌルモデム=クロスケーブルという認識で良いかと。モデムを経由せずにテレタイプ端末同士を接続できるというのが語源らしいです。」 / Twitter
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「@zilfhum_power そうすると左の自称「クロスケーブル」はなんなんでしょ?」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird 対応してないんですかね。DTR、RTS、CTSあたりは正しく繋がってないとダメかもしれません。無視して強制的に送るようなソフトあるんでしょうかね?」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird 左のはフロー制御用の信号がクロスしてないのでは(わからん)」 / Twitter
- Y8LさんはTwitterを使っています 「@HentaiThird 2ピン3ピンのみのクロスは運しだいのレベルで繋がりますって感じで、Winでは下のがPC間のクロスケーブル、PC-98用ってのは、7と8がショートして反対の1ピンへ行くのもあったかと。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@HentaiThird RS232Cは25ピンと決まっててIBM-PCの9ピンは規格外。クロス接続も規格外。フロー制御もIBM-PCの8250系とPC98の8251で仕様が違う。全部規格外なので正解は無く、クロスケーブルは窓から投げ捨ててUSBメモリかイーサLANでデータ転送しましょう。」 / Twitter
- Parallel - Serial encorder
- RS-232Cの簡易接続
- mmasuda 💙💛#あらゆる軍事侵攻に反対しますさんはTwitterを使っています: 「ぎゃあ。Win11 で秋月電子で売ってるUSBシリアルケーブル使おうとしたらこんなことになってる。 https://t.co/bNU3QLHFpN」 / Twitter
- mmasuda 💙💛#あらゆる軍事侵攻に反対しますさんはTwitterを使っています: 「ワークアラウンドはあるっぽいがこれはやりたくないな。めんどくさいから別のケーブルに乗り換えるか。このタイプの秋月で買ったシリアルケーブル全部ステだな。 https://t.co/dmh1NuO2Uj」 / Twitter
- Fixed: Prolific USB to Serial Driver not Working on Windows 11/10!
- mmasuda 💙💛#あらゆる軍事侵攻に反対しますさんはTwitterを使っています: 「いちおう追記) 現行製品だとこのタイプの奴です。 自分が過去20年間大量に買ったのはこれの延長ケーブル無タイプですが。 https://t.co/rWltJAWLDM」 / Twitter
- USBシリアル変換ケーブル グレー色 延長ケーブル付: 電子工作便利商品 秋月電子通商-電子部品・ネット通販
- FTDI製USBシリアル変換ICを接続してもCOMポートが増えなくしてみた – スイッチサイエンス マガジン
- View any installed/connected USB device on your system
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「通信速度(ボーレート)を変更する機能も追加した。USBシリアル変換器(CDC ACM機器)に対してSetLineCodingコマンドを送信する。今まではQEMUの外側から設定する必要があったけど、MikanOS上で設定できて楽だね。 https://t.co/opmkiL0O1A」 / Twitter
Debug
USBケーブルチェッカー
- USBケーブルチェッカー | LimePulse
- LimePulse USBケーブルチェッカー 機能解説 - YouTube
- aroerina/LimePulse_USB_cable_checker: LimePulse USB cable checker schematic
- 【やじうまミニレビュー】USB Type-Cケーブルなどの素性を一発チェックできる必携アイテム「USB CABLE CHECKER2」 - PC Watch
- USB ケーブルの性能を明らかにする「USB CABLE CHECKER 2」 | Bit Trade One, LTD
- USB CABLE CHECKER 2 | ビット・トレード・ワン 公式オンラインショップ 【 BTOS (ビートス) 】
- USBで接続してPCをロジック/プロトコルアナライザにできる「ポケアナ」 - PC Watch
- NET20DC-USB / Hi-Speed USB 2.0 Host-to-Host Debug Device | 海外ハードウェアの購入なら「ユニポス」
- USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
- 見た目はUSBケーブル、中身はハッキングツールの悪用厳禁ケーブル「O.MG Cable」がLightningに続きUSB Type-Cバージョンなども販売開始 - GIGAZINE
- USB Native Debug Class (DbC) Cable
- USB3 debug port — The Linux Kernel documentation
- 開発ツール(インテルデバッガー) – フラットーク株式会社
- naitakuさんはTwitterを使っています 「唯一規格にあるのはこちらのVBUSが繋がってないデバッグ用ケーブルではないかと思います。 https://t.co/kxOnzOIatZ」 / Twitter
- Dan KogaiさんはTwitterを使っています 「実は規格違反🙅♂️「※USBの規格には、USB Aオス-USB Aオスケーブルの規格はありません。本ケーブルは特殊な規格なので、ご使用前に、各機器の使用方法を確認の上ご利用ください」 https://t.co/5bPrGrZiTr」 / Twitter
- KU-RAA05【両面挿せるUSBケーブル(A-Aタイプ)(0.5m・ブラック)】USB Aコネクタの向きを気にせず挿せるA-A ケーブル。0.5m・ブラック。 | サンワサプライ株式会社
- Dan KogaiさんはTwitterを使っています 「なぜ規格違反かというと、元々USBはホストと周辺機器の向きが決まってたから。Aは必ずホスト側、周辺機器はBだったのが、ケータイ(スマフォに限らず)のコネクターにMicro-Bが使われるようになったあたりから曖昧になり、公式に表裏だけではなくホストゲストも双方向になったのはUSB-Cから」 / Twitter
LAN
Realtek
- Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch
- プラネックス、USB 3.0接続の2.5Gbps対応Ethernetアダプタ - PC Watch
- 4480円で2.5GBASE-T、USBの高速LANアダプターをプラネックスが発売、「USB-LAN2500R」 - INTERNET Watch
- 4500円で有線LANが2倍速くなる! プラネックスの2.5Gbps対応USB LANアダプター「USB-LAN2500R」【イニシャルB】 - INTERNET Watch
- USB-LAN2500R
- 2.5Gbps対応で4千円以下! AnkerのUSB Type-C接続LANアダプターを使ってみる【イニシャルB】 - INTERNET Watch
- Anker PowerExpand USB-C & 2.5Gbps イーサネットアダプタ | アダプタの製品情報
- Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - リアルテック
- SilverStone、USB Type-C接続のGbEアダプタ - PC Watch
- USB Type-C対応のUSB - LANアダプタが販売中、ORICO製 - AKIBA PC Hotline!
- RTL8153B-VB-CG - REALTEK
- Realtek USB FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - REALTEK
ASIX
所有
- ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
- LAN-TXU2C - ロジテック株式会社
- Plugable USB 3.0 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
- ESXi 向けUSB NICにオススメが増えた
- ASIX ESXI - Google 検索
- AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
- 玄人志向 | GbE-USB3.0S2:ASIX社製 AX88179搭載 1000Base-Tイーサネットアダプター(USB接続)
- Plugable USB Type-C 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
Marvell(Aquantia)
- PHY トランシーバ、Alaska マルチ・ギガビット PHY - 製品 - マーベル
- QNA-UC5G1T | ハードウェア仕様 | QNAP
- 5GBASE-T対応LANアダプター、QNAP「QNA-UC5G1T」、USB 3.0接続 - INTERNET Watch
- Aquantia、ノートPCで5Gbps有線LANを実現するUSB LANアダプタ用ICチップ - PC Watch
- AQtion Chips - Aquantia Corp
- AQtion AQC111U & AQC112U - Aquantia Corp
- USB-LAN100R|PLANEX
- USB-LAN1000R|PLANEX
- Realtek
- 2015816232439101951.pdf
- USB-C to Ethernet Adapter - Thunderbolt 3 Compatible | Cable Matters
- プラネックス、USB 3.0 Type-C接続の5GbE/2.5GbE対応有線LANアダプタ - PC Watch
- 5Gで1.5万円、2.5Gは6000円弱のUSB Type-C接続LANアダプター「USBC-LAN5000R/2500R」、プラネックスが発売 - INTERNET Watch
- USBC-LAN2500R
- USBC-LAN5000R
- USB Type-Cケーブル1本で有線LANと電源をつなげる「USB-CVLAN7」、サンワサプライが発売 - INTERNET Watch
- MacBookで使える「USB-Cハブ付き有線LANアダプター」3種類を分解して浮かび上がった問題点とは? - GIGAZINE
- USB Type-Cケーブル1本で有線LANと電源を接続、USB Type-A/Cポートも備えたアダプター、サンワサプライが発売 - INTERNET Watch
- 【匠の部屋】USB-LANアダプターでvProが使えない! でも起動させたい…… - INTERNET Watch[Sponsored]
- 2.5GbE対応のUSB Type-C接続LANアダプター「GP-CR452GH/B」、アイ・オーが発売 - INTERNET Watch
Audio
1.0
- USBオーディオ変換ケーブル(USB A to 3.5mmステレオミニプラグ)|株式会社バッファロー BUFFALO
- PCM2704 ステレオ、USB 1.1、DA コンバータ、ライン出力およびS/PDIF 出力付、バス/セルフ・パワー(外部ROM インターフェイス) | TIJ.co.jp
- ヘッドフォンアンプ付 USB-DAC LXU-OT2
- Amazon.co.jp: Flameer PCM2704 サウンドカード ボード 3.5mm アナログ出力 デコーダ USB DAC-S / PDIF 高品質: カメラ
- Amazon.co.jp: Dovewill PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード 3.5mm アナログ 出力 F/PC アクセサリー: カメラ
- Amazon.co.jp: IPOTCH PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード 3.5mm アナログ 出力 F/PC 交換性 便利性: カメラ
- BSHSAU01BK : ヘッドセット | バッファロー
- BSHSAU100BK : ヘッドセット | バッファロー
2.0
- exaSoundの「PlayPoint」、USB Audio Class 2.0接続したDACを操作可能に - AV Watch
- 【藤本健のDigital Audio Laboratory】Windows 10がついに「USB Audio Class 2.0」対応へ? ドライバ無しでハイレゾ再生 - AV Watch
- K3 – Fiio Japan
- USB-DAC | アムレック
- E10K Type-C – Fiio Japan
- FiiO、バスパワー駆動のUSB DAC内蔵ヘッドホンアンプ「K3ES」。DACチップ変更でS/N、歪み率を改善 - PHILE WEB
- K3ES – Fiio Japan
3.0
- PCからも3.5mmミニジャックが消える日が近い。USB Audio Device Class 3.0仕様が策定 - PC Watch
- USB Type-Cを次世代オーディオの標準端子に。「USBオーディオデバイスクラス3.0」発表 - PHILE WEB
- USB-IF、USB Type-C経由のオーディオ再生を可能にする「USBオーディオデバイスクラス3.0」を発表 | ガジェット通信 GetNews
- スマホのイヤホンジャックを廃してUSB Type-Cをオーディオケーブル代わりにしようとIntelが新規格策定中 - GIGAZINE
- 「音声端子はステレオミニからUSB Type-Cへ」。USB Audio Device Class 3.0発表 - AV Watch
- モバイル機器からヘッドホン端子が消える日は来るか。インテルがUSB-Cにオーディオサポート拡張を提案 - Engadget Japanese
- iPhoneに続いてPCの音声端子もなくなる? 知っておきたい2017年の注目技術 (1/4) - ITmedia PC USER
- USB Audio Device Class 3.0 【訂正あり】 | by Ichi Kanaya | Pineapple Blog
- ASCII.jp:Xperia XZ3も含めた「イヤホン用アダプター増えすぎ問題」|Xperia XZ3ロングランレポート
- 「ヨンナナ」プラグについて | g200kg Music & Software
- Creative BT-W2 - パソコンやMac、PlayStation®4とUSB接続可能なUSBオーディオBluetootnアダプター - Creative Technology (日本)
- まちカドおるみんさんはTwitterを使っています 「@yuki424zti ハイレゾ,可聴域が広がることよりもサンプリングポイントが増えることと bit 数が増えてダイナミクスレンジが大きくなることのほうがキモなので」 / Twitter
- uint256_tさんはTwitterを使っています 「ハイレゾだろうと酷い波形もあるので世界は厳しい」 / Twitter
キーボード
Wikipedia
- Computer keyboard - Wikipedia
- キーボード (コンピュータ) - Wikipedia
- FITALY - Wikipedia
- IBM PC keyboard - Wikipedia
- Keyboard layout/chart - Wikipedia
- Latin-script non-QWERTY keyboards - Wikipedia
- キー配列 - Wikipedia
- Scancode - Wikipedia
- スキャンコード - Wikipedia
- Altキー - Wikipedia
- Japanese language and computers - Wikipedia
- PS/2コネクタ - Wikipedia
- PS/2 port - Wikipedia
- Owltech キーボード OWL-KB104SFD/E
- Microsoft キーボード:Wired Keyboard 600 (ワイヤード キーボード 600) | Microsoft Hardware
- USB 切替器 キーボード 切替機 プリンタ 切り替え機 USB 手動切替器
- テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE
- CNN.co.jp : ビル・ゲイツ氏、「Ctrl+Alt+Delete」を後悔
- ビル・ゲイツ、Ctrl+Alt+Deleteについて語る | スラド ハードウェア
- Apple、キーボードへのホコリ侵入を防ぐ特許 - PC Watch
- パソコンのキーボードは,なぜABC順・五十音順ではないのですか | ことばの疑問 | ことば研究館
- 1877年3月のフランス向けレミントン・タイプライターのキー配列 | yasuokaの日記 | スラド
- はじめてのにき(2018-08-07)
- 日記 (2018 年 12 月下旬)
- Microsoftは「Office専用キー」をキーボードに追加することを検討中 - GIGAZINE
- 【悲報】Realforce R2はキーボードじゃなかった。 - チラシの裏の走り書き はてなブログ版
- Retr0bright でキーボードを漂白する | IIJ Engineers Blog
- 【山田祥平のRe:config.sys】拡張が「ない」を「ある」に変える - PC Watch
- 妻「ねぇ、SysRq キーがないんだけど」 | IIJ Engineers Blog
- Happy Hacking Keyboard 誕生の経緯 | IIJ Engineers Blog
- 「USBキーボード」はどういう仕組みで動作しているのか? - GIGAZINE
マウス
- 有線レーザーマウス(5ボタン・チルトホイール) - M-LS15ULBK
- なかのん&マジックさんのツイート: "ハイエンドに近いマウスを使ってると、いい加減にWindowsもホイールのmomentumスクロールをOSレベルで扱って、アプリから識別できるようにして欲しい。たとえば、ホイール回した後にCtrlキーを押して、ズームとして扱われてしまうのを回避できるようにして欲しい。"
- なかのん&マジックさんのツイート: "今のところ、本当にユーザの操作の結果としてのホイールイベントなのか、UXやスムーズスクロールのための予備的に発火されたイベントなのか見分ける手段がなさげ。"
GIGAZINE
- 「USBに裏表がある理由」をUSBの開発者が明かす - GIGAZINE
- ログイン中のPCが盗まれた時に強制的にPCをシャットダウンしてデータを保護してくれるUSBデバイス「BusKill」 - GIGAZINE
- 中国からUSB3.0コネクタを買ったら「青くしただけのUSB2.0」だったとの体験談 - GIGAZINE
- 対応機種 | サービス・機能 | NTTドコモ
- USBホスト| Android(TM) 技術情報 | au
- 「USB 3.0機器はゆっくり差すと2.0、素早く差すと3.0として認識される」って本当? →メーカー「本当です」 - ねとらぼ
- USBが誕生したのは「奥さんのプリンタをつなげる手間にキレたから」 USBの設計当時を振り返る:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/6 ページ) - ITmedia NEWS
- SATA3.0 SSDより速いUSBメモリ、Patriot「Supersonic Rage Prime」 - エルミタージュ秋葉原
- USBメモリの耐久性をテストした結果とは? - GIGAZINE
- 第740回 USBGuardを使って悪意のあるUSBデバイスからシステムを守った気になろう | gihyo.jp
PCIe
PC Watch
- 【特集】ビデオカードはPCI Express x16接続が必須かどうかを検証してみた - PC Watch
- PCI-SIG、16GT/sを実現するPCI Express 4.0規格Ver 1.0を公開 - PC Watch
- PCI-SIG、4.0の2倍の転送速度を実現する「PCI Express 5.0」規格を策定 - PC Watch
- PCI-SIG、x16で256GB/sの高速転送を実現する「PCI Express 6.0」 - PC Watch
- Intel、PCIe 4.0/Optaneメモリに対応したFPGA「Stratix 10 DX」 - PC Watch
- PAM4採用で速度2倍の「PCI Express 6.0」仕様が確定 - PC Watch
- PCI Express 6.0の最終ドラフトとなるバージョン0.9発表 - PC Watch
- PCI Express 6.0規格が正式公開。帯域幅は前世代比2倍に - PC Watch
- Rambus、PCI Express 6.0対応コントローラを発表 - PC Watch
- PCI Express 7.0が2025年に仕様策定へ。5.0の4倍の速度を実現 - PC Watch
マイナビニュース
- CCIX vs CXL(4) CCIXとよく似た別のモノ「CXL」とは何なのか? | マイナビニュース
- 『PCI Express 6.0』の帯域幅は前世代比2倍の256GB/秒へ - PCI-SIGの仕様策定が完了 | マイナビニュース
- 【連載】CCIX vs CXL | マイナビニュース
- 玄人志向、Realtek Dragon機能対応の2.5GbE LANカード | マイナビニュース
GIGAZINE
- 双方向転送速度最大256GB/sとなるPCIe 6.0の最終ドラフトが発表される、早くて2022年中に対応製品が登場予定 - GIGAZINE
- 256GB/sの最大転送速度を誇る通信規格「PCIe 6.0」の仕様策定が完了 - GIGAZINE
- PCIe 7.0は2025年にリリース予定、データレート最大128GT/s・双方向転送速度最大512GB/sが目標 - GIGAZINE
自作ユーザーが解説するゲーミングPCガイド
- PCI-Express Gen 6.0仕様策定は2021年までに完了する - 自作ユーザーが解説するゲーミングPCガイド
- PCIe 6.0仕様の進捗状況が最終ドラフトに、データ転送速度は128GB/sと高速に - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版
- 北森瓦版 - PCI-Express 6.0 ver. 0.7がリリースされる―2021年の規格策定完了を目指す
- 北森瓦版 - PCI-Express 6.0規格が正式に公開される
- 北森瓦版 - PCI-SIG 最大転送速度128GT/sを実現するPCI-Express 7.0の仕様策定へ
blog
- DMA(Direct Memory Access)関連調査メモ - DXR165の備忘録
- ACPI DMARメモ - 睡分不足
- VFIOによるデバイス操作 - 睡分不足
- なぜPCI Expressはエンベデッド・クロック方式を採用した? - パソコンの選び方と買い方
- 20210320
- PCIの30年の歴史 - Vengineerの戯言
CXL
- FadisさんはTwitterを使っています 「CXL 2.0のinitialなサポートがLinuxカーネルに入りそうらしい。CXLはPCI-Express 5.0上でメモリ一貫性プロトコルを喋る規格で、GPUのようなアクセラレータやストレージがデバイス側に持っているキャッシュとCPUのキャッシュの間でキャッシュのInvalidateが出来るようになる https://t.co/IdaU8WyT8L」 / Twitter
- CXL 2.0 Support Steps Closer To The Mainline Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「IntelがLinuxでCXL 2.0を使えるようにするための実装を続けている話。新しくLinux 5.16で入れようとしている変更ではCXLを介して不揮発メモリデバイスが接続されている場合に使えるコマンドの実装がなされている。 https://t.co/dIl4NXChvg」 / Twitter
- More Of Intel's CXL Enablement Code Arrives For Linux 5.16 - Phoronix
- FadisさんはTwitterを使っています 「CXLはCompute Express Linkの略で、PCI-Expressの物理層の上でベンダー非依存の標準化されたキャッシュ一貫性プロトコルを喋る規格。CPUとPCI-ExpressのデバイスがCXLを喋ることで、NICのバッファやGPUのメモリ等のPCI-Expressの向こう側にあるメモリとCPUのキャッシュの間でキャッシュ一貫性を保てる」 / Twitter
- FadisさんはTwitterを使っています 「CXL 2.0は、NVDIMMのCPUからキャッシュライン単位での読み書きという特徴を損ねる事なく、物理的な不揮発メモリをPCI-Expressの向こう側に置く目的でCXLを使う事を想定しており、そのためのコマンドや、従来ACPIから取っていた情報をPCI-Expressのデバイスから取る手段が定義されている」 / Twitter
- FadisさんはTwitterを使っています 「ところでLinuxはCXLで接続された不揮発メモリデバイスもlibnvdimmで扱うつもりっぽくて、DIMMとは一体…」 / Twitter
- FadisさんはTwitterを使っています 「IntelがLinuxカーネルにCXL 2.0のCXL.memのサポートを追加している話。CXLはPCIe 5.0をベースにデバイスがキャッシュしているホストのメモリのキャッシュ一貫性を保つCXL.cacheとホストがデバイスの任意のアドレスのデータを読み書きするCXL.memの2つの機能を追加する https://t.co/r83shHzfhH」 / Twitter
- CXL 2.0 Driver For Host-Managed Device Memory Should Be Ready For Linux 5.18 - Phoronix
- FadisさんはTwitterを使っています 「PCIeには従来からBARを使ってデバイスのメモリの一部をホストのアドレス空間にマップし、CPUや他のPCIeのデバイスから読み書きできるようにする仕組みが備わっていたが、これには厳しいサイズ制限があり、GPU等はベンダー固有の方法でBARを拡張してGPUのメモリ全体に対するアクセスを提供していた」 / Twitter
- FadisさんはTwitterを使っています 「ホストとデバイスがCXL 2.0対応の場合ホストのメモリコントローラを介して、まるでそれがホストのメモリであるかのようにデバイスのメモリの全領域を読み書きできる。つまりPCIeに接続されたDRAMや不揮発メモリをCPUはホストのメモリと同じように触れるようになる。読み書きの単位はホストと同じ64B」 / Twitter
- FadisさんはTwitterを使っています 「既存の不揮発メモリ(NVDIMM)はDIMMにさして使う為、従来のストレージデバイスと比較して、1ホストに接続できる最大数、fabricによる接続先ホストの切り替え、故障時の交換の容易さの点で劣る事が問題視されていた。CXL.memはこの問題を「不揮発メモリをPCIeにさせるようにする」ことで解決する」 / Twitter
- 【大原雄介の半導体業界こぼれ話】新バスインターフェイス「CXL」の静かなる普及 - PC Watch
- Compute Express Link (CXL) 3.0 が登場 | TEXAL
- AMD Working to Bring CXL Memory Tech to Future Consumer CPUs | Tom's Hardware
- AMD、将来のコンシューマー向けCPUにCXLメモリ技術を導入することを検討中 | TEXAL
- NEDIA_SNIA_CXL_講演資料.pdf
Twitter
- slankdevさんのツイート: "PCのMBがPCIe x16なのに内部がx4という原因で3時間溶けた。勉強になった"
- FadisさんはTwitterを使っています 「来年の完成を目指すPCI-Express 6.0の最初のドラフトが出たらしい。PCI-Express 6.0はようやく製品が出てきたPCI-Express 4.0の次の次の規格で、PCI-Express 5.0の倍となる64GT/sでの通信が可能 https://t.co/RzuauPNu2b」 / Twitter
- PCI Express 6.0 Reaches Version 0.5 Ahead Of Finalization Next Year - Phoronix
- FadisさんはTwitterを使っています 「PCI-Express、規格としてはどんどん速くなるんだけど、正しく動くための要件もどんどん厳しくなっててハード屋さんが乗り気じゃなくなってるんだよな」 / Twitter
- FadisさんはTwitterを使っています 「PCI-Express 6.0の規格が完成してリリースされたらしい。PCIe 6.0は差動ペアの電位差が基準の-1, -1/3, 1/3, 1倍となるような4種類の信号を使って1本の差動ペアで1クロックに2ビットの情報を送るPAM4を用いるのが大きな特徴で、これによってPCIe 5.0の倍の帯域を実現する https://t.co/9wQSaxAhu5」 / Twitter
- PCIe 6.0 Specification Released With 64 GT/s Transfer Speeds - Phoronix
- FadisさんはTwitterを使っています 「PCI-Expressは従来からパケットにCRCを持ち、データが化けているのを検知すると再送を行なっていたが、これが起こると再送が完了するまで後ろのデータも処理できない為大きなレイテンシが生じる。PCI-Express 6.0では前方誤り訂正がパケットに追加され、少々の化けなら再送せずに修正できるようになる」 / Twitter
- redvespid - Qiita
- Download the Specification | Compute Express Link
- Kazuho OkuさんはTwitterを使っています: 「このhttpsサーバのスループットがメモリ帯域の1/3で頭打ちになる話。CPUがメモリに書いたデータをNICがDMAするのが無駄で、CPUで暗号化しながらNICに直接書き込むことができれば、速度が50%上がるはずなのよね。 DMAはCPUを早く解放する技術だけど、メモリ帯域を2倍消費するので損なこともあるという」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@yitabashi これはCPUボトルネックな状態ですけど、最近のhw構成だとメモリボトルネックな構成に持ち込むことができ、その場合NICに暗号オフロードすることで最大約3倍速になります。メモリ負荷が、ソフトでやる場合CPUが暗号化のために読み書きした後NICが読むのに対し、hw暗号化ならNICが読むだけになるので」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「dpdkだとできるのかな、それともやっぱりdmaなのかな(NICにもよるかも)」 / Twitter
- Jun MakinoさんはTwitterを使っています: 「これは 25年くらい前からあらゆる通信で問題になってきてることな気が、、、DMAコントローラがはじめからキャッシュを読み書きとかできればいいけどなんかそれも厄介なことがおきそうだし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「「専用ハード、となるんやけど並列数の上限とかを上手く隠す抽象化とかダルくてこれまたツラい」これ」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「いまや暗号化そのものより平文と暗号文をnicやssdなりのデバイスとやり取りするときにメモリにピンポンするところが帯域的につらいよね…これにさらに圧縮とかも掛けるのが流行りだし なので専用ハード、となるんやけど並列数の上限とかを上手く隠す抽象化とかダルくてこれまたツラい」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「SSD読む→ディスク暗号化を復号→圧縮データを戻す→httpsとかに流せるようにヘッダ等つける→圧縮する→暗号化→NIC おいおい何回メモリ読み書きしとるねん、みたいな。細切れにストリーミングっぽくやってD$あてるとかリンクリスト使うとかで改善できるけどコードはどんどん辛くなっていく…」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「圧縮展開はウインドウサイズの範囲でランダムアクセスっぽいのが起きるし一度に特定のバイト数だけ取り出すとかもめんどくさい。暗号化とかは専用命令とか使えればシーケンシャルアクセスに限られるけどバイト数に端数が出てたときに処理がダルい。などなど…」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@kazuho CPUとマルチスレッドってすげーってなりますよね!」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Intel の CPU は DDIO (DMAでL3キャッシュを読み書きする機能 a.k.a. DCA) があるけど AMD にはないと https://t.co/FuQgS9TnZG」 / Twitter
- DDIO — oh oh. Well, well. That’s an interesting… | by NEIO Systems, Ltd. | Medium
- Kazuho OkuさんはTwitterを使っています: 「CPUがメモリアクセスでストールしているか気にすることは大切だけど、それ isucon (で対象となるようなウェブアプリ)で必要なチューニングなの? という疑問。もっとSQLクエリの書き方ミスってるとかスケールアウトの設定できてないとかそういうやつじゃないの?」 / Twitter
- NVIDIA、「Hopper」GPUと「Grace」CPUのそれぞれ詳細を明らかに 〜 CPU・GPU間の通信には900GB/sのNVLinkを使用 - Nishiki-Hub
UCIe
- Membership | My Site
- インテル、UCIeがPCIeを上回るスピードと発表 | HPCwire Japan
- データセンター用RISC-Vチップレットの製品化を加速:米新興企業のVentana(1/2 ページ) - EE Times Japan
- AMD、Arm、Intelら、チップレットの標準規格「UCIe」を発表 - PC Watch
I2C
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「「I2C」の読み方、あなたはどっち派?」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「アイツーシーが圧倒的だった!そして、正式名称は「アイ・スクエアド・シー」らしい!」 / Twitter
- あおいさやさんはTwitterを使っています 「I2C規格が脱master/slaveしたことを知る。 2021/10 rev.7.0 https://t.co/Xtx0zF31AY」 / Twitter
- I2C-bus specification and user manual - UM10204.pdf
- あおいさやさんはTwitterを使っています 「I2Cのmaster/slaveはcontroller/targetに https://t.co/GFc06NGcsI」 / Twitter
- ChuuiさんはTwitterを使っています 「@La_zlo 回路図だと controller/target では長くて見辛くなるので、どのように略すかという意見の食い違いから、また戦争が勃発するだろう。 ctl/tgt ctrl/trgt なお「略すのはダサい。略すな!」という言葉は、あなたが今使っているキーボードの印字を見たあとで発言してほしい。」 / Twitter
- うえのさんはTwitterを使っています 「@es_chuui @La_zlo 略すのはダサい。略すな! https://t.co/G5nNDzU3jU」 / Twitter
- TNさんはTwitterを使っています 「@n_ueno @es_chuui @La_zlo そのaltというのは何ですか?」 / Twitter
- Specification – I2C Bus
- nxp fanさんはTwitterを使っています 「I2Cの仕様書 第7節にもその決め方が載っています. https://t.co/M2CXAh1Mi9 (この日本語版は少し古いRev.5のもの.基本的には同じですが最新の仕様Rev.7はこちら→ https://t.co/6P1rdPeWrk)」 / Twitter
- UM10204 I2C バス仕様およびユーザーマニュアル - UM10204.pdf
- nxp fanさんはTwitterを使っています 「いつもメールで届く「トラ技 便り」. 今回はI2Cバスのプルアップ抵抗の値についてのクイズだった. https://t.co/ghOiapht2s いつも適当に決めちゃってる人も多いかもしれないけど,こんな風に算出します.」 / Twitter
- I<sup>2</sup>Cバスのプルアップ抵抗の値 | CQ出版社 オンライン・サポート・サイト CQ connect
- FadisさんはTwitterを使っています 「I2C(Inter Integrated Circuit)の後継規格がImproved Inter Integrated Circuit略してI3Cなのいいセンスしてる。しかしI2Cの人気は絶大なので相対的にあまり流行っていない」 / Twitter
- FadisさんはTwitterを使っています 「I3CがI2Cと比べて良くなっている点としてはまずデバイスに動的にアドレスを振る方法と、デバイスをスリープ/復帰させる方法が標準化された。更にクロックの上下のエッジでデータを送り、クロックが変化していないけどデータ線の値が変化している状態も使って6clockで16bitを送り、30Mbpsを超えられる。」 / Twitter
- nxp fanさんはTwitterを使っています: 「「SMバスってナニ?」って聞かれた時に「ああそれなあ.だいたいI²Cやねんけど,タイムアウトがついてるやつ」って説明してた.簡単にまとめてある資料がなかったから.でもなんとさっき知ったんやけど,こんなところにコッソリいい資料が隠れてた😃 下のリンクの7〜8ページ. https://t.co/CTuD8M9hu4 https://t.co/2MF0MlXhvp」 / Twitter
- I2C Bus Temp Sensor Selector Guide - 75015693.pdf
ストレージ
その他
- Storage Reviews - CNET
- VIOPS10: SSDの基本技術と最新動向
- AIF-06 | Ainex
- SSD ドキュメント | タイプ別 Download | サポート | Samsung Semiconductor Global Website
- 個人向けSSD | 製品別 Download | サポート | Samsung Semiconductor Global Website
- SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
- Data degradation - Wikipedia
- トリムの概要
- FadisさんはTwitterを使っています 「erase block sizeを公表しないSSD屋、やる気が足りないのでは」 / Twitter
- キオクシア株式会社 | Maker Faire Tokyo 2021 | Make: Japan
- 書換え耐性が低いNAND flashメモリ向けの キャッシュアルゴリズム - Google スライド
- Western Digital、キオクシアは汚染のために「少なくとも」6.5エクサバイトの3DNANDを失う|自作.com
- キオクシア、四日市と北上の工場でコンタミ発生 - 約6.5エクサバイトの生産に影響 | マイナビニュース
- にわかに“ゼロSATA”構成が人気を集めている理由 (1/4) - ITmedia PC USER
- yutkatさんはTwitterを使っています 「@uint256_t 少なくともノートPCはした方がいい認識ですね(盗難のリスクがどうしてもあるため)。 LUKS暗号化でなくても、PCが自己暗号化ドライブ(OPALドライブ)搭載だとそちらで代用することもできると思います。」 / Twitter
- Windows 11でハードディスクのサポート終了か、メインストレージはSSDに一本化へ | Buzzap!
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「コマンドキューイングの上限メモ。 SATA=32, SCSI=256, NVMe=2^16, SCSI-3=2^64? https://t.co/M376lG8fVP」 / Twitter
- Tagged Command Queuing - Wikipedia
- ASRock、Z790、X670E および B650 マザーボードに対応するアクティブファン・ヒートシンク搭載の Blazing M.2 PCIe Gen 5 SSD クーラーを発表。 - 自作ユーザーが解説するゲーミングPCガイド
- Microsoft、GPU展開でゲームのロード時間を大幅短縮する「DirectStorage 1.1」 | マイナビニュース
- 【書籍紹介】世界を変えた1枚のディスク 3.5インチフロッピーディスク開発物語:仕事と生活と私――ITエンジニアの人生:オルタナティブ・ブログ
- 【やじうまPC Watch】古いDVD/CD向け不織布ケースはBDには不適切。エレコムが注意喚起 - PC Watch
- NVMeを搭載したHDDが出現。SAS 12GやSATAは徐々に縮小か
SD
PC Watch
- 最大985MB/sを実現する高速SDカード規格「SD Express」 ~最大128TBの「SD Ultra Capacity」も策定 - PC Watch
- PCIe/NVMeで最大転送速度985MB/sを実現する「microSD Express」 - PC Watch
- 【イベントレポート】実測で888.5MB/sを実現するPCIe/NVMe SDカードの仕様が公開 ~WDがいち早くデモを実施 - PC Watch
- 【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
- 東芝メモリ、ほぼmicroSDサイズで最大8GB/sのリムーバブルメモリ「XFMEXPRESS」 - PC Watch
- PCI Express 4.0採用で最大4GB/sを実現した「SD 8.0」規格 - PC Watch
- 偽物SDカードの見分け方教えます!買ったら最初にチェックすべき4つのポイント - AKIBA PC Hotline!
- SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
- 【特集】UHS-I?スピードクラス?複雑怪奇なSDカードのロゴと規格をまとめてみる - PC Watch
GIGAZINE
- microSDカードの「A2規格対応」にパフォーマンス向上の意味はないとエンジニアが主張 - GIGAZINE
- microSDカードのA1規格対応品は最低基準の2倍の性能を発揮しA2規格対応品を超えることがある - GIGAZINE
- microSDカードより小さい「NMカード(ナノメモリーカード)」をHuaweiが発表 - GIGAZINE
- SDカードの新規格「SD 8.0」が登場、PCI Express 4.0採用で最大4GB/sの転送速度を実現 - GIGAZINE
- 超高速SDカードの性能を100%引き出せるカードリーダー「SanDisk Professional PRO-READER SD and microSD」の性能をノートPC内蔵カードリーダーと比べてみた - GIGAZINE
- FlashAir Developers - upload.cgi
- PQI Air Card - PQIグループ- モバイル向け周辺機器の総合メーカー [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
- SDA、Ver 6.0仕様のA2規格とLVS仕様を追加 - EE Times Japan
- 第789回:Application Performance Class 1(A1)とは - ケータイ Watch
- 第882回:SDUCカード とは - ケータイ Watch
- 転送速度985MB/秒の高速SDカード「SD Express」発表。128TBのSDUCも - AV Watch
- ぉゅぅさんはTwitterを使っています: 「あるある... SD hostのレジスタなんかは規格で一緒のはずなのに ベンダ依存とか ソコを使うためのお膳立てが違うのよね. 最悪なのは続いてるツイートのような ほかの機能と混ざってるようなところとか怪しい挙動... SoCベンダが大きく情報を出してくれないと推定もアタリもつけるのが大変よぬ... https://t.co/pz07dLD9WJ」 / Twitter
- ぉゅぅさんはTwitterを使っています: 「まぁなによりもベンダが提供してくれないってところがアレなんですがねぇ... (あっちからしたら 数量出ないのに面倒見てられるかよってことなのかもしれないけれど #何の話だ」 / Twitter
- 1TBのMicroSD及びSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
- 高速なSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
- FadisさんはTwitterを使っています 「SPI mode、SDカードが本来のプロトコルではなく、3ピンだけを使ってSPIをしゃべるようになるモード。SPI対応のマイコンで読む時とかに便利。SDカードのプロトコルにはライセンスまわりの面倒があるが、この方法なら回避できる。ただし遅い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「SDカードの新しい規格SD 8.0が完成したらしい。端子が2列から3列になり、SD ExpressでPCI-Expressを喋る時に2レーンで通信できるようになる。これに加えてPCI-Express 4.0に対応することで、従来のSD Expressの約4倍となる4GB/sでのデータ転送を実現する https://t.co/rUkaSR9Ij6」 / Twitter
- SD 8.0 Specification To Allow 4GB/s Transfer Rates By Leveraging PCIe 4.0 - Phoronix
- FadisさんはTwitterを使っています 「SD 7.1のSD Expressは帯域を最大まで使えるデバイスが登場すると「お前のSATA SSDはSDカードより遅い」が発生するデバイスだったけど、SD 8.0のSD Expressは「お前のNVMe SSDはSDカードより遅い」が狙えるデバイスになるのか…」 / Twitter
- SDカードのSecure Eraseの方法 (Linux向け)
- FadisさんはTwitterを使っています 「Linux 5.14では更にSDカードのPower-off通知にも対応するらしい。SD 4.0以上に対応するSDカードはもうすぐ電源が落ちるのにガベージコレクションを始めてしまうような事態を避ける為にホストからの「もうすぐ電源切るぞ」通知を受け取るようになっている」 / Twitter
- Linux 5.14 Bringing SD Cache Ctrl Support, Other SD Card Support Improvements - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.14からSDカードのキャッシュ制御に対応するらしい。SD 6.0以上に対応するSDカードはカード側にキャッシュメモリを持っている事があり、有効にするとflushを明示的に要求されるまで書き込み要求がキャッシュにかけた時点で完了するようになる https://t.co/T29IZPjlc6」 / Twitter
- SDカードのアロケーションユニットサイズとか - Togetter
- ぽんこつさんはTwitterを使っています: 「SDカードの最新事情調べたところ、 「フルサイズのSDカードそもなくない?microSDしかなくない?」 「UHS-IIは死んだ。かといってSDExpressのカードはまだ出てない」 「2TB以降はSDUC(exFAT)で規格化されたが最高容量は1TB」 下位カメラ向けのストレージ事情はなかなか厳しそう」 / Twitter
SAS
- 【イベントレポート】24Gbpsの次世代シリアルSCSI「SAS-4」の概要 - PC Watch
- キオクシアが「SSD」の“レガシー接続”にこだわった納得の理由:112層×SASで勝負するSSD【前編】 - TechTargetジャパン サーバ&ストレージ
- 「SAS接続SSD」が使われ続ける理由とは? “容量30TB”で挑むキオクシアの見解:112層×SASで勝負するSSD【後編】 - TechTargetジャパン サーバ&ストレージ
SATA
HDD
SATA I
- Samsung HM020GI 1. Specification Summary
SATA II
- Toshiba MK6034GSX Specs - CNET
512
- Toshiba MK3276GSX Specs - CNET
- Amazon | 東芝 512セクター 2.5インチ SATA接続ハードディスク 5400rpm 320GB MK3276GSX | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
- 3.5インチHDD、内蔵と外付けで消費電力を計測しその差を確認してみた - みこぼね
- 東北大と京大、HDDの超高密度化が期待できる反強磁性体スピントルク磁気メモリを実証 - PC Watch
- 【福田昭のセミコン業界最前線】HDD出荷金額は監視や仮想通貨特需で3年ぶりに拡大も、2.5インチは終息へ - PC Watch
- Seagate、HDDで480MB/sを実現するデュアルアクチュエータ技術をデモ - PC Watch
- Seagete、HDDの速度を倍増させる「マルチアクチュエータ」技術 ~1ドライブで並列処理が可能に - PC Watch
- Fadisさんのツイート: "SSDの陰であまり注目される事はないけど、ハードディスクもじわじわ速くなってて、Intel SSDが最初に注目された頃は120MB/s出せるハードディスクは優秀だったのに、今では200MB/s超えてきたりするんだよな"
- Fadisさんのツイート: "NVMeが3000MB/sとかやってる前では誤差のようなものかもしれないけど"
- 「2019年はPC用HDDの販売数が半減する」とHDD部品で世界シェア1位の日本電産が予測 - GIGAZINE
- ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE
- 19万台超のHDD運用データから算出された故障率レポートの2021年Q3版をBackblazeが公開 - GIGAZINE
- HDD故障率のメーカー・モデル別統計データ2021年版、故障率が最も高かったのは? - GIGAZINE
- HDDは果たしてどれくらい動き続けてくれるのか? - GIGAZINE
- 30TB以上のHDDを2023年に登場させる意向をSeagateが公式に発表、2026年には50TBも - GIGAZINE
- Western Digital、20TBのOptiNAND HDDを11月に出荷|自作.com
- シーゲイト、PCIe NVMeインターフェイス搭載のHDDを実演|自作.com
- 30TB以上のHDDの東芝詳細計画|自作.com
- SeagateHDDのBackblazeの2021年の故障率データ|自作.com
- 東芝:1年以内に26TBのHDD、5年以内に40TBのHDD|自作.com
- Seagate、CMR仕様の20TB HDD「IronWolf Pro 20TB」「Exos X20 20TB」 | マイナビニュース
- 昭和電工、HDDの次世代記録技術「MAS-MAMR」対応メディアを開発 - 最大30TB以上へ | マイナビニュース
- 故障率が最も低かったハードディスク、どのメーカーの6TBモデル? | TECH+
- ASCII.jp:3.5インチHDD過去最大容量となる20TBモデル「ST20000NE000」が発売
- 伸びしろあったHDD、東芝が新マイクロ波アシストで30TBを射程に | 日経クロステック(xTECH)
Advanced Format
512e
- MQ04AB*** Series | 東芝 半導体&ストレージ製品
- Amazon | 東芝 HDD MQ04ABFxxx シリーズ ( 2.5インチ / SATA 6Gbit/s / 1TB / 5400rpm / 128MiB / 7mm / 512e エミュレーション ) MQ04ABF100 | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
4K
- MG04ACA**** シリーズ | 東芝 半導体&ストレージ製品
- Toshiba MG04ACA500A Specs - CNET
- Amazon | Toshiba mg04aca500 a 3.5インチ5tb SATA 6 Gb / s 7.2 K RPM 128 MB 4 KNTomcatベア | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
- MARSHAL/マーシャル 東芝製 3.5インチHDD 4Kネイティブモデル Ma series 5TB 7200rpm MG04ACA500ABOX [1523286254-21942] - 39,794円 :
- 東芝(TOSHIBA)製HDD_リテール品_MG04ACAxxxABOXシリーズ
- Advanced Format - Wikipedia
- HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブの違い - ぼくんちのTV 別館
- アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行|Seagate
- HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
- アドバンスト・フォーマット | 東芝 ストレージ&デバイスソリューション社
- Advanced Formatの識別方法 - ハードディスク入れ替え13 FAQ
- ASCII.jp:Windows 8は2.2TB超の大容量HDDにどう対応しているのか? (2/3)|塩田紳二のWindows 8 IN-N-OUT
- Windows での 4K セクターのハード ディスク ドライブに関するマイクロソフトのサポート ポリシー
- 【HDD】4Kセクタって何?/4Kセクタの制限事項は?/Windows7でバックア...
SSHD
- Seagate Laptop Thin SSHD ST500LM000 Specs - CNET
- Amazon | Seagate 2.5inch Hybrid Laptop Thin SSHD ST500LM000 SATA 6Gb/s 500GB 5400rpm 64MB AF | SEAGATE | 内蔵ハードディスク 通販
- ゲーム1本60GB!大容量ゲーム時代に使う「SSHD」 ベンチマークにでない「体感」を試してみた - AKIBA PC Hotline!
SMR
- Seagate Mobile ST1000LM035 Specs - CNET
- Seagate Mobile ST2000LM007 Specs - CNET
- Amazon | [SEAGATE] シーゲート 2.5inch HDD 1TB SATA 6.0Gbps 5400回転 7mm厚 128MBキャッシュ ST1000LM035 [並行輸入品] | Mobile HDD | 内蔵ハードディスク 通販
- 価格.com - SEAGATE ST2000LM007 [2TB 7mm] 価格比較
- SMR(瓦書き方式)のHDDは避けるのがオススメ | Kanon好きさんの掲示板 | マイネ王
- 備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
- 最安の8TB HDD「ST8000AS0002」をテスト、SMR技術を再確認 - AKIBA PC Hotline!
- “10TB時代”に向けた最新HDD技術「SMR」のポイントを Seagateに聞いてみた - AKIBA PC Hotline!
- 【福田昭のセミコン業界最前線】10TBの大容量HDDを実現した「SMR技術」登場の背景 - PC Watch
- SMR な HDD で記憶域パリティ備忘録
- 価格.com - 『このHDDはSMRです』 SEAGATE ST2000LM007 [2TB 7mm] のクチコミ掲示板
- 新技術『SMR』が可能にした低コストで省スペースな大容量HDD - Seagate Desktop HDD(8TB)のレビュー | ジグソー | レビューメディア
- ASCII.jp:ヘリウム充填HDDの8TB「WD80EFZX」を触ってみた (1/3)|最新パーツ性能チェック
- HDDのSMR技術とはなにか:T43p SATA化ブログ改めパソコン色々ブログ:So-netブログ
- 個人的にSSDを信用していない理由、そしてSMRが好きではないという理由。 – ひねもす庵
- DEIM.pdf
- WDの技術者ら、瓦記録方式HDDの開発で文部科学大臣賞を受賞 - PC Watch
- なかのん&マジックさんのツイート: "ランダムアクセスのテストが雑すぎて信頼できない。SMRは最初のArchiveHDDで(覚悟してた以上に)痛い目にあってるんで、抵抗あるんだよな。 https://t.co/KPI5PNCY7R"
- 最新HDDはどれだけ進化したのか、2011年の大人気モデルといろいろ比べてみた - AKIBA PC Hotline!
- ネットの論客にファイナルアンサー!? ~「もしかして……SMR!?」。最新2TBプラッタHDDをとことんイジメる - PC Watch
- 第556回 SMR方式のHDDでも実用できるか検証する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE
M.2
- 【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
- 品川研究室@学生募集中さんのツイート: "AHCI は 1.3.1 までしか規定されてませんが、SATA 3.2 で 20 Gbps が定義されたので、そこで AHCI の拡張も定義されていたりするんじゃないですかね。仕様書が非公開で分かりませんが。… "
- 品川研究室@学生募集中さんのツイート: "AHCI の ISS は 4 ビットあるので、いかにも 0100 あたりが使われてそうです。BitVisor でフックして調べてみると面白いかもしれません。… "
- hiyohiyoさんのツイート: "SATA の規格書を読んでも AHCI + PCIe の組み合わせの速度を判定する機能がないようなので、CrystalDiskInfo では、PCIe のリンク速度とバージョンを表示しています。 1000MB/s を軽く超えるものの ATA コマンドでは判定する術がなさそうで・・・ 早く滅び去って欲しいところです。… https://t.co/9IJVXkUT80"
- OS自作 uchan_nosさんのツイート: "なるほど。実際に、コントローラのレジスタでは判断できない、規格無視した速度のデバイスが存在するんですね。… "
- hiyohiyoさんのツイート: "コントローラーのレジスタに直接アクセスするというよりは、IDENTIFY DEVICE コマンドの結果は SATA/600 対応なので、判別できないというのが正確ですね。 何らかの方法はあるのかもしれませんが・・・… "
- OS自作 uchan_nosさんのツイート: "なるほどー。やはり、ソフトウェアには適当な値を見せておいて、物理層ではその速度より速い通信をしてしまう、という仕組みなんですねえ。… "
- hiyohiyoさんのツイート: "手元にも 2 枚ほどありますが、過渡期の製品って感じで使い道は限られますねぇ~ 現在は、 M.2 + NMVe に統一されているのであまり気にする必要はないかと思います。 ただ、自作 OS 的には ATA コマンドで制御できる(既存OSと互換性あり)のは便利ですね。… https://t.co/xidMsAaGB6"
SATA Express
- ASCII.jp:SATA3.2の仕様策定で見えてきたSATA ExpressとM.2 (1/3)|ロードマップでわかる!当世プロセッサー事情
- ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中|COMPUTEX TAIPEI 2014レポート
- 4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
News
- ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)|本命が続々登場!! mSATA SSDに大注目
- ハードディスクドライブの四半期販売台数は、需要減退により15%減を記録。ただし、出荷容量は微減に留まる | TEXAL
- 【やじうまPC Watch】ジャネット・ジャクソンのMVでPCがクラッシュする脆弱性 - PC Watch
- ジャネット・ジャクソンのヒット曲を再生すると古いHDDがクラッシュする脆弱性が話題に - GIGAZINE
- 【ニュース・フラッシュ】トランセンド、転送速度最大560MB/sの2.5インチSSD - PC Watch
- シリアルATA - Wikipedia
- Serial ATA - Wikipedia
- HotSwap!
- Transcend SSD370S Specs - CNET
- SATA-III 6Gb/s SSD220
- 製品の仕様情報 - Intel® SSD 330 Series (180GB, SATA 6Gb/s, 25nm, MLC)
- CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
- Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Overview - CNET
- 2.5/3.5インチHDD 各1台を5.25インチベイに簡単増設|オウルテック
- 玄人志向 | SATA3I2-PCIe:Marvell社製 88SE9128搭載 SATA3x2 インターフェースボード(PCI-Express x1接続)
- 玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
- シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
- TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 - サンワサプライ株式会社
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NCQ(非同期I/Oのコマンドキュー数)=8を超過すると転送性能が落ちるHDDが意外とある。 これって、CrystalDiskMarkがNCQ=8だから、そこまでは何とか耐えるファームを作ってる、という話かしらん…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「HDD性能が200MB/sだと(1コマンド=1MBとして)、5ms毎にNCQを再スケジュールするイメージかな。 (その際のキュー数が16や32だと、10%も遅くなるって何だろうなぁ…)」 / Twitter
NVMe
PC Watch
- WD、メインメモリのように使えるNVMe SSD ~仮想メモリでメモリ容量を8倍に拡張 - PC Watch
- 【イベントレポート】ついに4GB/s超え。世界初のPCIe 4.0対応SSDコントローラ登場 - PC Watch
- SSD価格、2019年末までに1GBあたり10円台まで下落の見込み ~SATA SSDとの価格差解消でPCIe SSDが主流に - PC Watch
- 【平澤寿康の周辺機器レビュー】2TBに到達したSamsung 「970 EVO Plus」SSD。1TBより高速 - PC Watch
- Samsung、書き込みも3GB/s超えのNVMe SSD「970 EVO Plus」2TBモデル - PC Watch
- 【イベントレポート】1,500万ドル超を投じて9カ月で完成させたPhisonの世界初PCIe 4.0 SSDコントローラ - PC Watch
- 【イベントレポート】Realtek、NVMe SSDのDRAMキャッシュ必要量を4分の1に低減 - PC Watch
- 【イベントレポート】ADATA、Silicon Motion製コントローラ採用のPCIe 4.0 SSDを展示 - PC Watch
- 【イベントレポート】GIGABYTE、リード5GB/s超えのPCIe Gen4接続SSD ~実測値15GB/sの超高速PCIeカードSSDも - PC Watch
- 【イベントレポート】PCIeの高速化と3D NANDの低速化による性能ギャップがSSDで顕在化 - PC Watch
- 【イベントレポート】Samsung、リード最大6,500MB/sのPCIe Gen4対応M.2 SSD「980 PRO」 - PC Watch
- Samsung、PCI Express 4.0対応SSD「980 PRO」を10月中旬に発売 - PC Watch
- 【Hothotレビュー】7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch
- Marvell、14GB/sを実現した業界初のPCIe 5.0対応SSDコントローラ - PC Watch
- Phison、PCIe 5.0 SSD向け新コントローラ。採用製品は2022年後半に登場 - PC Watch
- Phison、10,000MB/sを実現したゲーミング向けPCIe 5.0 SSDコントローラ - PC Watch
- Micron、世界初の176層QLC NAND搭載NVMe SSD - PC Watch
- 【ニュース・フラッシュ】TEAMGROUP、PCI Express 5.0対応SSDを予告 - PC Watch
- Samsung、リード13,000MB/sに達したPCIe 5.0 SSD - PC Watch
- Micron、世界初の232層NANDを出荷。CrucialのSSDとして発売へ - PC Watch
- SK hynix、世界最高の238層TLC 4D NAND - PC Watch
- CORSAIR、10GB/sの大台に達したPCIe 5.0 SSD「MP700」を予告 - PC Watch
GIGAZINE
- M.2 SSDをPCIeスロットから交換可能にするリムーバブルケース「ICY DOCK ToughArmor MB840M2P-B」レビュー - GIGAZINE
- 停電などの電源遮断時にデータが消えてしまうSSDとそうでないSSDが存在する - GIGAZINE
- Micronが232層の3D NANDフラッシュメモリを発表、データ転送速度は50%高速化し2.4Gbit/sに到達 - GIGAZINE
マイナビニュース
- Phison、PCIe 5.0に対応する超高速SSD用のコントローラー「PS5026-E26」など発表 | マイナビニュース
- PCテクノロジートレンド 2022 - Flash Storage編 (1) | マイナビニュース
- キオクシア、次世代DC向けPCIe 5.0対応SSDのサンプル出荷 読み込み7.2GB/sへ | マイナビニュース
自作.com
- サムスン、PCIe 5.0 SSDの発表を予告:2022年第2四半期に登場|自作.com
- サムスンもSSDのパーツを交換|自作.com
- ApacerのPCIe5.0SSDは、Ryzen7000のAlderLakeに13GBpsの速度をもたらします|自作.com
- PCIe 5.0 SSDはより広くなり、より広いM.2スロットを必要とする可能性があります|自作.com
自作ユーザーが解説するゲーミングPCガイド
- Kioxia、PCIe Gen 5.0 SSDプロトタイプの性能を発表 - Gen 4.0 SSDと比較して最大14,000 Mbpsの読み込み速度と約2倍のIO性能を実現 - 自作ユーザーが解説するゲーミングPCガイド
- Phison社の次世代コントローラ「E26」を搭載したPCIe Gen 5.0 SSDを2022年に出荷開始、最大16GB/sの高速化を実現 - 自作ユーザーが解説するゲーミングPCガイド
- Phison、次世代PCIe Gen5、Gen6、Gen7 SSDについて語る - アクティブ・クーリング・ソリューション、L4キャッシュ、新しいインターフェイス、最大14WのGen5および28WのGen6 TDP - 自作ユーザーが解説するゲーミングPCガイド
- アクティブM.2 SSDクーリングソリューションは、次世代PCIe Gen 5 SSDに非常に有効です。 - 自作ユーザーが解説するゲーミングPCガイド
- Phison、PCIe Gen 5 NVMe SSDの高温を再確認、コントローラとアクティブ冷却の要件は最大125℃に制限 - 自作ユーザーが解説するゲーミングPCガイド
北森瓦版
- 北森瓦版 - Marvell PCI-Express 5.0に対応するNVMe SSDコントローラを発表
- 北森瓦版 - Koxia PCI-Express 5.0 x4対応のSSDを試作―Sequential Readは14GB/sに
- 北森瓦版 - Phison PCI-Express 5.0に対応するE26コントローラを2022年に出荷予定
- 北森瓦版 - PCI-Express 5.0接続のSSDがメインストリームに降りてくるのは2024年?
Twitter
- なかのん&マジックさんのツイート: "NVMe SSDに関しては、自作PCで色々と試してる身からすると、ノートPCが薄型になることとと、「単純な」ファイルコピーが高速になるぞってこと以外に、2.5インチSATA SSDからのメリットが全く無くて、色々とアレです。… "
- なかのん&マジックさんのツイート: "NVMe SSDが高速で良いって言ってる人、たぶんベンチマークしか見てないか、単純なファイルコピーとかが日常作業で多い人だと思う。"
- なかのん&マジックさんのツイート: "Windowsでしか比較検証してないんで、他のOSだと知らない。"
- 一ノ瀬 いろはさんのツイート: "NVMe SSD の評価、私のTL だとサーバー用途に使う基準で話す人が多すぎてよくわからない感じに。 とりあえず熱がしんどいらしい。"
- なかのん&マジックさんのツイート: "放熱まではちゃんと検証できてないなぁ。あくまでも、860EVOについてる、ヒートシンクを兼ねたあのシールとのテストだけ。ただ、NVMe SSDにはファンの風を直接当てるようにしてて、空冷レベルではそれなりにやってる構成で確認してる。"
- Sadayuki Furuhashiさんのツイート: "2017年の資料だけども、NVMeは12us程度のレイテンシがあるのに対し、NVMDIMM(-N)は3us。 https://t.co/MQv4ABzgWB"
- Title of Presentation
- Kimihiro Nonakaさんのツイート: "へぇ | Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ https://t.co/DHM3MX2kgt"
- Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ
- Fadisさんのツイート: "我が家のNVMeにはCMBも仮想化支援も無いことが明らかになった。かなしい"
- Kazuo Moriwakaさんのツイート: "NVMe Firmware: I Need Your Data – Technical Blog of Richard Hughes https://t.co/afGViyrKEt Linux上でファームウェア更新基盤つくってる人がNVMeデバイスのID情報がほしいらしい。NVMeがついたLinux環境持ってる人は記事中にあるコマンドを打ってID情報送ってあげるとよさそう。"
- Fadisさんのツイート: "最近のNVMe SSDがどのメーカーも3400MB/sとかその辺で並び始めてるの、あれPCI-Express Gen3 x4の帯域の限界が近いんだよな。で、何でもっと太いPCI-Expressにしないかというと、NVMe SSDの一般的なフォームファクタになっているM.2のM keyからはPCI-Expressが4レーンしか出ていないんだ。"
- hiyohiyo (Noriyuki Miyazaki)さんのツイート: "Reference Guideを入手してから約半年、ついにIntel RST NVMe対応することができました! 動作確認ができたら正式版としてリリースします。"
- Reference Guide Intel RST - Google 検索
- Fadisさんのツイート: "cpの実装が残念でコピーが遅いという話。一度に読み書きするサイズが小さすぎる、一度しか読まないデータをpage cacheに乗せている、分散fsなら同時に複数箇所の読み書きをした方が良い、デバイスがコピー用の仕組みを持っているかも等が指摘されている(リンク先有料記事) https://t.co/onJY1Wtq8p"
- Fadisさんのツイート: "そういえば、良いNVMeだとデータをメインメモリに持って来ずにブロックのコピーが出来るよね"
- FadisさんはTwitterを使っています 「Fusion-io最速信仰はあれに救われた人間の多いソシャゲ畑には根強く残っているんだよな。酷い場合あれを作っていた会社はとうの昔に無くなっていることを知らない」 / Twitter
- FadisさんはTwitterを使っています 「NVMeがコントローラの気持ちを考えて使わないと性能ガタ落ちなのも問題をややこしくしている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なおすぐに思いつくのは、熱とSLC的キャッシュ領域とIOサイズあたりですが、他にも変な挙動とかありましたっけ?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu 単位時間あたりに捌けるリクエスト数は多いですが、1リクエストあたりのレイテンシが大きいです。この為ioDriveからNVMeに移行するアプリケーションでは非同期I/Oで休みなくリクエストを投げ続ける事がより重要になります」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ それは知りませんでした。参考になります。 (そのレイテンシ差は、本質的には何に起因するのかなぁ…)」 / Twitter
- FadisさんはTwitterを使っています 「なんかナウめのNVMe SSDが既に「PCI-Express 4.0では帯域が足りない!!」みたいな性能で並び始めてて激しい」 / Twitter
- SSD市場の主流に躍り出るNVMe SSDストレージ、なお残る課題は? - TechTargetジャパン サーバ&ストレージ
- ASCII.jp:いまさら聞けないIT用語集 RAIDのボトルネックを解消するVROC (1/3)|ロードマップでわかる!当世プロセッサー事情
- NVMe SSDの外付けケースもカバー ~ディスク健康管理ツール「CrystalDiskInfo」v7.7.0 - 窓の杜
- 第5世代V-NANDの優位が歴然! PCI Express SSDの新定番「970 EVO Plus」の爆速性能を確かめる(ITmedia PC USER) - Yahoo!ニュース
- Crucialの新型NVMe SSD「P5」がデビュー、最大2TBまで計4製品 - AKIBA PC Hotline!
- won't fix: キオクシアのNVMeを買ったらハマった
- DRAMレスとHMB採用でコスト競争力を高めたNVMe SSD「Samsung SSD 980」を試す(1/3 ページ) - ITmedia PC USER
- NVMe 2.0、「未来のストレージの需要に対応」:NVM Expressが発表 - EE Times Japan
- 「SSD」のPCIe新世代とは何なのか? NVMeの外せない動き:SSDの今後を一歩先読み【前編】 - TechTargetジャパン サーバ&ストレージ
NVMe 1.1
- MZVPV128HDGM - Client SSD | Samsung Semiconductor Global Website
- Samsung Electronics Now Producing Industry’s First M.2 NVMe PCIe SSD for the PC Market – Samsung Global Newsroom
- Samsung、世界初のNVMe対応M.2 SSD「SM951」を量産開始 ~PCI Express x4(3.0)対応で最大2,260MB/sec - PC Watch
- 価格.com - サムスン SM951 MZHPV128HDGM スペック・仕様
- コストパフォーマンスが良いのでは? - SM951 256GB M.2 PCIe Gen3 8Gb/s x4 SSD MZHPV256HDGLのレビュー | ジグソー | レビューメディア
- [画像] NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~(5/7) - AKIBA PC Hotline!
- リード2GB/s超えのM.2 SSD「SM951」に安価なNVMeモデルが登場 - AKIBA PC Hotline!
NVMe 1.2
- SSD 960 EVO M.2シリーズ | Samsung SSDシリーズ
- 【詳報】Samsungの新SSD 960 PRO/EVOは10月発売。価格も明らかに - PC Watch
- 価格.com - サムスン 950 PRO M.2 MZ-V5P256B/IT スペック・仕様
NVMe 1.3
- 【レビュー】Samsung、第3世代のNVMe/PCIe SSD「970 PRO」、「970 EVO」 - PC Watch
- Samsung、読み込み3,500MB/sのNVMe SSD「970 EVO」、「970 PRO」 - PC Watch
- Silicon Motion、読み書きとも3GB/sを実現するNVMe SSDコントローラ - PC Watch
- 【イベントレポート】Silicon Motion、PCIe 3.0 x4/NVMe 1.3対応SSDコントローラ新モデルを展示 ~搭載製品は2017年第3四半期以降に登場予定 - PC Watch
- 64層3D NANDで生まれ変わった、Intelの最新NVMe SSD「SSD 760p」検証 - エルミタージュ秋葉原
- 価格.com - インテル SSD 760p SSDPEKKW256G8XT スペック・仕様
- 製品の仕様情報 - Intel® SSD 760p Series (256GB, M.2 80mm, PCIe 3.0 x4, 3D2, TLC)
- Intel® Solid State Drive 760p Series Product Brief
- ASCII.jp:M.2 SSDの新定番か!? 安くて速い「Intel SSD 760p」 (1/2)|最新パーツ性能チェック
- 東芝メモリ、約3GB/sのライト性能を実現した業界最速クラスのSSD - PC Watch
- 【レビュー】Samsung、前モデルから50%以上高速化したM.2 SSD「970 EVO Plus」 - PC Watch
- Samsung、最新V-NAND採用で高速化したNVMe SSD「970 EVO Plus」 - PC Watch
NVMe 1.4
- NVM Express Set for Busy 2018 | EE Times
NVMe 2.0
- FadisさんはTwitterを使っています 「NVMeの最新の規格NVMe 2.0が出たらしい。2.0ではNamespaceにTypeが追加され、Zoned Namespaceのような通常のブロックデバイスとしてアクセスしない領域を同一のデバイスに混載できるようになる他、コントローラの先に繋がっているのがHDDだった場合の為の機能が追加される https://t.co/rxuuQo9ZMN」 / Twitter
- NVMe 2.0 Released As A Library Of Specifications With ZNS, Simple Copy + More - Phoronix
- FadisさんはTwitterを使っています 「NVMe 2.0ではZoned Namespace(ZNS)とKey-Value(KV)がNVMeの規格の一部に加わる。これらは従来のブロックデバイスと異なる機能を持ったストレージを表現するもので、ZNSはNANDフラッシュメモリの制約をより直接ソフトウェアに見せる事でソフトウェアに工夫を要する代わりにコントローラの負担を軽減する」 / Twitter
- FadisさんはTwitterを使っています 「KVはSSDのコントローラが行う処理の本質がKey-Value Storeである事に着目して、ハードウェアをそのままKey-Value Storeとして使ってしまおうという物。一度ブロックデバイスに見せかけて、ブロックデバイスの上にソフトウェアでKey-Value Storeを実装する事によるオーバーヘッドの回避を目的とする」 / Twitter
NVMe/TCP
- FadisさんはTwitterを使っています 「linux-5.14でカーネルにNVMe/TCP Offloadをサポートする為のパッチが入りそうらしい。NVMe/TCPはNVMeをTCP/IP上で喋る事でリモートのマシンからNVMeストレージを読み書きできるようにする規格。この変更でNICが対応している場合NVMe/TCPの処理をNICに丸投げするようになる https://t.co/DL6Llrcf5u」 / Twitter
- NVMeTCP Offload Bits Coming For Linux 5.14 To Lower CPU Utilization, Better Latency - Phoronix
- FadisさんはTwitterを使っています 「NVMe/TCPは素直にソフトウェアで実装するとストレージとネットワークに対してCPUが遅すぎて性能が出ないが「TCPスタックとNVMe/TCPを喋る為の実装を丸ごとハードウェア化すれば性能が出る!」というクレイジーなNICがMarvellから出ており、これを使うとCPU負荷とレイテンシを大きく改善出来るらしい」 / Twitter
Fake RAID
- Linuxキーワード - フェイク・レイド:ITpro
- One Foot: CentOS 7 で Fake RAID を使用した RAID 構成
- 穀風: Ubuntu で FakeRAID/1
- RAID - ArchWiki
FDD
- sakohitiさんのツイート: "え、ふとアクセスしたら、ワイ・イー・データの事業統合に伴う合併で、会社と一緒にHPも消えちゃうのか・・・ しれっと3.5インチFDD製品の仕様pdf類が転がっていて、検索からならアクセスできたり、カードリーダーのドライバ類も置いてあったりと、重宝していたのですが。 orz… https://t.co/uni4AtUXOD"
- sakohitiさんのツイート: "そういえばYD-702Dのページ https://t.co/PA9DxCeD4W (なぜかYD-702Jで検索すると出る)から拾える仕様書のpdfが2つと、普通に検索すると出てくるYD-702J-6639Dの仕様書のpdfの合計3つも回収対象ですね。 FDDメーカーの公式サイトに残っているほぼ最後の日本語資料だっただけに、これは惜しいです。"
- sakohitiさんのツイート: "ちなみにドライバ類へは、トップページからのリンクが切られたまま放置されている情報マルチメディア事業のページから行く必要があるので、メモとして貼っておきます。 https://t.co/Q6TFl9KXNM"
- マルチメディア_Internal Half-inch FDD_株式会社 ワイ・イー・データ
- 製品仕様書
- 528028.PDF
- Z529020_A2.PDF
- フロッピーディスク販売の最後の砦とも呼ばれる人物へのインタビューが公開中 - GIGAZINE
blog
- Latency で見る Intel 3D Xpoint SSD - Fixstars Tech Blog /proc/cpuinfo
- QLC NANDのtRを調べる - Fixstars Tech Blog /proc/cpuinfo
- SSDについて勝手に語る : sside.net
- ベルQ(手動RTbot)さんのツイート: "【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い - ニッチなPCゲーマーの環境構築 https://t.co/1SclTqPQaR 1年前の記事だけど まぁ大容量書き込みする人がそんなに居ない現実もある"
- 【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い : ニッチなPCゲーマーの環境構築
- SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe) - uchan note
- 北森瓦版 - Western DigitalのPenta Layer Cell NANDは2025年以降
- DirectStorage (BypassI/O) を有効にする – すらりん日記
- Microsoft、「Direct Storage 1.1」APIの提供を開始 〜 GPUによる解凍でロード時間大幅短縮 - Nishiki-Hub
GIGAZINE
- SSDの性能を比較する上で考慮すべき3つのポイント - GIGAZINE
- HDD・SATA SSD・NVMe SSD・Optane SSDで「レイテンシ」にどれほど差があるのか? - GIGAZINE
- どのSSDが壊れやすいのか「SSD故障率のメーカー・モデル別統計データ2021年版」をBackBlazeが公開 - GIGAZINE
- 22万台のHDDとSSDを監視するBackBlazeの「メーカー・モデル別統計データ2022年Q2版」が公開 - GIGAZINE
- データ復旧業者のおすすめの選び方は?メーカーすら諦めるレベルで故障したHDDやSSDからも復旧を成し遂げるデジタルデータリカバリーに聞いてみた - GIGAZINE
- 「4万時間使うとSSDが動作不能になる」という不具合報告が話題に - GIGAZINE
- SSDの耐久寿命を伸ばすための技術「ウェアレベリング」に有効性はないという研究結果 - GIGAZINE
- ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは? - GIGAZINE
- ✿sat❀さんはTwitterを使っています 「SSDは内部的にいろいろ隠蔽してくれていて「ぷるぷるぷる…ぼくは速いだけで他はHDDとは変わらないブロックデバイスだよ」という顔してるけど中身は「ファイルシステムとブロック層をフルセットで持っとるやんけ!」なところがある。しかも各社独自実装」 / Twitter
- SSDの読み書きはどのように行われるのか - GIGAZINE
- HDD・SSDの使用時間と故障率の関係を示す「バスタブ曲線」に変化あり - GIGAZINE
- Samsungが爆速SSD「990 PRO」を発表、最大読込速度は驚異の7450MB/s - GIGAZINE
- 最大読み出し速度7300MB/sの爆速SSD「WD_BLACK SN850X NVMe SSD」の性能を検証してみた - GIGAZINE
- SSDの故障率をまとめた統計データ「メーカー・モデル別統計データ2022年中間レビューSSD版」をBackblazeが公開 - GIGAZINE
- 22万台以上のHDDを管理するデータ企業が「信頼度が高い」と判断したHDDとは? - GIGAZINE
- ゲーム読み込み時間をGPU解凍で3倍高速にする「DirectStorage 1.1」が利用可能に - GIGAZINE
- HDDの1GBあたり価格は2円まで下落、値下がり幅はここ10年で8割 - GIGAZINE
- SSDの寿命を見積もるためには何に注目すればいいのか? - GIGAZINE
PC Watch
- 【福田昭のセミコン業界最前線】7bit/セルの超多値記憶3D NANDセル技術をキオクシアがIMW2022で披露 - PC Watch
- WD、2020年に世界最大容量の20TB HDD投入 ~CMR方式の18TB HDDも - PC Watch
- キオクシア、Ethernet接続型のNVMe-oF対応ストレージ - PC Watch
- 東芝、Ethernetから直接アクセスできる「NVMe-oF SSD」試作機を開発 ~ランダムリード1,600万IOPSを実現 - PC Watch
- Samsung、“究極のSSD”を予告。PCIe 5.0対応製品か - PC Watch
- GIGABYTE、PCIe 5.0対応M.2 SSD発表。次世代製品は12GB/s超えも - PC Watch
- CFD、最大リード10GB/sのPCIe 5.0対応M.2 SSD。空冷ファン標準搭載 - PC Watch
- Microsoft、GPU展開でゲーム読み込みを約3倍高速化するDirectStorage 1.1 - PC Watch
- 東芝、30TB超のニアラインHDDを開発へ。11枚の多層化技術を活用 - PC Watch
- ランダムアクセス性能を向上したSamsung「990 PRO」が23日発売 - PC Watch
- Samsung、5nmコントローラ採用で高速/低電力化したM.2 NVMe SSD - PC Watch
TEXAL
- Samsungの次世代SSD「990 Pro 1TB & 2TB PCIe 5」が登場間近か | TEXAL
- SSDの“汚い秘密” - 実はHDDよりも多くの二酸化炭素排出量がある事が判明 | TEXAL
- 革新的な「X-NAND」テクノロジーが第2世代になり書き込み速度が2倍に | TEXAL
- Samsung 990 PRO PCIe 5.0 M.2 SSD が確認。コンシューマ向け超高速SSDの登場が間近か? | TEXAL
- Samsungが236層NANDフラッシュを今年末までにリリースへ | TEXAL
- コルセアが同社初のPCIe5.0対応SSDの登場を予告 - 10,000MB/sのシーケンシャルリードを実現か | TEXAL
- SamsungがPCIe 5.0対応SSDの登場を予告 | TEXAL
- Gigabyteがシーケンシャルリード最大12.5GB/sを実現したPCIe 5.0対応SSDの登場を予告 | TEXAL
- SamsungがPCIe“4.0” 対応の最新SSD「990 Pro SSD」を発表 | TEXAL
- MSI、最大12.3GB/s を実現するPCIe 5.0 x4 SSD「Spatium M570」を発表 | TEXAL
- PCI Express 5.0対応M.2 SSDは旧型のマザーボードではサイズが合わない可能性 | TEXAL
- マイクロソフト、GPU解凍機能を備えた「DirectStorage 1.1」の近日公開を発表 | TEXAL
- DirectStorage 1.1がPC向けに提供開始、GPUによる解凍で読み込みが3倍速くなる可能性 | TEXAL
- 2022年第3四半期、3D NANDの出荷額が24.3%の大幅下落を記録 | TEXAL
- ストレージ高速化機能「DirectStorage」対応のSSDが登場、既存のSSDに2倍以上のスコアを見せつける | TEXAL
- DirectStorageのAMD、Intel、NVIDIAによるパフォーマンス比較テストの結果が公開 | TEXAL
- 玄人志向、M.2 NVMe SSDをPCIe x4に変換する拡張カード | マイナビニュース
- Microsoft、ゲームのデータ読み込みを高速化する「DirectStorage 1.1」をリリース - 窓の杜
- acさんはTwitterを使っています: 「TBWで新品のNVMeを3日で潰したと聞いて初期不良やろ思ってWD_BLACK SN850XのSeqWで計算してみたら確かに最短25時間強で潰せそう。 TBWでSSD潰すのに1年以上かかってたのは既に太古の話。 気が付けばNVMeで20倍高速化+QLCで1/10寿命で、最短の寿命が約1/200になってて震えた。 https://t.co/QNmpi9bG4V」 / Twitter
- SSDにデータを書込みまくり再起不能に追い込む耐久試験で分かった信頼性に関する真実とは? - GIGAZINE
- Haruhiko OkumuraさんはTwitterを使っています: 「予算30万円台の深層学習用PCの買い方 https://t.co/ZnsHiBqjTy うーん悩む」 / Twitter
- 予算30万円台の深層学習用PCの買い方|shi3z|note
- PCIe Gen5対応NVMeSSDの価格判明。1TBで5.7万円、PCIe Gen 4より3倍の価格
LAN
Realtek
- 玄人志向 | GbE-PCIe4:Realtek社製 RTL8168搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
- Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch
- 【ニュース・フラッシュ】玄人志向、Realtek製コントローラ採用の2.5GbE対応拡張カード - PC Watch
- 玄人志向 | GBE2.5-PCIE:Realtek RTL8125BG搭載 2.5GBase-T イーサネットボード (PCI Express接続)
- 3500円で2.5GBASE-Tへアップグレード、プラネックスのPCIe接続アダプター「GPE-2500T」を試す【イニシャルB】 - INTERNET Watch
- 4千円を切る2.5GbE対応PCIe LANカード、プラネックスが発売 - INTERNET Watch
- 4千円切りの2.5GBASE-T対応LANカード、玄人志向が発売 - INTERNET Watch
- 第693回 Ubuntuでも2.5GbEを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Linux向け2.5Gbイーサネットアダプタの実効速度の検証結果は? - GIGAZINE
- 複数ポート搭載で高速&冗長化の2.5GBASE-T LANカード、プラネックスが発売 - INTERNET Watch
- 2.5Gbps最安を連発! プラネックスの新8ポートスイッチングハブ「FX2G-08EM」【イニシャルB】 - INTERNET Watch
- 帯域制御可能な玄人志向の低価格2.5Gbps対応LANカード「GBE2.5-PCIE」【イニシャルB】 - INTERNET Watch
- プラネックス、2.5GbEを2基/4基搭載したチーミング対応拡張カード - PC Watch
- Realtek
- SD-PEGLAN-S2(ジーノ2世)
- ETG3-PCI | LANアダプター | IODATA アイ・オー・データ機器
- LANアダプタ|LGY-PCI-TXD
- 2022-01-05 | Realtek Semiconductor JAPAN Corp.
Marvell(Aquantia)
- 第706回 Ubuntuでも10ギガ(10Gbps)インターネットを体験してみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 企業 - ニュースルーム - マーベルが Aquantia 社の買収を完了 - マーベル
- Aquantia Corporation - Wikipedia
- 10GbE界隈が動くか? 格安10GbEチップメーカーのAquantiaがMarvellに買収される | がじぇっとりっぷ
- Marvell、ネットワーク技術のAquantiaを4億5,200万ドルで買収 - エルミタージュ秋葉原
- AQUANTIA AQC107 NIC コントラーチップ・ドライバー入手方法・ダウンロード方法 | 自転車通勤とプチ・オーディオなあれこれ
- AQUANTIA製の10Gbps対応NIC「AQC-107」を使っていると突然切断やデバイスを見失う現象が頻発する #Aquantia #AQtion #AQC107 #NIC #10Gbps │ Recon-ReviewDays
- PCでも使えるQNAPのNAS用10GbEカード「QXG-10G1T」が発売 - AKIBA PC Hotline!
- 6G→9Gbpsに! 10GbE NICで遅いならUEFIでPCIeリンク幅を固定しよう【イニシャルB】 - INTERNET Watch
- 10GbE対応NICとスイッチで5万円台! ASUS「XG-C100C」とネットギア「XS505M」で10GbE環境を構築【イニシャルB】 - INTERNET Watch
- 1万5千円を切る10GBASE-T LANカード発売、ASUS「XG-C100C」 -INTERNET Watch
- 1.5万円の10GBASE-T対応LANカード「XG-C100C V2」、ASUSが発売 - INTERNET Watch
- 1万円を切る10GBASE-T対応LANカード、LR-LINK「LREC6860BT」、アユートが販売 - INTERNET Watch
Intel
- インテル® 製品の仕様情報
- インテル® 製品の仕様情報
- インテル® 製品の仕様情報
- インテル® 製品の仕様情報
- インテル® 製品の仕様情報
- インテル® PRO/100 デスクトップ・アダプター
- インテル® PRO/1000 MT デスクトップ・アダプター・シリーズ
- インテル® PRO/1000 PT デスクトップ・アダプター・シリーズ
- インテル® ギガビット CT デスクトップ・アダプター シリーズ
- 製品の仕様情報 - Intel® Ethernet Converged Network Adapter X540-T1
- 製品の仕様情報 - Intel® Ethernet Server Adapter I210-T1
- 製品の仕様情報 - ギガビット・イーサネット・アダプター
- [アドバイザリ]VMware ESXi環境においてIntel製X550-AT2ネットワークアダプターの特定ixgbenドライババージョンを使用しSR-IOVを有効にした場合にゲストOS上の仮想ポートにVLAN Tag設定後のゲストOSからの通信制約について:日立
- 北森瓦版 - Intel 低価格な2.5Gbps Ethernet PHYであるi225-V―“Foxville”を準備中
- I225 2.5GbeのZ490を含むIntel 400シリーズのチップセットには、ネットワークのバグがありますが、2020年下半期にされます。 - 自作ユーザーが解説するゲーミングPCガイド
- Intel、「Killer NIC」で知られるRivet Networksを買収 - PC Watch
- ホ タ テ ラ スさんはTwitterを使っています 「天下のいんてりゅさんでも、phy の ip が買い物だったりするのかなぁ」 / Twitter
- msaitohさんはTwitterを使っています 「@misasagi64 元々昔からPHYの半分は Marvell ほぼそのままだし。igp と言われるやつが独自なのかどこかから買ったかは不明。82578 は Attansic (->Atheros -> QCA)です。MII OUI が Attansic そのもので、最初はボケて他社の OUI 使ったのか と思ったのですが、ベンダ依存レジスタ部分が AR8021 と同一。10G(文字数」 / Twitter
- msaitohさんはTwitterを使っています 「@misasagi64 10G は、ixgbe ドライバ内で TN と言われてるのは OUI が Teranetics だけど、これは外付け PHY かな。」 / Twitter
- msaitohさんはTwitterを使っています 「Intel I225の不具合が話題ですが、どういう問題を議論しているのかよくわかんないけどPHY作るのがヘタクソ(というか他からIP買ってそれが元々ダメなのかそれとも改造した時にヘマこいたのか・・・)なのは昔からですよね。僕はまだI225持ってません。 ところでこれは何ですか? https://t.co/WElAT06PEh」 / Twitter
- dpdk - Data Plane Development Kit
- msaitohさんはTwitterを使っています 「低消費電力にしないといけなくて多方面で改善しないといけなくて大変なのはよくわかる(てゆーかドライバ書く側も大変なのよん)。」 / Twitter
- msaitohさんはTwitterを使っています 「てゆーか、2.5G とか 5G が ethtool から見えないドライバを長期放置しておいておめーらどんなテストしt(以下略」 / Twitter
- IntelがIPUの具体的な製品計画を発表 Arm CPUを搭載したMount Evansなど3製品を投入 - クラウド Watch
- Intel NICを搭載したLinuxサーバのLLDPが正しく動作しない問題 - show log @yuyarin
- I225-V 不具合 - Google 検索
- 一ノ瀬 いろはさんはTwitterを使っています: 「@tss_ontap 現状正規品の取り扱いはほぼ無い様な…… マーケットプレイスだとどこから仕入れたかも怪しいですし。」 / Twitter
ケーブル
- LANケーブルの正しい使い方 - LANケーブルの信号線がねじられている本当の理由:ITpro
- LANケーブルの正しい使い方 - LANケーブルは規格値を超えたスピードで通信したらどうなる?:ITpro
- 【特集】よく分かるLANケーブルの選び方。CAT.6でも10Gbps対応可能。CAT.8まで速度差を検証 - PC Watch
- LANケーブルを抜けなくしてネット誤切断を防ぐ「SL-93」、サンワサプライが発売 - INTERNET Watch
スイッチ
- スイッチ|CentreCOM GS908M/GS916M/GS924M
- ギガビット8ポート アンマネージプラス・スイッチ(VLAN, QoS) GS108E | 9,500 円 | ネットギア【NETGEAR】
- Tag VLAN を利用の環境でスイッチの管理画面にアクセスできません。 《対象機種》 GS108Ev3(GS108E-300JPS) GS108PEv3(GS108PE-300AJS) | ネットギア【NETGEAR】
- 【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch
- LANケーブルの入れ替え不要、2.5/5GBASE-T対応スイッチがバッファローから - AKIBA PC Hotline!
- DSAS開発者の部屋:Brocade VDX NOS 7.0 は Python が動く!
- BSH-10G08 仕様 | スイッチ | IODATA アイ・オー・データ機器
- SODA Noriyukiさんのツイート: "リピーターHUBって、100BASE-Tまでの製品しかないと思ってた、驚いた>FXG-05RPT でもなんか怪しい挙動する→ https://t.co/MHl7ah6Zdy ので、実は物理的にはリピーターじゃなくてブリッジでで、学習機能を省いて全ポートにミラーリングしてるだけだったりして?"
- リピーターハブ(ネットワークタップ)|FXG-05RPT|PLANEX
- IzNoMaさんのツイート: "今回いろいろ見てて気がついたんですけど、今時のGbEのばかHUBって実はばかじゃなくて、プリアンブルを再生成するんですね。プラネックスのばかハブ通すと6だったのが7オクテットに戻るという不思議。そんなものなの?"
- Fadisさんのツイート: "スイッチングハブなら他所のMACアドレス宛てのパケットは見えないというのは全く期待できなくて、一度もパケット受信した事がない宛先への通信は全ポートに流すし、受信した事があってもテーブルを溢れさせて忘れさせるのは割と簡単だったりする"
- ASUS、2基の10Gigabit Ethernet搭載スイッチングHub - PC Watch
- バッファロー、約24,000円で全ポート2.5Gbps対応の5ポートHub - PC Watch
- 手のひらサイズで爆速10Gbps&冗長電源まで備える格安ルーター「MicroTik CRS305-1G-4S+IN」レビュー - GIGAZINE
- エレコム、5ポート全てが2.5G対応のファンレススイッチングHub - PC Watch
- 1万円を切る2.5GbE 5ポートスイッチ「FX2G-05EM」、プラネックスが発売 - INTERNET Watch
- ついに2.5Gbpsスイッチが税込1万円以下! 熱対策も万全なプラネックス「FX2G-05EM」【イニシャルB】 - INTERNET Watch
- バッファローが10G/2.5Gをコモディティ化! 2万円切りのスイッチや、3.4万円で10G×2ポート+2.5G×4ポートのスイッチを試す【イニシャルB】 - INTERNET Watch
- 10GbE×2+2.5GbE×4で3万円以下! ホームネットの高速化に最適なQNAPのお手軽スイッチ「QSW-2104-2T」【イニシャルB】 - INTERNET Watch
- 【ニュース・フラッシュ】放熱性を高めた2.5GbE対応の8ポートスイッチングHub、プラネックスから - PC Watch
- 1万7千円台で8ポートの2.5GbEスイッチ「FX2G-08EM」、プラネックスが発売 - INTERNET Watch
- 第665回 ホワイトボックススイッチのインストール環境であるONIEを仮想マシンに構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- サンワサプライ、全ポート2.5GbE対応の5ポート/8ポートスイッチングHub - PC Watch
- 全ポート2.5GBASE-T対応、8/5ポートの強力マグネット搭載スイッチングハブ、サンワサプライが発売 - INTERNET Watch
PLC
- 【トピック】コンセントに挿すと通信できる「PLC」、再び注目の理由とは? 電波法改正で新たな用途- 家電 Watch
- Kazuho OkuさんはTwitterを使っています 「HD-PLC、なんでUDPよりTCPが遅くなるんだろ、って思ったんだけど、L2で壊れたパケット「だけ」再送するのか。これがパケットの到達順を破壊しちゃうんだろうか。だとすると、到達順を利用する再送制御との相性悪そう https://t.co/8OJS94NLh5 https://t.co/jdMZ59SlmE」 / Twitter
- 高速電灯線通信(HD-PLC)「どこでもリンク《 - hdplc_white_paper_complete.pdf
- Kazuho OkuさんはTwitterを使っています 「転送順序を維持するために無駄なバッファリング行わないという方針だとして、それ自体は技術的に正しい。エンドポイントの再送制御やってる側としては、タイムベースの再送制御に切り替える仕組みはあるので、理オーダの頻度観測すればいいんだろうか。実機がほしいなぁ」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho communication protocol specialist の血が騒ぐ?🤭」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕は詳しくないですけど、ロス率が高い区間があるとして、 * その区間独自に再送と順序性回復を行うか * 再送も順序性回復も行わないか * 再送だけをやるか みたいな話は、業界的にも論争があるんですよ。これ、ちゃんと標準化してほしい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕の朧げな知識では、 * 無線は割と再送と順序性回復の両方をやってる。遅延にセンシティブなアプリ書いてる側としては、これはやめてほしい * 両方の回復をL3でやろうという標準化提案は昨年あったが、反対意見が強く頓挫した (cf. LOOPS BoF @ IETF 108) * 再送のみやるL2の存在は初耳」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho 変数沢山ある😮… latency が変数に入るとツラソー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んー詳しい論文 (https://t.co/D8hgDGOOoX) を見つけたから読んだけど、リオーダによる低下とかじゃなくて、半二重回線でデータとackが競合する問題だった。QUIC だと ack frequency extension でだいぶ解決しそう」 / Twitter
- 147425895.pdf
- Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
- atc14-paper-salameh.pdf
- Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
- Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
- 【大河原克行の「パソコン業界、東奔西走」】密かに市場が拡大している電力線搬送通信「HD-PLC」。パナソニックの取り組みを追う - PC Watch
- 【知識】コンセント経由でネットにつながる「PLC」って今どうなってるの? | &GP
- ソシオネクスト、第4世代HD-PLC採用で最大10kmの通信を実現するLSI - PC Watch
INTERNET Watch
- UL規格に対応し、長期安定供給を実現するCAT6A LANケーブル「LD-GPAT/BU/ID」シリーズ、エレコムが発売 - INTERNET Watch
- 既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
- 【匠の部屋】元・インテルのエンジニアは「Wake on LAN」からvProまで知る「匠」だった - INTERNET Watch[Sponsored]
- 【匠の部屋】進化していく「Wake on LAN」、しかし弱点が浮き彫りに…… - INTERNET Watch[Sponsored]
- 3世代あるPoEは2003年に策定、最大15.4Wの「IEEE 802.3af」から【ネット新技術】 - INTERNET Watch
- 4ペアで最大51Wを実現するPoE+こと「IEEE 802.3at」【ネット新技術】 - INTERNET Watch
- 4ペアでPSE最大90W、PD最大71.3Wの「PoE++」こと「IEEE 802.3bt」【ネット新技術】 - INTERNET Watch
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "同じ40Gb NIC対応でも Mellanox MCX313A-BCBT は PCIe3.0 x8レーン、MCX415A-BCATは PCIe3.0 x16レーンなのはなぜかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbit搭載マザーボードも徐々に増えているし、10Gbitが徐々に一般にも広がりつつある感じ。また、10Gbitなら今時のCPU&メモリバスで問題ない。 これが、40Gbitになると、あちこちネックが出てきて、普通に使うと15~20Gbit程度で引っ掛かりやすい印象。… https://t.co/ZzKRsXWlbK"
- なかのん&マジックさんのツイート: "10GbEでもマルチギガには対応してないってパターンもやはりあるのかな? (全く分かってない)"
- dynamis (でゅなみす)さんのツイート: "徐々に減っていくのかもてすが、あります。 必ずしも上位互換で全対応ではないです。… "
- 一ノ瀬 いろはさんのツイート: "あくまで別の規格、かつ 10Gbase-T より 2.5/5 Base-T の方が後の規格ですからね。 実装上の差分は小さいのでこれから作る分には対応しない理由は少ないですが、 10Gbase-T として作られた製品は後続の規格には対応出来ない事も多いはず。… https://t.co/99A9q2G78d"
- Makoto Kato ︎︎さんはTwitterを使っています: 「TP-Link、スイッチイングハブと2.5G PCIe NICは信用してる」 / Twitter
- Emma Haruka IwaoさんはTwitterを使っています: 「しかし 10Gbps+ イーサネットについて 8,500 文字書いて、まだ書き足りないというか不足があると思うのは、本質的に複雑なのでは... 家庭用イーサネットが大部分 1 Gbps 止まりの理由がわかった気がする...w」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@Yuryu さらに複雑なことを言うと、直接接続だけ考えればいいなら ThunderboltIP / USB4NET もオススメだと思います。実効17Gbps くらい出るし、Mac や Intel NUC ならケーブル買うだけだし... あとからスイッチ導入して接続台数増やすことはできませんが」 / Twitter
- Emma Haruka IwaoさんはTwitterを使っています: 「@kazuho あー、そういう手もあるんですね... AMD プラットフォームの Windows PC なので考えもしませんでした。」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@Yuryu @kazuho Zen 3 APU デスクトップ PC が手元にありますが、Thunderbolt 4 PCIe カード増設してるので、AMD プラットフォームでも、使えると思いますよ。購入時に組み合わせに注意する必要がありますが」 / Twitter
- Emma Haruka IwaoさんはTwitterを使っています: 「@tenpoku1000 @kazuho TB4 PCIe カードを買うお金で 25GbE とか 40GbE の NIC が買えるので、標準搭載してないとこのために買うのはちょっと割に合わない気がしました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@Yuryu @tenpoku1000 現状おっしゃるとおりかと。今後は、Ryzenのモバイル向けSOCは6000シリーズ以降でUSB4対応が入りましたし、デスクトップも今後はUSB4ポートがついているのが一般的になっていくのでしょうね」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@kazuho @Yuryu 現状ではデスクトップ向けのチップセットに USB4 を組み込むのは、マザーボード・ベンダがコスト面で反対してるという記事を見かけますが、拡張カードに対応してない製品もありますから、カード買わずに済むなら、そうあるべきと思います」 / Twitter
- マルチギガビット・イーサネット - Wikipedia
- ヤマハ、10GbEインターフェイス搭載VPNルータ「RTX1300」などを展示 発売予定は2022年秋 - クラウド Watch
- 中国から偽のCisco製品を輸入した米企業CEOが逮捕。政府や軍でも被害 - PC Watch
- MACアドレスに関する注意事項
- MACアドレスについて教えてください。MACアドレスが消えてしまって... - Yahoo!知恵袋
- Tech TIPS:ネットワーク・インターフェイスのMACアドレスを変更する - @IT
- セイコーソリューションズ、NTPサーバーと同期するネットワーク型時計「NTPクロック」を販売開始 - クラウド Watch
- 玄人志向 | GbE-PCIe:MARVELL社製 88E8053搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
- Broadcom 5751 Netxtreme Gigabit PCIe NIC
- 10Gbps通信の普及を阻んだ「高過ぎるエラー率」問題 (1/2) - TechTargetジャパン ネットワーク
- MacBookでも使えるThunderbolt対応有線LANアダプターは結局どんなものを買えばいいのか? - GIGAZINE
- E10G18-T1 | Synology Inc.
- Synology製NASキット用の10GbE LANカードが計2モデル - AKIBA PC Hotline!
- 激速!NASを10GbE化して超高速にする2つの方法をまとめた - studio9
- 意外と手軽、家庭用 1 Gbps 超イーサネットまとめ
無線
その他
- FOTA(Firmware Over-The-Air)とは - IT用語辞典 e-Words
- 「技適」の話をあらためて整理する (1/3) - ITmedia Mobile
- 無線LANデバイスが技術適合証明を受けなければならない理由 | Noisefactory
- M.2 の NGFF 形状 WiFi モジュールと繋ぐケーブル
- AC-8260NGW
- NTTと東工大、テラヘルツ帯での100Gbps無線伝送に成功 - PC Watch
- パナソニック、数mmから数十cmに制限可能な近距離無線通信技術。セキュアを実現 - PC Watch
- 技適取得済み機器の検索APIを総務省が公開中、技適取得の有無のほか機器情報も取得可能【やじうまWatch】 - INTERNET Watch
- 技適の無い海外端末の合法的利用について | かくいちさんの掲示板 | マイネ王
- Cell Phone Unlocking | Federal Communications Commission
- 「なぜ無線通信で用いられる周波数帯域は2.4GHzなのか」調査中の学生の前に立ちはだかった最後の巨大な壁 - GIGAZINE
- 【速報】「技適」のない機器の実験利用が可能に、電波法改正で11月20日から:教育とICT Online
- 家に届いた「NEXT! 700MHz」のチラシ、これは何? - AV Watch
- MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは? - GIGAZINE
- 【悲報】電池が1年持つ無線マウスを導入して、5か月経った結果
- 【マジか!】マウスのチャタリングがたった10秒で直った!その方法とは…?
- チャタリングを直したマウスのその後
- 進むMACアドレスのランダム化。影響や切り替え方法をご紹介 | Wi-Fiコラム Powered by NTTBP
- パナソニック、技適マーク取得の特性試験サービスを開始。国内初のJET認定「特任外部試験所」に - PC Watch
Wi-Fi
Wi-Fi 7(IEEE802.11be)
- Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
- atc14-paper-salameh.pdf
- Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
- Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
- MediaTekがWi-Fi 7の技術デモを実施。Wi-Fi 6から2.4倍高速化 - PC Watch
- 11ax後継「IEEE 802.11be」では6GHz帯がほぼ必須、2022年に採用なるか?【周波数帯を拡張するWi-Fi 6E】Wi-Fiで増える6GHz帯、日本ではしばらく利用不可? 次世代「Wi-Fi 7」では必須?【ネット新技術】 - INTERNET Watch
- MediaTek、世界初のWi-Fi 7プラットフォーム「Filogic 880」「Filogic 380」発表 - INTERNET Watch
- 次世代通信規格「Wi-Fi 7」の世界初のデモで現行規格の2.4倍の通信速度を達成 - GIGAZINE
- 半導体不足で「Wi-Fi 6E」より先に「Wi-Fi 7」が普及する流れが強まっている - GIGAZINE
- 次世代Wi-Fi規格「Wi-Fi 7」の詳細まとめ、Wi-Fi 6よりも具体的にどの程度高速化できるのか? - GIGAZINE
- 不足によって妨げられたWi-Fi6Eの採用は、Wi-Fi7の普及を加速します|自作.com
- FadisさんはTwitterを使っています 「IntelがLinuxのmac80211に802.11be(WiFi 7)のサポートのためのパッチを投げている話。802.11beは米国等で既に法整備がなされている6GHz帯を使って1チャネルあたり320MHzを使い、4096-QAMで変調した信号を16x16 MIMOなアンテナで送る事で約40Gbpsの帯域を得る新しいWiFiの規格 https://t.co/RpBMMx7sKu」 / Twitter
- Intel Preparing Wi-Fi 7 / 802.11be / EHT Support For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「パッチに含まれているのは主に320MHz幅のチャネルのサポートの為のもので、具体的なハードウェアのドライバ等は含まれない。802.11beはまだ規格が完成していない為、実際のハードウェアが登場するまでにはまだ時間がかかると思われる」 / Twitter
- Broadcom、Wi-Fi 7対応チップのサンプル出荷を開始 - PC Watch
- Qualcomm、10Gbps以上の転送速度を実現したWi-Fi 7対応プラットフォーム - PC Watch
- MediaTek、世界初のWi-Fi 7プラットフォーム - PC Watch
- 5Gbpsを達成した「Wi-Fi 7」をIntelとBroadcomがデモ - PC Watch
- 最大11.5GbpsのWi-Fi 7対応SoCをBroadcomがサンプル出荷、320MHzチャネル幅や4096QAM変調をサポート - INTERNET Watch
- MediaTek、Wi-Fi 7に対応したスマートフォン向け5Gチップセット「Dimensity 9200」発表 - INTERNET Watch
- TP-Linkが世界初となるWi-Fi 7対応ルーターを海外で多数発表 | TEXAL
- TP-LinkがWi-Fi 7対応製品を発表。ルーター「Archer BE900」など7モデルのほか法人向けも - INTERNET Watch
- Qualcomm、最大20Gbpsを実現する家庭用製品向けWi-Fi 7プラットフォーム - PC Watch
Wi-Fi 6(IEEE802.11ax)
PC Watch
- 無線LANも2.4Gbpsに。Intel、Wi-Fi 6モジュールを出荷開始 - PC Watch
- アイ・オー、1万円切りのWi-Fi 6対応無線LANルーター - PC Watch
- Huawei、Wi-Fi 6特許に関するライセンス契約でバッファローと合意 - PC Watch
- 【特集】Wi-Fi 6Eって何?Wi-Fi 6と何が違うの?国内の対応ルーター登場時期などを整理 - PC Watch
- 無線LANのスペクトルを6GHz帯に拡張した「Wi-Fi 6E」 - PC Watch
- Wi-Fi 6Eは今後さらに拡大、Wi-Fi 7は順調に開発中。Intelが説明 - PC Watch
- 【特集】Wi-Fi 6Eルーターを買うにはまだ早い?PCやスマホは追加認証とアップデートを待つ必要あり - PC Watch
- 既存のWi-Fi 6E対応機、ファーム更新などでは国内利用できないことが判明 - PC Watch
INTERNET Watch
- 速度は11acの倍、11ax対応のWi-Fi子機向けチップ「WCN3998」、Qualcommが発表 - INTERNET Watch
- 802.11axの呼称が「Wi-Fi 6」に、11acは「Wi-Fi 5」、11nは「Wi-Fi 4」 - INTERNET Watch
- Wi-Fi 6(11ax)搭載拡大へ、2023年にWi-Fiチップ出荷の約3分の1に達すると予測 - INTERNET Watch
- CES 2019で見かけた「Wi-Fi 6」(802.11ax)対応製品【CES 2019】 - INTERNET Watch
- 【周波数帯を拡張するWi-Fi 6E】Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド【ネット新技術】 - INTERNET Watch
- 世界初のWi-Fi 6対応のUSB接続子機、ASUSとD-Linkが発表【CES 2021】 - INTERNET Watch
- USB接続では初のWi-Fi 6子機「USB-AX56」、ASUSが発売 - INTERNET Watch
- 「Wi-Fi CERTIFIED 6 Release 2」、新機能を加えた認証プログラムをWi-Fi Allianceが開始 - INTERNET Watch
- 6GHz帯の国内利用は6月から? 当面はWi-Fi 6/6Eが主流に、Wi-Fi 7は30Gbpsが目標で製品の登場は2024年?【ネット新技術】 - INTERNET Watch
- 1万円台で2.5GbE対応、最大4804MbpsのWi-Fi 6ルーター「WN-DAX5400QR」、アイ・オーが発売 - INTERNET Watch
- Cisco、Wi-Fi 6Eアクセスポイント「Meraki MR57」や、2つのIoT製品を発表 - INTERNET Watch
- Wi-Fi 6E対応のスマホとノートPCが2022年後半から2023年初旬に発売へ - INTERNET Watch
- スペックも実力も超ド級! Wi-Fi 6Eで実効2.39Gbpsを叩き出すNECプラットフォームズのフラグシップルーター「Aterm WX11000T12」を試す【イニシャルB】 - INTERNET Watch
- Wi-Fi 6とBluetooth 5.2対応のPCIe接続Wi-Fiカード「TX50E」、ランクアップが発売 - INTERNET Watch
- TELEC、Wi-Fi 6Eの6GHz帯、および自動車内の5.2GHz帯無線設備に関する技術基準適合証明、および工事設計認証業務を開始 - INTERNET Watch
- サイレックス、Wi-Fi 6Eに対応した組み込みモジュール「SX-PCEAX」シリーズの受注開始 - INTERNET Watch
- Wi-Fi 6Eの6GHz帯が利用可能な「Intel AX210/211」向けドライバー、インテルが公開 - INTERNET Watch
GIGAZINE
- 6GHz帯の無免許利用をFCCが承認、高速な無線LAN新規格「Wi-Fi 6E」が使用可能に - GIGAZINE
- 免許なしで使える6GHz帯まで拡張した「Wi-Fi 6E」の認定プログラムがスタート - GIGAZINE
- 10GのSFP+はどれぐらい高速なのか?Wi-Fi 6対応ルーターASUS「RT-AX89X」使ってみた&速度実測レビュー - GIGAZINE
- 【NW未来予想図01】無線LANは11axが主流に。光並み20ギガWi-Fiも | ビジネスネットワーク.jp
- 第848回:IEEE802.11ax とは - ケータイ Watch
- 次世代高速無線LAN規格「11ax」について
- 【Wi-Fiルータ】次世代規格IEEE 802.11axの無線通信に対応した機器まとめ - 踊るびあほりっく
- 無線LANに11axが必要になった理由 | 日経 xTECH(クロステック)
- IEEE 802.11ax - Wikipedia
- _pdf
- 最新規格「IEEE802.11ax」がやってきた!最新無線LAN事情 - IT、IT製品の情報なら【キーマンズネット】
- IEEE802.11ax | IoT
- IEEE802.11ax(Wi-Fi 6/6E)のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- WN-DAX3600QR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
- WN-DAX3000QR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
WPA3
Twitter
- Eijiro Sumiiさんのツイート: "本当に(←そればっか)、「無線LANの暗号化意味ない」は広まってほしい… "
- アナネコさんのツイート: "WPA-PSKでL2レベル暗号化していても、パスワードを共有している場合は簡単にそれぞれのセッション鍵を計算することができてL2レベルの暗号化が無意味になるんですよ。って研修でやるのに買ったやつ。"
- Eijiro Sumiiさんのツイート: "本当に(略)、「https (SSL/TLS)使う」のほうがはるかに重要 https://t.co/IessKQmFmc"
- アナネコさんのツイート: "ちなみにL2の暗号化が破られるから危険!という主旨ではなく、L2の暗号化なんてあてにならんのだから重要な通信は上のレイヤーで暗号化して改竄検知しましょう!というお話をしました。"
- Eijiro Sumiiさんのツイート: "パスワード共有してたら暗号云々以前に偽アクセスポイント立てればもっと簡単に盗聴・改ざんし放題だし。"
- Eijiro Sumiiさんのツイート: "https://t.co/kuRAuKXj8Q 「利用者を特定少数に制限したい場合」「管理者側にとっては」無線LANに暗号化パスワードつける意味あります。念のため。"
- Eijiro Sumiiさんのツイート: "誤解している例:https://t.co/M05PCQqkZz"
- Eijiro Sumiiさんのツイート: "HTTPSを使うとかブラウザをアップデートするとか本当に必要な対策ではなく、「暗号化されていないWi-Fiがある」から「利用を控える」は、被災者に誤った不便を強いる呼びかけでは… https://t.co/IjWX8QuTih"
- Eijiro Sumiiさんのツイート: "https://t.co/1eL3b1FhHT 記事が消えてた。熊本県警の「呼びかけ」。"
- 第863回:WPA3 とは - ケータイ Watch
- Wi-Fi Alliance、次世代無線セキュリティ「WPA3」 - PC Watch
- Wi-Fi Alliance、Wi-Fiセキュリティの新規格「WPA3」発表 | マイナビニュース
- Wi-Fiパスワードを破る新たな攻撃手法が見つかる--「WPA」「WPA2」を無効に - ZDNet Japan
- Wi-Fiは将来的に「WPA3」必須に、Wi-Fi Allianceが新たな認定制度をスタート - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第7回)Wi-Fi最初の暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第8回)Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第9回)2003年までの実装が必須だった「WPA」で採用された「TKIP」の4つの特徴【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第10回)暗号化方式に「AES」を採用した「IEEE 802.11i」や「WPA2」、11n普及とともに浸透【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第11回)WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第12回)WPA3は「SAE」採用で鍵の推測が不可能に、KRACKsで悪用の穴ふさぐ、2018年末から登場?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第13回)SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」、各社規格の乱立に終止符?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第14回)ボタンを押すとSSID&パスフレーズはどうやってやり取りされる? 「WPS」の接続手順【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第15回)SSID・パスフレーズ交換の標準規格「WPS 2.0」、「WPS 1.0」の脆弱性を解消【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第16回)認証不要でWi-Fi通信の傍受を不可能に、フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第17回)フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」、盗聴の恐れがある通信路で秘密鍵を安全に共有【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第18回)Passpointの仕様である「Hotspot 2.0」のベースとなった標準規格「IEEE 802.11u」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第19回)国内キャリアも採用のホットスポット提供指標「WISPr」、「IEEE 802.11u」と一本化へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第20回)ホットスポットでの認証の問題を解消した「HotSpot 2.0」、IEEE 802.11uやWISPr 1.0/2.0に欠けた要素を追加【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第21回)Wi-Fiホットスポット接続規格「Passpoint」、高速なLTEの普及で拡大せず【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第22回)スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」、画面やカメラがない機器を接続可能に【ネット新技術】 - INTERNET Watch
- Wi-Fiセキュリティの新規格「WPA3」に脆弱性が発見される - GIGAZINE
- Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される - INTERNET Watch
- Dragonblood: Analysing WPA3's Dragonfly Handshake
- Wi-Fiセキュリティ新規格「WPA3」にWi-Fiのパスワードが漏れる新たな脆弱性が発見される - GIGAZINE
- Wi-Fi 6の認定プログラム「Wi-Fi CERTIFIED 6」開始。WPA3が必須に - PC Watch
- WPA3のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Mesh
- 「Wi-Fi CERTIFIED EasyMesh」発表、異なるベンダー間でもメッシュを構築できる製品を認証 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第1回)Wi-Fiにおけるメッシュネットワークの必要性【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第2回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第3回)Wi-Fiメッシュで通信コストを最小化する仕組み、「IEEE 802.11s」の採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第4回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第5回)Wi-Fiメッシュの主流はQualcomm「Wi-Fi SON」へ、「IEEE 802.11s」に準拠せず【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第6回)続々登場するQualcomm「Wi-Fi SON」採用製品は相互非互換、Wi-Fi Allianceは「EasyMesh」を発表【ネット新技術】 - INTERNET Watch
- 2017年度のベスト5wifiメッシュネットワークシステムに関してお読みください
- 最高のメッシュWi-Fiルーター 2018版
- メッシュ ネットワークとは - Google Wifi ヘルプ
- Google Wifi を使用したメッシュ ネットワークの仕組み - Google ストア
- Google Wifi vs. deco M5 メッシュ対応Wi-Fiルーター徹底比較 (1/6) - ITmedia PC USER
- ASUSのメッシュルーター「Lyra mini」で自宅Wi-Fi環境が改善するかテスト:旅人目線のデジタルレポ 中山智 - Engadget 日本版
- 【メッシュWIFIシステム】Google WiFiと中継機やルーターとの違いを比較。おすすめ機種も。 | モノログ.fun
- メッシュWi-Fiの基本的な仕組みと特徴を理解しよう|MacFan
- 「メッシュWi-Fi」で家中どこでも快適Wi-Fi環境を実現
- IEEE802.11sメッシュのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
- IEEE802.11sメッシュのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
ケータイ Watch
- 第880回:Wi-Fi CERTIFIED Vantage とは - ケータイ Watch
- 第881回:Wi-Fi 4/5/6 とは - ケータイ Watch
- クアルコム、ビジネス向けパソコンに高性能なWi-Fi環境を提供する「FastConnect」シリーズをアピール - ケータイ Watch
- 総務省が「6GHz帯無線LAN」関連の制度を改正、「Wi-Fi 6E」が利用可能に - ケータイ Watch
- Wi-Fi 6Eルーター「Aterm WX11000T12/WX7800T8」が9月15日発売、6GHz帯で理論値最大4804Mbps - ケータイ Watch
INTERNET Watch
- Wi-Fiルーターのサポート期間っていつまで? 国内メーカー4社に聞いてみた - INTERNET Watch
- 無線LANの5.2GHz帯(W52)、屋外利用を可能に、電波法施行規則を改正へ - INTERNET Watch
- 「Wi-Fiの基本」から「Wi-Fiトラブル解消テクニック」まで、Q&A形式で解説!【“Wi-Fiの困った”を解決:連載記事まとめ】 - INTERNET Watch
- 「Wi-Fi CERTIFIED Location」に残された課題と、空間情報を把握する規格「Wi-Fi Sensing」の広がり【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第23回)Wi-Fiを利用してVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第24回)Wi-Fi子機同士を直接接続する「Wi-Fi Direct」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第25回)高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第26回)Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第27回)公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」、11ac+PassPointから拡充へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第28回)「Wi-Fi CERTIFIED Agile Multiband」、ネットワーク内の移動に伴うローミングなどの対応をまとめて規定【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第29回)ESSIDの異なるWi-Fiへの接続を高速化する「Wi-Fi CERTIFIED Optimized Connectivity」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(番外編1)11acから11axへの移行は2019年末から2020年初頭~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(番外編2)11axはCBRSとあわせて伸びる分野、その先には5Gも~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
- Wi-Fiトラブルの解決に便利! Windowsの隠れ便利機能「Wlan Report」を活用しよう【イニシャルB】 - INTERNET Watch
- Wi-Fiが瞬間的に切れることがある【“Wi-Fiの困った”を解決:トラブル編 第1回】 - INTERNET Watch
- Wi-Fiでの通信がいつも不安定……【“Wi-Fiの困った”を解決:トラブル編 第2回】 - INTERNET Watch
- Wi-Fiの電波強度を調べたい【“Wi-Fiの困った”を解決:トラブル編 第13回】 - INTERNET Watch
- インターネットの通信速度を調べたい【“Wi-Fiの困った”を解決:トラブル編 第14回】 - INTERNET Watch
- Windowsの「PC TV Plus」でバッファロー版「nasne」を使う【自宅Wi-Fiの“わからない”をスッキリ!】 - INTERNET Watch
- Wi-FiルーターやNASの省電力機能の効果は? 電力不足でも常時オンがオススメ?【イニシャルB】 - INTERNET Watch
- Windowsにある、普通は変えないし知らなくても困らないWi-Fiアダプターの詳細設定【イニシャルB】 - INTERNET Watch
PC Watch
- アイ・オー、4,000円を切る一人暮らし向けの無線ルーター - PC Watch
- アイ・オー、税別5,500円のIEEE 802.11acルーター - PC Watch
- Wi-Fi Alliance、低消費電力で長距離通信できる「HaLow」 - PC Watch
- 【井上繁樹の最新通信機器事情】Wi-Fiルーターの置き場所で速度は変わる?検証してみた - PC Watch
- 【特集】「Wi-Fi中継機」は本当に効果があるのか?戸建てとマンションで電波の届き具合を検証。中継機が速度低下を招くことも…… - PC Watch
GIGAZINE
- Wi-Fiのパスフレーズを「パケットを食べる」ことで解析する電子ペットキット「Hash Monster」 - GIGAZINE
- 約15年前の「無線LANルーター」が今でも販売され続けている理由とは? - GIGAZINE
- 5G時代の動画配信サービスを改善するためBitTorrentとWi-Fiダイレクトを用いた仕組みが考案される - GIGAZINE
Wireless・のおと
- KRACKのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- WoWのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
脆弱性
FragAttacks
- FadisさんはTwitterを使っています 「FragAttacks: 同一のWiFiネットワーク内にいる攻撃者が対象とアクセスポイントの間が暗号化されていても対象に平文のパケットを食べさせる事が出来る脆弱性。WiFiの仕様上の問題と多くの機器で見られる実装の問題の合わせ技で、WPA3を含む全ての暗号化を乗り越えられる https://t.co/u5ACPdHR6k」 / Twitter
- FragAttacks: New Security Vulnerabilities Affecting WiFi Devices, 12 CVEs Issued - Phoronix
- FadisさんはTwitterを使っています 「今日のWiFiは性能向上のために小さいパケットを束ねて送るframe aggregationを備えているが、束ねているかどうかを示すフラグは完全性の対象になっておらず攻撃者が書き換え放題で、これにいろんな状況で平文パケットを機器が受け取ってしまうバグが組み合わさって攻撃者がパケットを挟めるようになる」 / Twitter
- FadisさんはTwitterを使っています 「平文でやりとりするしかないハンドシェイクにいきなりframe aggregationでデータのパケットをくっつけて送るとデータが平文でも食べちゃう機器が結構あるの、面白い」 / Twitter
- 事実上ほぼ全てのWi-Fiデバイスに内在する脆弱性「FragAttacks」が公開される、ユーザー名やパスワードの流出、PCの乗っ取りも可能 - GIGAZINE
- FadisさんはTwitterを使っています 「FragAttacks、攻撃の足掛かりになってるのがWiFiの仕様自体の問題だから、WiFi全部ダメだー!みたいに言われてるのが散見されるけど、これだけだと暗号化されたパケットを捏造できないと攻撃できないので、平文食べちゃうWiFiデバイスの方が何とかなったらとりあえず脅威ではなくなりそう」 / Twitter
- FadisさんはTwitterを使っています 「雑なIoT機器もWiFi喋ってる時代にそれをやるのが結構大変な話ってのはあるだろうけど」 / Twitter
- Wi-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に - PC Watch
- iPhoneやGalaxyなど10億を超えるWi-Fi端末に通信を傍受される脆弱性「Kr00k」が存在すると判明 - GIGAZINE
- スマホ・PCなどほぼすべてのWi-Fi機器に影響があるWPA2自体の脆弱性「KRACK」とは、そして対策は? - GIGAZINE
- mjg59 | Wifi deauthentication attacks and home security
- 数十億のデバイスに影響を与えるWi-Fチップの深刻な脆弱性が発見 | TECH+
- 無線LANルーター|MZK-MF300HP2|PLANEX
- WN-AX1167GR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
- WN-DAX3000GR/E | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
- TL-WPA4220KIT | 300Mbps AV600 PLC Wi-Fiエクステンダーキット | TP-Link Japan
- 802.11ac 対応のインテル®...
- ランダム ハードウェア アドレスを使う理由と方法
- わかめ@毎日猫がいるさんはTwitterを使っています: 「Pixel 4になってからなぜか会社のシステムにMACアドレス登録してもWi-Fi打刻できなくなってて ??? ってなってたんだけど、MACアドレスをAPごとにランダマイズする機能がAndroid 10からデフォルトオンに…! https://t.co/Fxtih3NiZn」 / Twitter
- Privacy: MAC Randomization | Android Open Source Project
- わかめ@毎日猫がいるさんはTwitterを使っています: 「ていうかMACアドレスがソフトウェア的にランダムに変わるのってすげーな。いいのか?(プライバシー保護的にはOKなんだろうけど)」 / Twitter
- そな太@Swift始めましたさんはTwitterを使っています: 「@vvakame MACアドレスはブロードキャストが届く範囲でユニークであれば良いので問題ないです(ブロードキャストドメインを超えて利用されることはないため) 仮想環境のMACアドレスも本物ではなかったりしますよね」 / Twitter
- わかめ@毎日猫がいるさんはTwitterを使っています: 「@sonatard たしかに。なるほどなぁ。」 / Twitter
- FadisさんはTwitterを使っています 「物理的に何かを所有していることを利用者が本物であると考える根拠としてWi-Fiの利用者を制限したい場合、EAP SIM認証というのがあってな」 / Twitter
- Virtual WiFiとSoftAP - Google 検索
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無線アクセスポイント(AP)で 2.4GHz「デュアルチャネル機能」を有効にすると、古め2.4GHz 11n対応機器から全てのAPが見えなくなる現象発生…Atermのヘルプにも出ていた。 https://t.co/pG1gCpAFyx」 / Twitter
- デュアルチャネル|機能詳細ガイド
- IEEE 802.11ahの細かいはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
Bluetooth
その他
- 成熟Bluetoothチップ市場に吹く新風 (1/4) - EE Times Japan
- 渋川よしきさんのツイート: "Bluetoothを青歯って書く人いるけど、中国語の藍牙のほうが中二病感あってカッコイイと思う。簡体字だと蓝牙。ピンインだとlanyaで変換できます。"
- Anker Soundsync A3341 - .mjtの日記復帰計画
- (1)「マルチペアリング」や「マルチポイント」で手軽になったBluetooth | 日経 xTECH(クロステック)
- 【小寺・西田の「金曜ランチビュッフェ」】AirPodsから考えるBluetoothの「切り換え」問題
- AndroidスマホのBluetoothに重大な脆弱性、攻撃者が任意のコードを実行可 - Engadget 日本版
- Google、Bluetoothデバイスを初回から自動接続できるFast Pairの詳細を公開 - PC Watch
- 【山田祥平のRe:config.sys】マルチポイントとマルチペアリングがBluetoothのめんどうくささを帳消しに - PC Watch
- 2020年10月20日 Linux 5.9.1がリリース,Bluetoothの脆弱性を突いた「BleedingTooth」に対応:Linux Daily Topics|gihyo.jp … 技術評論社
- 第681回 BluetoothヘッドセットでHD Voiceを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 多数のBluetooth製品に影響する脆弱性「BrakTooth」の概念実証ツールが公開 | TECH+
- メガネとBluetooth Low Energyでお喋りする - Speaker Deck
- ウチューじん・ささきさんはTwitterを使っています: 「ひょっとして2.4GHz帯のWi-FiとBluetoothが競合している?11g以後のWi-Fiは1チャネル20MHzを独占するOFDMなので、312μ秒毎で79MHz幅を飛び回るFHSSのBluetoothとは相性が悪い。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています: 「Bluetooth 2.1以後で、Wi-Fiがガメてる帯域を避けて使うAFH仕様が追加されて対策されているんだけど、常に効く保証は無い。Wi-Fi局がch=1,6,11に並んでいるとほぼ全域で衝突してしまう。」 / Twitter
- 【やじうまミニレビュー】在宅ワーク用にゲーミングデスクトップにWi-Fi+Bluetoothアダプタを後付けした4つの理由 - PC Watch
- Linux で Bluetooth ヘッドセットの電池残量を調べる方法 | IIJ Engineers Blog
MAC address randomization
- Kazuho OkuさんはTwitterを使っています: 「MAC address randomization 自体は確立された技術だと思うから可能な気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Wifiは62bitのローカルアドレス空間からランダムに選択? bluetoothも同様なんだろうか」 / Twitter
- pujianto.eth0さんはTwitterを使っています: 「@kazuho My Samsung tablet got a new Wifi MAC address after doing hard-reset」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています: 「BluetoothにはRandom Static Address, Resolvable Random Private Address, Non-Resolvable Random Private Addressの3種類があるのです。 https://t.co/RYwwFRcsYA」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@uchujin17 ありがとうございます!!」 / Twitter
- Bluetooth Addresses & Privacy in Bluetooth Low Energy - Novel Bits
- Kazuho OkuさんはTwitterを使っています: 「Bluetooth の Random Static Address、46bit空間からランダムにアドレスを生成するのだが、 * デバイス出荷時もしくは起動時にアドレス生成(わかる) * ベンダーIDを使うPublic Addressと違って利用料がかからないのが人気(爆笑) https://t.co/wh2fqU09t1」 / Twitter
Sniffer
- 「Bluetooth Low Energy BLE 4.0 nRF51822」に該当する海外通販 - セカイモン
- 2269 Adafruit Industries LLC | RF/IF and RFID | DigiKey
- DSAS開発者の部屋:技適マークつき BLE パケットスニファを入手する
- DSAS開発者の部屋:BLE デバイス間の通信内容をパケットレベルで読み解いてみる
ケータイ Watch
- 第660回:iBeaconとは - ケータイ Watch Watch
- 第679回:ポータブルSIM とは - ケータイ Watch Watch
- 第718回:Eddystone とは - ケータイ Watch Watch
- 第720回:ジオフェンシング とは - ケータイ Watch Watch
- 第832回:完全ワイヤレスステレオ(TWS) とは - ケータイ Watch
- 第859回:eMBB、URLLC、mMTC とは - ケータイ Watch
- Bluetooth SIG、BLEを6GHzに拡張へ - ケータイ Watch
GIGAZINE
- 低電力Bluetoothチップの多くに存在するリモートアクセスを可能にする脆弱性「BleedingBit」の存在が明らかに - GIGAZINE
- Bluetoothデバイスの接続に潜む新たな脆弱性を用いたなりすまし攻撃「BIAS」が発見される - GIGAZINE
- Bluetoothデバイスの認証キーを攻撃者が上書きできる脆弱性「BLURtooth」が発見される - GIGAZINE
- スマホやPCなど無数のBluetoothデバイスが乗っ取られてしまう脆弱性「BLESA」が発見される - GIGAZINE
- 何十億台のスマートフォンに搭載されるWi-FiチップやBluetoothチップをとっかかりにしてパスワードやデータを盗み出す攻撃手法が開発される - GIGAZINE
- Bluetoothを利用して個人を追跡できることが初めて立証される - GIGAZINE
FIDO
- ユーザーは改良版への交換を。GoogleがBluetooth版Titanセキュリティキーをリコール - Engadget 日本版
- Google Online Security Blog: Advisory: Security Issue with Bluetooth Low Energy (BLE) Titan Security Keys
- パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る: Tender Surrender
- GoogleのTitanセキュリティキーがNFCを広くサポートへ、Bluetooth対応は廃止 - GIGAZINE
Audio
LE Audio
- ASCII.jp:Bluetooth「LE Audio」の技術的な詳細は? ソニー講演から探る
- クアルコム、次世代規格「Bluetooth LE Audio」に対応したミドルクラスSoC「QCC305x」 - PHILE WEB
- 【本田雅一のAVTrends】次世代Bluetooth音声“LE Audio”は、ワイヤレスイヤフォンのなにを変えるか? - AV Watch
- Bluetooth SIG、新音声規格「LE Audio」のコーデック仕様書を公開 - ITmedia PC USER
- ASCII.jp:混沌としたBluetoothの高音質コーデック、新標準LE Audio/LC3の立ち位置は? (1/2)
- 「Bluetooth LE Audio」に対応したコーデックを提供開始:組み込み開発ニュース - MONOist
- 次世代Bluetooth「LE Audio」は高音質LC3採用、ワイヤレスでシェアも - AV Watch
- Bluetoothの新音声規格「LE Audio」、新コーデック「LC3」採用やマルチストリーム・ブロードキャストに対応 - ケータイ Watch
- Bluetooth SIG、ブロードキャストにも対応する「LEオーディオ」を発表 - ケータイ Watch
- Bluetoothの次世代音声規格「Bluetooth LE Audio」が発表される、低電力で高品質ながら複数機器での再生も可能に - GIGAZINE
- LE オーディオ |ブルートゥース®テクノロジーウェブサイト
- Bluetooth SIG Unveils LE Audio, the Next Generation of Bluetooth Audio – Bluetooth® Technology Website
- Bluetooth SIG、音質が抜本的に改善したLE Audio用新コーデック「LC3」 - PC Watch
- LEオーディオの仕様|Bluetooth®テクノロジーウェブサイト
- Low Complexity Communication Codec - LC3_Specification_v1.0.pdf
- とみながたけひろさんはTwitterを使っています 「そういえばBluetoothのLC3コーデック仕様書が公開されたのでhttps://t.co/SWndAk9WSM (PDF) つらつらと見ているんだが、リサンプリング検出器があるのが面白かった。これはVoice系の8kHzサンプリングされた音声を48kHzに変換したんだな、てのを認識したときに特別扱いするっていう」 / Twitter
- とみながたけひろさんはTwitterを使っています 「あとはまあウィンドウ長を時間固定にするとか、プリエコー対策でもウィンドウサイズ変えないとか、エントロピーコーディングはVQと算術符号とか、なるほど計算量減らしつつ効率上げるならこのへんかー、今時だなーという感じ」 / Twitter
- とみながたけひろさんはTwitterを使っています 「直交変換の窓函数が変態形状である。これはvorbisからあったしそれほど最新ではないのかもだけど、あんまり他では見た事ない気もする」 / Twitter
- Masami HIRATAさんはTwitterを使っています 「@takehiro_t @yohhoy それって、モノラル音声のストリームを 6 本束ねて 5.1ch みたいな用途を想定していて、LFE に特化しているツールが用意されてるみたいな感じなんですかね?」 / Twitter
- 次世代Bluetooth「LEオーディオ」の解説書を無償配布 - AV Watch
- Bluetooth® LEオーディオのご紹介|Bluetooth® Technology Website
- 高音質&低遅延なBluetooth「LEオーディオ」まもなく登場? ソニーが技術解説 - AV Watch
- 【藤本健のDigital Audio Laboratory】次世代Bluetooth「LE Audio」で何が変わる? ソニーキーマンに聞いた-AV Watch
- Bluetooth「LE Audio」仕様完成。対応製品は数カ月で登場へ - AV Watch
- 新コーデック採用で低電力/高音質となった「LE Audio」の仕様が確定 - PC Watch
- Bluetooth LE オーディオとは何か?どのような変化がもたらされるのか? | TEXAL
- Bluetoothのバージョン「5.2」とは何かご紹介! | Aprico
- ハイレゾ&超低遅延へ。ソニーが次世代のLEオーディオ解説、Bluetoothセミナー - AV Watch
遅延対策
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi @beepcap Android って動画の場合 SBC のでかい遅延に合わせて映像ずらしてくれるから気にならないんですよね。まぁ macOS もそうなんですけど。操作音みたいなやつは画面更新遅らせるわけに行かないから露骨にずれますね。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@hdk_2 @beepcap なんか動画だとリップシンクうまくやってくれるらしいですね。OS が対応してなくても VLC なんかはたいてい音声のオフセット設定とかできるし,まあなんとかなる印象」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi Android と macOS で試して、あぁー今時のオペレーティングシステムはこうなんだーいいじゃんって思って、それから Windows を触った時の絶望感...」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@hdk_2 Android も macOS も A2DP の接続コーデック確認とかもできるんですが Windows はそれすらも出来ない(とはいえ標準のソフトウェアスタックで aptX に対応したり進歩はしているのですが」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi まぁなんか、Bluetooth オーディオは闇なので、自宅では PC 同士を PulseAudio で飛ばすことにしました...」 / Twitter
- kanamonoさんのツイート: "左右独立したイヤフォンは音がずれることがないのかなと思っていたが、昨日ついにズレが発生した。電源切るまで直らなかった"
- kanamonoさんのツイート: "ズレは1秒未満でしたが、ズレると物凄く不快なので実用に堪えない感じになります… "
- 耳を塞がないイヤホンambieを一ヶ月でぶっ壊してしまった話 - にせねこメモ
- 【藤本健のDigital Audio Laboratory】iPhoneからBluetoothで聴くと音質はどう変わる? 波形で比較した-AV Watch
- 【藤本健のDigital Audio Laboratory】BluetoothのaptX音質をテストしたら、謎の結果が出てしまった-AV Watch
- 【藤本健のDigital Audio Laboratory】BluetoothのaptX音質を再び検証。SBCとの違いを波形で比べた-AV Watch
- 複数人で一度に聞けるBluetooth新機能「Auracast」 - AV Watch
- Logicool Bluetooth Audio Receiver for Wireless Streaming
- 【笠原一輝のユビキタス情報局】Microsoftのノイキャンヘッドフォン「Surface Headphones」をレビュー ~PC&スマホの同時に利用に便利。日本でもまもなく発売 - PC Watch
- 高音質なワイヤレス体験!24bit Bluetooth DUAL DAC搭載。バランス接続対応ワイレスレシーバー『EarStudio』 | 株式会社フリーウェイ
- SBC XQ - Google 検索
- Qualcommが高品質&低遅延の次世代ワイヤレスオーディオ技術「Snapdragon Sound」を発表 - GIGAZINE
- とみながたけひろさんはTwitterを使っています 「BTのaudio, あまりにも罠が多すぎて、電話が祖先の機材(スマートフォン)はともかく、CS対応考えると一般人向けゲーム機では対応しないのが正解!みたくなってるよな(XBOX1はBTそのものがない、PS4/5, Nintendo SwitchはBTあるけどAudio使えない、XBOX X|SはAudioも対応してる、だったかな…)」 / Twitter
- Qualcommが高音質コーデック「aptX Lossless」を発表、CD音質の音楽を無劣化でワイヤレス再生可能に - GIGAZINE
- Bluetoothで44.1kHz/16bitロスレス「aptX Lossless」 - AV Watch
- 【やじうまミニレビュー】骨伝導イヤホンはどれくらい音漏れする?「OpenRun Pro」で比較してみた - PC Watch
- 「ハイレゾワイヤレスロゴ」誕生。“無線でハイレゾ”の指標を規定 - AV Watch
- “Hi-Res AUDIO WIRELESS”ロゴ認証コーデックに、SCL6とLC3plus追加 - AV Watch
- MQA、Bluetoothでハイレゾ伝送する新コーデック「MQair」 - AV Watch
MIDI
- nRF51でBLE MIDIをアドバタイズする - Qiita
- BLE-MIDI : 藤本健の“DTMステーション”
- kshoji: Android用のBLE MIDIライブラリのご紹介
- kshoji/BLE-MIDI-for-Android: MIDI over Bluetooth LE driver for Android 4.3 or later
- Downloads | KORG BLE-MIDI Driver - Bluetooth MIDI Connection Guide E | KORG (USA)
- ble-midi - npm
- Bluetooth LE MIDI Specification
- Microsoft Word - rp52.doc
- Bluetooth LE MIDI Specification
- Midi over BLE
- MIDI 2.0、始動 今も使われる電子楽器規格が38年後のバージョンアップ - ITmedia NEWS
- MIDIが38年ぶりのバージョンアップでMIDI 2.0に。従来のMIDI 1.0との互換性を保ちつつ機能強化 | | 藤本健の "DTMステーション"
- 【藤本健のDigital Audio Laboratory】Bluetooth MIDIは本当に遅延が大きい? 測定して比べてみた-AV Watch
- Keigo ImaiさんはTwitterを使っています 「MIDIファイルの時間の表現がそんな感じでしたかね、デルタ・タイム 休符の長さは短いと64音符、長いとほぼ一曲丸ごとなので固定長では効率が悪かったという」 / Twitter
- トデス子'\さんはTwitterを使っています 「暗号みたいなリファレンスを読んでいる(7バイトのデータがMIDIに乗ると8バイトにエンコードされて各バイトの上位は0、最初のバイトは7バイトのMSBを並べたもの、だと言いたいのだと思われる…… 未確認) https://t.co/oQ0f0dRD2B」 / Twitter
- トデス子'\さんはTwitterを使っています 「さすがにrust+nanokontrol2というニッチはないやろと思ったら先人がおるやんけ https://t.co/PAahTI5VZ4」 / Twitter
- jonnybolton/korg-nanokontrol2: A rust API for the Korg nanoKONTROL2 device.
- 黒沢ダイスケ:4/24 M3出展:O-04aさんはTwitterを使っています: 「MIDIの打ち込みの基礎として、やらない方が良いことランキング1位は、音量の大小をベロシティでコントロールすること。(ベロシティによってサンプルが変化しない昔ながらのサンプラー音源を除いて) 演奏の強弱と音量の大小は別物として考える必要がある。」 / Twitter
マウス
- Bluetooth 4.0 レーザーマウス - M-BT13BLBK
- EX-G Bluetooth BlueLEDマウス - M-XG4BBBK
- 【PR】接続も充電もワイヤレスなCorsair製マウス「DARK CORE RGB SE」を試す。ケーブルに縛られないゲームライフはとことん快適だ - 4Gamer.net
- Corsair、Qi無線充電が可能な2.4GHz無線/BT/有線対応ゲーミングマウスなど2機種 - PC Watch
I/F
- BIOS 画面でもBluetooth LE な無線キーボードを使いたい | tech - 氾濫原
- Releases · cho45/hid2hcix
- HID API for Linux, Mac OS X, and Windows
- Bluetooth Ver.4.0+EDR/LE対応 小型USBアダプター|PLANEX
- Bluetooth(R) USBアダプター(Class2) - LBT-UAN05C2
- Nintendo Switchでワイヤレスイヤフォン/ヘッドフォンを使用可能にするドングルが発売 - GAME Watch
- Nintendo Switch™をワイヤレスで楽しもう!世界初、ワイヤレスヘッドホンを可能にするドングル『Genki』
- PiKVM - Open and inexpensive DIY IP-KVM on Raspberry Pi
au
- 仕様 (スペック) | Bluetooth(R) | au
- 仕様 (スペック) | Bluetooth(R) | au
- 機能説明 | Bluetooth(R) | au
Bluetooth 5
- 【ニュース・フラッシュ】ケイデンス、Bluetooth 5の検証IPを提供開始 - PC Watch
- 「Bluetooth 5」に対応したスマートフォンが認証の取得を開始 | ガジェット通信
- 新規格登場のBLE、非モバイルに浸透へ - 日経テクノロジーオンライン
- Bluetooth SIG責任者が今だから語る、Bluetooth 5仕様の真実 - TechTargetジャパン ネットワーク
- 速度2倍、到達距離4倍になったBluetooth 5 - PC Watch
- Bluetooth 5 通信距離「従来比4倍」の仕組み (1/4) - EDN Japan
- Bluetooth 5 対応スマートフォンをサムスンとアップルが製品化 (プレスリリース) - エキサイトニュース
- 新しいiPhoneの「Bluetooth 5.0」で何が変わる? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- 【解説】誤解していませんか?「Bluetooth 5対応」の真の意味とは - PHILE WEB
- Bluetooth 5でオーディオは進化するの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- 方向検知機能が追加された「Bluetooth 5.1」 ~位置測位もセンチメートル単位で可能に - PC Watch
- Core Spec Version 5.2の新機能について|Bluetooth®テクノロジーウェブサイト
- 「Bluetooth 5.2」、3つの新機能を理解する:注目される「アイソクロナスチャネル」など(1/2 ページ) - EDN Japan
- Bluetooth 5.2はどう進化した?バージョン5.1との違いと新しく追加された仕様を解説! | マクリン
- Bluetoothの『バージョン』とは?5.2の進化ポイント「オーディオ機能」などを解説|TIME&SPACE by KDDI
- 【1.0-5.2】Bluetoothバージョン別の特徴まとめ | BableTech
- 旭化成のBluetooth ICがBluetooth 5.3のロゴ認証取得。方向検知機能搭載 - PC Watch
Bluetooth mesh
- Bluetoothがメッシュネットワークをサポート ~数千デバイスの相互ネットワークを実現 - PC Watch
- 第817回:Bluetooth Meshネットワーク とは - ケータイ Watch
- 低エネルギー: メッシュ | Bluetooth Technology Website
- Low Energy: Mesh | Bluetooth Technology Website
- 数千ノードのメッシュネットワークを構築できる「Bluetooth mesh」 ~大規模デバイスネットワークの基礎を目指す - PC Watch
Bluetooth Low Energy
- はじめに | 基礎知識 | ROHM TECH WEB
- AndroidでBluetoothヘッドホンのバッテリー残量インジケーター表示のサポートが行われる見込み - GIGAZINE
- Shiki Okasakaさんのツイート: "Bluetooth SmartとBluetooth Smart Readyマークは2016年いっぱいで廃止されている、というのはどれくらい周知されているのだろう? https://t.co/vJFGi6WCBf https://t.co/ZhY3hOw3Z0"
- ネット環境不要で広域通信可能な「BLEルーター」、IoTデバイス開発のBraveridgeが提供 - INTERNET Watch
- Bluetooth LEにWindows PCやiOS/macOSなど対応デバイスを識別/追跡できる脆弱性 - PC Watch
- popets-2019-0036.pdf
- Appleデバイスの位置を第三者が確認できる抜け穴 - PC Watch
- Bluetooth Technology Alliance、免許不要な6GHz帯でBluetooth Low Energy接続アプリケーションを拡大 | TEXAL
- Bluetooth Technology Website
LTE
- LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
- PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
- ピクセラ、LTE対応USBドングル「PIX-MT100」がファームアップデート - CNET Japan
- 法人向けSIM・高速モバイル通信サービスのIIJモバイル | IIJ
- 520BU | 端末情報 | IIJモバイル サポートサイト
- 520BU | 端末情報 | サプライ | IIJモバイル サポートサイト
- AMP520 - SORACOM 認定デバイス
- M2Mに挑戦するAM Telecom
- 相互接続性試験(IOT) IOT完了済みメーカーブランド通信モジュール・製品 | ドコモビジネスオンライン | NTTドコモ
- modulelist.pdf
- 品質 4G LTE モジュール & 3G 変復調装置モジュール 製造元
- 第839回:PS-LTE とは - ケータイ Watch
- 第853回:EVS とは - ケータイ Watch
- Enhanced Voice Services - Wikipedia
- Enhanced Voice Services - Wikipedia
- スマホの通信規格「4G/LTE」「5G」でユーザーになりすまして通信に介入できる脆弱性が見つかる - GIGAZINE
- ピクセラ、LTE対応のUSBモデムを秋に発売 - PC Watch
- LTE対応 USBドングル(PIX-MT110) - 仕様 | 株式会社ピクセラ
- ピクセラモバイル新プランの評判は?PIX-MT110と共にレビュー!初期設定手順・既存プランからの改善点まとめ | minto.tech
5G
PC Watch
- 【笠原一輝のユビキタス情報局】MWC 18で見えてきた5Gを巡るIntelとQualcommの熱いつばぜり合い - PC Watch
- NOKIA、5G特許で端末1台につき3ユーロのライセンス料 - PC Watch
- 【やじうまPC Watch】豪政府、Huawei/ZTE両社を5Gネットワーク供給から排除 - PC Watch
- 【イベントレポート】FibocomがIntel製5GのM.2モジュールを年末までに出荷 ~次世代Xeon Dの開発コードネームはHewitt Lake - PC Watch
- 【山田祥平のRe:config.sys】5Gネットワーク始動、その万感の想い - PC Watch
- AppleとQualcomm和解で、Intelがスマホ向け5Gモデムから撤退 - PC Watch
- Intelが5Gモデム搭載ノートPCの実現に向けMediaTekと協業 - PC Watch
- MediaTek、Intel PC用の5Gモデム「T700」 - PC Watch
- MediaTek、同社初のミリ波対応SoC「Dimensity 1050」 - PC Watch
ケータイ Watch
- 第942回:VoNRとは - ケータイ Watch
- 5Gの新規格「NR-Light」って何? クアルコムの“中の人”が解説 - ケータイ Watch
- MediaTek、低軌道衛星から5Gスマホへのデータ転送デモに成功、仮想環境で - ケータイ Watch
- JTOWER、みなとみらい21地区で5Gインフラ整備へ - ケータイ Watch
- 信号機に5G基地局、JTOWERやNECなどが交通インフラDXのコンソーシアム設立 - ケータイ Watch
- ドコモ、スマホ向け「5G SA」24日開始、当面は追加料金なし - ケータイ Watch
- 報道発表資料 : (お知らせ)5G標準仕様策定が完了 | お知らせ | NTTドコモ
- トランプ大統領、米連邦政府機関でのZTEおよびHuawei製品使用禁止令に署名 - ITmedia NEWS
- ドコモの3Gは2020年代半ばに終了へ 5Gで2023年までに1兆円を投資 - ITmedia Mobile
- Rockridgeさんのツイート: "5Gについて、「(TCP輻輳制御方式として)CUBICの方がBBRよりも一般には高速で通信可能」「HTTPはTCPセッション数を増やすと速くなる」「QUICは帯域を限界まで使える可能性があるが不明な挙動も」。 / “HTTP a…” https://t.co/4W2uBcH5Rh"
- いろいろ世界初。MediaTeckの5G対応チップはQualcommの良きライバルになりそう | ギズモード・ジャパン
- 中国が「Huaweiと5G契約しないと貿易協定を締結しない」と外国の首脳を脅迫していたと判明 - GIGAZINE
- 次世代通信「5G」に通話の傍受や位置情報の特定が可能になる脆弱性が発覚 - GIGAZINE
- 5G携帯のはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
- 5G携帯のはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
- 5G携帯のはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
- FlexRAN SDK 詳解 ~ 5G NR - VA Linux エンジニアブログ
- ドコモ、スマホで「5G SA」開始。最大4.9Gbpsで上りも1Gbps超え - Impress Watch
- ドコモ、“真の5G”こと「5G SA」を24日から提供開始 ahamoも対象 - ITmedia NEWS
- 5Gネットワークは心配するほどハッキングされやすい - GIGAZINE
6G
- NTTが「6G」向け通信技術を開発、5G超え「シャノン限界」まで高速化 | 日経 xTECH(クロステック)
- NTTドコモ、6Gの実証実験で複数ベンダーと協力 - PC Watch
ケータイ Watch
- 第604回:「ucode」 とは - ケータイ Watch Watch
- 第765回:デュアルスタンバイ とは - ケータイ Watch
- 第796回:デュアルアクティブ とは - ケータイ Watch
- 第816回:UDCとは - ケータイ Watch
- 第824回:プロビジョニングとは - ケータイ Watch
- 第826回:0AB~J番号 とは - ケータイ Watch
- 第845回:RCS(Rich Communication Services) とは - ケータイ Watch
- 第847回:iSIMとは - ケータイ Watch
- 第849回:マルチプロファイルSIMとは - ケータイ Watch
- 第856回:+メッセージ とは - ケータイ Watch
- 第868回:クラウドSIMとは - ケータイ Watch
- 電波法改正案、電波利用料を大幅見直し - ケータイ Watch
- 電波法改正案、技適なしでも試験利用は可能など一部緩和 - ケータイ Watch
- komat/こまっとさんはTwitterを使っています: 「3Gまでは対応バンドの制限はハードウェアのコストを理由にできるが、4G以降だとハードウェアは同じでベースバンドファームウェアの違いでしかないからな。メーカーの意見も聞くべきかと思う https://t.co/hRdp10a2VE」 / Twitter
- スマホの対応周波数は誰が決めるのか、総務省会合での各キャリアの説明は - ケータイ Watch
- Bluetooth、免許不要な6GHz帯を利用へ - PC Watch
- Wi-Fiに6GHz帯が追加、新規格「Wi-Fi 6E」をWi-Fi Allianceが発表 - INTERNET Watch
- LifeStyle:802.11bとBluetoothの干渉を“目で見る”
TPM・Microsoft Pluton
GIGAZINE
- MicrosoftがWindows搭載PCを保護する新型セキュリティチップ「Microsoft Pluton」を発表 - GIGAZINE
- Windows 11に必須な「TPM」で保護されたPCから情報を盗み出す手口をセキュリティ企業が解説 - GIGAZINE
- MicrosoftがWindows 11で必須にしている「TPM」とは?なぜ必須なのか? - GIGAZINE
- 一部PCは「TPM 2.0をサポートしていないのにWindows 11がインストールされている」と判明、中国やロシア向けの製品か - GIGAZINE
- PCを保護するモジュール「TPM」をハードウェア経由でハッキングしてデータにアクセスできるとの報告 - GIGAZINE
- AMD製CPUでfTPM機能を有効にしているとWindowsの性能が一時的に低下する可能性がある - GIGAZINE
- ThinkPad ZシリーズはデフォルトでWindowsしか起動できずLinuxを起動できないという報告 - GIGAZINE
- Microsoft&AMD共同開発の新チップ「Microsoft Pluton」に関する懸念とは? - GIGAZINE
PC Watch
- 【特集】Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介 - PC Watch
- Microsoft、TPMに代わるCPU内蔵型セキュリティチップ「Microsoft Pluton」 ~AMD、Intel、Qualcommと共同開発 - PC Watch
- 【Windows 11便利テク】実験!Windows 11でTPMをクリアしたらサインインできなくなるのか? - PC Watch
- ハイブリッドワーク下のデバイス保護に向けWindows 11にセキュリティ新機能 - PC Watch
自作.com
- Windows 11のTPM要件はPCビルダーを驚かせたが、BIOSで有効にすることができる|自作.com
- Windows 11、"Special Purpose "システム向けにTPMの必要性を排除して出荷|自作.com
- Windows 11からの排除される:TPMの要求により多くのPCが除外される|自作.com
- だんぼーだよさんはTwitterを使っています 「みんな TPM なんか付いてないって言ってるけど、UEFI で有効にできる場合あるから確認してね。独立チップのイメージでいると思うけど、最近は Firmware TPM が Intel PTT / AMD GuardMI で使えるよ。マザーボードの TPM 用ピンヘッダは埋めなくていいです。BTO で選択肢なくても設定で有効化できます。 https://t.co/1VsuaXJoFY」 / Twitter
- 🎒♨️ 👀(6★)さんはTwitterを使っています 「Intel PTTを有効にすると通るな、ほんとは対ダンパ性とかでファームウェアで鍵保存しちゃいけない気がするけど https://t.co/k0eTe8en6T」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「まあ Intel PTT も論理ロジックだけで TPM 実装してるわけでもないんだろうから、そういう意味では Intel も AMD も独立したサブプロセッサでファームウェア的に TPM 機能を実装してる、という温度感ではだいたい同等なのかな。」 / Twitter
- TPMのファームウェアバージョンを確認する方法 - FMWORLD(法人):富士通
- microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.
- 次のPC買い換えはPluton搭載CPUが鍵か - 阿久津良和のWindows Weekly Report | マイナビニュース
- daem0nc0reさんはTwitterを使っています 「ちょっと前にWindows 11で話題になったTPM 2.0ですが、数少ないTPM 2.0の専門書のPDFデータとEPUBデータをApressが公式に公開してくれているので、気になる人はダウンロードして熟読するといいですよ https://t.co/adAGiZrrJA」 / Twitter
- A Practical Guide to TPM 2.0 | SpringerLink
- YurikaさんはTwitterを使っています 「Windows11 セキュリティの話のブログ Plutonが表舞台にどんどん出てきてます https://t.co/jS8vBPU90H」 / Twitter
- Windows 11 offers chip to cloud protection to meet the new security challenges of hybrid work - Microsoft Security Blog
- suzakiさんはTwitterを使っています 「メモ。 MicrosoftセキュリティチップPlutonが2022からPCに付くアナウンス。 Pluton付いたら買うぞ! Windows 11 Security Book: Powerful security from chip to cloud https://t.co/B2o5SvFCOU The Microsoft Pluton security processor will ship with select new Windows PCs starting in 2022.」 / Twitter
- YurikaさんはTwitterを使っています 「Windows 11 Security Book https://t.co/k8TxJRnjAn」 / Twitter
- Windows 11 Security Book_01Oct2021.pdf
- MR201510_Overview_and_usage_examples_of_TPM_2.0_JPN.pdf
- 【自作PC】パソコンのCPU交換手順 | 趣味語り
- エヌユルさんはTwitterを使っています 「@tenpoku1000 TPM自体に物理アクセスされたら結局色々だめな気がします」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「TPMとBitLockerまわり、何をやってるかわかりやすくまとめた文書少ない気がする。 https://t.co/UyHZaL2sEi はブートプロセスの説明があってわかりやすかったけど、ログオンプロンプトで入力されるパスワード認証がTPMに絡むのか(オフライン攻撃可能なのか)みたいなところが書いてない」 / Twitter
- How Windows uses the TPM - Windows security | Microsoft Docs
- Kazuho OkuさんはTwitterを使っています 「preboot認証はTPMとの通信が発生しオフライン攻撃不可能なはずなのでWindowsのログオンプロンプトも当然そういう作りになってそうな気はする」 / Twitter
- [速報]マイクロソフト、Windows 11のセキュリティを強化。セキュリティチップ「Pluton」対応、クラウドのAIを利用する「Smart App Control」など発表 - Publickey
- AMD,ビジネスノートPC向けAPU「Ryzen PRO 6000 Mobile」を発表。Zen 3+世代CPUとRDNA 2世代統合型GPUに刷新
- Intel、第12世代CPUでMicrosoft Plutonを見送り | ソフトアンテナ
- R. ShioyaさんはTwitterを使っています: 「@norix_v 正確には,BIOS 更新したら TPM から別マシンだとみなされるようになった?みたいでビットロッカーの復号化ができなくなったんですよね(ログインパスワードがあればいいのかと思ってたら,別途キーがいるんですねあれ).もうしょうがないので,再インストールしてます.」 / Twitter
ディスプレイ
その他
- VESA、PCモニターの可変リフレッシュレート性能に標準規格 - AV Watch
- EDID(Extended Display Identification Data) - HDMI-NAVI.com
- VESA DDC - Google 検索
- DDC/CI - Google 検索
- サムスンが6月にLCDディスプレイの生産を終了するとの噂|自作.com
- ITmedia流液晶ディスプレイ講座III:HiDPIやRetinaを誤解してない?――4K時代のディスプレイ選びに欠かせない「画素密度」を理解する (1/4) - ITmedia PC USER
- ドットバイドットとは|dot by dot - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- 【解説】ディスプレイケーブルのコネクタについて - ELECOM WEB SITE!
- 最新ディスプレイ講座――HDMI、DislplayPortから先進のUSB Type-Cまで映像入力インタフェース徹底解説 | EIZO株式会社
- USB Type-Cケーブル1本で使える15.6型マルチタッチ対応モバイルモニター「400-LCD006」、サンワサプライが発売 - INTERNET Watch
- フルカラー電子ペーパー「E Ink Gallery 3」が量産開始、2023年に搭載製品が発売へ | TEXAL
- さようなら、PCのUHD BD再生!? 動作環境を改めて確認した - AV Watch
- カスタマーサポート - Ultra HD ブルーレイ ムービーの再生プラットフォームを構成する際に設定すべきことは | CyberLink
DisplayPort
- VESA、ノートPCなどでGPUの省電力効果を高められる「eDP 1.5」 - PC Watch
- 【ニュース・フラッシュ】サンワサプライ、DisplayPortからDVI/HDMI/ミニD-Sub15ピンへの変換アダプタ - PC Watch
- VESA、超高ビットレート転送に対応するDisplayPortケーブルの認証プログラムを開始 - PC Watch
- 16K/60p HDR対応の「DisplayPort 2.0」'20年認証開始。DisplayHDRは有機EL/microLEDにも - AV Watch
- 超絶わかりにくいDisplayPortのバージョンを見分けるために通信帯域幅がケーブルに貼られることに - GIGAZINE
- VESAがDisplayPort2.0UHBR認定を発表|自作.com
- DisplayPort 2.1の仕様が公開される、既存のDisplayPort 2.0ケーブルはすべてDisplayPort 2.1に対応 - GIGAZINE
- VESAがDisplayPort 2.1を発表、すべてのDisplayPort 2.0製品が2.1対応に | TEXAL
- DisplayPort2.1発表。USB-C/USB4でDP信号を効率伝送 - AV Watch
- 「DisplayPort 2.1」が登場。USB4での使用に配慮、2.0への後方互換性も | マイナビニュース
- VESA、USB4との整合性を高めた「DisplayPort 2.1」。既存の2.0認定機器はそのまま2.1対応に - PC Watch
HDMI
HDMI CEC
- ビエラリンク - Wikipedia
- ブラビアリンク - Wikipedia
- Nintendo Switch発売、ソフト更新でHDMI CEC対応。FB/Twitter投稿も - AV Watch
- デジモノ家電を読み解くキーワード:「HDMI CEC」――AV機器メーカーによる囲い込みポイント - ITmedia LifeStyle
- HDMI CECとはテレビやレコーダーなどの機器間で制御信号をやり取りするリンク機能 | ホームシアターナビ
GIGAZINE
- 「HDMI 2.0」から「HDMI 2.1」になると一体何が変わるのか? - GIGAZINE
- 「HDMI 2.0」で一体何が新しくなって大幅に強化されるのかまとめ - GIGAZINE
- 取り回ししやすい「HDMI 2.1」対応ケーブルはどれなのか一斉比較レビュー - GIGAZINE
- HDMI 2.0にしか対応していないモニターを「HDMI 2.1対応」と宣伝するのは虚偽なのか? - GIGAZINE
- HDMI業界の閉鎖体質がオープンソースのGPUドライバーに悪影響を及ぼしているとの指摘 - GIGAZINE
- HDMIの新しい規格ライセンス「HDMI 2.1a」が発表、新しく追加される機能「SBTM」とは? - GIGAZINE
PC Watch
- HDRフォーマットの伝送に対応したHDMI 2.0aが発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GPUの真の性能を活かすHDRに、2016年からRadeonが対応へ - PC Watch
- HDMI Licensing、2.0規格で定められた新機能を解説 - PC Watch
- HDMI Forum、次期HDMI規格2.0を発表 ~4K@50/60、32オーディオチャンネルなどに対応 - PC Watch
- WQXGA/48bitカラーをサポートした「HDMI 1.3」説明会
- 10Kまで対応する「HDMI 2.1」が公開。ゲーム向け同期機能など搭載 - PC Watch
- HDMI規格策定から20年。今も続く技術の進化と厳格なライセンスで消費者の体験を向上 - PC Watch
AV Watch
- 4K120p入力で解像度半分になっちゃう問題。TVメーカー5社に聞いた - AV Watch
- ゲーム機がTVに合わせて映像調整「HDMI2.1a」て何だ? パナソニックに聞いた - AV Watch
- PS5でHDMI2.1普及に期待。“4K120A”って何? HDMI最新動向 - AV Watch
- 【西川善司の大画面☆マニア】プレステ5対応テレビの正しい選び方。キーワードは「4K/120p」「VRR」-AV Watch
- 【西川善司の大画面☆マニア】PS5/Xboxにマッチする、HDMI2.1対応ゲーミングモニターの選び方-AV Watch
- HDMI 2.1リリース。最高10Kサポート、HDRの非圧縮8Kや4K/120Hz伝送も - AV Watch
- 【西川善司の大画面☆マニア】HDMI 2.1とは何か。8K/60Hzや動的HDRだけでない、次世代ディスプレイにもたらす変化-AV Watch
- 【西川善司の大画面☆マニア】8Kだけじゃない! ブラックアウト回避やeARC、あなたの知らないHDMI 2.1の世界-AV Watch
- 4K/8K映像対応で“曲げても踏んでもOK”なHDMI光ケーブル。56Gbps伝送も - AV Watch
- HDMI2.1a対応ディスプレイは'23年発売。“正規品判別”がウェブでも可能に - AV Watch
- HDMI - Wikipedia
- <CES>新規格「HDMI 2.1」を策定メンバーに聞く。 “48Gbps”の意味とは? いまのケーブルは使える? - Phile-web
- [CES 2017]「HDMI 2.1」が規格化。“HDMI版Adaptive Sync”な「Game Mode VRR」や8K/60Hz,4K/120Hz表示などが目玉に - 4Gamer.net
- 「HDMI 2.1」が発表 - 8K/60Hzに対応、新たにゲームモードも | マイナビニュース
- HDMI ケーブルのイーサネット対応と非対応の違い
- ARC対応ってなに?
- Fadisさんのツイート: "HDMIにはロゴを表示すると最終製品のロイヤリティが下がる、という決まりがあって今日多くのHDMI対応製品がロゴを表示してるわけだけど、スーパーファミコンにHDMIって書かれてるのじわじわくる https://t.co/vlqJdNajIN"
- 対応テレビの準備も完了? 「HDMI 2.1」最新動向をHDMI Licensing CTOに聞く - PHILE WEB
- HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査 - .mjtの日記復帰計画
- SD-HDSPRL【Kyo-ons SEPARATOR】
- Dolby Digital Live を手作りしたい実験 - Qiita
- FadisさんはTwitterを使っています 「HDMI 2.1は仕様をHDMI Adoptersのメンバー以外に公開することを認めておらず、オープンソースドライバを実装する事は間接的に仕様を公開していると判断される恐れがあることから、FreeSync等のHDMI 2.1で利用できる筈の機能をオープンソースドライバに実装できない問題の話 https://t.co/iF1NHthY9m」 / Twitter
- HDMI Forum Closing Public Specification Access Is Hurting Open-Source GPU Drivers - Phoronix
- FadisさんはTwitterを使っています 「特に現行のAMDGPUのLinuxドライバは全てオープンソースになっているから、Linux+AMDGPUの組み合わせではHDMI 2.1の機能は使えんので諦めてDisplayPortで繋いでください状態になっている、と」 / Twitter
- エンドツーエンドのHDMI2.1システムは、ホームエンターテインメントを簡素化|自作.com
- クリーンHDMI - Google 検索
マルチディスプレイ
- Z87-PRO:オンボード出力とグラフィックカード出力の同時利用(マルチディスプレイ)について
- マルチディスプレイのまとめスタイル修正: Intel IGP
- マルチモニター(マルチディスプレイ)を活用する【液晶モニタの基礎知識】
- マルチディスプレイの方法 パソコン初心者講座
- マザーボードでマルチディスプレイ パソコン初心者講座
- Windows TIPS:ノートPCでデュアルディスプレイの表示設定を変更する - @IT
- 業務効率が一気に上がる、実践!マルチディスプレイ - 余ったディスプレイをつなげばすぐにできる、マルチディスプレイの基本:ITpro
Adaptive-Sync/FreeSync
- GPUとディスプレイを自動同期する機能がDisplayPortに実装 ~テアリングを解消し、消費電力も削減 - PC Watch
- ゲームがよりなめらかに、FreeSyncで最高の描画品質を楽しむ - AKIBA PC Hotline!
- 西川善司の3DGE:AMD,HDR対応の「FreeSync 2」を発表 - 4Gamer.net
- NVidia、ついにAdaptive-Sync/FreeSyncに対応 | スラド ハードウェア
- NVIDIA,「G-SYNC Compatible Monitors」プログラムを開始。Adaptive-Sync対応ディスプレイ12製品でG-SYNCの利用を可能に - 4Gamer.net
- Announcing G-SYNC Compatible Monitors and BFGD Pre-Orders
- GeForce G-SYNC Monitors: Manufacturers & Specs
- AMD、FreeSync Premium ティアを発表、FreeSync 2 HDRをPremium Proにブランド変更 - 自作ユーザーが解説するゲーミングPCガイド
- VESA、ゲーミングディスプレイの可変リフレッシュレートをターゲットとしたAdaptiveSyncオープンパフォーマンス規格を発表 - 自作ユーザーが解説するゲーミングPCガイド
Sync on Green
- Sync on Green ‐ 通信用語の基礎知識
- 価格.com - NEC MultiSync LCD-P243W-BK [24.1インチ] 価格比較
- MultiSync LCD-P243W-BK : ディスプレイ | NEC
RGBW
- RGBWとは - IT用語辞典 Weblio辞書
- Sony Japan | ニュースリリース | デジタルカメラ向け新開発「RGBW方式」の3型VGA液晶モジュール“WhiteMagic™ ”(ホワイトマジック)※1を商品化
HDR
HDR10+
- HDR10+ License Program
- HDR新規格「HDR10+」対応製品がまもなく。パナやSamsung、ワーナーも対応 - AV Watch
- 【本田雅一のAVTrends】一見地味なHDR新規格「HDR10+」が、多くの消費者に魅力的な体験をもたらすかもしれない - AV Watch
- パナソニックとフォックスがSamsung提案のHDR方式「HDR10+」を推進へ - AV Watch
- SamsungとAmazon Video、HDRの拡張規格「HDR10+」発表。今年後半にコンテンツ配信 - AV Watch
- サムスンとAmazon Video、「HDR10」を拡張した新規格「HDR10+」を発表 - Phile-web
- <IFA>「HDR10+」とは何か、パナソニックがなぜ推進するのか。サムスンと手を組んだねらい - PHILE WEB
- Samsung、画質調整不要の「HDR10+ GAMING」サポート - AV Watch
DisplayHDR
- Vesa Certified DisplayHDR™
- VESA Defines New Standard to Help Speed PC Industry Adoption of High Dynamic Range Technology in Laptop and Desktop Monitor Displays | VESA
- VESA、DisplayHDR対応確認アプリをMicrosoft Storeで公開 - PC Watch
- VESAがHDR標準「DisplayHDR」策定 PCディスプレイの性能を底上げ - ITmedia NEWS
- VESA,HDR対応液晶ディスプレイの標準規格「DisplayHDR」を発表。対応製品は早ければ2018年に登場か - 4Gamer.net
- VESA、HDRに関する標準規格「DisplayHDR」を策定 ~輝度やコントラスト比などを厳密に規定 - PC Watch
- Samsungの49型ゲーミングディスプレイが、業界初のDisplayHDR 600認定 - PC Watch
- 日本初HDR 1000液晶モニタや4K放送チューナ、痛4K中継車も。「4K・8K機材展」 - AV Watch
- 【PR】1,000nitの高輝度とHDRでゲームはここまで変わる! PhilipsのDisplayHDR 1000対応液晶を西川善司氏が徹底解剖- PC Watch
- High-dynamic-range video - Wikipedia
- Rec. 2100 - Wikipedia
- Hybrid Log-Gamma - Wikipedia
- よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社
- UHDTV HDR,HLG & WCGを理解する by LightIllusionに関する製品情報|クリエイティブサポートカンパニー Edipit
- 4Kテレビ選びの重要ワードHDR=「HDR10」「Dolby Vision」「HLG」って何? - 価格.comマガジン
- 4K HDRとDolby Visionはどう違うのか? (1) CES 2016で見たホームエンターテインメントの進化 | マイナビニュース
- Dolby Vision方式のUltra HD Blu-rayが'17年発売。ワーナー、ユニバーサルなど - AV Watch
- いま注目の高画質化技術「HDR」とは何か? ドルビーの真野ディレクターに聞く - Phile-web
- HDR10とは? ゾーンとは? Blu-ray Copyはどうなる?「Ultra HD Blu-ray」の詳細を聞く(後編) (1/4) - Phile-web
- 【イベントレポート】NVIDIA、65型の4K/HDR/120Hz/G-SYNC対応となるBig Format Gaming Displaysを提唱 ~8コアCarmel CPU+512CUDAコアのVolta GPUとなるXavierも発表 - PC Watch
- ソニー、Microsoftらがゲーム向けにHDRガイドライン団体「HGiG」を発足 - PC Watch
- Razer PhoneがNetflixのHDR再生に対応 | ガジェット通信 GetNews
- Rec.2020とBT.2020の違いとは
- PCとモニターがHDRへ対応しているかの判別方法
- 【プレイバック2018】液晶テレビ“視野角問題”に終止符? HDR動向とこれから by 本田雅一-AV Watch
- SODA Noriyukiさんのツイート: "HDR は 何nits まで要求するかが大問題ですね… 1000nits のモニターっていうと PG27UQ と UP2718Q の2機種しか候補が残らないような気が…(正しい?)… "
- Fadisさんのツイート: "こっちで探した時もその辺しか見つかりませんでしたね… "
- FadisさんはTwitterを使っています: 「4K HDRで画面が暗くなる問題、以前は扱える色の範囲が狭すぎるからテレビ側で信号に厚化粧してたのが、広範囲の色を扱えるようになったからテレビは信号通りの色を出すようになったけど、撮影設備、放送設備その他の対応が出来てなくて狭い範囲の色がそのまま画面に反映されてるって話なんだよな」 / Twitter
- HDR Ecosystem Tracker update fall 2019
- ハガさんはTwitterを使っています: 「知らんかった・・・キャプチャすると絵がおかしくなるのでキャプチャするときだけ対象ウィンドウをHDRをオフにしてるサブディスプレイ側に持って行ってたけど、HDR/SDR明るさのバランスを0にしたら問題解消した!」 / Twitter
- Masaki KawaseさんはTwitterを使っています: 「ここでも説明されているようにこの設定って思わぬトラブルを招くことがあるし、意味をきちんと理解していないと不具合が生じた際に混乱して訳が分からなくなるしで、かなり問題が多い。 とは言え現状ではもはやスマートな解決方法も無さそう…。 https://t.co/mPIs4k8Vyp」 / Twitter
- Windows HDR (とキャプチャ問題について) の解説
- 【特集】サイバーパンク2077を買ったのでHDR環境にしたら、仕事で困った事態になった話 ~WindowsのクリップボードはHDR非対応。解決法は? - PC Watch
ClearMR
- ディスプレイが「どれほど動画がぼやけず鮮明に見えるのか」をわかりやすく示す新規格「ClearMR」をVESAが発表 - GIGAZINE
- VESA、ディスプレイのモーションブラーを評価する新規格 - AV Watch
- LGゲーミングモニタが「VESA ClearMR」認証を世界初取得 - AV Watch
4K・8K
- 「直下型LED部分駆動」で明るくキレイな画面を実現したソニー初のゲーミングモニター「INZONE M9」をPCに接続して使ってみた - GIGAZINE
- ソニーの4K解像度/リフレッシュレート最大144Hzの27インチゲーミングモニター「INZONE M9」が登場、外観はこんな感じ - GIGAZINE
- 今すぐやるべき「ディスプレイの設定」と「4K以上の高解像度ディスプレイ」に買い替たほうがいい理由 - GIGAZINE
- 4Kの基礎知識① RED社の4Kテクノロジーの変遷 | 4K入門 高精細映像の世界 | Shuffle by COMMERCIAL PHOTO
- 「8Kと4Kの違いってわかるものなの?」専門家に聞いてみた | ギズモード・ジャパン
- どうなる?次世代地デジ技術、23年度に4K方式確定も8Kは先送り | 日経クロステック(xTECH)
- 55NANO95JNA | テレビ | LGエレクトロニクス・ジャパン
- PlayStation 5に完全対応で4K・120fpsのゲームもバッチリ遊べるソニーのゲーミングモニター「INZONE M9」をPlayStation 5につなげてみたよレビュー - GIGAZINE
PC Watch
- LG、5,120×2,160ドット表示対応の39.7型液晶モニター - PC Watch
- HP、5,120×2,160ドット表示対応の39.7型湾曲液晶 - PC Watch
- 【山田祥平のRe:config.sys】上を下へと右往左往のモニター考 - PC Watch
- ASUS、デイジーチェーンで4台まで接続できる27型WQHD液晶 - PC Watch
- 【山田祥平のRe:config.sys】紙よりスクリーン~レスポンシブルなリッチドキュメントに向かって - PC Watch
- Samsung、量子ドットの34型ゲーミングモニター「Odyssey OLED G8」発表。最新の55型モニターやスマホも展示 - PC Watch
- シャープと東大、カドミウムを使わない量子ドットディスプレイを実現へ - PC Watch
- Dell、6K対応の31.5型モニター - PC Watch
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "有機EL「テレビ」は、白色発光+カラーフィルタ、主流なのね…RGB発光と思い込んでいた。 3色フィルタは効率1/3=消費電力が大きい理由の一つかな? (白色を含む4色フィルタというのもあるらしい)"
- SODA Noriyukiさんのツイート: "サイズが小さいものはRGB発光、大きいとRGB発光のものは実用化できてなくてすべてがLG電子の白色+カラーフィルタと、サイズによって完全に住み分けされてるっぽいですよね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "みたいですね。 有機ELなのにカラーフィルタって、やや騙された感がありました(笑)… "
- Makoto Kato ︎︎さんはTwitterを使っています: 「24インチ、27インチの4Kディスプレイが辛いって書いてある人は大概HiDPI使ってないので、そういう人がディスプレイとか文字のレンダラーの話を話してもまったく信用してない」 / Twitter
- きんぐザウルスさんはTwitterを使っています: 「@tss_ontap 多分、スケーリングのことですね。 近年高解像度ノートPCで液晶が小さいとWindowsがデフォルトでOnにしますね。(最近はUbuntuやCentOSも搭載されてます) しゃあないっすね(^◇^;)」 / Twitter
- きんぐザウルスさんはTwitterを使っています: 「@tss_ontap 気付けないと思いますね。。。 例えば、14インチ液晶でFHDがどのように見えるかを知ってる人ってなかなか少ないと思います。気づけるかどうかは、昔からパソコンを使ってその辺りを意識してる人だけかと。。。」 / Twitter
- kaz_nabeさんはTwitterを使っています: 「スペック上での売りを全面に出したいのはわかるが、もうそろそろ物理Pixel数と実際に出力されるPixel数(Actual Pixel数?)を併記しませんか?Userを混乱させる元です。 200Mpix :絶対出力されない、Physical 50Mpix: Binnningされて出力。これがActual 12.5Mpix: これもActual 実質50Mpix商品でしょ」 / Twitter
- モニターおよびモニター周辺機器 | Dell 日本
- 半導体/周辺機器 液晶ディスプレイ - PC Watch
- BCNランキング - BCN+R
- 60B4RAR6JP | モニター ThinkVision | 製品情報 | Business with Lenovo
- BenQ 23.8型アイケアディスプレイ GW2480 | BenQ Japan
プリンタ
ブラザー
- プリンター | ブラザー
- インクジェットプリンター - プリンター | ブラザー
- 【インクジェット/レーザー プリンター】(Windows)今まで印刷できていたのに、突然印刷できなくなった|ブラザー
- 使用済みトナーカートリッジ/ドラムユニット回収リサイクル|サポート情報|ブラザー
- HL-L2360DN | レーザープリンター・複合機 | ブラザー
- DCP-L2550DW | レーザープリンター・複合機 | ブラザー
- 消耗品・オプション | DCP-L2550DW | レーザープリンター・複合機 | ブラザー
- How to obtain Brother SNMP MIB information
- NetDiscover MIB/OID - BROTHER-MIB.mib
- MIBViewerProbes/BROTHER-MIB.txt at master · richb-intermapper/MIBViewerProbes
- BROTHER-MIB
- Free BROTHER-MIB SNMP MIB Download - Free MIB Download - Search MIBs - OiDViEW
- MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
- cv_bcld100_jpn_usr_led253047_a.pdf
- MFC-J939DN / MFC-J939DWN | 日本 | ブラザーサポート
- MFC-J939DN/DWN | インクジェットプリンター・複合機 | ブラザー
- 消耗品・オプション | MFC-J939DN/DWN | インクジェットプリンター・複合機 | ブラザー
窓の杜
- “Google クラウド プリント”が来年末で廃止 ~10年間ベータ版のまま終息 - 窓の杜
- Microsoft、印刷スプーラーのゼロデイ脆弱性に対処するためWindowsの既定動作を変更 - 窓の杜
- 「Windows 11」に新たなプリンター問題が3件 ~既知の問題は計6件に - 窓の杜
- Windowsの印刷機能に新たな問題 ~Windows 11にも影響 - 窓の杜
- 「Windows 11」に初めてのCパッチ ~AMD Ryzenや印刷、エクスプローラーの問題などが多数解決 - 窓の杜
- Windows 10/11にCパッチ ~IMEの利用中にIEが動作しなくなる問題やプリンターの接続問題を解決 - 窓の杜
- Windows 11に先行投入されたユニバーサルプリント機能がWindows 10へバックポート - 窓の杜
PC Watch
- Chromebookが複合機からの直接スキャンなどをサポート - PC Watch
- 印刷スプーラー脆弱性「PrintNightmare」対策に、ドライバインストール時に管理者権限必須に - PC Watch
- 【山田祥平のRe:config.sys】見えるeMarker - PC Watch
- Windows 11、USBでプリンタが認識されない不具合。ブラザーのプリンタで発生 - PC Watch
- Windows 11/10最新パッチ適用でプリントサーバーの接続に失敗する問題 - PC Watch
GIGAZINE
- ラベル作りに必要な機能をこれでもかというほど搭載し「ケーブル用ラベル」の作成法も秀逸なテプラの究極形 「『テプラ』 PRO SR-R980」レビュー - GIGAZINE
- エプソン製プリンターには「一定期間使用後に動作を停止するプログラム」が隠れており「修理する権利」に逆行しているという指摘 - GIGAZINE
- エプソンが持続可能性を理由にレーザープリンターの製造停止を予告 - GIGAZINE
- プリンターのトナーカートリッジは新品でも満タンなわけではない、その理由とは? - GIGAZINE
Publickey
- マイクロソフト、「Universal Print」のパブリックプレビュー開始。プリンタサーバをクラウド化し、プリンタドライバのインストールを不要に - Publickey
- マイクロソフト、「Universal Print」を発表。プリンタサーバをクラウド化し、プリンタドライバ不要、集中管理へ。キヤノンと対応プリンタを共同開発中 - Publickey
- Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な
- 第806回:Mopria とは - ケータイ Watch
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「最近のネットワークプリンタは $ nc printer 9100 < file.pdf だけで印刷できる。CUPSよさようなら。 https://t.co/5ptdbr1saH」 / Twitter
- Bye CUPS: Printing with netcat - by William Blankenship - retrohacker
- 2021年8月16日 "The Universal Operating System"をめざして ―Debian 11 "bullseye"がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「キヤノンUSAに対する集団訴訟。 どうやらキャノンの複合機 Pixma MG6320は、インクが切れるとスキャンもしなくなるらしい。HNのコメントでは、良心的な企業はブラザーだという声が多い。 https://t.co/7uPff3Q8HZ」 / Twitter
- Canon sued for disabling scanner when printers run out of ink
- 在宅勤務する社員の「印刷ログ」を把握、エプソンがテレワークの課題を解決するクラウドサービス - INTERNET Watch
- Windows 10および11におけるプリンタの問題は依然として未解決 | TECH+
- Windows10 / Windows11でプリンターに関する複数の不具合。Windows10はKB5006670等で一部修正 | ニッチなPCゲーマーの環境構築Z
- 家庭用プリンタの世界がなかなかの荒れ具合な件(1/2 ページ) - ITmedia NEWS
メモリ
News
PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】Ryzenで話題になった、メモリの”Rank”って何のこと? - PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】メモリモジュールに“SPD”という情報があるのを知っていますか? - PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】SPDとマザーボードの関係性 - PC Watch
- DDR4メモリのSPD情報を編集できるツールが発売、センチュリーマイクロ製 - AKIBA PC Hotline!
- JEDEC、低消費電力版DDR5メモリ「LPDDR5」規格を公開 - PC Watch
- 【イベントレポート】Samsung、次世代モバイルDRAM「LPDDR5」で7.5Gbps/ピンの超高速伝送を達成 - PC Watch
- 【福田昭のセミコン業界最前線】NANDの10倍、Intel Optaneの2倍の速度を実現するMRAM SSD - PC Watch
- 東芝メモリ、10月1日より「キオクシア」へ社名変更 - PC Watch
- Intel、クライアント向けPersistent Memoryの実現に向けてMicrosoftと協力 - PC Watch
- JEDEC、次世代DRAM「DDR5」の標準規格を公開 - PC Watch
- SK Hynix、世界初のDDR5 DRAMを発売 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】広帯域と大容量にフォーカスした“第2世代”のHBM2メモリ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelなどプロセッサベンダーがけん引するHBM3規格 - PC Watch
- SK hynix、1anmプロセス/EUV採用の8Gbit LPDDR4 DRAMを量産開始 - PC Watch
- Rambus、サーバー向けDDR5メモリ用のバッファチップを開発 - PC Watch
- Rambus、5,600MT/s対応のDDR5 RDIMM向けレジスタリングクロックドライバ - PC Watch
- ADATA、DDR5メモリやUSB4対応外付けSSDなど投入 - PC Watch
- JEDEC、2倍の帯域幅を実現する「HBM3」 - PC Watch
- 【ニュース・フラッシュ】v-color、6,600MHz駆動のDDR5メモリ - PC Watch
- 【ニュース・フラッシュ】CORSAIR、6,200MHz駆動のDDR5メモリモジュール - PC Watch
- Intel、Optaneメモリ事業の終息を発表 - PC Watch
- SK hynix、PCI Expressベースで拡張できる「CXL」メモリ。1.15TBも達成可 - PC Watch
- Micron、JEDEC準拠のDDR5-5600対応メモリをInnovationで展示 - PC Watch
- 【福田昭のセミコン業界最前線】急落する半導体メモリ価格 - PC Watch
- 【福田昭のセミコン業界最前線】半導体メモリ大手の業績が一気に悪化 - PC Watch
- ついに推奨メモリ容量32GBのゲームが登場。ローグライクTPS「Returnal」のPC版 - PC Watch
マイナビニュース
- PCテクノロジートレンド 2022 - メモリ・DRAM編 (1) | マイナビニュース
- JEDEC、帯域幅819GB/秒にも及ぶ「HBM3」 | マイナビニュース
GIGAZINE
- 50年以上前のコンピューター黎明期を支えた「磁気コアメモリ」とは? - GIGAZINE
- メモリの脆弱性を利用してデータを盗み読む「RAMBleed攻撃」が発見される - GIGAZINE
- SSDなどのストレージへの連続アクセスで権限を奪取できる「Rowhammer攻撃」類似のサイバー攻撃が可能 - GIGAZINE
- メモリとストレージの性質を兼ね備える夢のデバイス「ユニバーサルメモリ」がついに実現か - GIGAZINE
- 次世代メモリの標準規格「DDR5」の最終仕様をJEDECが発表、DDR4から何が進化したのか? - GIGAZINE
- Linuxを生み出したリーナス・トーバルズがIntelを厳しく批判、理由は「ECCメモリを死に至らせているから」 - GIGAZINE
- 爆速メモリ技術「3D XPoint」の開発からMicronが撤退、Intelは開発継続の意向を示す - GIGAZINE
- Samsungが業界初となる512GBのDDR5メモリを開発 - GIGAZINE
- DRAMに保存されたデータを改ざんする「Rowhammer」攻撃の対象範囲がメモリ小型化で広がっているとの指摘 - GIGAZINE
- ほぼ全てのメモリのセキュリティを突破可能なツール「Blacksmith」が登場 - GIGAZINE
- ついに登場したDDR5メモリはメーカーごとに仕様が異なる、一体何が違うのか? - GIGAZINE
- スマホやPCのパフォーマンスを低下させる「DRAM」の熱問題を解決するための突破口とは? - GIGAZINE
- Intelの革新的なメモリ技術「Optane」はなぜ誕生したのか? - GIGAZINE
- 非ECCメモリを使った結果データが破損したという体験談 - GIGAZINE
自作.com
- DRAMの代替品を開発。4倍の集積度で高速・低消費電力化を実現|自作.com
- DDR5は2023年までにメインストリーム市場に登場する見込み|自作.com
- ADATA、12,600MTpsの超高速DDR5モジュールを発表|自作.com
- ZeroPoint Technology AB、ハードウェアベースのRAMデータ圧縮で250万ドルを獲得|自作.com
- サムスン、DDR5-7200 512GB RAMを公開|自作.com
- DDR5はDDR4の50%から60%のコストアップになる|自作.com
- DDR5 RAMの価格は次の四半期に下がる可能性があり|自作.com
- インテル、Alder Lake CPU向けのXMP 3.0 DDR5 QVLを掲載|自作.com
- DDR5メモリの供給不足が深刻化、原因は電源管理チップにあり|自作.com
- IntelのOptaneビジネスは2020年に5億ドル以上の損害を被りました|自作.com
- Intelが第3世代Optaneメモリ、新技術をからかう|自作.com
- 新しいプラットフォームにより、GPUとFPGAでIntelOptaneメモリモジュールを使用できるようになります|自作.com
TEXAL
- SamsungがDDR3メモリの製造を段階的に縮小し、DDR5メモリ生産に集中。更にDDR4の価格も引き下げへ | TEXAL
- Samsungが“1TB”のDDR 5メモリモジュールの開発を開始 | TEXAL
- Kingstonが新たにAMD EXPO認定の「DDR5 FURY Beast」メモリを発表 | TEXAL
- エントリーレベルのDDR5の価格は今年急速に低下し普及に貢献するとの予想 | TEXAL
- More information on RAMBleed
- ロウハンマー - Wikipedia
- Row hammer - Wikipedia
- 20210313
- NVDIMM Protocol Expands Non-Volatile Memory Options | EE Times
- グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率 - CNET Japan
- 20210522
- Unisantis Unveils Advances in Dynamic Flash Memory - EE Times Asia
- 北森瓦版 - JEDEC HBM3の仕様書を公開
- インテル、不揮発性メモリのOptaneメモリビジネスを終了させていくことを明らかに - Publickey
スライド
- 電源を切っても消えないメモリとの付き合い方 - Speaker Deck
- 不揮発メモリ(NVDIMM)とLinuxの対応動向について(for comsys 2019 ver.)
- 不揮発メモリ(NVDIMM)とLinuxの対応動向について
Qiita
- Linuxの不揮発メモリ(NVDIMM)対応動向について(2018年版) - Qiita
- Linuxの不揮発メモリ(NVDIMM対応について(2019年版 補足編) - Qiita
- Linuxの不揮発メモリ(NVDIMM)対応について(2020年版) - Qiita
- パソコンユーザーのためのDRAM入門 Part 1 パソコンにおけるDRAM、DRAMの構造 - Qiita
Twitter
histric-1
- suzakiさんのツイート: "ECC無しの1ペタバイトメモリではsilent errorが 90分ごとに起こる。"
- Fadisさんのツイート: "memtestしたら1bit壊れてるのが見つかった → 1bit壊れてるメモリなら今にも壊れそうなbitがまだあるかもしれない → ヒートガンでメモリを加熱しながらmemtest → ほらさらに3つ出てきた その発想はなかった"
- Fadisさんのツイート: "で、壊れてたbitと壊れそうなbitが限られたアドレスの範囲に入るようにメモリを並べ替えてGRUB2で使ってはいけないアドレスの範囲を指定してデバッグを再開、と つよい"
- Ahmet Alp Balkan (🍖KubeCon)さんのツイート: "This guy heated up his RAM with a heat gun to debug a @golang runtime bug. https://t.co/KKSA7vqfr8 I hereby nominate him to most persistent… https://t.co/glga0uPchs"
- FFFumihiro MMMatsuiさんのツイート: "DRAMのリフレッシュ(抜けていく電荷の補充)ってあるけど確かに人間も風呂入ってリフレッシュしたらなんか電荷がチャージされる感じするな。あれはなかなか的確な名前だな"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "稼働中だったDRAMを液体窒素保存した後、別マシンに挿して、BitLocker、dm-crypt、TrueCryptの鍵を取り出すって、凄いけど誰得な感じも…NSAあたりが使う想定なのかしらん?… "
- Ryota Shioyaさんのツイート: "この論文だと、メモリを引っこ抜いて液体窒素に漬け込んで一時間後に戻したらデータが化けてたのは0.17%だったとかで、思ってた以上に冷やすとデータのこるんだなと言う話もhttps://t.co/xdAjRMdqzA"
- Ryota Shioyaさんのツイート: "この論文だと,エアダスターとかのスプレーで冷やして実行しても結構うまくいってたので,あとはメモリ配置を割り出すあたりを誰かが自動化してしまうと結構お手軽に誰でも実行できてしまって怖いなって気はします… "
- Lest We Remember: Cold Boot Attacks on Encryption Keys | Center for Information Technology Policy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「DRAMを4KB単位でI/Oしたものと同等性能って話っぽい? 4KB I/O はキャッシュライン単位としては大きいので、巨大VLIWの登場とか無い限り、メインメモリとしては厳しいのかな? それでも、NVDIMM-Pみたいな無理筋よりはずっと良さそう。 ---- https://t.co/nAlXpI2GD6」 / Twitter
- 【イベントレポート】東芝メモリ、DRAMと同等性能のSSDを披露 - PC Watch
- FadisさんはTwitterを使っています: 「NVDIMMが従来の二次記憶と大きく異なるのはそれがブロックデバイスではなくバイト単位での読み書きが出来るという点。NVDIMMはDRAMと同じアドレス空間にマップされ、同じように読む事ができる。書いた内容が永続化された事を保証するには、CPUのキャッシュをflushして、メモリバリアで完了を待てば良い」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMはDRAMのように書けるが、DRAMのように書くのは得策ではない。永続化されるという事はデータは書いている最中にアプリケーションがクラッシュしたり電源が落ちたりしても正常であり続ける必要がある為、FSのジャーナルに似た手順でいつ処理が止まってもデータを壊さないようにする必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMのDAXで必要になる処理をまとめたPMDKは複数のライブラリで構成されている。libpmemはOS非依存のmmapとmsyncを提供し、libpmemobjはジャーナルで指定した範囲の値をトランザクショナルに書く仕組みを提供する。libpmemblkはNVDIMMブロック単位でload/store仕組みを提供する」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMではファイルの読み書きをユーザ空間で片付けるFilesystem DAXが使えるため、カーネルがオーバーヘッドだからデバイス丸ごとカーネルから奪い取るSPDKと異なり、PMDKによる読み書きとカーネル経由のファイル操作は同じファイルシステム上で共存できる」 / Twitter
- FadisさんはTwitterを使っています: 「mmapしたファイルをflushするにはmsyncするのが普通だが、FS DAXの場合カーネルは変更箇所を知らない為効率の悪いflushしかできない。更に必要な操作はclflushoptだけなのでカーネル空間に行きたくない。結果ユーザ空間で勝手にflushしてFSのメタデータの変更が放置されて壊れる世紀末が生まれた、と」 / Twitter
- FadisさんはTwitterを使っています: 「で、ストレージが百nsオーダーで応答しないと困る人達はこれを「カーネルが俺の知らないところでFSのメタデータなんか書くからデータが壊れるのだ」と捉え、カーネルがデバイスを一切触らなくなる(=ユーザ空間プロセスが把握している変更だけflushすればデータは壊れない)Device DAXが誕生した、と」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMに関するLinuxの対応の歩み「直接仮想アドレス空間にマップできるデバイスによってmmapは神になる。読み書きはユーザ空間で片付いてボトルネックは解消され …ると思ったのにCPUキャッシュ、お前、お前…!」みたいな感じで大変アレ」 / Twitter
- FadisさんはTwitterを使っています: 「もしかして、linuxでmmapしたファイルに書くだけの処理でも、それがsparseで書いてる先がブロックの割当がまだ無い所だった場合、メタデータが書き変わるわけだからmsyncじゃなくてfsyncが必要になるんじゃなかろうか…」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「@fadis_ こういう場合メタデータの書き換えは常に最後なのでは?(msyncのタイミングでメタデータの書き込みになるのでは)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@beepcap @fadis_ 現状、ファイル用mmapでsparseページ宛に memcpy等しようとすると、命令トラップ&disk領域割り付けが走り、万一disk-full等で割り付け失敗するとSIGBUSで落ちます。 なので、メタデータ操作が後とは思えないですねぇ。」 / Twitter
- FadisさんはTwitterを使っています: 「x86_64 linuxのページサイズが4KBなのに対して、NVDIMMが64Bのキャッシュライン単位でflush出来る為、ページ単位でしかdirtyな部分を知らないカーネルは1箇所の書き込みに対して64倍のflushを行う羽目になり、これがdirtyなデータをユーザ空間で管理したい大きな理由になっているっぽい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ただ、backendの不揮発部分は4KBよりずっと大きそう。 行列とかで疎な書き込みが発生すると厳しいとか無いのかな? https://t.co/IAKNMrLrmc」 / Twitter
- Yasunori GotoさんはTwitterを使っています: 「まあ、RAMについても昔は夢でしか無かったんですけどね。 DIMMとCPUが載ったシステムボードを複数搭載して、そのボードを丸ごと抜くという技で抜けるようにしたPrimeQuestって製品があるんですけどね。 RAMはpage migrationの機能でカーネルがこっそりデータを移動する。NVDIMM+DAXはそこが課題よね… https://t.co/27ObKDwOAM」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@YasunoriGoto1 あれ、結局primary boot processorがhotplugできない問題って解決したんでしたっけ?」 / Twitter
- Yasunori GotoさんはTwitterを使っています: 「@mhiramat そこはまだなんですけどね」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxでは1ページ64バイトのpage構造体でメモリのページを管理しているけど、1TiBのNVDIMMを4KiBページで利用する場合page構造体が7.85GiBになって、これをメインメモリに置くとページの情報でメモリが埋め尽くされるから、NVDIMMのpage構造体はNVDIMM自体に確保したスーパーブロックに置くらしい」 / Twitter
- FadisさんはTwitterを使っています: 「このスーパーブロックは必要なサイズ以上になるページサイズの倍数の容量で確保される為、1GiBページを使っていると1GiB単位のサイズになる。結果、2GiBのNVDIMMを1GiBページで利用すると1GiBがスーパーブロックで1GiBが唯一のページという、ページとは何かについて考えさせられる使い方がなされる」 / Twitter
- FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 組込みならBIOSとかIPL等のプログラムを書いたりしない? メモリを初期化するのにSPD情報を読もうとすると、何もしてない(書いても読んでもいない)のに、迂闊なI2Cアドレスをバスに出すだけで、メモリに以上電圧が掛かって燃えるで。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 ×以上 ○異常」 / Twitter
- Yasunori GotoさんはTwitterを使っています 「FPGA、NVDIMM共にユースケース(を見つけるの)が難しい2大巨頭と言われた事がある…。 まぁ、実際そう思う…。」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
- Samsung、DDR5型DRAMのDIMM向けにPMICを発売 | 日経クロステック(xTECH)
- (๑╹◡╹๑)さんはTwitterを使っています 「えーっと、これなんですが、DDR4では駆動電圧が1.2Vだったんですが、DDR5では1.1Vまで下がります。ここまで下がると、マザーボード上からの電源供給だと電圧が低すぎて安定的に供給できないので、DIMMモジュールへは5Vで供給してPMICで1.1Vに変換する必要が出てくる。かなりのコストアップですな。」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「PMICは、SoCの旺盛な需要や8インチプロセスのキャパシティ不足から深刻な供給不足が続いているんですが、サムスン自信がPIMCを手掛ける、しかも90nmノードで生産するというのは、PMICの供給がネックになってDDR5の立ち上げがつまづくのを防ぐという意味合いもあるのかな、と」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「90nmノードなので多分12インチプロセスを使うんでは、という感じもしてる。8インチは増産余地が小さいので、ディスクリート半導体や車載用途では12インチへの転換を進めてるところもあるけど、コスト的にはかなり上がってしまうので、量産規模を確保出来たらよい話だと思う。」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「https://t.co/fVnyNlVXbR NVDIMM 勉強しててこれ読んだけど、なかなか巧妙だった。特定のパターンの処理では Non-Temporal store → Temporal store という順番になり、後者の方が永続化に時間がかかるので sfence なくてもほぼ永続化の順序は変わらないから省いて性能を稼ごうというアイデア。」 / Twitter
- (Almost) Fence-less Persist Ordering | IEEE Conference Publication | IEEE Xplore
- とみながたけひろさんはTwitterを使っています 「昔はメモリコントローラの設定を変えてクロック変えたりセルフリフレッシュ状態にする場合、処理中にはDRAMアクセスできないので超絶技巧で対処してたが 最近はメモリコントローラにファームウェアがあってそのなかのマイコンがいいようにしてくれると聞いてほぇ~ってなってる」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ついに無視できなくなったDRAMの熱問題。最新のDDR5に至るまでDRAMの基本的な原理は変わっておらず、半導体が熱くなるほど保持時間が短くなる。つまりリフレッシュレートを上げる必要があり、その結果さらに熱くなってしまう。いまのところ限界は85℃程度だ。 https://t.co/ilfIuUiPJO」 / Twitter
- DRAM Thermal Issues Reach Crisis Point
- Jhon SmithさんはTwitterを使っています: 「現代のゲーマーのマシンがどの程度メモリを積んでいるかSteamの統計をグラフ化してみた。 最も多いのは16GBで5割、8GB以下が3割、32GBは1割弱、64GB以上は1.2%しかいない Steamハードウェア&ソフトウェア 調査 https://t.co/eeT1tyv0LI https://t.co/hqVycU3ykW」 / Twitter
- Steamハードウェア&ソフトウェア 調査
- DRAMeXchange - World leading DRAM and NAND Flash market research firm, with more than a decade of most authoritative database
- 自作PCをよくするワザ、教えます(5) ~メモリ編~ - AKIBA PC Hotline!
- オーバークロックメモリの基本と実際の性能、見れば全部わかるDDR4メモリ完全ガイド - AKIBA PC Hotline!
- ASCII.jp:メモリモジュールオーバークロック指南 (1/7)|Windows 7で行なうオーバークロック
- DDR4-2400以上のメモリはDDR4-2133で動作するか? : AKIBAオーバークロックCafe
- シングルランクとデュアルランク、どちらのメインメモリーを使う方が良いのか
- Rowhammer問題私的まとめ | @knok blog
- NVDIMMとACPI - 睡分不足
- Persistency for synchronization-free regions
- 自作OSでできる!NVDIMMのつかいかた - /var/log/hikalium
- CK16GX4-D4UE3200 | 288pin DDR4 SDRAM | ECC | サーバー用メモリ | PCパーツと自作パソコン・組み立てパソコンの専門店 | 1's PCワンズ
- Native 3200MHz DRAM搭載 32GB メモリーモジュール各種を発表 | センチュリーマイクロ株式会社
- 【メモ帳】メモリー階層レイテンシー - fortran66のブログ
- Intel Optane Persistent Memory を使ってみた - VA Linux エンジニアブログ
- 日本のPCの搭載メモリは他国と比べて少ないのか? Chrome開発チームのグローバル調査で分かる、各国のパソコンやスマホ事情 - Publickey
電源
PC Watch
- マザーボードのフェーズの話 - PC Watch
- 【イベントレポート】充電事情はPDよりもワイヤレス? - PC Watch
- FSP、奥行きを130mmに抑えた1,000W/850Wフルモジュラー式ATX電源 - PC Watch
- 【ニュース・フラッシュ】Corsair、奥行き140mmで80PLUS GOLD認証のATX電源 - PC Watch
- 【ニュース・フラッシュ】CORSAIR、80PLUS Platinum認証取得の大容量電源「HXi 2022」シリーズ - PC Watch
- 【やじうまPC Watch】リチウムイオン電池の不適切廃棄でゴミ収集車から出火。米国で340万円の罰金 - PC Watch
- 高容量で格子体積が変化しない電池材料が誕生、「夢の電池」実現へ - PC Watch
GIGAZINE
- ATX規格でUSBピンから各種情報を取得できる冗長電源「FSP Twins 700W」レビュー - GIGAZINE
- 無限に電力を生成できる可能性がある回路が開発される - GIGAZINE
- Microsoftが「Windows Update」における二酸化炭素排出量を削減する新機能をWindows 11のプレビュー版で導入 - GIGAZINE
- 二酸化炭素を排出しにくい発電方式に取り組む国が一目でわかる「electricityMap」 - GIGAZINE
- SeasonicとSilverstoneの次世代ATX 3.0およびGen 5対応PSUを発表、1000Wで230USドルから。 - 自作ユーザーが解説するゲーミングPCガイド
News
- 第874回:モバイル充電安全認証 とは - ケータイ Watch
- 次はGeForce RTX 3090! そして訪れるキロワット時代 (1/4) - ITmedia PC USER
- Cybeneticsが電源の電源効率及び、ノイズレベルの認証バッジを発行 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - FSPの電源容量計算サイトに複数の未発表GPUが掲載される
- マサチューセッツ工科大学、ストレスに強い高密度電池開発の道を切り拓く | TEXAL
- リチウムイオン電池の4倍の容量を持ち、大幅に安価な新型ナトリウム・硫黄電池が開発された | TEXAL
12VHPWR(ATX 3.0, PCIe 5.0)
自作ユーザーが解説するゲーミングPCガイド
- ASUS、PCIe Gen 5.0 Ready電源コネクタ搭載の「ROG THOR 1600W Titanium」「ROG THOR II」電源を発表 - 自作ユーザーが解説するゲーミングPCガイド
- 次世代グラフィックスカード用PCIe 5.0ハイパワーコネクタ、GPUに最大600Wの電力供給が可能に - 自作ユーザーが解説するゲーミングPCガイド
- PCIe Gen5の12P+4P電源コネクタはGeForce RTX 30 Founders Editionの電源コネクタと互換性がある - 自作ユーザーが解説するゲーミングPCガイド
- ATXバージョン3.0デザインガイド、PCIe 5.0コネクタケーブルの詳細を公開、次世代GPU向けに最大600Wの電源入力に対応 - 自作ユーザーが解説するゲーミングPCガイド
- PCIe Gen 5.0グラフィックスカードは最大1800Wまでの「Power Excrusions」を発生させるが、ATX 3.0電源はPCのスムーズな動作を維持できる。 - 自作ユーザーが解説するゲーミングPCガイド
- PCI-SIG は、非ATX 3.0 PSU および Gen 5 アダプタ プラグを使用した 12VHPWR コネクタの過電流/過電圧の潜在的なリスクについて警告しています。 - 自作ユーザーが解説するゲーミングPCガイド
- 現在日本で入手可能な12VHPWRケーブル付属電源 - 自作ユーザーが解説するゲーミングPCガイド
- AMD、Radeon RX 7000 "RDNA 3" GPUにGen5 16ピン「12VHPWR」パワーコネクタを使用しないことを決定 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIAのGeForce RTX 4090グラフィックスカードの16ピンコネクタが燃え上がり、ケーブルとプラグが溶ける。 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIAは、GeForce RTX 4090 16ピンアダプタとコネクタの問題を迅速に解決するためにAIBパートナーと協働しています。 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA 16ピンアダプタは2種類、300VはGeForce RTX 4090問題無いが、150Vは火災の危険がある。 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA GeForce RTX 4090の完全に接続された16ピンコネクタも溶けてしまう結果に - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA、GeForce RTX 4090 & RTX 4080用の16ピン「12VHPWR」ケーブルに2種類のバリエーションがあることを確認 - 自作ユーザーが解説するゲーミングPCガイド
- 12VHPWR電源ケーブルは正しく装着しないと溶ける可能性、GamersNexusの調査で判明 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA 16ピン12VHPWRケーブル接続ガイド GeForce RTX 4090 & RTX 4080 オーナー様用 - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA、16ピン12VHPWRケーブル問題の主な原因がユーザーエラーであることを確認、これまでに溶融したのは12万5000台中50台のみ - 自作ユーザーが解説するゲーミングPCガイド
PC Watch
- PCIe 5.0専用設計の「12ピン」600W出力対応コネクタ - PC Watch
- 12VHPWR電源入力の監視が可能になった「GPU-Z v2.51.0」公開 - PC Watch
- 玄人志向、電源ユニットに誤ったケーブルが付属。交換対応へ - PC Watch
- 【ニュース・フラッシュ】Thermaltake、12VHPWRコネクタ標準搭載の1,350W 80PLUS Gold電源 - PC Watch
- 【ニュース・フラッシュ】玄人志向、12VHPWR対応のフルプラグイン1,000W 80PLUS Platinum ATX電源 - PC Watch
GIGAZINE
- NVIDIAがRTX 4090の電源ケーブル燃焼の問題を調査中 - GIGAZINE
- GeForce RTX 4090の融解問題はGPUではなくケーブルの問題である可能性が濃厚に - GIGAZINE
- GeForce RTX 4090のコネクタ融解問題についてNVIDIAが「差し込みが完全か確認を」と注意喚起 - GIGAZINE
TEXAL
- GPU-Zアップデートにより、RTX 4080 GPUのサポートと16ピン電源入力のモニタリングが可能になった | TEXAL
- MSIが世界初のATX3.0対応電源「MEG Ai1300P PCIE5」を発表 | TEXAL
- NVIDIAのRTX 4090で16ピンコネクタが溶けてしまう事例が報告される | TEXAL
- RTX 4090コネクタ溶融問題は、コネクタの問題ではなくNVIDIAの付属ケーブルが粗悪だった可能性 | TEXAL
- RTX 4090のメルトダウン問題、電源から直接接続した12VHPWRコネクタも溶けてしまった事例が報告 | TEXAL
- NVIDIA GeForce RTX 4090のメルトダウン問題は設計上の欠陥が原因か?しっかり接続された12VHPWR-16ピンコネクタも溶けてしまった事例が報告された | TEXAL
- NVIDIAのRTX 4090メルトダウン問題の新たな報告では、16ピン電源アダプタのメーカーに問題があった可能性が指摘される | TEXAL
- PCI-SIG、電源ケーブルの製造に際し、公式の12VHPWRの仕様を遵守するよう会員に通達 | TEXAL
- Galaxがデュアル16ピン電源コネクタ搭載の1300W電源「Galax Hall of Fame GH1300 PSU」を発売 | TEXAL
北森瓦版
- 北森瓦版 - 12VHPWRコネクタ溶融問題―NVIDIAがコネクタを完全挿入するよう指示
- 北森瓦版 - PCI-Express 5.0世代で600Wまで給電可能なコネクタ―“12VHPWR”
- 北森瓦版 - Intel ATX 3.0規格でPCIe Gen 5電源プラグ―12VHPWRを導入へ
- 北森瓦版 - Intel 新しいATX電源規格―ATX 3.0とATX12VO 2.0を発表
- 北森瓦版 - GeForce RTX 3090 Tiの基板や電源周りの話
- 北森瓦版 - 16-pinの12VHPWRに対応したMSIのMEG Ai1300PとAi1000P電源
- 北森瓦版 - 12VHPWRアダプタケーブルは耐久性に難点がある?
- 北森瓦版 - GeForce RTX 4090に使用される12VHPWRコネクタ発火の原因
- 北森瓦版 - “Ada Lovelace”世代のTitanの予想図―4スロット厚でかつ12VHPWR×2
- 北森瓦版 - SFX12V 4.0準拠のSilverStoneの電源―Extreme 850R Platinum
Gaz:Log
- RTX 4090搭載の12VHPWRがアダプターなしでも溶損した事例出現
- NVIDIAの12VHPWR溶損は刺さりにくいから?PCI-SIGでは規格を改訂予定
- RTX 4090に完全接続された12VHPWRもコネクターが溶損する事例が出現。
- NVIDIAの12VHPWRケーブルは2つの製造元が存在。その内一つが問題?
- GeForce RTX 4090 FEも12VHPWRが発火、溶損する被害出現。合計26件目
- RTX 4090の12VHPWR溶損原因はユーザーエラー?完全接続されてるかが重要
- NVIDIAが12VHPWRについて公式発表。原因は不完全な接続で確定。
- PCIe 5.0 Power Connectorは、次世代AMD、Nvidia GPUに最大600Wを提供します|自作.com
- Asusが16ピンPCIe5.0電源コネクタを備えた小型1200ワット電源を発表|自作.com
- FSPは、今後のNvidia、AMDGPUに2000Wの電源を提供します|自作.com
- FadisさんはTwitterを使っています 「PCI-Expressの12ピン電源コネクタは1レーンに9.2Aを流す設計で、残念な電源で使われている20AWGの補助電源ケーブルでも最大電流は11Aあるから、一応ケーブルがとろけるチーズになったりはしない。でも今まで通りの安全マージンを取るなら600W流す場合は推奨通り16AWGの電源ケーブルが望ましい、と」 / Twitter
- ASCII.jp:グラボの電源コネクターが変わる? 大電力に対応する新規格「12VHPWR」 (1/3)
- 12VHPWR電源ケーブルをしっかり差し込むようにNVIDIAが声明 | マイナビニュース
- PC用電源ユニットはついに出力1600Wに突入。12VHPWR&ATX 3.0対応電源をXPGが披露。小型ファン付きのPCIe 5.0対応SSDにも注目だ
ATX12VO
- 自作PCのケーブル取り回しや電源効率改善の可能性を秘めたIntel発の新規格「ATX12VO」とは? - GIGAZINE
- インテル、第12世代Alder Lake CPU向けにATX12VO電源コネクタを推進中|自作.com
- ベンダーは、インテル第12世代Alder Lakeのリリースに先立ち、ATX12VOマザーボードを準備します。|自作.com
- インテルは、安価なAlder Lake-SマザーボードでATX12VO規格が普及することを望んでいる - 自作ユーザーが解説するゲーミングPCガイド
- インテルがATX12VO仕様で電源の未来を変える理由 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Intel 新しいATX電源規格―ATX 3.0とATX12VO 2.0を発表
UPS
- UPS選定ツール|製品選定|OMRON 無停電電源装置(UPS)
- 電源障害時に複数のサーバ・パソコンをシャットダウンするにはどうしたらよいでしょうか。|FAQ/よくあるご質問|OMRON 無停電電源装置(UPS)
- 無停電電源装置(UPS)のプロトコル公開について|製品情報|OMRON 無停電電源装置(UPS)
- BW120T/BW100T/BW55T/BW40T 仕様|製品情報|OMRON 無停電電源装置(UPS)
- BWB120T|製品情報|OMRON 無停電電源装置(UPS)
バッテリー
- JBRC会員企業リスト | 小型充電式電池のリサイクル 一般社団法人JBRC
- 【特集】いざという時に困らないために……モバイルバッテリの処分方法まとめ - PC Watch
- 電動工具の互換バッテリーを分解、検証してわかる安さの理由 | VOLTECHNO
- リチウムイオン電池の10倍の速さで充電できる新型電池登場、火災の危険性が低く環境への悪影響も控えめ - GIGAZINE
- リサイクル部品を使用したバッテリーが未使用バッテリーよりも長寿命であることが判明 - GIGAZINE
- MITが「アルミニウム・硫黄・塩」というありふれた安価な材料で、高速・安全・低コストなバッテリーの作製に成功 | TEXAL
ワイヤレス
- スマホのワイヤレス充電は超絶非効率、有線充電と比べて電力消費量がおよそ1.5倍と判明 - GIGAZINE
- 新しいワイヤレス充電の規格が策定される、その内容とは? - GIGAZINE
- 第843回:Qi 1.2とは - ケータイ Watch
- Xiaomi、部屋のどこにいてもスマホを充電できる無線給電技術 - PC Watch
- 5Gネットワークを「ワイヤレス電力網」化するためのアンテナが開発される - GIGAZINE
- 東北大ら、Wi-Fiの電波を使って発電できる素子を開発 - PC Watch
- Wi-Fiの電波で発電する技術を東北大学などが開発 - GIGAZINE
- 赤外線を使用して 30 メートル離れたデバイスにワイヤレスで送電する注目の技術が発表 | TEXAL
- WPC、次世代ワイヤレス充電規格「Qi2」を発表 〜 Appleの「MagSafe」がベース - Nishiki-Hub
- 次世代ワイヤレス給電規格「Qi2」にAppleのMagSafe技術が採用される - GIGAZINE
- Apple MagSafeベースの無接点充電新規格「Qi2」 - PC Watch
- ASCII.jp:次期ワイヤレス充電規格の「Qi2」は、アップル「MagSafe」ベースで今年末にも製品登場
- 数メートル離れたデバイスにもワイヤレス充電できる新たな規格「AirFuel RF」が発表 | TEXAL
- 2024年には15W以上の急速充電に対応したQi2.1が登場し、その後はタブレットへのワイヤレス充電も搭載されていく | TEXAL
NVIDIA
- 北森瓦版 - NVIDIAの12-pinコネクタは既存の8-pinコネクタと同程度の大きさとなる
- 北森瓦版 - NVIDIAの12-pinコネクタへの対応が準備されている
- 北森瓦版 - “Ampere”では12-pinの補助電源コネクタが使われるかもしれない?
- PSUメーカーは、NVIDIAのGeForce RTX 30シリーズアンペアグラフィックスカード用の12ピンマイクロフィットコネクタを準備しました - 自作ユーザーが解説するゲーミングPCガイド
- 12ピン電源コネクタの不思議な事実:それは現実であり、NVIDIA Ampere GPUに搭載される - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA、Ampereで新しい12ピンのPCIe補助電源コネクタを採用か - PC Watch
- FadisさんはTwitterを使っています 「NVIDIAの新しいGPUの補助電源コネクタはGND 6ピン、12V 6ピンで、6ピンの補助電源コネクタを2つくっつけたようなピン配列、と https://t.co/ckrNFldrRR」 / Twitter
- The Curious Case of the 12-pin Power Connector: It's Real and Coming with NVIDIA Ampere GPUs | TechPowerUp
- FadisさんはTwitterを使っています 「GPUの補助電源コネクタ、たくさんピンがあるけど電圧全部同じ12Vで、ピンがたくさんある理由が「複数の電圧を供給するため」じゃなくて「ケーブルの断面積と端子の表面積を少しでも稼いでより大きな電流を、ATX電源が供給できる最大の直流電圧でGPUに突っ込むため」なの、いつ見てもパワみがある」 / Twitter
- Nvidiaの12ピン電源プラグが今後のPCIe 5.0 GPUに採用されることを期待する|自作.com
Wikipedia
- ATX電源 - Wikipedia
- Power supply unit (computer) - Wikipedia
- 80 PLUS - Wikipedia
- 80 Plus - Wikipedia
- 玄人志向 | KRPW-L5-400W/80+:80PLUS STANDARD取得 ATX電源 400W
- 玄人志向 | KRPW-BR650W/85+:80PLUS BRONZE取得 ATX電源 650W
- 玄人志向 | KRPW-SS350W/90+:80PLUS GOLD取得 ATX電源 350W
- Wi-Fi ワットチェッカー RS-WFWATTCH1[RATOC]
- Wi-Fi ワットチェッカー for Windows
- サージプロテクター対応の電源タップは3〜5年で買い替えが必要 | ライフハッカー[日本版]
- 日記 (2018 年 9 月下旬)
- DOS/V POWER REPORT | Impress Japan
- 何故プラグイン式PC電源ユニットのコネクタは規格統一されていないのか? - Togetter
- DSAS開発者の部屋:電子工作での AC 給電制御と米国製「IoT Relay」のこと
- Bluetoothワットチェッカー RS-BTWATTCH2[RATOC]
- electricityMap | 電力消費による二酸化炭素排出のライブ地図
- Watttime – The Power to Choose Clean Energy
- 電源容量計算 | FSPテクノロジー
RGB
- FadisさんはTwitterを使っています 「OpenRGB 0.7がリリースされたらしい。OpenRGBは最近よくあるフルカラーLEDで光るPCパーツの色の調整をデバイス非依存のAPIで行うためのソフトウェア。0.7ではコントローラとドライバがサポートする場合に色の設定をデバイス側に記録するSave To Device等の新機能が追加される https://t.co/9j9gLV4VjR」 / Twitter
- OpenRGB 0.7 Released With Many More Devices Supported, Improved Settings - Phoronix
- 第635回 Ubuntuでパソコンを光らせよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- https://www.netmarketshare.com/welcome
- リードタイム MTTR 変更失敗率 - Google 検索
Intel
その他
MP
- Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems - Peter Barry, Patrick Crowley - Google ブックス
- Go Parallel | Dr. Dobb's | Booting an Intel Architecture System, Part I: Early Initialization | December 26, 2011
- Using SSG Templates
- edk2/MpService.h at master · tianocore/edk2
- Multiple ProcessorとIO APIC - mrtska's blog
日記
- 日記 (2012 年 12 月中旬)
- 日記 (2014 年 9 月下旬)
- 日記 (2016 年 8 月上旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2018 年 2 月上旬)
- 日記 (2018 年 9 月下旬)
- 日記 (2018 年 10 月下旬)
借り初めのひみつきち
- x86の割り込みが遅いワケ - 借り初めのひみつきち
- 地獄のデバッグ - 借り初めのひみつきち
- Nerry さんのツイート: "Surface 3でNXビットが落ちる件、これのせいだった… "
- IA32_EFER ‐ 通信用語の基礎知識
- NXビット ‐ 通信用語の基礎知識
- ロングモードと64ビットモードの違い - 借り初めのひみつきち
- EFER.LME と EFER.LMA - 借り初めのひみつきち
- 新しい自作 OS 始めました - 借り初めのひみつきち
- 誰も教えてくれない AMD64 と Intel64 の違い (ページング編) - 借り初めのひみつきち
blog
- Linuxブート時のcpu数認識の処理を読む - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Intel 100/200 PCH Primary to Sideband Bridge について - DXR165の備忘録
- 【後藤弘茂のWeekly海外ニュース】スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略 - PC Watch
- [coreboot] Disabling hyper-threading on Ivy Bridge
- 投機実行とOut of Orderはつよいというはなし - なるせにっき
- x86のCPUIDについて - めもちょー
- 20190413
- cpuidでAVX2に対応しているか調べる - 睡分不足
- x86におけるメモリアクセス権のルール - 睡分不足
- 【雑記】CPUID の Family と Model、表示する一部ソフトウェアの問題点 | Coelacanth's Dream
- Intel Kaby Lake 周りの CPU Stepping を整理するパッチ | Coelacanth's Dream
スライド
- プログラムを高速化する話
- ハイパースレッディングの並列化への影響
Qiita
- [Linux] CPU Hotplug の変更 (動的にCPUの特定coreの有効化/無効化) - Qiita
- 8086命令セット - Qiita
- 技術資料 | iSUS
- インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアル参考訳
- x86-64 - OSDev Wiki
- hikaliumさんのツイート: "はい、バグが取れたので円周率をやっていきましょう(syscall処理中に割り込みが発生するとスタックがユーザモードから切り替わらないのにCR3だけ変更されるのでにゃーん化していたのが原因だった)。… "
- 2.7. turbostat - Red Hat Customer Portal
- Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.
- msr 演算 intel - Google 検索
- Intel core disable msr - Google 検索
- x86 アーキテクチャの不可解な「仕様」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
- POP SS デバッグ例外 - CVE-2018-8897 [中程度] & CVE-2018-1087 [重要] - Red Hat Customer Portal
- A Complete Formal Semantics of x86-64 User-Level Instruction Set Architecture - FSL
- kframework/X86-64-semantics: Semantics of x86-64 in K
- 486のセグメントデスクリプタが直感的に読めないようになっている理由 - Yabu.log
- 割り込み「ベクタ」と呼ぶ理由 - uchan note
- Linux / x86_64の割り込み処理 第4回 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
- 20200620
- Guidance for Enabling FSGSBASE
- 2020年10月26日 Linux 5.10-rc1が登場,正式リリースは2020年末の予定:Linux Daily Topics|gihyo.jp … 技術評論社
- 「Windows Defender」ウイルス対策が原因でIntel CPU環境のパフォーマンスが大幅に低下する問題 - 窓の杜
- Microsoft DefenderがIntel製CPUのパフォーマンスを低下させていたことが判明 - GIGAZINE
x86-64マイクロアーキテクチャレベル
- x86-64-v2 マイクロアーキテクチャレベル用にRed Hat Enterprise Linux 9 をビルドする - 赤帽エンジニアブログ
- x86 psABIs / x86-64 psABI · GitLab
- x86_64のサブバージョンが登場した話 - Qiita
- x86-64-v2, x86-64-v3, x86-64-v4 - ALH84001
- RFC-0073: Raising x86-64 platform requirement to x86-64-v2 | Fuchsia
- GCC 11's x86-64 Microarchitecture Feature Levels Are Ready To Roll - Phoronix
- cpu architecture - How do I check if my CPU supports x86-64-v2? - Unix & Linux Stack Exchange
- X86_64-v2 and x86_64-v3 targets for Linux and Windows - compiler - Rust Internals
Intel
Phoronix
- Intel Begins Working On Linux Support For Data Streaming Accelerator 2.0 - Phoronix
- Intel Preps The Linux Kernel For LKGS - Part Of FRED - Phoronix
- Linux 6.1 To Feature Faster Intel Memory Error Decoding - Phoronix
- 108 Patches Sent Out In Latest Revision Of Intel TDX KVM Support For Linux - Phoronix
- Intel Software Defined Silicon Linux Driver Sees Latest "Intel On Demand" Updates - Phoronix
- Intel AEX Notify Support Prepped For Linux To Help Enhance SGX Enclave Security - Phoronix
- Intel RAO-INT Added To GCC 13, Grand Ridge & Granite Rapids CPU Targets Ready - Phoronix
FRED
- Flexible Return and Event Delivery (FRED) Draft Specification - 346446-flexible-return-and-event-delivery.pdf
- Flexible Return and Event Delivery (FRED) Specification - 346446-flexible-return-and-event-delivery.pdf
- Flexible Return and Event Delivery (FRED) Specification - 346446-flexible-return-and-event-delivery.pdf
- Intel Sends Out Initial Linux Kernel Patches For FRED - Phoronix
- NAKAMURA Minoru's Diary (2009年10月)
- The x86 NMI iret problem [LWN.net]
- Non Maskable Interrupt - OSDev Wiki
- Intel Cannonlake Added To LLVM's Clang - Phoronix
- QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmRuntime/SmmRuntime.c - pub/scm/linux/kernel/git/jejb/Quark_EDKII - Git at Google
- a4lg.com | x86 ファミリーとモデル一覧
- ドライバーおよびソフトウェア
- melancholic afternoon
- Positive Technologies - learn and secure : Intel ME: The Way of Static Analysis
- システムマネジメントモード - Wikipedia
- System Management Mode - Wikipedia
- Sandsifterはプロセッサーの隠れ命令を見つける、それは未来の凶悪犯かもしれない | TechCrunch Japan
- Sandsifter checks your processor for secrets | TechCrunch
- xoreaxeaxeax/sandsifter: The x86 processor fuzzer
- x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
- Floating-Point Reference Sheet for Intel® Architecture | Intel® Software
- OpenVINO™ toolkit | 01.org
- Galois Field New Instructions (GFNI) Technology Guide
- Title - tech-guide-calculating-toeplitz-hash-using-gfni.pdf
- Toeplitz Hash Algorithm - Wikipedia
- Intel® Data Streaming Accelerator Architecture Specification - 341204-intel-data-streaming-accelerator-spec.pdf
非推奨
MPX
Intel MPX
- インテル® Memory Protection Extensions (インテル® MPX) 利用ガイド | iSUS
- Visual Studio 2015 Update 1: New Experimental Feature – MPX | Visual C++ Team Blog
- check-pointers-mpx、Qcheck-pointers-mpx
- Intel® Memory Protection Extensions Enabling Guide | Intel® Software
- How to Protect Apps from Buffer Overflow Attacks | Intel® Software
- Study overview
- VirtualQuery function (Windows)
- GetSystemInfo function (Windows)
- SYSTEM_INFO structure (Windows)
- Getting Hardware Information (Windows)
- Intel GoldmontとMPXとゆるふわなごや
- Intel MPX - Wikipedia
- 技術者見習いの独り言: Intel Memory Protection Extensions (MPX)
- るくすさんのツイート: "Intel MPXというポインタの値をランタイムにチェックするskylake以降のセキュリティ用拡張命令があるんだけど、GCCが次のバージョンからサポートを打ち切るそうな。 https://t.co/gH1sQz0EmT"
- GCC Developers Potentially Deprecating Intel MPX - Phoronix
- Richard Biener - Re: [PATCH][www] Deprecate MPX for GCC 7
- www.ffri.jp/assets/files/monthly_research/MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
- るくすさんのツイート: "うわー ついにIntel MPX(Memory Protection Extensions)のサポートがLinuxからも消えるってよ... 結局gccもサポート切ったし、セキュリティ支援機構なんて使われなきゃ意味ないよなぁ https://t.co/Vl4ZUoxbvK"
- The Linux Kernel Might Drop Memory Protection Extensions Support - Phoronix
- x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
- suzakiさんのツイート: "3E4-1: ヒープ領域に対するソースコード不要のIntel MPX命令適用手法 ◎ 加藤 周良(名古屋工業大学) メモリの領域チェックを行うIntel Memory Protection Extensions(MPX)命令はコンパイラで適用されるのが一般的だが、PINによる動的バイナリ解析からヒープにも適用する。"
- FadisさんはTwitterを使っています 「glibcからIntel MPXのサポートが削除された話。Intel MPXは2015年にSkylakeで登場した範囲外参照をの検知をハードウェアで支援する仕組みだが、gccのサポートは3年前に廃止、linuxカーネルのサポートは昨年廃止され、既にglibcがサポートしていても使える状態ではなかった https://t.co/rZYSfEdMMN」 / Twitter
- Glibc 2.35 Removes The Long-Deprecated Intel MPX Support - Phoronix
- FadisさんはTwitterを使っています 「Intel MPXは専用のレジスタにアドレスの上限と下限を設定することで、その外に対する読み書きで例外が飛ぶようになる。コンパイラが配列や構造体の読み書きの前にこのレジスタに値をセットする命令を挟む事で、範囲外参照を検知する。glibcとlinuxには追加されたレジスタを退避する実装が含まれていた」 / Twitter
- FadisさんはTwitterを使っています 「範囲外に置いたパターンが壊れているかをチェックするAddressSanitizerと異なり読むだけの範囲外参照も検知できるが、ICC含むコンパイラの対応が腐っていて、薄いチェックだけでも1割、濃いチェックだと殆どのソフトウェアを正しくコンパイルできない事が知られていた https://t.co/827Q6ggag6」 / Twitter
- Usability Evaluation
- FadisさんはTwitterを使っています 「また、MPXを使った場合のパフォーマンスがAddressSanitizerと比べて良くなく( https://t.co/0rkSNZaFzn )、動かん+遅いでIntel MPXの利用はあまり進まず、Ice Lake以降のIntelプロセッサにはそもそも搭載されなくなっていた」 / Twitter
- Performance Evaluation
- FadisさんはTwitterを使っています 「s/をの/の/」 / Twitter
- 市川 真一さんはTwitterを使っています 「@fadis_ 手元の Rocket Lake の CPUID を採取してみたら、MPX があるらしい結果になりました: CPUID for Intel Core i5-11500 (by tenpoku1000) https://t.co/pu0A5Z8Wp7」 / Twitter
- CPUID for Intel Core i5-11500 (by tenpoku1000)
- FadisさんはTwitterを使っています 「@tenpoku1000 Rocket LakeはCove系CPU(Coffee Lake->Comet Lake->Rocket Lake)でmont系CPU(Coffee Lake->Ice Lake->Tiger Lake)の変更の影響を受けていないので、MPXが残っているのはそのためだと思います。Intelは次のAlder LakeをCove系とmont系両方の後継とするようなので、そこにMPXが残るかどうかが見所ですね」 / Twitter
- 市川 真一さんはTwitterを使っています 「@fadis_ 以下、私の認識です。Rocket Lake は Ice Lake がベースになってるはずです: Ice Lake:Sunny Cove Tiger Lake:Willow Cove Rocket Lake:Cypress Cove Skylake系(Coffee Lake, Comet Lake)」 / Twitter
SGX
Intel
- Intel SGX - セキュリティ
- Intel® Software Guard Extensions SDK | Intel® Developer Zone
- WebHelp
- ISCA 2015 tutorial slides for Intel® SGX
- ISA Extensions Intel SGX | Intel® Developer Zone
- Introducing the Intel® Software Guard Extensions Tutorial Series | Intel® Software
- Intel SGX Homepage | Intel® Software
SGAxe
- SGAxe.pdf
- DynaomoREA - slides.pdf
- s-81: Hardware - YouTube
- LayerX Newsletter for Tech (2020/11/30-12/06) - LayerX Labs Newsletter
MSDN
- InitializeEnclave function (Windows)
- CreateEnclave function (Windows)
- IsEnclaveTypeSupported function (Windows)
- LoadEnclaveData function (Windows)
- ENCLAVE_INIT_INFO_SGX structure (Windows)
- ENCLAVE_CREATE_INFO_SGX structure (Windows)
Firmware Security
- Signal use of Intel SGX | Firmware Security
- Monotonic Counter in Intel SGX and ME | Firmware Security
- EnclaveDB: A Secure Database using SGX | Firmware Security
- Upcoming Intel SGX Features Explained: Improved Virtualization, Configuration Management, and Key Sharing | Firmware Security
FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(2. Application Design) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(2. Design an Application) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
Twitter
- Leon Anaviさんのツイート: "#Intel SGX can leak #crypto keys tested on #Thinkpad T460S with #Ubuntu 16.10 https://t.co/Zxl0ySkj9H"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "これはACCS 2.0もアカンのでは…"
- Tsukasa #01 [要出典]さんのツイート: "えーっと、サイドチャネル攻撃か。Intel は元々 SGX におけるサイドチャネルは注意事項として挙げてあったような、と思って検索してみたら、もっと直接的な言及をしているページを発見。 SGX and Side-Channels https://t.co/JlBBQiJ1BZ"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "UHD-BD対応のソフトウェアプレイヤーがSGX必須になってるけど、結局それだけじゃ意味ないんだな"
- Takekazu OmiさんはTwitterを使っています: "Haven は、Windows 版Dockerなのかと思ったら、「SGX を使うと、hypervisor ではなくてコンテナでも高いisolation を実装できるぜ」って話しらしい、面白い。intel頑張るなあ"
- 品川 高廣さんはTwitterを使っています: "OSDI 2014 の Best Paper 3つ目は Haven. Intel SGX を活用して既存のWindowsアプリをクラウド上で安全に実行する。クラウド業者やVMM、物理層による攻撃にも耐えられる(CPU=Intelさえ信用すれば良い)。"
- DJ MISONIKOMIUDONさんはTwitterを使っています: "Intel SGX拡張を使うマルウェアの可能性について。へー / Virus Bulletin : SGX: the good, the bad and the downright ugly https://t.co/11GXY6TtQ5"
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています: "Intel SGX Enclave Page Cache Mem 暗号化されて外部からメモリ空間が見られない機構 #kernelvm"
- royさんはTwitterを使っています: "ていうかその界隈の人はもう考えてるんだろうけどIntel SGXがまともに使われ始めたらメモリフォレンジック非常に困難では。プロセスごとに同じ空間で動くエージェント挿入するとかしないと解析できないのでは。"
- suzakiさんのツイート: "ハードウェアⅡ三つ目。クラッシュやリブートしてもIntel SGXが提供するProtected Module Architectureを保証するために不揮発メモリを用意して状態保存するAriadneの発表。No Rollback, Continuous, Livenessを保証。"
- suzakiさんのツイート: "OSDI OS-I四つ目。Forkでプロセスを作る代わりに、rollbackやreference monitorを考慮し、且つ効率的に処理を可能にする新しい抽象LwC: Light-Weight Contextsを導入する話。"
- suzakiさんのツイート: "LwC論文ではIntel SGXで再設計する話が出てきている。こちらにも興味あり。"
- suzakiさんのツイート: "質問にもあったけど、プロセスのisolationではキャッシュの攻撃やマルチスレッドを使った攻撃も考慮する必要がありますね。その意味でもSGXは重要か。"
- suzakiさんのツイート: "明日のOSDIで発表される”SCONE: Secure Linux Containers with Intel SGX”の方がIntel Clear Container https://t.co/5OJRSIVzEi よりセキュアと思うのは気のせい?"
- suzakiさんのツイート: "NDSS TEE五つ目。TEEは小さくと言われているがハイパーバイザーもカーネルも大きい。SGX にLibOSの技術を使い、Systcall,スレッド,イベントハンドラ, Forkなどのサポートしつつ小さいTEE(20K行)を保つPanopyの発表。Multi-Enclaveあり"
- suzakiさんのツイート: "ハードウェアⅡ一つ目。Intel’s Software Guard Extensions (SGX)と同じ機能を提供するハードウェア拡張Sanctum (RISC-V上で実装) の発表。セキュアなサンドボックス(ここではSecure containerと呼んでいる)を提供する。"
- suzakiさんのツイート: "security一つ目。ベストペーパ。Intel SGXを使ったサンドボックスのRyoan。SGXのenclave内のmoduleが用意され、秘密情報を管理。秘密情報はサンドボックス化による出ることはない。moduleは処理が終われば廃棄。"
- suzakiさんのツイート: "ASPLOS メモリ2セッション3つ目。Intel SGXが使えるメモリEPC:Enclave Page Cache は128 MBに制限されているため、これ以上をつかうためにはnon-EPCにSwap-out/inする必要がある。しかし、MAC Integrityなどのオーバーヘッドのために40K サイクルかかる。(続く)"
- suzakiさんのツイート: "SGXのメモリ拡張のオーバーヘッド問題を解決するためにUnified SGXで使われるデータ管理木を可変にしたVAULT: variable arity unified treeの提案。"
- suzakiさんのツイート: "EuroSysストレージ2つ目。SGXにKVS: Key-Value Storageを作るとEPC (Enclave Page Cache 128MB)でSGXのPage Outが起こるので遅い。この性能低下を防ぐため、Sematic Aware Protectionを提案。独自に暗号してEnclave外のProtected Memory に保存するShieldStore。Enclave内にはKVSのSubTreeのRootのみ。"
- suzakiさんのツイート: "ハードウェアセキュリティ4つ目。Intel SGXを実際に使い、その経験の発表 by 富士通。Trust領域とNonTrustの領域の通信が遅いのが問題。"
- suzakiさんのツイート: "Dark ROPの肝は暗号化されているEnclave内でpop命令を見つける方法。コードのある領域はわざとPage faultを起こして見つける。次にENCLU命令(Enclaveで暗号化された命令を復号する命令)を見つけ、(EEXIT命令も使って?)popが使うレジスタを推定。"
- suzakiさんのツイート: "これは知らなかった。 PC Watch 2017/03/07『Ultra HD Blu-rayの著作権保護機能である「AACS2.0」は従来のBDよりもはるかに強固なセキュリティを実現するため、PCでの再生においてはプロテクト解除のために「SGX対応」が必須とされているのだ。』 https://t.co/yWt59i8u4n… https://t.co/dK9pwD3Guy"
- PCで4K&HDRなUltra HD Blu-rayを観るにはどうすればいい? 世界初の対応ドライブ パイオニア「BDR-S11J」の動作環境などをチェック!
- suzakiさんのツイート: "【緩募】WindowsあるいはLinuxでAACS2.0対応のUltra HD Blu-ray再生アプリって何があるのでしょうか。"
- suzakiさんのツイート: "裏が取れないのだけど、「DVDFabがAACS2.0の解除機能を実装」https://t.co/bhaHfQx8C6 ってIntel SGXを突破したってこと?"
- DVDFabがAACS2.0の解除機能を実装 | E.i.Z
- Intel SGXをコアとしたコンフィデンシャルコンピューティングの実現 - ITmedia エンタープライズ
- Intel CPUの「Plundervolt」の欠陥が電圧操作を介して秘密を流出 - 自作ユーザーが解説するゲーミングPCガイド
- retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
- retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
- suzakiさんはTwitterを使っています 「メモ。 ざっとしか見てないがSGXの解説が良さそう。 Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity [Master Thesis 2017] https://t.co/4hkOFnQASV」 / Twitter
- Trust is in the Keys of the Beholder — Extending SGX Autonomy and Anonymity - jackson-msc-thesis.pdf
- suzakiさんはTwitterを使っています 「RAID 2020の採択論文には色々興味深いものがある。 https://t.co/eUWLwO0RiK SGX関連が2件、 A Framework for Software Diversification with ISA Heterogeneity や Dark Firmware: A Systematic Approach to Exploring Application Security Risks in the Presence of Untrusted Firmware も惹かれる」 / Twitter
- Accepted Papers – RAID 2020
- suzakiさんはTwitterを使っています 「AnonifyのTEEが気になった調べた。 ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 https://t.co/A4sP3lLhg6 TEEにはIntel SGXを想定しているようだ。 ホワイトペーパもよく書けていそう。 https://t.co/QmdJmA8BCF」 / Twitter
- ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 | LayerX
- anonify.pdf
- suzakiさんはTwitterを使っています 「メモ。 RusTEE: Developing Memory-Safe ARM TrustZone Applications[ACSAC20] メモリセーフ言語Rustを活用してARM TrustZoneのセキュリティを強化するRusTEE。アイデアは単純だが、RustはTEEシステムをサポートしていないため、Rustコンパイラを拡張した。 TEE研究にツールチェーンの重要性を示した」 / Twitter
- suzakiさんはTwitterを使っています 「メモ。 Faulty Point Unit: ABI Poisoning Attacks on Intel SGX[ACSAC20] KU Leuvenの研究者が発見したx87(FPU)およびSIMD拡張命令(SSE)の制御および状態レジスタがIntel SGXで常に適切にサニタイズされるとは限らないことを活用した攻撃についての発表。TEE内のサニタイズについての示唆を与えた」 / Twitter
- suzakiさんはTwitterを使っています 「メモ A Memory Encryption Engine Suitable for General Purpose Processor, 2016 https://t.co/bb1ZG25I2N Intel SGXで使われているメモリ暗号エンジン MEE: Memory Encryption Engineの論文。」 / Twitter
- 2016-204.pdf
- suzakiさんはTwitterを使っています 「この論文は Date of Publication: 13 September 2021 です。 もうアクセスできないEarly versionはすぐ出たのですが、タイトル変更や謝辞の書き方のやり取りで少し時間が掛かりました。 最終版をアナウンスできてうれしいです。」 / Twitter
- TS-Perf: General Performance Measurement of Trusted Execution Environment and Rich Execution Environment on Intel SGX, Arm TrustZone, and RISC-V Keystone | IEEE Journals & Magazine | IEEE Xplore
- suzakiさんはTwitterを使っています 「IEEE Access論文が出た TS-Perf: General Performance Measurement of Trusted Execution Environment and Rich Execution Environment on Intel SGX, Arm TrustZone, and RISC-V Keystone [Impact Factor 3.745] TEE実装に依存せずTEE内の実行時間を計測する一般的手法です https://t.co/PMSbfynUtk https://t.co/zJbx3x3Kwb」 / Twitter
- Software Guard Extensions - Wikipedia
- インテル® SGX 命令とデータ構造の概要 | iSUS
- ダウンロード Windows* 用インテル®ソフトウェア・ガード・エクステンションズ (インテル® SGX) ドライバー
- Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE
- sgxrop/sgxrop: The code to the SGX-ROP paper
- Intel SGXからのデータ奪取手法が開発 - ごった日記
- Intel SGX のアップデート、および認証キーのリカバリー
- wolfSSL FIPSのIntel® SGX対応 – wolfSSL:Blog
- WolfSSLとWolfCryptのベンチマーク | wolfSSL
- 本当の進化とはこういうこと:質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (2/2) - ITmedia PC USER
- マイクロソフト、クラウド上のアプリを隔離する新技術「Haven」を開発 - CNET Japan
- 北森瓦版 - 【Intel】“Skylake”でSoftware Guard Extensions (SGX) を有効化へ
- 204.pdf
- 跳ね橋を叩いて渡る An introduction to DrawBridge まとめ #kernelvm - by shigemk2
- www.dell.com/support/manuals/us/en/19/latitude-e5570-laptop/LatitudeE5570_OM/Intel-Software-Guard-Extensions-画面オプション?guid=GUID-5D0F897B-F35D-45E9-8B65-F4B2CF32F5E7&lang=ja-jp
- インテルSkylakeプロセッサのリビジョン!I7 / I5 / E3フルリニューアル@goodchinabrand.com
- 2016年2月24日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
- 48146462.pdf
- Teechanの決済プロトコル - Develop with pleasure!
- マネーロンダリングなどの不正利用を防ぐインテルCPUのセキュリティ技術「SGX」 ~Intelがなぜデータセンターで強いのか? その包括的な製品群を徹底解剖- PC Watch[Sponsored]
- 本番稼働でわかった秘匿化技術のチャレンジングなこと - LayerX エンジニアブログ
- PCではもう「Ultra HD Blu-ray」を再生できなくなる、いったいなぜ? - GIGAZINE
- 高梨陣平さんはTwitterを使っています 「Intel Software Guard Extensions (Intel SGX) がUltra HDのBlu-rayの動画再生には必要だが11th generation (or newer) CPUsで削除されてしまった。またドライバからも今後は削除される見込。CyberlinkのPowerDVDでは今後も再生したいユーザは古いIntelコアの使用継続を推奨。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU platform: https://t.co/UMtEUShxlP Comments: https://t.co/24TXMnlGbv」 / Twitter
- Customer Support - Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU (11th generation or above) platform that does not support Intel SGX feature? Why are Ultra HD Blu-ray discs no longer playable after related Intel drivers and the Windows OS were updated on older platforms that support the Intel SGX feature? | CyberLink
- Why can’t I play Ultra HD Blu-ray movies on my new Intel CPU platform? | Hacker News
- 品川@UKさんはTwitterを使っています 「Intel SGX はクライアント向けCPU では既に deprecated になったらしい。 https://t.co/jh7fXblmj5」 / Twitter
- 品川@UKさんはTwitterを使っています 「サーバ向け CPU ではまだサポートされるみたいだが、いつまで続くか。 https://t.co/j0GigagN0c」 / Twitter
- Will SGX be deprecated? · Issue #760 · intel/linux-sgx
- Frank ⚡さんはTwitterを使っています 「Intel deprecates SGX. As a result, new Intel chips won't play Blu-ray disks. https://t.co/pAEQyOkBTP」 / Twitter
- New Intel chips won't play Blu-ray disks due to SGX deprecation
- PowerDVDなどに採用されるIntelのセキュリティ技術「SGX」は「アップデートの面倒くささからくるジレンマ」で脆弱性が伴う - GIGAZINE
- Intel SGX Async Exit Notification "AEX Notify" Lands In Linux 6.2 - Phoronix
TSX
TSX
- とよしまさんはTwitterを使っています 「CPUのほうのTMはその後どうなったんだろ。出す時はハード屋の出す数字で盛り上がってたけど、その後コア増えまくりなのにソフト屋さんから評価とか出てないような。」 / Twitter
- とよしまさんはTwitterを使っています 「STMはそれなりに流行ってるのになぁ。 やっぱCPUのTMは適用しずらいからかな。プログラミングモデル変えて書き換え変えないといけない上に大きな塊で書き換えないと効果薄いし。自分なら大きなライブラリ内で対応・非対応コードをメンテとかやりたくない。しかもスレッドに関わる部分でとか。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim TM のそもそものメリットの1つが雑に書いても結構性能が出る(共有変数の細かいロック制御がいらない)だと思うのですが,マルチスレッドのプログラミングをしてる人は大概玄人でそう言う意味での需要があまりないという点はあるのかなと思っています(昔はまじさんに言われたことでもあるのですが)」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim あとは,「現状の」ハードウェアの TM 実装が Intel/IBM ともに結構制限がきつくて,一定以上の長さのトランザクションは扱えないとか,デバッグ機能が貧弱すぎて原因がさぐれないというのも大きい気がします.というか,共同研究先で学生さんが今デバッグ機能がまともになくて泣いています…」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim ホントに素人がコンテンション気にせず書くとロールバックしまくりで遅くなるわけですしねえ。STXは期待してたのにメルトダウン高速化のためにしか使われてないぞっていう悲しさ。。趣味とCTFで遊んだことありますけど、デバッグしんどいですね。。SDE使えばマシなんだったか」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim たしかに本当に何も知らない人が気軽に書いて使い物になるわけでもないですしね… メルトダウンとかに使われているのは,最初みたときは,ただでさえあんまり使われてないのにこれはサポート切られる流れになるんじゃと暗い気分がありました…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim 簡単にできる系だと広義にはスクリプト言語一般なんかも入るんですかね.ただ,TX の場合はマルチスレッドのプログラミング自体がそもそも一般にはあんま行われないというのがまず課題?な気もします.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim はまじさんが書かれている glibc のって lock elision を使うやつですよね.これに関しては適切にロックで書かれているマルチスレッドのプログラムであればあんまり副作用なく機械的に置き換えられて,はまれば速くなって良いはずとは思うんですけどそんなに使われていないのですかね.」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim 正直全てを忘れたのですが、 HLE vs RTM という意味で lock elision と言われてるのであれば、 RTM の方を使ってるはず?当時流通具合を眺めてた時のスライドが出てきました https://t.co/q4dEM0myBI 最後のページに僕の記憶にあった「簡単なケースでは速くなってた」、がありますね」 / Twitter
- TSX - 使いかたいろいろ - glibc の pthread_mutex_t
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim てっきり HLE の方だと思っていたのですが,RTM でソフトウェア的に実装するものだったのですね. 最後のページのものについては「クリティカルセクション内でN個のうちM個のカウンタをランダムに選んで更新…」とかだともうちょっといい感じになってたかもと言う気はするのですが,なんともですね.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim なんだかんだシングルスレッド性能がまだ上がり続けているので今のところは良いのでしょうけど,いずれそれが止まってしまった時にはみんなでマルチスレッドやってツケを払うような不幸な時代になってしまう事もあるんだろうかなと言う気もしました.」 / Twitter
- Intel、TSX対応で約6倍に性能が向上した「Xeon E7 v3」 - PC Watch
- 北森瓦版 - “Haswell”のTSX命令にエラッタが発見され、無効化される処置がとられる
- 北森瓦版 - TSX命令のエラッタは“Broadwell”世代で修正される模様
- 20140906
- 20150912
- 20150509
- 20140823
- Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
- トランザクションメモリのサポートが明らかとなったIntelのHaswell (4) トランザクションメモリをサポートするハードウェアを推測 | マイナビニュース
- トランザクションメモリのサポートが明らかとなったIntelのHaswell (1) マルチプロセサにおけるロックの必要性 | マイナビニュース
- Intelの次世代Core「Haswell」のトランザクションメモリを読み解く(前編) | マイナビニュース
- Hiromichi Itouさんのツイート: "うーむ セキュリティ最優先な顧客にはTSXを無効化する手段を提供しないとダメかもなー あとTSX登場時には、すでに指摘があったのね https://t.co/4dpFUKjZq1"
- TSX improves timing attacks against KASLR | Bromium Labs
- scivey/xact: multi-way atomic compare-and-swap with x64/TSX
- Restricted Transactional Memory の概要
- Intel TSX について x86opti
- TSX - TSX RTM
- Haswell のトランザクション同期 | iSUS
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
- ASCII.jp:Haswellで導入された新機能「TSX」とは? IDF 2012より (2/4)
- Haswell の TSX 機能にエラッタが発見される - 教育は参考ブログ
- yohさんはTwitterを使っています 「Intel TSX-NI https://t.co/SRl6EEGujc まじで死んでた SDMからも消えたのね」 / Twitter
- Transactional Synchronization Extensions - Wikipedia
- TSX は cmpxchg のかわりに使えるか? - Fixstars Tech Blog /proc/cpuinfo
PAIR
- Hot Chips 24 - 乾いたタオルを絞るIvy Bridgeの省電力技術 | TECH+
Branch trace - Branch Monitoring Counters ?
- Branch trace - Wikipedia
- Perf tools support for Intel® Processor Trace - Perf Wiki
- Branch Monitoring pentium 4 - Google 検索
- IA32_SDM_Vol3B.book - 253669.pdf
- IPSJ-JNL5702044.pdf
- Deprecated Technologies - 004 - ID:655258 | Core™ Processors
IBT
- FadisさんはTwitterを使っています: 「Linux 5.18から利用可能になったカーネルのIBTサポートについて。Tiger Lake以降のIntelプロセッサでは間接ジャンプが意図したアドレス以外に飛んだ事を検知するIBTが使える。これが有効だと攻撃者はジャンプ先アドレスを書き換えて任意のコードを実行するのが難しくなる https://t.co/DVCIYY1Q53」 / Twitter
- FadisさんはTwitterを使っています: 「IBTが有効な場合間接ジャンプで飛んだ先がendbr命令でない場合例外が飛ぶようになる。間接ジャンプで飛んでくる事が想定されるコードの先頭にだけendbrを置いておく事で、攻撃者が飛び先を書き換えられる不具合があったとしても、そこから選べる飛び先が著しく制限される」 / Twitter
- FadisさんはTwitterを使っています: 「カーネルのIBTサポートは基本的にコンパイラのサポートを利用するが、アセンブリで実装された部分には手作業での対応が必要になる他、ファームウェアなどの外のコードの実行前に一時的にIBTを切る処理が必要になったらしい。変更はカーネル空間のみを対象にした物でユーザ空間に移る時はIBTが切られる」 / Twitter
- FadisさんはTwitterを使っています: 「endbrのオペコードは従来からx86_64で効果が無いので事実上nopと解釈されていた物で、IBT非対応のCPUでは単純に無視される。IBTはretに対しては働かない為retpolineと互換性がないが、Alder Lake以降のIntel CPUではIBTが有効な間接ジャンプは投機的実行が制限される為、retpolineを使う必要がなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「lwnの記事にobjtoolで間接ジャンプ先になり得ない関数を見つけてendbrを潰しておく、って話がさらっと書かれてるんだけど、ある関数が間接ジャンプ先になり得ない事をバイナリの静的解析で保証するのって無茶苦茶難しいのでは…」 / Twitter
- まさみさんさんはTwitterを使っています: 「@fadis_ あれ、そういう話でしたっけ?特殊な関数にマーキングはしますが、基本静的コールはコンパイラでendbrを飛ばしたところを呼び出す、そうでない呼び出し方をされる関数は、関数ポインタから呼ばれるので間接コールになるということかと思ってましたが。」 / Twitter
MP
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@PG_MANA_ @Wagahaiha_toto マルチコア初期化は興味あります!マルチコアの起動って、やっぱり16ビットからのモード遷移コードをアセンブラで書く必要があるんですか?」 / Twitter
- PG_MANAさんはTwitterを使っています 「@uchan_nos @Wagahaiha_toto そうですね、Methylenixでは16bitからのブートコードを書いてます。 自分はあまりUEFIを使ってないのでそうしましたが、UEFIにはMpService Protocolというのがあるらしいので、それを使うと書かなくてもいいのかもしれません....」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@PG_MANA_ @uchan_nos @Wagahaiha_toto MpServiceでAPを立ち上げて処理を走らせることはできますけど、制御をUEFIに返さないとアボートされます。なのでこのケースのようにAPの永続的な管理を得たい場合は使えないですね(Boot ServicesなのでOSからは使えないですし)。 しかしFull Rust素敵です。Rust勉強の参考にさせていただきます。」 / Twitter
- PG_MANAさんはTwitterを使っています 「@SatoshiTanda @uchan_nos @Wagahaiha_toto 情報ありがとうございます。 なるほど、あくまでUEFIアプリケーションで並列処理をしたい時に使うような感じなのですね...参考になります。 OS&Rustの勉強も兼ねて書いているOSですが、Rustでのベアメタル入門として参考にしていただけるなら大変嬉しく思います。」 / Twitter
- PG_MANA@FUKさんはTwitterを使っています 「SDMに書いてある初期化手順は一斉にStartupIPI出してセマフォ取りながら初期化していく方式だけど、BSD系列見る限りではAPIC IDリストアップして個別に初期化してるのでそれに従っている」 / Twitter
ME
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「これってMEの話であってUEFIとは別だと認識してたんだがちがうのか…?」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@syuu1228 いや ME の話で合ってると思います」 / Twitter
- Masanori KusunokiさんはTwitterを使っています 「そういえばUEFIの奥底で動くMinix 3はその後どうなったんだろうか?Minix3のリポジトリをみるとこの数年あまり動きがなさそうだけどな / “インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている…” https://t.co/Ky8XyIS9J8」 / Twitter
- インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
microcode
Linux
Arch Linux
- マイクロコード - ArchWiki
- Microcode - ArchWiki
- Intel Microcode Updateの設定 | 普段使いのArch Linux
Debian
- Microcode - Debian Wiki
- Debian -- jessie の intel-microcode パッケージに関する詳細
- Debian -- wheezy の intel-microcode パッケージに関する詳細
- kanamonoさんのツイート: "@itoooon 多分同じURLにたどり着かれたと思いますが、Debianでは次のURLで議論されておりました。 https://t.co/kirM719eGY"
- #886367 - intel-microcode: coming updates for meltdown/spectre - Debian Bug report logs
Ubuntu
- How to update Intel microcode properly? - Ask Ubuntu
- Ubuntu Manpage: update-intel-microcode - download current Intel processor microcode
- Ubuntu改造日記 x86高速化 Intel&AMD 最新Microcodeアップデート編 その7: Kapperのブログ 新館
- https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
- linux - What is Intel microcode? - Stack Overflow
- Building Intel CPU Microcode Updates Directly into the Linux Kernel - DOTSLASHLINUX
- Intel microcode - Gentoo Wiki
- drivers - Should I enable the intel-microcode (Linux Mint 18)? - Unix & Linux Stack Exchange
- LinuxでCPUのマイクロコードをアップデートする方法 | マイナビニュース
- LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 | TechCrunch Japan
- Linuxカーネルがx86 microcodeを扱う処理について - Qiita
- Intel IFS Ready To Weed Out Faulty Silicon With Linux 6.2 - Phoronix
Twitter
- 高梨陣平さんのツイート: "CPUのマイクロコードは企業の独自技術で良く知られていない。マイクロコードは更新は可能だが最新のCPUは暗号技術で防いでいる。しかし2013年レベルのCPUはカスタマイズが可能だ。マイクロコードをリバースエンジニアリングで解析し自らのプログラムを記述した詳細を公開。解析には電子顕… https://t.co/FA4AzYVxky"
- Hacker News 100さんのツイート: "An introduction to reverse-engineering x86 microcode and writing it https://t.co/QmRjk0SmNj (https://t.co/mY2Hh7cEXg)"
- media.ccc.de - Everything you want to know about x86 microcode, but might have been afraid to ask
- An introduction to reverse-engineering x86 microcode and writing it | Hacker News
- まさみさんは語りたいさんのツイート: "なんだ、マイクロコードのファイルを開いたら、releasenoteにインストールの仕方が詳しく書いていた。"
- Hiromichi Itouさんのツイート: "お、4.15.2出てる https://t.co/JLkHHhwM9S 問題のあるmicrocodeを排除する仕組みがマージ x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes"
- LKML: Greg KH: Linux 4.15.2
- suzakiさんのツイート: "マイクロコードの更新は、 1.64bit仮想メモリの特定領域に更新フォーマットに従ったコードを置く。 2.MSRに0xc0010020をセット。 3.wrmsr 命令で更新。5,000 cyclesで終了。"
- 高梨陣平さんはTwitterを使っています 「研究者がIntelの秘密鍵を暴いた。 IntelによるCPUのマイクロコードの更新等が復号可能に。パッチがどのように修正しているか等が明らかに。」 / Twitter
- LobstersさんはTwitterを使っています 「In a first, researchers extract secret key used to encrypt Intel CPU code https://t.co/7f81XS08m1 #crypto #hardware #security https://t.co/8qfgsmXAxw」 / Twitter
- In a first, researchers extract secret key used to encrypt Intel CPU code | Lobsters
- In a first, researchers extract secret key used to encrypt Intel CPU code | Ars Technica
- Liran AlonさんはTwitterを使っています 「https://t.co/XqsW3wY07b Intel reveals XuCode: Code loaded as part of BIOS early microcode update, stored on DRAM (PRM protected) and implements subset of SGX instructions. CPU executes XuCode in special XuCode-mode which include macro-ops translating to uops outside of x86 ISA.」 / Twitter
- XuCode: An Innovative Technology for Implementing Complex Instruction...
- Download Linux* Processor Microcode Data File
- 2015 年 6 月付の Windows 用インテル CPU マイクロコード更新プログラム
- Update Intel CPU Microcode | dereenigne.org
- microcodeって、何 ? | (まだ無題 ; そのうち変更するかも)
- 本の虫: Intelのドキュメント化されていないマイクロコードアップデート用のバイナリの考察
- 第132回 CPUマイクロコードのアップデート方法(FreeBSD):BSD界隈四方山話|gihyo.jp … 技術評論社
- Microcode Update Guidance
- Mitigation strategies for JCC microcode
- Loading Microcode from the OS
- chip-red-pill/uCodeDisasm
- Intel CPUのマイクロコードを変更可能な2つの未公開インストラクションが発見された
- Intel製CPUのマイクロコードを抽出できるソフトウェアが公開される - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Intel Atomチップ用のマイクロコード (CPUの動作自体が記述されているプログラム) を解読するプロジェクト。IntelのマイクロコードはXuCodeという(x86に似た)命令セットで書かれている。実際に解析するのはアップデート用のファイルで、これ自体がELFバイナリである。 https://t.co/AegQhLowOa」 / Twitter
- Maxim GoryachyさんはTwitterを使っています: 「Today we've published Intel Microcode decryptor! It gives you an amazing opportunity for researching x86 platforms. You can understand how Intel mitigated spectre vulnerability, explore the implementation of Intel TXT, SGX,VT-x technologies! Enjoy it! https://t.co/CrMYbrPu03 https://t.co/pW6iQoUGLJ」 / Twitter
- chip-red-pill/MicrocodeDecryptor
- Intel Releases November 2022 CPU Microcode For Various Functional Issues - Phoronix
分岐予測
- ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
- そして最近の分岐予測について2 - なるせにっき
- NAKAMURA Minoru's Diary (2010年4月)
- 分岐予測の簡単な歴史 – Part 1 | POSTD
- 分岐予測の簡単な歴史 – Part 2 | POSTD
- 分岐予測の簡単な歴史 – Part 3 | POSTD
- ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
- そして最近の分岐予測について2 - なるせにっき
BIOS
- Option ROM - Wikipedia
- Power-on self-test - Wikipedia
- Power On Self Test - Wikipedia
- Tips BIOSブート仕様その1 概要と用語
- Tips BIOSブート仕様その2 IPLデバイス
- Tips BIOSブート仕様その3 IPL優先度
- Tips BIOSブート仕様その4 BCV優先度
- Tips BIOSブート仕様その5 POSTシーケンス処理
- Tips BIOSブート仕様その6 データ構造と補足説明
- satさんのツイート: ""BIOS"という言葉自体の初出はCP/Mのはず。意味はIBM PCのそれとは全然違うんだけど"
vPro
匠の部屋
- 【匠の部屋】「電源オフ」でも使えるリモートデスクトップはなぜ動くのか? 進化し続けるインテル vPro プラットフォームの秘密 - INTERNET Watch[Sponsored]
- 【匠の部屋】なぜvProはファイアウォールを簡単に突破できるのか? - INTERNET Watch[Sponsored]
- 【匠の部屋】その問題、匠が解決します! vPro導入時の困りごとアンケート募集 - INTERNET Watch[Sponsored]
- 【匠の部屋】vPro導入!で悩みがちな初期設定?「CTRL+Pの押し方」からWi-Fiの設定方法まで - INTERNET Watch[Sponsored]
- 【匠の部屋】vProで使うべきツールはどれ? ツール不要の「Web UI」から、大規模環境向けの「Intel EMA」まで一挙紹介 - INTERNET Watch[Sponsored]
- 【匠の部屋】USB-LANアダプターでvProが使えない! でも起動させたい…… - INTERNET Watch[Sponsored]
- 【匠の部屋】vProでMEBxのパスワードを忘れてしまった……。どうすればいい? - INTERNET Watch[Sponsored]
- 【匠の部屋】vProは「OSと別のIPアドレスを持てる」……でも、同じIPアドレスにしたほうがいい理由 - INTERNET Watch[Sponsored]
- 【匠の部屋】「なぜかEMAでだけ」vProの遠隔操作ができない、こんな時どうする? - INTERNET Watch[Sponsored]
- 【匠の部屋】vProでBitLockerのパスワードは遠隔解除できる? vPro PCをNASにする場合、遠隔操作にモニターは必要? - INTERNET Watch[Sponsored]
- 【匠の部屋】vProを使い始めるために。インテル AMTを有効にする3つの方法 - INTERNET Watch[Sponsored]
- 【匠の部屋】[Lenovo編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[DELL編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[dynabook編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[富士通編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[HP編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[パナソニック編]メーカー別、AMTの設定方法/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】USBメモリを利用してより確実にプロビジョニングを行う「USB Provisioning」とは? - INTERNET Watch[Sponsored]
- 【匠の部屋】インテル MEBxのパスワードはリモートで変更できるか? - INTERNET Watch[Sponsored]
- 【匠の部屋】「第12世代Core」でvProはどう変わった? 最新PCにおけるAMTの設定/MEBxの入り方 - INTERNET Watch[Sponsored]
- 【匠の部屋】[NEC編]メーカー別、 AMTの設定/MEBxの入り方。vPro EssentialsとEnterpriseの違いとは? - INTERNET Watch[Sponsored]
- 【匠の部屋】ドキッ! 情シスだらけのオンラインミーティングが開催決定!! 参加者求む!! - INTERNET Watch[Sponsored]
- 【匠の部屋】PCを修理に出したあと、vProはそのまま使えるの? - INTERNET Watch[Sponsored]
- 【匠の部屋】インテル EMAの初期設定をおさらい、「あれ?」と思ったら注意すべきポイントは? - INTERNET Watch[Sponsored]
- 【匠の部屋】PCをWi-Fiで管理する場合の疑問を匠に相談してみた! - INTERNET Watch[Sponsored]
- 【匠の部屋】vProはインテル以外のアプリでも使えるの? 資産管理ツールで使えたら便利そう! - INTERNET Watch[Sponsored]
- 【匠の部屋 2022年総集編】vProをこれから導入する人にも、すでに導入した人にも役立つvProの匠のワザ - INTERNET Watch[Sponsored]
Intel vPro レビュー
- 【Intel vPro レビュー:第1回】リモートワークにvProを活用!個人で環境を作ってみた - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第2回】PCの電源をリモートでオン!……はあっさり成功 - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第3回】「PCがフリーズしてしまった!」をリモート復旧、しかもネット越しに! - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第4回】ネット越しの「OS再インストール」もやっぱり簡単 - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第5回】「大量のPCを一括再起動」も簡単、無償の強力管理ツール「Intel EMA」を使ってみた - INTERNET Watch[Sponsored]
- 「電源オフでもノートPCを遠隔制御」巨大データを扱うスタートアップ企業がvProを選んだ理由 - INTERNET Watch[Sponsored]
- 「在宅+オフィス勤務」に最適化した新型レッツノート。パナソニックがこだわった「多様な働き方のためのPC」とは? - INTERNET Watch[Sponsored]
- 社長兼レーシングドライバー、多忙極める経営者が選んだノートPCとは? - INTERNET Watch[Sponsored]
- vPro搭載dynabookで「最新に更新しているつもりだった…」を無くしていく、既に800台を導入した「攻めのセキュリティ」とは? - INTERNET Watch[Sponsored]
- コロナ禍のエッセンシャルワークで求められるPCの性能とは? 名古屋市療養サービス事業団がvProを選んだ理由 - INTERNET Watch[Sponsored]
- モバイルノートPC、リモートデスクトップ、vProで目指す、ポルシェディーラーの新しい営業スタイルとは? - INTERNET Watch[Sponsored]
- vPro導入で学校のPCを節電! 2022年開校のIT先端校「京都TECH」に聞く、IT活用とクリエイティブ人材の育成法 - INTERNET Watch[Sponsored]
- 【窓の杜、vPro入れました!】テレワークで困った「会社に置かなきゃいけないPC」問題、本格リモート制御で解決してみた - 窓の杜[Sponsored]
- 【悩める情シスのvPro入門】PCの資産管理って、なんのために必要なの? - INTERNET Watch[Sponsored]
- 【悩める情シスのvPro入門】「シンクライアント」と「ファットクライアント」、結局どっちがいいの? - INTERNET Watch[Sponsored]
- テレワークは「管理ツール」で、さらにはかどる!? PC・スマホを一括管理するVMware Workspace ONE、そしてvProを連携させると何ができるのか? - INTERNET Watch[Sponsored]
- なぜWindows 11は登場したのか? インテルとマイクロソフトの対談で語られた驚きのセキュリティ事情 - INTERNET Watch[Sponsored]
Lord of the Ring(s)
- FadisさんはTwitterを使っています 「Intel CPUのプロセッサ間を結ぶリングバスをリバースエンジニアリングして、あるプロセッサで観測したバスのレイテンシの時間変化から、同じバスに繋がる他のプロセッサが何をやっているかを予想するサイドチャネル攻撃が現れたらしい https://t.co/0Uy03jAfyq」 / Twitter
- Researchers Discover Intel CPU Ring Interconnects Vulnerable To Side Channel Attack - Phoronix
- FPSG-UIUC/lotr: Source code of the paper "Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical"
- [2103.03443] Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical
本の虫
- 本の虫: x86のmov命令はチューリング完全
- 本の虫: x86のMMUはチューリング完全である
マイナビ
- IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編 (1) AVX2について | マイナビニュース
- Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
- HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
- HPC性能が大幅に強化されたHaswell(後編) - HPCとして通用する性能を実現 | マイナビニュース
- 新Xeonで何が変わったか - 内部構造を解説 (2) | マイナビニュース
POSTD
- モジュロ演算の替わりとなる高速処理 | コンピュータサイエンス | POSTD
- CPUマスク | プログラミング | POSTD
Qiita
- x86_64での再帰ページマッピング - Qiita
Twitter
その他
- tanakmura🌛さんのツイート: "https://t.co/k7h93oJ0kp これの話してもいいかな。紹介と、正しい値を取るための細かいテクニックとか。知ってる人は知ってるだろうけど、一覧にしてあれば、どれか知らない人にヒットするかもしれないし、一回ぐらいちゃんと説明したい気がする。"
- tanakamura/instruction-bench: instruction-bench
- Kazuho Okuさんのツイート: "SkylakeでPAUSE命令が14倍遅くなってスピンロックやばいって話 / “Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing …” https://t.co/6yus862byg"
- Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus
- InstLatX64さんのツイート: "#Intel released the 68th edition of the Software Developer’s Manuals with V2 Extended Topology Enumeration Leaf in CPUID.1Fh for Module/Tile/Die levels https://t.co/qh7jNcQQFN… https://t.co/WthEDZNp0Y"
- 高梨陣平さんはTwitterを使っています 「Intel CPUの隠し命令を探すお話。Intelのドキュメントの貧弱さを嘆きつつ、過去に起こった問題をさらい、最大15byteに及ぶ命令空間を全部実行するのは無理なので戦略が必要との解説。optesterが公開されている。 https://t.co/RWH8b5nYuz」 / Twitter
- Hacker News 100さんはTwitterを使っています 「Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64 https://t.co/ITvc94IBfE (https://t.co/6rglM7O3r4)」 / Twitter
- undocumented-cpu-behavior.pdf
- Undocumented CPU behavior: analyzing undocumented opcodes on Intel x86-64 (2018) [pdf] | Hacker News
- Satoshi TandaさんはTwitterを使っています 「Intel SDM added the Ice Lake specific MSRs. Ice Lake introduced the concept of the access level to lock the configuration registers as the 2nd line of defense. Once the DONE bit is set, they are automatically RO. @CHIPSEC detects it if the bit is not set https://t.co/fFoB1y7Dnw https://t.co/vo0yBgY2mE」 / Twitter
- Add ICL support · chipsec/chipsec@35a614c
- (1) Satoshi TandaさんはTwitterを使っています 「Happy to see the platform-level improvement to reduce a chance of shipping devices without proper security configurations (eg, setting lock bits individually).」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled https://t.co/ggkdgU7EFH @ZDNet & @sjvnから AMDとIntelが長年蓄積されたx86の例外周りのおかしな仕様を何とかしようとしてる。」 / Twitter
- Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled | ZDNet
- Makoto Kato ︎︎さんはTwitterを使っています 「Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system https://t.co/aPKWdCzIGf」 / Twitter
- Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system – random blog
- Naoya HoriguchiさんはTwitterを使っています 「multi-tiered memory 論文 https://t.co/bkd51I0FOM、最近メインラインにマージされた Intel の実装よりもうまく最適化しているようだけど、ページごとに 32byte 管理領域が必要になるからちょっと厳しそうですね。」 / Twitter
- Exploring the Design Space of Page Management for Multi-Tiered Memory Systems | USENIX
- Naoya HoriguchiさんはTwitterを使っています 「どっちの実装も AutoNUMA を前提にしているから、色々知ってないと手が出ないなあ...」 / Twitter
users
@hisak
- Hisaki Oharaさんのツイート: "SkylakeとGoldmontがArchitectural Performance Monitoring version 4ってのをサポートしているのか。いつのまにこんなにversionが上がっていたとは。もうよく分からん。。 #IntelSDM"
- Hisaki Oharaさんのツイート: "Intel SDM Vol.3 8.2節 MEMORY ORDERING をみて、何言ってんだこいつってなった人には大変お勧めだった RT Memory Reordering Caught in the Act https://t.co/Z1JZiXvcti"
- Hisaki Oharaさんのツイート: "いま 48-bit長 CR3 -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
- Hisaki Oharaさんのツイート: "将来 57-bit長 CR3 -> PML5E (9-bit) -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
- Hisaki Oharaさんのツイート: "GAする前にPCOMMIT命令が消え去った経緯がまとめられてるw https://t.co/mexxGMsIDw"
- Hisaki Oharaさんのツイート: "CLWB命令の記述はInstruction Set ExtensionsからSDM Vol.2に移動してた"
- Hisaki Oharaさんのツイート: "Intel SDM rev.64を斜め読みしたけどVol.3はminor updateが多いかなあ。IOMCAの記述でPCIeのspecに触れているのは珍しかった。 https://t.co/WNOD1I9XRN"
@uchan_nos
- OS作れないマン WalB担当さんのツイート: "Intel SDMの9.10.2にあるSTARTUP.ASMが全然本文のアップデートに追随できてなくてワロタ。"
- OS作れないマン WalB担当さんのツイート: "保護モードからIA-32eモード(64ビットモード)に遷移するためにはLMA=1にする必要があるが、LMAは読み取り専用ビットだから、4レベルページングを有効化する手順を行うことで間接的に1にするしかないらしい。64ビットモードではページングが必須と言われるゆえん。"
- ファッション自作OSマンさんのツイート: "カノニカルアドレスは僕もやられた https://t.co/qq4LEbmGYd"
- c - Canonical address - Stack Overflow
- 技術書典4 け-51 x86-64-128さんのツイート: "Interrupt ID でもふつうに通じるよねっていう話。… "
- uchanさんはTwitterを使っています 「これ,まさか,stiの直後にcliしているから,stiの特例によってまったく割り込み許可状態にならないまま永久ループしておるのか?」 / Twitter
@deep_tkkn
- Deep(Ph.D Go player)さんのツイート: "smp_affinityもいじったし、MSIのdest_modeもlogicalになるようにしてみたけど、割り込みが1コアに集中するのなんで"
- Deep(Ph.D Go player)さんのツイート: "CONFIG_HOTPLUG を無効にしろみたいな記事みたから無効にしたが効果ない"
- Deep(Ph.D Go player)さんのツイート: "intremap=off しないと MSI の dst-mode が physical になるからそれもやった"
@liva_jy
- Livaさんのツイート: "@utshina2 なるほど、ありがとうございます!つまり、カーネルコード側のセグメントを事前にチェックしておいて、システムコールの度に毎回チェックするのを避けるという事ですよね。確かにそれはかなり早くなりそうです。"
- Livaさんのツイート: "一回くらい自分でfastcallとint $$の性能比較をした方が良さそう。 #liva_notebook"
@NerryN3
- 光宙🌟さんのツイート: "#DB(Debug Exception)っていつの間にReservedになってたの"
- 光宙🌟さんのツイート: "https://t.co/wCoBYm7kPW"
- Nerry@求職中さんのツイート: "x86のpush命令のFF /6エンコーディングと一見対になりそうなFF /7はずっと未定義命令で、実際に対になってるpop命令の8F /0エンコーディングの/0以外はずっと未定義っていう謎の組み合わせ"
- Nerry@求職中さんのツイート: "よく調べたら8Fの/0以外はAMDのXOPプレフィックスに使われてた"
- Fadisさんのツイート: "Intel、10nm世代のプロセッサでECCエラーなどのハードウェアの異常を検知する(EDAC)ドライバ、i10nm_EDACをLinuxカーネルに追加。新しいマイクロアーキテクチャの呼び名、それで良いんだ… https://t.co/NvFJYUJ53F"
- I10nm Is Intel's New EDAC Linux Driver For Icelake Server CPUs - Phoronix
RISC-V
- IntelがRISC-VアーキテクチャのCPUコアを同社のプラットフォームに採用 - iPhone Mania
- Miura HidekiさんはTwitterを使っています 「RISC-V、確かに興味深いが、バイブル的な本を読むとものすごく独善的で大丈夫かしらん?という気分になる。あと、アセンブラ・ディスアセンブラは作りにくそうだなという命令ビットパターンですわね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「経験則から、独善的な物言いをする技術は大体短命(その間に熱狂的な支持を受けるわけだが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「逆にものすごくたくさんの既存技術を集めて、徹底的に研究して既存技術で優れたものは評価したうえで取り込んだような技術はものすごく強い」 / Twitter
- hrk先生さんはTwitterを使っています 「@miura1729 横から失礼します。RISC-Vについて一番懸念しているのは、Specificationベースでバリエーションを許している点です。なにかT〇〇〇プロセッサのことが思い起こされます。想像される将来像はRISC-Vベースシステムなのに互換性がないものが多種あるというものです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@Prof_hrk RISC-Vがある程度のシェアを取るようなことになれば、シェアの大きい実装かキラーアプリケーションに合わせて事実上必須の拡張機能が決まってくるような気がします。掛け算のないRISC-V CPUでトースターの制御をするとか本当にありえるのかな?とも思います。」 / Twitter
- hrk先生さんはTwitterを使っています 「@miura1729 そこが今後の課題と思います。コンソーシアムのメンバーであっても、本質的には競合社のあつまりなので他社の仕様に従うインセンティブはないと思っています。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@Prof_hrk いまCPUメーカが独裁的に行っている仕様の決定を民主的に出来るかというはなしですね。インターネット技術関連では上手く行っていますけど、スーパーコンピュータから組み込みまで幅が広いですからね。」 / Twitter
HT
- Shirouzu Hiroaki(白水啓章)さんのツイート: "HT初搭載のPentium4だと、パイプラインの深さもあって演算器がスカスカになりやすかった。 なので、手動で依存関係を減らす順序にするだけで(シングルスレッドでも)改変blowfishの速度が4倍になった記憶。 https://t.co/jmWuRKkHU7 (その時の簡易メモ)… https://t.co/ctaTpf3pLh"
- 私的メモ(2003年12月版)
- Kazuho Okuさんのツイート: "典型例以外で重要なケースとしては、レイテンシの大きな命令の実行中に別スレッド動かせるとか。AES-NIがこのパターンなのでウェブサーバではHT有効にすべきという理解 参考: https://t.co/zYqvz1KJp5… "
- Kazuho Okuさんのツイート: "あー正確に言うと、最近のAES-GCM実装は並列処理がんばってるからHTオフでもいいけど、昔ながらのAES-CBCやパケット番号暗号化が入るQUICではAESNIのレイテンシが問題になるケースがあり、従ってryというところです"
- Kazuho Okuさんのツイート: "っていうかHTはメモリレイテンシの隠蔽というより、空いてる演算器を埋める仕組みとしての側面が大きかったような気もしてきた"
- ts4さんのツイート: "Hyper-Threading Technology Benefits の節にそういった記述ありますし、Utilization of Processor Resources の節にも、NetBurstのころCPUのリソースぜんぜん使えてなかった的な記述がありますんで、そのへんの稼働率を上げるのが目的だったのではないかと https://t.co/MSakkBQaGk… https://t.co/LOl4zG2r3v"
- Hideyuki Tanakaさんのツイート: "HTTの効果がでかいのは典型的にはメモリのランダムアクセスしまくりでストールしまくりの演算器遊びまくりみたいな時で、実際こういうケースだと倍近くまで速くなることがあったけど普通のアプリだと限定的だし、CPU側からするとOoOを頑張ってIPCを稼げば稼ぐほど効果が少なくなるというジレンマ(´・_… https://t.co/KoJ0OZUdjs"
- まさきはるか(Usk)さんのツイート: "実際、HTに効果があるのかないのかが、ベンチマーク人とサーバー人の発言しかなくて全くわからない。コア数少ないときは効果ある気がしてるけど…… "
- Hideyuki Tanakaさんのツイート: "2年ぐらい前の人に、インテルが8コア8スレッドのi7を出しそうとか言うと、どんな顔するかな(´・_・`)99割ぐらいの人はガセだと思うだろうけど"
TSX
- FadisさんはTwitterを使っています 「IntelがTSX拡張命令を使えなくするマイクロコードの更新を用意している話。Transactional Synchronization Extensions(TSX)はトランザクションの開始から終了までの間に行われた複数のメモリ操作が他のCPUによる操作とぶつかった場合に開始前まで戻って処理をやりなおす機能 https://t.co/iE8FNFEg7s」 / Twitter
- Intel To Disable TSX By Default On More CPUs With New Microcode - Phoronix
- FadisさんはTwitterを使っています 「TSXはSkylakeで登場した当時、複数のCPUが同時に触ってもスケールするデータ構造を作りやすくする夢の機能と考えられていたが、同一ホストの別のCPUで実行されるプロセスがTSXの実行時間を観測する事でサイドチャネル攻撃が可能になる脆弱性(CVE-2019-11135)が報告されていた」 / Twitter
NMI
- 品川 高廣さんのツイート: "「BitVisor 2018年の主な変更点」では、BitVisor における NMI 処理の問題が述べられています。パススルー型 VMM でハードウェア仮想化支援機構を使ったとしても、NMI を本当に正しく処理するのはとても難しそうだと実感させられます。https://t.co/h2grTghKus"
- BitVisor Summit 7「2. BitVisor 2018年の主な変更点」
SMI
- まさみさんは語りたいさんのツイート: "あるある(笑)SMIの処理が強烈に遅くて、「OSに問題があるんじゃないか?」と言われたこともあった。… "
- Yasunori Gotoさんのツイート: "コードギアスR2で時間を止める能力を持っていたキャラがいたけど、主人公が「心の中でカウントしていた数」と「実際の時計の時間」に差があることに気が付いて、その能力を見破るシーンがあったよね。 SMIはOSの中でリアルにそれが起きるんだよね。"
- Yasunori Gotoさんのツイート: "SMIはカーネル(というか割り込まれたCPU)から見ると、時間停止の魔法みたいなものに見えるんだよね。ファームが必要だと判断したら、そこでSMIとして割り込んで、その間ファームがゴリゴリと動くという仕組み。"
- Yasunori Gotoさんのツイート: "昔のカーネルは一定時間内にカウントして、あるハードの能力を図るといったコードが結構あったけど、その間にSMIが入るとOSはカウントできなくなってしまうので、本来のでるべき値に対して実際のカウントの値が異なってしまい、カーネルが異常な動作をするというトラブルが結構あった。"
- Yasunori Gotoさんのツイート: "このため、SMI=トラブル=コードギアスという関係が自分の中で出来上がってしまい、SMIの文字を見るたびに主役のルルーシュ君の声が脳内を駆け巡ってしまうのである。"
- まさみさんは語りたいさんのツイート: "ちなみにSMIはサーバHWのファームウェアの処理なのでOSは関与しません。濡れ衣だー"
Alder Lake
- InstLatX64さんはTwitterを使っています 「How could I miss this ??? So there is a plan for #AVX512 definitely. Maybe it is restricted to ADL-S or 8 bigCore or top SKU (like per-core HyperThreading on #CometLake and Adaptive Boost Technology on #RocketLake) Thx, @PerforatedBlob!」 / Twitter
- HXLさんはTwitterを使っています 「intel Alder Lake 8 big core+8 small core=disable AVX-512 8 big core=AVX-512 https://t.co/LGFkKJWuI1 https://t.co/Vku742CGsh」 / Twitter
- Marco ComerciさんはTwitterを使っています 「@InstLatX64 @PerforatedBlob I thought of a solution to leave power hungry features enabled: a processor driver that migrates the threads that need that instructions on the big cores: the little cores will issue an #UD exception on unsupported features and the kernel will tag and migrate the threads...」 / Twitter
UD発生関数
- tnさんはTwitterを使っています 「わたし「lock; nopでシステムコール発行してるっぽいとこがあるのですがこれなんですか……?」 hikaliumさん「これは意図的にundefined opcodeの例外起こすやつですね」 fadisさん「x86でよくみるやつ」 わたし「えぇ……?」」 / Twitter
- tnさんはTwitterを使っています 「s/システムコール発行/関数呼び出し/」 / Twitter
- とみながたけひろさんはTwitterを使っています 「この手のいかに高速にthunkというかゲートというかを実現するハック、最近は安全性とかに考慮しつつもハイパーバイザー呼び出しで同じように各種ハックがあると聞いて笑っている」 / Twitter
UD0の命令が更新
- まさみさんは語りたいさんのツイート: "ちょうまって、これは酷い。"
- まさみさんは語りたいさんのツイート: "UD0の命令が更新されて変わってしまっている@最新のSDM 0F FF /r UD0 r32, r/m32 Some older processors decode the UD0 instruction without a ModR/M byte. じゃねーよ!"
- まさみさんは語りたいさんのツイート: "これIntelが互換性を捨てましたっていうことじゃないですかーやだー。"
- まさみさんは語りたいさんのツイート: "なあIntel-san、どのプロセッサからこれ変わったんだ・・・?そしてobjdumpはどうバイナリをダンプすればいい・・・?"
- まさみさんは語りたいさんのツイート: "いずれにしてもカーネルの中にテストコード仕込んでおいてよかった感。"
- UD — Undefined Instruction
red zone
- ファッション自作OSマンさんのツイート: "IA32eモード(64ビットモード)でのOSプログラミングのハマりどころ ・アセンブリで関数を書く際、スタックを16バイト整列しないといけない ・red zoneの存在"
- Red zone (computing) - Wikipedia
- 書籍の補足情報
- x64 Assembly Language
- GNU CとUNIXシステムコールだけで実行時アセンブラ ( ソフトウェア ) - 一人一党党 - Yahoo!ブログ
コードレビュー
- Kazuho Okuさんのツイート: "今日はコードレビューで、ファストパスはインライン展開できるようにしつつ、スローパスはコードの密度が問題にならないようextern関数に追い出して下さいという話をして、それは一般論としては正しいんだけど最近の分岐予測の発達したIntel CPUでどうなのか誰か定量的なコメントくだしあ"
- Kazuho Okuさんのツイート: "マイクロベンチで関数展開しない方が速くなるケースがあるのは知ってる"
x64
- るくすさんのツイート: "@liva_jy すみません。超基本的な質問なんですけど、x64のiretq命令実行時のスタックって、rip,cs,rflags,rsp,ssを全部*64bit*でスタックから降ろしてくるんでしたっけ...."
- satさんのツイート: "x86_64の初見殺し仕様です Architecture defines a 64-bit virtual address. Implementations can support less. Currently supported are 48- and 57-bit vir… https://t.co/Om2VjPitlS"
- まさみさんは語りたいさんのツイート: "君らが聖典としているintel SDMもバグってることが多いから注意な。"
- まさみさんは語りたいさんのツイート: "SDMのopcode mapを読むと色々見えてくる。特に最初の命令セットは結構キレイに並んでる。… "
- るくすさんのツイート: "x86もだ。意外と知らなかった超基礎知識。 いやバラバラに並べる意味なんてそりゃあないんだけど。 x86 architecture condition codes https://t.co/NMGe3Mv79a"
- sandpile.org -- x86 architecture -- condition codes
- パーフェクト・鳥頭・ジュニアさんのツイート: "@uchan_nos 確認は出来てないですが、push ax ってオペランドサイズプレフィックス付いてて、push cs には付いて無くないですか?"
- ロボ太さんのツイート: "YMMのシャッフル系命令がいつもごちゃごちゃになるのでチートシート作ってみた。 https://t.co/4kv02PA6uf"
- 中村 実さんのツイート: "Intel先生やべえよ。アフィン変換用の命令を追加するつもりだ。その上、VMMの制御で4KBページを128バイトのサブページ単位に区切って各サブページ毎に書き込み保護を出せるようにするとな。 https://t.co/Tm0IoW8ZHV"
- くまぎさんのツイート: "ハードウェアトランザクショナルメモリは人類にはまだ少し早過ぎる。トランザクション中はprintfもログもデバッガでのトラップも出来ないし、アボート要因の情報が限られるので最終的にはエスパーしかない。あと僕の使い方が悪いのか意外と速くない。"
- とみながたけひろさんのツイート: "整列例外ですね。ロードストア命令でアクセスするアドレスの下位何ビットか(命令や特権レジスタの設定によって異なる)が0じゃないときにでます。x86でもがんばればだせますが普通はでないやつ… "
- moraさんはTwitterを使っています 「動的にバイナリにパッチを当てようとすると、x86の場合当該箇所がpop raxみたいな1バイト命令だとjmp xxxに変えられず困るが、強引にpop raxをjmp命令(e9)にしてしまい「jmp 謎アドレス」に飛ばした上でその「謎アドレス」をmmapしてそこにパッチバイナリを置く手法があるらしい(instruction punning」 / Twitter
- moraさんはTwitterを使っています 「ところで「謎アドレス」が既に使われていたり確保できない場所だったりする場合にはうまくいかないが、jmp <固定アドレス>とする代わりにnear jump命令に書き換えることで問題を先送りにし、near jump先で同様の手続きをするようにすると、ほとんどのバイナリでパッチができるらしい https://t.co/SfYIURRxHY」 / Twitter
- moraさんはTwitterを使っています 「pwnみたいで面白い https://t.co/MF5lM9apTE」 / Twitter
Ring1, 2
- 品川 高廣さんのツイート: "x64 (x86_64) の long mode では ring protection は廃止されて user mode と kernel mode しか無いと思い込んでいたけど、ちゃんと segment 定義して call gate 経由で呼び出せば 64 bit の ring 1 も ring 2 も使えるのね。"
- Nerry さんのツイート: "リング1やリング2が使えてもセグメントベースやセグメントリミットでアクセス制限かけれないしページ属性的にはカーネル扱いなので使い道がない気がします… "
- 品川 高廣さんのツイート: "遅ればせながら、ACM CCS 2018 のこの論文(の動画)を見て、使い道を知ったのですよ。https://t.co/uRVxKJDme7… "
- Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86 - YouTube
- Nerry さんのツイート: "あとで動画見てみます… "
- Lord of the X86 Rings: A Portable User Mode Privilege Separation Arch…
- 品川 高廣さんのツイート: "2018年にもなって Intel x86 のリング保護を使った論文が出るとはね。SOSP '99 の Palladium とどう違うのかとも思ったけど、普段は 64bit で動いて一時的に 32 bit に戻してセグメント&リング保護を有効にしたり、Ring 1 でゲートを作ったり、結構複雑にはなっているんだな。https://t.co/dEQGO5VyI1"
- [1805.11912] Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
- 品川 高廣さんのツイート: "ACM CCS 2018 の論文はこちら。Hojoon Lee, Chihyun Song, and Brent Byunghoon Kang. Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86. In Proc. 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). https://t.co/oxAe4bBkWz"
- Lord of the x86 Rings
- 言えないと恥ずかしいAMD64とEM64Tの違い:64ビットコンピューティング最前線(1/3 ページ) - ITmedia エンタープライズ
- 言えないと恥ずかしいAMD64とEM64Tの違い (l_fig1.jpg) - ITmedia エンタープライズ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のPC-AT機のパタヘネ本、欲しいところ。 (CPU接続なメモリとPCIe/DMAの関係や PCIe routing などを、もう少しクリアに理解したいというか) https://t.co/oNZURSbSnb」 / Twitter
- SSD-to-GPU Peer-to-Peer DMAとバッファ管理(その1) - KaiGaiの俺メモ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(パタヘネ/ヘネパタ本は、CPUとしてx86/64は取り上げるけど、PC-AT機のような全体アーキテクチャはスルーなんだよなぁ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「例えば CPU接続メモリに、PCIeからDMA転送する場合とか、PCIeデバイスは(メモリコントローラとしての)CPUにデータを送り込んでると思うのだが、PCIeデバイスからDRAMまでの経路種類やバス調停の詳細を理解できてない、みたいなモヤモヤ感(笑)」 / Twitter
- FadisさんはTwitterを使っています 「PhoronixによるIntelプロセッサなMac mini上でmacOS 12と他いろんなOSを動かした時の性能比較。タスクによって有利なOSは大きく変わるが最も多くのベンチマークでトップを取っているのがClear Linux、次点でmacOS。太古のx86_64との互換をさっさと捨てる2つが上位に来た形 https://t.co/ezbtolYLZ9」 / Twitter
- macOS 12.1 vs. Ubuntu vs. Clear Linux vs. Windows Benchmarks - Phoronix
- FadisさんはTwitterを使っています 「最初のx86_64プロセッサであるAthlon64が登場してから既に18年。「全てのx86_64プロセッサで使える命令しか使ってはいけない」という要件は既に多くのタスクで無視できないレベルの性能上の足枷になるようになってるんだよな」 / Twitter
- カナやん@みかん本停滞中さんはTwitterを使っています 「@fadis_ Clear Linuxって、今でもx86_64向けじゃないんですか?」 / Twitter
- FadisさんはTwitterを使っています 「@rkarsnk Clear Linuxはx86_64向けでこのベンチマークはx86_64で行われた物です。Clear Linuxの大きな特徴はSSE 4.2を持たない古いx86_64プロセッサのサポートを切って常にここ(Core2末期あたり)までの拡張命令が使える事を期待して良くした点です」 / Twitter
- カナやん@みかん本停滞中さんはTwitterを使っています 「@fadis_ なるほど、「太古のx86_64との互換を捨てた」=「SSE 4.2を持たない古いx86_64プロセッサのサポートを切った」ということなのですね。 macOSがApple Siliconに移行しつつあることもあって勘違いしてしまいました。」 / Twitter
Microkernel・LibraryOS
副作用は定理証明的な世界に閉じ込め困難
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なるほど、興味深い。 同一コアには、OS側で安全なスレッドペアしか流さないお約束にして、対策無しが楽そうではある。 (SMTは本質的に「これで安心」みたいな対策は無理では感)」 / Twitter
- R. ShioyaさんはTwitterを使っています 「質疑では「SMT はセキュリティ的な懸念とかあるけど AMD は今後どうするん?」って質問あったけど,「SMT はゲインも大きいしちゃんと諸々対策してうちらは続けるで」だそうな(聞き間違いでなければ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「副作用は正確に表現/定義できないから、定理証明的な世界に閉じ込め不能、といったイメージある。 (タイミング、電流/電磁波パターン等から、どういう情報がどれだけ漏れているかが定義できたら凄いな) https://t.co/XH44oSGZYO」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「seL4(形式的証明による実装バグ無しOS)と Meltdown/Spectre関係…副作用のため影響を受けると。 対応中だがパフォーマンスとのトレードオフになる話。 (この手の副作用は明示定義は無理=止む無し感) seL4: https://t.co/P9dqbiRoqk ---- Crisis: Security vs Performance https://t.co/h8coMlM0HC」 / Twitter
- L4マイクロカーネルファミリー - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「副作用なんて、タイミングはもとより、もっと外部だと電力消費・電磁波・音波・振動なんてものまであるしなぁ…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu OS 側でなんとかしとけば的な話はしていましたね. 実際それで良いのではと思います.」 / Twitter
L4 以降
KataOS
- てらモス🈚さんはTwitterを使っています: 「> カーネルの実装が仕様に対して正しく行われていることや、Dead-Lock/Live-Lock、Buffer Overflow/Underflow、演算例外、未初期化変数の利用といった実装上の問題がないことを担保している。 https://t.co/YG3r4DtOQI ほぇぇ…(´・ω・`)」 / Twitter
- オープンソースRTOS「seL4」の紆余曲折からマイクロカーネルの進化を俯瞰する:リアルタイムOS列伝(19)(2/3 ページ) - MONOist
- てらモス🈚さんはTwitterを使っています: 「https://t.co/M4ptoaW9dG」 / Twitter
- Capability-based security - Wikipedia
- てらモス🈚さんはTwitterを使っています: 「https://t.co/uRj6wSd1Oo」 / Twitter
- L4マイクロカーネルファミリー - Wikipedia
- てらモス🈚さんはTwitterを使っています: 「知らない概念が次々出てくるやん(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「なるほどアドレス空間の用意とスレッドの提供とスケジューリングとプロセス間通信しかしないから、ファイルシステムとかはユーザー空間で作るのか(´・ω・`)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「懐かしい。1990年代初頭のOSの研究ってこういうノリだったけど、なぜかその後先祖がえりしたんだよね。セキュリティの問題なのか、Linuxなどの台頭なのか理由は分からないけど」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「つまりGoogle先生の組み込み向けKataOSさんは、カーネルはseL4でユーザー空間のツールはRustで作ってるということですかね(´・ω・`)?」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「aarch64-google-kata みたいなtripleが生えてそう(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「L4カーネルの話を聞くかぎり、マイクロカーネルとして有名なMachは性能面に問題があったので性能を出すためにファイルシステムとかを統合していってマイクロじゃなくなっちゃう方向が多かったけど、実際足を引っ張ってるのはIPCで、(続く)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「それでアセンブラで作り直したL3ではマイクロなまま性能が出せることが確認されたので、その方向で発展したのがL4で、seL4というのはさらに形式検証によるアプローチが発展したカーネルなわけね(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「結局CPUのキャッシュに詰めるのが大事...(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「https://t.co/ceQPtlJUEX」 / Twitter
- Announcing KataOS and Sparrow | Google Open Source Blog
- PhoronixさんはTwitterを使っています: 「#Google Announces #KataOS As Security-Focused OS, Leveraging @rustlang & #seL4 Microkernel https://t.co/WkDTRZ669r」 / Twitter
- Google Announces KataOS As Security-Focused OS, Leveraging Rust & seL4 Microkernel - Phoronix
- てらモス🈚さんはTwitterを使っています: 「https://t.co/g7keqb1x5t」 / Twitter
- Googleのセキュリティにフォーカスした「KataOS」を触ってみる - FPGA開発日記
- グーグル、Rustで書かれたセキュアなOS「KataOS」を発表 - CNET Japan
- グーグル、Rustで書かれたセキュアなOS「KataOS」を発表 - ZDNet Japan
- L4 - Wikipedia
- L4 microkernel family - Wikipedia
- L4 ‐ 通信用語の基礎知識
- マイクロカーネル - Wikipedia
- Microkernel - Wikipedia
- 代替OS (PC用) | Netsphere Laboratories
- 2011年11月24日 Linux&Linusにモノ申す!? あのTanenbaum教授が久々にメディアに登場:Linux Daily Topics|gihyo.jp … 技術評論社
- マイクロカーネル - マイクロカーネルの概要 - Weblio辞書
- Microsoft Word - shousai.doc
- L4 · oraccha/omicron Wiki
- An Introduction to Drawbridge(ja) // Speaker Deck
- 品川 高廣さんのツイート: "「Secure Enclave は、Apple がカスタマイズした L4 マイクロカーネルを実行します。」って知らなかった。https://t.co/NBXlx0OfKn"
- iOS_Security_Guide.pdf
- yuYabu☕️さんのツイート: "L4の仕様がまとまってるl4hqというサイト https://t.co/Ig7Z5bzxLn #osdev_moku2"
- L4HQ - The L4 Headquarters
- ぬるぽへさんのツイート: "組み込みではモノリシックなライブラリOSを提供することが多い #osdev_moku2"
- ぬるぽへさんのツイート: "最近のトレンドだと「メモリ空間管理はカーネル空間に持たすことが多い」と表現するらしい、ポリシーはユーザー空間で制御するがマッピングはカーネルでやることを指して > マイクロカーネル #osdev_moku2"
- L4Android
- 社会人でもOSを作りたいさんのツイート: "今日の自作OSもくもく会の発表はほんまに濃かった。L4マイクロカーネルって全体をアセンブリ言語で書くことにより高速化したっていう話、コンパイラの限界を感じる。"
- Takeharu KATOさんのツイート: "正確にはL4の前身のL3がアセンブラでL4の世代は部分的にCで書かれて後々C++になったと思います(C++になった当たりからはちゃんと追ってないのですが)。… "
- ぬるぽへさんのツイート: "唐突に気づいてしまったんですが、マイクロカーネルには厳密にはプロセスという概念はないのに、実行プリミティブ間通信をIPCと呼ぶとはこれいかに"
- HermiTux | A binary-compatible unikernel
- ssrg-vt/hermitux: A binary-compatible unikernel
- unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Shinichi MiyazawaさんはTwitterを使っています: 「形式検証済みのマイクロカーネルといえば、seL4が有名。 https://t.co/zli9rN7cXA」 / Twitter
- Home | seL4
- The seL4 Microkernel – An Introduction - seL4-whitepaper.pdf
- mumumuさんはTwitterを使っています 「Evolution of the PikeOS Microkernel VMMもMicrokernelの一種という思想で,L4から派生した自分たちのOS(VMM)の上にRTOSとGPOS,そのた実行エンジンを載せて,組込み環境で使おうぜ,みたいな主張.jailhouseとかQuest-Vとかの源流.07年の論文だが,プロ時ジェクトは現存https://t.co/H1sQyYTBmS」 / Twitter
- PikeOS Certified Hypervisor - SYSGO - Embedding Innovations
- オープンソースRTOS「seL4」の紆余曲折からマイクロカーネルの進化を俯瞰する:リアルタイムOS列伝(19)(1/3 ページ) - MONOist
- suzakiさんはTwitterを使っています: 「Memo. Paper seL4 Microkernel for virtualization use-cases: Potential directions towards a standard VMM https://t.co/EHYsB8QynL seL4の仮想化ユースケース」 / Twitter
- seL4 Microkernel for virtualization use-cases: Potential directions towards a standard VMM - 2210.04328.pdf
Unikernel
Armory Drive
- Andrea BarisaniさんはTwitterを使っています 「Today we are announcing F-Secure Armory Drive. An encrypted storage solution for the USB armory with Secure Boot (our keys or yours, it's your choice), Open Source firmware + API, Firmware Transparency. https://t.co/4NezNBeTYa https://t.co/cL28Iri4AA https://t.co/IcG3NMY08Q https://t.co/7O4FY6ogwA」 / Twitter
- Encrypted USB drive offers secure storage for unlimited data | F-Secure Press Room
- F-Secure Armory Drive | F-Secure
- Home · f-secure-foundry/armory-drive Wiki
- retrageさんはTwitterを使っています 「“The USB armory firmware is a TamaGo based unikernel which allows encrypted USB Mass Storage interfacing for any plugged in microSD card.” GitHub - f-secure-foundry/armory-drive: F-Secure Armory Drive - USB encrypted drive with mobile unlock over BLE https://t.co/0dCEHtjLEP」 / Twitter
- f-secure-foundry/armory-drive: F-Secure Armory Drive - USB encrypted drive with mobile unlock over BLE
- retrageさんはTwitterを使っています 「何をもってunikernelと言うのかわからないが、組み込みでセキュリティ用途でGoが使われている点は面白い」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unikraft: Unikernelを簡単に作成できるツール。Unikernelとはアプリ一体型のOSカーネルで、単一のアプリ用に特化されているので実行効率がよく、悪用されそうなツール類もないため、デプロイに適している。 Unikernel上のnginxはLinuxより166%速く、Dockerよりも182%速い。 https://t.co/UBXd1x4SLl」 / Twitter
- Unikraft
- MirageOS のインストールから Hello World までを試す - Qiita
- MirageOS Unikernel の概要 - Qiita
- 11se252.pdf
- cetic/unikernels: Unikernel and immutable infrastructures
- A Binary-Compatible Unikernel
- unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- unikernelの最新人気記事 30件 - はてなブックマーク
- Docker ContainerとUnikernelの比較 - コードログ
- atc18-zhang-yiming.pdf
- Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo
- ガラスボーさんはTwitterを使っています 「Rust製UnikernelのRustHermitの紹介 https://t.co/WY5OnHkGEu HermitCoreについては以前自分のブログで紹介した論文があるのだけど、同じ研究グループがやっているっぽい? https://t.co/n4jRpDYlBU」 / Twitter
- The RustyHermit Unikernel | Rust OSDev
- ガラスボーさんはTwitterを使っています 「RustHermitを使った論文もVEE '20にあったらしい。追えていなかった https://t.co/qa6ZOCMxZF」 / Twitter
- Intra-Unikernel Isolation with Intel Memory Protection Keys - vee20-mpk.pdf
- FadisさんはTwitterを使っています 「Unikernel: ひとつのアプリケーションとそのアプリケーションを動かすのに必要最小限のカーネルをセットにした物。その実装の一つがMirageOS #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernel systems社: Dockerに買収されたケンブリッジ大学発のベンチャー。MirageOSは彼らによって開発されている #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernelではOSのイメージは書き換えが保存されないようにする。ユーザのコンセプトも必要ないので捨てる。このように必要ないものを削って小さなフットプリントにする。さらにシンプルなブート方法だけをサポートする事で起動を高速にする #kernelvm」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Linux をそのまま unikernel にするものとして UKL や UniLinux はちょっと古くて、最近は Lupine や LKL というかんじです #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「小さいカーネルを手に入れる方法には、スクラッチから必要最小限の機能を持った小さいカーネルを作る手法と、既存の大きいOSからいらないものを削って小さくする方法の2つがあって、ネットワークスタックみたいな再実装したくない物が絡んでくると後者が美味しく見えてきちゃうんだよな…」 / Twitter
- retrageさんはTwitterを使っています 「UKLはRedHatのinternのプロジェクトでやってHotOSで出てきた話だけど,結局ちゃんとした実装になってなかったはず #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernelは必ずしもハイパーバイザの上で動かなくても良いが、ホストに抜けられると困るのハイパーバイザを通す事もある。同等の効果を期待してseccompを絞る事もある。ハイパーバイザが相対的に大きいのでunikernelに必要最小限のハイパーバイザを作る事もある、と #kernelvm」 / Twitter
- 2015年5月14日 フロッピーの呪いがクラウドに!? 久々の大型脆弱性「VENOM」の影響範囲:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「ハイパーバイザが使いもしないデバイスをサポートしていると、アタックサーフェスが増える。たとえばVENOM(CVE-2015-3456)ではQEMUのフロッピーディスクドライブのエミュレーションのバグを突いてハイパーバイザの外で任意のコードを実行する、と #kernelvm」 / Twitter
Solo5
- retrageさんはTwitterを使っています 「今日ちょうどSolo5の話をまとめようとしてたところなのでタイムリー」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「process の isolation でも hardware assisted な VMM 並に強力な isolation が可能であるという主張はどちらかといえば container より(libOS とは関係ない)picoprocess そのもののアイディアに近い」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「picoprocess はもともと Xax というブラウザのプラグインを sandboxing するための仕組み(“ Leveraging Legacy Code to Deploy Desktop Applications on the Web”)」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「container があくまで kernel shared でかつ 300 以上の syscall が許容されてるのに対して,unikernel の single address space や libOS といった性質上 hypercall がたかだか 4,5 のままで既存のアプリのコードが使えてるのは強みなので,この設計構造を潰さないまま process isolation に」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「持っていくと,アプリコードはそのままでも syscall は数個のより narrow な attack surface しか持たない process になるので,同じアプリを動かすにしても secure だし,性能の劣化が unikernel より少ないし,gdb 噛ましたり簡単になるし,いいことだらけだぞっていうのが彼らの主張」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「ほかにも ASLR やメモリの dedup が効くだとか,ブート周りや MMU 周りのアーキテクチャ依存が減ってより minimum なコードになるぞとかいろいろ恩恵があるのは 3.4 節の other benefits を参照のこと。」 / Twitter
- retrageさんはTwitterを使っています 「LKL+muslなlibOSをSolo5に移植してPythonとか動くようにした retrage/frankenlibc at solo5 https://t.co/uRlNV4YizR」 / Twitter
- retrage/frankenlibc at solo5
- retrageさんはTwitterを使っています 「これ、実装よりの細かい話とか書こうとしてるんだけどまだ自分の中でまとまった知見とかがあるわけじゃなくてやるだけ、みたいな気持ちになっているので筆が進まず」 / Twitter
- Unikernels as Processes | Proceedings of the ACM Symposium on Cloud Computing
- 212-Williams
- retrageさんはTwitterを使っています 「そういえばシステム系の論文に出てくるコードって大抵発表されたあと放置されることが多いけど、これはちゃんとメンテされていてすごい。 Solo5/solo5: A sandboxed execution environment for unikernels https://t.co/o8rXWxLfDf」 / Twitter
- Solo5/solo5: A sandboxed execution environment for unikernels
- まちカドおるみんさんはTwitterを使っています 「@retrage “Unikernels as Processes” とかの研究の実装にも利用されているので、研究が一発ネタで終わらずそれを叩き台にした後続が居る、というのも強みなんだと思う。HermitCore → HermiTux、RustyHermit なんかもそうだし、OSv も Mikelangelo Project とか Iso-UniK とかあるし。」 / Twitter
- retrageさんはTwitterを使っています 「@kotatsu_mi なるほど。後続が作れるほど発展性のあるテーマを後の研究のベースにできるぐらいちゃんとしたコードが書かれているということでもあるのでやっぱりすごいと思う。」 / Twitter
- retrageさんはTwitterを使っています 「これとか参考にしつつSolo5のI/F拡張したら面白そう。 Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX https://t.co/n8XnZpVgAg」 / Twitter
- Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX
HarmonyOS
- huawei-iot/HarmonyOS: 鸿蒙系统资料。Docs about HarmonyOS.
- Shinichi MiyazawaさんはTwitterを使っています: 「Harmony OSで面白い点の一つは、形式検証を使っている点。 https://t.co/xJzy2mK95d」 / Twitter
- Harmony-OS-Huawei-Developer-Conference-14-1.jpg (1170×540)
Rump Kernel
- Rump Kernelをつかってみる
- おるみんちゃんさんのツイート: "Rump Kernel が実は論文や学術雑誌以外に本の形でドキュメント化してたのに気がついて Mendeley に放り込んだ"
- おるみんちゃんさんのツイート: "のはいいんだけど,このタイトルページを Mendeley が OCR してこうなるの完全に謎。何をどうしたんだ……?(本の最初のほうに書いてある git の revision がなにかの ISBN にひっかかったとか?… "
- おるみんちゃんさんのツイート: "https://t.co/siYxJuyJjn"
- The Design and Implementation of the Anykernel and Rump Kernels
- おるみんちゃんさんのツイート: "おそらく,Rump Kernel の作者 Antti Kantee の博士論文の改訂ですね。"
- おるみんちゃんさんのツイート: "博論はこれ https://t.co/QKhIrddQ1c"
- Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels
- Linux kernelをUnikernelのライブラリ化する - めもちょー
- まちカドおるみんさんはTwitterを使っています: 「Unikernel というか Library OS の源流には Exokernel が居るんだけど,その上流には SPIN や Chorus,V や Amoeba,Accent といった第一世代の Microkernel/Distributed OS が居るし,Exokernel と Unikernel の間にも Xen や kvm,QEMU だけじゃなくて Nemesis や Libra が居る」 / Twitter
- Unikernel - Wikipedia
- Unikernelな情報 (in Japanese) - Qiita
- FadisさんはTwitterを使っています 「「コンテナならユーザ空間だけ立ち上げるからはやーい」から 「コンテナのセットアップするやつに脆弱性があるとやばーい」になって「やっぱりVMで隔離したーい」になって「でも起動に時間がかかるのやだー」になってUnikernelにたどり着くのか #kernelvm」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@syusui_s マイクロカーネルの IPC が遅くてパフォーマンスが……は定説でしたが最近は IPC も十分速くできる,という研究がぽつぽつあります。https://t.co/fG6NokSb5J」 / Twitter
- YCSB-A_Zircon.eps - skybridge-eurosys19.pdf
- コンテナ目線で考えるUnikernelとmicroVM / MicroVM and Unikernel in the container world - Speaker Deck
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、昔は現代的OSというとマイクロカーネルだったけど、結局実用上はカーネル・リビルドなしにドライバ動的ロードできれば、ユーザ的にはもう十分だった感(笑)」 / Twitter
- microkernel-book.pdf
- CとRustで一から作るマイクロカーネルOS
- mumumuさんはTwitterを使っています 「正しくはATCでした(suzaki先生ありがとうございます. この研究,色々なことをやってて研究として綺麗かと言われるとよくわからんのですが(超上から目線),できること全部突っ込んだ感があって純粋に読み物として面白いかも」 / Twitter
- mumumuさんはTwitterを使っています 「Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication [OSDI '20] Microkernelのサーバ間の新しいIso.としてMPKによる手法を提案.そのためにKernelメモリをUserメモリとしてMapしていたり色々ヤバイことやってる.オタクは是非読んで」 / Twitter
- FadisさんはTwitterを使っています 「RedLeaf: Rustで実装されたマイクロカーネルOS。ドメイン間通信のための共有メモリを多用する→ RRef<T>型で共有メモリをラップしてRustに共有メモリの抱え落ちを防がせる https://t.co/9fI2XusVxf #kernelvm」 / Twitter
- mars-research/redleaf: RedLeaf Operating System
- FadisさんはTwitterを使っています 「一般的なOSの機能、MS-DOSとマイクロカーネル原理主義みたいなヤツらとライブラリOS系のやつらで積集合を取ると、一般的なOSの機能とは空集合の事であるみたいな結論が得られそう」 / Twitter
- FadisさんはTwitterを使っています 「MS-DOS: タスク管理やプロセスの空間の分離は別にOSに必須じゃないかもしれないよ マイクロカーネル: デバイスドライバやファイルシステムは別にOSに必須じゃないかもしれないよ ライブラリOS: ハードウェアの上でブートローダから起動される事は別にOSに必須じゃないかもしれないよ」 / Twitter
- natsutanさんはTwitterを使っています 「@fadis_ 組込系のOSだと、ファイルシステムもメモリ保護も標準入出力も無く、割り込みはタイマー以外自力で処理みたいなのもあるので、一般的なOSって難しい。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Hurdはマイクロカーネルによってユーザーが管理者権限を持たずにOSのほとんどの部分を変えられる仕組みで、わざわざ物理マシンごとエミュレートする必要はなかった。」 / Twitter
仮想化
その他
vTPM
- vTPM標準化でMacでWindows 11が導入しやすくなった「Parallels Desktop 17.1」 - PC Watch
- 仮想 Trusted Platform Module を使用する仮想マシンの保護
- VM の TPM を有効にする
- ESXi7 仮想Trusted Platform Module(vTPM)仮想マシンでの有効化手順 - ITよろづや
- トラステッド・ブート - IBM Documentation
- vTPM: Virtualizing the Trusted Platform Module | USENIX
- 仮想TPMを用いたBitLockerによる暗号化/復号化の手順 | Lab8010
- プレビュー: トラステッド起動の VM をデプロイする - Azure Virtual Machines | Microsoft Docs
- Shielded VM | ドキュメント | Google Cloud
- L_040.pdf
- 第736回 vTPMに対応したLXDで、Windows 11とWSLの新機能であるWSLgとsystemdを試してみる | gihyo.jp
オフロード
- Livaさんのツイート: "今日の発表のスライドをWeb公開できるように編集しました。 「創りたいOSを、創りたい時に、最小コストで作れる世界」 https://t.co/1rqXPorjAl"
- 18:03:24_web公開版.pdf - Google ドライブ
- まさみさんは語りたいさんのツイート: "jailhouseの採用は検討済み?… "
- siemens/jailhouse: Linux-based partitioning hypervisor
- Linux向けハイパーバイザー「Jailhouse 0.6」リリース | OSDN Magazine
- Jailhouseハイパーバイザ実践 - Qiita
- Livaさんのツイート: "いえ、初耳でした。調べてみたのですが確かに近いところが多そうですね。もうちょい調べてみます。ありがとうございます!… "
- ぬるぽへさんのツイート: "モチベーションはlibrary OS的なやつにあるので少し違いますが、並行して動くlinuxにlibrary OSから機能をオフローディングするやつにmultiverse kyle 2017があります、参考になるかもしれません… "
- ぬるぽへさんのツイート: "同姓同名ですがどうも別プロダクトのようです こちらの論文のやつになります https://t.co/riiw0ZmHop… "
- Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization — Northwestern Scholars
- ぬるぽへさんのツイート: "ちなみにめっちゃ被ってるというより、参考程度、つまりliva師が修論であれやるのなら関連研究の章にかけるかなーくらいの関連度です vmmを使って自作ライブラリOS上で動いているアプリのシステムコールを協調して動くlinuxカーネルに処理させてその結果をlibraryOSと同期するみたいなやつです… https://t.co/Dvvx1PrO2o"
VirtGPU DRM Native Context
- FadisさんはTwitterを使っています: 「Googleが新種のVirtIO、VirtGPU DRM Native Contextを作っている話。LinuxカーネルのDRMのレイヤーでゲストからの要求をホストに飛ばすことで、ゲスト環境の中からVirGLやVenusよりネイティブに近い性能でGPUを使えるようになる https://t.co/EHGag4GlaS」 / Twitter
- VirtGPU DRM Native Contexts Show Potential For Good VM Gaming Performance - Phoronix
- FadisさんはTwitterを使っています: 「ハイパーバイザ型仮想化のゲスト環境からGPUを使えるようにする方法は色々あるが、最も性能が出るPCI Passthroughは1つのゲストが1つのGPUを占有する必要があり、VirGLやVenus等のAPI Remotingでは複数のゲストやホストでGPUを共有できるが、ゲストとホストの間のやり取りのオーバーヘッドが大きい」 / Twitter
- FadisさんはTwitterを使っています: 「VirGLやVenusのような既存のAPI RemotingはOpenGLやVulkanのAPIの呼び出しをホストに伝えて描画を行う。これらのAPIのうちGPUへのコマンドの発行を生じさせる物は限られている。Vulkanで言えばコマンドバッファに積む必要がない操作は実際にはドライバで何かをするだけでGPUで何かを実行しない事が多い」 / Twitter
- FadisさんはTwitterを使っています: 「従ってGPUのドライバをゲスト側に持ち、ゲストからホストのGPUのメモリを確保できるようにし、ゲストからのGPUへのコマンドの発行をホストに伝えるようにすると、VirGLやVenusよりオーバーヘッドを抑える事ができる。これが新しいAPI Remotingの手法DRM Native Context」 / Twitter
- FadisさんはTwitterを使っています: 「DRM Native ContextではVirtIOなDRMレンダーノードがゲスト環境に生える。このデバイスに対する操作はホスト側で描画を担当するvirglrendererに丸ごと送られる。virglrendererは送られてきた内容に従ってホストのDRMレンダーノードを叩く」 / Twitter
- FadisさんはTwitterを使っています: 「VirtIOなDRMのレンダーノードの上でOpenGLやVulkanを使うにはゲストのMesaのGPUのドライバにゲストのレンダーノードを使わせる。レンダーノードからはVirtIOの場合特有の情報が取れるようになっていてMesaのドライバには若干の対応が必要になる」 / Twitter
fork
- FadisさんはTwitterを使っています 「Linuxが動いているVMの状態を丸ごと複製してforkさせると複数のVMのカーネルは乱数プールに同じ値を持つため、1つのVMが生成した乱数から他のVMで次に出てくる乱数が予測可能になる問題の対策について https://t.co/H6huMs0NpE」 / Twitter
- FadisさんはTwitterを使っています 「VMをforkするハイパーバイザではしばしばACPIからfork元とfork先を識別する為のIDが与えられるため、この値の変化を検知したら乱数プールを混ぜ直す機能が提案されている。これと近い機能が同様の理由でWindowsにも備わっているらしい。ただこの機能の提案者はこの機能だけでは不十分だとしている」 / Twitter
- FadisさんはTwitterを使っています 「カーネルは様々な方法で乱数の素を集めてプールに追加するが、これは割と簡単に枯渇するため多くのシーンではカーネルの乱数プールの値をseedとして疑似乱数生成器で実際に使う乱数が作られる。VMのfork時にこうした乱数器が更新されなければ、プールが対応しても最終的に出てくる乱数は予測可能になる」 / Twitter
- FadisさんはTwitterを使っています 「そこでLinuxでは「VMがforkしたぞ」イベントを通知するための仕組みが合わせて提案されている。疑似乱数生成器を使うデバイドライバやユーザ空間プロセスがこのイベントをトリガーとして疑似乱数生成器のseedを更新することで、forkした2つのVMの疑似乱数生成器が異なる値を返せるようになる」 / Twitter
crosvm
- うどんさんはTwitterを使っています 「というわけで、crosvmのレポジトリがGitHub上にできました! crosvmはChrome OSで使われている Rust製のVMMで、Linux上で他のOSをVMとして立ち上げることができます (QEMUみたいな感じ) Chrome OSを持っていなくても、お手持ちのLinux上で動くので試せるので是非! https://t.co/VEPCIeeyK3」 / Twitter
- For Linux - Book of crosvm
- うどんさんはTwitterを使っています 「crosvm is now mirrored at GitHub🎉 https://t.co/epVUe7x8Bf crosvm is the Chrome OS virtual machine monitor written in @rustlang🦀 It's officially used to run Linux/Android on Chrome OS. Also, we have mdBook📖 https://t.co/JJYsyWxpYQ」 / Twitter
- google/crosvm: The Chrome OS Virtual Machine Monitor - Mirror of https://chromium.googlesource.com/chromiumos/platform/crosvm/
- Introduction - Book of crosvm
- うどんさんはTwitterを使っています 「詳しく説明すると、crosvmはLinuxのKVMを利用するType 2ハイパーバイザです。 Rust製の似たソフトウェアとして firecrackerやcloud-hypervisorがありますが、これらは初期のcrosvmからforkされたという経緯があります。 cf. https://t.co/6osbapI54A」 / Twitter
- Firecracker
- うどんさんはTwitterを使っています 「僕の個人的に思うcrosvmの良さは「安全性」と「多様なデバイス」かなと思ってます。 安全性: Rustで書かれているということに加え、デバイスプロセスをsandbox化するなどの仕組みが入っています (続)」 / Twitter
- うどんさんはTwitterを使っています 「デバイス: crosvmはクラウドではなくラップトップ等で動くこともあり、video encoder/decoderやwaylandといったグラフィック系のvirtioデバイスを実装しているというのも個人的にアツいポイントだと思います。 これらはvirtioプロトコルの設計からやっていて、upstreamに提案中だったりします。」 / Twitter
- うどんさんはTwitterを使っています 「あと、crosvmは自前でsystems programming系のライブラリを色々と持ってたりするので、低レイヤー・Rust好き的にはそれらをcode readingするのも面白いかなと思います。 syscallのラッパーとか、asyncのためのexecutorとか」 / Twitter
- うどんさんはTwitterを使っています 「crosvmがChrome OSでどうやって使われてるの?といった話は @hikalium のこのスライドが詳しいです! https://t.co/qKuG2PmZ30」 / Twitter
- hikaliumさんはTwitterを使っています 「今日の #osc21aizu で発表したスライドです! ChromeOSの上でAndroidが動く話について書かれたものはそんなに多くないと思うので、大雑把ではありますが、もし興味があれば発表のアーカイブと共に見てみてください! (そして東京で低レイヤなお仕事の募集もあるのでぜひ!) https://t.co/iqkVomp3Jj」 / Twitter
- Running Android Apps on VM in Chrome OS - Google スライド
- retrageさんはTwitterを使っています 「Rust製VMM兄弟でcrosvm、Firecrackerより影が薄いけどちゃんと開発が進められていてmshv対応もしているCloud Hypervisorのことも思い出してあげてください https://t.co/Naqo6ypH20」 / Twitter
- cloud-hypervisor/cloud-hypervisor: A Virtual Machine Monitor for modern Cloud workloads. Features include CPU, memory and device hotplug, support for running Windows and Linux guests, device offload with vhost-user and a minimal compact footprint. Written in Rust with a strong focus on security.
software rejuvenation(ソフトウェア若化)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「初めてdaemon作った時(1994)、サービス開始直前までセットアップしたらforkして、子供達に実サービスさせ、定期的に子供達をパージ&再生成する構造にしたっけ。 あとAndroidのVMは、ある程度VMセットアップ済みdaemon(zygote)が親となってforkすることで高速化してたような。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「software rejuvenation(ソフトウェア若化)という名前で実際に様々に研究がされている概念の一端でもあります。実は。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「別の host に process live migration してしまって、migration が終わったら元の host machine を再起動する、とかも」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「基本はプロセスの再起動だろうけれど、たとえば CRIU とかで正常時の process check point を逐一作っておいて、問題が起きたらマシン再起動してから問題が起きたプロセス以外は checkpoint から resume、みたいな乱暴な方法でも場合によってはうまくいくかもしれない、みたいなネタも」 / Twitter
- 1974年さんはTwitterを使っています 「メモリリークを解消させるには確かにコンピュータの電源を切ったほうがいいので、すべてのコンピュータの電源を切れば原理上すべてのプログラムが「正常」になる」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu Androidは https://t.co/vbnq7Hb3U8 の件ですね」 / Twitter
- kobaさんはTwitterを使っています 「Zygoteは通常必要になる全てのダイナミックリンクライブラリがあらかじめロードされている。だから新しいJavaのプロセスは最初から必要なダイナミックリンクライブラリがすでにメモリ上にある状態から開始される。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu zygote についてはその通りですが、software aging/rejuvenation とはほぼ関係ないトピックのような。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu fork 元になっている zygote プロセスが aging し続けてると仮定した場合その子である Android app も aging している状態を引き継いで開始してしまうのでは?という疑問点だったのであれば、それはそうかもしれませんが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu threadベースの並列化に比べ、forkベースの並列化の場合、一つないし一定数のクライアントの処理を終えるとforkしたプロセスは終了し、メモリその他の資源のリークやメモリの断片化の問題を避けられるので、これはまさにagingの話ですね。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu はい、daemon の最初の話で処理を別プロセスに切り離してたというのが aging 防止になっていたというのはその通りだと思うんですが、zygote の話のほうは(zygote の主眼は命名通りの部分にある高速化だと思うので)aging 防止だとかそういうのに繋げようとする作りではないだろうし関係なさそうかなと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu AndroidじゃないJava VMを使ったアプリとかSmalltalkシステムとかだと、VM一つ動かすってのが主流で、ZygoteはそうじゃなくVMが逐一forkして終わるって意味でaging防止寄りという見方もできると思います。 まあZygoteには権限管理のためにプロセス分けたいって意味もあるんですが…」 / Twitter
- Chapter 10. Technical Background
- Windows 11の地味に便利な新機能! 「Nested Hyper-V」がAMD製CPUでもようやく可能に【イニシャルB】 - INTERNET Watch
- AMD I/O Virtualization Technology (IOMMU) Specification, 48882 - 48882_3.07_PUB.pdf
- AMD Joins The Cloud Hypervisor Project Started By Intel - Phoronix
- 第738回 リモートのLXDインスタンスの画面をローカルから操作してVDI環境を構築する | gihyo.jp
- Windows 11に対応した「VMware Workstation 17」が公開 ~無償の「Player」も継続 - 窓の杜
- AMD Overhauls Their SEV-SNP Hypervisor Patches They Are Working To Upstream In Linux - Phoronix
コンテナ
その他
- OCI Distribution Specification v1.0 - Open Container Initiative
- opencontainers/distribution-spec: OCI Distribution Specification
- About · Container Security Book
- とほほのDocker入門 - とほほのWWW入門
- ASCII.jp:Windows 10にはコンテナーがいっぱい (1/2)
- 第47回 非特権コンテナの可能性を広げるseccomp notify機能:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- podman docker 違い - Google 検索
- podman - Google 検索
- κeenさんはTwitterを使っています 「コンテナを起動するブートローダ(????)。内部的には一旦小さいカーネルを起動してコンテナイメージ取得してコンテナ内のカーネルにkexecしてるみたい。 wyrcan / wyrcan · GitLab https://t.co/6H0oNaivyP」 / Twitter
- wyrcan / wyrcan · GitLab
- Trivyを使ったコンテナイメージの脆弱性定期診断 - アルファテックブログ
- KOBA789さんはTwitterを使っています 「Docker Desktop の黒魔術の解説。VM からのトラフィックを素朴にフォワードすると社内ネットワークの FW にはねられたりするのでユーザーレベルでフォワードしてホストマシンからの発信にするなどの苦労がある / “How Docker Desktop Networking Works Under the Hood - Do…” https://t.co/qi6OFaczMJ」 / Twitter
- How Docker Desktop Networking Works Under the Hood - Docker Blog
Docker
Docker
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「Dockerに頼るのは問題を先送りにするだけだし、本来はOSが標準的な機能として提供すべきだったし、結局OSの進化なんてものは1990年代に終わってしまったんだなと思う。」 / Twitter
- にゃんだーすわんさんはTwitterを使っています: 「Docker、いつでも簡単に再現性のあるLinuxランタイムを作って壊せて便利だと思って数年置いてたらDebianのバージョンが賞味期限切れでコンテナを再構築できず、ほんとにすごいのはAPTだったんだなとわかる回」 / Twitter
- 父さんはTwitterを使っています: 「@EzoeRyou これはフェアな議論ではないと感じます。Dockerが提供するのはプロセスの分離、リソースの配分、サンドボックス化、効率的なレイヤ状差分管理などであって、aptのような副作用のある操作は冪等な結果を生まないことは広く知られていることです。Dockerに対する批判としてアンフェアだと思います。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「@fushiroyama 天下をとったUNIXのファイルシステムが素朴すぎるのが問題で、Plan 9とかGNU HurdみたいなOSが天下をとっていたらDockerみたいな解決法は取る必要がなかったと思うのです。」 / Twitter
- 父さんはTwitterを使っています: 「@EzoeRyou うーむ、そこまで単純でもないと思います。先程挙げたDockerの機能は実はLinuxカーネルの一部(cgroups, namespace)や独立したファイルシステム(Aufs, OvarlayFS)として提供されていてDockerだけのものではないからです。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「@fushiroyama 結局付け焼き刃なんですよね。システム全体でたった一つのファイルシステムの見え方というものがある前提で、そこに後付でちょっとだけ見え方を変化できるようにする機能を無理やり付けたので歪なことになっていると思うのです。」 / Twitter
- 父さんはTwitterを使っています: 「@EzoeRyou まあDockerが過去の色んな資産やソフトウェアの上に成り立っており「見方を変えた」ものというご指摘はそのとおりだと思います。 というか僕は江添さんではなく元のツイートに直接リプライを送るべきでした。aptが同じように動かないことをDockerの瑕疵であるかのように書くのは適切とは思えないので。」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「Dockerfileからコンテナ再構築出来る、は嘘なので(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「一回PushしたコンテナはいつでもPull出来る、は一応ある程度期待できる(´・ω・`)」 / Twitter
Publickey
- Docker Desktopが有料化へ、ただし250人以下かつ年間売り上げ1000万ドル(約11億円)以下の組織や個人やオープンソースプロジェクトでは引き続き無料で利用可能 - Publickey
- Docker Desktop for Linuxを開発中とDocker社が表明。有料化の発表が好評だったとして機能強化など加速 - Publickey
- Docker Desktop 4.12登場。ターミナル機能の統合、containerdによるイメージ管理、Dockerボリュームのバックアップなど新機能 - Publickey
- Docker HubにHelmチャートやWebAssemblyなどさまざまなファイルが保存可能に、OCI Artifactsのサポートで - Publickey
- Docker Desktop 4.14登場。コンテナごとのCPUやメモリ消費量のグラフ化、コンテナイメージの依存関係などをビジュアルに表示可能 - Publickey
- AWS、Docker Desktop代替となり得る「Finch」をオープンソースで公開。ローカルマシンに仮想環境とコンテナランタイム、ビルドツールなど一式を導入 - Publickey
- Virtiofs正式採用でMacのファイルアクセスが高速化、Docker Desktop 4.15リリース。WebAssemblyアプリをcontainerd配下で管理可能に - Publickey
窓の杜
- 料金プランも刷新 ~「Docker Desktop 4.0」が正式リリース - 窓の杜
- 「Docker Desktop」のWSL 2+NVIDIA GPU対応が正式に ~「ほぼネイティブ」なパフォーマンスを発揮 - 窓の杜
- Linuxカーネルの「Dirty Pipe」脆弱性に対処した「Docker Desktop 4.6.0」 - 窓の杜
- 価格がなんと3.5倍に!「Docker」のTeamプランが値上げ&ユーザー数制限追加 - やじうまの杜 - 窓の杜
- 「Text4Shell」の影響が「Docker」にも拡大 ~悪用が容易な任意コード実行の脆弱性 - 窓の杜
- 「Docker Desktop 4.16」が公開、「Docker Extensions」の一般提供が開始 - 窓の杜
- Install Docker Desktop on Windows | Docker Documentation
- Docker Desktop for Mac and Windows | Docker
- Docker Desktopが無料プランを個人・小規模法人向けに限定、大企業向け新プランを設定 - GIGAZINE
- Dockerが大規模ビジネス向けに有料サブスクリプションを開始
- DockerDesktopからWSL2上のみで動くDockerに移行する
- 「Docker Desktop 4.1」が公開、ボリューム管理が全ユーザー向け機能に | OSDN Magazine
- IPv6 only 環境で Docker / Alpine Linux を動かす - 竹迫の近況報告
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「各社移行が進んでおります。 / “Docker DesktopからRancher Desktopに移行してみた - ITANDI Engineer Blog” https://t.co/YRLTIxuDpZ」 / Twitter
- Docker DesktopからRancher Desktopに移行してみた - ITANDI Engineer Blog
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「対象範囲拡大や値上げも発表されたし、Rancher Desktopの移行は今後増えそうだ。Rancher Desktopがリリースされた直後は不安定な面もあったが、改善は進んでいるしね。 / “Docker DesktopからRancher Desktopに切り替えする手順 - ANDPAD Tech Blog” https://t.co/x8U2paWy5k」 / Twitter
- Docker DesktopからRancher Desktopに切り替えする手順 - ANDPAD Tech Blog
- Rancher Desktop
- rancher-sandbox/rancher-desktop: Container Management and Kubernetes on the Desktop
- Introducing the Docker+Wasm Technical Preview
- てらモス🈚さんはTwitterを使っています: 「WindowsのDocker DesktopってWindows上のdocker.exeがDocker Desktopが管理してるWSLインスタンス(?)上で動いてるDockerにTCP経由で通信してるだけ、他のWSLインスタンスではそれは普通のLinuxがVMで動いてるだけなので、普通にDocker入るですよね...(´・ω・`)?」 / Twitter
- 乳牛さんはTwitterを使っています: 「@termoshtt 2つWSLインスタンスが使われていて、docker-desktopの方でDockerデーモンが動いていて、"Enable integration with additional distros"をポチると指定のDistroにdocker-cliインストールしてくれて、ホストの向き先も設定してくれるという動きだったと思います。 https://t.co/ZuRtjaFIZV」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「@NewGyu おーそんな機能があるんですね、知りませんでした(´・ω・`)!」 / Twitter
- Docker Swarmでお手軽に冗長なMariaDBを作る | IIJ Engineers Blog
Kata Container
- コンテナランタイムKata Containersの実行検証 - Qiita
- Kata Containers Home | Kata Containers
- コンテナの軽量さと仮想マシンの堅牢さを兼ね備えた新しいコンテナ実装「Kata Containers」、OpenStack Foundationが発表 - Publickey
- コンテナを軽量VMで隔離するKata Containersがついにv1.0をリリース | TechCrunch Japan
- runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較 | Think IT(シンクイット)
- カタコンテナはいかにしてDockerコンテナのセキュリティを強化しているのか | S-Port|鈴与シンワート
- Kata Containers
- Why Kata Containers doesn’t replace Kubernetes: – Kata Containers – Medium
- Kata Container – Kata Containers – Medium
- OpenStack発のコンテナ実装「Kata Containers 1.0」リリース | OSDN Magazine
- Firecrackerはコンテナランタイムなのかという話 - inductor's blog
システムコール
- FadisさんはTwitterを使っています 「linuxによそのプロセスのアドレス空間で処理を実行するprocess_vm_execを追加する提案の話。この関数は引数で指定したpidのプロセスのアドレス空間で引数で指定したレジスタの状態から実行を開始する。シグナルやシステムコールの呼び出しが起こると呼び出し元に戻ってくる https://t.co/AXlfb1pShG」 / Twitter
- FadisさんはTwitterを使っています 「コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをするユーザ空間プロセスに処理させる https://t.co/cmTRZXyMNw」 / Twitter
- google/gvisor: Application Kernel for Containers
- FadisさんはTwitterを使っています 「gVisorは現状「システムコールをユーザ空間プロセスで受ける」というマジックをptraceで実現している。ptraceは汎用すぎて性能が良くないので、より効率よくユーザ空間でシステムコールを受ける手段としてprocess_vm_execが役に立ちそう、と」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コンテナはプロセスに対するメタ操作として定義されるべき」 / Twitter
名前空間
- FadisさんはTwitterを使っています 「Linuxに新しい疑似ファイルシステム namespacefs を追加しようという提案がなされている話。今日のLinuxでは様々な目的で様々なリソースに対する名前空間の分離が行われるが、namespacefsはこの分離の階層をディレクトリの階層として、その中にいるプロセスのリストを取れる https://t.co/LdJcy2oXOC」 / Twitter
- FadisさんはTwitterを使っています 「一連の情報は/procなどからかき集める事もできるが、よりたどりやすい形で並べることでコンテナを管理するソフトウェア等を実装しやすくするのが狙い。現在出ている実装はアイデアに対する意見を募るためのものでPID名前空間とtime名前空間にしか対応していない」 / Twitter
- FadisさんはTwitterを使っています 「分離した名前空間にはユニークな名前がないため、現在の実装はファイル名を付けるのにi-node番号を使っているが、その是非で揉めているらしい」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxにおける名前空間 (namespace) 入門。名前空間は kernel 2.6.24で導入され、現在 PID, NET, MNT, UTS, IPC, USER および CGROUP の7種類がある。unshareコマンドを使うと新しい名前空間を作成でき、これらの空間内では外側にある資源は見えないし利用もできない。 https://t.co/jdhz4I9XxG」 / Twitter
- Digging into Linux namespaces - part 1
blog
- dockerと称するもの | IIJ Engineers Blog
- 我らの時代のコンテナデプロイ – Nomad, Consul, Vault | IIJ Engineers Blog
- Project Zero: Who Contains the Containers?
- コンテナレジストリの可用性を高める取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- 分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ
- 軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor's blog
- コンテナのデザインパターンを学べる論文「Design patterns for container-based distributed systems」を読んだ - kakakakakku blog
- Docker rootlessで研鯖運用 - drgripa1
- Java 8ランタイム・コンテナ・イメージの作成とデプロイ - 赤帽エンジニアブログ
- Docker(コンテナ型仮想化)と Kubernetes についての簡単な紹介 – ゆびてく
- 【Podman v3】ルートレスモードでdocker-composeを実行する - 赤帽エンジニアブログ
- 今の私が持っていないskillを考える · drumato.com
- Docker コンテナで IPv6 を利用する3つの構成パターン - VA Linux エンジニアブログ
- 「hadolint」にシバかれながら美しいDockerfileを書き上げる - 憂鬱な世界にネコパンチ!
- RustでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
- Docker完全に理解した | IIJ Engineers Blog
- コンテナイメージを設計する際の推奨事項 - 電通国際情報サービス TechBlog
- ブラウザだけでDockerしたい | IIJ Engineers Blog
- マイクロサービスがアプリ開発の主流になった理由とは | クラウドエース株式会社
- 【Rootless Docker】 Dockerを安全に一般ユーザで実行する | ぺんぎんや
- Docker Desktopを使わずにWindowsでDocker | IIJ Engineers Blog
- CoreOS の初期設定ツール Ignition を試してみる | IIJ Engineers Blog
- コンテナ型アプリケーションにカスタム JDK Flight Recorderイベントを注入 - 赤帽エンジニアブログ
- Docker上でのLLVMビルド環境の構築試行 - FPGA開発日記
- Dockerを使ってLLVM+RISC-Vビルド環境を構築したい - FPGA開発日記
- 仮想マシンのように使えるコンテナ | IIJ Engineers Blog
- 会社のプロキシの裏でPodman Desktopを実行する | フューチャー技術ブログ
Publickey
- Docker Hub、6カ月使われていないコンテナイメージの削除計画を保留に。従量課金ベースの料金プランを検討へ - Publickey
- AWSがDocker Hubの代替サービスを発表予告。パブリックにコンテナイメージを公開可能で50GBまで無料、AWSからなら何度でもプルし放題に - Publickey
- Docker Hubの無料プランにおける利用制限、オープンソースのプロジェクトは適用外にするとDocker社が発表 - Publickey
- コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2 - Publickey
- GitHubによるDockerコンテナレジストリ「GitHub Packages Container registry」が正式サービスに - Publickey
- 「Docker Dev Environments」発表。Dockerコンテナを使ってコードと同様に開発環境をバージョン管理、共有、再現可能に - Publickey
- Docker Desktop 3.6正式版リリース。Dockerを用いて開発環境のバージョン管理ができるDev Environments機能など搭載 - Publickey
- Kubernetesは、ITを「チケットドリブン」から「インテントドリブン」へ変えていく。Cloud Operator Days Tokyo基調講演 - Publickey
- Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に - Publickey
- コンテナ標準のOCI対応、クラウドネイティブなWebAssemblyランタイム「WasmEdge」が、CNCFのサンドボックスプロジェクトに採用 - Publickey
- Google、仮想マシンもAnthosで管理する「Anthos for VMs」プレビュー版を発表。コンテナも仮想マシンも統合管理 - Publickey
- マイクロソフト、コンテナをサーバレスで実行する「Azure Container Apps」発表。KEDAとDaprを採用。Ignite 2021 - Publickey
- Dockerコンテナの実行を「Pause」で一時停止、ノートPCのバッテリ消費などを抑えられるDocker Desktop 4.2リリース - Publickey
- Amazon ECR PublicからDocker公式イメージが取得可能に。Docker Hubのプル制限を回避可能。AWS re:Invent 2021 - Publickey
- VMware、vSphere上のアプリケーションを解析し、Dockerコンテナへ変換する「Application Transformer for VMware Tanzu」発表 - Publickey
- AWS、コンテナ特化で瞬時に起動する軽量VM「Firecracker」オープンソースとしてバージョン1.0に到達。AWS LambdaやAWS Fargateで利用 - Publickey
- VMware、vSphere上のJavaアプリケーションをコンテナに変換するツールを正式リリース。「Application Transformer for VMware Tanzu」 - Publickey
- Oracle Cloud、開発環境やテスト環境に使いやすいシンプルなコンテナ環境「Container Instances」、Oracle Cloud自身によるCDNサービスなど発表 - Publickey
- [速報]Dockerが「Docker Extensions」を発表。VMwareやRed Hat、RancherなどサードパーティがDocker Desktopにさまざまな追加機能を提供 - Publickey
- [速報]「Docker Desktop for Linux」が登場、WindowsやMac版と同じ機能や操作を提供、Raspberry Pi OSにも対応 - Publickey
- Docker、分離レベルの高いコンテナランタイム「Sysbox」の開発元Nestyboxの買収を発表 - Publickey
- コンテナをサーバレスで実行する「Azure Container Apps」が正式サービスとして提供開始 - Publickey
- Docker DesktopがWebAssemblyランタイムを統合。コンテナと同様にWebAssemblyイメージを実行可能に - Publickey
- GUIでDockerコンテナのビルドやPodsのKubernetesへの展開を可能にする「Podman Desktop」が登場。新たなDocker Desktop対抗となるか - Publickey
GIGAZINE
- 無料のLinux向けAndroidエミュレーター「Anbox」レビュー、カーネルをホストと共有するコンテナ方式 - GIGAZINE
- DockerコンテナやKubernetesクラスタをGUIで管理できる「Portainer」レビュー - GIGAZINE
- コンテナ・Docker・Kubernetesについて初心者にも分かりやすく解説するとこうなる - GIGAZINE
- 「chmod」を不用意に使うとDockerイメージの容量が肥大化してしまう - GIGAZINE
GitHub
- flouthoc/vas-quod: Minimal linux container runtime.
- rrreeeyyy/container-internship
- うたもくさんはTwitterを使っています 「Rustの自作コンテナランタイムを公開しました!🎉🎉 コンテナ界隈に入門したかもしれない。 devcontainerで実行できるのでvscodeとかを使って簡単に開発環境を構築できるのでぜひ試してみてください。 反応が良かったらゼロから作るコンテナランタイムとか書きたい。 https://t.co/wkfeYansug https://t.co/8Lc32LKk4f」 / Twitter
- utam0k/youki: Rust experimental implementation of the oci-runtime
- うたもくさんはTwitterを使っています 「Dockerで動かせるのでぜひぜひ遊んでみてください。そしていっぱい壊れると思います…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「Docker で外部からマウントしたディレクトリへのアクセス時に root とか Docker 内のユーザー ID になってしまうので困る問題,verilator の Dockerfile に模範解答があった.単にユーザー ID 指定で起動してマウントしたディレクトリに直に行けば良いだけだった・・・ https://t.co/JhFXsbognf」 / Twitter
- verilator/ci/docker/run at master · verilator/verilator
- R. ShioyaさんはTwitterを使っています 「あらかじめ内部にユーザーを作っておいて後から外部のユーザーと ID を同期させるとか考えるから話がややこしいのであって,ユーザーもホームディレクトリも作らずいきなりユーザー ID 指定でマウントしたポイントから起動すればいいだけだったわ・・・」 / Twitter
技術評論社
- LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
- 第678回 distrobuilderでLXD/LXC用のカスタムイメージを作成する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第683回 LXDコンテナ上にUbuntuのフルデスクトップ環境を構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第686回 Bubblewrap/bwrapを使って管理者権限なしで非特権コンテナーを作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 2022年3月11日 "ディストロレス"なエコシステムの拡大を―apkベースの軽量OCIイメージ作成ツール「apko」:Linux Daily Topics|gihyo.jp … 技術評論社
- 第719回 UbuntuでDocker Desktop for Linuxを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
窓の杜
- 「Docker Desktop 4.2」は一時停止でリソースを節約可能 ~わずらわしい更新通知は削除 - 窓の杜
- 「Docker Desktop」が「Log4j」問題に対応 ~脆弱性スキャンツールを更新 - 窓の杜
- 新メニューを搭載した「Docker Desktop 4.5」 ~OS間の差異縮小、パフォーマンスも向上 - 窓の杜
- 「Docker Desktop」に待望のLinux版 ~v4.8.0が公開 - 窓の杜
infoQ
- Dockerがイメージの有効期限の適用を一時停止し、サブスクリプションプランを発表
- Docker Hub公開イメージ400万の半数に重大な脆弱性が見つかる
- Sysdig: コンテナセキュリティのシフトレフトとDocker利用の減少
- Docker Engine 20.10リリース:cgroups v2とデュアルロギングをサポート
- Docker、AWS ECSおよびMicrosoft ACI用Composeのオープンソース化を発表
- 悪意を持ったコンテナイメージを直接ホスト上に構築する攻撃手法が明らかに
- Compose仕様コミュニティに関するQ&A
- AWS App Runnerについて - AWSコンピュータサービスVPのDeepak Singh氏とのQ&A
- Googleがコールドスタート低減のために最小インスタンスを導入
- Microsoftが新しいクラウドネイティブ製品、Azure Container Apps Serviceを発表
- Cryostat 2.0の発表: JDK Flight Recorder for Containers
- コード共有のためのDocker Desktopのベストプラクティス
- CRI-Oコンテナランタイムの新たな脆弱性により、攻撃者によるホストへのアクセスが可能に
- Dockerfile Linter Hadolintでは多くの修正、改善がされ、ARM64バイナリをサポート
OSDN
- コンテナ管理の「Podman 4.0」が公開 | OSDN Magazine
- システムコンテナ「LXD 5.0 LTS」が公開 | OSDN Magazine
スライド
- 日本と世界のDockerコミュニティ
- Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition - - Speaker Deck
- container-dev-security - Speaker Deck
- Dockerのことが多分わかるハンズオン - Speaker Deck
- Zigでコンテナランタイム作ってみた - Speaker Deck
- Linux カーネル 最近のコンテナ関連新機能 / TechFeed Experts Night#7 - Speaker Deck
Zenn
- Docker 20.10のリリースノートを眺める
- Keisuke NishitaniさんはTwitterを使っています: 「これMacだとファイルシステムの兼ね合いによるDocker激遅問題を解消してくれるので必須と言ってもいいかもしれない Dockerでnode_modulesをホストとコンテナで同期しないようにする https://t.co/6bShLVqoCy」 / Twitter
- Dockerでnode_modulesをホストとコンテナで同期しないようにする
- Moby(Docker)をビルドしてruncとcontainerdを単体で動かしてコンテナの基礎を理解する
- ocipkg: OCI Registry for package distribution
- Docker+Wasmを試してみた(Docker Engineのビルドから)
Qiita
- 仮想ゲストOSにコンテナのLXDを選ぶ理由 - Qiita
- Dockerfileの代わりの言語modus、使ってみた - Qiita
- Dockerコンテナのpostgresqlがマルウェアに感染した件について - Qiita
Twitter
Docker Buildx
- D-Hori (Web技術アカ)さんはTwitterを使っています 「Dockerの強み、軽い & CPUアーキテクチャさえ同じなら同一のコンテナイメージが開発でも本番でもどこでも動くよ!だと思うんだけど 開発がARM、本番がx86/x64だから原則別のイメージ使わないとダメって根本からなにか崩れてないかって感じ」 / Twitter
- oshiroさんはTwitterを使っています 「@d_horiyama_web buildkitであればマルチアーキテクチャでイメージをビルドすることも可能ですよ CPUをエミュレートするのでとても遅いんですけど。。。」 / Twitter
- D-Hori (Web技術アカ)さんはTwitterを使っています 「@oshiro_3_t 情報ありがとうございます! https://t.co/3Fy8GUyyMI こういうやつですね 今回のプチバズで教えてもらいました」 / Twitter
- Docker Buildx | Docker ドキュメント
- R. ShioyaさんはTwitterを使っています 「今まで Docker を使ったことなくて触ってみたのだけど,とりあえずクロスコンパイラを中にいれて外部ディレクトリをマウントしてポータブルなコンパイラを… というのが内部のユーザー ID と外部の ID を動的に一致させるきれいな方法がなくていきなりつまずいた」 / Twitter
- R. ShioyaさんはTwitterを使っています 「Mac だとなんか勝手に外部のユーザー ID の権限に変換してくれるみたいだし,Windows も大丈夫くさいのだけど,Linux は内部の ID のままの権限で書き込むようで,結構大事なところだと思うんだけど挙動が揃ってなくていいんだろか」 / Twitter
- Akso de la MalbonoさんはTwitterを使っています 「ホストのディレクトリを bind mount して Docker コンテナ内から書き出したファイルをローカル側から見ると owner が root になることに対する怨念が蓄積していくことで世界は急速に滅亡の道を辿っている.」 / Twitter
- FadisさんはTwitterを使っています 「@Cryolite 雑要約: その問題を解決するためにいくつかの方法が提案されてきたが、バニラカーネル入りを果たした物はまだ無い https://t.co/XJSKVk0VpH」 / Twitter
- mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「コンテナの中でさらにnamespace使ってリソース制限するのって可能なのかしら」 / Twitter
- 神速さんはTwitterを使っています 「フロントエンドに限らず、開発環境でDockerを使わない方が速いのは、それはそう。 Dockerを使うのは日常の開発速度じゃなくてコントリビュートの敷居を下げる(=開発環境の初期構築を早くする)必要があるかどうかの違いだと思ってる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そうなんだけど、ディスクが余った & capability が制限できるようになった & overlayfs が使えるようになった、の3要素が揃ったからこそ、ようやく使い物になったというのもあって」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux、一時期はサーバOSとしての「マインドシェア」あったけど、最近は「コンテナのランタイム」であってホストOSなんか気にしなくなりつつイメージ」 / Twitter
- uint256_tさんはTwitterを使っています 「docker system prune したら 70GB くらい減った...」 / Twitter
- Toru KomatsuさんはTwitterを使っています 「Container Security 🤝 WASM (@wasmerio) youki has succeeded in executing WASM files directly in a container instead of commands. This makes it easy for WASM to benefit from container security and resource control. Repo 👉 https://t.co/dMTFxshU97 Details 👉 https://t.co/qWsAFNQeFE https://t.co/MNBOFr6ed6」 / Twitter
- containers/youki: A container runtime written in Rust
- Webassembly - Youki User and Developer Documentation
- mattnさんはTwitterを使っています: 「Docker Desktop を Linux で使う意味が分からない、という意見が多数みられますが、コマンドラインで全て解決しようとしている我々の方が認識がズレているのであって、世の中の多くの人達はオシャンティーに GUI をグイグイと操作したいと思っているのですよ。」 / Twitter
- satさんはTwitterを使っています: 「はじめに全部入りのDockerがあって、それの牙城が崩れてコンテナビルドツール、コンテナ管理ツール、コンテナランタイムが乱立してDockerの一部だけがk8sでディスコンになったりしてめちゃくちゃですなあと思ってはらはらと泣いている」 / Twitter
- satさんはTwitterを使っています: 「途中でRocketが出てきてdaemonlessでいいねってなったけどRocketはいなくなってdaemonlessのその他がにょきにょき生えてきたのもおもしろいね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「標準的でないDockerの使い方: - クロスコンパイラとして - make代わりのツールとして - 設定ファイルのレジストリとして - gitリポジトリとして - 互換性レイヤとして https://t.co/D5i7LJ74tU」 / Twitter
- Non-Obvious Docker Uses
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「ソフトウェアにおけるダークマター」という考え。コンテナ中の必要ないファイルが蓄積し、SBOM等でも追跡されていない状態をさす。Docker Hubでよく使われているコンテナ350個を調査したところ、約3割がダークマターで占められていた。 https://t.co/EHaBiJ76R9」 / Twitter
- Software Dark Matter is the Enemy of Software Transparency
MS
Windows Hypervisor Platform
- Windows Hypervisor Platform | Microsoft Docs
- Windows Hypervisor Platform API Definitions | Microsoft Docs
- VM Saved State Dump Provider API | Microsoft Docs
- QEMUのWindowsホストでのHyper-Vのサポート | K'zlog
- [Qemu-devel] [PATCH 0/4] Implements the Windows Hypervisor Platform acce
- [Qemu-devel] [PATCH 1/4] Add the Windows Hypervisor Platform accelerator
- [Qemu-discuss] configure fails with whpx enabled on msys2 w64 build proc
Win32 Container
- Microsoft explains how Win32 apps will work on Windows 10X - Neowin
- Microsoft Bagikan Detail Lebih Lanjut Mengenai Windows 10X | WinPoin
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows internals Part 2が出ないところで、新しいContainerシステムなWindows 10Xが出るんだが、これをフォローするWindows internalsはいつ出版されるんでしょうか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Native ContainerなEdgeからWin32 ContainerなEdgeに変わるのは劣化だよな。。。」 / Twitter
- ASCII.jp:Windows 10Xはなぜかアップデートが90秒で終わるらしい (1/2)
- イスラエルエリカちゃんさんはTwitterを使っています 「Virtual events - Microsoft 365 https://t.co/OsuRSCDvBS」 / Twitter
- Virtual events - Microsoft 365
- イスラエルエリカちゃんさんはTwitterを使っています 「ぇっ、「Win32アプリが動くコンテナ」には「ゲストカーネルとドライバ」が動いていて、ホストOSへUIを表示する為にはホストOS上でRDP client走らせるの…」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています 「今までニュースサイトとかで話に出てた”Windows Core OS”の事っぽいから急に出てきたものじゃないみたいだけど、別OS感すげぇな」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています 「「Classicじゃん!!!(MacOS Xの)」ってなってしまった」 / Twitter
- ASCII.jp:アプリ互換性を維持しつつ生まれ変わったWindows 10Xでタブレット市場を挽回できるか (1/2)
- ASCII.jp:変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か (1/4)|Windows Info
PC Watch
- 【笠原一輝のユビキタス情報局】Windwos 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明 - PC Watch
- ハイブリッドワーク下のデバイス保護に向けWindows 11にセキュリティ新機能 - PC Watch
- 箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
- 【Windows 11便利テク】Windows 11のセキュリティ機能は性能を下げるのか?仮想化ベースのVBSを検証 - PC Watch
- Microsoft、Windows 11でゲーム性能が下がる場合の対処法を紹介 - PC Watch
窓の杜
- 「VirtualChecker」仮想化支援機能に関するCPUの対応状況を手軽にチェックできるツール - 窓の杜
- AMD CPUに待望の“Nested Virtualization”対応 ~プレビュー版「Windows 10」で - 窓の杜
- Windows 11にOSレベルのフィッシング保護、AIによるアプリ信頼性チェック……導入予定のセキュリティ機能 - 窓の杜
News
- Microsoft VPSはWindows 11のゲームパフォーマンスを低下させる - ソフトアンテナブログ
- MicrosoftがAzure仮想マシンのオンデマンドキャパシティ予約のプレビュー版を発表
- Windowsが脆弱性のあるドライバーのインストールをブロックする機能を追加 - GIGAZINE
- SQL ServerをLinuxで動かした技術が結構凄かった件:Mostly Harmless:オルタナティブ・ブログ
- Windows11のゲーム性能・パフォーマンスを上げる方法。『仮想マシンプラットフォーム』と『コア分離』を無効化 | ニッチなPCゲーマーの環境構築Z
- Microsoftの古いドライバーリストのせいで何百万台ものWindows PCが何年もの間マルウェア攻撃にさらされていたことが発覚 - GIGAZINE
Qiita
- WSL2とHyper-Vの関係 - Qiita
- Windows10 HomeにDocker for Windowsをインストールする (WSL2を利用) - Qiita
Twitter
- とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat 最近はUEFIがバグってる(悪意のあるハードウェアが繋がってると色々やられてしまう)ことがあるので、できるだけ早くhv上げてその下でUEFIというかハードウェアの初期化するなども聞きます」 / Twitter
- retrageさんはTwitterを使っています 「@takehiro_t @mhiramat そうですね,話せなかったんですが,WindowsだとVirtualization Based Security (VBS)というHVベースのセキュリティ機構がOS Loader(winload.efi)の段階で立ち上がったりします.」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@retrage @takehiro_t なるほど、x86だとそういうことも可能ですね。armだと実行レベルは一方通行だから、最初にvmmを起動するとkvmが使えなくなってしまうんですが。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat win11で必須になるとゆーやつですね。どんどん生のハードに触れなくなっていく、、、😀」 / Twitter
- daem0nc0reさんはTwitterを使っています 「VMwareユーザなのでVirtualBoxはよくわかりませんが、Hyper-Vと共存できても、共存させるとVT-Xが使えなくなるので、Nested VMをよく使う自分にはどちらにせよWSLは使えないです」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「Hyper-Vコマンド使ってなくても、WSL2がHyper-V アーキテクチャ上で動くので、共存できないのは影響大きいです」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「VirtualBox 6.1.28(最新)にするとHyper-Vと共存できなくなるようです。自宅の環境でも再現しました。6.1.26なら共存できます。 https://t.co/kqf5eE3DLU」 / Twitter
- virtualbox.org • View topic - "...Call to NEMR0InitVMPart2 failed: VERR_NEM_INIT_FAILED (VERR_NEM_VM_CREATE_FAILED)..."
- MyIgnite - OS internals: Technical deep-dive into operating system innovations
- ネットワーク コントローラーの高可用性 | Microsoft Docs
- 仮想化ベースのセキュリティ (VBS) | Microsoft Docs
- Windows セキュリティでのデバイス保護
- 拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
- Hyper-Vとサードパーティー製仮想マシン環境を共存させる:Windows 10 Hyper-V入門(1/2 ページ) - @IT
- Windows11ホームにHyper-Vをダウンロードしてインストールする方法 - Howto88
- カーネル DMA 保護 (Windows 10) - Microsoft 365 Security | Microsoft Docs
- Hyper-V APIs | Microsoft Docs
- Host Compute System Overview | Microsoft Docs
- Windows Hypervisor Platform API Definitions | Microsoft Docs
- Virtdisk.h header - Win32 apps | Microsoft Docs
- Host Compute Network (HCN) service API for VMs and containers | Microsoft Docs
- Windows Hypervisor Platform Instruction Emulator API Definitions and Support DLLs | Microsoft Docs
- VM Saved State Dump Provider API | Microsoft Docs
Intel TDX
- Intel® Trust Domain Extensions
- tdx-module-1eas-v0.85.039.pdf
- Intel® Trust Domain CPU Architectural Extensions - intel-tdx-cpu-architectural-specification.pdf
- Intel® Trust Domain Extensions - SEAM Loader (SEAMLDR) Interface Specification - intel-tdx-seamldr-interface-specification.pdf
- Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module V0.931 - tdx-module-1.0-public-spec-v0.931.pdf
- Guest-Host-Communication Interface (GHCI) for Intel® Trust Domain Extensions (Intel® TDX) - intel-tdx-guest-hypervisor-communication-interface-1.0-344426-002.pdf
- tdx-module-1.0-public-spec-344425004.pdf
- Intel TDX Guest Driver Ready Ahead Of Linux 6.2 - Phoronix
- Intel TDX Guest Attestation Support Merged For Linux 6.2 - Phoronix
Intel VT
- MSI/MSI-Xとx2APIC - 睡分不足
- syuu1228/howto_implement_hypervisor: Software Design誌の連載「ハイパーバイザの作り方」の原稿公開用リポジトリ
- ハイパーバイザの作り方
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第5回 I/O仮想化「割り込み編・その2」
- BitVisor Updates in 2016
- Intelの仮想化支援機能「Intel VT」とは? - @IT
- 22.9. BIOS で Intel VT-x と AMD-V の仮想化ハードウェア拡張を有効にする - Red Hat Customer Portal
- Intel Virtualization Technology - 自作パソコン入門
- 第6期末セミナー2006-1rev1.ppt
- スライド 1
- KVM PCIパススルー (PCI PassThrough) | nexia inc
- VT-x を有効にしたく て 3 日程できなかったのだが、Windows が余計なお世話をしてた件 | ピックワールド(PIC World)
- VT-d 割り込み再マッパーが無効になっていると ESXi IO 接続の問題または PSOD が発生する (2149592)
- 仮想マシンのプロセッサ設定の構成
- dmamapping.pdf
- sec 1-48 - Willmann2008.pdf
- Satoshi's note: Introductory Study of IOMMU (VT-d) and Kernel DMA Protection on Intel Processors
- iommu.c - drivers/iommu/iommu.c - Linux source code (v5.12.4) - Bootlin
- Hideki EIRAKUさんはTwitterを使っています 「センシティブ命令といっても VMEXIT につながらない命令もあるから厄介」 / Twitter
- 【仮想化道場】サーバープロセッサのターニングポイントになる? 「Xeon Scalable Processor」(前編) - クラウド Watch
- コード整合性に対する仮想化ベースの保護を有効にする - Windows security | Microsoft Docs
- Sapphire Rapids Update - HotChipsで公開された次世代Xeon SPの新情報 | マイナビニュース
- ASCII.jp:Ice lakeとはまるで異なるSapphire Rapidsの構造 インテル CPUロードマップ (1/4)
- Mark ErmolovさんはTwitterを使っています 「Here's the PoC for VT-d bypass by Intel CSME on Apollo Lake platform. Moreover, Intel CSME can grant any integrated or even external PCI-E device the ability to bypass VT-d using IMRs. UEFI/OS can't prevent and even reliably audit this as IMRs can be changed at arbitrary time☹️ https://t.co/1Wr2myPsXd」 / Twitter
- 仮想 CPU パフォーマンス監視カウンタの使用 (2030221)
- Using Virtual CPU Performance Monitoring Counters (2030221)
- Intel® Virtualization Technology for Directed I/O Architecture Specification - vt-directed-io-spec.pdf
- Intel® Virtualization Technology for Directed I/O Architecture Specification - vt-directed-io-spec.pdf
- KOBA789さんはTwitterを使っています: 「@totsugeki_tai なんであんなアドホックな最適化が許されんのかよくわかってない(Popek と Goldberg の仮想化要件を満たしていればこんなことには)」 / Twitter
VPID
- イスラエルエリカちゃんさんのツイート: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行われてたのかな、自分でやるのかな。VPID有効時はINVVPIDで選択的にFlashで良いのかな。"
- VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
- 最近の話題 2008年4月5日
- 最近の話題 2008年8月23日
- SMP環境下でのTLB Consistencyについて - syuu1228's blog
準仮想化
- Linux KVM上でSEIL/x86を使う
- 3.4. 仮想化ハードウェアデバイス - Red Hat Customer Portal
- 第10章 KVM 準仮想化 (virtio) ドライバー - Red Hat Customer Portal
- Virtioについてのまとめ - Qiita
- KVMの準仮想化機能 - 睡分不足
- KVM - ArchWiki
- QEMU - ArchWiki
- Fadisさんのツイート: "virtioを介してホストとゲストで共有されるファイルシステムvirtio-fsを作ろうとしている人の話がLWNの記事になってる。ネットワークを介さずvirtioでホストのfsを共有する事でホストとゲストでページキャッシュとロックの共有が可能になるのが利点らしい https://t.co/tEyrwt9S6x"
- Subscription required [LWN.net]
- virtio virtualbox - Google 検索
- Makoto Kato ︎︎さんはTwitterを使っています: 「virtio-fsか」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)>> Virtio without the "virt" [https://t.co/4Z5bszp3QR] https://t.co/gG1Sfcx37N」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「註・xv6 は元々 IDE driver を持つが RISC-V 版から virtio に切り替わっている」 / Twitter
- virtiofsについて - Qiita
- FadisさんはTwitterを使っています 「virtio-videoドライバがバニラカーネルに入りたがっているらしい。virtio-videoはホストのカメラやキャプチャデバイスからの入力をゲストが直接読む機能と、ホストの動画エンコード、デコードの為のハードウェアをゲストが利用する機能を提供する準仮想化デバイスのドライバ https://t.co/EHbOncnBy0」 / Twitter
- VirtIO Video Driver Coming Together For The Mainline Linux Kernel - Phoronix
- ガラスボーさんはTwitterを使っています 「準仮想化ってXenが最初だと思いこんでいたのだが、どうやらDenaliっていうプロジェクトが初出だったらしい。ずっと勘違いしていた」 / Twitter
- FadisさんはTwitterを使っています 「VirtIO SoundのドライバがLinux 5.13でバニラカーネルに入りたがっているらしい。VirtIO Soundは「パススルーのようにデバイスを占有せず」「Intel HDAのエミュレーションより軽量かつホストがマルチチャネルをハードウェアで処理できる場合それに乗れる」準仮想化デバイス https://t.co/uv7avXPNZL」 / Twitter
- VirtIO Sound Driver Coming For Linux 5.13 - Phoronix
- FadisさんはTwitterを使っています 「linux-5.15からvDPAソフトウェアエミュレーションなデバイスをホストのユーザ空間に実装できるVDUSEが使えるようになるらしい。ユーザ空間プロセスに対してdata path用の共有メモリがマップされ、のcontrol pathからの要求が届くようになる。5.15時点ではvirtio blockのみ対応 https://t.co/xTlp5BAOF6」 / Twitter
- Linux 5.15 Adds VDUSE For vDPA Devices In User-Space - Phoronix
- FadisさんはTwitterを使っています 「vDPAはvirtio互換のバッファを持つハードウェアのバッファ(data path)をゲストに直接見せ、デバイスの制御(control path)をホストのカーネルがvirtioに変換してゲストに見せる事でゲストに生のハードウェアを見せないまま、高速なデータの受け渡しを実現する」 / Twitter
- FadisさんはTwitterを使っています 「vDPAはSR-IOVと組み合わせて複数のゲスト環境にホストの単一のNICをできるだけワイヤーレートに近い性能で提供する為によく用いられる。このような状況ではハードウェアのバッファにゲストから直接書きたいが、1つのゲストにハードウェアの完全な制御を与えるわけにはいかない」 / Twitter
- FadisさんはTwitterを使っています 「s/のcontrol/virtioのcontrol/」 / Twitter
libkrun
- Red Hatのエンジニアが作り始めた新しいVMM「libkrun」 コンテナに特化したミニマリストな実装とは - ログミーTech
- 10分で理解したかったlibkrun / I wanted to understand libkrun but - Speaker Deck
- FadisさんはTwitterを使っています 「libkrun: Red Hatが作り始めた新しいVMM。KVMの上で動く。デバイスのエミュレーションはvirtioを中心に最低限を実装 https://t.co/ULiNjSC3cD #kernelvm」 / Twitter
- containers/libkrun: A dynamic library providing Virtualization-based process isolation capabilities
- Yoshikazu GOTOさんはTwitterを使っています 「・最低限のデバイスエミュレーションとC APIを備えたRust性のMicroVM →virtio-console, virtio-fs, virtio-vsockなどを実装 →Firecrackerなどkらコードを拝借しているらしい #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・C APIを提供しているのでライブラリとしても使える ・ネットワークコンポーネントにvirtio-netは使わず、vsockベースのTSIという「革新的な方法」で自前実装 #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・ランタイムの分離レベルがVMなので、いわゆるサンドボックス型のランタイムに分類できる #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「inductorさん:既存のVM型ランタイムとの違い: ・既存の実装は、namespaceをPodごとに分割 ・VMがnamespaceごとなのでコンテナ感では共有のVMを使う →コンテナプロセスはKVMの子プロセスの一つに #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「inductorさん: ・これが ・VMをが分かれていても、同じコンテキストで処理が行われる #kernelvm #kernelvm_tw」 / Twitter
- Hiroshi ShimamotoさんはTwitterを使っています 「PodとVMの内包関係が逆になっているのか #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUを使ったコンテナのサンドボックス化では同一のPod内の複数のコンテナは同一のQEMUの中で実行される。libkrunはPodの中でコンテナ毎に軽量なVMMを動かす事でよりよい分離を提供する #kernelvm」 / Twitter
Confidentail VM
- suzakiさんはTwitterを使っています 「Googleが発表したデータを暗号化したまま処理する「Confidentail VM」はAMDのSEV: Secure Encrypted Virtualizationが使われています。 SEVではハイパーバイザー非依存でVMイメージに復号をCPUが行います。鍵はリモートアテステーションを使って渡されます。 CCS19論文が詳細 https://t.co/lG0BS0a298」 / Twitter
- Insecure Until Proven Updated:Analyzing AMD SEV's Remote Attestation - 1908.11680.pdf
- suzakiさんはTwitterを使っています 「「Confidentail VM」の説明で紹介したCCS19で発表された論文名は Insecure Until Proven Updated: Analyzing AMD SEV’s Remote Attestation でリモートアテステーションを行うファームウェアに脆弱性につての論文。」 / Twitter
- PublickeyさんはTwitterを使っています 「Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir https://t.co/yUZ1vl0M1y」 / Twitter
- Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir - Publickey
- suzakiさんはTwitterを使っています 「Confidentail VMにはGoogleのAsyloがベースになっている。SGX対応は知っていたがAMD SEVも対応していた。 私の知識はOPEN-SOURCE ENCLAVES WORKSHOP (OSEW 2019)で止まっている? https://t.co/iRts3FY11y Asylo’s unified enclave identity framework (Anna Sapek) ビデオ https://t.co/rFcy1h0WAN」 / Twitter
- Open Source Enclaves Workshop: July 2019
- suzakiさんはTwitterを使っています 「思い出したけど、AMD Secure Encrypted Virtualization (SEV) を活用したTEEはRedhatが開発しているEnarxがある。 これはIETF106のTEEPでも紹介さ入れた。 https://t.co/AxO7d5lW7l https://t.co/Yvh5DDSSke」 / Twitter
- slides-106-teep-sessa-enarx-a-teep-use-case-00.pdf
QEMU
TCG
- msyksphinz_devさんはTwitterを使っています 「もちろん、QEMUのドキュメントや論文にはかなり目を通しました。しかし、やはりコードに触って、デバッグして、書き直して、車輪の再発明をしないと、理解できなかったんですよね。 例えば、「3.4 Direct block chaining」だけ読んで、Block Chainingのイメージを理解できる人が、どれだけいますか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Direct block chainingの所、mrubyのJITでそっくりなことをやっているので理解できました。問題は、PCだけではなくCPUの状態でも次のブロックが変わりうると思うのだけど、直接チェックなしでジャンプしちゃっていいのか?と思う。まあ、大部分は問題ないと割り切っているんだろうけど。 >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ここでいうPCはプログラムカウンタね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「qemu、mrubyのJITとよく似た構造なので技術をぱくりたいと思って調べたけど、意外と最新版の詳細が見つからない。ソースがでっかいのでソースを読むにもどこを読んだらいいものか...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「qemu tcgのソースコードあった https://t.co/bKskd4vGNt」 / Twitter
- tcg · master · QEMU / QEMU · GitLab
- Miura HidekiさんはTwitterを使っています 「qemuのTCGの最適化処理を見つけた。定数の畳み込みとかやっている https://t.co/o8Xdul48fH」 / Twitter
- tcg/optimize.c · master · QEMU / QEMU · GitLab
- Miura HidekiさんはTwitterを使っています 「マシンコードレベルで畳み込みとかって効果あるのかしらん?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「READMEに全部書いてあった https://t.co/3YrCVi1PS1」 / Twitter
- tcg/README · master · QEMU / QEMU · GitLab
m68k
- FadisさんはTwitterを使っています 「Linuxカーネルに謎の高性能m68kマシンで動くようにするパッチが現れた話。謎のm68kマシンはCPUこそ古のm68kだが、Android emulatorで使われるGoldfishデバイスが生えており、更にvirtio-gpuやvirtio-9pを含む豊富なvirtioデバイスが生えている https://t.co/hDBxPN953g」 / Twitter
- Linux Kernel Patches Sent Out For A More Powerful Virtual M68k Machine - Phoronix
- FadisさんはTwitterを使っています 「勿論このマシンは実在する訳ではなく、QEMUに実装された仮想のm68kマシン。最も高性能な物理m68kマシン(Quadra 800、1993年)でもメモリを1GBより多く積むことができず、I/Oも貧弱で、「今尚m68k向けにパッケージを作っているディストリ等が苦行を強いられる」問題を解決するために作られた物らしい」 / Twitter
- henrichさんはTwitterを使っています 「ちなみにPortingしてる当のdistro開発者の一人、Amigaかなんかを山積みで貰って嬉々として車に積んでたなー」 / Twitter
- https://twitter.com/toshi_kd/status/1374682701609922569
ブロックレイヤーの分離
- FadisさんはTwitterを使っています: 「qemuでVMのプロセスとブロックレイヤーのプロセスを分離する試みがなされている話。両者は従来単一のプロセスの中で行われていたが、その結果VMが起動していないとQMPからストレージを操作できない等の理不尽な制約が生じていた https://t.co/NfoSP67wvS」 / Twitter
- FadisさんはTwitterを使っています: 「qemuはqcow2のようなフォーマットのサポートや、マイグレーションの実現の為にブロックレイヤーを備えている。ゲストからのIO要求はゲストのカーネルドライバからエミュレートされたデバイスを経てこのブロックレイヤーに送られる。ブロックレイヤーは実際にどのような読み書きを行うかを決定する」 / Twitter
- FadisさんはTwitterを使っています: 「qemuには実行中のVMにtcpで接続してVMの様子を見たり設定を変更したりするQEMU Machine Protocol(QMP)と呼ばれる仕組みが用意されている。VMのデバイスの挿抜、ストレージのスナップショットの作成やマイグレーションのセットアップ、メモリのダンプ等はこのQMPにJSONでコマンドを投げる事で行われる」 / Twitter
- FadisさんはTwitterを使っています: 「ストレージに対する操作はしばしばVMが停止していても行いたくなるが、tcpでlistenしているのがVMのプロセスそのものなので、VMが起動していないとQMPのコマンドを投げる事ができない。そこでQEMUのブロックレイヤーだけを専門に行うデーモンqemu-storage-daemonを新設する事が提案されている」 / Twitter
- FadisさんはTwitterを使っています: 「qemu-storage-daemonはストレージに関するQMPのコマンドだけを受け付け、NBD、FUSE、共有メモリ、vDPA等様々な方法で生のブロックデバイスに見える物(実際には裏でライブマイグレーションをしているかもしれないし、qcow2で記録されているかもしれない)を提供する」 / Twitter
- FadisさんはTwitterを使っています: 「qemu本体はqemu-storage-daemonが提供する「生のブロックデバイスに見える物」を使う事でブロックレイヤーをqemu-storage-daemonに丸投げしてVMの処理だけに専念できる。qemu-storage-daemonが動いている限りVMが起動していなくてもストレージに関するQMPのコマンドを投げる事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「この分業はVMのプロセスにSELinuxでより厳しい制限を設定できるようにし、VMから脱出を試みるタイプの脆弱性の影響を小さくする観点からも優れている。また、単一のqemu-storage-daemonが複数のVMのプロセスに対してストレージを提供する事は従来のqemuでは困難だったストレージの提供方法を可能にする」 / Twitter
- FadisさんはTwitterを使っています: 「例えばqemuはNVMe SSDを1本丸ごとVMのストレージとして使う場合に、VFIOを使ってユーザ空間で直接NVMe SSDと会話してホストのカーネルを通るオーバーヘッドを回避する仕組みが用意されているが、従来この仕組みは1つのVMがNVMe SSD1本を丸ごと使う場合にしか使えなかった」 / Twitter
- FadisさんはTwitterを使っています: 「qemu-storage-daemonを使うと、qemu-storage-daemonがNVMe SSDを1本まるごと占有し、複数のVMに対して領域を切り売りする事で、複数のVMがNVMe SSDを共有しなければならない状況でもこの機能を使えるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「qemu-storage-daemonが提供するFUSEインターフェースはディレクトリに生のディスクイメージが転がっているように見える物で、VM以外のソフトウェアがディスクイメージを操作する事を容易にする(例えばループバックでマウントするとか)」 / Twitter
- FadisさんはTwitterを使っています: 「qemuのVMからqemu-storage-daemonを使う際はvDPAが用いられる。qemu-storage-daemonはVDUSEでvDPA用のデバイスを作り、そのバッファをゲスト環境のvirtio-blkドライバに直接握らせる。ゲストからのストレージの読み書きのデータはqemuのVMのプロセスを経由せず直接qemu-storage-daemonと共有される」 / Twitter
Twitter
- Ryuji FuchikamiさんはTwitterを使っています: 「単体検証は部品の完全性確認がしたいので、UVMやらカバレッジやらフォーマル検証みたいなのがキーになる気がする。不定値使えるのも重要なのでやはり無償だとxsimになってしまう。 一方、システム検証はハードウェアと等価なものが高速に動いてくれないと困るので、H/Wエミュとか verilator が力強い」 / Twitter
- Ryuji FuchikamiさんはTwitterを使っています: 「とか考えていると QEMU と繋がってほしいのは、xsim より verilator かもしれない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「Metor GraphicsのSeamlessCVEのように動的にH/Wエミュレーションの粒度を変えられると非常に有用と思うのだが、あまり聞かない。今でも特許で縛られているのだろうか?」 / Twitter
- uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「QEMU(qemu-system-x86_64)でUbuntu 20.04 Desktop版のインストーラを起動しようとしたら、10分くらい待ってもCPUファンがうるさくまわりつづけ、すごいゆっくりとしか処理が進まないんだけど、これはインストーラが重い?あるいはメモリ2GB、CPUは1コアしか割り当ててないのが原因?」 / Twitter
- uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「KVMを使ってないからでは?と教えてもらって、-accel kvmを付けたらCPUファンも回らなくなったし普通の速度で動くようになった。もしかしたら自作OSもKVM有効にして動かしたらもっと省エネになるかも。」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「msyksphinz さん:エミュレーションの方法: ・インタプリタ型 →ゲスト命令を1命令ずつ解釈 →実装が簡単だが遅い ・バイナリ変換型 →ゲスト命令をホスト命令に変換 →速い #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「QEMUはバイナリ変換型で、ゲストの命令セットとホストの命令セットの間に中間言語TCGを持っており、TCGで最適化も行われる、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「自作QEMUが動的に生成したコードをgdbから漁れないのでデバッグが辛い→自作QEMUを本物のQEMUの上で実行すれば全ての動きが追いかけられる! #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUは命令を「分岐にぶつかるまで」のブロック単位でTCGに変換する。→分岐にぶつかった時、分岐後のジャンプ先は大抵固定のアドレス→一度ジャンプ先に飛んでジャンプ先のTCGが出来たらジャンプ元に生成したジャンプ先のアドレスを埋め込んでジャンプ先を別ブロック扱いしなくて良くする #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUがやっているような事をそのままRustで書くとRustが知らない所で生成するコードが山ほど出てきてunsafe祭りになる、と #kernelvm」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています: 「QEMU でゲスト物理アドレスとホスト仮想アドレスの対応知る必要があったんだけど、なんかズレるなと思ったらゲスト物理アドレス 3GB〜4GB の空いてるところをQEMU さんが詰めて管理してるからだった。安直にリニアに計算したらダメ、と。」 / Twitter
- FadisさんはTwitterを使っています: 「QEMU 7.0が出たらしい。7.0ではlinux 5.16から使えるようになったRISC-V版のKVM、RISC-V Vector extension 1.0や128bit RISC-Vのサポートが追加される他、x86_64ではIntelのAMX拡張命令がサポートされる。一方でPowerPC 600やARMv5等の古いCPUのエミュレーションが削除される https://t.co/kWrspb8cBq」 / Twitter
- QEMU 7.0 Released With Intel AMX Support, Many RISC-V Additions - Phoronix
- FadisさんはTwitterを使っています: 「QEMU 7.0では更に画面出力の方法に-display dbusが追加される。これは画面に表示すべき内容を別のプロセスにdbusを介して渡すモードで、表示内容と入力の受け渡しだけでなくクリップボードの受け渡し方法等も定義される。VMの中と外で快適なやりとりをするソフトウェアを自分で実装したい時に便利」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています: 「QEMU の QOM がつらいのと同じ要領?」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています: 「@kotatsu_mi QOMは別に辛くないじゃん(慣れてしまった顔」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています: 「@beepcap 慣れると device の追加とかわかりやすいのはたしかにそう」 / Twitter
- QEMU, a Fast and Portable Dynamic Translator | USENIX
- x86 - Where are local APIC addresses in QEMU? - Stack Overflow
- QEMU Developer’s Guide — QEMU 5.1.0 (v5.1.0-11824-g8699890d91-dirty) documentation
- QEMU 5.1.0 Documentation
- QEMU for Windows – Installers (32 bit)
- QEMU for Windows – Installers (32 bit)
- VirtIOのドキュメントを読む (1) - FPGA開発日記
- VirtIOのドキュメントを読む (2) - FPGA開発日記
- フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
- Rustで作るフルスクラッチQEMU型エミュレータ - Speaker Deck
- 無料のWindows仮想マシンをQEMUで動かす - Qiita
- 第592回 QEMUでGPUの3Dアクセラレーションを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第572回 GNOME Boxesを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- QEMUのトレース機能でOSのデバッグを支援する - uchan note
- 第679回 LXD上にWindowsをインストールする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 「QEMU 7.0」が公開 | OSDN Magazine
- Intel Discontinues Development Of Open-Source HAXM Software - Phoronix
- QEMUが分岐命令を処理する仕組み(Relocationによるラベルの解決) - FPGA開発日記
- Qemuのしくみ (の一部) - VA Linux エンジニアブログ
- Kernel/VM探検隊6 - Google スライド
Disk Images
- IMG (file format) - Wikipedia
- Disk Images - OSDev Wiki
- ISOイメージ - Wikipedia
- ISO image - Wikipedia
- Apple Disk Image - Wikipedia
- Disk Images — QEMU 5.0.92 (v5.1.0-rc2) documentation
- virtualization - RAW disk image and .Img format, Difference? - Super User
- 第11章 QEMU-img および QEMU ゲストエージェント Red Hat Enterprise Linux 6 | Red Hat Customer Portal
- 14.12. qemu-img でサポートされる形式 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
- 28.3. qemu-img の使用 Red Hat Enterprise Linux 5 | Red Hat Customer Portal
- GitHub - libarchive/libarchive: Multi-format archive and compression library
- libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
- libarchive-3.2.0
- LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
メモリバルーニング
- メモリバルーニング【仮想化】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- メモリ (バルーン)
- ESXiでのバルーニングはいつ起こるのか - Qiita
- メモリのバルニーングについて - NETWORK ENGINEER BLOG
- VMware ESXにおけるメモリ管理(8) - バルーニング - Simple is Beautiful
- 仮想化におけるメモリー管理テクニック | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ
- メモリバルーニング(メモリの動的追加) – VirtualBox Mania
- VMwareの監視を始めてみませんか - SiteScope技術情報 | アシスト
- Linuxエンジニア日記 VMware ESXのメモリバルーニング
- ゲスト OS の物理メモリが大量に使われている
- 5.2. クラスターのタスク Red Hat Virtualization 4.1 | Red Hat Customer Portal
- メモリ (バルーン)
- Dynamic Memory使用時に仮想マシンでは何がおきているのか / 開発者向けブログ・イベント | GMO Developers
- macos — バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は?
- バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は? | MACOS 2021
- Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
特定の KVM ゲストのみ参照可能なメモリ
- FadisさんはTwitterを使っています: 「Linuxで特定のKVMのゲストしか内容を触ることができないメモリを確保する機能が提案されている話。クラウドサービス等でハイパーバイザの脆弱性が直ちにその上で動くゲストにとって致命的な脆弱性となる可能性を減らすのが狙い。 https://t.co/Ijdav6LvQG」 / Twitter
- FadisさんはTwitterを使っています: 「KVMのゲストのメモリはハイパーバイザのプロセスが確保したメモリなので、ゲストOSがメモリをどのように扱ったかに関わらずゲストの全てのメモリの内容はハイパーバイザから丸見えになる。従って攻撃者がハイパーバイザの任意のメモリを読める脆弱性があった場合攻撃者はゲストの任意のデータを読める」 / Twitter
- FadisさんはTwitterを使っています: 「そこでハイパーバイザが確保するけどハイパーバイザのアドレス空間にはマップされず、ゲストしか読み書きできないようなメモリを確保できるようにしようという提案がなされている。インターフェースはLinuxで変メモリを確保する際の定番の方法になっているmemfd_createしてmmap」 / Twitter
- FadisさんはTwitterを使っています: 「ゲストはハイパーバイザにI/Oのバッファを渡す場合などにメモリの一部だけをハイパーバイザにも見えるようにしたくなるが、その場合ゲストは新しいハイパーコールで共有する領域を指定する。ハイパーバイザは共有を求められた領域のゲスト専用メモリをfallocateで剥がし、通常のメモリをそこにmmapする」 / Twitter
- FadisさんはTwitterを使っています: 「ただ、この方法で共有可能な領域を作ると、そのメモリは共有されていなかった時とは別のメモリになる為、それまでにゲストがその領域に書いていた内容が消えてしまう。この仕様が許容できるかどうか、出来ないとしたらどんな代替が可能かが今揉めているところらしい」 / Twitter
破損の検出方法
- FadisさんはTwitterを使っています: 「ハイパーバイザ型仮想化を用いる場合ECCからの通知を受け取るのはハイパーバイザなので、メモリの異常でdirtyなページキャッシュが破棄された場合にそれが書かれる筈だったファイルを丸ごと破損した事にすると、1ページの破損でVMイメージが丸ごと壊れた事になるの、パワみがある」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxでストレージへの書き込みが行われていない(dirtyな)ページキャッシュがハードウェアの異常で化けた場合にカーネルはどう振る舞うべきかが議論されている話。キャッシュが化けた事をfsに記録し、それを読む操作が失敗するようにすべき、という提案がなされている https://t.co/hLpl6hK7E5」 / Twitter
- FadisさんはTwitterを使っています: 「ECC付きメモリを積んでいるホストではメモリ上のデータが壊れた事を検知できるが、ECCで修正できないくらい派手に壊れていた場合「壊れていることは分かるが直すことはできない」ページの存在を知らされたOSはどうしよう、という問題が生じる。最も安直な対応はその場でkernel panicさせるというもの」 / Twitter
- FadisさんはTwitterを使っています: 「しかしメモリの容量が増えるとメモリの異常が起こる確率は上がる為、現代のサーバではその程度の理由でのpanicは許容できない。そこでLinuxではページキャッシュが壊れた場合、ストレージに正しいデータがある事を期待して単純にそのページキャッシュを破棄して処理を継続させる」 / Twitter
- FadisさんはTwitterを使っています: 「現状Linuxはページがdirtyだったとしても単純にページを破棄する為、dirtyなページが壊れた場合誰にも検知されずに静かにページが書き込み前の状態に戻る。問題は一部が壊れたファイルを読んだアプリケーションがおかしな動きをする事で明らかになる為、これによって起こる問題の調査は困難を極める」 / Twitter
- FadisさんはTwitterを使っています: 「ページをdirtyにしたシステムコールはページキャッシュに書いた時点で既に成功している為、ページキャッシュをストレージに書こうとした時にページが壊れていた場合エラーを返すには遅すぎる。従って次にファイルの同じ部分を読んだ場合にその読み出しが「ページが壊れているので失敗」して欲しい」 / Twitter
- FadisさんはTwitterを使っています: 「これはファイルシステムを巻き込む大掛かりな改良を伴う為、単純にカーネルが壊れたページキャッシュを覚えておくだけではダメか、破損箇所はページ単位ではなくファイル単位で覚えておくのではダメか、等の色々な妥協案が提案されている。しかしいずれも実用上の大きな欠点を伴う為結論は出ていない」 / Twitter
性能低下
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば古典的なスラッシングは載っている一方で、近年多用されるVM特有の問題は、まだOSやCSの本に書かれてない気がする。 VM異常に遅い → ゲストCPUが100% → だが真因はホスト上のゲストメモリ(mmapされたファイル)の断片化、とか。 https://t.co/ELQRRbTCF9」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにゲストCPUが100%に見えるのは、超低速メモリを使ってるのと等価になるため。 (一般に、CPUアクセス時のメモリストール=CPU100%に見える罠)」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「例えば、スラッシングを理解してるとは、「物理メモリ不足のために、ページアウト・インが頻発しするというようなことを頻繁してシステムの動作が極端に遅くなること」と解答欄に書けることじゃなくて、そこにあるhddのアクセスランプを見て「これ、スラッシングじゃね?」と気づく人なのだ。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「いくら正しい回答文が書けても、スラッシング起こしてるマシンを「このCPU遅い」と評してしまう人は理解してるとはいえない。 てな感じで、ペーパーテストで理解度を測るには問題をよく練らないと暗記勢に正解されてしまう」 / Twitter
- you milanoさんはTwitterを使っています 「@a_saitoh こっちが本題でしたか ナルホド」 / Twitter
- mmasuda #あらゆる軍事侵攻に反対しますさんはTwitterを使っています 「@a_saitoh RDB でfull scan search が起きまくっている( ≒ index を上手く使えていない) という現象なのに「CPUガー」というのはよく見ましたね。ストレージがシリコン化(SSD)してからは見えにくくなっている気はする。」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh 「最近はストレージがSSD化されて、アクセスランプもシーク音もしないですが。」 という人が出そうなので「vmstat(8) で page in/out がI/Oを圧迫している状態」のような視点も必要ですね。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「@eguchi3 そうですね。vmstat, iostat, top当たりですかねえ。」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh この辺の代表的な性能指標を、muninの様な監視ツール やnagiosの様な通知フレームワークを使って「何が異常で何が健全か?」を定量化する・・・あたりが定石ですが、ツールやフレームワーク自体が高負荷で本末転倒だったり。。」 / Twitter
- you milanoさんはTwitterを使っています 「@a_saitoh 「考えうる不具合は何か?」 ていう設問が捗るかなぁ 選択肢を20〜100くらい用意して複数チョイス ランダムチョイス勢を弾く為に 選択肢に関連付けと重みづけをして 的外れな組み合わせをしていると減点みたいな。 ほんとは記述式がいいけどハイコストですからね」 / Twitter
Oracle VM VirtualBox
- Downloads – Oracle VM VirtualBox
- ストレージ設定 | VirtualBox Mania
- 共有フォルダ設定 | VirtualBox Mania
- 共有フォルダのマウント | VirtualBox Mania
- Virtual Box 共有フォルダの権限 | Ubuntu初心者の集いブログ
- Chapter 3. Configuring virtual machines
- DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ page cache編 ~
- Ubuntu 16.04のVagrantでpublic Vagrant boxにアクセスできなくなった問題 - 覚書
- 2018年3月1日 Oracle,Linux 4.15をサポートした「VirtualBox 5.2.8」をリリース:Linux Daily Topics|gihyo.jp … 技術評論社
- Chapter 12. Troubleshooting
- VirtualBox VM debugger TIPS
- 保護種さんはTwitterを使っています 「VirtualBox の File->Export Appliance... から生成される *.ova (Open Virtualization) ファイルは tar 形式になっていたのか。しかも、iso イメージも含めることが出来るってのは面白い。ただ iso イメージ md5sum ファイル、それぞれの tar ヘッダを含めるので、その分サイズも増える」 / Twitter
- ノートPCに入れたLinuxデスクトップで、元々入ってたOEM版のWindows10のライセンスを使って仮想マシンを作成する | 俺的備忘録 〜なんかいろいろ〜
- Windows 11とRHEL 8.5をゲストOSにできる「Oracle VM VirtualBox 6.1.28」が公開 - 窓の杜
- Windows版VirtualBoxで64bit版Windowsが使えないときの確認事項 - Qiita
- Oracle VirtualBoxでWindows 11を利用できず、現在対応中 | TECH+
- 「Windows 11」と「Oracle VM VirtualBox」の互換性問題は解決 - 窓の杜
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「Virtual Boxは名前付きパイプを使うことでゲストの仮想RS232とホストの別プロセス間で通信させることができるらしい」 / Twitter
- How to connect to a docker container from outside the host (same network) [Windows] - Stack Overflow
- 無償の仮想PCソフト「VirtualBox 7.0」が公開 ~約4年ぶりのメジャーアップデート - 窓の杜
- VirtualBox 7.0がリリース、仮想マシンのフル暗号化をサポート | gihyo.jp
- Oracle VM VirtualBoxでUbuntuをマニュアルインストールする手順 - Qiita
- 第737回 VirtualBox 7.0の新機能[Windows 11とUbuntu 22.10の自動インストール編] | gihyo.jp
- 第739回 VirtualBox 7.0の新機能 [インストール後の変更点編] | gihyo.jp
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VirtualBox と違い、VMWare WS は自動Windows Update でもフリーズしないのが良い。 (前者は Windows Update系のサービスを切っておかないと酷い目に遭いやすい)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(こういう部分って、製品比較の〇✕表だと見分けられないんだよなぁ。あと手触り感とかも)」 / Twitter
blog
睡分不足
APIC, MSI-X
- MSI/MSI-Xとx2APIC - 睡分不足
- x2APICとinterrupt remapping - 睡分不足
- I/O APICについて - 睡分不足
- Local APICについて - 睡分不足
- MSI/MSI-Xとx2APIC - 睡分不足
- X540のMSI-X設定 - 睡分不足
QEMU/KVM
- KVMの準仮想化機能 - 睡分不足
- KVMにおけるcpuid命令の取り扱い - 睡分不足
- KVM GPUパススルー設定 - 睡分不足
- QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法 - 睡分不足
- QEMUコードリーディングメモ - 睡分不足
VMM
- Bareflankを使ってみる - 睡分不足
- クロスプラットフォームなハイパーバイザ Intel HAXM - 睡分不足
- VMWare Fusionメモ - 睡分不足
- virshのvcpupinとvcpuinfoで表示されるaffinityの違い - 睡分不足
- Ownership is theft? TockのTakeCellについて - 睡分不足
- x86におけるメモリアクセス権のルール - 睡分不足
- perf, ftraceのしくみ - 睡分不足
- VFIOによるデバイス操作 - 睡分不足
- 複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
- x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
- 仮想アドレスから物理アドレスを求める - 睡分不足
- per cpu data シンボルのアドレス - 睡分不足
/var/log/hdk.log
- 日記 (2014 年 4 月中旬)
- 日記 (2014 年 4 月下旬)
- 日記 (2014 年 4 月下旬)
- 日記 (2015 年 1 月下旬)
- 日記 (2015 年 2 月上旬)
- 日記 (2015 年 2 月上旬)
- 日記 (2015 年 10 月上旬)
- 日記 (2016 年 12 月下旬)
- 日記 (2017 年 1 月下旬)
- 日記 (2017 年 1 月下旬)
Publickey
- サーバレスの次は「ストレージレス」の実現へ。NetAppがストレージレスを実現する新サービス「Spot Storage」を発表 - Publickey
- 仮想マシンのメモリを、ネットワーク経由でほかのサーバから拝借して増やせる「VMware Cluster Memory」、VMwareが開発中 - Publickey
- Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ - Publickey
- VMware vSphere 7 Update 3発表。NVMe over TCPサポート、KubernetesによるvSANのトポロジー対応、仮想化GPU付き仮想マシンの起動など新機能 - Publickey
- VMwareが「Project Capitola」発表。vSphereでDRAMや不揮発性メモリを階層化し低コスト大容量メモリ実現、メモリプールとして利用可能に。VMworld 2021 - Publickey
- Google Cloud、乗っ取られて暗号資産を無断採掘されているインスタンスを検出する「VM threat detection」発表。ハイパーバイザによるメモリ分析でエージェントレス - Publickey
- VMwareが「vSphere 8」と「vSAN 8」を発表。SmartNICへ処理をオフロード、SSDに最適化したアーキテクチャで高速化など - Publickey
- KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
- https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt
- KVMみたいなハイパーバイザを作った
- 「なぜか最初のDHCP DISCOVERに返信がこない」バグ
- 山市良のえぬなんとかわーるど: AMD CPU で Nested Virtualization!(Windows Server 2022 と Azure Stack HCI 21H2 の Preview の話)
- RFC8365 Ethernet VPN(EVPN)を使用したネットワーク仮想化オーバーレイのソリューション - show log @yuyarin
- RFC7209 Ethernet VPN(EVPN)の要件 - show log @yuyarin
- Satoshi's note: Para pass-through hypervisors and their common design problem
- The Invisible Things Lab's blog: Thoughts on DeepSafe
- 20210814
- CPU Steal Time 入門
- Black Hat USA 2021 注目発表 2 ~ VM エスケープ脆弱性の発見と防御の発表紹介 - FFRIエンジニアブログ
- 2022年にやったこと - Blog posts by @retrage
スライド
- Hypervisor.framework(HVF)の中身 - Speaker Deck
- Xenのスケジューラがぜんぜんわからん - Speaker Deck
infoQ
- MicroVM仮想化ソリューションのFirecrackerが1.0へ
- Suspend/ResumeによるコンピューティングエンジンVMのコスト最適化
OSDN
- 英SophosがWindowsサンドボックスの「Sandboxie」を無償化、将来はオープンソースに | OSDN Magazine
- セキュリティを特徴とするデスクトップOS「Qubes OS 4.1」が公開 | OSDN Magazine
- 「Cloud-Hypervisor 23.0」が公開 | OSDN Magazine
Wikipedia
- 仮想化 - Wikipedia
- 仮想機械 - Wikipedia
- ハイパーバイザ - Wikipedia
- x86仮想化 - Wikipedia
- インテル バーチャライゼーション・テクノロジー - Wikipedia
- LPAR - Wikipedia
- PPAR (曖昧さ回避) - Wikipedia
- PowerVM - Wikipedia
GitHub
- intel/haxm: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
- bao-project/bao-hypervisor: Bao, a Lightweight Static Partitioning Hypervisor
- jovanbulck/0xbadc0de: A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes
- ARM向け自作ハイパーバイザーT-Visorを公開しました | 己の不学を恥じる
- Totsugekitai/tvisor: Hypervisor from scratch in linux
- SinaKarvandi/Hypervisor-From-Scratch: Source code of a multiple series of tutorials about the hypervisor. Available at: https://rayanfam.com/tutorials
- sux2mfgj/vmm: TBD
- SinaKarvandi/Hypervisor-From-Scratch: Source code of a multiple series of tutorials about the hypervisor. Available at: https://rayanfam.com/tutorials
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「超小型 x86-64-linuxエミュレータ。QEMUと比べると1/10のサイズしかない。ANSI C11で書かれており、POSIX上で動作する。 https://t.co/kXY5VJBFM8」 / Twitter
- jart/blink: tiniest x86-64-linux emulator
Zenn
- IOMMUについての調査
- EPTについて
- ちょっと詳しいEPT
- 割り込みと仮想化について
- VMMとコンテナの歴史とか
Qiita
- めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
- VirtualBoxの仮想マシンの時計がずれるのを防ぐ - Qiita
- ハイパーバイザを作ってみた - Qiita
- Windows Hypervisor Platform (WHP) の使い方 - Qiita
- BitVisor の IOMMU の話 - Qiita
- VT-xとHyper-VとVirtualBoxの関係についてのメモ - Qiita
- 30日目のはりぼてOSが動作するx86エミュレータを実装してみた。(感想) - Qiita
Twitter
再起動
- suzakiさんはTwitterを使っています: 「LinuxのKexecで再起動を掛けた際に以前のプロセスのメモリイメージを使うアイデアは面白い 『VMマイグレーション』じゃなく、再起動を跨いだ『プロセスマイグレーション』だ ハードウェアは同じで利点は多そうだけど課題も多そう プロセスツリーは維持?PIDは同じ?ハイパーバイザー挟んでも使える?」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxをkexecで再起動させた際に、再起動前に動いていたプロセスのメモリの内容とページテーブルを再起動後に上げたプロセスに引き継がせる仕組みが模索されている話。ハイパーバイザのカーネルの更新によってゲスト環境が止まる時間を最小にしたい方面からの需要があるらしい https://t.co/ibpBg65ZSV」 / Twitter
- FadisさんはTwitterを使っています: 「kexecはLinuxカーネルを使ってLinuxカーネルをブートさせるシステムコールで効果としては再起動に近いが、ハードウェアの初期化とファームウェアを省略するため高速に再起動させる事ができる。副次的な利点としてファームウェアを通らないので再起動の過程で書き変わるメモリをカーネルが把握できる」 / Twitter
- FadisさんはTwitterを使っています: 「ハイパーバイザ型仮想化でハイパーバイザ側のカーネルの更新が必要な場合、ライブマイグレーションでゲストを別のホストに逃して更新するか、checkpoint/restartで二次記憶にゲストの状態を保存して再起動後にロードするかする必要があるが、前者は移動先が必要で後者はある程度の時間ゲストが止まる」 / Twitter
- FadisさんはTwitterを使っています: 「kexecで新しいカーネルを起動した場合、古いカーネルの上で動いていたゲストのページテーブルとメモリの内容はそのままメモリ上に残っている。そこで、これを漁れるようにすれば二次記憶を経由するcheckpoint/restartよりゲストが止まっている時間を短縮できるのでは、というアイデアが出てきた」 / Twitter
- FadisさんはTwitterを使っています: 「このための実装で最初に登場したのは「kexecで再起動した後に以前の内容が残るtmpfs」をカーネル内に実装したPKRAMだったが、ゲストの状態を再現するには通常のメモリだけでなくPCIのMMIOも引き継げる必要があり、その方法はハイパーバイザの実装依存な為現在はFUSEベースの方法が模索されているらしい」 / Twitter
gVisor
- FadisさんはTwitterを使っています: 「GoogleがKVMのゲストがホストのカーネルのシステムコールを直接呼べるようにする驚きの拡張をバニラカーネルに入れたがっている話。gVisorを使って隔離されたコンテナのパフォーマンスを向上させるためのアイデアらしい https://t.co/T70HH2Fcay」 / Twitter
- FadisさんはTwitterを使っています: 「KVMはCPUの仮想化支援の機能をユーザ空間のアプリケーションが使えるようにする為にLinuxカーネルが提供している機能。QEMUはじめとするハイパーバイザ型仮想化で用いられる。KVMで隔離したゲスト環境内でsyscall命令が呼ばれると、ホストのカーネルではなくゲストのカーネルに処理が移る」 / Twitter
- FadisさんはTwitterを使っています: 「ハイパーバイザ型仮想化ではゲスト環境が暴れてもホスト環境を壊すような事は簡単には起きない為、何を実行されるか分かったものではないIaaSではこの方式がよく用いられるが、ゲスト環境が使うメモリやストレージを事前に割り当てる必要がある為ゲスト同士での柔軟なリソースの融通ができない」 / Twitter
- FadisさんはTwitterを使っています: 「一方コンテナ型仮想化では1つのカーネルに対して複数の分離されたユーザ空間を作る。この方式では全てのゲストは同じカーネルに対してリソースを要求している為柔軟なリソースの融通が可能だが、一度カーネルに脆弱性が見つかると暴れるゲストがホストや他のゲストにまで影響を与える可能性が出る」 / Twitter
- FadisさんはTwitterを使っています: 「gVisorはハイパーバイザ型仮想化が持つ分離と、コンテナ型仮想化が持つリソースの柔軟な融通を同時に達成する事を目指してGoogleが推す第3の選択肢。gVisorはKVMのゲスト環境に薄いカーネルを置く。このカーネルは自身だけでは片付けられない要求を受けるとホストのLinuxカーネルに要求を中継する」 / Twitter
- FadisさんはTwitterを使っています: 「ゲストに置かれるカーネルはゲストだけで片付くsyscallはその場で片付ける為、ホストのカーネルに対して行われるsyscallは限定され、暴れるゲストが直ちにホストのカーネルの脆弱性に刺さる可能性が下がる。メモリ確保やスレッド作成はホストのカーネルに中継される為リソースを予約する必要は無い」 / Twitter
- FadisさんはTwitterを使っています: 「gVisorはホストのカーネルにシステムコールを中継する必要が生じると、必要な情報を所定の位置に置いてVMExitする。ホスト側は置かれた情報を使ってホストのLinuxカーネルにsyscallする。ここで問題になるのがVMExitするとゲスト環境のCPUの状態を保存したりする為、それなりに時間がかかる事」 / Twitter
- FadisさんはTwitterを使っています: 「gVisorのKVMの使い方では頻繁に外にsyscallを投げる必要がある為、VMExit遅い問題は何とかして回避したい。そこでGoogleはKVMに新しいhypercallを追加し、hypercallの引数にsyscallの内容を付けて、VMExitせずにvmcall命令で直接ホストのカーネルのシステムコールをゲストから呼べるようにしたらしい」 / Twitter
- FadisさんはTwitterを使っています: 「GoogleによるとGoogleは社内でKVMに似たgVisor専用のサブシステムをLinuxカーネルに追加して運用していて、そちらにはホストのシステムコールを呼ぶ為のhypercallが備わっているらしい。Googleはこの機能をGoogleの外でも使えるようにするためにKVMに同等の機能を追加したいとしている」 / Twitter
- FadisさんはTwitterを使っています: 「しかしこのあまりにも通常のKVMの使い方からかけ離れた、gVisor以外での使い道がすぐに思いつかない、使い方を間違えるとホストとゲストの間に大穴を開けるhypercallの追加に対しては慎重な意見が相次いでいて、今のところすんなり入りそうにない雰囲気が漂っている」 / Twitter
@oshibori_vmm
histric
histric-1
- おしぼりさんはTwitterを使っています 「CPUIDの[bit5]を調べてVMXがEnableなことは確認できた。その後cr4のvmxeビットを1にしてvmxonして例外発生してないが、これはOKなのだろうか。vmxonしてるかどうかを示すフラグとかあれば良いんだけど。」 / Twitter
- おしぼりさんはTwitterを使っています 「0x1F0番portへのioハンドリングできた。 (つまりin命令を正常にハンドリングできるようになった) xv6のkernelとxv6.img をhexdumpしてバイナリ見まくった。たのしー。」 / Twitter
- おしぼりさんはTwitterを使っています 「あ、ちょっと間違い。0x1F0番目のread commandが動くようにしただけなので、ioハンドリングというか本当にin命令が動くようにしただけ。(write commadはまだなので。)」 / Twitter
- おしぼりさんはTwitterを使っています 「これをやる前は.imgの構造について全然理解してなかったけど、hexdump -s 512 -n 4 -C xv6.imgしてkernelのELFファイルのマジックナンバーを見つけたのは結構感動したし理解が深まった気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「理解も何もただのバイナリだけど。」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioはバイナリをデコードしてオペコードとオペランドを取り出してエミュレートしなけゃダメっぽい。stosb命令でこれが発生している。」 / Twitter
- おしぼりさんはTwitterを使っています 「mp floating pointerのlapic addresからmp configuration tableを参照してlapicのmemory mapped adressをゲットする、というのがxv6のマルチプロセッサ初期化処理で最初にやってること。」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのAPIC Virtualizationではゲストのlapic 物理アドレスへのアクセスをVMCS経由で予め用意した仮想的なlapicアドレスへリダイレクトする。VMExitが発生しないためオーバーヘッドが小さくなる。」 / Twitter
- おしぼりさんはTwitterを使っています 「というのは分かったが、lapic addressにはそもそも何が置かれているのか、その中身もkvmが初期化してくれるのか、書き込み、読み込みのインターフェースはあるのか、みたいな所をさらに調べないといけない。」 / Twitter
- おしぼりさんはTwitterを使っています 「ちなみにこれは確保したゲスト用メモリサイズがxv6のメモリレイアウトで必要になるサイズ(4G)よりも小さかったので範囲外のメモリアクセスがMMIOとして認識されてただけというオチ」 / Twitter
- おしぼりさんはTwitterを使っています 「ホスト仮想アドレス→ゲスト物理アドレス→ゲスト仮想アドレスと辿る必要がありちょっと混乱するな。ゲストはIdentity Mappingにしてくれというお気持ちになる。(そもそもゲストのメモリ仮想化手法が常に既知とは限らないので、ゲストに割り当てたメモリへの書き込み自体KVMインターフェースを介さずに」 / Twitter
- おしぼりさんはTwitterを使っています 「やるべきではないんだろうな。」 / Twitter
- おしぼりさんはTwitterを使っています 「とはいえSeaBIOSを動かすのちょっと面倒だしなぁ。でもframeBufferとかまでこちらで仮想化する手間を考えるとちゃんとBIOSから起動させた方が早い気もする。」 / Twitter
- おしぼりさんはTwitterを使っています 「KVMのAPIドキュメントが結構overview的な範囲しか網羅してなくて、実際にコード読まないと厳しい気がしてきた。」 / Twitter
- おしぼりさんはTwitterを使っています 「SeaBIOSの仕様調べるの重いなぁ LAPICのエミュレート飛ばして動かせるか考えてみるかぁ( ˙-˙ )」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioを一旦後回しにしてuartを動かすようにした。 とりあえず外部ファイルに「xv6...」を出力するところまではできた。(qemuみたいに別ウィンドウを出してそこにconsole出力させたいのだけど、やり方がわからない)」 / Twitter
- おしぼりさんはTwitterを使っています 「xv6(のmmioを完全に排除してシングルコア前提に書き換えたやつ)が自作VMMが動かすVM上で動いた。 まずは画面出力しないとな…。」 / Twitter
- おしぼりさんはTwitterを使っています 「最終的にはちゃんとlsなどのコマンドが実行出来るようにして、かつSeaBIOSから既読させるようにしたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioを機能させるには、EBA(一部)を正確にエミュレート or SeaBIOSを動かすのどちらかが必要なんだけど、今のところ前者の方が良さげ。(SeaBIOSの中身を知らなすぎる)」 / Twitter
- おしぼりさんはTwitterを使っています 「EBDAの間違い」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずLAPICもI/O APICもBDAから取ってきてることはわかった。 1. モックで動かす 2. BDAにちゃんと置く の順番でいけるだろうか…」 / Twitter
- おしぼりさんはTwitterを使っています 「KVMにLAPICの仮想化支援機能があることはわかってるのだけど、VMM側で何をすればいいのかわからん。」 / Twitter
- おしぼりさんはTwitterを使っています 「@tenpoku1000 そうですね、情報量はかなり少ない気がします。 以下の記事を読むと、ring0レベル(BitVisorやKVM)ではVMCSを用いたVMExitを発生させない方法 or EPT Violationによる例外フックのどちらかでAPICを仮想化してそうです。 https://t.co/yvN2NkD792」 / Twitter
- 今週の進捗 - bitvisor-summit-5-3-tomita.pdf
- おしぼりさんはTwitterを使っています 「基本的にはKVMは全てのMMIOをフックしてるんかな。(APIの利用者がどこまでフックしたいかを事前に知る術がないため)」 / Twitter
- おしぼりさんはTwitterを使っています 「メモ: qemu-kvmのコード読めばなんかヒント得られるのでは?(kvmから見たらqemuはユーザランドのVMMなので、今僕がやっているようにAPIでやり取りしているはずなので)」 / Twitter
- おしぼりさんはTwitterを使っています 「ソフトウェア割り込みはin-kernelの割り込みコントローラでハンドリングされるのでVM Exitしないっぽい。 (user-spaceで割り込みコントローラを独自エミュレートしたい場合は指定のAPIを叩いてKVMにそれを伝えればOK)」 / Twitter
- おしぼりさんはTwitterを使っています 「問題はPITだ…。 デバイスをKVMに作る時に設定を渡すのだけど、どんな値を渡せばいいのかAPIドキュメントを見てもさっぱりわからん。」 / Twitter
- おしぼりさんはTwitterを使っています 「タイマー割り込み動いた… 嬉しすぎる……!!」 / Twitter
- おしぼりさんはTwitterを使っています 「色々と悩んで調べた結果、「LAPICとIO APICのbase addressを正しく設定すればVM Exitするまでもなくkvmがよしなにやってくれる」が答えだったのはちょっと残念だが…。」 / Twitter
- おしぼりさんはTwitterを使っています 「まだ不備はあるものの、とりあえず内部割り込みと外部割り込みを動かすことは出来た。vmmからkvmに割り込みを依頼する方法があるはずなので、それを使ってデバイスアクセスの完了を通知する割り込みとかを実装できる気がする。」 / Twitter
histric-2
- おしぼりさんはTwitterを使っています 「最終目標がシェルを動かすことなので、そのために必要なことを整理しよう。」 / Twitter
- おしぼりさんはTwitterを使っています 「ioapicについて理解が進んだ」 / Twitter
- おしぼりさんはTwitterを使っています 「タイマー割り込みが1回だけ動いているので、『LAPICは正常なのでPIC/IOAPICからの割り込みの受信は行えていて、PIT -> PICへ割り込みが送られているので一度だけ割り込みを受信するけどIOAPICによるEOIの書き込みが失敗しているので2回目以降は割り込みが発生しない』なのか?」 / Twitter
- おしぼりさんはTwitterを使っています 「EOIが正しく書き込まれていない事を考えると、やっぱりIOAPICへのmmio全般が失敗している気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「ちょっと勘違いしていた。xv6ではlapicwriteを使ってtrap内でEOIを書き込んでいるので、lapicへの書き込みが失敗している可能性を考えなくてはいけないのか。 (lapicへの書き込みとioapicへの書き込み, 読み込みあたりが正しく動いていない気がする)」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのmmioをハンドリングしている部分を読まないとわからないな。lapicもioapicもin-kernelでエミュレートするならこちらからすることはほとんどないと思っていたけど、何かしら設定しないといけないのかも。」 / Twitter
- おしぼりさんはTwitterを使っています 「>KVM emulates 82093AA datasheet (with in-kernel IOAPIC implementation) which doesn't have EOI register naruhodo」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのコード読むめっちゃ学びがある。(最初からAPI仕様書に書いて欲しいけど)」 / Twitter
- おしぼりさんはTwitterを使っています 「r = kvm_pic_init(kvm); if (r) goto create_irqchip_unlock; r = kvm_ioapic_init(kvm); if (r) { kvm_pic_destroy(kvm); goto create_irqchip_unlock; } ??????」 / Twitter
- おしぼりさんはTwitterを使っています 「なぜdestroyするのだ…」 / Twitter
- おしぼりさんはTwitterを使っています 「しかもこの後irq_routingを設定するとioapicもdestroyしてる」 / Twitter
- おしぼりさんはTwitterを使っています 「お、ioapicのredirection tableは設定出来ている。(でもベクタ番号が32~55の24個になっている) ベクタ番号は0から24じゃないのかな」 / Twitter
- おしぼりさんはTwitterを使っています 「0から23、だ」 / Twitter
- おしぼりさんはTwitterを使っています 「execの中ののnameiの中のnamexの中のilockの最後の方でpanicしてる。 そもそもsuper blockの情報を見るとinodeの数が0とかになってるのでそこからおかしいのか?」 / Twitter
- おしぼりさんはTwitterを使っています 「どうやらディスク読み込みを通知する割り込みが機能していないみたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「IOAPICをuser-spaceでエミュレートしないといけない気がしてきた。 どう頑張っても今使っているAPIだとPICを一緒に作っちゃうので外部割り込み出来ない。(MSIとかは分からないけど)」 / Twitter
- おしぼりさんはTwitterを使っています 「ioapicのエミュレートを自分でやる場合はPITをin-kernelで作るか検討しないといけない。」 / Twitter
- おしぼりさんはTwitterを使っています 「もはやLAPICをin-kernelでやる意味を見いだせなくなりつつある…。 user-spaceに作るかぁ…。」 / Twitter
- おしぼりさんはTwitterを使っています 「いい感じに割り込みをpendingしておく仕組みさえ作れば普通に動作する気はする。」 / Twitter
- おしぼりさんはTwitterを使っています 「in-kernelなLAPICを引退します」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえず割り込みのエミュレートが上手くいってユーザプロセスが動くようになったらブログ書きたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「雑にLAPICをuser-spaceでエミュレートした。」 / Twitter
- おしぼりさんはTwitterを使っています 「PITもエミュレートしないといけないやんけ(絶望)」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずuser-spaceから外部割り込みをinjectしてxv6のtrap(割り込みハンドラ)を呼ぶことに成功した。」 / Twitter
- おしぼりさんはTwitterを使っています 「xv6のpanicもちゃんと消えた。」 / Twitter
- おしぼりさんはTwitterを使っています 「uartのエミュレートもやる事はわかってるので後はやれば行ける気がする (今はwriteだけを前提に雑にやってるのをちゃをreadされても良いようにデータを保持すればよいはず)」 / Twitter
- おしぼりさんはTwitterを使っています 「ちゃを→ちゃんと」 / Twitter
- おしぼりさんはTwitterを使っています 「人に発表したりブログを書くとなると、そもそもどうやって非64bit環境向けにコンパイルされたバイナリを実行しているのかちゃんと知らないといけない。 ホストで実行は普通に無理なはずなので、qemu使ってるのかな…。」 / Twitter
histric-3
- おしぼりさんはTwitterを使っています 「自分とは全く違うやり方だったのでとても参考になる。」 / Twitter
- かずみんさんはTwitterを使っています 「はてなブログに投稿しました #アドベントカレンダー2020 ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine https://t.co/TnDIJAulWt」 / Twitter
- ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine
- エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine
- kazuminn/EEMU: toy Emulator to hariboteOS and xv6 and toy hypervisor
- おしぼりさんはTwitterを使っています 「年末に自作VMM(と言ってもKVMを使ったホスト型)のここまでの進捗をブログに書くぞ(多分)」 / Twitter
- おしぼりさんはTwitterを使っています 「せっかくなのでuserプロセスがちゃんと起動する(シェルはまだ使えない)ところまで実装したいけど、今週そこまでいけるか微妙」 / Twitter
- おしぼりさんはTwitterを使っています 「割り込みの(正確な)エミュレート、難しすぎるな…。 KVM側の仕様も理解していかないと厳しそう…。」 / Twitter
- おしぼりさんはTwitterを使っています 「fs.imgを正しい場所にロードすれば今の問題は解決する気がするんだよなぁ。うーん。(ファイルシステムのメタ情報などはdisk1にあって、kvmmはまだdisk0しか仮想化できていなかった)」 / Twitter
- おしぼりさんはTwitterを使っています 「こいつのコードリーディングをやりたいと思っているが、「いや、まずはKVM読めよ」というもう1人の自分がいる・・・。(読んではいるけどまだまだ理解が浅い) https://t.co/oFspcpIVkh」 / Twitter
- google/novm: Experimental KVM-based VMM for containers, written in Go.
- おしぼりさんはTwitterを使っています 「そもそも32bit環境向けにコンパイルしたバイナリを実行しようとした場合はqemuに投げてIntel VT-xは使ってないと思ってるんだけど合ってるのかな。」 / Twitter
- おしぼりさんはTwitterを使っています 「自作VMMでxv6のコマンド待ち受けらへんまで動いた。(正確には"$"を出力する所まで。その後panicする)」 / Twitter
- おしぼりさんはTwitterを使っています 「コマンドの実行までいけなくとも、コマンド待機する所まではいきたいな〜っと思ってたので目標達成できた。」 / Twitter
- おしぼりさんはTwitterを使っています 「うーん、lockされてちゃいけないinodeがlockされてるっぽい?」 / Twitter
- おしぼりさんはTwitterを使っています 「直ったかも…?🙄 (怪しさを感じるところを直したらpanicしなくなったものの全く自分で説明できないし納得感もない顔)」 / Twitter
- おしぼりさんはTwitterを使っています 「sleep内にデバック用で挟んでたcprintfを削除したらpanicしない。 何回か試したけどちゃんと再現性はある。」 / Twitter
- おしぼりさんはTwitterを使っています 「ブログはまだ書けてないけど、一足先にREADMEなどをちょっと整えました。(ちゃんとリポジトリを整えるのが初めてなので、間違いやアドバイスなどあれば指定して頂けると嬉しいです)https://t.co/nBSr658PDh」 / Twitter
- tomoyasuzuki/kvmm: kvmm is a type2 hypervisor that uses the Linux Kernel Virtual Machine(KVM).
- おしぼりさんはTwitterを使っています 「ライセンス等はまだ自分がちゃんと理解出来ていないので、調べてからちゃんと記載するつもりです。」 / Twitter
- おしぼりさんはTwitterを使っています 「実装はカスなんだけど、コードは全部main.cに書いてあるし700行くらいしかないので、kvm使いつつハードウェアエミュレーションまでやってるリポジトリの中ではめっちゃ小さくて理解しやすいと思います(可読性がい良いとは言っていない)」 / Twitter
- おしぼりさんはTwitterを使っています 「動作環境はUbuntu18.04です。 他の人の環境で動かすにはxv6のパスを書き換えなくちゃいけないのはいつか直します…。(とはいえコード見れば秒で終わる修正です)」 / Twitter
- ykskb/dax86: xv6-runnable x86 Emulator
- おしぼりさんはTwitterを使っています 「ホストのSerial PortをVMのSerial Portへマップするにはどうしたらいいのだろう。QEMUとかが実現しているので可能なはずなんだが…。」 / Twitter
- おしぼりさんはTwitterを使っています 「僕に必要なのはキーボード割り込みではなくUART割り込み+ホストとVMのSerial Portのconnectなんだ、って事までは分かった。あとは実現方法がわからん…。」 / Twitter
- おしぼりさんはTwitterを使っています 「ホストのSerial Portへの書き込みは普通に出来るはずで、問題はそれをどうやってゲストのVMに繋げるかなんだよな。」 / Twitter
- おしぼりさんはTwitterを使っています 「確かこれをuchanさんがサラっと言っていた気がするんだけど、ちゃんと実現方法まで聞いとけばよかったな。」 / Twitter
- おしぼりさんはTwitterを使っています 「なんとなくイメージは出来たかも(?) ホストのPortへread/writeできれば、ホストからの入力をちゃんとVMの方にセットしてuart割り込み発生させればいける、気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「/dev/ttyS0は見えてるのにInput/Output errorとやらが出るな」 / Twitter
- おしぼりさんはTwitterを使っています 「見えてるけど setserial すると UART: unknownになるな。」 / Twitter
- おしぼりさんはTwitterを使っています 「標準入力をUARTにマップしてxv6側で出力させるとこまで出来たのだけど、なぜかコマンドが実行できない。」 / Twitter
- おしぼりさんはTwitterを使っています 「しばらく悩んで時間かかりそうだったらMP対応からやるかなぁ…。」 / Twitter
histric-4
- おしぼりさんはTwitterを使っています 「BitVisorはvmxon_region用のメモリを動的確保しているけど、(後で修正するとしても)今はグローバル変数でいいかも。とにかくステップバイステップで進めたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「VT-xの有効化はcr0とcr4あたりのビット立てたりしてvmxonするだけなので、まずはvmxonで例外が投げられないことが目標だと思う。その次に仮想CPUのセットアップ、vmcsのセットアップと続くのかな・・。」 / Twitter
- おしぼりさんはTwitterを使っています 「例外は全部シリアル通信でやる様にしてたのでやっぱ先にシリアル通信だろうか。一時的に例外ハンドラを書き換えればprintデバッグでも問題ないけど・・・。」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmが提供するAPIをつかってVMMつくる方針のほうがまだ現実味ある気がしてきたな。Intel VT-xの機能はkvmから提供されるのでエミュレートの方がメインになるけど。 (Type1をいきなりつくるのが厳しすぎる)」 / Twitter
- おしぼりさんはTwitterを使っています 「Type2ハイパーバイザでまともに動くのもそんなに多くないし頑張れば新規性出せるのでは (願望)」 / Twitter
- おしぼりさんはTwitterを使っています 「とても参考になる。本当にminimalって感じだ。 https://t.co/JptDUJpQOF」 / Twitter
- dpw/kvm-hello-world: A minimal kvm example
- おしぼりさんはTwitterを使っています 「もうちょっと大きい https://t.co/Zk1o6BolrZ」 / Twitter
- kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repo
- おしぼりさんはTwitterを使っています 「memo https://t.co/5Wj0zkNv4i」 / Twitter
- sparkler/main.c at master · shuveb/sparkler
- mumumuさんはTwitterを使っています 「xMP: Selective Memory Protection for Kernel and User Space [S&P '20] Data-Orientedな攻撃のMitigationというコンテキストで,VUMFUNC/EPTを活用することで細かくメモリの権限を制御(Excutable-onlyや存在するがアクセスできない)したドメインの作成・遷移プリミティブを実装」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Intel VT-x/Intel VT-d/Intel EPT に対応する AMD 用語、それぞれ AMD-V/AMD Vi/AMD RVI なんだけど、いっつも後者は AMD-V までしか覚えてない」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「あとこれを確認しようとして、IA-64 の Intel VT 技術が Intel VT-i、SR-IOV のようなネットワーク I/F の仮想化とかそこらへんは Intel VT-c の一部、ということをさっき把握した。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「> NIC は SRIOV 経由で VM に渡されるため、ネットワーク トラフィックがハイパーバイザーをバイパスできます。 その結果、標準の Mellanox OFED ドライバーが、ベアメタル環境と同様に HBv3 VM にロードされます。 https://t.co/CWpyJGzi8P」 / Twitter
- HBv3 シリーズ VM の概要、アーキテクチャ、トポロジ - Azure Virtual Machines - Azure Virtual Machines | Microsoft Docs
- おしぼりさんはTwitterを使っています 「Intelの場合VMCSへのアクセスがvmread, vmwriteなどの特権命令でしか行えないのがNested Virtualizationにおいてはつらいっぽいな。AMD だとVMCBへのアクセスは普通のメモリアクセスなのでguest hypervisorからのexit回数が段違いっぽい。」 / Twitter
- おしぼりさんはTwitterを使っています 「まあ実際hypervisorのexit handlerでほぼ確実に複数回のVMCSへのアクセスが必要になるのでこれはつらい。準仮想化する or 動的バイナリ変換で通常のメモリアクセスを行う命令に変換する研究もあるっぽい。」 / Twitter
- おしぼりさんはTwitterを使っています 「Software Techniques for Avoiding Hardware Virtualization Exits [USENIX ATC'12] VMExitにおける時間的なローカリティ(あるexitの近くにexitがある)を利用して、exitを起こす連続した命令をまとめることでexitの回数を減らす。面白かった。」 / Twitter
- おしぼりさんはTwitterを使っています 「仮想化とバイナリ変換は結構関連の深い分野なんだなー (QEMUとかを念頭に置くとそれはそう、という気もしなくはない)」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずx86がnested virtualizationに向いていないことはわかったよ...」 / Twitter
- おしぼりさんはTwitterを使っています 「キャッシュ汚染や割り込み終了時のEOIで発生するオーバーヘッドに関しては、VPIDやAPIC virtualizationである程度解決できる部分ではあるのかな。」 / Twitter
- おしぼりさんはTwitterを使っています 「SDMを読んでてVMCS shadowingとVMREAD/VMWRITE bitmapなるものを知った。ちゃんと対策してきているんだなあ...(古い論文を読んでいると古い知識を仕入れたちなので、定期的にSDM読むの大事だなと思った)」 / Twitter
- おしぼりさんはTwitterを使っています 「バイナリ計装でいい感じに任意の行にデバックコードを挿入する、みたいな方法とかツールないのかな。 QEMUにgdb繋いだらゆーて似たようなもんか…?」 / Twitter
- おしぼりさんはTwitterを使っています 「VMMの開発をしているとVMで動かすコードの挙動を追いたいことが結構あるのだけど、KVMとかを使うType2だとKVMの提供するタイミングでしかExitできないので柔軟性が微妙な気がする。となると動かすバイナリに自体にデバッグコードを挿入してprintデバッグしたくなるみたいな…。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令(の、空き領域)をデバッグ用途で埋め込んでおけば、そのタイミングで vm_exit してくれるかもとか、思いました: KVMにおけるcpuid命令の取り扱い - 睡分不足 https://t.co/9BqJVvcKPp」 / Twitter
- おしぼりさんはTwitterを使っています 「@tenpoku1000 似たようなやり方でio命令でexitさせことは簡単に出来るのですが、あくまでexitするだけでデータが渡しにくいのが悩みですね…。 ポインタを無理やり書き換えて未割り当て領域へのアクセスをmmioでexitさせる、とかは割とアリな気がします。(これもちょっと面倒な気もしますが)」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioでexitさせると最大8バイトまでデータを渡せるのが嬉しい。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令で渡せるのは EAX, EBX, ECX, EDX の各レジスタなので、ゲストのアドレスを渡すことは可能だと思います。(ホスト側からゲストの空間が見えるなら)データを引っ張って来れるかなと」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm 訂正:EAX と ECX ですね」 / Twitter
- おしぼりさんはTwitterを使っています 「標準出力がバッファリングされてしまってうのはfflushで解決できた。 あとはユーザーの入力と同じ出力が繰り返されてしまう問題。(標準入力の値を仮想UARTにバッファリングして割り込みを起こしているけど、xv6の割り込みハンドラでも出力してしまう為)」 / Twitter
- おしぼりさんはTwitterを使っています 「入力を監視してコマンド実行プロセスを起こすのも割り込みハンドラがやっているので、割り込みは必須だし値を渡さないといけないのも必須なんだよなぁ。1番簡単なのは、xv6のコードを書き換えて割り込みハンドラ内で出力だけさせないようにする。」 / Twitter
- おしぼりさんはTwitterを使っています 「うん、これは理想通りの挙動をするな。本来OSがやることをホスト側でやってるのだから、OSに若干手を加えないといけないのは当たり前か。」 / Twitter
- おしぼりさんはTwitterを使っています 「なんかコマンド動かないなと思ったけど、単純にコマンド用のバイナリがルートに置かれているので、新しく作ったディレクトリでコマンド実行できないな。(qemuでも同じ挙動なので仕様か)」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc termiosが何かすらよく分からなかったので調べてみました。エコー関係の設定とはc_iflagフラグに設定するECHO,ECHOE 等のことで、今回の文脈では標準入力をエコーしないように設定すればよい、という話でしょうか?」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc termiosも知らなかったので勉強になりました。出来るだけOS側は書き換えたくないので、このやり方でやってみます。 ありがとうございました!!」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc c_lflagでしたね。僕の勘違いでした。」 / Twitter
- おしぼりさんはTwitterを使っています 「自作VMMでコマンドによるVMの操作ができるようになった。ブレークポイント貼ったりもできます。」 / Twitter
- おしぼりさんはTwitterを使っています 「今はアドレスでしかブレークポイント貼れないので、それを関数名で貼れるようにELFの解析もしていくぞ。」 / Twitter
- おしぼりさんはTwitterを使っています 「VMM経由で自作OSに簡単にネットワーク機能を実装できるようにする、を次の次の目標くらいにしたい。 とりあえずはデバッグ機能やトレース機能をもう少し充実させるところから。」 / Twitter
- おしぼりさんはTwitterを使っています 「プロトコルスタック自作したりvirtioに対応させたりするのは面倒すぎるので、VMMで用意した独自のレジスタへのread, writeだけでネットワーク通信できるようにする、みたいのが理想(できるかは本当にわからないので半分妄想みたいなものだけど)」 / Twitter
- VMMを自作してみた - おしぼりの日常
- おしぼりさんはTwitterを使っています 「VM外からゲストOSのシステムコールを呼び出してセマンティックギャップを解決するのはそれなりに一般的な手法だと思うのだけれど、lsやpsなどのコマンドの出力先を良い感じにいじらないと情報が得られない気がするな...(うまく言語化できない)」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@oshiborii アンチパターンなはずです。VMM -> Non VMM call out は脆弱性になります。ゲスト内エージェントがVMMに情報を送るか、VMMがメモリを解析してゲストに戻らずゲストの状況を把握するのが一般的かと」 / Twitter
- おしぼりさんはTwitterを使っています 「@SatoshiTanda アンチパターンだったんですね、割とメジャーな手法だと思ってたので意外でした(どの論文もセキュリティリスク自体には触れていたので当然といえば当然かもですが...)。VMMからメモリを解析する場合、生のメモリから意味のある情報を得るのは難しかったりするのでしょうか?」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@oshiborii 簡単ではないはずですが、メモリーフォレンジックの分野と重複しているので、そちらを利用することで実用レベルになっています。LibVMIが代表で、メモリーフォレンジックのフレームワークであるVolatilityと統合して動作しますね」 / Twitter
- おしぼりさんはTwitterを使っています 「@SatoshiTanda LibVMIについてもちょっと調べてみます!ありがとうございます!」 / Twitter
@mumumu_vm
- mumumuさんはTwitterを使っています 「Directvisor: Virtualization for Bare-metal Cloud [VEE '20] ベアメタルクラウド向けのVMMで,性能とManageabilityの両立をがんばる.高性能化のため,HW(既存手法IOデバイスが主だがこの研究はIPIやTimerも含む)を直接OSに見せる.MigrationはGuest Agentに手伝って貰い仮想HW経由で行う等工夫.」 / Twitter
- mumumuさんはTwitterを使っています 「Reducing World Switches in Virtualized Environment with Flexible Cross-world Calls [ISCA '15] 現在のHWはApp->OS(syscall), VM -> VMM(vmcall)などの遷移のみサポートしているが,アドレス空間と権限を一般化したWorldという単位を導入してVM1'App->VM2'OS等の遷移もサポートしようという提案」 / Twitter
- mumumuさんはTwitterを使っています 「vSlicer: Latency-Aware Virtual Machine Scheduling via Differentiated-Frequency CPU Slicing [HPDC '12] VM環境でIO-boundなApp性能が低い原因の1つがVCPU Sched.であることを指摘し,より短いタイムスライスでより頻繁に動作させることでFairnessを保ちつつ性能向上」 / Twitter
- mumumuさんはTwitterを使っています 「Gleaner: Mitigating the Blocked-Waiter Wakeup Problem for Virtualized Multicore Applications [ATC '14] VMMでマルチスレッドなAppを動かしたときに性能が劣化する問題のあまり知られていない原因(BWW, よく知られたLHPの双対問題)を紹介し,そのMitigation(トレードオフが厳しい)を提案している」 / Twitter
- mumumuさんはTwitterを使っています 「vTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core [ATC '13] 各VMがある特定のvCPUにIO処理(IRQ Handling)を割り当て,VMMはそれらのvCPUをまとめてあるコア上で短時間(0.1ms~)でスケジューリングすることで,VMM上のIO性能改善.vSlicerの発展版.」 / Twitter
- mumumuさんはTwitterを使っています 「Micro-Sliced Virtual Processors to Hide the Effect of Discontinuous CPU Availability for Consolidated Systems [MICRO '14] VMM上のIOやMultithreadなAppが遅いことは既知だが,その対処の一つとしてタイムスライスを短くすることがあげられる.その際の性能変化の様子がたくさん載っている」 / Twitter
- mumumuさんはTwitterを使っています 「Preserving I/O Prioritization in Virtualized OSes [SoCC '17] 仮想環境下でIOが遅い理由として「既存のOSでうまくIO処理を*優先*していた手法が,仮想環境でうまく動作しない」から,という事実を実験的に示し,仮想環境でも十分優先度を高めるための手法xBalloonを提案.」 / Twitter
- mumumuさんはTwitterを使っています 「Towards a lightweight embedded virtualization architecture exploiting ARM TrustZone タイトルの通り.組込み向けVMMの文脈でGPOSをNon-Secureで,RTOSをSecure Worldでそれぞれ動作させる.ここでのRTOSは周期タスクと割り込みさえ最優先で対応すればよくて,その思想はTrustZoneに合う気もする」 / Twitter
- mumumuさんはTwitterを使っています 「XtratuM: a Hypervisor for Safety Critical Embedded Systems 航空機の安全の基準を満たす組み込み向けVMMの実装.いわゆるマイクロカーネルっぽいアーキテクチャで,「普通のOS + App」と「VMMコンポーネント」をスケジューリング. https://t.co/WqdXQMehaj」 / Twitter
- XtratuM Hypervisor - fentISS
- mumumuさんはTwitterを使っています 「Bobtail: Avoiding Long Tails in the Cloud [NSDI '13] EC2(のXen)におけるNWのTail Latencyの原因はNWそのもではなくNodeであることを突き止め,さらに実験で pCPUの数より CPU-boundなvCPUの数が多いと問題があることを結論づけた.Nodeの良しあしの判定方法も提案. https://t.co/DErHOv8kI0」 / Twitter
- Bobtail: Avoiding Long Tails in the Cloud | USENIX
- mumumuさんはTwitterを使っています 「GiantVM: A Type-II Hypervisor Implementing Many-to-one Virtualization [VEE '20] Scale-upからScale-outを目指す中で,分散OS的な「一つのOSが複数の物理マシンで動く」ことを仮想化技術を用いて実現する.Type-2なVMMで実現することで,HWサポートやデプロイが容易に. https://t.co/oks2mGCjdD」 / Twitter
- GiantVM | Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
- mumumuさんはTwitterを使っています 「そういえばInterfaceの低レイヤ号よんだんだけど,ハイパーバイザの話で「仮想化は,完全仮想化が必要とされることが多くあります」って記述としてどうなんだろう.組込みとかならそうなのかもだけど,クラウドでは基本的に程度の差あれ準仮想化じゃない?」 / Twitter
- mumumuさんはTwitterを使っています 「Paravirtual Remote I/O [ASPLOS '16] VMExitを避けるために仮想環境IO時に共有メモリ経由で隣のコアに処理をオフロードする手法を発展させて,SRIOVでDirect-IOしたNICの先に繋がるデバイスまでIOをオフロードしたときの性能評価.性能は多少悪化するが,コスト面でアド. https://t.co/a0QJwRWuDC」 / Twitter
- vrio-asplos-2016.pdf
- mumumuさんはTwitterを使っています 「Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency [CCGrid '15] 仮想環境における性能Isolationの文脈で,NUMA,SMT環境でのCPUの配置(Pinningによる)がCPU-boundなAppの速度にどのような影響を与えるかを調査. https://t.co/wa89OkaBi8」 / Twitter
- Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency - IEEE Conference Publication
- mumumuさんはTwitterを使っています 「vIOMMU: Efficient IOMMU Emulation [ATC '11] タイトルどおりIOMMUをVMMがSWでエミュレーションすることで仮想化.性能を犠牲に無修正OSのDMAに関するメモリ情報等を確認することができるなどのメリット.セキュリティを差し出して性能を得るやべぇ最適化とかもやってる.https://t.co/RXO99llMZf」 / Twitter
- vIOMMU: Efficient IOMMU Emulation | USENIX
- mumumuさんはTwitterを使っています 「Towards Fair and Efficient SMP Virtual Machine Scheduling XenのVM間のunfairnessがper-pCPUのvCPUスケジューラによることを指摘し,モニタしたCPUの実行状況からFairnessを満たせるように各vCPUのスケジューラをフィードバックで制御.並列計算の性能劣化も防ごうとした https://t.co/njhlcHL4WA」 / Twitter
- PPoPP2014.pdf
@utshina2
- 品川@学生/共同研究募集中さんはTwitterを使っています 「国際会議 OSDI 2020 に Rust で書いた OS の話が2つある。Theseus は全てのコンポーネント間の厳密な隔離を目指した実験的OS(単一アドレス空間、単一特権レベル、no POSIX)、RedLeaf は主にデバイスドライバ等の一部のドメインの隔離を目指した設計(POSIX subset)。https://t.co/iEzuC0zAyP」 / Twitter
- OSDI '20 Technical Sessions | USENIX
- 品川@学生・共同研究募集中さんはTwitterを使っています 「文脈的に Bitrise → BitVisor じゃないかな。」 / Twitter
- ログミーTech|エンジニア向け書き起こしメディアさんはTwitterを使っています 「[新着記事]けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 情報科学若手の会とは、情報科学に携わる学生、若手研究者、エンジニアのディスカッションと交流の会です。NTT東日本特殊局員の登氏が政府に配布停止要請さ… https://t.co/nP3vPsaMTn https://t.co/a8s19Vp5HA」 / Twitter
- けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 - ログミーTech
- 品川@学生・共同研究募集中さんはTwitterを使っています 「もともとは TypeII 的な VMM も想定されていて FreeBSD をベースにする案もあったけど、私がこれでやりたいと言って2007年春頃に故山口英先生と交渉しに行った。最初は Single VM に難色を示されたけど、最終的には認めていただいて誕生したのが今の BitVisor の準パススルー型アーキテクチャ。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「なので登さんが VPN モジュールを作った頃は、まだ VMM のアーキテクチャは決まっていなかった。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「この間の BitVisor Summit 9 で話すネタが無くて、BitVisor の歴史をしゃべったら、研究室の学生ですら初めて知った話だったらしく、時代の流れを感じた。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「どこかに BitVisor の歴史を記録としてまとめて書いておいた方がいいのかな。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「そういえば私の博士課程の研究は「細粒度保護ドメイン」というプロセス内に保護ドメインを作る話だったんだけど、私の教え子ですら保護ドメインというOSの教科書に載ってる用語を知らなかったりするので、時代の流れと指導力不足を感じる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「BitVisor の「保護ドメイン」は、一般名詞を固有名詞的に使っている形です。」 / Twitter
histric
histric-1
- ぬるぽへさんのツイート: "あとあれですね、ファイル共有とメモリの割り当てだけは鬼門なんだけどwsl2はどうするんだろ、前者は9pで普通にsharedやるってちらっと見たけど後者は?hyper-vと同じhot plugで削除はホストOS側から無理やりスワップ?"
- るくすさんのツイート: "単純な興味なんですけど、メモリ割り当てが鬼門になる状況ってどういう時があるんですか? ゲストがOS程行儀よく振る舞ってくれない故ですかね… "
- ぬるぽへさんのツイート: "今回はゲストが本物のlinuxカーネルなので、wsl1と違って一度linux側に割り当てたメモリを解放後にホストに返すのがゲストにだいぶ手を加えないと難しいのでは?という… "
- るくすさんのツイート: "なるほど。恐らくXenのVMコントロールチャンネルみたいな機構があるのかなと思いますが、いずれにせよ多少の準仮想化は必要になるでしょうね MSがこれからオープンにすると言っているオレオレLinuxパッチはその手のドライバかと… "
- ぬるぽへさんのツイート: "ですかねー、まぁやる気とリソースさえあればやればいい話っすからね… "
- るくすさんのツイート: "MSのパワー半端ないすね… "
- SODA Noriyukiさんのツイート: "これって、linux/drivers/hv/hv_balloon.c にある Hyper-V 用 balloon ドライバでは機能が足りないって意味なんでしょうか?もしそうだとするとどのあたりが足りないんでしょう?… "
- ぬるぽへさんのツイート: "実は良いかもしれませんがあまりうまく行った思い出がなく言及し忘れてました... 4年くらい前にhyper-vを使ってた時、バルーニングは全然メモリをホストに返てくれなかった思い出があります(数百MBくらいしか返してくれなかった) 今の状況が改善していればまんま動いてくれるかもしれません… https://t.co/xedpDkniEz"
- SODA Noriyukiさんのツイート: "なるほど、ありがとうございます!… "
- 品川 高廣さんのツイート: "Technion 相変わらず頭のおかしいことやってるなぁ(SMTを使ったNested Virtualizationの高速化: https://t.co/eg0fAMv8Ac)。低レイヤ大好き企業だな。… "
- Using SMT to accelerate nested virtualization
- hrk先生さんのツイート: "次はイスラエルのテクニオンから。SMTを使ってネストされた仮想マシンを高速化する。Hyperviser+VMon VM of cloud environment, etc. 下から、Host Hypervisor, Guest VM, Nested VM etc. VMどうしのスイッチが増えるOverheadを押さえるためSMTの同時実行を使う。"
- hrk先生さんのツイート: "ただアプリが全コアをフルに使うならばコンテクストスイッチの機会が増え、結局オーバーヘッドの減少が限定される。それを解決するため、SVT(実行は1本だがコンテクスト多重をする)を提案。凄くあたらしくはないが、良く考えられている良い結果に見える。ただHWを改造するので現実性はない。"
- Takashi KawasakiさんはTwitterを使っています: 「WindowsでほぼHyper-Vが必須コンポーネントになってしまったので、VMwareもVirtualBoxも使えなくなってしまって、実のところ従来よりも不便になっているのは事実なんだよなぁ。金で解決できない不便さ。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「@kthrtty Hyper-V、使いにくい上に機能も足りないですが、仕方がない部分もありますよね。」 / Twitter
- だよもんフレンズは転職したいさんはTwitterを使っています: 「@masaru0714 @n12i @BsdHacker 仮想環境はXenとかでも同様に、ユーザドメインのOSがLinuxでも*BSDでも同様に、時刻が狂いますね。倍速で遅れたりするのでntpdで同期が間に合わない。性能測定でtimeコマンドが信用できなくて困る。」 / Twitter
- FadisさんはTwitterを使っています 「ハイパーバイザ型のVMでコンソールから電源を落とすだけの為にゲストのlinuxがACPIイベントを正しく処理してユーザ空間のacpidに投げて、ってやるのアホっぽいって事で、電源ボタンのイベントだけを拾ってinitに直接シグナルを投げるtiny power buttonドライバが出来たらしい https://t.co/ooGrKrrhfi」 / Twitter
- Linux 5.7 Getting A "Tiny Power Button" Driver - Phoronix
- [PATCH 0/2] ACPI: Tiny power button driver - Josh Triplett
- retrageさんはTwitterを使っています 「Nabla Containers触ってたときに思ったけどコンテナでもプロセス生成以外にいろんなところが走るので結構遅いんだよね。runncだとコンテナイメージからISO作ったりしてるし」 / Twitter
- だんぼーだよさんはTwitterを使っています 「結構誤解されているぽいですが、最近のハードで Windows 10 を動かしている場合、CPU から見た OS は Hyper-V のハイパーバイザーで、Windows 10 は Hyper-V の上にいることが多いです。意識していないと思いますがセキュリティのため仮想化されています。msinfo32 を昇格して実行すると確認できます。 https://t.co/4g1RgKDjID」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「1960 年代から 2020 年までの仮想化の歴史と分類と特徴をまとめた最高のサーヴェイ論文が 5 月に出たのでみんな読もう #arm_study >> The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1 https://t.co/2aW7emmj0i」 / Twitter
- The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1
- suzakiさんはTwitterを使っています 「@kotatsu_mi ACM Computing Surveysは有料ですが、同じ著書によるarXiv版があります。こちらはPDFが無料。 The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers https://t.co/raeoWNkaGK ちゃんとJournal referenceにComputing Surveysが書かれています。」 / Twitter
- [1904.12226] The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers
- suzakiさんはTwitterを使っています 「「めくるめくLinuxカーネルじゃないLinux実装の世界」 https://t.co/a0ZnkgGUGJ カーネル/マイクロカーネル/ライブラリOSのAPI互換、市スコールエミュレーション、アプリケーションレベル互換の話。 TEEのABIの脆弱性を解析したA tale of two worlds[CCS19]を思い出した。 https://t.co/h6IR1xjRmT」 / Twitter
- Shinji KonoさんはTwitterを使っています 「VMの中でVMを上げるのは初期に研究があって、sensitive instructions をすべて実装とか言う条件があれば良い。当たり前だが、それを書くのが論文。実際にはCPUがそれようの機能を持ってるかどうかが大きかった。なくてもなんとかしてたが。」 / Twitter
histric-2
- retrageさんはTwitterを使っています 「VT-xとか使ったシステムのCI、どうするのがいいんだろうか。普通のCIサービスだとNested Virtualizationに対応してなさそうだし自前でCI runnerを持っておく必要がありそう」 / Twitter
- FadisさんはTwitterを使っています 「Bareflank: ハイパーバイザは仮想マシン以外にも色々な応用が可能だけど、既存の実装は仮想マシンを念頭に置いている事が多く、それ以外の応用はまず自力でハイパーバイザを実装することから始まりがちなので、部品として使えるハイパーバイザを作った、というC++ライブラリ https://t.co/PDjXx5LjeB」 / Twitter
- Bareflank/hypervisor: lightweight hypervisor SDK written in C++ with support for Windows, Linux and UEFI
- FadisさんはTwitterを使っています 「Linux 5.13にVirtIO Bluetoothのドライバが入りたがっているらしい。VirtIO Bluetoothを使うとホスト環境から見えるBluetoothデバイスをゲスト環境からペアリングできるようになる https://t.co/p0kggoBZz1」 / Twitter
- VirtIO Bluetooth Driver On The Way To The Linux Kernel - Phoronix
- Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ low latencyな実装を求めるとvirtioほしくなりそうですね。BTはリアルタイム用途も狙ってるらしいのでvirtio生やすのも納得……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DMAとキャッシュ関連の話、IRIXでDMA転送完了しても一瞬だけ旧CPUキャッシュが見える問題を思い出したり。 (=ページ境界に揃えずDMA転送というミスが原因だった) https://t.co/cTjPt1CsNu」 / Twitter
- marsee101さんはTwitterを使っています 「@ciniml 当たりです。 ありがとうございました。 ハードウェアDMAを行う前はXil_DCacheFlush();ですが、ハードウェアDMA後はXil_DCacheInvalidate();でした。 最初はキャッシュに書いた値をメモリにフラッシュで、次はメモリに書かれたので、キャッシュをインバリデートしてメモリをキャッシュに読み込むですね」 / Twitter
- AMD Zenの「Secure Encrypted Virtualization」に関する別の脆弱性が研究者によって実証される|自作.com
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「信頼できない環境でVMを実行できるAMD SEVに対する攻撃。チップへの電圧を異常に変化させることでSecure Processorに任意のファームウェアを実行させることができ、さらにこの技術を使ってVM内のendorsement keyを抽出できた。つまり正当なVMとしてなりすましが可能になった。 https://t.co/HI0itiP7pf」 / Twitter
- [2108.04575] One Glitch to Rule Them All: Fault Injection Attacks Against AMD's Secure Encrypted Virtualization
- (๑╹◡╹๑)さんはTwitterを使っています 「で、最後なんだけど、1台に複数の区画を集約するとめちゃくちゃ早くなるという点。まぁこれは、IAやクラウドでも同じだけど、同一筐体で稼働する仮想マシン間だと、ネットワーク通信はメモリ上で完結する(IBMはHyper Socketと呼んでる)ので、集約化のメリットは絶大。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「仮想マシンにおけるNGINXの性能測定。 結論: アプリケーションがCPU-boundであれば、仮想マシンで動かしても性能低下はほとんどない。一方Network-boundな場合は、ベアメタルで動かした方が断然性能がよい。(VMのI/Oは非効率なため) https://t.co/kFV0Wyldcr」 / Twitter
- Comparing NGINX Performance in Bare Metal and Virtual Environments - NGINX
- まちカドおるみんさんはTwitterを使っています 「ところて、jail や Solaris zone が既にある中の dune が container 前夜かというとどうなんだろう。privilege process の sandboxing なのはそうだけど……」 / Twitter
- ntddkさんはTwitterを使っています 「渡部(幾度となく映像化が試みられたスペースオペラの金字塔の話だと思っている) 児嶋(コンテナ普及前夜に考案されたVT-x non-root内でユーザーランドのプロセスを動かす手法の話だと思っている)」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Yasukata さんの「ptrace より 100 倍速いシステムコールフック作った」のやつ、なんか手法にみおぼえがある気がしてたけれど、そういえば library OS や unikernel が syscall を call に置き換えたりするヤツに似てるからそう思ったのかも」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「たとえば Graphene は素直に ptrace と seccomp とかやってるけど、HermiTux はバイナリパッチやってた https://t.co/NzWj9k7cbf https://t.co/LwSCNYvaNZ」 / Twitter
- A Binary-Compatible Unikernel - vee2019.pdf
- まちカドおるみんさんはTwitterを使っています 「こいつは jmp と nop に置き換えてからトランポリンコードをワンクッション入れてそこから syscall を call してますね(call でよいのは unikernel の特性上メモリ空間が単一になるため)」 / Twitter
- Hajime TazakiさんはTwitterを使っています 「@kotatsu_mi x-container もそれ風のようです」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@thehajime たしかに!すっかり忘れてました」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「ほかにも libOS 系ではないが SkyBridge が microkernel の IPC 向上のためにこういう置き換えみたいなのやってた記憶ある(裏取りしてないから記憶違いかも」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「久々に VMWare Workstation Proを買うの巻。 (VirtualBoxの品質がイマイチのため…スナップショットに戻れなかったり等)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(機能表の〇✕比較では同じに見えても、品質と手触りで差が付くモノって時折あるよね)」 / Twitter
- OS作れないマン 技術書典3 あ11企さんのツイート: "Kuboはyamlファイルを読み取ってその通りにVMを構築し、ソフトウェア(etcdを動かすために必要なものとか)をデプロイする。 #paasjp"
Hotpatch
KLP
- FadisさんはTwitterを使っています: 「MetaがLinuxカーネルのlive patchingの為の仕組みKLPを大規模なサーバ群のカーネルの更新で活用している話。KLPは実行中のカーネルの一部の関数の内容を新しく用意したバイナリの物に置き換える物で、カーネルを止める事なくカーネルの脆弱性を塞ぐ必要がある場合に用いられる https://t.co/sjm7IOVeBf」 / Twitter
- Linux Kernel Live Patching Working Fairly Well For Millions Of Meta Servers - Phoronix
- FadisさんはTwitterを使っています: 「KLPはカーネルの更新でダウンタイムが生じないという利点があるが、更新内容は稼働中のカーネルのデータを引き継いで突然関数の内容が変わっても問題を起こさないように慎重に設計される必要がある。よってカーネルに修正パッチが出てもそれをKLPで当てるには追加のエンジニアリングが必要になる」 / Twitter
- FadisさんはTwitterを使っています: 「また、関数の動きや使われ方によってはKLPによる更新が上手くいかない事もある。MetaではKLPのパッチを当てる前のカーネルと当てた後のカーネルが同じ振る舞いをする事を確認する自動テストでパッチをサーバ群に配っても大丈夫かを確認しているらしい。パッチの配布はパッチをRPMパッケージにして行う」 / Twitter
- FadisさんはTwitterを使っています: 「Metaはカーネルを修正する必要が生じるとKLPのパッチの作成と動作確認に約1週間をかけ、その後数時間で数万台オーダーのサーバにパッチを当てているらしい。KLPを使うとftrace等のカーネルの他の機能が正しく動かなくなる事があり、Metaはそうした問題を地道に直してupstreamに修正を投げているらしい」 / Twitter
- FadisさんはTwitterを使っています: 「s/数万台オーダー/数百万台オーダー/」 / Twitter
- YurikaさんはTwitterを使っています 「再起動を必要としないWindowsへのパッチ適用Hotpatch の仕組み解説 Hotpatchは長らくAzureのHost OSには実装されてきた。WindowsServer2019以降には実装されててWindows Server2022ではさらにARM64も対応予定 https://t.co/TIRiZsJ8p2」 / Twitter
- Hotpatching on Windows - Microsoft Tech Community
- Makoto Kato ︎︎さんはTwitterを使っています 「HotPatchってテクノロジー的にはWindows Server 2003くらいのHotfixで可能になってたけど、今はそんな感じなんだ。仕組み的な話はAlan BackがHotpatchチームに移籍した後、日本に来たときに教えてもらったが」 / Twitter
- YurikaさんはTwitterを使っています 「参考情報 Windows Server Azure Edition virtual machines (VMs) のHotpatching (Preview) https://t.co/IrynL0nbII」 / Twitter
- Hotpatch for Windows Server Azure Edition (preview) | Microsoft Docs
- YurikaさんはTwitterを使っています 「📝 再起動なしでパッチ適用 の試みは結構昔からあるんですよね. 多分最初はWindows Server 2003 SP1 だったような記憶? https://t.co/vfsb4YD452」 / Twitter
- A few stray notes on Windows patching and hot patching - The Old New Thing
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows Server 2003から仕組み自体は存在してたし、制約はあるけどHotfixは存在してたよ。 https://t.co/WvyopdxRdA https://t.co/99hix773T9」 / Twitter
- Avoid Windows Server 2003 reboots with hotpatching - TechRepublic
- Hajime FujitaさんはTwitterを使っています 「Linuxでもいつの間にか当たり前になってたカーネルのlive patchingだがWindowsも対応してるのね。」 / Twitter
- Hajime FujitaさんはTwitterを使っています 「@makoto_kato 引用元スレッドでも言及されてましたがエンタープライズ向け利用も多いことを考えるとある意味当然ではありますね。2003頃から対応していたのは今回初めて知りました。」 / Twitter
- OSを再起動せずに更新プログラムを適用する「Hotpatching」- 阿久津良和のWindows Weekly Report | マイナビニュース
ページャ/TLB/キャッシュ管理
その他
GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まだこの手の気休めソフトが存在するのね。 https://t.co/OU7VMY9AZN (再利用が期待されない)バックアップ的なコピー(=ファイルキャッシュ)で他の仮想ページ追い出さない、といった「事前に汚さない」機能にしないと意味がないのだけれども。」 / Twitter
- 放置しておくだけでメモリの使用を激減させてくれるフリーソフト「Reduce Memory」 - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「4~16KB単位で読んでの比較とか、あまり意味ない。 I/Oサイズ1MB以上で、Direct I/O + Async I/O でユーザバッファに直接DMA転送するのが一番速い。 (Async I/O で重畳できない時は 4MB以上が望ましい) https://t.co/wITXWqQPrF」 / Twitter
- rryu🕳さんはTwitterを使っています 「まさかのAVX。mmapの方が速いのはバッファ等への余計なコピーが発生しないとかだと思っていたが… / “プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE” https://t.co/qnNovvTeGU」 / Twitter
- プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同じPCIブリッジにぶら下がったNVMe間でダイレクト転送(PCI P2P DMA)という実験的パッチの話。 https://t.co/thzgoKJgCi https://t.co/jOdFaW1kz6」 / Twitter
- Experimental Linux Patches Allow User-Space Peer-To-Peer DMA Between NVMe Drives - Phoronix
- PCI Peer-to-Peer DMA Support — The Linux Kernel documentation
NUMA
- FadisさんはTwitterを使っています: 「NUMAノードを低速なメモリを扱う手段として用いるシステムの登場を受けて、LinuxのNUMAのメモリ管理がこのようなシステムにどう対応すべきかが提案されている話 https://t.co/QKu3Rank7O」 / Twitter
- FadisさんはTwitterを使っています: 「NUMAなシステムではCPUとメモリのセットは複数のノードに分割される。あるノードのCPUから同じノード内のメモリへは高速にアクセスできるが、別のノードのメモリへのアクセスには時間がかかる。このような構成はCPU間のバスの混雑を緩和できるため、沢山のコアを持つCPUがNUMAを採用する傾向にある」 / Twitter
- FadisさんはTwitterを使っています: 「NUMAなシステムではOSはできるだけCPUが触るページをCPUと同じノードのメモリに載せるように努力する。Linuxはページを稀に剥がしてpage faultを起こすことでページを触っているCPUを調べ、それが別のノードだったらページを別のノードに移動できないか試みるNUMA hinting faultを行なっている」 / Twitter
- FadisさんはTwitterを使っています: 「最近tiered-memoryと呼ばれるNUMAを従来と異なる用途で使うシステムが登場した。この種のシステムにはNVDIMM等の低速大容量のメモリを表現するためにCPUを持たないNUMAノードがある。この場合より多くのhotなページをCPUがあるノードのメモリに載せるために、coldなページを積極的に追い出す必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「そこでtiered-memoryなホストでは一部のノードのメモリの空きが減りすぎている場合に、バランスを取るのに必要な量より多くのページを別のノードに移動させる提案がなされている。これによってページがより積極的に別のノードに移動するようになる。大抵空いている移動先は低速大容量のメモリになる」 / Twitter
- FadisさんはTwitterを使っています: 「更にCPUが低速大容量のメモリ上のページを触っている事を検知した際に、ページを剥がしてからアクセスを検知するまでどれくらいの時間がかかったかを見る。短時間で検知されたページはきっとhotなので優先的にCPUの近くに戻す。この2つの組み合わせによってcoldなページが低速大容量なメモリに残される」 / Twitter
- セキュリティ・キャンプ2016で使用した、熊猫のテキストを公開しました。: 熊猫さくらのブログ
- The OOM CTF
- Implementing cooperative multitasking in Rust
- pmap ソースコードリーディング
- pmap でプロセスのメモリマッピングについて調べる
- DSAS開発者の部屋:最近のPython-dev(2017-08)
- Chapter 10. Linux® Binary Compatibility
- 2010年10月7日 Linuxバイナリ互換機能の仕組みの紹介:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- 2012年5月31日 Linuxバイナリ互換機能にDTrace:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- フルボッコのリソース制限値(limit)の修正をした話 | Developers.IO
- 【翻訳】goroutine の仕組み - まるまるこふこふ
- FastContainerアーキテクチャ構想 - 人間とウェブの未来
- 実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 - 人間とウェブの未来
- Rump Kernelのreadが遅くてハゲかけたので調査 - livaの雑記帳
- 第二回 #wsa研 でHTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法について発表しました - 人間とウェブの未来
- 次期Windows 10、タスクマネージャーのメモリ報告が変更 - PC Watch
- プロセスイメージ (Sun Studio 12: パフォーマンスアナライザ)
- セキュリティキャンプと自作Slab allocator SLOBA - 空き地の資料室
- atsisy/sloba: Simple and fast slab allocator using slob interface
- こんなところに増えたコアが効く ~【2018年度版】マルチコアCPUはこう使え! - PC Watch
- 詳解xv6 Page tables 2
- x86_64での再帰ページマッピング - Qiita
- 自作OSのから見たメモリ管理概論 - Qiita
- 自作OSにDemand Pagingを実装した話 - むむむ日記
- xv6-riscv のメモリ管理方法 - daikimiuraの日記
キャッシュ
false sharing
- Livaさんのツイート: "anderson lockの論文実装だとx86の64Bのキャッシュラインに乗ってしまって、false sharingが起こるという話の事 だね! #liva_notebook https://t.co/FL6aqBf1Su"
- slankdevさんのツイート: "True/False SharingとC++について https://t.co/JlMlZT4kqg #liva_notebook #slankdev > . @liva_jy 氏の排他制御の話が参考になった"
- C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- false sharingの整理 - yoskhdia’s diary
- Ryzen1800xでfalse sharing - Qiita
- とみながたけひろさんのツイート: "フォールスシェアリングですね。単純に見えるデータ構造ほど、意外なはまりがあってつらい(ポインターのサイズが変わってて違う環境で激しく遅くなった、とか)… "
- マルチスレッド開発ガイド: 3.4 スレッド間のフォルス・シェアリングの回避と特定 | iSUS
フラッシュと無効化
- Tips IA32(x86)命令一覧 Wから始まる命令 WBINVD命令
- Tips IA32(x86)命令一覧 Iから始まる命令 INVD命令
- Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味
- 用語の意味を教えてください。 Cache Flushといった時、それによ… - 人力検索はてな
- tsujamin/comp3300-cache-disable-kmod: cpu cache disabling kmod for linux ~3.8
- [SOLVED] Disabling CPU caches
- Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(キャッシュのフラッシュと無効化を追加) - Qiita
- 先日U-Bootに投稿したARMv7MのLinux起動時にデータキャッシュを無効にするパッチについての備忘録 - /home/tnishinaga/TechMEMO
- ストリーミング SIMD 拡張命令 2 のキャッシュ操作
- x86 に 3 オペランド論理演算命令と新キャッシュフラッシュ命令が追加 - 教育は参考ブログ
DMA
- DMAとキャッシュの関係 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- DMA対応と言われたら(2) | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- 夜でもアッサム: [クイズ]DMAをする時に、いつcacheを操作するか
Ryzen
Ryzen, DDR4
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「興味深い。 DIMMモジュール内で競合というか、フォルス・シェアリングでもしてるような挙動と。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Ryzen 4750G でvmovntdq(キャッシュを飛ばす書き込み命令)使ってメモリに書いた時のスループット、64Bを64B間隔で(つまりシーケンシャルに)書くと47.4GB/s、128B間隔で書くと26.5GB。おそらく64Bストライプのデュアルチャンネルだから、片方にしか書かないと速度半減するのはわかる。が... https://t.co/OoI9atiboo」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「256Bの整数倍は、なぜこんなに落ち込むの? mod 256 = 128 のほうが速いのはなぜ? 何が起こってるの?」 / Twitter
- Keigo NitadoriさんはTwitterを使っています: 「@kazuho DDR4の癖なのかもしれません。 プリフェッチ長は8なので64バイト単位なのですが中に2つのバンクがあるそうです。 https://t.co/nqRAcnTXta」 / Twitter
- 9 - 92-9-11.pdf
- Kazuho OkuさんはTwitterを使っています: 「@k_nitadori ありがとうございます。勉強になります。連続するアドレスは異なるバンクに振って、シーケンシャルアクセスで最大速度出るようにしてるでしょうし、その前提で言うと、今回の「スキップつきシーケンシャル」なアクセスパターンでは、この点には引っかからないような気がします...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu いまのところコレが僕には最も説得力のある説明です」 / Twitter
- Keigo NitadoriさんはTwitterを使っています: 「@kazuho こちらこそ勉強になります(専門家ではない点、ご容赦ください)。 推測になりますが4ラインの256バイトが DIMM0のbank0 DIMM1のbank0 DIMM0のbank1 DIMM1のbank1 の順に当たっているのかもしれません。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@k_nitadori あーーーなるほどです!ありそう!!!」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「シーケンシャルでない場合は、行が同じでもACTを再発行してる & ストライプでどっちのチャンネルに行くかは / 128B % 2 の値によって変わる、で説明つくのかなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「256B間隔で128B書くと27.6GB/sだから後者はあってるかも」 / Twitter
- 電子回路日和 - DIMMのスペック(CL/RCD/RP)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho ちなみに、ストライド0は 256系列になるのでしょうね。」 / Twitter
- satさんのツイート: "Ryzen1800xは - 8コア16スレッド - 4コアごとにCCXという一塊になってる - L1~L2キャッシュはコアごとに持つ - L3はCCXごとに持つ と、PC用の石としては比較的複雑な構成です。そいつらの性能を事細かに測ってた途中に天使が降りてきて「それ本に要るんか、締め切りいつや」と言われたのでほぼ捨てた"
- まさみさんは語りたいさんのツイート: "L3をCCXごとにまとめるところがAMDらしいなあ。IntelだとL3は全部共有が基本だし。… "
- satさんのツイート: "こういう構成のおかげで初心者用の本に「CCX」という単語が載ってます。でないとL3なんでこんなところで切れてるの、という説明ができなかったから… "
- まさみさんは語りたいさんのツイート: "L3の影響まで測ってるんだ・・・・… "
- Fomalhaut Weisszwergさんのツイート: "同人誌として出版というのはいかがでしょうか… "
- satさんのツイート: "そのうちやるかもです。一般に売れなさそうなのとか、売れるかわかんないものを、これまで同人誌に投入してます… "
ACPI
- まさみさんは語りたいさんのツイート: "ACPIにはPPTTというのが入って、これでキャッシュ階層を定義できるらしいぞ。 https://t.co/NMaZUdHMnd"
- [RFC,3/4] ACPI/PPTT: Add Processor Properties Topology Table parsing - Patchwork
blog
- キャッシュは諸刃の剣 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- beagleboard を触ろう - CPU キャッシュ:組み込みエンジニアの週記:So-netブログ
- Linuxエンジニア日記 ページキャッシュの効率化
- ファイルアクセスを高速化する方法を調べてみた - a9bのブログ
- CPU とキャッシュのはなし - graphics.hatenablog.com
- ADCX, ADOX, PERFETCHW, RDSEED 命令が追加 - 教育は参考ブログ
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- perf statでL1,L2(,L3)キャッシュミス測定 | 俺とお前とlaysakura
- 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
- キャッシュアルゴリズムの比較 - falsandtruのメモ帳
- キャッシュアルゴリズムの評価項目 - falsandtruのメモ帳
Qiita
- Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
- キャッシュメモリの恩恵をてっとりばやく体感する - Qiita
Wikipedia
- キャッシュメモリ - Wikipedia
- Windows SuperFetch - Wikipedia
- Windows ReadyBoost - Wikipedia
- FadisさんはTwitterを使っています 「耐性のあるメモリをキャッシュとして耐性のないメモリにデータを追い出す場合、頻繁にアクセスされるデータかどうかを判断する必要がある。→LRU-kアルゴリズムではキャッシュのアクセスのタイムスタンプを過去2回分持ち、2つの差をアクセス頻度としてキャッシュから落とすデータを選ぶ #kernelvm」 / Twitter
- 書換え耐性が低いNAND flashメモリ向けの キャッシュアルゴリズム - Google スライド
- ジップの法則 - Wikipedia
Twitter
ヒット・ミス率
- Naoya HoriguchiさんはTwitterを使っています 「キャッシュのヒット・ミス率って取れたとしてどう利用するのが普通なんだろうか...」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi ハード増強、CPU pin、isolation、ソフト改善のなどなどの動機付けですかね。」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi キャッシュヒット率って傾向が変わってもすぐ異常と判断できるのかなというのがあり、現実的に何に使えるのかなというのがありました。たぶん、異常検出というより、他の指標と合わせて原因特定に役立てる的な使い方なのかなと思いました。CPU pin やチューニングするときの判断には使えそうですね。」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi そうですね。あとこいつをもとにチューニングするのは最後の雑巾のひとしぼりのとき、という感覚はありますね。普通はこれより先に別のところがボトルネックになるので」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi 「雑巾のひとしぼり」いい表現ですね。私はシステムチューニングとかやったことないのですが、重要で技術的難度高くて面白そうですね。」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi はい。こういうときOSカーネルやってた経験はかなり役立ちます。他の人が持ってない引き出しがあることが多いので」 / Twitter
電力
- とみながたけひろさんはTwitterを使っています: 「最近のタブレットやノートPCは動画再生時間とかで電池の持ちが書かれてるけど、CPUはほぼ負荷なし、限界まで最適化されてしまったHW動画デコーダーの電力はどの製品もほぼ同じ、なのでCPUの最小パワー状態の電力と、画面とWiFiチップの電力ベンチ状態な気がしてならない…」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「最近のCPUはクロック下げると勝手にL2$のwayがへる(電源オフになる)らしいが、これ、こういうベンチとか向けなんやろな。まあいつでも10並列とかでコンパイルしてるわけちゃうからやるのが当然なんやけど」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「なおインテルは「製造ばらつきの関係で電力を多目に使う」wayを優先的に電源オフにするとかいう仕組みをいれてるらしい。工場で電力を測る行程があるんだろうけど、よくやるなあ」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「温度とか一定にしてそれなりの時間かけて測定しないといけないはずなので、理論上は動くけど実際にわかるぐらいの成果を出すのは大変そうなんだよねえ」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「参考資料(これはAppleのA11,A12プロセッサの比較で出てきたもの) https://t.co/Raza8z0vSy より >The conclusion is here is that Apple is employing partial cache power-down in what seems to be per-bank granularity.」 / Twitter
- The Apple A12 - First Commercial 7nm Silicon - The iPhone XS & XS Max Review: Unveiling the Silicon Secrets
- 中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t ソフト屋さんから見ると一見凄そうに見えるのですが、CPU側からするとN-way cacheってそういうハードがあるわけじゃなくて1-wayつまりdirect cacheがN枚あって、N個の結果をセレクターで選んでるだけなんですよね。2のべき乗でないwayとかも割と簡単に作れます。」 / Twitter
- 中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t キャッシュ読み込みはN-wayの中でデータを持っている1-way分のdirect cacheがラインを返しているんじゃなくて、N個のdirect cacheが同時にラインを返してセレクターが選ぶので、N-1個のキャッシュは毎回無駄に動作しているんですな。」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュラインを意識すると、処理性能が2~5倍くらい変わることがある話。 カメラ画像90度回転処理で、簡単に例示してみる…「分かり易い」と思ってもらえると嬉しいけれど、さて? https://t.co/X5UIyCl0nH… "
- キャッシュラインの意識は大事という話 // Speaker Deck
- INADA Naokiさんのツイート: "これで重要なのはキャッシュラインサイズではなくて、何本のキャッシュラインにメモリへのライトバックなしに同時に書き込めるかだと思います。 例えば8wayキャッシュなら下位アドレスが一致するラインを8本しか持てない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アドバイスありがとうございます。 L1についても考えると、結構この辺に肝がある可能性が高いかもしれません。 ともあれ、もう少し追試してみねば…… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、キャッシュライン+AVX2版だと、8K画像(120MB)の回転 = 合計120MB read + 120MB write を 22msで完了=合計240MB/22ms = 10.65GB/s でメモリアクセスできている計算。なかなかすごいな。 https://t.co/X5UIyCl0nH"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "INADAさん(@methane)に n-Wayセットが原因では?という示唆を頂いた。 確かに有りそうと思って、同時アクセスするアドレスを極力被らない形にしたところ、見事に64byte~128byteが最速となった。 最後の疑問は、なぜAVX2 gatherではその影響を受けなかったか、という点。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュライン版は図示した通り、srcを1ライン読み取ってscatter I/O的にdstに分散配置している。だが、AVX2にはgatherしかないため、dst 1ライン分をsrcからgather的にかき集めている点が違う。 だがentryの同一wayへの被り方という意味では、どちらも大差ない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "逆に言えば、キャッシュライン版も gather I/O的な配置に逆転させると、もっと安定して高速化する可能性がある? (entryを極力被らない形にするとAVX2版とキャッシュライン版の差は2倍→1.5倍程度に近づいた)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにエントリが被る場合も、dirtyなentryを無効化するよりも、cleanなentryの無効化するほうがずっと軽いはず。 そっか、ではキャッシュライン版はgather版にしたほうが良さそうだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "あとでスライドも変更しておこう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "やはり、scatter ではなく gather にすることで、エントリが被る場合のペナルティが圧倒的に減った。常にAVX2 gather に肉薄する速度に。(性能差は概ね10%以内)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、個人的には、 「(メモリアクセスで)scatterとgather、どちらでも使えるなら、gatherを使え」 という教訓を得た。(wayが重なった時のペナルティが圧倒的に軽い)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験前の目論見では「64byte単位最速に見えるけど、128byteにするとお隣の先読みも発生してさらに多少高速になるよ」というおまけストーリーを付与するつもりだった。 むしろ32byte最速でおや?となったのだが、ともあれn-Way補正後判明したのは、今回は先読みによる実数値改善はほぼ無かったこと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "いずれにせよ、実験・実測は大事。 (一方で、特定環境・特定条件による一側面結果、ということも忘れずに)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「キャッシュラインの意識は大事」のスライドを更新。 (32byte最速の原因は競合性ミス、その影響をscatter→gather形にすることで改善し、理論通り 64byte/line~128byte/line が最速となった例で説明) https://t.co/X5UIyCl0nH… https://t.co/IwUfDhIBIQ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "githubに置いたテストコードも更新。 https://t.co/0YE3TThEO2 ともあれ、スライドのアップロード&公開は初体験だったが、レベルの高い低レベルな方々?にも見て頂けているようで良かった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「scatterによる競合性ミス」と結論したところ、ヘネパタにi7について、こんな記述があった。本当にラインサイズ未満の書き込みで競合性ミスが出るのか、単に10エントリのwriteバッファ数を超えたためなのか、再調査が必要になった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにscatter版だと、32byte/line扱いで同時8ラインへの追記、64byte/line扱いで同時16ラインへの追記、が発生していて、10エントリのwriteバッファ数の境界となるため、状況証拠としてはこちらが原因である可能性も小さくない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "一方、それだと素数*32などの画素数で改善する話と整合しないところはある。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ソフトでもハードでも、キャッシュ機構を要所に入れれば威力抜群。 だが同時に、複雑度増大(改変が大変に・バグも混入しやすい)、コヒーレンス解決に手を焼く、といった問題を抱えるので、バランス大事と。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(…とキャッシュ機構を入れて、少し手を焼いたので書いてみた)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のCPUも、メモリアクセスがL1並みの帯域/レイテンシが出来てキャッシュ不要の単一階層になったら、どれだけシンプルになるのかしらん?とか、ふと思ったり。」 / Twitter
@mhiramat
- ひらナツさん@散文家さんのツイート: "はー、なる。MSRを使って処理しているからタスクスイッチングのところでマスクをクリアしてやれば、そのタスクが使っていたL2/L3のエントリは別に使うことができるようになるわけか。#linuxcon"
- まさみさんは語りたいさんのツイート: "キャッシュラインで配列舐める話はprefetchの使い方まで考えるとバラエティが増えるし、実は2のべき乗単位でないほうがいい時もある、という話を15年ぐらい前のYLUGで聞いた。吉岡さんがPMU使って測ってた気が。"
- まさみさんは語りたいさんのツイート: "あれ?だれかNかFの人が発表して、吉岡さんがPMU使うとキャッシュミス測れていいですよ、みたいなコメントしたんだっけ?"
- まさみさんは語りたいさんのツイート: "あと当時のintelプロセッサはキャッシュ先読みアルゴリズムが結構複雑でコロコロ変わるので、世代によって最適なやり方が違うとか聞いた気がする。"
- まさみさんは語りたいさんのツイート: "「キャッシュメモリからレジスタにアクセスする際のレイテンシ」は、「キャッシュメモリからレジスタに読み出す際のレイテンシ」でいいと思う。。前者だとキャッシュが主体的に動いてるみたい。"
@fadis_
- Fadisさんのツイート: "clflushがマニュアルではフラッシュの完了を待たないことになってるけど、Intelさんがフェンス忘れても大丈夫なように実際には完了を待つようにしてたら、不揮発メモリ用に高速なフラッシュが必要になってマニュアル通りの挙動のclflushoptを追加する羽目になる話面白い"
- Fadisさんのツイート: "gcc-4.9はskylakeで追加されたCLFLUSHOPT XSAVEC XSAVESが吐けないみたいだけど、ユーザ空間でこれ使って嬉しい状況そうそう無さそうだし4.9でemerge続けるか…"
- Fadisさんのツイート: "イマドキのNICはL3キャッシュに直接DMAしてくるからCPUからデータが見えるようになった時点ではまだflushされていない、と #kernelvm"
- Fadisさんのツイート: "clflushopt、clflushが同期的に動かないかもしれない事になってるけどみんな同期的に動くことを期待するから、同期的に動くようにしてたけど、NVMMするのにあたってそれでは困る状況になったから作った「本当に同期的に動かないclflush」だっけ #kernelvm"
- Fadisさんのツイート: "@uchan_nos x86_64の多くのプロセッサはスヌープ方式でキャッシュ一貫性を保っている。ただスヌープ方式は単一のバスが混雑してスケールしないためコア数が多いプロセッサでは使いにくく、そういったプロセッサではディレクトリ方式が併用される"
- Fadisさんのツイート: "キャッシュ一貫性が保たれる複数のCPUのうち1つが書き込みを行うと、一般には他のCPUが持っている同じ位置のキャッシュは破棄される。これはキャッシュラインの長さ単位で行われるため、隣接する2つの値に別々のCPUが読み書きしていると、同じ値を触らなくてもキャッシュの捨て合いが生じることがある"
- Fadisさんのツイート: "これはC++ではvectorのように隙間なく並んだ値を複数のCPUで処理する場合L1 cacheの長さ単位で同一CPUに処理させないと性能が落ちる可能性があるという話なので、C++17から同じL1 cacheに乗らない為に十分な幅を表す定数 std::hardware_destructive_interference_sizeが用意されている(n4659 §21.6.5)"
- Fadisさんのツイート: "正しく綴ることが難しいstd定数選手権で上位狙える"
@hisak
- Hisaki OharaさんはTwitterを使っています: "Intel MPX, Cache Allocation TechnologyにCode and Data Prioritizationを追加、Intel Processor Traceに大幅な追記、あたりがrev.55での差分かな。今回は結構でかいですね。"
- Hisaki Oharaさんのツイート: "IntelのCache AllocationってL2も対象になったってマジか #linuxcon"
- Hisaki Oharaさんのツイート: "ちなみにcache monitoringはHaswellからで、allocationはBroadwellから。どのSKUが持っているかは知らん。 #linuxcon"
- Hisaki Oharaさんのツイート: "Haswell-EPも一部のSKUはCAT持ってるらしい。ガチャだ。 https://t.co/aS0zkAL1No https://t.co/LL8Pqv0twy"
- Hisaki Oharaさんのツイート: "LinuxConで聞いたIntel Cache Allocation TechnologyがL2にも適用できる件、調べてみたら今年4月に出たIntel SDMのDocumentation Changeに記載されていた。すっきり。"
@satoru_takeuchi
- sat@引退さんのツイート: "端的にいうと(ID,キャッシュの範囲)の組があって、IDはどう使っても良い。タスクでもコンテナでもVMでも。IDごとに独立したキャッシュを割り当てる"
- satさんのツイート: "linux豆知識: /sys/devices/system/cpu以下を見ると、各CPUがどのノードに属しているかとか、どのCPUとキャッシュを共有しているかとかがわかるよ"
@KuniSuzaki
- suzakiさんのツイート: "CAT:Cache Allocation TechnologyではL3のキャッシュをアプリケーション(CPU?)毎に分け、Noisy applicationからのキャッシュアクセスを封じ込める。L3_QoS_MASKで実現。"
- suzakiさんのツイート: "L2 Cache用にもL2_QoS_MASKがMSRにあって、L3と同じことができる。"
@tanakmura
- tanakmuraさんはTwitterを使っています: "CLFLUSHOPT の謎がとけた。 http://t.co/xBQA5WkDmI の CLFLUSH と https://t.co/nQS8eDg7Kl の CLFLUSHOPT の挙動を比べても CLFLUSHOPT のほうが改善される理由が不明だったが、"
- tanakmuraさんはTwitterを使っています: "「CLFLUSHは実はこれまでの全CPUで順序付けてたから、MFENCEはいらなかったよ。順序が必要ないときは、CLFLUSHOPTを使って、最後にSFENCEしてね。」と、いうようなことが、7.5.6 CLFLUSH Instruction に書いてある。"
- tanakmuraさんはTwitterを使っています: "CLFLUSH は、3A, 2A では、「CLFLUSH命令間では順序保証しないから、順序付けるならMFENCE入れろよ」と書いてあるが、最適化マニュアルには、"
- Tsukasa #01さんはTwitterを使っています: "【Intel SDM 更新】 Revision 055 での主要な変更点は、Intel MPX と PT にマトモなドキュメントがついたことと、Skylake 以降のアップデートですかね。キャッシ
- なかがわがくたろうさんのツイート: "Intelのプロセッサにcache QoS機能があるの知らなかった https://t.co/6xd26SENze"
- naoさんのツイート: "挙動のおかしいドライバーが最適化を外すと動く場合、ちゃんとvolatile宣言が入ってるか、キャッシュの一貫性は保たれてるか、100回チェックしてからコンパイラのバグを疑え、というのが家訓。"
- Kazuho Okuさんのツイート: "特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス"
- InstLatX64さんのツイート: "Useful Prefetch* chart… "
- みやた二進いちろうさんのツイート: "webサーバでcpu 1次キャッシユのどのラインがホットかを計測して、Cの構造体の中の順序を変えるnetflixと比べればヌルいのでは。… "
- mattnさんはTwitterを使っています 「CPU キャッシュを生かすなら配列インデックスに気を付けろという話。Go に限らないあるあるな話。 #golang https://t.co/9jIYNXkqer」 / Twitter
- Go and CPU Caches - Teiva Harsanyi - Medium
- satさんはTwitterを使っています 「CPUのキャッシュメモリにおける大きな問題の一つ、スラッシングについて、実際に問題を発生させて凄まじい性能劣化が起きる様を確認した記事です。高級プログラミング言語ではこういうのがいいかんじに隠蔽されてたりします キャッシュのスラッシング|sat https://t.co/J7FFZm252r #zenn」 / Twitter
- キャッシュのスラッシング | Zenn
- 青子守歌さんはTwitterを使っています 「D$とI$って書いて「データキャッシュ」「インストラクションキャッシュ」と読ませるのはまぁ確かに界隈が狭すぎるか…。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Intel64にはキャッシュ予告コマンドがあるのだが、それは計測でちゃんと差が出た。それを出すようなコンパイラがあるのかどうかは知らないのだが。」 / Twitter
- x64 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「一応、CPU/IO Burstとかはやるわけなんだが、それが何を意味するのかはわからないものだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「キャッシュや仮想メモリの性能の問題、つまり hit率=性能 も、問題は解けても、それが何を意味するのかを理解してるかどうかとは別。自分でも学部生の頃、おんなじようなこと言われた。 この問題はなんのために用意されてるのか ってことね。先生の顔色を読んで欲しいわけじゃない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そういうイベント、スワップのないスマホとかにしかないイメージ。スワップのあるOSだと、キャッシュはファイルに書く!が正しいんだと思ってる。ファイルに書くことでOSが必要に応じてメモリにキャッシュしたり追い出したりしてくれるし再起動にも対応できるので…」 / Twitter
- 渋川よしきさんはTwitterを使っています 「GCというか、OSからのメモリ開放プレッシャーを受け取るイベントハンドラがあればキャッシュの実装には良いきがするのだけどねぇ。GCだとメモリあるのにタイマーで勝手にキャッシュが消えちゃうとかだとキャッシュ効率下がりそう #tng36」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「write + clwb / clflushopt のほうが non-temporal write より速いという話。面白い / https://t.co/bBqqpPFko4」 / Twitter
- [v2] memcpy_flushcache: use cache flusing for larger lengths - Patchwork
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Netflixがいかにしてキャッシュのボトルネックを解消したかという話。48コアのマシンで、約12%のコアだけが異常に処理が速い。なぜか? x86のL1キャッシュは64バイトなので、隣接する8バイトのポインタがたまたま別のキャッシュラインに配置されたCPUが速くなる。その確率1/8。 https://t.co/1yDv6K5sxR」 / Twitter
- Seeing through hardware counters: a journey to threefold performance increase | by Netflix Technology Blog | Nov, 2022 | Netflix TechBlog
- CPUID : キャッシュメモリの大きさ - 研究日誌。
- Intel SDM version 049 | Hisak's Tumblr
- インテル-CMT-猫マスターで/ README・01org /インテル-CMT-猫
- キャッシュ制御組み込み関数
- VTune でキャッシュのヒット/ミス回数を取得するには | インテルソフト あるある情報局
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
- コンピュータアーキテクチャの話 (184) キャッシュコヒーレンシ | マイナビニュース
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- Dragon protocol - Wikipedia
- DMA リソースの管理 - デバイスドライバの記述
- バスの仕様 - デバイスドライバの記述
- プログラムの動作が異常に遅い原因は「ランダムアクセス」かもしれない - GIGAZINE
- Intel 64ビットマシンでキャッシュを有効/無効にする:CDビットは常に設定されていますか?
- hsjoihs (はすじょい)さんはTwitterを使っています: 「Zipf の法則、単語レベルだとわりときれいにはまりがちだけど、中国語の漢字レベルだと意外とズレが出たりして面白かったりする #kernelvm」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています: 「zipfian 分布は YCSB っていう KVS のベンチマークスイートの中に入っててそれで存在初めて知った記憶。 #kernelvm」 / Twitter
- メモリへアクセスの統計的性質と キャッシュアルゴリズム - Google スライド
TLB
コヒーレンシ取られない
VPID
- しゅううGXさんはTwitterを使っています: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行
- なかみりさんはTwitterを使っています: "“VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful” http://t.co/cAaAHyJxSx"
- VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
- 最近の話題 2008年4月5日
- 最近の話題 2008年8月23日
- Fadisさんのツイート: "TLBはハードウェアがコア間でコヒーレンシをとらない → 1つのコアでEPTエントリを追っていた為よそのコアのTLBで立っていたdirtyページを見逃す → 一部のメモリが古い状態でマイグレーション先が動き出してしまう #kernelvm"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "修正 EPTEを読む前に全コアでTLB shootdownをする コードにすると数行 これで2〜3ヶ月を無駄にした #kernelvm"
- 蟹の赤ちゃんVS蛸の赤ちゃんさんのツイート: "別々のCR3を持っているのでTLBのキャッシュコヒーレンシが維持されない #kernelvm"
- _さんのツイート: "一部のdirty bitはTLBからまだメモリに落ちてきてなくて情報が古い #kernelvm"
- るくすさんのツイート: "dirty bitまでTLBキャッシュに載るのやばくない... #kernelvm"
- _さんのツイート: "EPTはコア間でコヒーレンシーが取られない #kernelvm"
- Deep(Ph.D Go player)さんのツイート: "@RKX1209 EPTを全てクリアすれば、次のメモリアクセス必ずViolationします。 もししないなら、TLBに乗ってるマッピングを使われてるか、別コアからアクセスされているかだと思います。"
- EPT と TLB でしくじった話
- とみながたけひろさんのツイート: "ページテーブル、マルチコアでコヒーレンシとられないほか、投機実行で勝手にTLB載るのも辛いんだよね。超ハマりパターン、、、 https://t.co/4n6S3WeOxZ"
DPDK
- NOKUBI Takatsugu野首貴嗣さんのツイート: "DPDKのその他の高速化手段 Hugepages: TLB missを避ける CPU affinity: 特定のCPUにスレッドをはりつける SSE, AVXなど使えるものは全部使う #kernelvm"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "Hugepageでのメモリ割付 OSはhugepageが常に有効 #kernelvm"
PCIDs
- Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
- Haswellマイクロアーキテクチャ - Wikipedia
- Hisaki OharaさんはTwitterを使っています: "Haswellで入ったのはinvpcidという命令のことではなかったっけ。それまではただのpcidでTLB selective invlは出来なかったから非常にいまいちだったという。"
- AMD Prepping PCID/INVPCID Support For KVM Guests On Zen 3 EPYC - Phoronix
- AMD Programmer Manual Update Points To PCID Support, Memory Protection Keys - Phoronix
- なまえだよさんはTwitterを使っています: "FreeBSD 10ではIntel CPUのProcess-context identifiersに対応するパッチにより、コンテキストスイッチの度にTLB全体をフラッシュする必要がなくなったのでコンテキストスイッチのレイテンシも改善されるようですね…"
- Tsukasa #01さんはTwitterを使っています: "oO( ってことは、最新の Intel CPU における TLB ってエントリ当たり 24 ビットものタグがついてるのか……。いや、どれほどのオーバーヘッドなのか知らんけど。 )"
- Tsukasa #01さんはTwitterを使っています: "@hisak 調べてみると PCID 自体は Westmere (Sandy Bridge の 1 個前) まで遡れました。"
- Tsukasa #01さんはTwitterを使っています: "@syuu1228 だいたいそんな感じみたいですね。付け加えて言うと、タグ付き TLB に相当するような機能は Intel 製プロセッサだと VPID と PCID の 2 種類が存在
- 品川 高廣さんのツイート: "INVPCID命令ですね。CR4の読み書きによるflushよりINVPCID命令の方が217ns速いのでLinux起動時にINVPCID命令を呼ぶようになったけど、BitVisorはINVPCID命令に対応してなかったので落ちたという話だそうです。 https://t.co/oQmyPQXrb4"
- 凍ってない方のアカウントさんのツイート: "x86、何故にtagged tlb実装(= PCID)したのがめちゃくちゃ最近なんだろう、ないと普通に性能落ちない…? VPIDでどうせtaggedになるから載せるか、みたいな話なんかしら(正確な登場時期も含めよく分かってない"
- Ryou Ezoeさんのツイート: "@syuu1228 Linuxカーネルが対応したのが4.14で多くのVMがゲスト側に見せてないので現状だと割と使用不可(AWSだと半々)という実情と書いてあって不思議な気持ちになっている。 https://t.co/5dPE6uZbaM"
- 中村 実さんのツイート: "@syuu1228 PCIDがSDMに登場したのが2011年10月の040版からですな。 https://t.co/pC1mrC8s33 もともとi386がコンシューマ向けでサーバー向けにこんなにガリガリ使われることを想定してなかったからコンテキストスイッチでTLBフラッシュでOKOKのお気楽仕様に… https://t.co/K0OfETdyvC"
- Hisaki Oharaさんのツイート: "PCIDはWestmereからで、invpcid命令はHaswellからだった気がする"
- Hisaki Oharaさんのツイート: "VPIDとPCIDは異なるもので、PCIDのOS enablingはめちゃ遅れていたことは知っておいて良いと思う"
- Hisaki Oharaさんのツイート: "そもそもbit長が違う。VPIDは16-bitだけどPCIDは12-bitだ。たったの12-bit !?と驚くと思う。自分は驚いた。。"
- suzakiさんのツイート: "@hisak 確かに。意味を考えると、VPID(Virtual-processor ID)が16-bitで、PCID(Process-Context Identifiers)が12-bitと変な気がしますが、PCIDはCR3 registerなのに対して、VPIDはメモリ上のVMCS fiel… https://t.co/13C2tsw2hF"
- Gil Teneさんのツイート: "PCID is now a critical performance/security feature on x86 - Google Groups https://t.co/NuL7UXGHNG"
- PCID is now a critical performance/security feature on x86 - Google グループ
- Vladimir Danylevskiyさんのツイート: "lshw -C cpu | grep -oiw pcid for Linux users. If you a regular user, don't panic, the patch will be shipped with a new update for your OS/… https://t.co/PgidcInc7M"
- Dan Guidoさんのツイート: "If you have an Intel CPU with the "PCID" feature, then the security fix for Spectre/Meltdown will have less performance overhead. On macOS,… https://t.co/XlAgqQne1z"
- Nasir Zubairさんのツイート: "@msgeekuk @epakskape Seeing the same thing on Dell systems with microcode update as well as MSFT patches. All green except for PCID Optimization. Can someone she… https://t.co/s5BqVGSwpb"
- Martijn Brantさんのツイート: "Good to hear the PCID is not related to security. Was seeing a lot of results with false. Be sure to patch microcode though! https://t.co/oyasPYiRs6"
- Hisaki Oharaさんのツイート: "PCIDについてはこの記述が気になるんだよな "To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups."… https://t.co/5oavpdYYut"
- Linux_4.14 - Linux Kernel Newbies
INVLPG
- TLB · oraccha/omicron Wiki
- Tips IA32(x86)命令一覧 Iから始まる命令 INVLPG命令
- 悪魔のツール“ルートキット”最前線 - 第7回 メモリー上のデータを見えなくする(後編):ITpro
- Linux カーネル 3.8 では i386 がサポート外に | スラド Linux
TLB shootdown
RAR
- Anderson NascimentoさんはTwitterを使っています 「Experimental Features Feedback Forum Remote Action Request (RAR) based TLB Shootdowns https://t.co/NFan9uTPBX https://t.co/MmskgAwWg0」 / Twitter
- Experimental Features speedup TLB shootdowns
- 341431-remote-action-request-white-paper.pdf
- るくすさんのツイート: "linuxのTLB shootdownは割り込みベクタに専用の関数追加して中でflush_tlbしてるみたいだ"
- 無視できないフラグメンテーション問題への解答は?(2/2) - @IT
- /proc/interruptsに関するメモ - お菓子食べる部
- SMP環境下でのTLB Consistencyについて - syuu1228's blog
- BitVisorの仮想メモリーマップ - Qiita
- EuroSys 2020さんはTwitterを使っています 「#EuroSys20 Best Paper Award: “Don’t shoot down TLB shootdowns!” by Nadav Amit, Amy Tai and Michael Wei (VMware Research Group) — congratulations! https://t.co/fGsBrN8cAj https://t.co/6wky5sCZ2V」 / Twitter
- Don't shoot down TLB shootdowns! | Proceedings of the Fifteenth European Conference on Computer Systems
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter
Twitter
- Deep(Ph.D Go player)さんのツイート: "Ryzen 案件、BIOSの設定でコア数一つにして試してみてほしい"
- Deep(Ph.D Go player)さんのツイート: "TLB周りならそれで発生しなくなるから一つの切り分けになりそう"
- EPT と TLB でしくじった話
- NAKAMURA Minoru's Diary (2013年2月)
- x86-64-128さんのツイート: "QEMUで自作OSを動かし、そこでページングの実験をしているんだけど、ページディレクトリエントリのPresentビットを0にしてアクセスしてもPage Faultが発生しないように見える。"
- x86-64-128さんのツイート: "ページディレクトリエントリを更新したら何かCPUに教える必要あるのかな。メモリを書き換えるだけで行ける?"
- Fadisさんのツイート: "本題の前にまずFacebookの人が「バイナリ内の実行頻度が高い関数8MB分を1箇所に集めてHugePageに乗せる事でTLBミスを回避して5~10%の性能向上」とかやってて、Webサービスの性能向上の努力が極まりすぎている事に定評のあるFacebookが平常運転で安心した(リンク先有料記事) https://t.co/4fi5TzNv91"
- ロボ太さんはTwitterを使っています: 「malloc動画といえば、「京」でハイブリッドとflat-MPIで等価な計算してるはずなのにハイブリッドの方がが有意に遅いのに悩んでて、後で直接の原因がTLBスラッシングとわかるんだけど、その理由がわかんなくて、malloc動画で勉強したら、アリーナの大きさが違うのが原因とわかってなるほどな、と。」 / Twitter
- ロボ太さんはTwitterを使っています: 「これ、最初は完全にスレッドまわりが原因と思って調べてて、でもプロファイル見てもそうは見えなくて、ある日ポスターで話したら筑波大の朴先生が「TLBじゃないかな」って言って、その時は「まさか」って思ったんだけど、その数年後にTLBスラッシングが原因とわかって、プロってすごいなと。」 / Twitter
- トランスレーション・ルックアサイド・バッファ - Wikipedia
- HPC性能が大幅に強化されたHaswell(中編) - TLBミスによる性能低下を減少 | マイナビニュース
- 本の虫: Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする
- 0から作るOS開発 ページングその1 ページとPTEとPDE
- ハードウェアキャッシュとTLBの制御 - 詳解Linuxカーネル Wiki*
- ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)|ロードマップでわかる!当世プロセッサー事情
- 仮想メモリ方式の分類
- イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
- スケジューラの挙動は三巨頭会談で決まるのだ?(1/2) - @IT
- 2章 Linuxカーネル - メモリ管理1
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第2回 Intel VT-xの概要とメモリ仮想化
- [BitVisor-devel:88] Re: [PATCH] Re: Ubuntu 16.10 beta2 (linux 4.8.0-17) が BitVisor 上で動作しない
- インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) プログラミングの注意事項
- ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)
- 日記 (2020 年 12 月)
メモリ保護
その他
- 特権分離 (Privilege Separated) OpenSSH
- ラージページについての考察 | iSUS
- メモリーリマッピング
- 「実在には存在しない情報」をメモリキャッシュに埋め込むというセキュリティ対策 | スラド セキュリティ
- Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
- Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響 | スラド オープンソース
- glibcにStack Guard Page迂回の脆弱性(CVE-2017-1000366) — | サイオスOSS | サイオステクノロジー
- linux kernelにStack Guard Page迂回の脆弱性( CVE-2017-1000364 ) — | サイオスOSS | サイオステクノロジー
- 続・サンドボックスの透明性 | 一生あとで読んでろ
- サンドボックスの透明性 | 一生あとで読んでろ
- はりぼてosにページング機能を追加する - Qiita
- MIT、プロセッサ性能を犠牲にせず「Meltdown/Spectre」脆弱性を解決する新手法 - PC Watch
- 418.pdf
- suzakiさんのツイート: "NDSSソフトウェアセキュリティ5つ目。User After Freeなど本来存在してはいけないメモリへの攻撃を検出するRedzone-based memory error detectionのMEDSの発表。MEDSではpage aliasing を使い、物理メモリを割り当てずにvirtual memory の空間を見るmemory allocation mechanism (MEDSALLOC)で管理"
- デダルスユメノ 技術書典6・う38さんのツイート: "ページサイズは伝統的に4KBが使われてきたけど64ビットシステムでは2MBページでいいんじゃね?と一瞬思うけど、遅いストレージを考慮するならダーディページの書き戻しが2MBだときついかも。HDDを対象にするならページキャッシュの部分は4KBのままがいいか。"
- mumumuさんはTwitterを使っています 「Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation [CCS '15] OSやAppを乗っ取られてメモリDiscloseされる脅威のMitigationとして,予めユーザが定義したメモリ領域secretと動的・静的解析で検出したそれを操作する関数をVMFUNCでIsolationするSeCageを提案.」 / Twitter
- mumumuさんはTwitterを使っています 「No Need to Hide: Protecting SafeRegions on Commodity Hardware [Eurosys '17] Deterministic(=ASLR等 確率的なものでない)なIntra-ProcessのMemory Isolation手法について,既存手法の分類と性能評価.そのためにMPK,MPX(SFI), VMFUNC等を用いて評価ツールMemSentryを実装https://t.co/xD7u4nTyGV」 / Twitter
- memsentry_eurosys17.pdf
Intel
EPT-Based Sub-Page Permissions
- 品川 高廣さんのツイート: "EPT-Based Sub-Page Permissions が消えてる… https://t.co/k9qDDRAHEb"
- 品川 高廣さんのツイート: "と思ったら SDM 本体の方に入ったのか。ということはもうすぐ実装が出てくる?"
- VT-x に128バイトサブページ単位の書込み保護が導入される予定 - 教育は参考ブログ
- 東京大学 品川研究室さんはTwitterを使っています 「品川研究室を卒業した小澤洋介君の論文が国際会議 2021 IEEE 14th International Conference on Cloud Computing (IEEE CLOUD 2021) に short paper として採択されました。128バイトのサブページ単位で書き込み保護を出来る Intel SPP を用いたライブマイグレーションの話です。」 / Twitter
5-Level Paging
- 5-Level Paging and 5-Level EPT white paper
- 5-level paging [LWN.net]
- Fadisさんのツイート: "5 level paging: x86_64の既存の4段のページングでは扱いきれない巨大なメモリを持つマシンの為に将来的にIntelプロセッサで採用されることになっている拡張。Linuxの場合4段ページングでは64TiBを超えるメモリを扱えないが、5段ページングでは4PiBまで対応することができる"
- Fadisさんのツイート: "Linuxの5 level pagingは実装されたばかりで、ドキュメントには「将来的にはブート時に4段と5段を切り替えられるようにしたい」と書かれているが今のところそうした仕組みは無い為、5段を有効にしてビルドしたカーネルは4段しか扱えないプロセッサで実行するとコケる"
- Fadisさんのツイート: "LKMLに投げられているのパッチの説明によると、既に一部のサーバが64TiBのメモリを実際に積んでおり、この問題は喫緊の課題になっているらしい… "
- FadisさんはTwitterを使っています: 「@d_kami こういう巨大なメモリを持つマシンって大体小分けにしてクラウドサービスを提供するためのマシンだったりして、今日クラウドサービスが無くてはならない物になっていることを考えると、どちらが特殊なのかな感はある」 / Twitter
- ちくわさんのツイート: "以前にそれについての記事を書いたのでよろしければどうぞ https://t.co/uhEkuOHv9J… "
- Linux kernelの5-Level Paging有効化部分を読んでみる - めもちょー
CET(Control-flow Enforcement Technology)
CET
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ntel TigerLake から Shadow Stack が実装(Intel CET)されていたのね。 ただC++での仮想関数TBLの書き換え系には無力だよねと思っていたら、"indirect branch tracking" も含まれていて、飛び先がENDBR命令以外は例外という、(やや弱そうな)防御が追加されていた。 https://t.co/NAIiq8S8Lc」 / Twitter
- 【pwn 36.0】Intel CETが、みんなの恋人ROPを殺す - newbieからバイナリアンへ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ShadowStack での exception/longjmp は return が同じ値になるまで、ShadowStack を popしつづけるのが定番らしい。 https://t.co/TfSryDB2RP」 / Twitter
- Shadow stack - Wikipedia
- インテル、ROP攻撃をチップレベルで阻止する新技術を発表 - ZDNet Japan
- R.I.P ROP: CET Internals in Windows 20H1 – Winsider Seminars & Solutions Inc.
- 新しいオプション
- qcf-protection、Qcf-protection
- 20160611
- Intelがマルウェア攻撃をチップレベルで防御する新技術「CET」を次世代モバイルプロセッサ「Tiger Lake」に搭載 - GIGAZINE
- 実に15年ぶり、インテルがCPUへ追加するマルウエア対策機能の実力 | 日経クロステック(xTECH)
- WhitepaperCSME - intel-csme-security-white-paper.pdf
- 巧妙な攻撃もシャットアウト! Windows版「Google Chrome 90」にハードウェアによるスタック保護が導入 - 窓の杜
- recent_advances_vuln_mitig_jp.pdf
- Intel CPUの間接分岐保護機能「IBT」がLinux 6.2以降でデフォルトに | gihyo.jp
CRIU
- FadisさんはTwitterを使っています: 「Linuxでshadow-stackが有効になっているとCRIUが動かん問題を何とかするための試行錯誤の話。提案されているカーネルの機能追加とCRIUの対応で、一応shadow-stackが有効な環境でもCRIUが使えるようになる https://t.co/ubJBPnyuJ3」 / Twitter
- FadisさんはTwitterを使っています: 「shadow-stackは最近のx86 CPUに備わっている機能で、call時とret時にshadow-stackと呼ばれる通常のスタックとは別のスタックに戻りアドレスだけを積んでいく。通常のスタックには戻りアドレス以外にも退避したレジスタの値や自動変数などがごちゃ混ぜで積まれている」 / Twitter
- FadisさんはTwitterを使っています: 「このため自動変数のオーバーランを起こす不具合があると、戻りアドレスが書き換えられる。戻りアドレスを好きな値に変えられるとretで好きなアドレスに飛べるようになる。この不具合を攻撃者が与えた入力で起こせる場合、攻撃者はプロセス内にある任意のコード片を実行する手段を手に入れる事になる」 / Twitter
- FadisさんはTwitterを使っています: 「こうした攻撃手法はReturn-oriented Programming(RoP)と呼ばれ大変人気のある攻撃手法なので、色々な対策が考え出されてきた。shadow-stackはそうした手法の1つで、call時に2つのスタックに同じ戻りアドレスを積んでret時に両者が一致しないことをもってRoPを検知する」 / Twitter
- FadisさんはTwitterを使っています: 「shadow-stack側には戻りアドレスしか積まれておらずshadow-stackが有効な間はcallとret以外で書き換えられない為、通常のスタックの戻りアドレスを壊せる脆弱性があっても、shadow-stackのアドレスも書き換える事はできない。RoPを検知したプロセスは異常終了するしかないが任意のコードは実行されない」 / Twitter
- FadisさんはTwitterを使っています: 「多くのソフトウェアはshadow-stackが働いている事を意識する必要はないが、スタックでファンキーな事をしているソフトウェアではshadow-stackが原因で動かなくなる事がある。Linux上でプロセスのスナップショットをとり、あとから復元するCRIUはshadow-stackで困ったことになったソフトウェアの1つ」 / Twitter
- FadisさんはTwitterを使っています: 「shadow-stackが有効な場合CRIUはプロセスの状態を保存する際にshadow-stackの内容も保存しなければならい。これ自体はやるだけ案件だが、shadow-stackが使っているページはshadow-stackが有効な間読み込み専用になる為、プロセスを復元する際にshadow-stackに保存した内容を書く事ができない」 / Twitter
- FadisさんはTwitterを使っています: 「単純にshadow-stackを切れる機能をユーザ空間に転がすと攻撃者大歓喜になる。そこで「ptraceで監視しているプロセス側からならshadow-stackを一時的に解除できる」仕組みが追加されたらしい。CRIUは復元中のプロセスをptraceで監視しているので復元時だけshadow-stackを切る事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「CRIUはプロセスの状態を元通りにした後、実行を再開させるためにsigreturnを使う。sigreturnは本来シグナルハンドラでの処理が完了した事をカーネルに伝えるためのシステムコールで、シグナルが飛んだ時にスタックに積まれるCPUの状態に基づいて、CPUの状態をシグナルハンドラに入る前の状態に戻す」 / Twitter
- FadisさんはTwitterを使っています: 「CRIUはカーネルがシグナルを投げてくる時にスタックに積むのと同じデータ構造でスナップショットを取った時点のCPUの状態をスタックに積み、復元時にそれをsigreturnに食べさせる事でスナップショットを取った瞬間のCPUの状態から実行を再開させている」 / Twitter
- FadisさんはTwitterを使っています: 「sigreturnはスタックに積んだアドレスにジャンプさせる効果がある為、攻撃者がsigreturn用の構造体を書き換えられる場合RoPと似た事ができる。これを防ぐためにshadow-stackが有効な場合カーネルはshadow-stackを使って「そのsigreturn本当にシグナルと対になっているか」をチェックする。CRIUは死ぬ」 / Twitter
- FadisさんはTwitterを使っています: 「ただCRIUは復元対象のプロセスのshadow-stackの値を自由にいじれるので、まるでカーネルからシグナルが飛んだかのような戻りアドレスをあらかじめshadow-stackに積んでおく事で、カーネルを騙してsigreturnでプロセスを再開できるようになる」 / Twitter
- 品川 高廣さんのツイート: "CPUレベルで shadow stack と control flow integrity を入れるのか。https://t.co/NuHzLftmFe"
- Control-flow Enforcement Technology Preview
- 品川 高廣さんのツイート: "VMX, SMM, TXT, SGX にも影響を与える複雑な変更だな。"
- 品川 高廣さんのツイート: "shadow stack は call 時に shadow stack pointer (SSP) が指すところにリターンアドレスだけを積んで、ret 時にスタックの値と一致してなかったら exception が発生するという感じか。"
- 品川 高廣さんのツイート: "indirect branch tracking は jmp 先が ENDBRANCH 命令(未対応プロセッサではNOP相当)でなかったら exception ということでいいのかな。命令列の真ん中に jmp するような ROP chain は組み立てられなくなるわけか。"
- 品川 高廣さんのツイート: "AMD も EPYC でメモリ暗号化とか入れてるし、アーキテクチャの拡張競争みたいにもなってる。AMD と Intel のアーキテクチャがズレていくのはシステムソフトウェア屋的にはつらそうだけど。"
- Intel Releases New Technology Specifications to Protect Against ROP attacks | Intel® Software
- るくすさんのツイート: "Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc https://t.co/fjIJnqPpxt"
- Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc - Phoronix
- まさみさんは語りたいさんのツイート: "https://t.co/341S8w5ovM うーむ、これROPとかJOP対策だと思うけどkprobes jump optimizationの存続に関わる問題っぽいぞ・・・。"
- まさみさんは語りたいさんのツイート: "ARM pointer authentication https://t.co/lZ87vSuU9t ARMはポインタとして使われるアドレスを符号化して検証する命令を追加してROP対策しているというわけか。このあたり、明示的に機能を使わせるARMと、バックグラウンドで検証するIntelの思想の違いか・・・?"
- ARM pointer authentication [LWN.net]
- まさみさんは語りたいさんのツイート: "多分Intel CETは(Spectre v2の時にも言及したが)投機的実行の効率化のために用意したシャドウスタックをセキュリティに転用しました、ということなんだろうなあ。つまり投機的分岐実行の失敗=脅威発見とみなす、という。"
- Fadisさんのツイート: "glibcにIntel CETのサポートが入った模様。 CET対応のプロセッサではSHSTK(一部の命令だけが書ける第二のスタックにリターンアドレスを積んでROPを検知)とIBT(着地命令以外のアドレスにジャンプ出来なくしてジャンプ先の書き換えを検知)をユーザ空間のプロセスで使えるように https://t.co/247IN0psYI"
- Intel CETをサポートした「GNU C Library 2.28」公開 | OSDN Magazine
- Fadisさんのツイート: "LLVM、リターンアドレスだけが積まれる第2のスタックでROPを検知するShadow Call Stackを廃止。x86_64用の実装が遅くてinsecureだったのが理由。最近のIntel CPUには同様の事をハードウェアで行うCETが備わっているが、LLVMの実装はソフトウェアでそれとは無関係 https://t.co/RnKlqj2wey"
- LLVM Drops Its Shadow Call Stack Support For x86_64 - Phoronix
- FadisさんはTwitterを使っています 「新しめのx86_64 CPUに備わっているshadow stackをLinuxで使えるようにする試みが難航している話。shadow stackは通常のレジスタの退避や戻りアドレスがごちゃ混ぜで積まれたスタックと別に戻りアドレスだけが積まれるスタックを作り、call/ret時に両方のスタックを操作する https://t.co/br0DjiKkYJ」 / Twitter
- FadisさんはTwitterを使っています 「shadow stack側をプロセスが直接書き換えられないようにする事で、表のスタックを壊して任意のコードを実行しようとする攻撃を受けても、表のスタックの戻りアドレスとshadow stackの戻りアドレスの不一致もとに攻撃を検知してプロセスを止めることができる。要するにROPを防ぐための機能」 / Twitter
- FadisさんはTwitterを使っています 「shadow stackはcall/retで動くが他の書き込みは拒否するという特別なメモリの設定を要するため、カーネルのページテーブルはページの用途がshadow stackであるとわかる必要がある。しかしページテーブルのフラグは極めて貴重な資源なので、なんとかフラグの追加を回避できないか試行錯誤がなされている」 / Twitter
- FadisさんはTwitterを使っています 「またユーザ空間プロセスは時折自前で確保したメモリをスタックとして使ったりスタックに細工をしたりするが、これらのスタック操作を伴うハックでshadow stackが壊れないようにするのは極めて難しく、一部の状況ではshadow stackを有効にするとユーザ空間の互換性を壊す問題の解決の目処が立っていない」 / Twitter
- FadisさんはTwitterを使っています 「「セキュリティ上良い効果があるが問題を起こすかもしれない」機能は「とりあえずOFFにしましょう」が蔓延って結果として実運用される環境を安全にすることに貢献できないから、カーネル屋さんはセキュリティ上有用な機能でもそれが互換性を壊さないことにすごく気を使う」 / Twitter
- Shadow Stack を使った Stack Buffer Overflow 検知機構の実装 - FFRIエンジニアブログ
IBT
- FadisさんはTwitterを使っています: 「Linux 5.18から利用可能になったカーネルのIBTサポートについて。Tiger Lake以降のIntelプロセッサでは間接ジャンプが意図したアドレス以外に飛んだ事を検知するIBTが使える。これが有効だと攻撃者はジャンプ先アドレスを書き換えて任意のコードを実行するのが難しくなる https://t.co/DVCIYY1Q53」 / Twitter
- FadisさんはTwitterを使っています: 「IBTが有効な場合間接ジャンプで飛んだ先がendbr命令でない場合例外が飛ぶようになる。間接ジャンプで飛んでくる事が想定されるコードの先頭にだけendbrを置いておく事で、攻撃者が飛び先を書き換えられる不具合があったとしても、そこから選べる飛び先が著しく制限される」 / Twitter
- FadisさんはTwitterを使っています: 「カーネルのIBTサポートは基本的にコンパイラのサポートを利用するが、アセンブリで実装された部分には手作業での対応が必要になる他、ファームウェアなどの外のコードの実行前に一時的にIBTを切る処理が必要になったらしい。変更はカーネル空間のみを対象にした物でユーザ空間に移る時はIBTが切られる」 / Twitter
- FadisさんはTwitterを使っています: 「endbrのオペコードは従来からx86_64で効果が無いので事実上nopと解釈されていた物で、IBT非対応のCPUでは単純に無視される。IBTはretに対しては働かない為retpolineと互換性がないが、Alder Lake以降のIntel CPUではIBTが有効な間接ジャンプは投機的実行が制限される為、retpolineを使う必要がなくなる」 / Twitter
- FadisさんはTwitterを使っています: 「lwnの記事にobjtoolで間接ジャンプ先になり得ない関数を見つけてendbrを潰しておく、って話がさらっと書かれてるんだけど、ある関数が間接ジャンプ先になり得ない事をバイナリの静的解析で保証するのって無茶苦茶難しいのでは…」 / Twitter
- まさみさんさんはTwitterを使っています: 「@fadis_ あれ、そういう話でしたっけ?特殊な関数にマーキングはしますが、基本静的コールはコンパイラでendbrを飛ばしたところを呼び出す、そうでない呼び出し方をされる関数は、関数ポインタから呼ばれるので間接コールになるということかと思ってましたが。」 / Twitter
- Linux May Flip On Indirect Branch Tracking By Default (IBT) - Phoronix
UMIP
- Intel User-Mode Instruction Prevention Support Revised For The Linux Kernel - Phoronix
- るくす(Ren Kimura)さんのツイート: "Intelの次のプロセッサからSMEPならぬUMIP(User-Mode Instruction Prevention)という、ユーザーモードで実行できる命令をさらに制限するセキュリティ機構が追加されるらしい。 これはカーネルエクスプロイトかなりしんどくなるぞ… https://t.co/aLr5CtSr3P"
- ka0ruさんのツイート: "@RKX1209 これそんなに強いですかね〜"
- るくす(Ren Kimura)さんのツイート: "@infvhj まあ理屈としてはそんなに強くないんですが、肌感覚でしんどくなりそうな気はします。というのも、AAWでカーネル内の関数ポインタを書き換えてユーザー空間からの操作でそいつをtriggerする流れで、このtriggerはなるべく他に副作用を与える操作であってほしくないんですよね。"
- るくす(Ren Kimura)さんのツイート: "@infvhj 余計な操作が多い複雑なシステムコールとかをtriggerにすると、RIP奪う前にカーネルクラッシュしたりとか。で、このパターンが少ないのがGDT/LDTみたいなユーザー空間から参照できてかつprivmitiveな物をtriggerにした時なので結構重宝するんですよ。これができない… https://t.co/JlBLhxcqVX"
- ka0ruさんのツイート: "@RKX1209 Linuxは余り詳しくないのでアレですが、カーネルのwriteプリミティブ持ってるならそのSMEPとかで使うaddr_limit的なのも同時にいじれるかなぁっていうのとret2usrは楽というのは最もですがPTE弄ってカーネルにシェルコードをいれるーとかでもありなんじゃないすかね"
- るくす(Ren Kimura)さんのツイート: "@infvhj あいや、というかRIPをそもそも奪う前にクラッシュする事があって、例えばfops->iops->openを何かのコードの先に書き換えるためにfake iopsとか作ってopenシステムコール呼ぶと、関係ない別の所でiopsの他のメンバ触られてクラッシュとか"
- るくす(Ren Kimura)さんのツイート: "@infvhj 要するにシステムを正常に動かしつつ、特定の関数ポインタだけexploit codeに飛ばすというが難しくて、この両立がしやすいのがGDT/LDT書き換えとかですね。メモリアクセスなんて他に邪魔されずすぐに発生してくれるのでスッとtriggerしてくれる"
- るくす(Ren Kimura)さんのツイート: "@infvhj あとSMEPのONOFFはレジスタが管理してるので、OFFにするには直接writeプリミティブでは難しくて、レジスタいじるROP gadgetみたいなコード実行に一度飛ばしてやる必要がありますね"
- るくす(Ren Kimura)さんのツイート: "@infvhj ring0のアドレス範囲addr_limitを書き換えるというのはGDT書き換えにあたると思います。"
- イトー君さんのツイート: "@RKX1209 一般ユーザーにとってこれはgoodなの?badなの?"
- るくす(Ren Kimura)さんのツイート: "@TaKeZo_I 一般ユーザー的にはおそらく良い方向だと思いますねー これを追加して何か不具合が起きるというのはそんなに無さそう"
- イトー君さんのツイート: "@RKX1209 待つほど価値があるもの?"
- るくす(Ren Kimura)さんのツイート: "@TaKeZo_I あー そこまでではないと思います。比較的高度な攻撃に対する対策技術なので、そもそも一般ユーザーで特にWindows環境以外をお使いならそんなに遭遇しないかなぁと"
- イトー君さんのツイート: "@RKX1209 了解です、ありがとう"
- 2018年1月29日 Linux 4.15が正式リリース, Meltdown/Spectreにフルパッチ対応:Linux Daily Topics|gihyo.jp … 技術評論社
- x86: enable User-Mode Instruction Prevention [LWN.net]
- Linuxカーネル4.15リリース、Meltdown/Spectreへの対処が組み込まれる | OSDN Magazine
- InstLatX64さんのツイート: "QuadCore #Intel Celeron J4105 (#GoldmontPlus) 706A1 CPUID dump added - according to this, Goldmont+ supports SGX, SGX_LC, UMIP, RDPID features, and also the 3 #Spectre/#Meltdown mitigation features (#IBPB/#IBRS, #STIBP, IA32_ARCH_CAPABILITIES) in: https://t.co/37mJQ4r9bT… https://t.co/y8zSIn9c80"
- Intel 80286 - Wikipedia
Memory Protection Keys
- Memory Protection Keys (MPK) Submitted For Linux 4.6 - Phoronix
- Memory Protection Keys Support Finished Up In Linux 4.9 - Phoronix
- LLVM Begins Looking At PKU Memory Protection Keys Support - Phoronix
- [RFC] x86: Memory Protection Keys [LWN.net]
- Linuxカーネル4.6が登場 | OSDN Magazine
- Linuxカーネル4.9リリース、Greybusのサポートや各種ドライバの強化などが行われる | OSDN Magazine
- x86 の仮想ページに Protection Key が付いた - 教育は参考ブログ
- 品川 高廣さんのツイート: "Intel MPK 流行ってるな。VMFUNC も良く見かける。保護ドメイン系は永遠のテーマだな。"
- retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
- retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
- mumumuさんはTwitterを使っています 「Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries [ATC '19] Kernel BypassなIOを提供する等重要なライブラリの安全性を担保するためにPKUを用いてIsolation(Appの制御が奪われる脅威を想定).ローダがバイナリを走査しデバッグレジスタを用いて意図しないpkruの変更を検出」 / Twitter
- mumumuさんはTwitterを使っています 「libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK) [ATC '19] MPKのサポートはすでにLinuxに実装されているが,それらを改良し既存のSWが使用しやすく(mprotectのプロセスレベルアクセス管理のSemanticsを再現やPkeyの仮想化),Securityの強化等を実装した研究.」 / Twitter
- Intel MPKについて - Google スライド
- FadisさんはTwitterを使っています 「ライブラリOSはOSとアプリケーションが単一のメモリ空間で動くのが性能を稼ぐ上で強みだが、それはセキュリティとのトレードオフになっているためMPKを使ってライブラリOSをより堅くしたい、と #kernelvm」 / Twitter
- プロセス内のメモリアクセス権限を効率的に制御 「Intel MPK」はコンテキストスイッチがいらなくて高速 - ログミーTech
SMEP
- 【仮想化道場】IDF北京から、2013年のIntelサーバープロセッサのロードマップを見る - クラウド Watch
- Tsukasa #01さんはTwitterを使っています: "@yuzuhara x86 の PAE にあるような NX ビット (ARM での XN ビット) に加えて、ページ毎に Ivy Bridge の SMEP ができる PXN ビットというのがページテーブルに存在
- 本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題
- Windows カーネルモードの脆弱性「CVE-2014-4113」を検証 | トレンドマイクロ セキュリティブログ
SMAP
- x86 の新しいメモリ保護機能 Supervisor Mode Access Prevention(SMAP) - 教育は参考ブログ
TME
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ディスクやメモリの暗号化では、XTSというブロック暗号モードが最近の定番、という点を初めて知った。 https://t.co/AlgOrzHujH… "
- Disk encryption theory - Wikipedia
- Fomalhaut Weisszwergさんのツイート: "Intel 製 CPU にもメモリ暗号化機能。Intel TME (Total Memory Encryption) なる機能が追加されました https://t.co/Z5orBwxmY2"
- Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linu… · torvalds/linux@9e1909b
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔、サーバで暗号化してのファイル保存が必要になった際、CBCだとランダム書込みができず、CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性発生で、解決に頭を悩ませた記憶。 XTSという手を知らなかったので、別途NONCE配列(1ブロック=1NONCE)を設ける手しか浮かばなかった。… https://t.co/x76fuJuhga"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性というのは、「ある時点でのスナップショットを取り、変更後にもう一度スナップショットを取る」という操作で、スナップショット差分=元内容と上書き内容のビットパターン差分が見えてしまう、という意味。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、XEX/XTSの後段のXORは、どういう効果があるのか良く判らない…気休め程度にも見えるのだけど。"
- InstLatX64さんはTwitterを使っています: 「• Naming change: MKTME is now known as TME-MK. https://t.co/PBao7hXBOJ https://t.co/FrfjjwfnGt」 / Twitter
- Intel(R) Architecture Memory Encryption Technologies Specification - multi-key-total-memory-encryption-spec-1.4.pdf
TDX
- Intel® Trust Domain Extensions - tdx-whitepaper-v4.pdf
- InstLatX64さんはTwitterを使っています 「This #Intel #TDX pdf has a comprehensive list of CPUID bits on p.116-123. It mentions a few new one (at least for me): FZM, MPRR, SGX_TEM, SGX_KEYS, ULI, DEDUP, HRESET, Fast REP*s, and - according to the XFAM bits - #AVX512-related #FP16 and #ADL_VNNI https://t.co/cRvQtcgU2A https://t.co/WeXCJgWl5m」 / Twitter
- Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module - intel-tdx-module-1eas.pdf
- https://twitter.com/InstLatX64/status/1306525230379290627
- https://twitter.com/InstLatX64/status/1306530044584644609
LAM
- Intel Linear Address Masking "LAM" Ready For Linux 6.2 - Phoronix
- Linus Torvalds Bashes Intel's LAM - Rejected For Linux 6.2 - Phoronix
- Intel LAM Patches Updated After Its Rejection From Linux 6.2 - Phoronix
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- Hisaki Oharaさんのツイート: "よくまとまってる。最後のCETっての知らなかった。。Intel CPU security features https://t.co/zKazJKnSY5"
- Intel CPU security features · huku-/research Wiki
- x86におけるメモリアクセス権のルール - 睡分不足
- 社会人でもOSを作りたいさんはTwitterを使っています: 「きっとx86-64のOSを自作してる人なら誰もが持ってる思うけど,4階層ページングの仮想アドレスを各部分(PML4,PDP,PD,PT)に分割する,または逆に各部分の値から仮想アドレスを作るツールを作ってみた。 https://t.co/aaAXYAS1lz」 / Twitter
- x86-64 Virtual Address Composer
- NT カーネルのページング基礎 - Qiita
ページキャッシュ
- Linuxのメモリキャッシュを削除する | 俺的備忘録 〜なんかいろいろ〜
- OSキャッシュの便利な利用方法|サイバーエージェント 公式エンジニアブログ
- Linuxでページキャッシュを確認・解放してみた - Qiita
- Windowsカスタマイズ - キャッシュを極める
メモリ管理
- Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)(Kodama's tips page)
- 6. システムがパフォーマンスを維持するためのメモリ管理について
- 4.メモリ使用率(第5章 パフォーマンス管理~上級:基本管理コースII)
- Windows OS入門:第4回 メモリ管理 - @IT
- freeコマンドで確認するOSのメモリ情報 - SHOYAN BLOG
- 【RHEL】linuxのメモリ使用率(利用率)の計算方法 - のぴぴのメモ
- linuxにおけるメモリと関連コマンド(free, vmstat, top, sar) - 銀色うつ時間
- Linuxにおけるメモリ管理 - MogLog
- どうしてメモリはスワップするのか!? - インフラエンジニアway - Powered by HEARTBEATS
- Rui Ueyamaさんのツイート: "このミニOSにページングを実装する課題かなり目処がついて来た。最初は若干途方に暮れていたけど少しずつ作れば難しくはなかった。まずmmap()をやっつけで実装、そのあとスタック拡張も実装、そのあとページアウトも実装、みたいな。"
Meltdown:Variant 3: rogue data cache load (CVE-2017-5754)対策:Kernel page-table isolation
- meltdown.pdf
- kaiser.pdf
- Kernel page-table isolation - Wikipedia
- python sweetness — The mysterious case of the Linux Page Table...
- The mysterious case of the Linux Page Table Isolation patches : linux
- The mysterious case of the Linux Page Table Isolation patches | Hacker News
- Linux page table isolation is not needed on AMD processors | Hacker News
- The mysterious case of the Linux Page Table Isolation patches | Hacker News
- Kernel page-table isolation merged [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- 「Intelの脆弱性情報の開示が遅すぎた」ことでLinux開発者が大変な目に遭っていたことが発覚 - GIGAZINE
- CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した - Qiita
- Meltdown cpu脆弱性カーネルアップデートでほんとに性能ダウンした - Qiita
- Meltdown - Wikipedia
- Meltdown (security vulnerability) - Wikipedia
- satさんのツイート: "Meltdownを使った攻撃のいろんな派生 https://t.co/7eZjlerhKN"
- meltdown/libkdump.c at master · IAIK/meltdown
- Microsoft Windows: Kernel Virtual Address (KVA) Shadow: mitigating Meltdown | Firmware Security
- Windows 7のMeltdown対策パッチに脆弱性 ~セキュリティパッチがより深刻な問題を生む結果に、3月で修正済み - PC Watch
- Hideyuki Tanakaさんのツイート: "インテル去年だけで16ビットレジスタを分割して使うときの不具合とか、中で変なOSが動いてる問題が発覚するとかいろいろあったのに、これはそれとは比べ問にならないぐらいまずそうだけど(´・_・`)"
- KVA Shadow: Mitigating Meltdown on Windows - Microsoft Security Response Center
- Rogue System Register Read
- Instructions Affected by Rogue System Register Read
Foreshadow(L1 Terminal Fault(L1TF)) - CVE-2018-3615, CVE-2018-3620, CVE-2018-3624
その他
- Intel CPUの投機実行にサイドチャネル攻撃による新たな脆弱性が発見 - PC Watch
- インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - CNET Japan
- Intel製CPUのセキュリティ機能“SGX”に情報漏洩の脆弱性 ~“Foreshadow”が発表 - 窓の杜
- Intelが発表、キャッシュタイミングを利用したサイドチャネル攻撃の脆弱性「L1TF」:仮想化利用時に課題あり - @IT
- Microsoft、2018年8月のセキュリティ更新プログラムを公開 ~OSの最大深刻度は“緊急” - 窓の杜
- インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - ZDNet Japan
- HW由来の脆弱性 (L1 Terminal Fault (L1TF) / Foreshadow: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) – 脆弱性情報ブログ(仮)
- L1 端末の障害から保護するための Windows Server ガイダンス
- インテルCPU脆弱性「Foreshadow」の影響をまとめる - orangeitems’s diary
- “L1TF”脆弱性への対策を盛り込んだ「VMware Workstation」「VMware Fusion」最新版 - 窓の杜
- IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中 - GIGAZINE
- 【CPU】 Intel CPUに新たな脆弱性『L1 Terminal Fault(L1TF)』。2018年8月度のWUで緩和策を実装 : ニッチなPCゲーマーの環境構築
- herumiさんのツイート: "社内勉強会用のメモ Foreshadow L1FT https://t.co/43HbIRyzv3 TLBleed https://t.co/RZ8wHm7IDl LazyFP https://t.co/er6rVg2V7F"
- misc/security/L1FT at master · herumi/misc
- Microsoft、Spectre V3a/4とL1TF脆弱性対策のIntel CPU向けマイクロコード更新を公開 - 窓の杜
- 2018年8月24日号 LXDの.deb→snapパッケージ移行,続Spectre・“L1TF”(Foreshadow/Foreshadow-NG)への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- 2018年8月27日 Linux 4.19-rc1が登場,「L1TF」脆弱性にも対応:Linux Daily Topics|gihyo.jp … 技術評論社
- MS、インテルのマイクロコード更新プログラム公開--「Spectre」「Foreshadow」対策 - CNET Japan
- 【セキュリティ ニュース】MS、「Foreshadow」対策でアドバイザリ - アップデートや追加対応策の実施を(1ページ目 / 全3ページ):Security NEXT
- Intelが新たな投機的実行脆弱性"L1 Terminal Fault"を公表
@mhiramat
- まさみさんは語りたいさんのツイート: "L1Dから読めちゃう問題というか仕様、昔からlock prefix付けないとL2が変わってもL1から読めるだけ読んじゃうって動作だったように思うんだけども。"
- まさみさんは語りたいさんのツイート: "なんかbusy waitのバグを再現しようとして、フラグをatomicにするのを忘れてループ回したら、片方のCPUの演算結果が受け取れなくてL1Dは更新されないんだー、へーっていくのを実際にやった覚えがある。"
- まさみさんは語りたいさんのツイート: "L1TF問題、armではどうなるんだっけか。"
- まさみさんは語りたいさんのツイート: "L1TFって実際に書き込み出来るバグなの?"
- Tsukasa #01 [要出典]さんのツイート: "No. Spectre 類似攻撃で、投機実行パスでメモリ保護機能の一部が無効になっていることを悪用して情報を "読む" ことがメイン。概要だけ抜き出したら Spectre や Meltdown と違う部分がなくなってしまいましたが、変種ということで……。… "
- まさみさんは語りたいさんのツイート: "やはり読むだけですよね。いくら投機実行できるとは言え、投機的に書き込む場合コミットできるかどうか確認してからでないとメモリに書き込みは出来ないですよね。… "
- Tsukasa #01 [要出典]さんのツイート: "はい。逆説的に言えば、その点さえ守ってれば投機的実行パスで何してもいいだろ的に色々やり過ぎたのが最悪の形で暴かれてしまってるのではないかと。… "
- まさみさんは語りたいさんのツイート: "なんかこう、投機的実行とか先読みとかのせいで、Intel CPUを使うメリットだった強い一貫性のあるメモリモデルが一転して信じられなくなってる上、ISA上確認できないしコントロールも出来ないので最悪だなーっていう話になってきているな。"
- まさみさんは語りたいさんのツイート: "そもそもメモリモデルがある程度弱い一貫性とかキャッシュを自前である程度制御しないといけない、という話だと、それに対応する命令ややり方があるんだけど、ソフトウェアの外側にある投機的実行や先読みが勝手にキャッシュしたりすると、制御する術がないか、あるけど牛刀になるという・・・。"
- まさみさんは語りたいさんのツイート: "うーん、非常に嫌な話が出ていて、ページテーブルを共有する複数のコアで、1つのコアが一部のPTEを変えた場合、他のコアで勝手にそれがTLBにロードされているかもしれないっていう話。そしてそれを明示的にshootdownできない(他のコアなので)ので危険かもと。"
- まさみさんは語りたいさんのツイート: "もはやTLB shootdownとは()という話だな。これどうしようもないなら、全部のコアでページテーブルを共有してはいけないっていう話にならないか?"
- beepcap@HTTPSの強制には反対さんのツイート: "最近「まさかそんな実装になってるんけないやろwwww」みたいなのが、サイドチャネル攻撃のお陰で次々あらわになって笑えるし、MIPSの正しさが示される"
- まさみさんは語りたいさんのツイート: "現状の予想 ・とりあえずカーネルのページテーブルは共有 ・微妙な操作をする場合に専用スレッドを立て、専用ページテーブルを利用する(カーネルスレッドだけど少し違うメモリ空間になる)"
- まさみさんは語りたいさんのツイート: "これが他のspectreと違って厄介なのは、TLBエントリが勝手に追加されてしまった場合、その後のメモリアクセスは投機実行だけでなく、実際にコミットされうるところだな。つまりRWマップしていたら、書き込みも可能になると。"
- まさみさんは語りたいさんのツイート: "このTLBのspeculative read-ahead(というのが適切に思う)の問題は、本質的には他のプロセッサでも起きる可能性がありそうなんだけど、どうなんだろう?"
- まさみさんは語りたいさんのツイート: "処理の途中でswitch_mmしちゃう(専用スレッドは作らない)方向になった。まあ、その方が簡単だけども。"
@utshina2
- 品川 高廣さんのツイート: "10秒で分かるForeshadow: まずenclave内の秘密のデータをL1に乗せさせてアクセスするコードのout-of-order実行を可能にしつつ、pageを読み書き禁止にしてpage faultを発生させてダミー値への置き換えを防ぎ、page walk中にMeltdown的なside-channel攻撃でL1上の秘密のデータを読み出すって感じかな。"
- 品川 高廣さんのツイート: "page walk には時間がかかるのだけど、その間に同じページのデータが既にL1キャッシュに乗っていたら、次の命令が out-of-order で投機的に読めてしまうのが問題らしい。インテルが L1 Terminal Fault と呼ぶのはそういうことかな。"
- 品川 高廣さんのツイート: "page table entry の present bit が 0 (存在しない)の場合、本来残りのビットはOSが自由に使っていい領域なのだけれど、物理アドレス部分が(たまたま)キャッシュされている内容と一致していれば、次の命令で投機的に読めてしまうらしい。えーっ"
- 品川 高廣さんのツイート: "page table entry の物理アドレス部分がたまたま有効な値であれば、ユーザ空間から本来アクセス権がないOSや他プロセスのデータを読めてしまう可能性がある。キャッシュを共有しているVM間であれば、ゲストOSで適当に page table entry を設定すれば他VMのデータを読めてしまう可能性がある。"
@kazuho
- Kazuho Okuさんのツイート: "PTEのPresentビットが立ってなくても、格納されている物理アドレスをspeculativeに利用しちゃうから副作用があるのかー / “deep-dive-intel-analysis-l1-terminal-fault” https://t.co/qKY8UK7vcv"
- Kazuho Okuさんのツイート: "L1TF はゲストOSが信頼できないとなると hyper-threading をオフにする必要があって、それってつまり vps とかそういう系にはとても大きなパフォーマンスインパクトがあるってことになるからなぁ https://t.co/sgvOGMIqnv"
- Intel Side Channel Vulnerability L1TF
- https://software.intel.com/security-software-guidance/insights/deep-dive-intel-analysis-l1-terminal-fault
@jovi0608
- Shigeki Ohtsuさんのツイート: "今度は Intel SGX を狙った L1 Terminal Fault か。 / “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-…” https://t.co/aPzuaSE1j1"
- Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
@KuniSuzaki
- suzakiさんのツイート: "新たな投機的実行の脆弱性 "Foreshadow"(Intelでの命名はL1TF: L1 Terminal Fault)はIntel SGX、SMM、VMMまで影響を及ぼす。これはUSENIX Sec18で発表される。 https://t.co/2isrd8lko8 USENIX SecのHP https://t.co/uylwnCo89D"
- Intel CPUの「SGX」機能に新たな脆弱性、仮想マシンなどにも影響 - ITmedia エンタープライズ
- suzakiさんのツイート: ""Foreshadow"論文はまだUSENIX Sec18のHPからは公開されていないが、著者らのHPからダインロードできる。 https://t.co/0wpfRoXaXx"
- foreshadow.pdf
- suzakiさんのツイート: "投機的実行の脆弱性 "Foreshadow"脆弱性は、 SGX関連 CVE-2018-3615(CVSS 10.0) OS/SMM関連 CVE-2018-3620(CVSS 7.1) VMM関連 CVE-2018-3646(CVSS 7.1) だそうだ。 共通脆弱性評価システム(CVSS)最高値は10.0なので影響が心配。 https://t.co/2isrd8lko8"
@masami256
- このコード、オシャカルトっ!さんのツイート: "PTEからPFNを調べるところでprotnone_mask()って関数が追加されてPビットのチェックが入ったり。https://t.co/eNCpazBHtG"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- このコード、オシャカルトっ!さんのツイート: "記事にも書いてあるけど、実際のpatchを見るとkvmの方が対応がめんどくさいな"
- このコード、オシャカルトっ!さんのツイート: "https://t.co/6MfwZRO9gaのMeltdown strikes back: the L1 terminal fault vulnerabilityってまた新しい手法か?まだ読んでない。"
- このコード、オシャカルトっ!さんのツイート: "Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution https://t.co/qBXFHNqfL1"
- Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
- このコード、オシャカルトっ!さんのツイート: "PTEのPビットが0ならページが存在しないんだから、ページフォルトが起きた時にPTEのPFNは読む必要ないんだけど、Intel CPUは先読みしちゃうのでL1キャッシュにデータがあると読み出せてしまうって感じかな。"
- このコード、オシャカルトっ!さんのツイート: "データがL1に存在する必要があるとか条件は面倒そうだ。"
- このコード、オシャカルトっ!さんのツイート: "コメントが細く書かれてるな https://t.co/eNCpazBHtG"
- このコード、オシャカルトっ!さんのツイート: "(´-`).oO(カーネルも脆弱性対応で変数にアクセスするにもちょっとひと手間加える必要があったりするし、セキュリティはそこまで気にしないシンプルな実装の学習用のカーネルというものの需要はあるだろうな。"
- satさんのツイート: "これよいですよ https://t.co/yd2t2H5LpE… "
- このコード、オシャカルトっ!さんのツイート: "Meltdown strikes back: the L1 terminal fault vulnerability のpteの説明でpfnに46bit使ってるところはSDM Vol3のTable 4-19. Format of a 4-Level Page-Table Entry that Maps a 4-KByte Pageだと物理アドレスとなってるので違いがあるのか。 https://t.co/qO6Fm4kZpy"
- Meltdown strikes back: the L1 terminal fault vulnerability [LWN.net]
- Foreshadow (security vulnerability) - Wikipedia
- Analysis and mitigation of L1 Terminal Fault (L1TF) - Microsoft Security Response Center
- L1 Terminal Fault
- INTEL-SA-00161
- Processors Affected: L1 Terminal Fault
- Deep Dive: Intel Analysis of L1 Terminal Fault | 01.org API
MDS
- Microarchitectural Data Sampling - Wikipedia
- Fadisさんのツイート: "MDS: 一部のIntelプロセッサ内のStore Buffer(メモリ書き込み予定表)、Fill Buffer(L1 cacheへのロード待ち表)、Load Port(メモリからの読み出し待ち表)が完了後にクリアされておらず、これらを踏む命令で見えない位置にあるはずの値の存在を確認できるサイドチャネル脆弱性 https://t.co/10QjZh7YJC"
- 【CPU】 Intel CPUに新たな脆弱性『Microarchitectural Data Sampling (MDS)』。AMD CPUは影響なし : ニッチなPCゲーマーの環境構築
- Intel CPUの投機実行機能に新たな脆弱性「MDS」 ~サーバーは緩和策によるストレージ性能への影響あり - PC Watch
- 2011年以降のほぼすべてのIntel製プロセッサに影響する脆弱性「MDS」の存在が明らかに - GIGAZINE
- Intel製CPUに新たな脆弱性「ZombieLoad v2」が発見される、Cascade Lakeにも影響あり - GIGAZINE
- 2019年5月17日号 Meltdown/Spectre/Foreshadowの後の世界:“MDS”攻撃への対応,WSL2のFAQ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- 2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- ZombieLoad: Cross-Privilege-Boundary Data Sampling
- New ZombieLoad v2 Attack Affects Intel's Latest Cascade Lake CPUs
- Microarchitectural Data Sampling
- Processors Affected: Microarchitectural Data Sampling
- Intel Side Channel Vulnerabilities: MDS and TAA
- Deep Dive: Intel Analysis of Microarchitectural Data Sampling
- Deep Dive: Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort
Rowhammer
- shinichiro hamajiさんのツイート: "#misreading https://t.co/m82S1poS4x Rowhammerは仕事のタイミング的にすごく困った。clflush禁止→無くても、ARMとかでもできた→JSからでもできた(https://t.co/nuwXNhlHqZ)と案の定悪化していった。基本ハードウェア上の処置(頻繁にリフレッシュとか)しかないという理解で、そのへんは面白みが無い"
- Episode 18 – Exploiting the DRAM Rowhammer Bug to Gain Kernel Privileges – Misreading Chat
- 1507.06955.pdf
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- kim-isca14.pdf
Page Cache Attacks
- ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表 - 窓の杜
- [1901.01161] Page Cache Attacks
Google
- 米Google、WebKitベースの新レンダリングエンジン「Blink」を発表、Chromeでの導入を視野に | OSDN Magazine
- Google Developers Japan: プロセス外 iframe で Chrome 拡張機能のセキュリティを向上
- Rockridgeさんのツイート: "Chrome 56以降、エクスプロイト攻撃への対策として、拡張機能の設定ページなどで用いられるiframeを拡張機能のプロセスから分離し、セキュリティを強化した。 / “Chromium Blog: Improving exte…” https://t.co/45P64PWoZj"
- Chromium Sandbox を用いた保護モード - NyaRuRuが地球にいたころ
Mozilla
WebExtensions
- Rockridgeさんのツイート: "WebExtensions拡張機能の別プロセス化は、contentプロセスの複数化とは別の話である。contentプロセスが4つ埋まっていても、拡張機能向けのプロセスは別途設けられる。 / “Out-of-process Web…” https://t.co/q6gGS6PDPX"
- Rockridgeさんのツイート: "WebExtensionsの別プロセス化とサンドボックス化について、実装時期は未定だが開発は進行しているとのこと。参照:https://t.co/8DrgHzDhHy / “WebExtensions in Firefox 51…” https://t.co/uJICsXuEIU"
- Rockridgeさんのツイート: "WebExtensionsからSpiderNodeを別プロセスで起動させる実験が行われている。このプロセスはサンドボックス化されることが想定されている。参照:https://t.co/u7RAcFgA7Z / “Node and…” https://t.co/5MhRCjTwro"
- Rockridgeさんのツイート: "ローカルファイルを読み書きするシステムをWebExtensions向けにどのように実装するか検討中。サンドボックス化されたプロセスと整合性のある実装が求められる。参照:https://t.co/yYPsAl35af / “Web…” https://t.co/t0U4WcPAI4"
5x
52
- Rockridgeさんのツイート: "Fx52:Linux版におけるプロセスのサンドボックス化が強化され、原則としてcontentプロセスにおいてファイルシステムへの書き込みは禁止されるようになった。参照:https://t.co/lkLuRqHfsI / “Gar…” https://t.co/fqlvHTovZc"
55
- Rockridgeさんのツイート: "Fx55:Windows/macOS版でcontentプロセスのサンドボックス化が常時有効化。最低限のサンドボックスが偶然に無効化されることを防ぐ。 / “1358223 - Hard code the lowest allow…” https://t.co/AGCUlQaEJA"
- Rockridgeさんのツイート: "Fx55:GPUプロセスにも最低限のサンドボックスが適用されるようになった。 / “1347710 - Enable sandbox protections for the Windows GPU process” https://t.co/JP5oODpbBj"
- Rockridgeさんのツイート: "Fx55:サンドボックス機能を実装するために使うChromiumのコードが、Chromium 56ベースのものにアップデートされた。前回はFx51でChromium 49ベースのコードが導入されていた。 / “1337331 -…” https://t.co/nzmPvITBKo"
56
- Rockridgeさんのツイート: "Fx56:Windows版Nightlyで、contentプロセスのサンドボックス化が従来よりも強化された。 / “1366694 - Enable Windows level 3 content process sandbox…” https://t.co/lU3hKqxwNh"
- Rockridgeさんのツイート: "Fx56:Mac版でcontentプロセスのサンドボックス化が強化され、そのままデフォルト有効で投入される。参照:https://t.co/OKJU6oOYr9 / “1377522 - Let the Level 3 cont…” https://t.co/WJQReMCVn2"
57
- Rockridgeさんのツイート: "デスクトップ版Firefox 57はプラットフォームを問わずファイルシステムのアクセスがプロセスサンドボックス内に限定されるようになった。Windows向けFx58ではサンドボックスがさらに強化されるという。 / “Firefo…” https://t.co/kUV49pletZ"
59
- Rockridgeさんのツイート: "Fx59:Chromiumから取り込んでいる、プロセスのサンドボックス化に関するコードがアップデートされた。Chrome 62と同等か。参照:https://t.co/kz6ENgKo7p / “1366701 - Update…” https://t.co/FjTyMfiFby"
- Rockridgeさんのツイート: "Firefoxはプロセスのサンドボックス機能を実装するにあたりChromiumのコードを利用している。ところがChromiumがWindows XP/Vistaのサポートを打ち切ったため、Chromium 50以降の新しいものを使… https://t.co/a1lsFDKzck"
- Rockridgeさんのツイート: "Windows版Firefoxのビルドにおいて、Windows 10 SDKのバージョン10.0.10586以降が必須となる。プロセスのサンドボックス化に関するChromiumのコードを取り込むのに必要な措置だという。 / “P…” https://t.co/Zq1gPwfZrW"
- PSA: Making Windows 10 SDK version 10.0.10586 the minimum for building Firefox - Google グループ
- Rockridgeさんのツイート: "Fx58:contentプロセスにおけるサンドボックスのセキュリティ水準を強化した。 / “1415250 - Let level 4 for the Windows content sandbox ride again.” https://t.co/PUIKKXCNJr"
6x
60
- Rockridgeさんのツイート: "Fx60:macOS版で、contentプロセスのサンドボックスが強化され、ディスクの書き込みに例外なく制約がかかるようになった。今後はWindows版やLinuxにもこの措置を適用していく。参照:… https://t.co/mwZ8F8D5Kr"
- Rockridgeさんのツイート: "サンドボックス化の対象となるFirefoxの各種プロセスについて。 / “Security/Sandbox/Process model - MozillaWiki” https://t.co/QxYBng4ADa"
- Rockridgeさんのツイート: "近日中にWindows/macOS版Nightlyでcontentプロセスのサンドボックスが強化される予定。 / “Enabling filesystem read-restrictions for content proces…” https://t.co/hTx048KnbY"
- Rockridgeさんのツイート: "Firefoxに実装され、あるいは将来実装予定のサンドボックス機能について、概要を説明した文書。Compositorプロセスの導入がFirefox 53になりそうだという話も。 / “Security/Sandbox/Archi…” https://t.co/GGOo0nXJhE"
- Rockridgeさんのツイート: "MozillaはFirefoxのサンドボックス化されたプロセスが破られた場合に、被害を最小化する仕組みについても検討している。参照:https://t.co/nKOqk4k2rm / “Hardening the Firefox…” https://t.co/oQAY9QD8x4"
- Rockridgeさんのツイート: "MozillaはWindows版Firefoxのサンドボックスを強化する"win32k lockdown"について検討中だが、2019年3月以降の導入になりそうだ。Chromeは導入済み。参照:… https://t.co/otgOjeezZK"
- Security/Sandbox/2018-04-12 - MozillaWiki
- Rockridgeさんのツイート: "Mozillaは、将来的にサイト単位のプロセス分離を導入するため、1つのプロセスが消費するメモリを減らす取り組みを続けている。2018年11月現在、7~8か月前と比べて3分の2以下になっている模様。 / “Project Fis…” https://t.co/3mHR3xsA81"
Linux
eBPF
睡分不足
- SpectreとeBPF - 睡分不足
- LinuxのBPF : (1) パケットフィルタ - 睡分不足
- LinuxのBPF : (2) seccompでの利用 - 睡分不足
- LinuxのBPF : (3) eBPFの基礎 - 睡分不足
- LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
- LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足
blog
- ブログ: Linux Enhanced BPF (eBPF)トレース・ツール
- Berkeley Packet Filterの基礎と応用 - Part 1
- LinuxのBPFとbccでデバッグする - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
- eBPF命令セット - Packets are too Fast
- ubpfで遊んでみる - livaの雑記帳
- Linux eBPF Tracing Tools
- eBPF: One Small Step
- How to send/receive raw packets on Linux
- Persistent eBPF map object with bcc - yunazuno.log
- eBPF tail call 使い方メモ - yunazuno.log
- gRPCが遅すぎる?eBPFでカーネル内で動かす!. gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、ま… | by FUJITA Tomonori | nttlabs | Medium
スライド
- BPFの現在 - SSSSLIDE
- eBPF関連用語メモ - Speaker Deck
- eBPFをFreeBSDにポーティングしようとしている話 - Speaker Deck
- eBPF verifier - Speaker Deck
GitHub
- susanow/bpf: BPF Implementation using Xbyak JIT Assembler in Userland
- bpf-docs/eBPF.md at master · iovisor/bpf-docs
- IO Visor Project
- eBPF – IO Visor Project
Twitter
- Kentaro Ebisawaさんのツイート: "Linux 4.10 に IPv6 Segment Routing 入ったんだ。VRFもいろいろ拡張されてる。あとは BPF for lightweight tunnel encap か。 https://t.co/N4EmE5IcmI"
- Yojiro UOさんのツイート: "「イマドキのBPF復習しとかなきゃ」っていろいろみてたら、見つけた。更新されてるし網羅性も高い? Dive into BPF: a list of reading material https://t.co/C0PDApgWGZ"
- Dive into BPF: a list of reading material
- るくすさんのツイート: "まあ普通の使い方じゃなくて、各ソケット一つに付随してるBPF JITコードを延々と増やしてJIT sprayするためという、明らかに攻撃者始点の使い方。"
- まさみさんは語りたいさんのツイート: "あー、これはBPFとフレームワークを共有しているからか。"
- まさみさんは語りたいさんのツイート: "netmapはNICのパケットバッファをユーザ空間にmmapする。VALEはカーネル空間にmmapして、スイッチングロジックをカーネルモジュールで書ける。ただしこのモジュールを書くのは非常に難しい。"
- まさみさんは語りたいさんのツイート: "VALE-BPFということでBPFでVALEモジュールを書けるとのこと。"
- まさみさんは語りたいさんのツイート: "VALE-BPFはXDPよりも2%ほどパフォーマンスが良くなる"
- まさみさんは語りたいさんのツイート: "個人的にはeBPFを勘違いしていて、バイトコードをある程度自由にカーネル内から構成できると思っていたんだけど、実際にはユーザ空間から渡されたコードをVerifyしたりする結構面倒な手続きを飛ばせないと言われたのが最近のeBPFの記憶のハイライト。"
- 品川 高廣さんのツイート: "Spectre は Intel だけでなく AMD や ARM の CPU でも実行できるけど、読み取りたいメモリへのアクセス権限をもったある種のコードが必要。Google は eBPF を使ってるし、この論文では ROP 的な手法を使っている。攻撃は簡単じゃないけど防御も一筋縄… https://t.co/nwCuRhOvnr"
- 品川 高廣さんのツイート: "とりあえず、eBPF は無効にした方がいいんじゃないか。"
- るくすさんのツイート: "bpf JITと言うと、grsecurityが昔bpf JITでJIT sprayして権限昇格やるkernel exploitやってた気がする(SMEP bypass可"
- shinichiro hamajiさんのツイート: "#misreading ep.6 は完全に俺得回でした。依存関係解析はAndroidでやったことがあって、straceをseccomp-bpf使って改造高速化して入出力全部調べるという一般的な手法だった https://t.co/Kkg9qXGo5R 実際これでかなりたくさんのぶっこわれてる依存見つけて、修正の例としては https://t.co/rFVCOdqVFZ"
- https://www.kernel.org/doc/Documentation/networking/filter.txt
- Berkeley Packet Filter - Wikipedia
- BPF for lightweight tunnel infrastructureについて調べてみた - Qiita
- 2018年8月14日 Linux 4.18がリリース ―AMDGPUサポートの拡充,BPFILERフレームワークなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 「LLVM 3.7」リリース、eBPFサポートがマージされターゲットとして選択可能に | OSDN Magazine
seccomp
- mode 2 seccompの話 - yuzuharaの日記
- Linuxカーネル3.5リリース、ファイルシステムやネットワーク、ドライバ関連で多くの強化が行われる | OSDN Magazine
- Berkeley Packet Filterの基礎と応用 - Part 3
- seccompめも( ..)φカキカキ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux 3.19はkernelからX.509証明書をロード(IMA)するらしい - つれづれ日記2015年05月
- 本の虫: ChromiumがLinuxカーネル3.17より前のサポートを打ち切り
- Rockridgeさんのツイート: "Linux版Firefoxにおけるプロセスのサンドボックス化にはSeccomp-bpfを利用しており、Linux 3.5(2012年7月21日リリース)以降がその動作環境となる。 / “Security/Sandbox - Mo…” https://t.co/NJBc9k8kRI"
- OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来
SELinux
- SELinuxの現在の動向 — | サイオスOSS | サイオステクノロジー
- SELinuxのCIL (Part1) — | サイオスOSS | サイオステクノロジー
Firejail
- Firejail - ArchWiki
- Linuxカーネルモジュールでret2usrによる権限昇格をやってみる - ももいろテクノロジー
- LinuxカーネルモジュールでStackjackingによるSMEP+SMAP+KADR回避をやってみる - ももいろテクノロジー
- wiki/linux-boot-process.md at master · hfm/wiki
- Linuxカーネルの基本機能 - 第5回 カーネル・メモリー管理:ITpro
- kmem_cacheさんはTwitterを使っています: "linuxのpage allocatorでcompactinoの実行を管理するのはcompact_zone()か。実際にpageを移動させたりはmigrate_pages()とかになる。 http://t.co/ilEruADd0M"
- 平田豊ひらたゆたか🐬さんのツイート: "Linuxのカーネル空間では、ヌルポアクセスすると、ページフォルト処理の延長でOopsに遷移します。下記メッセージ(ARMの場合)が表示されます。 "Unable to handle kernel %s at virtual address %08lx\n" https://t.co/Qxae8BVGut"
- るくすさんのツイート: "SMAF(Secure Memory Allocation Framework)がLinux4.10から入りそう。 Webカメラって案外IOMMUがないらしく外部のIPからDMA attackができるらしいがそれの防止もできるとか https://t.co/moS8t8y7Fy"
- NsJail
- google/nsjail: A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters (with help of the kafel bpf language)
- 革命の日々! transparent hugepage considered harmful
- www.ffri.jp/assets/files/monthly_research/MR201404_Building secure Linux application with privilege separation_JPN.pdf
- 2016年5月13日 ヤバめのアプリはまず"火の檻"で ―サンドボックス「Firejail」がX11に対応へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年9月25日 AppArmorをDebianでもデフォルトに!? ―Tails開発者が提言:Linux Daily Topics|gihyo.jp … 技術評論社
- Linuxカーネル4.16リリース | OSDN Magazine
- 2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 第40回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[4]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- KOSAKI Motohiroさんのツイート: "Turing Complete FM #31 聞いてる。Linuxだとsuper pageからnormal pageからのdemoteは行っていない。なぜならfreebsdに入れたときよりだいぶあとに入ったので、デスクトップPCの平均メモリ量がかわってしまい、ふつう全部2Mページでも困らないぐらいだし、いらない、という意思決定をした"
- KOSAKI Motohiroさんのツイート: "transparent hugepageで面白かったのは、いらなくなったときに2M単位でスワップアウトするか、その時点で4kに分解して、ちょびちょびスワップアウトするかで議論して、平均性能よりも性能劣化を最小化するほうがリアルワールドで受け入れてもらうために重要だろうという話をして、4kに分解することに"
- suzakiさんのツイート: "1998年か。「スタックを非実行領域にするLinux向けのパッチ(修正差分)は,1998年には既にOpenwallプロジェクトなどが提供していた。しかし,Torvalds氏はこれを無意味だとしてパッチの取り込みを拒否している」https://t.co/1GyILfaHq8"
- Windows XP SP2の新セキュリティ機能,Linuxでも標準装備を(2ページ目) | 日経 xTECH(クロステック)
- Fadisさんのツイート: "Linux 5.0までのページ管理はページの参照数を32bit符号付整数のatomic値で保持していて0になるとページを捨てるようになっており、多くのコンパイラは符号付整数が最大値を超えた時最小値からカウントするコードを吐く為、約42億箇所から参照されるページの参照が減るとページが消えてしまうらしい"
- Fadisさんのツイート: "ただし、リソースを大食いせずに、ulimitの制限も回避しながらユーザ空間で1つのページに対して42億もの参照を作るのは容易ではなく、この不具合が悪用される可能性は極めて低いとされている"
- Fadisさんのツイート: "32bit整数が一周するほど参照する方法とか、Linux 5.1でどうしたのかとかの詳細はLWN(リンク先有料記事) https://t.co/q6MImoJmMs"
- Subscription required [LWN.net]
- suzakiさんのツイート: "セキュアメモリ二つ目。同じアドレスを複数回t叩くRowHammerをPTE に適用し、権限昇格を行う攻撃がある。 これに対して現在のDRAMでは01のロジックが逆のCell (True-Cells, Anti-Cells)を組み合わせいる。 True-Cellのみが使われるようにするCell Type Aware (CTA) memory Allocationの提案。"
- suzakiさんのツイート: "LinuxではPage Tableの割り当てにZONE_PTPを使つっているので、これを活用。"
- suzakiさんのツイート: "Security I 二つ目。 すべてのメモリアクセスにCapabilityが付く命令セットCHERI: Capability Hardware Enhanced RISC InstructionsでPointer Provenanceを保証する仕組みを導入した話(Best paper, SRI)。 (論文ではProvenanceの意味をcorrect operationと定義している)"
- suzakiさんのツイート: "ライブラリはソースコード(sbrk, mmap, and shmat? )の変更が必要だが、通常のアプリは大抵不要。 元々入っていたFAT PointerをProvenance更に付加した?"
- 複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
FreeBSD
- はっきり見えてきたFreeBSD 10の行方(2/3) - @IT
- CAPSICUM(4) - 特殊ファイル - YOS OPENSONAR
- 【レビュー】新しいセキュリティモデル「Capsicum (キャプシカム)」を知る | マイナビニュース
- FreeBSDのCapsicumとは(その1) - Qiita
- 2011年11月8日 新セキュリティ「Capsicum」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- 第9回 カーネル内部のセキュリティを強化,ネストカーネルでメモリ区画化:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第10回 セキュリティを大幅に強化するCheriBSD:BSD界隈四方山話|gihyo.jp … 技術評論社
OpenBSD
- OpenSSLのフォーク「LibreSSL」を含んだ「OpenBSD 5.6」がリリース | OSDN Magazine
- 20周年を迎えたOpenBSD、「OpenBSD 5.8」を公開 | OSDN Magazine
- 「OpenBSD 6.0」が公開 | OSDN Magazine
- 「OpenBSD 6.2」リリース、カーネル保護機構などを強化 | OSDN Magazine
- 第25回 OpenBSD 5.8登場 - sudo(8)を廃止してdoas(1)を導入:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第29回 OpenBSD 5.9の新しいセキュリティ機能pledge(2):BSD界隈四方山話|gihyo.jp … 技術評論社
- 第35回 OpenBSD pledge(2)システムコール,5.9で正式登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第108回 OpenBSD,KARLセキュリティ機能を開発:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第111回 BSDカーネル脆弱性調査:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第112回 OpenBSDに新しいセキュリティ機能「RETGUARD」:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第120回 OpenBSD 6.2登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第122回 OpenBSD新セキュリティ機能KARL:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第128回 OpenBSD pledge(2)システムコール進捗報告:BSD界隈四方山話|gihyo.jp … 技術評論社
NetBSD
- このコード、オシャカルトっ!さんのツイート: "設計の内容が説明されてるので良い感じ( ̄ー ̄)bグッ! GSoC 2018 Reports: Kernel Address Sanitizer, Part 3 NetBSD Blog https://t.co/cRb87HEGnx"
- NetBSD Blog
- このコード、オシャカルトっ!さんのツイート: "NetBSDのKASANの説明記事はLinuxはこんな感じでNetBSDではこうしたよって形の説明の仕方なのでちょっとお得 😊"
ASLR
FGKASLR
- FadisさんはTwitterを使っています 「FGKASLRがバニラカーネル入りに向けた準備を進めている話。FGKASLRはFiner Grained Kernel Address Space Layout Randomizationの略で、カーネルの関数が置かれるアドレスを「関数単位で」ランダムにする。従来からLinuxにあるKASLRはセクション単位でランダムな配置をする https://t.co/bqMUGCSznX」 / Twitter
- Linux 5.16 Has Early Preparations For Supporting FGKASLR - Phoronix
- FadisさんはTwitterを使っています 「Linuxは.textの配置をランダムにする事で特定のアドレスに関数がある事を期待する攻撃に対する耐性を得るASLRを使えるが、ライブラリを使うユーザ空間プロセスと異なりカーネルの殆どの関数は1つの.textセクションに収まっている為、一度オフセットがバレると色んな関数の位置がバレる問題があった」 / Twitter
- FadisさんはTwitterを使っています 「Finer Grained Kernel Address Space Layout Randomizationでは全ての関数を個別のセクションに分けたelfを作ってロード時にcall先のアドレスを決定することで1つの関数のオフセットがバレても他の関数のアドレスがわからないようにしよう、という物」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白い。 同じモジュール内の関数並べ替えって -fpic でも無理では?と思ったけど、 gcc の -ffunction-sections 必須にして関数毎に .text section を生成するらしい。 https://t.co/WHNARMY7k9」 / Twitter
- LKML: Kristen Carlson Accardi: [PATCH v4 00/10] Function Granular KASLR
- Yamamoto, Hirotakaさんのツイート: "ASLR が性能にこんなにインパクト与えることあるのか。 https://t.co/qpep0x0CaX"
- Øystein on MySQL Optimizer: Improving the Stability of MySQL Single-Threaded Benchmarks
- ASLR回避技術とChromeのsandboxの突破exploit | Scene Research Station
- Address Space Layout Randomization in Windows Vista – Michael Howard's Web Log
- Address Space Layout Randomization - NyaRuRuが地球にいたころ
- Tsukasa #01 [要出典]さんのツイート: "ところで、セキュリティキャンプ 2018 の本番中に (参加者のフィードバックに応じて) ファイルやデータのエントロピー計算をやるのを (講師として) 突貫で勉強して突貫で実装したわけですが、あれって凄くシンプル (かつ条件によっては騙しやすい) ものだったんですね。"
- Tsukasa #01 [要出典]さんのツイート: "早い話が 0x00 - 0xff の頻度表を作ってそこからエントロピーを計算するもの (実装の違いとしては "どこから" データを取るか、くらいか) で、00 01 02 03 .. FE FF な超規則的なバイナリデータでもエントロピー 8 (最大) になるよね、という話をしていました。"
- OSセキュリティチュートリアル
- ASLR – 研究室の裏庭 – Medium
- Windows 10: 強化された脆弱性緩和技術で攻撃のコストを上げる – 日本のセキュリティチーム
- JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
- 「Windows 8」以降のセキュリティ機能に脆弱性 - CNET Japan
ページテーブルのランダム化
- suzakiさんのツイート: "システムセキュリティ1。4つ目。Page Tableはpermissionもあり、変更されるとデータがコードになる。これを防ぐためにPage TableをランダムにするPT-Randの提案。ランダマイゼーション情報はLeakage resilientなDebugレジスタに隠す。"
- まさみさんは語りたいさんのツイート: "Page Tableをランダムにするにはハードウェアの補助が必要な気がしますが、ソフトウェアだけで処理ですか?(Page tableに割り付けるページをランダムに選ぶ?)… "
- suzakiさんのツイート: "発表を聞いていた範囲ではpage walk中にはソフト割り込みを禁止するなど説明しており、特別なハードウェア機能を使わないようでした。… "
- ページング方式 - Wikipedia
- メモリ保護 - Wikipedia
- chroot - Wikipedia
- itj17_54-61.pdf
ハードウェアタグ付きポインタ
- 57-bits の仮想メモリアドレス空間と UAI が実装される将来の AMDプロセッサ | Coelacanth's Dream
- FadisさんはTwitterを使っています 「x86_64のLinuxでハードウェアタグ付きポインタを使えるようにする変更が揉めている話。タグ付きポインタは64bitアドレスの使われないビットに付加情報を突っ込んだもので、付加情報ごとatomicに書きたいロックフリー方面やどこ産のメモリかを記録したいガベコレ方面で使われる https://t.co/Isj8DHd0pS」 / Twitter
- FadisさんはTwitterを使っています 「新しめのARMプロセッサにはタグ付きポインタを直接デリファレンスできるようにアドレスの特定の範囲のビットを無視する拡張が備わっている。これがハードウェアによるタグ付きポインタ。Linuxでは専用のシステムコールで設定する事で、そのプロセス内でアドレスの特定の範囲を無視させる事ができる」 / Twitter
- FadisさんはTwitterを使っています 「この機能はイケてるのでx86にも積もうという動きがあり、IntelがLAM、AMDがUAIという名前で近しい機能を「将来のプロセッサに積む」としてLinuxに変更を投げている。LAMとUAIは仕様が異なり、特にLinuxで問題になっているのはUAIではアドレスの最上位bitがタグに使えるbitになっていること」 / Twitter
- FadisさんはTwitterを使っています 「x86_64のLinuxのメモリマップはユーザ空間プロセスに割り当てたメモリは最上位bitが必ず0に、カーネルに割り当てたメモリは最上位bitが必ず1になるようになっている。これによってプロセスのメモリを指すアドレスは絶対にカーネルのリソースを指さない事が保証される他、ページの管理もシンプルになる」 / Twitter
- FadisさんはTwitterを使っています 「ところがUAIを使うと値はカーネルのメモリを指しているが実際にアクセスする先はユーザ空間プロセスのメモリになるアドレスが作れる。そのアドレスがシステムコール等でカーネルに渡った際に既存のチェックが不正なアドレスと見抜けずカーネルのメモリを触らせる脆弱性に繋がる事が心配されている」 / Twitter
- FadisさんはTwitterを使っています 「IntelのLAMはこの問題を避ける為にタグに使えるbitは62bit目まで(最上位の1bit前まで)になっている。UAIを安全に使うためにカーネルが頑張る事は可能だが、それはこの機能の目的である「高速なタグ付きポインタ」が損なわれる可能性が高く、Linux側はAMDにIntel LAMと同じ仕様を採用する事を勧めている」 / Twitter
マルチユーザ談義
- Dan KogaiさんはTwitterを使っています 「jailの場合JIDがUIDになるだけでは?カプセル化するということはカプセルの識別子が必要で、「ユーザー」と根は同じ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「割と反対の意見かなぁ。マルチユーザーは、現代の、コンピュータを共有しない環境では必須じゃない。 スマホは個人所有が前提だし、PCもディスク暗号化とか個人所有前提の機能設計がされてる。 スマホ的なshare-noneが前提でアクセス権限追加する仕組みはjailで実現できる」 / Twitter
- Dan KogaiさんはTwitterを使っています 「ニコ生でも話したけど Apple が NeXT ではなく Be を選んでいたら詰んだ理由。BeOSにはプリエンプティブマルチタスキングはあってもマルチユーザーがなかった。マルチユーザーなしに現代に必要なセキュリティを確保するのは困難すぎる」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「結局「マルチユーザ」も「マルチタスク」も「大規模なコンピュータに必要な機能」ではなく「どんな小さなデバイスにも必須な機能」だったってことだよね。>RT」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「僕の記憶が確かなら、スマホの場合、アプリ間の権限分離は現在UIDを利用して実装されています。ただ、UIDほど複雑な、PID単位とは異なる権限管理の仕組みが必要なのかと言うと、実はもっと簡単にできるんじゃないか。プロセスごとにコンテナ作る方が楽でしょ。という話です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そういえば、Chromeってスマホでも権限分離のためにマルチプロセスなんだろうか...」 / Twitter
- Kinuko Yasuda / 安田絹子さんはTwitterを使っています 「@kazuho はい。Android では少なくともマルチプロセスですよー(WebViewはちがうけど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@kinu ありがとうございます!」 / Twitter
サンドボックス
- サンドボックスとは?標的型攻撃への定番対策の仕組みと課題
- 巧妙なマルウェアに対抗する最先端のサンドボックス技術 | トレンドマイクロ セキュリティブログ
- 合法マルウェアで実感「リアルとサンドボックスの違い」 (1/3):マルウェアの視点で見るサンドボックス - @IT
- ASCII.jp:検知を回避するマルウェアが使用するメカニズムを徹底解説
- 今更聞けない!サンドボックスの基本を徹底解説! | CodeCampus
- ASCII.jp:サンドボックス型製品すらも回避、最新の標的型攻撃事情
- ウォッチガード、次世代サンドボックスによるマルウェア検知・自動レスポンスを機能拡張 – UTM/NGFWでマルウェア・標的型攻撃対策|ウォッチガード・テクノロジー
- サンドボックス機能|機能紹介(FortiSandbox)|日立ソリューションズがお届けするFortinet Products
- 「サンドボックスだけでは標的型攻撃を防げない」――フォーティネットが提唱する3つのステップとは? | ビジネスネットワーク.jp
- Project Zero: You Won't Believe what this One Line Change Did to the Chrome Sandbox
- Project Zero: FF Sandbox Escape (CVE-2020-12388)
- Site Isolation 及び Web のセキュリティモデルの更新 | blog.jxck.io
- オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す - ASnoKaze blog
- 品川 高廣さんはTwitterを使っています 「iOS の sandbox はパス名ベース。TOCTTOU 攻撃には弱そうだな。#arm_study」 / Twitter
- iOSとmacOSでiMessageを強固にするためのサンドボックスとその他の手法
セキュリティ
Intel
サービス拒否攻撃
- ページサイズ変更によるマシンチェックエラー: CVE-2018-12207 - Red Hat Customer Portal
- Deep Dive: Machine Check Error Avoidance on Page Size Change
- Processors Affected: Machine Check Error Avoidance on Page Size Change
SPOILER
- Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要 - GIGAZINE
- まさみさんは語りたいさんのツイート: "CPUのOut of Order実行をしている時にストア命令とロード命令の実行順序が投機的に入れ替わるのを利用。ロードはストアを追い越すが、実行後に直前のストアが終わっていないことが分かったらやり直す。これを利用するとロードにかかる時間が変わることを利用してどこをアクセスしてるか推測できる。"
- まさみさんは語りたいさんのツイート: "問題はこのロードとストアの衝突の検知のため物理アドレスを比較するときに、アドレスのごく一部のビットだけ利用しているということ(またリソースケチったのかよ・・)。このため、全く違うアドレスをストアでスキャンするとロード命令に影響が出るらしい。"
- まさみさんは語りたいさんのツイート: "これだけだとASLR破りに使えそうだなという印象。ロード命令はどこにでもあるから・・・。"
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
- More Information on Spoiler
L1D Eviction Sampling
- Intel製CPUの新たな脆弱性「L1Dエビクションサンプリング」を利用してデータを引き出す攻撃「CacheOut」が報告される - GIGAZINE
- L1D Eviction Sampling
- Processors Affected: L1D Eviction Sampling
Vector Register Sampling
- Vector Register Sampling
- Processors Affected: Vector Register Sampling
HT
TLBleed
- Intel CPUの脆弱性「TLBleed」は修正困難 - OpenBSD開発者 | マイナビニュース
- TLBleed - Wikipedia
- iTWire - OpenBSD chief de Raadt says no easy fix for new Intel CPU bug
- suzakiさんのツイート: "マイナビ『SperctreやMeltdownを根本から防ぐSafeSpec』https://t.co/MFqNVS83Tw 投機実行で見えてしまう情報をシャドウキャッシュやシャドウTLBで隠す提案。 オリジナル論文はhttps://t.co/Pq7yQ1jjc8 ツイートしたTLBleedにも関連しそうだが、BlackHat、USENIX Secで発表なので待たないといけない。"
- SperctreやMeltdownを根本から防ぐSafeSpec(2) Spectre/Meltdownを防ぎ、安全な投機実行を可能にするSafeSpecの考え方 | マイナビニュース
- [1806.05179] SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
- suzakiさんのツイート: "ちなみにオリジナルのarXiv論文のタイトルは SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation https://t.co/Pq7yQ1jjc8 PDFを確認したところ、さすがにTLBleedは論文で言及されていない。"
- まさみさんは語りたいさんのツイート: "インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 https://t.co/2xZrIOECow @zdnet_japanから crypto処理をhugepage上で実行するだけで防げたりして…。"
- インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 - ZDNet Japan
- Shigeki Ohtsuさんのツイート: "さんざん噂になってた TLBleed ですが、ようやく発表者からのアブストとpaperが出てきましたね。17秒で256bit EdDSAを98%の確率で秘密鍵を取得できるのか。こりゃすごい。 HTをdisableするしか対策がない… https://t.co/KgtRGrODUQ"
- TLBleed - VUSec
- Fadisさんのツイート: "EdDSAの特定の実装に対するローカルからのサイドチャネル攻撃で鍵を特定できました、と。よかった、Curve25519も信用ならねぇとかぞういう話ではなかった"
- Fadisさんのツイート: "Intel CPUのHyperthreadで1つのプロセッサを共有する複数のスレッドが同じTLBキャッシュを見ているのを利用して、同じプロセッサ上で動く別のスレッドの動きを覗く話っぽい。EdDSAの署名をするサーバで隣でそれを覗くプロセスを動かすことで、EdDSAの秘密鍵を短時間で特定できる程度まで絞り込めた、と"
- まさみさんは語りたいさんのツイート: "TLBleed、intelのSMT実装ミスみたいなものなんじゃなかろうか。リソースはたしかに減らせるんだけども。他のSMTプロセッサではどうなってるのか気になる。"
- Kazuho Okuさんのツイート: "TLBleed が定数時間アルゴリズムのバグの指摘でないという論拠がわからんというか、秘密鍵の値によって TLB の触り方が変わるプログラムは定数時間アルゴリズムとは呼べないよね?"
- Shigeki Ohtsuさんのツイート: "Intelはこれを脆弱性と認めてないんだよね。Intel IPPライブラリはconstant timeだからそれを使えと。 / “TLBleed : Trasnlation Leak-aside Buffer の論文を読む - …” https://t.co/LclZUq4PNA"
- TLBleed : Trasnlation Leak-aside Buffer の論文を読む - FPGA開発日記
- TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる
- misc/tlbleed.md at master · herumi/misc
PortSmash
- 20181103
- PortSmash attack punches hole in Intel's Hyper-Thread CPUs, leaves with crypto keys • The Register
- IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
- Hyper-Threading搭載のIntel CPUに新たな脆弱性 ~“PortSmash”が明らかに - 窓の杜
- Hyper-Threading有効時にスレッド上の情報が盗まれる「PortSmash」 ~Intel製品のほかRyzenにも影響か - PC Watch
- Hiromichi Itouさんのツイート: "締切に追われているけど、気分転換で、PortSmashのPoCコードを動かしてみた。ちゃんと動いてタイミンググラフも取得できた。タイミング情報から秘密鍵を探すのは、過去の手法と同じなのかなー https://t.co/K8Kj96Nqe4"
- bbbrumley/portsmash
- まさみさんは語りたいさんのツイート: "Portsmash、解決する方法としてはsensitive sectionを開始したらsiblingの他のスレッドの動作を一定時間停止するシステムコールかなにかを使うしか無いのでは(SMT_lockみたいな)。それか運用で逃げる。"
- CVE-2018-5407 - Red Hat Customer Portal
- まさみさんは語りたいさんのツイート: "今年はIntelにとっては厄年だなあ。PortsmashのコードがWebブラウザから実行できたら、影響は個人レベルに及ぶので、もうHTは完全に廃れていくのではないか。"
- PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
- 「Linux 4.20」性能問題、原因はSpectre v2対策STIBPの有効化--トーバルズ氏が変更を要求 - ZDNet Japan
- More Information on PortSmash
- IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
- Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs - ExtremeTech
- ハイパースレッディングに深刻な脆弱性が報告される | スラド
- OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化 | マイナビニュース
- Hiromichi Itouさんのツイート: "OpenBSDがIntel Hyper-threadingをデフォルトで無効にするそうだ。脆弱性が見つかった訳ではなく予防的に行う措置の模様 https://t.co/qXlwlB0lXg"
- CVS: cvs.openbsd.org: src
- Makoto Kato ︎︎さんのツイート: "HyperThreadの実行効率の向上って、初期実装時(Pentium 4)は10%から20%くらいなので、今のCPUでHyperThreadが無効になっても、クロックを10%上げられれば、まぁ実行時間は変わらなくなるのではとは思うだけど"
- 一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘 - GIGAZINE
- More information on SMoTherSpectre
デバッグ
- 本の虫: Intelの古いマニュアルを誤読したために生じた脆弱性
- WindowsやmacOSなど主要OSに共通する深刻な脆弱性が発覚、原因はOSベンダーによるCPUアーキテクチャの仕様解釈ミスか - GIGAZINE
- Ryou Ezoeさんのツイート: "信じられん。OpenBSDではユーザースペースにハードウェアブレイクポイントの利用を許可していないため今回のIntelのスタックレジスタ書き換え時の割り込み遅延の脆弱性の影響は受けない。 https://t.co/edGk31XuQg"
- 'Re: CVE-2018-8897' - MARC
- 本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避
- 日記 (2018 年 5 月下旬)
- Shiro Kawaiさんのツイート: "#tcfm 第20回。ハードウェアブレークポイントって、メモリアクセスを捕まえたい時は有用と思うけど、実行を捕まえるのにソフトウェアより有利な点て何があるんだろう?(デバッグレジスタ直接使ったこと無い人。) 既にROMに焼かれてるプログラムを調べなきゃならない時とか? https://t.co/Oc3IpHPSCE"
- Miura Hidekiさんのツイート: "H/W開発とか初期のファームウエアを開発するときはデバッガの実装が簡単になるので嬉しそうです… "
- Shiro Kawaiさんのツイート: "textエリアの書き換えが面倒な実機上では確かに便利だと思います。普通の汎用マシンのデバッガでもそれ使ってたのはなんでかなあと。最近はOSも共通だし区別しない方が普通なんでしょうか。… "
- Miura Hidekiさんのツイート: "すみません、頓珍漢なリプライをしてしまったようです。gdbにあるH/WブレークポイントはやはりROMのデバッグ用って書いてあります https://t.co/VdTNhIBGrw… "
- Debugging with GDB: 5.1.1 ブレイクポイントの設定
- Shiro Kawaiさんのツイート: "pop ssの脆弱性の話は、別に普通にデバッガが利用するからじゃなくて、アーキテクチャによって有用だからと用意されたシステムコールが予想外に利用されたと理解すればいいんでしょうかね。… "
- Shiro Kawaiさんのツイート: "アーキテクチャによって、というより、使われるシステムによって、ですね。… "
- Miura Hidekiさんのツイート: "ちょっと調べてみましたらMSでdllのデバッグに便利という記述がありました。確かにこれはH/Wじゃないと無理だと思います https://t.co/13x27QnxzO… "
- ブレークポイント
- Shiro Kawaiさんのツイート: "「読み込み時に通知を送る~」のくだりがわからないんですが、dllを実際にマップする以前に(アドレスが判明した時点で)BPを仕掛けたいというシナリオがあるんでしょうか。… "
- Miura Hidekiさんのツイート: "dll中で落ちるソフトウエアのデバッグで、ソフトウエアの実行前にブレークポイントを仕掛けておけるのではないかと思います。ソフトウエアブレークポイントでは命令列を書き変えてもdllロードで無効になってしまいます。… "
- Miura Hidekiさんのツイート: "dll中のどこかにブレークポイントを仕掛けたいシナリオです… "
- Shiro Kawaiさんのツイート: "あ、なるほど。gdbだとmain実行前にdso内の関数にBPしかけようとするとpending on future shared library loadになりますね。… "
- Miura Hidekiさんのツイート: "確かにgdbだとそんなメッセージが出ますね。Cygwinだと確かうまく動かないので無視していましたけど…… "
I/O bitmap
- 高梨陣平さんのツイート: "これはカーネルハッカーで386以来のx86の機構に詳しい方なら爆笑できそう。30年物のセキュリティホールがOpenBSDに発見された。切っ掛けは32bit版のOSのみがクラッシュする問題。調べる内に一般ユーザがI/Oポートを読み書き可能なセキュリティホールが発見された。ここから怒涛の懇切丁寧な説明が続く… https://t.co/KhB6rWVVwH"
- Hacker Newsさんのツイート: "The History of a Security Hole: https://t.co/EDUYnJ7sW3 Comments: https://t.co/3djgXHwKPD"
- The History of a Security Hole | OS/2 Museum
- The History of a Security Hole | Hacker News
- Hideki EIRAKUさんのツイート: "I/O bitmap はそもそもアクセスサイズ分取らなきゃいけない仕様が変だよね。CF8h の 32bit アクセス (PCI configuration) を許したかったら CF9h のバイトアクセス (システムリセットなど) も許さないといけないなんて。"
未定義命令
- x86 アーキテクチャに潜む脆弱性、未定義命令実行後の挙動 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
- Black Hat USA 2017 | Briefings
- まさみさんは語りたいさんのツイート: "x86の未定義命令(UD以外の定義されていない命令)がたくさんあるのは、opcode mapを書いたことがある人なら誰でも知ってる公然の秘密(笑)。 arch/x86/lib/x86-opcode-map.txt に詳しい。(そして最近でも新しいのが見つかる)"
TXT
- インテルTXTによるトラステッド・コンピューティング:第1回 インテルTXTが実現する真のセキュアなプラットフォーム - ITmedia エンタープライズ
- 仮想化の技術&製品トレンド - 仮想環境のセキュリティを高めるインテルTXT:ITpro
- invisiblethingslab.com/resources/2011/Attacking_Intel_TXT_via_SINIT_hijacking.pdf
- Intel TXT and vSphere
- Intel、vProをアップデート | スラド
- Windows adds TXT-supported MLE to boot security | Firmware Security
ME
Firmware Security
- Finnbarr on state of Intel ME hacking tools | Firmware Security
- PTSecurity on Intel ME | Firmware Security
- coreboot and Intel ME | Firmware Security
- More on INTEL_SA-00086 (Intel ME update) | Firmware Security
- a bit more on INTEL-SA-00068 (Intel ME) | Firmware Security
- more on Intel-SA-00068 (Intel ME) | Firmware Security
- System76 to disable Intel ME (Dell as well) | Firmware Security
- Intel ME coverage from BHEU | Firmware Security
- BHEU slides on Intel ME vuln uploaded | Firmware Security
- Tanenbaum: more comments regarding Intel ME | Firmware Security
- more on Intel-SA-00068 (Intel ME) vuln | Firmware Security
- AMI response to Intel-SA-0068 (Intel ME vuln) | Firmware Security
- Matthew’s 2nd blog on Intel ME vuln | Firmware Security
- Pepijn on Apple use of Intel ME | Firmware Security
- more on Intel-SA-00068 (Intel ME) | Firmware Security
- Intel ME research paper | Firmware Security
- Intel ME at CCC | Firmware Security
- ME Analyzer 1.42.0 released | Firmware Security
- PTSecurity: how to run code in Intel ME | Firmware Security
- Intel-SA-00068 updated (Intel ME) | Firmware Security
mjg59
- mjg59 | The Intel ME vulnerabilities are a big deal for some people, harmless for most
- mjg59 | Potential impact of the Intel ME vulnerability
Skylake・Kaby Lake・Coffee Lake
- Download Intel-SA-00086 Detection Tool
- Intel製CPUに特権の昇格の脆弱性、公式チェックツールがWindows/Linux向けに公開 - 窓の杜
- Intelプロセッサの重大な脆弱性(SA-00086)に対処してみた話 – 内向型人間の知恵ブログ
- インテル®マネジメント・エンジンの重要なファームウェア・アップデート (intel-sa-00086)
- 第6〜8世代Coreプロセッサなどに脆弱性、Intelがチェックツールを公開 | スラド セキュリティ
- Intel,第6~第8世代Coreプロセッサ搭載システムに関する重要な脆弱性情報を公開。脆弱性の有無を調べる検出ツールもリリース - 4Gamer.net
- Intel Management Engineなどに8個の脆弱性が発見 ~第6世代Core以降が影響、ThinkPadなどがすでに対策開始 - PC Watch
- Intel、第6~第8世代Coreなどの脆弱性情報公開、対策はファームウエア更新 | マイナビニュース
- OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ
- インテルの「Management Engine」などに複数の脆弱性--ファームウェアを修正 - CNET Japan
MINIX
- インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
- Google、ユーザーの知らないところで動くUEFIの脆弱性に警鐘 ~オープンソース化で回避を提唱 - PC Watch
- Hiromichi Itouさんのツイート: "Intel Management EngineでMINIXが動くようになったのは、Intel ME 11を搭載しているIntel 100 Series Chipsets(2015年)以降なので、世界で一番の稼動OSではないと思われる。(とマジレス)"
- Minixを使用していると言われているIntel ME、BSDライセンス違反の疑い | スラド
企業向けのみに存在する脆弱性
- Download INTEL-SA-00075 Detection and Mitigation Tool
- Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
- IntelのCPUのセキュリティ問題について電子フロンティア財団が指摘 - GIGAZINE
回避困難な脆弱性?
- Intel x86プロセッサに含まれている遠隔管理システムに危険性? | スラド セキュリティ
- インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…
- Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
- Intel製CPUの「修正済み」脆弱性が実は修正不可能であったことが判明、特権によるコード実行やDRMの回避などが可能 - GIGAZINE
- インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan
- INTEL-SA-00213
無効化
- Intel ME 11を無効化する方法が公開される - GIGAZINE
- Intel MEの脆弱性を発見し保護システムを無効化した方法をセキュリティ研究者がBlack Hat Europe 2017で発表すると告知 - GIGAZINE
- NSAが開発した隠し機能でIntel MEを無効化する動きがPCメーカーに広がる - PC Watch
- platomav/MEAnalyzer: Intel Engine Firmware Analysis Tool
- 【やじうまPC Watch】米国ではじめてATM遠隔攻撃が確認 ~Intel MEの脆弱性が利用される可能性も - PC Watch
- Intel® Product Security Center
- デュアルソケット・ザ・ワールド ME-HECI ME Subsystem とは何か?
- Introduction to the Intel Management Engine OS (Part 1) | Peter Bosch’s website
- Introduction to the Intel Management Engine OS (Part 2) | Peter Bosch’s website
- 高梨陣平さんはTwitterを使っています 「Google Working To Remove MINIX-Based ME From Intel Platforms https://t.co/lajfCP20m6 Intelがほぼ全てのCPUの中でMinixを動かしているのは有名になったがGoogleがそれを削除させる方向で動いているとの記事。IntelのMEはclosedなMinixだがHWに完全なアクセスが可能で攻撃の入口として最適との話」 / Twitter
- Google Working To Remove MINIX-Based ME From Intel Platforms | Tom's Hardware
AMT
- mjg59/mei-amt-check: Check whether AMT is enabled and provisioned under Linux
- Intel AMT Checker for Linux | Hacker News
- インテルが開発したリモートコントロール技術 - 第三の謎 インテル® アクティブ・マネジメント・テクノロジーとは?のレビュー | レビューメディア「ジグソー」
- mjg59 | Intel AMT on wireless networks
- mjg59 | Intel's remote AMT vulnerablity
- Embedi on Intel AMT vulnerability | Firmware Security
- Intel AMT Upgradable to Vulnerable Firmware | Firmware Security
- new Windows UEFI security protections deciphered | Firmware Security
- Intel AMT developer documentation updated | Firmware Security
- NVD - CVE-2017-5698
- Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
- インテルの「AMT」や「ISM」に脆弱性--緩和策など公開 - ZDNet Japan
- リモート管理機能「Intel AMT」、リモートから任意のコードが実行可能な権限昇格の脆弱性 -INTERNET Watch
- 笠原一輝のユビキタス情報局
- シリアルオーバー LAN(SOL) ホワイトペーパーインテル®サーバーボードシステム
- Intel vPro テクノロジを使用するコンピューターには、Windows 7 のデバイス マネージャーで認識されないデバイスが搭載されていることがある
- AMTを利用した全盲ユーザのBIOS操作について(DQ45CB編)
- Intel AMT (5)PC: リモートから情報取得、遠隔操作する方法(Intel AMT 10編)
- Intel MeshCommander (AMT tool): now available for Mac and Linux (not just Windows) | Firmware Security
- F-Secure: new Intel AMT security issue | Firmware Security
- パスワード「admin」で簡単にIntel AMTに入れ、リモートアクセスできる問題が発覚 - PC Watch
- Lenovo: Intel AMT MEBx Access Control Bypass | Firmware Security
- Intel製品に複数の脆弱性、修正版が一斉公開 ~最大深刻度は“CRITICAL” - 窓の杜
- 20180721
DCI
- Intelの新型CPUにUSBポート経由でシステムのフルコントロールが奪われるデバッグの仕組みがあることが判明 - GIGAZINE
- そうだ、Intel DCIをしよう! | J’s Lab
- そうだ、Intel DCIをしよう! | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
- Intel® System Studio | Intel® Software
- RU.EXE + RU.EFI
- Enable DCI debugging on Gigabyte-BKi5HA-7200
- blog/section.txt at master · JP3BGY/blog
- USB View - Google 検索
- Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually - Windows drivers | Microsoft Docs
- Publications/2018/DEFCON26 at master · eclypsium/Publications
SMM
- 1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
- 1997年から2010年までのインテル製CPUに脆弱性、ルートキット埋め込み可能で対策はほとんどなし - Engadget Japanese
- https://www.blackhat.com/docs/us-15/materials/us-15-Domas-The-Memory-Sinkhole-Unleashing-An-x86-Design-Flaw-Allowing-Universal-Privilege-Escalation-wp.pdf
- My aimful life: Building reliable SMM backdoor for UEFI based platforms
- Cr4sh/SmmBackdoor: System Management Mode backdoor for UEFI
- My aimful life: February 2016
- 1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
- Embedi SMM_USBRT_POC: CVE-2017-5721 UsbRt SMM EoP | Firmware Security
- Intel Sytem Debugger on debugging UEFI and SMM | Firmware Security
- SMM rootkits: a new breed of malware | Firmware Security
- mjg59 | Creating hardware where no hardware exists
- Intelのプロセッサの脆弱性を利用したNetCAT攻撃はSSHセッションの入力内容や通信内容の窃取が可能 - GIGAZINE
- Intelのプロセッサ内蔵GPUに脆弱性、ドライバ/カーネル更新を推奨 - PC Watch
- INTEL-SA-00314
- Side Channel Methods – Analysis, News, and Updates
- Software Guidance for Security Advisories
- Host Firmware Speculative Execution Side Channel Mitigation
- Refined Speculative Execution Terminology
MS
その他
- Windows 10のシステム呼び出しとカーネル内部セキュリティー対策
- Windows 10 1703/1709、セキュリティー、CPU問題
- Windows 8 Enterprise Flexible Workstyle Full Deck RP (To Customer)
- Windows10とコルタナのデフォルト設定の脆弱性を報告
- ランサムウェア対策が「Windows 10 Fall Creators Update」に追加! さっそくトライ - やじうまの杜 - 窓の杜
- なかのん DAYS''さんのツイート: "Windowsはいい加減、管理者権限が必要なexe以外を、管理者以外が書き込めるフォルダからは実行できないようにするオプションを提供して欲しい。"
- 「C:\Temp」「C:\Intel」フォルダーは不正ツールが設置されやすい? 標的型攻撃に類似点~J-CRAT報告 - INTERNET Watch
- 「Windows 10」に新たなセキュリティ機能「InPrivate Desktop」が追加か - CNET Japan
- Microsoft、「Windows Defender」をサンドボックスで実行する機能を追加 - 窓の杜
- 未認証のワクチンですけど試してみませんか?――Windows Defenderのサンドボックス化の話 (1/2):山市良のうぃんどうず日記(140) - @IT
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~Arbitrary Code Guard~ « 他人の空似
- Heap spraying攻撃の手順と原理解説 – 他人の空似
- YurikaさんはTwitterを使っています: 「数々のMS製品の0Dayを発表しまくってましたSandbox Escaperさんが、MSに入る前に(NDAにサインする前に)その手法を世に公開しまくるということでブログが公開されてますよ。https://t.co/ZFeRteMcHp」 / Twitter
- Place where polar bears dwell: Chasing polar bears: part one
- Windows 10の脆弱性を諜報機関の「NSA」が報告したことを専門家が重視する理由とは? - GIGAZINE
- 楠 正憲さんはTwitterを使っています: 「だいぶヤバい脆弱性では?→ ECDSA署名と曲線領域パラメーターの制御を考えると、元の署名秘密鍵を知らなくても、元の公開鍵と一致する2番目の秘密鍵を作成するのは簡単 / “From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker…” https://t.co/huOVOpL8ww」 / Twitter
- From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker News
- Shigeki OhtsuさんはTwitterを使っています: 「WindowsのECDSAの脆弱性 CVE-2020-0601 の証明ってこんな感じでいいんですかね? 間違いあればどなたかご指摘ください。 https://t.co/hNkOqt7lyw」 / Twitter
- Windows 8やWindows 10でウェブサイトのライブタイル提供に使われていたサブドメインが放棄された状態に - ZDNet Japan
- ファイルレス攻撃を阻止するエクスプロイト防止機能の概要
- the-backdoor-factory – シェルコード付きPE、ELF、Mach-Oバイナリパッチ(未サポート) – GitHubじゃ!Pythonじゃ!
Vulnerability & Exploit Database
- Vulnerability & Exploit Database | Rapid7
- Microsoft Windows - Assembly Execution (MS12-005)
- Exploiting a 64-bit buffer overflow – bytes > bombs
- Windows x64 Shellcode | McDermott Cybersecurity
- TeamViewer 11 < 13 (Windows 10 x86) - Inline Hooking / Direct Memory Modification Permission Change
- Exploit Development-Everything You Need to Know « Null Byte :: WonderHowTo
- Pentest Tips and Tricks – EK
- gynvael/asmloader: Simplified Assembly Loader - a small tool to run (headerless) machine code.
- Windows x64 and x86 kernel shellcode for eternalblue exploit
- m4ll0k/Awesome-Hacking-Tools: Awesome Hacking Tools
- 0xAX/asm: Learning assembly for linux-x64
- GDSSecurity/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins.
- Infosec_Reference/Exploit Development.md at master · rmusser01/Infosec_Reference
TechNet
- 「Emotet」の大規模感染を阻止した人工知能のしくみ – 日本のセキュリティチーム
- 挙動監視と機械学習で大規模な「Dofoil」によるコイン マイニング攻撃を阻止 – 日本のセキュリティチーム
- Windows Administration: Inside the Windows Vista Kernel: Part 3
Windows Blog
- Windows 10 のエンドツーエンドのセキュリティ機能を紹介 - Windows Blog for JapanWindows Blog for Japan
- 次世代型のマルウェア対策機能を提供する Windows Defender ウイルス対策の本当の実力とは? - Windows Blog for JapanWindows Blog for Japan
- Windows Defender ウイルス対策が企業で最も採用されている理由 - Windows Blog for JapanWindows Blog for Japan
- マイクロソフトのセキュリティ エクスペリエンスを共有 - Windows Blog for JapanWindows Blog for Japan
@IT
- Windows 10はEMETに頼らずとも安全?:山市良のうぃんどうず日記(58) - @IT
- Windows 10に組み込まれた多層かつ高度なマルウェア対策機能:企業ユーザーに贈るWindows 10への乗り換え案内(10) - @IT
- ユーザーアカウント制御(UAC)の奇妙な体験――デスクトップは暗転しない?:その知識、ホントに正しい? Windowsにまつわる都市伝説(101) - @IT
- Windows 10の新しい「電卓」と「ビルトインAdministrator」に見る“セキュリティの落とし穴”:山市良のうぃんどうず日記(72) - @IT
- 本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(99) - @IT
- システム監査対決! Windowsコマンドライン監査 vs. Sysmon:山市良のうぃんどうず日記(27) - @IT
- EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能 (2/3):企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
- パスワード時代の終わりはくるのか? Microsoftが新しいセキュリティやAIのサービスを発表:「Microsoft Ignite 2018」で発表された新サービスとは - @IT
サンドボックス
- Windows XP/7/8/10のプロセス間親子関係とサンドボックス
- AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ
- 整合性レベルに基づく保護モード - NyaRuRuが地球にいたころ
- Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeはプロセスのサンドボックス機能も強化されている。なお、拡張機能やFlashはそれぞれ独立したプロセスを割り当てられてサンドボックス化されている。 / “Stre…” https://t.co/KGw32AYYMd"
- Windows 10 Creators Updateで強化されるEdgeのサンドボックス機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Strengthening the Microsoft Edge Sandbox - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
- 次期Windows 10ではアンチウイルスソフトは保護されたプロセスでの実行が必須に - PC Watch
- 山市良のえぬなんとかわーるど: 保護されたプロセス(Protected Process)か否かの確認方法
- Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
- Windows 10プレビューに“サンドボックス”機能。隔離環境でEXEファイルを実行可能に - PC Watch
- AppContainerでデスクトップアプリを起動してみた « 他人の空似
- AppContainer関連API情報まとめ « 他人の空似
- AppContainer関連サンプル紹介 « 他人の空似
- PrivateNamespaceを使ったAppContainerとのプロセス間通信 « 他人の空似
権限
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのsymlinkは、パス読み取りに特権が必要だったり、symlink自体のアクセス権も必要、という謎仕様。 前者は開発者モードで解除できるようになったものの、何を懸念してその仕様にしたのか理解不能…junctionと違い、symlinkはユーザの手打ちと等価(=クライアント側再解釈)のはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Edgeでリンク実行を選ぶと AppData\Local\Packages\Microsoft.MicrosoftEdge_xxx¥TempState\Downloads で実行されるが、このフォルダは、管理者昇格のためのShellExecute(verb=runas)がコケる縛りがある様子。 (ファイル移動すればコケないので、副次Streamによる信頼リージョンの話ではなさそう)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コケるフォルダは、Edge配下のTempState, LocalCache, LocalState の3つ。 このフォルダに置くと(Edge非経由)一般権限でもコケるので、VirtualStoreのような何らかの特殊フォルダ登録でもあるのかしらん? ただ、右クリックで初手からの管理権限起動は可能という謎。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これらのフォルダには Low Mandatory Level という整合性レベルがSASLに設定されていた。この場合、ShellExecute(verb=runas) がコケる動作をする様子。 (低整合性レベル=IE等のsandbox動作でアクセス可能なので、この挙動自体は理解できる。一般権限実行でも拒否は厳しめだけど)… https://t.co/LW0BSRLz4u"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "低整合性レベルなディレクトリ(EdgeのDownloadフォルダ等)から起動したプロセスは、一般フォルダへの書き込み権限がなくなる+昇格リクエスト(verb=runas)もリジェクトされる。 低整合性レベルから起動された場合、「別フォルダに移動して起動する」ようにユーザに促すしか手がない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「Integrity Level」の訳が「整合性レベル」。 低整合性=矛盾がある、みたいな語感があると思うのだが。 なお、integrity の一般的な訳は「高潔、誠実、清廉、完全な状態、無傷」らしい。"
マルウェア対策ソフトウェア
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスソフトのヒューリスティックでの誤検出されやすさ経験。 シマンテック >> カスペルスキー > ESET > Windows Defender (シマンテックは何度ホワイトリスト登録しても、次のバージョンで誤検出されるという…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その後、シマンテックはホワイトリスト申請制度自体を止めてしまったが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーとESETさんは、ホワイトリスト申請用FTPサイトがあって、そこに載せれば自動的に検査される仕組み。 (前者の場合、最初に物理的な契約書を取り交わした後、FTPサイトのアカウントが通知される流れ) ちなみにどちらのFTP転送も、モデム接続なみに遅い(笑)"
MIC
- 必須整合性コントロール - Wikipedia
- Mandatory Integrity Control - Wikipedia
- Mandatory Integrity Control (Windows)
- What is the Windows Integrity Mechanism?
- MIC
- Mandatory Integrity Control in Windows 10/8/7
- Windows Server:システム管理者の視点 - 正式に認められた「Whoami」コマンド:ITpro
- Windowsコラム - 【TechEd】悪意のある攻撃に強くなるWindows Vista:ITpro
- 【レビュー】ファイルやフォルダーの“整合性レベル”をチェックできるGUIツール「MicEnum」 - 窓の杜
- 管理者でも削除できないフォルダ・ファイルを作る - イグトランスの頭の中
- Windows版FireFox、MICを利用したセキュリティ対策 - Qiita
- Windows用インストーラのセキュリティ問題 - Qiita
- 情報セキュリティ技術動向調査(2009 年下期):IPA 独立行政法人 情報処理推進機構
- アプリケーションを管理者に昇格させながらのAllowDrop: DOBON.NETプログラミング掲示板過去ログ
- Vistaのセキュリティ対策が抜け穴に――Symantec、2つ目の報告書 - ITmedia NEWS
- 管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)(3/3) - @IT
- 漢(オトコ)のコンピュータ道: 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?
Arbitrary Code Guard
- Microsoft Edge での任意のネイティブコード実行の影響の緩和 | Microsoft Edge Japan
- Microsoft Edge概要 物江氏
- 変わるWindows、変わる情シス:第4回 「Windows 10」は情報漏えいをどう防ぐ? (2/2) - ITmedia エンタープライズ
- Microsoft Edgeのセキュリティ機能「ACG」の未修正脆弱性、Googleが公表、 - INTERNET Watch
- 高梨陣平さんのツイート: "GoogleのProject Zeroが再びMicrosoftのEdgeブラウザの脆弱性を修正前に公開。JITの使用するメモリ空間の位置が事前に予測可能なためリモートからの任意コード実行が可能に。GoogleはIntelのSpectreとMeltdownに関しては90日ルールを自ら破っている。… https://t.co/ZGAyZswisg"
- 1435 - Microsoft Edge: ACG bypass using UnmapViewOfFile - project-zero - Monorail
- 2018-02-18 セキュリティニュースまとめ: Microsoft Edge にメモリ保護機能 ACG (Arbitrary Code Guard) をバイパス可能な脆弱性 - 拡張頭蓋 | Extended Cranium
HeapEnableTerminationOnCorruption
- Rockridgeさんのツイート: "Fx55:Windows版で、chromeプロセスにおいてHeapEnableTerminationOnCorruptionを有効化し、エクスプロイト攻撃に対するセキュリティを強化した。 / “805173 - Consider…” https://t.co/5EIJuBWrzl"
- 805173 - Consider enabling Windows' HeapEnableTerminationOnCorruption for browser and plugin-container
- HeapSetInformation function (Windows)
- Direct2D SDK コーディング規則 (Windows)
- HEAP_INFORMATION_CLASS enumeration (Windows)
- Brief Q&A on the HeapEnableTerminationOnCorruption heap information flag – The Old New Thing
- Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
- Windows-classic-samples/CustomLayout.cpp at master · Microsoft/Windows-classic-samples
- Windows-classic-samples/UiaCleanShutdownHost.cpp at master · Microsoft/Windows-classic-samples
Windows Sandbox
- 品川 高廣さんのツイート: "こういうのずっと欲しかった。Windows 全体を fork して sandbox しているようなイメージかな。https://t.co/881nADf623"
- Windows Sandbox - Microsoft Tech Community - 301849
- マイクロソフト、Windows Sandbox発表。デスクトップアプリを分離した環境で安全に実行可能に - Publickey
- “使い捨て”のアプリ実験環境「Windows Sandbox」を追加 ~「Windows 10 19H1」Build 18305 - 窓の杜
Windows Information Protection
- Microsoft Intune での Windows Information Protection 設定 - | Microsoft Docs
- Windows Information Protectionを簡単に使い始める方法 | Always on the clock
- 2つの情報保護技術、クラウドのAIPとWindows 10のWIP(その3):企業ユーザーに贈るWindows 10への乗り換え案内(13) - @IT
- 情報を保護するWindows 10の「BitLocker」と「WIP」 (1/2):Windows 10が備えるセキュリティ機能(4) - @IT
- 第11回 新機能「Windows Information Protection」の登場で、BYODを安心して活用できるように - 中堅・中小企業のためのWindows 10講座:日経 xTECH Active
- Dropbox Business と Windows Information Protection – Dropbox
- Windows Information Protection - YouTube
- Windows Information Protectionのデバイスポリシー
- 【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [6] OSレベルで個人/企業データを切り分け「Windows Information Protection」|セキュリティ|IT製品の事例・解説記事
- Windows Information Protection(WIP) | MobiConnect(モビコネクト)
Windows Defender Advanced Threat Protection
- Windows Defender Advanced Threat Protection の機械学習: 未知の侵入アクティビティの検出 – 日本のセキュリティチーム
- Creators Updateを控え、大幅強化されるWindows Defender ATP - PC Watch
- Windows Defender ATP の新機能でエンドポイントのセキュリティの有効性と堅牢性をさらに強化 - Windows Blog for JapanWindows Blog for Japan
- Windows Defender ATP Advanced Hunting の概要 - Windows Blog for JapanWindows Blog for Japan
Windows Defender Application Guard
- Windows Defender Application Guard で Microsoft Edge を最もセキュアなブラウザーに – 日本のセキュリティチーム
- Microsoft Edge のための Windows Defender Application Guard の紹介 | Microsoft Edge Japan
- Microsoft Edge向けのセキュリティ保護機能「Windows Defender Application Guard」 -INTERNET Watch
- 【マイクロソフト研究所】Windows 10 Creators Updateの企業向け機能 - クラウド Watch
- Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2):企業ユーザーに贈るWindows 10への乗り換え案内(15) - @IT
- 山市良のえぬなんとかわーるど: Windows Defender Application Guard を VM と日本語環境で使う
- 次期Windows 10“RS4”が更新、“Windows Defender Application Guard”を強化 - 窓の杜
- Windows 10のキオスクモードとWDAGの導入がより簡単に、より柔軟に:企業ユーザーに贈るWindows 10への乗り換え案内(39) - @IT
Windows Defender Exploit Guard
- Windows Defender Exploit Guard: 攻撃表面を縮小して次世代型マルウェアに対抗する – 日本のセキュリティチーム
- EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能:企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
Windows Defender Application Control
- Windows Defender Application Control の紹介 – 日本のセキュリティチーム
- 山市良のえぬなんとかわーるど: Device Guard = Windows Defender アプリケーション制御?
- 脅威からPCを守るWindows 10の「Device Guard」と「Edge」:Windows 10が備えるセキュリティ機能(2) - @IT
- 「Device Guard」はWindows 10 Enterpriseの“限定”機能か、否か?:その知識、ホントに正しい? Windowsにまつわる都市伝説(91) - @IT
- 【特別企画】Windows 10 November Update 2015のエンタープライズ向け機能 - クラウド Watch
- デバイス ガードの概要 (Windows)
- デバイス ガード: 進化してきた脅威に対抗、Windows 10 のセキュリティ機能 – 日本のセキュリティチーム
- Device Guardで保護されているデバイスでのアプリの実行 (Windows)
- Device Guard の署名を使ったコード整合性ポリシーへの署名 (Windows 10) | Microsoft Docs
- Windows Defender Application Control (WDAC) (Windows 10) | Microsoft Docs
EMET
- エメット(EMET)、していますか?:山市良のうぃんどうず日記(3) - @IT
- お手柄、エメット(EMET)さん!:山市良のうぃんどうず日記(5) - @IT
- 新しいエメット(EMET)さんにご用心!:山市良のうぃんどうず日記(14) - @IT
- エメット(EMET)さん、破れたり:山市良のうぃんどうず日記(17) - @IT
- さらに新しいエメット(EMET)さんにもご用心!:山市良のうぃんどうず日記(20) - @IT
- もっと新しいエメット(EMET 5.2)さん、リ・リリース:山市良のうぃんどうず日記(29) - @IT
- 現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第:山市良のうぃんどうず日記(50) - @IT
- EMET サポート終了 – Windows Defender Exploitation Guard へ移行を – 日本のセキュリティチーム
- お疲れさま、そしてサヨウナラ、エメット(EMET)さん:山市良のうぃんどうず日記(133) - @IT
- 山市良のえぬなんとかわーるど: あすたらびすたエメットさん
FFRI
- www.ffri.jp/assets/files/monthly_research/MR201207_browser_treat.pdf
- www.ffri.jp/assets/files/monthly_research/MR201208_Windows8Security_Overview.pdf
- Black Hat 技術報告 前編│セキュリティ・リサーチのFFRI(エフエフアールアイ)
- www.ffri.jp/assets/files/monthly_research/MR201209_Windows8_Exploit_Mitigation.pdf
- www.ffri.jp/assets/files/monthly_research/MR201210_Window 8_AppContainer_Sandbox.pdf
- www.ffri.jp/assets/files/monthly_research/MR201308_Understanding bypassing ASLR by a pointer at a fixed address_JPN.pdf
- www.ffri.jp/assets/files/monthly_research/MR201312_History and Current State of Heap Exploit_JPN.pdf
- http://www.ffri.jp/assets/files/monthly_research/MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
- スライド 1
- Monthly Research 「Microsoft Threat Modeling Toolの利用例」│セキュリティ・リサーチのFFRI(エフエフアールアイ)
- www.ffri.jp/assets/files/research/research_papers/SystemCall.pdf
- windows10_security_ja.pdf
- windows10_セキュリティ評価支援報告Phase2
Log.i53
- デバッガ検出技術:Debugger Process - Log.i53
- Anti-Debug カテゴリーの記事一覧 - Log.i53
- Unpack カテゴリーの記事一覧 - Log.i53
- Art-of-Unpacking カテゴリーの記事一覧 - Log.i53
Project Zero
- Project Zero: Dude, where’s my heap?
- Project Zero: Internet Explorer EPM Sandbox Escape CVE-2014-6350
- Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
- Project Zero: Escaping the Chrome Sandbox with RIDL
- Project Zero: Windows Sandbox Attack Surface Analysis
- Project Zero: A Shadow of our Former Self
- Project Zero: Did the “Man With No Name” Feel Insecure?
- Project Zero: In-Console-Able
- Project Zero: Injecting Code into Windows Protected Processes using COM - Part 1
- Project Zero: Injecting Code into Windows Protected Processes using COM - Part 2
- Project Zero: Windows Exploitation Tricks: Spoofing Named Pipe Client PID
- Project Zero: Down the Rabbit-Hole...
- Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager
DKOM
- Direct kernel object manipulation - Wikipedia
- tfairane/DKOM: Direct Kernel Object Manipulation _EPROCESS
- DKOM - おなかすいたWiki!
- bh-us-04-butler-jamie 1.ppt
- Final_WP_BalanceRiskManagement.pdf
- 悪魔のツール“ルートキット”最前線 - 第5回 ルートキット実装の2大手口(その2):ITpro
Wikipedia
- ユーザーインターフェイス特権の分離 - Wikipedia
- ユーザーアカウント制御 - Wikipedia
- データ実行防止 - Wikipedia
- Kernel Patch Protection - Wikipedia
@shirouzu
偽装
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsだと偽装(impersonate)APIがあり、特権プロセスは(例えばnamed pipe経由で)一般プロセスと通信で、その接続元(権限)に成りすます仕組みがあって、 (例えばユーザモード・プリンタサービス(特権)がPDF生成の際、ユーザ側権限の範囲でファイル作成など) https://t.co/lrlbxFpmB9 https://t.co/UEuGMJTkN2」 / Twitter
- Impersonating a Named Pipe Client - Win32 apps | Microsoft Docs
- Ryosuke Matsumoto / まつもとりーさんはTwitterを使っています 「新しい研究ネタについて書いた / クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来 https://t.co/sragt1m9vZ」 / Twitter
- クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(続)偽装の分散システム版イメージっぽい印象。ただ偽装はNT3.1時代からあるが、サービス系の一部で使われているだけの地味な存在…TCP/IP&分散システム拡張だと違ってくるのかよくわからない。 (コンテナ云々はまあそうなんだろうけど、プロセスから見たシームレス度みたいな部分も大事そう)」 / Twitter
- 🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu webサーバーでも管理プロセスだけ特権ポート開いて起動したら、権限降格して稼働するみたいなの有りましたね… suexecでしたか。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのグローバルフック、64bit環境+64bitDLLで実行すると、32bitプロセスでは、SetWindowsHookExを発行したプロセス内のコールバックで実行される。 なので、32bitプロセス内へのDLL注入を前提にしたコードの場合は、別途、32bit版DLL+32bitフック実行が必要となる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、SetWindowsHookExとかCreateRemoteThread等、能動的な他プロセス侵入の枠組みを公式に用意とは豪快だなぁ、といつも思う。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、署名を入れてもProgram Files下に入れても、EdgeにSetWindowsHookExが効かないな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Injection自体は出来るようになっていた。(要署名、manifest、ProgramFiles) UWPとWin32Appとの通信をどうするかという話に。 https://t.co/prPu53VXxK"
- App-to-app communication - Windows UWP applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "整合性レベルは6種類。 (なお、AppContainerは独立した整合性レベルではなく、Lowに含まれる、という話) Windows Internals 7th から。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そもそも、AppContainerの開発コード名は「LowBox」だったという話。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "PSECURITY_DESCRIPTORは、SECURITY_DESCRIPTOR * と思いきや void * なので、それをメンバに持つ SECURITY_ATTRIBUTES.lpSecurityDescriptor への代入には型チェックが働かない。(そのため1時間無駄にしてしまった)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPとデスクトッププロセス間でmutexやmmapを共有できることを確認できた。 ただしかなり面倒。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPはアプリ毎にSIDを持つが、それはUWPパッケージ名をSHA-2ハッシュにしたものがベースらしい。へぇ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPをWin32でフックして確認。 ・カーネルオブジェクト(mutex等)の名前空間は、UWPアプリ毎のサブ名前空間に変換。 (chroot的イメージ) ・Win32からはUWP名前空間はサブ空間に過ぎないが、普通アクセス権が無い。 しかし、プライベート名前空間を作ると(+要権限設定)、両者から参照できる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) ・UWPはIE保護モードと同じ低整合性で動作。 (多くのアクセス権限が無い) ・UWPマニフェストに応じて、一部API/アクセス権の有効/無効を切り替え。 (当然だが、フック側から生API発行しても無効) まさに AppContainer で動作、という印象。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) Windows Internals 7版での、UWP と Win32アプリの比較表はこんな感じ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWP、たしかに(基本的にはライトなコンテナで)安全度が高いのはわかった。 マニフェストで許可された範囲以外では抜け穴は少なそう。 (ただ、例えばエディタだとマニフェストでの許可範囲自体が広い類は大丈夫かな。あとアプリ間は(名前分離はあるが)若干壁が弱い感じも)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用に、IME ON状態をカーソルの緑色の丸で表示する「IME Cursor」という Win10用ソフトを作ったので、ご興味のある方はどうぞ。 (Program Files配下に置けば、アプリや管理者動作のソフトでも動きます) https://t.co/pHtbIkeDZ1"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、Program Files に置いた署名付きソフトは、UAC下で起動しても(昇格不要で)特権プロセスにフック可能、というのは中々豪快な仕様。 (同様に、UWPアプリにもフック可能になるが、こちらはまだわかる)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用ソフトながら、「もし使いたい人が居ればどうぞ」という位置づけです。 (今のところ、これ以上、大きな改良はしないと思います)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "下記の2つを満たせば、ストアアプリにもhookできます。 ・マニフェストで uiAccess=true ・Program Files配下にコード署名付きのバイナリを置く ただ、ストアアプリはsandbox動作なので、アプリ外にデータを吐き出す方が苦労します(笑)… https://t.co/xxZNrCGopA"
- uNagiさんのツイート: "そういえば、キーリマッパーの「のどか」が、ストアアプリの IME 状態が取れずに難儀していて、今もできなかったと思うんだけど、解決方法はあるんだなあ。… "
- 窓の杜さんのツイート: "IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開/「FastCopy」「IP Messenger」の作者が開発 https://t.co/d2L6tMazcc… "
- IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開 - 窓の杜
@t_toyota
- Takashi ToyotaさんはTwitterを使っています 「米Microsoft社はAI(とアルゴリズム)を前面に出している。アプリの「振る舞い」をモニターするにはデータが必要だ。どのデータだ?あるカーネル内部のデータを利用すると、「異様な動き」を効率良く検出できる。これは事実だ。驚いた! https://t.co/7JtMmmc5Ck」 / Twitter
- Windowsセキュリティーメカニズム
- Windows XP/7/8/10のセッションとプロセス
- Windowsシステム分析(3/4)
- Takashi ToyotaさんはTwitterを使っています 「何をどのようにモニターしているのか?モニター済みデータにはある固定値が加算されることがある。その固定値を減算すれば、元のデータに辿り着ける。」 / Twitter
- Windows 10 のセキュリティ機能を使用して脅威を軽減する (Windows 10) | Microsoft Docs
- SetProcessMitigationPolicy function (Windows)
- AppLocker (Windows 10) | Microsoft Docs
- セキュリティエンジニア向けツール(Windows編) - Qiita
カーネル
- カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
- カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
- カーネル空間からのセキュリティ - SSSSLIDE
- カーネルエクスプロイトによるシステム権限奪取 // Speaker Deck
- カーネル空間からのセキュリティ - Speaker Deck
- 品川 高廣さんはTwitterを使っています: 「Linux カーネルは過去7年で基本性能がどんどん遅くなっているらしい。select() は2年前と比べて最大100%の性能低下。要因はセキュリティ強化、新機能、設定ミス。今年の SOSP で一番 OS っぽい話。https://t.co/zZjuALAkS6」 / Twitter
- An analysis of performance evolution of Linux's core operations
- 品川 高廣さんはTwitterを使っています: 「セキュリティ対策による性能低下は、Meltdown 対策の KPTI で recv() が最大63%、Spectre v2 対策の Retpoline でpoll() が最大89%、SLAB freelist dandomization で epoll() が最大41%、usercopy の強化で select() が最大18%。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「新機能による性能低下は、fault around(page fault 発生時に周辺ページもついでにマップする)で page fault が最大54%、cgroup で munmap が最大81%、transparent huge table デフォルト無効化で read() が最大83%、userspace page fault handling でfork()が4%。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「設定ミスによる性能低下は、forced context tracking(reduced scheduling-clock ticks 開発のためのデバック機能)無効化し忘れで最大100%、TLB layout change で munmap() が最大50%。CPU idle power-state support はHaswell上の select() で31%の性能向上があるが、LTS に backport されていない。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「上記の11個の要因中8つはカーネルの reconfiguration で、残り3つは簡単なパッチで回避可能。その結果、Redis, Apache, Nginx benchmark の性能がそれぞれ 56%, 33%, 34% まで改善した。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「パッチ1: Spectre 対策の retpoline は indirect jump を予測不能にするので、indirect jump をよく使う select や poll が著しく性能低下する。対策は、セキュリティに問題のない if文+ direct jump への置き換え。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「パッチ2: KPTI は TLB flush のコストが重い。PCID を使って最適化可能だが、それでも切り替えに 400-500 サイクルはかかる。PCID は CR3 に格納されており、CR3 の書き込み自体 200 サイクルかかる。」 / Twitter
- Linux Kernel CVE-2019-9857 の PoC を書いて検証・観察した - hibomaの日記
- Linux Kernel CVE-2018-5390 SegmentSmack の PoC を書いて分析・検証した - hibomaの日記
- Linux Kernel CVE-2017-18017 の Poc を書いて検証した - hibomaの日記
- Linux Kernel CVE-2018-12232 の Poc を書いて検証・観察した - hibomaの日記
- Linux Kernel CVE-2018-6554 の PoC を書いて検証・観察した - hibomaの日記
- Linux Rootkit Internalsという題でLTをしてきた - 脱力系日記
- 2019年11月26日 Linux 5.4がリリース,カーネルロックダウン,exFATサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 「Linuxカーネル5.4」公開、exFATサポートやハードウェアサポートの改善などが特徴 | OSDN Magazine
- Linuxカーネルのロックダウン機構を試してみる - Qiita
- DECAF meets The Sleuth Kit(TSK) - Speaker Deck
サイドチャネル攻撃
- サイドチャネル攻撃 - Wikipedia
- サイドチャネル攻撃(side-channel attack) | IoT
- 1011…L†[…‘†[…h
- サイドチャネル攻撃に対する安全性評価の研究動向とEMVカード固有の留意点
- サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ - 日本シノプシスホームページ - Synopsys
- 科学10月独立論文_崎山ほか.indd
- dwm009901050.pdf
- サイドチャネル攻撃とは - Weblio辞書
- PCの電位変化から暗号化データを復号する新手のハッキング手法が登場 - GIGAZINE
- サイドチャネル攻撃とは - IT用語辞典
- 平成28年秋期問10 タイミング攻撃の対策|情報処理安全確保支援士.com
- SCIS2013_1E2-5.pdf
- Work_5.pdf
- Microsoft Word - iokibe_ict-innovation-forum_2014.doc
- ir.c.chuo-u.ac.jp/repository/search/binary/p/5121/s/2510/
- スライド 1
- timing attack (タイミング攻撃、タイミングアタック) とは - 木木木
- icchyさんはTwitterを使っています: 「今日の #BitVisorSummit8 のスライドです 1: https://t.co/BIMzw9cMsc 2: https://t.co/El2O2qRqVQ」 / Twitter
- how to port * to BitVisor (2)
- icchyさんはTwitterを使っています: 「今回のポスター(?)です VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策 https://t.co/1GwSOI4lIv @SlideShareさんから」 / Twitter
- VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策
- icchy/tscjammer
- サイドチャネル攻撃に対して脆弱なGPU
脆弱性情報
CVE
- CVE - Common Vulnerabilities and Exposures (CVE)
- ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?
- CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch
- 2017年のサイバー攻撃に悪用された脆弱性トップ10/中CNNVDが脆弱性情報の公開日を改ざん?【海外セキュリティ】 - INTERNET Watch
- KasperskyがCVE採番機関として認定 ~脆弱性にIDを付与 - 窓の杜
- 【セキュリティ ニュース】「Bluetooth」に暗号化強度下げる「KNOB攻撃」が判明(1ページ目 / 全2ページ):Security NEXT
- Linuxの「sudo」コマンドに脆弱性 - PC Watch
- Big Sky :: sudo の特権昇格バグはなぜ起こったのか
- GitHubが脆弱性ワークフローを改善してCVE採番機関に
JVN
- Japan Vulnerability Notes
- JVN iPedia - 脆弱性対策情報データベース
- MyJVN API
- MyJVN APIを利用した脆弱性情報収集 | Developers.IO
- 10個のツールで学ぶ、備える!情報セキュリティの脅威と対策:「JVN iPedia」で公開の脆弱性対策情報を取得するWeb APIを活用せよ - ITmedia エンタープライズ
- 連絡不能開発者一覧
IPA
- NOKUBI Takatsugu野首貴嗣さんのツイート: "IPAの脆弱性ハンドリング、始まった初期は割と普通に2週間程度で自分は処理されていたので、だんだんおかしくなっていったんだと思う。まあ日本ではよく見る光景"
- ストラトさんのツイート: "「脆弱性を見つけたらまずIPAに通報すべき」とかいう脳内お花畑が一定数いる。彼らはIPAの通報手順がひどく煩雑で時代遅れで役人根性丸出しなクソっぷりであることを知っているのだろうか? もう通報前にグッタリするよこれ。 https://t.co/sXtzDH4tFp https://t.co/mOW0NHyD5K"
- AoiMoeさんのツイート: "そういえば、大昔IPAからお金もらってCodeBlogってのをやってて、そこでXサーバのコードを読んでたのだが、脆弱性見つけたのでIPAに報告したら、それがacceptされたの1年後でしたね"
Qiita
- セキュリティ脆弱性情報を最速でチーム共有する方法 - Qiita
- 脆弱性情報の収集→slack通知→backlog登録を自動化してみた - Qiita
- あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita
Twitter
- なかのん&マジックさんのツイート: "Mozillaでは、悪用が容易かもしれない場合はQAとかに必要な期間を考慮して(多分)、ギリギリまでツリーへの投入を待たされる。 / Microsoft、Google Chromeのパッチ提供方針を批判 | スラド セキュリティ https://t.co/qPvvKCevbu"
- なかのん&マジックさんのツイート: "前提条件が複雑な場合(特定の事をやってるアドオンがインストールされてるとか)や、ユーザに特定の操作を強いる場合は即時投入されるけど。"
- ひらナツさん@散文家さんのツイート: "Reactive とProactiveがある。CVEとかを調べたり、ログをとったりAuditしたりするのがReactive。Proactiveな方は強制アクセス制御などをつかって閉じ込める。SELinuxを使うのがいい(Montavista方式か?)#linuxcon"
- Fadisさんのツイート: "CVSS v3からAttack Vectorに「攻撃者が物理的にアクセスできる必要がある」タイプの脆弱性が表現できるようになってる。これで「攻撃者が物理的にシステムにアクセスできる場合にハンマーで可用性を損ねる事ができる脆弱性」とかも正しく分類する事ができるな"
- suzakiさんのツイート: "この一覧は有用!脆弱性が発見された順に並び、それらが実際に使われたか分かって有益な情報になっています。 Vulnerabilities and Attacks https://t.co/6Anrbzkitc Heartbleed、Shellshockが実際に使われていて、Rowhammer、VENOM、Meltdown、Spectre、Bleichenbacher's CATは使われていない。… https://t.co/HW4D6WtpVn"
- hannob/vulns: Named vulnerabilities and their practical impact
- オープンソースコンポーネントの積極的管理による大幅な改善の実現をSonatypeが報告
- 第44回 2018年3月~修正できない脆弱性対応,繰り返される歴史,そして「あたりまえ」を実践すること:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- ほぼ全ての最新ノートPCに脆弱性、コールドブート攻撃で情報盗まれるおそれ - CNET Japan
- エフセキュア、スリープ状態のPCの脆弱性に警鐘。盗まれたノートから情報を抜き出される可能性 - PC Watch
- Broadcom Wi-Fiの脆弱性「Broadpwn」詳細。ワームの悪夢再び ~Wi-Fiをオンにしているだけで突かれる可能性、Galaxy/Nexus/iPhoneなどが標的に - PC Watch
- 今度はMarvellのWi-Fiに脆弱性、オンにしているだけで攻撃可能 - PC Watch
- ディレクトリトラバーサル - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「セキュリティ目的のchrootは意味がない」 古い記事だけど知らなかった。 chrootした後、namei が mount point 跨りの ".." を特別扱いするのに似た処理はしてくれないね。 https://t.co/KXuoq7WImB"
- 仙石浩明の日記: chroot されたディレクトリから脱出してみる
- Trusted Execution Environmentの実装とそれを支える技術
オーバーコミット
- プラットフォーム特有の覚書
- Redisで発生したメモリ不足エラーの調査メモ | ソシャゲの作り方
- Linux プログラムのメモリ消費量を測る - Qiita
- Memory Overcommit | Siguniang's Blog
- IBM Knowledge Center - Solaris でのプロセス・フォークの失敗のために DataStage パラレル・ジョブを開始できない
- E.2.7 オーバーコミット
- mallocの落とし穴 - 組み込みLinuxでのmemory overcommit - 職業としてのプログラミング
- Linuxにおけるメモリ管理機構の利用に関する覚え書き · うさぎ小屋
- Bug #8711: 最近NoMemoryErrorが多い - Ruby trunk - Ruby Issue Tracking System
実行ファイル先頭で自分自身をスワップ禁止
- とみながたけひろさんはTwitterを使っています 「そういえば少し前にハマった案件 ホストでmakeしてターゲットで起動 ターゲットで自動テストを実行 テスト中にmake cleanして再度make するとテスト終了せずセグフォするっていう(最後のステップがなければ問題は起きない)」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ホストとターゲットはNFSでファイル共有してて、ビルド・実行するのはそのNFS上のバイナリ デバッガで追っても特に普段から通るパスだし命令とレジスタ値とかからも正常に動きそうで、なんでセグフォするのかわからない」 / Twitter
- とみながたけひろさんはTwitterを使っています 「あとテストケースではない普通の動作させてるときでも、該当部分は同じように通ってて、同じ命令を同じレジスタ値で実行してる。そして全く問題無い」 / Twitter
- とみながたけひろさんはTwitterを使っています 「わからん…となりながらデバッグコード足したりしながらデバッガ上でうごかしてると、なんとロードストア命令とかでなくてもセグフォするってのにきづいた」 / Twitter
- とみながたけひろさんはTwitterを使っています 「で、結論。テストケース動かすと限界までメモリ使うので実行ファイルの一部がスワップアウトされ、OSは該当部分を実行されたときにスワップインしようとする しかしホストでリビルドしてるため該当ファイルは消えておりスワップインは失敗 命令をアクセスできなくてセグフォ てことだった」 / Twitter
- とみながたけひろさんはTwitterを使っています 「まあある意味実行ファイルを動いてる間に書き換えたらあかん、というオチでした NFSのロックとかってどうなってたっけとか調べようと思ったけど、そうしたところで実行中にリビルドできんとかになるとダルいしな、となり、手抜きして実行ファイル先頭で自分自身をスワップ禁止にするので対処した」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ところでARM linux上のgdb他で、デバッグ対象が起こしたセグフォがprefetch faultなのがdata abortなのか、みたいな詳細を取得するにはどうしたらいいのかわからんかった。ょゎぃ…だれかおしえて…」 / Twitter
Linux
その他
基本
- What is RSS and VSZ in Linux memory management - Stack Overflow
- Linuxメモリ管理におけるRSSおよびVSZとは
- VM のネットワーク スループットの最適化 | Microsoft Learn
- linux - ログ - anon-rssとtotal-vmはどういう意味ですか?
- プロセスのVSZ,RSSとfree,meminfoを実機で確認 - のぴぴのメモ
- VSS, RSS, PSS, USS についての説明 - Qiita
- Linux OOM Killerについて - Qiita
- / var / log / messagesを使用してメモリ不足をデバッグする
- 【 vmstat 】コマンド――仮想メモリやディスクI/Oの統計情報を表示する:Linux基本コマンドTips(126) - @IT
- Linuxメモリ管理 pssとrssの違いなど - tkhrsskの日記
lock 範囲
- FadisさんはTwitterを使っています: 「Linuxカーネルでプロセスのページフォールトを処理する時にプロセス全体で1つのロックを取るのが性能を損ねる原因になるから、同じプロセスのアドレス空間の中の限られた範囲についてロックを取るようにできんか、という試みがなされている話 https://t.co/JHtzAt51kn」 / Twitter
- FadisさんはTwitterを使っています: 「ユーザ空間プロセスがページフォールトを起こすとカーネルに処理が移ってページフォールトの解決が試みられる。プロセスのアドレス空間に置かれた仮想メモリはmm_struct構造体で管理されていて、ページフォールトの解決ではこの中身をいじることになる」 / Twitter
- FadisさんはTwitterを使っています: 「このmm_structの編集が複数のスレッドから同時に行われてmm_structを壊さないように、mm_structにはmmap_lockというセマフォが用意されていて、編集は排他的に行われるように実装されている。しかし、たくさんのスレッドを使うプロセスではこのロックの奪い合いが性能を損ねる原因になる」 / Twitter
- FadisさんはTwitterを使っています: 「複数のスレッドが同時にページフォールトしてもスケールする方法として、プロセスのアドレス空間を範囲で区切り、影響を受ける範囲だけをロックする事が考えられる。しかしそんなセマフォを用意するのも、影響を受ける範囲に対するセマフォを漏れなく取るのもメモリ管理に大掛かりな実装の追加を要する」 / Twitter
- FadisさんはTwitterを使っています: 「一方仮想メモリは様々な設定でプロセスのアドレス空間に置かれる為、mm_structはそれらを個別に記録したvm_area_structをリストで持っている。1個のvm_area_structの範囲はまちまちだが、一般的なアプリケーションで細粒度と呼ぶのに十分な数のvm_area_structが出来ることが知られている」 / Twitter
- FadisさんはTwitterを使っています: 「そこで、vm_area_struct毎に1つのセマフォを持てばページフォールトがスケールするというアイデアが出てきた。しかしページフォールトの解決はしばしば複数のvm_area_structを操作する必要があり、vm_area_struct毎にセマフォを持つと慎重に実装しないと容易にデッドロックを起こす仕様になる」 / Twitter
- FadisさんはTwitterを使っています: 「これを回避する為に出てきた新しいアイデアでは、mm_structと各vm_area_structにシーケンス番号を持たせる。セマフォは今まで通りmm_structに1つだけ置かれる。ページフォールト時はまずロックを取ってmm_structのシーケンス番号と操作したいvm_area_structのシーケンス番号が一致しているか確かめる」 / Twitter
- FadisさんはTwitterを使っています: 「もし一致していなければ、他のスレッドはそのvm_area_structを触っていないと判断しmm_structのシーケンス番号をインクリメント、その値を操作するvm_area_structに書く。ロックはこの時点で解除しvm_area_structはその後で触る。vm_area_structの操作が終わったらそのシーケンス番号を初期値にする」 / Twitter
- FadisさんはTwitterを使っています: 「もしシーケンス番号が一致していたらそのvm_area_structは他のスレッドが操作中なので、一致しなくなるまでシーケンス番号を読み直す。」 / Twitter
- FadisさんはTwitterを使っています: 「昨日読んだこれ、実装の理解にだいぶ間違いがある事がわかった。ページフォールトの処理に入る時スレッドはmmap_lockのreadロックを取り、その時点のmm_structのシーケンス番号とvm_area_structのシーケンス番号を比較。一致したらwriteロックをとれるまで待機」 / Twitter
- FadisさんはTwitterを使っています: 「一致しなかった場合はその値をvm_area_structに書き処理を開始。 vm_area_structの操作が終わったスレッドはreadロックを外し、writeロックを取ってmm_structのシーケンス番号をインクリメント。同じシーケンス番号で進行中の他の変更がある場合writeロックはそれら全てが終わるまで待つことになる」 / Twitter
- FadisさんはTwitterを使っています: 「他のスレッドが触りたいvm_area_structを触っていた場合writeロックまで待機する為、ロックが取れるのは全てのreadロックが外れてシーケンス番号がインクリメントされる前か後になる。前でロックを取った場合はシーケンス番号のチェックで失敗するので再びwriteロック待ちになる」 / Twitter
- まさみさんboostedさんはTwitterを使っています: 「@fadis_ この待機時のビジーループはちゃんと作り込まないとキャッシュした値を読んでしまいそうですね。VMA側のカウンタがatomic_tなのかな。」 / Twitter
- FadisさんはTwitterを使っています: 「@mhiramat すみません。昨日のやつ別にシーケンス番号じゃなくてもフラグ1本でも良いよねって思って読み返したらこういう話でした。」 / Twitter
Maple Tree
- The Maple Tree, a new data structure for Linux - Linux.com
- The Maple Tree, A Modern Data Structure for a Complex Problem
- The Maple Tree, a new data structure for Linux
- MGLRU & Maple Tree Miss Out On Linux 6.0 But Will Aim For Linux 6.1 - Phoronix
- Maple Tree - Phoronix
- The Linux Maple Tree - Matthew Wilcox, Oracle - YouTube
- The Maple Tree, A Modern Data Structure for a Complex Problem - Linux.com
- FadisさんはTwitterを使っています 「Linuxの仮想メモリは赤黒木で管理されているが、赤黒木のバランスは複数の要素を一度に操作する為ロックが必須でカーネルのスケーラビリティを阻害する要因になっていた。そこでRCUで更新できるB-treeベースの新しい木構造MapleTreeで管理しよう、という提案がなされている https://t.co/wJzzTCNBud」 / Twitter
バッファキャッシュ
- Kazuho OkuさんはTwitterを使っています 「えっ違うんだ見ないと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当初のUNIX「バッファキャッシュのみ」→SVR4で「mmap/ページキャッシュ導入だが、メタデータのみ旧式バッファキャッシュのまま」みたいな、歴史的経緯の話かと思ったら、ちょっと違っていた。 https://t.co/8lNIxa9UQt」 / Twitter
- 私的メモ(2004年02月版)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味ある方は「UNIXカーネルの魔法」の下記が参考になります。また「最前線UNIXのカーネル」にも記述あり。 ただ、どちらも古い本なので絶版かも…? (画像の歪みが大きかったので、gimpで補正して再ポスト) https://t.co/kDdn5ltKsa」 / Twitter
page cache
破損の検出方法
- FadisさんはTwitterを使っています: 「Linuxでストレージへの書き込みが行われていない(dirtyな)ページキャッシュがハードウェアの異常で化けた場合にカーネルはどう振る舞うべきかが議論されている話。キャッシュが化けた事をfsに記録し、それを読む操作が失敗するようにすべき、という提案がなされている https://t.co/hLpl6hK7E5」 / Twitter
- FadisさんはTwitterを使っています: 「ECC付きメモリを積んでいるホストではメモリ上のデータが壊れた事を検知できるが、ECCで修正できないくらい派手に壊れていた場合「壊れていることは分かるが直すことはできない」ページの存在を知らされたOSはどうしよう、という問題が生じる。最も安直な対応はその場でkernel panicさせるというもの」 / Twitter
- FadisさんはTwitterを使っています: 「しかしメモリの容量が増えるとメモリの異常が起こる確率は上がる為、現代のサーバではその程度の理由でのpanicは許容できない。そこでLinuxではページキャッシュが壊れた場合、ストレージに正しいデータがある事を期待して単純にそのページキャッシュを破棄して処理を継続させる」 / Twitter
- FadisさんはTwitterを使っています: 「現状Linuxはページがdirtyだったとしても単純にページを破棄する為、dirtyなページが壊れた場合誰にも検知されずに静かにページが書き込み前の状態に戻る。問題は一部が壊れたファイルを読んだアプリケーションがおかしな動きをする事で明らかになる為、これによって起こる問題の調査は困難を極める」 / Twitter
- FadisさんはTwitterを使っています: 「ページをdirtyにしたシステムコールはページキャッシュに書いた時点で既に成功している為、ページキャッシュをストレージに書こうとした時にページが壊れていた場合エラーを返すには遅すぎる。従って次にファイルの同じ部分を読んだ場合にその読み出しが「ページが壊れているので失敗」して欲しい」 / Twitter
- FadisさんはTwitterを使っています: 「これはファイルシステムを巻き込む大掛かりな改良を伴う為、単純にカーネルが壊れたページキャッシュを覚えておくだけではダメか、破損箇所はページ単位ではなくファイル単位で覚えておくのではダメか、等の色々な妥協案が提案されている。しかしいずれも実用上の大きな欠点を伴う為結論は出ていない」 / Twitter
- FadisさんはTwitterを使っています: 「ハイパーバイザ型仮想化を用いる場合ECCからの通知を受け取るのはハイパーバイザなので、メモリの異常でdirtyなページキャッシュが破棄された場合にそれが書かれる筈だったファイルを丸ごと破損した事にすると、1ページの破損でVMイメージが丸ごと壊れた事になるの、パワみがある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ファイル読み込みとか、カーネルにpage cacheアクセスさせる時は、page cacheはダイレクトマップされてるからtlb missは、ほぼほぼ気にしなくていいんでしたっけ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho TLBエントリ数は、キャッシュ済みページ数に比べて、ずっと少ないのではと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu たとえばskylakeなら1GBのtlbが4エントリあるので…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu https://t.co/fV98qwKTzC 見るとdirect mapは1GB pageになる模様(可能な場合)」 / Twitter
- How do I Disable 1GB Pages on Linux*? | 01.org
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho ファイルキャッシュ用ページに 1GBページって、R/M/Wが1GB単位になるとか、先読み(1GB分満たされるまでI/Oできない)とか、色々と辛そうに思うのですが…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu んと、fsのブロックサイズはページサイズと違って何の問題もないですし(そもそもcpuによってページサイズは違う)、mmapする場合はuserspace側では4kb pageで見せればいいので」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu page cacheはカーネル内では高位アドレスでアクセスされ、mmapされた場合は低位アドレスで見えるようになるわけですが、前者が4kb tlbなのか1gb tlbなのか、という話です。後者は(基本的に)4kb」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho たとえば pwrite などで、カーネル内で R/M/W する場合、内部的に1GBページを4KBページに変換してからR/M/Wするイメージなんでしょうか…?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu pwriteの場合、(必要ならdisk i/oのブロックサイズ境界にあわせてreadし)、pwriteで指定されたデータをmemcpy、その後ブロック境界にあわせて遅延書き込み、ですよね? page cacheのtlbサイズは関係ない処理だと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho なるほど、確かに。 (ただ1GBページ粒度のキャッシュページという概念が頭にすんなり入らない…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho 初歩的な疑問ですが、page cache が1GBページだった場合に、巨大ファイルを1GB以上アクセスした場合のみ有効な page cache ができるというイメージでしょうか? (それともその 1GB page cache には inode所有者が居ない?)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu page cacheが1gb単位なんではないんです。 全物理メモリが仮想空間の特定箇所にdirect mapされていて、page cacheは、その一部を使っている。参照はdirect mapの範囲を使う。direct mapは、1gb pageとして表現されている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho ご説明ありがとうございます。 なるほど、そういう意味でしたか > page cache が1gb単位でない」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「結局、この部分が良く理解できなかったの巻。物理アドレスなり PFN なりを記述すべきフィールドに、DirectMapを使うかのように読めてしまって、頭が??となってる。 (どのフィールドにDirectMap値を使うのかしらん) > 参照はdirect mapの範囲を使う」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu "b_data is a pointer directly to the block, which is b_size bytes in length. Therefore, the block is located in memory starting at address b_data and ending at address (b_data + b_size)." てな感じなのかなと https://t.co/pNw8D8bmV1」 / Twitter
- Buffers and Buffer Heads
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu つまり、物理アドレスで持つかわりにdirect mapされた論理アドレスでもってて、dmaする時とかに物理アドレスに変換する、と。変換と言ってもオフセットを引くだけなので…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho なるほど、ようやく理解できた気がします。 ありがとうございます。 下記も参考にもう少し勉強してみます。 https://t.co/WE3GpuSfZt」 / Twitter
- Linuxカーネルのページキャッシュとbuffer_head、address_spaceとの関係について - Qiita
dentry cache
- FadisさんはTwitterを使っています: 「メモリが大量に載っている時代にnegative dentryの管理はどうあるべきかについて。Linuxでは過去に辿ったディレクトリの情報をdentry cacheに保存する。再度そのディレクトリを辿る際にcacheを読む事でファイルシステムを読み直すより高速に同じディレクトリにアクセスできる https://t.co/QVxmzu7P6s」 / Twitter
- FadisさんはTwitterを使っています: 「dentry cacheはそのパスが存在した場合だけでなく、存在しなかった場合も記録されている。ファイルが作成されるまで定期的に読みに来る、毎回存在をチェックする、といった処理は珍しくないため、そのパスが無かったという情報のキャッシュは性能向上に繋がる事が多い」 / Twitter
- FadisさんはTwitterを使っています: 「存在しないパスのdentry cacheはnegative dentryと呼ばれる。存在するパスの数がfs上のファイル数に制限されるのに対し、存在しないパスのdentryは果てしなく追加できる。メモリの空きが不足するとこうしたキャッシュは整理されるが、メモリが潤沢なホストではそれが起こらず膨大なdentryが記録される」 / Twitter
- FadisさんはTwitterを使っています: 「結果として潤沢なメモリを積んだホストでは本当に大量のメモリが必要になった時にそのメモリがdentryで埋まっていて片付けるのに時間がかかる、という問題が起こる。この問題を回避する為にnegative dentryに最大数を設けようという試みがなされている」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxが動くマシンには大きいやつも居れば小さいやつもいるので、どんな大きさのホストでも性能を損ねずに溜め込みすぎないnegative dentryの最大数を一意に定める事はできない。そこで存在するパスのdentryの数に比例してnegative dentryの最大数が決まるという方法が提案されている」 / Twitter
空の PTE の回収
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32の VirtualAlloc(MEM_RESERVE) のように、初手からアドレス空間だけ予約、というsyscallがあると良いのかな。 (上記だと PTD/PTE も使わないことを確認済み) https://t.co/ASOmfm6xES」 / Twitter
- SHIROUZU Personal Log(2015-06-10)
- FadisさんはTwitterを使っています: 「Linuxで空のページテーブルエントリ(PTE)のページを回収できないか、という試行錯誤がなされている話。Linuxはmmap時に作ったPTEをmunmap時に削除するが、madviseでページを剥がしただけの場合ページ自体のメモリは回収されるがPTEのページは中身が空のままメモリに残される https://t.co/QZ1eFIZ8LJ」 / Twitter
- FadisさんはTwitterを使っています: 「一部のmallocの実装は巨大な領域をmmapして実際にその領域を使うまでmadviseでページを剥がしておくという動きをする。この結果大量の空のPTEがメモリに残される。そこでPTEに配下のページ数の参照カウントを付け、ページを剥がした時にPTEの参照カウントが0になったらPTEも剥がす提案がなされている」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxではユーザ空間プロセスがMAP_ANONYMOUSでmmapすると、その領域を構成するPTEは共有のゼロクリアされたページ(zero-page)を指す。このページに書き込むとpage faultが起こり、PTEの参照先が独立したページに切り替えられる。これによって使われない領域にメモリを割り当てる事が回避される」 / Twitter
- FadisさんはTwitterを使っています: 「同じページに書かれた全てのPTEがzero-pageを指している場合そのPTEはいつでも作り直せるので、このようなPTEのページも空のPTEのページと同様に剥がしたい。しかしPTEを剥がした直後にその領域が触られた場合オーバーヘッドになる為、zero-pageのPTEを剥がすべきかどうかはhuristicな判断を要す」 / Twitter
- FadisさんはTwitterを使っています: 「更にページテーブルの操作はmmap_lockを取って排他的に行う必要がある為参照カウント等でPTEのページを剥がせる事に気付いたとしても、その瞬間に直ちにページを剥がすのはスケーラビリティを損ねる可能性がある。このような事情から一見簡単そうなPTEのページの回収は意外と難題になっているらしい」 / Twitter
vmalloc
- FadisさんはTwitterを使っています: 「Linux 5.18からeBPFをコンパイルした結果出来る実行可能バイナリを保持するメモリの為の専用アロケータ BPF allocatorが入る予定だったが、うっかりカーネルのメモリ確保の問題を見つけてしまい5.18で入れるのは無理そうになったらしい https://t.co/tEp7EHFuRs」 / Twitter
- FadisさんはTwitterを使っています: 「eBPFのコンパイル結果を置くメモリは実行可能かつ読み込み専用に設定される必要がある。これらの設定はページ単位なので、コンパイル結果を置くメモリはページサイズの整数倍の大きさでeBPF1つ1つに対して独立に確保される。eBPFのコードは大抵小さいので、4KBページの殆どの部分が使われない事になる」 / Twitter
- FadisさんはTwitterを使っています: 「また、eBPFは用途によっては頻繁にロード、破棄を行う為、4KBページの確保と解放を頻発させてカーネル内でのhuge-pageの利用を阻害する。そこでhuge-pageで確保した実行可能なメモリを個々のeBPFに切り売りするBPF allocatorを挟む変更が5.18でメインラインに入りたがっていた」 / Twitter
- FadisさんはTwitterを使っています: 「BPF allocatorはhuge-pageを確保する為にvmallocを使っていた。vmallocはslab cacheを使わずにページ単位でメモリを確保する関数で、linux 5.13で要求されたサイズが十分大きい場合にhuge-pageを試みる拡張がなされていた。BPF allocatorはこの拡張が働く事を期待していたが、この拡張には問題があった」 / Twitter
- FadisさんはTwitterを使っています: 「huge-pageではページテーブルの先頭4KB分のエントリ以外は「他のページの一部」という情報しか持っていない。 vmallocで確保したメモリはvmalloc_to_pageでページテーブルのエントリを取得できるが、エントリを取得したコードはしばしばそれがhuge-pageの途中のページである可能性を考慮していなかった」 / Twitter
- FadisさんはTwitterを使っています: 「このようなコードにhuge-pageのエントリが渡ると、ページテーブルが破壊される。この問題はBPF allocatorが発端となって発見されたが、vmallocが何でもかんでもhuge-pageにしようとするのはまずい(せめてopt-inにしないといけない)、という話になり5.13での拡張が一旦取り下げられる事になったらしい」 / Twitter
スラブアロケータ
- FadisさんはTwitterを使っています: 「LinuxのSLOBアロケータがlinux-6.2から非推奨になるらしい。SLOBアロケータは将来的に廃止する事が検討されていて、これはそのための準備。今までSLOBアロケータを使っていた環境ではSLUB_TINYアロケータへの移行が推奨される https://t.co/zXnDOqoyfO」 / Twitter
- SLOB Allocator Being Deprecated With Linux 6.2 - Phoronix
- FadisさんはTwitterを使っています: 「MMUを備える計算機ではページサイズ単位で仮想アドレス空間にメモリを付け外しできるが、多くのメモリ確保はページサイズ(例えばx86なら4KiB)より小さいサイズで行われるため、メモリ確保を直ちにページテーブルの操作にするのはメモリの無駄遣いになる」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxカーネルの中でこの問題に対処するのがページサイズのメモリを小さなメモリ確保に対して切り売りするスラブアロケータ。LinuxにはSLAB、SLUB、SLOBの3つのスラブアロケータの実装が用意されていて、今日のLinux環境では殆どの場合SLUBが用いられている。SLABはSLUB登場以前に使われていた古い実装」 / Twitter
- FadisさんはTwitterを使っています: 「様々なサイズのメモリ確保と解放を1つのページの上で行うと「途中に使われていない領域は沢山あるが、今欲しいサイズの連続した領域はない」状態(フラグメンテーション)に陥る。これを防ぐためにSLUBでは「確保したいサイズ以上の最小の2のn乗のサイズ」毎に異なるページからメモリを確保する」 / Twitter
- FadisさんはTwitterを使っています: 「同じページの中では等間隔でメモリが確保されるため、フラグメンテーションが回避される。しかしこの手法はサイズ毎に異なるページを使う為、ページサイズに対して利用可能な物理メモリがさほど多くない組み込みデバイスにおいては許容し難い数のページを次のメモリ確保に備えて空けておく事になる」 / Twitter
- FadisさんはTwitterを使っています: 「SLOBはK&RアロケータにスラブアロケータのAPIを満たすためのラッパーをくっ付けた物で、全てのサイズのメモリ確保を同じページの上で行う。空きページを高速に見つけるための追加情報等は持たず、スラブアロケータで使っているページを先頭から辿って欲しいサイズの空き領域を見つける」 / Twitter
- FadisさんはTwitterを使っています: 「SLOBはフラグメンテーションを起こす上にスケールしないが、実行可能バイナリのサイズと動かすのに必要なメモリのサイズが小さい事から、ストレージやメモリの要件が極めて厳しい組み込み機器でLinuxを動かす場合に用いられてきた。例えばNintendoDSでLinuxを動かすDSLinuxはSLOBを使っている」 / Twitter
- FadisさんはTwitterを使っています: 「SLUBにはMEMCG_KMEM、fault injection、address sanitizer等の機能の追加が実装されてきたが、SLOBは小さい事が存在意義だったためそうした機能追加は行われてこなかった。結果スラブアロケータの実装間の互換性は緩やかに壊れ、「そのコード本当にSLOBでも動きますか」を心配しなければならなくなった」 / Twitter
- FadisさんはTwitterを使っています: 「SLUBとSLOBの実行可能バイナリのサイズの差は10KiBオーダーで、NANDフラッシュメモリが安く大容量な今日実行可能バイナリのサイズを小さくする事を目的としてSLOBを選ぶ事はほぼ無くなっている。しかし実行中に使うメモリのサイズには1MiBオーダーの違いがあり、SLOBが選ばれる理由になっている」 / Twitter
- FadisさんはTwitterを使っています: 「そこで最近Linuxカーネルに登場したのがSLUB_TINY。SLUB_TINYはコードの殆どをSLUBと共有しているが、全てのサイズのメモリ確保を同じページの上で片付ける。これによってフラグメンテーションを起こしやすくなるが実行時に必要なメモリのサイズが抑えられるというSLOBに近い振る舞いをするようになる」 / Twitter
- FadisさんはTwitterを使っています: 「SLUB_TINYではSLUBが持っている拡張機能を使う事ができる。SLOBと異なり実行可能バイナリのサイズは小さくならない。SLOBを廃止して移行先としてSLUB_TINYを提供することで、今日SLOBに求められている機能を提供しながら、互換性の問題を解消しようというのがSLUB_TINYの狙いらしい」 / Twitter
- FadisさんはTwitterを使っています: 「SLOBアロケータ、フロッピーディスクにLinux突っ込むのに使ったなぁ」 / Twitter
128ビットアドレス空間
- FadisさんはTwitterを使っています: 「アドレス長が128bitな時代にLinuxカーネルはどうあるべきかについて。Linuxカーネルはさまざまな部分で「ポインタは長くても64bit」という前提で実装されていて、どう移行を進めれば「32bitから64bitの時ほど苦しまずに」128bitに対応できるかについての提案がなされている https://t.co/fmKXoZ0srq」 / Twitter
- FadisさんはTwitterを使っています: 「64bitアドレスは16EBの空間を表現でき、物理メモリがこのサイズをすぐに上回るとは考えられていない。しかし今日の計算機ではメモリ以外の様々なデバイスを単一のアドレス空間にマップする事、いくつかのアーキテクチャでアドレスの上位ビットが特別な意味を持っていてより狭い空間しか使えない事」 / Twitter
- FadisさんはTwitterを使っています: 「更に性能上の理由からLinuxカーネルはユーザ空間とカーネル空間のメモリマップを豪快に分割していて、限られた空間の柔軟な融通はできない事等から、2035年にも64bitアドレス空間では困る状況が生じると考えられている」 / Twitter
- FadisさんはTwitterを使っています: 「また、今日のLinux環境では実行時に実行可能バイナリやデータがロードされるアドレスをランダムに変更するASLRを使って攻撃者が差し込んだ処理がささる可能性を低くしているが、利用中のページが狭い空間にぎっちぎちに詰まっているとASLRがあっても攻撃者がロード先のアドレスを予想しやすくなる」 / Twitter
- FadisさんはTwitterを使っています: 「このような理由から128bitアドレス空間はわりと現実的な期間のうちに必要になると考えられている。実際の128bit ISAとしては128bitの RISC-V rv128が既に提案されているが、ここで一緒に提案されているABIではポインタは128bitにするが、longは引き続き64bitにする事が提案されている」 / Twitter
- FadisさんはTwitterを使っています: 「ところがLinuxカーネルの中には「longはポインタの値を保持するのに十分な長さがある」という期待をする行儀の悪いコードが山ほどあり、long 64bit ポインタ 128bitを採用するのは辛い改修を乗り越える必要がある。そこで128bitのLinuxカーネルではlongを128bitにしようという提案がなされている」 / Twitter
- FadisさんはTwitterを使っています: 「intが32bitでlongが128bitになると64bit整数を表す型がなくなってしまう為、これをするには何らかのコンパイラの拡張を使って64bit整数型を作れるようにする必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「システムコールの中には64bitのポインタをユーザ空間とカーネル空間の間で投げる物が沢山ある。128bitのABIではこれらのシステムコールは新設される256bit整数型__ptr_t型でポインタを受け取るようにしよう、という提案がなされている」 / Twitter
- FadisさんはTwitterを使っています: 「この他にも現状Linuxは64bitのカーネルで32bitのユーザ空間を動かす為のABI互換の仕組みが備わっているが、これは1段階の互換だけを考慮して実装されていて128bitのカーネルが64bitと32bitをサポートするには大きな改修が必要になるらしい」 / Twitter
- FadisさんはTwitterを使っています: 「発表の後の質疑応答では、カーネルが単独で64bitの空間を使い切る状況ではないのだから、64bitのカーネルがユーザ空間に128bitのアドレス空間を提供できるようにする方がより簡単に問題を解決できるのでは、という提案が飛び出している」 / Twitter
KASI
- FadisさんはTwitterを使っています: 「GoogleがCPUが投機的実行で情報を漏らすタイプの脆弱性に対する包括的な緩和策Kernel Address Space Isolation(KASI)についての発表をしている。KASIは効果的だがカーネルに大掛かりな変更を要する為最初の提案から数年が経過した今もバニラカーネルに入る目処は立っていない https://t.co/HTy7kZRH9T」 / Twitter
- Google Engineers Argue For Linux "ASI" To Better Deal With Speculative Execution Attacks - Phoronix
- FadisさんはTwitterを使っています: 「KASIではカーネルのメモリ確保でそこに置かれるデータが漏れてはいけない物かどうかを指定する。カーネルのページテーブルは漏れてはいけない物を含まない非特権ドメインと全てを含む特権ドメインの2つが作られる」 / Twitter
- FadisさんはTwitterを使っています: 「通常カーネルのコードは非特権ドメインのテーブルを使って実行されるが、漏れてはいけない物に触れるとページフォールトを起こし、特権ドメインのテーブルに切り替えて処理を継続させる。ここでSMTのコアを止め、Retbleedのmitigationも行う。」 / Twitter
- FadisさんはTwitterを使っています: 「特権ドメインで実行していたコードがreturnして特権ドメインに切り替わった所まで戻ってくると、非特権ドメインのページテーブルに切り替わる。そしてL1Dキャッシュが破棄され、その他のCPU脆弱性に対するmitigationが行われ、SMTのコアを動けるようにした後、続きの処理が実行される」 / Twitter
- FadisさんはTwitterを使っています: 「利点はカーネル空間に処理が移っても性能に響くmitigationが行われるのは実際に漏れてはいけない物に触れた場合だけなので、ユーザ空間とカーネル空間の境界でmitigationを行うより性能が良く、ページフォールトで実際に触った事を検知するので対策の漏れも生じにくい点。」 / Twitter
- FadisさんはTwitterを使っています: 「欠点はカーネルのメモリ管理という壊れると大惨事になるのでできれば変更を加えたくない所に変更が必要になる点、そして漏れたら困るデータを扱っている箇所のメモリ確保に新しいフラグを付けてまわる必要がある点」 / Twitter
- FadisさんはTwitterを使っています: 「KASIが最初に提案された当時この手法は欠点が辛すぎると考えられたが、投機的実行絡みの脆弱性が次々見つかって、その度にad-hocなmitigationを時間をかけて作っている現状を踏まえると、KASIを入れて楽に脆弱性に対応できるようにした方がまだマシではないか、というのがKASIを再度提案する背景らしい」 / Twitter
ASI
- FadisさんはTwitterを使っています: 「NVIDIAがLinuxカーネルにアドレス空間の分離を実装している話。カーネルのアドレス空間の分離を巡ってはGoogle等が投機的実行関連の脆弱性を防ぐ手段としてカーネルに入れたいと言っていたばかりだが、NVIDIAが実装しているのはそれとは別の目的で独立に開発していた物 https://t.co/75KWYzgJXU」 / Twitter
- NVIDIA Working To Make Linux Safer For Cars, Robots & Other Safety Critical Environments - Phoronix
- FadisさんはTwitterを使っています: 「自動運転向けにプロセッサを供給するNVIDIAは自動運転の為の処理のような「壊れると大惨事になるタイプのプロセス」と車内エンターテイメントのような「壊れるかもしれない品質管理で作られているプロセス」を安全に同じカーネルの上に乗せられるかという問題に取り組んでいる」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxはユーザ空間の一部のプロセスが暴れた時に他に影響を与えさせない為の仕組みは従来から備えているが、一部のカーネルドライバが暴れた場合にカーネルの他の部分に影響を与えないかという点では割と無防備になっている」 / Twitter
- FadisさんはTwitterを使っています: 「NVIDIAはカーネルプロセスを「コアの機能の為のスレッド(Core)」と「壊れると大惨事になるプロセスの為のスレッド(Safe)」と「壊れるかもしれないプロセスの為のスレッド(QM)」の3つに分類し、それぞれに異なるページテーブルを用意する。分類を跨ぐメモリアクセスはページフォールトで検知される」 / Twitter
- FadisさんはTwitterを使っています: 「NVIDIAはこの仕組みによってQMで動いているカーネルドライバがおかしな動きをしても、それがSafeで動いているプロセスに悪影響を与えないようにしたいらしい。発表ではvmallocをどのように拡張したかなどが説明されているが、実装はまだ公開されていない」 / Twitter
プロセス作成の高速化
- FadisさんはTwitterを使っています: 「Linuxで子プロセスを作るのにかかる時間を短縮する方法としてio_uringを使おうという提案がなされている。forkからexecまでの間の処理をio_uringのlinked operationで繋いで全部カーネル側で片付ける事で、一時的なページテーブルのコピーを回避する https://t.co/WeMEqLvN9S」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxでは子プロセスを作る場合まずforkしてプロセスを増やしてからexecでプロセスの内容を別の実行可能バイナリに変更する。親プロセスと子プロセスがパイプで通信する場合等はforkとexecの間で適切にファイルデスクリプタの繋ぎかえを行う」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxはfork時にメモリの内容をコピーせず、同じページを参照するページテーブルだけを新規に用意する。子プロセス側のページテーブルはread onlyになっていて、書き込みでページフォールトが起こると親プロセスと共有していたページの内容がコピーされて独立したページになる」 / Twitter
- FadisさんはTwitterを使っています: 「この仕組みのため一般にLinuxのforkは高速であるとされているが、親プロセスが大量のメモリを使っていた場合ページテーブルのコピーだけでも無視できないオーバーヘッドになる。実験ではほぼ空のプロセスのforkが52.0μsだったのに対し、メモリを1GB使っているプロセスのforkには7581.8μsかかったらしい」 / Twitter
- FadisさんはTwitterを使っています: 「execするためにforkする場合親プロセスからコピーしたページテーブルはすぐに破棄される為、forkとexecを一気に行えばページテーブルのコピーを省略できるのでは、というアイデアは昔からあった。例えばposix_spawn()はforkとexecを一気に行う仕組みを提供している」 / Twitter
- FadisさんはTwitterを使っています: 「forkとexecの間ではしばしば親プロセスと子プロセスの通信の為の下準備が必要になるが、posix_spawn()ではそうした処理を挟む余地がない為引数にファイルデスクリプタの繋ぎかえを複数渡せるようになっている。posix_spawn()の引数で対応できないような複雑な下準備が必要な場合posix_spawnは使えない」 / Twitter
- FadisさんはTwitterを使っています: 「posix_spawnはそれ自体Linuxのシステムコールではなく、glibcではvforkで実装されている。vforkはページテーブルを分離しないforkで、ページテーブルのコピーは回避できるが子プロセスで行った変更が親プロセスに影響する為execまでの下準備は慎重に実装される必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「forkしてからexecするまでの間に親プロセスのページテーブルのコピーが必要になるのはforkしてからexecするまでの間の下準備が親プロセスのメモリマップで動く処理として実装されているのが原因なので、ここで必要になる処理を全てカーネルが片付けてくれれば下準備にページテーブルのコピーは必要ない」 / Twitter
- FadisさんはTwitterを使っています: 「問題は下準備は多岐に渡る為単一のシステムコールにはできない(無理にこれをやるとposix_spawnみたいになる)点だが、このfork→下準備→execの一連のシステムコールの列をio_uringのlinked operationなコマンド列にしてカーネルに送ろう、というのが今回の提案」 / Twitter
- FadisさんはTwitterを使っています: 「この方法では子プロセスの起動にかかる時間は親プロセスのメモリの使用状況に依存せず、安定して29μs前後になったらしい。特殊な下準備が必要な場合でも、vforkで恐怖のプログラミング体験をしたり、凄く遅いforkで妥協したりする必要はない」 / Twitter
memfd
- FadisさんはTwitterを使っています: 「Linuxでmemfdを使って確保したメモリのNXビットが立っていないのが見つかった話。実行可能なmemfdは既にカーネルに何も言わずにユーザ空間で活用されていた為「ユーザ空間の対応が出来たらオンにするスイッチ」でデフォルト実行不能に切り替えられるようになった https://t.co/buqBnOWcGe」 / Twitter
- FadisさんはTwitterを使っています: 「memfdはLinuxのユーザ空間から特別な設定がなされたメモリを確保するための仕組み。memfd_createにサイズと設定を渡すとファイルディスクリプタが返ってくるのでmmapして使う。主な用途は明示的にHuge Pageを使うように要求したり、内容を書いた後で書き込み不能領域に変更できるようにしたり等」 / Twitter
- FadisさんはTwitterを使っています: 「memfdは今まで確保したメモリに実行不能属性を付けていなかった。memfdはデフォルトで書けるので「書けて実行できる」メモリがデフォルトで確保される事になる。こうしたメモリは攻撃者がシェルコードを置くのに大変便利なので、最近のLinuxはこの設定のメモリは積極的に提供しない方向になっている」 / Twitter
- FadisさんはTwitterを使っています: 「memfdは大抵データ置き場として使われる為、単純に実行不能属性を付ければ解決のような気がするが、コンテナでプロセスを実行するためにcgroupやnamespaceで隔離の用意をするruncが、ロードした実行可能バイナリを以後コンテナ内から書き換えられないようにする目的でmemfdを使っているのが見つかった」 / Twitter
- FadisさんはTwitterを使っています: 「そこで提案された修正ではmemfd_createに実行可能にしたい事を伝えるフラグと実行不能にしたい事を伝えるフラグを追加する。どちらも設定されない場合の振る舞いはsysctlで設定でき、デフォルトでは実行可能になる」 / Twitter
- FadisさんはTwitterを使っています: 「memfdを実行可能にしたいアプリケーションが明示的に実行可能を要求するように修正されたらsysctlで無指定の場合を実行不能にする事で、実行可能を欲していないアプリケーションに実行可能なメモリが割り当てられないようになる」 / Twitter
- Linuxカーネル4.14リリース、x86_64環境でのメモリ上限が拡大される | OSDN Magazine
- 【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
- kslr linux - Google 検索
- A fork() in the road
- A fork() in the road を読んで.md
- Metaの巨大なデータセンターでメモリを大幅に節約するための「透過メモリオフロード」とは? - GIGAZINE
- facebookincubator/senpai: Senpai is an automated memory sizing tool for container applications.
Generalized address-space isolation
- FadisさんはTwitterを使っています 「Linuxカーネルに提案されているGeneralized address-space isolationについて。LinuxはMeltdown対策でユーザ空間プロセスの実行中にカーネルメモリをマップしないKPTIを備えるが、これはカーネル空間で投機的実行で読めないメモリを読む他のSpectre variantには効果がない https://t.co/K5CmqIwIP5」 / Twitter
- FadisさんはTwitterを使っています 「他のSpectre variantに対しては性能と守備範囲が異なる幾つかの緩和策が提案、実装されているが、Generalized address-space isolationはそうした緩和策のニューフェイス。KPTIのようなアドレス空間の分離をカーネルの中でも行う事で投機的実行がカーネルの外に漏れてはいけない情報に触れるのを防ぐ」 / Twitter
- FadisさんはTwitterを使っています 「この手法ではカーネルメモリのデータをsensitive, locally non-sensitive, globally non-sensitiveに分類し、sensitiveや他所のプロセスのlocally non-sensitiveをマップしない状態でカーネルプロセスを実行する。マップされていないメモリを触ってCPU例外が飛んだらそのプロセスに全領域を公開する」 / Twitter
- FadisさんはTwitterを使っています 「投機的実行はCPU例外のハンドリングを超えて実行されない為、例外をトリガーにメモリを公開する事でSpectre攻撃によるアクセスは防ぎながら、本来の用途でアクセスしなければならないデータには「分類がなされていない(=sensitive)」状態でも問題なくアクセスできる。適切な分類は性能改善につながる」 / Twitter
cgroup
- Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
- Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する - hibomaの日記
- 第41回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[5]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第42回 Linuxカーネルのケーパビリティ[1]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第43回 Linuxカーネルのケーパビリティ[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第44回 Linuxカーネルのケーパビリティ[3]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 2020年4月7日 Linux 5.7の新機能 ―親プロセスとは異なるcgroupへのプロセス生成が可能に:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「Systemd 247からsystemd-oomdが追加されるらしい。systemd-oomdは指定されたcgroups内のプロセスのメモリの使用状況を監視し、システムのメモリが逼迫したらカーネルより先にcgroups内のプロセスを潰す。カーネルのoomkillerがあまりにも公平に何でも潰す問題を解決する https://t.co/OHH5VJmTl7」 / Twitter
- systemd-oomd Looks Like It Will Come Together For systemd 247 - Phoronix
- 第45回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[6]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第48回 cgroup v2から使うコントローラとmiscコントローラ:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- Rustでもunshare(というか、Linux Namespaceの分離)したい! - ローファイ日記
- eBPF的な意味で使えるcgroup idを取る方法 - ローファイ日記
- cgroup v2の、BPFによるデバイスアクセス制御を試す - ローファイ日記
- 第49回 cgroup v2のリソース分配の方法とインターフェースファイルの操作:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
DAMON
- FadisさんはTwitterを使っています 「AmazonがLinuxカーネルにDAMONを利用した積極的なページアウトを実装している話。DAMONはLinuxカーネル内でページの利用状況をモニタリングする物で、新しいパッチはDAMONが集めた情報に基づいて長期間触られていないページを、メモリが足りていてもページアウトさせる https://t.co/Yddgzb6eCb」 / Twitter
- Amazon Working On New Proactive Memory Reclamation For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「Linuxの標準的なメモリ管理はページに割り当てられるメモリがなくなった時点でページアウトさせるページを選び始めるが、これは大きなレイテンシのスパイクを生むため、詰まると更に惨事になるようなサーバではしばしば「暇なときに先読みでページアウト」させたい、という需要がある」 / Twitter
- FadisさんはTwitterを使っています 「DAMONは今回の変更と同じくAmazonがLinuxカーネルに入れたがっている物で、メモリが割り当てられたページを稀にページフォルトさせる事でページの大雑把な利用状況を計測する。DAMONを使うことでプロセスのメモリのうちアクセスが多い部分とそうでない部分を見つける事ができる」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「カーネル 5.15 でマージされた DAMON だけど、単にメモリアクセス情報を取得してあとはアプリに丸投げするのではなく、直近のアクセス局所性に基づいてカーネル内で自動的に madvise 打ち込むこともできるので、一歩踏み込んだ感じがする。thp の利便性が上がるが嬉しい。 https://t.co/HjjLpl4t8l」 / Twitter
- damo/USAGE.md at next · awslabs/damo
SysRq
- 汎用kumAGIさんのツイート: "windowsが辛い理由、自分がそもそもLinuxの上で走る物を最小の労力で作りたかったからLinuxに引っ越したわけだから、逆の立場ならWindowsに引っ越したと思う。でも何かプロセスを強制終了したくなった時にAlt+Ctrl+Delですら不可能な事がザラにある一方Linuxはkill -9がまず効くのがいい。"
- リベラル.3goさんのツイート: "LinuxでもSysRqが効かないことなんてしょっちゅうでしょ"
- 実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
- システムリクエスト - Wikipedia
- マジックSysRqキー - Wikipedia
- SysRqキー ‐ 通信用語の基礎知識
- 第5回「 SysRq ノススメ」 | NTTデータ先端技術株式会社
- magic SysRq keyについて | Miracle Linux Support
- SysRqキー(System Request key)とは - IT用語辞典
- マジック SysRq キー
- 一体何に使うのかわからないキーボードのキートップ10 - GIGAZINE
- sysrqキーでlinuxを再起動させたりcrashさせたり - うまいぼうぶろぐ
Stack Guard Page迂回
- [重要] Linux kernel、glibc および Apache httpd サーバーの脆弱性対応について | Movable Type ニュース
- Stack Guard Page迂回の脆弱性 : アジャイル株式会社
- 【注意喚起】glibcにStack Guard Page迂回の脆弱性について
- 【セキュリティ ニュース】Linuxにroot権限を取得される脆弱性「Stack Clash」(1ページ目 / 全1ページ):Security NEXT
- 複数のパッケージに影響するスタックガードページの回避 - Red Hat Customer Portal
memfd_secret
- FadisさんはTwitterを使っています 「Linuxでmemfd_createを使って他から見えないメモリを作る機能がバニラカーネルに入りたがっている話。この機能を使ってプロセスに割り当てられたメモリは他のプロセスからも、カーネルからも読み書きできなくなる。OpenSSLのsecure heapをよりsecureにするような用途で用いる https://t.co/kJuWlQDnmX」 / Twitter
- Secret Memory Areas For Linux Might Finally Be Ready With memfd_secret - Phoronix
- FadisさんはTwitterを使っています 「Linuxのプロセスのアドレス空間はプロセス毎に分離されているが、適切な権限を持ったプロセスが別のプロセスを覗き見する方法が複数存在する。故に攻撃者が強い権限を持っていたりカーネル空間で暴れている場合簡単に他所のプロセスが抱える鍵等を覗けてしまう。新機能はこうした状況への耐性を高める」 / Twitter
- FadisさんはTwitterを使っています 「よく読んだら、memfd_createにフラグつける方式じゃなくて、memfd_secretなる新しいシステムコールが生える方式になってる…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い…ただコードを読んでも、何故これでカーネルを覗ける強いプロセスからも守られるのか謎。 (仮想ページ範囲外となっている direct map が肝と…ただ root権限でioremapするデバドラ入れて全物理メモリ読むとかも防止できるのかな?) https://t.co/5iI1x52o8R https://t.co/o6W7w2lyUJ」 / Twitter
- tools/testing/selftests/vm/memfd_secret.c - pub/scm/linux/kernel/git/next/linux-next - Git at Google
KSM
- 第8章 KSM
- 7.3. KSM (Kernel Same-page Merging)
- IBM Knowledge Center - Kernel Same-page Merge (KSM) を有効にする
- mrwk update: KVMで複数VMを起動してVM間の相互作用を減らしたいときに考えること
Zswap
- Zswap - ArchWiki
- 【Linux】zswap は本当に速いのか - 解き放たれしソフトウェア
- 本の虫: Zswap: Linuxカーネルに圧縮付き仮想swap機能のパッチが提出される
- Linux カーネル 3.11 で性能と効率を強化
- Naoya HoriguchiさんはTwitterを使っています 「少し前からだと思うけど、 systemd さんが自動的に zswap デバイスを追加してくれるようになったみたいね。カーネルのテストが思ったとおり動かなくて驚いた。」 / Twitter
hugepage
- Linux の hugepage の開発動向
- FadisさんはTwitterを使っています 「hugepage: メモリは大容量になったのに仮想アドレスの変換単位であるページが小さすぎてページの情報が巨大になるし特定のアドレスに対応するページの情報を探すのに時間がかかりすぎる→ページをでっかくしようぜ! #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「hugetlb: 古くからLinuxにあるhugepageの対応。専用のメモリプールを使う(=アプリケーションが明示的に使う必要がある) thp: 普通のメモリ確保の裏で透過的にhugepageが使われる。アプリケーションが明示的に対応する必要は無いが動きが読みづらい為DB屋からの評判は良くない #kernelvm」 / Twitter
- suzakiさんはTwitterを使っています 「#kernelvm 昔、THP:Transparent Huge Pagesの性能問題を再現できるDockerを作りました。 最近のカーネルには試していないけど、動くのかな。」 / Twitter
- suzakiさんはTwitterを使っています 「@satoru_takeuchi @charsiuCat @rioriost メモがあった。 Dockerを使ったHP:Transparent Huge Pagesの問題の再現法。 $ docker run -it suzaki/rust-parallel bash # export PATH=$PATH:/root/.cargo/bin # time seq 1 10000 | parallel echo > /dev/null 昔のログではTHPがneverの場合は3秒程度、alwaysは9秒程度とあります。」 / Twitter
- FadisさんはTwitterを使っています 「Hugepage、swapが古典的なページサイズ単位で書き込むからswapに書く瞬間にエクストリームページ分割作業が発生する話があったなぁ #kernelvm」 / Twitter
- suzakiさんはTwitterを使っています 「@nhoriguchi ご指摘ありがとうございます 正しくは echo "always" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled 結果は alwaysの場合 time seq 1 10000 | parallel echo > /dev/null real 0m31.957s neverの場合 real 0m1.687s kernel 5.6でTHP:Transparent Huge Pagesが30倍影響しました」 / Twitter
collapse
- FadisさんはTwitterを使っています 「Linuxでユーザ空間プロセスがページのcollapseをカーネルに要求できるようにする改良の話。これによって透過的huge pageの使いやすさを保ったまま、ユーザ空間プロセスがhuge pageを使うべき適切なメモリの範囲を指定してhuge pageの恩恵をより効果的に受けられるようになる https://t.co/BrQcgfwxMk」 / Twitter
- FadisさんはTwitterを使っています 「x86やarm等では伝統的に4KiBのメモリを1ページとして物理アドレスと仮想アドレスの変換をページ単位で行うが、4KiBはイマドキのホストのメモリのサイズに対してあまりにも小さく、アドレスの変換表のエントリが増えすぎることによる(主にキャッシュミスの増加による)性能低下が問題になっていた」 / Twitter
- FadisさんはTwitterを使っています 「そこで新しめのCPUではしばしば4KiBより大きなメモリを1ページとするhuge pageが用意されている。Linuxカーネルはhuge pageをサポートしているが、ユーザ空間プロセスがhuge pageのメモリを使うには専用の手順でメモリを確保する必要があり、既存のソフトウェアが簡単に恩恵を受けられる物ではなかった」 / Twitter
- FadisさんはTwitterを使っています 「この状態ではhuge pageの利用が進まないのでLinuxカーネルには透過的huge pageという機能がある。これが有効になっている場合カーネルはプロセスのメモリの利用状況を見てhuge pageを使うと性能向上に寄与しそうな部分を探し、複数の4KiBページをhuge pageに統合する。この操作はcollapseと呼ばれる」 / Twitter
- FadisさんはTwitterを使っています 「huge pageが性能向上に寄与するかはそのページの使い方に依存する。しかしカーネルはページの用途の詳細を知らないので、透過的huge pageはしばしばアプリケーションの開発者が期待するのと違うページをcollapseする。またhuge pageに適したメモリを探す処理自体のオーバーヘッドも無視できない」 / Twitter
- FadisさんはTwitterを使っています 「一方ユーザ空間側ではどの部分がhuge pageで性能が出るアクセスパターンになるか適切に予想がつく場合が多い。そこでmadvise(2)を使ってユーザ空間プロセスからカーネルに「ここをcollapseするのめっちゃオススメ」を通知できるようにして、透過的huge pageの効きを良くしよう、という案が出てきた」 / Twitter
MGLRU
- FadisさんはTwitterを使っています 「MGLRUをLinuxに入れる為の努力が続いている話。LRUは「使われていないページはどれか」を判断する物で、メモリが足りない時にどこからメモリを取り上げるか決めるのに使われる。MGLRUは既存のLRUより高速かつ適切なページの選択をする為にGoogleが提案している新しい実装 https://t.co/3VEO7x8o5e」 / Twitter
- MGLRU Continues To Look Very Promising For Linux Kernel Performance - Phoronix
- FadisさんはTwitterを使っています 「従来のLRUはページを最近アクセスがあったactiveなページと、アクセスがなかったinactiveなページに分類し、メモリが足りない時はinactiveを優先的に調べることでメモリを剥がしても影響が小さそうなページを見つける」 / Twitter
- FadisさんはTwitterを使っています 「ホストに積まれるメモリが増えて富豪的にメモリが使われるようになるとinactiveなページは膨大になり、inactiveの中から特に影響が小さそうなページを線形に舐めて探す処理が許容できないくらい遅い処理になり始めた」 / Twitter
- FadisさんはTwitterを使っています 「MGLRUは世代番号が振られた複数のコンテナにページを分類する。アクセスが確認されたページは「現在の世代」のコンテナに移動され、「現在の世代」は時々インクリメントする。これによってページはどのくらいの期間アクセスされていないかで多段階で分類される」 / Twitter
- FadisさんはTwitterを使っています 「現存する最も世代番号の小さいコンテナからページを探せば、従来のLRUより少ない要素の線形探索で、メモリを剥がした場合の影響が小さそうなメモリを選べる。最も世代番号の小さいコンテナのページだけでは足りない場合は、次に世代番号が小さいコンテナを順に漁っていく」 / Twitter
- FadisさんはTwitterを使っています 「この手法は提案しているGoogleからメモリの回収が必要になるような状況で顕著な性能向上が見られるというベンチマーク結果が出ている。Linus氏は手法自体に異論はないとしているが、同時にKconfigのオプションなどの付随する変更の作法に問題があり、これが修正されないと取り込めないとしている」 / Twitter
- Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp
bounce buffer
- FadisさんはTwitterを使っています: 「Linuxのbounce bufferから情報が漏れる問題の対策とそれがrevertされた経緯。Linuxは「bounce bufferを使う」「デバイスがメモリに書く長さが可変」「ドライバがDMAのバッファを直接ユーザ空間に見せる」ような場合にカーネルの無関係な情報をユーザ空間に見せる可能性がある https://t.co/f41jvkQJYa」 / Twitter
- FadisさんはTwitterを使っています: 「CPUと周辺デバイスがメモリを介してデータをコピーするにはMMUやキャッシュに適切な設定が必要になる。Linuxではあるバッファを「どちら向きに」送るために「誰が」読み書きする状況かを設定するAPIが用意され、ドライバがこれを適切に設定する事でCPUとデバイスの間でデータの受け渡しが行われる」 / Twitter
- FadisさんはTwitterを使っています: 「ハードウェアの制約等でデバイスに送りたいデータが置かれたメモリがデバイスからは見えない場合、このAPIはデバイスに見える場所に別のバッファを確保して2段階のコピーでデバイスまでデータを届ける、という処理を透過的に行う。この為に確保されるバッファがbouce buffer」 / Twitter
- FadisさんはTwitterを使っています: 「デバイスからCPUにデータを送る時デバイスはしばしばバッファのサイズ以下の可変長のデータを返す。確保したけど使われなかった残りの領域には古い値が残る。bounce bufferは様々な用途で再利用される為、そこには無関係なデバイスとのやりとりが残り、それが透過的にCPUのバッファにコピーされる」 / Twitter
- FadisさんはTwitterを使っています: 「この結果無関係なカーネルのデータがデバイスドライバまでは見える状態になり、デバイスドライバが雑な事をするとそれがユーザ空間から見えて脆弱性案件になる。これをより安全にする為に「誰が」操作するかがデバイスに移った時点でCPU側のバッファをbounce bufferにコピーしようというパッチが現れた」 / Twitter
- FadisさんはTwitterを使っています: 「が、これを入れるとAtheros 9kのWiFiドライバが動かなくなったらしい。このドライバはバッファを「CPUに渡す」「パケットの有無を確認」「なければデバイスに返す」という操作を繰り返していた。チェックとデバイスからのパケットの書き込みが同時に起こるとパッチの変更によりパケットが上書きされる」 / Twitter
- FadisさんはTwitterを使っています: 「キモは「CPUがバッファを握っている時にデバイスはバッファに書いて良いのか」だが、これはデバイスが書いた内容が直ちにCPUから見えなくても良いなら認められるという扱いになっていた為、Atheros 9kと同様の問題を起こすドライバは他にも出るだろうと予想され、パッチはrevertされる事になったらしい」 / Twitter
Wikipedia
- Security-Enhanced Linux - Wikipedia
- TOMOYO Linux - Wikipedia
- AppArmor - Wikipedia
- Linux Security Modules - Wikipedia
- grsecurity - Wikipedia
- PaX - Wikipedia
- Exec Shield - Wikipedia
posix_spawn
- Kazuho Okuさんのツイート: "posix_spawn、linuxだとエラー処理がまともにできなくて自分で再実装するハメになるからオススメできない https://t.co/H4uiG1BIXH"
- ケケモコソカメニハさんのツイート: "Linuxですとposix_spawnが失敗したかどうかはwaitpidしてみるまでわからないのに対し、BSDが即座にerrnoを返してくれるのはなぜでしょうどちらもvfork/execのはず、と思ったら、volatile変数経由してました https://t.co/shzoLYQ4Ek"
- ケケモコソカメニハさんのツイート: "https://t.co/piAAKLKVv1 いやしかしglibcでもパイプを使ってエラーコードを返してますね?手元ですとwaitpidするまでわからないんですが…… https://t.co/FMbT52rAo5 どうやら2017年06月に改善されたらしい"
- ケケモコソカメニハさんのツイート: "手元のUbuntuはglibcがまだ2.23ですのでこの変更が取り込まれていないようです"
- ケケモコソカメニハさんのツイート: "というわけでglibc2.26以降ですとちゃんとerrno返してくれるようですので、それまでどうするか……"
- ケケモコソカメニハさんのツイート: "https://t.co/pEWCQ6Nqb4 これがglibc 2.26から不要になるようです"
fork
- mumumuさんはTwitterを使っています 「A fork() in the road [HotOS '19] fork()が現代のOSにとっていかに有害か(代わりのものを使おうね,そう単純な話ではないけど)をこれでもかと論じている.著者らはfork()に親を殺されたのか?めっちゃ面白い. 日本語での解説をみつけた:https://t.co/0LG1GMPo0o https://t.co/0yplLA93f0」 / Twitter
- A fork() in the road を読んで.md
- A fork() in the road - fork-hotos19.pdf
- UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この fork disは、概ね正しく MSR所属は関係無さそう。 (30年近く前でも、自プロセス肥大後のsystem(3)はforkがメモリ不足でコケる可能性あるため、起動直後にsystem(3)依頼用子プロセス作る予防線張ったっけ。今どきはover commitあるとはいえ)」 / Twitter
splice
- Kazuho OkuさんはTwitterを使っています: 「なんか気づいてしまったんだけど。 ファイルキャッシュにファイルが載ってるままにしたいことってあるやん? linuxの場合、適当なパイプにsplice(2)したらページキャッシュエントリがロックされるから、そのまま放置しておいたらいいんじゃね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「正確に言うと、パイプが破棄されるまで、キャッシュページがpipeとファイルキャッシュの両方から参照されるCoWページになる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「キャッシュをロックするsyscallは提供したくないー(そりゃそうだ)みたいな話を昔どっかで読んだ気がするけど、今は実質できるのか」 / Twitter
- masa murayama@定年後再雇用で嘱託となった社畜ハッカーさんはTwitterを使っています: 「@kazuho mmap()して memcntl(MC_LOCKAS)じゃダメですか?仮想空間のためのページテーブルが必要になるけど。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@masa_murayama マルチスレッドサーバなのでペナルティがでかいmmap / munmapは避けたい感じですね。preadが同期的に動けばそれで良い的な」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「まあ linux の場合、実際には io_uring で async load するほうが正しいと思います。そうすれば、稀に disk i/o が発生で時間がかかるとしても、その間、イベントループが止まることはないので」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「spliceって、そんなに豪快なsyscallなのね。 ---- splice(2)したらページキャッシュエントリがロック」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu 古典的にはsendfileもそうですよ(TCPの送信バッファから、書き込み禁止にしたpage cacheへの参照をもつことでゼロコピー実現してるので)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho なるほど。 ただ、sendfile(2)はそのsyscall発行中だけの出来事ではないのでしたっけ。 (splice(2)は複数回callの間ずっとロックと)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu spliceはpipeの反対側でデータが読まれたらロック解放、sendfileは通信相手にデータ送信して全部ackされたら解放、ですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu spliceしたらpipe bufferからページ参照がある間はロックされるし、sendfileしたらtcp send bufferからページ参照がある間はロックされる、という感じです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho なるほど。ご説明ありがとうございます。」 / Twitter
blog
φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- memory cgroupとpageのLRUめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- 弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux4.14.12(x86_64)のPage Global Directoryの設定を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- ページングでメモリを割り当てる処理の動きを確認できるものを作ってみた - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- EPTの設定をbhyveで調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- あなたの知らない time(1) の世界 - kuenishi's blog
- Kernel memory randomization and trampoline page tables – Medium
- Kazuho's Weblog: mmapを使ってファイルベースの巨大なバッファを確保する話
- ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
- 実行中プログラムのイメージを得る - @tmtms のメモ
- The mysterious case of the Linux Page Table Isolation patches | Firmware Security
- Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する - hibomaの日記
- Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2) - hibomaの日記
- per cpu data シンボルのアドレス - 睡分不足
- /proc/pid/pagemapの話 - 睡分不足
- 仮想アドレスから物理アドレスを求める - 睡分不足
- x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
- UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
- Life with open mind: x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法
- CoWはコウ可視化するんやで (aka. Rubyなどがforkした後のCoWを可視化してみる) - ローファイ日記
- Goで開発した配信サーバーのメモリ使用量問題に向き合う - Mirrativ Tech Blog
- カーネルパラメーターサイドからの物語 – Sysdig
スライド
- FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
- cgroup v2とgVisor - Speaker Deck
技術評論社
- 2016年12月21日 スワップパーティションはもういらない ―Ubuntu,Zapusでは"Swapfiles"に:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年11月14日 Linux 4.14がリリース,仮想メモリの上限が128PiBに:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年10月2日 Linux 5.4-rc1がリリース,議論となった「ロックダウン」機能も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年1月8日 Fedora 32がEarlyOOMをデフォルト実装へ,メモリ不足によるフリーズを回避:Linux Daily Topics|gihyo.jp … 技術評論社
- 2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年5月1日 NVIDIA Jetson,GNOME 3.36,EarlyOOM ―Fedora 32が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年11月15日 Linux 5.16 rc-1がリリース,メモリ管理の新機構「folio」も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2022年1月6日 メモリ管理機能の「CleanCache」,Linuxメインラインから削除へ:Linux Daily Topics|gihyo.jp … 技術評論社
Qiita
- ASLRとKASLRの概要 - Qiita
- open+fork+exitで無限ループすることがあるという話 - Qiita
- いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
- プロセス毎のメモリ消費量を調べたい時に使えるコマンド - Qiita
Twitter
COW
- Kazuho OkuさんはTwitterを使っています: 「ページへの参照が増えてCoWに変わるタイミングでTLBフラッシュが走るけど、逆にページへの参照数が1に落ちるタイミングで再度フラッシュは走らない。書き込もうとした際にfaultして、その時点で修正される、と。よし覚えた」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「source: https://t.co/B43XCy0qYW」 / Twitter
- Patching until the COWs come home (part 1) [LWN.net]
OOM killer
- FadisさんはTwitterを使っています: 「LinuxのOOM killerから従来見えなかったメモリの利用を見えるようにして、OOM killerがより適切なプロセスを選べるようにしようという試みの話。Linuxではホストのメモリが不足して新しいメモリを確保できない時OOM killerがどのプロセスを潰してメモリを取り戻すかを判断する https://t.co/TMup9pZopZ」 / Twitter
- FadisさんはTwitterを使っています: 「一般により少ない影響でメモリ不足から回復するには止めるプロセスは少ない方が良い為、より多くのメモリを使うプロセスを探す必要がある。oom_badness関数はプロセスのrss、swap、page tableのページ数を合計し、全ページに対する割合をスコアとして出す。OOM killerはこの値が高いプロセスを止める」 / Twitter
- FadisさんはTwitterを使っています: 「このoom_badness関数の計算にはプロセスがデバイスを開いている為にカーネルのデバイスドライバが確保しているメモリや、memfd_createで確保されたメモリのサイズは含まれない。この為ローカルの悪意あるユーザはmemfd_createで大量のメモリを使う事でOOM killerに他のプロセスを止めさせる事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「memfd_createはLinuxで特殊な設定のメモリを確保する手段として近年広く用いられており、そこから確保されるメモリのサイズは無視できない。またGPU等のデバイスはデバイスドライバ管轄で巨大なメモリを確保する為「プロセスが原因でデバイスドライバが確保するメモリ」も無視するには大きすぎる」 / Twitter
- FadisさんはTwitterを使っています: 「そこでカーネルのfile_operations構造体にoom_badnessコールバックを追加する提案がなされている。これはfile構造体を受け取ってそのfdに結びついて割り当てられているページ数を返す。プロセスが開いているfdに対してこのコールバックが利用可能な場合oom_badnessはそのページ数を加算する」 / Twitter
direct mappingの断片化を抑制する方法
- FadisさんはTwitterを使っています: 「Linuxカーネルのdirect mappingの断片化を抑制する方法が模索されている話。Linuxカーネルは仮想アドレス0xffff888000000000から64TiBの領域に全ての物理メモリをマップしている。このマッピングはHuge Pageで行われ、カーネルの殆どのメモリへのアクセスはこの領域で行われる https://t.co/PxsKQ3QpO1」 / Twitter
- FadisさんはTwitterを使っています: 「Linux 5.14で追加されたmemfd_secretはユーザ空間プロセスがカーネルでも見る事ができないメモリを確保できるようにする。カーネルはmemfd_secretでユーザ空間プロセスに割り当てられたページがdirect mappingから見えないように、これらのページをdirect mappingの領域から剥がす」 / Twitter
- FadisさんはTwitterを使っています: 「このようなdirect mappingの一部に特殊な設定を要する機能は最近Linuxカーネルに増えている。ページ単位の設定には独立したページテーブルエントリが必要なので、Huge Pageの中の一部に特殊な設定をするにはHuge Pageをバラす必要がある。Huge Pageをバラすとメモリアクセスの性能の低下に繋がる」 / Twitter
- FadisさんはTwitterを使っています: 「最初に提案されたのはページを確保する際にそのページに対する設定を見て、同じ設定で過去にHuge Pageを割って確保されたページとdirect mapping上で隣接する場所に新しいページを確保しよう、というもの。こうすればHuge Pageがバラされている箇所は最小限に抑えられる」 / Twitter
- FadisさんはTwitterを使っています: 「しかしこの手法はメモリ確保にオーバーヘッドを伴う物だった。メモリ確保は極めて頻繁に行われる一方特殊な設定のメモリの確保は稀にしか行われない為、常にオーバーヘッドを伴う実装は許容できないという点が争点になった」 / Twitter
- FadisさんはTwitterを使っています: 「最終的に既存のページの確保の仕組みはそのままにして、そこから特殊な設定のページをそれ自体Huge Pageにできるサイズの束で確保して切り売りする用途ごとのアロケータを作って、特殊な設定のメモリを確保する時だけこのアロケータを通す方向にまとまったらしい」 / Twitter
histric-1
- yoh2さんのツイート: "直接のメモリ確保じゃないけど、メモリ不足により fork() 失敗という現象を踏んだことがある。あれは悩んだけど面白かった。 環境内の半分以上のメモリを確保済のプロセスをfork()しようとするとたとえCoWが有効でもダメ出しくらうという。 https://t.co/Wga3xBQ9Qm"
- linux - 大量のメモリを使用するプログラムからコマンドを実行する方法 - スタック・オーバーフロー
- Fadisさんのツイート: "x86_64のLinuxのユーザ空間、実行したバイナリは先頭の方に置かれていて、ヒープを猛烈に使わない限りそれ以外の多くの物はユーザ空間のアドレスの後ろの方に連なってるから、ライブラリではなく実行可能バイナリ本体を実行している時、そのスタックの境界はeasy 目grepableであるという知見を得た"
- Fadisさんのツイート: "試しにDirty COW(CVE-2016-5195)の対策が入る前のカーネル引っ張ってきてexploit動かしてみたら本当に一般ユーザでrootのファイルの書き換えが出来てウヒョーってなってる… "
- Fadisさんのツイート: "書き込み権限の無いファイルをMAP_PRIVATEでmmapして、MADV_DONTNEEDで「しばらく触らないから実メモリから剥がして良い」しながらこの領域に書き込みを行うと、本来変更内容はCoWでメモリに置かれてオリジナルを書き換えないはずが、オリジナルの方に書きにいってしまう不具合らしい"
- Fadisさんのツイート: "あ、これずっと昔に修正がカーネルに入っている不具合なんできちんとアップデートしてる各位は何も恐る必要は無いやつでござい。(アップデートしないで放置しているとどういう状態になるか、という話をする資料作るのに引っ張ってきた)"
- LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
- shinichiro hamajiさんのツイート: "#tcfm linux kernelがenvpより深いスタックにauxvというkey/valueを送ってくれてて、その中のAT_RANDOMの2つ目が任意アドレス書き換えが即IP奪取にならないmitigationとして使われてるというトリビア https://t.co/1DcRYpG7p0 ちなみに1つ目はstack protector https://t.co/Ingenm5bbw"
- test/mangled_syms.c at master · shinh/test
- Fadisさんのツイート: "CONFIG_MULTIUSER: Linuxカーネルでマルチユーザをサポートするコンフィグ。普通は有効になっていて、切るとあらゆるプロセスはuid0(root)で実行されるようになり、UIDとGIDに関する全てのシステムコールはカーネルから削除されて使用できなくなる… https://t.co/PCcQdwSdcb"
- まさみさんは語りたいさんのツイート: "そもそもLinuxでも高性能出すならできるだけアプリには仮想ではないナマのメモリを与えるのが良さげだけど。"
- まさみさんは語りたいさんのツイート: "自動検出してくれないかなーという気にもなってる。… "
- Kazuo Moriwakaさんのツイート: "systemdは競合するサービスをConflict=で明示的に定義できるからntpd動いてるのにchrony動かそうとすると実際に競合する前に検出して失敗してくれるよ"
- まさみさんは語りたいさんのツイート: "それMINCSでもできるよ(ステマ… "
- Kazuo Moriwakaさんのツイート: "「linuxはcgroupでリソース制限かけてメモリ+swapの上限とか設定できる」それどうやって使うんだろうと思った人、systemdならサービス毎にcgroup作ってるから設定1行書くだけでできるよ"
- Fadisさんのツイート: "主記憶に対してハードディスクが遅くなりすぎて乗ったら負けみたいになってたlinuxのswapが、フラッシュメモリなストレージの目覚ましい性能向上によって実用的になってきて再び改良の対象になっているっぽい"
- Fadisさんのツイート: "fork bomb、Linuxならあるプロセスの下に作れる子プロセスの数をcgroupsで絞れるから、そういうものが投げつけられるコーディングのsandboxは絞っておくのがオススメ"
- suzakiさんのツイート: "NDSS攻撃2つ目。Linuxカーネル内で初期化せずに使われる変数への攻撃。Syscallを使い、スタックの固定領域にスプレー攻撃を行うDeterministic Stack Sprayingの発表。"
- suzakiさんのツイート: "NDSS攻撃3つ目。コード再利用攻撃。Code Pointerを直接ではなく、トランポリンを使うことでコード領域に直接ジャンプしないAddress-Oblivious Code Reuse (AOCR)攻撃。"
- Fadisさんのツイート: "Linuxに他所のプロセスのページテーブルの一部をコピーして、任意のアドレスの範囲をゼロコピーで共有できるようにするシステムコール process_vm_mmap を追加しようという提案がなされているが、ワイルド過ぎる機能にいろんな問題が出てきて揉めてる話(リンク先有料記事) https://t.co/ePSbzGAlc2"
- DrumatoさんはTwitterを使っています: 「insmodのリンク対象はディスクイメージではなくメモリイメージ,なるほどな. ディスクイメージに対して使用中カーネルのシンボルをリンクしてしまったら, それ以降再配置可能なオブジェクトファイルでなくなってしまう(厳密にはそうでもないんだけど)から, 常に使用中カーネルに追従するようにするのか.」 / Twitter
- FadisさんはTwitterを使っています 「systemdに新しいデーモンsystemd-oomdが提案されている。systemd-oomdはFacebookのoomdをsystemdに統合したようなもので、ホストのメモリが不足しているときにカーネルのOOM Killerがプロセスを止める前によりconfigurableな方法でプロセスを止める役割を果たす https://t.co/h5kYgkCd02」 / Twitter
- Systemd-OOMD Continues Coming Together For Better Linux Out-Of-Memory Handling - Phoronix
- FadisさんはTwitterを使っています 「Linuxのページ割り当てを速くするPG_zeroが提案されている。PG_zeroはページテーブルのフラグで、ページが既に0クリアされている事を表す。Linuxはページ割り当て時にページを0クリアするが、これを暇な時に行っておきPG_zeroを立てる事でページ割り当て時の0クリアを省略する https://t.co/bZSGQGqOcY」 / Twitter
- PG_Zero: Faster Page Allocation Proposed For Linux By Zeroing Out Pages Ahead Of Time - Phoronix
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linux 5.8にコンテキストスイッチのたびにL1をフラッシュするオプショナルなセキュリティ機能が入った。将来のためという文言から陰謀論者はすでに脆弱性が存在しているのではないかと噂している。 https://t.co/Fgo7L9zk6H」 / Twitter
- Linux Hardware Reviews, Open-Source Benchmarks & Linux Performance - Phoronix
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linuxで小さなファイルを読むのに最適化したreadfile syscallが提案されている。中身はファイルをオープンしてバッファに読んでクローズするだけ。一度にカーネルスペースで行うので効率的だそうだ。いまさら? https://t.co/fwWTPFliKx」 / Twitter
- Linux Work Culminating On A "READFILE" Syscall For Reading Small Files Efficiently - Phoronix
- FadisさんはTwitterを使っています 「L1 cacheヒットを検知するサイドチャネル攻撃に備えてLinuxにコンテキストスイッチ毎にL1 cacheを消す機能(任意)を実装しようという提案にLinus氏が怒り爆発している。これが有効かは状況に依るが性能に影響を与えるのは明らかで、そんな判断をユーザに委ねるなという事らしい https://t.co/l1AZKG7zR4」 / Twitter
- Torvalds Blasts "Beyond Stupid" Flushing L1d On Context Switches - Reverts Code For Now - Phoronix
- suzakiさんはTwitterを使っています 「カーネルからプロセスのメモリを覗き見させないsecretmemfdシステムコールの提案は面白いが、暗号化はしないようで仮想化によるMemory Deduplication覗き見などは防げないように読める。 Linux Secret Memory "secretmemfd" System Call Remains Under Review https://t.co/gsW7llFUbk」 / Twitter
- FadisさんはTwitterを使っています 「Linuxに新しいシステムコールsecretmemfdが生えるらしい。secretmemfdで作ったfdでmmapするとその領域はsecretになる。secretなメモリはカーネルのdirect mappingから見えなくなり、カーネルを介して他所のプロセスのメモリを覗き見しようとする攻撃が難しくなる。 https://t.co/PyMjQknf2L」 / Twitter
- Linux Secret Memory "secretmemfd" System Call Remains Under Review - Phoronix
- Shinji KonoさんはTwitterを使っています 「Mojave で12GB配列をPerlで確保すると、11GBは圧縮仮想記憶に入れられてしまう。これを調べる課題にすると良いな。Linux は最近は圧縮仮想記憶持ってるの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Zswap っていうのか。 https://t.co/EetCWPHkHa」 / Twitter
- Zswap - Wikipedia
- FadisさんはTwitterを使っています 「Linuxに新しいsyscall trusted_forを追加する提案。実行可能バイナリを置かない場所に実行権限付きの物を置けなくする事は攻撃者の選択肢を狭めるが、スクリプト言語の場合読めれば実行できる。これを防ぐためにインタプリタが「実行する為に読むが良いか」を確認する為の物 https://t.co/XaCLGcjgFU」 / Twitter
- FadisさんはTwitterを使っています 「Linuxではメモリ4KiBのページ毎にそのページの情報を持つ64バイトのpage構造体が作られる。この構造体はアドレスから高速に引けるように配列になっている為、HugePageを使う場合であっても4KiBページ換算での個数分のpage構造体が作られる。先頭のもの以外は先頭の位置が書かれたものが並ぶ」 / Twitter
- FadisさんはTwitterを使っています 「この配列は疎なメモリに効率よく対応する為にそれ自体がページングで必要な部分だけに物理メモリを割り当てている。そこで、HugePageで生じる先頭の位置が64個並んでいるだけのページが同じ物理アドレスを指すようにする事で必要なメモリを抑えよう、という提案がなされている https://t.co/kfmOBR2ouJ」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「page folio で pgbench が 80% 改善とか言っているけど、仕組みが知りたいな。これだけ差が出るならなんか明確な説明がつけられるはずなんだけどな。」 / Twitter
- PhoronixさんはTwitterを使っています 「Been running benchmarks of the Linux "folios" patches and will have out some interesting data tomorrow... #WeWantFolios」 / Twitter
- PhoronixさんはTwitterを使っています 「Memory #Folios Updated A 14th Time For Improving #Linux Memory Management https://t.co/nOgwCVOMWS」 / Twitter
- Memory Folios Updated A 14th Time For Improving Linux Memory Management - Phoronix
- FadisさんはTwitterを使っています 「IBMがLinuxの新しい名前空間「CPU名前空間」を提案している話。親プロセスからCPU名前空間を分離した子プロセスからは/procや/sys以下のCPUの情報を漁った時に、その名前空間の中で見えて良いCPUだけが見えるようになる。CPUのidは見えるCPUで連続になるように振り直される https://t.co/a3CACtn8mN」 / Twitter
- IBM Proposing A CPU Namespace For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「Linuxではcpuset cgroupsを使ってあるグループのプロセスが使って良いCPUを制限できる。しかしこれに対応する名前空間が無い為、制限されていても/procや/sysには全てのCPUが見えており、この情報を元にスレッドプールのスレッド数を決定するようなソフトウェアがリソースを確保し過ぎる問題があった」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「mempolicy 関連のシステムコールがまた増える (home node を指定するやつ) そうだが、ゆくゆくは BPF で制御するようになっていくのではとあって、夢が広がる。」 / Twitter
- LWN.netさんはTwitterを使っています 「[$] Some upcoming memory-management patches https://t.co/DiTcjXLUzJ」 / Twitter
- Subscription required [LWN.net]
- Kazuho OkuさんはTwitterを使っています: 「linuxのプロセスの物理アドレスへのマッピングを調べるツール。NUMAとかパフォーマンス解析に便利そう https://t.co/CafSrwVn3q」 / Twitter
- dwks/pagemap: Userspace tool to map virtual page addresses to physical addresses.
- ytakanoさんはTwitterを使っています 「Slab Allocatorは、ページのアドレスからSlabへの写像を別に持っておけば、Slabの中にデータを埋め込まなくてもいいな。前に実装したときは、データを埋め込んでいたわ。」 / Twitter
- Linuxが新しい多世代LRUページ再利用ポリシーを採用
- FadisさんはTwitterを使っています 「記事ではTHREAD_INFO_IN_TASK(従来スタックの末尾に置かれていたスレッドの情報をより壊しにくい場所に移動)やVMAP_STACK(スタックの端に溢れを検知するガードページを追加)を32bit ARMでも使えるようにした事が述べられている」 / Twitter
MS
IT談話館
- Windows 8/10とJobオブジェクト(基礎)
- Job Objects - Windows applications | Microsoft Docs
- Sandbox
- Windows 8/10のJobオブジェクト
- Windows 7/8/10、セキュリティー、Token、SD
- WinDbgとCPU
- WinDbgとWindowsセキュリティー(旧)
- WinDbgとWindowsセキュリティー
- SetProcessMitigationPolicy function (processthreadsapi.h) | Microsoft Docs
- UpdateProcThreadAttribute function (processthreadsapi.h) | Microsoft Docs
- WinDbgとWindowsカーネルアーキテクチャー
- WinDbg、WMI、システムロガー
- Windows 7/8/10、偽装メカニズム、内部解析技術
NyaRuRuが地球にいたころ
- 必要最小ワーキングセット - NyaRuRuが地球にいたころ
- ウィンドウ最小化時のワーキングセット縮小 : Vista 編 - NyaRuRuが地球にいたころ
- Windows のヒープ管理 - Firefox3 のメモリ使用量 (2) - NyaRuRuが地球にいたころ
- デマンドページング - NyaRuRuが地球にいたころ
- プロセス終了時のページイン: 実験 - NyaRuRuが地球にいたころ
- アプリケーション終了時の大量のページイン - NyaRuRuが地球にいたころ
- ハードページフォールト - NyaRuRuが地球にいたころ
- ソフトページフォールト - NyaRuRuが地球にいたころ
- FILE_FLAG_SEQUENTIAL_SCAN フラグを使用しなかったため,意図せず「メモリの掃除」をしてしまった事例集 - NyaRuRuが地球にいたころ
- 十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - NyaRuRuが地球にいたころ
- 十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - 動画版 - NyaRuRuが地球にいたころ
- メモリ搭載量とパフォーマンス - NyaRuRuが地球にいたころ
- 資料紹介: オペレーティング システムおよび PAE のサポート - NyaRuRuが地球にいたころ
- Windows で Large Page は「使える」か? - NyaRuRuが地球にいたころ
- ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ
- 仮想メモリ戦略に関する大きな誤解 - NyaRuRuが地球にいたころ
- CLR Hosting : 仮想メモリ編 (1) - NyaRuRuが地球にいたころ
- UPX 圧縮するとメモリ使用量が増える事例 - NyaRuRuが地球にいたころ
- メモリ管理コスト - NyaRuRuが地球にいたころ
- Memory Performance Information - MSDN Library - NyaRuRuが地球にいたころ
- Swapfile.sys,スケーラビリティ,「多くの場合,最適化は直感に反する」の例 - NyaRuRuが地球にいたころ
- Windows OS入門:第3回 プロセスとスレッド (1/2) - @IT
- Win32API-プロセスとスレッドの概要
- ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
- あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97) - @IT
- メモリを使用する、とは – kekyoの丼
- Project Zero: Windows Exploitation Tricks: Trapping Virtual Memory Access
- Project Zero: Understanding Network Access in Windows AppContainers
Apple
- mach_kernel はドライバ隔離用プロセス? - NyaRuRuが地球にいたころ
- なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - NyaRuRuが地球にいたころ
本の虫
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- 本の虫: fork()は失敗するんだぜ、覚えときな
- 本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
- 本の虫: GNU/Linuxにおけるプロセス
- 本の虫: Shebangという謎な事実上業界標準について
- 本の虫: DOOM 3 BFGの技術ノート
スライド
- 第6回 自作OSもくもく会 - Google スライド
- 第7回 自作OSもくもく会 - Google スライド
- 7/2 LT - Google スライド
- cpu_info // Speaker Deck
- TEEとIntel SGX入門 - Speaker Deck
- RustはOS界の銀の弾丸になりうるか - Google スライド
- Wayback Machine
ASCII.jp
- ASCII.jp:Go言語で知るプロセス(1)|Goならわかるシステムプログラミング
- ASCII.jp:Go言語で知るプロセス(2)|Goならわかるシステムプログラミング
- ASCII.jp:Go言語で知るプロセス(3)|Goならわかるシステムプログラミング
Wikipedia
- バックグラウンドプロセス - Wikipedia
- プロセス制御ブロック - Wikipedia
- LFUとは 「LFU方式」 (Least Frequently Used): - IT用語辞典バイナリ
- Least frequently used - Wikipedia
- ページ置換アルゴリズム - Wikipedia
- Page replacement algorithm - Wikipedia
- キャッシュアルゴリズム - Wikipedia
- Cache replacement policies - Wikipedia
- 侵入検知システム - Wikipedia
- 侵入防止システム - Wikipedia
- 強制アクセス制御 - Wikipedia
- 任意アクセス制御 - Wikipedia
- アクセス制御 - Wikipedia
- 必須整合性コントロール - Wikipedia
- セキュアOS - Wikipedia
- アドレス空間配置のランダム化 - Wikipedia
- Address space layout randomization - Wikipedia
- Return-to-libc攻撃 - Wikipedia
- Return-to-libc attack - Wikipedia
- オーバーレイ (コンピュータ用語) - Wikipedia
Twitter
その他
- Rockridgeさんのツイート: "Quantum DOMのコンセプトなどを説明した文書。関連するタブをグループ化(TabGroup)するとともにグループ内の同一オリジンのドキュメントもグループ化(DocGroup)し、スレッドを割り振る基準にするようだ。 https://t.co/itCiGJaysq"
- Quantum/DOM - MozillaWiki
- 七誌さんのツイート: "またBSoDの調査を依頼された。ページファイルに不良セクタがあって、ページアウトできずに落ちていたようだ。原因が分かって良かった。"
- 渋川よしきさんのツイート: "macOSみたいなプロセスのメモリの圧縮ってLinuxにはないのかな?"
- るくすさんのツイート: "Linuxカーネルのヒープを初期化後にRead-onlyにするpmalloc関数をHuaweiの技術者が作ったらしい https://t.co/JXzU6pAi3R"
- Huawei Continues Working On Protectable Memory Support For The Linux Kernel - Phoronix
- infvhjさんのツイート: "stackjackingってマイナーな手法じゃない?iOSで聞いたことない"
- Hideki EIRAKUさんのツイート: "fork(2) の性能差比較用 sh スクリプト: m=..;while n=0;do a="$b";while test "$a" = "$b";do b="`date`";n=`expr $n + 1`;done;test $m&&m=${m%.}||echo $n;done"
- AoiMoeさんのツイート: "伝統的にforkは遅いのだ。2BSDはvforkなるad hocなsyscallを作った。forkがそんなに遅くなくなったのはデマンドページングとCoWを組み合わせた4BSDからだが、現代では「ページテーブルのコピーが遅せえよ」という話になり、やっぱり遅い"
- СЮУ1228🏓さんのツイート: "4K pageで256TB - 128PBとかもうページサイズ増やしたほうがよくない…? TLB的にも"
- Fadisさんのツイート: "メモリをたくさん積みたい人に朗報なんだけど、最近Linuxカーネルにサポートが入ったIntelの5レベルページテーブルを使えば物理アドレス空間が64TiB分しかなくてそれ以上メモリを積めない問題が解消されるよ"
- ゆたかさん🐶さんのツイート: "Windows ServerのEnterprise版は割り込みベクタが255までしか取れないため、多数のデバイスが搭載できないけど、Datacenter版なら制限解除されている、というのがあります。 https://t.co/1ZfIGEVSgH"
- なかのん&マジックさんのツイート: "ふと疑問なんだけど、new/deleteの不一致でのメモリリークを起こすような現場、循環参照地獄とか無縁なんだろうか。それと、細かくプロセスを分離というか再起動というか、そういうOS頼みなメモリ周りのクリーンナップには頼らないんだろうか。"
- hikaliumさんのツイート: "特権ユーザー -> 非特権ユーザ -> capability(やれることを制限) -> cgroups(使えるリソースを制限)-> namespace(見えるリソースを制限・仮想化)-> でもまだAttack surfaceがでかい(権限昇格・ネットワークスタック)->というわけでgVisor #gcpug"
- 2018年もアロハシャツエンジニアさんのツイート: "kernelによるOOMキラーが発動する前に様々な条件でプロセスを殺すuserspace動作のoom killer daemon。プラグインによる拡張も可能。良さそう。facebookから。 / “Open sourcing o…” https://t.co/F2ypXue7MI"
- ロボ太さんのツイート: "あるテストのため、メモリを際限なく食いつぶすプログラムをMacで走らせていたのだが、top -o memで監視してるとあるところで使用メモリの増加が止まる。調べたら、MacはMavericksから圧縮メモリという機能がついており、それが働いていた模様。知らんかった・・・ https://t.co/7yiFxy8HL6"
- ロボ太さんのツイート: "Macで開発したコードが「メモリを際限なく食いつぶすコード」になっていることに気づかず、そのままスパコンに投げて速攻でメモリ枯渇起こして死んだんだけど、「あれ?この実行時間で死ぬなら、Macでテストしたときに気がつくはず」と思って調べてみたら、Macにはメモリ圧縮機能があったという……"
- Takashi Kawasakiさんのツイート: "スレッドの使い方って、典型的には投げっぱなしで結果だけもらう的な粒度の低い奴 or 粒度の高い奴超並列的な二択で世界の9割ぐらいの作業はこなせる感じだし、それ以外のパターンを闇に葬る or unsafe コンテキストでしか使わせないというのは一定の意味はあると思う。"
- 品川 高廣さんのツイート: "macOS は syscall() 関数を deprecated にしたけど、将来的に Windows みたいにシステムコール番号をカーネルのバージョンごとに変えたりするんだろうか。"
- Nerry さんのツイート: "非常に稀なケースだとは思うけど、ページフォルトが発生してCR2の値を読み取る前に別のページフォルトが発生したら、後の例外から回復したあと先の例外がうまく処理できなくて破綻するよね:;(∩´﹏`∩);:"
- Nerry さんのツイート: "意図的にこの状況を再現する事は可能だと思うけど、1回目のページフォルトと2回目のページフォルトが初期の段階で分岐して別々のページでCR2を読み取る必要がある 普通に設計したらページフォルトの処理中にページフォルトは発生しないし、そこで万が一例外が発生したら2回目の例外は回復できない"
- Nerry さんのツイート: "他にあり得るとしたらページフォルトが発生して例外ハンドラでCR2を読み取る直前にタイマー割り込みでコンテキストスイッチされて別のスレッド実行中にページフォルトで上書きされた時。これは割り込みゲート使えば起こり得ない。"
- ryoさんはTwitterを使っています 「しばらくx86のpmap見てなかったけどpmap_pageにmutexが足されてた。やっぱりpmap_page枚にmutex要るよね。間違ってなかった!」 / Twitter
- ryoさんはTwitterを使っています 「となるとやっぱりPMAP_PAGE_FINI()的なマクロが必要と思うんだけどもしかしてx86でもdrmkmsなドライバをdetach/unloadしたらmutex残ったまま?」 / Twitter
- ryoさんはTwitterを使っています 「adの人に聞いてみたら、LOCKDEBUGするにはページが多すぎるのでx86ではpmap_pageのmutexにはMUTEX_NODEBUGを付けてて、だからmutex_destroyも要らないんだ、と教えてくれた。なるほど納得。」 / Twitter
- mumumuさんはTwitterを使っています 「SpaceJMP: Programming with Multiple Virtual Address Spaces [ASPLOS '16] NVMの台頭などに備えて,従来プロセスと仮想メモリの関係を見なおし,OSが仮想メモリも第一級オブジェクトとして扱うことで,より柔軟なメモリ管理を実現する手法を提案してBarrelfishやDragon-Fly BSDに実装」 / Twitter
- mumumuさんはTwitterを使っています 「Direct Inter-Process Communication(dIPC): Repurposing the CODOMs Architecture to Accelerate IPC [EuroSys '17] CODOMというアクセス権限がページテーブルベースではなく命令ポインタの位置により決定される拡張アーキテクチャ上で,異なるプロセスの関数を同期的に呼び出す(IPC)手法を提案」 / Twitter
- とみながたけひろさんはTwitterを使っています 「まあそのときは意図的にディスクを遅くしてごまかしたのだが、最近、NVMeな環境で細かくメモリ使ってると、hugepageの分割とかでpagetableが増えるほかでswapoutが追いつかず、pagedaemonが回収するペースが追いつかなくてPANICするみたいなのを見て、歴史は繰り返すんだなーって思ったりした」 / Twitter
mmap
- SODA Noriyukiさんのツイート: "free()してもカーネルにメモリは返らないんぢゃよみたいな話も昔は確かにあったけど、それはmalloc()が内部的にmmap()を使ってなかった頃の話で、たぶん30年くらい前だと思う。"
- SODA Noriyukiさんのツイート: "昔のUNIXにはそもそもmmap()がなかったんぢゃよ...←老害"
- MAEKAWA Masahideさんのツイート: "「次は free() をすべきかどうかで争いがあった、とか言うんでしょ? そんなのはプログラム次第ですよ。」… "
- OGAWA, Tadashiさんのツイート: "mmap () はシングルストレージ OSである Apollo Aegis (Domain/OS) の優位点 (例えば某地図系ホニャララでの大規模画像データへの対応とか) だったとワカモノは伺っております… https://t.co/cWwJTO07e5"
- SODA Noriyukiさんのツイート: "ワカモノ..."
- AoiMoe a.k.a. しお兄Pさんのツイート: "あんまり関係ないが、UNIXのmmapは複数のmmapで連続したメモリをマップした後で、一度のunmapで全部ご破算にできるのだが、Win32のVirtualAlloc系では同じことができなくてな"
- Shiro Kawaiさんのツイート: "何だかTLにmmapのまめちしきが色々流れてきてためになる。自分あんまり深く使ったことないからネタがないけどそういえばmmapは高速なんだがmunmapが意外に重いというのに引っかかったことがあった気がする。"
- Shiro Kawaiさんのツイート: "もう詳細を忘れちゃったけど、数10GBという単位の追記オンリーのデータを複数CPUでread-onlyでmmapするんだけど、データに追加があったら一旦munmapして再map、ってやってた。チューニング時にボトルネックを調べてたらmunmapでべらぼうに時間食ってた(1sのオーダーじゃなかったかな)"
- Shiro Kawaiさんのツイート: "Linux限定だったのでmremapにして回避したんじゃなかったかなあ。いつも時間食うんじゃなくて特定の条件の時だったかもしれない。ただマルチCPUでワーカーが動いてるんだけどさすがに一個のワーカーがそんなにブロックするとあちこちつっかえて外から見て妙な動作になっていたんだった。"
ページサイズ
- 鯉江さんのツイート: "そういえば、なんでページサイズは4KiBなんだっけ?"
- SODA Noriyukiさんのツイート: "80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。… "
- 鯉江さんのツイート: "64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?… "
- SODA Noriyukiさんのツイート: "よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?… "
- とみながたけひろさんのツイート: "昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします… "
- SODA Noriyukiさんのツイート: "なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。… "
- KOSAKI Motohiroさんのツイート: "Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので… "
- SODA Noriyukiさんのツイート: "基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…… "
@kazuho
- Kazuho Okuさんのツイート: "read中に、その引数であるメモリ空間をmunmapすると何が起きるか? RT @unak: accept(2)の最中に、その引数であるfdを別スレッドでcloseすると何が起きるか?"
- Kazuho Okuさんのツイート: "direct i/oでdmaしてる場合とか何かおもしろいこと起きないのかなぁ"
- Kazuho Okuさんのツイート: ".@matsumotory プロセス内ならseteuidやsetrlimit等で十分だし、プロセス分離して「信頼できないコードを実行する」場合に現実的になる要件では、と思っています。インタプリタにsafeモードをつけるという観点だと違うかも"
- Kazuho Okuさんのツイート: "h2o の cgi 対応は、CGI の最大同時実行数分だけあらかじめマネジャーを fork しておくというモデルなので、CGI プロセス多すぎになる問題や fork の負荷問題は発生しないのでみんな h2o 使うといいと思う"
@uchan_nos
- OS作れないマン WalB担当さんのツイート: "Linuxのバディシステムは物理メモリ管理、スラブアロケータは仮想メモリ管理みたいな考え中でいいの?"
- OS作れないマン WalB担当さんのツイート: "vmallocはバディシステムで空いてしまった穴をつなぎ合わせて仮想メモリ空間で連続な領域を作る感じなのかな。ちょっとコード読んでみたいかも。"
- OS作れないマンさんのツイート: "やっぱりリクエストごとのforkはよろしくないしfcgiとかを使うのが正解じゃね >RT"
- CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
- 特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
- デダルス・ユメノさんのツイート: "32ビットページングだと,ページサイズは4KiBまたは4MiB。ちょうど2^10倍。4レベルページングだと,ページサイズは4KiB,2MiB,1GiB。2^9倍ですね。なぜこの違いが出るか分かりますか?"
- デダルス・ユメノさんのツイート: "これは4KiBで表現できるページの数が,32ビットページングでは2^10個,4レベルページングでは2^9個だからなんですね。4レベルページングではリニアアドレスが64ビット=8バイトに拡張されたので,4KiBの中に2^9個しかエントリを入れられなくなってしまったのです。"
@shirouzu
- SHIROUZU(白水啓章)さんのツイート: "ここ20数年、HDD速度の10~20倍の伸び(10MB/s→150MB/s等)&シーク速度向上(数倍?)に比べ、搭載DRAM量は100倍以上(16MB→4GB等)になったため、瞬間的なスパイク発生時の保険以外でのスワップ多用は(昔より必要時間が増え過ぎて)現実的でなくなった、という印象がありますね。… https://t.co/VXvx03aFxL"
- SHIROUZU(白水啓章)さんのツイート: "スワップを設定しなくてもいいというより、設定しても実用性の無い速度に落ち込んでしまう、という感じ。"
- SHIROUZU(白水啓章)さんのツイート: "SSDだと(寿命問題以外は)スワップを定義する価値がありそうで、その遠い延長に NVDIMM-P とかかな。 そういえば、NVMDIMM-PはOS/CPUに透過なメモリとして見せると、CPUストール多発しかねないから、DRAMヒットミス時に別スレッドに切り替え可能な仕組みを入れるのかな。後で調べておこう。"
- SHIROUZU(白水啓章)さんのツイート: "ただSSDにスワップを確保したとしても、(一般ユーザプロセスでも)搭載メモリサイズを少し超えるメモリを確保して、memsetをループさせるプログラムを動かすと、ほぼカーネルフリーズと言っていい状態に陥る。 (コンソールシェルはエコー反応のみ、sshは切断される状態。kernel3.4時代の実験)"
- SODA Noriyukiさんのツイート: "原理的には clean な file cache の物理ページはいつでも解放することができるはずで、回避策はあるような気がしてるんですが、そうなってないんですよね。FreeBSD/DragonflyBSD と Solaris は clean な file cache 専用の page queue があるので実は問題を解決してるかもしれません(←よく知りません… https://t.co/nOlgw8Lmzp"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、NTの開発初期に、カーネルデータは全て物理メモリに置く方針だったのに、ラシッド教授がページアウト可能な方法を示したところ、カトラーはマネをするのも癪だから別の方法でページアウト可能にした、みたいな逸話もあった気も。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用に ps コマンドに PSS/USS を追加表示するコマンドを go で書いたので、公開しておきました。 (VSZ と RSS表示の2つだけだと、実効的なメモリ使用量が調査しづらいため) https://t.co/yE6J4ZiTgm https://t.co/QRQmANANsl」 / Twitter
- shirouzu/pss: pss: ps command with PSS/USS information
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「簡単に言うと、smapsのPss/SwapPss と Private_Clean/PrivateDirtyを集計しています。 (PSS/USS以外も集計すると役立つ項目があったりするかしらん?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「LinuxもNTのように、アドレス空間の予約領域とコミット領域を分離できると良いなぁ。 前者は仮想メモリ確保なし、VSSにも表れない。ページテーブルも使わずAS管理のみ行う(NTと同様)。 使う時は(brk(2)のように)予約領域(の一部)をコミット領域に変更する形。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、mmap(MAP_NORESERVE)はあった。 (ただ昔実験した時にNTと同様の利用は出来なかった記憶が…) ともあれ、malloc標準だと1スレッド作る毎に128MBもVSZが増えて、必要メモリ予測がしづらいので、最初は空間予約のみにして欲しいところ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「pss(https://t.co/yE6J4ZiTgm)を作っても不十分な点は、直接mallocした領域(≒使う気満々)と、将来に備えた空間確保したいだけの領域を別表示できないことだよなぁ(≠実際に物理メモリが割り付けられた領域)。 これはライブラリ&プログラムがNONRESEVEを積極利用しない限り解決しない。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Netflixがmincore(2)をヘビー利用していた話が興味深い。 リブート前に、DBの実メモリ部分をダンプし、再起動後にそれをロードして、再起動後の性能低下を低減していると。 https://t.co/VfNZtKpdUJ」 / Twitter
- Linuxのページキャッシュ攻撃対策の影響は大きく、長期化する見通し【翻訳】 - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FirefoxでYoutube Musicで動画付き再生したら、Firefoxがやたら重くなったので調べてみたら、Firefoxが14GBもコミット済メモリを確保していた。 https://t.co/KE8rPEvrFG」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリのメモリ消費が気になるときは、コミット済みメモリ量を見るのが大事。 (ワーキングメモリ量は騙されやすい)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からタスクマネージャは、デフォルトではコミット済みメモリを表示しない謎。 (それが「メモリ・クリーナー」的な、まじないソフトが出現した一因とも思うのだが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにこの時、Youtube music のタブを閉じても変化無く、Firefox自体を落とす以外ではメモリ解放は出来なかった。 (Firefoxって、タブ:プロセスの関係は m:nなのだっけ…?)」 / Twitter
@EzoeRyou
- Ryou EzoeさんはTwitterを使っています: "@shinh なるほど、ulimit -nがMacだと256、Ubuntuのデフォルトでも1024とfork bombを早期に避けるために極めて厳しいデフォルト設定になっているのですね。"
- Ryou EzoeさんはTwitterを使っています: "システムコールのコストを下げる方法。1コアをシステムコール専用にする。キャッシュ汚染はそのコアのみにとどまる。 https://t.co/WSROiUv0y0"
@nminoru_jp
- 中村 実さんのツイート: "Intel64は4-level pagingでも仕様上4PiB(52ビット)の物理メモリ空間を保証しているんだよな。ページテーブルの予約ビットを使えばマックスの16EiBも行ける。物理メモリ制限はチップセット側の仕様だよな。"
- 中村 実さんのツイート: "ただx86-64/Linuxは256TiBの仮想アドレス空間の半分をカーネルに割り当てて、カーネルの半分を物理メモリとのマッピングを使うので、そのまま64TiBを越える物理メモリを載せてしまうとx86/Linuxみたいな物理メモリを触る時にページ単位に仮想メモリにマッピングする方… https://t.co/joXxY6bXul"
@tociyuki
- MIZUTANI Tociyukiさんのツイート: "linux カーネルには、 まだ fs-uid が残っている。 デフォルトで無効にして、カーネル・コンフィグで有効にできないこともないけど利用非推奨で良いのではないかな。 setresuid (2) システムコールが使えるのだし。"
- MIZUTANI Tociyukiさんのツイート: "ざっと google で検索した印象では、 POSIX の実uid、実効uid、退避uidの3組でデーモンの実効uidを特権と非特権で交互に行き来するやりかたを日本語で解説しているページはないようだ。それ以前に退避uidの解説ページがないようだ。"
@satoru_takeuchi
- satさんのツイート: "とくにHDDだと、ちょっと負荷がかかると要求仕様を満たさない性能に落ちるレベルを突き抜けて、二度と応答がなくなるところまで一瞬で到達しますからね… "
- satさんのツイート: "ページテーブルがメモリを食うというのと、それがforkの計算量に効いてくる、という話は頻出だけどあまり知られてない"
@KuniSuzaki
- suzakiさんのツイート: "The history of documented Unix facilities でコマンドやシステムコールが導入された初期バージョンが示されて面白い。 https://t.co/rDDtchiU4M これを見てWindowsのシステムコールが有効なバージョンリストを思い出した。こちらも面白い。 https://t.co/FgsUg23Z3Y"
- The history of documented Unix facilities
- Microsoft Windows System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)
- ロボ太さんはTwitterを使っています 「CPUって、命令セットとか演算性能が注目されがちだけど、実際はキャッシュやメモリとの接続といった「足まわり」がアプリケーション性能に強く影響を与えてて、そこを解決してから演算まわりを考える感じなんだよね……」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Intel MMU の挙動がチューリング完全であることを利用すると、(メモリを事前にうまく設定しておけば) 割り込みだけで数値演算や条件分岐、メモリ読み書きなどの処理が可能。これを利用して、x86で「1命令も実行させずに」任意の処理を行う手法を示した論文。 https://t.co/ICKdMIG6oi」 / Twitter
- bbss13.pdf
- Nerry さんのツイート: "おれんじぺこのメモリマップは256TBのメモリ空間を512等分して、最初の512GBはアクティブなプロセスのローカルメモリ、前半の残り255個は予約領域、後半の約250個が各アプリのメモリ空間、次の1TBが物理メモリのダイレクトマップ、次の512GBがリカーシブマップ、最後の512GBがカーネル空間だった、はず"
- OSのデバッグ:メモリアロケーション講座 | POSTD
- メモリアロケーションを削減: T.Ishiiのソフト開発記
- 省メモリーに関するデザインパターン 2011.04.18
- スラブアロケータのfree list randomizationの実装について - Qiita
- c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
- Kazuo MoriwakaさんはTwitterを使っています 「きっとこうなる人がいるけどrpmは大丈夫だから安心してアップデートしてね。 シェルスクリプトを(方法はしらないけど)置き換えて事故ったー → よくわからんけど動かしてるシェルスクリプト書き換えるのまずい → シェルスクリプトを含むrpmパッケージ更新したくない ↑↑rpmは大丈夫↑↑」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「スクリプトだろうとバイナリだろうとファイルを上書きする方法でプログラムを更新するのがダメなのであって、インストールコマンドの類はその辺をケアしてる(mvで更新してるか、あるいはrm&&cpで更新してる)から大丈夫だし、シェルスクリプトかどうかは関係ないっス。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@n_soda Windows だと実行中の exe ファイルを上書きできない仕様で救われてる案件もあるのかもと思いました。あれって面倒でもあるのですが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tenpoku1000 あるでしょうね。UNIXでも実行ファイル自身でありかつlocal filesystemなら Text busy エラーが出て上書き不能ですがLinuxだとこのチェックは廃止方向だとか: https://t.co/ykPatqFt7q」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter
- FUJI GoroさんはTwitterを使っています 「GitHub Actionsのインスタンスが CVE-2022-0001 (Spectreの亜種)対策で最近 kernel.unplivileged_bpf_disabled を真に設定したみたい。 回避するには capabilities(7) の CAP_BPF or CAP_SYS_ADMIN を設定するとよさそう。前者のほうが安全だけどLinux 5.8+が必要です。 https://t.co/gQqPFVHk3l」 / Twitter
- Add tests to run selective tracing tests where kernel.unplivileged_bpf_disabled is set to be true by gfx · Pull Request #2975 · h2o/h2o
システムコール
splice
- Kazuho OkuさんはTwitterを使っています: 「これ splice に制限が加わるということは splice を内部で呼んでる sendfile も同様ってことになると思うんだけど大して騒ぎにならなかったあたり、皆まじめにフォールバックを実装してるのかそれともマイナーfsで sendfile 使ってるユースケースがないのか、ちょっと気になった」 / Twitter
- FadisさんはTwitterを使っています: 「Linux 5.10でカーネルのset_fs関数が廃止された際にspliceの振る舞いが変わった話。5.10より前はあらゆるファイルシステム上のファイルはspliceでpipeに結びつけられたが、5.10からはspliceを明示的にサポートするファイルシステム上のファイルのみpipeに結びつけられる https://t.co/rx9do2ixjH」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxはシステムコールでユーザ空間のバッファのアドレス等を受け取るが、ユーザ空間がカーネルのメモリのアドレスを投げてきてもカーネルのメモリを触れないように、カーネルは渡されたアドレスがユーザ空間のアドレスかどうかを随所でチェックしている。このチェックに使われるのがaccess_ok関数」 / Twitter
- FadisさんはTwitterを使っています: 「しかし、カーネル内でファイル操作をする場合等、access_okでアドレスをチェックしている関数にカーネル空間のアドレスを渡さなければならなくなる事がある。このためかつてカーネルにはaccess_okのチェックを一時的に働かなくするset_fs関数が用意されていた」 / Twitter
- FadisさんはTwitterを使っています: 「set_fsは脆弱性の元と考えられていた。set_fsはset_fs(KERNEL_DS)してからset_fs(USER_DS)で戻すまでの間のaccess_okはあらゆるアドレスを通す。プログラミングにおいて開けた後人間が閉めなければならない物は必ず閉め忘れが起こる。set_fsの閉め忘れはカーネルメモリ触り放題脆弱性に繋がる」 / Twitter
- FadisさんはTwitterを使っています: 「このためLinux 5.10でset_fsが廃止された。set_fsでユーザ空間のアドレスを扱う事を想定した関数をカーネル空間のアドレスにも流用するのは禁止され、カーネル空間用に用意された関数を呼ばなければならなくなった。この変更の過程でset_fsにがっつり依存していたspliceをどうするかが問題になった」 / Twitter
- FadisさんはTwitterを使っています: 「spliceはsplice専用の関数がfile_operationsにセットされていない場合にカーネル空間のバッファに対してread/writeする為にset_fsして->readまたは->writeするが、この方法はもはや使えない。set_fsなしでspliceをできるようにするハックが提案されたがLinus氏はこれをあえて入れない方が良いとした」 / Twitter
- FadisさんはTwitterを使っています: 「spliceはファイルのページキャッシュを直接pipeのバッファに繋ぐ為、spliceを想定して作られていないファイルシステム上のファイルのページキャッシュをspliceできるのはそもそも大丈夫なのかという話があり、手の込んだ対応で問題のある仕様を再現するより禁止してしまった方が良い、という考えらしい」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxは基本的に「互換性を壊す変更はいかなる理由があってもダメ」という方針で開発されている為、今回のspliceの互換性を壊す変更は珍しい事例として注目されているっぽい」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxのパイプを高速化する。伝統的にUNIXのパイプはデータのコピーが起きているため遅い。Linuxにあるspliceなどのシステムコールを使うとコピーせず転送できるため、hugepageと組み合わせれば20倍程度の速度が出せる。カーネル内部のpipe実装の詳細についても解説。 https://t.co/tpYyElGBT9」 / Twitter
- How fast are Linux pipes anyway?
- spliceを使って高速・省メモリでGzipからZIPを作る - knqyf263's blog
proot・fakeroot
- 中村さんはTwitterを使っています: 「prootはptraceベースらしい。 fakerootはLD_PRELOADベースなのか」 / Twitter
- Tsukasa #01 (3x vaccinated)さんはTwitterを使っています: 「この記事を見て一番ビックリしたのは、proot という疑似 root プログラムの存在。fakeroot と立ち位置が似ているが、これは……より深い介入を行うんだろうか? よく分からん。」 / Twitter
- ぬん。さんはTwitterを使っています: 「まじか。。 #linux #Ubuntu /Playストアからダウンロードできるもう1つのAndroid上Linux!「UserLAnd」 ~起動直後からいきなりUbuntu 20.04な環境でより便利に - PC Watch https://t.co/9cxE6dzN8Y https://t.co/Uvd8SCUCzY」 / Twitter
- 【西川和久の不定期コラム】Playストアからダウンロードできるもう1つのAndroid上Linux!「UserLAnd」 ~起動直後からいきなりUbuntu 20.04な環境でより便利に - PC Watch
- 中村さんはTwitterを使っています: 「心の師、大山さんのptrace入門(買ったけど読めていない) 研究室時代にこのへん色々とお話を伺ったなぁ。 https://t.co/g3HTl4Q97j」 / Twitter
- Amazon.co.jp: ptrace入門: ptraceの使い方 eBook : 大山恵弘: 本
- 中村さんはTwitterを使っています: 「牧歌的な時代なら、システムコールテーブルを書き換えるというのが速かった(先輩がやってた)けど、今のカーネルだとシステムコールをフックするには、どんな手段が網羅的かつ高速なんだろうか。やっぱりバイナリ書き換え?」 / Twitter
- 新たな形態のLinuxマルウェアが見つかる--検出は「ほぼ不可能」 - ZDNet Japan
- SODA Noriyukiさんのツイート: "CじゃなくてPythonで十分デスヨみたいな意味でCPUが速くなれば手を抜いても許されるようになるけど、コンテキストスイッチのオーバーヘッド自体はなくならないので、結局ユーザランドとカーネル境界を意識したプログラミングスタイルも残りますよ。… https://t.co/Ab3604T2Mq"
- 眼力 玉壱號さんのツイート: "返すのに syscall 呼んじゃうと呼んだ方が block する…のを嫌って bmalloc(Safari が内部的に使ってる allocator)は別の thread 起こしてそいつに返させていた…… "
- Shinji Konoさんのツイート: "なんか、今の時代になっても、system callのオーバヘッドとか言ってる不思議。CPU速くなったんじゃなかったのかよ…"
- SODA Noriyukiさんのツイート: "バンド幅は急速に向上しますがレイテンシの改善はゆっくりですし、アドレス幅が広がればドライブ能力が必要となりレイテンシが悪化するのでメモリ階層を増やして対応します。結果L1キャッシュの容量は30年経っても同レベルです。キャッシュ外せば途端に遅くなるのでコンテキストスイッチは遅いままです… https://t.co/aCHBrZRlwV"
- まさみさんは語りたいさんのツイート: "function failure injectionが拡張されてsyscallが片っ端からinjectableになっていた。"
- 虚無さんはTwitterを使っています 「Intel: 32ビットモードでsyscall/sysretをデコードせずsysenter/sysexitは32ビット/64ビットどちらでも使える AMD: 64ビットモードでsysenter/sysexitをデコードせずsyscall/sysretは32ビット/64ビットどちらでも使えるみたいな面白いやつも まあカーネル空間の話だからあまりユーザー影響ないですが」 / Twitter
- FadisさんはTwitterを使っています 「新しいシステムコールreadfileがLinux 5.13でのバニラカーネル入りを目指してrebaseされた話。readfileはファイルを開いく、指定されたバッファにバッファのサイズ分だけ読んむ、閉じるを1回の呼び出しでまとめて行う https://t.co/XyzGqiEQNv」 / Twitter
- READFILE System Call Rebased For More Efficient Reading Of Small Files - Phoronix
- FadisさんはTwitterを使っています 「システムコールの発行回数を減らせる(これは特に対策する必要があるCPU脆弱性の多いマシンで重要)為、このシステムコールは小さいファイルをたくさん読むシーン(例えばsysfsの中身を漁っている時とか)において性能向上に寄与するとされている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sendfile等と同様、uOP fusion ならぬ、syscall fusion という感じ。 将来、syscallを配列にして呼び出すメタsyscallができてctx sw削減とかあるのかな?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu システムコールで作ったキューペアにユーザ空間からI/Oリクエストを書くとカーネル空間からそれを拾って行ってくれる「io_uring」がメタsyscall的なものと言えるかもしれません」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.13からカーネルスタックオフセットのランダム化が可能になるらしい。この機能はブートパラメータで有効/無効にする事ができ、有効な場合システムコール毎にカーネルスタックのベースアドレスが変化するようになる。 https://t.co/lahS5hv9TE」 / Twitter
- Linux 5.13 Poised To Allow Randomizing Kernel Stack Offset At Each System Call - Phoronix
- FadisさんはTwitterを使っています 「Linuxではシステムコールを起点としてカーネルのコードを実行する際にユーザ空間のスタックとは独立したカーネルスタックを使用する。カーネルスタックを壊せる脆弱性があるとカーネル空間で任意のコードを実行される恐れがあるが、開始アドレスが予測できなくなる事で、そうした攻撃が難しくなる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux の syscall(2) 使う時の定数、 SYS_xxx 使ってるコードと __NR_xxx 使ってるコードがあるけど、どっちが、より適切なんだろう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「アプリからは SYS_ 使えってことっぽいな https://t.co/o5gAKmkeeW」 / Twitter
- c - What are the __NR_-prefixed symbols in glibc? - Stack Overflow
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「これdockerみたいにsyscallのたびにfilter走るやつがはやくなってべんり。自力で全部closeするやつがおるから。 > On Linux, the close_range function has been added. It allows efficiently closing a range of file descriptors on recent kernels (version 5.9).」 / Twitter
- ファイル数が多すぎるフォルダで「ls」コマンドが遅くなってしまう問題の解決方法 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxカーネルにシステムコールを追加する手順。ドライバを書くよりはお手軽なので、カーネルに手を入れる演習としてはいいかも。 https://t.co/wcGNObC1cU」 / Twitter
- Tutorial - Write a System Call • Stephen Brennan
- FadisさんはTwitterを使っています 「IntelがLinuxカーネルにユーザ割込みをサポートする為の新しいシステムコール案を投げている話。ユーザ割込みはIntel CPUの新命令で、ring3で動いているCPUがring3で動いている別のCPUに割込みをかける仕組みで、カーネル空間を経由しない高速なプロセス間の通知に応用できる https://t.co/Ev3NoCpY6K」 / Twitter
- Intel Posts Initial Code For x86 User Interrupts On Linux - Shows Great Performance Potential - Phoronix
- ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
- dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか
- Kazuho OkuさんはTwitterを使っています 「普通の linux 環境は、一般ユーザー権限でログインする際に同時オープン数が1024とかになってて、そこからrootで必要に応じて値を大きくして使うけど、dockerだとkernelレベルの制限の1048576のままになってて。 結果、closefromのユーザランド実装がdockerだと1000倍遅かった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux 5.8 あたりで close_range(2) が追加されたのか。BSD にある closefrom(2) 的な動きをするやつ」 / Twitter
- システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
- 12年間使われているLinuxディストリビューションの脆弱性PwnKitによりローカルの権限昇格が可能に
- FadisさんはTwitterを使っています 「先日のPolkitのローカル権限昇格脆弱性(CVE-2021-4034)(これ自体はPolkit側で塞がれる)を受けてLinuxカーネルで「引数なしでexecveのシステムコールが飛んできたらそもそも蹴るべきでは」という議論が起きている話 https://t.co/CMJcyBCMJ7」 / Twitter
- FadisさんはTwitterを使っています 「Linuxが引数なしのexecveを認めなければPolkitのようなミスをするソフトウェアが居ても直ちに環境変数の実行に繋がらない。argv[0]にプログラム名が入っていることを期待するプログラマは多いためPolkitだけの修正で済ますより包括的な再発防止策をとる事は有益ではある。」 / Twitter
- FadisさんはTwitterを使っています 「ただ、argv[0]にプログラム名が入っているというのは多くのソフトウェアで行われている慣習でしかなくPOSIX含む諸々の標準規格はargv[0]にプログラム名を入れることを要求していない。この変更は実際に雑に書かれたソフトウェアの互換性を壊す事が分かっていて、入れて良いものかどうかで揉めている」 / Twitter
- 2022年2月1日 Qualys,主要Linuxディストリビューションに「Polkit」の脆弱性を警告:Linux Daily Topics|gihyo.jp … 技術評論社
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「seccomp(2)、知らなかった。 (内部でBPFを使った)syscall制限機能と。 ---- 「LinuxのBPF : (2) seccompでの利用」 https://t.co/7VY48ZpRLz」 / Twitter
- FUJI GoroさんはTwitterを使っています: 「Linux用ソフトウェアでaarch64をサポートするにあたってlibcが呼ぶsyscallがだいぶ変わってseccomp(2)で管理するsyscall listがamd64と二重管理状態になり…どうするのこれ。なんかうまい方法ないのんか。」 / Twitter
- FUJI GoroさんはTwitterを使っています: 「syscall許可リストの作成時はいいけど、今後継続的にメンテしていくためにはなにか仕組みを考えないとけっこう大変そうだぞ。」 / Twitter
- 達人さんはTwitterを使っています: 「@__gfx__ Goのソースコードを読んでいると、その辺は気合いでどうにかするしかないんだなという気持ちになります😅」 / Twitter
- FUJI GoroさんはTwitterを使っています: 「@catatsuy ヒエッ…\(^o^)/」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxカーネルは名前が "X"から始まるプロセスを特別扱いしていたことが判明。これは昔のX11サーバがAPIを間違って使っていたため、それを防ぐ措置がそのまま現在まで残っていたらしい。 https://t.co/ed1nz5bx8T」 / Twitter
- The Linux Kernel Has Been Forcing Different Behavior For Processes Starting With "X" - Phoronix
プロセス間通信
signal
その他
- だいありー
- LinuxC | シグナルの操作(2)
- スタックオーバーフローのハンドリング (Stack Overflow Handling)
- SIGSEGVとSIGILLのあいだ - Qiita
- SIG30-C. シグナルハンドラ内では非同期安全な関数のみを呼び出す
- Man page of EXIT
- c++ - What's the difference between _Exit() and _exit()? - Stack Overflow
- 2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」:Linux Daily Topics|gihyo.jp … 技術評論社
- 情報学広場:情報処理学会電子図書館
- terminate - cpprefjp C++日本語リファレンス
- _Exit - cpprefjp C++日本語リファレンス
- quick_exit - cpprefjp C++日本語リファレンス
- Shiro KawaiさんはTwitterを使っています 「プロセス「内」通信なんだけど、Boehm GCはOSによってはGCスレッドの同期にSIGUSR1/2を使ってる。」 / Twitter
- satさんはTwitterを使っています 「よく使われているプログラムでSIGUSR1とSIGUSR2を使い倒してプロセス間通信しているものってあるんかな」 / Twitter
signalfd
- Kazuho OkuさんはTwitterを使っています: 「signalfd はシグナルハンドラでpipeに書き込むのと比較して何がおいしいのか分かってないクラスタ。移植性がなくなるのだけはわかる」 / Twitter
- _ko1さんはTwitterを使っています: 「@kazuho いちいち書くのが面倒だったんですかね。大量に signal が送られる app だと性能的にも有利なんでしょうか(SIGCHLD たくさん? aio?)」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています: 「@_ko1 @kazuho 私は全然詳しくないですが Kernel events without kevents [https://t.co/gzcLiqQTR4] https://t.co/5MvywiG15i を見ると「いちいち書くのが面倒」が正解のようです。性能のほうはわかりませんでした。 あと https://t.co/0psmuWiawk にkqueueとepoll+signalfdの比較コメントがあって興味深かったです」 / Twitter
- actually, BSD kqueue is a mountain of technical debt | Lobsters
snprintf_ss(3) :NetBSD
- 椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「そういうような環境だと printf のフットプリントの大きさよりも,再入可能ではない実装だったり,内部で malloc() することがあるといったことが問題になったり」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「いわゆる組み込みの分野だとprintfってフルセット全部持つとちょっと大きい気もするので、コンパイル時にフォーマット文字列を解釈(コンパイル)しておけばいいのにって思うことはある。簡単に出来そうなので実装例もあるかもしれない。」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「まあでも今どき「printfが大きい」って言うことも少ないかな。Cortex-M0+ですら浮動小数点までフルセットで持ってたりするよね。(当然ながらsoftware floatのランタイムも付いてくる)」 / Twitter
- 椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「ぼくたちが欲しかったのは,小さくした printf ではなく,再入可能で複数のタスクから呼んでもおかしなことにならず,予期しない malloc() が sbrk() してヒープをぶっ壊したりしないことが保証されている printf なんですよ……」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kunukunu NetBSDだとsnprintf_ss(3)っていうのがあったりします: https://t.co/yw83JLuviG snprintf_ss() and vsnprintf_ss() are signal-safe standalone versions that do not handle floating point formats, positional arguments, and wide characters.」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「最初 async-signal-safe だってんで snprintf_ass() になりかけたんだけど、ass はまずいってんで _ss になったという経緯があったりw (chatででた冗談まじりの雑談が発端なのでメールには残ってないと思う)」 / Twitter
- 椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「@n_soda おお~,signal handlerから呼んでも大丈夫なのがあるんですね!」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kunukunu はい。これ欲しいですよね。」 / Twitter
ジョブ制御
- SODA NoriyukiさんはTwitterを使っています 「大学の計算機センターに富士通製のΣワークステーション(mc68k系だったような? ヒト桁MIPS)があって、それは端末がわりにちょっと触ったことがあったような気がする。 1989年の話」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「あと富士通製のUNIXミニコン(?)があって、これはワークステーションよりかなり速かった。30 Dhrystone MIPSくらいはあったような。CPUは何だったんだろう。 学内のNetNewsグループとかはこのマシンがサービスしてて、みんなログインして使ってた。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「このマシン向けにbashを野良ビルドしたんだけど、当時のbashはシグナル処理がジョブコントロールのないSystem-V系UNIXに対応してなくて、子プロセスをContorl-Cで止めたらbashまで死んでしまって腹を立てて直したことを思い出した。おかげでbashの第一印象は微妙だったなあ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「ジョブコントールがあるUNIXだと対話的シェルの子プロセスはそれぞれ別のプロセスグループに属すため、フォアグランドプロセスグループに属する子プロセスにControl-Cを送っても親であるbashには届かないのに対し、ジョブコントロールがないと届いて死亡する…みたいな話だったような(うろ覚え」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「ジョブコントロールって若者は使ってるんだろうか。 タブつきターミナルとかtmuxとか使ってると、ほとんど使わないような気がしてる。 僕は老害なのでめっちゃ使ってるし、おかげでsshのControlMaster機能は僕には役に立たない…(ControlMaster使うとsshクライアントをsuspendできなくなるため」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「System-V R3 くらいには*BSD由来のジョブコントロールとは別の方式のジョブコントロール機能があって、こいつは*BSD式の端末プロセスグループ切り替え方式じゃなくて、仮想端末をジョブごとにそれぞれ割り当てる方式だった。仕組みとしては今のtmuxから画面出力制御やキーの横取りを取り除いた感じ」 / Twitter
ASAN
- Kazuho OkuさんはTwitterを使っています 「「main から抜ける時にリソース解放してない、みたいなこと言われないように _exit 呼んでる」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ひょっとして「asanでリーク発見しました」みたいなことを言う人たち、_exit呼べば黙るのでは(asanがリーク報告するのはおそらく_finiの中だから)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シグナルとmainの話なんだけど、たとえばmain抜けた後で_fini動いてる途中とか、その後でシグナル来ることってありますやん。そういう時にシグナルハンドラでできることってなんなんやろ。どうやって皆、動作保証してるんやろ。_exit呼んでる? シグナルハンドラをunregisterしてる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「普通はこんなタイミング問題どうでもいいんだと思うけど、asanが_finiの中で、グローバル変数の監視解除するのに時間かかってて発覚した」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho _exit は副作用強すぎるので、その症状だけならunregisterかblockが無難ですよねえ…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho もっとも、本当に _exit で良いと分ってるならそれが一番高速ですけど…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。一般論として、_fini中にシグナルハンドラが動く場合は、共有ライブラリの関数も呼べない可能性がある、とかそういう制限はあるんでしょうか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda LeakSanitizerが動かない!ってissueたてられそうなので、それはやめとこうかなと思ってます」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho たとえばシグナルハンドラでは async-signal-safe として規定されている関数を呼んでるのみであれば問題ないような… 今回は自前の実装と相互作用のある処理をたぶん呼んでいるんですよね…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda あいや、今回は main のローカル変数のアドレスが、グローバル変数のポインタに登録されていました。そして、_fini -> __asan_unregister_globals呼び出し中に、シグナルが配送された結果、ASANがstack underflowを深刻しabortしていました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda うーん、ASANと組み合わせて動くようにしておきたいという前提があるなら、_fini呼び出し前にシグナルハンドラをblock/ignにしておくべきな気がしてきた。ASANが自身を登録解除中に正しく動作する保証あるのかって話になるし」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho なるほど、そういうケースならmain()の最後で #if 1 /* not strictly necessary, but make ASAN happy */ global_var = NULL; /* unref local_var for ASAN */ #endif としとくのが将来もその処理の理由を忘れなくていいような気がします。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda んー、シグナルハンドラが正しく実装されていれば、それで良いですが、ASANはバグを検出するためのツールじゃないですか。で、ASANは__asan_unregister_globalsが呼ばれている間も正しく動作する保証があるのか。保証ないのであれば、mainを抜ける前にシグナルハンドラを登録解除するほうがいいかなと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕が誤解しているかもしれないんですが、シグナルハンドラでは、mainのローカル変数をグローバル変数経由で参照しているんですよね? だとするとこのケースに限定すれば問題が実際に存在しASANは正しくそれを報告しているので、粛々と問題に対応するのがいいような気がしてます。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda ありがとうございます。正しいコードとしてはそれでもよいのですが、今回みたいなバグがあった場合に、ASANが発狂しないか、ということを気にしています。ASANが発狂して悩むくらいなら、シグナルハンドラをunregisterしちゃっていいんじゃないかと。ちなみに https://t.co/QEzTjeNf78 これです」 / Twitter
- [server] [bug-fix] Crash in h2o_multithread_send_message() when on_sigterm() is called twice by nalramli · Pull Request #2913 · h2o/h2o
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 僕もASANの仕様は分からないです。 あとmain()の最後でunref する処理がけっこう面倒なら、unregisterを不正な参照対策として行うってのも(ASANの仕様に関わらず)アリですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実行ファイルの書き換えに限らず、unixってTOCTOUまわりが適当なんだよね。TERM送ってグレースフルシャットダウンします、って、シグナルハンドラ登録前やったらどうなるねんみたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シグナルハンドラ、マルチスレッドと違って、ハンドラ側の操作は他の部分からはアトミックに見えるのが、ややこしい」 / Twitter
- ゆたかさん🐬さんのツイート: "シグナルハンドラで使用可能な関数は、下記サイトに記載されていますが、非常に少ないです。printf()やfopen()などがまず使えません。実際に誤って使用しても、それなりに動いてしまうので問題に気付きにくいです。 https://t.co/cvbnhTp8NZ"
- signal-safety(7) - Linux manual page
- ゆたかさん🐬さんのツイート: "シグナルハンドラで使える関数は決まっていて、思いのほか少ないのですが、その制約を守れていない実装が存外多く蔓延っています。BusyBoxのsyslogdの-mで使われているシグナルハンドラはシグナルセーフではないため、まれにデーモンが暴走することがあります。 https://t.co/mJ6z8u7b2g"
- Linux シグナルの基礎 - harasou.jp
- ぬるぽへさんのツイート: "マルチスレッドなら同じシグナルハンドラが普通に並行に走るな・・・(この動作ってPOSIX的にオッケーなんだっけ"
- ゆたかさん🐬さんのツイート: "killコマンドはプロセスに終了してね❤と通知するだけなので、実際にプロセスが死んだか別途確認する必要があります。 PIDは再利用されると、別プロセスが同じ番号を使うので存外難しい。 1.kill PID 2./proc/PID がない 3./proc/PID/exe を確認"
- Takanori Watanabeさんのツイート: "とりあえず、SEGVを割り込んで途中で止められるようにして欲しい。 (デバッグ中の数ギガクラスの巨大なイメージのプログラムのコアダンプを20分ほど待ちながら)"
- mattnさんのツイート: "SEGV は Segmentation Falut の略だよって人、なぜ Violation まで付けて説明しないのか。"
- Fadisさんのツイート: "/proc/<PID>/以下ににシグナルを送る為のファイルを作る提案がなされている。既存のシステムコールを使った方法ではPIDが再利用された場合間違ったプロセスにシグナルを送る恐れがあるが、作り直されたディレクトリは以前の物と区別される事を利用してこの問題を回避できる https://t.co/JiKCIwMyVq"
- New /proc/pid/kill Interface Proposed For Killing Linux Processes - Phoronix
- まさみさんは語りたいさんのツイート: "signalで実装するとsignalハンドラでキャッチした後スリープしてる本体のスレッドを叩き起こし、戻る必要があるが、signalfdで待っておけばepollですぐに本体で対応できる。"
- Fadisさんのツイート: "Linuxが新規プロセスに付ける番号(PID)は1から32767までの狭い空間の使用中でない値なので、短時間で終了するプロセスが大量に動くシステムで、PIDを指定してシグナルを送ると、それが既に終了していた場合、シグナルが意図したプロセスとは別のプロセスに届いてしまう事がある。"
- Fadisさんのツイート: "この問題を解決する為に、現在Linuxカーネルで対応が進められているのがpidfd。これは/proc/<PID>ディレクトリに対するfile descriptorで、/proc/<PID>が別のプロセスになっても、fd指定でシグナルを投げる事で古い方のプロセスに向かってシグナルを投げている事をカーネルに明示する事が出来る"
- ITが分からないbeepcap@HTTPSの強制には反対さんのツイート: "64bit環境では22bitほど割り当てられるので、比較的問題は小さくなる。… "
- Fadisさんのツイート: "ちなみにLinuxはnamespaceでPIDの空間を分ける事ができる(よその名前空間のプロセスは見えなくなり、よそではすでに使われているPIDが未使用になる)為、ものすごい勢いでプロセスを作って終了させるヤツを他のプロセスが属すPIDの空間から隔離する事は、古めのカーネルでもできる"
- FadisさんはTwitterを使っています 「errnoは誰もがerrnoの扱いに関するルールを守る限りにおいて正しく機能するが、君はerrnoを書き換えるかもしれない処理をするシグナルハンドラの最後でerrnoを以前の値に戻すのを忘れたことが無いのか?!」 / Twitter
- FadisさんはTwitterを使っています 「strace: ユーザ空間のプロセスが実行中に呼び出したシステムコールと、受け取ったシグナルを横から眺めるための仕組み。この関数は最終的にカーネルに要求を投げてる筈だけどどんなシステムコールを使ってるの?なんて時に調査が捗る #nekoi7yu_tech」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「UNIXプロセス周りのバグの何がやりづらいって並行性由来の非決定的動作がグローバルに連動して発生する点で、今回はvscodeでの編集中に型エラーが出たり消えたりする原因がツールチップのプリティプリンタ(ocamlformat)を呼ぶスケジューラのwait()とプリプロセッサ(PPX)を呼び出すsystem()の干渉だった」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「こういうの、わかる人にはわりと早い段階でピンとくるのかもしれないですが。前回 https://t.co/NkZNs4Cufk」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「かなり昔、TCP使ったミドルウェアで切断時の再接続が偶に発生しない障害に悩まされた。詳しく調べるとリモートに送っているはずのデータ列が突如/var/log/syslogにリダイレクトされていく怪現象。どうもsyslogのライブラリがSIGPIPEハンドラをセットしており、そこで同じ番号のfdが再確保されていた…」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「SIGPIPEハンドラから戻ってくると元のFDが生きてるように見えるのでその後のwriteでは例外が起こらずに再接続も発生しない。本来どうするのがベストプラクティスなのか忘れてしまったけど、当時すこし気が動転してランタイムのバグを疑ったりgdbでトレースしたりと人生ワースト5に入るバグだった」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「当時のコード(多分)を見つけた。ピアとの接続が切れた時のSIGPIPEが、syslogdとの接続が切れたのと誤認される→ピアとの古いFDが次のsyslogdとの接続に再利用され→ハンドラ終了後ピア向けの書き込みがsyslogdに流れる…のか?お作法がまずいのだろうか、プルリクを出そうね… https://t.co/YbZNXdbt4r」 / Twitter
- ocaml-syslog/syslog.ml at v2.0.2 · geneanet/ocaml-syslog
- Yasuhiro HayaseさんはTwitterを使っています 「@keigoi エラーが起きたfdを区別する仕組みがないのですよね.非同期実行のため,外部変数の読み書きや関数呼出しも制限されるため,速やかにexitする目的以外でSIGPIPEハンドラを使うと問題を起こしそうです.(リカバリしたい場合はwriteのEPIPEに対処せよとの記事を見付けました https://t.co/nGNzttgNJs )」 / Twitter
- c - Using signals and sigpipe - Stack Overflow
- Keigo ImaiさんはTwitterを使っています 「こんなの大昔からシステムプログラミングの定石がありそうだなと思うんだけど、何なんだろう…。単にSIGPIPEを無視してwriteの戻り値をチェックするように変えるのが良いのかな。 いずれにせよ、ライブラリ側で暗黙にシグナル操作をやられるとハマりそうではあります。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「やはり単にサーバープロセスはSIGPIPEを無視するのが定石のようで。元の文脈でいえば、その辺のライブラリを拾って適当に使う前に事前によく検討しよう、という結論のような気がする(当時もそう思った気がするが選定したのは私ではなくてあまり自信もなく、開発元にcontributeしないのもよくなかった」 / Twitter
- ytakanoさんはTwitterを使っています 「プロセス管理のコード書いてみたけれど、本質的にシステムコールが不完全な気がしてきた。」 / Twitter
- ytakanoさんはTwitterを使っています 「SUGCHLD、プロセスグループに変更があったときにも通知されるべきでは。」 / Twitter
- シグナルハンドラにprintf()を書いてはいけない - Qiita
Twitter
CAP定理
- TAKI, Yasushi (瀧 康史)さんはTwitterを使っています 「とりあえず、「分散すれば良い」と簡単に思ってる人は、拡張CAP定理について書いたので、読んでほしいな。 https://t.co/M9sXkaJ2m9」 / Twitter
- Shinji KonoさんはTwitterを使っています 「本質的にスケールするためにはCAP定理のどこかを諦める必要がある。どれかは明解。そうすれば自明にスケールして、ネット上の情報交換はほぼ無料になる。そして、インターネットは再び儲からないものになる。トランザクションを要求するものは別。」 / Twitter
- 時空に拡張されるCAP定理:落ちず、速く、確実なサーバをどう作るのか? - JUSTPLAYER インターネットサービス
UNIXドメインソケット
- Fadisさんのツイート: "mysqlはlocalhostに接続する時にmysqldが作ったUNIXドメインソケットを使おうとするが、この時mysqldのプロセスがあるかとかは見ていなくて、別のコンテナのmysqldが作ったソケットをbindマウントで持ってきて見える状態にすると、localhostにないmysqldにlocalhostで繋がる、という知見が得られた"
- syuu1228さんのツイート: "一般的にこういうアプリでUNIXドメインソケットでつなぐ前にプロセスの生存確認ってわざわざしない気がする(繋がらなければ生存してないとわかるし…"
- Kazuho OkuさんはTwitterを使っています: 「Unixドメインソケット、送信バッファと受信バッファを別々にもつ必要ないと思うけど、OSの実装的にはどうなってるんだろう。https://t.co/RGdrwlN0QH を見ると、バッファは単一で、そのサイズは SO_SNDBUF なのが一般的?」 / Twitter
- IPC Buffer Sizes
@kazuho
- Kazuho OkuさんはTwitterを使っています: 「可用性が高く、メッセージへの参照を持つことができる、セキュアなメッセージキューがあります。各アプリケーションはメッセージキューの読み書きをすればよろしい、ってのはエンタープライズアーキテクチャには便利だわなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「スケーラビリティのためにはイベントドリブンプログラミングが必要だけど、単にイベントドリブンするとワークセットがでかくなってパフォーマンスが出なくなる問題」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ちょっと具体的に言うと、ワークセットを小さくするにはイベントループに戻るケースを最小化すべき → 非同期になった場合と同期的に処理できた場合の両方を統一的にコーディングできるよう設計すべき → tail callが便利 → 返り値を返す関数とcbを引数にとる関数の峻別が必要」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「リソースロケータと読み書き手順の標準化による効率化、ってことなのかな。なるほどねぇ / https://t.co/AOSpdixnST」 / Twitter
- 中国で公共サービスのブロックチェーン導入進む。十数日かかる企業登記が3日に短縮 ~知的財産権訴訟の和解処理も大幅効率化 - 仮想通貨 Watch
- Kazuho OkuさんはTwitterを使っています 「一般論として、大量のパケロスが発生するような状況はキューの積み上がりと再送による遅延が激しくなるので、そこまでアグレッシブに送るメリットがないと理解しています。輻輳ギリギリを狙うのが吉」 / Twitter
- ReiOdairaさんはTwitterを使っています 「UDPの性能評価がよくわからん。UDPを生で(?)使ってる人にとってはレイテンシとパケット落ちない最大スループットが重要?パケット30%落ちるけどn Gbps出ます、みたいな領域でUDP使ってる人いるのか?でも最近はUDPの上に到達保障性のあるレイヤー重ねることも多いだろうからまた評価基準が変わるか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「他のフローを追い出すとか邪悪なことをやりたいならともかく」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「規格統一の話とは少し違うけれど、A.タネンバウム先生の「分散システム」としてのMS DCOM評を思い出した。 「DCOMを批判することは難しくない。しかし何千万人が毎日使っているという意味で、CORBAや他のいかなる分散システムも遠く及ばない」 https://t.co/JJcrU5Ooub」 / Twitter
- 深津 貴之 / THE GUILDさんのツイート: "「エンジニアが1ピクセルの精度を軽んじる」っていうけど… デザイナも「エンジニアがミリ秒単位でチューニングしたレスポンスを、デカイjpeg貼って台無しに」とかするので、やっぱ相互理解が大事だよなぁと思いました"
- ねこさんはTwitterを使っています 「“システムの作り直しは失敗しやすく困難なので、しばしば悪い方針だと言われます。” そうなのかー…弊社内だとすごくよく見る https://t.co/KisyvzS6gG」 / Twitter
- 人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
- ねこさんはTwitterを使っています 「これ,たぶんRPC protocolが統一されてて,micro service architectureと下層の状態が高度に隠蔽されているからな気がする(あと依存系の更新が頻繁に起こってdefacto standardがちょこちょこ変わるのもある」 / Twitter
- 検索インフラを安全に切り替えた話 - クックパッド開発者ブログ
- SODA NoriyukiさんはTwitterを使っています 「お、NetBSDに関する特記がある珍しい...とよく見たら jschauma @ NetBSD . org (2016年に developer としては引退したけどメールアドレスはまだ有効) のサイトだった」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unixのプロセス間通信(IPC)は通常バッファを使って行われるが、そのバッファサイズはカーネル+通信の種類 (pipe, mkfifo, UnixドメインソケットのDGRAM/STREAM) によってかなり異なる。しかもバッファの挙動は書き込みパターンによっても違っており、非常に複雑。 https://t.co/wyj9qZqQOw」 / Twitter
- IPC Buffer Sizes
- Fadisさんのツイート: "SwitchのOSはマイクロカーネル → 高速なIPCが欲しい → スレッドごとに独立した共有メモリを使って別のプロセスにデータを投げる #kernelvm"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「pv (Pipe Viewer) - Unixパイプを流れるデータの流量を計測するツール。パイプライン中のあらゆる場所に挿入できる。 https://t.co/Ymq2r7NOm7」 / Twitter
- ivarch.com: Pipe Viewer
- ToolTalk - Wikipedia
- Common Desktop Environment - Wikipedia
- Common Desktop Environment - Wikipedia
- D-Bus のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- D-Bus - Wikipedia
- D-Bus - Wikipedia
- AppleScript - Wikipedia
- AppleScript - Wikipedia
- スクリプトエディタ - Wikipedia
- PC内のプロセス間通信に対する中間者攻撃--パスワードマネージャから情報流出も - CNET Japan
- In-Process コンポーネント技術の限界 - NyaRuRuが地球にいたころ
- 情報学広場:情報処理学会電子図書館
- Security Tips for IPC - The Chromium Projects
- 編集長の眼 - 若手が知らない昔の技術MQ、クラウドではホットだ:ITpro
- MSMQと.NET Core
- ウェブシステム内の待ち行列をMackerelで可視化してみる - ゆううきメモ
- 分散キューという名の苦しみ - Software Transactional Memo
- 分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
- プロセス間通信 - Qiita
- 本当は恐ろしい分散システムの話
- Oracle Cloud、マルチプラットフォーム対応の運用監視ツール「Oracle Cloud observability and management platform」発表。ログの一元管理から分析、分散トレーシングなど - Publickey
- gRPC、Ballerina、Go言語を使用したマイクロサービス開発の実例
- Microsoftの「マイクロサービス開発」を支援する分散アプリケーションランタイム「Dapr」がバージョン1.0に到達 - GIGAZINE
- KOBA789さんはTwitterを使っています 「分散システムの議論って必ず「まずは分散させるな」「それでも分散させなきゃならない理由は何だ」という話から始まるべきと思ってて、全然キラキラしてないけど一番大事なのはそこだよなっていう」 / Twitter
- ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開 - Publickey
- 分散キューという名の苦しみ - Software Transactional Memo
同期 API
その他
- そろそろvolatileについて一言いっておくか
- ホイール欲しい ハンドル欲しい » Archive
- 5章 カーネルの同期処理 - iplab 2011
- DSAS開発者の部屋:並列プログラミング(その3)
- emcjp/ at master · herumi/emcjp · GitHub
- Thread/Synchronization 補足資料
- TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
- スリープループによる消費電力とパフォーマンスの改善 | iSUS
- RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT
- QCon New York 2017: システム内のイベントの順序付け
- x86 に Persistent Memory 用の命令が追加予定 - 教育は参考ブログ
- PCOMMIT 命令は廃止に - 教育は参考ブログ
- 状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
- CPUスケジューリング - 13DeadLock.pdf
- SPIN モデル検査: 検証モデリング技法 - 中島 震 - Google ブックス
- 世界で闘うプログラミング力を鍛える150問: トップIT企業のプログラマになるための本 - Gayle Laakmann McDowell - Google ブックス
- Rustの `Arc` を読む(4): アトミック変数とメモリ順序 - Qiita
- x86 lock 特権 - Google 検索
- okamo(aged 5 yrs.)さんはTwitterを使っています 「なんか忘れてしまったけどcoherentかconsistentかみたいな話について似たような議論を繰り広げた記憶がある」 / Twitter
- アトミックな加減算命令 x86 - Google 検索
- A Primer on Memory Consistency and Cache Coherence - part2_2_sorin12.pdf
C
- 条件変数 Step-by-Step入門 - yohhoyの日記
- 条件変数とデッドロック・パズル(出題編) - yohhoyの日記
- 条件変数とデッドロック・パズル(解答編) - yohhoyの日記
- atomic型と整数型のサイズ - yohhoyの日記
- atomic変数間のatomicなコピー - yohhoyの日記
- restrictキーワードへの対応状況 - yohhoyの日記
- restrictキーワード - yohhoyの日記
- 続 restrictキーワード - yohhoyの日記
- volatile教、あるいはvolatile狂 - yohhoyの日記
- (抄訳)N4215 memory_order_consumeの利用と実装に向けて[§5-6のみ] - yohhoyの日記
- (翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
メモリモデル
x86
- yohさんはTwitterを使っています: 「x86でもStoreLoadバリアが必要なケースあると思われ https://t.co/5a6rNpk6GX https://t.co/FtleEav5eP」 / Twitter
- Memory Reordering Caught in the Act
- キノコになりたい🍄さんはTwitterを使っています: 「x86-64のCPUはつよいメモリモデルを持つのでOoOでも結局volatileアクセス順序は保たれそう? シングルスレッドだけを見るならvolatileアクセスの逐次一貫性を保証するのに追加のバリアは要らないよねきっと・・・」 / Twitter
- omni 鳥頭さんはTwitterを使っています: 「@yohhoy @onihusube9 あれ?この引用されている記事は異なるメモリに対するお話ではないんですか?」 / Twitter
- キノコになりたい🍄さんはTwitterを使っています: 「@kariya_mitsuru @yohhoy 私としては、異なるvolatileオブジェクトのアクセス間でも結局x86ならmovで十分なのでは??? と考えていたので、この記事で見事に間違っていることが分かりました・・・」 / Twitter
- omni 鳥頭さんはTwitterを使っています: 「@onihusube9 @yohhoy あ~、それはダメですね…」 / Twitter
- yohさんはTwitterを使っています: 「@kariya_mitsuru @onihusube9 通常は異なるアドレス(変数)アクセス間のConsistencyが議論の対象ですね。ただ一部の超よわよわメモリモデルプロセッサだと、同一アドレスアクセスの順序すら入れ替わることがありえたり(Intel Itaniumのld命令とか)」 / Twitter
- yohさんはTwitterを使っています 「x86メモリモデルのままmany core化とか無理やったんや」 / Twitter
blog
- メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
- メモリモデル (プログラミング) - Wikipedia
- マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
- 言語仕様とメモリモデル:柴田 芳樹 (Yoshiki Shibata):SSブログ
- C#のメモリモデル、スレッド処理 - tixture55’s diary
- プロセッサのメモリコンシステンシモデルについて - FPGA開発日記
- メモリコンシステンシについて
- std::atomic の挙動がメモリオーダーによりどう異なるか - uchan note
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「ちょっと人とスピンロックの議論をしてxchg命令の復習をしたくなったので、自分で書いた記事を読んだ。いやあ、当時の自分、すごいちゃんと記事書いてるなw / データ競合と happens-before 関係 - uchan note https://t.co/Ndo8RxAtc3」 / Twitter
- データ競合と happens-before 関係 - uchan note
- C++ の release sequence の意味と役割 - uchan note
- メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて) - FPGA開発日記
- メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて) - FPGA開発日記
- 各種プロセッサのメモリオーダリングについて : 竹下世界塔の計算機よもやま話
- SPARCのメモリオーダリング : 竹下世界塔の計算機よもやま話
Java
- Javaの並行処理を理解する(入門編) - Qiita
- yohさんはTwitterを使っています: 「JavaのvolatileがマトモになったのはJava5あたりだし Java1.0時点ではC言語のキーワードを持ってきただけなんだと思う その頃はvolatileをスレッド間同期に使えそうな雰囲気・解釈がそこそこあったハズ」 / Twitter
- yohさんはTwitterを使っています: 「https://t.co/jdJC8E99gE https://t.co/1IbQxltg6E」 / Twitter
- japan-technology/j-jtp03304-pdf.pdf at main · IBM/japan-technology
- くまぎさんはTwitterを使っています: 「@yohhoy volatileでふと思い出してDouble-Checked Lockingを調べたら、結論だけ合ってるけど過程が間違ってる記事が2020年に新たに書かれている…。 https://t.co/reYKtKzHPu」 / Twitter
- CYBERer.NET: Double-checked locking は使わないようにしましょう
- くまぎさんはTwitterを使っています: 「@yohhoy どこが間違ってるかというと、OoO実行するのはCPUのせいではなくてJMMがsynchronizedでもvolatileでもない操作は言語の意味を壊さない程度にリオーダーする物なので、In orderなCPUでも同じ問題が起きうる。」 / Twitter
- yohさんはTwitterを使っています: 「@kumagi 人類にメモリモデルは早かった...」 / Twitter
- くまぎさんはTwitterを使っています: 「@yohhoy CC先生もお怒りです。」 / Twitter
- C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
- 第 1 章 マルチスレッドの基礎 (マルチスレッドのプログラミング)
- C++ マルチスレッド 入門
- C# - マルチスレッド化でのC#メモリモデルの挙動|teratail
- atomic::compare_exchange_weak - cpprefjp C++日本語リファレンス
- yohさんはTwitterを使っています 「@uchan_nos https://t.co/pImzOF89xO TSOより強いsequential consistencyを実現するためにXCHG命令が使えますね。」 / Twitter
- c++ - Why does a std::atomic store with sequential consistency use XCHG? - Stack Overflow
- 逐次一貫性 - Wikipedia
- メモリコンシステンシモデル memory consistency model - ppt download
- yohさんはTwitterを使っています 「C/C++メモリモデル上はbit-fieldの扱い超ややこしくて、隣接するbit-field間は並行アクセスすると全部ぶっ壊れる可能性があった気がする(やや過激な表現)」 / Twitter
- yohさんはTwitterを使っています 「“Strong” and “weak” hardware memory models | Sutter’s Mill http://t.co/1HdfybmFRG SeqCstなメモリモデルでARMの新しいinstructionがいけてる(ようになる)みたいな記事があったな と」 / Twitter
- “Strong” and “weak” hardware memory models – Sutter’s Mill
- yohさんはTwitterを使っています 「AppleM1登場で ARM/x86 memory consistency modelのような超マイナー領域話題に日が当たってるのウケル」 / Twitter
- yohさんはTwitterを使っています 「今はなきItanium(IA-64)のよわよわメモリモデル https://t.co/GPalabvCVD 同一スレッドから同一メモリ位置を2回loadする順序ですらひっくり返る(ことがある)位だったらしいので凄い」 / Twitter
- [cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model
- yohさんはTwitterを使っています 「メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳 https://t.co/77SfsgR0Wi 続編!!」 / Twitter
- メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
- yohさんはTwitterを使っています 「個人的にも "裏技" という印象が強いかなぁ... memory coherence制御ってマルチコアプロセッサの基礎的なレイヤのイメージがあるから そこをOS thread単位で変えられるとか聞くとびっくり(ハード寄り知識不足に起因した印象なのかもしれず)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「良い解説記事。他のメモリモデルをサポートすることは特に禁じられてないだろうし、裏技かどうかはともかく / https://t.co/b2PB8GfcRK」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「裏技かどうかは感覚の話であって記事の技術的正確性には関係ない話だけども。個人的には、より制限のきついtsoモードで動くのは仕様準拠である以上、フラグで制御できる省電力モード足すのと変わらん程度では感」 / Twitter
- やまささんはTwitterを使っています 「うーん、TSOをいまだに積極的に採用してるのってx86以外だともうSPARCくらいしか残ってないのでは……」 / Twitter
- 中村 実さんはTwitterを使っています 「(´-`).oO(世の中のプロセッサが概ねTotal Store Orderingに収束しているのは、マルチプロセッサの祖であるIBM System/370がTSOを採用したからだよな。S/370がもっと弱いオーダーリングを採用したら今頃のトレンドもそうなっていたと思うよ)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「4つのメモリ(順序)モデル。DEC Alphaは歴史上もっとも弱いメモリモデルを持っており、異なるスレッドでの書き込み順序はまったく保証されていなかった。メモリモデルは Alpha < ARM/PPC < x86/x64/SPARC < i386 の順で強くなっており、Javaのvolatileはi386を基にしている。 https://t.co/8y1GZLWEKu」 / Twitter
- Weak vs. Strong Memory Models
- 1024cores - RRD: Introduction
メモリバリア
メモリバリア
- C++ Developer Guidance for Speculative Execution Side Channels | Microsoft Docs
- /Qspectre | Microsoft Docs
- NVD - CVE-2017-5753
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Security Research & Defense
- Mitigating speculative execution side channel hardware vulnerabilities – Security Research & Defense
- SpectreBustersあるいはLinuxにおけるSpectre対策
- 本当にわかる Spectre と Meltdown
- 【図解】CPUの脆弱性[Spectre/Meltdown]と投機的実行の仕組み〜分岐予測とアウトオブオーダー実行〜 | SEの道標
- [SpectrePrime] [MeltdownPrime] とCPUのサイドチャネル攻撃 〜Evict-Time/Prime-Probe/Flush-Reload〜 | SEの道標
yamasaのネタ帳
- yamasaのネタ帳
- メモリバリアを理解するために必要な3つのこと - yamasaのネタ帳
- 「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
- 次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
- C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
- そろそろvolatileについて一言いっておくか - yamasaのネタ帳
- volatile爆発しろ! - yamasaのネタ帳
- 次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
- C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
- C++0x時代の Double-Checked Locking - yamasaのネタ帳
Twitter
histric-1
- Fadisさんのツイート: "小学生「おじいちゃん、今はCPUは書いた順に命令を実行なんてしないし、バリアも置かずにデータを覗き見したら何が読み出されるかわからないし、システムコールはint 0x80じゃないんだよ」 (つまりこういう事か"
- СЮУ1228さんのツイート: "おじいちゃんが、というか、初学者が読んだ参考資料が古すぎるために知識がこういう風にずれるのありそうだなぁと思った"
- Cocoaにおける同期 – ゴミ箱
- ゆたかさん🐬さんのツイート: "最近のプロセッサはOut of orderな動きもするので、volatileだけでは不十分で、メモリバリアも必要なケースもあります。特に、DMA転送する時とか。 https://t.co/QfytuYEgKg"
- 中村 実さんのツイート: "ストア命令の順序はほとんどCPUで保証しますよ。x86でもSPARCでも。保証しないのはAlphaとIA-64ぐらいです。問題になるのはロード命令とストア命令の順序、ロード命令同士の順序ですな。… "
- whymb.dvi
- c - gcc memory barrier __sync_synchronize vs asm volatile("": : :"memory") - Stack Overflow
- まさみさんは語りたいさんのツイート: "PaulといえばメモリバリアとRCUというイメージがある。RCUの実装にはメモリバリアが避けられないから。"
- 日記 (2015 年 8 月下旬)
- 松本 亮介 / まつもとりーさんのツイート: "マルチスレッドなコード、コンパイラレベルでメモリバリアしてもCPUレベルでストアとロードの並べ替えがそれなりにおきて、それに起因して全体としての問題がたまに起きるし、それに気づくのに時間使いすぎるし人類には早過ぎるのだが僕は負けない。つまりmfenceしてやれば良いのだけど大変である。"
- 社会人でもOSを作りたいさんはTwitterを使っています: 「movとxchgの間のリオーダってどんな感じかな。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos メモリオーダリングの話でしょうか?もしそうなら、SDMのxchg命令とVol. 3Aの「8.2 MEMORY ORDERING」見る限りは、xchgの前のmovとxchgのオーダが入れ替わる可能性もあるので、順序保証のためにmfenceは必要かな。xchgだから特別というわけでもなさそうです。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin ありがとうございます。「8.2.3.1 Assumptions, Terminology, and Notation」に登場する「write」と「store」って何が違うんでしょう。もし同じ用語だとすれば,xchgは暗黙的にlockが付与されたread-modify-writeとして実装されているので,他のread/writeと入れ替わることはないような。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 8.2.2にあるように,read同士,write同士はリオーダされないはずなので,read-modify-writeとして実装されているxchgは他のread/write命令とリオーダされないはず,という推論です。」 / Twitter
- tarosukeさんはTwitterを使っています: 「@uchan_nos スピンロックで使うメモリをA、レジスタをB、Aの初期値を0として... 1. 1をBに書く 2. BをAと交換 3. Bが0でなければ2に戻る(x86ならwaitしておくとベター) ...ロック内の処理... 4, ロックを抜けるときには0をAに書く ...だったかな?x86では交換がアトミックなのがミソ。」 / Twitter
- tarosukeさんはTwitterを使っています: 「@uchan_nos waitでなくてpauseだったか。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@tarosukenet めっちゃ参考になります。pause以外はおっしゃる通りの実装をしていました。pauseしてみたらパフォーマンスが上がりました。とあるベンチマークが1.7秒→0.8秒くらいに。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos レス遅くなりました。writeとstoreは変わらないと思います。理由は、SDM 3A. の8.2 では「processor issues reads (loads) and writes (stores)」と書かれているため、同じ意味とみなしても良いと思います。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos レスありがとう!リオーダされないのは「個々の」プロセッサでのRead、Writeが範疇だと解釈しております。8.2.2のFigure 8.1に関する説明では・・・「but because of bus arbitration and other memory access mechanisms」により、複数プロセッサによるWrite順は毎回同じにならないかな、と思います。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 別々のプロセッサのwriteが同じ順にならないのは全然驚かないですね。それはリオーダとは呼ばないですよね。」 / Twitter
- yoh2さんはTwitterを使っています 「「このマルチスレッドプログラム、シングルコアCPUでないと動かないんだ」の経験があります。 複数スレッドから参照される変数には volatile 付けてるし、読み書きがアトミックに済むことも確認済なのに何故……と。コンパイラが順序を入れ替えなくてもCPUが入れ替えることを知らなかったあの頃……」 / Twitter
- yoh2さんはTwitterを使っています 「@yuki_shemale あるコアで行われたメモリ読み書きの順序が別のコアからは違った順序で行われたように見えるというものです。 例えば初期値0でx=1とy=1をこの順に行うとx=0かつy=1になる瞬間はないはずですが、他コアからはそう見えることもあるという。 ↓古いですが実験用プログラムです。 https://t.co/BWujQwqMit」 / Twitter
- ロード/ストア命令の追い越し例 | Yoh2の日記 | スラド
- Makoto Kato ︎︎さんはTwitterを使っています 「memory orderingをエンディアンと勘違いする人いるんだ。out-of-orderとかmuti-threadとかをまず理解すべきだよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C/C++のコードはコンパイラとかCPUが実行順序を入れ替えるなんて想像してないんだろうな、そういう人」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@kazuho (私はまだ使ったことがないんですが)LDAR/STAR命令などを使うとバリア命令が内包されるため、ほぼx86的なメモリオーダリングになるように見えるんですよね https://t.co/JFFvEvHc0S」 / Twitter
- yohさんはTwitterを使っています 「ARMのLDAR/STLRって 最近のseq_cst memory orderingをそのままHW実装(保証)した感じで x86のTSOよりも"便利"になってたきがしないでもない」 / Twitter
- ☕sat📷さんはTwitterを使っています 「@try_ymk アセンブリ言語で特殊なヒントを与えます。素直に命令をA,B,Cと並べるだけでは実行順序がハードによって入れ替えられたりするので。「やっぱりアセンブリ言語使ってるじゃん!」と言われたらそうなんですが、素直に書いたとおりには動かないということで」 / Twitter
- ☕sat📷さんはTwitterを使っています 「@try_ymk それがどこから来ているかというとCPUが実際に実行しているuopという命令の粒度がユーザに見えるアセンブリ言語レベルの命令より小さいから、だったりします。我々はuopの挙動に対するヒントは与えられますが、直接実行はさせられません」 / Twitter
- ytakanoさんはTwitterを使っています 「メモリバリアのrelaxed、acquire、releaseなどで、どういうアセンブリが生成されるかは、このページをみるとおおまかに把握出来る。 https://t.co/ZdGaITyGXd」 / Twitter
- C/C++11 mappings to processors
- データ競合と happens-before 関係 - uchan note
- linux/memory-barriers.txt at master · torvalds/linux
- misc/fence.md at main · herumi/misc
- C++のフェンス is 何 - yohhoyの日記
- x86よくできてる点 - w_o’s diary
- Multithreading - x86 LFENCE、SFENCE、MFENCEの指示はいつ必要ですか? Assembly | サンプルコード [日本語]
- Assembly - x86 / x86_64プロセッサでLFENCE命令を使用するのは意味がありますか? X86-64 | サンプルコード [日本語]
- 全 x86 プロセッサにあるわけではない命令 (July 23, 2006)
- メモリオーダリング - Wikipedia
- アウト・オブ・オーダー実行 - Wikipedia
- メモリバリア - Wikipedia
- メモリーバリア ‐ 通信用語の基礎知識
- メモリバリア - C言語入門
- ロード/ストア命令の追い越し例 | Yoh2の日記 | スラッシュドット・ジャパン
- DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
- スレッド同期についてのエトセトラ
- スレッド同期のエトセトラ 第2回
- スレッド同期のエトセトラ 第3回
- Load-Link/Store-Conditionalを見直した
- 無視できないフラグメンテーション問題への解答は?(2/2) - @IT
- マルチスレッドとメモリ同期 - primitive: blog
排他制御
- データの同時更新を防ぐための排他制御 (1/3):CodeZine(コードジン)
- 排他制御
- 排他制御のあれこれ - Qiita
- 排他制御(楽観ロック・悲観ロック)の基礎 - Qiita
- データベース利用時に自前で排他制御が必要か - プログラミングメモ
- 排他制御とは パソコン初心者講座
- 排他制御
- ユーザの設定による排他制御の変更
- [SQL] 11. トランザクション 2 | TECHSCORE(テックスコア)
- 一貫性/独立性を確保する「排他制御」を理解する (1/2):「データベーススペシャリスト試験」戦略的学習のススメ(23) - @IT
- 何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか - FPGA開発日記
- 何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか (2. LR/SCの条件) - FPGA開発日記
- 🎸 ライブロック 🎸について - ねぇうしくんうしくん
- PFLab | Graduate School of Information Science and Technology, The University of Tokyo
- 講義 | PFLab
- オペレーティングシステム - OS_04.pdf
- オペレーティングシステム - OS_05.pdf
Latch
- Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note
- FutureとPromise | Scala研修テキスト
- CountDownLatchを使って、複数スレッド間の同期を取る - Qiita
- [Android] 何人かの非同期処理を待ち合わせる | アドカレ2013 : SP #23 | DevelopersIO
- Java CountDownLatchは、ラッチをカウントダウンするthread.run()が例外を受け取ると、タイムアウト値を待ちます。 - コードログ
- CountDownLatch (Java Platform SE 8 )
- 7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログ
- CountDownLatchを改造して、別スレッドの複数並列処理の結果に応じて処理する - 気まぐれな備忘録(仮)
- latch, barrier同期プリミティブ - yohhoyの日記
- タイムアウト Javaマルチスレッドでカウントダウンラッチはどのように使用されますか? - 初心者入門サンプル
ロック
Rust
Rust
- κeenさんはTwitterを使っています: 「Rustの恐れるな!並行性について、並行プログラミングのどこが恐くてRustがどういう仕組みでそれを防いでるかを解説している。Rustは並行プログラミングに強いとはよく言われるけど具体的に解説してるの少ないよね Rust's fearless concurrency in practice https://t.co/PD3cZIlqGz」 / Twitter
- Rust's fearless concurrency in practice
- κeenさんはTwitterを使っています: 「"fearless concurrency"を「恐れるな!並行性」と訳すのはコミュニティ訳に倣ってるんだけど、約物が入ってるとちょっと地の文で使いづらいなぁ 恐れるな!並行性 - The Rust Programming Language 日本語版 https://t.co/Dzh1rnACrA」 / Twitter
- 恐れるな!並行性 - The Rust Programming Language 日本語版
- yohさんはTwitterを使っています: 「@blackenedgold 「怖くない並列性」とか(かなり砕けて)「本当はこわくない並列性」とかのイメージで脳内解釈してました。」 / Twitter
- κeenさんはTwitterを使っています: 「@yohhoy 私も脳内ではそんなところかなと思ってます。」 / Twitter
- yohさんはTwitterを使っています: 「個人的にはRustの型設計/制約こそがMutex lockに関する正解だと思ってる ほとんどの言語ではプログラマの責務が大きすぎる=並行バグリスクが高いという感じ」 / Twitter
- κeenさんはTwitterを使っています: 「RustのMutexがロックしたい値を包んだりロックした結果がMutexGuardだったりしてC/C++のロックとは見た目が大分違うんだけど、Rust風に設計すると自然とこうなるとよいう解説記事 Why Rust mutexes look like they do - Cliffle https://t.co/Vt8NAguMsw」 / Twitter
- Why Rust mutexes look like they do - Cliffle
- yohさんはTwitterを使っています: 「同じようなことを昔から言ってたぽい:https://t.co/ZSsq1gkHxT https://t.co/pm3lkY1dMs https://t.co/Phw5XZRjPN」 / Twitter
- yohさんはTwitterを使っています: 「Rustみたいに「データをMutexで包む」「データアクセスはlock操作で専用viewを取得」を型レベルで保護できるのが理想系なのかもしれず」 / Twitter
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy 今だとlibGuardedみたいなやつが近いんですかね https://t.co/icXZ3XPZQI」 / Twitter
- yohさんはTwitterを使っています: 「@MitsutakaTakeda libguardedは初耳だったのですが、発想自体は古くからある https://t.co/5rrhgYqRuD のであとは好きな実装を選ぶor自作すればいいのかなーとは思います。いちばんの問題はプログラム全域にわたっての強制・保証だと考えているので、統制が取れるなら手段自体は自由かなーと。」 / Twitter
- Enforcing Correct Mutex Usage with Synchronized Values | Dr Dobb's
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy プログラム全体の設計の話だとミュータブルなものは共有しないようにするのが1番ですかね。」 / Twitter
- yohさんはTwitterを使っています: 「@MitsutakaTakeda 安全側に振り切るなら、自ずとそうなるかと思います。ただ実用上はメモリ共有による設計も処理速度と利便性の面から切り捨てることが難しいので、このあたりのさじ加減はプロジェクト次第だと思いますです。」 / Twitter
- mitsutaka.takedaさんはTwitterを使っています: 「@yohhoy メモリ共有自体はもちろんいいと思います!個人的にはそろそろ生スレッド&ミューテックスより高いレベルで実行性能を落とさない手法が一般にならないかなと願ってるんですが、コルーチンが入れば変わるんですかね https://t.co/P0OspnFzzJ」 / Twitter
- Plain Threads are the GOTO of Today’s Computing - Plain_Threads_are_the_GOTO_of_Todays_Computing_MeetingCpp_2014.pdf
- yohさんはTwitterを使っています: 「@MitsutakaTakeda C++標準だとParallelismTS v2とExecutorが入ってくれば生スレッドよりはいろいろと捗りそうかなと(個人的には)思っています。これはIntel TBB使用経験の影響が大きい気はしています。慣れは必要かも...」 / Twitter
- 排他 排他対象対象資源について
- マルチスレッド・プログラミングの道具箱
- yohさんはTwitterを使っています: 「ただまあ Rust型システムがどんな並行バグでも防ぐことはなく 設計起因のものは無理 https://t.co/Fvlp99L61a」 / Twitter
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
spinlock
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば「UNIXカーネルの設計」だと(PDP11かな?)、カーネル内のロックはいつも、SPL命令(Set Priority Level=割り込み禁止)で記述されていた記憶。」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@shirouzu マルチプロセッサが想定されていない場合はそうなりそうですね。Linux が 2.2.x の頃、SMP オフでビルドすると spinlock がマクロで割り込み禁止・許可の命令になるよと聞いて、賢い最適化だなぁと思ったんですが、その後 Xen/paravirt 対応、さらに動的に置き換える機能に進化していました。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@hdk_2 なるほど。面白いですね。 あとPDP11時代とか、ユーザモードではpreemptするものの、カーネル内では I/O待ち or syscallから抜けるタイミングでしかpreemptしなかったでしたっけ…とすると当時は spinlockをHW割込待ち以外で使うと、永久の眠りになったのですかね。」 / Twitter
- suzakiさんはTwitterを使っています 「@hdk_2 えっ、何のことでしょう? 気になります。」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@KuniSuzaki CPU が 1 スレッドだけだと spinlock が割り込み禁止・割り込み許可で実現できるようになるので、それも動的書き換えで適用されていたと思いますが、最近のカーネルでもその動きが残っているのかはわかりません。以前は suspend-to-RAM と復帰のたびに動的書き換えがされるログが残っていました。」 / Twitter
- suzakiさんはTwitterを使っています 「@hdk_2 ありがとうございます。 Linux kernelが1 core/1 thread で動作する場合のspinlock の割込み禁止・許可対応ですか。 suspend-to-RAMからのレジュームで書き換えられるはちょっと気持ちが悪い。脆弱性があるかな。」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@KuniSuzaki spinlock なんて大量に使われているはずですから、むしろ、何度も切り替えてもトラブルにならないぐらいしっかりと実装されているんだなぁと思っていました」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「そういえば起動時だけじゃなかったはず... CPU をオフラインにしていくと最後の 1 つだけになる時にまた書き換えが走るはず」 / Twitter
- enospcさんはTwitterを使っています 「@hdk_2 はい、記事では端折ったalternatives_smp_module_add()の延長に痕跡だけ残っています。今回調べた4.18 (RHEL8) では、起動時にUPだとlock: prefixを外し、ホットアッドされると戻す、という処理だけ残っているようです。」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@enospc ありがとうございます。何度も変更するのは無駄だということになったんでしょうね。」 / Twitter
- enospcさんはTwitterを使っています 「またしても長くなりすぎた。」 / Twitter
- VA Linux Systems Japan株式会社さんはTwitterを使っています 「「vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ」を公開しました! 今回は、そのinitセグメントに含まれている`.parainstructions`、`.altinstructions`、`.altinstr_replacement`の各セクションを取り上げます。 https://t.co/pgeNBv940J #VALinux #技術ブログ」 / Twitter
- vmlinuxのヒミツ2 -- vmlinuxに特有のセクション その2 - 起動時バイナリパッチ - VA Linux エンジニアブログ
- IntelのSkylake-Xプロセッサーで.NETプログラムが50%遅くなるケースが発見される - GIGAZINE
pthread_rwlock_wrlock
- Makoto Kato ︎︎さんはTwitterを使っています 「こういうの見ると、なんでRust側のIssueの言及がないのかわからんし、こういうためにhttps://t.co/z3wsMjCcq6で今後についていろいろ考えてるのを触れない理由が特にわからない https://t.co/PlQfd3sByV」 / Twitter
- Rustの std::sync::RwLock はLinuxでwriter starvation問題を起こす (macOSなら平気) | 俺とお前とlaysakura
- Tracking issue for improving std::sync::{Mutex, RwLock, Condvar} · Issue #93740 · rust-lang/rust
- Makoto Kato ︎︎さんはTwitterを使っています 「でparking_lotもこれはWebKit由来のコードから来てて、、、って話で、そもそもそのWebKitのコードは予想通りFilip Pizlo作というのは流石ですよねー https://t.co/7Y0CeqpOHr」 / Twitter
- Locking in WebKit | WebKit
- 小崎 資広さんはTwitterを使っています 「これかなりの回数突っ込まれて某glibcメンテナがお前らは互換性というものをなんにもわかってないとキレ散らかしてた記憶がある。つまり誰かがやった遥か大昔のチョンボを引きずったというのが私の理解」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「一番きらいなPOSIX関数はpthread_rwlock_wrlockです。rwlock、確かlinuxで(だけ)デフォルトreader優先なので、wrlock取ろうとして詰まりがち。そもそもreaderが大量にいるからrwlock使うのに、なんでデフォルトreader優先なんだろ...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そしてreader優先かwriter優先かを指示するAPIはPOSIXにないので、linuxだけワークアラウンド入れることになる。ダックタイプ最高! https://t.co/LCFPSczeqH」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「macOSは、なんでそんなバグがあるねんみたいな感じだけど、linuxは、なんでそんな変なAPIやねんみたいなのが時々ある」 / Twitter
- yohさんはTwitterを使っています 「https://t.co/Xtx0f5CV67 一方C++標準ではRW-lock優先順位は規定なしとしたのであった」 / Twitter
- nakameguro_feature.cpp vol.8
- まさみさん⋈語りたいさんはTwitterを使っています 「確かにrwlockの実装としてreader優先はおかしくなりやすい。ソースは大学生の頃のワイ(一回実装した)。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「確か2つロック(mutexとセマフォ)使って、1つ目のロックが取れないと2つ目のセマフォを取れないような作りだったと思う。性能は悪い。」 / Twitter
Twitter
その他
ロック
- がくぞさんはTwitterを使っています 「ロック関連ぱっと見で不要そうに感じても、それが本当に不要で安心して消して良いって確信を得るのには凄いコストかかるからこういうのデッドコードになりがちなんですよね…… 単体テストでロック無くても良い若しくはロックが必要であることを示すのもエグい難いですし……」 / Twitter
- かとじゅんさんはTwitterを使っています 「なるほど。再入できないロックだとデッドロックで気づける?かもだけど、再入可能なロックを使ってるとやってしまいがちかもなぁ…。」 / Twitter
- nico_shindannin(診断人)さんはTwitterを使っています 「不要なロックを書いてしまう →そのコードを知らない人が「あそこもロックなら、念のためここもロックだな」と増やしてしまう →どんどん伝播していく やつですね。分かるのじゃ。」 / Twitter
- nico_shindannin(診断人)さんはTwitterを使っています 「以前言ったのじゃが、対策の1つは、複数のスレッドから呼んではいけない部分に「複数スレッドから呼んだら死ぬAssert」をどんどん追加していくことじゃ。コードの意図が分かり無駄ロックを足す人はなくなるし、実行タイミングによって発生するマルチスレッドの問題の発見率も高まるのじゃ。」 / Twitter
- nico_shindannin(診断人)さんはTwitterを使っています 「ということを仕事でいおうと思っていたのじゃが、言ってなかった…」 / Twitter
- nico_shindannin(診断人)さんはTwitterを使っています 「とツイートしまったことで、今日言ってしまったら、特定されそうじゃ…」 / Twitter
- がくぞさんはTwitterを使っています 「同様に🍥Transactionalとかもそれが間違ってつけられてた時に検出しにくいのがアレアレ」 / Twitter
- がくぞさんはTwitterを使っています 「なので🍥TransactionalよりTransactionモナドとかDBIOとかあーいう機構の方が間違えにくくて好き」 / Twitter
- がくぞさんはTwitterを使っています 「いうて僕もここうん年はロックフリーな実装しか書いてないなー。actorに任せるなり、副作用が局所化できてるなら最後の副作用部分でCAS命令にするだけで十分だったり」 / Twitter
- がくぞさんはTwitterを使っています 「@megascus アレアレすぎてアレ」 / Twitter
- 入門ゆとり💉💉さんはTwitterを使っています 「@gakuzzzz 付けたけどつける場所間違えてたから動いてなかったとかもあったりしてアレ。」 / Twitter
- がくぞさんはTwitterを使っています 「そういう意味ではImmutable中心にして副作用を局所化するのはロックフリーを促進させる側面もあるんだなー」 / Twitter
Intel_AMD
- まさみさん⋈語りたいさんはTwitterを使っています 「Intel SDMとAMD APMで超基本的な内容が矛盾してることが分かった。Intel SDMではLOCK-REPプレフィックスの組み合わせは許されていないのに、AMD APMでは許されている。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「Linuxで使っているinstruction decoderはIntel SDMに基づいて作っていたので、Legacy prefixは4バイト(4種類)まで、という理解で作っていたんだよね。ところがAMD APMは5バイト(5種類)までOKとか書いていて草」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「最大4バイトまでなんやな、ということでinsn_value_tをu32で定義しちゃってるんだよ。どうしようかこれ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「違うわ。これはAMD APMの記述ミスや。REPとLOCKは使える命令が限られていて、お互いに違う命令をサポートしているから、どうやってもこの2つが同じ命令に対してかけられることがない。後半の説明にそう書いている。デコーダの説明がおかしい。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka 詳しくは下記メールを参照のこと・・・。 https://t.co/j5Nw5VcHbH LOCK-REPプレフィックス付けるとintelでは何が起きるのだろうか?(普通に動きそうだけど)」 / Twitter
- Re: [PATCH v2 1/3] x86/uprobes: Fix not using prefixes.nbytes for loop over prefixes.bytes - Masami Hiramatsu
- まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka あっ、わかったこれはひどい」 / Twitter
lock poisoning
- ドッグさんはTwitterを使っています 「Rust の標準ライブラリ(Mutex や RwLock)は lock poisoning の仕組みを持ってるけど,panic の伝搬にはコストがかかるので,それを切り離して必要なときだけ使うようにしたいのか.そもそも lock poisoning とは?という解説もある | 'Launching the Lock Poisoning Survey' https://t.co/FAZHa0Acvc」 / Twitter
- Launching the Lock Poisoning Survey | Rust Blog
- monochromeさんはTwitterを使っています 「Rust、子スレッドのpanicを親スレッドに伝播させる方法はあるのだろうか」 / Twitter
- monochromeさんはTwitterを使っています 「子スレッドがバグると帰ってこなくなってしまうのが辛い」 / Twitter
Distributed RW lock
- ytakanoさんはTwitterを使っています 「Distributed RW lock。こんな単純な方法でスケールするの? https://t.co/crubUwVxmR」 / Twitter
- 1024cores - Distributed Reader-Writer Mutex
- ytakanoさんはTwitterを使っています 「これなら自分でも実装は出来そう」 / Twitter
lock add
- PG_MANA@TYOさんはTwitterを使っています: 「featch_addってあれ、マルチコアプロセッサではstoreにcmpxchgに使うんじゃなかろうか...?」 / Twitter
- ぐらふぃさんはTwitterを使っています: 「@PG_MANA_ @nullpo_head x86 だと lock prefix 付きの add だったような気がします。雑に C++ で std::atomic_int に fetch_add(10, std::memory_order_acq_rel) するやつ書いて gcc でアセンブリ出しても lock addl が出てきました」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「@grafi_tt @nullpo_head 自分もRustでやってみて(Rustはだいぶ余計なコードがモリモリついてくるので苦労したんですが)どうもそんな感じみたいですね。 7020: f0 lock 7021: 48 83 05 0f 50 04 00 03 addq $3, 282639(%rip)」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「@PG_MANA_ @grafi_tt atomicとseqcstって関係あるんでしたっけ」 / Twitter
- ぐらふぃさんはTwitterを使っています: 「@nullpo_head @PG_MANA_ 直接関係はないけども、x86 だと load/store を atomic にやるには lock prefix 付きの命令を使うことが多くて、そのときに mfence と同様のフェンスが入るみたいですね。全然詳しくないので自信はないです、なんか write combining memory (non-temporal store) を使うときは違うとか出てくる…」 / Twitter
- PG_MANA@TYOさんはTwitterを使っています: 「@grafi_tt @nullpo_head こちらもうろ覚えなのですが、SeqCstでの(CMP)XCHGなどは前後の命令の追い越しがないように保証して(mfence)くれる保証があった気がします。やっぱり何もわかってない」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「@grafi_tt @PG_MANA_ はー複雑、なるほどフェンスも入るんですね」 / Twitter
histric-1
- OS作れないマン WalB担当さんのツイート: "タスクの概念がないしカーネル空間でのロックなのでスピンロックで実装していたんが、そういえばハンドラの中からLock呼び出すとデッドロックするよなあ…というかデッドロックが発生したので、TryLockを実装した。"
- Community Blog - ファイルロックと新OFDロック
- Kazuho Okuさんのツイート: "RDBにおいてはデッドロックはリトライで解決するものという前提が抜けてる? / デッドロックを減らすパフォーマンスチューニング論としては面白い / “デッドロックおじさん戦記 - Mercari Engineering Blog” https://t.co/Aqdjx85hdA"
- デッドロックおじさん戦記 - Mercari Engineering Blog
- Kazuho Okuさんのツイート: "実際問題としてデッドロックの発生率があがると過負荷になってユーザにエラー返すことになるのはそのとおりだろうけど、その説明がないと、リトライしてないの???ってなる"
- ファッション自作OSマンさんのツイート: "割り込みハンドラから書き込んで,メインループで読みだすようなキューを競合から保護するには何使えばいいんだ?割り込みを禁止するのは簡単だけどマルチコア環境だと意味ないしな."
- ファッション自作OSマンさんのツイート: "ローカルCPUについてはcliで割り込み禁止しつつ,スピンロックで保護するのがお手軽な感じかな."
- satさんのツイート: "正解。linuxでいうところのspinlock_irq{,save}ですね… "
- ファッション自作OSマンさんのツイート: "LinuxはそういうAPIがあるんですね.saveって何をsaveする意味なんですか?… "
- PEN🍄海猫さんのツイート: "lock cmpxchg でぐるぐる?… "
- ファッション自作OSマンさんのツイート: "しかし、flagsを保存する関数のサフィックスがirqsaveなのはちょっと違う気がする。歴史的な命名だとは思うけど。masksaveとか。"
- Man page of SEM_OVERVIEW
- SODA Noriyukiさんのツイート: "先月、自前のロック作ったばかりなんだよなあ(といってもmutexと条件変数で作った)。 なんかLinuxのmutex/rwlock/POSIX semaphoreを生で使うと、公平性に難が出る(数~数十秒、特定のスレッドがロックを独占する)例に遭遇したんだよねえ。SolarisやNetBSDだとそこまで不公平にはならないんだけど。"
- SODA Noriyukiさんのツイート: "もちろん、元々の主旨(ふつうはシステムの提供するロックを使え)には全く同感。 最適化についても、速度に問題が出て、プロファイルでボトルネックを特定してからでいいよね。とはいえ、O(N^2)以上のコストがかかるアルゴリズムとかは使わないように最初から気をつけて書いたほうがいいけど。"
- まさみさんは語りたいさんのツイート: "libc由来のゆらぎなのかなあ?それともスケジューラがおかしいか。いずれにしてもmutex使ってるなら問題ないのでは。自前のspinlock(lock xchg)でなければ・・・・。… "
- SODA Noriyukiさんのツイート: "自前実装カーネルとかならともかく、いつCPUを失うか分からないuserlandで自前spinlockとかダメダメですよねえ。 原因がどこか全然調べてないです。1000行くらいの再現プログラム(もっと削れるけど、対処を優先してたので削ってない)はあるから、どこかに晒したほうがいいのかしら。… https://t.co/ydUpxMjhaJ"
- 中村 実さんのツイート: "POSIX mutexはもともとfairnessを無視する機構ですが、POSIX semaphoreにはfairnessに関する仕様上の規定があるような。 https://t.co/7MPUSV90Tu 私が昔調べた範囲ではLinuxのPOSIX semaphoreも守っていたはずです。… https://t.co/yhbdmI3Oom"
- NAKAMURA Minoru's Diary (2013年8月)
- 中村 実さんのツイート: "と思ったら、さらに昔の日記ではLinux上のPOSIX semaphoreがunfairな挙動をしていると自分でも書いていた。 https://t.co/RXeSd64RFm… "
- NAKAMURA Minoru's Diary (2007年9月)
- NAKAMURA Minoru's Diary (2004年4月)
- まさみさんは語りたいさんのツイート: "Linuxカーネル内のロックの選び方はかなり簡単で、割り込み延長の場合はspinlock、それ以外はmutexが基本。"
- まさみさんは語りたいさんのツイート: "基本以外のロックについては、それぞれの動作が理解できていないなら使わないで! seq_lock/rcu/rwlockとかね。"
- まさみさんは語りたいさんのツイート: "ロックより寧ろメモリバリアをどの場面でどう使うかとかの方が難しい。まあ、基本的には並列性が気になったらatomicを使うこと。"
- FreeBSDのread-mostlyロックのソースコードを読んでみた - Qiita
- このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ ロックの初期化時にsleep可能か設定して、設定に応じて内部でのロックの取り方が変わる仕組みなんだ。 FreeBSDのread-mostlyロックのソースコードを読んでみた on @Qiita https://t.co/25iu1dOkqS"
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「公平なロックわかった。賢いな。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「あとで実装してみよ。実用的にはticket lockingで良い気もするが。」 / Twitter
- mumumuさんはTwitterを使っています 「The lock holder and the lock waiter pre-emption problems:nip them in the bud using informed spinlocks (I-Spinlock) [EuroSys '17] VMM環境でLockホルダーが動くvCPUのプリエンプトによるマルチスレッドAppの性能悪化を防ぐため,逆に残りのTime sliceが不十分なvCPUにLockをとらせない.」 / Twitter
- mumumuさんはTwitterを使っています 「Preemptable ticket spinlocks: improving consolidated performance in the cloud [VEE '13] Ticket LockがVMM上で致命的に相性が悪い(Lock Waiter Preemptionが発生)ことを指摘し,対策としてTicket Lockに(Fairnesssを考慮して)Ticket値に応じたTimeoutをもたせた. https://t.co/uxiEm5M5Dj」 / Twitter
- vee13-pmtlock-paper.pdf
- FadisさんはTwitterを使っています: 「2021年に作られたi386向けのLinuxディストリビューションgray386linux。i386でも動くようにビルドされたLinuxカーネルにmusl libc、busybox、dropbearなinitramfsを組み合わせた物。i486以降のx86 CPUでは動かない https://t.co/rQcAw8olDg」 / Twitter
- marmolak/gray386linux: Linux distribution for i386 machines only.
- FadisさんはTwitterを使っています: 「XADDやCMPXCHGといったロックの実装に用いられる命令はi486で登場した。LinuxはSMPをサポートする為これらの命令でロックを実装しているが、その実装はi386を特別扱いする必要があった。これが苦行なので2013年のLinux 3.8でi386の対応は削除された。このため上記のディストリはLinux 3.7を使っている」 / Twitter
- スピンロック ‐ 通信用語の基礎知識
- ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
- _InterlockedCompareExchange Intrinsic Functions
- minix smpのロック実装 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Community Blog - ファイルロックと新OFDロック
- 失敗ロック例いくつか - 兼雑記
- 並列プログラミングにおけるロックの効率的な使用 | iSUS
- www.nminoru.jp/~nminoru/data/b2con2006_nminoru.pdf
- NAKAMURA Minoru's Diary (2009年7月)
- Linuxカーネル4.2リリース | OSDN Magazine
- 分散ロックという名の過ち - Software Transactional Memo
- JavaScriptでデッドロックを作ってみた - Qiita
- Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace - hibomaの日記
- Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい - hibomaの日記
- Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳
- いもすさんはTwitterを使っています 「Rust言語のMutexにpoisonedという状態があるのに最近気づき、今まで他の言語でmutexを安全には使えていなかった可能性に気づき猛省した。ロック中に例外やエラーが起きたら、守っていたデータは安全ではない可能性があるので、意識せずロックが取れてもデッドロックになっても確かに困るよね……。」 / Twitter
- いもすさんはTwitterを使っています 「具体的には例えば「mutexでロックして構造体を半分書き換えたときに0割エラーなど想定していない場所でエラーが発生し巻き戻ってしまった状態」に対し、どこまで書き換えたかわからないので別のスレッドが「ロックを取って中途半端な状態から再開」しても困るし「永遠にロックが取れない」状態も困る。」 / Twitter
- 大規模コードベースを効率的に処理するInferのAndroid用新デッドロック検出ツール
- Kazuho OkuさんはTwitterを使っています: 「ちなみに、カーネル含めてみると、あるTCP接続について割込処理するCPUコアと、httpd側のスレッドが同じコアに割り付いてなくて、ロックコンテンションが問題になるとかあるます」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「サーバ屋さんといっても httpd はスレッド間で共有するデータほぼゼロなので、ロック大変なんですねーって鼻ホジしてる #油断してるとmallocとかカーネルとかでひっかかる」 / Twitter
- くまぎさんはTwitterを使っています: 「@kazuho C10M problemだ!」 / Twitter
ロックフリー
ロックフリー
- Takeshi ArabikiさんはTwitterを使っています: 「lock free の説明を読んでいたら optimistic locking のことかと思ったんだけど、両者の関連についてあんまり言及されてなくて謎。考え方自体は同じだと思ったんだけどなぁ。」 / Twitter
- くまぎさんはTwitterを使っています: 「@a_bicky どこの説明です?楽観的ロックでも書き換える瞬間にごく短時間のロックを取る事は普通で、そこでプリエンプションされてしまうとblockingは依然として起きるのでlock freeの条件は満たさないです。」 / Twitter
- Takeshi ArabikiさんはTwitterを使っています: 「@kumagi あー、なるほど、値を取得して、値が変わってないかチェックして、問題なければ更新するみたいな流れは共通するので関連が強いと思ったんですが、言われてみれば楽観的ロックも最後にロックを取るはずなので同列に並べるのは雑すぎましたね」 / Twitter
- くまぎさんはTwitterを使っています: 「@a_bicky 「Optimistic Concurrency Controlは10歩離れて薄目で見るとCASに見える」って気持ちは確かにわかります。ただもう少し近づいて見るとkCASとかMCASみたいなテクからSTMのような一つの研究分野まで現れるのが奥深い…。」 / Twitter
- くまぎさんはTwitterを使っています: 「@a_bicky 大昔に書いた資料もありましてLock Freeを理解するなら今もこれが一番コスパが良いと信じています。 https://t.co/ff0Ek4uCmV」 / Twitter
- lockfree.pdf
- Takeshi ArabikiさんはTwitterを使っています: 「@kumagi 10歩離れて薄目で見ると…。資料ありがとうございます!「データ構造と情報検索と言語処理勉強会」を今なら理解できるかも!と思って探してたんですが、あれはアップロードしてたサービスが終了しちゃったとかですかね?」 / Twitter
- Takeshi ArabikiさんはTwitterを使っています: 「@kumagi 「データ構造と情報検索と言語処理勉強会の資料を今なら理解できるかも!」の間違いですね…」 / Twitter
- くまぎさんはTwitterを使っています: 「@a_bicky あー、DSIRNLPの奴…ってことは「冬のLock-free祭り」でしたっけ。slideboomがサービス終了しててslideshareに上げたんですけどアニメーションが無事に死んでいます… https://t.co/0EM4at1gUX」 / Twitter
- 冬のLock free祭り safe
- Takeshi ArabikiさんはTwitterを使っています: 「@kumagi ですです。当時参加していて「面白い発表っぽいんだけど全然わからん><」という感じだったので、slideshare の方で確認してみます。アニメーションこだわってたのにサービス終了残念ですね…」 / Twitter
- C言語で苦しむロックフリー入門(仮
- Lock-freeとWait-freeアルゴリズム - Wikipedia
- 64-bit Lock-free queue implementation | Syoyo Fujita's Blog
- Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項
- Fadisさんのツイート: "メニーコアを活かせるプログラミング、極めて有用なロックフリーデータ構造やそれに用いられる手法が特許おさえられてる事が多くて、分かってても残念な実装にする羽目になる事が稀によくある"
- 冬のLock free祭り safe
- Compare-and-swap - Wikipedia
- Lock-Free Algorithm, CriticalSection, IHostCrst - NyaRuRuが地球にいたころ
- FadisさんはTwitterを使っています 「ロックフリーなデータ構造を実装する上で難しいのは実装すること自体じゃなくて、特許を回避する事だと思う」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Iock freeやobstruction freeは用語の付け方が変な気がするな。系全体のライブロックフリーとデッドロックフリーならわかる。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「wait freeも、プロセスがライブロックしないか、あるいは弱い公平性が担保されたlock freeアルゴリズムだけど、waitが全く無いわけじゃない。名付け方が謎すぎる。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「ロックフリーはハザードポインタが必要な時点で負けてる感があるな」 / Twitter
- mumumuさんはTwitterを使っています 「SPECK: a Kernel for Scalable Predictability [RTAS '15] マルチコア環境でのOSのPredictabilityを向上させるために,Kernel ObjectをLock-lessなデータ構造に置き換えた話.Radix Trieとか本で見たデータ構造がでてきて感動したが,完全に理解できたかというと微妙.自前のComposite OSで実装してる」 / Twitter
- An introduction to lockless algorithms [LWN.net]
楽観的並行制御
- ogiwaraさんはTwitterを使っています 「ここ10年間でトランザクションのスループットが100倍になってるんですね」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf 何が効いているんですか?」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 元々、ロックを一元管理するデータ構造(Hash tableなど)が当たり前のように使われててかなりキャッシュのパフォーマンスが良くなかったんですよね 今はそういったデータ構造を使う事はタブーとなっています」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 楽観的並行制御、という方法によってreadする時にはlockを取らないようにする、というのが主流になったのも一因ですね」 / Twitter
ベクタークロック
- ベクタークロック - Google 検索
- ベクトルタイムスタンプ - Google 検索
- ベクタークロックと競合検査 - uchan note
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
- Efficient on-the-fly data race detection in multithreaded C++ programs - IEEE Conference Publication
- FastTrack: efficient and precise dynamic race detection: Communications of the ACM: Vol 53, No 11
epoll
eventfd
- Kazuho OkuさんはTwitterを使っています: 「signalfdもだけどeventfdも存在意義がよくわかってないんだよね」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています: 「@kazuho epoll起こすためではと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@kkaigai pipeをread/writeすればいいじゃん、と」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています: 「@kazuho どっちが速いのかとかそういう世界なんでしょうかね…?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@kkaigai どうなんでしょうねぇ。eventfdはまだマルチプロセスの同期制御だと意味があるのかも...」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています: 「@kazuho ある一定条件を満たすまでは epoll をブロックせず素通り、みたいなコードを書くには eventfd の方が書きやすい?かなぁ??」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@kkaigai 0になるまでreadできない、ならそういう使い方できると思いますけど、eventfdは非ゼロになるまでreadできない... なので...」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho @kkaigai これまた私は良く分かってないのですが https://t.co/I9NtE4ZSwI によると複数のイベントで送った数の合算だけ分かればよい場合はeventfd、個々のイベントの情報が必要な場合はpipeと使い分けるらしいと良いらしいです。」 / Twitter
- What is the difference between eventfd and pipe IPC mechanism in Linux? - Quora
- 山本和彦さんはTwitterを使っています: 「@kkaigai @kazuho マニュアルには "The kernel overhead of an eventfd file descriptor is much lower than that of a pipe" と書かれてますね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@kazu_yamamoto @kkaigai なるほどありがとうございます」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「epoll 複雑なのはそれとして、一番ややこしいのは dup したやつを登録削除せずに close する場合の挙動(close後に通知がある可能性)だと思う。既存のソケット使うコードにあとから導入しようとすると諦めが発生する」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「epoll(2) の嫌いなところー、EPOLLHUP が届くのを拒否できないところー このせいで、pollの代わりとして使う際に、読み待ちも書き待ちもしないソケットを登録したままにすることが難しい(読みも書きもする気がないのにEPOLLHUPに対応してソケットを閉じないといけなくなる)」 / Twitter
- _ko1さんはTwitterを使っています: 「@kazuho 閉じたくないのはなんででしょうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@_ko1 poll/select/kqueueのセマンティクスは、次に読み書きした時に閉じられていることに気づくというものなので、epollだけ違って不便という話です」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@_ko1 closeしないままepoll_ctl_delするという手もあるのですが、MSG_ZEROCOPYのような機構だとHUPが来た後もdelできないのでedge triggerへの切り替えが必要になったり…」 / Twitter
- _ko1さんはTwitterを使っています: 「@kazuho おー、難しそうな話ですね」 / Twitter
- _ko1さんはTwitterを使っています: 「epoll を外からキャンセルするには eventfd かと思ったけど、なんか ready な fd を add するだけでいいんか?」 / Twitter
- kenoさんはTwitterを使っています: 「@_ko1 mio だと https://t.co/XIf0otk3QN wake する用の epoll file descriptor 用意して https://t.co/AwqhuYBY80 その fd で epoll_wait して https://t.co/Xs7elW4qbO その fd に 1 を書き込んで wake させてますね. https://t.co/5fs5KN56Rj」 / Twitter
futex
- Man page of FUTEX
- Man page of FUTEX
Ticket lock
- Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Ticket lock - Wikipedia
- Microsoft PowerPoint - 3Sync [äº™æ‘łã…¢ã…¼ã…›]
Wikipedia
- モニタ (同期) - Wikipedia
- ミューテックス - Wikipedia
- クリティカルセクション - Wikipedia
- 排他制御 - Wikipedia
- 同期 (計算機科学) - Wikipedia
- 競合状態 - Wikipedia
- ビジーウェイト - Wikipedia
- テスト・アンド・セット - Wikipedia
- スピンロック - Wikipedia
- イベント (プログラミング) - Wikipedia
- 不可分操作 - Wikipedia
- セマフォ - Wikipedia
- Memory ordering - Wikipedia
Twitter
@uchan_nos
- OS作れないマンさんのツイート: "Linux Weekly News の "What is RCU, Fundamentally?" で勉強しよう https://t.co/Ern7KS6QJd"
- OS作れないマンさんのツイート: "Sleepable RCUとかあるのか。奥が深い。"
- OS作れないマンさんのツイート: "CONFIG_PREEMPTが定義されていない場合、カーネルコード実行中は明示的にSleepしない限りタスクスイッチが起こらないからsynchronize_rcuがうまく動くのか。"
- OS自作したい。技術書典6・う38さんのツイート: "Goならわかるシステムプログラミングの話。同期と非同期、blockingとnonblockingは直行する概念?selectは確かに通知が来ない間はブロックするからブロッキングなのは納得するとして、非同期なのか?本文での「非同期」の説明「入出力準備ができたら通知をもらう」に従うと、まあそうなのかな…… https://t.co/oK4WnKSdXK"
- OS自作したい。技術書典6・う38さんのツイート: "多分この違和感は「非同期」の認識の違いに起因するんだな。非同期って言うと、ある処理をOSに依頼しつつ、自分は別の処理をする、という感じがする。selectは、OSに頼んだ複数の仕事の完了を待つ感じなので、仕事が複数になっただけで、あくまで同期処理な気がするんだ。"
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uchan_nos 前提としては,そのatomic変数を共有メモリ上で共有していて,かつatomic性が保証されている必要があります。なのでたとえば,共有メモリでのatomic性を一般には保証しない分散処理をしていると前提が容易に崩れます。」 / Twitter
- yohさんはTwitterを使っています 「@uchan_nos FYI: https://t.co/ocoKLlkO3f "The execution of a program contains a _data race_ if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, [...]" でした」 / Twitter
- [basic]
スピンロック
- Livaさんのツイート: "アトミック命令のコストによって、スピンロックの性能は変わるなぁ。もうちょっとちゃんと検証しないと #liva_notebook"
- Livaさんのツイート: "gcc builtinで書けば、__sync_fetch_and_addが使えるならそれを使うのが一番はやくて、__sync_lock_test_and_setがそこそで、__sync_bool_compare_and_swapはとても遅い #liva_notebook"
- Livaさんのツイート: "たぶんアーキテクチャ依存だから、silvermontがそう、というだけの話なのだけども #liva_notebook"
- Livaさんのツイート: "silvermont(但し1チップの中に64コア詰まってる)"
- Livaさんのツイート: "O2つけただけでがクラッシュする問題、結局アラインメントと適切なvolatileが不足してたオチっぽい #liva_notebook"
- Livaさんのツイート: "スピンロックを実装する時は、いろんなループにasm volatile("":::"memory");を挟んで最適化を抑制しないといけない。何時も忘れる。 #liva_notebook"
- Livaさんのツイート: "ほんの些細な排他制御のミスがあるお陰で、12コアでは動いても256コアでは動かない問題アゲイン"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一昔前に、Linuxカーネル開発者「スピンロック使うな」、DB屋「性能に必要」という論争があった記憶…スケジューラ周りの合理的な挙動変更なのにDB側スピンロックだけ性能低下、みたいなコンテキストだったかな。 https://t.co/PGVny5T4Ia」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「スピンロックしてる間にスケジューラによってプリエンプションされるケースというのは普通に起こるのでそういう場合にMCSキュー内での追い越しを許容してスループットを高めるスケーラブルなスピンロックCST-Lockというものがあってですねっていう話を期待されている?」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi 普通のスピンロックだとNUMAのとき不平等になりそうとか、最悪時間が予測できんとかデメリットもありそう。割り込みとポーリングとかだと違う話になるかもしれんけど。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian NUMA向けに改良されたスピンロックも結構研究されてます。Lock Cohortingあたりでググると良い入り口になるかと。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi 同一NUMAノード内で待ち行列を作って、待ち行列先頭がグローバルロックを取る。待ち行列が尽きるまでグローバルロックを離さないことで、NUMAノード間での頻繁なロック切り替えを抑制して整流するみたいな感じかな?」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian そんな感じです。MCSでRW-Lockとか亜種がたくさんあります。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi NUMAノードが3個以上の場合はグローバルロックでも待ち行列を作るのかな?って書いてて思ったけど、これトークンリングっぽいので障害とかに弱そう。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian 一般にNUMAでもマルチコアでもどれかのコアやソケットが壊れる系の障害は潔く諦めています。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi なるほど、そうなのか…」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi スケジュールされるんだったらspinlockじゃないような気がする(実装をミスっている?)んですが、ユーザ空間で実装する人はそういうのも含めてspinlockって呼んじゃうんでしょうか?個人的にはSCHED_FIFOみたいな完全オレオレ制御RTタスクだけが使うものかと思っていましたが・・・。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 何をスピンロックと呼ぶかに流派があるっていう話ですかね。インメモリDBの文脈でユーザ空間でスピンロックする人などは割と普通にそういう実装使いますよ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi おお、そうなんですね!ユーザ空間でspinlockは実装できるけど、個人的には普通のアプリでは全く無意味だと思っていました。(意味があればlibcなどで定義してそうとか)」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 大学の授業でpthread_mutexと自作スピンロックで簡単なベンチマークをやったような覚えがあります。速度のためならスピンロックという選択肢は割とよく有ります、1桁ぐらいは性能が違ったはず。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi クリティカルセクションのサイズの問題はありますが、システムコールするとしないとでは大違いですからね。ただ、不平等性などが発生する可能性はユーザが受け入れるか対策すべきという話ですかね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@mhiramat 探してみると、この辺の話ですね。 https://t.co/4i4ZQ7Ivgq」 / Twitter
- 怒りのLinus――メンテナにかんしゃく玉爆発(1/2) - @IT
排他制御
- ロックフリーのkumagiさんのツイート: "そうなんです、排他処理の話をするときにすぐに「ロックの実装にはTestAndSetやCompareAndSwapみたいなread-modify-write命令が絶対必要」って誤った知識をばらまく不勉強な人が大学教授にも散見されるのでこの季節は警戒が必要です。"
- ロックフリーのkumagiさんのツイート: "もちろんxchg命令を使えっていう意味でもないですよ。当然ですよ。"
- satさんのツイート: "排他制御 == ロック と思ってる人は感覚的にかなり多いですね… "
- ロックフリーのkumagiさんのツイート: "セマフォさんが悲しそうにこちらを見ている…… "
- Kazuho Okuさんのツイート: "ケースバイケースなんじゃないかな。例えば消費期限が短い場合に家で消費し切れないようなケースなら、奥のやつを取る方が資源の有効活用になるはず… "
- まさみさんは語りたいさんのツイート: "これ、あまり良い習慣とは言えないよね。… "
- satさんのツイート: "compare and swap: スーパーで自分の手に取った牛乳を陳列棚の奥のほうにある賞味期限が長いものと交換してカゴに入れること"
- まさみさんは語りたいさんのツイート: "極端に消費期限が短い場合はそうですね。牛乳とかは微妙かな。うちでは消費速度が一定していない気がする。… "
モデル検査
histric
- Kazunori Iriya さんはTwitterを使っています: 「でけた。セミナーで学んだイベント同期による相互作用のモデルの説明に出てきた並行合成の例を自分のコードでも再構成できた! 左がお手本、右が自分のコード。イベント同期まだ一部しか実装できていない。ぼちぼち実装していこう。これまでのソースはこちら。https://t.co/0MBgOGLKUT https://t.co/FdP7l8QZUk」 / Twitter
- composition_prep.js
- いけべさんはTwitterを使っています: 「Mutex をプロセスで表現する。 Free 状態では lock イベントに応答して Locked に遷移し、逆に Locked 状態では free イベントに応答して Free 状態に戻る。 https://t.co/wLqMiqQF8a」 / Twitter
- いけべさんはTwitterを使っています: 「この Mutex と協調して共有メモリープロセスを触る Muter プロセスを定義する。 lock を提示してから共有メモリーに read を投げ、得られた値に 1 を加えて書き戻す。そして free を提示する。 https://t.co/RPiHoV3WlS」 / Twitter
- いけべさんはTwitterを使っています: 「ここで二つの Muter プロセスを(同期イベントなしで)並行合成する。すると非常に大きな遷移を持つプロセスになる。(一方のプロセスから他方のプロセスの全状態に遷移しうるので、組み合わせで巨大になる) https://t.co/UJNcwkOgDk」 / Twitter
- いけべさんはTwitterを使っています: 「お互いの提示するイベントに関心のない Mutex プロセスと共有メモリープロセスも並行合成する。 ロックされていない状態でも書き換えを受け付ける(!) https://t.co/ua562xSLFL」 / Twitter
- いけべさんはTwitterを使っています: 「ここで並行合成した二つのプロセスを、 lock, free, read, write を同期イベントに指定して並行合成する。 すると、結果はご覧のとおり。 ふたつの Muter は他方が lock を取って読み書きする間お行儀よく待つようになる。遷移の可能性は極端に少なくなり共有メモリーには無事 2 が書き残される。 https://t.co/NSbA3bgdlY」 / Twitter
histric-1
- 中村 実さんはTwitterを使っています: "POSIXのread-writer lockがwriterがブロックされた後に、後参のreaderがロックを獲りにいった場合にロックを獲れるかブロックされるかは実装依存なのね。 https://t.co/o7mtqLE4K0"
- Urabe, Shyouheiさんのツイート: "@yukihiro_matz 結局イベントループで使おうかと思うとブロックする箇所はepollなりkqueueなりの一箇所に集中してくれないと困るわけで、そうなってくるとkqueueのように「なんでも待つ」というAPIにしてくれたほうが使う側は便利です。というかepoll不便。"
- shinichiro hamajiさんのツイート: "こさきさんの言う通りlinuxはなんでもfdて思想なんだろうしepoll不便はイチャモンすぎない…というのはともかく、linuxの方向性としてはuserlandで新fd種を定義できると良かったりするのかなぁとかそういう https://t.co/2Ucw8Venq3"
- Rui Ueyamaさんのツイート: "@kumagi さすがズバリ。"
- The Art of Multiprocessor Programming - 第七章前半
- 第6章 カーネル
- Rui Ueyamaさんのツイート: "前回はカーネルスレッドのレースコンディションで猛烈に大変なデバッグをするはめになったから今回はロックじゃなくてチャネルと通信を使って同期するようにしよ。もうあれはこりごり。"
- satさんのツイート: "@yutakakn Cというかlinuxカーネルにはseqlockという楽観的排他の実装があります。read側はとりあえずロックかけずにデータを参照して、データが更新されていることを事後に確認したらやり直し"
- Fadisさんのツイート: "ハザードポインタ、少なくともx86においてはポインタ長の倍の長さのCASの登場によってどうしても欲しい代物ではなくなったんだよな"
- ABA問題 - Wikipedia
- Kazuho Okuさんのツイート: "auto fiberより、基本関数呼び出しは同期オブジェクトを返して、そいつをjoinすると結果が返るみたいなのが好き。そうすればselectみたいにreadとwriteとか文脈ごとに待ち受けコンテクストを用意する必要なくなるし"
- SODA Noriyukiさんのツイート: "実は最近公平性で問題が出てticket lockで一旦は解決したんですが https://t.co/Qf0VqKKRAC ticket lockの場合、負荷をかけるとこの条件変数待ちでグルグルCPUを消費するという問題がでて、結局 @yamasa さん式の奴 https://t.co/1HqQbQOQ1O で解決しました。… https://t.co/Hq1Ulxdqzn"
- Fadisさんのツイート: "ロックフリーとか頑張っても性能が出るかはアクセスパターン次第だからな。たくさんのスレッドがつつくリソースを高速に捌くためにまず検討すべき事は「それって本当に共有する必要があるの」だよ"
- 汎用kumAGIさんのツイート: "「STMの設計と進化」も同様にslideboomにしか置いてなかったっぽいのでdropboxに上げ直し。内容は古いけどSTMの研究するならスターターセットとしてオススメしたい資料。 https://t.co/8CpBiHBBY4"
- STMの設計と進化_.pptx
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy/IPMsgの自作condは、broadcast相当しか用意してないなぁ。 (一つのcondで待つスレッド数は最大2~10程度) そろそろ、XPは完全切り捨てして Win32 CONDITION_VARIABLE(長い!)を使った方が良いかな。… https://t.co/B56vN00rwY"
- SODA Noriyukiさんのツイート: "多コアで broadcast はアカンので signal 推奨じゃないかと思います、たぶん。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "よく考えたら、VS2017なら(C++11以降で導入された)std::condition_variable が使える?(XPでも)"
- FadisさんはTwitterを使っています: 「Vulkan 1.2の規格がリリースされた。Vulkan 1.2では「Aが済んだらn増える」「mに達したらBを開始する」ができる新しいセマフォ timeline semaphoresが標準の機能に入る他、シェーダの言語にHLSLを使いやすくする複数の拡張が取り込まれる https://t.co/eRTOlp4OON」 / Twitter
- Khronos Group Releases Vulkan 1.2 - The Khronos Group Inc
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「条件変数のコーナーケースの話。 そういえば、'96年頃のUNIX系のネイティブスレッド環境利用が難しかった時代、プロセス間条件変数を自作したが、いろいろと苦労した記憶。 特にwait()=ロックを外す&眠る2操作のギャップに、notify()が実行されると永遠にwakeupせずと。 https://t.co/Ka3XdhyrGj」 / Twitter
- 条件変数とダンス(Two-Step Dance)を - yohhoyの日記
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「notifyを取り零すことなく眠る」を実現するため、sigmask交換とsleepをatomicに行えるsigsuspend(2)というsyscallを使ってようやく解決。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu pipeのwriter側への1バイト書き込みを semaphore への post reader 側からの1バイト読み込みを semaphore の wait の代わりに使うって手も… これならベル研時代のUNIX でも使えるし(ぉ post が PIPE_BUF を越えて溜まる可能性があるような応用だとまずいですが…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、普通の用途なら使えそうですね。 なお上記のinterproc-cvには、大量のメモリinodeの利用権確保用でした。=wakeup通知はそのinode開放を待つプロセス群のみwakupしたいと。 (実際の実装だと、開放側は眠りprocリストを走査&開放予定inode番号待ちのprocのみにsig送信してました)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu なるほど。ディスクリプタですから、あまり沢山作るのは避けた方が良くて、その用途だと使えそうにないですね…」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「async/awaitによる非同期が特段に難しいだけで、スレッドモデルで考えれば並列処理そのものはそれほど難しくない。」 / Twitter
- まっちゃらさんはTwitterを使っています 「wait-free/lock-free/obstruction-freeの定義について https://t.co/TQSWWDKRt2 定義だけじゃなくて直感的理解とかリアルワールドのことも書いてあって最高に勉強になった」 / Twitter
- obstruction-free
- mumumuさんはTwitterを使っています 「Ad Hoc Synchronization Considered Harmful [OSDI '10] システムの同期プリミティブを使わないで独自に同期機構を実装することをAd Hoc Sync.と名付け,いくつかの並列プログラムに含まれるAd Hoc Sync.とそのバグ数など定量的な調査を行い,ソースコードから自動でそれらを検出するSyncFinderも実装」 / Twitter
- RISC of RainさんはTwitterを使っています: 「https://t.co/UOTOTrYfg7」 / Twitter
- [intro.races]
- RISC of RainさんはTwitterを使っています: 「conflictとかdata raceとかここにちゃんと定義されている」 / Twitter
- 論理回路 - OnoSatoshiOHP.pdf
- Linux Kernel lockdep機構解説 - VA Linux エンジニアブログ
- ytakanoさんはTwitterを使っています 「これ面白い。spin lockの利用とスレッド数、スケジューラの関係は自分の経験とも合致する。」 / Twitter
- kumagiさんはTwitterを使っています 「実ミドルウェア群に対しいろんなロック実装で差し替えてパフォーマンス比較して得られた知見から作られた、使うべきロック判定用フローチャート、これはいいな。 https://t.co/Y7HC9KzOh1」 / Twitter
- CPUのメモリアクセス命令投機実行の資料を読む - FPGA開発日記
- Kouji MatsuiさんはTwitterを使っています 「多分、ここからCPUの実行コンテキストをspin waitで待機してはいけない、と言う理解までにかなり高い壁がある感じ」 / Twitter
- t157さんはTwitterを使っています 「一般的なプログラムを書く人たちには理解できないと思うんだけど、処理と処理の間にdelayとかsleepとか短い待機時間を挟むなんて考えられないって思うでしょ? でも機械とか装置制御の場合、機械の動作時間が必要で待機する時間がmustで必要なのね。これを理解してもらえないのよね。w」 / Twitter
- 雁人さんはTwitterを使っています 「裏技というと大げさですが、、通信ドライバの中の謎のスリープとか、、なぜかfor分空で1万回回したりとか、ハード絡みのときや、Linuxカーネル部分の書き方見てたら、理解できない書き方になってたとかね。。後々理解したり、、色々失敗して覚えたり。。言語使うときの諸注意ですね、、」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「x86で複数CPUが同時にメモリ書き込みをしようとすると、通常のmov命令の実行順序ではありえない怪奇現象が起こる。これはx86メモリモデルが書き込み順序の変更を許しているためである。いわく「並行システムにおける二重スリット実験」の解説。mfence命令を使えば防げる。 https://t.co/pt04ZYmDiN」 / Twitter
- Memory Reordering Caught in the Act
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「関連記事。x86におけるメモリ書き込みは即時に反映されるわけではなく「しばらく経ってから」反映される。そのためlockフリーのコードを書くには細心の注意が必要。 https://t.co/54f0V5xxzg」 / Twitter
- research!rsc: Hardware Memory Models (Memory Models, Part 1)
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「ゲーム用の音声ライブラリはなぜ難しいのか。音声でバッファアンダーランが起こると非常に耳障りなので、音声処理はブロックされない別スレッドでやらねばならない。つまりmutexは使えない。また、すべての通信をリングバッファでおこなう必要がある。 https://t.co/q1rHb87nob」 / Twitter
- Audio Libraries Considered Challenging | Tesselode Labs
スケジューラ
その他
ハードリアルタイム・ソフトリアルタイム
- Miura HidekiさんはTwitterを使っています 「私が知る限りRustがハードリアルタイムのための言語仕様を聞いたことが無い(GCを起こさないようにするメモリ管理はハードリアルタイムのためと言われれば否定できないけど)、一方Adaはハードリアルタイムなターゲットのための言語と聞くが具体的にそれが何なのかは知らない」 / Twitter
- κeenさんはTwitterを使っています 「航空機みたいに安全性と応答性両方が求められる場面ではAdaが使われてると聞いたことあるしRustが対立候補には挙がるのかもしれない。しかし今Adaで動いてるのにRustに乗り換えるモチベーションはあるんだろうか。」 / Twitter
- κeenさんはTwitterを使っています 「RustとAdaを組み合わせようって話じゃなくて会社と会社のコラボレーションだからそういう安全性が求められる領域での商売を一緒にやっていこうってことだろうし、あんまAdaがとかRustがとかは関係ないか。」 / Twitter
- dalanceさんはTwitterを使っています 「@blackenedgold 最近の戦闘機はAdaからC++に移行したのでそういう人たちはRustに興味あるかもしれません。あとAdaCore側のリリースを見ると、Ada/Rustのbinding generatorとか相互運用性にも言及がありますね(できたらいいね、レベルの話ですが)」 / Twitter
- κeenさんはTwitterを使っています 「@dalance1982 C++移行で不安定になったみたいな話ききました(本当かどうかは知りませんが)。そういう人にはRust刺さりそうですね。Ada/Rustの相互運用…できたら面白そうですね。AdaCoreがgnatのLLVMバックエンドも持ってるみたいなのでできなくはなさそう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「いつの時代も(私の分かるここ30年くらいのスパン)、ハードリアルタイムは難しい問題であり続けたけどこれをターゲットにするプログラミング言語ってあまりないよな。ソフトリアルタイムは研究用なら沢山あるけど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「JAISTでハードリアルタイムとソフトリアルタイムの違いを学んだが、流石にハードリアルタイムのための言語は手を出したいとは思わない。ソフトリアルタイムだと面白そうだけど、いっぱいあるしな」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「https://t.co/jahyBnmPiE APIの一覧見て、スレッド生成で優先度が指定できないのだが、本当に実時間OSなのだろうか?優先度継承はあるのかな?と思ったけどそれ以前っぽい」 / Twitter
- www.menuetos.net/syscalls.txt
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- マイクロサービスアーキテクチャにおける分散スケジューラ
- Goのワークスティーリング型スケジューラ | プログラミング | POSTD
- はじめてのにき(2017-11-03)
- ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
- CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
- マルチプロセッサのタスクスケジューリングに基づいたWebシステムにおけるコンテナのハードウェアスケジューリングのシミュレーション構想 - 人間とウェブの未来
- Google、マネージドCronサービスCloud Schedulerを発表
- GameTechDev/GTS-GamesTaskScheduler: A task scheduling framework designed for the needs of game developers.
- 3-CNF SATからpolygraphのacyclicity判定問題への帰着 - すぴすらのろぐ
- List of order theory topics - Wikipedia
- CiNii 論文 - 単一仮想記憶型OSにおける外部スケジューラの実装
- Rustのasync/awaitとスケジューラの話 / rust-async-await - Speaker Deck
- 000055579.pdf
- uchanさんはTwitterを使っています 「リアルタイムOSについて素人でよく分からないんだけど,例えばプロセスのリストをforで処理したりすると,もうそこで処理時間が読めなくて詰む,みたいなことは無いの?」 / Twitter
- KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE
- Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
- 詳解xv6 Scheduling 1 - うたもく
- コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘 - GIGAZINE
- スケジューラーと優先順位の逆転 - 借り初めのひみつきち
- macOSがM1シリーズ搭載端末で計算処理性能と省電力性能を両立している仕組みとは? - GIGAZINE
- Google Chrome、CPU使用時間を1割削減する機能をテスト - PC Watch
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「CPUの動作周波数はつねに公称どおりの最高値を維持しているわけではない。電力節約のためたえず変化している。クロックが最低→最高になるのが最も速い機種は AMD Zen 3で、遅いのはIntel Xeon E5-1650だった。CPUによっては周波数は段階的に変化する。測定方法の解説あり。 https://t.co/Nk5KvFL135」 / Twitter
- How Quickly do CPUs Change Clock Speeds? – Chips and Cheese
- 区間スケジューリング問題とGo言語におけるライブラリを使った優先度付きキューの実装
big.LITTLE
macOS
- 高梨陣平さんはTwitterを使っています 「素晴しい記事。M1 Macが実際よりも速く感じるのはmacOSの優れたスケジューラのため。人は複数のタスク全体のスループットよりも個々のタスクのレイテンシにより敏感。かつてLinuxのCompletely Fair Queue (cfq) I/O schedulerは全体のスループット最適化をデフォルトで優先したため却って嫌われて消え」 / Twitter
- Ars TechnicaさんはTwitterを使っています 「Apple’s M1 is a fast CPU—but M1 Macs “feel” even faster due to QoS https://t.co/DeFFXURRTF by @jrssnet」 / Twitter
- Apple’s M1 is a fast CPU—but M1 Macs feel even faster due to QoS | Ars Technica
- 高梨陣平さんはTwitterを使っています 「てしまった。m1 Macではスケジューラのpriorityが5段階、background, utility, userInitiated, and userInteractive、default存在。defaultはOSがpriorityを決定する。この時、Intel MacでもM1 Macでもこの5段階は変わらない。しかしM1ではOSはできるだけ優先度の低いタスクを遅い Icestormコアで実行」 / Twitter
- 高梨陣平さんはTwitterを使っています 「し、速いFirestorm コアをpriorityがuserInitiated and userInteractiveのタスクのために空けておく。例えば10GBの。ファイルの圧縮は実際にはM1よりもintelのほうが速い。しかしM1ではシステムがidleでもbusyでも速度がより一定になる。優先度が高いタスクでもM1 Macのほうがパフォーマンスは一定だ。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「.@jingbay OS QoSに関係するかもですが、Appleキャッシュ系特許に QoS management in L2 (申請: 11/12)、認定 (14/04) https://t.co/flnVulXoeS Application aware SoC memory cache partitioning (19/08)、公開 (21/02) https://t.co/NzNXMBt6u0 ※SoC Fabric概要有 気になるのがいくつもあります。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> Patent "QoS management in the L2 cache", Granted: Apr 10, 2014 (Dec 2011) https://t.co/HvwvITMWmN "Parallel coherence and memory cache processing pipelines", Appl, Mar 12, 2020 (Sep 2018) https://t.co/fjiDxjWY5i Memory Latency https://t.co/xKEm3pFC8u https://t.co/BhO1fyfXJU https://t.co/2WahZO7SVd」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Application aware SoC memory cache partitioning", Apple, Patent Application, Feb 4, 2021 (Filed: Aug 2, 2019) https://t.co/LWzSZFZoiI Fabric Coherence Controller SoC Switch bar I/O Switch bar Apple Patent https://t.co/pW4vSGBMGg QoS in Memory, Scalable NN engine, etc. https://t.co/aFxMVcdR5p」 / Twitter
- AppleのM1チップはタスクの処理方法を工夫することでユーザーに「処理が速い」と思わせている - GIGAZINE
- Kazuho OkuさんはTwitterを使っています 「あのm1のスケジューリングの説明、イマイチ納得いかないっていうか、フォアグランドプロセスがブロック解除したら、いきなり高性能コアで動かしてるってこと? それってバッテリ食わない? みたいな気持ち。クロックの上げ下げとかコア間のミグレーションとかそのへんの仮説棄却もされてないし」 / Twitter
- Izumi TsutsuiさんはTwitterを使っています 「bit.LITTLE みたいな symmetrical でない MP を OSはどう処理しているのか、みたいな解説ないんかな(これを低レイヤ質問室に投げればよかったのか)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tsutsuii ググったところARM的な公式ページは Energy Aware Scheduling (EAS) https://t.co/we4UELISJa っぽい。 ここから辿れるOSPM summit https://t.co/wrBaR20QJ0 にスライドがあった。 ちゃんと見てないけど OSPM II 2018/04/18 の https://t.co/dnadJUfCTh とか詳しそう」 / Twitter
- Home of the OSPM Summit 2020
- Energy-Aware real-time task partitioning - Parallel or Sequential? - EATaskPartitioning.pdf
- suzakiさんはTwitterを使っています 「@n_soda @tsutsuii bit.LITTLE(ヘテロコア)におけるスケジューリングは興味があったので調べてみました。 2013にSamsungがDVFSを使った論文を出しています。 Power-aware task scheduling for big.LITTLE mobile processor https://t.co/l7wVWFDj25 これも決定打ではないですが。」 / Twitter
- Power-aware task scheduling for big.LITTLE mobile processor - IEEE Conference Publication
- Makoto Kato ︎︎さんはTwitterを使っています 「big.LITTLEはコヒーレンシが面倒だし、littleで動かしてたタスクをbigに持って行く時のマイグレーションは非常にコストが高いので、Intelのは都合のよいベンチはいいデータを出すけど、自分の用途で必要なビルド環境的なのは、Intelおいしくないと思うんだよね」 / Twitter
- AlderLakeのパフォーマンスの問題を修正するためにLinux5.18に登場するIntelのスレッドディレクター|自作.com
- New Intel Patch Series To Further Help Alder Lake / Hybrid CPUs On Linux - Phoronix
- Linux Kernel における Alder Lake のスケジューリング改善 | Coelacanth's Dream
- Linux Kernel に Intel Thread Director を実装するパッチ | Coelacanth's Dream
- Intel Posts Big Linux Patch Set For "Classes of Tasks" On Hybrid CPUs, Thread Director - Phoronix
- Intel Working On Energy Aware Scheduling For x86 Hybrid CPUs - Phoronix
- Makoto Kato ︎︎さんはTwitterを使っています: 「Bryceが前書いてたブログ (https://t.co/wZBIoubSIg) 見る限り、big.LITTLEなIntelのチップは自分のワークロードだと分が悪いので、今の所AMDしか選択できないですよね。。。もちろんLinuxとかWindows 11だとスケジューラの関係でいろいろ変わるかもだが」 / Twitter
- Poor Alder Lake performance when building Firefox due to bad scheduling
- Makoto Kato ︎︎さんはTwitterを使っています: 「手元のWindows 11なデスクトップは11genなRocket Lakeだけど、アップグレードする予定はないから検証することはできないけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Alder Lakeのヘテロ構成の話。実装面積的にはEコア*4でPコア1個。Eコアの性能はPコアの4割程度っぽい。Eコアはハイパースレッド使えば1.2倍くらいのスループットが出る。なので... 全部EコアのCPU作れば、性能は1.33x 一方で...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ベンチマークでしか使ってないけど頭いいなーって思ってる。 クライアントサイドだと、スモールコア回すの全コアでエンコードとかする時くらいで、その場合はスモールコアの面積比実行効率の高さで性能伸びるし、それ以外のタスクだとどのみちアイドルだし。 サーバサイドだとヘテロうんこだけど」 / Twitter
- 概念としてのノラ💉💉💉💉さんはTwitterを使っています: 「Alder系のヘテロコアって、ベンチと実環境ではどれくらいの差なんだろうか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「全部PコアのCPUで20%の処理時間がロック待ちのケースを考えると、 Pコア*4でハイパースレッドが有効の場合、シングルスレッドで処理した場合と比較したスループットは 0.6*0.8*8+0.2 = 4.04x Eコア*16の場合は、ロック待ちの時間が0.2/0.4=0.5になるので、(0.5*16+0.5)*0.4=3.4x となる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ハイパースレッドすごい(相方がロック待ちした瞬間ブーストかかるので)」 / Twitter
NUMA
Raphine Project
- 256コアマシン向けのOSを作る – Raphine Project<サイト製作中>
- livaの雑記帳(2016/10) – Raphine Project
デュアルソケット・ザ・ワールド
- デュアルソケット・ザ・ワールド Windows 7 で NUMA が認識されない件に付いてMicrosoftのサポートに問い合わせてみる
- デュアルソケット・ザ・ワールド NUMA (Non-Uniform Memory Access)
AMD
EPYC
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「cat /sys/bus/pci/*/numa_node してみると、EPYC2のサーバでは(ほぼ)全てのデバイスが -1 となっているのにはどういう理由があるんじゃろ。 Skylake-Spでは繋がっているCPUに応じたnuma_nodeが設定されていて、デバイス間の距離導出に使えたのだが…。」 / Twitter
- Hiromichi ItouさんはTwitterを使っています 「@kkaigai EPYC 7002シリーズ以降は、メモリコントローラもPCIeコントローラもServer I/O Die(sIOD)に集約されているので1ソケットだと等距離だからかな?」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@itoooon @kkaigai Gabriel Lohさん (Senior Fellow, AMD) の Chipletについてのスライドが解りやすいと思います "An Overview of Chiplet Technology for the AMD EPYC and Ryzen Processor Families", Aug 24, 2021 https://t.co/A5lOId595H 詳細は ISCA 2021のペーパーに。 https://t.co/0qjDs0jUG8」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "An Overview of Chiplet Technology for the AMD EPYC and Ryzen Processor Families", Gabriel Loh, Senior Fellow, AMD, IEEE SCV - Industry Spotlight, Aug 24, 2021, (4.6 MB / 36 pp) https://t.co/SwRDdjnaun https://t.co/t0V7tfi2Dc Industry Track, ISCA 2021 https://t.co/lh6slPsRMP https://t.co/FNwfaxfQer」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@ogawa_tter @itoooon 1-socketのマシンなのですが、PCIのroot-complexが4つ見えているのはこの図の通りのようですね。情報ありがとうございます。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon それだと numa_node_id=0 でまとめてくれれば良いのですが、-1 になっちゃうのが謎です…。」 / Twitter
- Hiromichi ItouさんはTwitterを使っています 「@kkaigai 確かに-1になるのは謎なので、ソースコードを斜め読み中。」 / Twitter
- Hiromichi ItouさんはTwitterを使っています 「@kkaigai おお、いろんな理由で、numa_nodeの値が正しく設定できない時があるので、書き込み可能にしたのね・・・ https://t.co/vpewbMQGY7」 / Twitter
- pci, add sysfs numa_node write function - Patchwork
- Hiromichi ItouさんはTwitterを使っています 「@kkaigai と言うことで、ACPI等から正しい値が取得できていないのが、-1になる原因の模様です。該当のチップセット用のドライバを作って取得するワークアラウンドもある模様ですが、上記の書き込み可能パッチに関するのやり取りの中でも、推奨されてませんね。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon おわ!わざわざ調べて頂いてありがとうございます。 一つのワークアラウンドとしてはアリですね。 あとコレは、GPU<->SSD間の距離の自動認識に使っている情報なので、別の何かで「距離」を表現すればnuma_node_idを意識せずに済むかもしれません。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon 一枚目が既存のSkylake-Spの2-socket機、二枚目がEPYC2の1-socket機なのですが、別にnuma_node_idに拘らなくても、各々のPCIe root complexを持っているCPUが同じ/違うという事が判れば十分なので、距離導出のロジックを変えて対応しようかなと思いました。 https://t.co/BuoHUbJYNj」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@itoooon あ、EPYC2機、Hyper-Threading切ってない。」 / Twitter
- Kazuho Okuさんのツイート: "コアの半分以下しか使いきれないソフトウェアだと、このほうがパフォーマンス上がるし、ゲームとかベンチ対策考えると妥当な設計な気がする / “【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのア…” https://t.co/hxMq34LTSe"
- 【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのアーキテクチャ - PC Watch
- 品川 高廣さんのツイート: "Linux カーネルの automatic NUMA balancing は Ryzen Threadripper 2990WX とはあまり相性が良くないんだろうか。オンにするとかえって遅くなるらしいんだが。"
RHEL
- 23.31. NUMA ノードの管理
- 第4章 CPU
- 8.2. NUMA の自動負荷分散
- 8.4. NUMA 対応 KSM (Kernel SamePage Merging)
MS
- Hyper-V 仮想 NUMA の概要
- VMM での仮想 NUMA の展開
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MapViewOfFileExNuma というWin32APIが増設されていた。 https://t.co/BLSySUw57w」 / Twitter
- MapViewOfFileExNuma function (winbase.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NUMA関連Win32API一覧 https://t.co/kMatP7SyHE」 / Twitter
- NUMA Support - Win32 apps | Microsoft Docs
blog
- NUMAとメモリとゲームとサーバ | ツチノコブログ
- NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
- NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
- SQL Server と NUMA at SE の雑記
- [パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
- VMworld 2014速報: Breakout Session 【vSphere / vCenter Operations Manager】編!! - Japan Cloud Infrastructure Blog - VMware Blogs
- NAKAMURA Minoru's Diary (2013年2月)
- NAKAMURA Minoru's Diary (2013年6月)
Wikipedia
- NUMA - Wikipedia
- Non-uniform memory access - Wikipedia
- NUMA 向けのアプリケーションの最適化 | iSUS
- MCAPI事例: マルチコア設計におけるCPU間通信 - Mentor Graphics
- Microsoft PowerPoint - Arakawa-20110715.ppt
- matsutani_kyushu2008.pdf
- KeyStone マルチコア DSP トレーニング | デジタル・シグナル・プロセッサ | TI
- Topic cloud/ja - NAIST Ito-Lab - ITS, Mobile and Cloud Computing
- Microsoft PowerPoint - shohei-g.poster.pptx
- マルチコア組み込みシステムの挙動、
- タダ飯を食わせろ
- C02.pdf
- Slide 1
- qemu/KVM を実行してて、Auto NUMA Balancing と ksm の食合せが悪い場合のワークアラウンド “ echo 0 > /proc/sys/kernel/numa_balancing” もしくは ksm を停止 - hiboma のコメント / はてなブックマーク
- HPCシステムズ HPC Do It Yourself Clubへ
- FadisさんはTwitterを使っています: 「NetflixがFreeBSDのカーネルのネットワークスタックを改良したらEPYCでの帯域が3倍になった話。200Gbpsでデータを吐き続けるサーバにとってNUMAノード間をデータが往復するのは許容できないオーバーヘッドらしい https://t.co/U049CYwMeo」 / Twitter
- Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance - Phoronix
- FadisさんはTwitterを使っています: 「ネットワークガチ勢は皆カーネルを迂回すると思っていたけど、カーネルを魔改造する一派も居るんだな」 / Twitter
- FadisさんはTwitterを使っています 「NUMAなマシンでは、プロセスが使用するメモリとプロセスを実行するプロセッサを同じノードにしておかないと性能ガタ落ちだから、Linuxカーネルは新しいスレッド(=現在のノードのメモリを共有する)を可能な限り同じノード内のプロセッサで動かすような割り当てを行う筈」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs cgroupsのcpusetを使うと、特定のグループのプロセスが使って良いプロセッサを制限できます。確かnumactlに--physcpubindをつけた場合裏でこれを設定していた筈。」 / Twitter
Processor affinity
- プロセッサ親和性 - Wikipedia
- Processor affinity - Wikipedia
- Tech TIPS:Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する) - @IT
- Linux - CPU プロセッサアフィニティ(親和性)の設定! - mk-mode BLOG
- プロセスへのCPU割り当てについて
- DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする – Microsoft SQL Server Japan Support Team Blog
- 25.6. KVM プロセッサーアフィニティの設定
- CPU/Processor Affinity - SyncHack
- 北森四葉さんはTwitterを使っています 「Ryzen Threadripper 3990X、Processor Groupの問題が取り上げられてるな https://t.co/yksMCIxRB4」 / Twitter
- The Windows and Multithreading Problem (A Must Read) - The 64 Core Threadripper 3990X CPU Review: In The Midst Of Chaos, AMD Seeks Opportunity
- Usagi Ito 👩💻 High-tech Hermit 🧙♀️さんはTwitterを使っています 「なるほどWindowsだと見えるコアが64を超えるとアプリ側で特別変態的にアフィニティー制御を入れて作ってない限り悲しい事になるのね。」 / Twitter
- 北森瓦版 - Ryzen Threadripper 3990Xが解禁される
- Windows 10 Proは128スレッドのAMD Ryzen Threadripper 3990Xを処理できない - 自作ユーザーが解説するゲーミングPCガイド
- Windows10+Ryzen Threadripper 3990X問題について整理してみる - 自作ユーザーが解説するゲーミングPCガイド
- Kazuho OkuさんはTwitterを使っています: 「本件、サーバプロセスを特定CPUコアに固定するのを忘れていたため、起動時の運によって割り当てられるCPUコアが違う(そうすると割り込み等の関係でプロセスの動作速度が変わる)、というありがちなオハマリでした」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「何もしてないのに速くなった (当社比10%)」 / Twitter
- プロセッサアフィニティが NUMA では機能しない - Internet Information Services | Microsoft Learn
Tickless カーネル
Twitter
- ゆたかさん🐬さんのツイート: "ticklessカーネルだと、1ミリ秒ごとにタイマ割り込みが動かないので、CPUがアイドル状態でCPUの負荷を抑えられるのです。 https://t.co/qBxrbmMvnt"
- ゆたかさん🐬さんのツイート: "RHEL6やWindows8などの比較的新しいOSでは、ticklessカーネルなのでタイマ割り込み自体で時刻管理するのではなく、クロックソースを使います。 OSに負荷がかかると時刻が遅れるということはないですが、クロックソースのチップで時刻精度が変わってきます。 https://t.co/brG73hwD46"
- Fadisさんのツイート: "紛らわしいからソフトリアルタイムを指すリアルタイムはインタラクティブって呼ぶようにしてる"
- Fadisさんのツイート: "ハードリアルタイムで大事なのは、処理が早いかじゃなくて、ある決まった時間内に処理を完了させる事をシステムは保証できるか、だよ。プロセッサがその処理を片付けるのにかかる最長の時間は明確か、とかOSはその処理が完了する前にその処理を中断させる事が無いかとかそういうところが問題になる"
- とみながたけひろさんのツイート: "仮想メモリやキャッシュが存在しない環境がなくなりつつある今、私の期待するリアルタイム性はもはや「一番優先度が高いスレッドがCPU時間を全部とれる」ぐらいになりつつある"
- とみながたけひろさんのツイート: "最近はLinuxでさえticklessになったし、OSのリアルタイム性よりもUSBのパケットが1msecに一度しか送れないとかそっちのほうが辛くなりつつある"
- とみながたけひろさんのツイート: "「無限のCPUパワーでビジーループしててもスレッドが勝手に切り替わったり、スレッド切替粒度が1秒に100回しかなかったりだとつらいだろ?」というの、後者はticklessで解決したし、もう前者があればなんとかなるじゃん、CPUパワーはなくともコア余ってるし、みたいな(電池環境だとそうもいかないけど)"
- とみながたけひろさんのツイート: "なおLinuxはデフォルトだとリアルタイムスレッドにはCPU時間の95%ぐらいまでしか使えないので完全なビジーループはできない(5%ぐらいはフツーのスレッドに時間が強制的に割り当てられてしまう)。一応0にできるが大抵の場合は設計ミスだと思うし、そこまでギリギリだと多分0にしても問題は解決しない…"
- とみながたけひろさんのツイート: "20年ぐらい前に、Linuxでsnes9xを書いてた頃は「くそーVBlank周期の59.83fps=16.72msec待ちたいのに無駄にたくさん待ってしまう。なんだこのOSはー」とか言ってたわけだが、今や普通に100nsecぐらいの精度でスレッド切替できるのだった。そう、時代は流れたのだ…(当たり前"
- とみながたけひろさんのツイート: "まあ裏では多分「ハードリアルタイム」なOS他が動いているマイコンが内蔵された、細かい仕様は教えて貰えないIPやチップがあるからこういう楽ができるんだろうけど、まあ、いい時代になったということで…(本当か?)"
- とみながたけひろさんのツイート: "多分このツイートをしている環境だけでも、無線LANやBTのチップ、HDDやSSDのコントローラー、各種PMIC、USBコントローラー、LCDのパネル制御、…とかで、私のような軟弱プログラマが書いたのではない「プログラム」が動いているんだろうなあ"
- とみながたけひろさんのツイート: "「インターフェース」とかに、昔はRTOSにおける待ち行列モデルとか色々細かく解説記事が出てたけど、もうそういう時代じゃないんだよな…(こんなこと書いてる自分もほとんど忘れている)"
- とみながたけひろさんのツイート: "ガチのOS研究している人に怒られそうなのでこのへんで止めとこ…(すでに無知をさらしている感じのところがいくつかあるが実際そうだしまあいいや…"
- mumumuさんはTwitterを使っています 「System Noise, OS Clock Ticks,and Fine-Grained Parallel Applications CPU-boundな大規模並列処理を考えると,OSのノイズによる1コアの少しの遅延が全コアに伝播してしまう可能性がある.ここでは,その原因のノイズとしてとくにTickの影響が大きいことを指摘.https://t.co/2a8Wd97au7」 / Twitter
- noise3.dvi - Noise05ICS.pdf
- jiffies ‐ 通信用語の基礎知識
- Ticklessカーネルとクロックソースに関するお話 - めもめも
- 2.4. Tickless カーネル
- 3.6. Tickless Kernel
- LinuxのFull ticklessを試してみた
- Timekeeping in VMware Virtual Machines
- LinuxKernel - ソフトウェアエンジニアリング - Torutk
- 各々の生き方: Chromeの不具合?とWindowsの仕組み
- jiffies更新を追いかける - Linux関係メモ@宇治屋電子
- 【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
- 「Haswell」って何だ? 第4世代Coreプロセッサが採用するアーキテクチャのポイントを一気に押さえよう - 4Gamer.net
- [まとめ]Linuxシステム時刻について - Akira's Tech Notes
- Clock / Timer
- 9月版 タイマにまつわるエトセトラ(1/2) - @IT
- 時刻と時間の管理、プロセスのスケジューリング
- 今更Sleepの解説するなんて、と思うのです。
- Linuxのしくみを学ぶ - プロセス管理とスケジューリング
- カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ | VA Linux Systems Japan株式会社
TSC
MSR_or_ハードコーディング
- Time Stamp Counter - Wikipedia
- x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs [Linux 4.10] - Linux Kernels
- Getting TSC rate in x86 kernel - Stack Overflow
- [tip:x86/timers] x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
- [4/4] x86/tsc: set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
- [v3] x86/tsc: add X86_FEATURE_TSC_KNOWN_FREQ flag - Patchwork
- [U-Boot] [PATCH 6/6] x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()
- [PATCH 0/9] x86: TSC calibration update - Google グループ
- mOS/tsc_msr.c at master · intel/mOS
- 社会人でもOSを作りたいさんのツイート: "PCのタイマーぜんぜん分からん… 正確に時間を測るの不可能では?"
- 社会人でもOSを作りたいさんのツイート: "まず、驚くことにHPETがレガシーデバイスとして分類されてるIntel製のチップセットがあるので、レガシーフリーを目指す身としてはHPETは避けたい。すると、周波数既知のタイマーとしてはACPI PM TimerかInvariant TSCということになる。(続く)"
- 社会人でもOSを作りたいさんのツイート: "Invariant TSCの周波数はMSRから取得できるのだが、BIOSの設定でバスクロックが変更されているとタイマーにズレが出る。ACPI PM Timer は、最近流行りのHardware-reduced ACPIでは搭載されてない可能性がある。"
- beepcap@HTTPSの強制には反対さんのツイート: "不可能だよ?… "
- 社会人でもOSを作りたいさんのツイート: "不可能だってことなので、まあ適当にしとくか、という気持ちになった"
- CPUクロックに基づく相対時刻の計測
- 本の虫: 100ナノ秒ぐらいの分解能をもつクロック実装
- Livaさんのツイート: "雑魚すぎてTSCの情報を取ろうとして嵌った。ずっとこのページとにらめっこしてて、答えがちゃんと書いてあるのに、華麗にスルーしてた。 https://t.co/GVudVa6n4O"
- arch/x86/kernel/tsc.c : set X86_FEATURE_ART for TSC on CPUs like i7-4910MQ : bug #194609 - Patchwork
- Livaさんのツイート: "CPUID 15hでTSCの詳細な値取れるじゃーん、あれでも取ってきた値おかしくね?ってずっと悩んでたのだけど、boot_cpu_data.cpuid_level == 13、つまりCPUID 0Dhまでしか取れないから、15hで取った数値になんの意味もない"
- AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
- Converting Sandy Bridge TSC to wall clock time
- Time Stamp Counters - atp
- andyphillips/time_stamp_counters
- LKML: Thomas Gleixner: Re: [PATCH] x86/tsc: Always Running Timer (ART) nanoseconds clocksource
- 時間を計測する
- dterei/tsc: Quick and dirty TSC access for benchmarking
- TSC frequency variations with temperature
- Pitfalls of TSC usage | Oliver Yang
- Invariant TSC を 使う - Qiita
- Page 1424
- bits-2003
Local APIC timer
- yuYabu☕️さんのツイート: "今から自作OS作るならPIT,RTC,HPETは使わない方がいいらしい。 #osdev_moku2"
- yuYabu☕️さんのツイート: "HPET重要な特性:HPETはmemory maped deviceなのでosを介さずに直接アクセスできる。 RT mark.ユーザー空間にキャッシュできる。レジスタをOS経由で触るよりメモリを参照する方が早い。まだまだ使える(レガシーではない)"
- 錆ありはぐれベアメタルさんのツイート: "お客様の中にintelの中の人は居ませんか? #osdev_moku2"
- yuYabu☕️さんのツイート: "これからの自作OSで利用するタイマー構成は ACPI PM Timer(初期時計)+Loal APIC Timer(普段使い)がおすすめらしい #osdev_moku2"
- 社会人でもOSを作りたいさんのツイート: "タイマーイベントの管理は,最小・最大ノードをO(1)で見つけられるヒープツリーが用いられることが多い. #osdev_moku2"
- Timers
- Nerry さんのツイート: "lapic timerそもそも計測しないと周波数わからない時点で正確なクロックソースとして信用できないことに気付いた。"
- hikalium.com
アイドル状態
- 【やじうまPC Watch】ノートPCのバッテリを過剰消費しているChrome長年のバグが解決へ? - PC Watch
- 本の虫: Google Chromeを使うとファンの回転数が上がる理由
- Shinji KonoさんはTwitterを使っています 「マウスの位置をリアルタイムで取得して記録するアプリで「CPU100%」になるのを防げという課題を出したことがあるのだが、誰も解けなかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「sleep入れるだけなんだが、言われないとわからないもの。その辺りがOS/マルチタスクを理解してるかどうかってことなんだが…」 / Twitter
バックグラウンド処理
- 「Google Chrome 57」にはバックグラウンドタブの電力消費を抑える仕組みが導入 - 窓の杜
- Google Developers Japan: バックグラウンド タブによる電源消費量の削減について
スタッター
- 【CPU】 超多コアCPUでゲームをするときの注意点 : ニッチなPCゲーマーの環境構築
- スタッターの英語・英訳 - 英和辞典・和英辞典 Weblio辞書
コンテキストスイッチ
FPU
- 日記 (2018 年 6 月下旬)
- 日記 (2018 年 6 月下旬)
- 日記 (2018 年 6 月下旬)
- 拡張プロセッサー・ステートを保存/復元する組み込み関数
- 7月版 ファームウェアの置き場所を巡ってフレームウォー(2/2) - @IT
- XSAVE — Save Processor Extended States
- XRSTOR — Restore Processor Extended States
- x86 and amd64 instruction reference
lazy FPU context switch
- nakamori akiraさんのツイート: "Intel CoreおよびXeonプロセッサ内のセキュリティー欠陥は、チップの演算処理装置から機密データを盗み見される可能性がある。AESの鍵はFPUレジスタに保存されるが、そのレジスタを盗み見される可能性がある。… "
- The Registerさんのツイート: "Overnight: Intel Core and Xeon processors have a security flaw that lets the math unit leak parts of its registers from one app to another - registers used for AES encryption. It's possible for malware to snoop on crypto keys in other programs https://t.co/b9q051uXc5"
- Intel chip flaw: Math unit may spill crypto secrets to apps – modern Linux, Windows, BSDs immune • The Register
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665)
- このコード、オシャカルトっ!さんのツイート: "CVE-2018-3665の話しで出てきてたeagerfpuって今のコードになくない?と思ったら、もうこの機能は常にonになったからon/off 切り替えというのはなくなっていた。 https://t.co/XxV9BMPPyx"
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- Kimihiro Nonakaさんのツイート: "つーか、今のx86だともうlazy FPU context switchって意味無いからなぁ"
- Coreプロセッサに新たなサイドチャネル攻撃の脆弱性。深刻度は中 - PC Watch
- まさみさんは語りたいさんのツイート: "タスク切替時にFPレジスタの復元を遅らせることで、切り替えたタスクが実際にFPを使うまでレジスタ復元にかかるオーバヘッドを回避するっていうあれか。"
- まさみさんは語りたいさんのツイート: "Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d"
- Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- とみながたけひろさんのツイート: "今時のコンパイラって何でもかんでも(特にメモリコピーとか)SIMDレジスタ使ってくるんで、コンテキストスイッチ直後にSIMDレジスタ使うとかで、、、FPUレイジーコンテキストスイッチってほとんど意味なくなりつつあるんだよね… "
- syuu1228さんのツイート: "でも特にAVX以上になるとFPUレジスタのサイズがでっかくなりすぎてくるから全退避・全リストアじゃなくてCPU命令で差分退避・差分リストア出来るようにしようとなった、という経緯だったような"
- Lazy FP State Restoreの脆弱性が、ほとんどのIntel Core CPUに影響を与える
- Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- 社会人でもOSを作りたいさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
- LazyFP vulnerabilityの紹介
The Old New Thing
- FadisさんはTwitterを使っています 「x86にはUD2っていう呼ぶとinvalid opcode例外が飛ぶ事が保証されている命令があるんだけど、これを使うと遅いx86のINTを避けてring 0に移れる事に気づいたマイクロソフトがUD2でコンテキストスイッチし始めて、Intelに「UD2もっと速くならない?」って言い出してIntelが「ふぁっ?!」ってなる話好き」 / Twitter
- FadisさんはTwitterを使っています 「で、その後INTじゃなくてシステムコール専用に高速にring 0に移れる専用の命令があった方が良いよねとなって、SYSENTERや今日x86_64で使われているSYSCALLが登場する、と」 / Twitter
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- FadisさんはTwitterを使っています 「UD2の件のソースはこれ( https://t.co/1lV3gwp5Uu )なんだけど、江添さんの紹介してるやつの話が1989年だとすると、時系列的にはこの話はUD2が追加される以前の話になるから、実際にはUD2じゃなくて本当にinvalidなopcodeでも使ってたのかな」 / Twitter
- User-level threads....... with threads. - Paul Turner - Google - YouTube
- suzakiさんはTwitterを使っています 「@darklie @fadis_ 日本語ブログではリンクが切れていますが、同じタイトルのHPがありました。 The hunt for a faster syscall trap https://t.co/EDqnpwuhvC IntelとMicrosoftと打合せでMicrosoftが無効命令の高速化を要求したストリーは聞いた覚えがあります。」 / Twitter
- The hunt for a faster syscall trap | The Old New Thing
- FadisさんはTwitterを使っています 「コンテキストスイッチが高コストというのは、かつてはx86のソフトウェア割り込みが超遅いという話だったけど、現代においてはカーネルのスケジューラが複雑なのがコストの主な原因で、syscall命令自体の実行時間はそれと比べると誤差みたいになってるのか…」 / Twitter
- でかいのさんはTwitterを使っています 「@fadis_ ring0遷移の所要時間 50nsecは結構遅いと思うのですが、そんなの目じゃないほどスケジューラーが遅いってことなのかなあ。複数コアの情報取得・連係制御のコストが高い??」 / Twitter
- FadisさんはTwitterを使っています 「@dekaino syscallが50nsec程度なのに対して、コンテキストスイッチ全体に要する時間が1usオーダーのようで」 / Twitter
- でかいのさんはTwitterを使っています 「@fadis_ spinlockがいくつかあれば1usecくらいすぐいきそう。複数コアで排他なしのスケジューリングは困難で、原理的に排他コストがかかるのは不可避でしょう。 スケジューラーが複雑なことが主なコスト要因って表現だと、何かを犠牲にして単純化すれば所要時間短縮できそうに思えますが、ちと無理そうです。」 / Twitter
- あるコンテキストスイッチの話
- ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る - HPC/並列プログラミングポータル - OSDN
- Project Zero: Racing against the clock -- hitting a tiny kernel race window
- Concurrent と Parallel - NyaRuRuが地球にいたころ
- parallel と concurrent、並列と並行の違い - 本当は怖い情報科学
- Linux カーネルと FreeBSD カーネルの割り込み処理
- I-26-1. コンテキストスイッチの仕組み | 日本OSS推進フォーラム
- 社会人でもOSを作りたいさんはTwitterを使っています: 「コンパイラが用意してくれるmemcpyの速さに感動するんだけど、これって低レイヤあるある?」 / Twitter
- Toshitaka MiuraさんはTwitterを使っています: 「@uchan_nos コンパイラそのものよりは、チューンされたイントリンシック関数ですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux で、カーネル内を走行中に割り込みが走る場合と、ユーザプロセス内を走行中に割り込みが走る場合って、なんて呼び分けるんでしょう? どちらも preemption ではあると思うんだけど。 なぜこんなことを気にしてるかというと、両者のオーバーヘッドの違いを説明する文章を書いてるからです。」 / Twitter
- 猫ぱんちさんはTwitterを使っています 「@kazuho 前者をとくにカーネルプリエンプションと呼んで区別するくらいではないでしょうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@nekopunch_pk ありがとうございます。kernel preemption, user preemption のような用語を定義をつけて説明することにしたいと思います cc @syohex」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「やっぱuser preeemptionのほうがkernel preemptionよりだいぶ重たいんですね。。。」 / Twitter
- カーネルプリエンプション - Linuxの備忘録とか・・・(目次へ)
- 今月の myos - 借り初めのひみつきち
- Measuring context switching and memory overheads for Linux threads - Eli Bendersky's website
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「タイマー割り込みがコンテキストスイッチが必要と判断したら、実行中のスレッドにTIF_NEED_RESCHEDをセット。スレッドはこのフラグが立っていたら、システムコールか割り込みハンドラのリターン時にコンテキストスイッチ。という感じか。」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「コンテキストスイッチの起動はここか。5.4以降のどこかはコードがかわってるっぽいが。 https://t.co/jehCXguNNL」 / Twitter
- common.c - arch/x86/entry/common.c - Linux source code (v5.4.168) - Bootlin
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「ここに移動している。 https://t.co/W5kLEC3AKK」 / Twitter
- common.c - kernel/entry/common.c - Linux source code (v5.15.11) - Bootlin
M:Nスレッド
UMCG
- FadisさんはTwitterを使っています 「GoogleがLinuxカーネルにUser Managed Concurrency Groups(UMCG)を入れるための開発を続けている話。この機能はGoogleがLinuxでFibers(軽量スレッド)を作る為に実装し、同社のサービスで利用している物をオープンソース化したものらしい https://t.co/ZFer2JhfAy」 / Twitter
- Google Continues Work On User-Managed Concurrency Groups For Linux - Phoronix
- FadisさんはTwitterを使っています 「大量のリクエストを受けるサーバでリクエストに対する処理がIOでブロックした場合、CPUを別のリクエストの処理に渡す必要がある。これを実現する簡単な方法はリクエスト数分のスレッドを作る事だが、CPUの数を遥かに超えるスレッドは生成もコンテキストスイッチも時間がかかり思うように性能が出ない」 / Twitter
- FadisさんはTwitterを使っています 「そのためこの手の開発では非同期IO等が使われるが、非同期IOは同期IOと比較してコードが顕著に読み辛くなる為、もっと軽量なスレッドがあったらなぁ、というのはこの手のソフトウェアが常に夢見るところだった。こうしたスレッドより軽いスレッドはFiberと呼ばれ、いろいろな実現方法が模索されてきた」 / Twitter
- FadisさんはTwitterを使っています 「UMCGは1つのプロセスの中にコンテキストのグループを作り、システムコールによって現在のスレッドが実行するコンテキストを指定した物に切り替える手段を提供する。ポイントは切り替え先を明示するという部分で、切り替えを行ってもカーネルのスケジューラの処理は走らない」 / Twitter
- FadisさんはTwitterを使っています 「Googleによるとコンテキストスイッチのコストのうち大部分に当たる1usオーダーの時間をカーネルのスケジューラが使っており、カーネル空間に行って戻る事自体は50ns程度の時間しかかからないらしい。従ってUMCGによるコンテキストの切り替えは通常のコンテキストスイッチより遥かに高速になる」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「M:N thread の夢再びかあ…」 / Twitter
FlexSC-Threads
- ぬるぽへさんはTwitterを使っています 「osレベルでコルーチン実装するの実は面白そうだし研究もありそう」 / Twitter
- ぬるぽへさんはTwitterを使っています 「僕がここでOSと呼んでるやつはglibcとlinuxカーネルのペアのことでfutexのノリです 強みはOSレベル実装だから、ブロッキングシステムコールが呼ばれたら全部ユーザー空間のメモリから読めるコルーチンにyieldするかユーザー空間のスケジューラにyieldできること だからCで自然にgoroutineができる」 / Twitter
- ぬるぽへさんはTwitterを使っています 「万が一ほぼ同じ先行研究がないなら、多分Linuxカーネルとglibcに実装してちゃんと計測すれば修論になる それで性能もよければそれなりにいいとこの会議通ると思う」 / Twitter
- ぬるぽへさんはTwitterを使っています 「注意としてこういうときは90%の確率でほぼ同じ先行研究があります」 / Twitter
- ぬるぽへさんはTwitterを使っています 「kernel assisted co(go)routineの方の話、コルーチンの開始アドレスのキューをカーネル空間からも触れるようユーザー空間にio_uringのノリで実装することになるから実装面白そうーとか思ってたんですけど、なんかもうひとひねりするとこれio_uringそのものになりそうだな」 / Twitter
- ぬるぽへさんはTwitterを使っています 「いやまぁていうかコルーチンスケジューラーが介入できるような嬉しいライブラリを作ってそのライブラリを使えばM:Nコルーチンが作れるのは当たり前なんだから、昔スレッドの実装をユーザー空間からカーネル空間に移したとき並みのうれしさがカーネルとユーザーの両者にあるかどうかですねー」 / Twitter
- ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi なんかこれあった気がする…」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi FlexSCかなあ…」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi カーネルというよりユーザランドでやっちゃう感じだけどflexscがそうかも、と。ちょうど誰かが解説しているスライドがありましたよ!! https://t.co/SyMEPGDZdI」 / Twitter
- FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
- ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi flexscは軽量スレッドの存在がユーザーに露出しないというのと、普通のシステムコールすらバッチ化して高速化し、なんならそれがモチベーションという点ではモチベーションの違いがありますが、本質的な実装の着想部分がかなり同じですね!何ならユーザーにgoroutine制御してもらうより速いかもしれん」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi あ、ちなみにFlexSCはユーザーランドだけなわけじゃないようです syscall pagesという、いわばsyscall_uringみたいな仕組み(ringじゃないけど)がカーネル空間に実装されてます 自分の話だと、ブロッキングシステムコールだけをいじるつもりでしたがsyscall pagesの方がシンプル」 / Twitter
- ぬるぽへさんはTwitterを使っています 「ていうかFlexSC( https://t.co/kNJsD67sDY )のexception less system callのsyscall pages、普通にほしくない?実質syscall_uringじゃん」 / Twitter
- FlexSC: Flexible System Call Scheduling with Exception-Less System Calls - Soares.pdf
- ぬるぽへさんはTwitterを使っています 「syscall_uringさえあれば大抵の問題は解決する(適当」 / Twitter
- ぬるぽへさんはTwitterを使っています 「FlexSCの実装を少し拝借して、C言語でgoroutine実現するの面白いと思うから卒論/修論でやってみてほしい」 / Twitter
- ぬるぽへさんはTwitterを使っています 「GoのスケジューラもブロッキングIOだけじゃなくて、ただのすぐ帰ってくるシステムコール呼び出しとかもgoroutine切り替えの契機になったりするんだろうか、コルーチン(?)スケジューラなんも分からん」 / Twitter
- 軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる - 金利0無利息キャッシング – キャッシングできます - subtech
- スレッド (コンピュータ) - Wikipedia
- goroutineはなぜ軽量なのか - Carpe Diem
- Linuxにおけるプロセス/スレッドの調査とか学習とか - Flicker's Style++
- multithreading - M:Nスレッドモデル(goroutinesなど)の短所は何ですか?
- Rustのスレッドで並列処理を行う - Qiita
- NetBSDにおけるthread機構の方向転換か? | スラド デベロッパー
- Solarisスレッドモデルとスタックスレッド - 銀の鍵 (The Silver Key)
- ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング
- スレッド - The Rust Programming Language
- 井山梃子歴史館さんはTwitterを使っています 「Google曰くオーバーヘッドはカーネルスケジューラにあるのでユーザーモードスケジューリングで解決するらしい」 / Twitter
- legokichiさんはTwitterを使っています 「M:Nモデル使わなくてもlinuxのスレッドは軽くて早いよという説はどこへ行ったのか」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「実際のところ M:N モデルでも pthread だと百万個単位のスレッドが動くかどうかは怪しい気がしますね。Erlang のメッセージや go のチャンネルによるアクターモデルを酷使するには、上限を気にせず使える軽量なスレッドとユーザランドスケジューラは必須で、これは C とかでは難しいかもしれない。」 / Twitter
- なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?
- とみながたけひろさんはTwitterを使っています 「ファイバーをOS(Kernel)でサポートというの、いくつかやったことがある。例えば今時のアプリ実行環境ではStackClashを防ぐためにOSでSPの範囲を制限するとかしますが、ファイバーは勝手にSPを変化させるので、そのあたりの整合性を取る仕組みをKernel側に入れるとか。あとはまあdebug機構まわりかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「macOSのドライバって、もともとコルーチン的な感じで書きませんでしたっけ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なんか i/o 完了がコールバックじゃなくて、うへぇと思った覚えがある」 / Twitter
- ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
- ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kotatsu_mi ブロッキングIO syscallを呼び出した、とか、カーネル空間でブロッキング/スケジューラーが走ってしまうタイミングで、カーネルが別プロセスに切り替えるんじゃなくて登録されたユーザー空間のコルーチンのキューや、コルーチンのスケジューラに制御を即座に戻すようにしたら面白いんじゃない?という」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kotatsu_mi まぁそれで何が嬉しいかというと、io_uringをラップしたライブラリのapi縛りじゃなく、普通のlibc APIのIO(fread、socketとか)を使ってプログラミングしてもgoroutineみたいなやつが実現できそうってところではあるんですが、それって嬉しいのか?みたいな話はもちろんある https://t.co/GUrlZijErF」 / Twitter
- ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
- yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
- mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
- The Go netpoller - Morsing's blog
- The Go scheduler - Morsing's blog
- KOBA789さんはTwitterを使っています: 「2022年に Linux でハードウェアの性能を活かし切るには拡張オプション付きでシステムコールを呼んだり新しいシステムコールを呼んだりしてユーザーランドでも複雑なスケジューリングロジックを実装しなければならないといった雰囲気で、ここらへんを言語ランタイムで面倒見てくれるのが Go なんだよな」 / Twitter
- satさんはTwitterを使っています: 「@KOBA789 M:Nの利点をユーザに享受させつつ実装を見事に隠蔽していてすごいと思います。セルフM:Nは(ぼくを含むほとんどのプログラマには)無理」 / Twitter
- KOBA789さんはTwitterを使っています: 「@satoru_takeuchi いやほんと OS 屋が言語ランタイムとして作った OS って感じで流石ですよね。現代の OS の課題をよくわかってるし、OS が何をすべきかもわかっている」 / Twitter
- KOBA789さんはTwitterを使っています: 「2022年、ノンブロッキング I/O による I/O 多重化だけでなく、M:N スレッドモデルの理解をも求められる世界になりつつあるのを感じる」 / Twitter
- KOBA789さんはTwitterを使っています: 「ノンブロッキング I/O ですらそうだったんだけど、ユーザーランドがやるべきスケジューリングの仕事が増えすぎなんだわ」 / Twitter
- KOBA789さんはTwitterを使っています: 「スケジューリングをカーネルに任せているだけでは性能を出し切れないという厳しい時代」 / Twitter
Hyper-Threading Technology
ハードウェアスレッド
- とみながたけひろさんはTwitterを使っています 「ハードウェアスレッドってハイパースレッディングみたいな複数スレッドのどれが強くなるか実行パイプの空きの運次第みたいなやつとか、スパークにあった複数スレッドがほぼ同じ強さになるやつとか、スカウトスレッドみたいなソフトから見えないやつとか、色々全部〜指していたような、、、」 / Twitter
- とみながたけひろさんはTwitterを使っています 「CPU世界ではまだ用語が統一気味だけど、GPUとか特定アクセラレータではみんな似た概念に違う名前つけててわけわからんくなる。まあ特許避けとか色々あるんやろけど、、、」 / Twitter
- とみながたけひろさんはTwitterを使っています 「よくあるマルチコアの罠 ほぼ同じ2つの処理があるのでこれを半分のクロックにしたコア2つに分割、ってやると、両方が終わるまでの時間は同じぐらいのまま、電圧下げて電力削減!ってできる が、その結果をネットワークに流すとかやる場合、通信量がバースト的になってしまい通信完了までの遅延は増える」 / Twitter
- とみながたけひろさんはTwitterを使っています 「というのに先日またもハマってしまいうーんってなってる」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t SMT はパイプラインというよりはOoO のためのALU とかで言われることが多かったかと思います。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@_ko1 わたしもそういう認識なんですが、SPARCのナイアガラ(ハイパースレッディングできるpen4と同時期に発表)とかintelのボンネルとかはインオーダーなので、ようわからんわー、ってなってます」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@_ko1 特に後者はSMTのひとつであるハイパースレッディングを実装、とかintelが言ってるので、お、おう?みたくなります」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t ナイアガラってSMTでしたっけか(もう記憶が..」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t パイプライン共有は水平スレッディング(キャッシュミスで切り替えるやつ)じゃないかな」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t 垂直じゃん(virtical」 / Twitter
- Hyper-threading - Wikipedia
- ハイパースレッディング・テクノロジー - Wikipedia
- HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
- 続・HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
- インテル® ハイパースレッディング・テクノロジーのパフォーマンスに関する考察 | iSUS
- ハイパースレッディング調査 - ソフトウェアエンジニアリング - Torutk
- 仮想化基盤におけるCPUリソースに関する簡易整理 | Check!Site
- VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~ - Japan Cloud Infrastructure Blog - VMware Blogs
- ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ
- ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (2/3)|基礎から覚える 最新OSのアーキテクチャー
- マルチプロセッサとスケジューラ(その1) | OSDN Magazine
- マルチプロセッサとスケジューラ(その2) | OSDN Magazine
- 1.5 プロセススケジューラ - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- FadisさんはTwitterを使っています 「GoogleがLinuxカーネルに「信頼できるプロセス」だけがCPUを共有する複数のハードウェアスレッド(Hyper Threadingとか)で隣り合わせになれるようにするスケジューラのパッチを投げている。信頼できるかどうかはcgroupsで同じタグが割り当てられているかどうかで判断する https://t.co/H8XHZ13Xmh」 / Twitter
- Google Publishes Latest Linux Core Scheduling Patches So Only Trusted Tasks Share A Core - Phoronix
- FadisさんはTwitterを使っています 「Hyper Threadingやそれに類する技術はCPUのアイドルを減らす効果が期待できるものの、キャッシュ等の状態を2つのスレッドが共有するため、サイドチャネル攻撃に利用できることが指摘されていた。このためOpenBSDではデフォルトでHyper Threadingを「あっても使わない」ようにする対応がなされていた」 / Twitter
- FadisさんはTwitterを使っています 「linux-5.14でCore Schedulingが入りそうだという話。これは「信頼できるプロセス」だけがSMTで隣り合うようにする物。SMT(Intel用語でHyper Threading)は今日ではサイドチャネル攻撃の温床で、隣のプロセスが信頼できない場合切るしかなかったが、これで安心して有効にできる https://t.co/TRhsZQ9do4」 / Twitter
- Core Scheduling Looks Like It Will Be Ready For Linux 5.14 To Avoid Disabling SMT/HT - Phoronix
- FadisさんはTwitterを使っています 「信頼できるプロセスとは具体的には同一プロセス内の別のスレッドまたはcgroupsで同じタグが割り当てれられた(明示的に信頼できるグループとされた)プロセス」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ いいね。 しかもHT内の同一プロセスならキャッシュヒット率も高そう。」 / Twitter
- 2021年8月31日 お祭り騒ぎはもうおしまい ―Linux 5.14リリース,コアスケジューリングが統合:Linux Daily Topics|gihyo.jp … 技術評論社
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux Kernel 5.14 では、信頼できるプロセス同士のみを同一コアHT/SMTに流す「コアスケジューリング」が搭載されたが、デフォルトでは無効という話。 (VPS/クラウドベンダーから強い要求で、この機能が追加されたと) https://t.co/F6uyjV4fLD」 / Twitter
- Linux Will Keep Core Scheduling Disabled By Default - Phoronix
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「信頼するプロセス同士」の定義は?と思ったら、prctl(PR_SCHED_CORE,...) でpid指定して定義する感じと。 あと信頼プロセス片方が kernel mode時のお漏らしは防げないと。(そりゃそうだ) https://t.co/EzphUhBbMZ」 / Twitter
- Core Scheduling — The Linux Kernel documentation
CFS
- Completely Fair Scheduler - Wikipedia
- Completely Fair Scheduler - Wikipedia
- Linux カーネル 2.6 Completely Fair Scheduler の内側
- Completely Fair Scheduler によるマルチプロセッシング
- Completely Fair Scheduler について - カメのたわごと
- Completely Fair Scheduler (CFS)
- CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
- Kazuho Oku(@kazuho)/2015年02月10日 - Twilog
- Fadisさんのツイート: "Linuxのしくみ( https://t.co/HBQWDZahl6 )、スケジューラの働きを実験で見るあたりで「スケジューラが顕著に不平等になるケースを観測して、そこからCFSの実装の話になるんでしょ、わかるわかる」って思って読み進めたけど、実際はもっと平和な本だった"
- Early Patches Bring BPF To The Linux Scheduler - Phoronix
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxスケジューラの探検。Linuxの CFS (Completely Fair Scheduler) がどのように時間の計測、タスクの選択、スリープおよびコンテキスト切り替えを実行するかを、実際のコードとデータ構造を提示しながら解説している。 https://t.co/CpaE0onMAt」 / Twitter
- A journey into the Linux scheduler | Maxgio's blog
BFS
- Brain Fuck Scheduler - Wikipedia
- Brain Fuck Scheduler - Wikipedia
- 帰ってきたCon Kolivas、大論争を呼ぶの巻(1/3) - @IT
- Linux-ck - ArchWiki
- フリーダウンロード BFS Scheduler のために Linux ::: システムユーティリティ
- スケジューラについての調査 - オペレーティングシステム授業発表
- Con Kolivas氏、新たなスケジューラと共にLinux開発にカムバック | スラド アップル Submission
BMQ
- Fadisさんのツイート: "Linuxに新しいプロセススケジューラBMQが提案されている。これはGoogle Zirconのスケジューラを元にした物で、優先度別キューのうち空でない最も優先度の高いキューからタスクを取り出す。実行時間を残したタスクは元居たキューの先頭に、使い切ったタスクは末尾に戻される https://t.co/bgj4vYr0Us"
- BMQ "BitMap Queue" Is The Newest Linux CPU Scheduler, Inspired By Google's Zircon - Phoronix
- Fadisさんのツイート: "これ、説明読んだだけだと優先度の低いタスクが飢えそうなんだけど、どうなんだろ"
- Fadisさんのツイート: "既にCFSがあるLinuxにおけるBMQの利点は実装が極めて小さい(パッチサイズにして20kB以下、圧縮されたカーネルバイナリのサイズで4kB以下)事らしい。性能が良いかどうかとかいいからこのフラッシュメモリに収まるカーネルをくれ、みたいなペンギンのダイエットが死活問題な方面で有用なのかもしれない"
キュー
- キュー | アルゴリズムとデータ構造 | Aizu Online Judge
- 優先度付き待ち行列 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C
- 8.4. heapq — ヒープキューアルゴリズム — Python 2.7ja1 documentation
- プログラミングⅡ
- Skew Heap - Lilliput Steps
- 今週の MYOS - 借り初めのひみつきち
Digdag
- Digdag | Open Source Workflow Manager for the Multi-Cloud Era
- treasure-data/digdag: Workload Automation System
- ワークフローエンジンDigdagのまとめ - Qiita
- Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO
- Digdagを使ってワークフロー管理を行う — | サイオスOSS | サイオステクノロジー
- EmbulkとDigdagとデータ分析基盤と
- Digdag + embulk + BigQuery + Re:dash でデータ分析基盤構築の夢を見る - 雑なメモ
- Jenkinsの無秩序なジョブをDigdagで再定義する - log.fstn
- ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる - techium
Linux
SchedViz
- Google Opens Up "SchedViz" To Visualize Linux Kernel Scheduling Behavior - Phoronix
- Understanding Scheduling Behavior with SchedViz | Google Open Source Blog
- google/schedviz: A tool for gathering and visualizing kernel scheduling traces on Linux machines
stalld
- FadisさんはTwitterを使っています 「Red Hatの人が新しいデーモンstalldを作っているらしい。stalldは全プロセスのスレッドの実行状況を監視し、一定期間実行されていないスレッドを見つけるとそのスレッドのスケジューリングポリシーを一時的にSCHED_DEADLINEにすることで飢餓状態を回避する https://t.co/1MVG4peof6」 / Twitter
- Red Hat Has Been Working On "stalld" As A Thread Stall Detector + Booster - Phoronix
- FadisさんはTwitterを使っています 「それはユーザ空間デーモンでやることなのか、という気がせんでもない」 / Twitter
- 住民さんはTwitterを使っています 「@fadis_ コメントに中の人?が降臨してますが、FIFO/RRのリアルタイムスケジューリングでstarveするのを防止のようで適用範囲は比較的狭そうですね。 あとカーネルでやろうとしてたけど、ほかのスケジューリングポリシーなど壊さずにやるの大変辛かったと書いてますね(わかりすぎる」 / Twitter
Restartable Sequence
- FadisさんはTwitterを使っています 「Restartable Sequence: Linuxカーネルに2015年頃から備わっている機能で、ユーザ空間プロセスがシステムコールで指定した範囲内の命令を実行中にプリエンプションによってその実行が中断されると、再開は指定された範囲の先頭から行われるようになる機能 https://t.co/PdYkip6in0」 / Twitter
- [RFC PATCH 1/3] restartable sequences: user-space per-cpu critical sections - Dave Watson
- FadisさんはTwitterを使っています 「単方向リストへの要素の追加のような複数の操作を不可分に行う必要があり、かつ最後の操作以外は対象の状態に影響を与えないような手順の間でプリエンプションが発生した場合に、操作を最初からやり直すように設定しておくことで、ロックを用いなくてもデータ構造を壊さない更新が実現できる」 / Twitter
- FadisさんはTwitterを使っています 「この手法は単一CPU上で実行される複数のスレッドが同じデータを触る場合についてのみ有効なので、複数のCPUからアクセスされるデータの保護には使えないが、CPU毎に用意されているリソースを安全に操作するためにロックを用いなくて良くなる」 / Twitter
latency-nice値
- FadisさんはTwitterを使っています 「Linuxに提案されているlatency-nice値について。latency-nice値を従来のnice値から分離することでプロセスが必要としているのはより多くのCPU時間なのか、より小さいレイテンシなのかが明確にスケジューラに伝わり、いくつかの状況でより合理的なスケジューリングが可能になる https://t.co/6yHG53GTWT」 / Twitter
- FadisさんはTwitterを使っています 「Linuxには従来からプロセスの優先度を指定するnice値が備わっていて、スケジューラはnice値がより小さいプロセスにより多くのCPU時間を割り当てようとする。ユーザの入力に応答するプロセスはしばしば素早くCPUを得たいが、その為にはCPU時間の多さが重要でなくても高いnice値を指定するしかなかった」 / Twitter
- FadisさんはTwitterを使っています 「latency-nice値を追加することで、CPU時間は短くても良い(nice値が高い)が割り当ては低レイテンシであってほしい(latency-nice値が低い)という要求をできるようになる。latency-niceが低いプロセスはlatency-niceがより高いプロセスを止めてCPUを奪い取れるが、割り当てられるCPU時間の割合は増えない」 / Twitter
- にゃははー仙人さんはTwitterを使っています 「@fadis_ 高くしたらだめでしょう」 / Twitter
- FadisさんはTwitterを使っています 「@Flast_RO ほんとだ、ここ逆になっとるorz」 / Twitter
- FadisさんはTwitterを使っています 「s/重要でなくても高いnice値を指定/重要でなくても低いnice値を指定/」 / Twitter
Ghost
- FadisさんはTwitterを使っています: 「GoogleがLinuxカーネルのスケジューラをeBPFで拡張できるようにする仕組み”Ghost”を作っている話。アプリケーション固有の情報とスケジューラの情報を受け取るagentにスケジューリングの判断をさせる事で特定のアプリケーションに最適化されたスケジューリングをするのが狙い https://t.co/YAUGdo1JVr」 / Twitter
- Google's Ghost Look Very Appealing For Kernel Scheduling From User-Space & eBPF Programs - Phoronix
- FadisさんはTwitterを使っています: 「GhostのeBPFを仕掛けておくと、タスクが生えた、IO待ち等で止まった、再開した等のスケジューラで起こるイベントでeBPFが実行されるようになる。これらの情報を元にpick_next_task()で指定したCPUで指定したタスクを実行するようにスケジューラに要求する」 / Twitter
- FadisさんはTwitterを使っています: 「GhostのeBPFはユーザ空間プロセスとメモリを共有する事ができ、実際の判断はeBPFより実装の制約が緩いユーザ空間プロセスに委ねる事もできる。このeBPFとユーザ空間プロセスのセットはagentと呼ばれる。頑張ってeBPFだけで判断できるように実装した場合コンテキストスイッチを回避できる」 / Twitter
- FadisさんはTwitterを使っています: 「Ghostのagentが死んでしまった場合Linuxカーネルは標準のスケジューラの振る舞いにfallbackする。発表ではGhostでLinuxのスケジューリングをFIFO(スケジューリングしないスケジューラ)にするデモが行われており、Future WorkとしてGhostを使ってCFSと同等のスケジューラを作れるか試したいとしている」 / Twitter
Twitter
- linux-sched-history.pdf - Speaker Deck
- Fadisさんのツイート: "タスク: カーネルのスケジューリング単位。昔のカーネルではプロセスと同義だったが、現在(2.6系以降)はプロセスまたはその中のスレッド1つを指す #kernelvm"
- Fadisさんのツイート: "linux-0.01ではNice値を変更するとタイムスライスが増減する。驚くべきことにrootでなくても負数が指定でき、しかも果てしなく大きな値を設定できる為、一般ユーザが巨大なタイムスライスを手に入れられる #kernelvm"
- Fadisさんのツイート: "linux-0.01は全タスクを舐めてタイムスライスが最大のタスクを実行する。タイムスライスがどれも残っていなかったら全てのタスクに150ミリ秒のタイムスライスを与える。sleepしたタスクにはちょっとボーナスを与える #kernelvm"
- Fadisさんのツイート: "linux-0.01のスケジューラは20行程度のラウンドロビンスケジューラ。64要素の配列でそれ以上タスクは作れない #kernelvm"
- Fadisさんのツイート: "このスケジューラでは必要な処理がタスクの数に比例する為、最大64ならなんとかなるけどたくさんのタスクを抱えられるようにしようとすると使い物にならない #kernelvm"
- Fadisさんのツイート: "linux-1.0でプリエンプションが登場、root以外の負のniceも禁止に #kernelvm"
- Fadisさんのツイート: "linux-2.0ではランキューがリストになったが、スケジューリングに全てのタスクを舐める必要がある点は変わらないままだった。またlinux-2.0からSMPのサポートが追加された。 #kernelvm"
- Fadisさんのツイート: "linux-2.0のランキューはSMPであっても1本で、1本のキューから全てのCPUがタスクを拾っていた #kernelvm"
- Fadisさんのツイート: "linux-2.2 linux-2.4ではlinux-2.0からスケジューラの変化はあまりなかった #kernelvm"
- Fadisさんのツイート: "linux-2.6でO(1)スケジューラが登場。キューをactiveとinactiveに分けることで、activeの先頭には常に実行すべきタスクが来ている状態にする事で、キュー全体を舐めなくても実行すべきタスクを決定できるようにした #kernelvm"
- Fadisさんのツイート: "人間が直接やりとりするタスクが後回しになるともっさりして見える → linux-2.6では短時間のうちにsleepする事が多いタスクを対話型タスクとみなして、起きて来たときに優先的に実行するようにした #kernelvm"
- Fadisさんのツイート: "linux-2.6ではタスクの操作時のロックで全CPUが詰まるのを回避するために、LCPU毎にランキューを持つようになった。この結果、ランキューがたまっているLCPUからランキューが空いているLCPUにタスクを移動させるロードバランサが必要になった #kernelvm"
- Fadisさんのツイート: "NUMAが現れたため、ロードバランサが2段階になった。まずNUMAノード間でのバランシングを行い、次にLCPU間でのバランシングを行う #kernelvm"
- Fadisさんのツイート: "linux-2.6では複数のタスクがメモリ空間を共有できるようになった。これを使ってユーザ空間でのエミュレーションではないスレッドが作れるようになった #kernelvm"
- Fadisさんのツイート: "CentOS3のカーネルはLinux 2.4だが中身が総とっかえレベルで魔改造されていて何故かO(1)スケジューラが使える。このカーネルの保守が辛すぎたため、最近はどこディストリもこういうことをしていない #kernelvm"
- Fadisさんのツイート: "O(1)スケジューラは場当たり的な改良が多すぎて、意図しない動きをする → linux-2.6.23でCFS登場。ランキューは赤黒木になって計算量はO(log(n))に。全てのタスクはレイテンシターゲット期間中に1度はCPUを得られる(飢餓状態の回避)"
- Fadisさんのツイート: "O(1)スケジューラではインターバルタイマーを使っていたが、この方法で制度を上げると割り込みのオーバーヘッドにCPUを持っていかれる → CFSではタスクを切り替えるべき時刻にタイマーをセットする為、不必要に割り込みが増えず、ナノ秒精度での制御が可能に #kernelvm"
- Fadisさんのツイート: "cgroupが登場、全てのタスクで時間を割る前に、特定のグループの中でタスクの中で時間を均等に割る事ができるようになった #kernelvm"
- Fadisさんのツイート: "linux-2.6.25でcgroupを応用してリアルタイムタスクが暴走して帰ってこなくなった場合にリアルタイムタスクでないタスクが全く動かなくなる問題を回避できるようになった #kernelvm"
- Fadisさんのツイート: "カーネルの重要な処理が優先度最大のユーザタスクと同じ優先度になっていた為重要なカーネルタスクが押しのけられる事があった → linux-2.6.37でstop scheduling classが追加された。カーネルのみがあらゆるユーザプロセスより優先されるタスクを作れるようになった #kernelvm"
- Fadisさんのツイート: "linux-3.2 CFS bandwidth controllerが登場、CPU cgroupがある期間中に動ける最大の時間を制限できるようになった。たとえ、他のタスクがなくてCPUが暇していたとしても、実行中のタスクがCPUを使う時間を制限できる #kernelvm"
- Fadisさんのツイート: "linux-3.14で deadlineスケジューラが登場、指定した時間のCPUの割り当てが指定した時刻までに行われることを保証するタスクをrootのみが作れるようになった #kernelvm"
- 鹿さんのツイート: "cpu migration でずっと気になっていた「すぐ死ぬタスクをバランスしても無駄じゃない?」を専門家に聞けてとても良かった。 研究はあるけど、ヒューリスティックになるので、コーナーケースが出てくる。裏をかく人もでてくる。なので、今の Linux には入っていない。なるほど。 #kernelvm"
- Fadisさんのツイート: "詳解Linuxカーネル第3版には100msごとにタスクを切り替えるとかactive/inactiveとか書いてあるけど、この10年でカーネルのスケジューラはごっそり書き換わった為ほとんど間違っている、と #kernelvm"
- Fadisさんのツイート: "CFSは一定期間をタスクの数で割ってプロセスに時間を与えていくが、あまりにもタスクが多い場合コンテキストスイッチのオーバーヘッドだけで時間を使い切ってしまう事になる為、一度タスクの実行が始まったらコンテキストスイッチせずに使えるCPU時間の最低値が設けられている #kernelvm"
- Fadisさんのツイート: "ロードバランサ: ランキューがプロセッサごとに用意されている為、ランキューが伸びているプロセッサと空いているプロセッサが生じる → プロセスが増えたり減ったり、プロセッサがやる事がなくなってしまった時にロードバランサが忙しいプロセッサのタスクを暇なプロセッサに移動させる #kernelvm"
- Fadisさんのツイート: "レイテンシターゲットを短くすると応答性が良くなるがコンテキストスイッチの頻度が上がってスループットが下がる。LCPUの数が多い場合暇なLCPUがある確率が高くなる為、レイテンシターゲットを伸ばしても応答性が損なわれにくくなる。→LCPU数に比例してレイテンシターゲットを伸ばそう #kernelvm"
- Fadisさんのツイート: "CPU affinityとcpuset cgroup: コンテナが使用して良いプロセッサを制限したり、特定のCPU上で動かす事に意味がある処理を確実にそのプロセッサ上で動かすために、タスクを動かして良いプロセッサを制限する #kernelvm"
- Fadisさんのツイート: "同一コア内のスレッド(HT)間、同一NUMAノード内のコア間、同一ソケット無いのNUMAノード間、同一ホスト内のソケット間、でのタスクの移動はコストが違う為等価に扱う事ができない→ ロードバランサは階層化されている #kernelvm"
- Fadisさんのツイート: "変態アーキテクチャAMD EPYC7601の場合、2物理 * 4ダイ * 2CCX * 4コア * 2スレッド (1ソケットに複数のダイが載っている) #kernelvm"
- [試して理解] Linuxのプロセススケジューラのしくみ - Speaker Deck
- まさみさんは語りたいさんのツイート: "マルチテナントRDBをコンテナで動かすとき、unprivilegedなコンテナを使うと、一部のプロセスをRTタスクに出来なくて困るっていう話をオラクルがしてる。面白い。"
- まさみさんは語りたいさんのツイート: "cgroupsで予め制限してる場合は許可する、というアイデアが出ていて、これは良さそうに見える。シンプルだし一貫性がある。"
- まさみさんは語りたいさんのツイート: "RTプロセスがコンテナ内で動かせないのはちょっと制御向けにも困るかも。"
- satさんのツイート: "linux 2.6.23以前は特定の挙動(無限ループよりもうちょっと凝ったやつ)をするプロセスを20-30個ほど立ち上げればシステムを事実上ハング状態にできたのじゃよ"
- Fadisさんのツイート: "一部のCPUの排熱が追いつかなくて最大動作周波数を下げても、その事を知らないLinuxのスケジューラが容赦なくタスクを投げてきて結果としてタスクの完了が遅れるのイケてないから、温度をスケジューラの判断材料にしようという試みがなされているらしい (リンク先有料記事) https://t.co/7vKxG5oVi8"
- Fadisさんのツイート: "Linuxカーネルは起動時にチップセットのタイマーが動く事を確認するけど、ナウいIntel CPUとナウいチップセットではタイマーが消費電力を抑える為に使う事を明示しないと動かないようになっていて、割り込み返ってこなくてカーネルがpanicする問題が解消された話 https://t.co/qjnpC8nN1x"
- The Linux Kernel Getting Fixed Up For Booting On Some Intel Systems - No "8254" - Phoronix
- FadisさんはTwitterを使っています: 「Stadiaでゲームを作っている人が「Linuxのスケジューラの性能が悪いせいでStadiaのゲーム作るのが辛い」というベンチマークを出していたの対してLinus Torvalds氏が「指摘は間違っている。計測方法に問題があり無関係な物を測っている。純粋なるゴミ」という解説をしている話 https://t.co/yIXR6bNIMp」 / Twitter
- Torvalds' Comments On Linux Scheduler Woes: "Pure Garbage" - Phoronix
- FadisさんはTwitterを使っています: 「ゲーム屋さん、いつでも処理が16ミリ秒以内に完了しないと死んでしまう呪いがかかってるから、ミリ秒オーダーで遅れる事があるほげふがを回避する為に変な事しだすのは、実際よくあるんだよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「クラウドサーバ提供ベンダー(DigitalOcean)が、Linuxのスケジューラを弄って、安全なスレッドペアのみ同一コアSMTで実行、という改変をした話、、、ただ劇的な改善ではなさそう。 (あと個人的にはここのクラウド、spam業者御用達なイメージある) https://t.co/x92Azmlhei」 / Twitter
- DigitalOcean & Others Still Working On Core Scheduling To Make Hyper Threading Safer - Phoronix
- 井山梃子歴史館さんはTwitterを使っています 「LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core) Gのユーザレベルスケジューラ、switchtoと呼ぶらしい https://t.co/kXZSPOkMa2」 / Twitter
- LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core)
- FadisさんはTwitterを使っています 「IntelがLinuxのプロセスのnice値がCPUのスケジューリングだけでなく、GPUのスケジューリングにも影響を与えるようにする変更を提案している。これを実現するにはGPUのドライバに手を入れる必要がある為、Intelが提案する変更ではi915ドライバで動くIntel GPUのみが対象になる https://t.co/7CIiG0mUZU」 / Twitter
- Intel Exploring CPU+GPU Synchronized Priority Scheduling For Linux - Phoronix
- FadisさんはTwitterを使っています 「GPUはCPU同様複数のタスクをスケジューリングして実行しているがこのスケジューラには現状プロセスのnice値が反映されていない。この結果、プロセスがGPUを使えば使うほどnice値の効果が無くなる。GPUのスケジューラはハードウェアの機能になっている事もある為、どんなGPUでもこれができるかは怪しい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GPUが(I/Oスケジューラのように)CPUと別スケジューラなら、ionice のように独立した優先度指定が素直な気も。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu ioniceも通常使うbest effortはnice値みてます?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho それは知りませんでした。情報ありがとうございます。 https://t.co/uSFBnt82DS」 / Twitter
- ionice(1) - Linux manual page
- 2013年7月4日 Linux 3.10登場 ─SSDキャッシング,マルチタスキング,Btrfsなど注目機能搭載:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年5月1日 Linux 4.11が正式リリース,プラガブルI/Oスケジューラ,Gemini Lakeのサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- ハンガリアン SCHED_DEADLINE - VA Linux エンジニアブログ
- Linuxのしくみを学ぶ - プロセス管理とスケジューリング
- Linux スケジューラーのコア実装とシステムコール
- 【論文紹介】The Linux Scheduler: A Decade of Wasted Cores (2016)
- [2017.03.21] システム系輪講会 (nhiroki) - Google スライド
- Linux スケジューラーのコア実装とシステムコール - Qiita
- stolk/ThreadTracer: Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
- Linux のハードウェアタイマーの話 - NyaRuRuが地球にいたころ
- 産総研:高精度な実時間OS「ART-Linux」を公開
- 【Linux】Load Averageに関するいろは - Qiita
- Fadisさんのツイート: "これな、待ちプロセスが多いとロードアベレージは上がっていくから、経験則で「ロードアベレージいくつ以上はヤバい、アラートだ」みたいなイカれた監視がなされたサーバで、監視に検知されないギリギリのプロセス数で制限するコードを書く羽目になったりな…"
- タスクスケジューラ用のsysctlパラメタ - Qiita
- 【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
- Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
- 2020年6月2日 Linux 5.7がリリース ―サーマルプレッシャー,exFAT,iOS用USBドライバなど:Linux Daily Topics|gihyo.jp … 技術評論社
- satさんはTwitterを使っています 「linuxではかなり前から固定タイムスライスではなくなってるというのはまだ(カーネルに詳しくない人は)それほど知られていないけど、タイムスライス管理でインターバルタイマーが主役じゃなくなってるというのはもっと知られてなさそうだな」 / Twitter
- masa murayama@社畜ハッカーとしてのクズな人生を全うしたいさんはTwitterを使っています 「@satoru_takeuchi あの仕掛けが今一つわからないのですが、ざっとソースを眺めた時には、周期的にインターバルタイマーの割り込みをかけるのではなく、次のスケジューリングポイントで割り込みを書けるように、インターバルを動的に変化させているようにも見えました。」 / Twitter
- satさんはTwitterを使っています 「カーネルの動くタイミングを図示しようとしてるけど、これむずいな。ハードの概要を先に説明しないとそもそも理解できない」 / Twitter
- satさんはTwitterを使っています 「割り込み、例外を説明したあとにプロセス/割り込みコンテキストについて話して、最後にtopで出てくるcpu使用率のうちわけを説明、とかにすればいいのかな?」 / Twitter
- satさんはTwitterを使っています 「- 割り込み/例外が発生したとき割り込みコンテキストで動く - 割り込みコンテキストでの動作が終わったらカーネルスレッドのどれかを動かす - 候補がいなければアイドルプロセスを動かす くらいいえばいいのかな?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「netbsd には sendfile(2) がないのか。すばらしいな #preadを使ったバックアップ実装をテストするプラットフォームが確保できるから」 / Twitter
- Man page of SCHED_YIELD
Windows
- Windows XP/Vista のスレッドスケジューラと Hyper-Threading - NyaRuRuが地球にいたころ
- Windows Vista: Multimedia Class Scheduler Service - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (1) - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (2) - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (3) - NyaRuRuが地球にいたころ
- MMCSS とネットワークパケット受け取りの抑制 - NyaRuRuが地球にいたころ
- GiB Age - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (1) - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (2) - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (3) - NyaRuRuが地球にいたころ
- プリエンプティブなスレッド切り替えの時間共鳴 - NyaRuRuが地球にいたころ
- Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する - NyaRuRuが地球にいたころ
- 佐祐理ブログ: Windowsの各種Timerの精度について
- 処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
- 処理速度の遅いcurrentTimeMillis() – 後編 | POSTD
- Masaru Iritaniさんのツイート: "英語の記事ですが、Windows カーネルのスケジューラーがどう進化してきたか詳細に説明されています。1792 論理コアを表示するタスク マネージャーは圧巻です。 https://t.co/e44pBEol77"
- One Windows Kernel - Microsoft Tech Community - 267142
- Windows 95ではマウスカーソルをぐるぐると動かすと処理速度が早くなることがあった - GIGAZINE
- ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
- Soft Real-Time | Microsoft Docs
- 【やじうまPC Watch】Windows 11のタスクバーの時計で「秒」表示が完全に無効化されたワケ - PC Watch
OSDN
- 「Linuxカーネル3.12」リリース | OSDN Magazine
- Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良などが特徴 | OSDN Magazine
- 新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場 | OSDN Magazine
- Linuxカーネル4.11リリース、プラガブルなI/OスケジューラやSSD向けスワップ機能などを実装 | OSDN Magazine
Wikipedia
- コンテキストスイッチ - Wikipedia
- スケジューリング - Wikipedia
- Scheduling (computing) - Wikipedia
- FIFO - Wikipedia
- ラウンドロビン・スケジューリング - Wikipedia
- 多段フィードバックキュー - Wikipedia
- Earliest Deadline First - Wikipedia
- Least Slack Time - Wikipedia
- レートモノトニックスケジューリング - Wikipedia
- 優先度つきキュー - Wikipedia
- リングバッファ - Wikipedia
- 優先順位の逆転 - Wikipedia
- Bulldozer (マイクロアーキテクチャ) - Wikipedia
Qiita
- Linuxの各タスクにおけるスケジューリング統計情報 (procfs) - Qiita
- 科学実験のようにスケジューラの挙動を確認する - Qiita
- Linuxのschedのpriorityとリアルタイムシステムについて - Qiita
- 科学実験のようにスケジューラの挙動を観測する - Qiita
- linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
- Linux スケジューラーのコア実装とシステムコール - Qiita
Twitter
その他
- なかのん DAYS''さんはTwitterを使っています: "OS X、久々に触ると、やっぱ、アクティブなウインドウのプロセスの優先度が高くならないのがWindowsユーザからすると不便というか違和感というか。"
- とみながたけひろさんのツイート: "15年前に作ったカーネルはカーネル・割り込みハンドラ内でもFPU使えるしFPUレイジーコンテキストスイッチもやってたけど、5年前の奴は「もうSIMD使うのが前提でコンパイラが最適化してくるから」ってのでレイジーはやめたな(もちろんカーネル内でSIMD使えるようにしてた)"
- NetBSD ドキュメンテーション: どのように lazy FPU コンテキストスイッチは動作するのか
- 酔漢@ニャー将棋さんのツイート: "コンテキストスイッチ、割り込み出入り口は可変長例外フレーム対応、レイジースタッキング対応になった。例外は可能なかぎりレイジースタッキングを壊さないので、割り込みハンドラ内部で浮動小数点演算をしなければ、オーバーヘッドは小さいまま。"
- K.Namba/ご注文は910ですか?さんのツイート: "Windows の Kernel でストレージを動かそうというのは、やはり無駄が多すぎるのではないか・・・ 限界まで専用化された NAS OS には敵わないよなー。 ストレージ向けのスケジューリング/コア割り当てなんかが出来るようになるともう少しよくなるかもしれない。"
- Nerry@さんのツイート: "HIDがビジーループに入るとメインスレッドがなぜか死ぬと思ったらHIDスレッドがyieldしないでpreemptionされるまで動くことによってメインスレッドが期待するtickの値がスキップされていた"
- ysksさんのツイート: "なぜ macOS/iOS の CPU は 100% にならないのか。その謎を解明するため取材班は XNU アマゾンの奥地、MULTIQ スケジューラ遺跡に向かった。 https://t.co/zC6r6WoFHX"
- sched_multiq.c
- SODA Noriyukiさんのツイート: "どこかで同期とるような並列プログラムだと、一番遅いプロセスに足を引っ張られるので、同じ処理やってて実行時間がバラつくのは大問題なのよね。McKernel が解決しようとしてるのもそこ。"
- まさみさんは語りたいさんのツイート: "SMTをOSレベルでずっとHALT状態にしておいて、カーネル内の小さい並列化できるタスク動かすのだけに使えないかな。メモリコピーとか。(つまりソフトウェアDMAエンジン)"
- まさみさんは語りたいさんのツイート: "一部のセキュリティ問題でHTとかSMTが阻害されるのはもったいない。ユーザ空間のスレッドに関しては同一コア上のHT/SMTを利用できる(ただしどちらかがシステムコールに入るともう一方は抑制されるか別コアに送られる)とか。"
- Nerry@さんのツイート: "プリンプションのペナルティ実装したらウィンドウマネージャーがウィンドウの再描画移譲受けてる関係でちょっと重いウィンドウあると常にペナルティ受けててうーん"
- Susumu Yamazakiさんのツイート: "私たちがした実験でも,1コアを絞り出さなくても並列にすることで劇的に性能は上がります。一見意外なことに,そもそも並列にするとどうしても1コアあたりのパフォーマンスは落ちます。実はこらはアムダールの法則で説明できます。… "
- 鹿さんのツイート: "> 1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 全然そんなことないから、これだけ読んで勘違いしないで欲しい。 1コアの50%しか使ってなくても、shared nothingな構成で8コア並べたら、1コアを使い切った場合に比べて性能4倍。 CPUを使いこなすより並べる方が安い時代。… https://t.co/omYxaz0X4z"
- Igaguriさんのツイート: "多分この人が思っているのは並行処理であって並列処理ではない。 並列処理は計算がボトルネックになっている処理を高速化するためにコアを複数使うことで、そもそも1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 関数型や論理型で実際のCPUやGPUの能力を絞り尽くすのは困難。… https://t.co/Z9FuFt4jmQ"
- LAL(Light AI Lab)さんのツイート: "Elixirで並行処理、並列処理を書いてみて、並列の時代の到来を実感しました。並列を活かすためには関数型プログラミング、論理型プログラミングへジワジワとパラダイムシフトしていくだろうと私は予想しています。若いエンジニアの方々はElixirの並行処理を学んでおけば、職場で重んじられるのでは?"
- 社会人でもOSを作りたいさんのツイート: "OSに求められる役割の一つであるリソース分配は,上に乗るアプリによって方針が変わる.ユーザ単位でフェアに分配するのか,プロセス単位でフェアに分配するのか,システムプロセスの優先度を上げるかどうか,とかも. #osdev_moku2"
- デダルス・ユメノさんのツイート: "メモ:work-conserving schedulerとは,実行可能ジョブがある限り,制御対象のリソースを常に稼働させるように制御するようなスケジューラのこと。うまくジョブの順序とかを入れ替えたりしてリソースがフル稼働するように制御する。"
- Hideyuki TanakaさんはTwitterを使っています: 「>The runtime measures the time it takes to perform the blocking operation and if it takes a while, a new thread is automatically spawned and replaces the old executor thread. はぇぇ(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「てかこれ別にブロックしてなくてもasyncって書いてある関数が実行に時間かかってるなーって感じだったら勝手にスレッド作って元の関数の続きを実行し始めるんすか?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「いい加減なタスク並列をいい感じのスレッドプールでほとんど何も書かなくても並列化してくれたりするん?(´・_・`)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「これ見て驚いた。そういやjemallocでもロックの競合状況みて競合しているようならarena増やすみたいなことをやっていたな。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「まぁそうでなくてもOSのスケジューラがゲームみたいなイベント駆動型のソフトウェアに強く影響を与えるなんてのはほとんどありえないよ。 だからずーっとOSレスな業界だったでしょ? https://t.co/d2M9Sr81OM」 / Twitter
- 【イベントレポート】【速報】Intel、第10世代Core後継「Tiger Lake」の実機を初公開 ~10nm+プロセス/Thunderbolt 4/Xe GPU内蔵で2桁%性能向上 - PC Watch
- Miura HidekiさんはTwitterを使っています 「これを見て、マルチスレッドの自動分散を連想した。自動分散をおこなうにはスレッドの負荷状況を調査する必要があるけど、そればっかりやっていると遅くなる。jemallocのロックの競合割合から推定するとか賢い方法があるといいのだが。」 / Twitter
- mattnさんはTwitterを使っています 「@miura1729 今はコンテキストスイッチ重そうですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@mattn_jp 確かに」 / Twitter
- mumumuさんはTwitterを使っています 「Slite: OS Support for Near Zero-Cost, Configurable Scheduling [RTAS '20] システムのスケジューラがユーザランドにいて(Kernel Bypass),各スレッドはKernelがActivateされた時に(Lazyに)帳尻合わせをすることで,高速かつ柔軟(ユーザランドでAppに合わせTune可能)なRTOS向けスケジューラを実現」 / Twitter
- mumumuさんはTwitterを使っています 「Arachne: Core-Aware Thread Management [OSDI '18] 短時間・大量に実行されるスレッドで動作するタイプのAppが,自身の変化(ワークロード変化に追従するためコアを欲しがる等)や周囲の変化(他のシステムの処理増加によるコアの取り上げ等)に柔軟に対応するための調停プログラム/runimeを実装」 / Twitter
- mumumuさんはTwitterを使っています 「Demand-based coordinated scheduling for SMP VMs [ASPLOS '13] 前半でIPIがマルチスレッドAppの同期/通信の調停に使われていることを定量的に示し,後半でFairnessを損なわないようにIPIをvCPUのスケジューリングに組込む方法を述べてた気がする.前半はThe サイエンスという感じで結構面白かった.」 / Twitter
- mumumuさんはTwitterを使っています 「Reconciling High Server Utilization and Sub-millisecond Quality-of-Service [EuroSys '14] 複数のLatency-Sensitiveなタスクを一つのサーバでホストするときに問題となる原因(Interference, スケジューラの問題,load imbalance など)を検証し,その対策を検討した.*サイエンス*を感じる論文」 / Twitter
- mumumuさんはTwitterを使っています 「ROSCH:Real-Time Scheduling Framework for ROS ROSのノードをリアルタイム動作させるために,DAGスケジューリングや同期機構などを実装した話.RTOSでROSを動作させる等いろいろ方法はあると思うけど,Linux上で実装しているのは面白い.あと評価で某自動運転ソフト使っていたので良さがある.」 / Twitter
- mumumuさんはTwitterを使っています 「Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines [CloudCom '10] VM上のOSがAffinityに基づくスケジューリングができるように(というかAffinityの意味があるように),pCPU Run Queue対して動的に選択したvCPUをPin. https://t.co/jKUQFGBHXb」 / Twitter
- Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines - IEEE Conference Publication
- mumumuさんはTwitterを使っています 「Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance [ATC '20] 最近はコアごとに動的に周波数が変わるが,しばしば周波数が低いコアにタスクがあり,周波数が高いコアがアイドルしてしまうことがある. https://t.co/2TraqYUbSo」 / Twitter
- Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance | USENIX
- mumumuさんはTwitterを使っています 「@shirouzu いえ,自分の理解では 1. よく動いているコアでfork 2. となりの遅いコアで子プロセスが動き始める(遅い 3.よく動いているコアはwait()して,結局そのコアはidle 4.スケジューラはそれに気が付かずRESCHEDしないから,遅いコアで子プロセスが動き続ける みたいな感じです.」 / Twitter
- mumumuさんはTwitterを使っています 「Corey: An Operating System for Many Cores [OSDI '08] 古典だが実は読んだことなかった.Multicore上でのスケーラビリティのために,Appが他コアとシェアするオブジェクトを選択できるIFを提供するOSを開発.Fig.1(Linuxがスケールしない図)は非直感的で面白い.https://t.co/eFHuUklDFW」 / Twitter
- Corey: An Operating System for Many Cores | USENIX
- mumumuさんはTwitterを使っています 「SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel [ATC '21] FreeBSDのKqueue(Linuxでいうepoll)でより高度なスケジューリングをして,マルチコアでスケールするよう改良.既存のOS上でTail Latencyを大きく改善 https://t.co/I8YMwgFhTh」 / Twitter
- SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel | USENIX
コンテナ
- 🚀GRIMM・ZOU🐘さんのツイート: "ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius https://t.co/tfnvd3HCVg dockerが本当にボトルネックなのかという質問(?)があったので検証してみました。結果としてはdockerから剥がすだけで100万点から144万点に上がりました。"
- はてなブックマーク - ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius
- satさんのツイート: "コンテナだと仮想化よりもカーネルのスケーラビリティの問題を引きやすいってところか"
- Guutara (⁰⊖⁰)さんのツイート: "それは、コンテナだからってことなんすか? プロセスのスケーラビリティの問題点だけど、コンテナの方がそれを引き起こしやすい、あるいは、引き起こしたときに、わかりにくいって話? VM との対比は、たぶん、理解できたと思うのだけど...… "
- satさんのツイート: "コンテナのほうが起きやすい、起きてもわかりにくいって話ですね。 例えば10000プロセス同時進行で問題の出る処理があったとしてコンテナなしで10000プロセス同時進行になるより100コンテナで100プロセスが同時進行のほうが起こりやすい、かつ後者はコンテナのしくみがわかってないと理解できないので… https://t.co/0pwFzhq76i"
- まさみさんは語りたいさんのツイート: "Dockerコンテナ、ネットワークについては名前空間が分かれているのでスケーラビリティ問題は解決するものの、分かれていない所は無理だもんなあ。"
- まさみさんは語りたいさんのツイート: "OSを名前空間っていう取ってつけた仕組みで共有するので、リソースの競合が発生するところは発生する。競合によって性能が劣化する場合もあるし、複数のコンテナを動かすというところで発生しやすくなると思うが、この辺りってコンテナホスティングしていた運用会社にはノウハウ溜まってるんじゃない?"
- まさみさんは語りたいさんのツイート: "コア数の多さでスピンロックなどの競合が起きやすくなるんだけど、例えば仮想サーバを使ってOSをコアごとにある程度分離すると、実質的にロック競合の発生しやすさは下がる。逆にコンテナを使ってOSを共通で使うと、共通リソースに対するロック競合の発生しやすさは変わらないだろう。"
- まさみさんは語りたいさんのツイート: "実際にはリソースの使い方が変わるから、例えばプロセス数が単純に増えるから、一部リソースに対するロック競合は却って増えると想定できる。"
- まさみさんは語りたいさんのツイート: "コンテナ毎のプロセスのスケジューリングを階層化すればあるいは・・・。"
リアルタイム性
- satさんのツイート: "linuxのスケジューラの古いやつ(2.6.23以前)と今のやつの違い - 動的優先度は無い - activeキューとinactiveキューなんて区別は無い - nice値ごとの固定タイムスライスではない - sched_yield()は自分自身を再度スケジュールすることが多い"
- satさんのツイート: "あと若干話しがずれるけど、いまのlinuxのスケジューラだとsched_yieldでコンテキストスイッチ狙う手はほぼ通用しないっすよ。ほぼnop"
- まさみさんは語りたいさんのツイート: "リアルタイムプロセスでもそうだっけ?… "
- satさんのツイート: "リアルタイムは別ですね。O(1)時代のままで、複数RT taskがいればyieldで次のタスクに制御が移ります。… "
- まさみさんは語りたいさんのツイート: "ですよねー。結局ノーマルアプリはスケジュールとか考えるなと。… "
- satさんのツイート: "SCHED_OTHER: リアルタイムではない SCHED_{FIFO,RR}: リアルタイムのふりをしている何か SCHED_{DEADLINE}: リアルタイムに似た何か"
- satさんのツイート: "リアルタイム性ってスケジューラだけでどうにかなるもんではなくて割り込み使ったら負けとかいろいろありますからねー"
- まさみさんは語りたいさんのツイート: "何を以てリアルタイムというかは、人によって違うというか、誤解してる人が多数いますからね。特にRTOS村の住人…… "
- Satoru Uedaさんのツイート: "https://t.co/9y3FbRKczl とりあえず、こんなのを・・・。 #celfjp… "
- Frequently Asked Questions - RTwiki
@rockridge07
- Rockridgeさんのツイート: "記事の後半にQuantum DOMの解説がある。Firefoxのプチフリ発生を抑えるため、DOM処理をスケジューリングしてマルチスレッドで行う仕組みを、OSに頼らず自前で用意するらしい。 / “Mozilla’s Quantum…” https://t.co/gbCBfFhOH4"
- Rockridgeさんのツイート: "Chrome 57ではバックグラウンドのタブのCPU利用率を制限する措置が導入され、これにより消費電力が減った。ただし、音声の再生やWebRTCのコネクションは従来通りだという。 / “Chromium Blog: Reduci…” https://t.co/24L1khCCtd"
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "Windows 10の最新カーネルだとHeterogeneous Schedulingサポートしてるのか (要はbig.LITTLEみたいな構成)"
- Makoto Kato ︎︎さんのツイート: "https://t.co/1VPmrML5HO Windows internalの最新版にbig.LITTLE用の機能について記述されてんのに何言ってんだろうか。こういうライターって勉強足りないよね"
@kazuho
- Kazuho OkuさんはTwitterを使っています: "H2O の http2 スケジューラを改善して分かったんだけど、128段までの priority queue だったら、今時ヒープ使わないほうが良さそう"
- Kazuho OkuさんはTwitterを使っています: "linux の CFQ も、なんで red-black tree なんだろという疑問。リングバッファにできないほど優先度の幅が広いのかしら"
- Kazuho OkuさんはTwitterを使っています: "@kazuho あー s/CFQ/CFS/"
- Kazuho OkuさんはTwitterを使っています: "http://t.co/UTau7Sn2p5 を見ると linux の O(1) スケジューラは weighted fair queuing じゃなかったぽいな。それなら CFS のが公平性でのメリットがありそう"
- Kazuho Okuさんのツイート: "HyperThreadingの影響を考慮したベンチマーク(つまり、1つの物理コアに2つのスレッドを固定した状態のベンチマーク)をとりたいんだけど、macOSだと無理なのかな..."
- Kazuho Okuさんのツイート: "https://t.co/Bje8kGJnZj 確認しましたが hinting API ですね… "
- Affinity API Release Notes for OS X v10.5
- Miura HidekiさんはTwitterを使っています: 「https://t.co/uPY4daBq1d リアルタイムスケジューリングに触れられていて、優先度の逆転と優先度継承プロトコルに触れられていないこの手の説明初めてみた」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「CPUスケジューリング入門。すべてのプログラムはCPU時間とI/O時間に分かれており、I/Oを待っている間のCPU時間は捨てられる。スケジューリングは各プロセスに時間を効率よくフェアに割り振るものである。ユーザスレッドには別の方法が使われている。LinuxとWindowsの例あり。 https://t.co/1dOzsZdZUq」 / Twitter
- Operating Systems: CPU Scheduling
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「やることがない (idleな) CPU」は一体何をしているのか? Linuxでは (Intelの場合) hlt命令が実行される。これはタイマ割り込みが来るまで続き、伝統的なLinuxでは4msであった (今日では省電力のために可変である)。世界中のPCで最も実行されている命令がhltというのは面白い https://t.co/AEG1WrO28V」 / Twitter
- What does an idle CPU do? | Many But Finite
- Miura HidekiさんはTwitterを使っています: 「OS屋さん、 優先度継承プロトコル の話がしたくて、リアルタイム言うんとちゃう?という偏見がある。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そして、だいたいソフトリアルタイムでハードリアルタイムの話は避ける。」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています: 「「あと少しでハードデッドラインを過ぎる」 「過ぎるとどうなる?」 「知らんのか」 「爆発する(機械が)」 がマジで起きるのがハードリアルタイムシステム。怖い。関わりたくない。」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています: 「あと、リアルタイムスケジュールは常にリアルタイム性と実行性能とのトレードオフで、2つの方針がある。 ・Precise: 全リアルタイムタスクが間に合うことを保証する(安全だが性能は最悪) ・Feasible: 間に合わないと問題が起きるタスクだけ保証する(安全と性能のバランス重視)」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています: 「リアルタイムスケジュールは、デッドライン超過によりタスクの成す価値がどれくらい減少するか?を評価値としてスケジューリングする。 このなかでもハードリアルタイムは一番デッドライン超過に厳しくて、超過の瞬間に価値が-∞になる、と考えるシステムなのだ!(=超過絶許システム) https://t.co/8Q5UYSzjBT」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています: 「リアルタイムシステムでは、複数の種類のリアルタイムタスクが混ざって実行される。 評価値を最大にするには、他のタスクのデッドラインを破ってでも、ハードリアルタイムタスクのデッドラインを死守、死守できないならシステム全体の価値がなくなる(例えば機械的に故障するとか)。」 / Twitter
- 青子守歌さんはTwitterを使っています: 「プロセス並列とスレッド並列の区別より、タスク並列とデータ並列の違いのほうが大事だと思うの。日常生活でも応用できるし。」 / Twitter
- The Search for Planet Nine: The orbit of Planet Nine
- Xenのスケジューラがぜんぜんわからん - Speaker Deck
- tanakmura🎯さんはTwitterを使っています 「ACPIは、コアごとの性能を示すテーブルを持ってるが、マザーボードによっては、オーバークロックするとこれが全てMAXになって、P coreもE coreも公平にスケジュールされてしまうらしい。 手元のマシンは…オーバークロックしてないのに全部MAXになってますね…おいGIGABYTEどうなってんのや?」 / Twitter
- 2021年12月1日 Linux 5.16-rc3がリリース,Intel Alder Lakeで発生していたバグを修正:Linux Daily Topics|gihyo.jp … 技術評論社
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「モデル検査絡めて、リアルタイムなスケジューラを書きたいな」 / Twitter
- ${jndi:ldap://ytakano.com}さんはTwitterを使っています 「いけそうな気がするが」 / Twitter
- 自作OSとマルチコア | PG_MANAの雑記
CPU・GPU 使用率の計測
CPU 使用率に応じて CPU 周波数を動的に設定
- Homepage Johannes Hofmann - estd
- ryo/estd: estd with temperature limit feature. (forked from http://flpsed.org/estd.html)
パフォーマンスチューニング
負荷試験
- Kazuho OkuさんはTwitterを使っています: 「CPUがメモリアクセスでストールしているか気にすることは大切だけど、それ isucon (で対象となるようなウェブアプリ)で必要なチューニングなの? という疑問。もっとSQLクエリの書き方ミスってるとかスケールアウトの設定できてないとかそういうやつじゃないの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「http の負荷試験に関して僕が言いたいことがあるとすると、ab は使うな、くらいかなぁ。遅いのでクライアントサイドがボトルネックになってないか確認しながら使う必要があってめんどくさい。イベントドリブンなマルチスレッドで動くwrk、あるいはhttp2ならh2loadあたりがオススメかと」 / Twitter
- \助けよや/😱さんはTwitterを使っています: 「確かに ab はクライアント側でサチるので、クライアントPCを4台くらい用意して一斉に動かしてサーバ負荷の実験してた思い出。」 / Twitter
- \助けよや/😱さんはTwitterを使っています: 「そういえば、PC性能よくなった今はハブのネックが気になったりするのだろうか。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「wrk とか使ってても、受信側は原理的に送信側よりもメモリ負荷がでかくならざるを得ないので、(ネットワークボトルネックじゃない場合は)クライアント複数台必要になる印象です。まあよほどいいNIC使ってなければネットワークボトルネックになるけど https://t.co/H0THOs8awo」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「定量的な話をしておくと、僕の開発環境で ab は 100k reqs/sec くらいでサチる。サーバ側が50スレッドだとするとリクエスト生成時間0.5msくらい」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「結局、サーバの全てのcpuコアを1スレッドのabで相手にすることになる問題なので、サーバが小規模だったりアプリかなり軽くない限りは問題にならないし、SREの人なら見たらクライアントボトルネックと気づくと思うんだけど、まあ最初からwrkで複数スレッドからリクエスト投げた方が楽だよねと」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「「topだとCPUがメモリストールしてるのかわからない」という批判は良いとして、irqが偏ってる例を上げるなら、それこそまさにisucon本が言うようにtop -1したら気づく問題だし、まあperf使って気づいてもいいんだけど、perf使うとしても時間測定だからメモリストール無視する使い方だよね、とは思った」 / Twitter
- くまぎさんはTwitterを使っています: 「「つっこみことがたくさんあったからQiitaにまとめてたけど多すぎてやめた」とあるけど、単純に突っ込んでるうちに自己矛盾に気づいてしまって自分に実はつっこめるだけの知識が無いことに気づいたから書籍マウントなツイートでごまかしてるように見える。言い訳せずに長文のまとめ記事を書きあげろ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「恐れていた通り、パフォーマンスチューニングと負荷対策がごっちゃだ… 二つは別です。 性能対策 … パフォーマンスチューニング 負荷対策 … スケールアウト戦略」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「性懲りもなくSynthetic Monitoringを外形監視って書いている。もうどうしようもないな。 Syntheticの意味が分かってない。 フィッシャー三原則も分かってない。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「topはもう使ってはいけないのだよ。 topは正しい数値を取れないから。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「結局、M/M/1は出てこなかった。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「ポアソン分布/指数分布も出てこなかった…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「何で勉強してから書かないんだろうね…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「結構な数の引用元が記載されているんだけど、ベンダーの都合に合わせて書いてる技術情報を参照してはいけないです。 その技術情報が「正しい」という保証は無いのだから、検証して確認しないと… 結局ベンダー情報寄せ集め本になっていて、これじゃ高速化しないよね…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「何が正しいかは、結局は基礎から学ぶしか判断方法はないんです。 パフォーマンスチューニングの基礎理論の本は洋書で何冊も出てる。 統計的品質管理、ポアソン分布、M/M/1キューイング理論、実験計画法… 何のために本を出すのか? 日本の技術者に誤った教育をしたいのですか?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「ベンダーは自社で実装されたものについて、正しい情報を出すけど、それが効果があるかどうかは、話が別です。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「言っとくけどAPMを停止するだけで、コンテキストスイッチ、25〜30%削減できて、高速化するんよ。 観察者効果って学んで、そういう弊害があると知ってAPMをデプロイするのと、知らないでやるのでは全然違う。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「同時並行処理性能という謎な用語の説明に、 ・並行処理(Concurrency) ・並列処理(Parallelism) が混ざってます。 レスポンス受信完了までの時間はレスポンスタイムと云います。 pingに代表されるように、RTTは、Acknowledgementが返ってくるまでの時間です。 https://t.co/Mc5flzGTOz」 / Twitter
- Round-trip delay - Wikipedia
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「topについては、2017年にNetflixのパフォーマンスエンジニアがBusyの値にWaiting("stalled")が含まれると指摘して、以降パフォーマンスカウンタを見るのが一般的です。 VMwareでも、パフォーマンスカウンタを仮想マシンから見られるオプションが入ってるでしょ。 https://t.co/a2VWtkJvFZ」 / Twitter
- CPU使用率は間違っている | Yakst
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「CPUとメモリの間のI/Oのボトルネックを解消すべく生まれてきたのが、AppleのM1を始めとするCPU群なわけですよ。パフォーマンス界隈では、メモリのボトルネック解消が焦点になってるんです。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「コンピュータの基本動作は、Function Point法でアレン・J・アルブレヒトが示したように、 ・EI ・EO ・EQ ・ILF ・EIF の5つで示すことができるのですから、そういう先人の知見を使いましょう…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「「図1 Webアプリケーションのレイテンシを時系列に並べたグラフの例」では、Y軸はちゃんとレスポンスタイムになってる。RTTどこいった?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「負荷試験の箇所も、私はファーストフード方式とレストラン方式って呼んでるけど、ファーストフードみたいに、次から次へとリクエストを捌く場合の試験結果と、レストランみたいに待機時間を挟んだリクエストの試験結果って違うわけで、アメリカの商用負荷試験ツールはそこがきちんと分かれてる。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「perfは、パフォーマンスチューニングで必須なんだけど、記載がない。eBPFは紹介だけ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「それで、負荷テストの「特異点」って何? すっごく気持ち悪いんだけど。 システム理論の特異点の事? 負荷テストのコンテキストで使われるのは、初めてみるんですが…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「JMeterだって、定数タイマーやガウス乱数タイマーが実装されて、ファーストフード方式の負荷テストをしなくなってるのに…」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「パフォーマンスチューニングの実務において、折れ線グラフは使わないです。 基本的には散布図を使います。 どうしてかというと、データの散らばりの「構造」を確認したいからです。 散布図は、層が形成されていると分かりやすいのです。 層の数だけ、要因があります。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「このようなグラフだと、これがどのような構造のデータか分からないんですよ。 また、パフォーマンスはパターンはあるので、このような短期分析だと日次パターンかどうかの判断が下せない。 また週次パターンもあります。 https://t.co/P5VwxfBxId」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「もし、これがパターンとして現れている場合には、放置できず、何が要因になっているか、詳細を調べたほうがいいんです。 でも、大した差じゃないからって、調べないでしょ? それが後々、何かの負荷増大とかで、遅延や大きな障害を引き起こすトリガーになったりするんです。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「実務では、CPU使用率より、実行待ちの数の方を見ることが多いです。 CPUが使えるなら、どんどん使って高速に計算処理させた方がいいからです。 だからCPU使用率を低く抑えることが必ずしも良いわけではない。 そこで空間計算量と時間計算量のバランスの話になる。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「それにCPUの割当の問題がある。 手動で明示的にAffinityさせる場合と、自動でAffinityされている場合で違う。 だから、CPU使用率なんて、役に立たなくて、CPUのコア単位で見なくちゃいけないし、そのコア毎のプロセス単位で分析しないといけない。 手動CPU Affinityのせいで遅延とかあるし。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「そのプロセス単位の分析の時に、どうやっても、perfは欠かせないのですよ。 perfなしに、どうやって遅延の関数を特定するんかい?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「たとえばこれを鵜呑みにしてたお客様がいたの。 "Coherenceの場合、クラスタ・メンバーをホストするすべてのサーバーにイーサネット・カードの割込みをバランシングすることで、大幅なパフォーマンスの向上が得られる可能性があります。” https://t.co/xNL3DwJ0P0」 / Twitter
- パフォーマンス・チューニング
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「でさ、perfで分析したら、ネットワークの処理待ち時間でストールしてんの。 CPU使用率低いのにおかしい、なんでだ?って調べたら、あるCPUにネットワークのIRQ Affinity設定していて、他のCPUは空いてるのに、そのコアだけ使用率高くて、ネットワーク処理がボトルネックだったわけ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「このようにperf抜きで、サーバ側のパフォーマンスチューニングはできるわけないのよ。 なのに、どうして、それを抜いてるの?」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「APMを入れても、Observabilityは獲得できんよ。 パフォーマンスチューニングは、総合格闘技みたいなもので、幅広い分野の大量の知識と豊富な経験がないとできないから。 ツールがあれば、お手軽にできるなんて、そんな夢を抱いてパフォーマンスチューニングやるなら、時間の無駄だから止めなよ。」 / Twitter
- Yoichiro Takehora (竹洞 陽一郎)さんはTwitterを使っています: 「でも、その果てしない鉄人レースみたいな世界が好きだっていうなら、歓迎だから、統計学、統計的品質管理、コンピュータサイエンス、ソフトウェア工学など猛烈に学んで欲しい。 「達人が教える」ってつけたのは技術評論社の商売の都合かもしれないけど、達人ならそういう内容の本であって欲しい。」 / Twitter
PC Watch
- プレビュー版Windows 10のタスクマネージャーに“GPU”が追加 ~プロセスごとのGPU使用率などを確認可能に - PC Watch
- タスクマネージャーに新設されたGPUのパフォーマンストラッカーを改良 ~プレビュー版Windows 10「Build 16237」 - PC Watch
- Windows 10プレビュー版タスクマネージャーのGPU表示が“マルチエンジンビュー”に変更 - PC Watch
- Windows 10 RS5のタスクマネージャーでアプリの電力使用量が確認可能に - PC Watch
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- 【福田昭のセミコン業界最前線】不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 - PC Watch
- 【やじうまPC Watch】Windows 11のタスクバーの時計で「秒」表示が完全に無効化されたワケ - PC Watch
窓の杜
- 「Windows 10 RS5」の「タスク マネージャー」は電力を浪費するプロセスの特定も可能 - 窓の杜
- タスク マネージャーがさらに強化された「Windows 10 Insider Preview」Build 16241 - 窓の杜
- 「タスク マネージャー」に新機能“エコモード”、Edgeのプロセス分類も ~プレビュー版Windows 10でテスト開始 - 窓の杜
- 「Microsoft Edge 100」にリソース節約量を表示するグラフ ~スリープタブ技術の弱点も解消 - 窓の杜
- 「Windows 11 2022 Update」のタスク マネージャーはモダンでスタイリッシュ。プロセスを省電力化することも - Windows 11 バージョン 22H2の新機能を使いこなす - 窓の杜
blog
- LinuxでCPU利用率を取得する
- CPU使用率は間違っている | Yakst
- タスクマネージャに表示されるメモリ使用量 - NyaRuRuが地球にいたころ
- htopコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
- topコマンドで覚えておきたい使い方14個 | 俺的備忘録 〜なんかいろいろ〜
- インフラのボトルネックについて知る - ぺい
- アクティビティモニターの作り方 - 借り初めのひみつきち
- delay accounting を使ってみる - SIerだけど技術やりたいブログ
Twitter
- satさんのツイート: "CPU統計情報の%stealってよく考えたらひどい単語チョイスだな。むしろお前がhostからCPU取ってるんだろうがという"
- SODA Noriyukiさんのツイート: "@ksmakoto load average は、(実行中or実行待ちのプロセス数)+(disk I/O中 or disk I/O待ちのプロセス数) の移動平均ですから、4core CPUのうちの2core が CPU使用率 100% で回ってる状態(すなわち CPU能力の半分が遊んでいて暇な状態)… https://t.co/l37EDW4Qpg"
- Shiro Kawaiさんのツイート: "すっごく面白い。色んなものをサンプリングで監視してるとグラフが振動しておおビート出てるなあと思うことはよくあるけどこんなに綺麗に説明がつけられると気持ちがいい。https://t.co/COfCSGkcYr"
- Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel ブログ #mackerelio
- Shiro Kawaiさんのツイート: "エイリアシングを防ぐためにランダムにずらすって手法もあるけどこういう統計情報取る時はあんまりやらない方がいいのかな?"
- モッチー@少年クリプト編集長さんのツイート: "Coinhive(コインハイブ)裁判の第二回公判 高木浩光氏の証人尋問も傍聴してきました。 今回も『弁護士ドットコムNEWS』さんがわかりやすくまとめてくれていますが、書かれていないことをスレにまとめていこうと思います。 https://t.co/wm2wVErPob"
- コインハイブ事件 高木浩光氏が公判で証言「刑法犯で処罰されるものではない」 - 弁護士ドットコム
- モッチー@少年クリプト編集長さんのツイート: "弁護側の証人喚問の内容はおおむね記事の通り。 しいて言えば高木氏いわく検察が言う『負荷』と『CPU使用率』は別物とのこと。 負荷とはスレッドの数であって、CPU使用率が高いからといって負荷ではないそうです。"
- なかのん&マジックさんのツイート: "WindowsのタスクマネージャーのGPU使用率が10%いっていなくてもWMPで動画を再生してたらFirefoxの動作速度落ちたり、マウスカーソルの追随が怪しくなったりするけど、どういう理屈なんだろう。GPU周りまったく分かってない。"
- Kazuho OkuさんはTwitterを使っています: 「使用率n%のキューにおいて、キューへの追加がランダムな間隔で発生する場合の平均待ち時間はいくら、っての定式化できそうっーか誰かやってそう」 / Twitter
- みょうがさんはTwitterを使っています: 「@kazuho M/M/n 待ち行列っぽい」 / Twitter
- dancerj 🗾さんはTwitterを使っています: 「@kazuho M/M/1待ち行列とかですか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「各所からツッコミが入ってるように(RT参照、ありがとうございます)待ち行列の平均待ち時間なので、例えば使用率80%なら、応答時間の期待値は使用率0%の場合の5倍である、ということになるのかしら。あってる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「CPU使用率80%がいかにヤバいか始めて身にしみた頭でっかちさんがこちらになります。経験はいっぱいあるのにね」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あーだからcpuを複数にしたり、キューを処理するスレッドを複数にしたりすると使用率が高い場合でも改善が見られるのかな」 / Twitter
- TamrinさんはTwitterを使っています: 「誰か世の中に蔓延る CPU 使用率に関する誤解を解いてくれと思ってたら、@pei0804 がそれらしき記事を書いてくれてた もっと書いてくれ https://t.co/7Rxk2pcJZR」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、昔から思ってるなぁ…SMTが一つの解だろうけど、さほど上手くいっているようにも見えず。 https://t.co/ZWkiMasyN3 NVDIMM-P でも、そのあたりの解決をどうするのだろう?と思いつつ…NANDストールの粒度だとOSスケジューラと連携すべきだろうなぁ。 https://t.co/a5gOuUovTH」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM-Pはメモリ操作にアウトオブオーダーや非同期的な動作をサポートする様子。 やはりOS側のページ操作でも、データがSSDにのみでDIMMにない場合は、ページフォルト的な仕組みを入れねば厳しそう。 「不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来」 https://t.co/lrZfYQrDif https://t.co/5HIhuEIwzA」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@shirouzu それに比べNVDIMM-Pは、局所性が落ちるとDIMMより桁外れCPUストールが発生しそうな印象。 (仮想記憶と違い、アンヒット時(flash参照時)にCPUは身動き取れないとするとHW/OS共々専用対応必須?) https://t.co/DCGq74hDuC」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「SMTが一つの解」は、メモリストールで動かない時間を減らす、という意味。」 / Twitter
- FadisさんはTwitterを使っています 「Linuxに新しい擬似FS statfsが提案されている。statfsはカーネルが収集した統計情報を読めるFS。現在そういう物はdebugfs等から生えているが、debugfsはrootしか気軽に読めない事、権限の変更を都度挟むのがミスの元な事、そもそもそれはdebugではない事から分離したいらしい https://t.co/FHABYjq6A3」 / Twitter
- Statsfs: A Proposed Linux File-System For Kernel Statistics - Phoronix
- Kazuho Okuさんのツイート: "tiptopコマンド知らなかった / “CPU Utilization is Wrong” https://t.co/rThFdwM531"
- CPU Utilization is Wrong
- κeenさんはTwitterを使っています 「これは本当に分かる。CPU使用率が100%のときに「で、これは本当に計算に時間かかってるの?」ってなって面倒くさいよね。 CPU Utilization is Wrong https://t.co/ed5Qi4HzP8」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリの純粋な計算負荷のCPU100%が一番穏健で、割り込み多発が一番厳しいかな? (メモリ不足=スラッシングだとCPU100%にならないはず)」 / Twitter
- 🦈sat🐢さんはTwitterを使っています 「性能測定の肝は「何をしたいのか明らかにする」ですね。それがないと迷走するだけだから 別に性能測定だけに限らんけどこいつはとくに「なんやしらんがとりあえず測る」がとても多い」 / Twitter
- uint256_tさんはTwitterを使っています 「GPU-Utilの意味がよくわかっていない(どうやって計算しているの)」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@uint256_t 単にカーネル起動してる時間で、 top で見る CPU 利用率と同じ感覚で良いと思っています。100%だからといって、効率の良い計算をしているかとかはわからない感じといいますか」 / Twitter
- uint256_tさんはTwitterを使っています 「@shinh なるほど。(そもそも100%にすら届いてくれないので困っていました)」 / Twitter
- this is matsuu speakingさんはTwitterを使っています 「コンテナの中での実行を想定したtopコマンド。通常のtopコマンドをコンテナ内で実行するとホストのCPU/メモリ/uptimeなどが見えてしまうが、このtopicであればcontainer内に閉じたtop結果を確認できる。わいわい。golang実装 / “GitHub - silenceshell/topic: top in conta…” https://t.co/fhP9cRWfIC」 / Twitter
- silenceshell/topic: top in container.
- mattnさんはTwitterを使っています: 「恥ずかしながら top コマンドで色付けられるのを今まで知らなかった。Z を押したら色の変更画面が出てくる。変更してメイン画面に戻った後に W をタイプしたら保存される。htop をインストールする理由が無くなったかも。 https://t.co/x3d7ngkQSN」 / Twitter
- mattnさんはTwitterを使っています: 「さすがに FreeBSD のは無理だった。」 / Twitter
- matsu卯さんはTwitterを使っています: 「Linux向けのCUIベースのCPUモニタリングツール。かなり詳細で、CPUのコア単位で動作周波数、C-state、温度などを表示できる。わいわい。 / “GitHub - cyring/CoreFreq: CoreFreq is a CPU monitoring software designed for the 64-bits Processors.” https://t.co/Sr69kOeFHy」 / Twitter
- cyring/CoreFreq: CoreFreq is a CPU monitoring software designed for the 64-bits Processors.
- インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
- CodeZine(コードジン)
- CPU使用率とは|CPU利用率|CPU負荷率|CPU utilization - 意味/定義/解説/説明 : IT用語辞典
- Windows 10のタスクマネージャーの新機能「GPUグラフ」が見当たらない理由とは:その知識、ホントに正しい? Windowsにまつわる都市伝説(107) - @IT
- CPU Steal Time 入門 - Qiita
- ASCII.jp:Windowsの歴史を通じて地道に改良を続けてきたタスクマネージャー 11ではEdgeのプロセス表示に対応
- Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE
- Windows 11のCPU使用率表示にバグがある可能性 - GIGAZINE
- ソフトウェアとクラウドサービスによる環境への影響の測定
- エヌユルさんはTwitterを使っています 「Windows, 未だにタスクバーにCPU使用率とか表示する標準的方法無いんだな Linuxデスクトップだと標準でそれが有効になってることが多いぐらいなのに」 / Twitter
- エヌユルさんはTwitterを使っています 「CPU使用率などが表示されないと本当に処理始めてるのか不安に思うんだよな 特にWSLだとなんかプログレスバー出ないこともあるし wingetかchocoあたりでマネージドインストール出来る良い感じのソフトは無いかな」 / Twitter
- .さんはTwitterを使っています 「マジメに返すと、リソースモニターの「CPU」のタブにある「関連付けられたハンドル」の検索欄にファイル名を入れると、何が掴んでいるかが出てくるのです……」 / Twitter
- 【公式】加賀瀬 葵さんはTwitterを使っています 「Windows君さぁ、フォルダ削除とか名前変更しようとしたときに別プログラムが掴んでるって警告出すのはありがたいんだけど、 なんのプログラムが掴んでるのか教えてくれよ」 / Twitter
- .さんはTwitterを使っています 「ただまぁ……「判ってるならメッセージに書けや!」ですねw」 / Twitter
- .さんはTwitterを使っています 「軽い気持ちで書いたらえらく注目されてるので補足。プログラムとファイルの種類によってはファイルがあるフォルダー名じゃないと出てこないことがあります(サクラエディタやメモ帳など)。ファイルで出なければフォルダーで調べてみてください。」 / Twitter
- .さんはTwitterを使っています 「一応、きちんと書いておきましたのでよかったらどうぞ(きちんと、っても内容はざっくりですが)。 https://t.co/Dt0CexjxCH」 / Twitter
- ファイルを掴んでいるプログラムを特定する方法 - misc.log
- SODA NoriyukiさんはTwitterを使っています 「Windows素人なので、今までこのへん知らなかった… 「逆に、特定のプロセスが掴んだり参照しているファイルやフォルダーを調べる場合ですが、検索条件を入れずに、CPUタブの上部にあるプロセス一覧の左にあるチェックをONにしてください。そうすると、下部の関連付けられたハンドル欄に…」」 / Twitter
- たけくんさんはTwitterを使っています 「これWindows11で解決した上に、メモ帳は開いたまま名前を変えてもファイルを掴まずに上書きしようとした時点で元の名前のファイルを作るVScodeっぽい挙動になってストレスがなくなったの神。 https://t.co/alI3URqBD5」 / Twitter
- かりやみつらないさんはTwitterを使っています 「procfs とか sysfs とか便利っちゃあ便利なんだけど、プログラムから読む時にわざわざフォーマット解析してやんなきゃなんないのがそうはならんやろ感がある…」 / Twitter
- ゴリラ@最近🍌食べてないさんはTwitterを使っています 「これ、リプレイ出来るのか 便利そう https://t.co/9tI7Ttl8mZ」 / Twitter
- evilsocket/uroboros: A GNU/Linux monitoring and profiling tool focused on single processes.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ITシステムの性能を測るうえで重要なのは平均ではなく分散である。分散が大きなシステムはピーク時の性能低下も大きい。ユーザは通常よりちょっと遅い程度では気にしないが、大幅に遅かった経験はよく覚えている。災害はつねに「分布の中央ではなく終端で起こる」のだ。 https://t.co/wsPu7zW8lx」 / Twitter
- Why Disaster Happens at the Edges: An Introduction to Queue Theory – The New Stack
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「待ち行列理論はおもに上のような問題を扱っている。使用率 (utilization) が高い状態ではわずかな変動が致命的な遅延にエスカレートすることがわかっている。一般的にシステムの使用率は75%以下をキープし、使用率が高い時は可能な限り分散を抑え、中間層で調整弁的な機能を実装することが重要である。」 / Twitter
I/O スケジューラ
単位
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度表示、MB/sとなっているのだが、実際は2^20なMiB/sでの値を表示している。 MiB/s に直すか、10^6な MB/s に変更するか、ちょいと迷い中。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前に FastCopyでのサイズ表記をMB→MiBに変更したのだが、やはり気になる人は居る様子。 でも、MBをサポートするなら10^6計算にしないとなぁ。 https://t.co/AylO3FFOxk"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "『MBをMiBと正確に表記することは、「一杯の紅茶を飲んだ」ではなく「236.588mlの紅茶を飲んだ」と表記するようなもの』 なるほど、面白い(笑) https://t.co/hz0xSDno2A"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「どのストレージデバイスも、MB表記ばかりでMiB表記は見たことが無い」 うーん、それはベンダが大きな数で表記したいだけの話でして。 以前のFastColyはMiBで計算してMB表記するという、MS Windows方式なのでちょっと違うんですが、、、"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "配慮する場合、10^6でMB表記オプションを追加、ですね。 ちなみに、CrystalDiskMarkがその表記なので、以前のFastCopyだと、同じ実効速度でも低い値に表示されてしまうという、、、… "
- Kengo Sawatsuさんのツイート: "これ、WindowsのエクスプローラがMBって書いてるのに実際はMiBなのもあって悲惨な状況ですよねぇ。 個人的には軽やかに意見をスルーして貰って、FastCopyがMiBを正しく布教してくれる先頭に立ってくれる事を願いますが。。… "
- Kengo Sawatsuさんのツイート: "興味深い?ことなんだけど、Windowsでは1MB*8とか1MB*16とかがよいらしいけれど、Macでは逆で16MB*2とかで一つあたりのI/Oサイズを大きくして重畳数は2とかの方が性能が伸びるように見える"
I/O 優先度
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降、I/O優先度が設定できるのだが、Win10で優先度低にすると極端に転送レートが落ちる…あくまで他のプロセスI/Oを優先、として欲しいだけなのだが、デバイスのidle時間がやたらと増えるのは頂けない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、SetPriorityClass(PROCESS_MODE_BACKGROUND_BEGIN) を発行するとデバイスidle時間が30%~50%くらいに増える。(発行しなければ100%)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "idleの話なので「発行しなければ0%」だった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、SetThreadPriority(THREAD_MODE_BACKGROUND_BEGIN) だとこんな挙動はしない様子。 MSDNにそんな記述は無いのだが(前述のプロセス版と同じ説明)。 まあ Win32 APIにありがちな話…そして次の将来版で挙動が変わるのもありがち(笑) https://t.co/43KMqs1CXb https://t.co/bi76H7ZOKC"
- SetPriorityClass function | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そして複数のプロセスで競合させ、I/O優先度がきちんと効いていることが確認できた。 (ただ、リソースモニターでは I/O優先度=標準と表示されてしまうのが困りもの)"
I/O・非同期・ノンブロッキング
blog
非同期・ノンブロッキング・CPS
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- update a content · KeenS/KeenS.github.io@d46dad5
- How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
- channel - go routine blocking the others one - Stack Overflow
- 「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
- Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
- Future パターン - Wikipedia
- Futures and promises - Wikipedia
- Overview of Blocking vs Non-Blocking | Node.js
- 非同期処理を理解する - Sansan Builders Blog
- 【Nginx】非同期IOとノンブロッキングIO - 地方エンジニアの学習日記
- 【Linux】非同期IOブロッキングとかノンブロッキングの話 - 地方エンジニアの学習日記
- ファイル I/O でブロックされているスレッドを殺したくなったらどうするか? - NyaRuRuが地球にいたころ
- Win32 I/O キャンセル API と"ゾンビ" プロセス - NyaRuRuが地球にいたころ
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- Go pprof 応用編 (CPU 以外のプロファイル) : KLabGames Tech Blog
- .NET非同期処理(async-await)を制御する、様々な方法 – kekyoの丼
- .NET非同期処理(async-await)と例外の制御 – kekyoの丼
- Big Sky :: Golang の channel の使い所
- ノンブロッキングI/Oと非同期I/Oの違いを理解する
- Goへの誤解について - GolangRdyJp
- コールバック地獄から async/await に至るまでと, 非同期処理以外への応用 - Object.create(null)
- JavaScriptの非同期処理Promise・async awaitを学んでみた | Wedding Park CREATORS Blog
Qiita
- 意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita
- Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
- contextの使い方 - Qiita
- Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
- Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
- 非同期 IO について - Qiita
- Linuxにおける非同期IOの実装について - Qiita
- ブロッキングとノンブロッキングの概要 | Node.js
- 非同期I/OとノンブロッキングI/O - Qiita
Twitter
io_uring・AIO
タイムアウト・キャンセル
- Kazuho OkuさんはTwitterを使っています 「epoll から io_uring に簡単に移行できるかというと、実際は難しいのである(エラーの際にI/O中断してソケットを閉じ、バッファを開放するということが、後者だと同期的に実行不可能なため)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「というか、io_uringにはキャンセルという概念がないけど、TCPソケットの読み書き中にタイムアウトで切断とか、みんなどうしてるのかな。shutdown(RDWR)して実行中の非同期命令が全てi/o errorで終了返すの待つの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「とりあえずepoll fdにio_uringのfdぶらさげるか」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています 「@kazuho 予めタイムアウト時間を指定する場合は io_uring_prep_link_timeout というのがあって https://t.co/m5wVcFM9FP あとからキャンセルする場合は io_uring_prep_cancel https://t.co/QJObSgyeDU というのがありますね。 なお私はサンプル試した程度なので詳しい方のコメントを期待してます。」 / Twitter
- liburing/link-timeout.c at master · axboe/liburing
- liburing/io-cancel.c at master · axboe/liburing
- Kazuho OkuさんはTwitterを使っています 「@hnakamur2 ありがとうございます!」 / Twitter
histric
histric-1
- Fadisさんのツイート: "Linuxカーネルにカーネル空間とユーザ空間で共有されるキューペアio_uringが追加されるらしい。これを利用するとI/Oの結果を受け取るのにシステムコールが不要になる為、Linux AIOより効率の良い非同期I/Oが可能になるらしい。将来的にはPoll Mode Driverも可能にしたいとの事 https://t.co/7yCllXCxSo"
- Linux Kernel Getting io_uring To Deliver Fast & Efficient I/O - Phoronix
- Fadisさんのツイート: "使われないことに定評のあるLinux AIOが使われないままオワコンになろうとしている…"
- Fadisさんのツイート: "扱いが難しくてあまり使われないLinuxのAIOを拡張して、epollよりコンテキストスイッチを抑えられる新しいイベント待ちAPIを作ろう、という提案がなされている。提案しているのはScylladbの人で、これを使う事でSeaster I/Oフレームワークの性能が10%程向上する、としている https://t.co/l6JJovXcs5"
- A new kernel polling interface [LWN.net]
- suzakiさんのツイート: "io_uring https://t.co/g7OwEl0CRS システムコールを発行せずにI/O処理する、つまり、kernel Bypassならカーネルにマージされるコードはないと思ったのですが、(ほぼ)がポイントなのですね。… "
- io_uring IO interface [LWN.net]
- satさんのツイート: "めっちゃ雑に書くと 0. カーネル送信/受信キューの初期化。ユーザ空間にmmap 1. ユーザが送信キューのエントリにI/O要求を書く 2. ユーザがsyscall発行でI/Oをキック 3. カーネルがI/O処理 4. ユーザがI/O完了を確認 1,3,4は非同期なのでI/Oが出続けている限り2は省略できる というかんじです… https://t.co/02q3Y1iLRi"
- Fadisさんのツイート: "io_uring、カーネルがキューをポーリングするようにしてシステムコールを完全に排除するモードの追加は今後の目標とかそんな感じだった筈"
- Kazuho Okuさんのツイート: "io_uring、いつudpまわりも使えるようになりますか"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで非同期I/Oを改良したio_uring、まだ試してないなぁ。 debian unstable を入れて試してみるかな。"
- satさんのツイート: "すくなくとも5.1では使い物にならなかったです。それ(のうちのすくなくとも一部)をなおすdirty hackパッチを持ってますがまだ投稿に耐えるほど整形してません… "
- satさんのツイート: "より正確に言うと機能にはいくつかモードがあって、一番高速なやつの挙動が怪しいです… "
- FadisさんはTwitterを使っています: 「Linuxのio_uringででかいバッファの後ろの方に対してI/O要求を投げるとI/Oの完了がものすごく遅くなる問題の原因が特定、修正されたらしい。バッファの先頭に対する操作で10%程、末尾に対する操作で755倍程の性能の向上が見られた、とのこと https://t.co/KKiFtVdTDf」 / Twitter
- IO_uring Gets A Huge Performance Fix - Up To 755x Improvement - Phoronix
- FadisさんはTwitterを使っています 「samba-4.12がリリースされたらしい。このバージョンの目玉はio_uringに対応した事。io_uringはlinuxの今熱いシステムコールで、カーネルとユーザ空間の間にIO要求と応答の為の2本のキューを作り、IO要求毎にカーネル空間に移る必要を無くすことで大量の非同期IOを効率よく捌く https://t.co/UA085Q0ep7」 / Twitter
- Samba 4.12 Released With Performance Improvements, IO_uring Support - Phoronix
- ドッグさんはTwitterを使っています 「io_uring のキューをホストとゲストで共有することで仮想マシンでもベアメタルと同等の速度が出せるのか.すごい | 'IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results' https://t.co/384FLF5yb6」 / Twitter
- IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results - Phoronix
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「Linuxのsmbdに向かって非同期i/oで重畳を重ねるとかえって遅くなったりするなあ、最新のwin10クライアントとかでも微妙にある感じがしてたけど、これどっかでちゃんとまとめてレポート書かないといけないよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 そんなことあるんですねぇ… Linuxの非同期I/Oは(最近のio-uringは別として)、あまり使われないので枯れない、といった声は聞いたことありますね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uring、マルチスレッド+epollで書かれたサーバプロセスで1スレッド1Gbpsとか余裕で出てNICがボトルネックになるので、全てのユースケースで意味のある技術ではないと思ってる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「極端なケース、たとえば、超遅い接続が大量にあって、受信するデータパケットが小さくて、1バイト読むのにsyscall 1個発行するみたいなケースだともちろん意味があるので、ワークロード次第」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「手元の QUIC の場合だと、10パケット毎GSOの条件で 5Gbps / 0.35 CPU thread とかだから、一般的なコンシューマ回線相手のHTTPだと、オーダは 1Gbps よりも 10Gbps / CPU thread に近いはず。こういうケースで io_uring に意味があるとは考えにくい(なので優先度下げてます) https://t.co/T2r1iQtfc0」 / Twitter
- Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
- FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「io_uring なんでもありだな。」 / Twitter
- Jens AxboeさんはTwitterを使っています 「Huge page support for io_uring ring/submit entries: https://t.co/F5wVHG2ux7 This will nicely reduce the TLB misses particularly for workloads that use larger rings.」 / Twitter
- linux-block - Linux 5.x block layer tree(s)
- Jens AxboeさんはTwitterを使っています 「Even for smaller rings, it can reduce the TLBs needed from 2 to 1. For larger rings, bigger reduction obviously.」 / Twitter
- Jens AxboeさんはTwitterを使っています 「And yes, this could've been done without needing to pass in pre-allocated memory, but Linux mmap(2) doesn't support huge pages for anything that isn't hugetlbfs/shmfs. Drivers/others are SOL.」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uring の sqe と cqe ってどう発音するの? エスクとシーク?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「むーん、io_uring でキャッシュにのってないファイル読むと、ファイル末尾のページサイズ未満のフラグメント読むところで partial read 発生したりするの...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なるほど、io_uring は、 * ファイル読込の先頭部分がキャッシュにある場合は、そこをpartial readとして返す * キャッシュされてないファイルを一定サイズごとに読む場合、先読みが走るから、初回読込は非同期、2回目以降は(キャッシュされていて)同期になる ...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* ただし、ファイル末尾の1ページに満たないデータは先読みされない という挙動だった (5.13.0-37-generic ubuntu)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「この最後のページの挙動、ファイルを格納したイメージをあらかじめ作って mount した場合は再現しなかった。e2fs上にdd oflag=directした後でtruncateすると再現する」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「このへんのコードがカーネルに入ってれば起きないのかな。いずれにせよ、古いバージョンのカーネルも含めると、partial readは発生するものと考えるのが良さそう https://t.co/VG8Z0MOLRg」 / Twitter
- [2/3] io_uring: punt short reads to async context - Patchwork
- Kazuho OkuさんはTwitterを使っています 「そしてこれ、結構頭が痛い。なぜなら、ラッパーを作れないから。 そもそも、io_uringの非同期ファイルアクセスはopen file descriptionへの参照をもつから、非同期アクセス中にアプリ側でclose(2)しても問題ない。読み込み完了してからアプリのステート見て結果破棄すればいい。んだけど、...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「parlia readがあると、アプリのステートみて残余データに再アクセスかけるかどうか判断する必要があって(そうでないと、全然関係ないファイルを読み書きする可能性が出てくる)、従ってpartial readからの復旧ロジックをアプリごとに書かないといけない」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば Win32のDirect I/Oは(末尾も含めて)必ずセクタサイズ粒度要求だけど、戻りはreadに限って末尾サイズにtruncateされてくる。 この時、別スレッドからメモリ監視してると、一瞬ゴミ部分(末尾以降のセクタデータ)が参照される穴はないのかな?と思ったことある。(非directで回避?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あとWin32でも、キャッシュ存在時はキャッシュを読み、無い時だけ Direct というフラグが欲しいところ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で試した範囲では、そんな穴は無い様子(当たり前)。 片方スレッドではFILE_FLAG_NO_BUFFERING でDirectIO、もう片方では _mm_clflushoptでキャッシュを無効化しつつゴミ部分メモリを参照する無限ループ。 >一瞬ゴミ部分(末尾以降のセクタデータ)が参照される穴」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、正確には末尾のゴミ領域も転送してる様子。 ただしファイル作成時に、セクタ未満にtruncateした時点で末尾ゴミ領域は0fillされると。 従い、転送してるが無害というオチ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、BSD系ffs的なフラグメント処理(tail packing)だと使えない手だけど、NTFSは(ext系も)それをしてない故に使える手と。 下記を見ると btrfs と ufs2 はそれをサポートしてるらしい。(その場合 Direct IOで末尾用の小細工要ると) https://t.co/63gNuJmcOb」 / Twitter
- Block suballocation - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「http/1.1 でファイルをサーブする場合のベンチマーク。 2KB読み込みを16個バッチにすると40%速度向上。64KBの読み込みの場合は6%。実装的には、メモリアクセスの局所性を頑張っていないものになります https://t.co/B3AH6piNL3」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「https://t.co/Q6PN6UHKd3」 / Twitter
- use io_uring for asynchronous file reads by kazuho · Pull Request #2976 · h2o/h2o
- ゆるsyuu1228△さんのツイート: "AviにCCされてるしSeastarでベンチされてるけど提案者は社外の人ではないか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、I/Oスレッドをもっと増やした方が速い、と再度コメントしてきた人がいたので、なんだかな…と思いながら長めの返信を書いた。 ただ、ネイティブに「カタコト感満載」「丁寧な返事」「けんか腰」のいずれかに見えるのか、よくわからない(笑) https://t.co/3UUZI0Humc"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "マルチスレッドとオーバーラップI/O の区別が付いていないというオチかな。 それにしても、オーバーラップI/Oがqueue-depthという表現の方がメジャーになったのはなぜかな。 条件が揃えばデバイス側のコマンドキューイングが利用されるとはいえ、元来それと1vs1対応した機能ではないはずなのだが。"
- SODA Noriyukiさんのツイート: "これは知らなかった。*BSD含む伝統的UNIXだとI/O完了を待たないので挙動が違うのね(FreeBSDの場合は、ユーザーランドに見えるブロックデバイスは廃止されてrawデバイスのみになってるけど) RT: Linuxではブロックデバイスに対する非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ… https://t.co/nTcjnftT9c"
- satさんのツイート: "さっきした会話で思い出した豆知識。linuxのブロックデバイスファイルに対する書き込みの特徴 - 非同期書き込み、非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ - このデバイスファイルにページキャッシュは無い。write時はbuffer cacheを使う(I/Oが終わったら捨てる)"
- satさんのツイート: "これらについてはsar -rとsar -d -pを使って監視しながらddを使って通常のファイルとデバイスファイルに書きこむと手に取るようにわかります。"
- satさんのツイート: "あの本ではまったく同じではないけど、こういう話をしています。とにかくOSの挙動を実測 唐突な宣伝すいませんでした"
- Yosuke FURUKAWAさんのツイート: "Node.js の deep な所まで突っ込んで非同期処理の成り立ちを解説した論文、まさかNode.jsの論文があるとは。 / “Semantics of Asynchronous JavaScript” https://t.co/1oCRNOtO82"
- Semantics of Asynchronous JavaScript
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxの場合、(posix aio ではなく)libaioでないと、syscallな非同期I/Oにならない?posix aioだとライブラリ内部でスレッドを使うユーザランドな非同期I/Oになるのかしらん? https://t.co/um1OdyTGsd https://t.co/gyUYGxLgiL"
- バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog
- Kengo Sawatsuさんのツイート: "メモ:macOSにおけるaioのリミット値のデフォルト sysctl -a | grep aio kern.aiomax: 90 kern.aioprocmax: 16 kern.aiothreads: 4 実際16以上同時にぶちこむとエラー帰ってくるよ。"
- Kengo Sawatsuさんのツイート: "Oh,god..... MacでフォーマットしたExFATディスクにaio_writeでパラでデータ書き込むと100%データ壊れるんだけど、これヤバすぎでしょ。。 8MiB*2だろうが16*4のふた通りで試して試行回数3で100%破壊、しかも破壊箇所に再現性なし。。。"
- INADA Naokiさんのツイート: "I/O多重化のメリットを享受しつつ、一般的な(コールバックやasync/awaitを使った)非同期プログラミングのスタイルのデメリットがないという意味です。 Javaとかの普通にスレッド使うよりは軽量になります。 Erlang や Haskell とは同じです。… https://t.co/gLELlykAWx"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsにしてもUNIXにしても、read/writeの非同期I/Oはあるが、create(open) / remove(unlink) の非同期命令が無い。 ネットワークファイルを大量作成or削除する場合は、自前でマルチスレッド化するしかないのが現状。"
- 鯉江さんのツイート: "メタデータいじる系のやつに非同期IOがないのはローカルファイルシステムだと平行性があまりないから用意されてないだけなんだろうか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ごもっとも。 ちなみに個人的には、ダイレクトI/O + 非同期I/O(ただしネイティブな実装に限る)がベストかと。(高速&ファイルキャッシュで仮想記憶を汚さない。1MB以上のファイルの場合ね) ---- read(2) vs mmap(2) の迷信 https://t.co/bhlQb88gcm"
- read(2) vs mmap(2) の迷信
- Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、ダイレクトI/Oはセクタ単位縛りが面倒なのは確か。 特に書き込み側。非ダイレクトI/Oで開き直して、末尾を調整する手間が必須に。"
- Makoto Kato ︎︎さんのツイート: "WebKit、https://t.co/8KLoTJ6o8L で隠しAPI使ってるんだよな。。。たぶんこれ使えばTwitterの件はどうにかなるんだろうけど、さて。。。"
- 130479 – [Mac] Support asynchronous NSTextInputClient
- Makoto Kato ︎︎さんのツイート: "自分たちが欲しかった非同期APIだよ"
- Makoto Kato ︎︎さんのツイート: "マルチプロセス化するのにOSのAPI変えられる会社はズルい。無理矢理実装したのに。。。"
- Takashi KawasakiさんはTwitterを使っています 「非同期のコードを疑似コードでいいのでフロー教えてほしいといわれると結構面倒・・・。というかコーナーケースの表現ができない。」 / Twitter
- 非同期IO - Wikipedia
- 現代の非同期処理
- GOMAXPROCSについてのメモ
- マルチスレッド · Build web application with Golang
- AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
- ノンブロッキングとは?ブロッキングや非同期との違いは?|ITトレンド
- 特性を理解する!ノンブロッキングとは【初心者向け】 | TechAcademyマガジン
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32 に io_uring的な API が増設されたらしい。 (だがあまり情報が無い) I/O Ring https://t.co/KFZa5SIR8s https://t.co/ZacNppiYmU」 / Twitter
- ioringapi - Win32 apps | Microsoft Docs
- I/O Rings – When One I/O Operation is Not Enough – Winsider Seminars & Solutions Inc.
- なかのん&マジックさんのツイート: "ふと、MozillaのCSSのbindingによってショートカットキーが特定の要素に付加された時にどこからその処理が来てるのか気になったのでデバッグビルドでスタック見てみたら、非同期で投げられててどっから来たのか分からないという……"
- なかのん&マジックさんのツイート: "そら、ソースコードを読んでてもたどり着けませんわ……"
Direct I/O
F_NOCACHE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2007年のO_DIRECTに関するヘビーなやりとり。 https://t.co/KW9jYGpfnM」 / Twitter
- O_DIRECT question
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Linus氏、io_uring時代になってからも O_DIRECT に関する見解(≒使うな)はそのままかしらん…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Linux にも O_DIRECT ではなくて F_NOCACHE が欲しいなぁ。 (キャッシュがあればキャッシュを使うけど、無ければ O_DIRECT的な動作になる。今のところこれをLinuxでやるには mincore を使え、になるのかな?)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu posix_fadvise(POSIX_FADV_DONTNEED) じゃダメでしょうか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho ありがとうございます。 バックアップ的なコピー用途で、OSのキャッシュ保持状況に影響を与えないコピーをやりたいのですよね。 既にキャッシュに載っている場合は、キャッシュを保持したままにしたいと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu あーなるほど、納得の要件です。 ググったところ、最近の linux では、まさにそのために RWF_UNCACHED というフラグが追加されたっぽい? https://t.co/gbYCQrQpQn」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu ごめんなさい、まだ入ってないですね https://t.co/xB7hX2N1Gp」 / Twitter
- linux/fs.h at master · torvalds/linux
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@kazuho ありがとうございます! 参考になります。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@shirouzu こちらこそ勉強の機会になっております。しばらく前のパッチですけど、なんでマージされてないんでしょうね」 / Twitter
- ふぉーてぃないなーさんはTwitterを使っています: 「@kazuho @shirouzu このパッチを提案されたaxboeさんが、つい先日に状況をコメントされてました。 https://t.co/QcSiyZZYNO」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@49ermania @shirouzu おお、ありがとうございます。僕は困ってないですけど、困ってる人が声をあげてマージされるといいですね!」 / Twitter
パフォーマンス
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy ではむしろ、OSキャッシュに載せないよう Direct I/OとAsync I/Oで頑張っている…」 / Twitter
- FadisさんはTwitterを使っています 「@nikq Linuxはじめとするmmapを素直に実装するOSではreadは「ページキャッシュに乗せてバッファにコピー」なのでmmapして全領域を(posix_)?fallocateする事で「ページキャッシュに乗せてそのアドレスをよこせ」した方が性能が出る事があります。単純にファイル全体を読みたい場合試してみる価値があるかと」 / Twitter
- KOSAKI MotohiroさんはTwitterを使っています 「@fadis_ @nikq わたし10年ぐらい前にLinuxのVM書き換えたことがあるんですけど、そのときいろいろ調べて、mmapでコピーするのはほぼ常に遅いという結論になりましたね。 OSの教科書が想定しているハードウェアが古すぎるんだと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「Direct I/O には Async I/O がよく似合う」は本当です。 (2MBくらい以下のI/Oサイズの場合は特に)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (横からすみません)むしろ、OSキャッシュに載っていない状態からの計測を繰り返さないと意味無くないですか?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq キャッシュに乗るまでの時間がreadとmmapで変わるのであればそうですが、そうなんですか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq そう言う話があった気がします。 (mmapの場合、ページアクセスで例外発生からI/O発生の繰り返しになるのが呪いになるなどあった気が…最初のアクセス以降は先読みが効いてとかあっても良さそうですが、実測ではペナルティが大きかった記録を読んだ気がします…小崎先生の方が詳しいとは思いますが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (もしくはOS先読みだと、大きなI/O指定にならないのが問題だったり…?ちょっと覚えていませんが)」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq なるほど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、Direct I/O は(非セクタ倍数サイズなファイルだと)Win/Linux共に、 ・Readでは末尾は1回のreadで読み取れる (要求はセクタ倍数だが、答えは非セクタ倍数) のに対し、 ・Writeはセクタ倍数Writeした後にtruncateか、末尾writeだけ非Direct I/O を使う という非対称性があってモニョる」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LinuxはOSSなんだから、実装案を作って提案したほうがいいのかしらん…とはいえ、私くらいしか気づいていない非対称性かもしれず、誰得?とか言われそうな(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、いろいろ性能計測の結果、Windowsだとtruncateに軍配という結果だった。 (最近わざわざ非truncate実装を加えた末に、意味ないと判りがっくり…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうそう、これ私も以前から実験してみたかった話(笑) (ところで、HugePageだと先読みもHugePage単位でやってくれるのかしらん?重そうだけど…)」 / Twitter
- FadisさんはTwitterを使っています 「@angel_p_57 @shirouzu @kosaki55tea @nikq 頻繁なpage faultが性能低下の原因なら、Transparent Huge Pageで問題のいくらかを回避できる気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq メモリ上でのコピーではなくディスクアクセスがボトルネックになるベンチマークである、という前提において言うと、readaheadに与えられる情報が多いreadを使う方が、mmapよりも速くなる可能性があっても逆はない、と言えるのだと思います(そしてしばしば実際にそのような結果が観測される)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ファイルコピーベンチマークをみて、あーBDPの推定問題だなって思ってしまうのはネットワークに毒されてる証拠」 / Twitter
- KOSAKI MotohiroさんはTwitterを使っています 「@kazuho @fadis_ @angel_p_57 @shirouzu @nikq 情報量もありますし、ヒューリスティックに推測するにしてもmmapはランダムアクセスのパターンで使われることのほうが圧倒的に多いので、readaheadの推測値がどうしても小さくなってしまうんですよね。IOの効率に比べたら、メモリ操作の効率はあんまり重要じゃない」 / Twitter
- FadisさんはTwitterを使っています 「@kazuho @angel_p_57 @shirouzu @kosaki55tea @nikq この問題についてはPOSIXな環境で幅広く動くコードについてはその通りだと思います。一方でLinuxでMAP_POPULATEを指定している場合mmap時に指定したサイズが一度に読み出される為、readに対して不利な要素は何もないように思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq はい。アプリケーションが適切に先読み量を設定できればdisk i/oの利用効率が最大化できるであろう、という意味で、おっしゃるとおりだと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2MBの先読みだと、readにもう一息追いつかないかな… (Direct I/O = 先読みが効かない状況でも、4MBくらいから(Async I/Oなしでも)ほぼペナルティは隠蔽されはじめる)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このMAP_POPULATE興味深いなぁ。mmapコピー実験は(キャッシュ無効からの)MAP_POPULATE版での計測をやってみたいところ。 (Windows版にもこのフラグ欲しい…ただ大量コピーの場合、ファイルが使う物理メモリ量は制限したいので、やはりDirect I/O + 自前メモリがよいかな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には大量コピーには、Direct I/O + Async I/O が最強だと思っているので、いずれ Linuxでもこの形の FastCopy を作ってみたいと思いつつ。」 / Twitter
2020-12-24
- SODA NoriyukiさんはTwitterを使っています 「メタデータが更新されてる保証がないって話かなあ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda データもです。direct I/OってI/Oリクエストを投げたら完了を待たずに復帰するんですよ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda ネタバレですが > To guarantee synchronous I/O, O_SYNC must be used in addition to O_DIRECT. https://t.co/itt6Pu4wCC」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda 実装依存ですね。あんまり知られてないです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「open(O_DIRECT) + write(2) 終了時にデバイス転送が終わっていないと? だとwriteに指定していたページをwrite直後に書き換えるとどうなるのかしらん?(COW?本当?) あと手元(5.9.0)だと open(O_DIRECT) + read(2)では、キャッシュ有無に関わらず常にデバイスから読んでるのだが…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおWin32のFILEFLAG_NO_BUFFERINGだと、常にデバイス直接書き込み&読み取りを保証。 (ただし、デバイス側のキャッシュに溜まるだけというのはあり得る) https://t.co/G1zVZVlD1F」 / Twitter
- File Buffering - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(writeはデバイスキャッシュの話を意識してるのかな?)」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu それはデバイスファイルですか?それとも普通のファイルですか?」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu いやデバイスファイルだとページキャッシュが無いから普通のファイルか」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi 普通のファイルですね。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu デバイスから読んでいるというのはどうやって確認しましたか。sarのようなメトリクス、あるいは速度、などなど。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi dstat ですね。direct指定のありなしで、dstatのI/O数の変化を見てます。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu ふーむなるほど?ちょっとページキャッシュありなしの速度からページキャッシュを使っているかどうか見てもらえませんか。ひょっとするとページキャッシュ使うけどディスクからも読むといった挙動なのかも」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/jS4OWpTyQA https://t.co/V6cdPH2gAw を見るとLinuxではそもそもI/O完了を待ってないようですね(待ちたいならO_SYNCが必要)。 知りませんでした。これは(manのこの記載事項も含め)OS依存だと思います。 readは(mmapされてない限り?)常にディスクから読むのでは?」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda @shirouzu 少なくとも私の検証結果だと「ページキャッシュを使う」のは確認しました。ただそこでディスクからも読み出すといったことをしてるかもしれないですし、実はファイルシステム依存の何かがあるのかもしれません」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔O_DIRECTで実験した時、十分に遅くて、非同期I/Oとセットにしないと使い物にならんと思った覚えがある。 実は仕様で「保証しない」だけで、現状の実装はO_SYNC相当の実装なのかな…?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにNetBSDの場合は(僕が読み間違えてなければ) ・mmapされてたりalignment条件を満たしてなかったら directio 自体を諦めて buffered i/o に fallback ・directio できる場合は、常に page cache を捨てて IO する (page cache は消えたままになる) だと思います https://t.co/MbRvtuN6Pt」 / Twitter
- src/genfs_io.c at 6e6585deb129aaf617d854789663569f25298ba0 · NetBSD/src
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi Windowsだと条件満たしてないとエラーになるのですよね。 (そちらの方が個人的には好ましいかなぁ)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu Linuxでも(少なくとも数年前のCentOSだと)遅かったと思います。buffered I/O と異なり、OS が readahead や write behind してくれないのは今でも一緒じゃないかって気が」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi わかります>エラーになる方がいい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なんで同期保証しないんですかねぇ…write後もバッファが自由になるタイミングが分からないとすると使い物にならないというか、O_DSYNCと一緒に使えがお作法になりそうというか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda バッファは自由になるんじゃないでしょうか?単にコマンドの完了を待たないだけで #知らんけど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda writeから戻って(まだDMA実行中)渡したページ書き換えたら、データ壊れません?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そして、キューがあってコマンド複数発行できるからO_DIRECTだけ指定した方がシングルスレッドでの書き込み速度は大幅に高いとかありそう」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/R1iw9cpeMD にも関連するんですが、こっちのスレッドにぶら下げます。 書き忘れましたがNetBSDのO_DIRECTの場合はIO完了を待ちます。これはraw disk I/Oの高級版という意味上の要求のほかに、wire downしたユーザーメモリを同一システムコール内でpaging可に戻したいという実装上の理由も」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda いや、カーネルがコマンド発行してDMAが終わった時点でプロセスに制御が戻るのか、コマンドの完了応答がHDDから戻ってくるのを待つのかの差じゃないんですかと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho データ壊れるというか、ディスクにどういう内容を書いたかの保証がないので非常に困りますね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda それが非同期I/Oの狙いの一つですよね…ただLinux O_DIRECTがそれをやっているようには見えないのですよね。 (実際は転送終了まで待っているように見えます)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なデバイスドライバとカーネル上位層の間の構造だと、その2つの待つタイミングを使い分ける方法はなく、待てるのはコマンド完了応答があったタイミングだけですね。 現代のLinuxのカーネルの構造は知りませんが…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu いや、複数のブロックを複数のライトコマンドを発行したあとで、FLUSH CACHEするというのが伝統的なやり方だし、O_DIRECTはライトコマンドを発行する一手法にすぎないから別に困らないと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なUNIXカーネルで biodone を待つタイミングの話をしてます。DMA完了だけ待つ方法はないのでは?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu なるほどありがとうございます。あるいは差としてはforce unit accessフラグを立てるかどうか、なんでしょうか」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにO_DIRECTが単なるヒントに過ぎず無視されることあるというこの挙動ですが、Solaris の directio に倣ったんじゃないかと思います(でも不便): https://t.co/5QLAdaOePK」 / Twitter
- directio - man pages section 3: Basic Library Functions
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu と redhat の人は言ってるっぽい? https://t.co/byRpdCg4eU」 / Twitter
- io - How are the O_SYNC and O_DIRECT flags in open(2) different/alike? - Stack Overflow
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu デバイス側のキャッシュをどう扱うかについては、さらに千差万別なんじゃないかという気がしてます。(同一OSでもfsごとに違うかも?) 実運用的にはドライブのキャッシュはオフにして battery バックアップつきの RAID cache に頼るというのが Linux を含め多いような(僕は老人なので現代だと違うかも?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 性能要件からしてそうなるのは良くある話だと思います」 / Twitter
- arhさんはTwitterを使っています 「@n_soda @kazuho @shirouzu ドライバ書いてたのは大昔で、最近の事情は把握していないのですが、当時はデバイス側にもキャッシュを持つようになったため(しかも透過的な)、どの時点で完了になるかが不明確になって、結局実装依存、になっていっていました。最近のデバイス側キャッシュってどうなっているんでしょう。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu LinuxだとO_SYNCが必要なのは https://t.co/jS4OWpTyQA の通り事実なんだと思います。 ただユーザーメモリの wire down を解除するのがシステムコール完了よりも後になるかどうかは、やや疑問かなあ。まあ最近のLinuxの性能追及改善はとてもすごいので、やっているのかも...(←驚いてます」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 同意です。その上で、O_SYNCとO_DIRECTを別個に持つ理由として、合理的な説明はありうるよなーと思いまして」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu はい。 実は Linux の O_DIRECT もデバイスドライバ層のIO完了自体は待つ実装になっていて O_SYNCの要求は force unit access から来てるってのはありそうな話ですよね。(今はともかく、少なくとも当初は)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda これって、NCQの想定が「コマンド転送+データ転送」の繰り返しのキューイング、みたいなイメージになってますかね? 実際は、ホストがコマンド群だけ転送して、デバイス側が都合よいコマンド選んではDMA要求発行、だと思うのですが…(つまり最後のDMA転送終了=コマンド群が完了)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そうなんですか。全然詳しくないのですが、最後にステータスが任意の順番で流れると思ってました https://t.co/TrwrHXd103 https://t.co/DWnZ2rfK6R」 / Twitter
- SATA Introduction
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda 上記でいうと、NCQ説明はこちらの図ですかね。 NCQはまずコマンドを溜め込んだ後に、デバイス側は、その中で最初に書きたいwriteコマンド(or 完了したreadコマンド)を選んでは DMA転送していく感じかと。 https://t.co/XXjj1x7A73」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい。その図で言うSet Device Bits FISはタグを含んでいて、queue depthのゆるす範囲で任意の順番で発行されるのではないかと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda で、Writeでは(FUAとかでないかぎり)DMA転送終了≒writeコマンド終了通知(=OSから見ると同期write終了)だと思っているのですけど、違うのですかね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい、O_DIRECTがDMA転送終了でwrite完了、O_SYNCがstatus受信でwrite完了だというのが、合理的にありうる可能性だと思います。sodaさんが懐疑的でいらっしゃいましたが(https://t.co/E10bdGoWiE からの議論)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda NCQ云々を書いたのは(sodaさんの考えと似てて)、DMA完了≒コマンド完了なのだから、(コマンド完了ではなく)DMA完了などというトリッキーなタイミングは使ってないのでは?という意図です。 (つまり、DMA前に制御戻っていてデータが壊れる危険 or CMD完了後に制御戻ってるので大丈夫かの2択)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda 少なくともforce unit accessフラグを立てているケースにおいては、タイミングがDMA後なのかstatus受信後かで意味は変わると思います。O_SYNCでタイミングも変えているのか、単にフラグを立てているだけなのかは、どちらも実装としてアリなんじゃないかと思います。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda もちろん少し前にこう書いた通り、FUA除外の前提です。 「で、Writeでは(FUAとかでないかぎり)…」 そもそもアプリ側でFUA指定ってできるのだっけ…あれはジャーナル等のチェックポイント書くといった特殊用イメージある。(ハードウェア的なO_DIRECTという感じ)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda https://t.co/GIN3U2Ogb6 (O_DYSINCですけど)このへんでしょうか(まーじされたかは見てない)」 / Twitter
- [RFC] iomap: Use FUA for pure data O_DSYNC DIO writes - Patchwork
2020-12-26
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu @n_soda ページキャッシュが存在する状態でdirect readするとI/Oを発行する件、正しくは↓でした - ページキャッシュを迂回してディスクからユーザページに直接データ転送 - 既存ページキャッシュをわざわざ捨てはしない - 既存ページキャッシュがdirtyな場合はdirect read前にwriteする」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi (確認せずに言ってますが)それはそうだと思いますね。 メモリ内容を比較するのは結構なコストなので、もしこれをやるとダイレクトI/Oの低コストが台無しになるので。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi NetBSDは direct I/O の前に単にpage cacheの中身を(dirty な場合は書き出した後) 捨ててるんですよねえ。ある意味一貫性はとれるけど、もったいないという。」 / Twitter
2020-12-27
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「きちんと再検証&訂正するスタンス、さすが。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「動画内の説明に誤りがあったこと、および正しい内容を動画のコメント欄に追記しました。 > 注意: 動画の途中で「ページキャッシュがある状態でdirecr readしたらページキャッシュを使う」と述べていましたが、これは誤りでした。ごめんなさい。 #satlinuxtube https://t.co/xhaHojsMNU」 / Twitter
- その23 同期I/Oとdirect I/O - YouTube
- 同期I/Oとdirect I/O - Speaker Deck
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年10ヵ月前のツイートを見つけてしまった。 こんなやりとりしてたのに、先日の類似ツイート見た時に、ピクリとも思い当たらなかった…ホント50歳になると「うーん、(何かあったけど)思い出せない」ではなくて、記憶の白紙地帯みたいになる…ヤバなぁ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi O_DIRECT + write(2)からreturnした後でも、writeで使ったユーザバッファを変更するとまずい、という挙動が(将来)ありえる、ということでしょうか?(それはちょっと厳しいのではと…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2004年に vmstat の buff と cache の違いについて書いたのを思い出した。 (SVR4という言葉も今は昔…という感じになってしまったな) https://t.co/8lNIxa9UQt」 / Twitter
- 私的メモ(2004年02月版)
- Linuxキーワード - ダイレクトI/O:ITpro
- LinuxでDirect I/O | わーどぷれす
- ダイレクトIOの実装 - のぴぴのメモ
- Linuxキーワード - ダイレクトI/O とは:ITpro : WEBディレクターが最低限知っておくべきI/Oの基本事項 - NAVER まとめ
- IBM Knowledge Center - NFS のダイレクト I/O
- LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
- Direct I/O のパフォーマンス測定 (write)
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Direct I/O には Async I/O が良く似合う。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyは、ネーミングのせいか「高速」「マルチスレッドI/O」という点に注目が集まりがちだけど、ダイレクトI/O(と非同期I/O)により、仮想記憶をキャッシュで汚さない(=他のプロセスが重くなりづらい)、という点が一番の特徴。 UNIX系でも、これを実現すれば嬉しい人は多いのではと思いつつ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで巨大なメインバッファを設定しても、意味がないということを何処かに書いた方が良いのかしらん? (概ね、512MBを超えると殆ど意味は無くなるはず。むしろDirectI/Oでdirtyページを閉じ込める意味が薄れるのでOS全体からは逆効果) https://t.co/6iuoDf2Jg9"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "相手がCIFS/SMBだと、LinuxではO_DIRECTは使うな、という感じに見えますね。… "
- Kengo Sawatsuさんのツイート: "mount.cifsでマウントした先のfdに向かってO_DIRECT指定でopenすると死亡フラグについて、各OSごとに挙動違いすぎて方針決められないので、挙動をまとめてみました。。疲れたのでもう帰りたいorz https://t.co/k0l7lqJC4q #Linux #O_DIRECT #smb #mount.cifs"
- Linux O_DIRECT with smb cache effects summary - Google スプレッドシート
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DirectIO にはメモリアドレスが「セクタサイズの倍数」という縛りがある(I/O時のデバイス転送絡みのはず)。 512eセクタ(内部4096)な場合、512バイト仮定で大丈夫だが、何らかの速度ペナルティが無いのか気になるところ。 (たぶん大丈夫かな…なお4096倍数の転送でないと速度低下するのは確認)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおメモリ・アラインを無視したデバイス転送を行うと、ドライバがエラーを吐かずとも、キャッシュ・コヒーレンスが壊れた経験あり。 https://t.co/yrE8N0T4MT」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そうですね。さらに脱線すると、IRIX(ELAN4000) で発生した話で、SCSIデバイスからメモリにデータ転送が完了しても、転送前のメモリが一瞬見えてしまうという現象で苦労した覚えが…異常値検出しても次行のsprintfダンプでは既に正しくて(笑)」 / Twitter
- Alireza FarshinさんはTwitterを使っています 「If you want to learn more about Direct Cache Access (DCA) or Intel Data Direct I/O (DDIO) technology when shifting toward multi-hundred-gigabit networks, check out our @usenix ATC'20 paper. #ATC20 #USENIX https://t.co/5vaSZYUdyM」 / Twitter
- Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks | USENIX
I/Oスケジューラ
CFQ
- CFQ - Wikipedia
- CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
- 6.4. 設定
- I/OスケジューラのCFQとクラスを理解する - Qiita
BFQ
- 技術者見習いの独り言: BFQスケジューラ
- Xperia X10推奨のIOスケジューラ|老兵のあがき
- I/O スケジューラについて 前編 - 所感 ~android~
- I/Oスケジューラーについての考察 - droidroid
- CPUスケジューラとI/Oスケジューラの組み合せを探って性能アップを目指す: Project Valkyrie
- linux-ck とGrub2 のアップデート: くしゃみ日記
- I/OスケジューラCFQの置き換えを画策するBFQスケジューラ。ほう。Budget Fair Queueing - tmatsuu のコメント / はてなブックマーク
- I/O Scheduler - sc-02croot @ ウィキ - アットウィキ
Kyler
- 2017年7月3日 Linunx 4.12が正式リリース,AMD VegaやNVIDIA Pascalのサポートなどが追加:Linux Daily Topics|gihyo.jp … 技術評論社
- 過去最大規模のリリースという「Linuxカーネル4.12」リリース | OSDN Magazine
Noop
- Noop scheduler - Wikipedia
- LinuxのSSD設定 - Qiita
- 6.4.3. Noop
- Fadisさんのツイート: "LinuxのI/Oスケジューラ、noopスケジューラとnoneスケジューラが全く別物なのネーミングにアレさがある"
- Anticipatory scheduling - Wikipedia
- Deadline scheduler - Wikipedia
- I/Oスケジューラを使う。
- ディスクI/Oスケジューラの設定 - 人生は、お天気いろいろ
- OSSはアルミニウムの翼で飛ぶ: RHEL I/Oスケジューラの変更
- I/O Schedulerをわかりやすくまとめる – Simple IT Life
- Deadline IO スケジューラーを使用する - Red Hat Customer Portal
- SSDの並列性を引き出すI/Oスケジューラに関する研究
- 【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた - Qiita
- Linux 2.6 カーネル ベースの仮想マシンでディスク I/O パフォーマンスが遅い (2094615) | VMware KB
- openSUSE 13.1: 第13章 I/O 性能のチューニング
- Fadisさんのツイート: "linuxのscsi-mqをデフォルトで有効にしようという提案がなされている。 scsi-mqが有効な場合SCSIデバイスに対するリクエストは従来のI/Oスケジューラではなく、フラッシュメモリが物凄く速い時代に合わせて新しく作られたblk-mqを通してデバイスに送られるようになる https://t.co/fGya5h7WOY"
- The Linux Kernel May Soon Default To SCSI MQ Mode - Phoronix
- Fadisさんのツイート: "ストレージがマルチキューかつ凄く速くなって、I/Oスケジューラをプロセッサごとに持ってロックしないようにしないと、カーネルで詰まってストレージの性能が引き出せないの、ハードディスクの時代に作られたスケジューラにとっては想定外もいいところな状況だ"
- Reading article about io.waight
エレベーターシーキング・コマンドキューイング
- 遅延書き込み - Wikipedia
- NetWare --- LAN普及の足掛かりとなった高速なネットワークOS | 日経 xTECH(クロステック)
- ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (1/3)|基礎から覚える 最新OSのアーキテクチャー
- SUSE+XEN で作るプライベートクラウドのハードウェア選びのポイント : isLandcenter 非番中
- CPUスケジューリング
システムコール
io_uring
Twitter
2021-02-24
001
- _ko1さんはTwitterを使っています 「@blackenedgold 前回の記事、へのリンクが 404 のようです。 それはともかく、とても興味深く拝見しております。 Rustよめないんですが、io_uring だとデバイスへの書き込み(時間かかる)への複数のリクエストをまとめるから速い、って結論なんですかね。というか、std毎回同期しないとこんなに早いってすごいですね」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 ありがとうございます、404修正します。多分5GBはOSのページキャッシュに載ってしまうのであとはメモリに書き出す速度の勝負で、仕組みが単純な分普通のwriteの方が速いのかなって思ってます。Linux 5.12でio_uringが速くなるらしいのでそこも期待ですね。」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold 確かに、ある程度ページキャッシュに載ってしまえば、io_uring とやること変わんないすね。C10Kだと、例えば socket read が multiplexing されるので変わるんですかねぇ。でも、スレッド 10K 個作ってもあまり変わらない気も(100K だと作れないで変わる)。」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 そうですね、本来io_uringは非同期化のためのAPIなので多重化で効いてくると思います。スレッドを使った実装との差分はパフォーマンス上かなり違うらしいです。 https://t.co/NH7piwnZpUの問題点」 / Twitter
- Linuxにおける非同期IOの実装について - Qiita
- _ko1さんはTwitterを使っています 「@blackenedgold あ、Posix AIO じゃなくて、コネクションごとにスレッド作るようなサーバ実装を考えていました。コネクションごとにオーバヘッドがかかりますが、中での IO はどうなんかなと」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 コネクションごとにスレッドを作るとコンテキストスイッチが重くてクライアント数が10Kくらいが限界になるから1スレッドで複数のコネクションを捌きたいというのがC10K問題じゃありませんでしたっけ。コンテキストスイッチの部分を抜いてIOだけに着目したら何が違うんだろうという疑問ですか?」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold コンテキストスイッチは重くないと思いますよ... と思うんだけど、どうなんだろ自信がなくなってきました。主に、生成・終了のコストが問題だと思っていました。プロセスコンテキストスイッチのオーバヘッドが、OSレベルでやるかユーザレベルでやるか。タイムスライスが邪魔といえば邪魔かな...」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 私もちゃんと測ったことないんですがスレッドの切り替えでレジスタやら何やらをsave/restoreしないといけないのでユーザランドでできるに越したことはないって聞きました。スレッドの生成と終了が遅そうなのはそうだと思いますが、それだけだったらスレッドプールで解決するはず…。」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold スレッドプールだと1万個のio read かけないんですよ」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold あ、固定長プールじゃなくて1万個プールできるってやつならいいのか。だいたい1mbメモリ食うので1万個で10gb、昔c10kが騒がれた当時だと、この辺もネックかもしれませんね(ページテーブル管理も」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 はい、現実的には1万個のスレッドを作るのは難しいと思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「スタックポインタ書き換えるとリターンアドレス予測がリターンする回数分だけ失敗する結果、遅くなるイメージだったけど、最近のIntelだと、そのあたり補う仕組みがあるんだろうか。たとえばsp変えたら普通の分岐予測使うとか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 c10k屋さんです。スレッドのコンテクストスイッチ遅くはないですが、スタック使用量と、スタック切替でreturn address予測が外れるのはちょっと痛いのかなと思ってます。c10k用途だと、リクエストあたりのバイト数がよほど小さくない限りはsyscallのオーバーヘッドは問題にならない印象なので...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 io_uringを使うメリットが一番あるであろうところは、メモリに載っていないかもしれないfile readが発生する場合だと思います」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold 独立した複数のって感じすかね Netflix?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 複数の何かがよくわかりませんが、cpuコアごとにスレッドたてて、スレッドごとにイベントループのかわりにio_uringまわす感じになると思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold netflixさんはレスポンスサイズ大きいし、レイテンシの問題ないし、io_uringの必要性薄いユースケースだと思います。というか、公開情報が正しければfreebsdでtcpのsendfileでカーネル内tlsしてるはず」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold ですよね(出先だったんですが、さっき自転車乗りながら違うなあと思ってた)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uringのインパクト、僕の理解が正しければ、第一に、従来のfile i/oは高速な非同期実装が難しかったのを、メモリにすでに載ってる場合も含めて高速に動くような解になってるところ。第二は、従来方式でsyscallのオーバーヘッドが相対的に大きくなる小サイズのi/oが頻発する場合に、それを隠蔽...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「できるところだけど、それが問題になるほど最近のcpuはネットワークと比べて遅くない(ことが多い)し、file i/oでディスクでブロックされるのはパフォーマンスガタ落ちになるので第一の点が大きいでしょうなぁみたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「h2oはファイルからコンテンツサーブする仕組みあるし、小サイズのi/oやらないこともないからio_uring対応してみたらいいんだろうなと思ってるけど、キャッシュに載っていないかもしれないファイルからコンテンツサーブするみたいな運用してる利用者がいるか問題ですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「dpdkやらないの?→やりません(メリットが薄そうだしユースケースが限られるから) netmapやらないの?→やりません(dpdkより良いけど以下同文) って感じできたけど、io_uringは、やってもいい気がするのよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「面白い。disk i/oで引っかかるケースでio_uringならレイテンシ隠蔽ができることと、引っかからないケースで通常のfile i/o並に速いことが読み取れるので、io_uring実用的という結論になると思う / https://t.co/sJT5k7PinK」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold 話があっちゃこっちゃいきますが、つまり C10K が最初問題視していた1万コネクションさばきたいって奴は、read 待ちの epoll で起きたときには、多分データ届いた後だから、io_uring でも大して違わんって感じですかね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold サーバ屋さんとしては、ネットワークをサチることができればそれでいいのですが、フルサイズパケット(あるいはTCPだと複数パケット分)ごとにi/oするようなケースだとepollベースでサチれるのでio_uringに移行するメリットがない。ただ、file readでディスク待ちが発生してると別、という感じです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold dnsとか、cpuをケチりたいルータとかだと話が変わるかもです」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold cpu usage って減りそうですか。仕様・実装知らないんですが、io_uring に登録した userland のバッファに直接 kernel が書き込めて、kernel -> user copy が減るとか?」 / Twitter
002
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold スレッドみたらC10Kがガイシュツだった...」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold system call が単純に read 分 1 個減るか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 減るんじゃないかなーと予想しています。コピーは早いし、特に小サイズのi/oにおいては差がでない気がするので、syscall自体のオーバーヘッドのほうじゃないでしょうか」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold I/O 回数が多いときにメリットありそうですね。 Meltdown & Spectre などで syscall が高価になったりもしてますし。個人的には C10K なネットワークサーバなどでの効果がより大きくなるんだろうなと想像しています。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold そうですね、僕は、syscallのオーバーヘッド削減については、上に書いたように、c10kなサーバでも、i/oサイズがMTUあるいはそれ以上のケースなら実用上のメリットは薄いと思っています。disk i/oを隠蔽できるメリットはc10kに限らず有用」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
- Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold ありがとうございます。ファイルI/Oで有用というのは aio に対して何か優位性見えますか? たんに非同期でよければ aio でもいい気がしますし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold aioはdirect i/oだから、キャッシュされていないデータ専用コードになりませんか(別の言い方をすると、独自にファイルキャッシュ実装する必要がある)。io_uring使うとbuffered i/oの良さとnon-blockingの良さの両方を手に入れられるんじゃないかと」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold あーナルホド」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「VMのdisk i/oは非同期だし、qemu側ではbuffered i/oにしたいこともあればdirect i/oにしたいこともあるだろうし、みたいに考えるとio_uring使うのは納得感強い」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold さいきんqemuのソース見たらio_uring+coroutineでシングルスレッド並列IOするような構造になってましたけど、大量のファイルをページキャッシュ経由で読んで配信する用途でもおなじようなアプローチをとったりすると確かにおいしそうですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold あーなるほどqemuのその使い方は面白い&納得感ありますね」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold qemu のどの辺で使ってるんです?」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold https://t.co/zgsnezYbtR」 / Twitter
- qemu/io_uring.c at master · qemu/qemu
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold インターンで実装したexperimentalなもので、広く使われてはいないと思います。」 / Twitter
- Stefan Hajnoczi: Coroutines in QEMU: The basics
- Kazuho OkuさんはTwitterを使っています 「今から素人みたいな質問します。select(2)ってfile i/oも非同期化できるの? できるような気がしてきた」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho QEMUで direct i/o にすることあるんかなと思ってたんですが、あるんですねぇ https://t.co/HBwpaosfq1 direct=on」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 いやむしろ、ハイパーバイザはdirect i/oするのが普通じゃないでしょうか? キャッシュはゲストOSの仕事なので...」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho 私の QEMU 感は guest os 用なので...(10年くらい認識が古そう)」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho 日本語が変だった。host os 上で実行する guest os のための virtual machine 基盤だったので...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 あーごめんなさい。使い方の差でなくて、ゲストのキャッシュから溢れたものをホストでキャッシュするのは効率が悪いので、qemuではdirect i/oしつつ(ホスト、ゲスト関係なく)OS毎のキャッシュ量の調整はbalooningで行うのが正攻法だと思ってますという」 / Twitter
- バルーンニング (ballooning)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- _ko1さんはTwitterを使っています 「@kazuho なるほどです。10年前は研究会でその辺どこでやるか色々議論されてた印象がありますが、あまり聞かないので、もう決定版があるんすかねー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーなんか二つの出来事を混同して覚えてたかも。Armのreturn address stackが有効に機能するようにしてv8高速化したっていうのは https://t.co/GiUjiNISrw で、一桁Cortexのあたりでreturn address stack深くしたのは別の話かな」 / Twitter
- Google's V8 on ARM: Five Times Better - Processors blog - Processors - Arm Community
003
- _ko1さんはTwitterを使っています 「@hasegaw @kazuho @blackenedgold なるほど https://t.co/MalfBOoFuf 元々 aio IO があって、そのバックエンドにするんですね(元々はそういう hardware emulation とかで使うのかな)」 / Twitter
- qemu/file-posix.c at 1ed9228f63ea4bcc0ae240365305ee264e9189ce · qemu/qemu
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold やってることは、ゲストOSに見せたSCSI/IDE/virtioデバイスからのIO要求がpwritev/preadvみたいなもので、同時に複数の要求がきたりするので、それをIOスレッドが実際にさばいて制御を戻す(完了通知を返す)感じです。」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold coroutineで実装されてるのをみてうまいなあと思いました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 僕的はqemuがコルーチン使ってるの知らなかったので面白かったです(使うと楽になるタイプのソフトウェアだし、そこまでパフォーマンスにシビアなソフトでもないので使うのは妥当だと思う)」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold 複数のIO要求が同時にきたときに、並列にバックエンドに要求をなげつつ、はやくおわったものから順に返事を返すってワークロードには向いてるんですよね。kazuhoさん的にはコルーチンだとオーバーヘッド気になるという感じですか?スレッドよりはいいのかなというぐらいに思ってました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 分岐予測がらみのオーバーヘッドがあるという認識ですが(cf. https://t.co/WqYccnpLfu)、それほど問題になるものではないとも思います。実際のところ、特定のコルーチン実装に縛られて良いなら、いろんなものをコルーチンで書くことで工数削減できそうな気もしています」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold 比較対象ってイベントループですかね?(スレッドじゃなくて / スレッドだと同じ問題ありそう) 考えたことなかったけど、どれくらい効くのかなhttps://t.co/meyIVHI0SS」 / Twitter
- assembly - how to clear return stack buffer in x86 or x64 - Stack Overflow
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold はい。比較対象はイベントループですね。スタック差し替えるとreturn address predictionが全滅するでしょうから、切り替え直後にreturnを連発するようなケースだと悲しいことになりそうな気がします(まあ言っても分岐予測外れるだけですが)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold 関連する文脈で言うと昔のarmはreturn address stackが3スロットくらいで、それがJavaScript VMの速度低下の要因になってたみたいな話があったと思います」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold みんな main に書いてたんですね!!1」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold いまはsubroutineの話はしてないですしね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「文脈としては、大抵のファイルはページキャッシュに載ってて、そいつらを読む場合 io_uring_submit 呼んだ瞬間に読み込みが終わる。CPUのキャッシュの局所性の観点から言うと、この特性つかって一度に走る読み込みの数を減らすのが重要。だからコードのパスが分かれる。で、スローパスのテストをしたい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uring でファイル読み込みが同期的に終わらない場合のテストって、どう書けばいいんだろ。ローカルマシンなら drop_caches すればいいけど、CI だと無理だし、キャッシュ溢れるほど書きたくはないし。 O_DIRECT でテストファイル作ったらうまく行くかな?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uring、ファイルI/Oを軽量なノンブロックにできるのは明確なメリットだけど、システムコールの数が減るという点については並走するread/writeが増える結果メモリアクセスの局所性が下がるというトレードオフの関係があるので、一概に速くなるとは言い難いという理解」 / Twitter
- io_uringを使ってみた
- 2020年12月15日 2020年最後のリリース「Linux 5.10 LTS」が登場:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年5月7日 Linux 5.1がリリース,新しい非同期I/Oインタフェース,2038年問題対策など:Linux Daily Topics|gihyo.jp … 技術評論社
- 「Linuxカーネル5.1」リリース、非同期I/Oインターフェイスなどが導入される | OSDN Magazine
- io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog
- io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
- mumumuさんはTwitterを使っています 「Improving Network Connection Locality on Multicore Systems [EuroSys '12] 局所性向上のため,各コネクションが特定のコアにのみ紐づくようにLinuxのaccept()などの実装を変更.Kernelに一つだったデータ構造をPer-coreにでき,ロックの面でスケーラビリティも向上. https://t.co/Yb9zUrVsof」 / Twitter
- pesterev-multiaccept.pdf
- fork, select, poll, epoll, io_uringのecho server - suzuzusu日記
- Linuxシステムコール徹底ガイド | プログラミング | POSTD
- チュートリアル – システムコールの書き方 | プログラミング | POSTD
- int 2E/sysenter/syscall考察 | 毛流麦花
- Livaさんのツイート: "int命令のoperationと比較すると一目瞭然だった。(長すぎるので画像略) https://t.co/Jq2CehnsvG"
- СЮУ1228さんのツイート: "フラットメモリモデルしか考慮に入れないとか、割込デスクリプタ参照したくないとか、スタックに積まないで退避用MSR増やしちゃえとか、いかにも最近の考え方でそもそもx86はそういう前提ではないと思うし設計時期が違うからということなのでわ https://t.co/uBJtlPhmX8"
- Anatomy of a system call, part 2 [LWN.net]
- 品川 高廣さんのツイート: "SYSENTER は Intel の命令で SYSCALL は AMD の命令。IA-32 は Intel が決めたから、Intel は SYSENTER しかサポートしない。AMD は SYSENTER と SYSCALL を両方サポートする。反対に x64 は AMD が決めたから、AMD は SYSCALL しかサポートしない。Intel は SYSENTER と SYSCALL の両方サポートする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "同じLinuxのシステムコール呼び出しでも、sysenterはint80に比べて圧倒的に速い原理は、後者は全レジスタ退避&復帰が必須だから、みたいな話でいいのかしらん?"
- FadisさんはTwitterを使っています 「Linuxに新しいシステムコールreadfileが入りたがっているらしい。readfileはファイルをopen、バッファ分だけread、closeを1回のシステムコールで行う。小さいファイルを大量に読む状況でシステムコールの回数が減るため、システムコールが安くない場合性能の向上が期待できる https://t.co/eSNFaUyZhV」 / Twitter
- New readfile() System Call Under Review For Reading Small~Medium Files Faster - Phoronix
- epollで作るチャットサーバ | κeenのHappy Hacκing Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32 に io_uring的な API が増設されたらしい。 (だがあまり情報が無い) I/O Ring https://t.co/KFZa5SIR8s https://t.co/ZacNppiYmU」 / Twitter
- ioringapi - Win32 apps | Microsoft Docs
- I/O Rings – When One I/O Operation is Not Enough – Winsider Seminars & Solutions Inc.
UBD
- FadisさんはTwitterを使っています: 「Linuxカーネルにブロックデバイスに対するリクエストをユーザ空間のデーモンで受け取って処理できるようにするドライバUBD(User-space Block Driver)が入りたがっている話。Linuxには既にファイル操作をユーザ空間のデーモンで受け取るFUSEがあるが、そのブロックデバイス版 https://t.co/xgKqe97u1L」 / Twitter
- Experimental "UBD" Driver Posted As IO_uring-Based User-Space Block Driver - Phoronix
- FadisさんはTwitterを使っています: 「FUSEは当初リクエストの度にカーネル空間とユーザ空間を行き来することによるオーバーヘッドが悩みの種だったが、FUSEがio_uringを使えるようになった事でこの問題は克服されつつある。io_uringがある時代に作られたUBDは最初からio_uringでリクエストとレスポンスを受け渡すようになっている」 / Twitter
- FadisさんはTwitterを使っています: 「UBDのデーモンはio_uringにIORING_OP_URING_CMDを流してカーネルに新しいリクエストを要求する。カーネルはブロックデバイスにリクエストが来るとIORING_OP_URING_CMDに対するレスポンスとしてそのリクエストを返してくる。デーモンはリクエストを処理し、結果をIORING_OP_URING_CMDでカーネルに返す」 / Twitter
- FadisさんはTwitterを使っています: 「つまり昔Webで使われたCometのようなノリで、デーモンを常にレスポンスを待っている状態にする事でio_uringに通常と逆向きでリクエストとレスポンスを流す。デーモンは複数のリクエストを同時に捌けるならIORING_OP_URING_CMDを複数同時に待っても構わない。個々のIORING_OP_URING_CMDはIDで識別される」 / Twitter
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTカーネルには、バッファI/O、ダイレクトI/O以外に、ニーザーI/Oというものを知った。 もう少しネーミングに工夫が出来なかったものか(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験の結果、デバイスの占有率と速度変化、SSDだと比例するのだが、HDDだと書き込み速度の下がり方は占有率数分の1だった。 ダイレクトI/Oとはいえ、HDD内のwriteキャッシュが有効なので、さもありなんという結果ではあるが、どうするかな。… https://t.co/H4OvSkJWT8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SSD/HDD識別に https://t.co/kt1N4L0Tce にある、IOCTL_ATA_PASS_THROUGHが紹介されていてadmin不要と書いてあるが、PhysicalDriveをGENERIC_WRITEで開く必要があり、事実上、admin必須なので候補から除外。"
- SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのスピードスライダ改良(使っている人、どれだけいるのだろう?)、完璧とは言えないが、まあこんなものかな?というレベルにはなった。 転送時間とsleep時間の比率をベースに、SSD/HDD/ネットワークを識別して、パラメータ調整するイメージ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "RAIDになると、バックエンドの物理HDDが複数となる場合があり、同一判定でも常にシーケンシャルアクセスが良いかというと、そうでもない場合もありそうで、そのためにデバイス毎の上限アクセス数設定(デフォルト:1)があった方が良い?と思うことも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)がマウント時に、自分自身の暗号ボリュームファイルに対して、 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS を発行して覚えておけば良いだけなのだが…あまりニーズが無いということかしらん。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)で、FastCopyが同一HDD判定を間違う、という報告が来るが、 VeraCryptが IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS ioctl に常に0を返す挙動のため。 https://t.co/kdemtBfCkR"
- FadisさんはTwitterを使っています: 「昔: 皆がストレージにバラバラ書くと性能が出ないから読み書きはカーネルに投げろ、カーネルがスケジューリングする 今: カーネルがスケジューリングすると貴重なCPUを浪費するからストレージにそのまま投げろ、スケジューリングはストレージのコントローラがする」 / Twitter
- mumumuさんはTwitterを使っています 「Small is Better: Avoiding Latency Traps in Virtualized Data Centers [SoCC '13] vCPUやパケットキューにおいてShortest Remain Time Firstなスケジューリング(処理時間が短いパケットを優先する等)により,ホスト側だけの工夫でDCにおけるNWレイテンシを削減する研究 https://t.co/7YQCVjfpnh」 / Twitter
- socc13_final.pdf
- mumumuさんはTwitterを使っています 「I/O Scheduling Model of Virtual Machine Based on Multi-core Dynamic Partitioning [HPDC '10] DomのIOを監視してIO-boundな場合高頻度にコンテキストスイッチするFast-tick,ドライバDomはDriver,その他はGeneralという3種類に分類.それぞれに専用の物理コアを割り当て.https://t.co/MefZs06FEY」 / Twitter
- I/O scheduling model of virtual machine based on multi-core dynamic partitioning | Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing
- FadisさんはTwitterを使っています 「Linuxは2次記憶を操作する際にその内容を表すbio構造体を作ってブロック層に要求を投げるが、2次記憶が文字通り桁違いに速くなった結果、bioをslabから確保、破棄するオーバーヘッドがI/Oの性能を落とす原因になり始めた。そこでCPU毎にbioのpoolを作るようにした、という話 https://t.co/ZhAupnyue9」 / Twitter
- Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する - hibomaの日記
- 「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録 - GIGAZINE
- Linux:昨今のI/Oスケジューラ事情 2020 | SlackNote
- I/Oスロットリング - Google 検索
デバイスドライバ
その他
UIO
- 組み込みの人。さんのツイート: "LinuxのUIO (Userspace I/O)を試しているのだが、カーネル内のドキュメントが2006年から更新されてなくて、現状と食い違っててつらい。"
- まさみさんは語りたいさんのツイート: "他のドライバのフレームワークと比べてUIOの場合厄介なのは、それを使うサンプルコードとなるドライバが、カーネルに含まれていないってことなんだよな。"
- UIO(User space IO)の割り込みの使い方の例 - Qiita
- [Linux] User I/O | archmemo
- LinuxのUIO(User space I/O) その1 - Qiita
- LinuxのUIO(User space I/O) その2 - Qiita
printk
- まさみさんは語りたいさんのツイート: "Linux kernelのprintkで出力されるアドレス、%pを使うと暗号化されて出てくるようになってるけど、これを一元的に止める方法ってあるんだっけ?"
- このコード、オシャカルトっ!さんのツイート: "@mhiramat /proc/sys/kernel/kptr_restrict を0にするっぽいです。"
- まさみさんは語りたいさんのツイート: "謎だな、%pxにするとリークしちゃうというのは分かるから、%pKにするのが正解なのか。"
- まさみさんは語りたいさんのツイート: "んー?kptr_restrictが0でも、%pKを使うとハッシュ値しか表示されないんですがこれは。"
- まさみさんは語りたいさんのツイート: "わかったこと ・printkで%pだけを使うと常にハッシュ値が表示される。 ・%pKを使うとkptr_restrict=1の時だけsysadminには表示され、0のときはハッシュ値になる。 ・vsprintf.cのプログラムはこの辺りの処理が適当に書かれている。"
- まさみさんは語りたいさんのツイート: "何が適当かって言うと、%pKの処理でkptr_restrict=1の時の処理が2重に書かれていて、通らない方の処理が残ってしまってるんじゃー!そしてそっちの方ではkptr_restrict=0の時には常に表示される、って設定になってる。 惑わされたわ。"
- まさみさんは語りたいさんのツイート: "ああ、今最悪のblame結果を得た。通らない方の処理の方が先に書かれていて、その6日後のコミットで通る方が追加されているけど、追加したのはLinusだ。"
- まさみさんは語りたいさんのツイート: "あー、理解した。%pKやめようぜっていう話なのか。基本的にkptr_restrictedは削除する方向になっているらしい。"
- まさみさんは語りたいさんのツイート: "多分KASLRがあるためなんだけど、絶対アドレスでカーネルの内部を表示することは基本的にありえないっていうことになるようだ。"
- まさみさんは語りたいさんのツイート: "デバッグ用途では未だ必要な気がするんですがそれは・・・。"
- まさみさんは語りたいさんのツイート: "printkの%pKの処理を修正しようと思ったけど、Linusのパッチコメントでkptr_restrictが否定されていたので投げる気にならない。 というか、どうすればいいんだ?? https://t.co/Rsj5wJ95MP"
- まさみさんは語りたいさんのツイート: "%px使えってことなんかな?"
- まさみさんは語りたいさんのツイート: "printkの端的な理解を得た。 https://t.co/g6qGem5U1M ・%pxどころか%pもホンマはあかん。意味ない。使えんインタフェースをわざと残すことで、再考して欲しいんや。 ・そもそもホンマにカーネルのアドレスを教える必要なんてあるんか?よう考えてコーディングせい"
- まさみさんは語りたいさんのツイート: "あとはkallsymsは何故特例として残されたか、が気になる。kprobesで比較するのはkallsymsだから、これと同じように扱われて欲しい。"
- まさみさんは語りたいさんのツイート: "kallsymsはkptr_strictよりも少しきついだけの仕組みなんだけど、これを参考にしたほうがいいのか、%pKを使うべきなのか?"
- まさみさんは語りたいさんのツイート: "ごめん、これは間違い。%pKも推奨されない。どうしても必要なら良いけど、基本的にはアドレスをポンポン表示しないこと、らしい。"
- まさみさんは語りたいさんのツイート: "一応 %pの修正シリーズ出しておいたけど、4.14でどうなってたっけな?おかしかったらバックポートしないと・・・。"
- まさみさんは語りたいさんのツイート: "しかし未だにprintkの%pをどうするべきかが良く分かっていない。今のままだとインタフェースとして意味がないから、なんとかしないといけないんだけど、うーん・・・。"
- まさみさんは語りたいさんのツイート: "ふむむ、kptr_restrictはkallsymsがアドレスを隠す仕組みとは全く関係ないっぽいな。これはややこしい。"
- まさみさんは語りたいさんのツイート: "LKMLを追いかけて理解した。 - %pは既にアドレスを表示しないようになっている(ハッシュ値) - %pxを明示的に使うことが必要だが、これ以上は必要でなければ使ったら警告される - %pKにすること。"
- まさみさんは語りたいさんのツイート: "kallsymsはkptr_restrictが有効でなくても%pKと同じ動作をするようになってる。"
- まさみさんは語りたいさんのツイート: "むしろkallsymsの方にスタンダードを併せて欲しい(笑)"
- まさみさんは語りたいさんのツイート: "結局kallsymsと同じように振る舞うコードを書いて投げてみた。そのまま通ればそれでいいし、議論になったらなったで今後どうするつもりなのかを確かめてから修正する。"
- まさみさんは語りたいさんのツイート: "それ既にLinuxでは削除しようかみたいな流れになってる。代わりに%pはハッシュ値になる。オプションではなく強制。アドレスをどうしても出す場合、%pxを使うことになるが、ダメコードとしてマークされる可能性が。… "
LinuxBoot
- Fadisさんのツイート: "LinuxBoot: 「どうしてOSにドライバがあるのにUEFIの為にまたドライバを書かないといけないの?」に対するパンチの効いてソリューション。UEFI PEIの上でLinuxカーネルというファームウェアを動かしてLinuxのカーネルドライバを使ってOSを起動できるようにしよう、というもの https://t.co/e6XcY1J1qS"
- LinuxBoot
- Ryou Ezoeさんのツイート: "ちなみに推進しているのがGoogleという時点でお察し。… "
- Ryou Ezoeさんのツイート: "すでに、デバイス上に転送して使うファームウェアブロブ以外すべてLinuxカーネルにしようというCoreboot、あらゆるブロブを廃止しようというLibreboot/Librecoreがあってですね。今回のはブロブを許容した上でLinuxカーネルを動かそうという試みで自由から一歩遠ざかっている。… https://t.co/6uVPlBJ1ZJ"
- suzakiさんのツイート: "私は全てのNICにiPXEをインストールしてほしい。https://t.co/pqlREbcUn2 これがあれば、HTTPSでLinuxが起動でき、危険なTFTPブートを使わなくて済む。【宣伝】私が作っているBare-Metal ContainerではiPXEを使って任意のDockerイメージにLinuxカーネルをつけて、起動できますhttps://t.co/8udmvyyAu2… https://t.co/5EnFZdRJya"
- iPXE - open source boot firmware [start]
- baremetalcontainer/bmc: BareMetalContainer
NERF
- Google Even Fear Intel ME, Reduce Their Attack Vector With NERF - Phoronix
- more on Google NERF | Firmware Security
- NERF - Trammell Hudson's Projects
- なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE
- 第559回 デバイスの認識をモニタリング・コントロールできる「udevadm」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- スフォルツァートのネットワークプレーヤーがLAN DAC機能に対応 - PHILE WEB
- DeviceTree: The Devicetree Specification
- devicetree-org/devicetree-specification-released: Released versions of the Devicetree Specification
- Virtual I/O Device (VIRTIO) Version 1.0
- io386: tool wrapping around ioperm(2), iopl(2), outb(b), etc. | Firmware Security
- groeck/lm-sensors: lm-sensors repository
- start [HWMon Wiki]
- HID over I2C | Microsoft Docs
- ConexantのドライバをアンインストールしてPCのイヤホン出力を改善
- XMODEM Protocol Overview
- レガシーフリーOSに必要な要素技術 legacy free os
- FreeBSD Press No.12 NetBSD column デバイスドライバにありがちなi386依存の罠
- Kazuho OkuさんはTwitterを使っています 「わかる。上のレイヤで冪等性担保する仕組みがあると、下はすごい楽になる。レイテンシの低い冪等性(再送)アルゴリズムの設計と実装、すごく難しい(楽しい)んですけどね」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「virtio ドライバを実装していたときに思ったけどネットワークとストレージだったら後者のほうが難易度高い。TCP/IPネットワークはパケロス前提でOSが再送するけどもストレージは要求に対して応答が返ってくることが前提だからな。冗長化していても発生する問題を回避できる技術があったらきっと稼げる」 / Twitter
- Rustを使用して安全で正しいLinuxカーネルドライバーを作成
ストレージ
SATA
AHCI
- Advanced Host Controller Interface Specification
- AHCI - OSDev Wiki
- AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
- AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
- 5/1 自作OSもくもく会さんのツイート: "ICH8/9のSATAコントローラは、クラスコードは01h固定だが、サブクラスコードはIDEモード(01h)とAHCIモード(06h)で値が変わるようだ。"
- AHCI capability - 総本部日誌
- Microsoft Word - dg_sataahciip_refdesign_jp.doc
- Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc
- Reconf 201506
- AHCI奮闘記 - 初期化編 - 無限遠まで突撃中
- AHCI奮闘記 - Read/Write編 - 無限遠まで突撃中
ATA-ACS
- AT Attachment 8 - ATA/ATAPI Command Set
- AT Attachment 8 - ATA/ATAPI Command Set
- AT Attachment 8 - ATA/ATAPI Command Set
- ATA Command Set - 4 (ACS-4)
- ISO/IEC 17760-102:2016(en), Information technology — AT Attachment — Part 102: ATA/ATAPI Command set - 2 (ACS-2)
- HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
- ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)|あなたの知らないWindows
- 【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その1 - PC Watch
- 【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その2 - PC Watch
- T13
- Home - INCITS
- Untitled Page
- ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)|次世代Windowsの姿が見えた!
- 【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
忘却の彼方
- 忘却の彼方: DEVSLP(Device Sleep)機能とは
- 忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
- 忘却の彼方: SATA LPMの設定方法
- 忘却の彼方: SATA LPMって知ってますか?
- 忘却の彼方: SSD/HDD用ベンチマークソフト「TxBench」
- 実績:ベンチマークソフトウェア TxBENCH|株式会社テクシム ソフトウェア開発・販売
S.M.A.R.T
- S.M.A.R.T 情報
- CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
- USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
- Seagate SMART Attribute Specification
- S.M.A.R.T. is SMART! 各社対応編
- HDDのS.M.A.R.T情報を取得する(UsefullCode.net)
- 世界基準を作った男。「CrystalDisk」シリーズの生みの親“ひよひよ氏”直撃インタビュー - エルミタージュ秋葉原
SecureErase
- 忘却の彼方: Linuxを使用したSecureEraseの手順
- 忘却の彼方: Crucial M500/M550/MX100とSecure Erase
- 一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
- ALL about Linux: SecureErase を実施してみた
- ALL about Linux: SecureErase のために frozen 状態を解除する方法
- ALL about Linux: 中古 SSD の SecureErase
Wikipedia
- Self-Monitoring, Analysis and Reporting Technology - Wikipedia
- S.M.A.R.T. - Wikipedia
- Aggressive Link Power Management - Wikipedia, the free encyclopedia
- シリアルATA - Wikipedia
- Serial ATA - Wikipedia, the free encyclopedia
- Serial ATA International Organization - Wikipedia
- 情報技術規格国際委員会 - Wikipedia
- International Committee for Information Technology Standards - Wikipedia
- ハイブリッドHDD - Wikipedia
- Hybrid drive - Wikipedia
- ソリッドステートドライブ - Wikipedia
- Solid-state drive - Wikipedia
- シングル磁気記録方式 - Wikipedia
- Shingled magnetic recording - Wikipedia
- DevSlp - Wikipedia
- Trim (computing) - Wikipedia
- Native Command Queuing - Wikipedia
Twitter
- ✿せかいの底のゆるふぁ✿さんのツイート: "双子のVirtualBoxとVMWareのお話🐤"
- ✿せかいの底のゆるふぁ✿さんのツイート: "ideのディスク0にハードディスクを構成、ディスク1はデバイスなし🐤 https://t.co/gZtnRd4pNU"
- ✿せかいの底のゆるふぁ✿さんのツイート: "一方で、VMwareのEXECUTE DEVICE DIAGNOSTICの結果🐣 https://t.co/QhFQuxSl0f"
- ✿せかいの底のゆるふぁ✿さんのツイート: "両方ともデバイス1がありませんが、各レジスタ-の戻り値が違いますね🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "つまり決定性がないように見えます🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "これをどうやってデバイス1がないことをdetectするのかが問題です🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "答えはATAの仕様に記述されています🐣"
- Purchase SATA Specification | SATA-IO
- 20100521170123066.pdf
- dwm013300770.pdf
- SATA hardware features - ata Wiki
- HDD が AV コマンド対応か調べたい: ひでのブログ
NVMe
Twitter
mariadb
- Takeshi HASEGAWAさんはTwitterを使っています 「MariaDB 10.5 の性能は不正? - DB改造屋雑記 https://t.co/PMjdfnxU67」 / Twitter
- DB改造屋雑記: MariaDB 10.5 の性能は不正?
- FadisさんはTwitterを使っています 「mariadbの話みてふとSPDKのNVMeドライバのflushの実装が「デバイスに何もしないで成功を返す」っていう最高にロックな実装だったのを思い出して、今は直ったのかなと思ってみたら相変わらずロックで安心した https://t.co/0Hz3CbBqm4」 / Twitter
- spdk/bdev_nvme.c at 90db6167ce6331bcb9c93abd05c0999d3d834726 · spdk/spdk
- FadisさんはTwitterを使っています 「NVMeのWRITEはデバイスによってはコントローラが要求が受け付けた時点で成功が返るので、FLUSHを呼ばないとWRITEした内容が永続化されている事が保証されない。Linuxカーネルのドライバはflush時にきちんとFLUSHしてて、SPDKのドライバのflushは虚無だったから、SPDKが圧倒的速く見えるという…」 / Twitter
histric-1
- Fadisさんのツイート: "SATAのHDDは最大32個のコマンドを積めるキューをデバイス側に持っている。複数のコマンドを予約しておく事で、デバイスはより効率よくディスクを読み書きできる順にコマンドを並び替えて実行することができる。32個という上限は効率良くヘッドを動かす目的では十分な効果を発揮する長さだった"
- Fadisさんのツイート: "しかし大量の不揮発メモリに一斉にアクセスできる時代にこのキューは短すぎる。そこでNVMeでは65536個のコマンドを積めるキューを最大65536個デバイス側に持てるようになっている。キューが複数になったことで個々のプロセッサは他のプロセッサがキューを操作する可能性を考慮する必要がなくなる"
- Fadisさんのツイート: "ストレージが極めて高速な時代にその性能を生かすにはできるだけドライバに仕事をさせないことが重要とされている。NVMeではハイパーバイザがゲストにNVMeストレージの一部を見せる際にソフトウェアによる変換を行わなくて良いように、ハードウェアによる仮想化支援が規格化されている"
- Fadisさんのツイート: "NVMeの仕様凄すぎて「SATAがおもちゃのようだ…」っていう感想が無限に出てくる"
- satさんのツイート: "SSDならI/Oスケジューラが邪魔って話は結構有名でnoopにしようって書いてあることもある。ただしそうすると高I/O負荷状態で特定I/Oリクエストが永久に発行されない問題があるので結局SSDはdeadlineがデフォ。最近はBFSが出てきたが、評価してない。あとこれNVMe SSDだとBFSはどうなるんだろ"
- ゆるsyuu1228△さんのツイート: "そういえばNVMeってMQ NICみたいに仕様上はマルチキュー対応してMSI-Xでキュー毎にIRQ持てたはずだけど現物はそうなってるかなぁ、と思って/proc/interruptsみたら確かに割り込みが複数見えるし割り込み先は各CPUに分散されてる https://t.co/ECuH6VTbJN"
- nvme-interrupts.txt
- 中村 実さんのツイート: "NVMeの仕様はInfiniBand & OpenFabricsの仕様を大いに参考にしていると思われます。… "
- <4D6963726F736F667420576F7264202D2081A18E9197BF34322D312D32814088CF88F589EF95F18D902E646F63>
- satさんのツイート: "(そこでSPDKですよ)"
- 中村 実さんのツイート: "似ているというか、最初のNVMe仕様書を読んだ時は、用語の選び方や説明の仕方がInfiniBand仕様書にそっくりだと思ったものです。… "
- satさんのツイート: "SSD、とくにNVMe SSDくらいだとソフト(カーネル)でI/O発行前に一旦溜めてゴニョゴニョしてる間にI/O発行して制御返ってきますので"
- satさんのツイート: "具体的にどんな問題かというと例えばデバイスの尻の方にI/O一発出してからデバイスの頭の方に無限にI/O出すと 1. 前半のI/Oがブロック層でマージ/ソートされる 2. 一定数溜まるとドライバに渡される が延々と繰り返され、最初のはずっと残る。細かい条件は覚えてないけど、だいたいこんなん"
- Takeshi HASEGAWAさんのツイート: "NVMはインターフェイス決めたものなのでそれをどう捌けるかはコントローラの問題なんだよな。はやくioDriveにあらゆる視点で勝てるデバイスでてほしい。"
- Takeshi HASEGAWAさんのツイート: "Fusion-ioはCPU側でFTLまで実装してしまって、FPGAにあるのはフラッシュメモリへの転送を行うDMAコントローラやECC機能とかだった。OSのブロックレイヤを迂回するために各種小技を使っていた(場合によってはiostatが正しい報告をしなくなり、カーネルによってはunplug bug発生させたりもした)"
- Takeshi HASEGAWAさんのツイート: "DDR2やDDR3のメモリ、2GHzのマルチスレッドプロセッサがホストにあるのなら下手に組み込みプロセッサでFTLするより早いだろ?という発想の作りだった。バス幅もクロックも高いし組み込みプロセッサの放熱なども考えなくていい。いま思い出してもいかにシンプルか‥知識が増えた今の方がやばく感じるな"
- Takeshi HASEGAWAさんのツイート: "ここ一年でioMemoryの代わりに最新のNVMe評価したエンジニアが「ioMemoryのほうが速かったですね」とコメントしたという件を聞いて頭を抱えた。なんで2013年に設計されたioMemoryが実アプリでの性能評価で最新NVMeに勝ってしまったのか。がEOLになったいま、マジでioDrive麻薬が切れようとしている。"
- Takeshi HASEGAWAさんのツイート: "75W消費し、カタログスペックの帯域幅倍近く差をつけられたHuaweiのカードに対して21W設計のioMemory SXが勝っちゃってお客さんに採用されたときも驚いたけどな。「もうさすがにFusion-ioの時代終わっただろ」と思ってパフォーマンスデータみるとケースによっては、かなり健闘していて、正直、びびる。"
- satさんのツイート: "noopはたしか - 基本的にはFIFO - ソートはしない - キューの先頭に対してだけはマージしうる なので、似たような場所にI/O出しまくってると永久にマージされ続ける(ある程度溜まったらドライバに渡される)、という話だったと思います。たぶん。 大昔のlinus elevatorはソートもするのでもっと悲惨… https://t.co/WZeoK8XzAR"
- Takeshi HASEGAWAさんのツイート: "私自身もioDrive2と某ストレージの比較したら、ioDrive2のほうが速くなっちゃって、あわててベンチマークのメトリック変えたりしたけどね。そのままじゃシナリオ通りにならなかったのでホスト側のバッファ絞って、リード帯域幅がより出せる最近のストレージにあわせてioDrive2より速くなるようにした"
- satさんのツイート: "これちょっと訂正。マージはするけどソートは無し。いにしえのI/Oスケジューラと混じってた"
- Fadisさんのツイート: "NVMe「プロセッサごとに割り込みを用意して効率よくコマンドの完了を通知… SPDK「割り込みなんて時間かかる処理いらねぇ! 俺はCPUをビジーループさせてデバイスをポーリングするぞ!」"
- Fadisさんのツイート: "DPDKもSPDKも他のプロセスにCPUを譲る気ゼロでお前らなんでOSの上で動いてんの感満点である"
- Fadisさんのツイート: "NVMeの仕様見てたら、デバイス側のメモリをホストのメモリ空間にマップして読み書きするデータを直接そこに書き込む拡張、とかあって「アッこれGPUでやったやつだ」ってなった。イマドキのストレージはそこまでするのか…"
- まさみさんは語りたいさんのツイート: "GPUから直にNVMe読み書きすることもできると聞いた。… "
histric-2
- Fadisさんのツイート: "NVMeのストレージ、取り付けたPCが起動していた時間と、正しい手順を踏まずに電源を落とした回数がデバイスに記録されてるwww"
- Fadisさんのツイート: "従来のストレージだとSMARTとかでやってたのがNVMe自体の規格に取り込まれてる感じなのかな"
- Takeshi HASEGAWAさんのツイート: "レジスタがあるはず。… "
- Fadisさんのツイート: "ありますねー https://t.co/Bx6AUA0gzf… "
- SPDK: spdk_nvme_health_information_page Struct Reference
- Fadisさんのツイート: "NVMeのCMBを使うと、あるLBAにあるデータをCPU側のメモリに持って来る事なく別のLBAにコピーすることが出来るわけで、ファイルシステムは連続した領域を確保するために積極的に保存されているデータを移動させる事も選択肢に入れるべき状況になってきてる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "半導体メモリ系で、連続領域確保の必要性が良く判らない…ブロック(or ページ)未満のフラグメントの話なのかな? 話は飛んで NVDIMM-P。内部のDRAM - 不揮発メモリ間の転送=ページアウト・イン的な動作時に、CPU側のメモリバス帯域を汚さないだろう点に興味があったり。… https://t.co/kLlmmOokle"
- Fadisさんのツイート: "昔流行ったioDriveと比較して最近のSandiskのNVMeは秒間にさばけるコマンド数では勝るけど1コマンドあたりのレイテンシでは負けてて、NVMeは性能を活かすにはFSやアプリケーションのレイヤーで「IOの完了を待つな」「できるだけ沢山のリクエストを受け付けてキューに積め」を徹底する必要があるげ"
- Takeshi HASEGAWAさんのツイート: "ただ実際のところアプリケーションの動作としてキューに詰めて仕掛り状態で並列に実行できるものなら、という条件がつくんだよね。マイクロ秒の持ち時間で複数スレッドの行更新を調停し、真面目に見たら並列実行できないクエリをグループコミットするアルゴリズムなどで賢くしていくしかないのでは?"
- Takeshi HASEGAWAさんのツイート: "なんでNVMe SSDがそんな方向に進化しているかって、そりゃみんな GB/s とか MB/s とか IOPS とかって所に書かれてる大きな数字が好きだろ?"
- Fadisさんのツイート: "古典的なゲーム屋さんが燃えるタイプのマゾデバイスだこれ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの非同期I/Oを多用した仕組みに時代が追い付いてきた?… "
- syuu1228さんのツイート: "Scylla、まずSSDベンチマーク走らせてIO並列度いくつまで上げていいか計らないとDBの起動が許可されないようになっておる https://t.co/6UBEIFH1D8"
- syuu1228さんのツイート: "ほぼ初期からこうなので何の疑問も抱いてなかったけど冷静に考え直すと鬼畜仕様っぽいな https://t.co/qK2c9czbi6"
- Takeshi HASEGAWAさんのツイート: "NVMe SSDとioDriveの比較DBベンチマークの取り方の一例。NVMeを強く見せたいなら、システムメモリに収まりきらないDBサイズでOLTP負荷をかければ、読み込み帯域の差で、新しい世代のNANDが載ったNVMeが勝つ。ioDriveを勝たせたければ、メモリに収まるDBサイズでロギング性能勝負にするとioDriveが勝つ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVMe(EVO960 1TB)内でファイルコピーする際、readとwriteを並列発行するのと、交互発行(read完了してからwrite発行)するのでは、2倍近く後者が速い不思議。 (DirectI/O + 1MB非同期I/Oを20個キューイング、Win10) HDDみたいな結果に。 (2.5インチSSDドライブではほぼ速度差なしだった記憶)"
histric-3
- Fadisさんのツイート: "SPDKでSandiskの速いNVMeに直接writeを投げてみたら、1ページの書き込みでおよそ10μ秒とかいう計測ミスってんじゃないかって思うような時間で応答が返ってくる ._."
- Fadisさんのツイート: "あっ、このデバイスVolatile Write Cacheがついてる。だから書き込みが読み込みより早く返ってくるのか"
- Fadisさんのツイート: "spdkのblobstoreさん、デバイスのvolatile write cacheに載ってるデータのflushを行う手段が無いの渋い"
- Fadisさんのツイート: "/dev/zeroのスループットが何故か1GB/sくらいで頭打ちになってnvmeから0をreadしたほうが性能が出るの、どうしてそうなった…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "bs=1M とかにしてみては?… "
- Fadisさんのツイート: "bsをいろいろ変えて試してるんですが、1GB/sくらいで頭打ちになってるようなんですよ(if=/dev/zero of=/dev/nvme0n1でifをキャッシュに乗っているファイルにした場合もっと出る)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 if=/dev/zero of=/dev/zero bs=1M だと1コアをsys側で使い切った上で、1GB/sとかですか?… "
- Fadisさんのツイート: "ほとんどsysですね… "
- Fadisさんのツイート: "ただ コアを使い切って はいないようです。sysが60%くらいuserはほぼ無しで安定してます… "
- Fadisさんのツイート: "あ、読み間違えてました、両側zeroはまだやってないです… "
- Fadisさんのツイート: "両側/dev/zeroだと22.5GB/s出ました。ということはzeroが遅いわけではないって事になりますね… "
- Fadisさんのツイート: "どうも/dev/zeroが遅いわけではないことがわかった、何でzeroとnvmeの場合だけ遅くなるんだろ"
- Fadisさんのツイート: "NVMeでは複数のキューから命令を受け付ける為、ストレージ内で競合状態を起こす可能性がある。同じデータを触る2つの命令の間に、同じデータを触る別のキューの命令が割り込んで意図しない結果になるのを回避するために、キューに積まれた2つの命令をatomicに処理する為のフラグが用意されている"
- Fadisさんのツイート: "SSDさんベンチマークとってると、同じベンチマークを繰り返してるのに突然お腹をこわしてスループットが1/3くらいに落ちたりして、SSDの気持ちを理解するのは難しい"
- Fadisさんのツイート: "SSDさんは無口でコントローラが何をしているのか教えてくれないので、対話は困難を極める ._.… "
- Fadisさんのツイート: "昨晩の睡眠を犠牲にする事によって「SSDのスループットはカーネルが何もしなくても時間と共に変化する為、2つの条件でとったベンチマークを比較する場合そのベンチマークは可能な限り近い時刻で取らなければならない」という悟りを開いた"
- Takeshi HASEGAWAさんのツイート: "前のワークロードの影響を受けるからね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SSDを2つ並べて、同じタイミングでベンチ開始、という意味ですか? それとも、同じSSDを立て続けにベンチ?… "
- Fadisさんのツイート: "立て続けです。2つの条件のベンチマークをそれぞれ10回づつ繰り返して平均をとっていたんですが、SSDが突然速くなったり遅くなったりするので、2種類のベンチマークを交互に行って比をとるようにしたら分散が小さくなりました、という話です… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど! 双方を連続してベンチするだけでなく、何度も(間断なく)繰り返すのがポイントという感じですか。 (単発テストだと、双方を連続してベンチをとっても、最初に試行する側が好成績になりがちな印象があったので…)… "
- Fadisさんのツイート: "Fadisさん「NVMe SSDどんなに激しく扱ってもコンテキストスイッチのオーバーヘッドとか誤差なんだけど、Intelはどんな環境でSPDKやってるんだろう」 Intelのドキュメント「Xeonサーバに、NVMe SSDを16本さして、100GbE 2枚にデータを流しても、SPDKならスケール!!!」 Fadisさん「ア、ハイ」"
- Fadisさんのツイート: "公式のパフォーマンス報告に書いてある環境が凄すぎて用意できない問題"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 以前、Win10 + Direct I/O + Async I/O + EVO960実験中に気付いた話。 ReadキューとWriteキューを同時に溜めると大幅に速度低下する。 速度向上に Asyncで並列度を上げるのは大事だが Readキューを連続蓄積&処理した後に、Write I/Oキューを連続蓄積&処理した方が、1.5~2倍速くなる。… https://t.co/wXChry7hxh"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "EVO960でRAIDを組むと、SPDK等無しでも 6.5GB/s に。 (M.2-PCIe変換ボード2枚刺し環境) https://t.co/AsDBqJkngG"
- Fadisさんのツイート: "NVMeのSSDは、きちんと性能が出るように使うには工夫がいる扱いの難しい子だけど、うまく使うと3万円のNVMeで150万円のioDriveを圧倒するスループットが出る、弄りがいのある子だよ"
- hitoさんのツイート: "「まさかの(実用上)Windows専用のNVMe」なんていう概念が誕生していてquirkを強いられるLinux https://t.co/P1X96Gi3hY"
- Fadisさんのツイート: "NVMeをソフトウェアのRAID0でより高速にしようというアイデアはやめておいた方が良い。PCI-Expressの帯域不足が問題になる程の勢いでデータを流してくるデバイスに「データを加工して読み書き」なんて工程を追加したら簡単にCPUがボトルネックになる。どうしてもそこを攻めたい時はSPDKを使うと良い"
- KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
- 鯉江さんのツイート: "NVMe->GPUとかFPGAに直接流し込めないものだろうか...… "
- Fadisさんのツイート: "その為にNVMeにはController Memory Bufferという拡張があります。対応したデバイスの場合、ホストのアドレス空間にマップされたデバイスのバッファに置かれたデータを対象にread/writeが可能なので、PCI-Expressのデバイス間でデータをDMAして、read/writeコマンドだけCPUから投げる事ができます… https://t.co/v0jTUkofDp"
- KaiGai Koheiさんのツイート: "そうするとGTXでP2P DMAができてしまう的な。"
- KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
- KaiGai Koheiさんのツイート: "そうですね。元Twは昨晩見ましたが、SPDKがそういった10GB/sとかで押し寄せるデータの処理・加工に有効に作用するようには思えませんので、(?_?)という感じでした。… "
- Takeshi HASEGAWAさんのツイート: "なるほど… "
- Takeshi HASEGAWAさんのツイート: "ただ条件句うんぬんの処理がさばききれなくなるのが、mdraidじゃなくSPDKでさばけるようになるという話しだとすると、直感的によくわかりません。うーん、RTしたツイートだけで考えるのはよくないですね。あとで流れを読み直してみるか。… "
- Takeshi HASEGAWAさんのツイート: "んーしかし元ツイートの趣旨がよくわからんな。 帯域幅当たるほどのスループット出そうとするとブロックサイズ大きくなってきてCPUサチらないんじゃ。というかそもそもNVMeインターフェイスとブラックレイヤーとmdraid介してI/Oして、どんながCPUサチるどんなワークロードだろ。"
- KaiGai Koheiさんのツイート: "たぶん、NVME-SSDから読み出したデータを何がしかCPUで処理しようとする(例えばレコード毎に条件句の判定する)と簡単にサチるのという主旨ではないかと理解しました。右から左へ流すだけなら、まぁ、変な作りしてなければ。… "
- hiyohiyo (Noriyuki Miyazaki)さんのツイート: "CrystalDiskInfo 8.1.0 Beta2 - Intel RST NVMe サポート - ついにDELL製NVMeモデルに対応しました! ダウンロード: https://t.co/Zf6OWgakVP ソースコード: https://t.co/pSOA7DRXhT… https://t.co/BDttKZG7wD"
- CrystalDiskInfo 8.1.0 Beta2 · hiyohiyo/CrystalDiskInfo@902b408
- Kazuho Okuさんのツイート: "erase block単位で書込してればtrim不要だしスループットもよくなると思うんだけど、汎用fs+クラウドだと難しいのかなぁ / https://t.co/H7CFUW1zee"
- 高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
- Takeshi HASEGAWAさんのツイート: "Fusion-ioはTRIM相当操作がめっちゃ速いようにカーネルに反応してて、それを前提で全力でTRIMしまくるコードをSATAかなんかのSSDで使ったらほぼ息しなくなって、カーネルのバグじゃないかとLKMLで疑い始めたが、結果として「SSDがマジでTRIMで固まってるね」でスレ終了したの思い出す… https://t.co/i6IjtpSLZ4"
- Nobutoshi Ogataさんのツイート: "“高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ” https://t.co/PKMUway6w3"
- 品川 高廣さんのツイート: "そういえば Apple の NVMe コントローラおかしい問題は BitVisor でも苦労してたな。https://t.co/T926JEyT59… "
- Fadisさんのツイート: "AppleのNVMeストレージを使うためのパッチがLinux 5.4でのバニラカーネル入りを目指している。2018年以降のMacに載っているApple製のNVMeがNVMeの規格に沿っておらずLinuxのNVMeドライバで使えなかった問題を解消するらしい https://t.co/Hd1ZC8QkK7"
- The NVMe Patches To Support Linux On Newer Apple Macs Are Under Review - Phoronix
- Takanari HayamaさんはTwitterを使っています: 「@utshina2 はい。BitVisor ベースの vThrii では対応済みです。なので、vThrii を入れると Linux も T2 が載った Mac で動いたりします。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「@taki_igel なるほど、vThrii を入れると Apple NVMe が標準的な NVMe に化けるわけですね。これは面白いですね。」 / Twitter
- FadisさんはTwitterを使っています 「先日LinuxのENAの初期化を速くしていたlitelが今度はNVNeの初期化を速くしたらしい。方法はENAの時と同じでデバイスが利用可能になったかを100ms間隔でチェックしていたのを1ms間隔に変更するというもの。NVMeの初期化は通常100msもかからないため起動時間の短縮が見込める https://t.co/WgQbiHnMt8」 / Twitter
- NVMe SSD Systems May Boot Slightly Quicker With Linux 5.7 - Phoronix
- FadisさんはTwitterを使っています 「NANDフラッシュは5GB/sを1ブロックづつ処理して達成できる程高速ではない。それでもNVMeが高いスループットを達成出来るのは重複しないブロックに対する操作を同時に行う事で単位時間あたりの性能を稼いでいるから。言い換えるとNVMeは高スループットの割に高レイテンシという特徴を持つデバイスなんだ」 / Twitter
- NV(*´ω`*)さんはTwitterを使っています 「@fadis_ 利用者からは高速に見えるけど、実態はNANDの積層とキャッシュでごまかしているというやつですな」 / Twitter
- FadisさんはTwitterを使っています 「@nvsofts キャッシュが詰まると突然性能が落ちるし、flushをきちんと待つと小さいI/Oの性能が全然出ないたのしい」 / Twitter
- FadisさんはTwitterを使っています 「PS5が採用するかは知らないけど、NVMeはコントローラのバッファをホストのアドレス空間にマップする拡張(CMB)があって、これが使える場合CPUはread要求だけ投げて、バッファに上げたデータはCPUにまわさず直接GPUが持っていくみたいな事ができる。対応してたら絶対楽しい」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.9からNVMeのZoned Namespaceがサポートされるらしい。Zoned Namespaceではストレージは256MBくらいのZoneに分割され、各Zoneは追記または丸ごと消去しかできない。この制約によりFTLの仕事が大幅に減り、不便だが性能の良いストレージが実現する https://t.co/fIyJD0eGg1」 / Twitter
- NVMe ZNS Makes It Into Linux 5.9 Along With MD RAID Fixes - Phoronix
- FadisさんはTwitterを使っています 「NVMeのZNSやSMRを直接公開するハードディスクはZonedStorageと呼ばれ、Linuxではブロックサイズが異常に大きく特殊なコマンドを受け付けるブロックデバイスという扱いを受ける。こうしたブロックデバイス上で動くファイルシステムには専用の対応が必要で、現状F2FSとBtrFSが対応している」 / Twitter
- FadisさんはTwitterを使っています 「NVMeに今年追加されたsimple copyをLinuxが使えるようにするパッチが出ている。simple copyは「デバイス内の複数箇所から読んで一箇所に書く」をデバイス側で完結させるコマンドで、F2FSのログやZNS上に作ったログの整理、CoWなFSで頻発するコピーの性能向上が期待できる https://t.co/7ytVV5pwYg」 / Twitter
- NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「このNVMeのsimple copyの狙いって表向きは処理のオフロードだけど、多分デバイス屋は書き込みの目的がコピーであることをデバイスに明示することで、FTLが複数の論理アドレスに1つの物理アドレスを割り当てる(=コピーしたことにする)を可能にするとこまで考えてるよな」 / Twitter
- NVMe準拠のPCIe 3.0接続となるIntel製SSD「SSD 750」レビュー。SATA 6Gbps比で2倍以上という圧倒的な速度性能を確認する - 4Gamer.net
- SATA AHCI SSD から、NVMe SSD へ|株式会社アークブレイン
- NVM Express | 低いレイヤの話
- NVM Express » Specifications
- koie blog : いってきた: MemoryPlus Workshop
- www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.pdf
- CrystalDiskInfo 6.7.0-3 | Crystal Dew Blog
- NVM Express | tous les jours
- NVMe: Controller Initialization and Shutdown Processing | tous les jours
- 福田昭のストレージ通信 SSDインタフェースの現在(3):PCIe SSDの性能を引き出す「NVMe」 (1/2) - EE Times Japan
- NVM Express - Wikipedia
- NVM Express - Wikipedia
- Non-Volatile Memory Express
- Hisaki Oharaさんのツイート: "NVMeFを使っても割込みがなくなるわけでないからSPDK使おうぜ、とかそういう話になるんだろうか"
- spdk/lib/nvmf at master · spdk/spdk
- 「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説 (1/2) - TechTargetジャパン サーバ&ストレージ
- NVM Express1.3 - 約2年半振りのNVMe規格アップデート | PC Core
- qemuのNVMeが微妙なlegacy割り込みをする話 - livaの雑記帳
- NVMe ストレージの揮発性内部キャッシュ - 誰かの役に立てばいいブログ
- 徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌 (1/2) - TechTargetジャパン サーバ&ストレージ
- 極めて速いストレージとの付き合い方 - Speaker Deck
- BitVisor Summit 7「3. Interesting Issues During NVMe Driver Developmen…
- 2019年1月18日号 discoの開発,各種ハードウェアサポートの拡充とカーネルパッチ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず - 教育は参考ブログ
- NVMeドライバをLinux上でuioを用いて開発してみたが間に合わなかった - /var/log/hikalium
- NVMe HMB機能を使ってみた - Fixstars Tech Blog /proc/cpuinfo
- NVMe ドライバの HMB (Host memory buffer) 初期化処理のバグフィックス - Fixstars Tech Blog /proc/cpuinfo
SD
- Simplified Specifications - SD Association
- 新規格「ビデオスピードクラス」に対応したSDカードが登場、SanDisk製 - AKIBA PC Hotline!
- cat pics RT bot(代理)さんはTwitterを使っています: 「SDHC 4.xだと64bit addressingは96/128bit descriptorなのかー。ADMA3かー」 / Twitter
- cat pics RT bot(代理)さんはTwitterを使っています: 「Apollo LakeだとAPL18 erratumのせいで96bit descriptorでDMAしないと駄目なのかー、なるほどね」 / Twitter
- cat pics RT bot(代理)さんはTwitterを使っています: 「ADMA2でも96/128bit descriptorが使えるのか。建て増し増しで訳が分からなくなってきた(最初から分かっていないという説有り」 / Twitter
- FadisさんはTwitterを使っています 「2行の変更でRasPi4のSDカードのデータ転送を倍速にするパッチが現れたらしい。SDカードにはクロックの上げ下げ両方でデータを送るDDRモードがあり、RasPi4のハードウェアはこのモードをサポートしているが、誰も有効にしていなかった、という物 https://t.co/ZRS4ooPLGW」 / Twitter
- Linux Patch Proposed To Double Raspberry Pi 4 Transfer Speed To eMMC/SD Storage - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.11からSD Expressがサポートされるらしい。初のSD Express対応コントローラRTS5261のドライバも同梱。SD ExpressはSD7.0で追加された次世代高速SDカード規格。コントローラとメディアがネゴシエーションの結果SD Express対応とわかるとPCI-ExpressでNVMeを喋り始める https://t.co/CiU0HhZqY0」 / Twitter
- SD Express Support Coming With The Linux 5.11 Kernel - Phoronix
- FadisさんはTwitterを使っています 「SD7.0のSD ExpressはUHS-IIで使われていたのと物理的には同じ並びの2列目のピンからPCI-Express x1を吐く事になっている。ホストがPCIe 3.0なら1GB/s、PCIe 4.0なら2GB/sで通信を行う。SD8.0では更に3列目のピンが追加され、PCI-Express x2に対応する事でPCIe 4.0なら4GB/sでの通信が可能になる」 / Twitter
- FadisさんはTwitterを使っています 「なんか裏面の半分くらい端子になってるし、SDカードの終着点はLGAなのでは感がある https://t.co/jBet1aBPdy」 / Twitter
virtio-blk
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第20回 bhyveにおける仮想ディスクの実装
バックアップ
- 一ノ瀬 いろはさんはTwitterを使っています: 「バックアップからの復元を行わなければならない時は、大体焦って普段やらないミスをしてしまうので手順はなるべくシンプルな方が良いと言う主張をして行きたい。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップは本当に札束で殴るしかない印象ある。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップの怖いところは、リストアしてみるまで思い通りにバックアップできてるかどうか、個人だと特にテストのしようがないのがつらい。」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています: 「@d_toybox 同型の予備機とか現実的では無いですからねぇ。」 / Twitter
暗号化
- Shinji KonoさんはTwitterを使っています 「fs全体を暗号化はアホ過ぎる。しかし、HDD全体を暗号化すれば消す時にはキーを捨てるだけで良いってのはある。しかし、ちゃんとキーを消せるのかってことになる。キーの市場みたいなのができて、そこに売れるとか…」 / Twitter
- https://twitter.com/wakatono/status/1308455622317203461
- https://twitter.com/shinji_kono/status/1308457516703989762
- https://twitter.com/wakatono/status/1308455207903272961
- Shinji KonoさんはTwitterを使っています 「必要な部分だけ暗号化すれば良いが、そこから取り出した平文なコピーはどうする。メモリ上にはそういうものがたくさん。メモリも暗号化するのか? 何が目的かによるね。漏洩と暗号化は直交したもの。暗号化したから良いってものではない。」 / Twitter
Twitter
マルチスレッド
- κeenさんはTwitterを使っています 「これ面白い。それなりのサイズのファイルに大量にアクセスするとき、SSDだとマルチスレッドで性能が上がるけどHDDだとマルチスレッドで性能が下がる。 Performance Impact of Parallel Disk Access | Piotr Kołaczkowski https://t.co/kj6UYmToWh」 / Twitter
- Performance Impact of Parallel Disk Access | Piotr Kołaczkowski
- κeenさんはTwitterを使っています 「そこでハードウェアごとにスレッドプールを使いわけて、HDDにはシングルスレッド、SSDにはマルチスレッドでアクセスする話。Rustだと所有権絡みでスレッドプールが複数あると扱いにテクニックが必要になる。 Multiple Thread Pools in Rust | Piotr Kołaczkowski https://t.co/M5yHbnSsDH」 / Twitter
- Multiple Thread Pools in Rust | Piotr Kołaczkowski
- κeenさんはTwitterを使っています 「HDD x マルチスレッドで性能でないのはそれぞれのリクエストが入り乱れてランダムアクセスになるから。小さいサイズのアクセスならOSがリクエストをソートしてくれるからむしろ速くなる。SSD x マルチスレッドで性能が出るのはリクエストキューを埋められるから。」 / Twitter
histric-1
- matsuu@ババウさんのツイート: "ほう。ioping知らなかった。各種パッケージシステムにすでにあるらしい / “linux-freebsd-openbsd-macosx-find-disk-io-latency-with-ioping” https://t.co/iD1Ah5iFTL"
- How to find disk I/O latency with ioping monitoring tool on Linux - nixCraft
- Yoshihiro OKAMOTOさんのツイート: "SeagateはコンシューマPC向けHDDでSMR採用になったみたいだけど、酷かったArchiveの頃とは違い、故意にSMRの苦手なワークロード走らせたりしなければ普通に使えるようになってるみたいね"
- まさみさんは語りたいさんのツイート: "SMRはSMR対応のログファイルシステムがきちんとOSネイティブで実装されていないと使いたくないなあ・・・。どうなったんだっけか。"
- Fadisさんのツイート: "DPDKでreadするとプリアンブルを除いたイーサネットフレームが返ってくる。SPDKでreadすると指定したLBAから始まる領域の値が返ってくる。レイヤーとしては大して変わらないのにSPDKの方はなんとかなりそうな気がしてDPDKは険しい道に感じるの、どう考えてもTCPを実装するのが人類には難しすぎるからだ"
- Fadisさんのツイート: "SPDKのblobfs、ファイル操作のAPIは根本的に形を変えないと近代的なストレージの性能を活かせないという低レイヤーからの要求と、従来のAPIから使い方を大きく変えると既存のアプリケーションが移行できないという高レイヤーからの要求がぶつかり合って出来た残念のカタマリって感じがする"
- Fadisさんのツイート: "blobfsの下まで完全に非同期のストレージデバイスの操作を引っ張ってきたのに、ここでブロッキングI/Oになるのか…"
- Fadisさんのツイート: "ぁーそんな気はしてたけど、SPDKのblobstore、複数のスレッドから別々のチャネルを使って書き込むと壊れるか…"
- Fadisさんのツイート: "いや、じゃなくてこれ、メタデータを触る操作を複数スレッドから行うと壊れるだけで、個々のスレッドが別々のblobのデータを触っている限りは壊れないとかそういうアレかな"
- ウェアレベリング - Wikipedia
- hiyohiyo@個人開発21年目さんのツイート: "こういう結果を見るとブロックサイズが128KiBよりも大きなシーケンシャルリード/ライトテストは必須なんだなぁ・・・。- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch https://t.co/jT657G1d14"
- まさみさん⋈語りたいさんはTwitterを使っています: 「この手の話、もう組み込みlinuxでは十年以上前から当たり前で、mount時にnoatimeつけるとか、rootfsをinitramfsにするとか、フラッシュにはログだけ書く、ログはファイルシステムを使わない(寿命をある程度見定めるため)、まである。 https://t.co/XcBHA6WOKV」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「フラッシュメモリ書き込みすぎて車全体が文鎮にってすごいな。組み込みだったらライフで書き込む量とか結構まじめに計算して安全係数もそれなりにかけるし、エンターテイメントシステムとかは他と分けたりすると思うんだが、、、https://t.co/9w6OOhIAtl」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@mhiramat あと今時のemmcなら書き換えの多いパーティションは(疑似)SLC領域にして書き換え可能回数増やすとか、普通のベンダーに相談したら色々と教えてくれますよねえ」 / Twitter
- FadisさんはTwitterを使っています: 「@ponkotuy LBAが利用できるようになる前にハードディスク上の位置を表すのに使われていたのがシリンダ、セクタ、ヘッド。かつてはそれぞれ半径方向、円周方向、何枚目のプラッタかを表す値だった。今のハードディスクはより複雑な形で記録しているため、これらの値から1つのLBAが求まるだけの値になっている」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています: 「SSDの方が消去されたディスクからデータを復元するみたいのはるかに難しいというかほとんど無理だろうに何でHDDよりSSDにデータ消去に課題があるみたいな論調なの…???:HDDからSSDへ いいことずくめ?データ消去に課題:朝日新聞デジタル https://t.co/4aQNOtOBEM」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@syuu1228 確かにTrimで消えるので楽に思えるんだけどそのタイミングで不良セクタ化しちゃうと中途半端な状態でデータがチップ内に残っちゃったりするし、そもそもTrimがいつ効いたかって外形的にはわからないので、1bitも残すなと言われると、残ってる可能性を突き詰めていくと途方に暮れるんですよこれが…」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「SSDの完全消去は「無理」というのは言い過ぎですが、ちゃんと消えるかわからないとされる根拠は2011年USENIX FAST11で発表されたこの論文です。 https://t.co/grCIYTIA9L Secure Eraseに対応しているにも関わらず、コマンド発行してもデータが消えないSSDが当時見つかってます。今はどうでしょうね… https://t.co/LzOwI6vpWJ」 / Twitter
- Wei.pdf
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@goodmoon @syuu1228 他にも物理的破壊に関するいくつかの研究があります。有名なのはこれ。 https://t.co/ZOjttFXoaj 2008年当時の話ですが、NANDフラッシュメモリが熱や電気や…に対していかに堅牢かが分かります。簡単には消えないのです。ただ当時と比べてだいぶチップの構造が変わったので、追試の必要はありますが。」 / Twitter
- Recovering data from USB flash memory sticks that have been damaged or electronically erased | Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop
- FadisさんはTwitterを使っています 「SSD、out-of-placeで書く事で消去の遅さを隠蔽するから書き込みの度にゴミが出て、それをガベコレが後で回収するんだけど、SSDのコントローラの性能は有限だからSSDでより高いスループットを得る為の近年の工夫が「ガベコレが回収しやすいようにゴミを出せ」になってて、なんて難しいデバイスなんだ…」 / Twitter
- FadisさんはTwitterを使っています 「NANDの制約を隠蔽するSSDのコントローラが複雑になって性能を出すのが難しいから、「アプリケーションがNANDの制約を受け入れる」から「コントローラで複雑な処理をせずにデバイスを直接見せろ」というZoned Storageが台頭するの、かつてのGPUの流れに似ていて面白い」 / Twitter
- FadisさんはTwitterを使っています 「Intelが Optane DC Persistent Memory(DCPMM)のファームウェアをLinuxからシステム全体を再起動せずに更新できるようにするパッチを投げている。DCPMMはDIMMスロットにさして使う不揮発メモリデバイスだが、どうもデバイス側にファームウェアを持っているらしい… https://t.co/JKojaTBOY5」 / Twitter
- Intel Adds Capability To Linux 5.9 For NVDIMM Firmware Updates Without Reboots - Phoronix
- FadisさんはTwitterを使っています 「FTLがブロックの割り当てを変更するSSDにおいて「ファイルを削除する前にゼロクリアしたからディスクを漁ってもファイルの内容は取り出せない」というHDD時代の作法は意味を持つだろうか。SSDにおいてはSecure Eraseが実際にSecureにEraseしない場合確実にデータを消す方法は無いのではなかろうか」 / Twitter
- FadisさんはTwitterを使っています 「そもそもHDDの時代においても、CoWなファイルシステムの場合ファイルをゼロクリアしてファイルの内容がディスク上から消えたつもりになるのは誤りなわけだが」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ログ構造化だけでなく、NTFSの圧縮ファイルでも同様の指摘があった記憶。 たぶんファイルシステム層orデバイス層で「本当のデータ消去」APIを用意してもらうしか、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号ファイルシステム(or 暗号対応HDD)を使って、rawデータを読み取っても無効というのがまあ無難な対処かな? (その状態なら、NTFSでのLBAを信用した0上書きでも undelete系の無効化に十分意味あるだろうな)」 / Twitter
- suzakiさんはTwitterを使っています 「思い出してメモ OS内に残るデータのライフタイムについて。 古いけどこの論文は面白い。 Understanding data lifetime via whole system simulation 13th USENIX Security Symposium (2004) Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M. 共著はVMwareを創業したRosenblum先生」 / Twitter
- suzakiさんはTwitterを使っています 「@fadis_ ちょっと古いですが、SSDで完全に消去するのは難しいことを述べた論文。Secure Eraseについても言及しています。 USENIX FAST’2011 Reliably Erasing Data From Flash-Based Solid State Drives https://t.co/ymWRsLBrVB」 / Twitter
- Wei.pdf
- suzakiさんはTwitterを使っています 「@fadis_ メモ追記。 IEEE S&P 2013でのデータ消去に関するSoK論文。 SoK: Secure Data Deletion https://t.co/tgBWUloTnV」 / Twitter
- SoK: Secure Data Deletion - IEEE Conference Publication
- FadisさんはTwitterを使っています 「コントローラが1ブロックのatomicな書き込みを保証してくれるNVMeと違い、NVDIMMでは一度にバスに流れる64bitがatomicに書ける単位になる。もっと大きな物を電源が落ちても途中で途切れないように書くには、ソフトウェアでトランザクションをやらなければならない。PMDKのlibpmemobjがまさにそれ」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りはもう常識。つまり、RAID5は死んだ。明示的なコピーの方がマシ。 https://t.co/X2DXcBljvf」 / Twitter
- RAIDを導入する前に考えること - Qiita
- Shinji KonoさんはTwitterを使っています 「Cephは1 OSDあたり4GBメモリを要求するのでお大尽。でもまあ、そういうの専用のDisk Serverが欲しい感じ。」 / Twitter
- 日本初となる内蔵SSDデータ消去ソフトの評価制度が開始 - PC Watch
- ハードディスクの正しい消去
- Category:ATA - OSDev Wiki
- ATA PIO Mode - OSDev Wiki
- Disc rot - Wikipedia
- otakuto/CrazyDiskInfo: CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
- マイクロソフトが、データセンター ハードウェアのストレージとセキュリティの業界標準を築く – Cloud and Server Product Japan Blog
- Thanos - 無制限ストレージを備えたスケーラブルなPrometheus
- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch
- トーバルズ氏:Linuxでフロッピーディスクドライバーは「面倒を見る人がいなくなった」 - ZDNet Japan
- Linuxでのフロッピーディスクのサポート打ち切りをリーナス・トーバルズが発表 - GIGAZINE
- SCSI Block Commands - 3 (SBC-3)
- PC Insider 解説目次 - @IT
- 2021年7月7日 Linux 5.14でレガシーIDEのサポート終了へ ―カーネルソースツリーから「/dev/ide」を全削除:Linux Daily Topics|gihyo.jp … 技術評論社
Net
その他
Homa
- FadisさんはTwitterを使っています: 「TCPがデータセンター内の通信のような高速かつ信頼できるホスト間で信頼性のある通信をする用途にあまりにも適さない問題と、TCPに代わるプロトコルがどのような物であるべきかについての話 https://t.co/hKCqG3igML」 / Twitter
- FadisさんはTwitterを使っています: 「上のニュース記事は10月に行われたNetdev 0x16での発表の内容をまとめた物で、この発表のpaperは以下のURL[PDF]に転がっている。paperでは”Everything about TCP is wrong” TCPのあらゆる仕様が今日の要件に合っていないとして、改良ではなく新しいプロトコルが必要としている https://t.co/JgfVHBqQhs」 / Twitter
- replaceTcp.pdf
- FadisさんはTwitterを使っています: 「TCPはストリーム指向だが、多くのネットワークプロトコルはある程度の長さのメッセージを送り合っている。ソケットに書かれたデータはある程度のサイズのパケットに分割されて通信相手に送られるが、アプリケーションからはこのサイズを取得したり制御したりすることはできない」 / Twitter
- FadisさんはTwitterを使っています: 「この為多くのネットワークプロトコルでは各々の方法でメッセージの終端を把握している。NICの性能向上のペースは凄まじく、400GbEは既にデータセンターで活用されていてNICのベンダーは800GbEの製品の用意を進めていて、Ethernet Allianceは1.6TbEの標準化を急いでいる」 / Twitter
- FadisさんはTwitterを使っています: 「NICの進化に対してCPUの性能向上は緩やかなので、今日の高性能なNICからの大量のパケットは沢山のCPUで捌かないとCPUがボトルネックになる。メッセージの終端をソフトウェアで見つける作業自体は簡単だが、一度ストリームを構成するパケットを1列に並べて順にパースする必要がある為スケールしない」 / Twitter
- FadisさんはTwitterを使っています: 「また、TCPでストリームの途中のパケットを受け取れなかった場合、後ろに完全な形で受け取れたメッセージがあってもその処理を開始できない。こうした理由からメッセージの境界に沿って処理するよう要求できるメッセージ指向の方がハイパフォーマンスな通信に向いている」 / Twitter
- FadisさんはTwitterを使っています: 「TCPはコネクションを作ってからデータを流す必要がある。このコネクションの為に確保しなければならないメモリはLinuxの実装で約2kBで、大量の通信相手と接続しようとすると許容しがたいメモリを使う。Facebookではこの問題を避ける為にWebアプリケーションとmemcachedとの通信にUDPを使っているらしい」 / Twitter
- FadisさんはTwitterを使っています: 「また、TCPでコネクションを張る為に1往復するコストはコネクションが長期間使われる場合無視できるが、イマドキのクラウドのサーバレスサービスでは一瞬繋いで少し通信してすぐ切るような通信が頻繁に行われる為無視できないコストになる。これらの事からコネクションレスなプロトコルの方が適している」 / Twitter
- FadisさんはTwitterを使っています: 「paperではこの他にもTCPのfair schedulingが高負荷時の性能を損ねる事、名前に反して短いメッセージが長いメッセージより不遇な扱いを受ける事、輻輳制御をバッファが溢れそうな事をすぐに知る事ができない送信側主導でやるのは無理がある等TCPの問題点を多数挙げている」 / Twitter
- FadisさんはTwitterを使っています: 「paperでは有望なTCPの代替としてHomaを挙げている。Homaはメッセージ指向で、コネクションレスで、スケジューリングにSRPTを使い、受信側主導で輻輳制御を行い、信頼性のある通信が可能なトランスポート層のプロトコル。DPDKを使った実装がgithubで公開されている https://t.co/1LRq863bak」 / Twitter
- PlatformLab/Homa: Low-Latency Data Center Network Transport
- FadisさんはTwitterを使っています: 「paperでは更に、今後もNICが更に高速になりCPUがそれに追いつける見込みがない事を考慮すると、トランスポート層は丸ごとNICのハードウェアで処理する必要があり、TCPを置き換えるプロトコルは容易にハードウェア側に実装できる仕様でなければならないとしている」 / Twitter
- FadisさんはTwitterを使っています: 「ネットワークスタックがボトルネックになる問題を回避する手段として現状データセンターで活用されているのがInfinibandだが、Infinibandは「信頼性のある通信」と「ストリーム指向」がセットになっている点でTCPと同じ問題を抱えていてスケールさせ辛いらしい」 / Twitter
- FadisさんはTwitterを使っています: 「またInfinibandはトランスポート層をハードウェアで処理するが、この実装がどこもプロプリで時々不思議な挙動をするが原因を探りようがない事から、未来のトランスポート層の実装はInfinibandのような形であるべきだが今あるInfinibandは問題を解決できない、としている」 / Twitter
BitTorrent
- P2Pファイル共有ソフトBitTorrent(ビットトレント)の使い方
- P2Pファイル共有プロトコルBitTorrent、その仕組みと略歴、トークン発行まで | HashHub Research
- PC同士を直接同期し巨大ファイルも高速転送できるソフト「BitTorrent Sync」 - GIGAZINE
- ファイル共有ソフト - Wikipedia
- @IT:BitTorrentでファイル交換を行うには
- BitTorrent、クラウド不要のP2Pファイル同期ツール「Sync」をαリリース - ITmedia NEWS
- UTMで検知するファイル転送アプリ(P2P)を説明してください (Security BOSS) | SecurityBOSS
- BitTorrentでファイル共有
WebRTC
- リアルタイムファイル転送サービス
- ファイル転送サービスを作った|ゆったりWeb手帳
- WEBRTCを使用した匿名ファイル転送 - ブログ
- WebRTCを使ったP2Pの容量無制限,無料の国産リアルタイムファイル転送サービス、rts.zatsuzen.com|2001Y's Blog
- WebRTC-DataChannel使ってみたよ - blog::wnotes.net
- ブラウザ間をP2Pで接続する「reep.io」を利用すると知人間での大容量ファイル転送が簡単
- SkyShare | 導入事例 | SkyWay(アプリやWebサービスに、ビデオ・音声通話をかんたんに導入・実装できるSDK)
- 無料でファイルサイズ制限なしにWebRTCでブラウザからファイルをP2Pで直接安全に転送できる「Bitf.ly」 - GIGAZINE
- ファイルのサイズや数に制限なくユーザー登録等も不要で無料利用できるセキュアなリアルタイムファイル転送サービス・「DirectShare」 | かちびと.net
- WebRTCのデータチャネル解説 - Qiita
- WebRTC ネイティブライブラリガイド for iOS and Android
- はじめに | 好奇心旺盛な人のためのWebRTC
- Chrome・Edge・BraveなどWebRTCが有効になっているブラウザがユーザーのローカルIPアドレスを漏らしてしまう脆弱性のテストサイト - GIGAZINE
UPnP
- OCF - UPnP Standards & Architecture
- UPnPによるポートマップ - なぜなにTorrent
Captive Portal
- Captive portal - Wikipedia
- Captive Portal Problem Statementについて - ASnoKaze blog
- Captive Portalとは | OSSでのシステム構築・デージーネット
- Captive Portalとは | OSSでのシステム・デージーネット
- Captive Portalって何? - にたまご。
- Captive Portal Detectionについて - にたまご。
- Captive Portal(CAPPORT) APIについて - にたまご。
blog
IIJ Engineers Blog
- 自然言語処理でトラフィック変化検知 | IIJ Engineers Blog
- Pure Python Tracepath | IIJ Engineers Blog
VA Linux エンジニアブログ
- 詳解 Linux ネットワーク - NAPI 編 (前編) - VA Linux エンジニアブログ
- 詳解 Linux ネットワーク - NAPI 編 (後編) - VA Linux エンジニアブログ
ASnoKaze blog
- BGP over QUICの提案仕様 - ASnoKaze blog
- Webでのマルチキャストの利用検討 (Multicast Community Group) - ASnoKaze blog
- Prometheusが利用するOpenMetricsの仕様がIETFに提出された - ASnoKaze blog
- 手を動かして学ぶネットワーク実験環境入門 - mh_mobileのブログ
- ネットワークバイトオーダーの公式な参照先はエイプリルフール:Geekなぺーじ
- 抽象ソケットアドレス abstract socket address - hibomaの日記
- [linux] abstract socket address - hibomaのはてなダイアリー
- RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
- RustのSTM32向けイーサネットドライバを解説する(送信編) | 己の不学を恥じる
- パケットジェネレータのつくり方 | NETWIZ.JP
- 自作プロトコルスタック(全体像の理解〜ARPリプライ) - おしぼりの日常
- RFC9136 IP Prefix Advertisement in Ethernet VPN (EVPN) - show log @yuyarin
- How Tailscale works · Tailscale
- HPKE とは何か | blog.jxck.io
- ブログ: ネットワークの輻輳は避けられない — 数学で証明
- 標的型攻撃で使われるトンネリング技術 - FFRIエンジニアブログ
- Tun/Tap interface tutorial « \1
ケータイ Watch
- 第661回:レイテンシー とは - ケータイ Watch Watch
- 第627回:トラフィック とは - ケータイ Watch Watch
GIGAZINE
- インターネットの心臓部を支える「BGP」をより柔軟に使うにはどうすればいいか? - GIGAZINE
- 中央主権的なHTTPから脱却し新しいインターネットの世界を生み出す壮大な分散型システム「IPFS」とは? - GIGAZINE
- なりすましメールからユーザーを守る「SPFレコード」の基礎知識 - GIGAZINE
- Windowsはどのような仕組みでインターネット接続が正常に機能しているかどうかを判断しているのか? - GIGAZINE
- 広告なし・検閲なしでのライブストリーミングをWebTorrentで実現する「Live on Torrent」 - GIGAZINE
- Googleに依存しないプッシュ通知プロトコル「UnifiedPush」 - GIGAZINE
OSDN
- 「NetworkManager 1.6」リリース、MACsecに対応 | OSDN Magazine
- MACアドレスランダム化が加わった「NetworkManager 1.2」 | OSDN Magazine
Twitter
- Kazuho OkuさんはTwitterを使っています 「kernel bypassなー、HPCなら意味あると思うけどインターネットだとsegmentation offloadで十分な感じがすごいするんだよなー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「受信側だと割込コストでかいから、そこをなんとかしたいというのは分かるけど、まあ、、、」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Cに近いレベルで効率の良い実装ができるプログラミング言語使っているという前提において言うと、network i/oが最初のボトルネックになる(ことが多い)イメージ。アクセラレータとかdpdkとかが主流になっていないってのが傍証かなぁ」 / Twitter
- 因果的あずにゃんさんはTwitterを使っています 「たくさんのI/Oを捌くアプリケーションで、多重並列でI/Oチャネルを走らせといてselect(2)で待つとかスレッドで待つとかはよくあるパターンだけど、これの並列数を上げていくときに現代的な環境で真っ先にボトルネックになるのってどこなんだろう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「主流のアプリケーションでバランスが良いようにサブシステムの性能が決定されている、という話なので、DNSみたく小さなUDPパケット交換やるとか、一般的なワークロードから離れると議論は変わります」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「どんなプロトコルでもハーフクローズ難しいよなー。TCPでもなんでも、切断処理は接続処理のだいたい100倍くらい難しい」 / Twitter
- VさんはTwitterを使っています 「@kazuho 1000000000 倍くらい難しいです!!! というか kazuho さんでもやっぱりそうなんですねぇ ... 。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@voluntas 皆そうだと思います。仕様策定にあたっても問題が残るのは、ステートを確立するところよりも捨てるところですし、実装的にも(バグがあっても問題ないケースがあるために)品質がわるくなりがちというか」 / Twitter
- 突然の大トラフィック……昔はOSだったが、今はゲームのアップデートに……IIJが語る「インターネットのバックボーン」【IIJ Technical WEEK 2020】 - INTERNET Watch
- ファイルをTCPの30倍で転送――独自プロトコルによる高速通信「クラウド コネクト」 - ITmedia エンタープライズ
- SkeedSilverBullet 大容量/多数ファイルをTCPの最大70倍以上で高速転送するソフトウェア製品 FTP代替から拠点間のグローバル連携まで導入実績も豊富 | 大容量ファイル・データの高速転送ならSkeed 大容量ファイル・データの高速転送ならSkeed
- RFC標準を調べるための知識やツール - Qiita
- TURN サーバでよくある間違い
- ネットワークのDevOps? シスコのpyATSとCMLを駆使すればネットワークの可能性は大いに広がる (1/2)|CodeZine(コードジン)
- 今からでも遅くない pyATS でネットワーク自動化入門 2021版 - Qiita
- 年末uさんはTwitterを使っています: 「Splatoon1では技術的興味からパケットを眺めてみたりしたけど、2で全然読めなくて断念した。3は試してない。 / “スプラトゥーン3の通信に欠かせない、UDPとNAT越えを理解しよう” https://t.co/rqOW3mq9yd」 / Twitter
- スプラトゥーン3の通信に欠かせない、UDPとNAT越えを理解しよう | 日経クロステック(xTECH)
- エコーネットの製品紹介 | ECHONET
- ノーリツ製の給湯器リモコンをPCからNode.jsで操作する(ECHONET Lite)
HTTP
その他
- 本の虫: Chromeが起動時に三つのランダムなドメインに接続しようとする理由
- ブラウザの更新 スーパーリロード
- Chromium の HttpStreamParser によるヘッダ処理
- 100GbE+ラージMTU環境でのQUICのパフォーマンス改善. HTTP/3とトランスポートプロトコルQUICの仕様を定めた6つのRFCが発行さ… | by Jun-ya Kato | nttlabs | May, 2021 | Medium
- QUIC is now RFC 9000 | Fastly
- QUIC Interop Runner
- Web Application開発に10080番ポートは使ってはいけない
- 進化する通信プロトコル - QUICとHTTP/3で何が変わるのか -日本語版- - YouTube
- 【特集】ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた - PC Watch
- NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理 | by Jun-ya Kato | nttlabs | Jul, 2021 | Medium
- What's QUIC? - Microsoft Tech Community
- microsoft/msquic: Cross-platform, C implementation of the IETF QUIC protocol.
- 2021年に登場したウェブハッキングテクニックトップ10 - GIGAZINE
- HTTP/2: The Sequel is Always Worse | PortSwigger Research
- Practical HTTP Header Smuggling: Sneaking Past Reverse Proxies to Attack AWS and Beyond
- HTTP Request Smuggling を理解する - Qiita
- Hidden OAuth attack vectors | PortSwigger Research
- CORSエラーのトラブルシューティング入門 | フューチャー技術ブログ
- OAuth 2.1 のドラフトから OAuth 2.0 のプラクティスを学ぶ - VA Linux エンジニアブログ
- HTTP/3 の特徴 HTTP/2とQUICの違い | REDBOX Labo
- golangで作るQUICプロトコル(Initial Packetの送信まで)
- モダンWebにおけるキャッシングのための新HTTP標準 | POSTD
- ブログ: TCPとQUICの比較
- HTTP リクエストスマグリング入門から最新研究まで - FFRIエンジニアブログ
- HTTP server in Ruby 3 - Fibers & Ractors
Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「HTTP を使うサーバクライアントアプリ作ってる人が、HTTP 的にどうするのが正しいのかな、と迷った時、見るべきドキュメントは BCP56bis かな、という話をした。HTTP の仕様ではなく、どのように使うべきかを説明した文書 (BCP56) の第2版草稿です https://t.co/InBEresgsD」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「「GET にリクエストボディって付けられるの?」 「答えは BCP56bis の section 4.5.1 に書いてあるよ」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RFC 7231 とかプロトコル仕様は、HTTP を実装する技術者向けの情報が多いので、HTTP を利用する技術者にとってはノイズが多いのです」 / Twitter
Status
Twitter
- Masanori OginoさんはTwitterを使っています: "HTTP status code 451、江添さんが「政治的に」と訳したので政治(プログラミング)方面でネタになってるけれど、本来はfor legal reasonsなので法的な要求
- Kazuho Okuさんのツイート: "ついに単著のI-Dを出してしまった / “draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints” https://t.co/rbnpHGcVkf"
- draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints
- Kazuho Okuさんのツイート: "HTTPステータスコード103のドラフトがラストコールにかかりましたなう / “Working Group Last Call: draft-ietf-httpbis-early-hints-02 from Mark Notti…” https://t.co/6lEa62hMDs"
- https://tools.ietf.org/id/draft-ietf-httpbis-early-hints-02.txt
- Fadisさんのツイート: "これ、HTCPCPがBREWするときに指定するプロトコルバージョンについて何も規定しなかった(従って元となる規格のHTTP/1.1のままになった)ことによる規格レベルの不具合だ…"
- Hypertext Transfer Protocol (HTTP) Status Code Registry
- https://www.rfc-editor.org/rfc/rfc8297.txt
- 渋川よしきさんのツイート: "HTTPステータスコード。POSTに対しては201 Createdでいいとして、PUTで更新するときに20X Updatedみたいなのがあったら対称的で良いのだけど、ないのだよね。200 OKか。"
- Yosuke FURUKAWAさんのツイート: "むしろ PUT が 201 の事を書いてるドキュメントもあるので一概にどっちが正しいか微妙ですね。 https://t.co/6bFPSQdcPD… "
- 201 Created - HTTP | MDN
- 渋川よしきさんのツイート: "mjk… "
- Kazuho Okuさんのツイート: "POSTは既存のリソースに対する操作だから201になることは基本ないのでは?… "
- 渋川よしきさんのツイート: "新しいリソース作成で、新しいURLが予想できる場合はPUT、そうじゃない場合はPOSTで作成・・・・みたいな説明をよく見かける気がします。オライリーのRESTful本とかも。… "
- Kazuho Okuさんのツイート: "ああごめんなさい location で生成されたリソースの uri を返しつつ 201 というのは基本のパターンですね… "
- Yuki Yugui Sonodaさんのツイート: "HTTP statusのreason phraseはサーバーが好きに書いて良いので、細かい情報を載せたいなら変なstatus codeを勝手に作るんじゃなくてそっちを使え、と言い続けてきたけど、割といろんなサーバーが勝手拡張コードを使ってるのね。Teapot以外は認めたくない。"
- 渋川よしきさんのツイート: "「存在している」という「情報」をログインしていないユーザーに見せない、という意味では404が正しいこともありえますね。… "
- 渋川よしきさんのツイート: "Real World HTTPでは403の代わりに404を返す可能性については一言だけ触れていたけど、あんまりきちんと説明してなかったので、今度改定のチャンスがあったとき用のネタ帳に追記しておこう。… "
- $κ@夏休み/人畜無害🍼さんのツイート: "githubのプライベートリポにログインしてない状態で行くと、404っていうけど、この場合403では?って思った。… "
- ĉ̨̨̝͉̝̭̩̣͍͈̗͂ͨ̊̎͋͗̅ͯ̒͑̎̑ͧ́̎̃ͬ̅̀̕r̶̸̴̢̬ͪ̆̾͊ͩͦͩ̈́ͧͨͭさんのツイート: "Quick guide to HTTP Status codes: 1XX: Wait a sec 2XX: There ya go 3XX: Fuck off 4XX: Fuck you 5XX: Fuck"
- ゆきさんのツイート: "Reporting Progress of Long-Running Operations in HTTP https://t.co/9zu13MU3VE 重たいHTTPリクエストの処理経過を知らせる「102 Processing」ステータスコードの提案 #yuki_id"
- draft-wright-http-progress-01 - Reporting Progress of Long-Running Operations in HTTP
- Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
- しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
- 菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter
- ASCII.jp:HTTPステータスコードに追加された「308」とは?
- 本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される
- 本の虫: 検閲のためのHTTPステータスコードの必要性
- Apache mod_http2 で 103 EarlyHints (RFC 8297) を試す - ASnoKaze blog
- 103 EarlyHints (RFC 8297) を送信するNginxモジュール書いた - ASnoKaze blog
- Kazuho's Weblog: 103 Early Hints に対応した Starlet 0.31 をリリースしました
- HTTP の新しいステータスコード 103 Early Hints | blog.jxck.io
- mnot’s blog: How to Think About HTTP Status Codes
- HTTPで「418 I’m a tea pot」を実装してはいけない - Qiita
- HTTP 418ステータスコードが予約される - ASnoKaze blog
- Retry-Afterのスコープを指定するRetry-Scopeヘッダ - ASnoKaze blog
- サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様 - ASnoKaze blog
- HTTPS state の仕様を追う
- Resource Timing と HTTP ステータスコード 1xx
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「HTTPステータスコードの覚え方: 1XX: ちょっと待て 2XX: ほらよ 3XX: あっちに行きな 4XX: お前が悪い 5XX: 俺が悪い https://t.co/2hJwcQSmVW」 / Twitter
- HTTP return code cheat sheet : ProgrammerHumor
Cookie
GIGAZINE
histric
histric-1
- Google Chrome 69ではCookieを「すべて削除」してもGoogleのCookieが残ってしまうことが判明 - GIGAZINE
- ChromeがCookieの透明性や安全性を向上させる方針を発表、ブラウザ・フィンガープリントの対策も - GIGAZINE
- AppleのSafariがサードパーティーCookieを完全にブロック、一般的なブラウザでは初 - GIGAZINE
- GoogleがサードパーティーCookie廃止に向けて開発者向けツールのテストを開始 - GIGAZINE
- Chromeは「Cookieとサイトデータを削除」を有効にしてもGoogle系のサイトのデータは消さない - GIGAZINE
- Safari 14では裏技を使って規制をくぐり抜けていたサードパーティーCookieが対策される - GIGAZINE
- Googleが提案するサードパーティーCookieなしの新しい広告の仕組み「FLoC」とは? - GIGAZINE
- Google Chrome 89のベータ版で「プライバシー・サンドボックス」の項目が追加へ - GIGAZINE
- Googleの考案する新たな「Cookieレスの仕組み」に独占禁止法違反の目が向けられている - GIGAZINE
- ブラウザのFavicon(ファビコン)でユーザーを追跡する「スーパークッキー」とは? - GIGAZINE
- Firefoxのトラッキング防止策「State Partitioning」の仕組みを分かりやすく説明するとこうなる - GIGAZINE
- Googleが導入予定の「FLoC」は最悪なものだと電子フロンティア財団が指摘 - GIGAZINE
- GoogleによるCookieレスの仕組み「プライバシーサンドボックス」が独占禁止法に違反すると司法長官が指摘 - GIGAZINE
- Googleが「ユーザー情報を保護しつつ広告の関連性も損なわない」仕組みの開発を行うと宣言 - GIGAZINE
- Googleがさらなる独占禁止法違反の訴訟に直面、今度はFacebookとの共謀の疑いも - GIGAZINE
- AppleがiOS 14.5で実施予定のプライバシー強化「Application Tracking Transparency」の詳細を明らかに - GIGAZINE
- Googleが開発中の「FLoC」はなぜ「有害」なのか、ユーザーとウェブサイトに発生する損害とは? - GIGAZINE
- Googleが「プライバシー第一」とする新技術「FLoC」の本質はプライバシーを侵害する追跡技術だという主張 - GIGAZINE
- 「最悪」と酷評されるGoogleの新システム「FLoC」をWordPressが「自動的に無効化する」と発表 - GIGAZINE
- Appleが広告業界を激変させる新ルール「App Tracking Transparency」適用の締め切り日をアプリ開発側に示す - GIGAZINE
- WWWの技術標準化団体「W3C」がプライバシー保護を巡る争いの場になっている - GIGAZINE
- 「Firefox 91」正式版リリース、Cookie削除の仕組みがアップデートされてトラッキングをより厳密に拒否できるように - GIGAZINE
- Google Chromeが「すべてのCookieとサイトデータ」の管理ページを廃止しようとしているという報告 - GIGAZINE
- Googleが提案する「プライバシーバジェット」が抱える大問題とは? - GIGAZINE
- Firefoxのプライベートブラウジングは一体どのような仕組みになっているのか? - GIGAZINE
- Appleがプライバシー強化機能を導入してAndroidが恩恵を受ける - GIGAZINE
- GoogleやFacebookなどのトラッカーをブロックするプライバシー保護機能をDuckDuckGoのAndroid版アプリが導入 - GIGAZINE
- ブラウザのプライバシー機能を逆手にとってユーザーを追跡する「プールパーティー攻撃」とは? - GIGAZINE
- ウェブサイトがJavaScriptとCookieなしで個人を追跡する方法が一発で理解できる「No-JavaScript fingerprinting」 - GIGAZINE
- Googleが新しい追跡技術「トピック」をChromeに導入 - GIGAZINE
- Firefoxが超強力なプライバシー保護機能を全世界のユーザーに提供 - GIGAZINE
- GoogleがChromeからサードパーティーCookieを廃止する計画を2024年まで再延期すると発表 - GIGAZINE
PC Watch
- GitHub、サービス提供に不必要なCookieとCookieバナーを排除 - PC Watch
- Google Chrome、Web広告などに使われるCookieを2023年に廃止 - PC Watch
- Google ChromeのサードパーティーCookie廃止が2024年後半に延期 - PC Watch
ASnoKaze blog
- 非セキュアなオリジンから'secure'クッキーの変更を廃止する提案 - ASnoKaze blog
- Cookieの属性を制限する Cookie Prefixesという仕様 - ASnoKaze blog
- 安全でない通信路でセットされたCookieの有効期限を短くする仕様 - ASnoKaze blog
- Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze’s diary
- CookieのNoHttp属性の提案仕様 - ASnoKaze blog
- Chromeにおいて非セキュアなHTTPで送信されたCookieの有効期限を短くする議論 - ASnoKaze blog
- Cookieに変わる Sec-HTTP-State ヘッダの提案 - ASnoKaze blog
- Cookie関連の最新動向 (2016年) - Qiita
- Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog
- CookieのPriority属性の仕様 - ASnoKaze blog
- Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
- CookieのSameSite属性にFirstPartyLaxを追加する提案仕様 - ASnoKaze blog
- Cookieの新しい属性、SameParty属性について - ASnoKaze blog
- トラッキングに利用できない3rdパーティクッキー「CHIPS」の仕組み - ASnoKaze blog
- デフォルトでCookieをオリジンに紐づける、ChromeのOrigin-Bound Cookies - ASnoKaze blog
- CookieのPartitioned属性 (CHIPS) の標準化はじまる - ASnoKaze blog
Qiita
- Cookie関連の最新動向 - Qiita
- PHPでSame-site cookie - Qiita
- Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
Twitter
samesite属性
- vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll 理由はいろいろあります。 1. Firefoxの実装のバグ 2. Chromeの実装のバグにサイトが依存している 3. そもそもSameSiteの仕様が互換性問題を誘発するように改定された」 / Twitter
- vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll 3.についてさらに説明します。当初の仕様では、SameSiteの有効な値はLaxかStrictのみであり、それ以外の値が指定されたらstrictとみなすというものでした。」 / Twitter
- vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll ここにSameSite=Noneがあとから追加されましたが、旧仕様に忠実な実装ではStrictとみなすため、Cookieが送られないという問題が発生しました。たとえばSafariがそのように実装していました。」 / Twitter
- vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll サイト側では対策のため、対応ブラウザーにのみSameSite=Noneを送るようUAなどで判定することを余儀なくされました。」 / Twitter
- vyv03354さんはTwitterを使っています 「@ockeghem @myakura @lll_anna_lll この結果、Chromium以外のブラウザーがデフォルトSameSite=Laxに対応しようとしても、サイト側に対応ブラウザーと認識してもらわないとCookieが送られないという問題が発生しました。 正直言って仕様の改定の仕方として最悪だと思っています。」 / Twitter
@rockridge07
- Rockridgeさんのツイート: "Fx50:Cookieのプレフィックスとして"__Secure-"と"__Host-"をサポート。Chrome 49/Opera 36でサポート済み。参照:https://t.co/1Ke9Jg0Qj3 / “Intent to…” https://t.co/ksuziLZote"
- Rockridgeさんのツイート: "Fx61:CookieのSameSite属性をサポート予定。参照:https://t.co/7sekICHKR5 / “Intent to implement and ship: same-site cookies” https://t.co/VgsPyEj46i"
- Rockridgeさんのツイート: "Fx60:CookieのSameSite属性がサポートされたことを受けて、network.cookie.same-site.enabledをfalseにすれば無効化できるようにした。 / “1452699 - Add pref …” https://t.co/CvQ96F7Dnb"
- Rockridgeさんのツイート: "Firefox 60でサポートされるSame-Site Cookiesについて説明した記事。 / “Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Bl…” https://t.co/OQjtQRVKPD"
- Rockridgeさんのツイート: "FirefoxではサードパーティCookieはユーザーが明示的に許可しない限り動作しないようにしていく方針だが、具体的にはSafariが先行するStorage Access APIを実装する形をとる。ただし、実装内容は若干異なる模… https://t.co/UlcX3NGRYM"
- Rockridgeさんのツイート: "Fx65:Cookieを保存する期間の設定がチェックボックス形式になった。 / “1501989 - Turn the "Keep Until" cookies menulist into a checkbox” https://t.co/XIxVzZ3Rpl"
- Rockridgeさんのツイート: "Fx65:未訪問のWebサイトのCookieをブロックする設定にしているとき、例外サイトを追加しても当該サイトのブロックが解除されない問題を修正。 / “1502045 - We fail to honour cookie pe…” https://t.co/meWqSxiDa9"
- Rockridgeさんのツイート: "Fx65:urlclassifier.trackingAnnotationSkipURLsに設定されたドメインおよびURLは、トラッカーのサードパーティCookieのブロックを免除される。 / “1506947 - Add a …” https://t.co/d1Wt5cCJpB"
@shibu_jp
- 渋川よしきさんのツイート: "HTTPのクッキーの日付のパース、いろいろ悲しみが溢れている感。 https://t.co/AMCxUI5Qeh"
- RFC 6265 - HTTP State Management Mechanism
- 渋川よしきさんのツイート: "クッキーの日付はGMT!って書いてあるサイトが多いのだけど、RFC見ると別にGMTとは指定されてなくて、in UTCって書かれている。GMTの部分は無視されてUTCとして解釈されている?"
- 渋川よしきさんのツイート: "サードパーティクッキー、いまいちわからんケースがいくつかある。AというサイトとBというサイトがあって、AにアクセスしたときにBのドメインが設定されたクッキーが書き込まれて、Bにアクセスしたときに、Aにいたことが分かる。これは分かる。"
- 渋川よしきさんのツイート: "こっちの代表的な例という絵のメカニズムがわからん。 https://t.co/5JcZfcxnnw"
- 渋川よしきさんのツイート: "リンク先サーバのクッキーが最初のサイトで書き込まれたとして、次のサイトにアクセスしたときは、リンク先のドメインじゃないからクッキーは送信されないよね?"
- 渋川よしきさんのツイート: "セッションストレージ、クッキーを使う方法が増えつつあるよ、という話はReal World HTTPに書いたけど、ブラウザでユーザー認証することによってクッキー同期を取るという仕組みが一般的になってきたのと関連はあるのかな?複数のPCとスマホ間で連携できる現代だと、かつてのクッキーの欠点はない。"
- 渋川よしきさんのツイート: "cookie storageを使って、クッキーにセッション情報を入れる方法。署名で改変は検知できるとして、5-tupleだか、http/3のConnection IDだかも入れると、セッション偽装対策になるのではないか?"
@jovi0608
- Shigeki Ohtsuさんのツイート: "BlackHatUSAで発表されたHEIST攻撃の記事。TCP Windowからレスポンスサイズを特定してる。論文やスライドはまだかな。 / “New attack steals SSNs, e-mail addresses, …” https://t.co/KhhAlPmZCx"
- Shigeki Ohtsuさんのツイート: "Third-pary Cookieを禁止してればHEIST対策になるのか。"
- Shigeki Ohtsuさんのツイート: "HEIST攻撃をまとめると。BREACHと合わせ技でThird-party cookieでinitcwdぎりまでパディングして、残り1バイト分をOracleで特定する。ということで合ってるのかな。もうdeflate的な圧縮はボディ部でもあかんわな。"
- Shigeki OhtsuさんはTwitterを使っています: 「Chromeが2年かけて3rd partyクッキーを廃止しGが提唱するPrivacy Sandboxという技術セットを進めていくと宣言。今年末までに新しいコンバージョン測定のトライアルと反フィンガープリント対策を開始すると。 / “Chromium Blog: Building a more private web: A path towar…” https://t.co/5KUNRSZbIZ」 / Twitter
- Chromium Blog: Building a more private web: A path towards making third party cookies obsolete
- Chromeは2年以内にサードパーティーCookieのサポートを廃止する方針 - GIGAZINE
- Yosuke FURUKAWAさんのツイート: "Chromeでは今後、CookieでSameSiteがついていないものは、SmaeSite=Laxとして運用する、つまりCross siteではtop level navigationの時のみcookieがつき、mug, ajax通信ではcookieがつかない、これはまた広告、解析系のアプリ大変だな、、、 / “SameSite cookies explained…” https://t.co/kxFxPWHksk"
- SameSite cookies explained | web.dev
- Yosuke FURUKAWAさんのツイート: "s/mug/img"
- ゆきさんのツイート: "chrome://flagsから「Cookie deprecation messages」を有効にすると、CookieのSameSite attributeのデフォルト変更によって影響を受ける場合に警告でる… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/6ShlLPJbrb や https://t.co/MnXqfFzePf を同一URLでの日/英対応に。(従来は後者は /en/ 付与) 要点は、apacheで cookie の lang指定あれば、prefer-language に設定。 (SetEnvIf Cookie "lang=([a-zA-Z]+)" prefer-language=$1) あとはjs側の言語切り替えでcookieにlang=en等の設定」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「カード認証の3Dセキュア、3rd party cookieに依存してたりするから、FirefoxのTracking Protectionと相性悪いことあるし、Chrome 80以降で起きるという話であれば、SameSite: Secureつけてないんだろうなとしか」 / Twitter
- mizchiさんはTwitterを使っています: 「PSL使わずにサブドメインからtld1 のcookie の書き込みを禁止する方法ってあるんだっけ」 / Twitter
- mizchiさんはTwitterを使っています: 「CSP の cookie-scope 使えば良さそうかな。ただ古いブラウザは認識しないだろうからセキュリティ目的で isolate したい場合は死んじゃうな https://t.co/Mds9dHOW3c」 / Twitter
- Content Security Policy: Cookie Controls
- Yosuke HASEGAWAさんはTwitterを使っています: 「ブラウザーの持っているCookie(その他)をサーバー側の意思によって削除するためには、サーバーからClear-Site-Dataを送ればいい…と思ったけどSafari… https://t.co/ho9xA0AuYR」 / Twitter
- Clear-Site-Data - HTTP | MDN
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Chromeでクッキーをすべてブロックすると、クライアント側に情報を保存するすべてのAPI (localStorageやIndexDBなど) が利用できなくなる。これらはDOMExceptionを発生させるので、スクリプト側はあらかじめ対処しておく必要がある。 https://t.co/6XcZjFI8AP」 / Twitter
- Things not available when someone blocks all cookies
- Google が使用している Cookie の種類 – ポリシーと規約 – Google
- HTTP cookie - Wikipedia
- HTTP cookie - Wikipedia
- 2種類のcookie~サードパーティとファーストパーティの違い | マーケティングを支援するDigital Cloud Platform
- Session Cookie(セッションCookie)の使われ方とは? – IMnews
- アクセス解析におけるクッキー(Cookie)の仕組みを解説【ちゃんと理解できてる?】|アクセス解析ツール「人工知能AIアナリスト」ブログ
- 【GA_utmクッキー完全把握】cookieの種類と仕組み | やる夫で学ぶGoogleAnalytics
- » 反則スレスレ !? Super Cookie とは TECHSCORE BLOG
- クッキー(Cookie)について
- HTTPクッキーのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Facebook の「いいね」ボタンがあるサイトに行くと、トラッキングされているかに見える件 | @_Nat Zone
- Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Blog
- SameSite - OWASP
- super cookie - Google 検索
- Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
- Cookie規制でプライバシーの問題はどうなる? - IIJが個人情報保護法改正大綱を解説 (1) Cookieってなんだっけ? | マイナビニュース
- 牧歌的 Cookie の終焉 | blog.jxck.io
- Cookieレシピ - SameSiteとそれを超えて - Rowan Merewood氏がweb.dev Liveにて
- Google Developers Japan: Chrome におけるスキームフル Same-Site の適用について
- マイクロソフトの「Edge」ブラウザーがGoogleの広告技術「FloC」を無効化、事実上の「NO」か | TechCrunch Japan
- FLoCとはなにか - ぼちぼち日記
- 「Firefox 96」がリリース ~「Cookie Policy: Same-Site=lax」をデフォルト有効化 - 窓の杜
- なぜ我々はsession.cookieを変更しなければならなかったのか - BASEプロダクトチームブログ
- しのゆ@会える酒カスエンジニアさんはTwitterを使っています: 「認証cookieにsecure属性が使われていない。これみんなやらかしがちなやつ。 あとユーザーリソース識別するidは絶対にリクエストから引かないようにね。ちゃんと認証cookieと紐付けられているユーザーからリソースを引こうね。 エンジニアおじさんとの約束だぞ (なんかみた)」 / Twitter
- 水無月ばけらさんはTwitterを使っています: 「「Cookieにsecure属性がなくても大きな危険はない」というのは、「サービス自体、HTTPSでなくても大きな危険はない」という話と同じで、そう考えるなら、そもそもHTTPSにする必要がありません。 HTTPSで提供し、ユーザーに対「HTTPSですよ」と見せているのにCookieにsecure属性がないのは脆弱性です。」 / Twitter
Header
- Structured Field Values による Header Field の構造化 | blog.jxck.io
- Cache-Control: must-understand ディレクティブとは何か | blog.jxck.io
- HTTPレスポンスボディを送ってから、Cache-Controlを変更可能にする仕様 - ASnoKaze blog
- "HTTPヘッダ"が指すものとは - Qiita
- 「Firefox 87」からはプライバシー保護のために新たなリファラポリシーが採用される - GIGAZINE
- クライアント証明書を中継するClient-Certヘッダの提案仕様 - ASnoKaze blog
- 大体の位置情報を示すSec-CH-Geohashヘッダ - ASnoKaze blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JavaScriptを使わないブラウザ特定 (fingerprinting)。HTTPのAccept-*ヘッダや、CSSの@ mediaセレクタを使うことで画面サイズ、インストールされているフォント等を使っている。あとはブラウザごとのCSSパーザのクセも利用できる。 https://t.co/UrUoQM7ppn」 / Twitter
- No-JavaScript fingerprinting
- HTTPヘッダーのX-は非推奨と言うけれど・・・
- HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
- ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ - ASnoKaze blog
- HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14) - ASnoKaze blog
- POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
- CDNのキャッシュを制御する CDN-Cache-Control ヘッダ - ASnoKaze blog
- HTTP PUTリクエストにContent-Rangeヘッダを付けられるか? - ASnoKaze blog
- Sec-CH-IP-Geoヘッダの仕様 - ASnoKaze blog
- クエリパラメータ付きURLのキャッシュを改善する No-Vary-Search ヘッダ - ASnoKaze blog
- セキュリティ関連のHTTPヘッダを一括指定する Baseline ヘッダ - ASnoKaze blog
URL
URI
- Kazuho OkuさんはTwitterを使っています: 「まとめようとする努力良いし、searchとhashについてqueryとfragmentだとツッコミ入れてる人いるけど、JavaScriptだとそう呼ばれてるし誤解なく通じるので、まあ良いと思う。問題はresource。URIにおいてresourceと言った場合はoriginからqueryまで、あるいはfragmentを含む全体を指すので」 / Twitter
- bokken✏さんはTwitterを使っています: 「URL の各パーツの名称、わかりやすい。/ https://t.co/g54eoh63v3 https://t.co/hZnQBdwWym」 / Twitter
- URL parts naming
- PatinebootさんはTwitterを使っています: 「@bokken_ クエリーとフラグメントは、名前が違ってます😊」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「(そもそもUniform *Resource* Indicatorなので)、これは混乱を呼ぶ」 / Twitter
- らんぶるさんはTwitterを使っています: 「@kazuho ressource (原文ママ)に当たるところは実際なんですかね?」 / Twitter
- RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
- Kazuho OkuさんはTwitterを使っています: 「これはひどい間違い… ひどすぎる…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「I は Identifier ですね」 / Twitter
uriparser
- uriparser - RFC 3986 URI parsing library
- uriparser 日本語情報トップページ - OSDN
国際化ドメイン
Mozilla
- Network.IDN.whitelist.* - MozillaZine Knowledge Base
- IDN (International Domain Name) を使用した偽装サイトへの対策 Firefox編 - seclan のほえほえルーム
- Firefox で日本語ドメインの .com / .net が punycode で表示される理由
- 国際化ドメイン名の表示が有効なトップレベルドメイン
- IDN-enabled TLDs — Mozilla
- network.IDN.whitelist.
- 人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE
- なかのんクエストさんのツイート: "これ、実装当時から分かってたけどどうしようもない話だなって関係者言ってたのに、なんで今頃話題に? / ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT https://t.co/Jc1kEqaOb1"
- ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT
- なかのんクエストさんのツイート: "そもそも、аррӏе.com みたいなのを通しちゃうようなTLDは常にPunycode表示にしようってことで話が決着してて、.comに関しては当初はホワイトリストに入ってなかったけど、登録のルールが改善したとかでホワイトリスト入りしたんじゃなかったっけか?"
- なかのんクエストさんのツイート: "で、TLDレベルでは安全でも、スラッシュっぽい文字とサブドメインを利用するとドメイン偽装が簡単だってことで、スラッシュに見えかねない文字は全てブラックリストに入れておいて、それにひっかかったら強制的にPunycode表示にするってのは私が実装した。"
- なかのんクエストさんのツイート: "ちなみに、私がMozillaで国際化ドメイン名周りのバグ修正やってた当時のNetworkモジュールのオーナーでレビューしてくれてたのが、初期から現在に至るまでGoogle Chromeの責任者やってるあの人だったりする。"
- なかのんクエストさんのツイート: "とりあえず変なアイデア出てたんで、日本語だと無意味だし、ハイフンに似た文字だとどうしようもないとだけ書いておいた。 / https://t.co/PkF5AsjROC - IDN Phishing using whole-script confusables on… #もずでぶ"
- Rockridgeさんのツイート: "Firefoxの国際ドメインネーム(IDN)表示アルゴリズムについてFAQ形式で解説したもの。 / “Gerv's IDN Display Algorithm FAQ - MozillaWiki” https://t.co/WNBO8LRsAP"
- Gerv's IDN Display Algorithm FAQ - MozillaWiki
- なかのんクエストさんのツイート: "Firefoxの場合、今では信頼出来ない所も混じってるかも知れないけど、network.IDN.use_whitelistをtrueにして、IDNサポート当初のポリシーを復活させる方が安全かなと思ったけど、このpref、もう効かないっぽいな……"
- Gecko1.8相当製品において修正したバグ - WebStudio
Google
- IDN in Google Chrome - The Chromium Projects
- なかのんクエストさんのツイート: "Chromeのホモグラフ攻撃対策へのパッチ、頭痛い。指摘されたケースに対して限定的に対応しただけで、日本語の似た文字や記号の似た文字は無視、キリル文字でASCIIの小文字に似てる文字だけ対応。こういういい加減なの、嫌なんだよな…… https://t.co/jjXIIMf66I"
- GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE
- 国際化ドメイン名(IDN)に関する資料 - JPNIC
- IDN関連RFC翻訳
- 新宿.com
- www.jdna.jp/survey/rfc/rfc3491j.html
- StringPrep - ICU User Guide
- JPRS DNS 関連技術情報
- IDN Info by JPRS / 標準化状況
- FAQ - International Domain Names (IDN)
- https://tools.ietf.org/rfc/rfc5895.txt
- 国際化ドメイン名のプロトコル改定に関する技術動向 ~第74回IETF Meetingにおける話題から~ | 2009年 | ドメイン名関連会議報告 | ドメイン名関連情報 | JPRS
- IDNA2008
- 大石哲之(Bitcoin,Blockchain)さんのツイート: "これはやばい。 binance偽サイト。 見分けがつかないです… "
- 楠 正憲さんのツイート: "あーあURLにASCII以外のUnicodeを認めたせいでこんなことに。当時からこうなると分かってたのに。しかもTLS証明書どこが発行したのか… "
- soushi (・゚∠)ばななさんのツイート: "ありがとうございます。試すとpunycodeが表示されました。 尚、Vivaldiは無条件でpunycodeで表示でした(設定はなさそう?)。あとChromeは調べると独自に定義したPolicyを通ればunicode表示にするんですね…。… "
- soushi (・゚∠)ばななさんのツイート: "ちなみにこちらのページに色々書いていました。 https://t.co/GVB16d7WQh… "
- NOTWORK.JP-SA:050401-00 JPRSのIDN実装上の日本語文字集合類似字形の問題
- Old Blog
- libidn2-2.0.4
- libunistring-0.9.9
BASE32
- 三十二進法 - Wikipedia
- base32 ‐ 通信用語の基礎知識
- 18.12. base64 — RFC 3548: Base16, Base32, Base64 データの符号化 — Python 2.7.x ドキュメント
- Man page of BASE32
protocol-relative URL
- HTMLやCSSでのプロトコル表記(http:、https:)の省略について: 小粋空間
- いい加減、<script src="http://.. と書くのはやめましょう · DQNEO起業日記
- protocol-relative URL
API
- Takeshi Kano 鹿野 壮さんはTwitterを使っています 「モダンブラウザでURLの文字列をつくるとき、検索パラメーターのために?や&を手動で書いたり、エンコード(encodeURIComponent())をするべからず。 組み込みのURL APIをおう、という話。 #JavaScript https://t.co/vnxYXXma6Q」 / Twitter
- Steve SewellさんはTwitterを使っています 「PSA: please stop using strings concatination to create and edit URLs in JS All major browsers have great built-in functionality for URL parsing & manipulation: https://t.co/uH6gH0Bs3E」 / Twitter
- Steve SewellさんはTwitterを使っています 「Browser support: https://t.co/7rYKe4Dhne Learn more: https://t.co/1vl4rN2aos https://t.co/ZjKZfG210J」 / Twitter
- URL API | Can I use... Support tables for HTML5, CSS3, etc
- URL() - Web APIs | MDN
News
- Googleはウェブを安全にするために「URLをなくすべき」と考えている - GIGAZINE
- URLがなにかおかしい……「Google Chrome 69」に加えられたある小さな変更が話題に - やじうまの杜 - 窓の杜
- Chrome 90ではアドレスバーからウェブサイトへ接続する際にデフォルトで「https://」を使用する - GIGAZINE
- GoogleがChromeに導入予定の「URLを非表示にする機能」を断念する可能性 - GIGAZINE
- 過去のリンクが危険なサイトに乗っ取られているのを検知するシステムの作成方法 - GIGAZINE
- なぜハイパーリンクは青色で表示されるのか? - GIGAZINE
- Webページの特定テキストへ直接ジャンプしてハイライトするリンクの作り方【レビュー】 - 窓の杜
blog
- URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖い情報科学
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- WHATWG URLの実装がNodeに来たと聞いたのでURLについてメモしておく - 水底の血
- hxxp URIスキームの仕様化 - ASnoKaze’s diary
- https://tools.ietf.org/id/draft-salgado-hxxp-00.txt
- URIに含まれるIPv6ゾーンID - RFC 6874:Geekなぺーじ
- なぜChromeはURLを殺そうとするのか? (Chrome Dev Summit 2019) - ぼちぼち日記
- URLリソースの非推奨を示すDeprecationヘッダ - ASnoKaze blog
- ホスト名の最後が数字なURLの扱いについて - ASnoKaze blog
blog.jxck.io
- Node v7 で入った WHATWG URL 実装について | blog.jxck.io
- Scroll To Text Fragment と :~:text | blog.jxck.io
- Scroll to Text Fragment を用いたサイト内検索の実装 | blog.jxck.io
Qiita
- リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる - Qiita
- mod_auth_openidc の脆弱性(CVE-2019-14857)について - Qiita
POSTD
- 私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | コンピュータサイエンス | POSTD
Wikipedia
- Uniform Resource Identifier - Wikipedia
- Uniform Resource Identifier - Wikipedia
- Punycode - Wikipedia
- Punycode - Wikipedia, the free encyclopedia
- Internationalized Resource Identifier - Wikipedia
- Internationalized resource identifier - Wikipedia, the free encyclopedia
- 国際化ドメイン名 - Wikipedia
- Internationalized domain name - Wikipedia, the free encyclopedia
- Uniform Resource Locator - Wikipedia
- URL - Wikipedia
Twitter
Mozilla
- Rockridgeさんのツイート: "Fx47:URLのバックスラッシュはスラッシュとして扱われる。 / “652186 – Implement URL Standard's backslash replacement ("\" is treated as "/" …” https://t.co/2LvuyK7pdk"
- Rockridgeさんのツイート: "WebKit trunkに実装された新URLパーザが、仕様適合性に優れているという話。セキュリティやパフォーマンスにも配慮しているという。 / “URL Parsing in WebKit | WebKit” https://t.co/jiTlG4TTLU"
- Rockridgeさんのツイート: "Fx53:新ロゴのとおり"moz://a"と入力すると、特定のWebページにリダイレクトされる仕組みが実装された。なお、"moz://"のURIスキームもIANAに暫定登録済み。参照:https://t.co/047yEEXTh7 https://t.co/abV54zdcfA"
- Mozilla Firefox、moz:プロトコルをサポート | スラド idle
- Rockridgeさんのツイート: "Fx55:複数のa要素がフラグメント識別子の異なる同一ページを指定し、かつ、target属性の値も同一である場合、リンクをクリックしてもタブが切り替わらない場合がある問題を修正。 / “1303838 - Not switch …” https://t.co/IKBc84zEiO"
- PC Watch若杉(4K修行僧)さんのツイート: "Amazon.co.jpでのお買い物に「ドコモ ケータイ払い」が対応、という件名のリリースが来て、全角URLじゃサイトの表示すらできないだろ! って突っ込もうと思いつつも、一応試しにChromeに全角URLをコピペしたら、自動的に半角に変換して表示された。Chromeやるな……"
- Rockridgeさんのツイート: "Fx56:URLのエンコードを内部的にPunycodeで行うようにした。 / “945240 - Change nsStandardURL's internal hostname representation to punyco…” https://t.co/UOakWoFgQ3"
- Rockridgeさんのツイート: "Fx58:PlacesデータベースがURIのマッチングに用いるハッシュの計算が高速化されたが、データベースの互換性が部分的に失われているという。参照:https://t.co/8DsWeEWlO8 / “Firefox/Meet…” https://t.co/WBJYjqDEy1"
- Makoto Kato ︎︎さんのツイート: "いろんな理由があって、location.hashのsetterのコードを見てるんだけど、extensionとかOSに対してURI変更に対してのinterceptを許可するとただ遅くなるだけなんだけど、他のブラウザどうしてんだろ"
histric-1
- Ryou Ezoeさんのツイート: "Chromium、バカが開発しているのか? https://t.co/l1jXQLorUX"
- 881410 - Incorrect transforms when stripping subdomains - chromium - Monorail
- Ryou Ezoeさんのツイート: "www.はドメイン名の一部であって省略できるものではないだろ。"
- Ryou Ezoeさんのツイート: "Chromium、https://t.co/nUchwbgK6Sのwww.を二重に除去してexamplecomにするらしい。完全にバカしかいないのでは。 https://t.co/l1jXQLorUX"
- Ryou Ezoeさんのツイート: "Chromiumはfield trialsが常に1コア分のCPU時間を食うようになった頃から使ってないが、完全にIEと同じ立ち位置に堕ちたな。"
- Ryou Ezoeさんのツイート: "Twitterもバカが開発しているらしくwww. www. https://t.co/rY28fpJshPの最初のwww.を除去する。"
- Ryou Ezoeさんのツイート: "まあ、そもそもサブドメインなんてものがあるのが根本的にダメなんだがな。世の中にはhttps://t.co/UNnazKKeONとかに騙される人間が多すぎる。"
- Ryou Ezoeさんのツイート: "あー、なるほど。これGoogleの戦略的なものかもしれないぞ。GoogleはURLを廃止したがっている。Googleがすべてのインターネットのトップページとして機能することを目論んでいるのか。"
- Ryou Ezoeさんのツイート: "GoogleがURLを廃止したがっているという推測、あながちバカにできないぞ。https://t.co/6hq8jsQhFO"
- Google wants to get rid of URLs but doesn’t know what to use instead | Ars Technica
- Kazuho Okuさんのツイート: "URLのドメイン名省略の話、セキュリティの観点からいうと、伝統的に https://t.co/YQt384onj7 のメアドを利用して www .example.com のDV証明書を取得することが認められてきた以上、www を表示で省略しても良さそう(OV,EVも認証単位より細かいホスト名表示は不要)"
- 相沢陽菜さんのツイート: "Chrome のサブドメイン省略表示(www や m が消える)って、頭から消していって消せなくなったら終わるんじゃなくて、サブドメイン/ホスト名部分を . で分割して、www や m を filter して . でくっつけるのか…(どこに現れても消える)"
- Kazuho Okuさんのツイート: "「企業が開発しているソフトウェアは信頼性が高い」と言われた場合にも「OSSは多くの目があるから信頼性が高い」と言われた場合にも便利に使える反例ですね。まあ仕様はあれでいいと思うけど… "
- SKSの申し子さんのツイート: "Chromeのサブドメイン省略,勝手にアレな挙動をデフォルトにしたのも酷いけど,途中にあるのも省略しちゃったりするの,本当に雑に実装したんだな,という所が酷い"
- Kazuho Okuさんのツイート: "Chromeのサブドメイン省略は修正が間に合わなくていったん無効化されたというのが正確。他のブラウザも(より限定的な形で)やってる。中間にラベルの省略は wikipedia のモバイルサイトを念頭に意図的に導入されたということは https://t.co/sOBRVz2E29 あたりみるとわかりますね"
- 881694 - www subdomain is removed even when it isn't the leftmost subdomain - chromium - Monorail
- Kazuho Okuさんのツイート: "URLの一部を表示するのはセキュリティ上の要請だし、従ってホスト名を全部表示する必要はないし、複数の管理者が同居するようなドメインならpublic suffix listに登録されてるはずで、その場合、他のウェブブラウザはサブドメインを省略しないしChromeもそうなる方向なんですよ"
- Makoto Kato ︎︎さんのツイート: "Chrome 69でのwwwとかmのサブドメイン省略の話、70でreshipするみたいだけど、細かい話はまだ決まってないみたい。さて。。。 https://t.co/f1IDsRz0Sd"
- 883038 - Feedback: Eliding www/m subdomains - chromium - Monorail
- Kazuho Okuさんのツイート: "セキュリティに関するUIは、1) 簡潔で 2) ブラウザ間で統一されているほうが望ましいと考えます… "
- mattnさんのツイート: "サブドメインが付いてない無いサイトはオフィシャルサイトだと認識する人が一定数いると思っていて、一括してセカンドレベルまでしか表示しないという事ならば(まだ)納得しますが、固定なのであればユーザが混乱するだけな気がしています。… "
- Kazuho Okuさんのツイート: "一般ユーザは www の有無でサイトの区別をしない、という前提なんでしょうね。www の有無を無視するというのは、DV証明書発行の伝統的なプロセスでもそのとおりです… "
- Rockridgeさんのツイート: "GoogleがChrome 69においてアドレスバーから"www"と"m"のサブドメイン表示を消したのは、URLをわかりやすいものにして、ユーザーに注意を向けてもらおうという考えが背景にあったらしい。 / “Chrome tea…” https://t.co/WspDOha7GI"
- Rockridgeさんのツイート: "Chrome 70では"m"のサブドメイン表示を復活させる一方、"www"は隠したままにする模様。 / “883038 - Feedback: Eliding www/m subdomains - chromium - Mono…” https://t.co/6OBz4qUxYH"
- ゆきさんはTwitterを使っています: 「ドメイン名にラテン文字など紛らわしい文字を使う、IDNホモグラフ攻撃については、W3Cで対策の議論があったり https://t.co/gL9HLKBsDP」 / Twitter
- Anti-Homograph-Attacks -- 18 Sep 2019
- Kazuho OkuさんはTwitterを使っています 「(9年前の記事だけど)引用英文のとおりSHOULD encodeなので、エンコードしない場合は運用上問題が生じる可能性があることに留意しろという話で、相対URLでschemeの区切りと区別がつかない問題もまさに留意点のひとつなのかな / https://t.co/VKuQRxisSt」 / Twitter
- HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。 - こせきの技術日記
- Kazuho OkuさんはTwitterを使っています 「Unixのファイルパスにおいて、 /foo/bar/baz /foo/bar/../bar/baz の両者が違うファイルを指すようなケースはあるか? あるならば実際にそういうディレクトリ構成を作ってみよ っていうのは、理解度を試すいい問題だと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「これ、URIのパスレゾリューションでは、必ず同じになるのよね」 / Twitter
- ymmtさんはTwitterを使っています 「@kazuho symlink ありですか?(ほぼ答えかも)」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「cd fooでシンボリックをたどったあとに cd .. が上のディレクトリじゃ無くてシンボリックリンクを巻き戻る動作をするbashは非常に嫌。 pwd しても本当の絶対パスは表示されないし。」 / Twitter
- Kaz Nishimura, C++UnitX (cppunitx) 作者さんはTwitterを使っています 「@a_saitoh もしかして set -P」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@a_saitoh わざわざ cd `pwd -P` するのが面倒です。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「世界でもっとも短いURL - http://ai./ など。TLDだけでURLになれるとは知らなかった。 https://t.co/TwAR5OQ4ut」 / Twitter
- Shortest URLs on the Internet | James Williams
- Delegated Strings | ICANN New gTLDs
- data URIs | MDN
- ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
- URL Standard (日本語訳)
- draft-ruby-url-problem-01 - URLの問題提起と動向
- jacketizer/libyuarel: Simple C library for parsing URLs with zero-copy and no mallocs.
- 認証しないWeb認証 限定公開URLのセキュリティについて考える - Google スライド
PSL
- Libpsl Reference Manual: Libpsl Reference Manual
- rockdaboot/libpsl: C library for the Publix Suffix List
- 「地域型JPドメイン名」新規登録終了、11月から「都道府県型JPドメイン名」 -INTERNET Watch
- 「都道府県型JPドメイン名」新設へ、2012年後半から登録受け付け開始 -INTERNET Watch Watch
- 【やじうまWatch】東京都の税金のページと思いきや……個人の善意で悪用が防がれている公式サイト風ドメインが話題 - INTERNET Watch
- PSLってどうよ?
- Public Suffix List
- PSLってどうよ?
- PSL
- DailyJS | PublicSuffixList – PSLに基づいてドメイン名を検証 | JSお散歩
- cmtt/publicsuffixlist: A validator for domain names and top level domains, driven by publicsuffixlist.org and ICANN's generic TLDs.
- dnsops-jp-20080709.pdf
- Geekなぺーじ:「欠陥ドメイン名」が世界的に増えそうな件について
- vyv03354さんのツイート: "JPRSが都道府県型JPドメイン対応のためにPSLの更新を依頼してた。 https://t.co/eqdnpJfV どうやら本当に地域型ドメインで使われている市区町村名を全部登録するつもりらしい"
- 763208 - Update .jp entry in PSL
- 本の虫: クッキーモンスター
- Rockridgeさんのツイート: "Public Suffix Listはeffective top-level domain(eTLD)とも呼ばれるドメイン名のリストである。Mozillaの発案だが、現在はコミュニティによって維持されている。 / “Public…” https://t.co/1TIyHoJTRd"
- 本当は難しいPSL - Speaker Deck
- Public Suffix List の用途と今起こっている問題について | blog.jxck.io
TLS
Kernel TLS offload
- Kazuho OkuさんはTwitterを使っています: 「linuxのkernel TLS、send bufferに書くタイミングでTLSレコードに暗号化してるんだろと思ってたけど、送信タイミングで暗号化(再送の場合は周辺バイトも持ってきて再度暗号化)してるのか。凝ってるなー データセンタとかパケロスゼロなケースだと、このほうが速度出るしな。メモリコピーは悪 https://t.co/wLisLZ5fHE」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「https://t.co/lQE2KC5M1N」 / Twitter
- Kernel TLS offload — The Linux Kernel documentation
- Kazuho OkuさんはTwitterを使っています: 「パケロス1%だと、TLSレコードサイズが10パケットだとして、0.1%でaead tagロスしてその場合のコスト10倍だから、暗号化のオーバーヘッドは、0.9+0.1*10=1.9%の増幅率。L1D$に収まらないメモリコピーはAESのスループットより一桁早いが二桁ではないので、なるほど、いけるのか」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「まあしかしコピーのコストは暗号化で隠蔽できるだろうし、無駄な可能性はあるかな。ゼロコピー化による局所性向上はあるし、NICでHW暗号化しようと思うとこの設計になるし、ソフトウェアでやる場合でも無視できるコストだと言えそう」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「BBR必須なほどロス率高いネットワークでハードウェア支援得られないようなケースだとダメ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「メモリコピーは悪」ごもっとも。 (あと無駄なバッファ初期化なども) クラウド全盛になってから、そんなミクロを気にするのはカーネル/低レイヤーライブラリ作者だけで、利用者レイヤーは富豪に使ってCPU足りなきゃスケールアウトで十分、という風潮になってきた印象ある。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「もともとpicotls使ってるところを、がんばってkTLS対応したら速度が20%弱落ちて、えーまじかーと思ってOpenSSLと比べてみたら、OpenSSLは更に10%くらい遅かった。なんだ遅いの同士の争いか...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「perf report見ると、ktlsのソフトウェア実装は、ハードウェア実装と違ってパケット送信タイミングではなく、sendfile呼ばれたタイミングで同期的に暗号化してるんだけど、メモリ確保で11.7%CPU時間使ったりしてる https://t.co/aANl3zsoUw」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「まーあとaesgcm実装が理論値出てない可能性もありそう。aes 4ブロックのスティッチング&インターリーブだから、理論上いけなくはなかった気もするけど実際はgcm側が厳しいと思う。OpenSSLは6ブロック、NSSは8ブロック、picotls fusionはパケット単位でgcmの中間演算することでgcmの負荷を減らしてる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「kTLSに落胆したけど、よく考えたら、h2o内でOpenSSL使う場合(つまりTLS/1.2の場合)だけkTLSをオンにしたら、速度早くなるし、僕はOpenSSL使うパスを今後最適化しなくてよくなって、ウィンウィンやん」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「と思ったが、OpenSSLに traffic secret と sequence number だけ取る API あったかな。SSL_sendfile みたいなラッパーしかないとなると面倒だな...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「OpenSSLのkTLS対応、BIO経由で抽象化されたAPIによる鍵の受け渡しだから、独自のBIOもってるH2Oなら鍵を受け取って好きにできそう。 つまり、OpenSSLからH2Oで鍵を受け取って、picotlsにつっこめば、kTLSより速くなる...」 / Twitter
- FadisさんはTwitterを使っています: 「LinuxカーネルのTLSサポートを拡張する提案がなされている話。httpsはじめとするネットワークセッションの暗号化に使われるTLSは通常ユーザ空間で暗号化と復号が行われるが、eBPFでユーザ空間に届く前にパケットをフィルタしたいような場合カーネル空間で復号する必要が生じる https://t.co/MeTrba2Q6o」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxカーネルという更新が煩雑になりがちなソフトウェアに脆弱性が出がちなTLSの実装を積む事には反対が多い。そこでLinuxではTLSのうち複雑で脆弱性を出しがちなハンドシェイクをユーザ空間で行なった後、比較的簡素な共通鍵によるデータの暗号化、復号だけをカーネルに任せる仕組みが用意されている」 / Twitter
- FadisさんはTwitterを使っています: 「この仕組はまずユーザ空間でハンドシェイクが必要なため、カーネル内でTLSのセッションを開始できない。この事はNFS等のカーネル内に実装されたRPCをTLSに載せる事を困難にしている。そこでカーネルにハンドシェイクを積まずにカーネルが必要な時にTLSを開始できるようにする拡張が提案されている」 / Twitter
- FadisさんはTwitterを使っています: 「提案されている手法はカーネル内でTCPのコネクションを作った後新設されるTLSを開始する関数を呼ぶ。この関数はユーザ空間の特定の実行可能バイナリを実行する。このユーザ空間プロセスはTLSのハンドシェイクを行い共通鍵をカーネルに返す。要するにhotplugに似た方法でカーネル空間での実装を回避する」 / Twitter
- Fedora、kTLS実装によるGnuTLSの高速化をFedora 38で実現へ | gihyo.jp
- Compact TLS 1.3の提案仕様 - ASnoKaze blog
- data loss due to RST when using HTTP/1 & TLS 0-RTT · Issue #2534 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「はー lingering close とか気にしないで生きていけるつもりだったんだよ。この部分実装した時点では、それで問題なかったんだよ。。。 https://t.co/qy2ivYAxJ3」 / Twitter
- RFC 8996でTLS1.0とTLS1.1が廃止に - ASnoKaze blog
- FadisさんはTwitterを使っています 「3月にTLS 1.0とTLS 1.1をTLSの仕様から落とすRFCが出てるんだけど、TLSは新しいアルゴリズムの追加、利用方法の追加、安全でなくなったアルゴリズムの禁止を何度も行なってきたからこのRFCによって影響を受ける既存のRFC(Updates)が84個も列挙されてる https://t.co/Q33QG8CCTP」 / Twitter
- RFC 8996: Deprecating TLS 1.0 and TLS 1.1
- Chromeが全てのウェブページをHTTPS優先で読み込む「HTTPSファーストモード」を導入予定 - GIGAZINE
- TLS Encrypted ClientHello(ECH) を BoringSSLで試してみる - ASnoKaze blog
- Google Chromeが「アクセスしているサイトが安全である」と表示しないように仕様の変更をテスト中 - GIGAZINE
- レガシーとなった TLS 1.0/1.1 廃止までの道のり - クックパッド開発者ブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「STARTTLSは使うべからず。STARTTLSの実装は非常にバグが多い。2011年にPostfixで発見されたSTARTLS脆弱性はいまだに全サーバの2%で発見されている。LDAPなど途中から暗号を有効化できるプロトコルはどれも同様の危険がある。クライアント・サーバともに暗黙のTLSを使うべき。 https://t.co/yhzWLYPP9f」 / Twitter
- NO STARTTLS
- 「HTTPSはどのようにして人々を守るのか?HTTPSさえあればウェブは安全なのか?」についてMozillaが解説 - GIGAZINE
- DNS HTTPSレコードを使用したWebSocketサポートの通知 - ASnoKaze blog
- golangで作るTLS1.2プロトコル
- ローカル環境でもHTTPS接続する理由と方法 | フロントエンドBlog | ミツエーリンクス
- TLSの復号に用いる SSLKEYLOGFILE のフォーマット提案仕様 - ASnoKaze blog
Resource bundles
- amp-script の実用性について考える - mizchi's blog
- WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
- WebPackaging の Signed HTTP Exchanges | blog.jxck.io
- Webbundle によるサブリソース取得の最適化 | blog.jxck.io
- Webページのサブリソースを一つにまとめる Resource bundles とは - ASnoKaze blog
- Kazuho OkuさんはTwitterを使っています 「「AMP対応のWebページ」ではなく、「速いWebページ」を検索結果上位に表示するようになるという話。 / https://t.co/FWqQyTM4ZJ」 / Twitter
- The End of AMP – lafoo – ramblings about the online world
Better Ads Standards
GIGAZINE
- なぜMozillaはFacebookの「研究目的のデータ収集がユーザーのプライバシーを危険にさらしている」という主張に反論しているのか? - GIGAZINE
- CIAやNSAなどの情報機関は「危険な広告」による被害を避けるために広告ブロッカーを使っている - GIGAZINE
- Facebookのリンクは「クリックする瞬間」だけ別のリンクにすり替えられる - GIGAZINE
- 広告ブロックは著作権侵害ではないという判決が下る - GIGAZINE
- GoogleとMicrosoftが大量のスパム広告をDuckDuckGoなどの小規模検索エンジンに表示させていることが判明 - GIGAZINE
- Googleタグマネージャーの機能で広告ブロッカー&ブラウザのプライバシー保護の仕組みが回避されている - GIGAZINE
- Firefoxの検索バーに広告表示機能が実装されたとして話題に - GIGAZINE
- 「広告ブロック」をうたうブラウザ拡張機能が実際はページに広告を挿入していたことが判明 - GIGAZINE
- 使用中のGPUから個人を識別できる技術が登場、同じ型番のGPUでも正確に見分けられる - GIGAZINE
- 宗教・性別・性的嗜好に基づいてユーザーを広告のターゲットにすることを禁止する「デジタルサービス法」がEUで合意へ - GIGAZINE
- GoogleがCookieの許可・拒否画面をリニューアル、196億円の罰金を受けて - GIGAZINE
- 「デジタル広告における競争と透明性に関する法」法案提出、成立すればGoogleやMetaは広告事業分割へ - GIGAZINE
- Googleが広告事業の独占禁止法訴訟を今後数週間で起こされる可能性あり、Googleの譲歩策が拒否されたため - GIGAZINE
- 広告ブロッカーの99.99%が使っているフィルター「EasyList」がDDoS攻撃を受けて配信不能に - GIGAZINE
- Googleが広告ブロックに使われるVPNの規制で「アプリの収益化に影響を与える可能性のある広告をブロックしない」ことを開発者に要求している - GIGAZINE
- The Initial Better Ads Standards - Coalition for Better Ads
- Chromeブラウザの広告ブロック機能、7月9日に世界で有効に - ITmedia NEWS
- Google、Chromeブラウザに劣悪広告ブロック機能を追加へ - ITmedia NEWS
- GoogleやFacebook、IABなど16組織がオンライン広告改善団体を設立 - ITmedia NEWS
- Web広告の仕組みとは? 種類別の表示方法・効果も解説 | TECH+
- Google、Chromeブラウザでの劣悪広告ブロック開始、仕組みを説明 - ITmedia NEWS
- 7594591200220899443さんはTwitterを使っています 「Facebookが邪悪もさることながら基本的にChromeは広告屋が作ってるのでこういう挙動を改善する動機に乏しいというブラウザ側の座組みの問題が大きいという印象です。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「これだと「怪しげなURLを踏まないようにしましょうね」が効かない。怪しいかどうか押すまでわからんからだ。これは極めて悪質である」 / Twitter
- Michal ŠpačekさんはTwitterを使っています 「When you click the FB link, but before the browser loads the page, they change the HREF to l.facebook.com so for the browser, it seems like you clicked the l.fb link. Works with right-click as well, maybe because "copy link". And when you move the mouse back again… Sneaky. https://t.co/6Yfl3de1V8」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「ひえーFacebook、Aタグの上でマウス押下した瞬間にhref書き換えてんのか!で次の瞬間マウスクリックするとその書き変わったURLを踏む」 / Twitter
- 広告ブロッカーが勝手にアフィリエイトを挿入。悪意あるブラウザの拡張機能に要注意 - PC Watch
- Makoto Kato ︎︎さんはTwitterを使っています 「AMP、トラッキングスクリプト含んでるし、なんでああなった感強い (Adブロッカー使うと動かないケース見ながら)」 / Twitter
- Google、FLoCに代わる"脱サードパーティCookie"技術「Topics」公開 | TECH+
- Topics API: Relevant Ads without Cookies - The Privacy Sandbox
- jkarlin/topics: The Topics API
- よねまり社長|ファッションバイヤーさんはTwitterを使っています: 「これは小ネタなんですが、Googleで「ads settings google」と検索してみてください。Googleが知っている、「あなたの情報」が出てきます。年齢や性別、好きな音楽、あれこれ…怖っ。間違った情報が含まれていた場合は「Googleさんもまだまだやな」って思いながら見ると面白いので暇つぶしにどうぞ。 https://t.co/vayThXxyNu」 / Twitter
- よねまり社長|ファッションバイヤーさんはTwitterを使っています: 「実はこれ、GoogleやYouTubeなどで、あなたに合った「関連性の高い広告」が表示されるようにGoogleが集めたもの。不適切なものが含まれている場合は「オフ」にしておくと、興味のない広告が減るかもしれません。ぜひチェックしてみてくださいね。」 / Twitter
セーフブラウジング
- 実はセーフでも何でもないという「セーフブラウジング機能」について専門家が解説 - GIGAZINE
- iOS 14.5の「セーフブラウジング」はGoogleではなくAppleの自社サーバー経由で行われるようになる - GIGAZINE
- Chrome、フィッシング検知を50倍高速化したバージョン92 - PC Watch
- セーフブラウジングに致命的な脆弱性 ~「Google Chrome」v97.0.4692.99で対処 - 窓の杜
Pingora
- 高梨陣平さんはTwitterを使っています: 「https://t.co/GZ4iEi1kuF CloudflareはこれまでHTTP ProxyにNGINXを採用してきたが自社開発でRustで書かれたPingoraに置換。CPUとメモリリソースの消費を3分の1に改善。Nginxのworer process architectureがCPUリソースを無駄に。CFは自社利用目的のため自前のRust向けHTTPライブラリも開発。Pingora」 / Twitter
- Cloudflare Ditches Nginx For In-House, Rust-Written Pingora - Phoronix
- 高梨陣平さんはTwitterを使っています: 「はmulti processでなくmulti threadで実装された。Pingoraは現在OSSではないがOSS化の予定はあるとの話。 https://t.co/I9kSAfJmfI」 / Twitter
- How we built Pingora, the proxy that connects Cloudflare to the Internet
ASnoKaze blog
送信元ポート
- QUICやHTTP/3で利用を避けるべき送信元ポートの議論 - ASnoKaze blog
- QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | エンジニアブログ | GREE Engineering
- slides-111-quic-ops-drafts-00.pdf
- draft-ietf-quic-applicability-13
- QUICやHTTP/3で利用を避けるべき送信元ポートの議論についての考察 - show log @yuyarin
histric
histric-1
- HTTPと硬直化(ossification)の問題 - ASnoKaze blog
- 「Advisory Content-Length for HTTP」と自転車置場の話し - ASnoKaze blog
- HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様 - ASnoKaze blog
- HTTP/2の仕様、改定作業が始まる - ASnoKaze blog
- WiresharkがHTTP/3に対応した - ASnoKaze blog
- ChromeのSecure context restriction for external requests - ASnoKaze blog
- Permissions PolicyとDocument Policyについて - ASnoKaze blog
- ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
- GoogleのPrivate prefetch proxyに関するメモ - ASnoKaze blog
- WebTransportの方向性 (2021年1月の中間会議をうけて) - ASnoKaze blog
- プライバシーを保護する Oblivious HTTP の仕様 - ASnoKaze blog
- NAT Slipstreaming v2 攻撃とブラウザ側の対策 - ASnoKaze blog
- NAT Slipstreaming攻撃とブラウザ側の対策 - ASnoKaze blog
- ダウンロードもMixed Contentsの対象となる話し - ASnoKaze blog
- QUICの仕様におけるアンプ攻撃対策 - Qiita
- WebTransport over HTTP/3のプロトコル仕様 - ASnoKaze blog
- HTTPコネクションでIPパケットをProxyさせる、新しいCONNECT-IPメソッドの仕様 - ASnoKaze blog
- QUIC Version 2 という個人ドラフト(draft-duke-quic-v2❩ - ASnoKaze blog
- HTTP/3におけるCAPSULEフレームとDATAGRAMの利用方法 - ASnoKaze blog
- WebTransport over HTTP/2 の方向性 (2021年5月の中間会議をうけて) - ASnoKaze blog
- HTTPセマンティクス仕様の改訂版 まとめ - ASnoKaze blog
- HTTP/3からのダウングレード攻撃を防ぐIncompatibleProtocol拡張の仕様 - ASnoKaze blog
- HTTP/3 DATAGRAMの優先度制御の提案仕様 - ASnoKaze blog
- Bootstrapping WebSockets with HTTP/3 の仕様 - ASnoKaze blog
- QUICのバージョンネゴシエーションとダウングレード攻撃対策 - ASnoKaze blog
- RSAブラインド署名を用いたHTTP認証の提案仕様 - ASnoKaze blog
- QUIC用APIを実装したOpenSSL forkの登場 - ASnoKaze blog
- HTTP Datagram PING の拡張仕様についてのメモ - ASnoKaze blog
- HTTP/2の改定版仕様の変更点について - ASnoKaze blog
- クレデンシャルを安全に転送する「Secure Credential Transfer」の仕様 - ASnoKaze blog
- 匿名かつ検証可能なPrivate Access Tokensの提案仕様 - ASnoKaze blog
histric-2
- 新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「SQLがどうとかじゃなくて「リクエストボディに内容を突っ込めて、かつ冪等セマンティクスをもつHTTPメソッドができるかも」くらいの話だと思っているだけれども。」 / Twitter
- がくぞさんはTwitterを使っています 「まー大多数の利用ケースでbodyにはjsonが入るだけになりそうな気がしますね」 / Twitter
- 新しいQUICのマルチパス拡張の仕様 - ASnoKaze blog
- QUIC Version 2 の仕様 - ASnoKaze blog
- HTTP/3とQUICはなぜ必要になり、どのように標準化されてきたのか? 現代のプロトコル設計とインターネットの課題 - エンジニアHub|Webエンジニアのキャリアを考える!
- メディアタイプで複数サフィックスを許可する提案仕様 - ASnoKaze blog
- QUICのPath MTU Discovery手法の論文を読んで - ASnoKaze blog
- gRPC over HTTP/3のプロトコルと実装を眺める - ASnoKaze blog
- 2021年 HTTPやQUICの最新動向振り返り - ASnoKaze blog
- Greasing the QUIC Bit の仕様について - ASnoKaze blog
- HTTPの拡張CONNECTメソッド について復習する - ASnoKaze blog
- ChromeがQUICのInitialパケットに施すChaos Protection - ASnoKaze blog
- Twitchの QUICを用いたライブストリーミングプロトコル Warp - ASnoKaze blog
- Double-keyed HTTP cache に関するメモ - ASnoKaze blog
- HTTPで再開可能なアップロードを可能にする提案仕様 - ASnoKaze blog
- HTTP/3でQUICv2を使うためのalt-svc拡張 - ASnoKaze blog
- HTTP DatagramsとCapsuleプロトコルについて - ASnoKaze blog
- QUICのマルチキャスト拡張 - ASnoKaze blog
- ChromeのCache Transparencyに関するメモ - ASnoKaze blog
- HTTP/3のCONNECT-UDPを利用したWebRTC通信 - ASnoKaze blog
- HTTP/2, HTTP/3 のMETADATAフレーム拡張 - ASnoKaze blog
- Twitchの動画配信プロトコルWarpのデモを動かしてみる - ASnoKaze blog
- [公開] HTTP/3の今と将来 (html5j #71) - Google スライド
- Webサイトを離れたときにデータを送る Page Unload Beacon - ASnoKaze blog
- HTTPのProxyを改善する「Upgrade: connect-tcp」 の提案仕様 - ASnoKaze blog
- HTTP Alternative Services, Plan B のメモ - ASnoKaze blog
- Media over QUICの base draft について - ASnoKaze blog
Publickey
- HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(前編) - Publickey
- HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(後編) - Publickey
- HTTP/3の基盤となる「QUICプロトコル」の標準化プロセスが完了、IETFの「RFC 9000」として - Publickey
- IETFによるHTTP/3の標準化プロセスが完了、「RFC 9114」に - Publickey
- NGINX、商用版の重要な機能をオープンソースで無料化、オートスケールやCI/CDフックなどフルスタック化など、今後の発展についてコミットを発表 - Publickey
- Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に - Publickey
blog.jxck.io
- Cross Origin iframe からの alert/confirm/prompt 呼び出しの無効化 | blog.jxck.io
- Private Relay と IP Blindness による Fingerprint 対策 | blog.jxck.io
- ABNF Parser の実装 | blog.jxck.io
- Web のセマンティクスにおける Push と Pull | blog.jxck.io
- HTTP 関連 RFC が大量に出た話と 3 行まとめ | blog.jxck.io
- ローカル開発環境の https 化 | blog.jxck.io
IIJ Engineers Blog
- IIJ Engineers Blog
- QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
- QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog
- QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog
- QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog
- QUICをゆっくり解説(5):2回目以降のハンドシェイクと0-RTT | IIJ Engineers Blog
- QUICをゆっくり解説(6):増幅攻撃との戦い | IIJ Engineers Blog
- QUICをゆっくり解説(7):アプリケーションデータとストリーム | IIJ Engineers Blog
- QUICをゆっくり解説(8):フロー制御 | IIJ Engineers Blog
- QUICをゆっくり解説(9):コネクションの終了 | IIJ Engineers Blog
- QUICをゆっくり解説(10):コネクションのマイグレーション | IIJ Engineers Blog
- Vol.52 | Internet Infrastructure Review(IIR) | IIJの技術 | インターネットイニシアティブ(IIJ)
- HaskellによるQUICの実装(IIR vol.52 3章) | IIJ Engineers Blog
- QUICをゆっくり解説(11):ヘッダの保護 | IIJ Engineers Blog
- QUICをゆっくり解説(12):確認応答(ACK) | IIJ Engineers Blog
- QUICをゆっくり解説(13):ロス検知 | IIJ Engineers Blog
- QUICをゆっくり解説(14):輻輳制御 | IIJ Engineers Blog
- QUICをゆっくり解説(15):HTTP/3 | IIJ Engineers Blog
- QUICをゆっくり解説(16):ヘッダ圧縮 | IIJ Engineers Blog
- HTTP/2を利用する際はCipher Suiteを正しく設定しよう | IIJ Engineers Blog
- QUICをゆっくり解説(17):QUICビットとトランスポート・パラメータ | IIJ Engineers Blog
- QUICをゆっくり解説(18):QUICバージョン2 | IIJ Engineers Blog
- QUICをゆっくり解説(19):バージョン・ネゴシエーション | IIJ Engineers Blog
GIGAZINE
- ウェブアプリに対する典型的な攻撃手法とその対策まとめ - GIGAZINE
- ウェブサイトのさまざまな「認証方式」をまとめて比較した結果がコレ - GIGAZINE
- Chrome・Firefox・Edgeなどブラウザは初回起動時にどのような通信を行っているのか - GIGAZINE
- Chromeで「情報削減されたユーザーエージェント文字列」のテストが開始 - GIGAZINE
- Google Chrome 95安定版リリース、ユーザーの特定を避けるためのUser-Agent削減のテストが開始される - GIGAZINE
- AmazonやPayPalの「2段階認証」を突破するための音声ボットがハッカーに販売されている - GIGAZINE
- 「Googleでログイン」「Facebookでログイン」などのOAuth認証を模倣してパスワードを盗み出す手口が考案される - GIGAZINE
- 「ユーザーにとって有害」とGoogleのAMPを見なしたBraveがAMP自動回避機能を搭載 - GIGAZINE
- 「Google Chrome 103」安定版リリース、HTTP 103 レスポンスコード対応などウェブ高速化への取り組み - GIGAZINE
- Chromeのシークレットブラウジングは「まったくシークレットじゃない」とGoogle社内でも信頼されていなかった - GIGAZINE
infoQ
- Chrome User Agentのサポートを段階的廃止
- UXパターン: Stale-While-Revalidate
Twitter
その他
QUIC
NAT
- ゆやりんさんはTwitterを使っています 「資料掲載してます。どう見ても5分でしゃべれないので評判良ければJANOG49で時間とって議論したいですね。 https://t.co/4lYpkF3RDX」 / Twitter
- QUICとNATと – JANOG48 Meeting
- Kazuho OkuさんはTwitterを使っています 「よいまとめ。ありがたい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「感想がてらのメモとしていくつか: * UDP無通信タイムアウト30秒にできるなら、TCPのCLOSE_WAITの120秒よりも短くなるので、プレッシャーは減りそう(TCPのFIN交換後のタイムアウトって実際のNAT運用どうなってるんだろう)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* 実際のところ、ポート枯渇に一番つながるのは、いまだにドメインシャーディングしてるHTTPサイトとかHTTP/1で持続的接続を使わないクローラとかなので、そういうTCPアプリがなくなるとNATでのポート枯渇可能性が減ってうれしいよなと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* IPv6でポート枯渇はなくなるはずなのにSPIのエントリ足りないとかは、設定でギリギリ攻める以上、アプリケーションの変化の度に再チューニングするリスクと隣り合わせであることを理解してほしいと思う」 / Twitter
- tenpoku1000に関するツイートアクティビティアナリティクス
- Kazuho OkuさんはTwitterを使っています 「実際、NATまわりで「TCP切断後、何秒間4-tuple再利用できないの? 120秒? マジ? 長すぎない?」みたいなことは思うんだけど、120秒以下で再利用するのは、やっぱ危ないんですよね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーまああれか。「ポート番号まじ足りないって」っていうキャリアグレードNATの話と、ポートは余ってるけど「エントリ数足りないって」っていうホームルータやファイアウォールの話を混ぜるな危険ってのはあるのか」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「TCPだとセッションの終わりをルーターが検出してテーブルから削除出来るけど、QUICの場合はQUICを知らないルーターから見たらただのUDPだからタイムアウトでしか片付けられないってことか…これは厳しいですね。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「うええ、ルーターのNATテーブルを圧迫してるの、LAN内部に設置したDNSサーバーだけかと思ったら、QUICか!どうりで、googleとかQUICに対応してるサイト使うとトラブル起きる訳だ。。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「現状、UDPで動いてるQUICのセッションの継続期間を、ルーター側で明示的に判断できないから、NATのタイムアウトを短くするとか、Atermみたいヘボルーターを使わない、しか対策ないっぽい。。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「LAN内QUIC使用禁止ってのもアレなんで、とりあえず、NATのUDPセッションタイムアウトを最小値30秒にしてみた。元々、SIPみたい一部のUDP使ってるレガシーなプロトコルが、無通信時間が長いので、タイムアウトの初期値が長めになってたりするらしい。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin トランスポート屋さんとしてはQUIC対応ルータみたいな発想こそがプロトコルの発展を阻害する(ossifyする)ので防ぎたいものなので、NATに期待するのは使われないマッピングは順次消していってくれ、以外ないです。消えてたら別ポート割り振られて、そこでconnection migrationが走るので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「現実にはNATのUDPエントリは無通信30秒程度くらいから消え始めるので、QUICのサーバが接続維持したい場合は(HTTP/3のlong polling等)、定期的にPINGを送るべきとされています。滞留中のHTTPリクエストがなければ、無通信のままエンドポイントのステートもNATのステートもタイムアウトで破棄される」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 「使われないマッピングは順次消していってくれ」ってのがインフラ側から見るとしんどい(けど「QUIC対応ルータがあれば解消できる」という意見があって「本当か?」と懐疑した結果違うと分かった)のでQUIC使うならIPv6だなと思い至りました。この辺の話はJANOGのLTで話してみようかな。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin なぜLRUでしんどいのでしょう。TCPの場合、NATテーブルが溢れるギリギリまでテーブルエントリを維持したい(そうしないと接続が切れる)という動機があるのは分かりますが、QUICの場合はmigrationがあるので不要です。また、傍論ですが、そもそも切断時にCONNECTION_CLOSEを投げるわけですらありません」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin アプリケーションプロトコルによりますが、HTTP/3のような場合は、タイムアウトによる切断が通常動作です。切断処理のために無線回路起こすのは無駄なので」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho NATのエントリークリアのトリガーがタイムアウトしかないので、タイムアウトが長いとNATテーブルが埋まる問題があります。この時に他の接続もできなくなるのが問題です。TCPの場合はFINをトリガーにタイムアウトを待たずにエントリーを消せます。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin LRUではなく固定秒数のタイムアウトを指定するようなNATの話でしょうか。だとすると、そのような設計はQUICに限らずUDP全般で問題になるので、LRUに移行してくれ、以外にないと思います。FINをトリガーに消せる(からエントリを節約できる)というのは、LRUよりも長い寿命が必要であるという...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin 前提に基づく主張だと思いますが、QUICの場合、LRUで困らないので、その主張はあたりません。」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho ですです。ご家庭やSOHO、小規模オフィスのブロードバンドルータとかです。LRUしてくれってのもその通りです。DNS以外のUDP全般で起こる問題ですがこれまでそんなに通信がなかったので顕在化しなかった問題です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin なるほどありがとうございます。アプリ屋さんの発想としては、UDPが100%通るわけではない以上、TCPフォールバックを前提にものを作る(ことが多い)ので)、そういうルータのテーブルが溢れてUDP止まるならしょうがないよね、LRUする機器に更新されるといいね、みたいな感想になりそうです」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 多くの場合TCPとUDPでNATテーブルが共有されているので、この場合TCPも含めて新規コネクションが死んでしまいますよね。QUICで多重化されてUDPレベルのでコネクション数が減ったことと、タイムアウト待ちによるNATエントリーの増大のバランスがどうなるのかが(サイトの作りにもよりますが)気になります」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 文脈変わりますが、CGNレベルのNATでLRUできるかですが、RFC6888にはREQ-8として「FINが来てないTCPポートは120s経過するまで再利用するな」って書いてあったりして悩ましいです(書いた人が身近すぎますが) https://t.co/97KhQ2tJW0」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin TCPとUDPでタイムアウトが共通かつTCPの場合FINでエントリ落とすみたいな設計だと、UDP側からのプレッシャー増大に対応するのは大変かもですね。元の文脈にだと、UDPの場合は終端を見てエントリを落とすなんてことはどのみちできない(し、やるべきではない)んだから、タイムアウトをTCPより短く...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin すればいいという話になり、実際、TCPよりもUDPのほうがタイムアウト短いネットワークが多いんだと理解しています(この「多い」がネットワークの数なのかトラフィック比例なのかは把握してないです)」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho そうですね。設計としてはTCPのタイムアウトのほうが長いことが事例として多いです。TCPはFINで消えるのでタイムアウト値の設計時にNATエントリのことを考慮することは少なくて、実際の数秒〜十数秒の通信断があったときにTCPコネクションが切れてほしくないみたいな動機で設定することが多いです。」 / Twitter
- こーのいけさんはTwitterを使っています 「@yuyarin @kazuho YAMAHAのマニュアル見てるとDNSの場合を特別扱いしてますね。https://t.co/srVLidQBeL - DNS以外に多くのサーバと頻繁に通信するUDPプロトコルがこれまでなかった - DNS(53/udp)は特別扱いされている場合があった - そこにQUICが出てきて、さあどうしよう? という感じでしょうか」 / Twitter
- 26.9 NAT の IP アドレスマップの消去タイマの設定
- ゆやりんさんはTwitterを使っています 「@ko_noike @kazuho おっしゃるとおり、これができる機器を使う場合はDNSのNATのタイムアウトはかなり短く設定します。というかこれができないとURL一文字打つたびに名前解決しに行くブラウザとかがあると死ぬので。。。」 / Twitter
- VさんはTwitterを使っています 「QUIC 対応ルーターとかは必要なくて普通に NAT テーブルの UDP セッションタイムアウトが 30 秒とかになってればあとはテーブルサイズの問題くらいの認識。テーブルサイズが小さい弱いルーターはしんどいかもしれない、くらいか。」 / Twitter
- VさんはTwitterを使っています 「むしろ特定プロトコル向けルーターとか出すとそのプロトコルが改善できなくなるのでやめるべきだと思うなぁ。」 / Twitter
CRLF
- Masaki HaraさんはTwitterを使っています 「Unix系の世界はLFなのにHTTPがCRLFなのが不思議だなと思ってる」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@qnighy @miura1729 HTTPがCRLFなのはRFC822がCRLFだからですが、さらに遡ると多分RFC137(1971)で行終端をCRLFに統一したようです。それ以前(RFC97, RFC110等)では行終端に色々あるとなっています。 この頃だとUnixはそれほど支配的じゃないですよね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「本来のLFはカーソルを先頭に戻す機能は無いから本来ならCRLFが正しい気がする」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 プリンタの制御コードの役割の方が先でしょうから、カーソルというか印字位置というか。 インターネットでのテキストベースのプロトコルはだいたい RFC854 の TELNET PROTOCOL SPECIFICATION あたりを参考に作られているんじゃないかなぁ、と推測してます。」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています 「@miura1729 EBCDICにはCR=Carriage Return、NL=New Line、LF=Line Feed、FF=Form Feedとよりどりみどりなんですけどね。」 / Twitter
HTTP/2 push
- FadisさんはTwitterを使っています: 「Chrome 106からHTTP/2のpushが使えなくなるらしい。HTTP/2にはサーバがクライアントからまだ要求されていないリソースを先に送りつけるpushという機能がある。Webページの読み込みを速くする為に導入された物だが実際には多くの場合逆効果になる事が知られていた https://t.co/Ouq4eCyScU」 / Twitter
- Chromium Blog: Chrome 106 Beta: New CSS Features, WebCodecs and WebXR Improvements, and More
- FadisさんはTwitterを使っています: 「WebページはHTMLファイル1つだけで完結することはほぼ無く、JavaScript、CSS、画像、その他スクリプトから読む様々なデータ、iframe等様々な物を続けて読む。これらを必要になってからWebサーバにリクエストすると、全てのファイルが揃うまでにサーバと往復が何度も発生し、大きなレイテンシに繋がる」 / Twitter
- FadisさんはTwitterを使っています: 「そこでHTTP/2ではpushが導入された。pushではクライアントが最初のHTMLファイルをサーバにリクエストしてきた時に、サーバはレスポンスとしてHTMLファイルだけでなく、関連する他のリソースも一緒にクライアントに送りつける。必要なリソースを読もうとした時クライアントには既にそれがある状態になる」 / Twitter
- FadisさんはTwitterを使っています: 「これはクライアントが何もキャッシュしていない場合有効に働くが、実際には近代的なWebブラウザはキャッシュできる物は積極的にキャッシュしている。何度も訪れているWebページの静的なリソースは大抵キャッシュに既にあるので再度サーバから貰う必要がない」 / Twitter
- FadisさんはTwitterを使っています: 「サーバが必要ない物を送りつけてくるとその分本当に必要なものの取得が遅くなる。従ってHTTP/2のpushが性能に寄与する為にはWebサーバはWebブラウザがキャッシュに何を持っているかをエスパーしなければならない。実際にはこれは極めて困難なので、pushによって性能が向上する筈だという試みは失敗する」 / Twitter
- FadisさんはTwitterを使っています: 「特にEdgeでは一部の用途ではpushで受け取ったファイルがあっても使わないる実装になっていたり、Safariに至ってはpushで受け取ったファイルを使ったり使わなかったりする事があり、その条件が不明でバグではないかと言われている有様で、こうした実装の事情はエスパーを絶望的に難しくしている」 / Twitter
- FadisさんはTwitterを使っています: 「このような状況のため今日では殆どのWebサーバはpushを使っておらず、HTTP/3ではpushは廃止されている。もはやWebブラウザがpushに対応するのは「珍しくpushを試みるWebサーバがいた時に性能を損ねる為の仕組み」になっている為、Chrome 106からはWebサーバに対して常にpush非対応を通知するようになる」 / Twitter
histric
histric-1
- FadisさんはTwitterを使っています 「HTTPでブラウザがWebサーバに対してユーザトラッキングを望まないという意思表示をするDo Not Track(DNT)ヘッダをSafariが廃止した理由が「DNTはあまり使われず、使うユーザは継続的にDNTを付けたリクエストをする為、トラッキングの為のヒントとして使われる」なの、Webのダメな所が凝縮されてて凄い」 / Twitter
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「HTTPやSSL/TLSに関わるソフトウェアエンジニアは知っておくといい情報なんですけど、 https://t.co/ZcO29mS1P8 というサイトを使うと、期限切れの証明書でのTLSの検証とかが簡単にできていいです。」 / Twitter
- badssl.com
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「似た例として、Google Safe Browsingとかでマルウェア判定の検証に使える https://t.co/x9biz3P59l というデモサイトも便利です。」 / Twitter
- testsafebrowsing.appspot.com
- Kazuho OkuさんはTwitterを使っています 「HTTPでAPI設計する際のstatus codeの返し方は https://t.co/QnjU6BStK2 にまとまってるけど、一言で言うと HTTP status code を本来の意味で使いつつ、詳細な情報はレスポンスボディやヘッダで送れ、です」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「というわけで、HTTP ステータスコードの使い方も含め、HTTP を使って API やらアプリやら設計する際の指針はだいたい BCP56bis なのです」 / Twitter
- Hajime FujitaさんはTwitterを使っています 「5時間でCDNを作るぞ!という記事。CDNの基本的な概念がよくまとまっている。 https://t.co/IYrKfOJKWx」 / Twitter
- The 5-hour CDN · Fly
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「HTTP/2はその複雑さのために多くの攻撃が可能になっている。ヘッダはバイナリ化されているが、frontend-backend間は HTTP/1で通信されることが多いので、ダウングレードによって Content-Length/Transfer-Encoding を混ぜた desync攻撃が可能になる。 https://t.co/Sg6KLlm2v5」 / Twitter
- HTTP/2: The Sequel is Always Worse | PortSwigger Research
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Cloudflareが新しく導入した browser isolation機能は、視覚障害者にとってのWebアクセスを完全に遮断してしまう。これに対する代替策はまだ存在しない。 https://t.co/NG7I20UnJz」 / Twitter
- Cloudflare's inaccessible browser contradicts the company's mission
- Sen UENOさんはTwitterを使っています 「UDPベースの増幅攻撃の増幅係数がまとまっている。 UDP-Based Amplification Attacks | CISA https://t.co/K4QDcxgpG2」 / Twitter
- UDP-Based Amplification Attacks | CISA
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「UA文字列のバージョンが100になると、いっぱい壊れるサイトが出そうだから、Firefox Nightlyユーザの50%のUA文字列を変更してテストするらしい。 / Heads up: "Firefox 100" webcompat experiment https://t.co/POiNcsFPFN」 / Twitter
- Heads up: "Firefox 100" webcompat experiment
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「FedoraがNISのサポートを打ち切るらしい。 新山はむかし大学のマシンを管理していたころにNISをよく使ったが (その頃はまだYPと呼ばれていた)、いまの代替品は LDAP/Kerberosなのか? 面倒くさそう。 https://t.co/Gq6sesRnCr」 / Twitter
- Fedora considers removing NIS support [LWN.net]
- The Pharo ProjectさんはTwitterを使っています 「Superluminal: Building blocks for creating HTTP requests and API clients https://t.co/3tNvaxMBqf」 / Twitter
- ba-st/Superluminal: Building blocks for creating HTTP requests and API clients
- Betty DuBois will be teaching @WireSharkFestさんはTwitterを使っています: 「This is the best reason to read the article: https://t.co/o9MrNXoEh2」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「quiclyとtcplsの中で使われているpicotlsに詳しい人間として、そんなもんでしょうな感はある。QUICの攻撃耐性と柔軟性(ユーザスペース実装をもつこと含め)はtcplsでは得られるのか、データセンターでtcp+tlsではなくtcplsを使うメリットがあるのか、みたいな論点が気になる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あとまあQUICが重いのは多重化と再送輻輳制御品質を上げるためにACKをTCPよりも複雑にしてるというのがあって、まあ意図的ですというか通信速度上げるためにCPU回してもいいというのが基本的な考え方」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そしてHTTPのメンテしてる人たちは互換性至上主義じゃないので、たとえはセキュリティ上問題がある割に使われてない仕様は廃止になったりします。 たとえば先日出たHTTP/1.1の改訂版(RFC 9112)では、HTTPヘッダの途中に改行を入れることが禁止されました(受信時に改行を空白に変換するのはOK)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なお、これまで一般にヘッダと呼ばれてきたヘッダフィールドですが、トレーラでもヘッダフィールドを使いますとかわかりづらいことになっていたので、これからはフィールドと呼ぶことになりました。いいですか、HTTPにヘッダなんてものはない、あれはフィールドだ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「https://t.co/knnKjAo9xZ に "今となってはHDDディスクキャッシュより光回線の方が速い場合もありますね。" ってこと書いてあるけど、Race Cache With Network (RCWN) と呼ばれる機能が昔から入ってて、キャッシュよりも通信の方が速いのであれば、キャッシュの内容使わないよ」 / Twitter
- FirefoxでYoutube見続けるとSSDが早死にする問題とその対処法
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「これまでFacebookはサイト内のリンクにfbclid=というクライアント追跡用のパラメータを付加していた。FirefoxやBraveではこれらを自動的に削除する機能が追加されたため、最近になってFBはURLの暗号化を開始。これだとどの部分が追跡用かわからず削除できなくなっている。 https://t.co/YxDbgSEdQM」 / Twitter
- Facebook has started to encrypt links to counter privacy-improving URL Stripping - gHacks Tech News
- Eiji Kitamura / えーじさんはTwitterを使っています: 「DBアクセスなどでHTMLを返すまでに時間がかかる場合は、そのページで読み込まれることがわかっているサブリソースのURLを103 Early Hintsと一緒にすぐに返すことでそれらを予めを読み込ませておける。 https://t.co/YQZoT3zhJE」 / Twitter
- Faster page loads using server think-time with Early Hints - Chrome Developers
- Eiji Kitamura / えーじさんはTwitterを使っています: 「Chrome 106でHTTP/2のサーバープッシュが動かなくなります。HTTP3にも類似の仕様はあるもののほとんど実装されてないとのことで、103 Early Hintsやpreloadなどを使うことが推奨です。 https://t.co/2atASM2GHo」 / Twitter
- Removing HTTP/2 Server Push from Chrome - Chrome Developers
- Kazuho OkuさんはTwitterを使っています: 「HTTP/1 にあったが RFC 8441, RFC 9220 でなくなった機能として「日和見アップグレード」(別プロトコルに切り替えできたらするけどできなかった場合はHTTPで返事してもオッケー)があるんだよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「TCPのチェックサムが話題ですが、UDPのチェックサムはオプションです! QUICはTLSで生成する鍵でパケット破損検出する予定が、鍵交換の前に送受信するInitialにチェックサムがなくてハンドシェーク失敗する問題に気づいて、仕様策定のだいぶ後期になって対応された思い出」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あ、あとになってこの問題で設計変えたのはRetryかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「IPv6でのUDPチェックサム省略は結局OKになったと理解しています。v6では、もともとエンドポイントしかUDPチェックサム検証しない前提だし、パケットの破損確認を他の方法でするならUDPレイヤで「も」計算するのは無駄なので https://t.co/hbR40V5W7N」 / Twitter
- RFC 6935 - IPv6 and UDP Checksums for Tunneled Packets
- ウチューじん・ささきさんはTwitterを使っています: 「IPv6ではIP層のチェックサム機能が外されたトレードオフで、「UDPのチェックサム=0時は検算しない」は外されたんじゃなかったっけ記憶…」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています: 「昔、自作のTCP/IPスタックで受信時のチェックサム検算をコンパイルオプションで無効化して高速化していたのだけど、ダムハブに代わってイーサネットスイッチが出回り出したころ、パケット後半がぜんぜん別のパケットに化ける不具合を抱えたスイッチが市場に出ちゃって…」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています: 「何故かイーサネットMAC層のCRC検査は通り抜けるので、パケット化けを検出するには古典的なチェックサム検算によるしかなく、呪いの文句を吐きながらチェックサム検算を1にして再コンパイルした記憶があるのにゃ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「HTTPの歴史: - HTTP/0.9: 1行だけのプロトコル。 - HTTP/1.0: ヘッダを追加。 - HTTP/1.1: 各ヘッダの挙動を標準化。 - HTTP/2: バイナリ化・並列化による高速・効率化。 - HTTP/3: TLSを使わずQUICを使用。 https://t.co/2aLb589gfe」 / Twitter
- Evolution of HTTP - HTTP | MDN
- Hypertext Transfer Protocol (HTTP) Method Registry
- catnoseさんはTwitterを使っています: 「読んだ。最高でした。 Cache-Controlの private, no-store, no-cache, max-age=0, must-revalidate とかの役割の違いがよく分からない人、ETag/Last-Modifiedの仕組みがよく分からない人にはぜひおすすめしたい Cache 解体新書 v0.0.1|Jxck https://t.co/aGmWNsstJY」 / Twitter
- Origin 解体新書 v1.5.3
- Cache 解体新書 v0.0.1
- Web 技術解体新書「第二章 Cache 解体新書」リリース
curl
curl
- curl
- curl - License Mixing
- curl - SSL libraries compared
- curl - SSL CA Certificates
- curl - Extract CA Certs from Mozilla
- curl - HTTP Cookies
- HTTP/2 with curl
- curl/curl: A command line tool and library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features
- curl/packages/Win32 at master · curl/curl
libuv
- libuv|Cross-platform asynchronous I/O
- libuv/libuv: Cross-platform asynchronous I/O
- libuv - Wikipedia
- libuv-1.19.1
- Kazuho's Weblog: The reasons I stopped using libuv for H2O
- Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
- Reactor pattern - Wikipedia
- Proactor pattern - Wikipedia
- C10k problem - Wikipedia
- libcurl example - multi-uv.c
- Curl: libuv example
- node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ - 自由課題
- Utilities — An Introduction to libuv
- curl/multi-uv.c at master · curl/curl
- An example on how to use libuv with libcurl's multi interface Should be equally fast on Unixes (uses epoll/kqueue/etc like libev/libevent) but MUCH faster on Windows due to libuv's usage of IO completion ports. Could come in handy if you have to manage several hundreds or thousands of connections!
- moteus/lua-lluv-curl: Make asyncronus requests using libuv and libcurl
- c - libuv event loop and libcurl - Stack Overflow
- libuv/libcurl downloading example with threaded adding new download requests - Google グループ
- 本の虫: C++をプログラミング入門に使うならHTTPSぐらい喋れないと話にならんと言われたのでそういうライブラリを作った
- cURL - Wikipedia
- cURL - Wikipedia, the free encyclopedia
- cURL-7.57.0
- nghttp2-1.29.0
- libmetalink in Launchpad
- 超古いサーバーからhttpsにcurlする時 - yamaguchi.txt
- ブラウザではアクセスできるのにcurlでhtmlが取ってこれない時 - yamaguchi.txt
- curl で Cookie 認証突破
- cURL as DSL — cURL as DSL 1.0 documentation
- rsync, wget, curl, scp に速度制限をかける方法まとめ - Qiita
- cURL:インストール時にlibSSH2でエラーになる場合の解決策 | Step On Board
- cURL - curlでルート証明書の適用がうまくできない。(74022)|teratail
- cURL - How To Use (マニュアルページ日本語訳)
- Windows®環境にcURLコマンドを実行できるようにインストールする手順 | ええかげんブログ(本店)
- libcurlをVisual Studio 2012を使って、Windows10(64bit)上でビルドした手順。~必要な資源のダウンロードからビルドまで~ - IT系フリーランスの技術備忘録
- HTTP(S)通信のできるcurlと無駄に新しいgawkをインストールしてくれます
- WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
- matsuuを止めるな!さんのツイート: "curl単体とcurl | bashでchunkedの違いを元に異なる内容を流し込むPoC。わはは。 / “Detecting the use of "curl | bash" server side | Application…” https://t.co/0rrnblHZ1k"
- Detecting the use of "curl | bash" server side | Application Security
- 渋川よしきさんのツイート: "コマンドが分かれば、libcurlオプション付けると、ソースコードが生成されたはずです。… "
- 本の虫: Cisco、ルーターの脆弱性を修正するためにユーザーエージェントcurlを弾く変更を加える
- Rust Hyper HTTPライブラリはCurlをより安全にすることに貢献
libssh2
証明書による認証
- FadisさんはTwitterを使っています: 「OpenSSHの証明書を使った認証について。sshの認証にはパスワードまたは公開鍵がよく用いられるが、良いパスワードを覚えるのは人間には難しく、公開鍵の管理はホストやユーザが多くなると煩雑になる。証明書による認証は沢山のホストに対する接続の権限を一元管理できる https://t.co/AP7Zg7omlu」 / Twitter
- FadisさんはTwitterを使っています: 「OpenSSHで証明書による認証を行うには認証局が必要になる。認証局は公開鍵暗号の鍵ペアで、公開鍵認証で使う物と同じようにssh-keygenで作る。ssh-keygenは引数に-s <秘密鍵>を渡す事で他のsshの公開鍵に指定された認証局の鍵で署名をする事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「sshdの設定に認証局の公開鍵をTrustedUserCAKeysとしてセットするとsshdがその鍵で検証できる証明書を持つユーザを信用するようになる。認証局の鍵で署名された公開鍵を持つユーザはsshdが動いているホストにパスワード無しでログインできるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「更にsshdのホストの公開鍵を認証局の鍵で署名し、sshdの設定に証明書をHostCertificateとしてセットし、ホストに接続するユーザ側のknown_hostに認証局の公開鍵をセットすると、sshクライアントはその鍵で検証できる証明書を持つホストを信用するようになり、フィンガープリントの確認が省略される」 / Twitter
- FadisさんはTwitterを使っています: 「証明書を使う認証では個々のホストの個々のユーザのauthorized_keysにユーザの公開鍵を設定してまわる必要がない為、sshで接続する先のサーバが沢山ある場合に管理が容易になる。また証明書は有効期限を設定でき、認証局側で特定の証明書を失効させる事もできる」 / Twitter
- FadisさんはTwitterを使っています: 「ただしユーザに対して証明書を安全に渡す方法についてはOpenSSH自体には何も用意されていない。有効期間の短い証明書を頻繁に更新して使うような場合、OpenSSHの外で安全かつ容易に証明書を更新できるような仕組みを用意する必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「記事のコメントでは証明書の形式としてより一般的なX.509に対応させるパッチをGentoo等のディストリが持っているが、OpenSSH本家は複雑なASN.1のパーサをOpenSSHの中に抱える事に対しては慎重、という話が挙がっている」 / Twitter
blog
- Ubuntu忘備録: libssh2をコンパイルしてみた
- qemu(not kvm)上のゲストOSへのsshが遅くてハゲるので何とかした備忘録 - livaの雑記帳
- ubuntuのssh serverに公開鍵認証でログインする - Yabu.log
- SSHの踏み台有り・無しを,ネットワーク的居場所に応じて自動で切り替える - yunazuno.log
- OpenSSHのAuthenticationMethodsを使って鍵認証+ユーザパスワード認証による二要素認証の設定をする | 俺的備忘録 〜なんかいろいろ〜
- QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
- ssh-agent のしくみ - eagletmt's blog
- フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題 - tsutsuiの作業記録置き場
OSDN
- 「OpenBSD 5.4」リリース、OpenSSHやOpenSMTPDがアップデートされる | OSDN Magazine
- 「OpenSSH 6.8」がリリース | OSDN Magazine
- 「OpenSSH 7.0」がリリース、PermitRootLogin設定の変更などセキュリティ強化が行われる | OSDN Magazine
- 「OpenSSH 7.2/7.2p」がリリース | OSDN Magazine
- 「OpenSSH 7.4/7.4p」を公開、バグ修正が中心のリリース | OSDN Magazine
- 「OpenSSH 7.8」リリース | OSDN Magazine
- 1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
- AES-GCM暗号が関連した脆弱性を修正した「OpenSSH 6.4/6.4p」がリリース | OSDN Magazine
- Windows環境でのSSHの利用とSSH鍵の作成 | OSDN Magazine
- セキュリティを改善する変更が加えられたOpenSSH 5.6/5.6p1リリース | OSDN Magazine
- フリーのSSH実装「OpenSSH 6.7」がリリース | OSDN Magazine
- レガシーな証明書署名の脆弱性を修正したOpenSSH 5.8/5.8p1リリース | OSDN Magazine
- 機能にフォーカスした「OpenSSH 6.5/6.5p1」がリリース | OSDN Magazine
- 子プロセスでのサンドボックスを実験的に実装したOpenSSH 5.9/5.9p1リリース | OSDN Magazine
- 米Microsoft、PowerShellでOpenSSHをサポートへ | OSDN Magazine
- 「OpenSSH 7.8」リリース、バグ修正が中心 | OSDN Magazine
- 「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正 | OSDN Magazine
- 「OpenSSH 8.1」リリース、バグ修正が中心 | OSDN Magazine
- 「OpenSSH 9.0」公開、量子コンピュータを使った攻撃への対抗策を導入 | OSDN Magazine
GIGAZINE
- SSHの認証に物理セキュリティキー&認証局を用いて一時的な鍵を生成する方法とは? - GIGAZINE
- 開発者たちが慣れ親しんだ「scp」コマンドはなぜ「時代遅れで柔軟性がなくすぐに修正できない」のか? - GIGAZINE
Zenn
- 各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ
- WSL2のUbuntuでkeychain経由でssh-agentを使う
Qiita
- libssh2をインストールする(ソースからコンパイル) for CentOS7.2 - Qiita
- libssh2,openssl,c-ares,zlib,ipv6を有効にした状態でcurlをwindows上で64bitビルドする - Qiita
Twitter
- いわもと こういちさんのツイート: "以前日記 https://t.co/81s1kPT1y4 で書いたけれど、OpenSSHの秘密鍵の形式には欠点が有るから。そもそも秘密鍵は利用するソフトで生成して使うべきだと思うんだよね。それならば形式の問題は無い。よそで作って(時にはネットワークを介して転送して)利用するなんてやりたくない。… https://t.co/8boH6v9rQp"
- PuTTYの秘密鍵が独自形式な理由 | dodaの日記 | スラド
- Fadisさんのツイート: "OpenSSH 8.0がリリースされた。scpでファイルをコピーする際に「リモートから送られてきたファイル名をクライアントが無条件に信用する」為に制御文字でいたずらができる脆弱性(CVE-2019-6110)が修正される他、量子計算機耐性を持つ鍵交換の実験的なサポートが含まれる https://t.co/ffcIOWKCNU"
- OpenSSH 8.0 Released - Addresses SCP Vulnerability, New SSH Additions - Phoronix
- YASUOKA MasahikoさんはTwitterを使っています 「IPoE だと ssh で外出れず、びっくり。https://t.co/cmwRgkmC9b 有名な問題っぽい。pf で "set tos 0x0" して潰すことにした。」 / Twitter
- フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題:tsutsuiの作業記録置き場 - ブロマガ
- ドッグさんはTwitterを使っています 「プロトコルの脆弱さから見て scp はもう時代遅れになってきている.代替は sftp か rsync だけど,前者はインターフェースが微妙で後者は使える環境がやや限られる | 'Deprecating scp [https://t.co/WPGe19HJgf]' https://t.co/aDWoZVRZe5」 / Twitter
- ドッグさんはTwitterを使っています 「scp コマンドが使うプロトコルを sftp に置き換える実装を試してる人もいる https://t.co/K7hNcfNZSA」 / Twitter
- Use SFTP internally for SCP command by Jakuje · Pull Request #194 · openssh/openssh-portable
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「OpenSSHで公開鍵ハッシュを視覚化するのに使われている「酔っぱらいビショップ (The Drunken Bishop)」アルゴリズム。入力を2ビットずつスキャンして斜め4方向に移動し、その軌跡を格子上にプロットする。訪れた回数によって記号を変えればできあがり。 https://t.co/TlUb2HyqwX」 / Twitter
- The Drunken Bishop Algorithm – Barely Functional Theories
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日知った用語: Trust on first use (TOFU) 初回で相手を (よく調べたうえ) 信用し、2回目以降は以前と同じ相手かどうかだけをチェックする原則。SSHの初回接続や HTTP Public Key Pinningがこれに相当する。 https://t.co/UYHH5kH0aO」 / Twitter
- Trust on first use - Wikipedia
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SSHの公開鍵は、任意のデータを署名するのに使える。これは2019年リリースの OpenSSH 8.0から追加された機能で、ssh-keygenを使って署名・検証ができる。SSHはPGPよりもずっと普及しているし、Git 2.34からcommitをSSHで署名できるようになる。またGitHubは事実上の鍵配送だ。 https://t.co/5WFdAc74j3」 / Twitter
- It's Now Possible To Sign Arbitrary Data With Your SSH Keys
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ところで、GitHubで各ユーザのSSH公開鍵が閲覧可能なのは意外と知られていない。 たとえば Linus Torvaldsの公開鍵は: https://t.co/WZIRwMJJz6」 / Twitter
- https://github.com/torvalds.keys
- ぬるぽへさんはTwitterを使っています 「いやこれconfigにport forwardingの設定を書くっていうセットアップを前提にするとめっちゃ簡単だ」 / Twitter
- ぬるぽへさんはTwitterを使っています 「1.sshのconfigでport forwardingしとくようにしとく 2. そのポートでクライアント <-> サーバー間でなんかシンプルなコマンドを双方向で実行できるバスを作る 3. そのバスの上で動くvscodeを相手のほうで立ち上げるアプリを書く 探せばありそう」 / Twitter
- ぬるぽへさんはTwitterを使っています 「すでにそういうツールがあるなら、たぶんそのバスの上で リモート <-> ローカルでファイルをコピーする機能もありそう」 / Twitter
- ぬるぽへさんはTwitterを使っています 「まぁなんかdbusの再発明っぽいけどdbusをリモートローカルで共有するって話もあんまりなさそうなんですよね」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「VSCode上で各種ツールが動くとうれしい理由の一つは、Remote SSHで、XとかVNCとかそういうリモートデスクトップツールなしでsshだけで何も設定せずに動いちゃうのが便利すぎる。だからこそ、Electronベースで動いてるようなツールは、この際、VSCodeに拡張として移植してくれないかなぁと思うんだよ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ssh-agentは秘密鍵をforwardできるため攻撃の対象になりやすい。OpenSSH 8.9 で導入された新機能を使うと、秘密鍵を特定のホストにしかforwardできないように設定できる。これはssh-agentが悪意あるsshd経由でforwardされているときに、中間ホストが勝手に鍵を盗めなくする。 https://t.co/fvVChEkDeb」 / Twitter
- Restricting SSH agent keys [LWN.net]
- SSH Agent Protocol - Google 検索
- libssh2 | daniel.haxx.se
- Curl: How to configure curl with libssh2
- libssh2
- libssh2 vs libssh
- libssh2/libssh2: the SSH library
- PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
- haruyama/ssh_rfc_ja: Japanese translations of SSH RFCs and Internet Drafts
IP
IPv10
- draft-omar-ipv10-06 - Internet Protocol version 10 (IPv10) Specification
IPv6
NAT66
- TECHNICAL MANUAL - NAT66/NAT6
- 情報セキュリティ技術動向調査(2010 年上期):IPA 独立行政法人 情報処理推進機構
- NGNを介したIPv6インターネット接続 - トンネル方式入門(後編):ITpro
- www.geekpage.jp/blog/data/2009/ipv6ops0904/2.txt
- SEIL でNGN IPv6 ネイティブ(IPoE) ひかり電話なし接続をするには : やすひでぶろぐ
Geekなぺーじ
- RFC系統図で見るIPv6の変化:Geekなぺーじ
- ややこしいIPv6アドレス自動設定の話:Geekなぺーじ
- IPv4アドレスを含むIPv6アドレス表記:Geekなぺーじ
- 日本国内携帯3社、2017年度中にIPv6導入:Geekなぺーじ
- RFC 8106によってRFC 6106が廃止に:Geekなぺーじ
- IPv6でセキュリティがスカスカになってませんか?:Geekなぺーじ
- IPv6基本仕様のRFC 2460が廃止:Geekなぺーじ
- IPv6関連RFCの上書き(廃止)まとめ:Geekなぺーじ
- IPv6アドレスのテキスト表記 - RFC 4291とRFC 5952:Geekなぺーじ
- ネットワークエンジニアではない方々向けIPv6勉強会を開催しました:Geekなぺーじ
- ネットワークエンジニアではない方々向けのIPv6入門 // Speaker Deck
- ネットワーク技術者ではない方々向けIPv6セミナー2の発表資料:Geekなぺーじ
- IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
- Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
- IPv6本を書きながらネットワークエンジニアではない方々向けのIPv6勉強会をやって思った、IPv4とIPv6の大きな違い:Geekなぺーじ
- DHCPv6の基本仕様が改定 - RFC 8415:Geekなぺーじ
- IPv6アドレスのテキスト表記に名前がついてない:Geekなぺーじ
- IPv6アドレスのテキスト表記の解説動画を作りました:Geekなぺーじ
- NAT64とDNS64の解説動画を作りました:Geekなぺーじ
- 動画「IPv6の勘所」を作りました:Geekなぺーじ
- IPv6基本仕様概要の解説動画を作りました:Geekなぺーじ
- 「IPv6はIPsecで暗号化されるので安全」という誤解:Geekなぺーじ
- リンクローカルユニキャストIPv6アドレス:Geekなぺーじ
- IPv6マルチキャストのスコープとゾーン:Geekなぺーじ
- ULA(Unique Local IPv6 Unicast Address):Geekなぺーじ
- IPv6とIPv4の違い:Geekなぺーじ
- インターネットプロトコルにおけるパケットサイズに関して:Geekなぺーじ
- IPv6 IPoEとIPv6 PPPoEの解説動画を作りました:Geekなぺーじ
- DS-Liteの仕組み:Geekなぺーじ
- IPv6がIPv4よりも速い理由:Geekなぺーじ
- IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成:Geekなぺーじ
- 小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「NTTフレッツでのIPv6 IPoEに関して「IPoE方式」と記述されることがあるけど、「方式」の2文字が非常に大事。NTT NGNでのIPv6 IPoEに関して単に「IPoE」と表現すると徐々に話がおかしくなる。」 / Twitter
@fadis_
- Fadisさんのツイート: "RFC8135 浮動小数点数および複素数を含むIPv6アドレス https://t.co/mhbr8EKKwW"
- Fadisさんのツイート: "Complex Addressing in IPv6、ネットワークの文脈でComplex Addressingといった場合普通はルータが頭を抱える「複雑なアドレス」の事なわけだけど、Complexには複素数って意味もあるから「複素数なアドレス」について考えてみた、と"
- https://tools.ietf.org/rfc/rfc8135.txt
- Fadisさんのツイート: "浮動小数点数アドレス、「従来のIPアドレスは整数で表現されていたが移動体通信が増えている中小数点の位置が固定のままで良いのかは議論の余地がある」とか「rootアドレスはクライアントの浮動小数点数演算器で計算することができる」とか言ってて腹筋の危機"
- Fadisさんのツイート: "RFC8136 IPv4からIPv6への移行を促すために、IPv4で「悪意ある通信が自分に悪意がある事を通信相手に明示して適切に蹴ってもらう」為のフラグevil bitをIPv6でも使えるようにする話 https://t.co/UTlNhsxSws"
- https://tools.ietf.org/rfc/rfc8136.txt
- Fadisさんのツイート: "ジャンボグラム: IPv6の拡張ヘッダでIPv6のヘッダに元々含まれている16bitのデータ長で表現できない巨大なパケットを表現する為に用いられる。この拡張によってIPv6は最大4GiBのUDPデータグラムを投げつける事ができる https://t.co/ujb5sGy0c8"
- https://tools.ietf.org/rfc/rfc2675.txt
- FadisさんはTwitterを使っています 「IPv4のヘッダにあったチェックサムはIPv6では廃止されている。ヘッダにはパケットを中継する機器で書き変わるTTLのカウンタが含まれているため、IPv4チェックサムは中継する機器全てで計算し直す必要があり、そのコストが深刻な問題になっていた為だった」 / Twitter
- FadisさんはTwitterを使っています 「そうはいってもヘッダが化けた状態でパケットがネットワークを徘徊すると困るので、IPヘッダチェックサムに相当する機能をTCPやUDPの疑似ヘッダを含むチェックサムに求めることになった。結果、IPv4では任意だったUDPのチェックサムは、初期のIPv6では必須になった」 / Twitter
- FadisさんはTwitterを使っています 「この結果「データが化けていても届いたほうが良い」用途でUDPを使っている場合IPv6に載せられないという困った問題が生じた。このためIPv6上のUDPはチェックサムの無効にしても良いと言う変更が後から加えられた」 / Twitter
- FadisさんはTwitterを使っています 「後から仕様を変えられてもインターネット上のあらゆる機器が即座に追従できるわけが無いので、IPv6かつチェックサムなしUDPは「運が良ければ届く。試しに飛ばしてみて届いたら使え。」という微妙な位置づけになってしまった」 / Twitter
- FadisさんはTwitterを使っています 「IPv6ではRAでPrefixをホストに伝える事が出来る。RAを受け取ったホストは通常インターフェイスにアドレスを設定しrouteを追加する。L2VPNを張っているとRAは遠隔地まですっ飛んでいくため、フィルタを忘れると遠隔地から手元のネットワークに向かうIPv6の通信が突然VPNを通ろうとするようになる」 / Twitter
- FadisさんはTwitterを使っています 「この時L2VPNがIPv6で相手を指していると、遠隔地のホストはVPNのパケットをVPNに流そうとして詰む。手元からは突然遠隔地のホストが沈黙したように見える。この場合手元から遠隔地への通信はレスポンスが全て消えるのでできない。他のネットワークを経由してsshし、RAを切ってrouteを直す」 / Twitter
- FadisさんはTwitterを使っています 「このトラブルを未然に防ぐにはL2VPNを上げるのと一緒にip6tablesでtapからのRAを蹴っておくのが良い。そもそも手元からRAをtapに向かって投げないルールも足しておいたほうが良いかもしれない」 / Twitter
- FadisさんはTwitterを使っています 「IPv6、気を抜くと設定間違えた瞬間にRouter AdvertisementがL2 VPNに乗ってとんでもない場所にグローバルアドレスが生えがち」 / Twitter
@uchujin17
- ウチューじん・ささきさんのツイート: "IPv6の拡張ヘッダは固定長フィールドではなく可変長TLVパケットの数珠つなぎになっていて柔軟性が誇られていたけど、RFCが出るたびにその並び順についての文言がどんどん追加され、「MUST rejectのオプションを受け付けた」という理由でFailが出て、そのためだけのチェックを追加して…"
- ウチューじん・ささきさんのツイート: "IPv6近隣探索(MACアドレス解決、IPv4で言うとこのARP)も「ARPみたいな継ぎ足しじゃなくIP仕様内に取り込んだ」「ブロードキャストではなくマルチキャストにして効率化した」「タイミングやステート状態が明文化された」ことが誇られていたけれど…"
- ウチューじん・ささきさんのツイート: "これまたRFCが改訂されるたび「Queryを発信する前にSolicited Advertiseを受信したらUnsolicitedで発信してはならない」みたいなクソくだらない文言が追加されて、数分に1度発信される(かもしれない)冗長なマルチキャストを1つ減らすためだけのフラグやifが増えて。"
- ウチューじん・ささきさんのツイート: "究極はRFC3484「Default Address Selection」、インターフェースに複数のアドレスを付けられるIPv6において発信先・発信元のアドレスを選択するための条件を定義した仕様書だけど、これが「アホかー!アホかアホかアホかアホかアホかーっ!」という考えすぎの産物。"
- ウチューじん・ささきさんのツイート: "RFC3484をくっそまじめに実装したらループが3つとifが15個くらい並んだんだっけ。アドレスを選ぶため「だけ」に。IPv6ならアドレス1つで世界中と通信できます、って言ったのはどこのどいつだ?"
- ウチューじん・ささきさんのツイート: "RFC3484はRFC6724にアップデートしているらしいけど、もうRFCなんて読む義務もないし読みたくもねぇ。"
- Finite-tweet machineさんのツイート: "ルータがRDNSS(RAでのDNSサーバ情報配布)に対応していない中、AndroidはDHCPv6に対応してないので困ったねという話など。へー / IPv6-only at Microsoft | APNIC Blog https://t.co/9fJbzfVtaD"
- IPv6-only at Microsoft | APNIC Blog
- IPv6 RFC 改版の提案はなぜ議論紛糾したのか? // Speaker Deck
- IPv6 の arp -a
- 今そこにあるIPv6 ─ もう1つのインターネットが普通に使われていることに普通のITエンジニアはどう対応するべきか? - エンジニアHub|Webエンジニアのキャリアを考える!
- Windows管理者のためのIPv6入門:第3回 L2アドレスを解決する近隣探索プロトコル (2/2) - @IT
- 第2の個体識別番号にならないか心配 (#3123556) | スマートフォンのインターネット接続、来年夏ごろにIPv6がデフォルトに? | スラド
- 近隣探索プロトコル - Wikipedia
- Neighbor Discovery Protocol - Wikipedia
- T28-1.pdf
- IPv6のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 only ネットワーク を作ってみる
- Yoshinobu Matsuzakiさんのツイート: "IPv6アドレスの傾向を調べる調査。使われたIPv6アドレスを35億ぐらい集めてエントロピーを調査。サーバは手動設定、ルータはEUI-64、クライアントは匿名アドレスの利用が多そうと。特定スマートフォンで変な実装がありそうとか面白い https://t.co/JW8XbsFYFI"
- 57-RIPE74-Foremski-EntropyIP.pdf
- Kentaro Ebisawaさんのツイート: "SRv6実装、Ciscoが(1部)スポンサーしてるのね。流石。 SOSR2017: IPv6 Segment Routing to the End Host: A Linux Kernel Implementation PDF: https://t.co/AgQVq6lUFQ"
- Kentaro Ebisawaさんのツイート: "IETF I-D “SRv6 Network Programming” 実装。Vargant/VirtualBoxで試せるらしい。 https://t.co/9L32qVfWJa"
- Kentaro Ebisawaさんのツイート: "SRv6 Linux 実装、Kernel 4.10 に入った "IP Networking Lab (Belgium)" と Kernel Module の "Networking Group (Rome)" の機能比較表を発見。 https://t.co/MaJgelavJ5"
- 【IETFトピックス2016-17】 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も - INTERNET Watch
- IPv6への移行完了は2067年4月か、月0.15%の割合で増加 | マイナビニュース
- AndroidのDHCPv6実装の議論状況とRFC7934 (Host Address Availability Recommendations) - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議ASPやってた頃、映像/音声udpパケットが通らないトラブルの度にサイズを小さくして、10数年で概ねどんなトンネルでも大丈夫となったのが1300バイト前後だった記憶。 なので、1280は経験値としても絶妙な値だった気がする。」 / Twitter
- Yasuhiro MorishitaさんはTwitterを使っています 「つまり、 ・IPv6の1280は、IPv4の576 = 512 + 64を見て、1024 + 256として提案された。 ・1280にすることで、1500のEthernet MTUの中に、カプセル化やトンネルヘッダー用の十分なスペースを確保できる。 ということですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「インターネットのMTUについてはGoogleがQUIC開発時に調べた値が公開されてますね。1350未満に絞る必要ないという感じ source: https://t.co/WYjvxSOzll https://t.co/OHEjF50U2f」 / Twitter
- (PDF) The QUIC Transport Protocol: Design and Internet-Scale Deployment
- Kazuho OkuさんはTwitterを使っています 「面白い。ただ僕の理解が正しければipv6はルータでのフラグメンテーションしないので、DNSみたいなパケット境界=メッセージ境界なプロトコルじゃない限り困らないけど(そして困る人がいないから直らないんだと思う)」 / Twitter
- 古い記事を読んでいるmatsuuさんはTwitterを使っています 「IPv6フラグメンテーションによるパケットドロップについて。日本は赤い=10%以上のドロップ率。まじか。 / “ISP Column - April 2021” https://t.co/kWa54PHRMb」 / Twitter
- ISP Column - April 2021
- Kazuho OkuさんはTwitterを使っています 「フラグメンテーションが必要になるなら送信者がパケット分割して欠落部を再送するようなプロトコルを使え、というのがipv6の思想だけど、udp over ipv4で巨大データグラムをフラグメント化して投げてたユースケースの互換性確保のため(だけ)にある仕組みなんじゃないのかな知らないけど」 / Twitter
IPv4
- IAB、IPv4を前提とした標準化を行わないことを求める声明を発表:Geekなぺーじ
- LACNIC、IPv4枯渇の最終フェーズと発表 | マイナビニュース
- GOROman@謙虚さんのツイート: "IPアドレス は0は省略できる 127.0.0.1は 127.1 192.168.0.1 は 192.168.1 https://t.co/jSdjF02boo"
- ゆたかさん🐱さんのツイート: "# arping -c 1 -D IPアドレス でIPv4アドレスのコンフリクトチェックができます。 競合するアドレスが存在しない場合は、$?がゼロになります。 BusyBoxにも入っているので、組み込みLinuxでも利用できるのでおすすめです。 https://t.co/sR92x6H6pL"
- https://tools.ietf.org/rfc/rfc6864.txt
- 【IETFトピックス2016-17】 IPv4をどのように終わらせるか――IPv6普及拡大の前に片づけなければならない課題 - INTERNET Watch
- 奇妙なIPv4アドレス表記:Geekなぺーじ
- 0.0.0.0にはアクセスしないこと - Qiita
- 127.0.0.1とlocalhostと0.0.0.0の違い - Qiita
- IPv4アドレス「0.0.0.0」の意味は? | マイナビニュース
- ASCII.jp:「特別なIPアドレス」を正しくわかっているのは誰?
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「inet_aton(3) の謎仕様。実はこの関数はIPv4アドレスをさまざまな形式で受け付けることができ、8進数表記や16進数表記も可能。たとえば (1<<24)+(1<<16)+(1<<8)+1 = 16843009 なので、 $ ping 16843009 とやると 1.1.1.1 にpingされる。 $ ping 0x01010101 も同様。 https://t.co/pulVHb7gSe」 / Twitter
- IPv4 addresses are silly, inet_aton(3) doubly so.
- 0.0.0.0/8のIPアドレスなどを利用可能にする提案仕様 - ASnoKaze blog
- IPアドレスの例示で xxx.xxx.xxx.xxx を使うな - Qiita
- Takashi KawasakiさんはTwitterを使っています 「言ってることはわかるんだが、読み手にとって必ずしも自明とも言えないところが難しい。」 / Twitter
- えるとさんはTwitterを使っています 「@espresso3389 非自明だと感じるのは、みんながそのサブネットを例示用のレンジだと分からないという点ですかね?(その点に関していえば、文章の先頭で「ここでは192.0.2.0/24を例として使用します。」と断りを入れればいい話なのかなと)」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「@proelbtn おっしゃる通りなのですが、おっしゃる通りで、おっしゃる通りのお気持ちですが、そうなんですよ :(」 / Twitter
- Protocol Numbers
- 平田豊ひらたゆたか🐬さんのツイート: "pingコマンドとglibcの実装調べてみたけど、getaddrinfo関数が内部でinet_aton関数を呼んでいて、当該関数の仕様として、 a.b.c.d a.b.c a.b a の4形式を受理するようになっていました。 今回のケースは最後の「a」に相当します。 https://t.co/2lovAH99ZG"
- APIPA - Wikipedia
- lionsoul/ip2region - Git@OSC - OSChina.Net
- lionsoul2014/ip2region: 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
- Happy Eyeballs Version 2 の仕様 - ASnoKaze blog
- IANA — Number Resources
- 192.168.0.1などのプライベートIPアドレスは途中で作られた:Geekなぺーじ
- 僕の💩自作OS💩が研究室のネットワークを破壊するわけがない - livaの雑記帳
- Happy Eyeballs Version 2 (RFC 8305):Geekなぺーじ
- Fadisさんのツイート: "WireGuardはパケットの送信時にパケット長が16の倍数になるようにパディングをしてから暗号化を行う。受信側では復号後パディングを取り除く為に元のパケット長が必要だがWireGuardのヘッダにはその情報は書かれない。論文によると「暗号化するパケットのUDPヘッダに本来の長さが書いてあるから不要」"
- Fadisさんのツイート: "IPv4ヘッダとIPv6ヘッダとIPXのデータグラム長はいずれも先頭から2バイト目に2バイトで置かれているからプロトコルを判別しなくてもパケット長は取れる、という知見を得た"
- Fadisさんのツイート: "オンラインゲームでUDPを使う一番のモチベーションは「再送制御にコンテンツを把握しているレイヤーが口を出したい」って所なんだ。例えば「Aさんが1歩右に歩いた」という通知が3連続で届かなかった場合、それらを個別に再送するんじゃなくて、「Aさんが3歩右に歩いた」にまとめて再送したい"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "未だに、RealTek NIC のUDPチェックサム・オフロードのバグを踏む事例が出るとは。 https://t.co/7tT9MO3ysD"
- 相手との接続ができているのに送信キューに溜まる - Google グループ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、このための hack を入れておいたはず(=後ろに64バイトの余分な0x0を付与)だが…と確認してみると、v4.5以降同士のIPDict形式に限り、このhack化パケットは受け取らないコードになっていた。後で直しておこう。… https://t.co/RkcP17o5Ho"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この hack は最後のリトライで発動する形。 (最初から付与していては意味がないので)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UDP Checksum Offloadで問題を起こすのはRealTek NIC。 10数年前に見つけた話だが、未だに発症する環境があるのが何とも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UDPフラグメントかつ、最終フラグメントのペイロードが15バイト以下(だったか63だったか)の場合のみ、オフロードでのチェックサムが狂うという、確かに見つけにくいバグではある。"
- Kazuho OkuさんはTwitterを使っています: 「recvmsg で destination address を取るには IP_PKTINFO もしくは IPV6_RECVPKTINFO を使う、と。linux 以外だとどうやるのかな」 / Twitter
- NICからの割り込みを適切なCPUに振り分けるための、IPヘッダオプション - ASnoKaze blog
- Happy Eyeballs v2 - 検索
- IP チェックサムの秘密
- Kazuho OkuさんはTwitterを使っています: 「RFC 1624「インターネットチェックサムの差分計算、RFC 1141で説明したやつ、あれ間違ってんねん」」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「"RFC 1141 provides a more detailed exposure to the procedure described in RFC 1071. However, it computes a result for certain cases that differs from the one obtained from scratch (one's complement of one's complement sum of the original fields)." - https://t.co/HYHp4sZQ5U」 / Twitter
- RFC 1624: Computation of the Internet Checksum via Incremental Update
- Kazuho OkuさんはTwitterを使っています: 「v4-mapped v6 address、なぜ ::ffff:<v4-address> という形式になっているかというと、TCP/UDPチェックサムの値が変化しないからです。 [要出典] だけど、そういうことかー」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Internet Checksum はパケットを16bitの配列と見なして総和の65535の剰余を使うので、(uint16_t)0 あるいは (uint16_t)0xffff を足し引きしても値はかわらない」 / Twitter
lwIP
- lwIP - A Lightweight TCP/IP stack - 概要 [Savannah]
- lwIP - Wikipedia, the free encyclopedia
- IPv6 - lwIP Wiki
- LwIP IPv4/IPv6 stacks - lwIP Wiki
- lwIP 1.3.0
- JVNVU#98989920: uIP と lwIP の DNS リゾルバにキャッシュポイズニングの脆弱性
- lwip.git - Unnamed repository; edit this file 'description' to name the repository.
- lwIP - Wikipedia
- Raw/TCP - lwIP Wiki - Wikia
- BitVisorのlwIPを使ってシリアルポートに書き込まれたデータをTCP/IPで送信する - Qiita
TCP
その他
- Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について : 革命の日々 その2
- TCPのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- 人生の全てはTCP/IPに学んだ:Geekなぺーじ
- 相手がいないのに ESTABLISHED になってる TCP ポート - @tmtms のメモ
- saminiir's hacker blog
- saminiir/level-ip: A hacker's userspace TCP/IP stack
- tcprewrite
- robertdavidgraham/masscan: TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
- Information on RFC 8548 » RFC Editor
- Information on RFC 8547 » RFC Editor
- 第1回 TCPの輻輳制御とは何か:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- 第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- DSAS開発者の部屋:第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました
- DSAS開発者の部屋:xv6にネットワーク機能を実装した
- TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
- FPSで重要な通信速度・Ping値・Jitter値・パケットロスを完全解説! | Gaming Nerd
BIG TCP
- FadisさんはTwitterを使っています 「LinuxにBIG TCPを実装するパッチの話。今日の高速なネットワークでは1パケット1500バイト前後は個々に処理するには小さすぎてCPUで通信が詰まる原因になるため、LinuxはTCPをハードウェアが処理できるより大きなパケットにして処理し、ハードウェアに流す時に更に分割している https://t.co/qFVRX28Xfr」 / Twitter
- FadisさんはTwitterを使っています 「この一時的に用いられる大きなパケットは一応IPパケットの形をしているためIPの制限に縛られる。つまり、長さフィールドが2バイトしかないので最大長が64KiBに制限される。100Gbpsを超えるようなガチなネットワークにおいては64KiBのパケットもCPUがボトルネックになるのに十分な小ささになるらしい」 / Twitter
- FadisさんはTwitterを使っています 「IPv6には拡張ヘッダを使って32bitのパケット長を表現するジャンボグラム(RFC 2675)がある。この拡張は実際のハードウェアではあまりサポートをされていないが、カーネル内で一時的に作られる大きなパケットにジャンボグラムを使う事で、最大4GiBのデータを一度に処理できるようになる」 / Twitter
- FadisさんはTwitterを使っています 「というわけでカーネル内でパケットを扱う構造体skbにジャンボグラムのサポートを追加したらしい。IPv6の場合にTSO(or GSO)(パケットの分割)とGRO(パケットの結合)がジャンボグラムを使うようにする事で、カーネルのネットワークスタックがよりでかいパケットを1単位として処理できるようになる」 / Twitter
- FadisさんはTwitterを使っています 「ベンチマークでは100GbEのNICを使って185KBのパケットを使って顕著に性能が向上する事を確認したらしい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば tcpdump が GRO後の64KBパケットしかキャプチャできなくて困った記憶。 (ethtool -K で GRO自体を無効化するしかないっぽい) https://t.co/7OcTYw9IOW」 / Twitter
- tcpdump: Re: why I'm capturing packets larger than MTU size
TCP Pacing
パケットペーシング
- HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
- 世界最速通信で考えるインターネットの将来 | 日経 xTECH(クロステック)
- OCNモバイルONEが始める「httpsのページング」とは何か
- PowerPoint Presentation
- 【予告】9/25より利用混雑時における通信速度改善に向け、新たな取り組みを始めます。 : LINE MOBILE 公式ブログ
- 通信の最適化によるお客さま影響について(ペーシング) | スタッフブログ | マイネ王
- CiNii 論文 - パケットペーシングによる全対全通信の最適化とシミュレーション評価
- 20120306-IPSJ74-PktPacing.pdf
- HPCS2011Shibamura.pdf
- 【LINEモバイル】利用混雑時における通信速度改善に向け、新たな取組を実施 | LINE Corporation | ニュース
- Shirouzu Hiroaki(白水啓章)さんのツイート: "linuxの一部のバージョンでは、tcp pacingがデフォルトで有効と。ちなみに Windows/winsockには無さそう。 https://t.co/k3LYxmE5jt"
- Is TCP PACING enabled by default on linux? - Unix & Linux Stack Exchange
- TCP pacing - Wikipedia
- paper.dvi
- FQ-pacing-results.pptx
- ieeexplore.ieee.org
- TCP Pacing [LWN.net]
- RT2001-066.doc
- ns0601-takano.pdf
Multipath TCP
log, アクセス制限
- Kazuho OkuさんはTwitterを使っています 「HTTP/3の場合「IPアドレスでアクセス制限したい場合、接続時のIPアドレスでやるのか、HTTPリクエスト受信時のIPアドレスでやるのか」みたいな形而上の問題があったり」 / Twitter
- ゆきさんはTwitterを使っています 「Multipath TCPで接続きた場合って、サーバログってどうしてるんだっけ。 サーバミドルウェア、複数IP各仕組みになってなる。。。?」 / Twitter
- Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki 最初のIPだけですね。。少なくとも昔の実装だと」 / Twitter
- ゆきさんはTwitterを使っています 「@nunnun ありがとうございます。ふむー、それでいいんだっけというモヤモヤがある。記録してない方のIPでログ照会要求きたら困りそう」 / Twitter
- Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki そうなんですよね。 そもそも従来のセッションログの仕組だとIPがA->B->Cって変わるのを記録することはできないのでフローログとか別のなにかを準備する必要がありますね。。。」 / Twitter
- Yoshifumi NishidaさんはTwitterを使っています 「@nunnun @flano_yuki 設計の初期の頃、最初のコネクションはセッション全体の終了まで保持しなければならない、というルールを作れば、最初のコネクションを見ることで少なくともそのセッションがアクティブかどうかが判別できるという議論があったんですが、これをやると使い勝手が悪くなるんで結局採用しなかったです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「データの1バイトだけをとってみても、再送時にIPアドレスがかわるとかありうるから、リクエスト単位で特定のIPアドレスに紐づくなんて、実際には幻想だし、接続時で十分という理解」 / Twitter
- 本の虫: Multipath TCPについて
- 本の虫: MultiPath TCPのLinuxカーネル実装
- Kentaro Ebisawaさんのツイート: "iOS11でMultiPath TCP(MPTCP)が本格サポートされるとのこと。WiFiと4G/5Gの共有・切り替えなどが本格化した時に通信キャリアとその中のネットワーク機材に必要とされる(必要とされない)機能ってなんだろう。 https://t.co/Qk4uYjrNt2"
- Michio Hondaさんのツイート: "@ebiken @n_kane この辺にmiddleboxの具体的な挙動に対してMPTCPがどう設計されているか書いてあります!https://t.co/xeKPpsGyol"
- Kentaro Ebisawaさんのツイート: "両端のnodeだけで通信が完結することは無く、常にミドルBOXがある前提で考えねばならぬ。逆に言うと、MPTCPが最も効果的なモバイル環境のVNFやスイッチ・ルーター等ミドルBOXは、TCP拡張がある前提で設計&実装する必要がある。 https://t.co/bhFbq5Pl4C"
- Kentaro Ebisawaさんのツイート: "MPTCPをペイロード又はTCP Optionに載せるか。ACKの受け取り方。シーケンス番号はSub Flow単位かTCP Sessionの番号を共有すべき... 今時(5年前だけど)のミドルBOX実装を考慮した考察があって楽しい。 https://t.co/bhFbq5Pl4C"
- nsdi12-final125.pdf
- iOS 11でMultiPath TCPを使う - ASnoKaze blog
- RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
- RFC 6181 - Threat Analysis for TCP Extensions for Multi-path Operation with Multiple Addresses
- Multipath TCP(MPTCP) – ビットログ
- Multipath TCP - Wikipedia
- まさみさんは語りたいさんのツイート: "mptcp、生きていた!よかった・・・。… "
- Hajime Tazakiさんのツイート: "Linux ではなんとか生き残ってる感じですね。。… "
- ゆきさんのツイート: "TCP Extensions for Multipath Operation with Multiple Addresses https://t.co/26oHTNrSkK マルチパスTCPのv1がLast Call中だけど、v0 (RFC6824)と互換性ないんだなー。デプロイが進むと良いなー。"
- draft-ietf-mptcp-rfc6824bis-13 - TCP Extensions for Multipath Operation with Multiple Addresses
- JPNIC News & Views vol.1717【臨時号】第105回IETF報告 [第4弾] トランスポートエリア関連報告 - JPNIC
- 2020年8月21日 Red Hat,マルチパスTCPをRHEL 8.3のテックプレビューとして実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「RedHatがLinux 5.6に入ったMPTCPをRHEL8にバックポートしている。MPTCP(RFC6824)は1つのsocketのopenに対して複数の経路でTCPのコネクションを作り、生きているコネクション全てで通信する事で、帯域の向上、冗長化、WiFiとモバイル通信のスムーズな切り替え等を実現する https://t.co/ONMtfU69ou」 / Twitter
- Red Hat Bringing Multipath TCP To RHEL 8.3 As A Tech Preview - Phoronix
- FadisさんはTwitterを使っています 「MPTCP、最初の3way handshakeで以降コネクションを追加するために使う鍵をそのまま流してるから、経路上に居る悪意ある第三者は勝手にコネクションを追加できるように見えるんだけど、まぁこれが見えるところに居るホストはそもそも従来のTCPでも勝手にパケットを挿入できるじゃろ?って事なのかな」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@fadis_ それはアプリケーション層でやれということでは。」 / Twitter
- FadisさんはTwitterを使っています 「diffie-hellmanくらいすればいいのに」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fadis_ ふつうのTCPでもシーケンス番号がわかればコネクション乗っ取りできるわけで。 そういうのは上の層でやれってことなんでしょうね。」 / Twitter
- Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
- 貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー - GIGAZINE
TCP Fast Open
Twitter
@rockridge07
- Rockridgeさんのツイート: "Microsoft Edgeの開発版がTCP Fast Openをサポート。既に接続を確立したことがあるIPアドレスのホストに対し3 Way Handshakeを簡略化できる。デフォルト無効。参照:… https://t.co/CfGCdbLpNA"
- Rockridgeさんのツイート: "Fx55:TCP Fast Openをサポート。 / “1188435 - Support TCP fastopen” https://t.co/46NKFeE3i1"
- Rockridgeさんのツイート: "Fx57:HTTPS接続の場合を対象に、TCP Fast Openがデフォルト有効化。 / “show_bug.cgi?id=1394818” https://t.co/ZnkWMjJRPv"
- Rockridgeさんのツイート: "Fx59:Windows版でTCP Fast Open(TFO)が使える環境をWindows 10 Fall Creators Update以降に限定した。TFOが安定して動作するよう、もともとWindows 10限定だったのを、… https://t.co/hHplpuVnGg"
- Rockridgeさんのツイート: "Firefox 59/60のリリース版ではTCP Fast Open(TFO)が初期設定で無効化されている。 / “1431738 - Disable TFO on release for now” https://t.co/eg7vGQq9sF"
- Rockridgeさんのツイート: "Fx65:NightlyチャンネルでもTCP Fast Open(TFO)が無効化。エラー率が高いらしい。 / “1503573 - Disable TFO” https://t.co/EJg6gwWg3F"
@fadis_
- Fadisさんのツイート: "Googleさんの、HTTPで3wayハンドシェイクしてたら時間がかかりすぎるからTCPを拡張して3wayハンドシェイクを省略できるようにしたTCP fast openを実際に運用してみたら、そんな拡張知らないファイアウォールや侵入検知がパケットを蹴り始めたから俺はUDPにHTTPを乗せる事にしたぜ、って流れ実に激しい"
- Fadisさんのツイート: "普通すでに広く普及しているTCPを置き換えるぞ!なんて言ってもそうそう実現するものではないんだけど、GoogleのサーバとChromeが対応するとWebのトラフィックのそれなりの割合が新しいプロトコルで通信するようになるの、Googleつよい"
- Fadisさんのツイート: "で、そんなGoogleのQUICさん元に標準化されたQUICを作る作業がIETFで進んでいる、と https://t.co/IFv33tf1ky"
- quicwg/base-drafts: Internet-Drafts that make up the base QUIC specification
- Fadisさんのツイート: "QUICではTCPヘッダにあった殆どの情報は暗号化されたペイロードの中に突っ込まれていて、鍵を持っていない経路上のホストが読めるのはUDPヘッダとどの鍵で復号できるかを指事するコネクションIDと、バラバラに届いたパケットをどの順で復号すれば良いかを表すパケットナンバーだけ、と"
- Fadisさんのツイート: "ルータはUDPの通信がいつ終わったのか知ることができない為、NAPTが通信の途中でポートの割り当てを変える可能性があるが、QUICは何処から飛んできたパケットでも正しい鍵で復号できる限り通信が続いているものとして処理される。副作用的に通信環境がころころ変わるモバイルデバイスも幸せになる、と"
@kazuho
- Kazuho OkuさんはTwitterを使っています: "tcp fastopen接続確立後にパケット通さなくなるとか、片方向だけ通すやつとかあるから、クライアント側でフォールバック処理実装したほうがいいとか。そういうネットワークは0.1%以下らしいけど #ietf94j"
- Kazuho Okuさんのツイート: "最新のWindows Insider PreviewではEdge(HTTPS)でTFOデフォルトオンっていいな。TFOの時代が来そう"
- Kazuho Okuさんのツイート: "Windows 10 Anniversary Update で TCP RACK がデフォルトなのか! IW10にもなって、EdgeにTFOを試すオプションがついたとも"
@jovi0608
- Shigeki Ohtsuさんのツイート: "AppleのTCP Fast Open導入苦労話。ミドルボックやIDSが原因で80%ぐらいしかTFOが通らない。IDSがTFOハンドシェイク完了後にブロックするのは泣ける。 / “TFO.key” https://t.co/fdDyDs06H9"
- Shigeki Ohtsuさんのツイート: "ミドルボックスが知らないTCPオプションを削除するのは予想できるけど、SYN/ackのシーケンス番号までチェックしていてTFO Cookieが通るのに戻りでTFOがブロックされるのは辛いなぁ。"
- Shigeki Ohtsuさんのツイート: "おぉ! MicrosoftがTCP Fast Open/TLS False Start/TLS1.3のサポートを表明。TCP FOは既にEdge Previewに実装されているのか。 / “Building a faster a…” https://t.co/yLWx3f3Pue"
- Shigeki Ohtsuさんのツイート: "皮肉にも今日のアップデートでMS EdgeのTFOがdefault無効に変更されちゃいました。https://t.co/DXt5ymbAxg / “TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaz…” https://t.co/Rq4wJJgmBS"
- May 9, 2017—KB4016871 (OS Build 15063.296 and 15063.297) - Windows Help
- ゆきさんのツイート: "[chromium] Remove TCP FastOpen support. https://t.co/5hLiI60gdH"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC7413で規定されている TCP Fast Open は、まだ使うには時期尚早。Linuxカーネルではデフォルトで禁止されているし、特定の条件で相手ホストを「ブラックホール指定」するが、その条件がきちんと文書化されていない。 https://t.co/JKuBkcxgim」 / Twitter
- TCP Fast Open? Not so fast! | APNIC Blog
- TCP Fast Open - Wikipedia, the free encyclopedia
- RFC 7413 - TCP Fast Open
- TCP Fast Open を試してみる - nigakyのブログ
- TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 – | HTML5Experts.jp
- TCP Fast Open ‐ 通信用語の基礎知識
- TCP FAST OPENとは? | REDBOX Labo
- マイクロソフト、より高速な「TCP Fast Open」など採用へ、Windows 10の大型アップデートとWindows Server 2016で - Publickey
- MSのネットワーク高速化に向けた取り組み--「Windows 10」と「Windows Server 2016」で実現へ - (page 2) - ZDNet Japan
- TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze’s diary
- Archive
- Enhanced Performance and Privacy for TLS over TCP Fast Open
- 2020年2月17日 IPFireがDNSリゾルバをエンハンス,TCP Fast OpenとTLS 1.3をサポート:Linux Daily Topics|gihyo.jp … 技術評論社
CUBIC
- "CUBIC: A new TCP-friendly high-speed TCP variant"を読んだ - ゆううきブログ
- SACSIS.TCP
- 03gun_04hen_02.pdf
- なまえだよさんのツイート: "iOS/AndroidのTCP輻輳制御アルゴリズムはロスベースのCUBICです。時間経過でウィンドウサイズが変動します。ロス率が上がったタイミングに巻き込まれてUDPのDNSパケットも捨てられると悲惨な感じです。 https://t.co/3oqt2RLtJA"
- Shigeki Ohtsuさんのツイート: "TCP Cubic が RFC8312 に。 / “RFC 8312 CUBIC for Fast Long-Distance Networks” https://t.co/l9IflDyZwR"
- Information on RFC 8312 » RFC Editor
- 第3回 CUBIC-TCPの登場:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- Kazuho OkuさんはTwitterを使っています 「あーありそう "a HomePlug AV network built around XAVB2001 (or similar) adapters can buffer thousands of frames and potentially exhibit multi-second queuing delays when applications use common loss-based TCP algorithms such as NewReno and CUBIC." https://t.co/aADJJ30nKS」 / Twitter
- Interactions between TCP and Ethernet flow control over Netgear XAVB2001 HomePlug AV links - CAIA-TR-130121A.pdf
BBR
BBR
- Kazuho Okuさんのツイート: "BBTは他の輻輳制御アルゴリズムと公平に動作することを期待されてるので、この結果は、測定手法に問題がある(ボトルネックがモバイルキャリア内にない等)か、キャリアのシェイピングの動作による挙動か、BBRのバグ / https://t.co/LjcWzAk2DJ"
- モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
- Kazuho Okuさんのツイート: "か、このVPNソフトが公平性無視してる"
- Kazuho Okuさんのツイート: "追試するなら、同一サーバからファイルダウンロードをBBRとCubicでやってみるといいと思いました"
- Kazuho Okuさんのツイート: "同一パケロスパターンで10倍速!ってのを一人がやりだすと、皆がそれを真似することになって、結果パケロスが増えてネットワークの利用効率が下がるから、輻輳制御アルゴリズム間の公平性重要という理解"
- (´,,•ω•,,`)JustinZhuさんのツイート: "確かにBBRによって効果があると思いますが、でもSSRによるパケットパタンの変化が本当の原因かなと思います。正しいといえば、SSRはVPNではない(安全性はそこまで保証できないから)、パケットパタンの変化と内容を難読化が着目された特化したトンネルです。公平性もこれによって崩れたかもしれません… https://t.co/qd6Xr8HXXR"
- Kazuho Okuさんのツイート: "例えば、vpnトンネルを10本のtcpに見せかけて構築し、それぞれのtcp接続において輻輳制御をする、というのはtcpに偽装するvpnとしては妥当な戦略だと思うけど(単一のtcp接続を使う場合は二重の輻輳制御が問題になる)、そのvpn上で一本のtcpをベンチマークすると、生のtcpに比べて10倍速になるよね"
- Kazuho Okuさんのツイート: "いや、このケースだとならないか"
- Kazuho Okuさんのツイート: "いや、vpn内のtcpの処理次第か"
- SODA Noriyukiさんのツイート: "空いてる時間帯ならともかく、元記事は「昼時の通信が集中する時間帯で五倍以上の通信速度が出た」って書いてるわけで、kazuhoさんが指摘してる通り、まず間違いなくデフォルトのTCPのパラメータに対して公平性を欠いてるよね。こういうものをみんなが使いだしたら破滅が待ってる。"
- #セコンさんのツイート: "こんな環境で再び測定してみたのですが、やはりBBR有効なSSRのみ速度が出るようで、SSRのソフトウェアがTCP公平性を崩しているため、この速度になっているのでしょうか。知識不足で判断できず…。 https://t.co/GV2VN4pvtN… "
- TCP BBR + ShadowsocksR + fast.com の速度を macOS + テザリング環境で測定 - Qiita
- #セコンさんのツイート: "kazuhoさんの指摘の通り、BBRアルゴリズムが高速化に寄与しているわけでは無く、BBR有効なSSRサーバへ接続していると、キャリアのトラフィックシェイピングの挙動が変わり、キャリアの意図と反して割り当てが増えTCP公平性に反した行為をしてしまっているように思えてきました。… https://t.co/UpXZRgSmoR"
- Yusuke MURAMATSUさんのツイート: "モバイルキャリアなら TCP Ack Clocking に類することやってるだろうから色々ありそう"
- Yoshifumi Nishidaさんのツイート: "BBRはlossにreactしないアルゴリズムなのでlossにreactするアルゴリズムと大きな差がでることも一応起こりえるという気はします。10倍以上というのはちょっと大き過ぎる気がするので、どこかに問題がありそうですが、条件さえ揃えば有り得なくはないという気もします。… https://t.co/7kzuMb6tuM"
- Kazuho Okuさんのツイート: "Cubicに比べてLTE回線での1MBダウンロードが44%高速化ってすごいな / “BBR Congestion Control: An Update” https://t.co/cKnkPo8sTI"
- Kazuho Okuさんのツイート: "従来の輻輳制御だとBDP超えてデータツッコミがちなので応答性が悪くなるってのは(僕が)忘れがちな論点だなぁ。そして、BBRだとつっこむデータ量がBDPの2倍まで減少すると。無線のモデル化をもっと進めればさらに減らせそうと。"
- Amazon Linux 2017.03で新しいTCP輻輳制御アルゴリズムBBRを試してみた | Developers.IO
- Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 - Publickey
- Shigeki Ohtsuさんのツイート: "BBRによるYouTubeのスループットの改善幅が日本だけ突出して良くなってる。日本ではモバイル接続が主流でパケットロスの影響が強く輻輳制御改善の恩恵がそれだけ大きいということか。 / “Google Cloud Platfor…” https://t.co/yQLN8Ljfzg"
- draft-cardwell-iccrg-bbr-congestion-control-00 - BBR Congestion Control
- GoogleのTCP BBRでTCPを高速化しProxyもその恩恵にあずかる - Qiita
- Ryousei Takanoさんのツイート: "いろいろ懐かしい。TCP CUBICで決まりかなと思ったのですが、最近はGoogleがBBRってのを提案したりと局所的には盛り上がってそうです。… "
- 第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- 第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「2016年にGoogleが提案した輻輳制御BBRは、delay-basedである点がそれまでLinuxで標準的に使われていたCUBICと大きく異なる。CUBICのようなloss-basedの輻輳制御がパケットロスに気付いてからウィンドウを狭めるのに対し、delay-basedはRTT等を観察してその変化に基づいてウィンドウを狭める」 / Twitter
- FadisさんはTwitterを使っています 「ナウいネットワーク機器は大きなバッファを持っている為、入口より出口の方が細い箇所で大量のパケットが来ると長い待ち行列が出来る。待ち行列が伸びているとRTTが長くなるが、loss-basedの輻輳制御はパケットロスが起きたら起きない程度に調整するという動きをするので常に長い列が維持される」 / Twitter
- FadisさんはTwitterを使っています 「対してBBRは経路に単位時間に流れたデータの量とRTTを観察し、パケットを流す頻度を上げても流速が変わらずRTTが増え始める点をその経路に最もスムーズにデータを流せる頻度と見做して、その頻度を維持しようとする。この結果理想的には待ち行列がほぼ空の状態が維持され、RTTを短く保つ事ができる」 / Twitter
- FadisさんはTwitterを使っています 「BBR以前からdelay-basedは考えられていたが、loss-basedがとりあえずパケットロスを起こそうとするのに対しdelay-basedがパケットロスを未然に防ごうとする為、BBR以前のdelay-basedはloss-basedが混ざるとどんどんウィンドウを狭め通信できなくなる問題がありインターネットには使い辛かったらしい」 / Twitter
輻輳制御手法
- Kazuho OkuさんはTwitterを使っています 「インターネット輻輳制御の基本アルゴリズムですね」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「相手が自分より金持ちな場合は1円渡し、そうでない場合は1.2円渡すという微修正すると完全に安定することが判明。これはノーベル経済学賞級の発見だ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「AIMD制御は正確に言うと、毎回、持ち金のうち一定割合を差し出し、それを皆で分配する。分配ルールが「現在の持分比例」よりも公平なら、いずれ持分は均等になる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「インターネットのパケロスはランダムに発生するのではなく、複数のパケロスがまとまって観測される、という話。これ伝統的な輻輳制御手法の根本にある考え方だし試験に出ますよ / https://t.co/CtHe5SqQBH」 / Twitter
- Parsing QUIC logs and assessing packet losses | Christian Huitema
- Kazuho OkuさんはTwitterを使っています 「だからネットワークシミュレータで、パケットロスn%、みたいな設定をしても、現実の環境のシミュレーションにはならない(ことが多い)」 / Twitter
- (´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho それなら1/2の確率で捨てるかどうかを確定、捨てるの場合連続ランダム個パケットを捨てて、指定したパケロスn%を超えた場合しばらく捨てないって言うシミュレーションがもっと現実と近いかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@zlm2012 実際のキューの挙動をシミュレートした方が良いのでns3とかはそうしてますね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@zlm2012 パケロスは確率事象じゃなくて、キューオーバフローの結果なので」 / Twitter
- kazさんはTwitterを使っています 「@kazuho @zlm2012 横レス失礼。 TCP-BBRの論文もそんなこと書いてあった気がしますね。」 / Twitter
- (´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho でもルーターに「賢い」こと(同じ IP-IP:port のパケットをまとめて処理とか?)をやってエンドユーザーがセルラーのNATとかの後ろにいる時、エンドユーザーから見ると確率事象になる可能性もそこそこありそうな気がしますね」 / Twitter
- FadisさんはTwitterを使っています 「TCPの再送制御と輻輳制御はslow startを除いて受け側がパケットロスに気付いてから何とかする物なので、受け側が輻輳に気付いた時には既にスイッチで沢山のパケットが溢れている。そこから再送するのでパケットが揃うまでにはかなりの時間がかかり、レイテンシを気にする用途では使い辛い」 / Twitter
- FadisさんはTwitterを使っています 「なのでIPの拡張には輻輳した機器から即座に送信側にその事を通知するECNが、Ethernetの拡張には輻輳が起きそうな時に特定の送信側に対して「少し黙れ」を要求するPFCが用意されていて、送信側がこれらを扱える事が明らかなネットワークでは、これらを使ってパケットロスを未然に防ぐという事が行われる」 / Twitter
- FadisさんはTwitterを使っています 「イマドキのスマートなNICはこうした制御をハードウェアで行えるようになっていて、そうした機器で固められた輻輳によるパケットロスが起こらないネットワークの事はLossless Networkと呼ばれている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のTCP輻輳制御は、loss-based とdelay-based と hybrid とあるので、常にロスに気づいてから…と一括りにするのは正確でないかも。 https://t.co/OYkPiTMcco」 / Twitter
- 第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「特に、広帯域+高遅延だと、遅延変化で細かく制御しないと帯域を使い切れないのだよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(どれも「ロスを発生させたら負け」というのは共通かな?)」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「5Gみたいな広帯域モバイル回線がつらい所。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そういえば無線の場合、優先のように隘路の流量に比例して遅延が徐々に増える挙動とは違う印象ありますね…突然、ランダムに巨大なジッタ発生が多めというか。 あれは流量というより電波品質の問題なのですかね。」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「@shirouzu MAC層にリトライの仕組みが入っていて、ランダムにバックオフタイムが入るのと、リトライするときにレートを下げてリトライとかの挙動もあるので、細かく見ると遅延もレートもめまぐるしく変化していると思います。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 あぁ、なるほど。 本来のイエローケーブル時代のイーサネット(CSMA/CD)っぽい挙動ですね(笑)」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「@shirouzu 5Gとかならタイムスロットの割り当てがあるのですが、WiFiはまさにそれですね。運が悪いと延々とサイコロで負けるという。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「輻輳制御はIPパケットの送信量・タイミングであったり、IPパケットを落としたりマーキングする技術なのでトランスポート非依存(TCP, QUIC関係ない)けど、TCPだと中継装置が終端していたようなケースがQUICだと常にエンドツーエンドになるってのが実務上は差を産みかねないところ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なるほど、CWNDをAIMDで交換するロスベース輻輳制御と異なり、BBRの公平性はボトルネックバンド幅(BtlBw)を交換することで公平性を確保してるのか。各接続は、定期的にキューを作り、そのキューをBtlBw*0.75のレートで送信して消す。この消す作業がmultiplicative decrease...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「で、委譲されたBltBw*0.25分のバンド幅は「委譲した以外の」各接続に、それぞれのバンド幅に応じて配分される、と。これを繰り返すと、使用バンド幅が大きい接続ほど委譲量が増えるので均等状態にconvergeする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「※なぜ「配分」かというと、BtlBwは直近10RT内の観測最大値なため。委譲した接続が観測するBtlBwのほうが、以上された接続のそれよりも先に小さくなり、結果、バンド幅が再配分されたことになる、と」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「よしBBR完全に理解した」 / Twitter
AQM・L4S
- Kazuho OkuさんはTwitterを使っています 「TCP/IP、接続ステート管理まわりは分かるし(あるいは想像つくし)、輻輳制御もまあ分かるんだけど(ヒューリスティックなところ以外)、現代的な再送制御まわりがどうなってるのか全くわからん。いろいろあるのは知ってるし、個々の要素の説明は読んだり聞いたりしてるけど身になってない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あとまあ linux カーネルの TCP/IP コードが良く分からなくて苦手意識あるというか。僕が書いてる QUIC 実装は読みやすいのに!!!」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho パケット損失で性能が低下するのがTCPなので、TCP向けの応用である限り、バッファの存在は常に善と考えていいんじゃないでしょうか。 遅延を一定以内にすることが優先でパケット損失も厭わない応用ならバッファの存在が邪魔になることもあるでしょうが、そういうのはそもそもTCP向けではないですし」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho バッファを溢れてない場合、ackの返るタイミングも遅れてそれでペース調整できるので問題ないという認識です。 バッファが大きくなると遅延は当然増えますが、それを嫌うならTCPではなく、レイテンシ優先でパケット損失を許すプロトコルを使うべきかと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap プロトコルを変えたところで、競合するトラフィックがCubicに代表されるロスベースの輻輳制御を使っていると、中継機器のバッファサイズに比例してレイテンシが大きくなってしまう、というのが問題で、だからこそAQMだったりL4Sだったりやってるのでは?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap 動画や音声でしかもリアルタイム性を要求する応用では、パケット損失があっても品質が低下するだけで通信自体は継続できるプロトコルを使い、ルータもそういうプロトコルに割くバッファ量は制限する代わりにレイテンシは保証する方向で動作するのが理想だと思ってます。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap AQMもL4Sも全然知らないんですが、そういう方向の技術なんでしょうか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap AQMはバッファがいっぱいになる前にバッファが空にならない程度を狙ってパケットを落とす手法です。CoDelとか。L4Sは輻輳制御アルゴリズムによって異なるキューを通るようにすることで、ロスベースのやつと新世代のやつを共存させる技術だと思います(たぶん)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap ありがとうございます。 AQMはrandom early dropの現代版みたいな認識でいいのかな… 損失を許さないけどレイテンシ制約は緩いTCPみたいなやつと、レイテンシ重視の奴でキューを分けた方がいいのは間違いないですね…」 / Twitter
ASnoKaze blog
- TCP Slow Startを改善する HyStart++について - ASnoKaze blog
- ブラウザからTCP, UDPソケットを操作するRaw Sockets API - ASnoKaze blog
- TCPとTLSを連携させるTCPLS - ASnoKaze blog
- ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog
- TCPのRSTパケットに拒否理由をつける提案 - ASnoKaze blog
- 40年越しにTCPの仕様(RFC793)が改訂される - ASnoKaze blog
- ゆきさんはTwitterを使っています: 「NetflixさんがTCPのシーケンス番号を64bitに拡張する提案を2017年に出してたんだよなあ。 100-Gb/sだと350ミリ秒で一周しちゃうみたいな話してた。 https://t.co/6ECCMnQTuv」 / Twitter
- draft-looney-tcpm-64-bit-seqnos-00
スライド
- YAMAMOTO MasayaさんはTwitterを使っています 「3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCPで通信するアプリケーションを動かすという内容で300ページくらいのスライドです。これがあれば一人で自作できますよ! #KLabExpertCamp https://t.co/4sUTh2MAk6」 / Twitter
- KLab Expert Camp 3 - Google ドライブ
- YAMAMOTO MasayaさんはTwitterを使っています 「スライドで解説しているコードのリポジトリはこちらです。スターを貰えると承認欲求が満たされてやる気が爆上がりするのでどうぞよろしくお願いします。 https://t.co/RpbPm0w0D0」 / Twitter
- pandax381/microps: An implementation of a small TCP/IP protocol stack for learning.
- Programming TCP for responsiveness
- 堅牢なTCPサーバを作るために - katsubushiの知見から/kamakura.go#5 - Speaker Deck
Qiita
- ns3でTCPの輻輳制御を観察する - Qiita
- Linux kernel TCP 実装にサービス運用妨害 (DoS) の脆弱性(CVE-2018-5390) について解説 - Qiita
- WEBサーバのTCPコネクション数に上限はあるのか? - Qiita
Wikipedia
- TCP congestion control - Wikipedia
- 二人の将軍問題 - Wikipedia
- Two Generals' Problem - Wikipedia
Twitter
トラッキング防止
- FadisさんはTwitterを使っています: 「Linux 5.18-rc6でTCPの送信元ポート番号を決める為のハッシュテーブルのキーを10秒毎に変える仕組みが追加された件について。バグフィックスの為の期間であるrcで機能の追加が突然入った理由は、既存のLinuxの送信元ポートの選択がトラッキングに使える事が分かったかららしい https://t.co/jEi2U0FiBu」 / Twitter
- FadisさんはTwitterを使っています: 「あるクライアントがサーバAに接続した後サーバBに接続する時、Aとの接続で使われた送信元ポートからBに繋ぐ際の送信元ポートが予想できると、次にクライアントがサーバBに繋ぎに行く事を知っている悪意あるサーバAはクライアントに対して偽のパケットを送るチャンスを得る」 / Twitter
- FadisさんはTwitterを使っています: 「これを避ける為にTCPの送信元ポートの選択は以前に使われた送信元ポートから予測できないようにすべきとされている。これを達成する最も簡単な方法は送信元ポートを乱数で決める事だが、この方法では一度使われた送信元ポートがすぐに再利用される可能性がある」 / Twitter
- FadisさんはTwitterを使っています: 「一度使われた送信元ポートが同じ通信相手に対してすぐに再利用されると、通信相手がまだ古いコネクションの情報をTIME_WAIT状態で持っている所に新しいコネクションが同じアドレスとポートで届く可能性がある。これは通信相手の実装によっては新しいコネクションの要求が誤って破棄される原因になる」 / Twitter
- FadisさんはTwitterを使っています: 「従って送信元ポートは予測が困難かつ一度使ったポートが出来るだけ長期間再利用されないような方法で選ばれなければならない。Linuxでは起動時に設定した鍵で送信元と送信先を暗号学的ハッシュにかけて最初に使うポートを選択する。これによって接続先が変わると使うポートが大きく異なる値になる」 / Twitter
- FadisさんはTwitterを使っています: 「同じ通信相手と通信している限り送信元ポートはインクリメンタルに変化しても問題がない為、Linuxではこの値を初期値として同じ通信相手に何度も接続する場合使用するポートをインクリメントしていく。問題はインターネット上の膨大な通信相手1つ1つに対してカウンタを1つ持つわけにはいかないという点」 / Twitter
- FadisさんはTwitterを使っています: 「そこでLinuxではカウンタを256エントリのハッシュテーブルに記録している。ハッシュは前述の物とは別の鍵を使う暗号学的ハッシュで、コネクションが1つ作られる度にその接続元、接続先に対応するテーブルのエントリがインクリメントされる。この手法はDHPSと呼ばれ、RFC 6056 §3.3.4にも記載されている」 / Twitter
- FadisさんはTwitterを使っています: 「このハッシュテーブルは頻繁に衝突する事になるが、衝突してもカウンタが1増えるはずだったところが1より大きな値増える可能性があるだけなので、実用上大きな問題にはならない …はずだった」 / Twitter
- FadisさんはTwitterを使っています: 「接続元ポートがコネクションを作る度にいくつ変化しているかはリモートから観測する事ができる。WebサーバはアクセスしてきたブラウザにJavaScriptでサーバに対してポートを変えながら大量のコネクションを張らせる事で、カウンタのハッシュテーブルの広範囲をインクリメントさせる事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「これを繰り返し行うと各ポートへのコネクションで使う送信元ポートがいくつづつ変化しているかを観測できる。これはハッシュテーブル上でどのキーとどのキーが衝突しているかという情報なので、これを集めていくとハッシュテーブルの鍵を特定できる。値の変化だけを見るので初期値用の鍵は影響しない」 / Twitter
- FadisさんはTwitterを使っています: 「以後Webサーバはブラウザからの接続の送信元ポートが鍵から予想される通りに変化するかで通信相手をトラッキングできる。この鍵はブート時に作られ再起動するまで変化しない為、それまでの間のWebページへのアクセスは結び付けられる。特にAndroid端末は滅多に再起動されないのでこの手法がささる」 / Twitter
- FadisさんはTwitterを使っています: 「という内容の実験結果が出た為、論文の公開に先立って急いでこれをできないようにしておく必要があったらしい。対策後のカーネルではハッシュテーブルの鍵が10秒毎に変更される。同じホストに対する送信元ポートが突然飛ぶ事があるが、それによってトラッキングが阻止される https://t.co/bvHbfFN32Q」 / Twitter
- [2209.12993] Device Tracking via Linux's New TCP Source Port Selection Algorithm (Extended Version)
- FadisさんはTwitterを使っています: 「s/どのキーとどのキーが/どの値とどの値が/」 / Twitter
- FadisさんはTwitterを使っています: 「Webのトラッキング、手法がえぐくなってんな」 / Twitter
histric
histric-1
- Kazuho Okuさんのツイート: "ルータがTCP ACKにバンド幅情報等を載せる仕組みの提案 / “Throughput Guidance” https://t.co/ojqyCdaxHB"
- Kazuho Okuさんのツイート: "「64bitのシーケンスナンバーが10年後には求められるようになるだろう。TCP/IPスタックが対応するにも、そのくらいの期間がかかるだろう」"
- Kazuho Okuさんのツイート: "tcpm で getsockopt(TCP_INFO) 標準化の機運がにわかに盛り上がってきた!!!!"
- Kazuho Okuさんのツイート: "古いネタにマジレスだけどパケロスがゼロなら距離関係ないし、パケロスがあってもCubicとか最近の手法なら距離関係なかった気がする > 「RTTである「R」が大きくなればなるほどTCPのデータ転送性能は低下する」 / “Geekな…” https://t.co/h7xFnahBIL"
- Kazuho Okuさんのツイート: "RFC 8311でECT(1)を実験用に空けたわけだけど、具体的にどういう風に使うつもりなんだろう"
- RFC 8311 - Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
- ぬるぽへさんのツイート: "TCPのEnd-toEndのRTTが縮小できるのでTCPプロキシがある場合が速いことがある, TCPのLong Fat Pipe問題 #tcfm"
- ぬるぽへさんのツイート: "TCP splittingとかいう概念を初めて知った、勉強になります #tcfm"
- matsuuさんのツイート: "プロトコルにもよるけどアクティブクローズをするのは大抵受信側で、TIME_WAITで残るのも受信側だからほとんど問題にならないとの認識(HTTP-Keepaliveはそんなことないか)。間違ってるなら誰か教えて欲しい。 / “n…” https://t.co/T2LFEFSmeJ"
- net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
- Kentaro Ebisawaさんのツイート: "F-Stack: DPDK使うとNetwork Stack自作する必要があるのを、FreeBSD Network Stack を Userspace にポートする事で解決したのね。Tencent Cloud やりますな~ https://t.co/XPyI4avazp"
- F-Stack/f-stack: F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
- Fadisさんのツイート: "RFC1122のTCPに関する要件の所に「データがくっついているRSTを許容すべきである。フォーマットについて標準化はまだなされていないが、RSTのデータにRSTした理由がASCIIテキストで含まれる可能性がある」って書かれててRSTが溢れて不思議な踊りを踊る実装が存在する可能性にワクワクせざるを得ない"
- Kazuho Okuさんのツイート: "RFC793bis(TCPのRFCのアップデート)、100ページ超えてるのやばい https://t.co/yJtL3nhg3s"
- draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
- Kazuho Okuさんのツイート: "!!!!!… "
- Hideki Sekineさんのツイート: "RFC793の内容を含んでいること、RFC793の時点で85ページあること、を考えるとむしろコンパクトな気もしますね。… "
- Kazuho Okuさんのツイート: "たぶん僕の発表に絡んだ話だと思うので。ソースは https://t.co/as5VM63uWb です。そして、クライアントがハンドオーバー中とかでackが返って来ないときにどうやるかという話なので、ミドルボックスに何かのシグナルを出してもらう必要があります… https://t.co/KSkUPf7aXe"
- TCP Optimization: Opportunities, KPIs, and Considerations
- 女子会さんのツイート: "ネットワーク事業者側がTCPをバッファリングして、パケットの番号を整列することでパケットの再送要求を減らして、5%程度帯域を減らせた事例があるという話があったけど、それがQUICの導入によりクライアント側でやれるようになれば効果が大きそうな気がしている。クライアント側の実装依存だけど。"
- Kazuho Okuさんのツイート: "あーソースは他にも mobile tcp optimization とかでググれば色々でてきます"
- Fadisさんのツイート: "TCPヘッダが20バイトもあるのに対し、IPは最小で8バイト毎にフラグメント化することが可能で、結果TCPのヘッダは途中で分断して送信することができて、雑にフィルタリングを行なっているファイアウォールがこうしたパケットの先頭だけを見て誤ったフィルタリングを行う事が90年代に指摘された"
- Fadisさんのツイート: "TCP、再送が必要になると、その情報が既に無価値になっていたとしても再送するまでその後ろの通信内容を読ませてくれないから、ミリ秒から秒単位で更新される情報を同期するようなタスクにおいてはあまり幸せになれない。問題はTCPでは辛いとなるといきなりUDPに放り出される点。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Web会議ASPを開発していた頃、セッション概念あり、再送&順序制御なし(できればFECあり)、パケット(データグラム)指向なプロトコルが欲しかった記憶。 そして、UDPでこれらを満たすレイヤを作ったけれど、これって皆が通る道なんだろうな(笑)… https://t.co/N6fdHptaQL"
- 鹿さんのツイート: "TCPでフロー制御して欲しいけど再送遅延は抑えたい時のために TCP Thin Stream があると思うのだけどそれではダメなのかな。再送回数抑えれば200ms x 3回とかで諦めてくれるので捗る。… "
- Fadisさんのツイート: "TCPが最初に規格化されたRFC793(1981年)当時のRFCには今日ではおなじみのMUSTとかSHOULD NOTとかいったキーワードがまだなくて、RFC1122(1989年)でRFC793に書かれている仕様が必須なのか推奨なのかが追記されてるの規格としてはアレだけど面白い"
- Fadisさんのツイート: "TCP、互換性のある通信をするために必要なパラメータの範囲に関するRFCが結構2010年代に入ってから作られてて、お前今までどうやって通信してたんだ感が凄い"
- Fadisさんのツイート: "TCPを実装する上で読むべきRFCが多すぎてどれを読めば良いか分からん問題に対処するために、RFC7414でTCPに関する情報はどのRFCをあたれば良いかが纏められているんだけど、RFC7414自体がReference以降のぞいて41ページもあるんだ…"
- Kazuho Okuさんのツイート: "https://t.co/fmiFuSkkys は、まだちょっと問題ある感じなんでしょうか… "
- draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
- Fadisさんのツイート: "いえ、欲しかったのはまさにこういうドキュメントでした。これがあればTCPの基本的な機能については歴史を辿って読む必要がなくなりますね… "
- Kazuho Okuさんのツイート: "おお。歴史や実装に詳しくない人が、これ読んで分かりにくいところをフィードバックしたりすると喜ばれるんじゃないかなと思います… "
histric-2
- suzakiさんのツイート: "EuroSysネットワーク4つ目。LinuxのTCP処理はカーネルで97%の時間が使われる。これを効率化するために各処理をFast Path、Slow Pathに分けて行うTAS: TCP Acceleration as an OS Serviceの提案。 Fast PathではData Segment作成, Ack, Flow Controlの処理を行う。Slow Pathでは IP Routing, ARPを行う"
- suzakiさんのツイート: "TAS: TCP Acceleration as an OS Service のHP https://t.co/w6mHTo4i0O"
- Kazuho Okuさんのツイート: "面白い。TCPはウィンドウサイズを送受信ともに1MTU以下にすれば実装簡単になりそうな気もするけど、TCPを知らずに育った世代なので自信ない / https://t.co/xMM5ma1odH"
- 3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo - Speaker Deck
- Yoshifumi Nishidaさんのツイート: "結構単純になると思います。uIPはウインドウサイズ1MSSのTCP実装でサイズが5Kバイト程度です。… "
- YAMAMOTO Masayaさんのツイート: "すごい。microps は pthread に甘えて実装が楽になってるけどこちらはだいぶ大変そう。@kazuho さんがコメントしているように、TCP は Window Size の広告を小さくすれば 1 セグメントづつのキャッチボールにできてシンプルになるのでぜひ頑張って欲しい(microps はその方法で tcp.c が 700行くらい)… https://t.co/RBHtoKVQCy"
- Kazuho Okuさんのツイート: "再送と輻輳制御、コードにバグがあった場合、修正方法を探り当てる難しさが TLS とかと段違いに難しいイメージ。動くんじゃダメで、あらゆるパターンにおいて、ネットワークに適切な負荷をかけつつ、そのケースで想定される時間内に回復処理を行わなければならない、ってむちゃくちゃ難しい"
- Kazuho Okuさんのツイート: "TCPを使うプログラムの書き方、切断処理は接続処理のだいたい100倍くらい難しいイメージ"
- Kazuho Okuさんのツイート: "パイプラインを使わないリクエスト・レスポンスプロトコルの場合のみ例外的に簡単です"
- Fadisさんのツイート: "LinuxをリモートからPANICさせる脆弱性SACK Panic。LinuxはMSS最小48バイトのTCPを受け付けており、その場合データは8バイトになる。キューは17*32KB分あるが16bitのindexでフラグメントを識別しており、キューに長蛇の列ができるようにSACKを投げるとindexが溢れてPANICする https://t.co/wmOGq3bwVQ"
- Netflix Uncovers TCP Bugs Within The Linux & FreeBSD Kernels - Phoronix
- Fadisさんのツイート: "SACK Panicを修正するパッチは既に本件カーネルに取り込まれているが、古いカーネルをしばらく使う必要がある場合MSSが小さすぎる通信をiptables等で蹴る、SACKを受け付けないようにする、といった方法で回避できるらしい"
- Kazuho OkuさんはTwitterを使っています: 「accept (2)、ローカルアドレスも返してくれたらいいのに。unbound socket を listen (2) している場合に、いちいち getsockname (2) 呼ばなきゃいけないのめんどくさい」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「s/unbound socket/0.0.0.0/」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「すごい分かる。そして10ページじゃ足りないと思う https://t.co/g02E7UUZpV」 / Twitter
- 成瀬さんはTwitterを使っています: 「TCPのFIN、socketのcloseの話だけ10ページくらい使って説明して本とかないんですかね」 / Twitter
- FadisさんはTwitterを使っています 「TCPの新しいRFCのドラフト、緊急ポインタの説明が1段落目からいきなり「実装間の違いと経路上の機器の影響の結果、緊急ポインタは新規アプリケーションで用いるべきではなくなった。でもTCPの実装はまだ緊急ポインタをサポートしていなければならない。詳しいことはRFC6093みてネ」でとても良い」 / Twitter
- FadisさんはTwitterを使っています 「RFC1122、「TCPで通信するとき、slow startするようにして、再送する時は一定じゃない時間待ってから再送するようにしたら輻輳を回避出来たから、TCP喋るやつはみんなこれしろ」って書かれてて、それまでのTCPはどんな世紀末な通信してたのってなる」 / Twitter
- FadisさんはTwitterを使っています 「1981年公開のネットワーク対戦ゲームTCP(RFC793)は当初酷いバランスだった事が知られている。バッファ枯渇後復活したホストに対してすぐ細切れのデータを送るリスキルが横行しスループットは急落した。そこで1989年のアップデートRFC1122では復活後バッファが十分空くまで殴れなくする変更が加えられた」 / Twitter
- FadisさんはTwitterを使っています 「Silly Window Syndromeの対策もRFC1122だったんだな。やっぱり1989年より前のTCPは世紀末…」 / Twitter
- FadisさんはTwitterを使っています 「TCPはストリームなので、前のパケットが失われて再送になると後ろが一緒に詰まる、というのはQUICがTCPを捨てた大きな理由だったけど、後ろのパケットはホストまで届いているんから、再送を待たずに投機的に処理して再送されてきた前のパケットとシーケンス番号が噛み合ったら確定、は出来るんだよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ sack付tcpでは、ある程度そんな動きで、ただユーザランドでは欠けたパケットが届くまで詰まったように見えてしまう、というお話でしょうか?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu そうですね。BSDソケットを使っている場合確定していないパケットはアプリケーションから見えないので詰まってしまいます。ただこれはプロトコルの制約というよりAPIの制約であって、たとえ話DPDK上でアプリケーションが自力でTCPを喋っている場合もっと攻められる、とか考えていたところでした」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なるほど。 マルチプレクサ的なストリーム利用の場合は、データグラム的なデータ境界が欲しくなりそうですね(笑)」 / Twitter
- FadisさんはTwitterを使っています 「あれ、もしかしてTCPの規格は再送パケットのデータが最初に送ったパケットのデータと一致している事は要求していない…? (新しいおもちゃを見つけた顔」 / Twitter
- Motonori ShindoさんはTwitterを使っています 「@fadis_ TCPで再送する時に、最初に送ったのと同一のパケットになる保証はありません。後続のセグメントとくっつけて再送するのもアリなので。」 / Twitter
- Tanaka AkiraさんはTwitterを使っています 「@tagomoris @_ko1 listening socket を close することで、他のスレッドで実行中の accept が終了するのって、portable じゃないんじゃないかなぁ。(昔、いろいろな環境で動くように WEBrick を直したときに、DragonFly BSD 3.6.2 では close しようが shutdown しようがブロックしつづけることを確認した)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えっlinuxのTCPのフローコントロールってオーバープロビジョニングしてるの? パケロスが発生した場合に tcp_rmem 変更しろ、とか書いてあるんだけど。それとも僕のsysctlの理解が間違ってるのかな / https://t.co/5QIoVVA8OX」 / Twitter
- TCP ソケットバッファーを調整する - Red Hat Customer Portal
- (1) ultravioletさんはTwitterを使っています 「@kazuho tcp_rmem を変えると連動して wndow size だか auto tuning だかに関連するパラメタも変わったような気がするのだけれど、前の職場から移るときに「すべて忘れます」誓約書にサインしたので思い出せない (嘘、たぶんサインしなくても思い出せなかった)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock ですよね、フローコントロールのオーバープロビジョニングはしないですよね。だから、パケットを受信したなら、バッファサイズが足りなくて取りこぼすことはないと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 同感です。TCPのwindow sizeとして求められている役割に違反してますよね。 # メッチャ厳密にいうと、メモリ不足でカーネルが死にかけてる状況なら取りこぼす可能性についてはないとは言えないとは思いますが、それはwindow sizeを広げるとむしろ悪化する筈なので、この回答はどちらにせよ変。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock こうやって頻繁にパケット落としちゃうと、適切にフローコントロールしてる場合よりも速度低下しますもんね(そして、ごく稀にしか発生しないなら Knowledge Base で取り上げる必要がないと思う)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock はい。 現実にパケットロスしている場合、たいていは中間にある機器のバッファサイズが不足していて、それはwindow sizeを小さくするとむしろ改善する(ことがある)わけで、このアドバイスはトラブルシューティングの経験とは真逆のことが書かれてます。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 気になってもう少し調べてみたんですが 「~packets collapsed」の方は重複したsk_buffをgarbage collectしているだけで実害なさそうでした。 問題は「~ packets pruned」の方で、歯抜けになったsk_buffに重複してない部分があるせいgarbage collectできずSO_RCVBUFを越えてしまってる状況みたいです」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock で、そういう lossy なネットワークでせっかく受信したパケットを捨ててしまうことになりもったいないので、tcp_rmem を増やしてやれば捨てることがなくなって状況が改善する…ということみたいです。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock なお Linux 素人なので、まったく勘違いしてるかも。専門家の意見を聞きたいところです。 ググったら https://t.co/uYFqZcCfuV の「9.2.1 tcp_prune_queue()」近辺に記述が見つかりました。」 / Twitter
- TCP/IP Architecture, Design, and Implementation in Linux - Sameer Seth, M. Ajaykumar Venkatesulu - Google ブックス
- Tatsuya MoriさんはTwitterを使っています 「(備忘録)昔の知識だとTLSハンドシェイクは時間がかかる印象なのだけど、2013年のRFC6928でTCP初期ウィンドウは10まで許可されている。サーバは1発目のターンでhello, certificate, exchange, doneをバルクで返せるようになった。 古い教科書ではTCP初期ウィンドウは1という説明が多い。」 / Twitter
- Tatsuya MoriさんはTwitterを使っています 「TCP初期ウィンドウサイズを増やす提案は下記の ACM SIGCOMM CCR 論文 (2010年) が元ネタになっている。 https://t.co/alUfKku76K Linux では2011年からカーネルの標準設定になっているので、"code then spec" の典型例かな。コミュニティは副作用を気にしたのかもしれない。」 / Twitter
- An argument for increasing TCP's initial congestion window | ACM SIGCOMM Computer Communication Review
- Kazuho OkuさんはTwitterを使っています 「TCP は packet number (シーケンス番号)が再送時に変化しないから自動的に late-ack 対応ができる。そのかわり、確実なロス検出が困難になる。QUIC は、再掃除に変化してロス検出の精度が上がるかわり、意識して late-ack 対応のコードを書く必要がある。これもまたトレードオフですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「というと QUIC で複雑になったようにも聞こえるけど、persistent congestion 検出にやすさでいうと、どのみち late-ack 前提のデータ構造使ってる必要があり。。。みたいな」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「LinuxにおけるTCPウィンドウと受信バッファの関係はどうなっているのか? を詳細に調査した報告。 (面白い要約を書こうと思ったが、新山の知識ではついていけない部分が多々あり、あきらめた) https://t.co/wenn1r83yU」 / Twitter
- When the window is not fully open, your TCP stack is doing more than you think
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「すべてのwebページは14KB以下のサイズにせよ! 多くのwebサーバで使われている TCP slow start方式は最初の10パケットをまとめて送信する。TCPパケットの最大サイズは1500バイトなので、14KBのページは15KBのページより約600msも速く転送できる可能性がある。 https://t.co/MPak8eNwmr」 / Twitter
- Why your website should be under 14kB in size | endtimes.dev
- Kazuho OkuさんはTwitterを使っています: 「@_ko1 @sora_h おっしゃるとおり、古典的な TCP/IP スタックの場合は、エフェメラルポートを確保してから connect(2) するので、クライアントとして同時接続数はポートの数に律速されます。一方で、linux の場合は IP_BIND_ADDRESS_NO_PORT というオプションがあり、これを使うと... あとはmanを読んでください」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「オタクが耳にすると話が長くなるやつw * OSがack返す(TCP管理する)のは、パケットひとつごとにプロセススイッチやりたくないという歴史的経緯 * TCP_INFOとか見ればどこまでackされてるかはわかるはず * ただTCPはファイアウォールとかで終端・中継されていることがあり、ack受信は通信相手の...」 / Twitter
- KOBA789さんはTwitterを使っています: 「そういえば最近改めて確認して衝撃だったこととして、BSD socket での TCP/IP では送信側はどこまで ack が返ってきているかをユーザーランドから知る術はなく、また受信側は OS が勝手に ack を返しちゃうのでユーザーランドに ack のタイミングを制御する余地はないということがある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「TCPスタックにデータが届いたことを意味しない みたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「たぶん、サーバアプリとクライアントアプリがTCPでつながってるっていうメンタルモデルがよくなくて、実際は、 サーバアプリ <-> サーバOS <-> TCP(<->TCP) <-> クライアントOS <-> クライアントアプリ みたいなマルチホップなんよね。だから、重要な情報はアプリケーションレベルのackが必須になる」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「へぇ、goではデフォルトでnagleアルゴリズム無効なのね。 (マナーとしてはちょい微妙かも…とはいえ定番のようにnagle無効setsockoptするのもよくある話(笑))」 / Twitter
- RFC 9293: Transmission Control Protocol (TCP)
UDP GSO
- Kazuho OkuさんはTwitterを使っています 「UDP GSO、カーネル内で完結してるわけじゃなくて NIC によって I/O error が返る、みたいな感じなのかぁ。DeskMini A300 は gbe も wifi もダメだった。これは 5gbe とかの USB NIC 買うしかないな。。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なんで UDP GSO やってるかというと QUIC の最適化においては重要だからです。手元だと 25% くらい速くなる https://t.co/XstTROh5VK」 / Twitter
- willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
- Kazuho OkuさんはTwitterを使っています 「結果まとめた https://t.co/7WOYW85ZGQ」 / Twitter
- add support for GSO by kazuho · Pull Request #293 · h2o/quicly
- VさんはTwitterを使っています 「@kazuho 25% ですか!それは凄い。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「しかし Intel Core をデチューンした状態でgbeサチるのが難しいとなると、なかなか10gbe導入の正当化がしづらい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーこれは結局NICのtx checksummingがオンになっているか否か、という問題でした(論文にあるようにUDP GSOはtx checksum offload必須)。Realtek r8169はデフォルトオフのところオンにできた。Intel AC 3168は非対応」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「UDP GSO自体は、ハードウェアがGSO非対応でも動作するらしい。ドライバのキューに突っ込まれるところまでsegmentationを遅らせることに意味があるから https://t.co/ganmK5L9EO」 / Twitter
- Queueing in the Linux Network Stack | Linux Journal
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議作ってた頃は udpパケットが、pppoe や vpnでフラグメント起こさない値として、1344を使っていたっけ。 (分割検出の度に短くなっていった。なおエラーにならないので気付き辛い)」 / Twitter
DNS
その他
- 実用 BIND 9で作るDNSサーバ(5):スレーブ・サーバのゾーン転送とセキュリティ (3/3) - @IT
- キャッシュポイズニングとは | OSSのデージーネット
- JPNICが管理する逆引きゾーンのネームサーバ一覧 - JPNIC
- 無料で安全なDNSサービスの一覧 | ハルパス
- 技術書典4で販売された「DNSをはじめよう」をフォローする感じの記事にしたい - Qiita
- DNSトンネリングの手法 / A technique of DNS tunneling (#ssmjp) // Speaker Deck
- Google Online Security Blog: Google Public DNS turns 8.8.8.8 years old
- Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗 - CNET Japan
- DNSの歴史(第1回 「HOSTSファイルの崩壊」) | 日経クロステック(xTECH)
- DNSの歴史(第2回「HOSTSファイルからDNSへ」) | 日経クロステック(xTECH)
- DNSの歴史(第3回「DNSに必要な条件」) | 日経クロステック(xTECH)
- DNSの歴史(第4回 普及までの道のり) | 日経クロステック(xTECH)
- DNSの歴史(第5回「DNSサーバーの誕生」) | 日経クロステック(xTECH)
- DNS前史:HOSTS.TXTとドメイン名ができるまで - インフラエンジニアway - Powered by HEARTBEATS
- DNSを学ぶために再帰的にdigる。 - momokaのブログ
- HTTPS DNS レコードのalpn情報からHTTP/3に繋げに行くchromiumのUseDnsHttpsSvcbAlpn feature - momokaのブログ
GNU Name System
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GNS (The GNU Name System) の仕様詳細 (現在IETFドラフト)。公開鍵+DHTを使っており、プライバシーやDDoS脆弱性などの問題に対処している。DNSと互換性があるが、"hyper-hyper local-root"により鍵保有者による独自の名前空間をインポート可能。 https://t.co/qRFKaJTSgL https://t.co/bm8jy5wFr1」 / Twitter
- The GNU Name System
- The GNU Name System ICANN66 - 20191105_icann66_gns.pdf
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関連: Zookoの三角形 - ネットワーク上における名前は、以下の3つの性質を満たしていることが望ましい (が、もしかすると理論的に不可能かもしれない): - 人間に可読なこと - 中央集権化していないこと - 安全である (勝手に名前を偽造・改変できない) こと https://t.co/5a2ssknKrk」 / Twitter
- Zooko's triangle - Wikipedia
DNS-over-TLS
- Yoshinobu Matsuzakiさんのツイート: "次期バージョンのAndroidでは標準でDNS over TLSがサポートされる模様。海外事業者のネームサーバを使うのも簡単。DNSを使った #ブロッキング は更に難しくなるよ https://t.co/YqSJjurcy3"
- Google Online Security Blog: DNS over TLS support in Android P Developer Preview
- Google Developers Japan: Android P Developer Preview が DNS over TLS をサポート
- Kazuho Okuさんのツイート: "セキュリティの観点からはローカルで署名検証をやるべきだけど、プライバシーの観点からはDoHあるいはDNS over TLSで一般的なスタブリゾルバにつなぐべきというのが、現在存在するジレンマです… "
- まきひろさんのツイート: "DNSのセキュリティはローカルにDNSSEC有効なフルリゾルバを置くのが確実だよ"
- Rockridgeさんのツイート: "Android 9 PieではプライベートDNSモードがサポートされており、プロバイダを設定するとDNS over TLSが利用できる。 / “Enable Private DNS with 1.1.1.1 on Android…” https://t.co/2iUFRUsNHp"
- Google Online Security Blog: Google Public DNS now supports DNS-over-TLS
- Kazuho Okuさんのツイート: "DHCPが平文のプロトコルなので、DoHやDoTの設定配るのはセキュアになりようがないよね、というのが標準化における懸念だと理解してる #doh_study"
DNS-over-HTTPS
- Google Public DNS
- DNS-over-HTTPS | Public DNS | Google Developers
- Google Public DNS の様々な活用方法 - Qiita
- Google Public DNS over HTTPS を試す | IIJ Engineers Blog
- DNS Queries over HTTPS の標準化 - ASnoKaze blog
- DNS over HTTPSの標準化開始:Geekなぺーじ
- Rockridgeさんのツイート: "Mozillaの開発者がNightlyチャンネルの半数のユーザーを対象に、期間限定で、新機能であるHTTPSを通じたDNSクエリ(DoH)のテストを行おうとしたところ、オプトイン制にすべきとする反対意見が続出した。 / “Goo…” https://t.co/hGahs0RhLy"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組み自体はFx60で実装済み。Firefox Nightly 61におけるテストで問題になったのは、常にCloudFlareのパブリックDNSへとDNSクエリが送信されてしまう点だ。 https://t.co/pu72EWz8a8"
- Firefox, DNS over HTTPS and a controversial Shield Study - gHacks Tech News
- Kazuho Okuさんのツイート: "既に www . google . com:443 に接続してから、GET /resolve?name=fqdn&type=A Host: dns . google .com とかリクエストして名前解決できるようになってるので、防ぎようがないです… https://t.co/v4tkVgyjj5"
- Kazuho Okuさんのツイート: "なんと。request-uriに絶対URIを指定する場合とHostヘッダを使う場合とで挙動が異なるのは Google さんのリバースプロキシのバグっぽい雰囲気ですね… "
- bosturboさんのツイート: "(echo -e 'GET https://t.co/sO5tOOs2PT HTTP/1.1\nHost: https://t.co/qComyDKBcL\n'; sleep 0.5) | openssl s_client -connect https://t.co/1aMcXHKitu) だと確かに200 OKを返してくるな…… 『GET 』の後にパスから書くと404だけど。… https://t.co/RMGjVzX8wz"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組みを解説し、CloudFlareと提携したことで信頼できるDNSリゾルバを確保できたと説く。平文のDNSクエリの危険性を説明したマンガは、いつも通りわかりやすい。 / “A cart…” https://t.co/TRrsh0Iav0"
- Rockridgeさんのツイート: "記事の末尾に、HTTPSを通じたDNSクエリ(DoH)の設定を有効化する方法が掲載されている。 / “Improving DNS Privacy in Firefox – Firefox Nightly News” https://t.co/s1gB4iIlGy"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)に関連する、Firefoxの各種設定について、規定値や役割などが紹介されている。また、DoHはFirefox 62でデフォルト有効化される計画だという。 / “Inside Firefox…” https://t.co/eRXDiT9ZRI"
- DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
- Kazuho Okuさんのツイート: "Public DNSにDoHで接続すると平均遅延は僅か(6ms)悪化するが、パケロスや品質の低いDNSの悪影響がなくなり体感が向上したという検証結果 / “Firefox Nightly Secure DNS Experimen…” https://t.co/osmlqtTOaf"
- Rockridgeさんのツイート: "MozillaがFirefox Nightly 63のユーザー2万5000人を対象にDNS over HTTPS(DoH)のテストを実施(CloudflareのクラウドDNSを利用)。6ミリ秒程度のクエリ遅延が起きる(一部環境では… https://t.co/Y0W9xstTgT"
- Rockridgeさんのツイート: "Fx62:DNS over HTTPS(DoH)のdraft-12仕様をサポート。 / “1466860 - TRR: update to latest DOH draft version” https://t.co/JyzIPfrLEG"
- Rockridgeさんのツイート: "Fx63:オプションの〔一般〕の「ネットワークプロキシ」欄で、接続設定の詳細項目にDNS over HTTPSの接続設定が追加された。 / “1482271 - DoH preferences” https://t.co/v2WMDQx2UX"
- Rockridgeさんのツイート: "DNS over HTTPSのデフォルトプロバイダをブラウザが指定すると、プロバイダの寡占を招き、中立性や政府の介入といった点で将来的にユーザーに不利益になるのでは、との意見。 / “On Firefox moving DNS …” https://t.co/DVrrPRJuRv"
- https://www.rfc-editor.org/rfc/rfc8484.txt
- DNS-over-HTTPS Policy Requirements for Resolvers | Mozilla Security Blog
- DNSサーバがDoHに対応しているか確認できるようにする提案仕様 - ASnoKaze blog
- Firefoxが通信暗号化システム「DNS over HTTPS」の対象地域拡大を発表、一体何が変わるのか? - GIGAZINE
- サイトの HTTP3 化と DNS HTTPS RR および Alt-Svc Header によるアドバタイズ | blog.jxck.io
HTTPS RR
Twitter
- Kazuho OkuさんはTwitterを使っています 「んーまあ、目論見というよりは、I-DのGoalsに書いてあるようにCNAMEでは無理なユースケースが出てきた結果、HTTPに関してサービスレコードではなくA/AAAAを使い続けたい勢がいなくなったというのが正直なところなんじゃないかしら」 / Twitter
- Yasuhiro MorishitaさんはTwitterを使っています 「つまり、「メールサーバーにMXレコードを設定するように、WebサーバーにHTTPSレコードを設定する」という世界を、I-Dを書いた側では目論んでいると。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「HTTP(S)に関して、これまでサービスレコードが忌避されてきた理由は、サービス解決の後にアドレス解決が走るという遅延にあった。Webはレイテンシ重要なので。でもECHやHTTP/3のようなユースケースが出てきた結果、CNAME、アドレス、サービスプロパティ解決を別個にやるのは無理になった。なぜなら」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「multi CDNようなユースケースで、アドレス解決とECH鍵解決で、それぞれ違うCDNのものを引いてきちゃったりすると動かないので。その結果、従来HTTPSにもサービスレコード作るべき派と、アトミックに全部解決したい派が合流して多数派を形成し、SVCB/HTTPSが爆誕した」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「CNAMEの問題がどうこうというより、なぜ今の今になってHTTPにサービスレコードを作ることになったのか、という話。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「だからまあ、レガシーなクライアント対応は、今後もCNAMEなり(apexなら)IP anycastになるだろうし、ブラウザ対応や新しいサービスならHTTPS推しされることが多くなるんじゃないですかね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「使われないものを標準化する意味はないので、ブラウザベンダーたちが軒並み反対するような仕様は通らないし、彼らはレイテンシにうるさいんですよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「HTTP誕生後30年たってから、SVCB/HTTPSがぽっと出てきて一気に進んだのは、ステークホルダー全員(ブラウザ、オリジン、CDN)が困ってるタイミングで、全員がやりたくなる提案をまとめたからだ思うし、良い意味で教科書的な事案なんじゃないのかなみたいや」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「というのがプラグマティックな立場からの感想です」 / Twitter
- Yasuhiro MorishitaさんはTwitterを使っています 「ステークホルダーに一般ユーザーが入っていないことも含め、まったくその通りだと思いました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@OrangeMorishita ぐうの音も出ません!!!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「これは誤解がある気がする。複数CDN切り替えは、従来からさまざまなWebサイトがCNAMEを使ってやっています。なんら新しい機能じゃない。なんでHTTPS RRでその話題が出るかというと、IPアドレスとAltSvc,ECHのようなサービス関連の情報をアトミックに配れないと動かないケースが出るため。」 / Twitter
- yamayaさんはTwitterを使っています 「HTTPS RRでmulti CDNに対応できるといっても、複数のCDNサービスを同時に使えるということじゃなくて、複数のCDNをスムーズに切り替えて使える(同時には使わない)ということなのであまり期待しない方がいいと思う。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「新しい通信機能を導入するにあたっての障害を取り除くためであって、なにかCNAMEより便利なものを作ろうとしてるわけではないです(Apexを除く)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「現状CNAMEでCDNを指定しているウェブサイトは、単一CDNであれ、複数CDNであれ、何も設定を変える必要はなくて。ウェブブラウザとCDNがHTTPS RRに対応することで、ECHが動いたり、いきなりHTTP/3でつなぐようになる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「DNS Camel問題、DNSの設計が古いことに起因する問題だと思ってる。 * レコードタイプをアプリケーションが勝手に定義できない * レコードタイプ追加のたびに、権威サーバのプログラムの拡張が必要(レコードのバイナリ化のために) ってあたり。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「HTTPだと、URI Pathをどう使うか、ペイロードの意味が何かはアプリケーションが自由に決められるでしょ。DNSは、そういう分離がされる前のgopher的な設計なのよ」 / Twitter
- WebサーバのDNSへの登録方法が変わるよ – JANOG48 Meeting
- janog48-lt-https - janog48-lt5-yamaguchi.pdf
- summerday2021-https-rr - 11-yamaguchi.pdf
- “HTTPSレコード”って知ってる?今知るべき4つの注意点 | IIJ Engineers Blog
- DNS HTTPSレコードで別ドメインにpreconnectさせる提案仕様 - ASnoKaze blog
EDNS0
- インターネット用語1分解説~EDNS0とは~ - JPNIC
- 「EDNS0」とは何ですか?:DNS Tips - @IT
- 008-「512の壁」を越える
- EDNS0 ‐ 通信用語の基礎知識
- ことなかれblog 備忘録 « EDNS0
- 512バイトを超える DNSパケット
- RFC 2671 - Extension Mechanisms for DNS (EDNS0)
- digコマンドでEDNS0の動作を確認する。 - labunix's blog
DNSSEC
- rick.eng.br/dnssecstat/
- DNSSEC はなぜダメなのか
- KSKロールオーバーについて - JPNIC
- 「ランチのおともにDNS」より~変化するDNSとサーバー証明書の関係【Internet Week 2017】 - INTERNET Watch
- インターネット用語1分解説~EDNS0とは~ - JPNIC
- 008-「512の壁」を越える
- OARC's DNS Reply Size Test Server | DNS-OARC
- ニュース速報:読売新聞(YOMIURI ONLINE)
- DNSインフラを狙う攻撃増加、ICANNがDNSSECの導入を呼び掛け - ITmedia エンタープライズ
- SODA Noriyukiさんのツイート: "DNS関係で今現在の最大の問題はリフレクション攻撃の踏み台として使われているってとこだと思うんですが、DNSSECは踏み台攻撃の増幅効果が大きくてむしろその問題については対策ではなく穴を大きくする方なんですよねえ。あと毒入れ系の対策としての効果も限定的( https://t.co/JPsDVfGKZh の8.)だし… https://t.co/IkDx25Jd7B"
DNSCurve
- DNSCurve - Wikipedia
- インターノット崩壊論者の独り言 - DNSSECイラネ - DNSCurve を適用しました , DNSCurve と CurveCP で高速安全というDJBの話
- NetAgent Official Blog : DNSCurveの紹介
- Introduction to DNSCurve
- mdempsky/dnscurve: Tools for DNS curve implementation
- DNSCurve vs DNSSEC - Togetterまとめ
Dnsmasq
- Dnsmasq - Wikipedia
- dnsmasq - Wikipedia
- Dnsmasq - network services for small networks.
- Man page of DNSMASQ
- dnsmasqで始めるプライベートDNSサーバ - GeekFactory
- Dnsmasqのproxydhcp機能を使ってiPXE chainloading - Qiita
NSD
- UnboundとNSDの紹介 BIND9との比較編
- NSDでおてがるにDNSサーバをたちあげる - Qiita
- NSD 4 – 日本Unboundユーザー会
- NLnet Labs - NSD - About
- Unbound + NSD で DNS
- NSD (ソフトウェア) - Wikipedia
- DNSサーバ”NSD”の紹介 | ICTSC tech-blog
- NSDとUnboundで社内用DNSサーバを立てた話 | エンジニア ブログ
-
- bind2other
- 第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
INTERNET Watch
- ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーの設定確認を! 今年9月は特に注意 - INTERNET Watch
- 萌えドメインなのに……「anime.moe」の登録をICANNが禁じている理由とは -INTERNET Watch Watch
- 「KSKロールオーバー」に伴い講ずべき措置、総務省が国内関係者に告知、9月19日以降にウェブアクセスやメール送信ができなくなる場合も -INTERNET Watch
- 「KSKロールオーバー」で一部DNS応答サイズが増大、4人に1人のインターネット接続に影響? JPNICが確認を呼び掛け -INTERNET Watch
- IANA — Domain Name Services
- 【IETFトピックス2016-17】 インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る - INTERNET Watch
- 【IETFトピックス2016-17】 熱い議論の続く、DNSプロトコル拡張と今後 - INTERNET Watch
- KSKロールオーバーのテストプラットフォーム、ICANNが提供 -INTERNET Watch
- 大きく変化していくDNSの規格 ほか~「DNS DAY」の話題から - INTERNET Watch
- 「KSKロールオーバー」で問題を起こしそうな箇所はここだ! 9月19日だけでなく10月11日にも注意 - INTERNET Watch
- 10月11日の「KSKロールオーバー」鍵更新は延期、未対応のISPなど「相当な割合」あることが判明 -INTERNET Watch
- 「KSKロールオーバーはまだ終わっていない」~今年の「DNS DAY」の話題から【Internet Week 2017】 - INTERNET Watch
- KSKロールオーバーの鍵更新がさらに延期へ -INTERNET Watch
- KSKロールオーバー、10月11日に実施か - INTERNET Watch
- 近年のDNSはプロトコル拡張が活発すぎる!? 現時点で意識しておくべきリソースレコードとは【DNS Summer Day 2022】 - INTERNET Watch
Geekなぺーじ
- TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ
- ざっくり詳解 - NAT64とDNS64:Geekなぺーじ
- なぜIPv6とIPv4の名前解決は別々に行なわれるのか?:Geekなぺーじ
- KSKロールオーバーが延期:Geekなぺーじ
- ユーザの近くにある偽DNSサーバの話:Geekなぺーじ
- [書評]「DNSがよくわかる教科書」は、すごくイイ!:Geekなぺーじ
- RFC 8501 : Reverse DNS in IPv6 for Internet Service Providers:Geekなぺーじ
ASnoKaze blog
- DNS ANAMEレコードの提案仕様 - ASnoKaze blog
- .internal ドメインを予約する提案仕様 - ASnoKaze blog
- HTTPSで接続するための追加情報を格納するHTTPSSVCレコード - ASnoKaze blog
- HTTPSの接続情報を通知する "HTTPS DNSレコード" の提案仕様 - ASnoKaze blog
- DNSのエラー理由を通知するExtended DNS Errorsの仕様 - ASnoKaze blog
- DNSで負荷分散を可能にするLBレコードの提案 - ASnoKaze blog
- DNS名前解決エラーもネガティブキャッシュする提案 - ASnoKaze blog
GIGAZINE
- Google Chromeは「DNSルートサーバー」に大きな負荷をかけている、その理由とは? - GIGAZINE
- CloudflareやAppleなどが協力して新プロトコル「Oblivious DNS over HTTPS(ODoH)」を開発 - GIGAZINE
- ブラウザの追跡ブロック機能を回避する「CNAMEクローキング」を行うサービス・企業のリストが公開中 - GIGAZINE
- AmazonやGoogleのDNSサービスに存在する欠陥を研究者が発見、企業の重要な情報が筒抜けに - GIGAZINE
- akiさんはTwitterを使っています 「forwarding時間でLUTを引ける程度、 表がメモリに乗る程度、 というあたりでは? 名前によるICNは、未だ高速性が研究になるぐらいだし。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「以前、情報系の入門者に「なぜ通信する時、fqdnのような名前を直接使わずに、IPアドレスを使うのでしょう?」と純真な眼で問われたが、直感理解できる説明が出来なかった。 良い答え方あるかな…でも「人間に扱いやすい名前と、機械に優しいIPアドレス」は半分ウソ(機械はどちらでも可)という気が。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「黎明期は別として、今は、IPアドレス側は管理しやすさ(ルーティングや割付)の方がメリットかもしれない。 その点で「機械にやさしい」には、機械化せずとも、郵便番号や固定電話番号のような、体系的ナンバリングは管理が楽になる、みたいな話が含まれてないのが気になる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS関連(LinkedIn含む)のCDNで問題起こすこと多い様子…むしろMSが無茶しないようにして欲しいかも。」 / Twitter
- ---さんはTwitterを使っています 「UnboundくんがCNAME 8段まで「しか」たどらなかったのが、11段もたどるようになった!https://t.co/hJTm5tmfX9」 / Twitter
- Resolving records through more than 8 CNAME fails due to hardcoded MAX_RESTART_COUNT · Issue #438 · NLnetLabs/unbound
infoQ
- GoogleがクラウドDNS転送を発表
- SAD DNSの仕組み
OSDN
- Google Chrome 26リリース、スペルチェック機能の強化やMac/Linux版での非同期DNSリゾルバ実装などが特徴 | OSDN Magazine
スラド
- DNSのCAAリソース・レコード、使っていますか? | スラド IT
GitHub
- blechschmidt/massdns: A high-performance DNS stub resolver for bulk lookups in C
- GitHubがどのようにDNSインフラストラクチャを改善したか
- DNSCrypt - Official Project Home Page
- jedisct1/dnscrypt-proxy: A tool for securing communications between a client and a DNS resolver
Wikipedia
- TSIG - Wikipedia
Twitter
HTTP
- Kazuho OkuさんはTwitterを使っています 「この「本来やりたかったの」ってどういう文脈なんだろう。I-D的にはalt-svcレコードの提案が源流にあるし、http屋さんとしては、zone apexにCNAMEは元々優先順位低かったという認識(SRV系拒否してきた歴史がある)」 / Twitter
- ---さんはTwitterを使っています 「draft-ietf-dnsop-svcb-https くん、本来やりたかったのは “zone apexにCNAME” だったはずだけど、ESNIやらIPv4/IPv6 hintやらいろんな要求が悪魔合体して嗚呼standards body……みたいな感想のみ」 / Twitter
- ゆきさんはTwitterを使っています 「@kazuho 「本来やりたかった」からちょっとずれますが、ANAMEレコードの提案仕様の議論してた話が、HTTPS(旧HTTPSVC)でカバーして解決されるって感じになったんですかね https://t.co/uGYCuRfr2W」 / Twitter
- Re: [DNSOP] status of the aname and svcb/httpsvc drafts
- ゆきさんはTwitterを使っています 「@kazuho リンク間違えた。が、スレッドは同じ https://t.co/YAyxfjjVjG」 / Twitter
- Archive
- Kazuho OkuさんはTwitterを使っています 「なぜSRV系を拒否してきたかというと、ユーザがウェブブラウズに使うHTTPは名前解決の速度が重要で、再帰リゾルバに問い合わせしたらIPアドレスが返ってこないと困るからです。だからA/AAAAを引いてた。そこに、ECHの鍵とりたいとか、QUICで話せるよとか、そういう情報を入れたいという要求が加わった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ANAMEは、サービス解決を挟まずに無理矢理アドレス解決しようとする強引な仕様だったし、なくなって良かったんじゃないかな」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@kazuho まだ残ってたんですか…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@jj1bdx このへんの話です」 / Twitter
- Kazuho Okuさんのツイート: "オープンリゾルバが絶滅し、リゾルバはTCPでのクエリを受け付けるべきという規定が実現可能になったという背景があるのかな / “TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ” https://t.co/vuJYimFp5T"
- Kazuho Okuさんのツイート: "DNSキャッシュサーバにTCPでの応答が求められるになっただけであって、権威サーバはあいかわらずUDP-onlyでいいのよね?"
- Kazuho Okuさんのツイート: "DNS権威サーバへの攻撃対策は、初見のアドレスからクエリを大量に受信し始めたら無視すれば良い #ietf97j"
- Yusuke Endohさんのツイート: "https://t.co/TVeOG3Tk3j に書いてあるとおり、https://t.co/B5msekD4Um は大量の IP が割り当たっててパケットサイズでかくなるので、DNS over UDP で失敗したあと、DNS over TCP が必要になる。(続く)"
- [debian-users:57972] Re: yomiuri online に接続できなくなった
- Yusuke Endohさんのツイート: "なお、ツイッターが全部 https://t.co/B5msekD4Um にしてくれちゃってるけど、www付きで"www.yomiuri.co.jp”と書いたつもりでした。"
- 浸透いうな/伝播いうな/反映いうなさんのツイート: "@n_soda @hoshi_takanori @ReijiAbe そこがポイントです。誰も問い合わせしないキャッシュサーバは永遠に更新されることはありません。"
- SODA Noriyukiさんのツイート: "「浸透の言い換えを考えているようではダメ」って、こういう意味なのね。設定変更の遅延がユーザーに見えることはほぼ防ぐことができるので言い換え自体必要ないと(もし設定ミスで遅延が生じたら、「浸透」で誤魔化さずにちゃんと謝ろうと)。 https://t.co/AtolVVuFhI"
- 浸透いうな/伝播いうな/反映いうなさんのツイート: "@nhhi122 技術者は素人に向かって浸透といわなきゃいけない状況を回避すればいいのですよ。それが技術者というものでしょう。そして回避ができないときはちゃんと理由を説明すべきです。"
- (び)さんのツイート: "DNSでは、recursive queryとiterative queryそれぞれ定義があるので。… "
- Kazuho Okuさんのツイート: "djbdns 歴が長すぎて知らないんだけど、最近だと BIND でもキャッシュのエクスパイヤを絶対時間で設定できるようになってたりするのかな。あれは浸透とは程遠い動作だと思う"
- Kazuho Okuさんのツイート: "HTTPのキャッシュについて「浸透を待ってください」という人は聞いたことない。皆「リロードしてください」と言う。つまりは、DNSの場合、事前の対処法を知らないもしくは事後の対処法がないから「浸透を待ってください」と言うのだろう"
- Kazuho Okuさんのツイート: "F5押しても権威DNSサーバまでクエリが飛ばないの、僕はうんこだと思ってます"
- Kazuho Okuさんのツイート: "DoHではドウかなーって思ってドラフト確認してみたら、HTTPレイヤのキャッシュについてはバイパスする(がDNSレイヤにキャッシュがある場合は無理)って話になってた。まあそうだよね。DoHリゾルバがDNSレイヤでのキャッシュもってなければF5でリロードかかるし良い… "
- Kazuho Okuさんのツイート: "別の言い方をすると「浸透」という単語の問題ではなく、「浸透を待たなければならない」という認知を強化する可能性の問題なのだ"
- Kazuho Okuさんのツイート: "「浸透」という表現が「変更が伝わるまで待たなければならない」ことを含意するからダメなんですよ。正しく設定していれば待つ必要ないのに / “DNSで浸透って言っちゃだめなの? - @tmtms のメモ” https://t.co/bMxaRBcCzf"
- DNSで浸透って言っちゃだめなの? - @tmtms のメモ
- Shigeyaさんのツイート: "キャッシュされたRRがキャッシュから無くなるタイミングは、権威サーバで指定されたTTL(Time-to-live)の秒数で決まります。一度キャッシュされたRRは、そのTTLすぎるまでは「そのキャッシュでは」そのまま用いられます。だからコレを短くすれば、反映されるまでの時間は調整できます… https://t.co/c8JjRRsSXU"
- Kazuho Okuさんのツイート: "DNSの上に認証レイヤを構築完了したので満足なう。これでDNSに悩まされないですむわー"
- Kazuho Okuさんのツイート: "Amazon Route 53 のエスケープシーケンスはバックスラッシュ+8進数、Azure DNS はバックスラッシュ+10進数です。さて問題です。RFC 1035 に合致しているのはどちらでしょう"
- Kazuho Okuさんのツイート: "DNS クイズを出したが回答がない。シーンとry"
- Kazuho Okuさんのツイート: "「君のDNSサーバ、なんでTXTレコードを127バイトごとにチャンクするの? 255バイトでいいはずなのに」僕「djbdnsだから!!!!」"
- Kazuho Okuさんのツイート: "細かなとこだけど、TXTレコードには文字列ではなく任意のバイナリシーケンスを登録可能です / “アプリケーションエンジニアが知るべきDNSの基本” https://t.co/G28FjQ9B4f"
- Basics_of_DNS_that_application_engineers_should_know - Speaker Deck
- Kazuho Okuさんのツイート: "DNSの「再帰」と「反復」の違いが話題になってるけど、そもそも何が違うの? 原典だと「recursive」にあたる単語に別々の訳語をあてて混乱してるとかじゃないよね???"
- Kazuho Okuさんのツイート: "複数のリカーサが設定されている場合に、それぞれに順次問い合わせることを反復と言ってるのかな"
- Kazuho Okuさんのツイート: "自己解決。リカーサが順次権威サーバに問い合わせていくことを「反復的(iterative)」と呼んでいるのか… "
- Kazuho Okuさんのツイート: "「反復」問い合わせをした結果を返すことを「再帰」と呼んでいるのであって対立する操作ではない、と説明すべきなのかな"
- ゆきさんのツイート: "Domain Contact Information (WHOIS) over DNS https://t.co/p4h4RXeTLq WHOIS over DNS #yuki_id"
- ゆきさんのツイート: "「DNS Resolver Information Self-publication」 https://t.co/bFuxni3R35 Googleの人とICANN勢の共著。DNSどのようなトランスポート・機能に対応しているか確認できるようになる。こういうの必要よね #yuki_id"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「udp socket で source port 0(本当の0番。一時空きポートではなく)の sendto はできないが、 recvfrom はできてしまう非対称性、私を含めて well-known でない気がする。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「nsdのエラーは port 0 に sendtoして invalid argument だった。 おそらく src port 0 な不正DNSクエリを受けて、チェック無しにsendtoしてる。 nsd[...]: error: sendmmsg [0]=83.31.183.240@0 count=4 failed: Invalid argument https://t.co/sXUwRkj65n」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「報告者は port 0 に言及してるけど、作者側はロギングのみで、port 0 チェックは未対応に見える。 (ポート0なUDPパケット受信は、カーネルが弾くべきなのだっけ…?)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えー「(HTTPプロキシのように)DNSサーバでセカンダリとプライマリも分かれてキャッシュされるのか」が質問だから答えは否では? HTTPのauthorityと違ってDNSはどの権威サーバが答えても同じなので。 それはそうとしてWindowsのDNSキャッシュサーバ複数指定したときはそういう動きなのか勉強になる」 / Twitter
- ますだまさるさんはTwitterを使っています 「今なら夏春都の質問に答えられる。DNSサーバはプライマリとセカンダリでキャッシュは別だけどWindowsのデフォルトならプライマリDNSから1秒以内に返事が返えればセカンダリに投げないのでキャッシュもされない。プロキシを使った場合は基本的にDNSクエリはプロキシが投げる https://t.co/qwG4rCQe7W https://t.co/t5TgK2NSVs」 / Twitter
- [第1147話]こちら葛飾区亀有公園前派出所 - 秋本治 | 少年ジャンプ+
- Domain Name System (DNS) Parameters
- c-ares: library for asynchronous name resolves
- c-ares-1.12.0
- tornado.platform.caresresolver - C-Aresを使った非同期DNSリゾルバ - Tornado Web Server — Tornado 3.2.1(日本語)
- 浸透いうな/移転のツイートは乗っ取りを呼ぶさんはTwitterを使っています: 「こうすれば DNS は簡単 ・外部名は使わない ・キャッシュと権威は分ける ・応答は 512 バイトに納める(馬鹿みたいに TXT とか増やさない) ・親子ゾーンは分離する ・CNAME を無闇に使わない ・ダメな事業者は避ける (自分で運用するのが実は一番楽 / みんな騙されてる) ・BIND は避ける ・DNSSECは論外」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「DNSが複雑に感じられるの、設計が古いからなのが大きいと思ってる。 セマンティクスと、通信プロトコル上の制限(512バイトとか権威vsキャッシュの分離が必要とか)と、権威サービスの運用専用機能の分離が不明確(zoneファイルってなんやねん)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「セマンティクスにおいてもNSとグルーを組み合わせた移譲は、リダイレクトよりも複雑な感はあったりするけど、まあ些細なこと」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「このへん、HTTPは後発なので、 * セマンティクス(リクエスト・リダイレクト・レスポンス) * キャッシュ * 通信プロトコル(HTTP/1,2,3) が別々に定義され、別々に学べるようになってる。権威サーバの可能性確保はアプリごとに決めてね、と」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「DNSバカにしてるわけでも関係者の努力を否定しているわけでもなくて、歴史があるからしょうがないって話で。 ただ、学習方法としては、HTTPみたいな近代的なプロトコルで構成要素の概念学んでから、DNSを学べば、理解に苦しむことはないと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「個人的には名前解決の最大の無駄はDNSじゃなくてDNSとX.509 PKIが分かれているところだと思う。なんで名前解決と証明書取得が別個やねん。まあ経緯があるわけですが。そしてDANE…」 / Twitter
Multicast DNS
Avahi
- Avahi - Wikipedia
- Avahi (software) - Wikipedia
- avahi-daemonを設定してDNSサーバ運用をやめた - Qiita
- Raspberry PiでAvahi を使ってホスト名でアクセスする | 株式会社インデペンデンスシステムズ横浜
- 第216回 Avahiとローカルエリアネットワーク:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Avahi - ArchWiki
- Linuxでのavahi-daemonの停止 - weblog of key_amb
- [Ubuntu] Avahiのコマンド一覧 - Life with IT
- avahi - mDNS/DNS-SD
- どーでもいい日々: mDNS、Avahi、Bonjour
- avahi-daemonのシステムログの内容について | アットマークテクノ ユーザーズサイト
- Source Browser
- jevinskie/mDNSResponder
- RFC 6760 - Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP)
- RFC 6761 - Special-Use Domain Names
- RFC 6762 - Multicast DNS
- RFC 6763 - DNS-Based Service Discovery
- Multicast DNS
- Multicast DNS - Wikipedia, the free encyclopedia
- IPマルチキャスト - Wikipedia
- Zeroconf - Wikipedia
- Zero-configuration networking - Wikipedia
- TCPやUDPにおけるポート番号の一覧 - Wikipedia
- DNS Service Discovery (DNS-SD)
- TCP/IP環境に革新もたらすZeroConfネットワーク「Bonjour」~概要と仕組等~
- 形式 - マニュアルページセクション 1M: システム管理コマンド
- dns-sd(1) Mac OS X Manual Page
- Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ
- DNS-SD(Bonjour)をUniversal Windows Platformから利用してサービスを探す - ぷろじぇくと、みすじら。 - Misuzilla.org
- Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ (1)
- OS X 10.11のDNS64らしき動きをするDNSサーバを作る - yunazuno.log
LLMNR
- RFC 4795 - Link-local Multicast Name Resolution (LLMNR)
- Link-Local Multicast Name Resolution - Wikipedia
- Link-Local Multicast Name Resolution: The Cable Guy, November 2006
- Windows管理者のためのIPv6入門:第6回 LLMNRを使ったローカル・セグメント上での名前解決 - @IT
- Vistaネットワーク大解剖 - 名前解決(2)--IPv6でも使えるLLMNRによる解決手法を追加:ITpro
- ASCII.jp:Windowsネットワークの名前と番号 (5/5)|完全解剖「名前とアドレス」
- Web系雑記: Windowsにおける名前解決の挙動(DNS・LLMNR・NBT)
- KASAGO LLMNR 図研エルミック
- 日々記: コンピュータ名での名前解決ができない
- プロトコルについて
ICMP
- 本の虫: Pingプログラムの話
- packet socketsを使用してパケットを送信する - ゾンビ狩りクラブ
- libnetを使用してパケットを送信する - ゾンビ狩りクラブ
- おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE
ARP
- internal22-265-アドレスの解決 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- internal22-264-データ構造 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- アドレス解決プロトコル - Linuxカーネルメモ
- ARPスプーフィングしてみた - Qiita
- FadisさんはTwitterを使っています 「ARPのヘッダのHardware Type、IANAのドキュメントには0x0001はEthernet(10Mb)って書かれてるけど、Fast EthernetだろうとGbEだろうと、そもそもEthernetですらさない802.11でも0x0001って言ってて、Ethernetと同じ長さのMACアドレスがあったらEthernetでいいや感が漂ってる https://t.co/XIxzAJPPzF」 / Twitter
- Address Resolution Protocol (ARP) Parameters
- FadisさんはTwitterを使っています 「ノードの識別にEthernetのMACアドレスと異なる形式を用いるネットワークではARPのHardware TypeはEthernetとは別の値になっていて、TCP/IP over アマチュア無線の為の規格AX.25ではノードをコールサインで識別する為Hardware Type = 0x0003が割り当てられている、と」 / Twitter
NIC
RNDIS
- Android USB Tethering - Gentoo Wiki
- Android テザリング - ArchWiki
- Android tethering - ArchWiki
- [Linux] USB Ether gadget(g_ether) の使い方等 - Qiita
- Overview of Remote NDIS (RNDIS) | Microsoft Docs
- [MS-RNDIS]: Remote Network Driver Interface Specification (RNDIS) Protocol
- RNDIS について | WDDDC
CDC-ECM
- cdce(4)
- Develop
- Ethernet over USB - Wikipedia
- AN64465 - West Bridge® Integration to Android on OMAP Zoom II MDP:RNDIS, CDC-ECM, and Mass Storage Functions | Cypress Semiconductor
CDC-EEM
- CDC EEM
- DriverCore
- XLsoft Corporation : エクセルソフト デバイスドライバ開発ツール : USB Communication Device Class
- MCCI Windows drivers for CDC EEM
- CDC EEM Subclass Architecture
CDC-NCM
- USBのNCM(Network Control Model)仕様が世界標準に | 共同通信PRワイヤー
- MCCI Network Control Model (NCM) class drivers
- CDC: Communication Device Class (NCM)
- TR-018_Ver1.0.pdf
- TR-017_Ver1.0.pdf
MBIM
- USB-IF、モバイルブロードバンド・インターフェースモデル仕様の提供を発表 | Business Wire
- 次世代Windows OSで変化する無線ネットワーク環境とファイルシステム (1) 無線ネットワーク機能をブラッシュアップする「モバイルブロードバンド」 | マイナビニュース
CDC-WMC
- Support for the Wireless Mobile Communication Device Class (Windows Drivers)
ASIX
- AX88772 - ASIX Electronics Corporation
- AX88772B - ASIX Electronics Corporation
virtio-net
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第3回 I/O仮想化「デバイスI/O編」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第11回 virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第12回 virtioによる準仮想化デバイス その2「Virtqueueとvirtio-netの実現」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第19回 bhyveにおける仮想NICの実装
- virtio(vhost)の概要 - tkokamoの日記
NIC(Intel)
- Intel® ICH 8/9/10 and 82566/82567/82562V: Developers Manual
- Intel® 82541PI Gigabit Ethernet Controller: Specification Update
- Intel® Gigabit CT Desktop Adapter Product Brief
- Intel PRO/1000 GT Desktop Adapter
- www.intel.com/content/dam/doc/manual/8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
- Intel® PRO/1000 PT Desktop Adapter - Overview
- Intel 8254x - OSDev Wiki
- download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf
- PCIe* GbE Controllers Open Source Software Developer’s Manual
- PCI-PCI-X GbE Family of Controllers Software Developer’s Manual
NIC(Realtek)
- www.cs.berkeley.edu/~kubitron/cs194-24/hand-outs/rtl8029as.pdf
- akizukidenshi.com/download/RTL8019AS.pdf
- www.intrasoft-spb.ru/pdf/Gigabit_ethernet_controller_RTL8169.pdf
- RTL8111B_8168B_Registers_DataSheet_1.0.pdf
NIC(Broadcom)
- Ethernet NIC Driver Support
NIC(Marvell)
- Marvell_88E8053.pdf
- 自作OSに10GbE NICを移植する – Raphine Project
- MikanOS に NIC ドライバを実装する - 送受信編 - Qiita
- 既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
- MII-RMII
- Yojiro UOさんのツイート: "某NICの内部カウンターのインクリメントタイミングを決めている定格80MHzのオシレータ、しばらく計測した結果80.003MHzくらいで発振してることがわかった。<40ppmくらい。なるほど。 微妙に時間がズレる。"
- Yojiro UOさんのツイート: "NIC内カウンター、クロックタイミングごとの加算値をキャリブレーションするためのレジスタがあるので、そこをほげると補正できるはず。"
- Yojiro UOさんのツイート: "80MHzのオシレータが3KHzもずれていると、1クロックあたり4.6psくらいずれていく計算になる。 1秒で0.36ms。 今時の腕時計でもこんなにずれない。"
- Yojiro UOさんのツイート: "昨日みてた某NICの内部クロック、個別にキャリブレーションして一晩ちょっとフリーランしておいた結果を眺めた。ずれは1/20くらいにはなったけどまだずれてる。 一秒あたり1usecくらい。 内部クロックだけの精度でさらに1/10くらいに追い込めそうな気はする。"
- 中村 実さんのツイート: "1/4nsってPTPの仕様上の分解能の限界だがな。一番下の桁でカウントアップしているだけじゃないかしらん? https://t.co/YPNbMUCDqo"
- Yojiro UOさんのツイート: "ちなみにintel x550のタイムスタンプの時間分解能は12.5nsのはず。"
- IzNoMaさんのツイート: "日本では10年前に 4ns分解能のがありました。特定のアトリビュートを持った udp データグラムにのみ打刻するタイプですね。 現時点での 250ps分解能はそのまま FPGAの性能向上を示してる気がします。^^ https://t.co/Ig78TWsA6k https://t.co/pQrSeaoihC"
- ryoさんはTwitterを使っています: 「動的解析の結果謎レジスタの意味がわかった。どうやら0x80000000がRSS Enableのフラグで残りはprotocol毎のRSS ringの数(2^n)のようだ。https://t.co/gwFKqbTNei 謎数値の埋め込みやめてw」 / Twitter
- aqtion-freebsd/aq_hw.c at master · Aquantia/aqtion-freebsd
- 技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します! - へにゃぺんて@日々勉強のまとめ
- ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例 - yunazuno.log
- tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する - yunazuno.log
- RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
- FadisさんはTwitterを使っています 「Ethernetヘッダが14バイトとかいう中途半端な大きさだから、4バイト境界に沿って読まないと性能が落ちるアーキテクチャではLinuxカーネルがEthernetヘッダの前に2バイトのパディングを挿入して、後続のIPヘッダのIPアドレス(頻繁に読む)が4バイト境界に来るようにするの頭良い https://t.co/rnP8NiiqVz」 / Twitter
- ネットワークスタック内の謎の2バイトについて探る - Handwriting
VLAN
- タグVLAN 設定例 | YamahaルータのタグVLAN
- 特集:ネットワーク構築の基本はVLANから(1):VLANの基本的な仕組みを攻略する - @IT
- VXLAN(RFC7348)を学ぶ:VXLANが登場した理由、他の実装との違い、特徴を整理しよう (1/3) - @IT
- Virtual Local Area Network - Wikipedia
- IEEE 802.1Q - Wikipedia
キープアライブ
- ハートビートとは|heartbeat - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- キープアライブとは|キープアライブパケット|キープアライブ機能|keep alive - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- ヘルスチェックとは|health check - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- セッションとは|session - 意味 / 定義 / 解説 / 説明 : IT用語辞典
AirPrint
IPP
- Internet Printing Protocol - Wikipedia
- Internet Printing Protocol - Wikipedia, the free encyclopedia
- IPP ‐ 通信用語の基礎知識
- IPP 1.1: Model and Semantics Main
- williamkapke/ipp: Internet Printing Protocol (IPP) for nodejs
- RFC 8010 - Internet Printing Protocol/1.1: Encoding and Transport
- RFC 8011 - Internet Printing Protocol/1.1: Model and Semantics
- FadisさんはTwitterを使っています 「PAPPL 1.0のRCが出たらしい。PAPPLは従来CUPSなどで使われていたgutenprint等のプリンタドライバをバックエンドとして、IPP Everywhereを喋るデーモン。最初からIPP Everywhereを喋るナウいプリンタを期待するナウいアプリケーションが太古のプリンタで印刷出来るようにする。 https://t.co/BH6ztn7FMR」 / Twitter
- PAPPL 1.0 RC1 Released With A Goal To Replace CUPS Printer Drivers - Phoronix
CUPS
- CUPS.org
- apple/cups: Official CUPS Sources
- Common Unix Printing System - Wikipedia
- CUPS - Wikipedia, the free encyclopedia
- Line Printer Daemon protocol - Wikipedia, the free encyclopedia
- Job Definition Format - Wikipedia, the free encyclopedia
- 2017年1月6日号 『ドライバレス』でのプリンタ対応・UWN#492・493:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Ubuntu 17.04 その8 - ドライバーがなくてもプリンターから印刷可能に・IPP Everywhereプリンターをサポートするためテストの呼びかけ - kledgeb
- 3Dプリンタに対応した「CUPS 2.1」リリース | OSDN Magazine
- 印刷システムCUPSが15周年、最新版となる「CUPS 2.0」をリリース | OSDN Magazine
- Apple傘下で開発が進められているUNIX向けプリントシステム「CUPS」、1年ぶりの新バージョン「1.6」がリリースされる | OSDN Magazine
- Mantaroh@media=printさんのツイート: "CUPS ダイジェストから見る限り、1万の仮想プリンタを用意したテストを走らせてるってことね。仮想デバイスが作れる環境だとやりやすそう。"
- 「CUPS 2.3」リリース、新たなライセンスで提供 | OSDN Magazine
- FadisさんはTwitterを使っています 「*NIXでお馴染みのオープンソース印刷システムCUPSの開発が死んでいるという話。2007年以降CUPSはAppleの下で活発に開発されてきたが、今年に入って行われたコミットは1個だけ。CUPSの主要な開発者が今年の頭にAppleを退職している事と関係しているのではないか、とされている https://t.co/Lc4ceKgQLK」 / Twitter
- CUPS Printing System Open-Source Development Has Seemingly Dried Up - Phoronix
- Appleによるプリンタードライバーの開発がひそかに幕を閉じていたと判明 - GIGAZINE
- FadisさんはTwitterを使っています 「CUPSの今後。OSSなプリンタサーバCUPSは2007年の買収以来Appleの下で開発されていたが2019年以降開発が止まっていた。Linux Foundationが支援するOpenPrintingはCUPSをforkしてsecurity fixを行なっていたが、OpenPrintingがCUPSの開発を引き継ぐことが正式に決まったらしい https://t.co/G7BmJr8Gog」 / Twitter
- OpenPrinting Now Developing Upstream CUPS, Apple Bows Out - Phoronix
- FadisさんはTwitterを使っています 「00年代、USB接続の家庭用プリンタの多くは専用のドライバが必要で、それらのドライバを抱えてIPPに変換しアプリケーションにデバイス非依存のプリンタの利用方法を提供する為にCUPSは不可欠だった。しかし今日のプリンタの多くはIPP EverywhereやAirPrintといった共通の規格で印刷データをやりとりする」 / Twitter
- FadisさんはTwitterを使っています 「この為CUPSはプリンタを使う為に必ずしも必要ではなくなっている。そんな事情もあってか(そもそもiPhoneから印刷する為にAirPrintを普及させた張本人である)Appleは既にCUPSの改良を続ける気は無いらしい」 / Twitter
- CUPS Printer Applicationsフレームワーク「PAPPL 1.2」、日本語を含むローカライズをサポート | OSDN Magazine
- AirPrint について - Apple サポート
- AirPrint - Wikipedia
- AirPrint - Wikipedia, the free encyclopedia
- BonjourPrinting
- Adobe Serial and Parallel Communications Protocols Specification
- 外出先でAirPrintに挑戦: あれやこれや備忘録
SNMP
SNMP MIB
- MIBを確認するために便利なツールとか – ネットワークエンジニアが日々の出来事を語る
- Windows用MIBブラウザ
- SNMP Informant Standard
- Simple Network Management Protocol - Wikipedia
- Simple Network Management Protocol - Wikipedia
- 管理情報ベース - Wikipedia
- Management information base - Wikipedia
- net-snmp download | SourceForge.net
- Net-SNMP - Wikipedia
- 100% recycled matsuuさんのツイート: "わかるー。接続数が多いサーバにsnmpd経由で取得しようとするとCPU負荷が悲惨なことになる。ちなみにnetstatも同様の事象が発生するのでss使おうな。 / “本当に恐ろしいsnmpd - Qiita” https://t.co/tvfn3GLPWl"
- 本当に恐ろしいsnmpd - Qiita
MS
Winsock
- データの送受信(標準編)
- Winsock2関数
- c++ - what is __in and WSAAPI? - Stack Overflow
- DNS クライアントの新機能
- GetAddrInfoEx function (Windows)
- FreeAddrInfoEx function (Windows)
- GetAddrInfoExCancel function (Windows)
- GetAddrInfoExOverlappedResult function (Windows)
- Windows Sockets Error Codes (Windows)
- Handling Winsock Errors (Windows)
- WSAGetLastError function (Windows)
- FormatMessage function (Windows)
- Error Codes - errno, h_errno and WSAGetLastError (Windows)
- IdnToAscii function (Windows)
- IdnToUnicode function (Windows)
- IPPROTO_TCP Socket Options (Windows)
- Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
- AF_UNIX comes to Windows – Windows Command Line Tools For Developers
- Graceful Shutdown, Linger Options, and Socket Closure - Windows applications | Microsoft Docs
- [MS-WINPROTLP]: Windows Protocols | Microsoft Docs
- [MS-WINPROTLP]: Archive Documents | Microsoft Docs
- Fadisさんのツイート: "次世代VPN WireGuardの人がWireGuardをWindowsに移植する際にマトモなIPパケット直書きAPI(所謂TUN)がなくて困り、Windows用のTUNを作ってしまったらしい。で、これが他のソフトウェアでも有用という事でWireGuardから切り離されてオープンソースで公開されたのがWinTUN https://t.co/8xC9Em74U3"
- WinTUN: Windows Finally Gets A Good TUN Driver & It's Open-Source - Phoronix
- ASCII.jp:ケーブル直結で設定なしでもWindows機の間で通信可 自動IPアドレス割り当て「APIPA」解説 (1/3)|Windows Info
- ASCII.jp:Windows 10でDHCPサーバーを動かす (1/2)
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Windowsは自分が「インターネットに接続」されているか、どうやってチェックしているのか? msftconnecttest.com/connecttest.txt にアクセスし、それが期待どおりの内容ならばインターネットに接続されていると判断する。 https://t.co/gCnYaZR5Xi」 / Twitter
- How does Windows decide whether your computer has limited or full Internet access? - The Old New Thing
スライド
Ethernetの受信処理
- Ethernetの受信処理
- Kazuho OkuさんはTwitterを使っています: 「このスライドとても参考になった https://t.co/WGu7VT1ThH * NICドライバ側で割り込み頻度を制限してる * ネットワーク処理が重くなると(処理すべきパケットが溜まっている場合は)、カーネル側で割り込みを禁止する」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「前者について。NICドライバのソースを見ると #define IXGBE_ITR_ADAPTIVE_MIN_USECS 10 #define IXGBE_ITR_ADAPTIVE_MAX_USECS 126 だから、今回の10ms以上とはオーダーが全然違う。実際 ethtool -C で値を100usに固定しても症状は変わらない」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「実際、上の正常時の動作を見ると、ハードウェア割込が30秒間で358,836回(11961.2回/秒)なので、毎秒11,905回割込というixgbeドライバの設計どおりになってる。これが異常時だとガタッと減る https://t.co/bYJpO3rOR8」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「後者について。 ixgbeの割込ハンドラixgbe_msix_clean_ringsは、softirqタイミングでのpollを要求するんだけど、じゃあixgbe_pollの実行が終わるまでハードウェア割込は来ないのか。ixgbe_pollの終わりに割込に関する設定をNICに書き込んでるので、どうもこないっぽい https://t.co/LGjQyyCRE2」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「というわけで、ハード・ソフト割込回数自体は想定どおりの挙動な気がする。softirq負荷が上がるとともにスループットが1/3になる原因は引き続き不明」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ちなみにIntel側でのベンチマークを見ると、CPUがサチったとしても、ほとんどの受信処理はハードウェア割込タイミングで起動されていることがわかる https://t.co/d0d5M77srZ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Intel側もAMD側もCPU処理性能を制限せずに10gbeをサチらせてみると、同接1000本の場合 * Core i5 9400: CPU使用率70%、TCP再送1セグメント/秒 * Ryzen 4750G: CPU使用率600%、TCP再送16,000セグメント/秒 だから、CPUサチってなくても問題は発生してる、と」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「これを同接100本に減らすと * Ryzen 4750G: CPU使用率250%, TCP再送500セグメント/秒 程度に改善される。というか、Ryzenだとスケールしてないことがわかる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なーんか、DMAが走ってる間ハードウェア割込拾えてないんじゃないのみたいな疑いの目をむけたくなる挙動」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あとはできることとしては、ソフトの設定やビルドまわりの問題じゃないこと確認するためにIntelとSSD入れ替えるくらいかなー」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「めんどくさくなってNICドライバにパッチ書いてる。DMA転送要求する度にpollしたってええやろ...メモリマップ読むだけなんやし...みたいな。これで速くなったら割込拾えてないのが悪いっちゅーこっちゃ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「遅くなったわ。ってことで、ハードウェア割込が届かないのは原因ではない。ソフトウェア割込の処理時間長くて、ハードウェア割込が再開する回数が減ってるだけっぽい。 てことは、なぜソフトウェア割込の処理にそんなに時間がかかるのか、だ。同接数増えたら重くなるところなんかあるかなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「tsoオフにしたら送信レートが多少下がったみたいな感じ(あとパケロスはなくなった)だし、受信側が遅いような気はする。しらんけど。ちなみにiommuオフ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なんか、負荷をかけつづづけてる途中で、相変化的な何かが起こって、突然スループットが1/3になるっぽい https://t.co/UmepeHE5b1」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あああー Intel でも同じ症状でたわ。同接数1800とかAMDの3倍くらい必要だった。CPU固有じゃないわこれ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そして、ksoftirqdの負荷が上がり出すタイミングで崩れるの、これ、softirqdに割込処理が回る結果、レイテンシがおかしなことになって崩れるんかな。__local_bh_enable_ipみると、いったんsoftirqd動き出すと、そっちに処理を投げ続けるみたいだし。 となると、えーと、どこをいじってみればいいんだ https://t.co/K7XoZScEzS」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「softirqの同期処理をもうちょっと頑張るパッチを書いてみた https://t.co/mcOjwQv1mD」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「おー、MAX_SOFTIRQ_TIMEを10ミリ秒にすると、Ryzen 4750Gでも同接1200くらいまでは10Gbps出るようになった」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「オッケーオッケー。ubuntu付属のカーネルでも、ksoftirqd を renice -20 とかしてやれば、速度が落ち込まなくなる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「長いスレだけど、まとめると * Linuxの送信スループットはソフトウェア割込の処理が非同期に切り替わる(ksoftirqdが使われる)と1/3程度に下がる * 非同期に切り替わるのは、softirqの処理に2ミリ秒以上かかったら、だが、ZenのほうがCoreよりもそのタイミングがだいぶ速い ...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「* 切り替わった場合のスループット低下を抑止するには、ksoftirqdの優先度を上げれば(nice値を小さくすれば)よい 機序としては、ksoftirqdがサーバプロセスと優先度が同じだと、両者のタスクスイッチの頻度が下がる。その結果、未処理のACKが滞留し、ACKを受けて後続のデータを...」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「...送信できない空白の時間が生まれるため、と説明できる」 / Twitter
- ふぉーてぃないなー@今こそ地元の外食産業を食べて支えたいさんはTwitterを使っています: 「@kazuho カーネルv2.6の頃に、NAPI非対応の古い組み込み系ethernetドライバのNAPI対応を何度かやったんなぁと思い出しながら読んでおりました(ZenとCoreでそういう差異が出ることは初見でした)…こちらは一昨年末頃の文献ですけど、参考になったりしますでしょうか。 https://t.co/mj8zLzc2KV」 / Twitter
- NAPI updates — Jakub Kicinski
- Kazuho OkuさんはTwitterを使っています: 「これ常識なのかな、僕は知らんかった(そして週末だったので聞くタイミングがなかった)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「たとえばネットワーク越しのオーディオ再生とファイルダウンロードを同時にしている場合、NICからの非同期ソフトウェア割込は両者のうち優先度高い方の値を引き継ぐ必要があるんだけど、まあそういう凝った仕組みを作るのかみたいな話なのかなみたいな。 作らないならユーザチューニングが落とし所的な」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「(もう10年以上前なのでうろ覚えだけど)darwinのio completionはタスク作る感じだしタスクに優先度つけられたような気もする。継承するのかもしれない」 / Twitter
- Seccamp 2016 チューター成果報告
- ネットワーク超入門
- SAI ちょっと調べてみた - Speaker Deck
- 詳解 Reliable UDP - Speaker Deck
- 「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 - Speaker Deck
- 作って理解するWireGuard - Speaker Deck
- L2 WireGuard - Speaker Deck
- BufferbloatとLinux - Speaker Deck
- はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck
- OVS-DPDKとOpenStackで作るおうちNFV環境の構築 - Speaker Deck
- 自宅フロー解析 - Speaker Deck
- Kernel/VM part6 - Google スライド
POSTD
- Pingの発展版 : httping, dnsping, smtpping | インフラ・ミドルウェア | POSTD
Qiita
- ネットワークキャプチャデータを見る時のTips - Qiita
- SLICECAP: PCAPファイルの分割並列処理 - Qiita
- coturn使ってみた - Qiita
- インターフェース名&PCIe BDF名を調べる(Ubuntu 16.04) - Qiita
- Kazuho Okuさんのツイート: "Destinationの定義もRFC1122の定義も、ホスト間の通信で0.0.0.0を使えない、と言っているだけで、ローカルホスト内での宛先として使うのは良いのでは? / https://t.co/8scijvjgFl"
- 0.0.0.0にはアクセスしないこと - Qiita
- Kazuho Okuさんのツイート: "RFCの解釈論はあまり意味がないんだけど、この場合、宛先の有効性の定義について「デバイス間の」というのは意図して書かれたんだろうし、1122にも同じ限定があるし、それは実際のソフトウェアの動作とも合致するんでしょ?"
- お盆休みにIEEE Ethernet規格(英文:個人利用無料)を読もう。1日1000ページ目標。 - Qiita
- 同期通信(synchronous communication)って言わないで! - Qiita
- WebCodecsで、簡易NWエミュレータ作ってみた - Qiita
- DID Specifications 読み進めガイド - Qiita
- TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita
- ipftrace2で始めるLinuxネットワークスタック探訪 - Qiita
GitHub
ASCII Header Generator
- Protocol | An ASCII Header Generator for Network Protocols
- luismartingarcia/protocol: An ASCII Header Generator for Network Protocols
Mosh
- Fadisさんのツイート: "sshはtcpで通信するから回線品質が悪かったり、接続元が変化したりするモバイルデバイスから使うには厳しかった。そこで「udpで正しく復号できる暗号を投げてくる奴は正しい通信相手だ」でセッションを管理するのがモバイルのためのシェル Mosh https://t.co/r0L87Svo9s"
- Mosh: the mobile shell
- mobile-shell/mosh: Mobile Shell
- Dripcap
- networkprotocol/netcode.io: A simple protocol for creating secure client/server connections over UDP
- FRRouting/frr: FRR - The FRRouting Protocol Suite, forked from Quagga
- keiichishima/slicecap: The Slicecap utility slices a large pcap file into small pieces and hands over them to sub process in parallel.
- ldcsaa/HP-Socket: High Performance TCP/UDP Socket Component
- t6x/reaver-wps-fork-t6x
- Tylous/SniffAir: A framework for wireless pentesting.
- yarrick/pingfs: Stores your data in ICMP ping packets
- kcp/README.en.md at master · skywind3000/kcp
- FadisさんはTwitterを使っています 「libuinet: FreeBSDのカーネルのネットワークスタックだけ剥がしてユーザ空間のライブラリにしたやつ https://t.co/ouXKHr5mcX」 / Twitter
- pkelsey/libuinet: a library version of FreeBSD's TCP/IP stack plus extras
- matsuu序二段さんはTwitterを使っています: 「tcpdump代替のパケットキャプチャツール。TUIで目視確認用かな。 / “GitHub - c-grimshaw/gosniff: A fancy-schmancy tcpdump-esque TUI, programmed in Go.” https://t.co/7XgSoVlcPu」 / Twitter
- c-grimshaw/gosniff: A fancy-schmancy tcpdump-esque TUI, programmed in Go.
Wikipedia
- Resource Reservation Protocol - Wikipedia
- Wake-on-LAN - Wikipedia, the free encyclopedia
- 媒体アクセス制御 - Wikipedia
- ディープ・パケット・インスペクション - Wikipedia
- hikaliumさんはTwitterを使っています: 「spanning tree protocolは必要な場合を除いて切っておいた方がいいなというのを体感した(物理的に繋いでから通信可能になるまでの時間が全く違った)。」 / Twitter
- スパニングツリープロトコル - Wikipedia
- 帯域制御 - Wikipedia
- 帯域幅調整 - Wikipedia
- トラフィックシェーピング - Wikipedia
- トークンバケット - Wikipedia
- Token bucket - Wikipedia
Twitter
その他
- じとめすきーさんはTwitterを使っています: "VLANつながらないところ見つけたのでWiresharkでパケット眺めてたらIOデータの機器からプロトコル0x8899のパケットが大量に出てた.調べてみたらループ検知用のパケットらしい."
- なぎせ ゆうきさんのツイート: "1byteが8bitとは限らないので1octet(オクテット)と表現しないと正確じゃない、みたいな話じゃないかしら。 でも、多分技術的観点での厳密さという事情より数字を大きく見せたいという理由が強そう https://t.co/qrDWGntJMq"
- 辻村 伸太郎さんのツイート: "個人的にはbits/sとByte/s、生まれが違うから別の方がしっくりくるんだけれども、ここまで物理層が世の中から隠蔽された(いい意味で)の中ではByte/sを一般的に使い回す方が間違い無いのかな?というような気もするなぁ…"
- 豆債務超過さんのツイート: "bits/s と Bytes/s を混在させるとネットワーク屋さんがキレる"
- Rockridgeさんのツイート: "Fx49:TCPウィンドウのサイズを原則としてOSの設定に合わせる一方で、Windows XPは128KB、Vista以降は512KBとした。 / “1135104 – windows upload speed limited …” https://t.co/NXbdvYY5A0"
- 勝(まさる)さんのツイート: "netmapとDPDK、パケットデータをゼロコピーでユーザプログラムからアクセスするという点だけ見れば似ているのだけど、それを実現する方法が違う、ということですね。"
- 研究千年牛酪情報保管庫菩薩さんのツイート: "世界のWebDav実装最悪だな…って言いたくなる感じのコードのところです(そして, いまつなぎたいところはこれでも動かない… https://t.co/7gLPqo3cV2"
- rclone/types.go at master · ncw/rclone
- Kazuho Okuさんのツイート: "僕のまわりのサーバ屋さんだとnetmap一択な感じなんだけど、ツイッターの日本語界隈だとdpdkの話ばかりなのは、なぜなんだろうと思ってる"
- Hiroki Satoさんのツイート: "netdb.hにあるstruct addrinfoのメンバ変数の順番がPOSIXとRFC2133で違ってるのはどうしてなのか、誰か理由を知っていたら教えてください。調べた限りでは*BSDはF, NがRFC, OがSUS, SolarisはRFC, LinuxはSUSになってるもよう。"
- Hiroki Satoさんのツイート: "FreeBSDのgetaddrinfo(3)のmanpageはSUSの原稿を許可もらってそのまま入れたのだけど、そのせいでずーっと実装と違う順番の構造体定義が書いてあったようだ。macOSもFreeBSDから持って行ってるので同じ間違いが。"
- SODA Noriyukiさんのツイート: "NetBSDにも同じ間違いがあった。 この変更が入ったのは FreeBSD: https://t.co/oJUD2d5BO1 NetBSD: https://t.co/R3bEk73zqy なので KAME Project / WIDE Project に知ってる人がいそう。 Solaris 9 は実装もmanもRFCと同じだった。 https://t.co/VMItWtp1lP https://t.co/ln9xVB3kPI"
- 神明達哉さんのツイート: "RFCとPOSIXでメンバの順番が違うのはなぜか、についてですか?うーん、わからないですね…basic APIドラフトの著者がOpen GroupとのリエゾンみたいになってPOSIXに取り込んだ、という経緯だと記憶してますが、その間のどこかで順番が変わったけど誰も気にしなかった、くらいが実情かもしれません。… https://t.co/kbOBUBxzSo"
- 神明達哉さんのツイート: "もしかするとOpenBSDの誰かがPOSIXへの取り込み作業に絡んでいたとかかもしれないですね。あるいはPOSIXのドラフトが途中で公開されててそれを参照したとか。まあすべて推測でしかないですが…いずれにせよ、2003年のRFC3493でも違ってるままなので「誰も(大して)気にしなかった」ということでしょう:)… https://t.co/lK2LOKHcbY"
- 西塚 要さんはTwitterを使っています 「なぜMTUが1500byteか。それは80年代のケーブル上の電気信号の制約に遡る。しかし今となっては、どれだけ通信が無駄になっているか。この人の記事はいつも面白い。 https://t.co/I7ttPsRoXr」 / Twitter
- Ben CoxさんはTwitterを使っています 「"Why is the MTU of Ethernet 1500 bytes?" A question I asked myself a few nights back and could not find a quick response to. So after many days in a rabbit hole I present: --- How 1500 bytes became the MTU of the internet https://t.co/7s2zFxdQHV https://t.co/gJsYv6LgJg」 / Twitter
- How 1500 bytes became the MTU of the internet
- にゃははー仙人さんはTwitterを使っています 「@uchan_nos @TumoiYorozu 原則じゃない理由としては大体のfirewall実装がpentalobe(プロトコル、送信ip、送信port、受信ip、受信port)を記録してステートレスにnaptを管理するので、それに一致しない場合は落とされます。これはUDPにも同じ実装ができるので、強めのfirewallでは落ちる場合があります」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapデバイスをオープンしているプロセスは、tapデバイスに書き込まれたパケットを受信します。ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってるはずで、自作プロトコルスタックに(OSのプロトコルスタックがtapに書き込んだ)10.0.0.2 宛のパケットが届きます。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 10.0.0.1 宛のパケットはOSのプロトコルスタックが処理するので 10.0.0.1 に対する ARP や ping はOSのプロトコルスタックが応答します(自作プロトコルスタックにはパケットは届きません)。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapは仮想Ethernetデバイスなのでtapに書き込まれたパケットは(見えないケーブルを通じて)何処かに送られていきます。その "何処か" がtapデバイスをオープンしているプロセスです。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 そのプロセスが 10.0.0.2 宛のパケットだけを処理するなら 10.0.0.2 というノードが存在するように見え、10.0.0.3 や 10.0.0.4 宛のパケットも処理するなら 2台、3台のノードがtapデバイスの先に存在する、というようにOS側からは見えます。」 / Twitter
- おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 > ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってる これはip addr add 10.0.0.1/24 dev tap<num>した時に自動的にそのようになるのでしょうか?(僕の理解が浅く、コマンドの仕様なのかIPアドレスの概念的に当然そうなるものなのか分からないです・・)」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです。デバイスにIPアドレスを設定したタイミングで同じサブネット宛のパケットがそのデバイスから出力されるようにルーティングエントリが自動で追加されます。 microps だとこの辺でやっている処理です。https://t.co/D9ECE96QBV」 / Twitter
- microps/ip.c at rebuild · pandax381/microps
- おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 やっと理解できました・・!!本当にありがとうございます🙇🙇 pingで10.0.0.2に届くARPパケットの送信元が10.0.0.1なのは、仮想Ethernetデバイスとして振る舞うtapデバイスから10.0.0.2のノードへパケットが転送されているからという認識で合っているのでしょうか?(何度もすみません)」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです👌 tapデバイスをオープンしているプロセスがARPリプライを返せばOSのプロトコルスタック側からtapの先にノードが存在するように見え、なにも返さなければ存在しないように見えます。 なお、ARPのリプライやEthernetヘッダのMACアドレスは任意の値でも動作します。」 / Twitter
- FadisさんはTwitterを使っています 「DPDK、Linuxのtapに対してパケットを喋れるから、実は蟹のNICでもDPDKを動かせないことはない(性能が出るとは言っていない) #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「VM上でDPDKするときはCPU pinningしておかないとエミュレータがCPUを剥がしにくるのか… #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「iperfで計測するとそこでLinuxの限界にぶつかるので計測する側もDPDKw #kernelvm」 / Twitter
エンドポイント
- Kazuho Okuさんのツイート: "「endpoint: Either the client or server of the connection.」(RFC 7540 section 2.2.)はじめ、サーバを含む用例はいくらでも思いつくけど、積極的に「クライアントのみ」をendpointって呼んでる用例はあるのかしら… https://t.co/N5bU8oaJSJ"
- 徳丸 浩さんのツイート: "エンドポイントという用語はクライアントPCやスマートフォン等の端末のことで、サーバーは含まないと思っていたのですが、用例によってはサーバーも含むようですね。皆様の「語感」を教えてください。エンドポイントという用語は、サーバーを含む or 含まない?"
- Kazuho Okuさんのツイート: "ある外来語を特定の文脈でしか見たことのない人が、その語本来の意味が何か推測できない場合、その特定の文脈での用法でしか使わないものと勘違いすることはあるんだろうなとは思うけど"
- Shigeki Ohtsuさんのツイート: "RFC7540(HTTP/2)ではサーバを含むと定義しています。 "endpoint: Either the client or server of the connection." https://t.co/gLLMdIOZrm https://t.co/rtXWQ3WIGm"
- RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
- Shigeki Ohtsuさんのツイート: "RFC8446(TLS1.3)でも同じ定義ですね。 https://t.co/wmDVJqlFac"
- RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
sendmsg() / recvmsg() で他プロセスに fd を送信
- るくすさんのツイート: "本来はrlimitに引っかかってソケットは一定数しか作れないのに、socketpairを親子で再帰的に作って、子プロセスでcloseした後sendmsgで親に閉じたfdを渡していくというのを繰り返すと、好きなだけソケットが生成できるという仕様があるらしい。 すごい"
- SODA Noriyukiさんのツイート: "UNIXドメインソケット使ったこの機能、4.2BSDくらいで入った筈。 自分はファイルサービス用デーモンがクライアントと同じホストで動いてる場合、クライアントに fd 渡してクライアントプロセスが直接バックエンドで管理されてるファイルに書き込んだりする機能とかで使ってるなあ。 https://t.co/HUosUNlBSk"
- るくすさんのツイート: "File descriptor passing with sendmsg(2) and recvmsg(2) over Unix domain socket https://t.co/OUWgZVEkgd え fdってソケットのCMSG使ったら送信できるのか"
- SODA Noriyukiさんのツイート: "OSがもともと提供する権限機構とは別の自分で定めた方式で権限委譲できて大変便利ですよね。 https://t.co/XIkZpw3jjt"
- AoiMoeさんのツイート: "デスクリプタパッシング、setuidビットを立てたヘルパー実行ファイルと組み合わせると便利"
- SODA Noriyukiさんのツイート: "ちなみに 4.3-Renoで API が変ってます。昔は struct msg_control に msg_control メンバーがなくて、代わりに msg_accrights があった。Stevensの「詳解UNIXプログラミング」第15章に解説アリ。SVR4は古いAPI。"
- るくすさんのツイート: "@uchan_nos ん まずfdはシステムワイドなstruct fileへのポインタなので、特に違和感なく出来ると思いますよ。sendmsgの場合は受信元でfdが変わりますが、これは単にfork時に引き継がれたfdと区別するためなのかなと推測します。"
- るくすさんのツイート: "@uchan_nos ああ URL先を見て頂けると書いてあるんですが、sendmsgの場合は単にFD番号を送っているのではなく、FDを開き直して新しいFDを送ってます。(4,5です) カーネルがよろしくやってるのかと。"
masscan
- Miura HidekiさんはTwitterを使っています 「https://t.co/CsHAQK84yc こんなコードが超高速とは思えないが不思議」 / Twitter
- masscan/crypto-blackrock2.c at master · robertdavidgraham/masscan
- Shiro KawaiさんはTwitterを使っています 「@miura1729 最適化かけても特別なインストラクション使うわけじゃないですね。でも多分ここが律速じゃないんでしょうね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 昔ICMPでmass tracerouteするやつ作ったことありますが(まっとうなとこからの依頼)、そこらじゅうでパケット落とされるので辛かったっすね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana ICMPやっぱり通らないんですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana この書き方をすると、1の立っているもっとも右のビットの位置を返す命令を生成する可能性はあるだろうけど、コメントに書きそうなものですよね。ホットスポットじゃないので手を抜いたんでしょうかね」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 gcc 7.5ではベタなコードになってました。まあ全部レジスタ内なので、他でキャッシュミス1個あればどうでも良くなる話ではありますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど。たしかにどうせネットワークを相手にしているわけなのでそういうところをチューニングした方が得策でしょうね。」 / Twitter
users
@mhiramat
- まさみさんは語りたいさんのツイート: "loopデバイスは一応drivers/blockの下にあるからブロックデバイスとして認識されるはずなのか。"
- まさみさんは語りたいさんのツイート: "未だout-of-treeのWifiドライバも多いんですよね・・・。… "
- henrichさんのツイート: "freeではない(OSSではない)firmware blob提供してるベンダーに言ってもらわないと、どうしようもないんだな、これが。あるいはunofficial image使う。… "
- denden2501@ゴーゴーさんのツイート: "頼むからぁ debian さぁ Wifi くらい自動認識しろよ…… "
- まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
@shirouzu
histric-1
- SHIROUZU(白水啓章)さんのツイート: "linuxのtcコマンドのように、NICに latency / jitter を設定できないかな…netshとかにあるといいのだが。試しにWSL上のtcを使ってみたが、Cannot talk to rtnetlink: Operation not supported となった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "40G NIC同士の直結転送で転送レートが波打つ(綺麗に規則的に)原因が今のところ謎…。 10G NIC同士だと、綺麗に10Gbps近隣で安定。 また単独動作だと、PCIe*2なSSDアクセスで48Gbps、RAM-Diskで80Gbpsで安定。 割り込み&上位層までのコピー・結合コストあたりか。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Mellanox 40G NIC、UDP sock 3つを投げっぱなしでようやく、40Gbps達成!(笑)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "udpでのwritev(iov)相当は、sendmsgもしくは(udp_sockに)connectを掛けた上でwritevと。 Win系だとIOCPとRIOの組み合わせになるのかしらん?(要調査)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb NICのWin10Pro同士で、FastCopyでの転送実験。 ほぼ10Gbpsまで速度が出る。 ジャンボパケットOFFだと、6Gbps前後に速度低下。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(少なくともL2レイヤでは)ジャンボフレームは自動選択できるようにならないものかしらん。 (この記事ではDIXフレームにサイズフィールドが無いので…とあるが本当にこれが理由なのか、やや疑問に思うところも) https://t.co/wgrieGFGJo"
- 【10GBASE-T、ついに普及?】10GbEでは「Jumbo Frame」が効果的、1Gとの混在環境ではMTUサイズに注意【期待のネット新技術】 - INTERNET Watch
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb高レイテンシ環境を作るには、10Gb NIC2枚刺しPC(Linux)を調達してブリッジさせるのが一番良いかな。 次はCoffeeLakeではなくて、Ryzenマシンにしてみよう。 (satさんのおかげか、最近は不安定という話が聞こえてこない)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10G NIC2枚刺しにするか、10G dual-port にするか、微妙に迷い中。 PCI-E Gen3とGen2で結構な価格差がある様子。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "新しいPCのための部材発注が終わった。 10GブリッジなLinuxマシンとして動作させることがメインなので、検討した結果、 i3-8100 という選択になった。(グラボなし)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のNIC は Intel X540-T2 という 10Gb dual port に。 ASUS 10G のJumbo Frame最大は約16KBだったが、Intelは15.5KBと書いてある…X540-T2をブリッジで使うなら、全てを9KBで統一した方が安全かな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、ブリッジモード + tcコマンドで、結局10Gpbs出ない可能性が一番気になる点だが、さてどうなることやら。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500で、NAT descriptorを2つ定義した上で、ip route gateway ... filter ... gateway filter という形で、1G回線と100M回線をsrcのipaddr範囲で使い分けるようにしてみる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2用Linuxドライバは自分でmake install。 すると ixgbe.ko がインストールされ、(念のためrmmod ixgbeした後)modprobe ixgbe とすれば、dmesgに enp2s0f0: renamed from eth0 等と出るはずと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで10Gbitなブリッジを作る件、目論見通りに動作。 Win10 -- Linux(Bridge) -- Win10 という経路で、FastCopyで転送実験した時の模様。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ブリッジに遅延を入れた場合のSMBの速度変化。 10ms - 10.0 Gbps 50ms - 2.5 Gbps 125ms - 1.0 Gbps 250ms - 0.5 Gbps"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "パケットロスを0.1%でも入れると、125ms latencyで 20Mbps ~ 200Mbpsで波打ちつ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2 の dmesgメモ。 ixgbe: Multiqueue Enabled: Rx Queue count = 4, Tx Queue count = 4 XDP Queue count = 0 ixgbe: PCI Express bandwidth of 32GT/s available ixgbe: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%) ixgbe: Intel(R) 10 Gigabit Network Connection"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbps相手だと1.5GB/sec程度の性能があれば十分だけど、できれば3GB/s程度のストレージを用意したいところ。 (ピーク速度3~6GB/s出る環境はあるものの、持続するのは15GB程度の領域までなんだよなぁ…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで10Gbps NIC 経由100GBファイルコピー。 結果は80.0秒、ネットワーク転送レートは 9,898.6 Mbpsという結果。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "5MB程度の大量をネットワーク越しに処理する場合、(少なくともSSD同士なら)並列処理した方が明らかに速い。 Read/Writeと違って、CreateFile/CloseHanldeには非同期処理が無い、という点が大きいかもしれない…まだ探求すべき点は結構あるなぁ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ジャンボフレームOFFでも、ほぼ10Gbps出るように。 (前回は片側がRAM-Diskだったため、(CPU全体では余裕があったが)1コアの天井を打っていた可能性…あとで確認しておこう。今回は両側でM.2 SSD)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験メモ。AES128CTR暗号化、CoffeeLake-S世代(3.6GHz)で1.5GB/s、さくらVPS東京(Xeon E5-2650 2.60GHz)で 698MB/s、さくらVPS大阪( Westmere E56xx/L56xx/X56xx)で 534MB/s。 いずれもAES処理に1コア使い切り状態で。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最新CPUで複数コアを使えば、10GbpsネットワークでのAES-CTRがギリギリこなせるレベルかな。GCMになると厳しいかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500のDHCPD、ログ出力が頻繁に出て(抑止方法もない)、他の大事なログが埋もれてしまうため、自宅サーバ側に isc-dhcpd-serverを立てた。 ただ、ISCとしては isc-dhcp よりも kea dhcp server が一押しらしい。 (リース情報をテキストファイルではなく、PostgreSQL等に格納するらしい)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度調整、そこそこ低コストで妥当なロジックを思いついた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "動作中時間 T が総時間の R%(=r) になるよう、スリープ時間 S を計算する、という中学レベルの方程式を計算した。 結果、S = (T - rT) / r となった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、OS側バックグラウンド処理があると過剰に処理が進むし、シークの連続性が失われることで過剰に遅くなることもありえて、純粋なSleepでの速度調整というのは、もともと無理があるけれど。 (実際に全力writeして最高速度を求めた後に、最高速度*rへ調整しない限り)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2(10G*2port)はPCIe Gen2なので8レーン仕様だが、X550-T2はGen3なので4レーン仕様。 20Gbps以上を非サーバ系マシンで使う場合、Gen3対応でないとPCIeレーン数不足になりやすいので気をつけないと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 + ASUSの10G NICで、1.5KのUDPを大量に送り付けられると(受信プロセスは無くとも)、その間フリーズしてしまう。(マウスすら動かない) Linux + Intel X540だと、そんな現象は起きないので、OS or ドライバの作りの問題かしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "特定コアで処理しようとして固まっている印象なので、RPS/RSSをサポートしていないという話? なお、9K以上の大きなUDPパケットになると問題は起きなくなる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(WS)+ASUS XG-C100C と Linux(4.17)+Intel X540 では、ジャンボフレームなしでも、TCP性能はあまり変わらないが、UDP受信性能が大幅に違う。(後者が良い。前者はそもそも固まる) 前者のダメっぷりはOS/ドライバに起因するのか、ハードウェアに起因するのか…面倒だがHW交換してみるかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "azure東海岸とUDP通信すると、転送レートが飽和するのは、0.02%くらいのロス率を越え始めたとき。820Mbps前後。 ちなみに、100Mbpsでもロス率0.002%で、0%にはならない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarm運用、10.7PB、1.1億ファイルで、5ファイルの書込後のデータ破損を検出。(I/Oエラーなし) ちなみに、gfarmのベリファイは、src読込時のテンポラリエラーも検出できるのだろうか? (そのためには、srcを2回読んでhash計算も2回行う必要あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmでは、md5やsha1等を検証に使っているとのことだが、md5やsha1は並列演算が難しいため、速度ネックにならないのだろうか? ハッシュツリー化して並列演算対応したり、xxhash等の圧倒的に軽いhashを使う、などの構想はあるのかしらん? https://t.co/z7b9P7UEVs"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの場合、I/Oよりもmd5が速度ネックとなる事態が発生。 そこでストライプによる並列演算プロトタイプを作ったが、xxHash最適化でI/O速度を十分超えたため、まずはxxHashをデフォルトとすることで、問題解決とした。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Read I/O、Write I/O、src-hash計算、dst-hash計算、全てが独立スレッドでパイプライン的に動作させていたのだが、まさかhash計算がネックとなるとはと思った記憶。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmの5件のデータ化け、どういう化け方をしていたのかにも興味がある。 僅かな個所のbit flipしていたのか、I/O単位で丸ごとデータ化けしていたのか等。 (FastCopyで1例だけ、高負荷でバスリセットが何度か掛かった挙句、上位にエラーを通知なしにDMA転送が数ページ欠落と思われる事例あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ASUS 10GNIC(XG-C100C)、UDPで大量通信するとドライバが死んだ。 昔から、安物NICはアプリ側UDP通信に弱いの個人法則。 (昔のカニドライバ、UDPでギリギリでIPフラグメントが発生すると常に受信破棄とか、Win3.1時代、UDP通信すると不安定になるベンダドライバを思い出したり)… https://t.co/0gpJ3TnR8X"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いまだに、RealTek NIC の UDPチェックサム・オフロードのバグが無くならない…困ったものだ。 https://t.co/sJKkwN9Nkt」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ペイロードが1501~1563byte(octet)、のようにギリギリでフラグメントが発生するUDPパケットでのみチェックサムが狂い、受信先によって捨てられてしまう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、NICをswapしても結果変わらずだった。 つまり、Windows(Pro for WS)では、UDPパケット受信 → recvfromまでのどこかで、処理が追い付かない。(TCPなら問題なし) これはLinuxのNAPI的な仕組みがないということかな? https://t.co/GE3f7qsLGf」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これを見るとドライバ依存ながら、NAPI的な処理はやっているっぽい? https://t.co/JHy3or3NLv それと Linux softirq に相当する DPC(Delayed procedure call)もあるので、なおさら謎…(存在するれどUDPで使われない場合がある?)」 / Twitter
- NAPI for windows — OSR
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tss_ontap 90年代にオンライン情報処理を取ったときも、アーランやM/M/1のあたり必須知識でしたね。 (そして「トラヒック」というNTTだかJISだかの表記がずっと使われていたり)」 / Twitter
@fadis_
- Fadisさんのツイート: "pub/subモデル: subscriberがtopicに参加し、publisherがtopicにメッセージを送るとtopicに参加しているsubscriberにメッセージが送られるモデル #boostjp"
- Fadisさんのツイート: "いにしえのネットワークプログラミングではクライアント毎にスレッドを立てて処理したりしたけど、スレッド作りすぎるとコンテキストスイッチのオーバーヘッドが大変な事になるから非同期でネットワークI/Oしよう #boostjp"
- Fadisさんのツイート: "複数のスレッドでio_serviceをrun()するとタスクの実行順序が保証されない。「参加」「脱退」「配信」をそのまま流すと脱退前に用意した配信が脱退の処理を完了した後に実行されてしまう恐れがある #boostjp"
- Fadisさんのツイート: "そこでasync_writeの中でコネクション単位のキューを用意し、同じコネクションに対する書き込みは順序が保証されるようにした、と #boostjp"
- Fadisさんのツイート: "RFC4614 A Roadmap for Transmission Control Protocol (TCP) TCPの拡張が多すぎて何処に何があるか分からんから「まとめ」を作りました、と https://t.co/Y0Lkfhfwe8"
- RFC 4614 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents
- Fadisさんのツイート: "さくらVPSがPS4を自称して通信を待ち受けてたりするけど不審な者ではありません(IPoEにIPv4しか喋らないPS4のP2Pな通信を乗せるにはIPv6でVPSにVPNを張って、PS4からのブロードキャストをVPNでVPSに投げて、UPnPのパケットをそこで拾うしかなかった)"
- Fadisさんのツイート: "SCTPはVerification Tagと呼ばれる32bit値をハンドシェイク時に通信相手と共有している。SCTPはVerification Tagを通信相手の識別に使える為、ソースIPアドレスを通信相手の識別に使うTCPと異なり、通信の途中で送信元のIPアドレスが変わってもセッションを維持する事が出来る"
- Fadisさんのツイート: "systemdの人達がIPv4の衝突検出、IPv6の近傍検索、DHCPといったネットワークの設定をするソフトウェアに必要になる基本的な機能をライブラリ化したオープンソースライブラリを公開。その名もnettools (ifconfigとかで知られるnet-toolsとは全くの別物) https://t.co/62fDlRcciT"
- Linux Is Getting New Network Libraries From Veteran systemd/BUS1 Developers - Phoronix
- FadisさんはTwitterを使っています 「Linuxのネットワークまわりを網羅的に解説する為に要求される知識幅広すぎ問題( 一体幾つの輻輳制御アルゴリズムとQoSを実装してんだ。お前はIPXを、AppleTalkを覚えているか。iptablesが第四層を読んでいる、だと。そもそもTCPがでかい。よーしカーネル自力でDHCP喋っちゃうぞ。Open vSw(以下略」 / Twitter
- FadisさんはTwitterを使っています 「802.3adはリンク毎の帯域に基づいてパケットを割り当てる為、パケットの送受信の時刻を必要としている。ところがDPDKはNICをポーリングで操作する為ポーリング間隔が大きくぶれると正確な帯域の変化が計算できない。この為802.3ad使用時は100msに1回は送受信しろ、とドキュメントに書かれている」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.18でメインライン入りしたがっているネットワークスタックの改良の話。io_uringのzero copyでdummy netdevにパケットを投げた場合(つまりCPUのみがボトルネックになる条件)に単位時間あたりに送ることができるIPv6のUDPのパケットが5%程増える https://t.co/RERZLCWUas」 / Twitter
- UDP IPv6 Optimizations Queued Up For Linux 5.18 - Phoronix
- FadisさんはTwitterを使っています 「ip6_make_skbは通常呼び出し元から渡された宛先をclone(refcnt++)してskbに結びつけるが、パケットがUDPの場合この関数の呼び出し後に宛先は使われずにrelease(refcnt--)されるため、このcloneとreleaseをセットで省略することでatomicなメモリアクセスを2回減らせるらしい」 / Twitter
- FadisさんはTwitterを使っています 「この他にも必ずしも必要では無い構造体のゼロクリアの廃止や、関数の先頭で行われている分岐を関数に入る前に行う事でcallのオーバーヘッドを回避する等の最適化が行われている。個々の最適化は小さいが1パケット毎に行われる処理なので積み重なって上記のような差がでるらしい」 / Twitter
@kazuho
パケロス・輻輳
- Kazuho OkuさんはTwitterを使っています: 「古典的な輻輳制御アルゴリズムだとパケロスと速度は逆相関するけど、輻輳制御の手法やアプリによってはパケロス発生量が変わるので、パケロス率を義務にするのはイノベーションを阻害してインターネットの使い勝手を下げる可能性があるでしょうね」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています: 「パケロス率0.1%超えってフレッツでも環境によっては普通に超えるのでここで勝訴すると大変なことになるな。」 / Twitter
- 不惑のねこにゃんさんはTwitterを使っています: 「@hasegaw 昔NTTが提供していた(今でも?)X.25によるパケット交換サービスのように ・パケットは落ちることがある ・パケットは逆転することがある ことをはっきり言ってサービス提供する必要があるにゃ?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「数十秒データを流しまくるようなベンチマークでパケロズゼロとか嘘でしょみたいな気持ち。パケロスしないと輻輳制御にフィードバックされないし。データセンタ内はともかくインターネット上でECNってそんなに普及してましたっけ?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「誇大広告防止の観点からISPの品質基準を設けることについて、僕は特に反対ではないのだけれど、パケロスをその指標に使うのは誤りだという立場です。 元ツイに書いたようにパケロス率はアプリやサーバの輻輳制御アルゴリズムによって変わるものなので。 仮に品質基準を持ち込むとしても…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「複数サイトの平均ダウンロード速度や、ゲームや動画の固まる回数など、エンドユーザの体験を直接指標化する必要があると思う(だしまあ、極端なケースでは指標定めなくても明らかにダメじゃんって言えるんじゃないのかな)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「たとえばマンション建設にともなう電波障害について、電波障害か否かを定める技術基準ってあるんだろうか、ないんじゃないのみたいな。しらんけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「しつこくパケロスの話。 うちのVDSL回線環境(OCN)だと、ISP側のボトルネックキューの深さは3Mbitsくらい(つまり30ms分くらいのデータがキューにたまるとパケットが落ち始める)だけど、最近の提案だとキューをもっと浅くして5msくらいからパケット落とした方がいいんじゃないかみたいな話になってる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「そのほうがダウンロード速度落ちない一方で、RTT縮まってゲームとかの応答性あがるので。パケロスって大切なんですよー cf. https://t.co/c58XHQ5yCh」 / Twitter
- RFC 8289: Controlled Delay Active Queue Management
- Kazuho OkuさんはTwitterを使っています: 「ubuntu でルーター組むとデフォルトでこういう挙動になります」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「一方で、アップロードで詰まる場合はホームルータになるけど、ホームルータはVDSLにあわせたバッファサイズのチューニングとかできないので、アップロードで詰まった場合のレイテンシは168msとか悲惨なことになる。ゲームってレベルじゃない https://t.co/KBSjzCpNhM」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なのでまあ、自宅ルータのキューサイズを適正に設定できる人だけがISPのルータ設定に石を投げなさい感はなきにしもあらずみたいな...」 / Twitter
histric-1
- Kazuho Okuさんのツイート: "TCP_NOTSENT_LOWAT をゼロにしたら ssh がハングする問題、デバッグするためにコンソールつなぐのがめんどくさくて切り分けませんでした #spkai"
- Kazuho Okuさんのツイート: "sockaddr_unがsockaddr_storageよりでかくなることがあるSolarisと、getsockoptにsizeof(sockaddr_storage)より大きいサイズ渡すとエラーを返したlinuxか。つらい #spkai"
- Kazuho Okuさんのツイート: "すっごいマジレスするとTCP接続本数を増やすことでダウンロードが高速化されるのは、回線の途中で輻輳が発生している場合のみで、つまりその場合は他のTCP接続に割り振られるべきバンド幅を奪ってる。途中の回線で輻輳が発生していない場合はTCP接続1本が最速で、複数本接続すると遅くなる"
- Kazuho Okuさんのツイート: "「UDPはトランスポートレイヤプロトコルではない。IPパケットを多重化するための仕組みである。本来はIPレイヤにポート番号が入っているべきだった」 #ietf96j"
- Kazuho Okuさんのツイート: "snd_wnd と snd_cwnd と inflight を一度に取れる OSX 最高!他のOSは全部イマイチ、という結論になりつつあるw"
- Kazuho Okuさんのツイート: "パケット単位でコンテクストスイッチが必要になるTCPサーバで、カーネル内にTCPスタックがあることがオーバーヘッドになるというのは昔からある話であり、一方でそのようなアプリはあまり多くない"
- Kazuho Okuさんのツイート: "そして、パケットよりも小さいメッセージを大量にやりとりするシステムでは、TCPスタックの位置を寄せることよりも、各エンドポイントで複数のメッセージをとりまとめ、少数本のTCPストリームに多重化するほうがパフォーマンスが稼げる。なぜならパケット数が減るから"
- Kazuho Okuさんのツイート: "というわけで、僕は、パフォーマンスの観点からはユーザランドTCPに懐疑的です"
- Kazuho Okuさんのツイート: "寄せるとしたらユーザランドに寄せるべきですし、実際quic対応でトランスポートの独自実装を進めてますね https://t.co/ZTm4PyhnEj"
- Kazuho Okuさんのツイート: "“c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow” https://t.co/XdY35puqSg"
- c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow
- Kazuho Okuさんのツイート: "トランスポートにおいて「path」がIPアドレスの組を指すのか、4-tuple(ポート番号を含む)を指すのかは形而上の議論のあるところだと思うけど、個人的には「address validation」あたりの用法がIPアドレス「とポート番号」を指して「アドレス」と呼んだりするので諦めてる"
- Kazuho Okuさんのツイート: "2RTTくらいの遅延を許容できるならFEC使わない方が帯域増えてうれしいよねという基本的理解"
- Kazuho Okuさんのツイート: "そろそろ日本語がやばいというか、congestion controlの日本語訳が輻輳制御なのはわかっても、loss recoveryの日本語がわからない"
- Kazuho Okuさんのツイート: "再送制御と呼ぶような気がしてきた"
- Kazuho Okuさんのツイート: "微細化が壁にぶちあたりつつある影響の話、インターネットプロトコル屋さんからすると、光の速度はずっと不変だし、速くなるCPUと広がるバンド幅をより上手に使いたいという要求は今後もかわらないでしょ?という感じな気がする"
- Kazuho Okuさんのツイート: "再送制御の応答性に対する要求というのは、昔から一貫してあるもので(なぜなら光速は不変だから)、インターネットのバンド幅の拡大に伴いレイテンシがボトルネックになったというのとは全然関係ない話ですよ"
- Kazuho Okuさんのツイート: "5GだとRTTの変動が激しくてトランスポートがパケロスと誤認するという話。おもしろい。この資料公開されるのかしら #html5j #html5j_h"
- Kazuho Okuさんのツイート: "うーん。ちゃんと考えると、単なるRTTの増大をQUICがパケロスと誤認することはないんだよね(リオーダーが絡むとありうる)。BBRが誤解するのはわかる。再送・輻輳制御のチューニングとしては今後課題になるんだろうなぁ"
- HTTPP and 5G fixed1
- Kazuho Okuさんのツイート: "TCPの場合は、再送制御でロスを検出したらCWND縮小してたけど(そののちにspuriousだと判断したら拡張)、QUICはspuriousの区別ができるので、ロスが確定したタイミングでCWND縮小するという違い"
- Kazuho OkuさんはTwitterを使っています: 「相手が何も送ってこないならwrite直後にcloseしていいし、readがゼロを返すのは相手が書き込み側をshutdownした時」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「16KBはだいたい妥当なイメージだけど、L1$を全部上書きしちゃわないかは気になる」 / Twitter
- Inada NaokiさんはTwitterを使っています 「OSのソケットバッファからユーザーランドの受信バッファへのコピーするときのバッファサイズってどれくらいあれば効率良いのかな。 16KiBでもケチりすぎかな。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「https://t.co/E7cGucNIkI MySQLのデフォルトは16KiBなのでとりあえず今の4KiBは小さすぎる。」 / Twitter
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.4 サーバーシステム変数
- Kazuho OkuさんはTwitterを使っています 「pipeだとすると両プロセスは別コアになって並行動作するからそれぞれのプロセスにおけるワークセットサイズ問題になるんだろうか / https://t.co/15H57eIxNy」 / Twitter
- go-sql-driver/mysql のバッファサイズが4KiBなのは小さすぎる?? - methaneのブログ
- Kazuho OkuさんはTwitterを使っています 「会社ブログのネットワークパフォーマンス記事、自前のUSBイーサネットアダプタで書いた私がとおりますよ https://t.co/ybtQa2m56t」 / Twitter
- Can QUIC match the computational efficiency of TCP? Our research says yes. | Fastly
- Kazuho OkuさんはTwitterを使っています 「必要な時に必要な機材にアクセスできることは重要だけど、デチューンした環境を使えば済む話ってのは、いっぱいある」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ただ、これは性能改善のための指標がほしい開発側の論理なので、普段、容量設計のために絶対値を求めがちな運用側の人に言うと、ぽかんとされることがある」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「WebTransport はともかく、本格的にやるならTCPよりQUIC勉強したほうが良いのは間違いないと思う。TCPは歴史的事情から開発コストに対して得られるメリットが小さいが故にメジャーなプレイヤーがQUICに移行したわけで、じゃあ今後誰がTCPに投資するの、という」 / Twitter
- VさんはTwitterを使っています 「WebTransport / QUIC / HTTP/3 はいろいろな場面で使えると思っているので、引く手あまただと勝手に思ってます。」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「いまQUIC勉強して入れる会社ってCDN屋さんかブラウザベンダー、あと時雨堂?とか考えたけど、前職でATSのHTTP2対応パッチ書いた人たちはAppleに転職していたし、GAFAはじめ行けるところは結構あるのかもね」 / Twitter
- VさんはTwitterを使っています 「いまなら QUIC を勉強して人生一発逆転だ!はどうでしょうか。」 / Twitter
- 小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「プログラミングを勉強して人生一発逆転だ!と考える人が多いのに、TCP/IPを勉強して人生一発逆転だ!と考える人が稀に思えるのは何故なのか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「一方で、パフォーマンス出るTCP+TLS自前実装するより、QUIC実装するほうが、だいぶ楽だとも思う。TCPやりたくない(やらない)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「TCPって自転車を魔改造して高速走れるようにしたみたいなもんで、自転車は作れたとしてもそこからの積み上げが死にそうなんだよね。QUICは最初からエンジン含め高速用に設計された四輪車なので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RFCのMUST,SHOULD,MAYといったキーワード、定義はRFC 2119になるけど、命令とか推奨というより、 * MUST - 守らないと問題が出るかも。出たら自分のコードを直すしかない * SHOULD - 守らないと問題が出るかも。出たら相手側に直してもらってもいい (続く)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* MAY - やってもやらなくてもいい。問題が出たら相手側に直してもらう くらいの認識」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「法律ではなくて相互運用性を確保するためのルールなので、問題発生時の切り分けのためのガイドラインであって、それを予め守っておけば問題の発生可能性を下げておくことができる、くらいの。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「メモ: CLOSE_WAITステートのソケット全消しは ss --tcp state CLOSE-WAIT --kill でできる cf. https://t.co/GX00GENPQp」 / Twitter
- linux - How do I remove a CLOSE_WAIT socket connection - Stack Overflow
- Kazuho OkuさんはTwitterを使っています: 「インターネットで前方エラー訂正(FEC)が流行らないのには理由があって。 TCPの通信は常に輻輳制御によって送信可能なデータ量が制限される。その範囲内からFECのために実効帯域が減るのを許容するか、ロスが発生した場合に再送遅延を許容するかのどちらかを選ぶことになる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「FECはロスを事前に想定してそのぶん以上余計に送るので、実際にロスした分だけ再送するのと比べると通信帯域の無駄づかいが発生する。 帯域を無駄づかいするってのはつまり平均転送速度の低下を意味するので、多くの場合FECを導入してもユーザー体験は低下する。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「例外は1RTTの遅延すら問題になるようかアプリだけど、そんなアプリはTCP使わない…」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「linux のネットワーク周りの実験、ハブ経由せずに直結してると対向マシン再起動の際に一旦リンク切れるから、netplan の場合 ignore-carrier: true って設定しとかないとインターフェイス一瞬きえるしルーティング設定とかも巻き添えくうのかー... https://t.co/EVr37ILI6y」 / Twitter
- ubuntu - Bring interface up even if link is down (no carrier) - Unix & Linux Stack Exchange
@rui314
- Rui Ueyamaさんのツイート: "OSI 7層モデルを使ってプロトコルを教えるのはやめたほうがいいんじゃないかなぁ。OSIは過剰設計で誰も使わなかったわけで、そのモデルを説明しても仕方ないというか、実際のEthernet/IP/TCPを直接普通に説明すればいいだけのような。OSIにどうマップされるかはトリビア的な… https://t.co/ftfQfxzJkr"
- Rui Ueyamaさんのツイート: "もはや意味がないのになぜいまだにOSI参照モデルを使って実際のプロトコルを教えているのかというと、きちんと教える=OSIモデルを説明する、という固定観念があるだけだと思う。そろそろ自分がそう教わったから同じことをそのまま教えるというサイクルは切った方がよいような。"
@kumagi
- kumagi2.0さんのツイート: "c10K問題に続きc10M問題というのがあって、コア数程度のスレッド数でO(1)なselectで適切にソケットを扱っても、ネットワークパケットをカーネル空間とユーザ空間の間でコピーするコストだけで性能がサチってCPIがガタ落ちするとかいうやつ。"
- kumagi2.0さんのツイート: "1千万接続を超えるあたりで性能がサチるc10M問題にどう対処するかというと、DPDKみたいな方法でカーネルを経由せずに全部ユーザ空間でゼロコピーでやるようにするとか言ってて世の中こわいですね。"
@methane
- INADA Naokiさんのツイート: "輻輳じゃなくて無線環境によってパケロスが生じるモバイルの場合はどうなんだろう?>複数TCP"
- INADA Naokiさんのツイート: "無線だと、スループットはそこそこあるんだけど、遅延が大きく、パケロスも多い、っていう環境なんで、TCPの性能発揮しづらそうなんだよな。"
@KuniSuzaki
- suzakiさんのツイート: "データセンターネットワーク4つ目。カーネルバイパスする高速TCPの研究は良いが、現在のTCPは複雑であり、カーネルスタックを使わないのは賢くない。特にカーネル内でTCP/IP ネットワークスタックは高速であり、問題はIOである。この問題を解決するstackmapの提案。"
- suzakiさんのツイート: "Stackmapではカーネル内で静的なバッファ割り付やFile Descriptor arrayとScratchpadのデータ構造を追加し、カーネル内で高速IOを実現。カーネル内のTCP/IP スタックは再利用する。"
@marbocub
- まあぼ@cubさんのツイート: "だから「数字を大きく見せたいからbpsじゃないか」みたいなモノとはぜんぜん違う。"
- まあぼ@cubさんのツイート: "僕はネットワーク屋さんじゃないからキレないけど、混同されると「ああこの人は分かってないんだな」って思った後で、相互の理解の一致に至るまでのハードルの高さを感じて身構えたりする"
- まあぼ@cubさんのツイート: "イーサネットなんてフレームサイズやプロトコルなどの条件を仮定した場合での表記になっちゃったら、かえって面倒だと思うの"
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"研究所が開発している”HOLISTIX”は、GUIでネットワークを設計(Plan)し、自動的に通信機器(ルータなど)の設定を生成、動作確認(Verify)から実際のルータへの設定反映(Deploy)までを行う集中管理ツールです" / “JANOG48 IIJ バーチャルブース | IIJ Engineers Blog” https://t.co/eCEBn7fuhg」 / Twitter
- JANOG48 IIJ バーチャルブース | IIJ Engineers Blog
- 伊津野 英克さんはTwitterを使っています 「0始まりで8進数って仕様、いろんなプログラムでバグの温床になってて本当に誰も得しない仕様だよなぁ。」 / Twitter
- 高梨陣平さんはTwitterを使っています 「GoとRustのnetモジュールにIPアドレスの解釈に脆弱性。IPアドレスの表記にleading zeroを用いた場合、0が単純に捨てられる。IETFのオリジナルの仕様では0で始まる数値は8進数として扱う必要がある。 元々、Pythonで同様の誤りが指摘されていた。」 / Twitter
- Go, Rust "net" library affected by critical IP address validation vulnerability
- BleepingComputerさんはTwitterを使っています 「Go, Rust "net" library affected by critical IP address validation vulnerability - @Ax_Sharma https://t.co/iH7OBtzxVI」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プロトコル設計のさいの堅牢性の原則「自分が送るときには厳密に、受け取るときは寛容に」は結果的にみると有害である。これにより仕様の曖昧な箇所の誤解・拡大解釈が拡大され、エコシステムがそれに依存して「バグも仕様の一部」となり、軌道修正が不可能になってしまった。 https://t.co/xbtTkKTJRI」 / Twitter
- The Harmful Consequences of the Robustness Principle
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「5~7 が綺麗に言える例は意外と少ないけど、NFS はその例外の一つかな。 7. NFS、6. XDR(RPC用シリアライズ)、5. RPC…と綺麗に表現される。 挙句に、個人的には「Session層は RPCのイメージね」みたいな理解してたり。」 / Twitter
- ひよこさんはTwitterを使っています: 「子供とネットワーク勉強している🤣 https://t.co/6leQUUuoRt」 / Twitter
- ひよこさんはTwitterを使っています: 「Tシャツはここで買いました🤣 https://t.co/0qJ9QA91Y6」 / Twitter
- OSI参照モデル +PDU &FLOW|デザインTシャツ通販【Tシャツトリニティ】
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「分散システムに関する言葉の使い方で、その人が実際に分野を熟知しているかどうかがわかる: - 「わかっている人」が使う用語: idempotent, crash-only, sharding - 「わかってない人」が使う用語: 一貫性かつ可用性がある, exactly-once, 分散ロック https://t.co/PFLrxC6kBu」 / Twitter
- Distributed Systems Shibboleths | Joey Lynch's Site
- HackerNews CommentsさんはTwitterを使っています: 「@mootastic "Beyond the pedantic distinction, is there any real point to not calling "at-least-once delivery with idempotent processing" exactly-once processing? I can't imagine that any external observers wo... " Continues on HN: https://t.co/Z0fmowyiBT」 / Twitter
- Distributed Systems Shibboleths | Hacker News
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Linuxカーネル vs DPDK 性能勝負。DPDKの特徴とされるいくつかの機能 (busy polling、CPU局所化、TCP/IPの簡素化) はカーネルのみでも設定を変えることで実現可能である。それをもってしても最終的にDPDKのほうが50%以上速かった。未最適化のカーネルと比べると4倍以上速い。 https://t.co/hNG9QeArFu」 / Twitter
- Linux Kernel vs DPDK: HTTP Performance Showdown | talawah.io
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「rsyncプロトコルの詳細解説。rsyncには(TCP的なサーバ/クライアントとは別に) sender/receiverという役割があり、データの比較・転送を最小限にするよう設計されている。これはさらに3段階のフェーズに分かれており、プロトコルは複雑である。 https://t.co/AwdFlAwcqh」 / Twitter
- rsync, article 3: How does rsync work? - Michael Stapelberg
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Deep Packet Inspection によるアクセス遮断を回避するWindows用ツール。DPIにはいくつかの方法があるが、TCP Resetを送ってくる方式(passive)は単に無視すればよい。より複雑な方式に対してはTCPを意図的にフラグメント化したりHTTPヘッダのHostをhoStにしたりして回避する。 https://t.co/PVlCp7W8MI」 / Twitter
- ValdikSS/GoodbyeDPI: GoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)
- Kazuho OkuさんはTwitterを使っています: 「linuxでingress trafficにシェイピングかけたい場合、tun切って受信したパケットをいったんぜんぶtunに流し込むタイミングでtcするしかないんだろうか? やりたいこととしては、上流のルータにあるボトルネックを、手元により細いボトルネックを作ることで、手元にもってきたい(そしてAQMしたい)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「てかまああれか、ホームルータからLANにでてく口でシェイピングすればいいのか」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば TCP/IP というより、socket I/F にイマイチ感を昔から感じてたり。 0byte の recv/read に大事な意味持たせるとか、recvfrom に dest addr 無いとか。」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@_ko1 ソケットのpromiscuous modeみたいな」 / Twitter
USB
その他
- hwhack: ugenでラピッドプロトタイピング(*BSDでUSB)
- 『*BSDでのUSBデバイスドライバーの実装』 2003年10月18日 OFUG勉強会資料
- USB-仕様 - SyncHack
- USB.org - Welcome
- Universal Serial Bus - OSDev Wiki
- USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで|Tech Village (テックビレッジ) / CQ出版株式会社
- 電子工作室
- ディスクリプタ | ルネサス エレクトロニクス
- FAQ 1004570 : USB HUBコントローラでTransaction Translator (TT) とはなんですか?また、"Single" と "Multi" とはなんですか? – ルネサス エレクトロニクス株式会社
- Type-C、WiGig、AirFuel……:2016年に期待のPCテクノロジー“5選” (2/3) - ITmedia PC USER
- 現代PCの基礎知識(7):仕様書を紐解くとわかる―本当はややこしいUSB | Think IT(シンクイット)
- NetBSD で USB デバイスを強制的に ugen(4) として attach したい - nikki
- USB-PD Sniffer - The Chromium Projects
- USB3.0のデバドラを書いてみた - livaの雑記帳
- mvp/uhubctl: uhubctl - USB hub per-port power control
- uhubctl/uhubctl.c at master · mvp/uhubctl
- USB/Descriptor - SyncHack
- www.picfun.com/usb02.html
- エンドポイントとは | インターフェイス株式会社
- USB/エンドポイント - おなかすいたWiki!
- アドレスの設定 | ルネサス エレクトロニクス
- USB HID クラス ‐ 通信用語の基礎知識
- USB Human Interface Devices - OSDev Wiki
- UEFI自作OS日記 v0.6.1 ゆ。 - 借り初めのひみつきち
- Nerry さんはTwitterを使っています: 「USBマウスのブートプロトコルにはホイールのデータがないけど、通常のレポートデータの後に(規格外の)ゴミがつくことが許容されていて、実際にホイールだけ動かすと[0 0 0]のデータが飛んでくる。」 / Twitter
- Nerry さんはTwitterを使っています: 「おそらくブートプロトコルモードのときはホイールのデータをマスクしていて、レポートプロトコルモードにするとゴミだった部分にホイールのデータが来ると思われる。 試した限りブートプロトコルモードでホイールデータが取れそうなマウスはなかった。」 / Twitter
- Nerry さんはTwitterを使っています: 「GPDってどうもデータないときにinterrupt転送すると一瞬で0返す実装になってるぽくて、現在のXHCIドライバは一度に大量の転送するとURBが一時的に発行できない状態になるのでそれが原因な気がする」 / Twitter
- Nerry さんはTwitterを使っています: 「GPD pocketがマウスに触った瞬間キーボード応答なくなる・・・」 / Twitter
- Nerry さんはTwitterを使っています: 「最初のデバイスのIF 0がbootキーボードでIF 1が汎用HIDになってて、おそらくマウスを触るとIF 1のデータが詰まってキーボード側がうんともすんとも言わなくなる」 / Twitter
- 汎用的なBadUSB - 這いよれ Cracking Lab - Medium
- WebのペリフェラルAPIに関わるセキュリティ懸念
- FadisさんはTwitterを使っています 「WebHID: 特殊なゲームパッド等の標準的なAPIから扱えない入力デバイスをWebから扱えるようにするAPI。ユーザが許可した入力デバイスに対する生のアクセスが可能になる。デバイス屋さんは悪意あるWebページがデバイスのファームウェア書き換えるかもしれないから気をつけてね https://t.co/lgRifGMQ60」 / Twitter
- WebHID API
- FadisさんはTwitterを使っています 「で、このWebHIDが次のChromeから使えるようになる、と。まじかよ https://t.co/Gx1zWNp8Rn」 / Twitter
- Chrome 86 Beta Enables Native File-System API By Default, WebCodecs Added - Phoronix
- FadisさんはTwitterを使っています 「LinuxカーネルにCorsairの電源ユニットのドライバが入ったらしい。通常電源にドライバは必要ないが、一部のCorsairの電源は温度、各電源ラインの電圧、電流等の値を取るUSBデバイスが生えている。このドライバはCPUの温度センサ等と同じhwmonで、sysfsから値をとる事ができる https://t.co/fw1TjYuzux」 / Twitter
- The Reverse-Engineered Corsair PSU Linux Driver Continues To Be Improved Upon - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.13にGeneric USB Display(GUD)ドライバが入りたがっている。GUDデバイスに向かって描くDRMドライバとGUDデバイスになりきって別のDRMデバイスに要求を流すGadgetドライバで構成され、USBデバイス側になれるLinuxマシン(RasPi4等)でUSB外付けディスプレイを自作できる https://t.co/h5x5xUF6YG」 / Twitter
- Generic USB Display Driver "GUD" Slated For Linux 5.13 - Phoronix
- 電子工作室
USB Sniffer
- Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる - tech.guitarrapc.cóm
- Download Microsoft Message Analyzer from Official Microsoft Download Center
- 百害あって一利無し!のAMD USB Filter Driverの削除方法 - PC破壊日記的ブログ
- フィルタドライバ入門
- フィルター ドライバー
- レポート22:デバイスオブジェクト
- [HOWTO] フィルタ ドライバに IOCTL を送信する方法
- Windowsデバイスドライバ開発入門 - 人とか機械とか
- USBView の中身を見てみる - Japan WDK Support Blog - Site Home - MSDN Blogs
- USBView ってなに? - Japan WDK Support Blog - Site Home - MSDN Blogs
- ユニバーサル シリアル バス (USB) (Windows Drivers)
- デバイス ノードとデバイス スタック (Windows Drivers)
- Windows-driver-samples/usb/usbview at master · Microsoft/Windows-driver-samples
- Windows-driver-samples/LICENSE at master · Microsoft/Windows-driver-samples
- 新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで | Japan WDK Support Blog
- 重箱の隅のデバッグ(2) – エラーの意味を探る – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Microsoft/windows-driver-docs: The official Windows Driver Kit documentation sources
- Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について – Japan WDK Support Blog
- Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて – Japan WDK Support Blog
- USBディスクリプタ解析ツール usbview | Infinitegra TechBlog
コントローラ
EHCI
- Enhanced Host Controller Interface - OSDev Wiki
- Enhanced Host Controller Interface Specification
- Enhanced Host Controller Interface Specification: Addendum
- IntelチップセットのUSBの実装がいつの間にか変わってた件 - 人とか機械とか
- ドキュメント一覧 | ルネサス エレクトロニクス
- japan.renesas.com/products/soc/usb_assp/download/USB102-INFO-2-01J.pdf
xHCI
Twitter
その他
- Yojiro UOさんはTwitterを使っています: "@syuu1228 xhciのspecを見直してみたら冒頭からこんなに強調してるんだよね。本当に実装ないのかなあ。 http://t.co/GHUmGzchPP"
- Hiroki Satoさんのツイート: "今時なら xHCI の DbC が使えるものが多いので、それで我慢するしかないですね。UARTほど単純なものではないですが。… "
@NerryN3
histric-1
- Nerry さんのツイート: "USBって規格上127個までだったと思うけどxHCIのデバイススロット32とか64しかない奴が多いんだけどもしかして127個も繋げない?"
- Nerry さんのツイート: "Atom系→AddressDeviceまで進む Core系→EnableSlotが無視されるまたは死ぬ"
- Nerry さんのツイート: "nopは反応あるのにenable slotするとなんとも言わなくなるのがよくわからんΣ(-᷅_-᷄๑)"
- Nerry さんのツイート: "qemuだとなんの反応もないけと実機だと一応通信してるのか?… "
- Nerry さんのツイート: "stall errorとtransaction error😩"
- Nerry さんのツイート: "USBについて詳しくなっていくほどにUSBはHIDに向いてない規格だという気持ちが強まる"
- Nerry さんのツイート: "USBの抜き差し検知できるようになった。 実質1ビットの入力ポートを手に入れたヽ(•̀ω•́ )ゝ✧"
- Nerry さんのツイート: "まだ解放処理がうまくできてないから挿入時にenable slotすると2回目の挿入で死ぬ。 enable slot無効化したバージョンだと抜き差し自体は検知できるよになった"
- Nerry さんのツイート: "disable slotもうまく動いたʕʘ‿ʘʔ… "
- Nerry さんのツイート: "ん、なんか動き怪しいな・・"
- Nerry さんのツイート: "細かいバグ修正とDisableSlot対応して抜き差しできるようになったくらいで全体的には進捗微妙(´・ω・`)"
- Nerry さんのツイート: "AddressDevice終わったのにGetDescriptor出来てないし、今だにEnableSlotうまく動かない機種もある(´・ω・`)"
- Nerry さんのツイート: "AddressDevice終わってもまだEndPoint有効になってない?"
- Nerry さんのツイート: "進捗 ほとんどの環境で割り込みとEventRingは概ね動いている EventRingの動く環境でCommandRingは動いてNopCommandも反応があるが、EnableSlotが動く環境と動かない環境がある EnableSlotできる環境ではAddressDeviceも動く TransferRingが動く環境と動かない環境がある データ転送は全滅"
- Nerry さんのツイート: "進捗じゃないなただの現状整理か"
- Nerry さんのツイート: "昨日の進捗は AddressDeviceでInputContextとDeviceContextを混合してた間違いを修正 ポート抜き差しの通知に対応してDisableSlotできるようになった、ただし複数回抜き差しすると不安定"
- Nerry さんのツイート: "xHCIデバイスとお話できるようになるまで手順多すぎだし必要な構造体も多すぎだし禿げる:;(∩´﹏`∩);:"
histric-2
- Nerry さんのツイート: "やっとGetDescriptor出来た😡… "
- Nerry さんのツイート: "GPD WIN… "
- Nerry さんのツイート: "1個転送失敗しとるが"
- Nerry さんのツイート: "USBデバイスってDEVICEのDESCRIPTORには実質ほとんど情報がない😩"
- Nerry さんのツイート: "CONFIGRATION DESCRIPTOR + INTERFACE DESCRIPTOR 見えた あと1個なんかくっついてるぽいけどなんだろ… "
- Nerry さんのツイート: "21ってHID DESCRIPTORか"
- Nerry さんのツイート: "xhci.c 800行あってできることがコンフィグレーションのダンプ😩"
- Nerry さんのツイート: "明日はバスドライバ作れるといいな"
- Nerry さんのツイート: "今日の進捗 デバイスとお話しできた"
- Nerry さんのツイート: "GET DESCRIPTORできるようになったということはUSBバスに信号流せるようになったということで、やっとひとつ上のレイヤーに進める。"
- Nerry さんのツイート: "xhciは複数のデバイスのリクエストを非同期に処理するけど、port status changeからaddress deviceまではevent trbで区別できるけどそれ以降の普通のUSBプロトコルの転送はtrb見ただけだと何の転送かわからない"
- Nerry さんのツイート: "ひとつのリクエストを処理中は他のリクエストを受け入れないようにすれば区別が容易だけど、それは頭悪い。 デバイスごとにthread作って管理するのも大袈裟な感じがする。 fiber使うのがいいのかなぁ"
- Nerry さんのツイート: "デバイスのコンフィグレーションの段階になるとひとつのdescriptor読み込んで処理してつぎのdescriptor読み込んで処理してみたいな感じになるので転送ごとに処理を区切るのは現実的ではない"
histric-3
- Nerry さんのツイート: "configuration descriptorのサイズ見て読み直してるヽ(•̀ω•́ )ゝ✧… "
- Nerry さんのツイート: "読み込み待ちがゴミのように適当です"
- Nerry さんのツイート: "あとはendpoint descriptor見つけてごにょごにょすれば入力できそうな予感"
- Nerry さんのツイート: "descriptor解析するとこうなる… "
- Nerry さんのツイート: "boot interfaceしかサポートしてないHID実は多い?"
- Nerry さんのツイート: "configure endpointうまくいかない"
- Nerry さんのツイート: "きのうのしんちょく ホストコントローラードライバーとバスドライバーを分離した ディスクリプター読み込んでごにょごにょ configure endpointは成功しなかった"
- Nerry さんのツイート: "fiber未実装なのでデバイスごとにthreadで仮実装 転送やコマンドの実行結果をデバイスに返す手段がまだない"
- Nerry さんのツイート: "HIDかどうかはもう認識できてるのでHIDのポーリングはやろうと思えばできるのか?"
- Nerry さんのツイート: "config endpoint動いた。 キー入力まであと一歩!… "
- Nerry さんのツイート: "qemuではキー入力取れた。… "
- Nerry さんのツイート: "実機ではうまくいかない:;(∩´﹏`∩);:"
- Nerry さんのツイート: "なんかtimeout起こしてるぽいな。interrupt転送の仕様よく分からん:;(∩´﹏`∩);:"
- Nerry さんのツイート: "transaction errorってどういうことだ:;(∩´﹏`∩);:"
- Nerry さんのツイート: "じつはmoeは最初からHID前提で作ってたのでキーコード読めれば入力できる (6key対応してない手抜きだが)… "
- Nerry さんのツイート: "ん、一部のデバイスがbabble error返してUSBトランザクション壊れてHIDのデータ転送まで悪さしてるのか"
- Nerry さんのツイート: "babble errorどうすればいんだ…"
- Nerry さんのツイート: "🤔 > A babble error occurs when the hots computer or the device receives more data than the specific maximum packet size."
- Nerry さんのツイート: "しばらくほっといたらやばなってた… "
- Nerry さんのツイート: "なんかdescriptorがめちゃくちゃでかいデバイスあってバスおかしくなってるみたいだけど…"
- Nerry さんのツイート: "というかdevice descriptorにpacket size 64って書いてるのに9バイトのデータ読み取り失敗してどうするんだ"
- Nerry さんのツイート: "きのうのしんちょく configure endpointできた qemuはget reportもinterrupt inも動いてキー入力できた 実機は動かない"
- Nerry さんのツイート: "babble error解消したけど肝心のHIDがtransaction error直らん"
- Nerry さんのツイート: "normal trbしか送ってないのにtransactionもくそもないのだが・・・"
- Nerry さんのツイート: "HIDってクラス030000と030101と030102だけだと思ってたら意外と別のクラスのデバイスが存在してた 仕様書にも乗ってないデバイスはどうしたらいんだ"
- Nerry さんのツイート: "030300番台ってHID仕様書にものってない謎デバイスなんだが…… "
- Nerry さんのツイート: "うまく動かないのこの機種固有の問題ではないかと他の機種で試すと起動しないかboot keyboardサポートしてない:;(∩´﹏`∩);:"
- Nerry さんのツイート: "virtual box割り込み動かんけどイベントポーリングしたらUSB認識しよった… "
- Nerry さんのツイート: "試しにキーボード繋いでみたら普通にキーボード読めた🤔… "
- Nerry さんのツイート: "configure endpointでちゃんと1返ってきてからのtransfer commandでendpoint not enabled error😩"
- Nerry さんのツイート: "実機でデバイスとお話しするところまで行けなくてその上のレイヤーに行けない😭"
- Nerry さんのツイート: "xhciドライバエミュレータではそこそこ動いてるけど実機だとうまく動かんどころかUSB接続した瞬間再起動するバグもあるので本流に乗せれない😿"
- Nerry さんのツイート: "qemuでは概ね動く vboxは割り込み動かないけどポーリングなら動く ほとんどの実機でport status changeは動く(時々割り込み止まる enable slotがうまく動かない機種がある descriptorとれてendpoint設定できる機種でも読み込みが動かない"
- Nerry さんのツイート: "初期のsurfaceはシリーズ違ってもキーボードコネクタ互換あったけど、同じような見た目でも結構中身違うんだな。… "
- Nerry さんのツイート: "surface 3pro type coverは USB HID 03000 surface 3 type coverはUSB HID 030300 surface 2? type coverはI2C HID"
- Nerry さんのツイート: "同じコネクタでUSBとI2Cが同居してる。いったいどんな規格だ"
- Nerry さんのツイート: "これ、初代surfaceに繋ぐとUSBになってsurface3に繋ぐとI2Cになる・・・(RTは今試せず"
- Nerry さんのツイート: "初代RTで試したら何を繋いでもI2Cになった🤔"
- Nerry さんのツイート: "まとめ 初期のsurfaceキーボードコネクタはUSB HIDとI2C HIDのデュアルスタック RT系デバイスに繋ぐと基本I2C、Pro系に繋ぐと基本USBで繋がる。一部例外がある"
- Nerry さんのツイート: "どうでもいいことに時間を費やした。そして久々にRT起動した。"
@uchan_nos
histric-1
- OS作れないマン WalB担当さんのツイート: "xHCIのリングバッファの実装方法おもろいな。書き込みポインタが一周するたびに「周回ビット」を反転させて、その周回ビットをリングバッファの各要素に書き込んでおくらしい。読み込み側も周回ビットを独自に持っていて、周回ビットと要素のビットが等しいなら有効なデータだとして処理。"
- OS作れないマン WalB担当さんのツイート: "ソフトウェア側が読み込みポインタを更新すると、xHCはそこまでの要素が処理し終わったと認識するらしい。ということは、そのメモリ位置への書き込みがコンパイラ、またはCPUでリオーダされないようにしないと微妙にバグりそうだ。"
- OS作れないマン WalB担当さんのツイート: "QEMUのxCHIドライバのソース読んだら規格と全然違う実装してあってこりゃ動くわけないぞ"
- OS作れないマン WalB担当さんのツイート: "CRCRレジスタ唯一有用なビットをマスクしちゃってたらそりゃ0になるわ。さらに規格で「読みだすと0」になるべきビットをマスクしてなかったり。"
- ファッション自作OSマンさんのツイート: "livaさんにuioでxHCIドライバを書く際に気をつけることを教わった。それは、xHCIサポートを外したカーネルを使うということ。サポートを外しておかないとカーネルと自分のドライバが競合する。"
- ファッション自作OSマンさんのツイート: "xHCIドライバをまずモジュールにしつつ、自動読み込みしないようにしておく。"
- ファッション自作OSマンさんのツイート: "QEMUのxHCIドライバにNo-Op Commandが実装されてない.悲しみ."
- ファッション自作OSマンさんのツイート: "自作OSのxHCIドライバに割り込みに対応する機能を追加した。これでコマンド発行から完了通知割り込みまではできるようになった。次はUSBデバイスがポートに接続されたのを検知する機能と、ポートの初期化部分を書く。"
- x86-64-128さんのツイート: "xHCIのUSBSTS.CNR(Controller Not Readyビット)が0になれば大丈夫だと思っていたら,そのビットだけの検査では不十分で,USBSTS.HCRST(Host Controller Resetビット)が0になるのを待つ必要があるっぽい."
- x86-64-128さんのツイート: "USBCMD.HCRSTが0になるのを待つようにしたらすこぶる快調である."
- x86-64-128さんのツイート: "再設計したUSBドライバによるキーボード読み取り成功"
- 技術書典4 け-51 x86-64-128さんのツイート: "少なくとも「USB 3.0 設計のすべて」という書籍より,xHCIのドライバ部分の記述は具体的になっている.例えばデフォルト・コントロール・パイプのMax Packet Sizeの決定方法について,その本には書いてないが僕の本にはある."
- OS開発ゼミ担当 uchan_nosさんのツイート: "昨日の調査まとめ.USBの受信が遅いなーと思っていたのは,どうやらエンドポイントのbIntervalに左右されていた.64msに1回しかポーリングしないようになっており,キーボード入力がそれよりちょっと遅いと,とたんに128ms周期になってしまい,取りこぼす."
- OS開発ゼミ担当 uchan_nosさんのツイート: "作戦としてはバッファを大きくしつつ,データ量が少ない時にshort packet割り込みを発生させれば,もし1入力しかなくてもすぐ入力できるし,複数入力が待機しているときも全部入力できるかなーと."
- OS開発ゼミ担当 uchan_nosさんのツイート: "MinnowBoard Turbotに搭載のxHCIって,もしかしてShort Packet割り込みが発生できない?"
- OS開発ゼミ担当 uchan_nosさんのツイート: "Short Packetについて勘違いしていたっぽい.Short Packetは基本的には1パケットのバイト数がwMaxPacketSizeに満たないときに発生するのであって,私が使っているキーボードのwMaxPacketSizeは8だから,絶対にShort Packetにはならない."
- OS開発ゼミ担当 uchan_nosさんのツイート: "ふーむ.すると64msのポーリング周期で取りこぼさないようにするにはどうすれば?"
- OS開発ゼミ担当 uchan_nosさんのツイート: "僕が使っている外付けキーボードがポンコツなんだろうと思ってLinux機に挿したらめっちゃ快適に入力できたんで,どうやら悪いのは自作ドライバの方だ"
- OS開発ゼミ担当 uchan_nosさんのツイート: "キーボードのInterrupt INに対応するTransfer Ringに事前に複数のTransfer TRBを積んでおけば取りこぼさないだろうと思ったんだけど,依然として取りこぼすな."
- OS開発ゼミ担当 uchan_nosさんのツイート: "OVMFのxHCIの実装を見た感じ,どうやら1msに1回の頻度でTransfer TRBの完了を監視していて,完了してたら次のを投げる,みたいにしてる感じがする."
- OS開発ゼミ担当 uchan_nosさんのツイート: "え,USBデバイスのEndpoint Descriptorに書いてあるbIntervalの値ってなんなの?参考程度の情報?bIntervalより小さな値を設定すると,ちゃんとインターバルが縮まるんだけども."
- OS開発ゼミ担当 uchan_nosさんのツイート: "よっしゃ.キーボード入力の取りこぼしがなくなった"
- OS開発ゼミ担当 uchan_nosさんのツイート: "英語の数式表現がよくわからないんですけど,これってどういう計算すればいいんですかね round X down to the nearest base 2 multiple of Y * 8"
- OS開発ゼミ担当 uchan_nosさんのツイート: "解明できてきたけど、まだ "nearest base 2 multiple of Y * 8" が謎… "
- やめるのだフェネックで学ぶC++さんのツイート: "ご参考までに、以下のコードではround~2を、2のべき乗単位に切り下げるという意味で使っているようです(floorBase2関数 : Utils.h, Utils.cpp)。間違っていたらすみません。 https://t.co/L76z73Qy2N… "
- OS開発ゼミ担当 uchan_nosさんのツイート: "USBホストコントローラのIntervalに設定する値が切り捨てなのか切り上げなのかの謎は、結局完全に解決はできなかった。round downと書いてあるのを鑑みると切り捨てっぽいな、という感じだけど、英文が完全に解読できたわけではない。"
- uchanさんはTwitterを使っています 「最近、UEFIのUSBホストコントローラドライバの実装を読んでるんですけど、まだ最初の方なのに知らなかったことがいくつかあって参考になりますねこれ。」 / Twitter
- uchanさんはTwitterを使っています 「「いくつかのサードパーティのxHCI外付けカードは64ビットレジスタアクセスをサポートしてないから32ビット×2回で書き込みます」っていうコメントがあったりして趣深い(仕様書読んでるだけじゃ絶対に手に入らない知識)」 / Twitter
- uchanさんはTwitterを使っています 「USB ドライバのデバッグをしていて、完璧ではないけどかなり前進した。以前まではUSBホストコントローラの動作を開始した直後にシステムがフリーズしていたのだけど、今はご覧の通り、正常に起動するようになった。完璧ではないと言うのは、キーボードとマウスが使えないこと。 https://t.co/MdNjxJpykY」 / Twitter
- uchanさんはTwitterを使っています 「原因を完結にまとめておく。USBLEGSUP拡張レジスタにXHCの所有権を表すビットがあり,そのBIOSビットが立っていたのが原因。UEFIが所有権を持っているのにOSがXHCを起動しようとしたから処理が競合したらしい。USBLEGSUP.OSを1にして所有権を要請し,所有権がもらえてから操作したら大丈夫だった。」 / Twitter
- uchanさんはTwitterを使っています 「マウスとキーボードが動かないのは,この実験用PCに謎に2つのxHCIが載っているから説。自作OSでは最初に見つかったxHCIだけを親だと思うから… https://t.co/226CDE3Qv3」 / Twitter
- uchanさんはTwitterを使っています 「xHCIのCRCRに関する仕様,ほぼ同じで若干違う表現が使われてるの気になる。なんだろう? RCS: Reading this flag always returns ‘0’. CS: Reading this bit shall always return ‘0’. CA: Reading this bit always returns ‘0’. Command Ring Pointer: Reading this field always returns ‘0’.」 / Twitter
- uchanさんはTwitterを使っています 「flagとbitで変えてる意味が分からない。fieldは,まあそれが1ビット幅じゃないから分かる。shallの有無もよく分からない。」 / Twitter
- tamura🍺さんはTwitterを使っています 「@uchan_nos なんとなく,shallがついてると「そうではない場合がある (そうではない時は何かがおかしい)」と言いたいのかなと.flag と bit はなんだろう… RCSって0ビット目でしたっけ?であればシフト演算なしに取り出せるからflag??? bitはビットマスクで取り出す的な??? わからん」 / Twitter
- uchanさんはTwitterを使っています 「@y7amura Shallについては,なるほど… flag/bitは,RFLAGSレジスタにたくさんの「hoge flag」があることを考えると,ビット0だけをflagと呼ぶ,というのは若干眉唾ですね… 分からないですねw」 / Twitter
- uchanさんはTwitterを使っています 「パワポのテンプレートってほとんど作ってこなかったんだけど,ふいに作りたくなって作った。シンプルな感じで仕上がった。 https://t.co/4CZaNhl2VT」 / Twitter
@liva
- Fadisさんのツイート: ".@liva_jyxHCI さんの「(USB3.0 HC)デバドラを自作してみよう」が始まります #kernelvm"
- Fadisさんのツイート: "「みなさん、USB使いますよね?デバドラ書いたことありますか?」って煽ろうとしたら前回のカーネル/VMでもうデバドラ書いてる話が出てたwww #kernelvm"
- Fadisさんのツイート: "USB 3.0通信速度みたいな物理的な側面が進歩として有名だけど、「USBデバイスたるもの持っていなければならない情報」が大幅に増えてソフトウェアがデバイスの事をより詳しく知って扱えるようになったことも大きいんだよな #kernelvm"
- Fadisさんのツイート: "USB1.1/2.0ではCompanion Host Controllerで使用するコントローラを選択して、それぞれのコントローラに対するドライバでデバイスを叩いていたが、3.0では1.xから3.xまでの全てのデバイスが期待するプロトコルをxHCIホストコントローラが喋るようにな… https://t.co/B5TiVlRMdj"
- Fadisさんのツイート: "自作OSをしていると、ネットワークサポートとUSBサポートを作らないと基本的人権が満たされない #kernelvm"
- Fadisさんのツイート: "自作OSへのUSB 1.1と2.0のホストドライバの実装の経験から3.0のドライバは絶対書きたくないと思ったが飲み会で作ると宣言してしまい3ヶ月かけて実装した、と #kernelvm"
- Fadisさんのツイート: "品質が心もとない自作OSの上でデバイスドライバの開発を行うと問題が起きた時どちらの問題かわからなくて開発が難航する → uio(User space IO)を使ってとりあえずLinux上でドライバの開発を行う #kernelvm"
- Fadisさんのツイート: "発表者「NetBSDがやっているなら僕でもできる」 #kernelvm"
- Fadisさんのツイート: "CPUいじめてSEGVしちゃうどっかの人 #kernelvm"
- Fadisさんのツイート: "UIOでユーザ空間でドライバの開発を行うとlibcが使えるので開発時の生産性が上がる → そうして動くところまで持って行ってからカーネルに移す #kernelvm"
- Fadisさんのツイート: "xHCIホストコントローラはUSB 3.0の速度でスループットを出せるようにインターフェスがEHCIから大きく変更されている #kernelvm"
- Fadisさんのツイート: "xHCIでは接続されたデバイス毎にslotと呼ばれるリングバッファが確保される #kernelvm"
- Fadisさんのツイート: "xHCIのリングバッファはバッファの最後の値をnextとするリンクリストでしかなくどのくらいの長さのループにするか等はソフトウェアレベルでコントロールできる #kernelvm"
- Fadisさんのツイート: "xHCIではハブにつながっているデバイスも全てホストコントローラで面倒を見る #kernelvm"
- Fadisさんのツイート: "HHKBを繋いでテストしようとしたらHHKBが後ろについているUSB端子のためにハブを積んでいてなぜかハブのドライバを書く羽目になった、と #kernelvm"
- k/vm 関西#8 - Google ドライブ
- liva/xhci_uio
- 雑記(10月〜12月) - livaの雑記帳
@t_hash425
- t_hash425さんのツイート: "USB3 hubのHS部分が不定期にdisconnectされる件、いろいろやってたらFでも起きることに気付きテスト用のが当たりhubと判明した ケーブル替えたりLPMいじったりこんなに時間かけて一体なんだったのか"
- t_hash425さんのツイート: "FでもIntelさんのxHCはattachするごとに空いたslotでなく次のslotを使うらしく、このhubをつないでおくとデバイスのアドレスが1ずつ増えてく Nではずっとやってると無反応になる"
- t_hash425さんのツイート: "Nのxhci.cの実装だとIntelさんのxHCがctrl xferでのLINK TRBをうまく処理できないぽい Intelさん以外だと起きない"
- t_hash425さんのツイート: "そういやaddr = XHCI_SCTX_3_DEV_ADDR_GET(le32toh(cp[3]))のle32tohを忘れてる big endianだと動かなさそう"
- t_hash425さんのツイート: "r1.63で直したつもりのLink TRBの扱いの件が直ってなかった 前回のテストではi/f upしt確認していたが、!IFF_UPのままifconfig axe0を連射すると7回目で刺さる"
- t_hash425さんのツイート: "xfer ringの255番目にLink TRBが置かれるとTDが無視されるようにみえるが(ただしIntelさんに限る)、upしてるとtick taskが定期的にctrl xferを流すので問題が隠れてしまっていたと思われる"
- t_hash425 @t_hash425
@ryo_on
- Ryo ONODERAさんはTwitterを使っています: "XHCI_TRB_3_EP_GET(trb_3)=1か。"
- Ryo ONODERAさんはTwitterを使っています: "でも、xHCI 1.1によるとroute stringというのはSuperSpeedのために必要なものであるらしいので、HighSpeedしか扱わないのであれば必要ないか。"
- Ryo ONODERAさんはTwitterを使っています: "帰りにxhci 1.1 specを読んでいたのだが、疑問に思っていたことが次々と書いてあって、やっぱりちゃんと読まないといけないと思ったのであった。"
- Ryo ONODERAさんはTwitterを使っています: "紙でxhci 1.1 specを持っていたら読むのは楽だと思ったが、500 pagesはちょっと持ち歩けない。"
- Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.10.2.3に、一応解説があるようなので読んでみる。"
- Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.6.5 Address Deviceを読んでみる。"
- EXtensible Host Controller Interface - OSDev Wiki
- www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
- セカンド・オピニオン (345) USB 3.0の研究(72) | マイナビニュース
- セカンド・オピニオン (346) USB 3.0の研究(73) | マイナビニュース
- セカンド・オピニオン (347) USB 3.0の研究(74) | マイナビニュース
- セカンド・オピニオン (348) USB 3.0の研究(75) | マイナビニュース
- セカンド・オピニオン (349) USB 3.0の研究(76) | マイナビニュース
- IDF 2013 - USB 3.1や新規格「Media Agnostic USB」などUSB関連を総まとめ (1) 2倍の転送速度を目指すUSB 3.1 | マイナビニュース
- USB Type-Cのspecを少し読んだので解説する - 人とか機械とか
- SkylakeではXHCI(USB 3.0)のみのサポートとなる: 98のWeblog
- 規格の1mを超える転送が可能に:USB 3.1 Gen2の転送距離を延ばすマルチプレクサー - EE Times Japan
- ERI USB-Audio用USBを考える
- 【レビュー】ASUSのプロトタイプで10Gbps対応になったUSB 3.1を試す - PC Watch
- 【大原雄介の最新インターフェイス動向】USB 3.0 その5 - PC Watch
- uio_pci_genericでデバドラを書く<その1> - livaの雑記帳
- uio_pci_genericでデバドラを書く<その2> - livaの雑記帳
- uio_pci_genericでデバドラを書く<その3> - livaの雑記帳
- USB Memo · osdev-jp/osdev-jp.github.io Wiki
- 【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有) - uchan note
- USB3 host driver program structure
- moe の xHCI / USB 実装 - 借り初めのひみつきち
- USB/xHCI インタラプト転送の罠 - 借り初めのひみつきち
- 最小限の USB Hub 対応 - 借り初めのひみつきち
- USB3.0ドライバ開発の道 - uchan note
- USB3.0ドライバ開発の道
- USBキーボードドライバを作成した - 備忘録やめた
- USB3.0ドライバ開発の道
- USB ASSP | ルネサス エレクトロニクス
- Thunderbolt/USB4のフロー制御メカニズムをLinux 6.1以降でサポートへ | gihyo.jp
UCSI
- FAQ: Windows システムの USB Type-C コネクタ (Windows Drivers)
- USB Type-C Connector System Software Interface (UCSI) driver (Windows Drivers)
- USB Type-C Connector System Software Interface Specification
- Winhec_USBTypeCIntroductionandImplementationinWindows10.pdf
- USB 3.1 Electrical Design
- USB_Type-C_challenges-jp.pdf
- BIOS Implementation of UCSI
- USBC000って何だ? - Speaker Deck
- ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (2/2)|Windows Info
- ASCII.jp:Windows 10とUSB Type-Cとの関係を深掘りする (1/2)|Windows Info
- ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (1/2)|Windows Info
ストレージ
USB MASS
SCSI
- SCSI command - Wikipedia
- SCSI CDB - Wikipedia
- SCSI Status Code - Wikipedia
- Fadisさんのツイート: "SCSIコマンド、歴史的な理由で大量にあるから、自分が使うコマンドだけ使えれば良いイニシエータ側の実装は簡単だけど、多様なコマンドに備える必要があるターゲット側の実装は物量的な意味で容易ではないんだよな"
SFF-8020i/MMC-2(ATAPI)
- AT Attachment 8 - ATA/ATAPI Command Set
- sff8020i.pdf
USB Floppy Interface(UFI)
- Microsoft Word - usbmass-ufi10.doc
- マスストレージクラスコマンドセット | インターフェイス株式会社
- USB mass storage device class - Wikipedia
- USB Mass Storage Class Devices - OSDev Wiki
- Microsoft Word - usb_msc_boot_1.0.doc
- USB/Class/Mass-Storage - SyncHack
- www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf
- labo.nshimizu.com/thesis/b2003/0aet1132.pdf
- 実践しながら学ぶ Android USBガジェットの仕組み(11):Android USBパケットをキャプチャーし、UMSプロトコルを解析する!! (1/3) - MONOist(モノイスト)
- 実践しながら学ぶ Android USBガジェットの仕組み(12):Android USBマスストレージクラスのパケットを理解しよう! (1/3) - MONOist(モノイスト)
- 実践しながら学ぶ Android USBガジェットの仕組み(13):UMSクラスドライバを改造し、Androidを“CD-ROMドライブ”として認識させる!! (1/3) - MONOist(モノイスト)
- Fadisさんのツイート: "USBマスストレージと通信するプロトコルとして古くから用いられているBulk Only Transportでは、SCSIコマンドをデバイスに投げる→コマンドにデータが伴う場合はデータを受ける|投げる→コマンドの結果をデバイスからもらう の3つの状態の繰り返しでデータを読み書きする"
- Fadisさんのツイート: "USBMSがリトルエンディアンで、その上に乗ってるSCSIがビッグエンディアンで、それ投げて返って来るパーティションテーブルがリトルエンディアンなの、個々の規格には何も問題がないけどくっつけると優秀なトラップになってる"
- マスストレージクラス転送方式 | インターフェイス株式会社
UASP
- USB Attached SCSI - Wikipedia, the free encyclopedia
- デュアルソケット・ザ・ワールド Windows 8 で USB3.0 の UASP を ENABLE(有効) にする方法
- 価格.comマガジン ランダムライトが約3倍高速に! Windows 8で高速化するSSDケース
- セカンド・オピニオン (336) USB 3.0の研究(63) | マイナビニュース
- セカンド・オピニオン (337) USB 3.0の研究(64) | マイナビニュース
- セカンド・オピニオン (338) USB 3.0の研究(65) | マイナビニュース
- セカンド・オピニオン (339) USB 3.0の研究(66) | マイナビニュース
- セカンド・オピニオン (340) USB 3.0の研究(67) | マイナビニュース
- ASCII.jp:USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み (1/3)|塩田紳二のWindows 8 IN-N-OUT
- UASPとは|USB Attached SCSI Protocol - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- UASP ‐ 通信用語の基礎知識
- USB 3.0 Boost ‐ 通信用語の基礎知識
MTP
- 第653回:MTP接続 とは - ケータイ Watch Watch
- メディア転送プロトコル - Wikipedia
- Media Transfer Protocol - Wikipedia, the free encyclopedia
- Microsoft and FotoNation Team to Support the Media Transfer ProtocolFor Wireless Digital Still Cameras | News Center
- 【Android】USB接続時のMTP/PTPモードを切替える方法 | TeraDas-テラダス
- Media Transfer Protocol Specification
- AndroidのUSB接続は説明した:MTP、PTP、およびUSBマスストレージ
- MTP (Media Transfer Protocol) ‐ 通信用語の基礎知識
- Download Media Transfer Protocol Enhanced Specification from Official Microsoft Download Center
PTP
- 画像転送プロトコル - Wikipedia
- Picture Transfer Protocol - Wikipedia, the free encyclopedia
- pima15740-2000.pdf
- ISO 15740:2005 - Photography -- Electronic still picture imaging -- Picture transfer protocol (PTP) for digital still photography devices
- PTP (Picture Transfer Protocol) ‐ 通信用語の基礎知識
- Rufus - 起動可能なUSBドライブを簡単に作ろう
- pbatard/rufus: The Reliable USB Formatting Utility
- ブータブルUSBドライブ作成ツール「Rufus」がメジャーバージョンアップ、v3.0に - 窓の杜
ベンダ固有
FTDI
- USB/Class/Serial - SyncHack
- FT232R
- FTDIドライバにおけるLatancyTimerについて
- Linux/drivers/usb/serial/ftdi_sio.c - Linux Cross Reference - Free Electrons
- FTDI Knowledgebase
- uftdi(4)
- Linuxで高速なUARTを使ってみた - Qiita
PaSoRi
libusb
- libusb - Wikipedia, the free encyclopedia
- libusb-win32 download | SourceForge.net
- libusb
- libusb-1.0 API Reference
- libusb-1.0.18
- hiro99ma blog: libusb-1.0はzadigを使うべし
- libusb-1.0のメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- 平坂久門ただいま失業中: libusb-1.0でUSBデバイスのEPをR/Wするサンプルプログラム
- libusb
- libusbについて - Linux工作室
WinUSB
- WinUSBデバイスとシリアル通信するには | garicchi.com
- WinUSB (Winusb.sys) (Windows Drivers)
- Daisuke Kobayashi - WinUSB で USB デバイスと通信 1 - 概要
- 第157号(2012年3月7日発行) 技術レポート「WinUSBを用いたWindowsアプリケーション開発」|ソフテックだより|株式会社ソフテック
- WINUSBの簡単な初歩や基本的な使い方・利用方法・仕様方法・やり方 | 初めての利用方法や使用方法・初心者でも簡単 使い方ラボ
- WinUSB - AVR etc
- WinUSB.sys事始め
libpafe
libnfc
- NFC Tools
- libnfc: libnfc reference manual
- MacでPasoriでNFCカードを読んでみる(libnfcを使って) | 9ensanのLifeHack
- RC-S330をLinuxで使う | 團長の小部屋
- nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library
- libpafe
- gsuica
- suica_plugin
- GEdy
- edy_plugin
libpasori
- libpasori - RC-S320操作コード
- PaSoRi/RC-S320 - osdev-j (MMA)
PC/SC
- NFC - Web Application Programming Wiki*
- NFC/PC_SCサンプル - Web Application Programming Wiki*
- スマートカード
- スマートカードサブシステム
- PC/SC Workgroup
- pcsc-lite: API
- Zinnia hacks tomorrow.
- NFC 入門 | TipsZone
nfcpy
- nfcpy in Launchpad
- Python module for near field communication — nfcpy trunk documentation
- Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る | 傀儡師の館.Python - 楽天ブログ
- nfcpyでお手軽NFC開発[1/2]
- nfcpyでお手軽NFC開発[2/2]
- raspberry piでSuicaの履歴の表示 | TomoSoft
- Raspberry Pi 2 で NFC (FeliCa) を使えるようにする - しばやん雑記
- RaspberryPiとICカードリーダ - アラのアラアラしい日記
- Raspberry Pi に nfcpy をインストールする手順 - 2016年3月 私家版 : @jsakamoto
- OS作れないマンさんのツイート: "nfcpyのGetting Started通りにやるだけでは、複数のsystem codeを持つNFCはうまく扱えない。on-discoverコールバックの中で、引数targetのsensf_resメンバを強制的に書き換えることで対処。"
- OS作れないマンさんのツイート: "もっと単純に idm, pmm = tag.polling(希望のsystem code) tag.idm, tag.pmm, tag.sys = idm, pmm, 希望のsystem code とすれば万事OKだった。"
- nfcpy で複数の System Code を持つ NFC タグを扱う方法 - uchan note
- IC SFCard Fan
- PaSoRi - Wikipedia
- Sony Japan | FeliCa | 法人のお客様 | 製品情報 | ICS-D010・D004・D002・D003
- Sony Japan | FeliCa | 法人のお客様 | 技術情報/FeliCa技術方式の各種コードについて
- hiro99ma blog: RC-S380はRC-S370ではない
- hiro99ma blog: [win8]RC-S380のデバイスドライバ/ライブラリ
- Jさんのツイート: "Today, JR East explained global NFC phones will support Mobile Suica in the future. https://t.co/f6lZG7tmAg"
- Sony Japan | FeliCa | 個人のお客様
- iPhoneでモバイルSuicaが使えるようになる? - NFC対応スマートフォンにFeliCa搭載という流れ (1) NFC Type Fの採用が決め手となる | マイナビニュース
- iPhoneがおサイフケータイ(FeliCa) に対応か。Apple Payが間もなく日本上陸 - Engadget Japanese
- DirectInput と XInput - 借り初めのひみつきち
- FadisさんはTwitterを使っています 「linux-5.7からiPhone等の急速充電ドライバが入るらしい。iPhoneはUSBで接続された時点では0.5A以下で充電を行うが、急速充電デバイスに書き込みがあると2.5A吸って充電するようになる。専用の充電器はこの書き込みを行なうが、同様の操作をlinuxカーネルが出来るようになる https://t.co/tUni6BNsRM」 / Twitter
- Linux 5.7 To See USB Fast Charge Support For Apple iOS Devices - Phoronix
- FadisさんはTwitterを使っています 「ただし、これを有効にするとiPhoneは遠慮なく2.5A吸いに来るが、ハードウェアがそれをして大丈夫なハードウェアかどうかは別問題」 / Twitter
- Linux Preparing To Disable Drivers For Microsoft's RNDIS Protocol - Phoronix
- Android でテザリングをマスターしよう!
HID
FIDO U2F
- HUTRR48.txt - Notepad
- FIDO Alliance Download Specifications - FIDO Alliance
- FIDO U2F HID Protocol Specification
- v2f.py/u2fhid.py at master · concise/v2f.py
- u2f/hid.go at master · flynn/u2f
- Yubikeys overall overview - WIP
WebHID
- FadisさんはTwitterを使っています 「Chrome 89からWebHIDがデフォルトで有効になるらしい。WebHIDはWebUSBで懲りていなかったGoogle最新のヤバAPI。JSで書かれたドライバでシステムに接続された入力機器を直接操作する。WebUSB同様ユーザがダイアログで許可した事をもってWebページにデバイスの使用を認める https://t.co/Fceyjauaek」 / Twitter
- Chrome 89 Beta Enables WebHID By Default, Other New Web APIs - Phoronix
- FadisさんはTwitterを使っています 「入力デバイスの中にはファームウェアアップデートを無条件で受け付ける等のインターネット越しに触らせてはいけない物も数多く存在するが、それらに対しては「ダメなデバイスのベンダーIDとプロダクトIDのリストをブラウザが持って、それを頑張って更新する」という驚くべき対策が仕様に書かれている」 / Twitter
- FadisさんはTwitterを使っています 「ちなみにWebページがUSBデバイスの完全なコントロールを手に入れるWebUSBは、「WebUSBを活用して2要素認証ドングルに偽の情報を送る事で2要素認証を突破するフィッシングサイト」に活用された後、主要なほぼ全てのデバイスクラスでWebUSBを使えなくする修正が入ってAPIが生えたまま死んでる」 / Twitter
- FadisさんはTwitterを使っています 「Webページのスクリプトの提供者は信頼できるか判断がつかない相手で、システムはデバイスドライバに悪意が無い事を期待している為デバイスドライバの提供者は信頼できる必要があって、WebUSBにもWebHIDにもこのギャップを埋める物がない。必要なのはGoogleによるドライバに対する署名だと思うんだ」 / Twitter
- Webアプリがジョイコンなどに対応する「WebHID」、NFCタグを読み書きする「Web NFC」、シリアルポートで通信する「Web Serial」など、Chrome 89ベータではデフォルトで有効に - Publickey
Twitter
- Livaさんのツイート: "USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは入る)のだけど、2つ以上キーを同時押しするとデータが入る #liva_notebook"
- Livaさんのツイート: "何言ってるのか自分でもワケワカメなんだけど、要はAならAだけ押した時、自作OS側からはどのキーを押されたかが分からない(何かが押された事は割り込みが来るから認識できる)のだけど、Shift + Aだと、ShiftとAの双方が押された事がわかる #liva_notebook"
- Livaさんのツイート: "freebsdのコード読むと https://t.co/PArc0Pgn80、ukbd_interruptでパケットを読んだ後で、ukbd_read_charでもう一文字読んでるような気がするのだけど・・・わからぬ #liva_notebook"
- Livaさんのツイート: "もう一文字読んでるってのは、単一のキーしか押されてない場合、Interrupt Transfer以外の別の仕組みでキーを読んでるのかなぁ、と推測 #liva_notebook"
- Livaさんのツイート: "もっとDevice Class Definition for Human Interface Devices (HID) https://t.co/mhqn81LOIR を読み込まなければならぬ #liva_notebook"
- Livaさんのツイート: "寝ぼけてた。ukbd_put_keyでsc->sc_inputsをインクリメント、デクリメントして、その値が0だったらukbd_event_keyinputでreturnしちゃうからukbd_read_charにたどり着くわけない #liva_notebook"
- Livaさんのツイート: "要するに、ukbd_read_charでもう一文字追加でどっかから読んだりなんてしてない #liva_notebook"
- Livaさんのツイート: "えー、じゃあやっぱ単一キーを押した時にキーデータが送られてきてないように見えるけど、自作OSのバグなのかなぁ #liva_notebook"
- Livaさんのツイート: "困った時のfreebsdという事でfreebsdで先程のコードにprintf仕掛けたら、一文字のときもちゃんとInterrupt Transferにキーデータが流れてきている模様。という事は自作OSのバグか・・・ #liva_notebook"
- Livaさんのツイート: "問題の切り分けはできたけど、Interrupt Transferのデバッグやらなきゃいけないの、やだなぁ #liva_notebook"
- Livaさんのツイート: "ん、ちょっと勘違いしてたぞ。keycodeの取得をやってるのは、 https://t.co/3KsSAPpFar か #liva_notebook"
- Livaさんのツイート: "まあ結局単一キーでもちゃんと取得できている事には変わらないけども #liva_notebook"
- Livaさんのツイート: "お、 https://t.co/t5fj3AOBmV これダンプすれば良さそう #liva_notebook"
- Livaさんのツイート: "やっぱ単一キーでもちゃんとパケット来てるんだよなぁ #liva_notebook"
- Livaさんのツイート: "お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook"
- Livaさんのツイート: "正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook"
- Livaさんのツイート: "この件、解決した。連続で同じレジスタ(MMIO) にwriteするのだけど、何も考えずに実装したのでコンパイラによって2つのwriteが1つに握りつぶされていた。asm volatile("":::"memory")を挟んで解決 #liva_notebook https://t.co/B5Zd22a0Kn"
- Livaさんのツイート: "USBキーボードにはBoot ProtocolとReport Protocolがあってそれぞれ異なる方法で入力を返すのか。HID Specificationを読んでてよくわからなかったのだけど、やっと少し理解できた。 #liva_notebook"
- Livaさんのツイート: "うーん、Boot Protocolをセットするのが問題でもないのか。。。 #liva_notebook"
- Livaさんのツイート: "Interrupt Transferの2つに1つがパケロスしてるのではないかという仮説を立てた #liva_notebook"
- Livaさんのツイート: "2つに1つ消えているという仮説から、data toggleをしてないのがいけないのではないかと思って設定してみた所、usb keyboardが実機で完璧に動いた!! #liva_notebook"
- Livaさんのツイート: "interrupt transferにはdata toggleに関する記述が無かったからこれまで設定してこなかったのだけど、isochronous transfer以外はちゃんとdata toggleをしましょう #liva_notebook"
- 10/27,28はOSC Tokyoさんのツイート: "自作OSのために作ったUSBホストドライバ+HIDキーボードドライバの動作をシーケンス図にしてみた.結構苦労してプログラムしたけど,苦労するだけあるわ.絵のレベルでも凄い複雑だもん.… "
- NerryさんはTwitterを使っています: 「HIDクラスって本来3.0.0か3.1.1か3.1.2しか存在しないはずだけど、たまに3.0.1とか3.0.2って名乗ってる変なデバイスあるし、3.3.0ってなんだよsurface」 / Twitter
- FadisさんはTwitterを使っています 「Googleが謎のUSB HID moonballのdevice IDを追加するパッチをlinuxに投げてきた話。Googleは過去にも謎のデバイスHammerのドライバをlinuxに追加しており、これは後に出た一部のChromebookで利用されているが、moonballはhammer-likeなデバイスであると説明されている https://t.co/y3EAUysdj5」 / Twitter
- Google "Moonball" Will Be Supported By Linux 5.7 - Phoronix
- TAN-Y(たに)さんのツイート: "Macの最高なところは英語キーボードと日本語キーボードが正しく混在利用できるところだと思っているのですが、Windowsもこの点さっさと見習ってなんとかしてほしい・・・"
- www.usb.org/developers/hidpage/Hut1_12v2.pdf
- HIDデバイス/開発 - おなかすいたWiki!
- USB.org - HID Tools
- USB HID クラス ‐ 通信用語の基礎知識
- Windows 8 におけるセンサーのサポート – Building Windows 8
- ワコム、ホイールとファンクションキーが加わった「FAVO 4」
- 自作OSにUSBを実装する - livaの雑記帳
- Microsoft Word - HUTRR39b.docx
- USB.org - Microsoft Related HID Documentation
- Keyboard and mouse HID client drivers | Microsoft Docs
- USB プロジェクト - マウスのReportDescriptorを見てみよう:新適当マイコン電子工作研究所:So-net blog
- レポートディスクリプタ - おなかすいたWiki!
- コメを噛め» Blog Archive » HID Mouse から Joystick へ
- マイコンの実験:PIC内蔵USB機能(HID)の実験6
- USBマウスのレポート・ディスクリプタで悩む:親族SNS管理人ブログ:So-netブログ
- rjj05b1417_m16cap | 検索 | ルネサス エレクトロニクス
- Keyboard and mouse HID client drivers | Microsoft Docs
- USB Human Interface Devices(HID)Class サンプルプログラム
- Enhanced Wheel Support in Windows - Windows 10 hardware dev
- USB1.1接続のマウスは2.0と比べて反応は? -有線でUSB1.1接続のみのマ- マウス・キーボード | 教えて!goo
- usb touch screen protocol - Google 検索
- レポートディスクリプタ - おなかすいたWiki!
Audio
Windows
- DTMで必ず登場するASIOドライバって何? : 藤本健の“DTMステーション”
- Windowsの音質を阻害するカーネルミキサー : 藤本健の“DTMステーション”
- オンボードのサウンド機能を高性能化するWASAPI : 藤本健の“DTMステーション”
- WASAPIでiTunesを高音質に再生!? : 藤本健の“DTMステーション”
DSD
- Sony PCM-D100 の為に DSD64(1bit/2.8MHz)の曲を探してみた。 - ICT備忘録
- ERI 「ハイレゾノイズ」にご用心?
- About - ハイレゾ音源配信サイト【e-onkyo music】
- 音声のデジタル化方式について | インターフェイス株式会社
- PCで音楽: DSD256の聴き方!
- Direct Stream Digital - Wikipedia
- DSD 64 2.8MHz v.s WAV 24bit 192kHz : Studio Okamoto の 徒然日記
- DSDデモトラック | サポート | OPPO Digital Japan株式会社
- 【藤本健のDigital Audio Laboratory】第475回:いまさら聞けないDSD/スーパーオーディオCD - AV Watch
- SUPER AUDIO CD - about SUPER AUDIO CD - Format - DSD
- 【藤本健のDigital Audio Laboratory】“DSDのまま編集”を実現!? 帽子型補聴システム、24ch再生などDSDの新たな可能性 - AV Watch
- ハイレゾ音源がダウンロードできるおすすめ配信サイトと4つの注意点
- ASIO - Wikipedia
- 【藤本健のDigital Audio Laboratory】第546回:DSD対応USB DACの再生ソフトを比較する - AV Watch
- 【藤本健のDigital Audio Laboratory】第557回:DSDの基本から未来まで。「1ビット研究会」レポート - AV Watch
- ASCII.jp:ハイレゾを始めるならUSB DAC? それともネットワーク? (3/5)|麻倉怜士のハイレゾ入門講座
- ソニー、DSD関連フォーマットの仕様を公開
- zionote、DSD対応技術「JAVSLINK2」のライセンスを公開 - 個人利用は無料 - PHILE WEB
- USB オーディオ クラス ‐ 通信用語の基礎知識
- OSS開発-Tethys USB: 風のまにまに心のままに、そして想いの力を信じて
- 02 « 2月 « 2010 « PCオーディオブログ
- USB Audio - Speaker - マイコン工作実験日記
- uaudio(4)
- WhatsNew/FreeBSD10 - FreeBSD Wiki
- AN295.pdf
- usb-audio-simplified.pdf
- USB Audio Design Guide
- USB Audioの転送データサイズ | インターフェイス株式会社
MIDI
- MIDI - Wikipedia
- MIDI - Wikipedia
- 今さら聞けない、「MIDIって何?」「MIDIって古いの?」 : 藤本健の“DTMステーション”
- MIDI規格がすべて無料公開!GitHubも同時スタートし、よりオープンに進化する! : 藤本健の“DTMステーション”
- Home
- RP/CA
- About | Creators' Hub - Presented by AMEI
- amei-music/CreatorsHub: 異なるプロトコルやアプリケーションのメッセージを相互に変換するプログラムです。MIDI, OSC, Web Socketを流れるJSON等の相互変換ルールを定め一意に変換することで、音楽や映像アプリケーション間の接続性や汎用性を高め、様々なメディア・デバイスが連動したクリエーションをより容易にします
- MIDI規格委員会
- MIDI1.0規格書
- DTM技術情報 - 0.目次 | g200kg Music & Software
- SMF(Standard MIDI File)フォーマット解説 | 技術的読み物 | FISH&BREAD
- SMF (Standard MIDI Files) の構造 - Welcome to yyagi's web site.
- apollo twin USBを駆使する声優の小岩井ことりさんの本気すぎるDTM環境 : 藤本健の“DTMステーション”
- MIDI 2.0 の件 | g200kg Music & Software
- USB MIDI 2.0に対応したWindows用ホストドライバが開発へ。しかもオープンソース - PC Watch
Wacom タブレット
- Wacom タブレット - ArchWiki
- Home · linuxwacom/input-wacom Wiki
- Wacom Protocols · linuxwacom/input-wacom Wiki
- USB Protocol - linuxwacom
DisplayLink
- DisplayLink
- DisplayLink - Wikipedia
- 【イベントレポート】DisplayLink、4K/60Hzの2出力対応のUSBディスプレイコントローラ - PC Watch
- DisplayLink/evdi: Extensible Virtual Display Interface
- displaylink-rpm/displaylink-rpm: RPM sources for the DisplayLink USB display adapters
- AdnanHodzic/displaylink-debian: DisplayLink driver installer for Debian/Ubuntu based Linux distributions.
- zhsj/displaylink: Debian package for DisplayLink Linux driver
- magoroku15/DisplayLink-driver-for-android: Little modification for android
- venix1/PiDock: displaylink clone
- linux/udlfb.c at master · torvalds/linux
- floe/tubecable: DisplayLink open-source protocol reference implementation
- Home · floe/tubecable Wiki
- libdlo
- https://www.kernel.org/doc/Documentation/fb/udlfb.txt
- HOWTO: Use a DisplayLink USB graphics adapter on Crunchbang Linux v11 Waldorf with partial upgrade to Debian Jessie
Class
- USB device class drivers included in Windows (Windows Drivers)
- USB.org - Defined 1.0 Class Codes
- USB.org - USB Device Class Specifications
- デバイスクラス ‐ 通信用語の基礎知識
- 3.5mmイヤホンジャックが消える日も近い?音声対応USB規格発表 - iPhone Mania
- Hit the road, headphone jack. USB wants your job - CNET
エニュメレーション
- エニュメレーション | インターフェイス株式会社
- USB/エニュメレーション - おなかすいたWiki!
- Prot3 USB Protocol( 3) FT-232Hのエニュメレーション完了を検出
- USB/PnP - SyncHack
- 設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識 |Tech Village (テックビレッジ) / CQ出版株式会社
- USBのエニュメレーション(まとめ) : prittyparakeetのblog
- USBの解説.PDF
- USB1.1 およびUSB2.0におけるエニュメレーションの違いが知りたい - 108: 上記以外のマイコン関連 - Forum - かふぇルネ - Renesas Rulz - Japan
- USB ( Universal Serial Bus ) インタフェース | 東芝デバイス&ストレージ株式会社 | 日本
- USB Host Human Interface Device Class Driver (HHID)
- エニュメレーション | インターフェイス株式会社
- USBデバイス状態遷移図 | インターフェイス株式会社
パケットキャプチャ等
- 【レビュー】スピードテスト機能も搭載。USBデバイスの情報を一覧表示できる「USBDeview」 - 窓の杜
- FREE USB Protocol Analyzer Software USB Sniffer and Logic Analyzer
- hiro99ma blog: USBのパケットキャプチャ
- マイコンの実験:PIC内蔵USB機能の実験3
- Wireshark · Download
- USBPcap
- Usb Sniffer for Windows download | SourceForge.net
- RatatoskrによるUSBキャプチャ - Qiita
Wikipedia
- USB Type-C - Wikipedia, the free encyclopedia
- USBハブ - Wikipedia
- CCID (protocol) - Wikipedia
Twitter
- Fadisさんのツイート: "USBデバイスを物理的に取り外さずにLinuxカーネルの管理から外すには echo <デバイス名> >/sys/bus/usb/drivers/usb/unbind 再びカーネルに握らせるには echo <デバイス名> >/sys/bus/usb/drivers/usb/bind"
- Fadisさんのツイート: "カーネルの管理から外れたデバイスはユーザ空間から誰にも邪魔されずに会話できる状態になるため、ゲスト環境にホストのUSBデバイスを直接触らせたりする時に便利、と"
- Fadisさんのツイート: "CDC ACMのシリアル通信って入力 出力 割り込み通知の3本のエンドポイントが転がってるだけで特にUSBの上にプロトコルのようなものはなくてそのままシリアル通信のデータが流れてるんだな…"
- a.rin@mixさんのツイート: "USB が 1msec フレームなんで、GPSからの時刻データをUSB経由だと、1msecくらいのジッタがでちゃうのね"
- なかのん&マジックさんのツイート: "色んなキーボードレイアウト(物理)を見てると、日本が強かった時代がコンピュータの黎明期で色々と得してるなーとは思う。こんだけ購買力落ちててもJISキーボードの販売・サポートは必須やからね。歴史的要因って強い。"
- なかのん&マジックさんのツイート: "JISキーボード固有のキーが無かったらどうなるのかは、中国語のIMEがどうやってON/OFF切り替えるのかとか見ると、結構真顔になってしまう。"
- なかのん&マジックさんのツイート: "USB規格にはLang1からLang4までの特殊キーが定義されてるんで、あれを各、非ASCII文字な言語圏は活用すべきだと思うんだけど、物理キーボードにそのキーを載せるとなると、やっぱりコストがかかるから、肝心のPCメーカーが率先してキーの追加を提案したりはしないわなぁ。"
- なかのん&マジックさんのツイート: "失礼。Lang4までじゃない。Lang9まであった。"
- Nerry さんはTwitterを使っています: 「control trb の status stage の dir は data stage の種類によって違う:;(∩´﹏`∩);:」 / Twitter
- 神無月ねりさんはTwitterを使っています: 「usbポートって抜き差しする時結構チャタリングでイベント飛んでるのね。使い終わったスロット解放してないからめっちゃスロット番号とぶ」 / Twitter
- The USB ID Repository
- www.linux-usb.org/usb.ids
- home | USBGuard
- dkopecek/usbguard: USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
- USB転送方式 | インターフェイス株式会社
- USB4™ Specification | USB-IF
- USB4 Adopters Agreement | USB-IF
- USB4 | USB-IF
- Compound Device と Composite Device - 借り初めのひみつきち
- 最小限の USB Hub 対応 ver.2 - 借り初めのひみつきち
Bluetooth
その他
- デバイスに搭載されているBluetoothのバージョンをGUIで簡単にチェックできるツール - 窓の杜
- 第267回 Bluetoothデバイスで離席管理する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- HCIプロトコル
- 21.4. Bluetooth
- Chapter�21.�Bluetooth on NetBSD
- Bluetooth
- OSx86jp @ ウィキ - 動作報告 Bluetooth編
- できる周波数ホッピング
- デュアルブート環境で Bluetooth を使いたい!
- Bluetoothの暗号鍵ネゴシエーションに脆弱性、仕様自体を修正 - PC Watch
- 【アプデ/10】 2019年7月度(あるいはそれ以降も?)のWindowsUpdate適用でBlurtoothスピーカーに不具合 : ニッチなPCゲーマーの環境構築
- Windows 10プレビュー版、BTデバイスのペアリングをより簡易化 - PC Watch
- 【レビュー】Windows 10はBluetoothの高音質通話「HD Voice」に対応したのか? ~バッファロー製ヘッドセットで実証テスト - PC Watch
- サポートされる Bluetooth プロファイル - Windows Help
- 「Windows 10 20H1」Build 19002が“Fast”リングに ~Bluetooth機器の接続が手軽に - 窓の杜
- Windows 10プレビュー版、Bluetoothの簡易接続機能が全ユーザーに提供 - PC Watch
- ASCII.jp:Windows 10でようやくまともになったBluetoothのサポート (1/4)|Windows Info
Bluetooth
- https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
- Adopted Specifications | Bluetooth Technology Website
- Specification | Adopted Documents | Bluetooth Technology Special Interest Group
- ECN specification for Bluetooth SDP
- Bluetooth - Windows 10 hardware dev
- Bluetooth stack - Wikipedia, the free encyclopedia
- Bluetooth - ArchWiki
- Bluetooth - ArchWiki
Apple
- Bluetooth Accessory Design Guidelines for Apple Products
- iOS:iOS デバイス対応の Bluetooth プロファイル - Apple サポート
- iPhone テザリング - ArchWiki
- iPhone tethering - ArchWiki
- Bluetoothテザリング子機として使える機種を探す方法と注意点
- iPhoneはBluetooth PAN(テザリング)の子機として使えない(備忘録) – Captain's Log, Supplemental
- 今さら聞けないテザリングについて|プラカンブログ | プラスデザインカンパニー【大阪・東京 ホームページ・WEB制作】
- Bluetooth経由でiPhoneへ写真を転送できる? - いまさら聞けないAndroidのなぜ | マイナビニュース
- なぜ「AirDrop」はBluetoothを使うのにファイル転送が速いの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- The Official Bluetooth SIG Member Website
- 日記 (2019 年 2 月上旬)
Classic
Audio
SCMS-T
- 第497回:SCMS-Tとは - ケータイ Watch Watch
- SCMS - Wikipedia
- Bluetoothヘッドホンからテレビの音が聞こえません!? - いまさら聞けないAndroidのなぜ | マイナビニュース
- SCMS-T | 用語集 | KDDI株式会社
BT-UHD
- <IFA>ファーウェイ、Bluetooth新プロトコル「BT-UHD」。LDAC比2倍以上、2.3Mbpsでオーディオ再生 - PHILE WEB
LDAC
- Sony Japan | LDAC™で高音質ワイヤレスリスニング
- ソニーのハイレゾ対応コーデック「LDAC」は何がスゴい? 開発者に疑問をぶつけた - AV Watch
- 次期OS"Android O"の開発者プレビューが公開。ソニーの協力によりLDACをサポート - PC Watch
- 第707回:LDACとは - ケータイ Watch Watch
- platform/external/libldac - Git at Google
- LDACエンコーダを使ってみた - Qiita
- eggman/ldacenc: LDAC encoder
- eggmanさんのツイート: "AOSPにLDACのencoderのソースコードがあった。 https://t.co/sdNwBJpx42 次のAndroidにはLDACが標準搭載されるっぽいですね。"
apt-X
- Qualcommが英CSRを買収。BLEやaptXなどBluetooth資産を獲得し、IoE強化 - AV Watch
- aptX対応のワイヤレスBluetoothオーディオ製品と技術
- ボクらのスマホ&iPhoneを最新のaptX-LL対応にする方法(ワイヤレスイヤホン選びを真剣に考える③)|オモロダイブ
- 高音質ワイヤレスで注目の「aptX HD」は他とどう違う? クアルコムに聞いた - AV Watch
- 【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
- Qualcommが展開する「DDFA」の高音質化技術とハイレゾ対応Bluetooth技術「aptX HD」 - PC Watch
- Qualcomm® aptX™ Low Latency Synchronised Audio
- aptX Low Latencyを試してみる? | Wasters haven.
- 新Bluetooth音声コーデック「aptX Adaptive」。動的レート制御で音質と接続性向上 - AV Watch
- Qualcomm、レイテンシ削減でゲームにも対応できる無線オーディオコーデック「aptX Adaptive」 - PC Watch
- 第876回:aptX Adaptive とは - ケータイ Watch
- 【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
- Bluetoothを高音質/低遅延化する「aptX」。CSRが説明 - AV Watch
- 次期Android“Oreo”が対応「LDAC」「aptX HD」はどのスマホで使えるようになるのか? (1/3) - PHILE WEB
AAC
- 【第153回】“iPhoneのAACファイルをAACでBluetooth伝送すると音質劣化しない”は本当か? - Phile-web
- License Fees - Via Corp
SBC
- SBC (codec) - Wikipedia, the free encyclopedia
- BluetoothのSBCって何ですか? - afnf.net
- https://tools.ietf.org/id/draft-ietf-payload-rtp-sbc-03.txt
Bluedroid
- Andorid 4.2以降はBluetoothが違う、ってどういうこと? - いまさら聞けないAndroidのなぜ | マイナビニュース
- Android 5.0でBLE advertising するための要件 - Qiita
- Android Bluetooth HAL Interfaces について 概要編 - Qiita
- Bluetooth | Android Open Source Project
- Bluedroid ‐ 通信用語の基礎知識
- platform/external/bluetooth/bluedroid - Git at Google
- embdrv/sbc/encoder/srce/sbc_encoder.c - platform/external/bluetooth/bluedroid - Git at Google
PulseAudio
- Fadisさんのツイート: "PulseAudio 10.0がリリースされました。主な変更点はBluetooth使用時にアプリケーションの申告に基づいてA2DPとHSPを切り替える仕組み、パススルーモード、USB接続のサラウンドなデバイスが使えない不具合の修正他 https://t.co/wSWB3Q7rom"
- PulseAudio 10.0 Officially Released - Phoronix
- 10.0
冒頭に無音を挿入
- Rui Ueyamaさんのツイート: "なんかほとんどのBluetoothスピーカーやヘッドフォンは、数秒以上使われていないと待機状態に移行して、そのあと復帰直後の音の最初の0.1秒くらいが欠落するぽい。ひどい実装だ。"
- Rui Ueyamaさんのツイート: "なのでTCFMではsoxで0.1秒の実質的な無音ファイル(-50dbのbrown noise)を作って音声ファイルの冒頭にくっつけるということをすることに。そうしないとBluetoothで聞いたとき最初の子音が欠落してしまう。ここらへんも含めて加筆修正しました。 https://t.co/bewRhFDebf"
- 【Bluetoothヘッドホン】【Bluetoothスピーカー】AAC/aptXとは?
- AACとapt-Xコーデック(ポータブルスピーカー まとめ) : 日々妄想 -書籍と家電の個人的記録-
- apt-x HDとLDAC ワイヤレスハイレゾの覇権をとるのはどっちだ | IT Trend news
- LDAC vs aptX HD。いよいよ動き始める「ハイレゾ級ワイヤレス」 – boomil
- Android の aptX aptX-HD LDAC AACサポートについて - Qiita
- 「Bluetoothオーディオ」の仕組みと用語 〜Bluetoothスピーカーやヘッドホンを選ぶ際におさえておきたいポイント - Fluffy white croquis
- A2DP ‐ 通信用語の基礎知識
- とみながたけひろさんのツイート: "相変わらず周波数特性と波形で音質評価といってる人の記事が流行ってるのか、、、"
- とみながたけひろさんのツイート: "BTヘッドフォンをちゃんと電波部分、コーデックアルゴリズム、デジタル、アナログ回路性能、マイク、ヘッドフォン性能、ぐらい分離して細かくレビューしてほしい(無理)(やっぱり専業とかデカイ会社ではやっとるんかなあ)"
- とみながたけひろさんのツイート: "コーデックはまあそれなりに知ってるけど、それ以外で世間の製品がどう頑張ってるか知りたい。電波状況が悪化して一度帯域を落としたら二度と戻らないようです、とか、帯域切替を頻繁に行うのでそこでノイズが載ったように聞こえますとか、遅延と音質との関係とか、クロック同期とか、、、"
- とみながたけひろさんのツイート: "まあとりあえずなんちゃって評価するにしても、数秒とかのサイン波でやるなら、電波が飛ぶ領域だけでもちゃんと簡易電波暗室的な奴(アルミ缶とかでもいい)に入れて評価してほしい"
- HIDP ‐ 通信用語の基礎知識
- PAN (Bluetooth) ‐ 通信用語の基礎知識
- BNEP ‐ 通信用語の基礎知識
- L2CAP ‐ 通信用語の基礎知識
BLE
BLE-MIDI
- Apple Bluetooth Low Energy MIDI Specification
- Bluetooth for Developers - Apple Developer
- 【藤本健のDigital Audio Laboratory】第669回:Bluetooth MIDI伝送で何ができる? 対応5製品とiPad連携などを試す - AV Watch
- Spec / Faq | microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
- microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
- Bluetooth LE MIDI Specification
6LoWPAN
- わふう>ω<のひとさんはTwitterを使っています: "OpenWRT + BLE over IPv6/6LowPAN。つまり市販されているWiFiルータにBLEドングルを刺してOpenWRTでIPv6/6LowPANのルータがデモンストレーションできる、と
- わふう>ω<のひとさんはTwitterを使っています: "IPv6 over Bluetooth Smart (Low Energy) [OpenWrt Wiki] https://t.co/vxgpSbU2Mi"
- わふう>ω<のひとさんはTwitterを使っています: "6LoWPAN for Bluetooth low energy on OpenWRT RT Blogs - Nordic Developer Zone https://t.co/k1UkJKpOq9"
- 6LoWPAN のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth Low Energy(BLE)入門――なぜBLEは世界で愛用されるのか - EE Times Japan
- Bluetooth LE と Beacon の話
- 2016年のBLEを振り返る | Reinforce-Lab.'s Blog
- 「IoTの成功モデル」、BLE市場が活況 - 家電・モバイル - 日経テクノロジーオンライン
- IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】 (1/3):CodeZine(コードジン)
- DSAS開発者の部屋:既成の BLE デバイスを自作プログラムから利用する試み
- FreeBSDで Bluetooth Low Energy (BLE)を使う | 元祖ワシ的日記
- HOGP ‐ 通信用語の基礎知識
- GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
- Takashi KawasakiさんはTwitterを使っています 「BLEが位置情報の権限を必要とする根本的な理由についての認識って共有されてないんだな。ビーコンに限らず、BLE機器をスキャンしたら周りにある機器が特定できちゃうので、間接的に場所が特定できちゃう可能性が高まるんだよね。別にGPSが動くわけじゃない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「少なくとも、この人とこの人、ひょっとしてお隣さん?みたいな事は十分にわかっちゃう可能性がある。Macの名前とかモロバレだし、そうじゃなくても、ユーザーのフィンガープリンティングとしては割と精度が高い。」 / Twitter
Google
- bluetooth - Git at Google
- platform/external/bluetooth/hcidump - Git at Google
セキュリティ
- Bluetooth経由でスマホからPCまで乗っ取れる攻撃手法が発覚 ~Bluetoothがオンになっているだけで攻撃可能 - PC Watch
- JVNVU#95513538: 様々な Bluetooth 実装に複数の脆弱性
- 数十億を超えるBluetooth機器に影響、ペアリングなしで乗っ取られる脆弱性“BlueBorne”が明らかに - 窓の杜
- Armis BlueBorne: Bluetooth vulnerabilities | Firmware Security
- BlueBorne Technical White Paper.pdf
- Bluetoothのセキュリティ強化とリスクの軽減を図るための3つの対策
- Fadisさんのツイート: "BlueBorneで明らかになった脆弱性の1つCVE-2017-1000251は、Bluetoothのデータリンク層の設定を行うL2CAP CONFIGURATION REQUESTに巨大なパラメータを付けて投げると、それを想定していない実装がスタック破壊→任意コード実行という物で、いわば21世紀のping of death https://t.co/q5DEtKHEzU"
- Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251 - Red Hat Customer Portal
- Bluetoothに通信傍受などの脆弱性、「Apple」「Intel」「QUALCOMM」製品などが影響を受ける恐れ - INTERNET Watch
- JVNVU#92767028: Bluetooth 実装の楕円曲線ディフィー・ヘルマン鍵共有において公開鍵を適切に検証していない問題
- Fadisさんのツイート: "Bluetoothの仕様が複雑すぎ、実装者に多くの選択肢を用意しすぎている為、実装者は目的を達成するのに必要なサブセットを摘んで実装する傾向があり、それがBluetoothを格好の攻撃対象にする原因になっている、という話 https://t.co/YuD0fAs5dl"
- Bluetooth's Complexity Has Become a Security Risk | WIRED
- Fadisさんのツイート: "Bluetoothの規格書、WiFiの約10倍のページ数があるのか…"
- More information on “…Exploiting Low Entropy in the Encryption Key Negotiation of Bluetooth® BR/EDR” *
Wireless・のおと
- Bluetoothのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(4)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのセキュリティのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth 5 のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth5の補遺|Wireless・のおと|サイレックス・テクノロジー株式会社
通信用語の基礎知識
- Bluetooth ‐ 通信用語の基礎知識
- Bluetoothプロファイル ‐ 通信用語の基礎知識
- SDP (Bluetooth) ‐ 通信用語の基礎知識
- HCI (Bluetooth) ‐ 通信用語の基礎知識
GitHub
- Fadisさんのツイート: "Logitech(ロジクール)のUSB接続BluetoothドングルのデバイスのペアリングをLinuxから行う為のオープンソースなツール Solaar https://t.co/fpbi8nDC3I"
- Solaar
- pwr/Solaar: Linux devices manager for the Logitech Unifying Receiver.
- bluekitchen/btstack: Dual-mode Bluetooth stack, with small memory footprint.
- RedBearLab/BLE_HCI: Allows external systems or MCUs to connect BLE (CC2540) using HCI as BLE Central Role
- JiounDai/Bluedroid: PoCs of Vulnerabilities on Bluedroid
Qiita
- Bluetooth Low Energy Advent Calendar 2014 - Qiita
- Bluetooth Low Energy Advent Calendar 2015 - Qiita
- Bluetooth Low Energy Advent Calendar 2016 - Qiita
- FreeBSDでBluetooth SPP - Qiita
Twitter
- as9kさんのツイート: "A2DPはHSP/HFP(ヘッドセット・ハンズフリー)よりはるかに音がいい。A2DP使えないものと比べたから確か"
- なかのん&マジックさんのツイート: "AndroidにBluetoothのDUNを追加するアプリはあるけど、HFPを機能があるかのように見せるだけで良いんで、HFPを追加するアプリって無いんかな? 技術的にできるんか知らんけど。"
- なかのん&マジックさんのツイート: "カーナビは、HFPで接続の成否を判断してるんで、HFPの無いタブレットをモデムとして使えないんだよな。"
ACPI
その他
- ReactOS: drivers/bus/acpi/acpica/namespace/nsinit.c File Reference
- https://www.bitvisor.org/summit/slides/BitVisor-Summit-02-eiraku.pdf
- ACPI Wakeup - MythTV Official Wiki
- Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
- ACPI BGRT - ねりりんと借り初めのものがたり
- Judgement Day - ねりりんと借り初めのものがたり
- ACPICA – Raphine Project<サイト製作中>
- ACPI Table - Qiita
- ACPIの最新仕様書は、UEFI Forumによって管理されています。(2013年10月以降) - 64bitマシンとか、Linuxとか、アニメとかのブログ
- Linux kernel ACPI-centric CVE-2017-13694: Awaiting Analysis | Firmware Security
- FWTS 17.08.00 released, many new ACPI tests | Firmware Security
- AML - OSDev Wiki
- FADT - OSDev Wiki
- New ACPI IDs for November: Nexstgo and Insyde | Firmware Security
- 日記 (2017 年 4 月中旬)
- 日記 (2017 年 4 月中旬)
- 日記 (2017 年 4 月中旬)
- ACPICA - OSDev Wiki
- Shutdown - OSDev Wiki
- 初心者のためのACPI
- 第8回 ACPI その2 ACPICAを使おう - ブログやめる日記
- ACPI で電源を切る - 借り初めのひみつきち
- ACPI で電源を切るの補足 - 借り初めのひみつきち
- Nerry さんのツイート: "たったふたつのOUT命令でここまで長い記事になるとは書き始めた時は思ってなかった。深い。"
- 2019年3月29日号 discoのBetaとカーネルフリーズ,ACPIまわりのデバッグ方法:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Debug ACPI DSDT and SSDT with ACPICA Utilities | Ubuntu blog
- ⚙ D20630 ACPI support for USB , mainly hub.
- Nerry さんはTwitterを使っています: 「そういえば現状ACPI ENABLEしないままXHCIドライバとPS2ドライバ両方起動してるから一部のレガシーエミュレーションしてる機種でうまくない動作してるかもしれん。。あとで直しとこ:;(∩´﹏`∩);:」 / Twitter
- Nerry さんはTwitterを使っています: 「ほんとはACPI ENABLEして電源ボタンのイベント取りたいけど機種によってはAML読まないと電源イベント取れない機種があってその辺の対応がめんどくさい:;(∩´﹏`∩);:」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「ラップトップに Linux 入れて PowerTop を実行するとまず LCD が電池を喰ってて次に CPU だったりするから,輝度を落として CPU も CPUfreq で governor を powersave とかにするだけでだいぶバッテリーが保つんですよね」 / Twitter
- 機械学習を利用してバッテリーの充電傾向を把握し、使用直前までバッテリー充電率を80%で止めてくれるiOS 13の新機能「最適化されたバッテリー充電」は位置情報も使用し、旅行先などでは機能を停止する。 | AAPL Ch.
- Appleは新しいMacBook Pro向けの新機能として、IntelのTurbo Boostを長時間継続させアプリのパフォーマンスを向上させるような「Pro Mode」をmacOS Catalina Betaでテストしているもよう。 | AAPL Ch.
- kworker/kacpidのCPU使用率が高い問題に対処した
- 「作って理解するOS」を読んで「QEMUで電断できねーじゃんか!」になった人を救いたい - Qiita
S0ix
Linux
- ols2012-mansoor.pdf
- Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix
- How to achieve S0ix states in Linux* | 01.org
- Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix Forums
- Add suspend-to-idle validation for Intel SoCs [LWN.net]
- [linux-joule,9/9] Enable type-c HOST mode with S0iX suspend - Patchwork
- ref-os-iot/0004-Enable-USB-Type-C-HOST-mode-with-S0iX-suspend.patch at master · intel/ref-os-iot
- Mailing List Archive: [PATCH v2 5/5] intel_idle: Add S0ix validation
- LKML: "dbasehore .": Re: [PATCH v5 5/5] intel_idle: Add S0ix validation
- Linux-Kernel Archive: [PATCH] platform/x86: intel_pmc_ipc: read s0ix residency API
- x86/pmc_atom: Eisable a few S0ix wake up events for S0ix residency [Linux 3.17] - Linux Kernels
- Re: S0ix failure due to "clk: x86: Do not gate clocks enabled by the firmware" — Clock Framework
FreeBSD
- ⚙ D17676 Emulated S3 with s0ix (not currently working)
- bwidawsk/freebsd: bwidawsk's FreeBSD src tree
- Challenges around _OSI
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol. 1
- IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - マイクロアーキテクチャ編 (3) 省電力周りの変更点、Atom同等のS0iXモードのステートを追加 | マイナビニュース
- 【笠原一輝のユビキタス情報局】スマートフォンと同様の使い勝手を実現するIntelのS0ix実装 ~IntelがClover Trailの詳細を公開 - PC Watch
- ASCII.jp:インテルが最新モバイルCPUで実現した省電力技術とは?
- 画面オフ・モダンスタンバイ・休止状態 - ※ただの日記ブログです※
- Windows 10ミニTips (57) 電源コマンドを使ってPCの「モダンスタンバイ」対応を確認する | マイナビニュース
- Powercfg のコマンド ライン オプション
- ASCII.jp:Modern Standby対応PCでバッテリーアイコンをクリックすると表示されるスライダーの謎 (1/2)
- retrageさんはTwitterを使っています 「Modern Standby/S3 ResumeでのBIOSの動作って結構バグっていることが多いのでBIOS updateしてみるといいかもしれません。」 / Twitter
- 【山田祥平のRe:config.sys】モダンスタンバイ、信じる、信じない? - PC Watch
- DellのXPSノートPCでスリープ中の異常発熱が報告される - GIGAZINE
- 【山田祥平のRe:config.sys】休止状態に陥るWindowsの働き方改革 - PC Watch
Hardware-reduced ACPI platforms
- HW reduced ACPI - 借り初めのひみつきち
- SoC ベース プラットフォームのハードウェア要件 - Windows 10 hardware dev
- Overview of Windows support for ACPI 5.0 | Microsoft Docs
- Hardware requirements for SoC-based platforms | Microsoft Docs
- モダン スタンバイ - Windows 10 hardware dev
- モダン スタンバイの SleepStudy レポート - Windows 10 hardware dev
- ACPI ファームウェアの実装要件 - Windows 10 hardware dev
- ACPI バッテリおよび電源サブシステムのファームウェアの実装 - Windows 10 hardware dev
- バッテリおよび電源サブシステムのハードウェア設計 - Windows 10 hardware dev
- バッテリと充電 - Windows 10 hardware dev
- Nerry@さんのツイート: "あ、HW reduced ACPIもPM1 control registerとほぼ同じレジスタが別にあるのか"
- Nerry さんのツイート: "virtual boxで電源落とせるようになった。 HW reduced ACPI はこれでいけるはずだけどまだテストできてない… "
- Nerry さんのツイート: "S5のSってSleepなのかStateなのかその他の意味なのか"
- Nerry さんのツイート: "S5探す作業だいぶ短くできた… "
Skylake
- ASCII.jp:Windows 10の電力管理を支えるACPIを見る (1/2)|Windows Info
- ASCII.jp:「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする (1/2)|Windows Info
- ASCII.jp:スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」 (1/2)|Windows Info
- 電力管理ガイド - Fedora における電力消費の管理について
- IDF Session Presentation Template
- Call for help for Skylake Power Management – Pike's Universum
- linux/x86_energy_perf_policy.c at master · torvalds/linux
- CPUID — CPU Identification
- paper.pdf
- 1905.12468.pdf
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
- 【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に | ニッチなPCゲーマーの環境構築Z
- 質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
- これで分かるSkylakeマイクロアーキテクチャ。性能向上と省電力化のために加えられた多くの改良が明らかに - 4Gamer.net
電源管理
北森瓦版
- 北森瓦版 - “Skylake”で導入された“Speed Shift technology”
- 北森瓦版 - “KabyLake”と14nm+プロセス
本の虫
- 本の虫: Linux 3.9はPM_SUSPEND_FREEZEをサポート
PC Watch
- 【笠原一輝のユビキタス情報局】Intelの開発責任者に聞く、Skylake開発秘話 - PC Watch
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
- 【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Ultrabookのアイドル電力消費を100mW以下にするHaswellの省電力技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの「Haswell」のダイと省電力技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Atomスマートフォンで勝負をかけたIntel - PC Watch
- 【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
ASCII.jp
- ASCII.jp:Windows 8.1で利用できるInstant Goの挙動を調べる (1/2)|Windows Info
- ASCII.jp:Win 8.1で利用できるInstant Goのトラブルを解決する (2/2)|Windows Info
OSDN
- Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine
Wikipedia
- スリープ (コンピュータ) - Wikipedia
Qiita
- BitVisorとACPI - Qiita
Twitter
- kmem_cacheさんはTwitterを使っています: "お、マウスの電池残量が少ないことまで通知してくれるのか > gnome3 https://t.co/QwbmRDg5Xa"
- Takahiro HASHIMOTOさんのツイート: "GPD PocketのUbuntu版カーネルで、bq24190_charger ドライバが充電器から取り出す電流が3Aハードコードされてるらしい。純正電源ならいいが他のはヤバいのでこのカーネルは使うなとHans氏が注意喚起してる https://t.co/kF52Mmq65T"
- “「使っていない時も省エネ・・・!?」~欧州規制EuP指令の対応”|環境活動|エプソン
- 3メーカーに聞く、Haswell時代の電源選び 【玄人志向編】技術者「謎のサングラス男」に聞く、Haswell対応の根本とポイント - AKIBA PC Hotline!
- ErP Lot 6 って?|エナぶろぐ
- UEFI(U1E)へアップデートしてみました - GIGABYTE LGA1155 intel Z68(B3) Micro ATX GA-Z68MX-UD2H-B3のレビュー | ジグソー
- 価格.com - 『USB給電を止めたいです。』 ASRock Z87 Pro3 のクチコミ掲示板
- 価格.com - 『シャットダウン時にUSBへの電源供給を止めることはできますか?』 ASRock Z87 Extreme4 のクチコミ掲示板
- www.eceee.org/ecodesign/products/standby/
- openSUSE 13.1: 第11章 電源管理
- ACPI の基礎知識
- いろいろ Tips02.スタンバイと休止状態 - cool-r32.com
- 休止状態とスリープ状態の違い - 道すがら講堂
- mjg59 | Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed
- 「部屋で服を着替えるとPCがスリープから復帰する」という謎の現象が報告される、一体なぜ? - GIGAZINE
SMBus
- SMBus Specifications
- SMBus ‐ 通信用語の基礎知識
- セカンド・オピニオン (134) バスのアーキテクチャ - 過去から未来へ(95) | マイナビニュース
- I²C ‐ 通信用語の基礎知識
SBS
- SBS-IF - SBS Specifications
- 「バッテリーを交換してください」とは? powercfg による診断 - Web/DB プログラミング徹底解説
- スマートバッテリ ‐ 通信用語の基礎知識
APEI
- 第3章 カーネル
- A_Tour_beyond_BIOS_Implementing_APEI_with_UEFI_White_Paper.pdf
- ACPI モジュール - ArchWiki
- ACPI, APEI support [LWN.net]
- https://www.kernel.org/doc/Documentation/acpi/apei/einj.txt
- Linux/Documentation/acpi/apei/einj.txt - Linux Cross Reference - Free Electrons
- Linux/drivers/acpi/apei/hest.c - Linux Cross Reference - Free Electrons
- LEG/Engineering/Kernel/RAS/APEITests - Linaro Wiki
- linux/drivers/acpi/apei at master · torvalds/linux
ACPI 連載
- www.init-main.com/acpirensai/acpi.txt
- www.init-main.com/acpirensai/acpi3.txt
- www.init-main.com/acpirensai/acpi4.txt
- www.init-main.com/acpirensai/acpi5.txt
- www.init-main.com/acpirensai/acpi6.txt
- www.init-main.com/acpirensai/acpi7.txt
- www.init-main.com/acpirensai/acpi8.txt
- www.init-main.com/acpirensai/acpi10.txt
- www.init-main.com/acpirensai/acpi-features.txt
- Takanori Watanabe(@takawata19)さん | Twitter
- Takanori Watanabe's Home Page
DSDT
- DSDT - ArchWiki
- ja/Fixing DSDT
- OSx86駆け込み寺 - DSDT
- おかしなDSDTを直そう | rionaoki.net
- PCI 情報/DSDTテーブルの取得方法 - Japanese - InsanelyMac Forum
- OSX86 Hackintoshで良く出てくる DSDTや SSDTって何?取得方法は?の夢 (DSDT.amlや SSDT.amlの取得方法、ACPI電源管理用の情報が書いてあるファイルです)
DMAR
- howto_implement_hypervisor/part16.md at master · syuu1228/howto_implement_hypervisor
- KVM PCIパススルー (PCI PassThrough) | nexia inc
- 第16章 仮想化
- UEFI機能一覧(Workload Optimized 2) : Enterprise Cloud Knowledge Center Baremetal Server 1.5.6 ドキュメント
- OVMF による PCI パススルー - ArchWiki
- ACPI DMARメモ - 睡分不足
MS
ESRT
- ESRT テーブルの定義 - Windows 10 hardware dev
- ESRT table definition
- ESRT テーブルへのデータ入力 - Windows 10 hardware dev
- Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
- Better Firmware Updates in Linux using UEFI Capsules
- Windows UEFI ファームウェア更新プラットフォーム - Windows 10 hardware dev
- 更新プログラムの処理 - Windows 10 hardware dev
- ファームウェア更新ステータス - Windows 10 hardware dev
- ファームウェア更新パッケージの作成 - Windows 10 hardware dev
- SoC プラットフォーム用 Windows ACPI 設計ガイドライン - Windows 10 hardware dev
- Hardware requirements for SoC-based platforms
- ACPI 5.0 用 Windows サポートの概要 - Windows 10 hardware dev
- Overview of Windows support for ACPI 5.0
- ACPI 定義のデバイス - Windows 10 hardware dev
- その他の ACPI 名前空間オブジェクト - Windows 10 hardware dev
- ACPI システム記述テーブル - Windows 10 hardware dev
- ACPI system description tables
- ドッキング - Windows 10 hardware dev
- Microsoft Software Licensing Tables (SLIC and MSDM) - Windows 10 hardware dev
- Microsoft ASL Compiler (asl.exe) を使ってみる – Japan WDK Support Blog
- デバイス管理の名前空間オブジェクト - Windows 10 hardware dev
- AcpiGenFx を使った ACPI テーブルの生成 - Windows 10 hardware dev
- ACPI ドライバーインターフェース – Japan WDK Support Blog
- モダン スタンバイのためのハードウェアの準備 | Microsoft Docs
- 指示電源管理フレームワークの概要 - Windows drivers | Microsoft Docs
GitHub
- illumos-joyent/dbnames.c at master · joyent/illumos-joyent
- phantomuserland/acpi_main.c at master · dzavalishin/phantomuserland
- PG_MANAさんはTwitterを使っています 「なんと、たった、2600行であのAMLが中途半端に動くようになります。 https://t.co/dK8M29e9Pl」 / Twitter
- [add] AML Evaluator(provisional) · PG-MANA/Methylenix@e830e29
OSDN
- ファイル詳細: /drivers/acpi/acpi_ctl.cc (master) - uniqos (git) - OSDN
- ファイル詳細: /drivers/acpi/acpi_os.cc (master) - uniqos (git) - OSDN
- ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nsalloc.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
- ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nswalk.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
- https://osdn.jp/projects/linux-kernel-docs/docs/C06/ja/1/C06.pdf
Wikipedia
- Advanced Configuration and Power Interface - Wikipedia
- Reset vector - Wikipedia, the free encyclopedia
Twitter
その他
- mrtska@4thSSA両日LVさんのツイート: "[StarRing] https://t.co/CXAW6qhcaR mrtska - ACPICAでACPIシャットダウンに成功したぞ"
- Fadisさんのツイート: "Linux-4.8がリリースされました。主な変更点はRaspberryPi3のSoCのサポート、AMD OverDriveのサポート、ACPI Low-Power Idleをサポート、Surface3のタッチスクリーンをサポート他 https://t.co/S5XM87PpTt"
- 勝(まさる)さんのツイート: "ノートPCでちゃんと動くっていうと、ふたをしめて開いたら液晶がちゃんと復活するところから<おい"
- AoiMoeさんのツイート: "だいたいOSがACPIの仕様書通り実装してもちゃんと動かないBIOSばっかりだもんなあ"
- СЮУ1228🔥🐉さんのツイート: "@uchan_nos @kotatsu_mi そもそもACPIはそのPC上の全デバイス情報を始めとしてあらゆるPC固有の情報突っ込んでおいてOSに渡すためにあるので、電源管理だけのためのものじゃないす"
- 𝔬𝔯𝔲𝔪𝔦𝔫(orumin)さんのツイート: "@uchan_nos @syuu1228 自分のマシンを Linux とかで起動したときに,/sys/firmware/acpi/tables/ にあるファイルの中身をどっかにコピーした上で,それに対して iasl -d とかのコマンドでデコンパイルしたら実際の ASL に何が記述されてるとか読めそう"
- ドラゴン・ユタカ・フルーツ🐬さんのツイート: "パソコンやサーバの電源ボタンを短押し(軽く一回押すこと)すると、OSシャットダウンして電源が落とせますが、実際にはOSの設定に依存します。また、RHELはログオン状態だとダイアログが出るだけです。 ログオンできないけど、マシンを落としたいときは便利な機能です。"
- Yasunori Gotoさんのツイート: "ACPI 6.2が出たので見てるんだけど、NVDIMM関連の仕様も色々増えていて、頭抱えてる。 SLIT テーブルはレガシー仕様になる予感"
- 技術書典4 け-51 x86-64-128さんのツイート: "ACPIについて勉強。ACPIを使うには何と言ってもRSDP(64ビット環境ではXSDP)を得る必要がある。ACPICAを使うにしても、RSDPの値はユーザが与える必要がある。UEFIが有効なシステムではSystem TableからRSDPの値を探す。 #uchan_devbox"
- 技術書典4 け-51 x86-64-128さんのツイート: "OSを初期化するためにACPIのテーブルを読む必要があるので,ACPICAではACPIテーブルを読む機能は"Early ACPI Table Access"と言って動的メモリ管理などが無くても使えるようになっている.ACPICAのフル機能は動的メモリ管理とかマルチプロセスなんかが必要となる. #uchan_devbox"
- ゆたかさんさんのツイート: "(x86な)Linuxは、システムに搭載されているCPUの数を、BIOS(UEFI)が持つACPIテーブル(DSDT)から取得します。 /sys/firmware/acpi/tables/DSDT DSDTはバイナリなので、Intelお手製のiaslツールで逆コンパイルすると読めるようになります。Processor()がCPUの定義です。… https://t.co/Q7ho4T5BpQ"
- ゆたかさんさんのツイート: "PSTAメソッドでPCNTという定義が出てきますが、OperationRegion()で記述されています。つまり、0xF7FD9000をメモリダンプするとPCNTの値が入っているということです。ByteAccはバイト単位ではなくビット単位なので、PCNTは24バイト(6*32ビット)目。… https://t.co/DdSXX7H5wn"
- Yasunori Gotoさんのツイート: "私の場合、acpica-toolsのacpidumpをつかって、いったんバイナリを全部ファイルに吸い取ってからiaslでdisassembleしてました。まあ、acpica-tools自体がsys配下の情報を読み取っているのでしょうけど、ユーザが直接sysを読みに行くよりはacpica-toolsを使った方が好ましいかもしれません。… https://t.co/1wup6CDG04"
- Yasunori Gotoさんのツイート: "もう一個。大分昔の記憶なので正直うろ覚えですが、CPUの数はDSDTの数ではなく、MADTからLAPICの数で確認してなかったかしら?… "
- C++でOS自作 技術書典5 お05さんのツイート: "The ideal and reality of NVDIMM RAS by @YasunoriGoto1 #linux #nonvolatilememory https://t.co/kZ1HqWU5xl @SlideShareより ACPIに_DSMてのがあるのか。どうやって呼び出すんだろう?"
- The ideal and reality of NVDIMM RAS
- Yasunori Gotoさんのツイート: "ACPIにはDSDTとかSSDTって呼ばれるツリー構造のデータが定義してあって、それがハード構成を示してます。 デバイス固有の機能があればDvice Specic Methodすなわち_DSMがそのツリーの中のデバイスの配下に定義されてて、それを呼び出すというのが流れですね。… https://t.co/QgohjFp311"
- C++でOS自作 技術書典5 お05さんのツイート: "そうなんですね。ACPIテーブルはXSDTからHPETのレジスタ定義を読むというのはやったことがあるレベルなんですけど、DSMを呼び出すというのが、具体的にどうやるのかっていうのが興味あります!… "
- Nerry@さんのツイート: "windowsの一番気にくわない挙動 なぜか時々勝手にスリープ解除する→誰も解除しないロック画面を愚直に表示し続けるのコンボ"
- Nerry@さんのツイート: "A社のOSではなんかの間違いでスリープから起きても誰もロック解除しないなって気付いたらスリープし直します。"
- yuYabu☕️さんのツイート: "え、窓は寝直さないんですか… "
- Nerry@さんのツイート: "どうも実機にはgeneral purpose eventがめっちゃあるみたいで全部無効にしたら問題なく動いた・・・"
- Nerry@さんのツイート: "これ結局AML見ないと何が起きてるかわからない案件なのかな"
- Nerry さんのツイート: "昨日のまとめ SCI有効にして電源ボタン入力を取るだけなら簡単 実機では大量の謎のGeneral Purpose Eventが規定で有効になってるがAML読まないと何が起きてるかたぶんわからない SCIはレベルトリガーなので割り込み要員を解消するまで永遠に割り込みが発生する"
- Nerry さんのツイート: "大量の謎のGPEで何が起きてるかわからない以上、AML読めるようになるまではいたずらにACPI ENABLEしない方がいいのでは?"
- Nerry さんのツイート: "こういうのはブログにまとめた方がいいんだろうか🤔"
- Nerry さんのツイート: "そもそも別のブログ記事書いてる途中に思いついてSCIで遊んでたっていう事案"
- Nerry さんのツイート: "SCI_INTが0の機種ってどうすればいんだ・・・"
- Nerry さんのツイート: "GPD今までずっとHW reduced ACPIだと思ってたら違った。"
- Nerry さんのツイート: "なにか適当に作った時、panasonicは大体うまく動く。"
- Nerry さんのツイート: "GPDのFADT尊重するとこいつはHW reduced ACPIじゃないということになるんだがHW reduced ACPIにしかないはずのSleep Control Registerが存在してて謎すぎる"
- Nerry さんのツイート: "PM1a_CNT_BLKが0404になっててSleep Control Registerが0405になってる。 Sleep Control Registerは実質PM1 Control Registerの上位8ビットなので実態は同じものを指している。"
- Nerry さんのツイート: "電源ボタンのSCIが長押ししないと取れない上に有効にしてないはずのTMR_STSビットが立つ機種がある🤔"
- Nerry さんのツイート: "一部の機種で電源ボタンを押すと電源切れるようになった💤"
- Nerry さんのツイート: "電源ボタンのSCIがおかしい機種はやっぱAML見ないとダメなんだろうか・・・"
- Nerry さんはTwitterを使っています: 「起動時に留まる機種があって色々調べたらACPI PM タイマーが、ない:;(∩´﹏`∩);:」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@uchan_nos ということは、これを解決するには Local APIC Timer の周波数を Intel SDM に書かれている方法で求めてから、初期化する必要があるってことなんですね、きっと」 / Twitter
- ryoさんはTwitterを使っています 「pwm regulator書いてるけどバグったら変な電圧かかってボードぶっ壊しそうで恐い。今時はソフトでハードを結構簡単に壊せるんや。PC互換機のBIOSでCPUやメモリの電圧変えられるようになっりBIOSがflashになった頃からか。90年代半ば~後半くらいから?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 9xとかの頃の初期のACPIなんて、各ベンダーが手探り実装だったから、変なBIOS実装多かったよなぁ。ここのACPIの実装が間違っているからスリープに落ちないとか、そんなの同僚が調べてた」 / Twitter
@akachochin
- OS作れないマンさんのツイート: "自作OSもくもく会始まりました。最初は @akachochin さんによる「ビギナーのためのACPI」です。ACPIについて触りを勉強するプレゼンだそう。 #osdev_moku2"
- OS作れないマンさんのツイート: "ACPI=Advanced Configuration and Power Interface。電源制御とデバイスの設定のための統一規格。 #osdev_moku2"
- OS作れないマンさんのツイート: "「デバイスの設定」と言っても、電源管理のための設定という色が強く、ACPIは電源管理のものと思えば良い #osdev_moku2"
- OS作れないマンさんのツイート: "ACPIはレジスタインターフェースとメモリ上のデータ構造により動作する。xHCIのインターフェースとかと似てる! #osdev_moku2"
- OS作れないマンさんのツイート: "ACPI system description tableとACPI Namespaceがキモっぽい。ACPIテーブルにはいろんなデバイスの情報が羅列されている。すべてのACPIテーブルはシステムに1個存在するRoot System Description Pointerからたど… https://t.co/Xt6plcNZ8g"
- OS作れないマンさんのツイート: "古いACPI規格だとRSDTの場合もあるが、今のバージョンはXSDTを使うようになっている。XSDTとは、他のテーブルのポインタを集めたテーブルで、ルートポインタから指されるデータ構造。 #osdev_moku2"
- OS作れないマンさんのツイート: "主要なテーブルは3つある。FADT(XSDTの最初のエントリが指す)、DSDT(システムごとの差異を格納するテーブル。デバイス情報などが書いてある。)、FACS(ファームウェアとおしゃべりするための情報が書いてある。) #osdev_moku2"
- OS作れないマンさんのツイート: "DSDTにはAMLフォーマットのバイナリデータが格納されている。 #osdev_moku2"
- OS作れないマンさんのツイート: "ACPIの規格書を読んで独自で実装するのは辛いので、Intelの実装であるACPICAを使うと楽できる。 #osdev_moku2"
@liva_jy
- Livaさんのツイート: "ACPICA使ってる場合の電源offは、AcpiEnterSleepStatePrep(5)から割り込み禁止して、AcpiEnterSleepState(5)でpoweroffするのだけど、そういう話ではないのかな"
- Livaさんのツイート: "UEFI環境下(qemu with OVMF)でACPICAの初期化で落ちる気がするんだけど、ACPICAの問題なのか、それとも移植の問題なのか・・・(8割型移植の問題 #liva_notebook"
- Livaさんのツイート: "やっぱACPICA初期化時にgrubがロードしたフォントファイルを破壊してるなぁ。これはメモリアロケータ側の問題か? #liva_notebook"
- Livaさんのツイート: "とりあえずフォントファイルを退避させる事で、AcpiInitializeSubsystem()は通るけど、AcpiInitializeTables()は途中で落ちる #liva_notebook"
- Livaさんのツイート: "フォントファイルコピーしたら破壊されなくなったとか呟いたけど、そもそもロード時にコピーしてるはずなんだよな。やっぱメモリアロケータがぶっ壊れてるのか #liva_notebook"
- Livaさんのツイート: "なぜ僕はこれまでメモリ破壊系のバグ調査にqemuの-sオプションを使ってこなかったんだ #liva_notebook"
- Livaさんのツイート: "ブレークポイント仕掛けたらRemote 'g' packet reply is too longとか言われた後にぶっ壊れる #liva_notebook"
- Livaさんのツイート: "あー、UEFI環境ではRSDPはUEFIから与えられるのか、自分で探す(AcpiFindRootPointer())のでは見つからないのね #liva_notebook"
- Livaさんのツイート: "参考:ACPI Spec 5.2.5.2 Finding the RSDP on UEFI Enabled Systems #liva_notebook"
- Livaさんのツイート: "grub(というかmultiboot)でACPI RSDPを定義してるのはそういう意味だったのね、RSDPの探索を省略するためかと思った #liva_notebook"
- Livaさんのツイート: "BIOS環境下でもmultibootがRSDPを返してくれるかどうかは要検証だなー #liva_notebook"
- Livaさんのツイート: "とりあえずmultibootからもらったRSDPを渡したらACPICAの初期化は通った #liva_notebook"
- Livaさんのツイート: "最近調べてた事。q35とhpetはOVMFのサポート対象外っぽいふいんき https://t.co/xBzr20fhZW #liva_notebook"
- Livaさんのツイート: "biosベースでmultiboot kernelを起動すると、grubでgfxpayload=keepにしてもフレームバッファにならないの、multibootヘッダの設定が必須だったっぽい https://t.co/VUe2rLqzRP #liva_notebook"
- boot - How do I force GRUB to keep video mode after switching to the OS? - Super User
- Livaさんのツイート: "multiboot2 header tagは8バイトアラインというのを読み落として嵌った。ちゃんとgrubのソースを読めばもう少し早く見つけられたような #liva_notebook"
- Livaさんのツイート: "新マシンで動作検証した結果、見つけた新しいバグ。PCIの初期化をACPICAの初期化後にやろうとすると、ACPICAがPCIを叩いて死ぬっていう。 #liva_notebook"
- Livaさんのツイート: "でも、デバイスの初期化のためにはACPICAの関数叩いたりするからなぁ。上手く解決しないといけない。PCIバスだけ先に初期化するのもなぁ #liva_notebook"
- Livaさんのツイート: "おかしいな。qemuをアップデートしてもさっきまではACPIのHPETエントリが出てこなかったのに、なぜか突然出てきた #liva_notebook"
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています: 「ACPI machine languageの文法に現れる DefFieldっていう非終端記号が定義されてるだけで使われてないように見えるんだがどういうことだってばよ https://t.co/1mg03ffk7i」 / Twitter
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています: 「たぶんだけど,NamedObjの定義が欠落してる気がする.仕様書の文脈というか流れ的に. https://t.co/rYza6WBsig」 / Twitter
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています: 「AMLで記述されたメソッド呼び出しの構文解析で定義済みメソッドは問題なく解析できるんだが未定義のメソッドが現れることもあって,引数の個数がわからないんだが直後のバイト列の解析で矛盾が生じたら直前のメソッド呼び出しにおける引数の個数を追加するというアドホックな解決法になってしまってる」 / Twitter
- The ACPI Component Architecture Project
- FadisさんはTwitterを使っています 「Linux 5.4から追加されたkernel lockdownは有効にするとrootであってもユーザ空間からカーネルの振る舞いを変えるような操作が拒否されるようになる。kernel lockdownが有効な場合攻撃者がroot権限を手に入れた状況でも、カーネルが提供するセキュリティの為の仕組みが正常に機能する事が期待できる」 / Twitter
- FadisさんはTwitterを使っています 「ところがこのlockdownをユーザ空間から無効化する方法が見つかった。ConfigFSはACPI tableを書き換える機能を提供しているが、ACPIのMethodは任意のメモリに書ける為、kernel lockdownを無効にできる。現在はlockdown中はACPI tableを変更できなくする修正が入っている https://t.co/PzwQx4R2eq」 / Twitter
- Another Attack Vector Uncovered For Bypassing Linux Lockdown Via ACPI Tables - Phoronix
- FadisさんはTwitterを使っています 「修正がわかりやすすぎてウケる https://t.co/rY04RW16et」 / Twitter
- [PATCH] acpi: disallow loading configfs acpi tables when locked down - Jason A. Donenfeld
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「こんにち「グリーンな」環境を使うことはますます重要になっているが、ソフトウェアの消費電力を測定するのは簡単ではない。ここではプロセッサ・OS・用途に応じた電力測定ツール (PowerGadget, PowerLog, PowerStat, PowerTOP, Perf, Nvidia-smi) の選び方を紹介する。 https://t.co/bnud3ZdTpD」 / Twitter
- Luís Cruz – Tools to Measure Software Energy Consumption from your Computer
- tanakmura🎯さんはTwitterを使っています 「ACPIは、コアごとの性能を示すテーブルを持ってるが、マザーボードによっては、オーバークロックするとこれが全てMAXになって、P coreもE coreも公平にスケジュールされてしまうらしい。 手元のマシンは…オーバークロックしてないのに全部MAXになってますね…おいGIGABYTEどうなってんのや?」 / Twitter
PCIe
LPC
- Low Pin Count - Wikipedia
- Low Pin Count - Wikipedia
- Wayback Machine
Active State Power Management
- Active State Power Management - Wikipedia
- 3.7. Active-State Power Management
- AR# 36325: PCI Express のデザイン アシスタント - ASPM をオフにする方法
- MXI Express を使用する際に Windows がフリーズします - National Instruments
- 最新Red Hat Enterprise Linux 6.0の全貌 - アイドル時の消費電力を20%削減:ITpro
- 【短期集中連載】大原雄介の最新インターフェイス動向
PC Watch
- 【イベントレポート】【PCI-SIG Developers Conference 2010レポート】 PCIe Specificationの詳細 - PC Watch
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- ストレージクラスメモリにも対応した次世代インターコネクトの業界標準化団体が発足 ~AMD、ARM、Dell EMC、HPE、IBM、Micron、Samsungなどが参加 - PC Watch
OSDev
- PCI - OSDev Wiki
- OSDev.org • View topic - ACPICA does not return PCI devices
- OSDev.org • View topic - PCI enumeration - do you cache the device list?
スライド
- Interrupt Affinityについて
- Interrupts on xv6
割り込み
- RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから - 酒日記 はてな支店
- デュアルソケット・ザ・ワールド Dual Socket な PC の割り込みに付いて
- Linux / x86_64の割り込み処理 第2回 | VA Linux Systems Japan株式会社
- Linux / x86_64の割り込み処理 第4回| VA Linux Systems Japan株式会社
- Interrupts
- 日記 (2015 年 2 月上旬)
シャットダウン
- FadisさんはTwitterを使っています 「GoogleがLinuxのデバイスドライバがPCIeデバイスの片付けを非同期でできるようにする変更を提案している。デバイスドライバはシャットダウン直前に行う片付けのコールバックをセットすることができるが、従来APIの制約から同一バス上のデバイスの停止は順番に行われていた https://t.co/I5xWx2AoTJ」 / Twitter
- Google Has A Problem With Linux Server Reboots Too Slow Due To Too Many NVMe Drives - Phoronix
- FadisさんはTwitterを使っています 「NVMeストレージはI/O要求が残っていない状態でもコントローラが処理をしている可能性がある為、コントローラにシャットダウンを通知して、それに対する応答が返ってきてからホストを落とすのが行儀の良いシャットダウン手順とされている。この待ち時間はGoogleが実験した環境で4〜5秒程度らしい」 / Twitter
- FadisさんはTwitterを使っています 「NVMeストレージをPCI-Expressに大量に繋いでいるホストでは、これらのデバイスのシャットダウンを順番に行っていく為、rebootを開始してから実際にrebootするまでの時間が線形に伸びていく。結果としてrebootに1分以上かかるホストが誕生したらしい。」 / Twitter
- FadisさんはTwitterを使っています 「提案では従来のシャットダウン時のコールバックshutdownとは別にshutdown_preとshutdown_postを生やす。shutdown_preでデバイスにシャットダウンを通知してshutdown_postで完了を確認する事で複数のデバイスのシャットダウンを同時に進められる。shutdownだけを使うドライバは従来通りの動きをする」 / Twitter
@syuu1228
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 付属資料 最近のPCアーキテクチャにおける割り込みルーティングの仕組み
- howto_implement_hypervisor/part4.md at master · syuu1228/howto_implement_hypervisor
- part4_5.pdf
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第4回 I/O仮想化「割り込み編・その1」
Twitter
PCI
- Livaさんのツイート: "今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook"
- Livaさんのツイート: "今回はE1000ドライバがdeassertしてないような気がしている #liva_notebook"
- Livaさんのツイート: "PCI割り込みの件は、FreeBSD互換レイヤでのithreadの実装ミス(ハンドラ内でEOIを発行しない)なのだけど、これどうやって修正すればよいんだ。。。 #liva_notebook"
- Livaさんのツイート: "なるほど、これか https://t.co/5Dtdf36c6w #liva_notebook"
- Livaさんのツイート: "pre_ithread等はintr_event_create()で登録されてて、x86だとここ https://t.co/NvTisY7eWs #liva_notebook"
- Livaさんのツイート: "このコードから分かるのは、filter処理後にAPICにEOIを投げる。そしてithread処理前にAPICの該当エントリをdisableし、処理終了後に最有効化する。なるほど、たしかにこれなら上手く動くわ。 #liva_notebook"
- Livaさんのツイート: "IDT登録周りの関数の設計変更が必要になったけど、とりあえずFreeBSD互換ドライバでもAPICへのacknowledgeができるようになり、interrupt stormはなくなった。めでたしめでたし #liva_notebook"
PDA
- Fadisさんのツイート: ". @omasanori さんの「Portable Driver Architecture (PDA) でユーザ空間PCIデバイスドライバ」が始まります #kernelvm"
- Fadisさんのツイート: "「ring0でデバイスドライバをやっても新規性がない」 #kernelvm"
- Fadisさんのツイート: "ユーザ空間でドライバを動かすことには カーネルを小さく保つ、ドライバが死んだ時の影響を限定できる、ユーザ空間の方がAPI安定性が高くドライバの再利用性が高まる、etc etc #kernelvm"
- Fadisさんのツイート: "ユーザ空間PCIデバイスドライバを作るためにカーネルがユーザ空間に提供しなければならないもの: 割り込みハンドリング、デバイスが増えた減ったの管理、デバイスに対する入出力を行う仕組み #kernelvm"
- Fadisさんのツイート: "Portable Driver Architecture: 高速なPCIデバイス(Infinibandなど)のドライバをユーザ空間で書く為のC言語で書かれたAPIを提供する #kernelvm"
- Fadisさんのツイート: "ペイロードが小さいとどうしてもユーザ空間とカーネル空間を行き来するオーバーヘッドによって性能が落ちるが、ペイロードが大きい場合カーネルドライバと比較して遜色ない性能が出る、と #kernelvm"
- Fadisさんのツイート: "「カーネル/VMの中でもネットワーク系の方にはこのDPDKというのは衆知の物のようなのですが」 #kernelvm"
- Fadisさんのツイート: "DPDKはネットワーク専用に実装されているためネットワーク処理のある程度のレベルまでをDPDKでやってくれるが、ネットワーク処理以外に応用ができない。PDAはそうした処理が用意されていないが汎用的に使うことができる #kernelvm"
- Fadisさんのツイート: "PDAではもともとLinuxカーネルにあるuio_pci_genericとは別にuio_pci_dmaを実装している。uio_pci_dmaはgenericと比べて明らかにソースコードが大きい → メモリ管理のため #kernelvm"
- Fadisさんのツイート: "PCIデバイスとのデータ転送にDMAを使いたい → ユーザ空間で確保したメモリはスワップアウトするし不連続なメモリが割り当てられる可能性もありデバイスからのDMAで上手く書けない。NUMA環境ではDMAするメモリとPICデバイスがソケットを跨いで別のプロセッサの配下に置かれてしま… https://t.co/xTjdlmYQFo"
- Fadisさんのツイート: "uio_pci_dmaではカーネル側でDMAするのに都合が良いメモリの確保を行う #kernelvm"
- 凍ってない方のアカウントさんのツイート: "”uio_pci_generic only supports legacy interrupts so it is not usable with SR-IOV and virtual hosts which require MSI/MSI-X interrupts.”… https://t.co/1Uyk3w9r5g"
- Fadisさんのツイート: "Wrap-mapping: 同じバッファを2連続でアドレス空間にマップする → バッファをリングバッファとして使う場合に境界チェックを減らせる #kernelvm"
- 凍ってない方のアカウントさんのツイート: "あ、はい、uio_pci_dmaもIOMMUやろうとしてるっぽいね、なんか被ってるね https://t.co/9A5CqhKdCH #kernelvm"
- Fadisさんのツイート: "pdaのオリジナルは https://t.co/6kJ3QmpuBr だけど、最近のカーネルで動かなくて、CERNが公開しているfork https://t.co/CsfCEaujkQ が最新のカーネルで動く #kernelvm"
IOMMU
- とみながたけひろさんはTwitterを使っています 「xboxについてのMSの発表みると、そんなことは百年前から対策済みだというのがわかる(IOMMU使う) https://t.co/ISiHcMYkFz」 / Twitter
- 本の虫: 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない
- とみながたけひろさんはTwitterを使っています 「「普通のPC/サーバのユーザは善意だと考えてセキュリティを設計するが、俺たちは技術的に改造が無理なカスタムのメインSoC以外は全部改造されると思って作る」というのを話しているのだけど、これは国なりなんなりにスマフォ奪取されて解析される、みたいなケースの対策も同じ感じなのだろうなと思った」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ちゃんと確認したわけじゃないけど、聞く話では高級スマフォではFLASHメモリがNVMe接続だそうで、だとするとPCIeがSoCから出ていることになる。物理攻撃するならこのへんなんだろうな。あと最近のWiFi6とかも爆速だから、昔みたいにSDIOとかでは辛そうだし、ここも頑張ればいぢわるできそう」 / Twitter
- FadisさんはTwitterを使っています 「XBOXもXBOX360もハードウェアに対するインジェクションでハックされてきた事を思うと重みがある」 / Twitter
- 5/1 自作OSもくもく会さんのツイート: "インテルのチップセットのデータシートに書いてあった。TOLUD (Top of Low Usable DRAM)というレジスタに設定されたアドレスから4GBまでがPCIバスへのアクセスとなるらしい。BIOSが物理メモリ量を調べて適切にセットしてくれるとのこと。"
- 5/1 自作OSもくもく会さんのツイート: "PCIホストブリッジだけはコンフィグレーションレジスタを実装しなくていいことになってるんだけど、その場合Vendor IDとかはどう見えるの?"
- Livaさんのツイート: "PCIのlegacyな割り込みを実装するにはACPICAまで実装する必要があった"
- Kentaro Ebisawaさんのツイート: "PCI Express はデバイス使う分には楽なのだが、Root Complex とか各種 Capability を深堀しようとすると突然情報が少なくて困る。プロはチップベンダーから情報もらうんだろうけど、自分みたいな素人は公開ドキュメントだよりだからツライ。"
- ゆたかさん🐬さんのツイート: "CPUのコア数は多くあっても、実は遊んでいるコアがあり、すべてのコアを使いきるのは難しいです。 OSが古かったり、PCIeカードが割り込み負荷分散に未対応だったりすると、先頭のコアばかり使われることになり、宝の持ち腐れ。"
- ごごてぃさんのツイート: "あれ?WS2016からPCI-Eパススルーできるようなブログの記事があったけど、マジであるのか・・・ https://t.co/WbMGbKsVAL"
- Passing through devices to Hyper-V VMs by using discrete device assignment – Hey, Scripting Guy! Blog
- Fadisさんのツイート: "linux-4.20でデバイスドライバ同士がP2P DMAを利用する為のインターフェースが追加される見通しらしい。P2P DMAはPCI-Expressのデバイス間でホストのメモリを介さずに直接データを受け渡す仕組みで、GPUや100GbE、NVMe等の滝のようにデータを流すデバイスでの活用が期待される https://t.co/5iB1LYBVbE"
- PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0 - Phoronix
- Fadisさんのツイート: "ネットワークから受け取ったデータを加工してデータベースに書くまでの間にCPUは全くデータを見ていない未来が少しづつ近づいている("
- ryoさんはTwitterを使っています: 「queueの数とMSI-X vectorの数とCPUの数とlinkstatusをinterruptで見る/見ないの組み合わせをマジメに考え出すとめっちゃめんどくさいな。RX/TXを独立にするしないも考えだすとさらに倍率ドン」 / Twitter
- The Linux Kernel PCI
- https://www.kernel.org/doc/Documentation/acpi/enumeration.txt
- The PCI ID Repository
- PCI Vendor and Device Lists
- Re: Missing ACPI PCI devices in acpi_pcidev_scan
- Does PCIe hotplug actually work in practice? - Electrical Engineering Stack Exchange
- PCI Express – Raphine Project<サイト製作中>
- PCのメモリをいじったらPCIE Bus errorになってrebootできなくなった時 - yamaguchi.txt
- PCI Confguration space access methods
- PCI Memo · osdev-jp/osdev-jp.github.io Wiki
- PCI Express DIY hacking toolkit | Firmware Security
- まつうさんさんはTwitterを使っています 「PCI ExpressからDMAを使ってメモリ上のデータをぶっこ抜き。悪用しか思いつかないけど悪用したらあかんぞ! / “GitHub - ufrisk/pcileech: Direct Memory Access (DMA) Attack Software” https://t.co/nTj59Ev6tb」 / Twitter
- ufrisk/pcileech: Direct Memory Access (DMA) Attack Software
- 日記 (2018 年 11 月中旬)
- 日記 (2018 年 11 月下旬)
- PCIE スニファ windows - Google 検索
- Specifications | PCI-SIG
- Intel PCH I/Oポートフレキシビリティ機能について - DXR165の備忘録
- Ricerca Security: "I'll ask your body": SMBGhost pre-auth RCE abusing Direct Memory Access structs
- DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo
- 日記 (2020 年 6 月)
ASPM
- FadisさんはTwitterを使っています: 「LinuxにAlderLake(12世代Core)のIntel CPUとPolaris(RADEON RX 600シリーズとか)のAMD GPUが組み合わさっている場合にASPMを無効にするパッチが入りたがっている話。この組み合わせでASPMを使うとリンクの通信のサスペンドでホストがハングするらしい https://t.co/KUL0cOsO2K」 / Twitter
- Some Older AMD GPUs + Intel Alder Lake Is Causing ASPM Problems For Linux Users - Phoronix
- FadisさんはTwitterを使っています: 「Active State Power Management略してASPMはPCI-ExpressのデバイスとCPUの間でデータのやり取りが無い時にデバイスを止めずに通信だけを止めて消費電力を抑える機能。LinuxのAMD GPUドライバには1年前にASPMを積極的に使う為のパッチが入った。AlderLakeと最近のAMD GPUの組み合わせでは問題は起きない」 / Twitter
APIC
APIC Timer
Twitter
- Nerry さんのツイート: "moeでHPETやめてLAPICタイマーにしようとしたら結局スケジューラーでHPETの機能が必要になって困った😩"
- デダルス・ユメノさんのツイート: "HPETが必要な理由が気になります… "
- Nerry さんのツイート: "moeもプリエンプションそのものは他のOSと同様に数msのタイマー割り込みを契機としているが、スレッドごとのCPU使用率はもっと精度の高い(MHz単位の)タイマーで計測しているため"
- Nerry さんのツイート: "CPU使用率計算するのにタイマー割り込みだと遅すぎるんです… "
- Nerry さんのツイート: "そもそもそこまで高精度にCPU使用率計算する必要あるのか?🤔"
- Nerry さんのツイート: "LAPICタイマー全てのコアで実行したろ→カウンターがコア数分増えて時計めちゃくちゃ"
- Nerry さんのツイート: "IDTもコアごとに分離する必要がある・・・?🤔"
- デダルス・ユメノさんのツイート: "LAPICタイマーはポーリングでも時間計れますよね… "
- Nerry さんのツイート: "その発想はなかった… "
- APIC timer - OSDev Wiki
- Advanced Programmable Interrupt Controller - Wikipedia
- Page 378
- ハードウェアタイマー ‐ 通信用語の基礎知識
- hiboma/clocksource.md at master · hiboma/hiboma
- Local APIC timer interrupt - Linux Process Manager
- Local APICのタイマ割り込み周波数を表示するメッセージ - ZDNet Japan
- Linux source code: arch/x86/kernel/apic/apic.c (v3.4) - Bootlin
OSDev.org
- OSDev.org • View topic - Set IMCR to 0x1 to mask external interrupts?
- OSDev.org • View topic - Question about virtual wire mode
- Symmetric Multiprocessing - OSDev Wiki
- APIC - OSDev Wiki
- IOAPIC - OSDev Wiki
- interruptの意味 - 英和辞典 Weblio辞書
- Eiiti Wadaさんのツイート: "@iorivur 割り込みっていう日本語は... 1959年の夏, パラメトロン計算機の出力装置が直前の文字の処理を終えたことを走行中の計算機に知らせる方法はないかとの議論で割り込みのアイディアを得ました. そして最初の並列処理のプログラムを書きました. 難かしかったなぁ."
- パラメトロン計算機: 世界一周プログラム
- livaの雑記帳(2016/10) – Raphine Project<サイト製作中>
- Kimihiro Nonakaさんのツイート: "AMDのCPUはx2APICじゃなくてLAPICにAMD独自拡張のレジスタを追加してあるのか…(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "Ryzenもx2APICじゃないのか。Naplesのことを考えるとこっちも一緒に対応させたほうが良いかなぁ "ExtAPIC" | https://t.co/PNXuGP3XBv https://t.co/PNXuGP3XBv"
- I/O APICのEOIが動かない - livaの雑記帳
- Kimihiro Nonakaさんのツイート: "つーか、MSR_APICBASEのPHYSADDRってなんで32bitなの?(´・ω・`) これ書いたときは32bitだったの?"
- Kimihiro Nonakaさんのツイート: "AMDプラットフォームでioapic(4)が二つ見えるのってnorth bridgeとsouth bridgeにそれぞれあるからなんかなぁ…。north bridge側にあるのはAPIC IDが8bitに拡張されているっぽいけどsouth bridgeのはそうなっていない?"
- Livaさんのツイート: "LAPICのレジスタ読んでAPIC ID取得するのと、RDTSCP使うのとで何倍くらいの差が出るのか、調べてみたくなった"
- x2APICとinterrupt remapping - 睡分不足
HPET
- HPET - OSDev Wiki
- High Precision Event Timer - Wikipedia
- www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
- 本の虫: VistaでHPETが使われていることの確認
- NOKUBI Takatsugu野首貴嗣さんのツイート: "タイマー ACPI tableからHPETアドレスを取得、論理=>物理アドレスに変換 #kernelvm"
- Fadisさんのツイート: "HPETはLinuxだとデバイスファイルをmmapして読んでるけどACPIから直接読む #kernelvm"
- HPET – Raphine Project<サイト製作中>
- RyzenMaster and HPET can make your Ryzen computer run slower - PC World Australia
- 社会人でもOSを作りたいさんのツイート: "Celeron Nシリーズ(2015年頃のCPU)のデータシートによれば,HPETはIntel Legacy Blockに含まれている.HPETでさえレガシーデバイス扱いなのか…"
- 社会人でもOSを作りたいさんのツイート: "仕方ないのでLAPIC Timerで時間計測するようにした"
- The Linux Kernel Disabling HPET For Intel Coffee Lake - Phoronix
Video
libdisplay-info
- FadisさんはTwitterを使っています 「https://t.co/F8psUD88iQでEDIDパーサライブラリlibdisplay-infoの開発が始まった話。ディスプレイはホストに対して対応解像度等の情報を含むディスプレイの情報EDIDを送っている。送られてきたEDIDはLinuxのユーザ空間から読めるが、これまでパースは自力で行う必要があった https://t.co/C7RPO6l78J」 / Twitter
- libdisplay-info Started To Address The Wayland Fragmentation Around EDID/DisplayID - Phoronix
- FadisさんはTwitterを使っています 「EDIDはより高い解像度に対応したり、リフレッシュレートの種類が増えたり、新しい色空間をサポートしたり、HDRに対応したり、製品名を取れるようになったり等様々な理由で繰り返し拡張されてきた為、近代的なディスプレイが返すDisplayID拡張付の長い長いEDIDを正しくパースするのは意外とめんどくさい」 / Twitter
- FadisさんはTwitterを使っています 「WaylandコンポジタはEDIDを調べて最適なディスプレイの設定を選ぶ必要があるが、従来EDIDのパースはコンポジタ毎にバラバラに実装されていた。EDIDが複雑になるに従いこのパーサの実装がシャレにならなくなってきたのでコンポジタ非依存の共通のパーサライブラリを作ろう、というのがlibdisplay-info」 / Twitter
- FadisさんはTwitterを使っています 「このライブラリの開発は始まったばかりで、現時点でgitリポジトリに置かれているのはLICENSEとREADMEだけ https://t.co/16FphPojab」 / Twitter
- Simon Ser / libdisplay-info · GitLab
- https://www.kernel.org/doc/Documentation/acpi/video_extension.txt
- JF: Linux Kernel 2.6 Documentation: video_extension.txt
- Extended Display Identification Data - Wikipedia, the free encyclopedia
- VESA DDC(EDID)ってなんだ? ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
- VGA (VESA DDC) - HwB
- 用語解説
- Intel Processor Graphics 調査メモ - DXR165の備忘録
- acrn-hypervisor/hld-APL_GVT-g.rst at master · projectacrn/acrn-hypervisor
- Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
- Intel graphics
- マルチディスプレイのまとめスタイル修正: Intel IGP
- メモリ セグメントへの仮想アドレスのマッピング - Windows drivers | Microsoft Docs
- メモリーエラー | PhoenixKnight
- とみながたけひろさんはTwitterを使っています 「VGAにあるI2Cという話題で思い出したけど、EDIDのチェックサム、ひどくない? I2Cがどっちかに張り付いて、全部0xFFとか0x00になっても、チェックサムは255byteごとに1byteなので、どっちもエラー検出できないっていう。まあ0張り付きはあきらめるにしても、1は検出できるようにしてほしかった…」 / Twitter
- HDMI探検隊
- FadisさんはTwitterを使っています 「DDC/CI: 音量や輝度の操作 EDID: ディスプレイが表示できる解像度などの情報をとる SCDC: ディスプレイの設定を読み取るなどなどいろんな通信がHDMI上で行われている #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「CECには割と自由にパケットを投げられるが投げまくると普通に溢れて他の機器からのパケットが落ちるw #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「HDMI CECには認証がないためHDMIに繋がりさえすれば悪さができ、例えばリモコンからパスワード入力をしていたら読み取るとかハードウェアに負荷を変えるとか、輝度を高頻度で変える人間に対する攻撃が考えられる、と #kernelvm」 / Twitter
- 急性胃腸炎さんはTwitterを使っています 「本体では0から100までしかできない輝度設定にDDC/CIで255を書き込んでディスプレイを壊そうとするPoC 実際に壊れた(輝度が調節できなくなった) #BadHDMI ddcutil setvcp 0x10 0xff https://t.co/eKBJ4RQPMv」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「実は先月久しぶりに Modeline を直接指定したのだった… 1920x1200のディスプレイを繋いでいるのに、ディスプレイとPCの間にあるHDMI切替器がEDIDでその解像度を返してくれなくて、xrandr --newmode で無理矢理1920x1200のモードラインを突っ込んでみたら動いたという…(無理やりすぎ」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Xを立ち上げるために、モニターの水平、垂直同期の周波数、ビデオ信号帯域幅、カードのドットクロックを調べ、フレームサイズを計算.... って何でこんな苦行をしていたのだろうなとふと思ってしまった。」 / Twitter
- 最適な画面モードの設定で苦戦した話 - Qiita
Intel Sensor Hub
- Linux 4.9、これまでで最も大きなリリースに | マイナビニュース
- 2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに:Linux Daily Topics|gihyo.jp … 技術評論社
- 技術者見習いの独り言: VAIO Z(フリップモデル)に Arch Linux をいれる
- Presentation Title
- 【後藤弘茂のWeekly海外ニュース】センサーハブによって変わるモバイルとそれを統合するウェアラブル - PC Watch
- https://www.kernel.org/doc/Documentation/hid/intel-ish-hid.txt
- 4Gamer.net ― インテル,ソフトウェア開発者向に大規模イベントを開催。次世代Ultrabookは各種センサーを備え,Windows 8での利用が前提に
- DCMI-HI DCMI Host Interface Specification
Intel Smart Sound Technology
Sound Open Firmware
- The Linux FoundationがSound Open Firmwareプロジェクトを歓迎 - The Linux Foundation
- Sound Open Firmware
- thesofproject/sof: Sound Open Firmware
- SOF Project documentation — SOF Project 0.1 documentation
- Intel Architecture — SOF Project 0.1 documentation
- Supported Platforms — SOF Project 0.1 documentation
- Firmware - AlsaProject
- Home - Sound Open Firmware
- 2019年7月10日 Linux 5.2がリリース ―Sound Open Firmware,PSI機能の改善など:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「FedoraがSound Open Firmware(SOF)をデフォルトにするらしい。Intelは近年のSoCなCPUにSmart Sound Technologyと呼ばれるオーディオDSPを積んでいるが、従来このDSPで実行するファームウェアはclosedだった。SOFはこれを置き換える新しいオープンソースなファームウェア https://t.co/lFtMHeGQOx」 / Twitter
- Fedora Preparing To Switch To Intel's Modern "Sound Open Firmware" Audio Driver - Phoronix
- FadisさんはTwitterを使っています 「SOFの開発は主にIntelとGoogleによって勧められているが、Intel Smart Sound Technologyの実態はCadence Design Systems社のXtensaと呼ばれるDSPで、同様のDSPはNXPの一部のARM SoCでも採用されており、SOFはそれらのSoCもサポートしている」 / Twitter
- AMD が Sound Open Firmware プロジェクトに参加か | Coelacanth's Dream
- インテル® スマート・サウンド・テクノロジー
- 【イベントレポート】Intel、3D XPointベースのSSDやCurieの実シリコンをデモ ~IoTやウェアラブルに対する本気度を見せたクルザニッチ氏の基調講演詳報 - PC Watch
- Intel Smart Sound Technology Audio DSP Non-HD Audio ACPI High Level Design - PDF
- Intel,「Broadwell-U」ことノートPC向け第5世代Coreプロセッサ14製品を発表 - 4Gamer.net
- ノートPC向けなのにOCできるK付きもXeonも!第6世代Core(Skylake)が46種類増加 - 週刊アスキー
MIPI SoundWire
- 北森瓦版 - Intelチップセットのロードマップ―Z390は2018年下半期予定
- MIPI SoundWire
- ケイデンスが、業界初のMIPI SoundWire Controller IPソリューションを提供
- ケイデンス、業界初のMIPI SoundWire v1.1高品質オーディオソリューション向け設計IP、検証IPを提供
- Intel roadmap shows when to expect Coffee Lake-S (300 Series) - CPU - News - HEXUS.net
- MIPI SoundWire v1.1のIPコアと検証IP、Cadenceが提供 | 日経 xTECH(クロステック)
- 【特集】今年後半の薄型ノートやタブレットは音質が大きく向上(するかもしれない) - PC Watch
ヒンジセンサー
- FadisさんはTwitterを使っています 「IntelがLinuxカーネルにヒンジセンサーのドライバを追加している話。Intel曰く、ヒンジセンサーは「ラップトップで広く用いられている」センサーで、画面とキーボードのなす角、画面と水平面のなす角、キーボードと水平面のなす角を取得する事ができるらしい https://t.co/Qxtpgzq58X」 / Twitter
- Intel Has A New Driver For Linux 5.12: Reporting Your Laptop's Hinge/Keyboard Angle - Phoronix
- FadisさんはTwitterを使っています 「ヒンジセンサーはこの手の雑多なセンサーが押し込まれているLinuxのIndustrial I/Oデバイスの一種として扱われ、sysfsから簡単に3つの値を取得する事ができる」 / Twitter
タッチパッド
- Synaptics タッチパッド - ArchWiki
- libinput - ArchWiki
- Linuxでタッチパッドのスクロール機能を使うには - @IT
- タッチパッド - Wikipedia
- Touchpad - Wikipedia
- Synaptics TouchPad Interfacing Guide
- 2.1. ALPS Touchpad Protocol — The Linux Kernel documentation
- paul_ps2emu.pdf
- psm(4)
- なかのん&マジックさんのツイート: "中クリックとAlt+Enterでタブに開くという共通動作を知らない人も何人か見かけた。"
- なかのん&マジックさんのツイート: "@nyoro_712 macOSのtrackpadだとどうしようもないんですけど、大半のWindows PCについてるSynapticsのタッチパッドだと、3本指タップを中クリックに設定できるんですよね。ちなみに、後者の場合はブックマークの展開先は既に設定に存在しています(browser.tabs.l… https://t.co/40vmdQqRku"
- なかのん&マジックさんのツイート: "@nyoro_712 無さそうなのと、特にバグとして報告もされていないので、需要が無いのかもですね。"
- なかのん&マジックさんのツイート: "@nyoro_712 おそらく、historyはGUIで探すのが非効率的なので、URLバーからタイトルやURLで探してる人が多いんじゃないかという気がします。その場合、Alt+Enterで済みますから。"
- なかのん&マジックさんのツイート: "@nyoro_712 一応、Firefox 3以降は、「URLバーでアクセスしたいページをbookmarkとhistoryの両方から検索すれば良い。そのために、180日分historyを残し、消したく無いものには☆を付けてもらってブックマークの未整理フォルダに突っ込んでおいて消えないようにしておこう」… https://t.co/h1kX1XHNwL"
- なかのん&マジックさんのツイート: "@nyoro_712 Firefox 2開発時には新しい使い方を押しつけようとしたんですが、それは反発が大きかったので一旦取り下げられ、Firefox 3で、今までの使い方もできるけど、新しいURLバー中心の動作もできるようになりました。私もブックマークツールバーを多用しつつ、URLバーも使い、用途に… https://t.co/Wo5XYneFk9"
マウス
- PS/2仕様
- ardionoにPS/2マウスを接続する | ものづくりとプログラミング日記
- Arduino Playground - Ps2mouse
- moused(8) FreeBSDドキュメントJMan
- PS/2 Mouse Interfacing
- "8042" PS/2 Controller - OSDev Wiki
キーボード
- キーボード コントローラ(KBC)
- はりぼてOSをUEFIで起動する/4日目 - ねりりんと借り初めのものがたり
- PORTABOOK - ねりりんと借り初めのものがたり
- アラビア語キー配列 - Wikipedia
- Keyboard layout - Wikipedia
- IBM PC keyboard - Wikipedia
- Scancode - Wikipedia
- スキャンコード - Wikipedia
- キー配列 - Wikipedia
- Altキー - Wikipedia
- AltGr key - Wikipedia
- QWERTZ配列 - Wikipedia
- The PS/2 Keyboard Interface
- The PS/2 Mouse/Keyboard Protocol
リセット
- ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- Nerry さんのツイート: "再起動と電源切断をUEFI RT ResetSystem API呼び出す方法から ACPI の提供するサービスに移行してる最中だけど、一部環境(qemu)でACPIリセット対応してない機種がある。 リセットレジスタはオプショナルのようだからこれでも正しい動作な気はするが・・・"
- Nerry さんのツイート: "そもそもIOポートでリセットって一体何通りの方法があるんだ?🤔 ACPIのリセットポートはOADGに書いてるポートとかと全然違うんだが"
- Nerry さんのツイート: "確か普通のPC/ATには比較的古い機種で使える遅いリセットと比較的新しい機種で使える速いリセットが何種類かあって、それの正しい呼び出し順番を昔どっかで見た気がする。 ACPIリセットレジスタはそれらとまた別のポート。"
- Nerry さんのツイート: "ACPIリセットポートはCF9がよく使われてるようだがこのIOポートってPCIコンフィグレーションと被ってないか?"
- 市川 真一さんのツイート: "CF8 をダブルワード・アクセスする場合に PCI_ADDRESS レジスタに対する R/W になるので、CF9 にバイト・アクセスする場合には PCI コンフィグレーションとは関係なく使えると思います… "
TPM
- TPM の推奨事項 (Windows 10) | Microsoft Docs
- TPM 2.0 Library Specification | Trusted Computing Group
- 1
- TCG Opal 2.0 - Technology - Apacer for Industrial - The most reliable storage and memory
- TPM 1.2と2.0の機能の比較 | Dell 日本
- Trusted Platform Module - Wikipedia
- 今夏からWindows 10 PCはTPM 2.0搭載が必須に - PC Watch
- 松本 泰さんはTwitterを使っています 「MSのVirtual TPMが、FIPS140-2 取得 https://t.co/TDdMR96Xv7 これ、ゆりか先生の プラットフォームセキュリティin Windows ブートタイム保護 概要編 https://t.co/JqzQ7NgJPv 一緒に見ると、理解が深まると思うよ。」 / Twitter
- 140sp3690.pdf
- プラットフォームセキュリティin Windows ブートタイム保護 概要編
- suzakiさんはTwitterを使っています 「メモ。 TPM 1.2と2.0の機能の比較 https://t.co/U4BEehjS8N TPMで使う暗号アルゴリズムの一覧が便利。」 / Twitter
- TPM 1.2と2.0の機能の比較 | Dell 日本
- TPM2.0は”なにもの”で、どこで(何で)対応するのか?: なんとなく綴ってみた
FIDO
WebAuthn(FIDO2)
- パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey
- Web Authentication: An API for accessing Public Key Credentials Level 1
- FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
- パスワード依存脱却へ一歩前進、次世代Web認証「WebAuthn」が勧告候補に | マイナビニュース
- Web Authentication API で FIDO U2F(YubiKey) 認証 | blog.jxck.io
- FirefoxがWeb Authentication APIを導入
- マイクロソフト、WebAuthnをEdgeに実装。パスワード不要、生体認証やPINでWebサイトへログイン可能に。2018年秋のWindows 10アップデートで - Publickey
- WebAuthn demo
- Chrome 70から、WebAuthnでMacのTouchIDとAndroidの指紋認証がデフォルトで利用可能に。Webサイトへのログインもタッチで - Publickey
- Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に - Publickey
- IdM実験室: Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す
- Eiji Kitamura / えーじさんのツイート: "Chrome 70 の新機能 - Windows でのデスクトップ PWA に対応、WebAuthn での指紋認証、名前付き Worker など https://t.co/9tp9JGBaSj"
- Web Authentication: An API for accessing Public Key Credentials Level 1
- FIDO Alliance FIDO2 Project - FIDO Alliance
- 指紋認証でヤフーへログイン可能に、FIDO2方式での認証に各サービスが対応 - INTERNET Watch
- 「FIDO」で“パスワードレス時代”到来か? ヤフーと三菱UFJに続きLINEも導入 - INTERNET Watch
- Client to Authenticator Protocol (CTAP)
- WebAuthnに対応したSafari Technology Preview 71、アップルがリリース - Publickey
- [WIP]WebAuthnのためのnavigator.credentials.create仕様読解 - murak.me
- WebAuthn @ DroidKaigi 2019 - Speaker Deck
- パスワードを不要にするFIDO2プロトコルに、Android 7以降の全デバイスが適合。FIDOアライアンスが「AndroidがFIDO2認定取得」と発表 - Publickey
- W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins - FIDO Alliance
- パスワード不要のログイン方法「WebAuthn」がウェブ標準になる - GIGAZINE
- W3C、パスワードを不要にする「Web Authentication」(WebAuthn)を勧告として発表。Chrome、Firefox、Androidなど主要ブラウザですでに実装済み - Publickey
- dynamis (でゅなみす)さんのツイート: "Google AccountがいつまでもWeb Authnの標準仕様(Firefoxで実装済み)に対応しないから、非標準実装のWeb AuthnサポートもGoogleなど特定サイトだけを対象に入れようか議論してる。 なんともはや。。。何のための標準化なのかって気持ちになる。 https://t.co/tVIvU8Uw71"
- Backward-Compatibility FIDO U2F support shipping soon in Firefox | Mozilla Security Blog
- ASCII.jp:Windows 10+FIDO2デバイスでパスワード入力なしにMicrosoftアカウントにログイン (1/3)|Windows Info
- 第570回 セキュリティキーを使って,Ubuntuで多要素認証をしてみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- WebAuthnことはじめ - Mercari Engineering Blog
- パスワードレス認証WebAuthnの勘所と対応状況:新春特別企画|gihyo.jp … 技術評論社
- W3CとFIDO AllianceはセキュアでパスワードなしログインのWeb標準であるWebAuthnを最終化した
- Androidスマホが指紋認証でウェブサービスへのログインが可能に - GIGAZINE
- webauthn_study_ritou.pdf - Speaker Deck
Windows Hello
- IdM実験室: [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
- 【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [3] パスワードとさよなら!? Windows HelloとMicrosoft Passportで実現する世界|セキュリティ|IT製品の事例・解説記事
- パスワードは時代遅れです:Windows 10時代の新認証 「Windows Hello/Microsoft Passport」と「FIDO」を理解する (1/5) - ITmedia エンタープライズ
- Windows Hello を Web で使うための Web Authentication API (FIDO 2.0) について調べた - しばやん雑記
- FIDO in Windows10
- Windows Hello とは
- Windows Hello | Windows 10 | Microsoft
- Windows Hello の概要とセットアップ
- Windows Hello for Business (Windows 10) | Microsoft Docs
- Windows Hello for Business および Azure AD 経由でのパスワードを使用しない ID の認証 | Microsoft Docs
- Webでの生体認証をヤフーさまとともに - Windows Blog for JapanWindows Blog for Japan
- Windows 10 で FIDO 認証技術をサポート | Windows Blog for Japan
- Windows Helloが生体認証機能つき指輪「Token」に対応 - PC Watch
- Web Authentication API 紹介 (Windows Hello を使った Edge 開発) – Tsmatz
- MicrosoftアカウントにWindows Helloでログイン可能に ~EdgeがWebAuthn/FIDO2に対応 - PC Watch
- Windows Hello for Business (Windows 10) | Microsoft Docs
- Passwordless Web Authentication Support via Windows Hello | Mozilla Security Blog
- Windows 10搭載の生体認証「Windows Hello」がFIDO2認定を取得 ~Webブラウザでもパスワード不要でログイン可能に - PC Watch
News
- Googleアカウントの2段階認証で使用可能なUSBセキュリティキー「FIDO U2F Security Key」を使ってみました - GIGAZINE
- Googleアカウントのセキュリティを最大限に高めるUSBキー「FIDO U2F SECURITY KEY」 - ケータイ Watch
- GitHub、大容量ファイルストレージやFIDO U2F対応などの新サービス発表 | マイナビニュース
- Bluetooth Smartデバイスで二段階認証、FIDOの仕様に - ケータイ Watch
- MS、Windows 10にパスワード不要の認証技術「FIDO」を採用 - ITmedia エンタープライズ
- News & Trend - ポストパスワードの有力候補、ユーザー認証の新仕様「FIDO」が始動:ITpro
- 半径300メートルのIT:Googleの二段階認証を3400円のUSBキーで試す - ITmedia エンタープライズ
- News & Trend - 認証標準化団体が「FIDO 2.0」のWeb API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro
- パスワード管理ツールを一元化するオープンソースプロジェクト「Open YOLO」、DashlaneとGoogleが提携 -INTERNET Watch
- FIDO Alliance、新仕様「FIDO 1.1」とJapan WG設置を発表 -INTERNET Watch
- 【清水理史の「イニシャルB」】 入手をきっかけに2段階認証有効化大会を開催 YubicoのUSBセキュリティキー「YubiKey 4」 - INTERNET Watch
blog
- FIDO U2Fをサポートする十数個のサービス | YubiKey BLOG
- 煩雑なパスワード管理から解放してくれる「FIDO」とは? - THE ZERO/ONE
- アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog
- FIDO認証の進化とさらなる応用展開 (第3回FIDOアライアンス東京セミナー講演) - Yahoo! JAPAN Tech Blog
- 次世代認証プロトコルFIDOの動向 - Yahoo! JAPAN Tech Blog
スライド
- Tokbind-fido
- Idcon gomi-052715-pub
- slides_06.pdf
Qiita
- yubikey - Googleの二段階認証にセキュリティキーを使う - Qiita
Twitter
- Rockridgeさんのツイート: "Fx48:FIDO U2F v1.1 APIの初期実装が完了。security.webauth.u2fとsecurity.webauth.u2f_enable_softtokenの設定を有効化することで利用できる。参照:… https://t.co/EyDiiDX13q"
- Rockridgeさんのツイート: "FIDO U2FをベースにW3Cで策定中のWeb Authentication APIについて、MozillaがFirefoxに実装する意向を表明した。 / “Intent to implement and ship: Web …” https://t.co/MIwCwKP6gT"
- Rockridgeさんのツイート: "Fx57:FIDO U2F Security KeyとなるUSBヒューマンインターフェイスデバイス(HID)をサポート。2段階認証にUSBキーが使えるようになる。なお、ソフトウェアライブラリはRust言語製。参照:… https://t.co/ZJn007joFl"
- Rockridgeさんのツイート: "Firefox 60において、Googleアカウントの2段階認証に既に利用しているU2Fデバイスについては、Web Authentication APIに対応していなくてもサポートする方針。ただし、数年間に限定した話のようだ。 https://t.co/umRmiLkSoA"
- Rockridgeさんのツイート: "Fx59:FIDO U2Fデバイスによる認証が利用できるのは、HTTPS接続されたWebサイトのみ。 / “1247124 - Use [SecureContext] for FIDO U2F JS API” https://t.co/4Uhh9m66om"
- nov matakeさんのツイート: "“For example, all YubiKey 4 devices would have the same attestation certificate; or all Samsung Galaxy S8’s would have the same attestation certificate.” えっ、デバイスごとにちがう鍵埋めてんじゃなかったのか... https://t.co/00sRMfVy7i"
- FIDO Alliance FIDO TechNotes: The Truth about Attestation - FIDO Alliance
- 82さんのツイート: "デバイスごとに異なるキーペアに各社のCAやらがsignしてるはず→Attestation Certificate… "
- Yoshikazu Nojimaさんのツイート: "このページのKey generation scheme used by Yubico U2F devicesという図に、 Device Secretという物が載っていますが、これが「Credential IDから秘密鍵求める用の鍵」で、 こちらはデバイスごとに異なる鍵が焼き込まれている認識です。 https://t.co/1nin7eyHyt… https://t.co/IHK76N9pwA"
- Key generation
- 82さんのツイート: "仮に同じモデルで同じ Private Key つかっちゃうと、どのデバイスでも Credential ID から、Private Key 復元できちゃうからそれはないはず。Root Certificate が同じという意味では? それともキーペア生成時に、シリアルとか混ぜ込むのかな…。とりあえず記事読んでみます。… https://t.co/UEGGCSPaGw"
- nov matakeさんのツイート: "FIDO2-readyなYubiKey、もうあるしいいやと思ってたけど、もいっこもらっとけばよかったw… "
- Borisさんのツイート: "Today I learned that the way the Google FIDO u2f polyfill is written means the API defined at https://t.co/HqYHPOMwPo can't actually be shipped in non-Chrome browsers in that form because the polyfill will stomp on it with code that only works in Chrome."
- Web Authentication Working Group
- FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
- FIDO Alliance » Download Specifications
- FIDO Alliance » Metadata Service
- google/u2f-ref-code: U2F reference implementations
- FIDO U2F 準拠した対応デバイス『ePass FIDO』販売開始
- FIDO U2F対応認証オプション | CloudGate
- u2fval
- List of libraries
- U2F - FIDO Universal 2nd Factor Authentication | Yubico
- FIDO - マイクロソフト系技術情報 Wiki
- Google、Androidスマホを2段階認証のセキュリティキーにできる機能 - PC Watch
Windows
- システム内のすべてのデバイス ドライバーの列挙 - Win32 apps | Microsoft Docs
- インストール済みのデバイスの列挙 - Windows drivers | Microsoft Docs
- デバイスの列挙 - UWP applications | Microsoft Docs
- Windows Driver Kit documentation | Microsoft Docs
- 新しいハードウェアダッシュボード問い合わせ方法について
- Windowsドライバ開発を容易にするMicrosoft Driver Module Framework
blog
- DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
- linuxでRyzenの温度センサーを動くようにする - 覚書
- Ryzenを積んだマシンで発生した新たな問題とその解決 - 覚書
- x86-64 モードのプログラミングではスタックのアライメントに気を付けよう - uchan note
- ファッション自作OSマンさんのツイート: "分かった.CPUが割り込み発生時に自動でスタックを整列してくれるんだ.Intel SDM Vol.3 6.14.2 "In IA-32e mode, the RSP is aligned to a 16-byte boundary before pushing the stack frame.""
- IBM PC のタイマー事情 - 借り初めのひみつきち
- Intel HD Audioで音を奏でよう
- Intel HD Audioで音を奏でよう
- はりぼてOSにIntel HD Audioを実装してみる[随時追加] - matsumoto-lab’s diary
- 2014-12-13
- 今月の myos - 借り初めのひみつきち
Qiita
- 仮想シリアル(COM) ポートドライバ「com0com」によるシリアル通信 - Qiita
- Null-modem emulator (com0com) 日本語情報トップページ - OSDN
- Linuxの不揮発メモリ対応について - Qiita
Twitter
- Fadisさんのツイート: "linux-4.16から/dev/memがデフォルトでペリフェラルにしか読み書きできなくなる。この制限は2.6時代に実装されたが長らくデフォルトでオフだった。オフの場合rootはカーネルメモリを含むあらゆる場所を読み書きできる為、不必要に開けておくべきではないとされている https://t.co/2Z7Q0klUV8"
- Linux 4.16 Is Tightening Up Access To /dev/mem By Default - Phoronix
- まさみさんは語りたいさんのツイート: "Linux kernelのモジュールも、ファイル名にはハイフンが使えるけど、実際にロードしたあとはアンスコに変換される。ちょっと面倒。"
- Fadisさんのツイート: "I3Cってなんぞって思って調べたら、I2Cが遅すぎるけどSPIだとデバイス数に比例して配線増えて辛いからI2Cのようにデータ線とクロック線の2本で沢山のデバイスをぶら下げられて、最大半二重33Mbpsで通信できる次世代I2Cとして作られたバス規格、と…"
- Makoto Kato ︎︎さんのツイート: "98NX、登場が2年早すぎて、OSR2.1/2.5のバグに引っかかりまくった記憶しかない。大概ISA PnPのIRQ rebalanceでいろんなものが動かなくなってくパターンだったけど。rtermが安定しないからすぐデバッガがハングアップしちゃってデバッグつらいだけだった"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応ドライバやカーネルコード知らない人向けに補足すると、カーネル側はユーザ側がポインタ指定したデータを取り出すのに copy_from_user/copyin等を介して取り出す必要ありと。 (アドレス空間が違うので直接触ると落ちたり…ただし昔のUNIXは(トップハーフ側なら)直接触れるものが多かった印象)」 / Twitter
- FadisさんはTwitterを使っています 「OpenRGB-0.3がリリースされたらしい。OpenRGBは近年よくあるRGB LEDで光るPCパーツのベンダー毎の実装の違いを吸収し、統一された方法でネットワーク越しに色を変えられるようにするデーモン https://t.co/OhwZ8217N8」 / Twitter
- OpenRGB 0.3 Released For Open-Source RGB Lighting Control - Phoronix
- Microsoftは、アプリ「Stubs」とオプションのドライバで、Windows 11の難点の一部を取り除きました。|自作.com
- YurikaさんはTwitterを使っています 「📝 Windows でのドライバーのリバースエンジニアリングの手法まとめ。氏のノウハウ詰まってる。 https://t.co/joJADxTEGq」 / Twitter
- Windows Drivers Reverse Engineering Methodology - VoidSec
- FadisさんはTwitterを使っています 「RedhatがLinuxの入力デバイス(HID)サブシステムにeBPFを挟めるようにするパッチを投げている話。eBPFはカーネル空間で実行するコードをユーザ空間から安全に挿入する仕組みで、HIDにeBPFを挟む事でおかしい動きをするデバイスの為にドライバに対応を入れる必要がなくなる https://t.co/LJXFGYj28K」 / Twitter
- Red Hat Eyeing Innovative eBPF Uses For Linux's HID Subsystem - Phoronix
- FadisさんはTwitterを使っています 「入力デバイスは基本的に同じプロトコルを喋るデバイスを沢山のベンダーが作っている為、共通のプロトコルを喋っているようで一部で標準的でない動きをするデバイスが多数存在する。これらの違いに対応する為のコードをeBPFにしてカーネルから分離する事で、新しいデバイスに素早く対応できるようになる」 / Twitter
- 小崎 資広さんはTwitterを使っています: 「Rustの議論でよくドライバはカーネルコアと違ってめちゃ品質低くて、そこに脆弱性あるとカーネル全体が危険にさらされるって言われるけど、それが課題ならWinみたくユーザ空間でドライバ書くのが普通にしていくべきだよなあ。なんとなく」 / Twitter
- 小崎 資広さんはTwitterを使っています: 「ドライバの品質が低いのは事実だと思うよ。仕様を知らないハードに対するコードのレビューなんて出来ない、かつ、自分がもってないハードに興味ないの二重苦でレビューされないままコードがリリースされてしまうから、これは構造的な問題」 / Twitter
- dynamis (でゅなみす/レッサーパンダ)さんはTwitterを使っています: 「@kosaki55tea 信用できないが使わざるを得ないコードはユーザ空間やサンドボックスに分けるのが本来ですが、そのオーバーヘッドや対応が難しい場合、ポインタ問題を避けるためにRustを採用するとかWasmコンパイルする(FirefoxのRLBox)といった手法で安全確保する現実解を選ぶというのがトレンドなのかもと思った。」 / Twitter
- 新しいセキュリティ技術「RLBox」で武装した「Firefox 95」が正式リリース - 窓の杜
- 「Firefox 95」が正式登場! サイト分離と「RLBox」で守りを固める - ITmedia PC USER
- WebAssemblyを利用したFirefox 95の新しいサンドボックス技術「RLBox」 | TECH+(テックプラス)
- dynamis (でゅなみす/レッサーパンダ)さんはTwitterを使っています: 「@kosaki55tea 品質が低く信用出来ないと外部モジュールやライブラリの使用を完全排除するのは困難(あるいは非効率)で、影響緩和をしつつ利用可能にする技術の採用を最近よく見かける。ポインタ系以外としてはDenoとか。 OSSのエコシステムが次のステージに入りつつあるのだろうかなどと漠然と思う今日この頃。」 / Twitter
日時管理
その他
うるう秒
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「国際度量衡総会、うるう秒による時刻補正を2035年まで停止することに決定。米国などはうるう秒の完全な廃止を望んでいるが、ロシアは反対している。これはロシアの測位システムGLONASSが (GPSとは異なり) 依然としてうるう秒の補正を必要とするため。 https://t.co/7QsQQPwM85」 / Twitter
- The leap second’s time is up: world votes to stop pausing clocks
- ブログ: うるう秒が終わる: 時計を一時停止することを決議
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています: 「Natureの記事の翻訳。元情報を辿って行って、CGPM総会の議事録を発見しました。 https://t.co/mJz3zFMCrz 議事録見ると「うるう秒は2035年から中断」じゃなくて「今後100年はうるう秒調整をしないようにUT1-UTCの最大値の計画を2035年までに立てる」が正しそう。」 / Twitter
- 27th meeting of the CGPM (2022) - BIPM
- 「うるう秒」の廃止が決定、2035年までにうるう秒の挿入は停止されることに - GIGAZINE
- うるう秒が廃止される:2035年から時計の微調整が一時停止される理由を専門家が解説 | TEXAL
- うるう秒、2035年までに廃止へ - CNET Japan
- Kazuho OkuさんはTwitterを使っています: 「閏秒廃止、仕様を正しく実装していない勢が、自分たちのバグ修正をするかわりに仕様変更しようとしてるという点で好きじゃない。今後作られる装置を考えると全体最適ではあるのかもだけれど」 / Twitter
- \助けよや/😱さんはTwitterを使っています: 「閏秒の廃止。具体的には1分以内のずれを許容して数百年してズレた時に閏分として対処しようって方針。とても自然(今が細かく動かしすぎ)だけどロシアがシステム改修出来ない(技術的負債にコストかけたくない?)とかで反対してるらしい。今の情勢なら無視出来るかな。。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win10 Oct 2018 で追加された、FILETIME&SYSTEMTIMEうるう秒対応(LeapSecondInformation)は一度も使われることなく終わりそう。 (SYSTEMTIME だけでなく FILETIME にも leap入る点が time_t と違う) https://t.co/kQtc7YrYXr」 / Twitter
- Leap Seconds for the AppDev: What you should know - Microsoft Community Hub
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「うるう秒廃止、まだ最終決定ではないと。 https://t.co/xMYNNPa8kF」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「うるう秒廃止に1歩前進.正式にはITU-Rでの決定が必要なので、まだ油断できないと思う。前も直前でひっくり返ったからなぁ。 / “The leap second’s time is up: world votes to stop pausing clocks” https://t.co/lpjfXB04MJ」 / Twitter
- 日本標準時プロジェクト https/http を介してアクセスされる場合
- てくろぐ: インターネット・トリビア: インターネットと時刻
- 関数の時間計測 - in neuro
- システム障害なしにうるう秒を乗り切る技術の発達について|Rui Ueyama|note
- melancholic afternoon
- 無理数時計の数理@tcfmミートアップ
- 「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜
- クロックを用いた時間計測 - Qiita
- Web標準になった高分解能な計時レベル2
- ruby/zlibのテストが何もしていないのに失敗するようになった話 - @znz blog
- TimexとElixir標準日時①:現在日時取得(now)を比べる - Qiita
- 東大、スカイツリー展望台と地上で「相対性理論」検証 セシウム原子時計より100倍高精度の「光格子時計」で - ITmedia NEWS
- 演算子オーバーロード for 日付リテラル - yohhoyの日記
基礎
- CPU time - Wikipedia
- System time - Wikipedia
- Elapsed real time - Wikipedia
- wall time
- UNIXのwall-clock-time、user-cpu-time、およびsystem-cpu-timeとは何ですか?
- wall clock timeとCPU timeの測定 - ange1の日記
- real time/user CPU time/system CPU timeの違いをメモ – Siguniang's Blog
制度
国民の祝日
- 国民の祝日について - 内閣府
- 国民の祝日に関する法律 - Wikipedia
- 国民の祝日チェック
- なぎせ ゆうきさんはTwitterを使っています 「「祝日ってどこかから取ってこれないんですか?」 「日本の祝日って典拠は官報で発表される暦要項なんですよ。で、国が安定的にWeb API運用してくれてればいいんだけどされてなくて、年一で取ってくる安定的な依存先が難しいんですよ」 https://t.co/vkyym9YtDj」 / Twitter
- 令和4(2022)年暦要項の発表 | 国立天文台(NAOJ)
- こよみ用語解説 国民の祝日 - 国立天文台暦計算室
和暦
MS
- Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
- 新元号 改元の対応のプロセス – Japan New Era Name Support Blog
- 新元号への対応についてのアップデート – Japan New Era Name Support Blog
- ZZOさんのツイート: "マイクロソフトの.netは、これまでは西暦が入ったDateTime渡すと例えば"平成1年"という文字列を返してきたのに、新元号対応後は"平成元年"という文字列を返してくるように仕様変更される。行政提出用データやOCR帳票等に"元"を出してはいけないため調査と変更を急遽行っているという現状。"
- ASCII.jp:日本マイクロソフト平野社長、Windowsの「新元号」対応を説明
- 牟田口大介さんのツイート: "Windows Updateで元号一文字表記のフォーマットが変更されたのやばすぎ…。 レジストリで 平成_平_Heisei_H だったのが 平成_㍻_Heisei_H になったらしいよ。だれだこれにOKだしたの"
- Japanese Era Ligature Abbreviations – I'm not a Klingon ( )
- 新元号への対応について - Microsoft mscorp
- kumoha683さんのツイート: "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras] "2019 05 01"="令和_令_Reiwa_R" 追加した"
- 個人のお客様向け:マイクロソフト製品の新元号への対応に関する情報 - News Center Japan
- アプリケーションの新元号対応 - Windows apps | Microsoft Learn
- 日本マイクロソフト、新元号対応への同社の取り組みをまとめたページを新たに公開【やじうまWatch】 - INTERNET Watch
- 【令和】Microsoft の元号対応が迷走している件 - Qiita
- おごちゃん / 軽率の謗りを免れないさんのツイート: "だから、改元の日まで新元号を使っちゃいけないだってば。 新元号が使えるためには、システム日付が5/1になってないとダメってのは、正しい法律の実装。 とは言え、テストがなぁ...… "
- 楠 正憲さんのツイート: "誰も間に合うなんて約束してなかったはずだし、ギリギリで配信されても情シス部門がテストする時間がない訳で、急がない方がいいのでは? / “Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)” https://t.co/xbbZBv8zMW"
- Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)
- なかのん&マジックさんのツイート: "間に合わん方がオジサン達に良い薬な気もするな。 https://t.co/JYzns9i23j"
- 島鉄雄さんのツイート: "Windows がちゃんと令和対応してるか、プログラマならコードで確認したくなるよね? 元年の表示は自分で対応しないと駄目っぽい。 あと、Emacs26.2 だけどなんかインデントがおかしい...orz L"" という書き方に対応してないような気がする…ぐぬぬ… https://t.co/XUhcaKr62V"
- ASCII.jp:Windows 10の令和対応パッチによる変更点を詳しく見る (1/2)|Windows Info
- ASCII.jp:.NET Frameworkにおける新元号「令和」への対応 (1/2)|Windows Info
- ASCII.jp:改元絡みでWindows 10の電卓アプリがバグってました (1/2)|Windows Info
PC Watch
- 【Windows 7 ユーザーズ・ワークベンチ】Windowsの言語環境カスタマイズと国際対応 - PC Watch
- 2019年発の“新元号”はWindowsアップデートで対応 - PC Watch
- 改元されたあとの“平成31年”表記はどう扱うべき? ~日本マイクロソフトやAdobeが改元対応を説明 - PC Watch
- Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
- 新元号は“令和”に決定 - PC Watch
- ATOK、4月18日より「令和」に対応。日付入力支援なども - PC Watch
- 日本マイクロソフト、Windows/Officeは自動更新で「令和」に対応 - PC Watch
- 日本マイクロソフト、「令和」に対応したWindows更新プログラムを提供開始 ~GW中は専用問い合わせ窓口で対応 - PC Watch
窓の杜
- 日本マイクロソフト、来年の改元に備えたサポート情報ブログを開設 - 窓の杜
- 新元号への対応に関するアナウンスは6月が目標 ~マイクロソフトが最新情報を公開 - 窓の杜
- 改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信 - 窓の杜
- Microsoft、新元号の仮定義を削除するパッチをリリース ~「April 2018 Update」向け - 窓の杜
- 「Microsoft Silverlight」が新元号へ対応 - 窓の杜
- 2月のパッチでWindowsの元号処理や仮想マシンの復元に問題 ~Microsoftが修正版を公開 - 窓の杜
- 日本マイクロソフト、新元号対応に関連する情報を集約したWebページを公開 - 窓の杜
blog
- 山市良のえぬなんとかわーるど: Windows 10 ver 1803 の新元号仮定義(既に廃止)と e-Tax
- 新たな元号はJIS X 0213に入るのか | yasuokaの日記 | スラド
- 平成の次の新元号の文字列を取得するコード - にせねこメモ
- 新元号は「令和」に、施行は5月1日 | yasuokaの日記 | スラド
- 「令和」の典拠は日本古典なのか漢籍なのか | yasuokaの日記 | スラド
- The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era
- The Unicode Blog: Unicode コンソーシアムは「令和」をサポートする Unicode 12.1 を正式リリースしました
Twitter
- なかのん&マジックさんのツイート: "和が昭和とかぶったから、合成文字では読みにくそう。"
- Taku Kudoさんのツイート: "NF(K)Cでは、U+F9A8 は U+4EE4 に正規化されるみたい。それとは別に、U+32FFの正規化が追加されるのかな。"
- Kazuho Okuさんのツイート: "テストやってないのが問題なんじゃなくて、和暦対応に開発やコスト工数割かなきゃいけないのが問題なんですよ。ねんのため… "
- しげっと(オルタ)さんのツイート: ""和暦の一の位が「1」だったら「元」に変換するロジックを組み込んでいた。しかし、十の位を考慮していなかったため、ミスが生じた" 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル https://t.co/tuV69sH54p"
- 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル | 日経 xTECH(クロステック)
- Haruhiko Okumuraさんのツイート: "「令和」の「令」は U+F9A8 じゃなく U+4EE4 だと書かれている https://t.co/C3kx855Dk9"
- 小熊善之さんのツイート: "こんなん発出されてたんか……。: 新元号名で使用する文字コードについて(周知) https://t.co/ZPxfm3NkgU"
- 改元に伴う企業等の情報システム改修等への対応 (METI/経済産業省)
- 20190405_kaigen_code.pdf
- はむ弁護士さんのツイート: "海外の取引先は、日本がGWで長期休暇であることを伝えても「Golden week?なにそれ?」という感じで、日本側の事情を無視して休暇中にも連絡がくるのですが、今年は「Crown Princeが5月1日にNew Emperorに即位してReiwa Eraが始まるから10連休なんだ」と伝えると、わりと理解を示してくれる印象です。"
- 島鉄雄さんのツイート: "WSL(Ubuntu 18.04) の令和対応を完了! なんとかギリギリ間に合ったw /usr/share/i18n/locales/ja_JP を https://t.co/BJswKP6sBY の ja_JP で上書きして $ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 した。 strftime() の使い方の勉強にもなった。 (もしやる場合は自己責任でお願いします)… https://t.co/88PYrxGlFK"
- sourceware.org Git - glibc.git/commit
- 島鉄雄さんのツイート: "ちょっと捕捉 $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 で、デフォルトロケールを ja_JP.UTF-8 に変更済み https://t.co/BJswKP6sBY ここから ja_JP を落とすには、localedata/locales/ja_JP の横の blob をクリック→上の方にある raw をクリックで落とせる"
- malaさんはTwitterを使っています 「あと5年すると日本特有の昭和問題というものがあって、どういう話かというと暦に年号、つまり和暦を使用しているシステムで「延長昭和」とかいう狂った暦を採用しているシステムが年号3ケタに到達してしまうのでシステムが火を吹くというやつがある」 / Twitter
- The Unicode Blog: New Japanese Era
- https://www.unicode.org/L2/L2018/18220-u121planning.txt
- 平成の次、新元号のUnicodeコードポイントは「U+32FF」 | マイナビニュース
- NHK NEWS WEB|NHKのニュースサイト
- 新元号は「令和」 | NHKニュース
- 「令和」は「beautiful harmony」海外に説明へ | NHKニュース
- 振込予定日がなぜか「1989年」に、コンビニATMで不具合 | 日経 xTECH(クロステック)
- 「令和」対応の開発者向けiOS 12.3とmacOS Mojaveベータ版がリリース。しばらく一般公開版は「平成31年」 - Engadget 日本版
- 第567回 令和を言祝ぐ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Wataru NishimuraさんはTwitterを使っています 「年末調整や役所の手続きで「今って令和何年だっけ?」ってなるので、いい覚え方を探した。 西暦から令和を計算するときは 西暦 から れいわ(018)を引く って覚えやすいな。西暦2021年なら21-18で令和3年になる。平成も似たようなの無いかな。」 / Twitter
夏時間
Twitter
その他
- なかのん&マジックさんのツイート: "サマータイム批判してるツイートでも触れられてないけど、サマータイム導入したら、世界中の機器のアップデートが必要じゃないか?"
- Hiroyuki Nishimuraさんのツイート: "日本はサービス残業という違法労働が民間だけでなく、役所ですら起きているのに是正されないという点。 時計を切り替えても、人間の体内時計は、ずれたままなので、2時間の差は健康被害を生む可能性が高い点。 他国は1時間差です。 なので、夏時間導入は労働者に不利益な結果を生むとおいらは思います… https://t.co/tpWC1Z8NgK"
- 何者でもないおっさんさんのツイート: ""daylight saving time"でgoogle scholarで検索すると、 交通事故が増える、心筋梗塞が増える、睡眠時間が減る、仕事場での怪我が増える、エネルギー消費は意外に減らない(むしろ増える)等、ろくなのが出てこないw 前向きな論文は被引用数トップのほうではほとんどなし。 https://t.co/FVxC3ljl2Y"
- Haruhiko Okumuraさんのツイート: "この前,過去の気象を調べていて,日本時間1948-05-02 00:00でエラーになるので悩んだ。当時日本は夏時間があって,この時刻は存在しないのだった(1948-05-01 23:59の1分後は1948-05-02 01:00)"
- Shiro Kawaiさんのツイート: "(時計をいじるのではなく開始時刻を変える)夏時間冬時間、ってかすかに覚えがあるんだけどどこでだったかな。… "
- Tanaka Akiraさんのツイート: "国会議事録を夏時刻法で検索して眺めていると、この法案が通る前は学校や会社で夏と冬の出勤時刻を変えるのがあたりまえだった感じなのだが、いつのまに同じ時刻にするようになったのだろうか。"
- Kiichiro Yanashitaさんのツイート: "この記事、何がすごいってサマータイムをやろうと考える議員も、元号法のせいで平成31年と言わなければならない役人も、新元号を発表できない政府も、そのまま書く産経新聞もバカしかいない。日本の馬鹿を選り抜いた感。【東京五輪】酷暑対策でサマータイム導入へ https://t.co/WXOmjgo8pL"
- 水無月ばけらさんのツイート: "2年間だけの試験導入だとというなら「弊社のサービスはサマータイムに対応しません」が最良の選択肢であるように思えますし、実際そういうところが多数出てくるように思いますね。"
- 元茸さんのツイート: "サマータイムの件、「完全に同期された時計に従って動いている世界」を一切知らない人たちがその辺の時計をみんなが二時間ずらすだけぐらいの気持ちで思いつきをしゃべってるんだろうけど、そのレベルの視野しかない人達が重要な決定をする立場にいる怖さはもうちょっと認識しないとまずいかも"
- 及川卓也 / Takuya Oikawaさんのツイート: "サマータイムに関して、ITに詳しくない人たちが、そんなに対応が大変なものなのか。ITを多少知っている人たちであっても、ハードコードとかしているからでしょ。と言っているのを観測するにつれ、デプロイコストという認識がまだまだ薄いなと感じる。"
- 及川卓也 / Takuya Oikawaさんのツイート: "サマータイムをOSに適用するのも、NLS機能をちょっと直せば対応できるとしよう。だが、たとえそうだとしても、それをサマータイム対応が必要とされる機器すべてに適用するのがどれだけ大変か。もっと言うと果たして現実的なのか、ということへの認識が薄い。"
- 須藤玲司さんのツイート: "Time Change a ‘Mini-Y2K’ in Tech Terms https://t.co/JZ14ZvXPbk NYTのこちらの記事じゃ、2007年アメリカのサマータイム期間4週間延長に伴うシステム改修費用は、少なく見積もって3.5億ドルだったとしています。 法改正からたった2年での施行で、エンジニアは徹夜続きでふらふらだとか。"
- 須藤玲司さんのツイート: "繰り返しますが、アメリカのシステムは2007年時点ですでにサマータイムに完全対応してました。エンジニアも経営者も一般市民も、サマータイム対応のノウハウは世界最高です。 そのアメリカで、夏時間の開始日を早め終了日を遅らせる、たかがそれだけの微調整に、費用が3.5億ドル。ざっと400億円です。"
- 何があなたの都市ポップなさんのツイート: "サマータイム導入の影響を受けるコンピュータが省庁や一部の企業のものだけだと思ってないか? JST に触れてるコンピュータ全部やぞ、全部。お隣の国や地球の裏側の国にあるコンピュータにも影響あるんやぞ。なんならオリンピックに海外から来る選手や観客のスマートフォン一台一台も対象やぞ"
- りおりおすとさんのツイート: "タイムスタンプ付きでイベント管理しているようなプログラムがうるう秒やサマータイムを考慮してない場合、想定したイベント発生までビジーループでwaitしちゃう、なんて場合にですね…。 9:00から9:01まで待つつもりが、7:00から9:01まで待っちゃうわけですよ。死ぬわ。"
- りおりおすとさんのツイート: "実際、おかしくなったシステム、例えばCPUロードが100%になっちゃったJavaとか続出しただろ…。時計が遅れるのはまだ良いんだよ。時計が進むのはマジでやばい。"
- Kazuho Okuさんのツイート: "JJYは「日本標準時」を送出している以上、法律が標準時に対してオフセットを定める一般的な夏時間になるという前提において、一部メーカーの「世界時計機能だけおかしくなる」という説明は誤りでは? / “サマータイム導入で「電波時計が狂…” https://t.co/sSQHFucrzF"
- FUTATSUKI Yasuhitoさんのツイート: "FreeBSDの cron には -s ってのがあって、夏時間等でGMT offsetが変更になる場合の特別な取扱いをするかどうかをこれで決めるのだけれども、CentOS 7のcronでは -s は別のフラグに割り当てられていて特別な取り扱いが常に行われると。"
- FUTATSUKI Yasuhitoさんのツイート: "軽くcronにおけるオフセット変更時の挙動について見てみたけど、Vixie CronなFreeBSDとCentOS 7でそれぞれdefaultの挙動が違うということだけはわかった。(ほんとに中身をまともには読んでない:))"
- ymmtさんのツイート: "グループウェアのサマータイム対応はひとつ面白い問題があります。 会議で良く「毎週水曜日10時~11時」といった予定をいれることがあるのですが、この毎週10時というのが、サマータイム中か否かでタイムゾーンの異なる参加者間での調整が難しいことになるのです。"
- ymmtさんのツイート: "これに会議室予約を合わせて、ダブルブッキングをできないようにすることを考えるとさらに面倒なことになります。参加者・会議室・予約それぞれがどのタイムゾーンで予定をいれるべきか。 ひとつの完璧な正解というのはない問題です。"
- kinnekoさんのツイート: "サマータイム2年だけと思っているでしょうが、未来で過去のその月日を計算する時には必ず計算が必要になります。影響は未来永劫続くことになります。"
- Takehiro OHYAさんのツイート: "①「損害保険のように時刻が指定された契約や、公訴時効の成立時点などをどう扱うか。サマータイムの導入は、「1日=24時間」を前提とした契約や法制度が無数に存在する、日本社会というシステムをどのように“改修”するかという大仕事」と書いてあり、条文を見たこともないのだな感。"
- Takehiro OHYAさんのツイート: "②実のところ、期間計算について定めた民法139・140条、刑事訴訟法55条とも時間以下の計算と日以上の計算を分離している。具体的には、 ・時間単位の場合は即時起算(民139) ・日以上は初日不算入(0時スタートの場合を除く)(民140) なので、1日の時間数が変動しても期間計算に支障は生じない。"
- 高梨陣平さんのツイート: "豪でサマータイムが開始されたが、Apple Watchの第四世代にDST、Daylight Saving Timeの取扱にバグが存在、ブートを無限に繰り返す問題が発生中。 #自民党議員、見てる?… "
@tetsutalow
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "こんな認識なんですなあ世の中。ではあなたのスマホどうやって時間決めてるか。これサマータイム対応しようとするとOS更新がいるのですが、では来年までに皆さんスマホアップデートしてねといって、それできると思います?… "
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "「いまの時間」を表示するだけならそれでもいいのですがTZ表示関係は影響うけますし,スケジュール帳など「どこから夏時間になるか」情報を欲するアプリがスマホにはいっぱいあるんでTZ情報もつOS更新しないとまともに動かないです.… "
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "2時間ずらすなんてやってる国はないですよ.その上で,サマータイムをビットフラグで表してそれ見て1時間ずらすようにしてるシステムがいっぱいあるのですが.例えば電波時計の標準電波はサマータイムのフラグはありますが「何時間ずらすか」は未定義ですよ.… https://t.co/1SFFY4Z3NC"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー、本当に何も分かってない。今年決めて来年も無理だし、2年間だけとかまた戻す手間がかかる最悪の選択だ。大混乱だよ。今の情報機器の時間は竜頭をひねるようには変わらないんだぞ。 / “【東京五輪】酷暑対策でサマータイム導入へ 秋…” https://t.co/ssGVwequ65"
@mhiramat
- まさみさんは語りたいさんのツイート: "サマータイム導入した結果、自動的に国内に時差が発生し、自国にいながらにして時差ボケで調節できず、悲惨な結果に終わる日本代表の姿が見えるぞよ。"
- まさみさんは語りたいさんのツイート: "この仕組み自体が「全員馬鹿」と揶揄される現象なんだが・・・。… "
- satさんのツイート: "サマータイムとか言ってるのを見て関係者全員馬鹿かと思ってる人が多いようだけどそうじゃないと思っている。関係者のうちの多くは意味不明な施策だと百も承知で上に訴えかけているのだけれども、伝言リレーを繰り返すうちに「ナイスアイデア、ぜひやりましょう!」になってるだけかと"
- まさみさんは語りたいさんのツイート: "実際2時間の変更はめちゃくちゃ身体に来ますよ。多分平日眠くて仕事にならない人が続出して、その上で「睡眠不足になるのは自己管理が出来ていないからだ」って言い出す馬鹿が続出すると思う。いままで経験したことがない人が多いだろうし、過労死や老人の死亡割合も増加するだろう。"
- まさみさんは語りたいさんのツイート: "日本ってただでさえ極東の非常に中途半端なタイムゾーンに位置していて、他の地域との電話会議の設定が大変なんで、さらに2時間も時差を付けられると、多分まともな時間帯に電話会議すること自体が不可能になる。本当にするって言い始めたら、個人的に午前中に打ち合わせを入れるのをやめる。"
- lastline@オクトオバケさんのツイート: "酷暑対策にサマータイム導入って、午前中に限っては正解だが、それは午後に全てを押しつけることになるわけで。 気温のピークは1時から3時くらい。地面も温まるので、実質5時くらいまで暑い。それを2時間遅らせるってことは、帰宅時間とか夜はずっと暑いという。何が酷暑対策か。"
- まさみさんは語りたいさんのツイート: "サマータイム導入すると夜も熱くなるわけか。そして老人がバタバタ倒れたら、やっとオリンピックという敗戦を通じて、日本は再生できるかもしれないな。"
- まさみさんは語りたいさんのツイート: "うわー、よく考えるとこれは酷いぞ。サマータイムは通常初夏に切り替わるから、来年度からの導入を行う場合、5月の天皇退位=元号変更と大体あわさり、今からどうやったらいいかを検討してまとまるのが年末となると、影響を受けるシステム変更はもはや収集が付かないレベルに・・・。"
- まさみさんは語りたいさんのツイート: "サマータイム導入が31年度からだとすれば、元号変更も合わさり、サイバーテロを起こしやすくなるのは来年5月あたりからだと思われますね。… "
- まさみさんは語りたいさんのツイート: "サマータイムは感覚的には夜の時間も伸ばすことになるんだけど、何が起きるかと言うと、夜9時になっても空が明るい状態になる。そんな状態で小さい子供を寝かしつけられるか?生理現象として老人と子供はついていけないよ。"
- まさみさんは語りたいさんのツイート: "ただでさえ子供の寝不足・夜ふかしが問題になっているのに、暗くなってから寝かせて、朝暗いうちから起こして学校に行かせるなんてことをしたら、子供の学力以前に成長に影響することも懸念される。"
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyはサマータイム対応済みだが、万一、サマータイム導入が決定したら、導入に賛成した議員には「投票しない」つもり(笑) ---- 「サマータイム導入へ 秋の臨時国会で議員立法 31、32年限定」 https://t.co/ud9TWdlQ6y… https://t.co/e00X8H0NZX"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "日本で知っている人は少ないと思うが、サマータイム適用中のWindowsでは、サマータイムでないタイムスタンプを表示すると、Explorerとコマンドプロンプトで、時間表示が1時間ずれる豪快仕様。 cmd.exeは(DOS時代の互換性のため?)このAPIを使っている様子。 https://t.co/hY1nVKzeBY (解説参照)… https://t.co/0LUGqI2hCg"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FileTimeToLocalFileTime API 「夏時間が適用される季節では、変換対象の時刻が冬時間を指している場合でも、この関数は夏時間による調整分を考慮に入れます」"
@kazuho
- Kazuho Okuさんのツイート: "日本国内の一部だけ夏時間導入案について言うと、沖縄本島以東は夏時間導入、としない限り、UTC+zoneinfoで動いてるスマホとかパソコンとかも全滅するのかなw"
- Kazuho Okuさんのツイート: "zoneinfo を分割するような時間帯導入が過去事例があるのか気になりますね… "
- Kazuho Okuさんのツイート: "windowsもzoneinfoなのかしら"
- Kazuho Okuさんのツイート: "夏時間への移行は、ある標準時から別の標準時への変更(例: 東部標準時-5から東部夏時間-4への変更)として表現するんだよ。標準時のUTCに対するオフセットが変化するんじゃないよ #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "時刻間の差の計算は、とにかく同一の標準時に変換してから計算する。実務的にはUTCに変換して計算すればいい #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "一番問題になるのは「毎日午前9時」とかローカル時刻にひもづいている繰り返しイベント。夏時間を含む複数時間帯前提のプログラムだと、値がローカル時刻かを表すフラグと、ローカル時刻の場合はどの地点か(例: Asia/Tokyo)を表す属性をもってる #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "実務的には、ローカル時刻依存のイベントを増やすのは夏時間移行の問題を増やすだけなので、できるだけ多くの繰り返しイベントをUTCベースで設計して、窓口対応など人に関係する部分だけをローカル時刻連動にする #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "これ、こうするのは、ある標準時を採用している地域のうち、一部のみに夏時間があるケースがあるから。例えばオーストラリア東部時間(AEST)を採用してる4州のうち3州は夏時間(AEDT)に移行し、1州は夏の間もAESTを使い続ける #夏時間プログラミングの基本… https://t.co/nFZaIWQWl6"
- Kazuho Okuさんのツイート: "例えば東京時刻で2018/8/14 9:00AMから毎日10回繰り返すイベントはiCalendarでは "DTSTART;TZID=Asia/Tokyo:20180814T090000 RRULE:FREQ=DAILY;COUNT=10" のように表現されます。絶対値としてのタイムゾーンはでてこないことがわかるかと思います #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "#夏時間プログラミングの基本 を連ツイしたのは、第一に、OSやJVMなどが提供する夏時間サポートと異なる手法によるオレオレ手法によるサマータイム実装を考え、それを前提とした技術的妥当性を欠くサマータイムへの批判がいくつか見受けられたこと"
- Kazuho Okuさんのツイート: "第二に、日本人がサマータイムや複数時間帯の存在に無頓着なコードを書いた結果、国際化が困難になることがある点を踏まえ、一般的な多時間帯サポートがどのようになされるかコメントする意義はあるのではないか、という点からです"
- Kazuho Okuさんのツイート: "今後プログラムを設計する際、サマータイム機能を当初から入れることはしないとしても、後々OS等が提供する多時間帯及び夏時間サポートを使うことを想定しておくことは、多くの場合、損にはならないだろうと思います"
- Kazuho Okuさんのツイート: "PIMむけのウェブブラウザを書いていたのでカレンダー情報の交換フォーマットに多少知見があった程度のクラスタです"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "#夏時間プログラミングの基本 を見て思い出したが、FATのようにローカル時間で記録するファイルシステムがあり、NTFSとの差分コピー時に更新ファイルと誤認識される問題もあったり。 (なので、robocopy等は1時間の誤差を無視するオプション(/DST)が存在)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "robocopyの/DSTの動作は「1時間の誤差を無視する」なので、夏時間を2時間進める、というパターンには対応できないはず。"
- Kazuho Okuさんのツイート: "OS等の夏時間機能にのっかる最大のメリットは、いつ時間帯が切り替わるか(例:3月第2日曜日午前2時)を指定するデータベースを自分で設計管理更新しなくていい点。時間帯の導入廃止や切替時期が法律で変わるから、ハードコードするわけにはいかないんですよね #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "夏時間のある国でも、サーバは夏時間を適用せずに(あるいはUTCで)動かすのが一般的なのでは? 無理にサーバで夏時間使おうとするからおかしくなる / “CentOS7でJDTを試してみた – さくらインターネット研究所” https://t.co/wRw0pf1bHR"
- CentOS7でJDTを試してみた – さくらインターネット研究所
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Debian の cronは夏時間(DST)をどのように処理しているのか? これは時刻指定がワイルドカードかどうかによって異なる。時計が1時間進んだとき、とばされた時刻にあるジョブは実行されるが、1時間戻ったときは同じジョブが2度実行されないようになっている。 https://t.co/eur7xro9LB」 / Twitter
- How Debian Cron Handles DST Transitions – Healthchecks.io
- 夏時間 - Wikipedia
- 夏時間対応のタイムゾーンでJP1/AJS3を運用する
- SAP ERPでの日本のサマータイム対応について - SAPのすみっこ
- Ryosuke Enokiさんのツイート: "サマータイム導入の議論が再燃しているみたいだけど、以前元ボス(本間研一先生)が書いたこの文で、すでに結論は出ているように思う。 https://t.co/1JzeeUQ4Jv しかも2時間の位相前進はかなり無謀かと。得られる経済効果より、不眠による健康被害や事故などによる経済損失は甚大なものになるかと。"
- summertime_20120315.pdf
- 第1回 サマータイム延長で悲鳴を上げるシステム担当者たち:アキラの海外“デッドストックニュース”掘り起こし|gihyo.jp … 技術評論社
- 日本の法令における「一日」と「二十四時間」 | yasuokaの日記 | スラド
- サマータイム導入で「電波時計が狂う」? メーカーに聞いた - ITmedia NEWS
- 「サマータイム実施は不可能」スライドが話題 「経済被害が兆単位」「サイバーテロをお膳立て」立命大・上原教授が指摘 - ITmedia NEWS
- Shirouzu Hiroaki(白水啓章)さんのツイート: "サマータイムに限らず、時間がジャンプした場合のcronの挙動を分かり易く説明してあった。 https://t.co/ty7xPUjJ0k"
- cron の意外な落とし穴! - もろず blog
- Web JJY が夏時間に対応しました
- サマータイムの導入は簡単!なのか?可能なのか?メリットはあるのか? – yohgaki's blog
- 『Excelにタイムゾーンという概念がなく、サマータイムに対応しないということは』『これから未来永劫、時限サマータイムの2年間についての複雑な特別処理を仕込まないと、正しい集計ができなくなります』 - Togetter
- この一文で、自民党内のサマータイム導入推進派の方々の息の根を止めることが出来るかしら | 早川忠孝の一念発起・日々新たなり 通称「早川学校」
- 出生届と死亡届における夏時刻の表示方法 | yasuokaの日記 | スラド
- サマータイム導入には反対だが、サマータイム導入に必要なことを考えた - Qiita
- 欧州委員長、夏時間廃止の意向=460万件意見調査踏まえ-EU各国に提案へ:時事ドットコム
- サマータイムにうんざり、米国で廃止の動き | ナショナルジオグラフィック日本版サイト
- 欧州で最後の「冬時間」に、2021年に「夏時間」廃止で 写真1枚 国際ニュース:AFPBB News
- 「夏時間を恒久化する法案」が全会一致でアメリカ連邦議会上院を通過 - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アメリカさん、夏時間「廃止」と言わず「恒久化」と。 (Win32API上の夏時間は、常時ONになったりするんだろうか…?) GetTimeZoneInformation API: https://t.co/o1L8r3svwR ---- https://t.co/pgh4C22dAj」 / Twitter
- GetTimeZoneInformation function (timezoneapi.h) - Win32 apps | Microsoft Docs
- CNN.co.jp : 米上院、全米で夏時間を恒久化する法案を可決
- Kazuho OkuさんはTwitterを使っています 「夏時間、イギリスは最後まで残るんだろうな。UTCとズラすのはプライドあるだろうし、夏に夏時間だと幸せなくらいには高緯度だし #しらんけど」 / Twitter
- サマータイムで享受できる5つのメリットは? - GIGAZINE
- チリのサマータイム変更により不具合発生の恐れ。チリ国外でもチリにアクセスする場合等に影響。サポート中のすべてのWindowsが対象 | ニッチなPCゲーマーの環境構築Z
- ヨルダンの夏時間終了後の時間変更により不具合発生の恐れ。ヨルダンにアクセスする場合等に影響。サポート中のすべてのWindowsが対象 | ニッチなPCゲーマーの環境構築Z
昼休憩
- シエスタ - Wikipedia
- Shiro Kawaiさんのツイート: "暑さ対策というならサマータイムよりはシエスタ導入ではなかろうか。"
- 第63回 シエスタとるなら昼寝は短めに | ナショナルジオグラフィック日本版サイト
- シエスタ(昼寝)にも影響か。スペインがワーク・ライフ・バランス重視へ|クローズアップ海外ニュース
- スペインのタイムゾーン変更はいつから?
- スペイン時間がなくなる?日本との生活リズムや食事回数の違い | たびこふれ
- スペインの時差と現在時刻 - Time-j.net
- Current Local Time in Siesta Key, Florida, USA
- シエスタって何?シエスタは法律で禁止化へ~スペイン - NAVER まとめ
- スペインに根付く「シエスタ」のライフスタイルを変えようとする動きが活性化 - GIGAZINE
- サウジアラビアがついにグレゴリオ暦を採用、時代は「21世紀」へ - GIGAZINE
- ツェラーの公式 - Google 検索
- Kazuho OkuさんはTwitterを使っています 「面白い。結論としては、JSは一貫してグレゴリオ暦、Swiftは1582年以前はユリウス暦を採用している。(その方針の議論とは別に)ここで指定しているiso8601はグレゴリオ暦を扱うものなのでJSの動作が正しいだろう、と」 / Twitter
- BJ HomerさんはTwitterを使っています 「Javascript and Swift apparently disagree about when January 1, 1 AD was. (Both numbers in milliseconds-since-1970) JS: -62135596800000 Swift: -62135769600000 These two numbers are exactly 48 hours apart. Can anyone explain what’s going on here? https://t.co/zMo7OuD3X2」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「過去何十年も人類はうるう秒と付き合ってきたのに、未だに問題を起こし続けるうるう秒くん…… 発生頻度が低いから対策方法が身に付かないよね。」 / Twitter
- mattnさんはTwitterを使っています: 「“It’s time to leave the leap second in the past” https://t.co/Pejr9ecqps」 / Twitter
- It’s time to leave the leap second in the past - Engineering at Meta
タイムゾーン
- Yusuke Endohさんのツイート: "Google カレンダーに ICFPc の予定を登録しようとしたら、タイムゾーンに UTC が指定できない。「はいはいイギリスにすればいいんだろ」とやってみたらサマータイム。。。イギリスは世界標準時の自覚を持ってくれ"
- Yusuke Endohさんのツイート: "みんな UTC の予定どうしてるんだろうと思ったら、アイスランドのレイキャビーク(https://t.co/o7y7CV1UtC)とか、ガーナのアクラ(https://t.co/apgjoCzrII)で代用してるって出てくる。普通に Google カレンダー側で対応してほしい。。"
- 四九六々(縦書き用)さんのツイート: "WindowsのICU4CでTimeZoneにお悩みの方。wintz.cのSTD_REGKEYをwchar_tにし、getTZI関数を参考にgetStd関数を作り、uprv_detectWindowsTimeZoneで呼び、apiTZI.StandardNameと比較しましょう。"
- IANA — Time Zone Database
- Sources for time zone and daylight saving time data
- eggert/tz: Time zone database and code
- タイムゾーン呪いの書 - Qiita
- タイムゾーンに関するあれこれ - Qiita
- アメリカの時差と現在時刻 - Time-j.net
- ヨーロッパの現在時刻と時差一覧 - Time-j.net
- Shiro Kawaiさんのツイート: "クラウドでのログ時刻がローカル時刻で表示されるの、メンバーが異なるタイムゾーンに散ってる状況で話しながら作業するには極めて不向きだなあ。"
- Shiro Kawaiさんのツイート: "まさしく、この打ち合わせ中にgithubのissueのコメントが書き込まれた正確な時刻を知る必要があったんだけどa day agoでぐぬぬとなった。そこクリックしても時刻表示に展開されないし。(マウスをhoverしたら時刻が表示される、というのにしばらくして気付いた)… https://t.co/bSDz5L4jjx"
- 9b96faac591ad05eddec760eed2da2d5 齊藤敦志さんのツイート: "ブログやチャットのサービスで「×日前」「×時間前」みたいな表示をするものがあるのはそういう面倒くささをカジュアルに回避してるのかなぁと思ったことがある。 業務で使うなら一意性が必要だろうからもっとちゃんと考える必要があるだろうけど。 https://t.co/t655t1XtjX"
- 18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ
- Toru TakahashiさんはTwitterを使っています 「US/Pacific-Newっていうタイムゾーンがtzdata2020bから消えてるんだけどそれが入った理由が、1989年に議決されなかった太平洋大統領選挙時間( 'Pacific Presidential Election Time')の法案の先手を打ってタイムゾーンリストに追加したためって。。。https://t.co/0fQYP7Uqi7」 / Twitter
- US/Pacific-New is not a valid timezone · Issue #498 · moment/moment-timezone
- Dai MIKURUBEさんはTwitterを使っています 「@nora96o おおぉー…。基本「削除」はしない (エイリアスは残す) 方針と思ってましたが、こういう削除はあるんですね…」 / Twitter
- Toru TakahashiさんはTwitterを使っています 「@dmikurube ですねー。tzdata2020bから削除されたみたいです。 https://t.co/HNPl2gfs0o」 / Twitter
- [JDK-8254679] Release Note: US/Pacific-New Zone Name Removed as Part of tzdata2020b - Java Bug System
- Dai MIKURUBEさんはTwitterを使っています 「@nora96o オリジナル tzdb の方だとこのへんですかね。まあもともとかなり前から BACKWARD 入りしてたやつかー https://t.co/KUgLPfTKfA」 / Twitter
- Omit US/Pacific-New from default installation · eggert/tz@2edd825
- タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog
- FadisさんはTwitterを使っています 「タイムゾーンの時差と過去の変更の歴史を記録したtzdbがforkしそうになっている話。unixtimeのepoch以降に違いの無い複数のタイムゾーンの情報を1つのファイルに統合し、統合されて消えたタイムゾーンはsymlinkで表現する形に変えようという提案を巡って揉めているのが原因 https://t.co/HyMpK1GFv7」 / Twitter
- FadisさんはTwitterを使っています 「tzdbにはunix epoch以前のタイムゾーンの変遷も記録されているが、統合されて消えたタイムゾーンのunix epoch以前の歴史が統合先のタイムゾーンと異なる場合、backzoneと呼ばれる別ファイルにその情報が書かれる。この変更には大きく分けて2つの問題が指摘されている」 / Twitter
- FadisさんはTwitterを使っています 「1つは多くのアプリケーションは今のところbackzoneを読むようにはなっていないため、移行によって既存のアプリケーションがunix epoch以前の時刻の解釈を間違える事」 / Twitter
- FadisさんはTwitterを使っています 「もう1つはtzdbの要素がシンボリックリンクだった場合、そのタイムゾーンの名前は「別の正式な名前に正規化されるべき」名前であると解釈するソフトウェアがあり、この変更によって「ノルウェー時間」が「ドイツ時間」に修正されるといった政治的にヤバい変換が起こる、という事」 / Twitter
- FadisさんはTwitterを使っています 「tzdbの中では、これらの問題からtzdbは現在の形式を維持すべき派とデータベースの整理を進めたい派が半年に渡って争っており、この変更を取り込んでリリースを強行しようとする整理派に対して、維持派が「もうforkするしかねぇ!」と言っている」 / Twitter
- [新機能] タイムゾーン指定でスケジュール起動できるAmazon EventBridge Schedulerがリリースされました | DevelopersIO
プロトコル
NTP
- 日本標準時プロジェクト 公開NTP FAQ
- NTP Security Project、「NTPsec」ベータ版をリリース - ZDNet Japan
- NTP leap indicatorを上書きするProxyを書いた - ASnoKaze blog
- ntpdのLeap Smearingを有効にし、うるう秒を24時間かけて調整する - ASnoKaze blog
- NTPクライアントへの攻撃などを防ぐため、要求パケットに含めるデータを最小限にすることが提案される | スラド セキュリティ
- ENOG-20171027-公開資料.key
- 日記 (2015 年 7 月上旬)
- Fadisさんのツイート: "閏秒は正確な時間を必要としないシステムなら1秒のずれをntpdでゆっくり解消すれば良いだけで、この場合60秒の存在をソフトウェアが意識する必要はない。正確な時間が必要なのに60秒を扱えないシステムはただの欠陥品だから直そう"
- NTPを暗号化する Network Time Security for NTP の提案仕様 - ASnoKaze blog
- Facebook、より精度が高くスケーラブルなNTPサービスのためntpdからchronyへ切り替える
- NTPの次期バージョンv5の標準化が始まる - ASnoKaze blog
- NTPサーバの奇妙な振る舞いとNTPv5の標準化 - ASnoKaze blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「chrony で同期頻度を高めるには、chrony.conf で minpoll/maxpollを設定すると。 https://t.co/3HOZi0xojA」 / Twitter
- 実験用サーバでのChrony(NTP)設定(Ubuntu) - Qiita
PTP
- WhitePaperPtpJP.pdf
- スペシャルフォーカス: IEEE 1588 Precision Time Protocol - National Instruments
- LAN内機器での時間同期の標準規格「PTPv1」こと「IEEE 1588-2002」【ネット新技術】 - INTERNET Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「システムクロック変更せずに PTP使う場合、タイムスタンプの取り方は?と思ったら、謎マクロで clock_gettime すると。 https://t.co/4PsXKhfLg4 https://t.co/ZuwvtFNlsJ」 / Twitter
- clock_gettime(3) - Linux manual page
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「意外と、手元のASRockオンボードLANでもハードウェア・タイムスタンプ使えてびっくり。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ASRockのオンボードLANは Intel I219-V だった。 確かに IEEE 1588(PTP) が YES になっている。なるほど。 https://t.co/WJS8r5Od2Y」 / Twitter
- Intel Ethernet Connection I219V 製品仕様
- 累積誤差を排除した2代目PTP「IEEE 1588-2008」、LAN内機器での時間同期の精度を向上【ネット新技術】 - INTERNET Watch
- PTPv2の成功を受けて登場した「IEEE 1588-2019」は、広範な利用のためのオプションを追加した「PTPv2.1」【ネット新技術】 - INTERNET Watch
Roughtime
- Rockridgeさんのツイート: "RoughtimeはGoogleが開発中のプロトコルで、サーバとの時刻の同期を安全に行うことができるというもの。ただし、正確な時刻に対し10秒程度の誤差が生じる可能性がある。 / “roughtime - Git at Goog…” https://t.co/ERdGDojsE3"
- googleの新しい時刻同期プロトコル Roughtimeとは - ASnoKaze blog
- 時刻同期プロトコル Roughtime の標準化 - ASnoKaze blog
GPS
- GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
- 19.6年周期の“GPS週数ロールオーバー”が4月7日にやって来る。古いGPS機器では不具合が発生する可能性も【地図と位置情報】- INTERNET Watch
- 魚田雅彦さんのツイート: "すでに404 Not Foundになっていますが、archiveサイトで見られました https://t.co/urTwt5Wahc… "
- GPSリセットによる運航への影響発生について - JAL国際線
- Hiroshi Matsumuraさんのツイート: "まさか、GPSロールオーバーでJALで問題が発生するとは!しかも最新のB787で。 https://t.co/EXHy9CpIBZ"
- 多くの時刻同期技術の前提となる「IEEE 802.3AS-2011」【ネット新技術】 - INTERNET Watch
- 年末uさんはTwitterを使っています: 「わいわい。 https://t.co/54w1kiFmW2 です。Amazon Time SyncとGoogle Public NTPはどちらもLeap Smearing採用のはずなので、この2つを指定しておけばいいんじゃないでしょうか。Leap Smearingの是非は割愛させていただきます。 / “Amazon Time Syncに公開NTPが追加されま…” https://t.co/L8ZzjQmX9E」 / Twitter
- Amazon Time Syncに公開NTPが追加されました | DevelopersIO
- 「IEEE 802.1AS-2020」の登場、想定外に広く使われだしたIEEE 802.1AS-2011の改定版【ネット新技術】 - INTERNET Watch
RTC
- RTC - OSDev Wiki
- CMOS - OSDev Wiki
- 【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
- 「PCの時計が1時間ずれている」の原因 - Tactful Answer
- 「PCの時計が1時間ずれている」の原因の解説 - Tactful Answer
- pwrtest.efi – UEFI Shell developer tool to test Intel/AMD RTC wake function | Firmware Security
- 自作OSで時間を使いたい - HonokaNo’s blog
TSC
- untagged - x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い - スタック・オーバーフロー
- rdtsc ‐ 通信用語の基礎知識
- CPUクロックに基づく相対時刻の計測
- NAKAMURA Minoru's Diary (2010年4月)
- タイマーカウンタ その3
- 付録G KVM 仮想マシンのタイミング管理
- Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する | MCTの憂鬱
- カーネルにおけるタイマー事情 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
- [Win32] [x86 Assembler] Time Stamp Counter | すなのかたまり
- 社会人でもOSを作りたいさんのツイート: "「TSC(Time Stamp Counter)はCPUの周波数程度の細かさ,つまり1GHzであれば1ns単位で時間をカウントすることができる」というのを「1nsの精度がある」と誤った表現をしているウェブページが多いこと多いこと… 精度とは何%の誤差かを意味する言葉であって,先の話題では「分解能」が正しい."
- 社会人でもOSを作りたいさんのツイート: "分解能が1ns±0.5nsのタイマがあったとして,これは秒しか測れないタイマーより分解能はかなり高いと言えるが,精度はめっちゃ悪いよ."
- 周波数 hz 時間 - Google 検索
- hz 時間 換算 - Google 検索
- Timestamp-Counter Scaling for Virtualization White Paper - 教育は参考ブログ
- Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- c++ - Calculate system time using rdtsc - Stack Overflow
- msaitohさんはTwitterを使っています 「Intel の lfence;rdtsc の挙動がいまいち謎だったのだが、イカす会話を発見 https://t.co/mHXzkXWcZY」 / Twitter
- Travis DownsさんはTwitterを使っています 「@InstLatX64 I wonder if the semantics of SERIALIZE differ from: mfence lfence ? Currently, even mfence alone has what appears to be at least as strong semantics (the equivalent an embedded lfence was added to it fix an erratum).」 / Twitter
- msaitohさんはTwitterを使っています 「ここから先とか https://t.co/T2x0JKuZ1Q」 / Twitter
- Ronak SinghalさんはTwitterを使っています 「@trav_downs @InstLatX64 Re: footnote 5 -- does not address speculation in the front-end. Yes, does serialize the instruction stream but still allows fetching/prediction of the code stream that is after the LFENCE. SERIALIZE/CPUID do not allow that.」 / Twitter
- msaitohさんはTwitterを使っています 「Inte, AMD の cpuid, lfence, mfence, rdtscp の挙動の違いの調査など https://t.co/8KVxJ7OwcA」 / Twitter
- Index of /~msaitoh/tsc
- rdtscp を使う - Fixstars Tech Blog /proc/cpuinfo
- CPU_CLK_UNHALTEDの値を取得する - Fixstars Tech Blog /proc/cpuinfo
- 命令単位の時間を計測する (準備) - Fixstars Tech Blog /proc/cpuinfo
- その他の時間計測方法 - Fixstars Tech Blog /proc/cpuinfo
- ogiwaraさんはTwitterを使っています 「時計へのアクセスにしたってシステムclockじゃなくてrdtscp使ってCPUのclock使ってる で、時間のズレが発生したら同期するようにしてる(Cicadaとか?)」 / Twitter
- FadisさんはTwitterを使っています 「TSCとは: Time Stamp Counter。x86のCPUでRDTSCを呼ぶとCPUのクロックが何クロック進んだかを取ることができる。高精度に時間を測ることができるけど、アウトオブオーダー実行で容赦無く順序が変わるので注意が必要 #nekoi7yu_tech」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「https://t.co/rTt1tkSFSo この回答オーバーキル過ぎてワロタ。bpftrace のワンライナーいいよね。」 / Twitter
- timestamp - Getting TSC rate from x86 kernel - Stack Overflow
- Naoya HoriguchiさんはTwitterを使っています 「別解として crash を使うてもあるね。ちょっと大掛かりだけど。カーネル内グローバル変数をみたいことはたまにある。」 / Twitter
年問題
- Kazuho Okuさんのツイート: "off_tの64bit化は共有ライブラリの普及前だったからまだ簡単だったけど、time_tの64bit化は面倒だよな感しかない。しかもレガシーな32bit環境だけの問題だし"
- Kazuho Okuさんのツイート: "今年はアセットファイルの expires を +20years に設定しているサーバの管理者が2038年問題に悩まされる(かもしれない)年です"
- Kazuho Okuさんのツイート: "プロセス内部の値だけじゃなくシリアライズされた値も問題になるわけで、たとえば windows 8 の時刻型や MySQL の timestamp 型、 ext2/3 のファイル時刻は 32-bit… "
- Dan Kogaiさんのツイート: "うん。だから「」でくくっといた。あとこういう問題も残ってる https://t.co/qvJgCdQpNs… "
- 404 Blog Not Found:人類よ、これが本当の人類滅亡だ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「glibcは未だに2038年問題にきちんと対処していない。デフォルトのtime_tは32ビットで、64ビットのtime_tを使うには -D_TIME_BITS=64を定義しなければならない。他のlibcやWindowsではデフォルトのtime_tがすでに64ビットであり、ビルドが新しくなれば問題は自然に解消する。 https://t.co/wALZgX06hd」 / Twitter
- glibc is still not Y2038 compliant by default – Ariadne's Space
- 2038年問題を再発させるコードが多数の場所にコピーされてしまっている - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「将来、確実に起こることがわかっているバグ: 西暦2061年: 任天堂Switchの日付入力が不可能になる。 西暦30828年: NTFSの64ビットタイムスタンプがオーバーフローするため、Windowsが起動できなくなる。 西暦275760年: JavaScriptのDate APIが扱えない日付になる。 … https://t.co/jvbUy1FOkh」 / Twitter
- Time formatting and storage bugs - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(なお負になる日時は、2038/01/19 の 03:14:07(日本時間では12時)であることに注意。上記は負値になった直後の日時が1901/12/13の金曜日というだけ)」 / Twitter
Epochからの経過時間
- SODA NoriyukiさんはTwitterを使っています 「うーん、まるで逆で、1980年頃には普通だったけど、時刻/日付計算に不便なので一部を除きほぼ滅びたっていう方が正しい>年・月・日・時・分・秒にそれぞれ整数の固定ビットを割り当てるやり方 例えばMicrosoftだとFAT filesystemの時刻は年月日時分秒だったけど、NTFSでEpochからの経過時間に変えてる」 / Twitter
- PatinebootさんはTwitterを使っています 「@tetsutalow エポックからの経過時間だけで、時刻を表すのは世間に害を撒き散らして迷惑です。 時刻を、BCD表現で表す。バイトに余裕がある現代において普通。 BCD表現を知らない上原氏は、センスが無い、と暗にいうが、上原氏の知識が無い。 どうか、無知識からExchange を非難するのはやめて下さい。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「上原先生に対して知識がないって言えちゃうのもすごいけど、まあ若者は世間を知らないもんですからね…」 / Twitter
- NMism (Powered by Moderna📶)さんはTwitterを使っています 「@n_soda リニアな経過時間系がないと、うるう年やうるう秒を跨いだ時間計算でバグる人続出とかになりそうですね。# それにしても非難する前にぐぐってはどうかと。X-)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda あとBCD表現を二進化十進表現ではなく、数文字列の意味で使っているのですかね…? https://t.co/SPshOeQ8qT」 / Twitter
- 二進化十進表現 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda そうでもないのかな…ともあれ、time_t や FILETIME(Epoch系)に対して、struct tm や SYSTEMTIME の「比較/差分/加算」の扱いづらさを考えると、メモリ潤沢だから後者が常識というのはどの世界の常識なんだろう…?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu 先輩に嘘を教えられたってのに一票です」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラムで、time_t や FILETIME の使用が禁止され、struct tm や SYSTEMTIME の利用を義務付けられた世界線とか辛すぎる…(笑) (開発者は、隙あれば後者を避けて前者を使う生き物)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そういえば整数一つでないという意味で、timeval/timespec ってちょっと使いづらい)」 / Twitter
- yunkさんはTwitterを使っています 「そういえば、8bitパソコンのファイルシステムのタイムスタンプもBCDだったなあ(画像はMZ-2500のディレクトリエントリの解説から)。 RTCが時刻をBCDで持っていたからという事情もあったのかも。 https://t.co/QD9ODwgltI」 / Twitter
過去日
- まちカドおるみん(妹)さんはTwitterを使っています 「“Microsoft Excelでは日付データを1900年1月1日から起算したシリアル値(連続値)で持っているが、1900年は平年であるにも関わらず、Excelは1900年2月29日を存在するものとして計算してしまうため、1900年3月1日以前の日を計算に使うと問題が起こる場合がある。” 架空の日付 https://t.co/Ub2hOSudhl」 / Twitter
- 架空の日付 - Wikipedia
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi これしかし、どういうロジックになってんだろうなぁっていつもおもう。普通に実装すると0年も400で割る計算をするときは西暦にオフセットしそうだし。 100年,400年単位での閏年補正を忘れてて、2000年だけハードコーディングしたとかそういうのではなかろうか。」 / Twitter
- やす⋈尾鷲市移住&テレワーク中さんはTwitterを使っています 「@beepcap @kotatsu_mi 1900年はまあ使わないだろうって考えで4で割っておけば、2000年はクリアできるからという単純な理由じゃないかなと。」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@hirayasu @kotatsu_mi そうすると2100年の処理に余計な判定が必要になるんすよ。 まぁなんで初期のExcelには2100年対応が入ってなかったのかなって。」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap どうなんでしょね。まあ普通使わない年代の時間だし、いろいろ漏れてたんでしょうなあ」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi まぁこの実装なら2100年まで100,400区切りは考えなくていいしね。」 / Twitter
- まちカドおるみん(妹)さんはTwitterを使っています 「@beepcap 2100 年問題が潜在してる可能性 > Excel」 / Twitter
- beepcap@帝都帝国仮想現実翼賛会所属@HTTPSの強制には反対さんはTwitterを使っています 「@kotatsu_mi ありうる。もしくは2400年問題。(ただしおそらく古いバージョンにおいて)」 / Twitter
時間範囲の比較
- deltamさんはTwitterを使っています: 「これに名前つけて判定できるHaskellライブラリがあるのを教えてもらった https://t.co/1eqLSRFQnT Go版もある https://t.co/OModxGY1iC」 / Twitter
- tfausak/rampart: Determine how intervals relate to each other.
- francesconi/go-rampart: Determine how intervals relate to each other.
- deltamさんはTwitterを使っています: 「時刻の比較は早い・遅い・同じで済みますが、時間範囲の比較は13パターンあるのでそれぞれに名前を誰か付けてください(抜けないよね?) https://t.co/B4yaWWcNVb」 / Twitter
- mod_poppoさんはTwitterを使っています: 「区間に関するIEEE1788という規格では区間同士の関係に関する述語がいくつか定義されている(が、比較結果の列挙型が定義されているわけではないので元ツイの趣旨とは違うかも)」 / Twitter
MS
- .NET 6:日付と時刻の構造
時刻のみのオブジェクト
- Miura HidekiさんはTwitterを使っています 「時刻だけのオブジェクトって可能なのだろうか?日本なら可能かもしれないけど、サマータイムもあるし細かく言うとうるう秒もあるし」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 その特定タイムゾーンでの任意の日の午前0時からのオフセット(夏時間切替えの日は面倒...)ってので概念としては定義できそうだけど...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど。そのオフセットを正しく設定する処理が闇ですね」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局夏時間対応考えると日時情報から日の情報を落したもの、とするしかないような気はします。閏秒対応は今時なら通常秒の範囲を0-61と取っているでしょうから問題なし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 実際に実装があるとは思えませんが、日付情報があれば59秒+1秒をしたら、60秒と返す実装が可能ですよね。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 unixitimeをそのまんま使ったらアウトですから言語でサポートするってのもなかなか辛いですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 確かに...」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コマンドプロンプトでは、未だにこの挙動(夏時間では、夏時間以外のタイムスタンプも1時間ずれる)になる様子。 (ExplorerやPowerShellではそうならない) https://t.co/S0Ji6OrgQJ"
- Why are file Explorer and CMD Dir displaying differnt timestamps ? - Microsoft Community
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SystemTimeToTzSpecificLocalTime / TzSpecificLocalTimeToSystemTime だとこの問題はない様子。 ただ日本語MSDNは明らかに誤記しているようにみえる。 ---- 「夏時間が適用されているときは、変換しようとしている時刻が標準時間でも、夏時間が考慮されます」 https://t.co/dlUNIMuO1i"
- SystemTimeToTzSpecificLocalTime 関数
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct で(やっと?)うるう秒対応が入っていたらしい。 SYSTEMTIMEのwSecondが60に。事前にSetProcessInformationで仕込みした場合のみ(仕込みなしなら59が2秒掛かるらしい) https://t.co/xmku6aqXuM"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「TAI開始時点の太陽秒が原子秒の基準」とタネンバウム先生の本に書いてあったのだが、間違いだったのね。 「閏秒挿入の理由についての間違った理解」Wikipediaから。 https://t.co/lzBqBbkFCe… "
- 閏秒 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最後のセンテンスに、グレゴリオ暦導入時の余談が入るのがタネンバウム先生らしさ(笑) 「地主は1ヶ月分の家賃を要求し…雇用者は労働者が働かなかった10日分の給料を支払うことを拒絶した」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "念のため、写真部分の出典は「分散システム 原理とパラダイム」A.タネンバウム・M.スティーン、P.245"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSは64bit タイムスタンプで、西暦6万年まで指せるので、オーバーフローなどは気にしなくていい。 …と思ったら、何故か西暦6万年を差したファイルが実在して、FastCopyの時間誤差の許容計算でオーバーフロー発生した経験。 (2年前の話、現在はオーバーフロー対応済) https://t.co/guYWIGLbYf"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct以降、FILETIME にはうるう秒も加算されるらしい。 UNIX epochのように、うるう秒を無視(59秒と60秒が同じ値)してくれる方が楽なのだが。 https://t.co/xmku6aqXuM"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "つまり、FILETIME ⇔ time_t の単純変換ができなくなる、と。 うーん、私のソフトでも、いくつか対応が必要になりそうだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、こういう計算が出来なくなる、という話。 https://t.co/ENhYQu6YAm"
- Converting a time_t Value to a File Time - Windows applications | Microsoft Docs
- Windowsで高精度タイマを使う - Qiita
- 高解像度タイマーカウンタ
- ASCII.jp:Windows RS5で実装される、うるう秒対応や高精度ネットワーク時間|Windows Info
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NT系も含めてWindowsで起動から49.8日目にいろいろと問題を起こす話は有名だったけど(GetTickCount(ms単位)が一周り)、最近は概ねGetTickCount64に代替されて問題なくなった様子。 https://t.co/VGwbIf00Fc」 / Twitter
- ultravioletさんはTwitterを使っています 「「248日で死ぬシステム」てのが昔はよくあってな、32bitの符号付き整数で秒を数えてるシステムがオーバーフローする話なんだが、昔のOracleで出たケースが有名で、私も巻き添えを食ったことがある」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とはいえ、これは単調増加クロックなのでとても便利。 逆に昔のUNIXには clock_gettime(CLOCK_MONOTONIC) がなく、gettimeofday(ジャンプ・最悪巻き戻り対応)か tims(2)の戻り値(粒度荒い&バラバラ)くらいで困った記憶。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「むしろ、とっくにローカル限定になっていたかと思っていた。 95時代に「小さくするとオーバーヘッド大きくなるからご注意」とよく語られていた。 (それよりSleep(1)が5-9msくらいに収まらなくなるなら、FastCopyの速度調整にも影響出てるかもしれない。確認しておこう)」 / Twitter
- SimKさんはTwitterを使っています 「パフォーマンス低下問題の原因が完全に分かりました。Sleepとかタイマーの分解能を決めるtimeBeginPeriod関数の影響範囲がグローバルからローカルに変更されたようです。(つまり、以前はたまたま他で高分解能設定にされていたから動いていたって事ですね・・・) https://t.co/0enXgdLhvV」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「簡単に実験してみたが、Sleep や GetTickCount64 の粒度は15.5msくらい。 (そしてtimeBeginPeriod(1)でSleepは1ms前後まで精度上がる)」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「スレッドプールのスレッド数がほぼ一月ごとに増えたり減ったりする挙動とその顛末。経過時間を測るのに32bitでms単位のクロックを使ってたけど符号付きで計算してたので途中でクロックが負になってた。バグ自体はよくあるけどちゃんとモニタしてないとなかなか気づかなさそう https://t.co/tevod2mUhL」 / Twitter
- The code worked differently when the moon was full - Scott Hanselman's Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「満月のときに発現する?バグ。Win32のGetTickCount()(C#ではEnvironment.TickCount)は32ビット値を返すため、49.7日ごとにリセットすることが知られていた。そのためこのケースでは49.7日ごとにスレッドプールで謎の性能低下が発生して開発者を悩ませていた。 https://t.co/PsFbgaA9O2」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにWin95ではGetTickCount()は実際に起動時からのカウンタを使っていたため、Win95は49.7日以上連続実行できないという不具合が存在した。POSIXレイヤではこの値はシステムの内蔵時計から計算されているため、すべてのマシンで同じの現象が同時に発生する。」 / Twitter
- 【やじうまPC Watch】Windows 11のタスクバーの時計で「秒」表示が完全に無効化されたワケ - PC Watch
Linux
Timer API
- FadisさんはTwitterを使っています: 「LinuxのタイマーAPIに提案されている改良について。タイマーのコールバックがどのCPUで実行されるかを決定するタイミングを遅らせる事で、時間が経過する前にキャンセルされるタイマーの為にCPUの割り当てを決めるコストを回避する https://t.co/upYxISX11X」 / Twitter
- FadisさんはTwitterを使っています: 「LinuxにはLinux 1.0から提供されている時間になってもすぐに実行されるとは限らないが安価なタイマーAPIと、高価だが高精度なhigh resolution timerがあるが、提案は前者のAPIを維持して実装をごっそり変える物」 / Twitter
- FadisさんはTwitterを使っています: 「CPUが複数あるホストでは、Linuxカーネルはタイマーで設定された時間が経過した時にどのCPUでコールバックを実行するかを決めなければならない。タイマーAPIはコールバックを実行するCPUを指定することもできるが、多くの場合これは指定されない」 / Twitter
- FadisさんはTwitterを使っています: 「LinuxカーネルはタイマーのキューをCPU毎に持っていて、CPUの指定が無い新しいタイマーがadd_timerされると、最も暇そうなCPUのキューにタイマーを積むようになっている。これは全てのCPUの状況を調べてまわる事になる為、タイマーが使われる頻度に対して無視できない程度には高価な処理になる」 / Twitter
- FadisさんはTwitterを使っています: 「適切なキューにタイマーを積む処理は高価な割に性能に寄与しないことが多い。まずコールバックを呼ぶ時ではなく、タイマーを仕掛けた時のCPUの状況でキューを選んでいるため、肝心のコールバックを呼ぶタイミングでは暇なのは別のCPUかもしれない」 / Twitter
- FadisさんはTwitterを使っています: 「add_timerを頻繁に使うのは、壊れていなければ応答を返す筈のハードウェアの応答待ち、ネットワークと通信相手が生きていれば返ってくるはずのレスポンスの待機といったタイムアウト処理だが、こうしたタイマーは処理が期待通りに進んでいる限り中止されるので、コールバックはめったに実行されない」 / Twitter
- FadisさんはTwitterを使っています: 「コールバックがほとんど実行されないということは、タイマーのセット時にコストをかけてキューを選ぶのは殆ど無駄になることを意味する。提案されている手法はこれらの問題を克服するために、コールバックを実行するCPUの決定をコールバックを実行する時まで遅延させる」 / Twitter
- FadisさんはTwitterを使っています: 「提案手法では従来通りCPU毎にキューを持つが、add_timer時には何も考えずにadd_timerを処理したCPUのキューにタイマーを追加する。各CPUはタイマーのキューが空になって暇で仕方なくなったら同じグループ内のよそのCPUのキューからすぐに時間になりそうな複数のタイマーを奪い取って良い」 / Twitter
- FadisさんはTwitterを使っています: 「グループには通常同じNUMAノードに属すCPUが含まれる。この方法ではCPU毎のキューの偏りがコールバックを実行する直前にバランスされる為、コールバックを実行する瞬間のCPUの状況を反映できる。この時点まで残っているタイマーは本当に実行する必要がある物なのでバランス作業が無駄になりにくい」 / Twitter
- 本の虫: Linuxカーネルを2038年問題に対応させるには
- 本の虫: Linuxカーネル、Rockchip暦に対応
- gettimeofdayからclocksourceまでの道のり - livaの雑記帳
- Fadisさんのツイート: "2038年問題、この間LinuxのInput Subsystemが32bit x86環境で32bitで入力時刻をユーザ空間とやりとりしてるのなんとかしようって話が上がってたな https://t.co/ccw75LlY33"
- Input Drivers Are Being Prepped For Year 2038 Safety - Phoronix
- NOKUBI Takatsugu野首貴嗣さんのツイート: "kernel側の2038年問題対応 内部のインターフェースは全部64ビット化された 32bit kernelでは設定で時間関係のシステムコールを64ビットにできる glibcが32/64bit time_tを同時に使うことを想定していない。レビューと作業は遅いながらも進んでいる #debconf18"
- Man page of VDSO
- Implementing virtual system calls [LWN.net]
- Kazuho OkuさんはTwitterを使っています 「そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ! https://t.co/8X82Ag0opy https://t.co/z7H4fSiv4p」 / Twitter
- multitime(1) — multitime — Debian testing — Debian Manpages
- FadisさんはTwitterを使っています 「vDSO: Linuxではライブラリを使わないソフトウェアであっても実行するとvDSOというライブラリがロードされているように見える。これはカーネルが用意するライブラリで、カーネル側にコンテキストスイッチしなくても達成できるようなシステムコールをユーザ空間で片付ける方法を提供する #nekoi7yu_tech」 / Twitter
- FadisさんはTwitterを使っています 「vDSOのgettimeofdayの実装、「x86の場合」って言ってたから他のアーキテクチャの場合見てみたんだけど、ARMもMIPSもRISC-Vも同じ関数呼んでて、その中身はx86みたいなプロセッサのクロックカウントを使った補正なんてしてないシンプルな実装だった https://t.co/iCPuHoPcqU #nekoi7yu_tech」 / Twitter
- gettimeofday.c - lib/vdso/gettimeofday.c - Linux source code (v5.11.15) - Bootlin
- Kazuho OkuさんはTwitterを使っています 「gettimeofdayとclock_gettimeの2種類のクロックがあって、両者を使い分けろ(前者はタイムスタンプ等に、後者はタイマ等に)という主張嫌い。実際はタイマの値をタイムスタンプから計算したりすることもあり、バグの温床になるから。 gettimeofdayが巻き戻らないような運用するなりラッパーを書くべき」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「実行時間の正確な計測をしたいときは「計測」自体にかかる時間にも注意が必要である。CentOSとUbuntuでは gettimeofday() にかかる時間が数十倍も違っていた。これはLinuxで時刻取得のためのclocksource設定が違っていたためで、これを見逃すと間違った結果を信じることになる https://t.co/6qjb5kMddr」 / Twitter
- The Speed of Time
seconds since the Epoch (Unix time)
- Kazuho OkuさんはTwitterを使っています 「フォーマルな仕様書書くなら、Unix time という表現よりも、POSIX 参照して seconds since the Epoch と書く(そして注記として Unix time 入れる)くらいが良さそうだなと思った」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tagomoris @yancya @__gfx__ https://t.co/oJOTUaI0kC の 4.16 にわざわざ定義がありますね > seconds from the Epoch 一方で、unix time という表現は使ってないと思う」 / Twitter
- General Concepts
- Kazuho OkuさんはTwitterを使っています 「@tagomoris @yancya @__gfx__ 3.150 に Epoch の定義はあります... https://t.co/MtjBH44Kov」 / Twitter
- Definitions
TAI64N形式
- tai64n 形式。 | 技術系メモ
- cr.yp.to/libtai/tai64.html#tai64
- tai64nlocalコマンド:TAI64N形式の日付を読めるようにする|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
- daemontools - TAI64N to TAI
- TAI64N形式の文字列をTimeに変換する関数 - うなの日記
- external TAI64N形式のデコード – knsm.net
- qmailのTAI64N形式タイムスタンプの変換 - taka_moriのブログ
- djbware-doc-ja/tai64n.8.xhtml at master · fumiyas/djbware-doc-ja
- blog.asial.co.jp/iphone/225
- daemontoolsによるロギングとプロセス監視 (3/3):実用qmailサーバ運用・管理術(9) - @IT
- https://cr.yp.to/libtai/tai64.html
- TAI64
- Perl [script] TAI64 形式の変換・出力プログラム 00 TAI64 とは (0x255)|Perl Perl_5 Perl_my_program|blog20100901
- Macでtai64、daemontools、そしてctrl+cについて - ugon105の日記
- Fadisさんのツイート: "ある時刻が存在しなかったり、2度存在したり、60秒が挟まったりすると困るというプログラマさんには、TAI64という時刻表現の素晴らしさを伝えたい"
ISO・JIS
- ISO 8601の日付形式
- ISO 8601 の日時に関すること(間違いがあるかも) - モノトーンの伝説日記
- ISO 8601 - Wikipedia
- ISO 8601 - Wikipedia, the free encyclopedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Twitter検索の日時指定フォーマットは、 since:2022-04-13_00:17:55_UTC といった感じで、ISO 8601と微妙に違うけど、こっちの方がずっと見易いね。 https://t.co/uTWN5JShzS」 / Twitter
- JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
- JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC 3339 と ISO 8601 の両方に共通する日時フォーマット。 ようするに "2021-10-24T10:51:34.567Z" "2021-10-24T19:51:34.567+09:00" のどっちかにしとけ、と。 https://t.co/IsrO6r0p2a」 / Twitter
- RFC 3339 vs ISO 8601
- 渋川よしきさんのツイート: "WikipediaのISO8601の日本語の方、durationの説明がまったく抜けているぞ・・・"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2021/02/01 とやれば、どの国でも「年/月/日」と察すると期待して、FastCopyの統一ログ表記はこの形。」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「たぶん多くの人がやっていると思うけど、米国でも英国でもとりあえず誤解されないように日付を伝えられるように、必ず月を Jan/Feb/Mar/... 表記にしている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういう話があるらしい。 https://t.co/kShebNkAft」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「ISO 8601 に倣って私は YYYY-mm-dd を使うことにしている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「私も T を使うの、視認性悪すぎると思う。 https://t.co/dzKxJuKXbm」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「ただ human readable なテキストで日付+時間を表現するときに 2021-03-29 に後続する "T" を付けるのは気に食わないので、全面的に ISO 8601 に従うわけでもない。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu 対応する JIS(日本産業規格)。追補は、令和の追加: JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 https://t.co/MGp8Ezk1e2 JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) https://t.co/BUY0Mx0LGl」 / Twitter
- Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「日付表記の問題でいつも思い出すのが,当地で教員になったばかりの頃,11月22日に受け取ったレポートに「11/22」と書いたところ「どうしていきなり評価が半分なんですか?!」と食いつかれたこと.自分もできる限り月はアルファベット表記.」 / Twitter
- Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「補足:マレーシアは英領だった関係でdd/mm/yyyyシステムを使用.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、この形式で海外から要望が来たことは無いので、皆さんちゃんと認識できている様子。 過去にあった要望はドイツ人で、数字の桁と小数点を表すピリオドとカンマを反転させてくれ、という要望。 彼らには 1,234.5GiB 等は分かり辛いらしい。 https://t.co/nldZxpiED6」 / Twitter
- 世界各国での数字の区切り方、カンマ・コンマのルール | コリス
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「あれ?日付と時刻の間はT区切りじゃなかったっけ? $ date --rfc-3339=second 2022-06-07 21:13:33+09:00」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「https://t.co/fL6766oSEs なるほど。RFC 3339ではスペース区切りも許されるが、ISO 8601だと許されない、という違いがあるのねん」 / Twitter
- datetime - What's the difference between ISO 8601 and RFC 3339 Date Formats? - Stack Overflow
- 𝔸𝕂𝕒𝕟𝕒𝕤𝕙𝕚𝕣𝕠 (カナやん)さんはTwitterを使っています: 「@uchan_nos date --iso-8601="ns" じゃ?」 / Twitter
POSTD
- 処理速度の遅いcurrentTimeMillis() – 前編 | プログラミング | POSTD
- 処理速度の遅いcurrentTimeMillis() – 後編 | プログラミング | POSTD
Wikipedia
- システム時刻 - Wikipedia
- Time Protocol - Wikipedia
- 世界時 - Wikipedia
- 国際地球回転・基準系事業 - Wikipedia
Twitter
その他
時間管理
- Dai MIKURUBEさんはTwitterを使っています 「理解してやってるんじゃない限り、ローカルタイム (+09:00のような固定オフセットではなくAsia/Tokyoとか) で保存するのはやめておけとしつこいくらい言っておく。 2017-11-05 01:30:00 America/San_Francisco は二度あるぞ。せめて +07:00 か +08:00 のどっちだったかは常にセットにするんだ。いいね?」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「過去の時間は基本的に UTC でいいと思う。未来の時間が問題で、その国や地域において法的に定められる時刻が問題なのか (イベントの開始時刻など) それとも、それと関係ない絶対的なある瞬間を扱いたいのかで変わる」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「前者である場合はそれでも気をつけ続ける必要があって、その時刻が2回訪れる可能性や、その時刻がスキップされて訪れない可能性を常に考慮に含めておく必要がある」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「念のため言っておくと、ある時刻 (1〜2時間程度) が消滅するだけではなく、ある日付がまるごと消滅したようなことすらここ数年の間に実際あったので、まあ日付時刻については自分の常識をまず疑っておくのがいい」 / Twitter
- 成瀬さんはTwitterを使っています 「未来の時刻、いきなりタイムゾーンがずれる可能性を考慮するといつもあいまいでこの世の地獄」 / Twitter
time_tの差分をとって比較演算をしようと思うとdoubleへの変換は必須
- SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho POSIX的にはstat構造体の時刻がナノ秒単位になっている( https://t.co/Qiq9vIxUdQ )ので、この変更に対応済みのfind実装(イマドキすべての実装が対応している筈)であれば、find自体はナノ秒解像度で動作しますね。 ただファイルシステム上の時刻の解像度が秒単位だと、どうにもならないわけで…」 / Twitter
- <sys/stat.h>
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho たしかに、gnu find は ns をみてるみたいだ。 POSIX ってまだ更新されてたの知らなかったw https://t.co/wp12QkrZeb」 / Twitter
- pred.c\find - findutils.git - GNU findutils
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho これ、なんで double にして比較するんでしょうね。もしかして、今時、その方が速い?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho これは一つの比較演算子で済ませたいからってだけじゃないでしょうか。 あと、Ubuntuでダメだったってテストを手元で走らせてみると、うまくいっているような? https://t.co/YVOBGdq7ms テストのやり方を間違えてますかね…」 / Twitter
- run stat(1) against target · n-soda/actions-install-and-cache@2c2f1d0
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho 楽したい場所じゃないだろと思うのよね。 アクションは、こんなにいろいろやったらうまくいくに決まってるw 元のコードでも、いつも失敗するわけじゃないので。 https://t.co/9tZWHGi3Pw」 / Twitter
- run stat(1) against target · n-soda/actions-install-and-cache@2c2f1d0
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho あ、でも、stat の結果を見ると秒単位では一致してるんですね。たしかに不思議だ。 あと、touch したファイルが nsec レベルで一致してるのに驚いた。」 / Twitter
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho カーネル内の nsec の更新タイミングによるのかも。 > touch $epoch 0 1 2 ... じゃダメってことだものね。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho タイマー割り込みより短い間隔だとまずそうなので、一番間隔が長くても 50Hz でしょうから、0.02秒よりも長ければ大丈夫じゃないかと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @uta46 timeval / timespec を double に変換して持つってのは僕もやりますが、楽だからですね。find のやつも変換することで遅くなることはあっても意味があるほど速くなるとはちょっと考えづらい気がします」 / Twitter
- kaz uta46さんはTwitterを使っています 「@kazuho @n_soda ですよね。楽したい場所じゃないし、普通だったら FreeBSD みたいに、まんま比較すると思うので、何か意味があるのかなと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda time_tの差分をとって比較演算をしようと思うとdoubleへの変換は必須です*。それを避けるとなると、比較演算子で if (x.sec < y.sec) { ... } else if (x.sec == y.sec) { ... } else { ... } みたくダラダラ書かないといけないというのはあります。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda *: time_tは実行環境がサポートする最大のunsigned型かもしれないから」 / Twitter
- kaz uta46さんはTwitterを使っています 「@kazuho @n_soda なるほどー。一旦、そういう構造にしちゃったから、後戻りしにくいし、ペナルティも知れてるからってことですかね。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@uta46 @kazuho なるほど。ファイル更新間隔が、カーネルの時刻更新解像度よりも短かったってことですかね。実際のビルド処理だとあまり起きない気はしますが、タイムスタンプ用ファイル作成直後に sleep 0.1 するのがいいのかも… 浮動小数点数でのsleepには移植性がありませんが、Linux, macOS, *BSDなら動きます」 / Twitter
- kaz uta46さんはTwitterを使っています 「@n_soda @kazuho これで、みんなハッピーかな。 > touch $epoch && touch -A -01 $epoch &> /dev/null || sleep 0.1」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@uta46 @n_soda 間にsyncは挟んでも良さそうですね」 / Twitter
histric
histric-1
- ゆたかさん🐬さんのツイート: "システムに負荷がかかるとOSの時刻がずれる、というのはある意味正しいけれど、負荷という表現が曖昧。 厳密には、 カーネル空間で割り込み禁止状態が継続して、タイマ割り込みの処理ができなくなることで、時刻の更新が遅れる。 が正解。CPU数や実装で異なる場合もあるけど。"
- ゆたかさん🐬さんのツイート: "NOだと思います。1秒未満でポーリングして、時刻を更新すればよいです。ただ、一般的に割り込みよりポーリングのほうが重たいと言われているので、割り込みと比べて負荷がかからないほうを選択することになると考えます。 https://t.co/FIfATs8XwS"
- 市川 真一さんのツイート: "@yutakakn OS の無い環境で、割り込みを使わずに 3 秒毎にポーリングする方法があれば、知りたいです。方法がなければないでよいです"
- ゆたかさん🐬さんのツイート: "u-bootではudelay関数で下記条件を満たすループが実装されています。単純にクロックを参照してループしているだけですね。 @ udelay() # lib/time.c ftp://ftp.denx.de/pub/u-boot/u-boot-2017.05.tar.bz2 https://t.co/vKpi3v45pt"
- satさんのツイート: "かつてlinuxプロセスの実行時間utimeとstimeは、タイマ割り込み(ここでは一秒ごとに100回とする)を使って、割り込みが入った時点で実行してた処理を、直前1ミリ秒で実行した処理とみなしていた。厳密に測るのではなくサンプリングですね"
- satさんのツイート: "わざとらしい例を出すと、ほぼ全ての時間プロセスが実行していたとしても、サンプリング時間にたまたまカーネルが動いてたり、スリープしたりしてれば、utimeにはカウントされない。なので精密な実行時間の計測には向かない。使うとしても十分な長さの実行時間をとらないとあまり意味がない"
- satさんのツイート: "s390とia64だけはサンプリングではなく、かなり精密な方法で測定していた。 最新カーネルでこのへんのコードを見てないので、今は知らん"
- satさんのツイート: "すいません10ミリ秒"
- Masahiro Kasaharaさんのツイート: "ほとんど茶々だけど、閏年は if((year % 4 == 0) ^ (year % 100 == 0) ^ (year % 400 == 0)) って書きたい派です。… "
- kamimuraさんのツイート: "かなり茶々だけど、閏年は、 if (isLeapYear(year)) // isLeapYearは任せた! って書きたい派です。w… "
- 渡久地 信之さんのツイート: "12時間表記,12時がどっちを指すのか国によって違うのでアレ."
- ゆきさんのツイート: "ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み https://t.co/evTEWm2QRw 書いた。chromeがどのようにシステムクロックのズレを検出してるか。"
- ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時の linux + ext4 は utimensat(2) の tv_sec に負の値を設定することで、A.D.100年なども表現できるのね。 (touch でなく、utimensat なら、B.C. も行けそう) https://t.co/1i84lSpPyt」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「UNIX epoch を 0 として、1969年12月31日23:59:59 が -1という調子。 (ただ、エラー値に(time_t)-1を返すmktime(3)などとの相性悪そうだな…)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Un*x使うプログラマになって約20年たった私ですが、最近ようやくPC向けUn*xにCMOS時計をローカル時刻に設定するオプションがある理由を理解しました。いままでWindowsとのデュアルブート環境とか真面目に使ったことがなかった」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho Windowsのレジストリを変更してUTCを使うという方法もありますよ。 https://t.co/szPiDl0R6I 私はデュアルブート環境の時はこの設定にしていました。」 / Twitter
- System time - ArchWiki
- Shinji KonoさんはTwitterを使っています 「ローカルタイムをDBに入れるのは初心者の間違いだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ローカルタイムの害悪はちょっと考えればわかる。Windowsは初期にはlocaltimeをOS内部の基準に使ってた。アホ過ぎるので最近やめた。」 / Twitter
- yohさんはTwitterを使っています 「https://t.co/SWigVAAdmi C++20 Calendarって同月中最初の指定曜日を起点に 先月の最終指定曜日[0]とか 翌月以降の指定曜日[5~]を直接計算できるのね https://t.co/kbcOoAUCyG」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- きしだൠ(K1S)さんはTwitterを使っています 「これ、amとpmがそのまま午前と午後に置き換えれると思ってるところから生じるバグなんだよなー 12pmは1pmの1時間前なんだけど、午後12時は午後1時の11時間後 https://t.co/1q1T1n7h65」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「うるう秒 (leap seconds) は地球の天文学的時刻と原子時計を合わせるためのもので、これまでは全て「1秒増える」調整だった。しかし地球の公転速度は速くなったり遅くなったりしているので、将来的にうるう秒がマイナスにあることもあり得る。 https://t.co/I3BwD6AVZC」 / Twitter
- Hate leap seconds? Imagine a negative one - by Randy Au
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「一意な解が存在しないdate/time型の比較問題: - "2022-06-01"(date) == "2022-06-01 12:00"(time) なのか? - "2022-06-01 12:00"(time) < "2022-06-01"(date) < "2022-12-31 12:00:00"(time) なのか? - "2202-06-01"(date) < "2022-06-01 12:00"(time) なのか?」 / Twitter
- Benedikt DeickeさんはTwitterを使っています 「We just had a lengthy, one hour discussion with @leoeuclids and @uibreakfast in the @userlist Slack about comparing dates with times… 🙈 Does anyone have opinions on this? 🤪 https://t.co/G0muPbOhS9」 / Twitter
- naoyaさんはTwitterを使っています: 「慣れ親しんだ言語から新しいプラットフォームに移行してアーキテクチャとかを考えている間はすごい全能感あるんですけど、いざアプリケーションを作ってみると「ウッ、そうだった日付の扱いが、特殊な業務だった」「ウッ、認証ライブラリがない」など忘れていた地味な問題が連続して (現在進行形)」 / Twitter
- naoyaさんはTwitterを使っています: 「JavaScript の Date オブジェクトで 26:00 を扱う地獄」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Goの日付のフォーマット、言われるほど酷くはないと思うんだけど、単に自分がGoを書かないからそう思うのかもしれないし、いずれにせよ自作言語に採用したいほど良いとは思えない」 / Twitter
- hugoの日付書式がクソすぎる(悪いのはgo言語です) - やってみる
- 西暦1年は閏年か? - プログラマーの脳みそ
- Java Date Time APIでの和暦の扱い、ロケール、タイムゾーン - 「プロになるJava」 ボツ原稿 - きしだのHatena
- ISO 8601 - Wikipedia
- Facebookが高精度時刻同期システムをオープンソースへ、構築コストが従来の数分の1に - GIGAZINE
- opencomputeproject/Time-Appliance-Project: Develop an end-to-end hypothetical reference model, network architectures, performance objectives and the methods to distribute, operate, monitor time synchronization within data center and much more...
- mattnさんはTwitterを使っています 「全然関係ないけど、Go の time.ParseDuration は「1日は24時間丁度じゃない場合があるので 1d はサポートしない」という仕様が好きです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ありがちなパターンだよなぁ…特に「頭のいい人」が陥りがち。 ---- 本の虫「C++11の時間ライブラリは美しさを追求したあまり、かえって使いにくくなっているのではないか」 https://t.co/B6epYSIf1p」 / Twitter
- 本の虫: C++11の時間ライブラリは美しさを追求したあまり、かえって使いにくくなっているのではないか
インストーラ
Windows Installer
MS
- Windows インストーラー パッケージの作成
- Visual Studio Installer :インストーラ パッケージ (.msi) ファイル
- Windows インストーラーのエラーをトラブルシューティングする方法
- Download Windows Installer 4.5 Redistributable - 日本語 from Official Microsoft Download Center
- Windows インストーラー 4.5 について
- 【レビュー】「Windows Installer」の不正なインストール情報をクリアできるMS純正ツール - 窓の杜
- Windows インストーラーの基本概念
- Windows Installer (Windows)
- Windows Installer Guide (Windows)
- Windows Installer Reference (Windows)
- About Windows Installer (Windows)
- Windows Installer Examples (Windows)
- Overview of Windows Installer (Windows)
- Using Windows Installer (Windows)
サードパーティ
- Windows Installer の修復によるインストールトラブル対処方法(Windows)
- Windows Installer を修復してインストールの不具合を回避する方法 - F-Secure Community - 67241
- 「Windows Installer」とは何ですか? - Wise for Windows Installer 5J Professional - ナレッジベースの詳細 | GrapeCity Developer Tools
- Windows Installerに対応したソフトウェアのリモートインストール手順
- 相栄電器 サポート情報: インストール時に Windows Installer のログを記録する
- インストーラー作成ソフト「Inno Setup」が2年ぶりのバージョンアップ - 窓の杜
- jrsoftware.org // Jordan Russell's Software
Qiita
- Windows GUIプログラミング入門15 インストーラー(1) - Qiita
- インストーラー作成ツールの選択 - Qiita
Wikipedia
- Microsoft Windows Installer - Wikipedia
- Windows Installer - Wikipedia
- WiX - Wikipedia
- WiX - Wikipedia
Twitter
- おおきくてながいさんのツイート: "インストーラーの中身は全く見てないけどmsiならupgrade table吹き飛ばしたりsetup.exeからたたいてるみたいだからレジストリにlogging=voicewarnupつけて引数解析したうえでmsi直実行したりproperty tableのそれっぽい値を探したりいろいろ悪いことは思いつくインストーラークラスタ"
- おおきくてながいさんのツイート: "インストーラーの中身全然知らないけどね。orcaも入れてないし。うん、全然知らない。何にも知らない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスに誤検出されずらい、インストーラの作り方、を知りたいところ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この形にしたのは(Explorer等を使った場合に起きる)展開ファイルにゾーン情報が付与されるのを回避するため。 付与されていると、exe実行時に警告が出る以外に、ヘルプ(.chm)の目次は出るものの、肝心の中身が表示されないという、原因が分かりづらい問題が出る。… https://t.co/e71lQ4w7g3"
- うがp@「~」←ちるだ!!さんのツイート: "FastCopyを使っていた人ならわかるけど、 今回からINSTのみの配布。 実行時、展開のみ というオプションがあるみたい。 高速ファイルコピーツール「FastCopy」v3.50が公開 ~処理が2倍以上高速化するケースも - 窓の杜 https://t.co/nHxDHpWnVQ @madonomoriさんから"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "32bit/64bit版を同梱した共通化インストーラ(32bit製)が完了。 1,194KB → 1,461KB と約22%のサイズ増加。 ただ今時だと、誰も気にしないレベルかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "/SILENT, /EXTRACT, /EXTRACT(32|64) などのオプションも追加。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinServer 2008以降、WOW64 をアンインストールすることが可能になっている様子。 (32bit製インストーラのみ、という点がネックになる可能性はあるのかな?) https://t.co/YAD124wZZ3"
- WoW64 Is Now an Optional Feature for Server Core (Windows)
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyインストーラは、インストーラexeをビルド後、末尾にメインファイル群を付加する形。 IPMsgインストーラでは、インストーラのソースに、メインファイル群をC言語データ配列化したものが含まれ、ビルドするとexe自身にそれらが内包される形。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "後者は、アンチウイルスの誤検出低減への効果を期待したものだったが、数年運用した結果として、全く無意味と判った(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy最新版は、32bit/64bitの両インストール(or 取り出し)を可能にした、単一インストーラ(当然32bitバイナリとして作成)となった。 今のところ、特に困った人もおらず、こちらは配布ファイルが1つで済むので良いことしかない様子。次の IPMsgでも同様にしよう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "普通にインストールすれば、x64環境ではx64版が動くはず。 だが、わざわざx86版を取り出して、x64環境で使っている人が居るっぽい。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラに、sha256による自己ハッシュ検証を入れるように変更。 ただ、コード署名を入れれば不要になるが。"
- Rockridgeさんのツイート: "Fx65:MSI形式のインストールパッケージをサポート。15年前から要望がでていたが、ついに。参照:https://t.co/eWVZm3gyU7 / “show_bug.cgi?id=1475510” https://t.co/yw35MuaNhh"
- WiX チュートリアル 日本語訳
- WiXではじめるWindows Installer作成入門 第1回 (1/3):CodeZine(コードジン)
- Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する
- Visual Studio 2015でWindows Installerを使えるようにする - Webサービスで起業を目指すプログラマーblog
- Visual Studio 2015 Community Edition で Windowsインストーラを作成する - グロブ
- Visual Studio 2017 Installer Projects でインストーラーを作成する │ Web備忘録
- Visual Studio Installer (インストーラー プロジェクト) に関するあれこれ | Tk2Kpdn Wiki
- Windows Installer の削除して良いファイル - Windows 2000 Blog
- 第561回 ローカルインストール時もcloud-initを活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
MSIX
- MSIX とは - MSIX | Microsoft Docs
- Three things you need to know about Windows Developer Day - Windows Developer BlogWindows Developer Blog
- Microsoft/msix-packaging: MSIX Packaging SDK
- Free Windows Installer - MSI Installer Tool
- Grant identity to non-packaged desktop apps | Microsoft Docs
- Identity, Registration and Activation of Non-packaged Win32 Apps - Windows Developer Blog
- 新しいUWPとWin32アプリケーション配布モデル
- Microsoftがアプリ戦略をアップデート 新形式「MSIX」でモダン化は進むか (1/2) - ITmedia PC USER
- MSIXでパッケージ可能になった開発者向けWindows 10 SDK Previewが公開 - PC Watch
- 新しいアプリインストール形式“MSIX”が利用可能 ~「Windows 10 RS5」Build 17682以降 - 窓の杜
- Microsoft、次世代アプリパッケージ“MSIX”を作成・編集するツールをストアで公開 - 窓の杜
- 「MSIX Packaging Tool」がストアで正式公開 ~MSI後継のインストールパッケージを作成 - 窓の杜
- Microsoft、“MSIX Packaging Tool Insider Program”を開始 - 窓の杜
- 「Windows 10 May 2020 Update」、開発者向けの準備が完了 ~“Go-Live”なSDKが公開 - 窓の杜
- Windows Virtual Desktop の MSIX アプリのアタッチの概要 - Azure | Microsoft Docs
- Windows Virtual Desktop の MSIX アプリのアタッチ - Azure | Microsoft Docs
- 「Windows 10 Enterpriseマルチセッション」で「MSIX App Attach」をサポート - ZDNet Japan
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7以降、「プログラムの追加と削除」エントリは、非Adminでも登録可能になっていた。いつアナウンスされたのだろう…? (正確には HKEY_LM 以外に HKEY_CU 配下の REGSTR_PATH_UNINSTALL も有効になった、という形)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「コード署名」「Program Filesインストール」「マニフェスト(uiAccess=true)」の3つが揃ったプログラムはUACをバイパスして、管理権限プロセスにも SetWindowsHookEx できるのね。 (インストール時に管理者権限必須とはいえ、ちょっと微妙だな…) https://t.co/T9bnrIg7Ip"
- visual studio でビルドする際の uiAccess="true" について
- Shirouzu Hiroaki(白水啓章)さんのツイート: "正確には、管理者権限アカウントからプロセス起動した場合に、UACでは落とされるべき一部特権が落とされないで起動する、という話だろうなぁ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsで、日本語(マルチバイト)ユーザ名だけで発生する問題、時折、うっかり踏んでしまう…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近の FastCopy や IPMsgインストーラは、x86/x64版を同梱したファットバイナリで、OS種別により x86/x64バイナリのどちらかをインストール。 配布ファイルが1種類になり楽になった。 (以前は x86/x64 * exe/zip の4種類インストーラを配布。exeのみでOKになったのはコード署名のおかげ)… https://t.co/g8o1y5YmLv"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この意味が未だに分からない…どういう意図なのだろう? https://t.co/KLLYxZcwBT」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「設定→「アプリと機能」と、コントロールパネル→「プログラムと機能」in Win10。 アンインストール時、ユーザ権限インストールで登録されたアプリでも、前者だけは必ず管理権限を求められる。」 / Twitter
- UnagiさんはTwitterを使っています 「@shirouzu うちのだと特に特権昇格してくる事はないんですけど、確かに動作が違っててよくわからん動きするんですよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix そうなのですね。 ところで「動作が違って、、、」というのは具体的にはどんな違いでしよう?」 / Twitter
- UnagiさんはTwitterを使っています 「@shirouzu うまく説明できないんですが、RestartManager API 周りがちゃんと動いてくれてない感じなんですかね。自分のアプリを落としてアンインストールした後にまた上がってきたりする。他のアプリでも、動きは違うけどうまくアンインストールできないケースをよく見ますね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix なるほど、、、 環境によって挙動がバラバラだと対処に困りますねぇ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は Program Files ではなくユーザ個別フォルダへのインストールが増えたけど(自動更新で管理者権限が不要になるなど)、さらに AppData\Local\Programs を使うという流儀があるらしい。 https://t.co/PADcyvah1K」 / Twitter
- グレンさんはTwitterを使っています 「@shirouzu プログラム、設定ファイル、実データをどのフォルダに入れるかということについて、もっとOS(Windows)側で使いやすい規範を示して、みんながそれに従うようにして貰いたいと思ってます。」 / Twitter
- 2019年2月6日 OSを"インストール"ではなく"デプロイ"する ―マルチブート環境を簡単に実現するデプロイツール「znx」:Linux Daily Topics|gihyo.jp … 技術評論社
- Dockerイメージのレイヤー構造について - めもめも
- ASCII.jp:WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
- 第9回 Windowsのファイルシステムの概要とFATファイルシステム (1/2):Windows OS入門 - @IT
- Periodic Background Sync 及び Web を Install するということ | blog.jxck.io
- FadisさんはTwitterを使っています 「CentOSのインストールディスク、ボリューム名をデフォルトから変えるとinitrdの中で詰んでしまうの何でかと思ったけど、これ光学ディスクドライブが複数あるマシンでブートした時に間違ったディスクをマウントしない為にボリューム名をチェックしてるのか」 / Twitter
Day2運用(監視・log・更新・バックアップ等)
バックアップ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バックアップの際の「3-2-1ルール」: - 3個のコピーを - 2種類のメディアで - 1つは別の場所に このルールは写真家 Peter Kroghによって考案された。デジタルデータだけでなく、すべての情報に適用でき、また想定される多くの被害状況に対応している。 https://t.co/3i8HKQAEsD」 / Twitter
- What is the 3-2-1 backup rule?
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バックアップをとっているにもかかわらず、ランサムウェア攻撃で身代金を払う企業が多いのは、彼らがバックアップの復元を実際に試していないからである。ランサムウェア攻撃に備えた「サイバー避難訓練」を定期的に実施せよ。 https://t.co/JGhL4wopui」 / Twitter
- Don’t Wanna Pay Ransom Gangs? Test Your Backups. – Krebs on Security
- 不測の事態で重要なデータを失ってしまうのを防ぐ「3-2-1バックアップルール」とは? - GIGAZINE
- 毎日バックアップしている人がどれぐらいいるのか調査結果発表、データ損失経験の割合も明らかに - GIGAZINE
- Dropboxにtarを使ったバックアップを毎週取る | κeenのHappy Hacκing Blog
- mod_poppoさんはTwitterを使っています 「Windowsの「ファイル履歴」ってやつを使うと手軽にバックアップが取れるのかと思ったけどなんかバックアップされないな」 / Twitter
- mod_poppoさんはTwitterを使っています 「Windowsのファイル履歴、半角全角だけが違うファイル名があると(同じディレクトリに「1.txt」と「1.txt」があると)バックアップに失敗するとかどういう作りしてるの?アホなの?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Windowsのファイル履歴、「長いファイル名」も苦手っぽいな」 / Twitter
- mod_poppoさんはTwitterを使っています 「ファイル履歴、バックアップに失敗したならその旨をユーザーに通知するべきだろ」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「思うんだが、少なくともバックアップは AWS などのクラウドのマネージドサービス上に置くべきなのかもなぁ。OS の管理権限がないから、権限管理さえきちんとできてればそこまでひどいことにはならないはず。https://t.co/OXpAmyq82K」 / Twitter
- BCP想定を上回ったニップンへのサイバー攻撃についてまとめてみた - piyolog
- 伊津野 英克さんはTwitterを使っています 「個人的には特定のクラウド事業者だけに偏るのは危険だと思っているんだけど、マルチクラウドはあまりにも難しすぎるので、バックアップだけはマルチクラウド or ハイブリッドクラウドくらいがいいと思う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ランサムウェアはバックトラックあれば防げるんだから、あんまり同情する気にはなれないが。GooleDrive ランサムウェアとか?」 / Twitter
- Crash/Deprecation/Intervention Reporting について - ASnoKaze blog
- Kazuho OkuさんはTwitterを使っています: 「SSDの調子がイマイチだからじゃないけど書きました いにしえのpdumpfs [1]とかmacOSのTime Machineとか、毎日バックアップを取りたいけど、普通に取るとディスクが足りなくなるので容量の消費は差分だけにしてほしい、という要求があるわけです。 最近は rsync に --link-dest オプションがある[2]と」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「いう記事を読んだので、書いてみた。 https://t.co/FaxfowevOl こんな感じ。 timemachine.rb -avz -c -e ssh host:dir/ ってやる都度カレントに日付のディレクトリができてバックアップが増えてく。でもファイルが更新されてなければハードリンクになる (ls -liR参照)。やっぱこゆの便利 https://t.co/i16dW2uhN4」 / Twitter
- generational backup using rsync
- Kazuho OkuさんはTwitterを使っています: 「[1] https://t.co/yHis1yJAfM [2] https://t.co/Orq7hCuhdA」 / Twitter
- 横着プログラミング 第8回: pdumpfs: 毎日のスナップショットを保存する
- rsyncで差分バックアップを行うための「--link-dest」オプション:Command Technica - ITmedia エンタープライズ
スラッシング, 監視
- EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh この辺の代表的な性能指標を、muninの様な監視ツール やnagiosの様な通知フレームワークを使って「何が異常で何が健全か?」を定量化する・・・あたりが定石ですが、ツールやフレームワーク自体が高負荷で本末転倒だったり。。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「@eguchi3 そうですね。vmstat, iostat, top当たりですかねえ。」 / Twitter
- EGUCHI OsamuさんはTwitterを使っています 「@a_saitoh 「最近はストレージがSSD化されて、アクセスランプもシーク音もしないですが。」 という人が出そうなので「vmstat(8) で page in/out がI/Oを圧迫している状態」のような視点も必要ですね。」 / Twitter
- mmasuda #あらゆる軍事侵攻に反対しますさんはTwitterを使っています 「@a_saitoh RDB でfull scan search が起きまくっている( ≒ index を上手く使えていない) という現象なのに「CPUガー」というのはよく見ましたね。ストレージがシリコン化(SSD)してからは見えにくくなっている気はする。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「例えば、スラッシングを理解してるとは、「物理メモリ不足のために、ページアウト・インが頻発しするというようなことを頻繁してシステムの動作が極端に遅くなること」と解答欄に書けることじゃなくて、そこにあるhddのアクセスランプを見て「これ、スラッシングじゃね?」と気づく人なのだ。」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「いくら正しい回答文が書けても、スラッシング起こしてるマシンを「このCPU遅い」と評してしまう人は理解してるとはいえない。 てな感じで、ペーパーテストで理解度を測るには問題をよく練らないと暗記勢に正解されてしまう」 / Twitter
- 高品質なアラートで開発者のオンコールを軽減する
- Lightstep、自社の可観測性プラットフォームにインシデント対応機能を追加
- Netflix Presents Telltale、アプリケーションヘルスモニタリングツール
- Kubernetesクラスタ上で動かすSidekiqに対してヘルスチェックを導入した話 | Money Forward Engineers' Blog
log
- takuya@osaka(令和最新版)さんはTwitterを使っています: 「Syslogって<Facility>.<Severity> <LogFile>になるけど、syslog 集約するとき<Host>.<Facility>.<Severity> <LogFile>のように書きたいよねぇ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ログ出力のためのベストプラクティス: - 処理の前でなく、処理の後に過去形でログ出力せよ。 - 可変部分をメッセージに埋め込まず、末尾に追加せよ。 - WARNINGとERRORを区別せよ。 - INFOはビジネスレベルの情報、DEBUGは技術的な情報に使い分けるべし。 https://t.co/T56yxz3Z2a」 / Twitter
- My Logging Best Practices – Thomas Uhrig
- Masahiko SawadaさんはTwitterを使っています 「Logical Decodingの1つのバグ修正にもう2日位使ってるけど3日目突入。構造体をそのままシリアライズしてるからマイナーバージョン間でも構造体のメンバ変数を変えられない気がする。それもあって良い直し方を模索中。」 / Twitter
- RookoutがLive Loggerを発表し、ログレベルが動的に変更可能に
- 今すぐ ALB のアクセスログをクエリする - クックパッド開発者ブログ
- TVer におけるログ収集のポリシー (1/2) - TVer Tech Blog
- TVer におけるログ収集のポリシー (2/2) - TVer Tech Blog
- ログデータのETLを高速化した話 - Nature Engineering Blog
- 引き継いだアラートだらけシステムを黙らせて、テスト数を3倍にした - エムスリーテックブログ
- SuperTest と msw 併用時に warning log を抑止する | by Yosuke Kurami | Medium
- 分析用ログデータに対する品質保証としての異常検知 - クックパッド開発者ブログ
イベントログ
- Windows 7/8.1/10などで一部アプリが接続不能に ~2021年6月のパッチが原因 - 窓の杜
- Windows 10, version 21H1 | Microsoft Docs
- Event Logging Reference - Win32 apps | Microsoft Docs
- Windows Event Log - Win32 apps | Microsoft Docs
blksnap
- FadisさんはTwitterを使っています: 「Linuxでブロックデバイスのスナップショットを得る新しい方法blksnapがバニラカーネルに入りたがっている話。Linuxのブロックレイヤーに対するフックを追加する仕組みdevice filterを追加し、この機能を使ってブロックデバイスへの書き込み時に元の内容を別のデバイスに移す https://t.co/BO3dIkPNmF」 / Twitter
- FadisさんはTwitterを使っています: 「サービスが動いている状態でストレージのバックアップを取ると、バックアップしている最中にストレージの内容が書き変わり、一貫性の無いバックアップが出来上がる。これを防ぐ最も簡単な方法はバックアップ中にサービスを停止させることだが、これが許容できないことは珍しく無い」 / Twitter
- FadisさんはTwitterを使っています: 「スナップショットはストレージのある時点の状態をスナップショットを破棄するまで見れるようにする仕組み。スナップショットを作った後でファイルを変更したり破棄したりしても、スナップショット越しに見ると変更前のファイルが見える。ここからバックアップを取れば一貫性のあるバックアップができる」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxにはスナップショットを作る為の既存の仕組みが2つある。1つはdevice mapperを使う方法で、lvmのボリュームに対して変更箇所の情報と変更前の内容を記録するボリュームを追加し、以降の変更が反映されていないように見えるブロックデバイスを作る。この仕組みはlvmを使っていないと使えない」 / Twitter
- FadisさんはTwitterを使っています: 「2つめはbtrfsに備わっているスナップショットで、こちらはスナップショットが作成されていた場合にファイルの変更をブロックデバイスに書いた後、古いファイルの内容を捨てるのを遅延させる事で、特定の時点のファイルの内容を見続けられるようにしている。この仕組みはbtrfsを使っていないと使えない」 / Twitter
- FadisさんはTwitterを使っています: 「blksnapはスナップショットを得る為の第3の仕組みで、ブロックデバイスであれば何にでも適用できるのが特徴。スナップショットの実現方法自体はdevice mapperの方式と似ていて、任意のブロックデバイスに対して変更箇所の情報と変更前の内容を記録するブロックデバイスをくっ付ける」 / Twitter
- FadisさんはTwitterを使っています: 「device mapperのスナップショットは物理ボリュームのブロックデバイスとマウントするブロックデバイスの間に明示的に挟まっているLVMの層で、書き込み時に元の内容の退避を行う処理と、読み出し時に必要に応じて退避した内容を読む処理を実装している」 / Twitter
- FadisさんはTwitterを使っています: 「一方blksnapの場合このような読み書きを乗っ取れる層が間に無い。そこでblksnapではブロックレイヤーに届いた読み書き要求を処理する前にフックするdevice filterと呼ばれる仕組みをブロックレイヤーに追加し、ここでdevice mapperの場合と同様の処理を行う」 / Twitter
- FadisさんはTwitterを使っています: 「あらゆる種類のブロックデバイスに対して後からフックを仕掛けられる為、lvmを強いられる事もなく、btrfsのような特定のファイルシステムを使う必要もない。スナップショットを使う時だけスナップショット用のストレージを取り付けてバックアップが終わったら外すような運用も容易になる」 / Twitter
- OS作れないマン 技術書典3 あ11企さんのツイート: "AnsibleとかChefはデプロイだけに集中しており、その後の監視とか更新などはスコープ外。Day2運用(監視、ログ、更新、バックアップなど)をするためのツールがBOSHである。 #paasjp"
- katoさんはTwitterを使っています 「Infrastructure as Codeは、とってもいい流れだと思うんだけど。構成管理したいが故に、手作業で秒で終わることを、ず〜〜〜っと依存関係解決に費やしている時もあり。あとは、サーバでスクリプト回したらいいことなのに、サーバレスしたいからずっとRubyかPythonいじるだけの時とかもある、本末転倒感」 / Twitter
宇宙線
- Sadayuki FuruhashiさんはTwitterを使っています 「メモリが宇宙船で異常になりうる環境でどうやってコード書くんだろうな…ソフトウェアでメモリの誤り検出符号を実装するのってかなり難しそう。検証直後に壊れる可能性があるわけで」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@frsyuki ハードウェアで対処するのが普通だと思います。 よくある3台ハードウェアを積んで多数決で決める奴とか、宇宙というよりは業務用が主用途ですが https://t.co/uVjGh5yIC1 のあたりの話とか…」 / Twitter
- Tandem や Stratus の目指した世界は今に引き継がれてるのか? - cat-a-log
- Sadayuki FuruhashiさんはTwitterを使っています 「@n_soda おおーこんな世界があるんですね」 / Twitter
- 香港むらかみさんはTwitterを使っています 「@frsyuki @n_soda クソリプですが、自動車制御ICも三重設計だと設計部の友人が言っていました。恐らくは似た設計概念から派生しているのではないかと思います。次は新幹線系のハードウェアが気になりますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「スペースシャトルが初飛行したころは、コンピュータを3台だったか5台だったか積んで多数決で決めるみたいな解説を一般のニュースでもやっていたのだけど、全く意味がわからなかったな」 / Twitter
- ををつかさんはTwitterを使っています 「@miura1729 アポロも同じコンピュータ3台で一台がエラー出ても他の2台が動いていればてな事をしていましたね。大気圏外では宇宙線が減衰しないので、コンピュータの回路に当たり誤動作をさせる可能性が有るとかが理由だった様な記憶があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「この手の多数決で演算結果を決めるシステムってどうやってテストするんだろう?っていつも思う」 / Twitter
- 宇宙から降り注ぐ放射線を「ブラウザのエラー」で検出するアイデアについてMozillaが解説 - GIGAZINE
- This Week in Glean: What Flips Your Bit? – Data@Mozilla
- Ryou Ezoeさんのツイート: "Windowsカーネルにはしばらくの間、少電力モードから復帰するときにキャッシュを無効化してメモリにも書き出さないコードが入っていた。理由は宇宙線によるメモリエラーの回避のため https://t.co/x9fZakM5Gg"
- For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache – The Old New Thing
Twitter
その他
OS
- Makoto Kato ︎︎さんはTwitterを使っています: 「本日のマジかよ案件。。。。 "This stopped working on Xiaomi devices with MIUI 12" https://t.co/cnvQT5UMv1」 / Twitter
- c++ - How to Start Service from NDK android? - Stack Overflow
- Makoto Kato ︎︎さんはTwitterを使っています: 「たぶん、callerがshellかどうかをチェックしてるっぽいんだが、そんなのでセキュリティが強化されると思ってんだろうな、xiaomi...」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Xiaomiのデバイスをデバッグしてたら、開発者目線だと、OSなんてベンダーカスタマイズ不可のブラックボックスかGPLライセンスでのOSSの二択がベストとしか思わないな」 / Twitter
上位下位
- hasimotoさんはTwitterを使っています: 「昨晩色々調べてみたけどみんなアドレス数値が大きな方をupperとかhighとかよんでた。 upperだけでみるとビット列やバイト列のMSB側をupper bytesみたいな言い方も多いのも確かだった。 個人的にはどっかに流儀ありそうで探したけどね落ちした。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「0番地を "high" にする流儀ってどこらへんにあるのかしら(素朴な疑問) x86系でhigh memoryって言った場合、物理アドレスが基本となるアドレス空間(20bitとか32bitとか)に収まらない領域を指すし、68系でもhigh=アドレスがでかい、のはず」 / Twitter
- きんのじさんはTwitterを使っています: 「今日、某社のドライバ開発エンジニアと噛み合わなかった内容です。 Q:メモリの上位番地とは?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「それとも低位・高位ではなく下位・上位という語を使った場合の日本語固有の話?」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@kazuho メモリマップを描くときに一番下を0番地にする流儀と一番上を0番地にする流儀の違い?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@anohana それならわかるので、高低で言えば問題ないってことでよいのかしら」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「@kazuho とはいえ自分もhigh addressと言われたら番地が大きい方を無条件に思い浮かべちゃいますね」 / Twitter
負荷分散
- naoyaさんはTwitterを使っています: 「x86 や Linux カーネルの本読んだら負荷分散できるようになるなんて、当時は全く思いいらなかった。本当に偶然読み始めてそれに気がついて、当時最も困っていた問題の解答がその目の前にあった本に載っててびっくりしたのを今でも覚えている」 / Twitter
- naoyaさんはTwitterを使っています: 「負荷分散のコツというのは、負荷をどう分散させるかということじゃなくて、OS なり何なりの処理系がハードウェアという有限なリソースを効率的に扱うために何をどう抽象化しているかを知って、その効率化を阻害しないように系を組む、ということなんだよね」 / Twitter
- naoyaさんはTwitterを使っています: 「なので、カーネルが OS をどう抽象化しているかを知ればしるほど、システムを組むときにどう組めば良いのかがクリアになるし、負荷が高いときの原因がどこにあるかを切り分けることも簡単になる」 / Twitter
- naoyaさんはTwitterを使っています: 「けどそんなこと、カーネルの本手に取るまで1ミリもわからなかったですね。それを分かってない状態で「負荷分散するためにカーネルを理解する」という方針は立てられないですよ」 / Twitter
- naoyaさんはTwitterを使っています: 「オライリーの Linux カーネルの第2版を買って積ん読にしてたら第3版が発売されることを知って、高かったのにもったいないことしたなーとパラパラめくったら、なんか知りたいことがめっちゃ書いてあった・・・という偶然がたまたま自分の身に起きたっていう」 / Twitter
- naoyaさんはTwitterを使っています: 「OS が効率化のためにやっていることを阻害しないように系を組むってどういうことだろうというツイートをみかけたので、簡単な一例を ただし、10年くらい前の当時の Linux カーネルの挙動をベースにしているので、今は少し違うかも知れない」 / Twitter
- hmskさんはTwitterを使っています: 「@naoya_ito MyISAM のための read_file.pl を懐かしみました」 / Twitter
- naoyaさんはTwitterを使っています: 「@hmsk いとなつかし」 / Twitter
- higeponさんはTwitterを使っています: 「@naoya_ito @hmsk なつかし。キャッシュに載せるやつですよね。」 / Twitter
- naoyaさんはTwitterを使っています: 「@HigeponJa @hmsk そうそう笑」 / Twitter
- naoyaさんはTwitterを使っています: 「Linux にはローカルのファイルシステムからデータを読み取ったらそれをメモリに可能であればキャッシュしておくという vfs という仕組みがあります。いわゆる仮想ファイルシステムです」 / Twitter
- naoyaさんはTwitterを使っています: 「このファイルシステムのキャッシュの仕組みは比較的シンプルで、キャッシュできるメモリが OS に空いていればそれをキャッシュ領域として利用するようになっています。つまり OS はほっといたら、空きメモリを、一度読み取ったファイルのためにキャッシュに使うようになっている」 / Twitter
- naoyaさんはTwitterを使っています: 「なので、アプリケーションが利用したいメモリとは別にある程度余裕を持たせてメモリを積んでおけば、アプリケーションがデータとして読み取ったものは、ローカルのメモリにキャッシュされるので更新されない限り高速に読み出すことができます」 / Twitter
- naoyaさんはTwitterを使っています: 「じゃあ、そのアプリケーションが利用したいメモリはどれぐらいだと見積もれば良いのか。それは常駐させているプロセスが実メモリとして最大どこまで使うかを取得するカーネル統計があるので、その辺から見積もることができる」 / Twitter
- naoyaさんはTwitterを使っています: 「ただしサーバーを例えばマルチプロセスで常駐させている場合、プロセス間で物理メモリ領域を共有している場合があるので、全プロセスの合計がアプリケーション用のメモリ領域になるとは限らない。実際にはそれよりも少なくなる」 / Twitter
- naoyaさんはTwitterを使っています: 「この辺が一通り分かっていれば、どういうデータはほっといて OS にキャッシュさせればよくて、どういうデータは場合によっては明示的にキャッシュしなければならない、などの方針が明確に立てられるようになります。あるいは、どの程度のメモリが各実行環境に割り当てられるようにマネージすればよいか」 / Twitter
- naoyaさんはTwitterを使っています: 「ただし昔と違っていまはコンテナのクラスタベースなので、メモリを各 Pod なりにどの程度割り当てるのかというのはより複雑です。」 / Twitter
- naoyaさんはTwitterを使っています: 「昔話をすると、当時こういう OS のキャッシュメカニズムをよくわかっていなくて、キャッシュしなくていいものを memcached にキャッシュしたり、データベースのIO チューニングのためにやみくもに各種パラメータをいじったりということを繰り返したりしていました」 / Twitter
- naoyaさんはTwitterを使っています: 「この辺理解したら、そういうのはすべて無駄で、すなおに OS に判断を委ねる。そのためにボトルネックになっていそうなパラメータだけを調整すればよい、ということに気がつきました。」 / Twitter
- naoyaさんはTwitterを使っています: 「ちなみにキャッシュされているローカルのメモリのデータ (ページ) の更新も実際にはカーネルスレッドで非同期で行われるようになっていて、メモリが更新されたあとに遅れてディスクに同期されるようになっています」 / Twitter
- naoyaさんはTwitterを使っています: 「よって、プログラマにはディスクからデータを読み取っているようにみえて、すべてはメモリにあるキャッシュから読んだり、キャッシュに書いたりしているのが通常です」 / Twitter
- naoyaさんはTwitterを使っています: 「負荷分散は多くの場合は IO やメモリなどの限られた有限なリソースの枯渇との戦いなので、不必要にそれを使わないようにするためには、OS がそれをどう利用したいか知っているほうがよい、という話でした。」 / Twitter
- Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSの仕事の1つは資源管理です。資源管理には大別して時間管理と空間管理があり、その大部分がScheduling問題とAllocation問題に帰着します。これらは最適手法と発見的手法のどちらかで解決できますが、いずれも整数問題や確率問題、微積分問題が基礎になっているので数学は大事ということです。」 / Twitter
- Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSのもう1つの仕事は抽象化≒仮想化です。不特定多数のユーザーに対して複雑なシステムをわかりやすく可視化して見せ、使いやすく機能性に優れたインターフェースを提供することですが、これはアーキテクチャデザインやエンジニアリングの知識が求められるので、図工も大事です。」 / Twitter
- hikaliumさんはTwitterを使っています: 「手元で作ってた、OS開発に役立つ仕様書に飛べる索引をwebでも見れるようにしてみた。 (Cloneしてmake downloadすると手元に全部のpdfが落ちてきてリンクも手元のものを参照するようになるので個人的には超便利!) https://t.co/Z5GbWw7N14」 / Twitter
- https://hikalium.github.io/os_dev_specs/
- R. ShioyaさんはTwitterを使っています 「@shirouzu メモリや PCIE デバイス,CPU にしても個々の技術それぞれについてまとまった文献はあっても,それらが組み合わさって最終的に実際のソフトウェアの速度がどうなるかまで踏み込んだものはなかなかない印象ですね.」 / Twitter
- 安川要平/Yohei YasukawaさんはTwitterを使っています: 「"ソフトウェアは何もしないと壊れる" #RubyKaigi https://t.co/3wF4mTsxu7」 / Twitter
- Makoto Kato ︎︎さんのツイート: "アプリをインストールさせないようなOSはまだ理解できるんだけどね、軽さをウリにするんだったら"
- OS自作 uchan_nosさんのツイート: "Kubernatesとかのオーケストレーションツールは,分散OSの機能の一部がユーザ空間プログラムとして実装された例だと思います.つまり現代の分散OS.(というのが最近分散OSを学んで感じたこと)… "
- Katsuhiro SuzukiさんはTwitterを使っています 「OSもどきを作ってたら.bssのクリアで死んだ。何かと思ったら、 ・スタック領域を.bssにおいてた ・起動時memsetで.bssごとスタックを0クリア ・memsetのret命令で0x00000000に戻る ・Illegal Instruction だから.bssはcallなしでクリアする派と、スタックは初期化しない領域に置く派がいるのか……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「渡されたブートイメージのfsが微妙に壊れてるせいでTLSスタックのPRNGがコケるくらいが一番印象に残ってるやつなレベルです。まだまだだな」 / Twitter
- 🤫sat😪さんはTwitterを使っています 「いままで出会った中で一番強烈なバグってなんだろうなあ - CPUがたまに別の命令を実行 - カーネルの時計が(ソフト的に)止まる - 20個くらいのCPUが複雑に絡み合うデッドロック - カーネルがユーザ空間への戻りアドレスを間違える」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「原因がある問題は誰かが直せば済むんですよ! 本当に辛いのは、環境起因で直しようがない現象についてクレームが来たとき」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「OSの授業で論文を読む授業があったけど、その中で一番印象に残ってる論文はこれ。発想の転換がすごいと思った。 https://t.co/x0Qe6sptIW」 / Twitter
- atc proceedings - nightingale.pdf
- Miura HidekiさんはTwitterを使っています 「CP/CMSですね。https://t.co/aMbX2mEL5Z 学部の頃に使っていてなんでこんなめんどくさい構成なんだろう?って思いましたが、今思うとものすごい先見の明だなって思います。」 / Twitter
- z/VM - Wikipedia
- 齊藤明紀さんはTwitterを使っています 「ユーザーが個別に仮想マシンを持っててそこでシングルユーザーOSを使う、という形態で、シングルユーザーOSの使い勝手そのままにマルチユーザーにした事例はメインフレームであったはず。」 / Twitter
- Ryou Ezoeさんのツイート: "なんでDockerみたいなものが流行っているのかと問に対して、WindowsやMacしか使えない管理者権限を持たない環境でも動くからという説が提唱されていて、GNU Hurdは正しかったのかと呆然としている。"
- Rockridgeさんのツイート: "FirefoxにPolicy Engineと呼ばれるコンポーネントが追加される見込み。システム管理者が作成したJSONベースのカスタマイズ設定を読み込み、本体に反映させる。また、"ESR 60"という表記にも注目すべきだろう。 https://t.co/VZpDE6sj2H"
- セキュリティ・キャンプ2022:B3 Policy as Code入門 - Google スライド
Advent Calendar
その他
- Bluetooth Low Energy Advent Calendar 2014 - Qiita
- Bluetooth Low Energy Advent Calendar 2015 - Qiita
- Bluetooth Low Energy Advent Calendar 2016 - Qiita
- 一人トランザクション技術 Advent Calendar 2016 - Qiita
- 武蔵野 Advent Calendar 2017 - Qiita
- カーネル/VM Advent Calendar 2012 : ATND
- カーネル/VM Advent Calendar 2013 - Qiita
- Kernel Advent Calendar 2017 - Adventar
- オープンソースカンファレンス Advent Calendar 2018 - Adventar
- Advent Calendar 2018 - panda's tech note
- OS-CPU Advent Calendar 2019 - Adventar
- 東京大学 品川研究室 Advent Calendar 2020 - Qiita
- NetBSDのカレンダー | Advent Calendar 2021 - Qiita
- モダン言語によるベアメタル組込み開発のカレンダー | Advent Calendar 2022 - Qiita
BitVisor
- BitVisor Advent Calendar 2015 - Qiita
- BitVisor Advent Calendar 2016 - Qiita
- BitVisor Advent Calendar 2017 - Qiita
- BitVisor Advent Calendar 2018 - Qiita
- BitVisor Advent Calendar 2019 - Qiita
- BitVisor Advent Calendar 2020 - Qiita
- BitVisor Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita
- BitVisorのカレンダー | Advent Calendar 2022 - Qiita
Linux
- Linux Advent Calendar 2013 - Qiita
- Linux Advent Calendar 2014 - Qiita
- Linux Advent Calendar 2015 - Qiita
- Linux Advent Calendar 2016 - Qiita
- Linux Advent Calendar 2017 - Qiita
- Linux Advent Calendar 2018 - Qiita
- Linux Advent Calendar 2019 - Qiita
- Linux Advent Calendar 2020 - Qiita
- Linuxのカレンダー | Advent Calendar 2021 - Qiita
- Linuxのカレンダー | Advent Calendar 2022 - Qiita
- 本日12月1日より,2017年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
- 自作OS Advent Calendar 2014 - Adventar
- 自作OS Advent Calendar 2016 - Adventar
- 自作OS Advent Calendar 2017 - Adventar
- 自作OS Advent Calendar 2018 - Adventar
- 自作OS Advent Calendar 2019 - Adventar
- 自作OS Advent Calendar 2020 - Adventar
- 自作OS Advent Calendar 2021 - Adventar
- 自作OS Advent Calendar 2022 - Adventar
GUI
- Desktop Screen Resolution Stats Japan | StatCounter Global Stats
- Linus Tech TipsさんはTwitterを使っています: 「which one are you? https://t.co/hTlcS8sBLh」 / Twitter
- Windows のキーボード ショートカット - Windows Help
ODF
組版
和文と英文の間
- mod_poppoさんはTwitterを使っています 「日本語LaTeX(pLaTeX/upLaTeX/LuaTeX-ja)では、和文文字直後の改行は空白に変換されずに消えます(数式前であるかどうかは関係ない)」 / Twitter
- 乙 (w/ snow)さんはTwitterを使っています 「texで和文打つとき、数式モードの前後をどうすべきかよくわからなくなってしまったので、有識者の方にお教えいただきたい。 半角スペース入れた方がいいと思うんだけど、数式前で改行した時はスペースが消えてしまう。 https://t.co/W42f7m85CZ」 / Twitter
- 乙 (w/ snow)さんはTwitterを使っています 「「は?」とノリで書いてしまいましたが、和文文字直後の改行はスペーシングされないのはおっしゃる通りで至極まっとうですね。 https://t.co/kmnp1X0uxs」 / Twitter
- えびちゃんさんはTwitterを使っています 「数式に限らず、和文英文間は自分ではスペースは入れないときの間隔が正しい(ただしエンジンによっては事情が異なる) とかだった記憶がある」 / Twitter
- mod_poppoさんはTwitterを使っています 「俺もそんな気がする」 / Twitter
JLREQ
- 日本語組版処理の要件(日本語版)
- 日本語組版処理の要件(日本語版)
- Requirements for Japanese Text Layout 日本語組版処理の要件(日本語版)
- html5j 電子出版部 勉強会「JLREQとCSS」参加レポート — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
- 村田 真さんのツイート: "#html5jpub EPUBではむりやりページを作り出しているし、見開きもやっている。しかし、袋小路だと思う。電子書籍リーダの相互運用性という一点をとっても、CSSでページや見開きをやってほしい。"
- maihaさんのツイート: "ジャスティファイしない場合は、文節など意味のある単位で自動改行されたほうがいい。左揃えで行末を揃えない場合にももっとよみやすくなるといい。 #html5jpub"
- Satoshi Kojimaさんのツイート: "日本語のJustifyには行長計算が必要。行長可変なWebブラウザだと無理(ものかのさん) 確かにその通り。だが普通の人にはそれなりに読みやすいはず。さらに改善する仕様のドラフトは存在している。 (村上さん) #html5jpub"
- 渋川よしきさんのツイート: " ってのはノンブレークで改行しないスペースだけど、問題なければスペースを表示しないんだけど、ここで改行してもいいよっていう真逆の文字ってあったりするのかな?"
- 渋川よしきさんのツイート: "お、ゼロ幅スペースあるじゃん。 https://t.co/wKfUDSLBjN"
- JIS X 4051からJLREQへ - JAGAT
- 渋川よしきさんのツイート: "文字をWebGLで描画とか死亡フラグ。JLREQを読んでみよう。日本語を表現するってめちゃ難しいよ。ましてや自分がしらない言語とかね。僕はWebAsmが普及してもDOMを置き換えることは絶対ないって思ってる。"
- JLREQの今日と明日、そしてCSS日本語組版 | ICT CONNECT 21
- html5j電子出版部 勉強会「JLREQとCSS」まとめ - Togetterまとめ
- W3C「日本語組版処理の要件(JLReq)」の改訂作業がGitHubで from Shinyu Murakami on 2016-12-23 (public-html5jp@w3.org from December 2016)
- jlreq + expl3 で学会文書クラスを作った話 | ラング・ラグー
- 92895101_01.pdf
ALREQ
- W3C I18n Activityさんのツイート: "Text Layout Requirements for the Arabic Script just published as First Public Working Draft. https://t.co/gAPaALZyzz Still plenty to do! Looking for comments and contributors. https://t.co/vg9IIU7D0F (Or help with other languages: https://t.co/wAVGziqMox)… https://t.co/YhzpsCOQxR"
- Text Layout Requirements for the Arabic Script
- Issues · w3c/alreq
- Language matrix
TeX
任意コマンド実行
- そくらてす@F欄大学の大学院生さんはTwitterを使っています 「よく考えたら、LaTeX コードから任意のコマンドを呼び出せるはずなので、どこの誰が書いたのかわかんない LaTeX コードをタイプセットするの怖くないか……?」 / Twitter
- ワトソンさんはTwitterを使っています 「LuaLaTeX じゃないし -shell-escape じゃないから,まあ大丈夫だろ.ヨシ👉」 / Twitter
- mod_poppoさんはTwitterを使っています 「-shell-escapeをつけてなければそこまで「任意」にはならないんじゃなかったっけ(前に-shell-escapeなしで任意コマンド実行ができる脆弱性があって騒ぎになった)。LuaTeXもos.executeとかはコマンド実行の制限の対象になる」 / Twitter
- mod_poppoさんはTwitterを使っています 「まあ「信頼できないTeX文書は不用意に実行しない方がいい」のはそう」 / Twitter
- 某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
- ワトソンさんはTwitterを使っています 「restricted shell escape に起動した LaTeX で処理する分にはネットで入手した LaTeX ソースを何の確認せずにタイプセットして平気ということになっているけれど,llmk で処理する場合は余裕で任意コードを実行できるのでまったく安全とはいえない(ちゃんと何が実行されるか確認してください)」 / Twitter
- ワトソンさんはTwitterを使っています 「だけど,たぶんこの種のセキュリティ的な問題は latexmk や make などのもっと一般的なビルドツールでも同様に存在するはず(だよね?)」 / Twitter
histric
histric-1
- Apache FOPを使ってみる~Knuthの分割アルゴリズム - X-plus
- Wayback Machine
- TeX 以外の組版・レイアウトシステム - TeX Wiki
- 日本語組版あれこれ - おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか
- TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
- monge.dvi
- Line breaking — Xxyxyz
- The Tectonic Typesetting System
- tectonic-typesetting/tectonic: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
- TeXやLaTeXで図の挿入に時間がかかるときに挿入を省略する方法 - Qiita
- TeXの脚注をなんとかする - golden-luckyの日記
- 日本語化プロジェクト 〜TeX Live と learnlatex.org〜 / localize - Speaker Deck
- keiichiro shikano λ♪さんはTwitterを使っています 「PostScriptを知っていると.bstが読めて便利」 / Twitter
- .bst file - Google 検索
- 日本語 LaTeX の新常識 2021 - Qiita
- 某ZR流パラメタトークン思考法 - マクロツイーター
- TeX tuneup 2021: 7年ぶりの TeX アップデート | ラング・ラグー
- ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
- ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter
- 表とリスト(List Driven Table in LaTeX )
- Yusuke TeradaさんはTwitterを使っています: 「コンパイルするたびにページ数が増えてauxが収束しないLaTeX文書の例: https://t.co/PqjVH9glxU」 / Twitter
- An example of TeX source whose aux does not converge - Online LaTeX Editor Overleaf
- VSCodeとDockerでLaTeXを用いた多機能論文執筆環境を整える
- SwiftLaTeX: WYSIWYG LaTeX Editor for Browsers
- luacasパッケージを使ってLaTeX文書内で数式処理をする - Qiita
- 徹底解説! マクロの等価性を理解する - Qiita
- egraphs-good/egg: egg is a flexible, high-performance e-graph library
- LaTeX2HTML - TeX Wiki
- TeX言語のトークンと値、字句解析から展開と実行まで | 雑記帳
- uint256_tさんはTwitterを使っています 「TeXのコンパイルが遅いのって、何が理由なのですか」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@uint256_t プロファイリングして調べたわけではないですが,組版処理アルゴリズム上段落を組み上げるときに行を分ける箇所を選択する処理で少なくとも O(n²) 以上の計算量を要し,典型的なケースでも線型ほどには良くならないので,そこがボトルネックになりそうには思います」 / Twitter
- uint256_tさんはTwitterを使っています 「@bd_gfngfn なるほど. (そういえばブラウザを作っていたときに同じようなことで悩んでいた気がします)」 / Twitter
- TeXの字句解析器の動作について
- 某ZR( ざんねん🙃)さんはTwitterを使っています: 「初期はLuaTeXもXeTeXの同様にバックトラックしていたけど 「あまり直観的でないし、なんにせよ ^^^123 はU+0123にならないのだから一貫性ももてない」 ということで今の“単純な”仕様に変えた、という経緯があったはず。 #TeX #TeX言語」 / Twitter
- mod_poppoさんはTwitterを使っています: 「LuaTeXの^^^^記法はバックトラックしないけどXeTeXのそれはバックトラックするのか」 / Twitter
MathML
KaTeX
- KaTeX – The fastest math typesetting library for the web
- Khan/KaTeX: Fast math typesetting for the web.
- mizchiの叫び「MathJaxはやめろ」
- 信頼できる情報筋によるとさんのツイート: "mathjax というやつは世の中に現存するJSの中でも最も行儀が悪い振る舞いをするものの一つです。気軽に導入していいものではない。というか積極的に避けねばならない。あいつはXML的木構造を破壊しながら自身の特殊構文に継ぎ直してる。"
- Ryou Ezoeさんのツイート: "例の@mizchi の連投、本人はKaTeX使ったことがないだろ。KaTeXはCJK文字への対応が悲惨すぎて使い物にならない。あとエラー通知に例外を使うし完全に無効化できない。"
- Ryou Ezoeさんのツイート: "KaTeXは自分だけが数式を記述する限定的な用途で使うもの。大勢のどこの馬の骨かもわからないユーザーが数式を記述する場合にKaTeXなど実績の違いで到底使い物にならない。"
- Ryou Ezoeさんのツイート: "ちなみにユーザーに自由にtexを書かせると何が起きるかと言うと、お絵描きしだすし日本語も当然使い出す。KaTexでは無理。"
- Ryou Ezoeさんのツイート: "私は$力=質量 \times 加速度$とか書きたいし$\text{力}=\text{質量} \times \text{加速度}$とは書きたくない。だいいちこれでは意味が違ってしまう。"
- 本の虫: KaTeXを使ってみた感想
- 七誌さんはTwitterを使っています: 「KaTeXですが、REPL云々は関係なくて、単にHTMLの先頭に <!DOCTYPE html> を書くだけでいけました。 KaTeXはコードがシンプルで良いですね。 MathJaxでは動的生成したTeXでunderbraceに日本語を使うと "t is null" という謎のTypeErrorになりましたが、KaTeXではそういう問題はありません。 https://t.co/rS39gQW43y」 / Twitter
MathJax
AsciiMath
- piqcyさんのツイート: "LaTeXより簡単に数式が書ける記法のAsciiMathが登場。MathJaxと連携してレンダリングを行う。 プログラムで数式を書く感じでかける。行列が[[a,b],[c,d]]みたいな感じで書けるのはよい。 https://t.co/MdDncvRLRc"
- hardmaruさんのツイート: "AsciiMath is a simple markup language for math. Easier to use than LaTeX. https://t.co/T2ONWTDxPY https://t.co/VjuJGfn9ol"
- AsciiMath
- asciimath/asciimathml: A new home for asciimathml
- 七誌さんのツイート: "MathJaxで表示させると右クリックでMathMLとTeXの両方のコードが表示できるので、MathJaxに全部任せるのが無難っぽい。まあ、変換だけが目的ではないので、ある程度は中身を知っておかないといけなかったから、自作は無駄ではなかったんだけど。"
- 七誌さんのツイート: "少し前までMathJaxとWYSIWYG入力の折り合いをどう付けるのか困っていた。Idrooの数式入力はかなり頑張っているけど、同じようなものを再実装するのは回り道過ぎる。しかし最近はプログラムで数式を生成してMathJaxで表示するだけで、当面の用は足りる気がして来た。"
- 七誌さんのツイート: "数式処理とコンパイラはASTをこねくり回すのが似ているので、どうにかうまく両立させられないものかと思っている。"
- LaTeX入門 - TeX Wiki
- MathJax
- MathJaxによる数式表示
- MathJaxの使い方
- MathJax - Wikipedia
- Easy Copy MathJax
- 黒木玄 Gen Kurokiさんのツイート: "#MathJax MathJaxのCDNサーバーが4月30日に止まるらしい! 一つの対処法はhttps://t.co/T9iVtP1wEMの代わりにhttps://t.co/qtQEQneRDsを使うように変更すること。詳しくは→ https://t.co/2yV0j7zSGs"
- MathJax CDN shutting down on April 30, 2017
- cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
- 蘇摩さんのツイート: "slackで数式表示するための拡張,math-with-slackを入れてみたのですが,かなり良いです. https://t.co/jEH8Fk0L0G https://t.co/UVDVbEuKYm"
- fsavje/math-with-slack: Rendered math (MathJax) with Slack's desktop client
- だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxは昔から\newcommand使えなかったっけ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「10年前のMathJaxでの\newcommandの実装です https://t.co/4M6tjsb03A」 / Twitter
- MathJax/newcommand.js at v1.1-latest · mathjax/MathJax
- だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxと(本物の)LaTeXの違いの一つに、「(MathJaxでは)\newcommandのスコープが数式環境を貫通する」というのがあるんだよね。一方KaTeXは\gdefを実装した」 / Twitter
- ワトソンさんはTwitterを使っています 「MathJax は昔から \newcommand が使えて,しかもそのスコープ(有効範囲)がアレなせいで,Mathtodon ができた頃に迷惑 definition を含む投稿で他者のツイートの見た目を好きなようにいじって遊ぶやつ(通称 \newcommand テロ)ができたんじゃなかったっけ.」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そんなこともあった……かもしれない……(かなり忘却している)」 / Twitter
- MathJax記法の試し書き - dec9ue's diary
- MathJaxの試し書き2 - dec9ue's diary
- Mathematical Markup Language - Wikipedia
- MathML - Wikipedia, the free encyclopedia
- MathML 日本語情報
- W3C Math Home
- MathML | MDN
- MathML 要素リファレンス - MathML | MDN
- MathML 耐久テスト - Mozilla | MDN
- MathMLマニュアル
- WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 | 電子書籍、電子出版のCAS-UBブログ
- Rockridgeさんのツイート: "次期Safari 10.0ではMathMLの表示品質を改善したほか、数式にハイパーリンクを埋め込めるようになった。 / “Improvements in MathML Rendering | WebKit” https://t.co/YcLOYp5YxX"
- Rockridgeさんのツイート: "Fx51:mathml.disabledの設定をtrueにすることで、MathMLを無効化できる。 / “1173199 – Add a pref to allow disabling MathML (Tor 13548)” https://t.co/yHRWPH4614"
- 「One Note for Windows 10」で文字列を数式に変換可能に - PC Watch
- Rockridgeさんのツイート: "Chromeの次世代レイアウトエンジンでは、MathMLのサポートが復活するようだ。 / “Review of Igalia's Web Platform activities (H1 2017) - Frédéric Wang” https://t.co/LZvEj1sAVA"
- MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
- MathMLの未来を考える―(2)『MathML数式組版入門』の大学図書館への寄贈活動について | 電子書籍、電子出版のCAS-UBブログ
- ここ最近のMathMLについてのメモ - 水底の血
- Ziphil/ZenithalMathWeb: Web rendering engine for mathematical formulae
- KindleでMathMLの現実
- 第3期のMath Working Groupが始動した話 | フロントエンドBlog | ミツエーリンクス
- てらモス🈚さんはTwitterを使っています: 「これmathlogで可換図書いてる人どうやって書いてるん(´・ω・`)?」 / Twitter
- mod_poppoさんはTwitterを使っています: 「Mathlog知らないけどamscdかxyjaxでは」 / Twitter
- 結城浩さんはTwitterを使っています: 「非常にシンプルなテキスト→数式変換Webアプリを作りました。 𝑎𝑥³ + 𝑏𝑥² + 𝑐𝑥 + 𝑑 = 0 𝑓(𝑥) = 𝑥² + 3 みたいに、ちょっとした数式をツイートするときに便利です。複雑な数式には対応していません。 * * * Text to Math Converter https://t.co/1vg0jUv4bV @hyukiより」 / Twitter
- Text to Math Converter - textmath.hyuki.net
- 「Google Chrome 109」安定版リリース、MathMLによる数式埋め込みなどが追加 - GIGAZINE
- Makoto Kato ︎︎さんはTwitterを使っています: 「MathMLは、Igaliaによって (Frédéric Wang) 3 Browser Enginesの実装・メンテを行われているようなもので。。。。」 / Twitter
- Igalia Brings MathML Back to Chromium | Igalia
- Tsukasa #01 (5x vaccinated)さんはTwitterを使っています: 「MathML 対応は嬉しい……と思ったら、画像 3 枚目に見えている MathML 表示で既に式として破綻している部分が存在している。マトモな MathML 対応だと期待するべきではない。 おかしいのは、根号 (√) が本来分子、分母の両方を覆わなければならない場所で分子しか覆っていない箇所。」 / Twitter
- 窓の杜さんはTwitterを使っています: 「「MathML」に対応した「Google Chrome 109」が正式版に ~Windows 7/8.1対応はこれが最後/17件の脆弱性も修正 https://t.co/3soiBAmYmb https://t.co/Ivu6WOYEAR」 / Twitter
- 「MathML」に対応した「Google Chrome 109」が正式版に ~Windows 7/8.1対応はこれが最後 - 窓の杜
- ウイドウとオーファンって、なかなか深い | 電子書籍、電子出版のCAS-UBブログ
- 䭄さんのツイート: "多言語組版処理システムは一人の人間がつくるものじゃないよ。"
- SATySFi - Google 検索
- 『数式組版』を組む技術:基本版面(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:基本版面(2)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:基本版面(3)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:脚注|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:柱とノンブル|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:出力ルーティーン(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:出力ルーティーン(2)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:PDFの生成(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術 Advent Calendar 2019 - Adventar
- 七誌さんはTwitterを使っています: 「アラビア文字の組版についての資料を見付けた。 https://t.co/W6JDp7Rhlw アラビア語だけでなくペルシア語、ウルドゥー語、現代ウイグル語についての記載もある。 「筆者は専門家ではありません」とのことだけど、詳細にまとめられていて凄い。 多言語組版研究会というのがあったのですね。」 / Twitter
- moji >> アラビア系文字 > 「アラビア系文字の基礎知識」
- Arabic.pdf
- 日本語組版に関連するCSS規格の策定状況について - Speaker Deck
- Requirements for Chinese Text Layout - 中文排版需求
- Requirements for Hangul Text Layout and Typography : 한국어 텍스트 레이아웃 및 타이포그래피를 위한 요구사항
- Indic Layout Requirements
ピボットテーブル
- chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「意外と名前が付いているテクニックもあって、「重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える」みたいなのって、名前がついてるはずなんだよね。自分も思い出せないし言っても多分伝わらないけど。」 / Twitter
- Feature #11076: Enumerable method count_by - Ruby master - Ruby Issue Tracking System
- Shiro KawaiさんはTwitterを使っています 「Scheme (R7RS-large) だとbagですね。自明でないかもしれませんが、内部的にデータ⇒個数で持ってます。特定のデータの個数を得るのはbag-element-count https://t.co/RGSFeDKmUp https://t.co/pozyzYhz12」 / Twitter
- Gauche ユーザリファレンス: R7RS large
- Keigo ImaiさんはTwitterを使っています 「ピボットテーブル… https://t.co/ZWEeJs2xkX」 / Twitter
MS
- Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
- Hack Patch!: CEMIについて
- ExcelのセルがAI対応へ進化 - PC Watch
- Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
- Microsoft、Excelカスタム関数としてJavaScriptのサポートを発表
- Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
- Shirouzu Hiroaki(白水啓章)さんのツイート: ".xlsファイルは開くだけで、開いた日付がNTFSタイムスタンプ形式で格納されるようだ。(末尾-404~-396の8byte) ちなみに、ファイルの更新日付は変更されない。 このパターンだとアーカイブビットでも見ない限り、変更を検出できない。 (mmap系のファイルだと良くある話だが)"
- 拡張子「.iqy」の添付ファイルに注意! ウイルス感染狙うメールが1日だけで29万件も拡散 - INTERNET Watch
- Satoshi NakagawaさんはTwitterを使っています 「Joel on Software に Joel が Excel チームにいたときに Bill Gates に直接レビューを受けて 1900年の日付について質問されるエピソードがあって、Lotus 123 との互換性問題まで完全に答えてたけど、ああいう感じで完全に事実を把握してるエンジニアがいいエンジニア。 https://t.co/FvGm5fARLe」 / Twitter
- My First BillG Review – Joel on Software
- Word での変更履歴の記録
- Excelの「おすすめピボットテーブル」がAIで強化、デザインも一新 - 窓の杜
窓の杜
- 【Excel】他人から受け取った表の構造がわからない!エクセルで数式やデータの入力規則が設定されたセルを特定するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 「Excel」にセルの選択を一部解除する機能が導入 ~「Office Insider」2018年1月版 - 窓の杜
- 【Excel】クリック操作だけで簡単に売上の前月比計算ができる!エクセルのピボットテーブルで効率よくデータを分析するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 【特別企画】Excelのお株を奪う? 「EmEditor」は連番入力や氏名の分割・結合も自動化できる! - 窓の杜
- エクセルで表を印刷する際にミスを減らせる3つのステップに注目(3月第4週) - 窓の杜
- “SUM()”関数を独語版「Excel」で使うには……行き過ぎたローカライズの悲劇に終止符を打つアドインが“Microsoft Garage”から登場 - やじうまの杜 - 窓の杜
- 【Excel】表を再利用するため数値を削除したら数式まで消してしまった!エクセルで簡単に数式以外のデータだけを削除するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- エクセルで数式が入力されているセルだけを見つける方法に注目(5月第4週) - 窓の杜
- 「LibreOffice」に1件の脆弱性、ODF文書に埋め込まれたSMBリンクを介して情報が漏洩 - 窓の杜
- 【Excel】「㈱」「㍿」「株式会社」などの表記がバラバラ!エクセルの名簿で会社名の表記を統一するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- エクセルで普通では検索できない“?”などの文字を検索する方法に注目(7月第2週) - 窓の杜
- 【Excel効率化】作業フローなどに使う図形をすばやく書きたい!手書きで書いた図をエクセルで使える図形に変換するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- Excelの結合セルもまるごと移動! 「RelaxTools Addin」に選択セルの移動コマンドが追加 - 窓の杜
- Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
- 「VirusTotal」の検出率0% ~オープンドキュメント形式(ODF)のマルウェアが確認される - 窓の杜
できるネット
- 【エクセル時短】関数よりも便利!? 知る人ぞ知る「フラッシュフィル」はこんなときに威力を発揮する | Excel | できるネット
- 【エクセル時短】大きな表を会議で見るなら必須! ムダにスクロールしないウィンドウ操作の鉄板ワザ3選 | Excel | できるネット
- 【エクセル時短】VLOOKUPの応用ワザ。2つの条件で値を検索するために組み合わせる関数とは? | Excel | できるネット
blog
- 村田真のXMLブログ
- 村田真のXMLブログ
- ドキュメント技術とプログラミング言語の相似について - golden-luckyの日記
- なんでドキュメントといったらXMLが出てくるのか - golden-luckyの日記
- XMLをLisp評価器で実行する - golden-luckyの日記
- XMLをつぶす機械を作る機械を作る - golden-luckyの日記
- XMLのつぶし方 - golden-luckyの日記
Wikipedia
- OpenDocument - Wikipedia
- OpenDocument - Wikipedia
- Extensible Markup Language - Wikipedia
- XML - Wikipedia
Qiita
- Pythonでパワポの説明資料(報告書)を生成する - Qiita
- パワーポイント内のテキストをgrepする - Qiita
Twitter
- Yuki Yugui Sonodaさんのツイート: "割と良くできたExcel文書を見て、文書作成にExcelを使う人の気持ちが初めて分かってしまった。Wordと違って出力用紙設定の幅に依存してないから、主に画面で見る目的の割と幅の広い画像・表入り文書に便利なんだな。 で、その文書は初めから社内Wikiに書きゃ良かったと思うんだけど"
- SODA Noriyukiさんのツイート: "「メモリーダンプみたいなものをそのまま保存」って、Smalltalkのプログラムの保存(システムイメージのスナップショット)もそんな感じだし、Xerox文化~って感じがする>RT"
- 渋川よしきさんのツイート: "ほんこれ。Excel嫌いすぎる人は、ウェブですぐに超えるものを作れると思ってる。数式使いたい、ドラッグでまとめて入力、コピペとか言われた瞬間に死ぬ。… "
- qsonaさんのツイート: "社内で表計算ソフトウェアを利用したマスタデータ管理の仕組みを作ったときに「なんで表計算ソフトなの?管理画面つくればいいのでは?」と聞かれることが数回あったが、「表計算ソフトは100点だとは思っていないが80点以上ある、80点を超えるソフトウェアを作るのはとてもむずかしい」と説明している"
- Teppei Satoさんのツイート: "まさにその通りで、80点の管理画面付きデータ管理を量産できるのがkintoneです。… "
- qsonaさんのツイート: "80点で良いし80点のものを自分で作るのってすごい大変なんですよね。。 社内でヘボいツールが出来るたびに、kintoneを適用すべき場面なんだろうなあって思っているんですが、次に見かけたらちょっとpushしてきますw… "
- 楠 正憲さんのツイート: "ほぼほぼOffice Suiteがブラウザで動くようになって、印刷の問題が解決し、ドライバの問題もなくなって、台数ならPCよりもスマホのエコシステムが大きくて、ようやっとデスクトップLinuxの障壁がほぼほぼ霧散したのに、デスクトップUX自体が陳腐化してしまって誰も自由化することに興味を持たない時代"
- 勝(まさる)さんのツイート: "Office OnlineのPowerPointで図を描いてみると、幻想だとわかる。"
- 勝(まさる)さんのツイート: "出張先のホテルで、パワポ修正しようとOffice Onlineに食わせた後、図を調整しようとしてもまともに線すら引けなくてどうにもできず、修正前のままプレゼンしたのは懐かしくも苦い思い出。"
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「google spreadsheetでΣはsum()だがΠは何だ、とぐぐったところproduct()だった。なるほど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「数10GBの単一XMLすごい(笑) XMLって、SGMLより機械検証しやすい(閉じタグ必須とか)、みたいな位置づけの後発規格と聞いた記憶あるけど、そんな気遣いを吹き飛ばすサイズの暴力感(笑)」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「怪談だわ…(;゜Д゜) XMLって任意箇所に任意の長さのスペースや改行を突っ込めるし、タグに対応する閉じタグを探すには頭から1文字づつの文字列検索するしか無いので、パーサーの実行効率もメモリ効率も悪いと思う。」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「今まで扱ったXMLの中で一番地獄だったのは地図情報のGMLで、日本地図全部が数十ギガバイトのXMLファイル1本になっているやつだな。とにかくデータが重いし、普通のXMLパーサーで読むと死ぬのでいろいろ工夫が必要だった。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 https://t.co/L0y1ZrvmoU この手の話は仕事で使うためにいろいろ検討したが、結局元となる帳票をスキャナーで取り込んで、必要な記入事項をテキストボックスを張り付けて対処するってのが一番いいことに気づいた」 / Twitter
- ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 - Speaker Deck
- がくぞさんはTwitterを使っています: 「個人的にはExcelのファイルをやりとりする事自体もう止めたいのよね…… Google SpreadSheetだとA1へのURLを共有とかできるし データの保存場所がーとかで利用NGな事もあるけど」 / Twitter
- Henry ∋IT🦊🐵さんはTwitterを使っています: 「ExcelファイルのA1にカーソル合わせて保存するのがマナーとか、心底どうでも良いしThe Japanって感じがするからやめさせたい。 やめない?」 / Twitter
- κeenさんはTwitterを使っています: 「新しいラスタ/ベクタ画像のエディタのプロジェクトが立ち上がってる。ノードベースの変換とか面白い機能が入ってるっぽい GraphiteEditor/Graphite: 2D raster & vector editor that melds traditional layers & tools with a modern node-based procedural workflow. https://t.co/0bkCM6mu8y」 / Twitter
- GraphiteEditor/Graphite: 2D raster & vector editor that melds traditional layers & tools with a modern node-based procedural workflow.
- κeenさんはTwitterを使っています: 「今のところベクタ画像の扱いを主に実装していてInkscape的なツールになってそう。Rust製ということもあってクリエイティブツールにありがちな頻繁に落ちる問題が起きにくくなってるといいな」 / Twitter
- Nao_uさんはTwitterを使っています 「80〜90年代の日本のいろんなゲーム会社で使われたドット絵エディタや描画手法の資料。それぞれ個性があって面白い。すごい分量 https://t.co/lwx2AavhUc」 / Twitter
- VGDensetsu: Designing 2D graphics in the Japanese industry
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「お絵描きのマーカー処理。 ・マスク(画素とマーカー色をAND処理) ・半透過(画素とマーカー色をαブレンド) とあり、WindowsのSnipping Toolは前者、他のお絵描きソフトでは後者もある。 で白背景なら前者が文字がクッキリ、後者はぼんやり(最上段参照)。 だが黒背景だと前者はダメダメに。 https://t.co/bltgzh2c52」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、IP Messenger のキャプチャ用お絵描き機能は、無駄に頑張っていて、どちらでも選べる(笑) https://t.co/6fmy9vV8ae」 / Twitter
- sumimさんはTwitterを使っています: 「エクセルのすべてはSUMIFSの下準備 お前は別だSUMPRODUCT #字余り」 / Twitter
- ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
- Announcements and Press Releases - Open Document Format (ODF) 1.2がISO/IEC(国際標準化機構/国際電気標準会議)によって国際標準26300:2015として発行されました
- オフィス文書のためのオープンな文書形式(Open Document) v1.0改正原案作成委員会 | IPSJ/ITSCJ
- [mixi]ODFのJIS化 - ODF (OpenDocument Format) | mixiコミュニティ
- [mixi]ODF V1.2 が OASIS 標準になりました。 - ODF (OpenDocument Format) | mixiコミュニティ
- Extensible Markup Language (XML) 1.0 (Fifth Edition)
- Extensible Markup Language (XML) 1.0 (第五版)
- クラウド会計ソフト「freee」のExcel用アドイン提供開始、独自のfreee関数で勘定データを自動で取り込み - INTERNET Watch
- 「LibreOffice 6.2」リリース、NotebookBar UIが正式機能に | OSDN Magazine
- Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | DevelopersIO
- SXML
- Index of /office/OpenDocument/
- Googleスプレッドシートに数式や関数の推測/提案機能 - PC Watch
- 「LibreOffice 7.2.6」が公開 | OSDN Magazine
- XML Parser for Cの使用
- 世界を劇的に変えた大発明の1つ「スプレッドシート」誕生秘話 - GIGAZINE
ミニアプリ
- Eiji Kitamura / えーじさんはTwitterを使っています 「iOSのApp ClipsもOSレベルのミニアプリという見方をして比較すると面白い。」 / Twitter
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「iOS14の新機能App Clipsって地味に見えるもののミニアプリ時代の到来を予感させるな、と。日本でいち早く対応した東京・麻布のTAILORED CAFEで実際に「ダウンロード不要のネイティブアプリ」を体験した様子を、海外のミニアプリ動向と合わせて紹介する記事を書きました↓ ☕ https://t.co/uiXC9K7XUu」 / Twitter
- ミニアプリ時代が日本にも到来? 「App Clips」を東京のカフェで使ってみた | Coral Capital
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「@agektmr App Clipsは、すごくInstant Apps的に見えます。でも当初、Instant Appsは決済非対応だったので、だいぶUX的には違う受け止められ方をしている気もします」 / Twitter
- Eiji Kitamura / えーじさんはTwitterを使っています 「@knsmr インストール不要なアプリという点で結果的に似た立ち位置になりましたが、App Clipsの方が(意図していたかはともかく)ミニアプリに近い扱いですよね。さっきシェアした資料を見る限り、中国のミニアプリはウェブ標準どころか全部バラバラな仕様なので、今後広がっていくと開発者は大変そう…」 / Twitter
- Eiji Kitamura / えーじさんはTwitterを使っています 「中国のミニアプリの技術仕様まとめ。超絶面白い。 // Learning from Mini Apps https://t.co/yxmkZwYyUA」 / Twitter
- Learning from Mini Apps - Google スライド
- 成瀬さんはTwitterを使っています 「この「中国のミニアプリ」は古代からある”Web Wideget”ってやつだな」 / Twitter
- 大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する - クックパッド開発者ブログ
情報管理の概念
- UIPedia
- Kazuho OkuさんはTwitterを使っています 「ディレクトリ(木構造)により様々な種類の情報をまとめて管理するってアプローチ、別に正しい解でもなんでもないもんなぁ。 インターネットでもディレクトリサービス(Yahoo!)は検索(Google)に駆逐されたし、ウェブ上のサービスは、サービス(アプリ)にアクセスしてリスト+ラベル+検索で情報に...」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「Palmが受け入れられた理由の一つはユーザーに対してファイルやフォルダーという概念を全く見せなかったからだと思ってます。」 / Twitter
- Munechika NishidaさんはTwitterを使っています 「一見「なるほど」と思うのだけれど、違うと思っている。実際には、PC初心者にとって常にハードルなのが「ファイルとフォルダ」なので、単にそれらの概念は「覚えないとわからない」という話ではないか、と:「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE https://t.co/FCbwIrXYEf」 / Twitter
- 「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE
- 崎村夏彦『デジタルアイデンティティ』日経BPより発売中さんはTwitterを使っています 「@hackerdudesan これはスマホにも踏襲されてますよね。 ある一定以上に情報量が増えると途端に不便になるけど、そこまでは便利。」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@_nat ですね。タグや検索をうまく使うスキルが必要ですね。」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@kazuho ですよねえ。システムとしてどういった形態が正解なのかと、利用者にどう意識させるかでも違った方法が必要そうですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「アクセスするという Palm やスマホと同じモデルですよね。あるアプリのデータを他の(自作の)アプリに読み込ませるみたいな使い方をやらないのなら、ディレクトリなんて要らないんじゃないの」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「つまり、データフォーマットと、データを扱いアプリケーションを分割可能な世界というのが、どれだけ必要なのか、という話。分割可能であったほうが進化しやすいだろうというのは言えるんだろうけど。」 / Twitter
セッション管理
セッション管理
- えび@プログラマーさんはTwitterを使っています: 「いろんなシステムで 「ログアウト時にセッション切れてたらログアウト画面でなくセッション切れ画面へ遷移する」 という動きがみられるのですが システム的には意味はわかるのですがUI的にはおかしいいのではないかと思ってます。 職場でこう主張すると 「UI的にもおかしくない」 って言われる」 / Twitter
- W3C、中央集権的な管理を不要にする「Decentralized Identifiers (DIDs)」(分散型識別子)の仕様が勧告に到達 - Publickey
- PBT_APMPOWERSTATUSCHANGE イベント (WinUser.h) - Win32 apps | Microsoft Docs
- SYSTEM_POWER_STATUS (winbase.h) - Win32 apps | Microsoft Docs
- ponyopoppoさんはTwitterを使っています: 「数百回に1回くらいしか再現できないバグを調査していた結果、UUID(v4)が衝突していたことに気付いた。UUIDは衝突しないものと思い込んでいたこともあって調査にすごい時間がかかった。やっと解放される」 / Twitter
- ponyopoppoさんはTwitterを使っています: 「ちなみに衝突する原因は、https://t.co/X1itqeFHcz の少し古いバージョンをreact-nativeで使うと乱数生成器をMath.random()にフォールバックしているからだということが分かった」 / Twitter
- uuid - npm
- reroさんはTwitterを使っています: 「@ponyopoppo Math.randomは仕様上シードの指定は無くて、返された倍精度浮動小数点数の仮数部52ビットのうち下位32ビットをUUID生成に使ってるのか。よくある線形合同法の下位桁の問題じゃなさそう。だとすると単純に周期の問題?実装は処理系依存で、最近のブラウザだとXorshiftとかになってて問題無さそう。」 / Twitter
- reroさんはTwitterを使っています: 「@ponyopoppo 下位32ビットじゃなくて上位32ビットやな。」 / Twitter
- ウェブサイトがJavaScriptとCookieなしで個人を追跡する方法が一発で理解できる「No-JavaScript fingerprinting」 - GIGAZINE
- 「推測不可能性」だけで安心?セキュアなURL生成について考える - Flatt Security Blog
- MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- なかのん&マジックさんのツイート: "秀丸、昔のアプリっぽく、実にOS自体のクラッシュからの復旧が弱いなぁ……"
- なかのん&マジックさんのツイート: "まあ、現職のままで新しいアプリをがっつり趣味で開発するってのは無いけど、やるとしたら、定期的にバックグラウンドのスレッドでセッション情報を書き出し続けるように基本的なところで設計するかな。"
- なかのん&マジックさんのツイート: "昔じゃ考えられへんけど。"
- Kazutaka MatsudaさんはTwitterを使っています 「OSが再起動のためアプリケーションを閉じるよう催促 → restore sessionできると思い沢山のタブを開いていたFirefoxのウィンドウを閉じる → 実はもう一個ウィンドウが生きていた → 再起動後 restore sessionするも残っていたウィンドウのタブしかrestoreされず……」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@KazutakaMatsuda Firefoxなら複数世代のバックアップが残っているので、セッションを失ってからの起動回数が少なければ復活できる可能性が高いと思います。以下をどうぞ: https://t.co/7NoJ9aDx5v」 / Twitter
- Firefoxで開いているタブの復元(ツリー型タブのツリー構造も) | サクエのテック備忘録
- ミックさんはTwitterを使っています 「アメリカの物流は超低品質なのでAmazonの荷が届かないことは日常茶飯事だが、感心するのはここで決して「追跡調査」という異常系に踏み込まないこと。「届いてない」ボタンを押すと速攻で同じ荷が発送される。異常系を正常系で回収するオペレーションの方がTCOが低くスケーラビリティがあるのだろう。」 / Twitter
- “PCの調子がおかしいな”と感じたときに役立つ「信頼性モニター」 - 窓の杜
- Rockridgeさんのツイート: "Fx62:ハングをモニタリングするためのスレッドを整理することで、消費メモリの増加を防ぐとともにパフォーマンスの低下を抑制した。 / “1448040 - clean up hang monitor threads” https://t.co/Neaj0sLEC2"
- 2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
- mattnさんはTwitterを使っています 「机上では1550京年だけど、衝突判定するのにも時間が掛かるので、衝突はするかもだけど判定はもっと時間掛かりそう。」 / Twitter
- UUIDを重複させるにはどれだけ時間がかかるのか試してみた
- OdashiさんはTwitterを使っています 「UUIDはほぼ衝突しないから安全というの、UUIDの仕様の外でいくらでも衝突に繋がるバグを埋め込まれるので、実用的には特段エラーのチェックから逃げられるわけではない」 / Twitter
- OdashiさんはTwitterを使っています 「チェック自体は必要だがダブるケースについての常設のワークフローを組む必要はないくらいのアレ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい時刻ベースのUUID形式(v6,v7,v8)提案。データベースのキーとして使える。どれも128ビットで長さは変わらず、一意ではあるが (バイナリ、テキスト表現どちらも) ソートしたときに時系列順になるように設計されている。 https://t.co/xj2xdhC8VQ」 / Twitter
- draft-peabody-dispatch-new-uuid-format-01
- チェシャ猫さんはTwitterを使っています 「ElasticQuota: 最初から Quota を決めてしまうと Namespace 間で融通しづらいので、割り当てる最大量と最小量に幅を持たせて CRD で定義。 #k8sjp」 / Twitter
- チェシャ猫さんはTwitterを使っています 「Quota は融通が効かない、という話だと PFN 製の kube-throttler とも似ている。これは Quota に引っかかったときにエラーを返すのではなく Pending に留める。 #k8sjp https://t.co/j7YtkY1Vks」 / Twitter
- everpeace/kube-throttler: throttling your pods in kubernetes cluster.
- 10秒で衝突するUUIDの作り方 - Speaker Deck
- 第707回 シンプルでおしゃれなモニタリングツールUptime Kuma:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- ASCII.jp:Windowsのレジストリなどに見られるGUIDとは? (1/2)
- なかのん&マジックさんのツイート: "最近、ひとつのアカウントでしかログインできないアプリの設計ってクソだなって思うようになってきた。"
WM
- ドッグさんはTwitterを使っています 「ウィンドウマネージャ実装したこと無いから一度やってみたい気もするな.タイル型は木なんだと思うけど,レイアウト情報をどう持つんだろう」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp XMonad は位置とサイズのリストを返す関数を保持してる感じ https://t.co/U7T5ITGd5w `a` は Window ID」 / Twitter
- anekos / xmonad-conf / src / XMonad / Layout / Harakiri.hs — Bitbucket
- ドッグさんはTwitterを使っています 「@anekos ありがとうございます.やっぱ任意のレイアウトに対応するにはウィンドウとそのレイアウト情報の組をリストに平坦に持つべきな感じしますね」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp この場合、持っているのはあくまでも関数だと思います。(都度計算する) また、レイアウト関数を二つとって新しいレイアウト関数を返す LayoutModifier みたいなのもあったり。」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp すみません、Window (ID?) のリストも持ってないとですね。」 / Twitter
- ドッグさんはTwitterを使っています 「@anekos 関数を返すのは計算を遅延する目的なんだと思っていたので,あまりそこに焦点を当ててませんでした.レイアウトが分割統治でやれるのかが気になっていました」 / Twitter
- ドッグさんはTwitterを使っています 「パネルを分割するのって素朴に考えると二分木なので親は自分のレイアウトだけ持って,その中のレイアウトは子に再帰的にやらせれば良いかなと思ったけど,それだとできないレイアウトが出てきそう」 / Twitter
- (っ=﹏=c) .。o○さんはTwitterを使っています 「@Linda_pp 四畳半問題ですね https://t.co/vmXNHuOcxR」 / Twitter
- 四畳半問題 - Humanity
- ドッグさんはTwitterを使っています 「@itchyny おお,まさしく似たようなことを考えてました.読んでみます.ありがとうございます!」 / Twitter
- komorebiを導入してみる
- LGUG2Z/komorebi: A tiling window manager for Windows
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「わずか50行程度のCで書かれたX11ウィンドウマネージャ。35行のPython版もある。 https://t.co/Bck7rYlj5W」 / Twitter
- tinywm
Restart Manager
- Windows 10プレビュー版、アプリの再起動設定が簡単に - PC Watch
- スタート画面の[電源]メニューに新オプション ~プレビュー版Windows 10 Build 21359 - 窓の杜
- 「Windows 10 20H1」Build 18965が“Fast”リングに ~OS再起動後にアプリを再開するオプションを新設 - 窓の杜
- Windows 10 バージョン1709からのシャットダウン/再起動の新仕様、どうしよう?:その知識、ホントに正しい? Windowsにまつわる都市伝説(109)(1/2 ページ) - @IT
- RegisterApplicationRestart function (winbase.h) - Win32 apps | Microsoft Docs
- c# - Windows EXE実行ファイルのリリースについて - スタック・オーバーフロー
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一番嫌なのは unlink すらも BUSY と言われてしまう(昔の?最近は知らない)HP-UX。 (なお近年のWindows、実行中ファイル削除は不可だけど、リネームは出来る。インストーラ書くのが少しだけ楽に)」 / Twitter
- デスクトップアプリのリスタートマネージャー5(テストツール) – nishy software (ja)
- Windows Vista のリスタート/リカバリ処理の開発 – tsmatz
- Masaru Iritaniさんのツイート: "#WindowsInsiders Skip Ahead ビルド 18855 ではメモ帳で保存し忘れた内容が再起動後に自動で復元されるようです 📝… "
- kkamegawaさんのツイート: "Restart ManagerはVistaがリリースされた時に標準アクセサリー全部サポートしているべきだったと今でも思ってます…そうすればみんな使ってくれたかもしれないのにーと。… "
- Masaru Iritaniさんのツイート: "元々は Vista の新機能だったのですね。ありがとうございます、勉強になりました。… "
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「永続的OS (Persistent Operating System) という考え。たとえOSが再起動してもユーザーランドのプロセスは持続し、再起動直前の状態から復帰して走り続ける。これにより一部のプログラムにはファイルシステムが不要になるなどのメリットが生まれる。 https://t.co/iJN01EfSOw」 / Twitter
- dzavalishin/phantomuserland: Phantom: Persistent Operating System
- Shirouzu Hiroaki(白水啓章)さんのツイート: "OS側ニーズで再起動する場合は、デスクトップ上のアプリケーションが完全復元する仕組みが出来ると良いのだが。… "
- Rockridgeさんのツイート: "Windows版Firefox 61.0.2において、OSの強制再起動後(Windows 10 Fall Creators Update以降は全再起動後)にFirefoxが自動的に起動し、セッションを復元する機能が段階的に有効化さ… https://t.co/tW4OdUYDjo"
- Rockridgeさんのツイート: "Windows再起動後にFirefoxの自動復元が行われる機能は、toolkit.winRegisterApplicationRestartの設定によって有効・無効を切り替えることができる。 / “Firefox 61.0.2 …” https://t.co/uNvvE159cg"
- なかのんクエストさんのツイート: "というか、Windowsってなんで未だにデスクトップアプリのセッション復元に関するAPI整備を未だに行わないんだろうかと不思議。OS側で仕組みを用意してやれば、開発が活発なアプリは追従してくると思うんだけど。"
オブザーバビリティ
OpenSLO
- nwiizoさんはTwitterを使っています: 「OpenSLO v1.0.0 release されたー!ベンダー中立にSLOフォーマットが標準化されたやつ!エコシステムがどんどん盛り上がってSLO as a Code になってくれ… https://t.co/No3ByNiNrs https://t.co/wPCOpt5L6f」 / Twitter
- Release v1.0.0 · OpenSLO/OpenSLO
- nwiizoさんはTwitterを使っています: 「Prometheus SLOとしてはこんな感じのとりくみもある! Easy and simple Prometheus SLO (service level objectives) generator https://t.co/HlGuQJQkNv」 / Twitter
- slok/sloth: 🦥 Easy and simple Prometheus SLO (service level objectives) generator
- nwiizoさんはTwitterを使っています: 「OpenSLO v1alpha との連携もできているっぽいね! https://t.co/Kl4jhioKFv」 / Twitter
- OpenSLO - Sloth
- OpenSLOについて | フューチャー技術ブログ
- オブザーバビリティとは何か?まずはその概念を理解しよう | DevOps Hub | SB C&S
- オブザーバビリティ(可観測性)とは|定義、実現方法、組織にもたらすメリット|Splunk | Splunk
- モニタリングとオブザーバビリティ | AWS マネジメントとガバナンス
- オブザーバビリティ(可観測性)入門ガイド
- オブザーバビリティとモニタリングの違い | AppDynamics | AppDynamics
- オブザーバビリティ(可観測性)がなぜ必要だと考えるのか - YAMAGUCHI::weblog
- Elasticオブザーバビリティ | Elastic
- ASCII.jp:中堅中小企業にも「オブザーバビリティの民主化」を! New Relic
- リモート運用・監視サービス (オブザーバビリティサポート)|システム運用|サービス&ソリューション|ITシステム運用のCTCシステムマネジメント株式会社(CTCS)
ULID
- がくぞさんはTwitterを使っています 「わかりみ。連番にしたいという要件だけなら素直にULID使う方が楽そう。 それでもDB側での採番を使いたいなら Entity を Intersection Types で表現しちゃう方が ID をrwap/unwrapするオーバーヘッドも無くせるし諸々取り回し良さそうな気もします?」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「このへん色々アレしたくなる気持ちめちゃくちゃ分かるんだけど、何やかんや究極的にはidに連番性を期待する仕様を捨てさせる方向で動いた方が良いみたいな所感。あるいはULID。 https://t.co/3rnpr2d9Fq」 / Twitter
- EntityのID発番についてTypeScriptで考える
- がくぞさんはTwitterを使っています 「こんないめっじ。必要あれば isRegistered みたいな user-defined type guard でも作ればよし https://t.co/DMFj2IAuux」 / Twitter
- がくぞさんはTwitterを使っています 「という訳でコメントした https://t.co/3c2EtLRe8y」 / Twitter
- がくぞさんはTwitterを使っています 「だたこの方式の問題点は const foo: Message = { ...略 } const bar: UnregisteredMessage = foo これが通ってしまう事」 / Twitter
- きゅあれもねーどさんはTwitterを使っています 「@gakuzzzz type Entity = { id: mumber, 〜} を先に定義して type UnregistedEntity = Pick<Entity, Exclude<keyof Entity, 'id'>> とした方がEntityの型定義が正しい(Entityはidを持つ)かなぁと思いました」 / Twitter
- がくぞさんはTwitterを使っています 「@curelemonade2 たしかに~」 / Twitter
- ulid/spec: The canonical spec for ulid
- 【WEB】UUIDとULIDの違いって?(’21 6月更新) - 小さなことからこつこつと。
- ULID - shimojubox
- ULID生成器をScalaで実装してみた - Chatwork Creator's Note
- 誕生日の問題とユニークな識別子
- Introduction to {ulid}
- ulid-py · PyPI
- ULID の順序性を確保するには|瀬戸口光宏|note
- ent ( entgo.io/ent ) で ULID を使う
- Shiro KawaiさんはTwitterを使っています 「ULID https://t.co/Otn7Hj4gjU の使い勝手が良さげなのでR7RS Scheme実装書いた。UUIDと同じ128bitだけど文字列にしたとき26文字で生成順にソートできる https://t.co/Qsm52cC8m0」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「うーん、セキュリティ面気にするなら、レコード生成日時がミリ秒単位で分かるULIDは下手すると連番よりもヤバいケースがあるので注意が必要だと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「公知な識別子にタイムスタンプ入れる問題、たとえばツイートがULIDで識別されるなら、プロテクテッドな人のツイートでも、いつツイートしたか、ツイートのリンクが手に入った段階で分かってしまう」 / Twitter
- 伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「結論から言うと外から見えるIDを連番にしないほうが良い。理由は記事冒頭にもある通りスクレイピング問題やセキュリティの問題。 かといってUUIDにもしないほうがいい。理由はMySQLのインデックス実装上の問題。レコード数が増えると顕著にパフォーマンスが低下する。代替案はULID。」 / Twitter
- dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「何が悪いの? https://t.co/Sfa8X2qE3k」 / Twitter
- idをautoincrementして何が悪いの?
- 伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「なおMySQLの場合、AUTO INCREMENTの発番実装はわりとチートをしており、パフォーマンスはすこぶる良い代わりに欠番が発生する可能性がある。この点が問題にならず、かつ内部的にしか使わないならAUTO INCREMENTでも問題ない。」 / Twitter
- Naoki KuzumiさんはTwitterを使っています 「@ito_yusaku 早くUUIDv6,v7が正式に決まってどんな言語でもライブラリの精査とかの手間なく簡単に扱えるようになってほしいですね……」 / Twitter
- 大山ゆっけ(蘇る鈴木佑輔)さんはTwitterを使っています 「@ito_yusaku @miu_hiro_ UUIDまわり以外は記事に正解が書いてあるのに乗っ取り引用RTの方がRTされまくっててかわいそう。」 / Twitter
- がくぞさんはTwitterを使っています: 「あれ?そう言えばulidに推測困難性って必要なのかな?そもそも推測困難性が必要ないものに使う想定だと認識してた。推測困難性が必要な所であればulid使うと序列性など逆に妨げになってしまう気がする?」 / Twitter
- Taro L. SaitoさんはTwitterを使っています: 「Thank @scala_js team for quickly addressing the UUID vulnerability issue in Scala.js. Just released airframe 22.4.1, which includes a fix to generate a secure-random based ULIDs https://t.co/wCWhDOiKC7」 / Twitter
- Release Notes · Airframe
- ソートできるユニークな ID を ULID で採番する - kakakakakku blog
UUID
@LiosK
- LiosKさんはTwitterを使っています: 「一部で話題になったUUIDのv6/v7/v8のドラフトRFC https://t.co/BTmfHohdyE ですが、1年ほど前からGitHubでの議論に参加しています。日本人で首を突っ込んでる人はあまりいなさそうなので、現状について日本語でも少しまとめておきたいと思います」 / Twitter
- A Universally Unique IDentifier (UUID) URN Namespace
- LiosKさんはTwitterを使っています: 「議論に参加したのは以前のドラフトを元にプロトタイプを実装したときにいくつかフィードバックを送ったのがきっかけで、以降1年間ほどの議論はだいたい追いかけています。逆に、それ以前の動きはあまり追えていません。議論自体は数年間続いているので、それ以前にもいろいろとあったと思います」 / Twitter
- LiosKさんはTwitterを使っています: 「まずドラフトのステータスですが、以前日本語でも話題になった https://t.co/dzM4BHHERJ の仕様が継続しています。当時は既存のRFC 4122をそのままにv6/v7/v8を別RFCで定義する方針でしたが、IETF 114以降、v1-v5も含む新しいRFCでRFC 4122を置き換える方針でworking groupが公式に立ち上がっています」 / Twitter
- 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
- LiosKさんはTwitterを使っています: 「まだドラフト00で、以前のドラフトとRFC 4122をマージしたばかりなので、テキストはまだかなり動くと思われます。が、v6/v7/v8の仕様に関してはここ半年ぐらい動いていないので、多少は安定してきたのかもしれません。それ以前はかなり動いていて、特にv7は前述の記事時点から激変しています」 / Twitter
- LiosKさんはTwitterを使っています: 「新ドラフトRFCではRFC 4122の誤謬を訂正しつつv6/v7/v8/Maxの4種類を追加し、さらに実装上の注意点をベストプラクティスとして詳細に論じています。128ビット固定の長さと8-4-4-4-12の16進文字列表現は、ひとまずは据え置かれています」 / Twitter
- LiosKさんはTwitterを使っています: 「v6/v7は時系列順に生成されるUUIDで、今回の改定の主眼です。従来のUUIDはランダムな順で生成されるため、DBのキーとして挿入するとインデックスで使われるB-treeなどとの相性が悪く、これを解決するために時系列順のUUIDが待望されていました」 / Twitter
- LiosKさんはTwitterを使っています: 「v6はv1のフィールドを並び替えることで時系列順としたものです。既存のv1実装を転用したり、v1値とラウンドトリップ変換する用途が想定されています。ただ、v1の1582年紀元100ナノ秒単位タイムスタンプは一般的でないので、v1のしがらみがなければ、Unixタイムスタンプベースのv7が推奨されています」 / Twitter
- LiosKさんはTwitterを使っています: 「v7は48ビットのミリ秒Unixタイムスタンプと、予約ビットを除く74ビット乱数を組み合わせたものです。オプションで、ミリ秒以下の生成順を保証するための乱数初期化カウンターを使用することも認められています。v4とともに、今後の主流になると目されているバージョンです」 / Twitter
- LiosKさんはTwitterを使っています: 「(v7) 当初は小数表現を使ってナノ秒やマイクロ秒タイムスタンプも混在させる案などもあったのですが、議論の末かなり単純化されました。予約ビットやカウンターの使い方は異なるものの、ULIDとほぼバイナリ互換の形になりました」 / Twitter
- LiosKさんはTwitterを使っています: 「v8は予約ビットを正しく埋めればあとは自由というバージョンです。まったく新しいスキームのIDを使ったり、v7ベースだけど生成ノードIDを埋め込みたいとかの用途で使います。他のUUIDと混用するときにこれらが不正なUUIDとしてライブラリから弾かれたりすると辛いので、正式に定めている感じです」 / Twitter
- LiosKさんはTwitterを使っています: 「(v8) 当初はカスタムタイムスタンプ用のバージョンとされたためドラフト00ではそんな記述も残っていますが、それらの制約は撤廃される見込みです。なお、v8のuniquenessは実装次第なので、uniquenessを当てにすべきではないとされています」 / Twitter
- LiosKさんはTwitterを使っています: 「最後のMax UUIDは全ビットを1にしたUUIDで、全ビットを0にしたNil UUIDをビット反転したものです。具体的な用途やセマンティクスは仕様に書かれない予定ですが、番兵法の終端値に使うことなどが想定されています」 / Twitter
- LiosKさんはTwitterを使っています: 「現時点で仕様に織り込まれているのは以上ですが、議論がまとまらず仕様に織り込まれなかった論点がいくつかあります。新しい文字列表現や可変長UUID、新バリアントなどです。これらは一旦棚上げされていますが、今後の動向次第では仕様に織り込まれるかもしれません」 / Twitter
- LiosKさんはTwitterを使っています: 「従来の8-4-4-4-12形式の16進文字列表現は冗長なので、より短いエンコーディングの標準化が待望されています。ULIDのようにCrockford Base 32を使う案が出されましたが、Crockfordアルファベットの採用を正当化する根拠が不足していたり、ULIDのBase 32の計算方法がRFC 4648と異なることなどから難航」 / Twitter
- LiosKさんはTwitterを使っています: 「さらにBase 36、58、62等のより複雑・高密度の方式やbookend approach https://t.co/utaOlSd57Y なども俎上に上がることで収拾がつかなくなり、ひとまず棚上げされています。議論は続いているものの、低調です https://t.co/8FbcPtIhdJ」 / Twitter
- Discussion: Alternate Text Encoding Methods (Crockford's Base32, etc) · Issue #3 · uuid6/new-uuid-encoding-techniques-ietf-draft
- LiosKさんはTwitterを使っています: 「文字列表現は、case-insensitiveでありながら128ビットを25字に短縮できるBase 36を個人的には推していますが、Base 32ほど実装が簡単でないため、あまり人気はありませんでした」 / Twitter
- LiosKさんはTwitterを使っています: 「可変長UUIDも提案されました。用途によっては128ビットは大きすぎるので短縮したり、uniqueness確保のための追加エントロピーを付加するなどのニーズがありましたが、複雑化がペイするほどのユースケースが見つからず、かつ複数文字列表現への対応も難しくなるため、棚上げされました」 / Twitter
- LiosKさんはTwitterを使っています: 「個人的には、128ビットを切ると乱数ベースでuniversally uniqueと言い切るのが難しくなり、中央で各生成ノードにIDを割り当てたりする必要があるので、UUIDの枠組みでIDを短縮するのは難しいと見ています。短縮IDの事例はInstagramのものが参考になります https://t.co/PsC5K6TMqm」 / Twitter
- Medium
- LiosKさんはTwitterを使っています: 「現行UUIDは歴史的な事情によりバージョンとバリアントの予約ビットが入り組んでいてビット操作がうっとうしいため、いっそ新バリアント0b1110を定義してverとvar を1バイトにまとめようという提案もありました。が、そこまでラディカルな提案にはなかなか支持が集まらず、下火になりました」 / Twitter
- LiosKさんはTwitterを使っています: 「以上です。最後になりますが、UUIDの議論に参加するかたわら、「ぼくのかんがえたさいきょうの128ビットID」を仕様化して各言語で実装していたりもします。もしよかったらお試しください https://t.co/ZeKe1252Aj」 / Twitter
- scru128/spec: SCRU128 Specification
histric
histric-1
- Takashi KawasakiさんはTwitterを使っています: 「UUID v4ってバージョン指定で話をする人ならエンジニアとしては信用できるな。他のバージョンを使ってるやつにはどういう理由で使ってるのかを詳しくヒアリングしたい。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「UUIDにはじゃんじゃか新しいバリアントが増えてるのだけど、見れば見るほど、特殊な用途に特化されてて、そんなの、もう別もんでいいやんって思うんだよね。v4に至るまでの経緯で生まれたバリアントに関しては牧歌的な時代だったし、今となっては遠回りしたよねぐらいにしかならないけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、ActiveX。この手の型情報をネットからダウンロードすると名前空間の管理が煩雑だなって思うのですが、ActiveXのようにUUIDでしょうかね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 たぶん名前空間に、人力で名前を付けると大変だし、機械で自動で名前を付けると不自然になりそうな気がします。ただ、UUID でも新たな仕様が出てきてるので、どこかで決定しておかないといけませんが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 この問題についてはActiveXのようにUUIDを割り振る実装とかJavaのようにサイトのURIを名前空間にする実装とか考えられるわけですが、Javascriptがプロトタイプベースの型無しオブジェクト指向であることは実は結構考えた末の結論ではないかと思うのです。」 / Twitter
- UuidCreate function (Windows)
- 【WEB】UUIDとULIDの違いって?(’21 6月更新) - 小さなことからこつこつと。
- Shiro KawaiさんはTwitterを使っています 「ULID https://t.co/Otn7Hj4gjU の使い勝手が良さげなのでR7RS Scheme実装書いた。UUIDと同じ128bitだけど文字列にしたとき26文字で生成順にソートできる https://t.co/Qsm52cC8m0」 / Twitter
- 伊藤 祐策(パソコンの大先生)さんはTwitterを使っています 「結論から言うと外から見えるIDを連番にしないほうが良い。理由は記事冒頭にもある通りスクレイピング問題やセキュリティの問題。 かといってUUIDにもしないほうがいい。理由はMySQLのインデックス実装上の問題。レコード数が増えると顕著にパフォーマンスが低下する。代替案はULID。」 / Twitter
- Naoki KuzumiさんはTwitterを使っています 「@ito_yusaku 早くUUIDv6,v7が正式に決まってどんな言語でもライブラリの精査とかの手間なく簡単に扱えるようになってほしいですね……」 / Twitter
- 大山ゆっけ(蘇る鈴木佑輔)さんはTwitterを使っています 「@ito_yusaku @miu_hiro_ UUIDまわり以外は記事に正解が書いてあるのに乗っ取り引用RTの方がRTされまくっててかわいそう。」 / Twitter
- Taro L. SaitoさんはTwitterを使っています: 「Thank @scala_js team for quickly addressing the UUID vulnerability issue in Scala.js. Just released airframe 22.4.1, which includes a fix to generate a secure-random based ULIDs https://t.co/wCWhDOiKC7」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「APIキー設計案。APIキー文字列をダブルクリックするとAPIキー全体が選択範囲になる、Base58利用で汎用性高い、先頭に固有名をいれることで漏洩時などに検知しやすい、UUIDv4と同等の情報量、それなりに短いなど。わいわい。 / “GitHub - seamapi/prefixed-api-key: Module …” https://t.co/Z6MgGvRAjy」 / Twitter
- 世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
- UUID version 6の提案仕様 - ASnoKaze blog
- MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- 2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
- UUIDを重複させるにはどれだけ時間がかかるのか試してみた
- OdashiさんはTwitterを使っています 「UUIDはほぼ衝突しないから安全というの、UUIDの仕様の外でいくらでも衝突に繋がるバグを埋め込まれるので、実用的には特段エラーのチェックから逃げられるわけではない」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい時刻ベースのUUID形式(v6,v7,v8)提案。データベースのキーとして使える。どれも128ビットで長さは変わらず、一意ではあるが (バイナリ、テキスト表現どちらも) ソートしたときに時系列順になるように設計されている。 https://t.co/xj2xdhC8VQ」 / Twitter
- draft-peabody-dispatch-new-uuid-format-01
- 10秒で衝突するUUIDの作り方 - Speaker Deck
- lef/HAYASHI, TatsuyaさんはTwitterを使っています: 「@espresso3389 まあとは言え、安定運用には寄与するかなとは。」 / Twitter
- ゆきさんはTwitterを使っています: 「「時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様」 https://t.co/HDQ4mTXtvJ 書いた。一気に UUID version 6~8 が出た。」 / Twitter
- 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
- lef/HAYASHI, TatsuyaさんはTwitterを使っています: 「@flano_yuki VersionというよりVariationという感じ?」 / Twitter
- あえとすさんはTwitterを使っています: 「@lef @flano_yuki 後発の方が優れているというわけではないのでバージョンといういい方には違和感がありますが、UUID にはバージョンとは別にバリアントという区分けもあるので紛らわしい。 https://t.co/93YcNUbyF1」 / Twitter
- UUID - Wikipedia
- いがぐりさんはTwitterを使っています: 「@flano_yuki 細かいですが、「時間順にソート可能」だと誤解を生む可能性がありますね。 正確には「タイムスタンプ順」でしょう。 (元の提案自体がこれを区別していませんが) システムクロックがそもそも物理的な時間順になることを保証しないので、当然ながらこのUUIDも「逆転」する場合があります。」 / Twitter
- ゆきさんはTwitterを使っています: 「@__igaguri__ ありがとうございます。おっしゃるとおりだと思います。あくまでタイムスタンプ順ですね。」 / Twitter
- UUIDv6~UUIDv8と uuidrev の動向 - ASnoKaze blog
- Masaki HaraさんはTwitterを使っています: 「トレードオフを考慮して選ばれるものを「バージョン」と呼ぶの違和感がある (UUIDのバージョン、QRコードのバージョンなど)」 / Twitter
- UUID v6, v7, v8 : タイムスタンプでソートできる新しい UUID のドラフト仕様 - kakakakakku blog
- VさんはTwitterを使っています: 「ユニークな ID を base32(uuidv4) と決めて使ってきてるが、悩まなくて済むのがよい。base32 は仕様まで自社で (CTO が) 作りました。https://t.co/irnAwpXD41」 / Twitter
- Clockwork Base32: A variant of Base32 inspired by Crockford's Base32
ID
random id ショートハンド
- mizchiさんはTwitterを使っています: 「これの良いところは他の方法と違って自分で使いたいシンボルを列挙できるところ」 / Twitter
- mizchiさんはTwitterを使っています: 「uhyo くんに指摘されたけどたしかにこれ crypto.getRandomValues() が 0~255が一様に分布してたとしても、chars の数が 256 の約数じゃないと一部に偏る気がしてきた」 / Twitter
- mizchiさんはTwitterを使っています: 「よくないので消しました。あくまでショートハンド用だなこれは」 / Twitter
- mizchiさんはTwitterを使っています: 「random id ショートハンド、chars 64 個に揃えたのでこれで一様に分布してることになるかな const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWQXYZ0123456789_"; [...crypto.getRandomValues(new Uint8Array(10))].map(x => chars[x % chars.length]).join('');」 / Twitter
- mizchiさんはTwitterを使っています: 「ほんとに雑な random id 生成だったら Math.random().toString(32).slice(2) するよ」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「ああ、そういえば、Snowflake っていう64ビットの分散ID生成器があって、某サービスのIDで使われているんですよ。Sony の実装の Sonyflake とかいろいろあるんですけどね。 https://t.co/PI0K5mcsQo https://t.co/y40w7mVgnP」 / Twitter
- Snowflake ID - Wikipedia
- idをautoincrementして何が悪いの?
- Yoshimasa NiwaさんはTwitterを使っています 「で、そのIDの生成規則から、未来に生成されるIDの予測に成功した人いたんですよ。 https://t.co/hSBrakAJ6B」 / Twitter
- Predicting Twitter IDs and self-referential Tweets
- Yoshimasa NiwaさんはTwitterを使っています 「しかも、それで無限再帰する参照が作られたんですよね。まあ、これなんですけどね。 https://t.co/e84unOuwhy」 / Twitter
- fujiwaraさんはTwitterを使っています 「システム内部のID(サロゲートキー)をauto incrementでやるかどうかとそのIDを外に露出させるかは別問題で、そもそも内部のIDは基本外部から使うAPIとして出さないほうがいいと思う」 / Twitter
- fujiwaraさんはTwitterを使っています 「ちなみにこれは外部にintのIDを一切晒していなかったためにできた芸当 https://t.co/cpDX4CkGbJ」 / Twitter
- Amazon Auroraを活用したソーシャルゲームの複数ワールドデータ統合 / AWS Dev Day Online Japan - Speaker Deck
- Gill BatesさんはTwitterを使っています 「@fujiwara これいつも悩みます、参考にさせていただきます!」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「APIキー設計案。APIキー文字列をダブルクリックするとAPIキー全体が選択範囲になる、Base58利用で汎用性高い、先頭に固有名をいれることで漏洩時などに検知しやすい、UUIDv4と同等の情報量、それなりに短いなど。わいわい。 / “GitHub - seamapi/prefixed-api-key: Module …” https://t.co/Z6MgGvRAjy」 / Twitter
- seamapi/prefixed-api-key: Module for generating a prefixed API Key
GIGAZINE
- 世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
- なぜ複雑なシステムでは障害が発生しやすいのか - GIGAZINE
- FadisさんはTwitterを使っています 「xorg-serverからxdmxを削除する提案がなされているらしい。xdmxは複数のホストで実行されているXサーバを繋いで、沢山のホストとディスプレイで巨大なスクリーンを作る機能で、2011年にOpenGLを使うとクラッシュする不具合が報告されてから修正されないまま放置されていた https://t.co/vbKcC9t6TU」 / Twitter
- X.Org Looks To Drop DMX After Being Rather Broken For ~14 Years - Phoronix
- AndroidアプリにおけるUIの状態保存と復元について調べてみた | Money Forward Engineers' Blog
- クックパッドマート最難解ロジック!?「採番」 - クックパッド開発者ブログ
- mattnさんはTwitterを使っています: 「昔 Linux Desktop 使ってた人達は、XDM (今の GDM) に5~6個くらいウィンドウマネージャの違うセッションを登録していて気分次第で使っていたなぁ。僕がそうだった。fvwm/fvwm2/fvwm95/olvwm/afterstep/englightment... なつい。」 / Twitter
レンダリング
レンダリング
レンダリング
レンダリング
CSS Houdini
- CSS Layout API で Masonry Layout | blog.jxck.io
- CSSの嫌なところを解決できる(かも)。そう、CSS Houdiniならね 20170825 we are_javascripters@1…
- HoudiniによるCSS錬金術 - Speaker Deck
- CSS Houdini をつかってキミだけの最強レイアウトを組み立てよう! - めろたんのアレ
- CSS Layout API Level 1
- Houdini Paint API | blog.jxck.io
間違い
- Makoto Kato ︎︎さんはTwitterを使っています 「細かいところをいろいろ突っ込みたくなるような内容だなぁ。微妙になんか間違ってることとか、触れなくてもいい話ふまれていることもある。なんかびみょー https://t.co/NJrPddYnzK」 / Twitter
- Webページがブラウザに表示されるまでに何が起こるのか?
- Makoto Kato ︎︎さんはTwitterを使っています 「hostsファイルのparserなんてWebブラウザが確実に行っているか?って話をまず言いたい。実際DoHのためにparserを持ってはいるが、hostsを見てってのは必ず言える話でもないと思うが。Optionalな話を書くのはどうかなぁと思う」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「細かいところ、ツッコミどころ満載なんだけど、こういうのでみんな理解しちゃうのかなぁ https://t.co/etvpxAnzm8」 / Twitter
- ブラウザレンダリングの仕組み
- Makoto Kato ︎︎さんはTwitterを使っています 「馬鹿な。そんなエンジンあるの? "avaScriptの場合、ASTはJavaScriptオブジェクト ( JSON ) として表現されます。"」 / Twitter
- Webブラウザの作り方 - Qiita
- ヒトでもわかるWebブラウザ自作入門 - Qiita
- めくるめく粗挽きWebブラウザエンジンの世界 - Qiita
- ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE
- Deno で簡易レンダリングエンジンを作ってみた
- ちいさな Web ブラウザを作ってみよう
- 「Let's build a browser engine!」を読んでRustで簡易レンダリングエンジンを作った - dackdive's blog
- Let's build a browser engine! Part 1: Getting started
- ブラウザ動作の理解-レンダリングツリーの構築と描画のタイミング | ゆっくりと…
- ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…
- ブラウザ動作の理解-レンダリングの負荷を測る | ゆっくりと…
- Layout、Paintingとは何か?レンダリングから学ぶWebサイトのパフォーマンス | Dress Cording
- [フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET
- Webエンジニアが知っておくべきブラウザレンダリングの仕組み | 学生エンジニアのプログラミング
- 2017-09-26のJS: Chrome 62 Beta、Safari 11.0、モダンブラウザのレンダリングパイプライン - JSer.info
- MIT研究者ら、Webページ読み込み時間を34%削減するアルゴリズム発表 | マイナビニュース
- ブラウザの作り方 - Speaker Deck
- Servo parallelism
- Rockridgeさんのツイート: "WebRenderの特徴、長所と短所、従来のグラフィックスパイプラインとの違い、Pathfinderとの関係などについて述べたスライド。 / “201808-webrender” https://t.co/V5K6PkSyDv"
- pcwalton.github.io/slides/201808-webrender/
- 今、我々は、 GUI の設計について 何を考えるべきか // Speaker Deck
- 画面のテアリング - 検索
- 【PoC編】XSSへの耐性においてブラウザのメモリ空間方式はLocal Storage方式より安全か? - Flatt Security Blog
宣言的UI
宣言的 UI
- 宣言的UI - Speaker Deck
- 宣言的UIが何か分からなかったので調べてみた
- 宣言的UIって何なん? 〜日本昔ばなし「やめ太郎」〜 - Qiita
- モバイルアプリ開発において宣言的UIフレームワークを利用する際のコンポーネント粒度についての考察 - クックパッド開発者ブログ
- mizchiさんはTwitterを使っています: 「宣言的UIがいかにC++的古典OOPでないかの説明をずっと考えてたんだけど、こうなる気がする React Hooks のUI抽象は親からの入力をメモ化して差分管理する関数同士の木構造 Context は特例的に自分に属する全ノードを監視して副作用を処理した上で、必ず親方向から入力を再分配する仕組み」 / Twitter
- mizchiさんはTwitterを使っています: 「React は hooks で GUI から継承を排除するのに成功したけど、UI コンポーネントという抽象がオブジェクト指向と言われたら無限にゴールズレてく不毛な議論が発生しそうだが、メッセージパッシングではなく単方向化されたメモ化関数でGUIを表現できた、というところがゲームチェンジャーだとは言えそう」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています: 「オブジェクト指向が死んだか否かという議論になると思うのは、どうやったら GUI からオブジェクト指向を排除できるのかさっぱり分からんところだな。」 / Twitter
- mizchiさんはTwitterを使っています: 「少なくともReactの世界においてのGUI抽象は、オブジェクト指向のメッセージパッシングではなく、親からの入力(props) を watch するメモ化関数である、ということはできると思う」 / Twitter
- mizchiさんはTwitterを使っています: 「なので自分が React 教えるときは React の前にフィボナッチ関数のメモ化を手元で実装するとこから教えてる」 / Twitter
- mizchiさんはTwitterを使っています: 「OOP的でない、というのは親子間が双方向メッセージパッシングではないというぐらいの意味で、制約が強いメッセージパッシングではある。ただ、その制約の置き方が非常に関数型的な不変性を元にしていて、発想の源流がストラウストラップ的でもアランケイ的でもないという認識を自分は持ってる」 / Twitter
- mizchiさんはTwitterを使っています: 「Hooks の元は Eff 言語らへんの Algebraic Effects だと認識してます https://t.co/ceNbqdzUOD」 / Twitter
- Algebraic Effectsの型システム入門 - lilyum ensemble
- Algebraic Effectsの型システム入門(2) 多相エフェクト - lilyum ensemble
- なかざん💉💉💉さんはTwitterを使っています: 「@mizchi Algebraic Effectの話が出てくるとOverreactedのこれを思い出しますね https://t.co/CayZzuX3Be」 / Twitter
- 我々向けの Algebraic Effects 入門 — Overreacted
- mizchiさんはTwitterを使っています: 「オブジェクトはUIコンポーネントのメタファであるという極地が MVVM であると思ってるんだけど、React レンダラーが木に発生した差分更新を自動化してしまった世界では、副作用は「自分が起こすもの」から、親方向で発生した「結果」になって、そこから副作用を管理する方法がメモ化になった」 / Twitter
- mizchiさんはTwitterを使っています: 「hooks の要求する memoize key はライフサイクルを表現する一意なキーを要求していて、useEffect の副作用管理は memoize で再発火判定をしてるに過ぎない。 ここを一貫したルールでシンプルだと思うか、内部アルゴリズムが表出していて難しいと思うかが、React をどう思うかの分岐点だと思ってる」 / Twitter
- mizchiさんはTwitterを使っています: 「まあ正直全人類にメモ化関数化されたコンポーネント概念の理解を要求するの難しいと思ってるけど、じんわり崩壊していきがちな MVVM と、memoize keys の伝達ミスって更新されなくなるのと戦い続けるのと、どっちがいいかでいうと、自分は後者のがマシと思ってる感じです」 / Twitter
- mizchiさんはTwitterを使っています: 「そう、巨大 React 管理画面のパフォーマンスとの戦いは、感覚的にも多段階に合成された memoize keys との戦いに等しい」 / Twitter
- mizchiさんはTwitterを使っています: 「vite ほとんど無設定で使ってるんだけど、なんか雑な .html をポンポン生やして雑なプレイグラウンドを開発環境で作りっぱなしにできて試行錯誤のコストめっちゃ下がった気がする」 / Twitter
- mizchiさんはTwitterを使っています: 「これ無設定というのが肝で、変なpluginとか色々挟んでると状態が再現できなくなるけど、無設定だと移植してから動くことがほぼ保証されてる」 / Twitter
- Playwright & Vite ではじめる脱レガシー向け軽量 Visual Regression Test - Cybozu Inside Out | サイボウズエンジニアのブログ
- mizchiさんはTwitterを使っています: 「トレンドとして、昔は仮想DOMは宣言的UIと不可分だったけど、今は仮想DOMじゃないsvelteやsolidも出ていて、とはいえ同じ宣言的UIをゴールとしているので、仮想DOMはあくまで手段の一つにはなってるのはありますが、彼はそこまで理解してなさそう」 / Twitter
- mizchiさんはTwitterを使っています: 「DOM API が一定以上早くなったらmorphdom のアプローチで VDOMと生DOM比較のapplyのが主流になるんじゃないかとは思ってた https://t.co/Ty5TuOf2tS」 / Twitter
- patrick-steele-idem/morphdom: Fast and lightweight DOM diffing/patching (no virtual DOM needed)
仮想 DOM
React
React Native
- React Nativeとネイティブアプリでの開発の違いとは | TechAcademyマガジン
- React Nativeを用いた初めてのiOSアプリ開発 : 選んだ理由と、開発で学んだこと | プログラミング | POSTD
- React Native開発のつらい点まとめ – MMiyauchi Blog
- React Nativeとは何なのか - Qiita
- React NativeのレイアウトエンジンYogaの仕組み [続編] - Adwaysエンジニアブログ
- React NativeのレイアウトエンジンYogaの仕組み [後編] - Adwaysエンジニアブログ
- React NativeのレイアウトエンジンYogaの仕組み [前編] - Adwaysエンジニアブログ
- Webアプリ開発者が出会ったReact Nativeエピソード5選 - Nature Engineering Blog
JSX
- Masaki HaraさんはTwitterを使っています 「ECMAScript読んでからJSX読むと色々な点がunderspecifiedでびっくりするな https://t.co/ja6vJuqHT9」 / Twitter
- JSX | XML-like syntax extension to ECMAScript
- Masaki HaraさんはTwitterを使っています 「JSXFragment: ... `<` `/` `>` とかもかなり曖昧 (TSの実装見る感じだと `<` `/` で1トークンっぽい)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「> names of JSXOpeningElement and JSXClosingElement should match これもECMAScriptだったら § SS: Early Errors § SS: JSXElementNameList と2セクションかけて説明されてるしそのほうが正確」 / Twitter
- Masaki HaraさんはTwitterを使っています 「なんならBabelとTSで挙動が違う例あるな。これとか。 <a href= "\" />」 / Twitter
- Masaki HaraさんはTwitterを使っています 「まあこれはTSのバグと言ってよさそうだ」 / Twitter
- React - Wikipedia
- JSX の導入 – React
- JSX - TypeScript Deep Dive 日本語版
- ES5 + Facebook JSXで書かれたJavaScriptコードベースをTypeScriptに移行させる - CARTA TECH BLOG
blog
mizchi's blog
- Incremental Static Regeneration で実現する次世代のサーバーアーキテクチャ - mizdev
- この DOM がすごい2018: worker-dom - mizchi's blog
- worker-dom-code-reading.md
- SPA が、ウェブ開発のベストプラクティスになる時代 - mizchi's blog
- 実践: React Hooks - mizchi's blog
- WebComponents: ReactNative.View のような CSS の既定値を持つだけの x-view を作ってみる - mizchi's blog
- React Hooks をどう使っていくか - mizchi's blog
- 「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
- WEB+DB PRESS Vol.106 で仮想DOMアルゴリズムについて書かせていただきました - mizchi's blog
- GUI環境でWeb の UIを構築する開発ツールを作りたい - mizchi's blog
Publickey
- React 18正式版リリース。コアとなるレンダリングモデルに並行処理を導入、レンダリング速度、サーバサイドレンダリング速度の向上などを実現 - Publickey
- React 18リリース候補版が公開。Automatic BatchingやServer-Side Renderingのストリーミング対応による速度向上、IE対応の終了など - Publickey
- kintone の共通ヘッダー部分の React 化に責任を持つチームの紹介! - Cybozu Inside Out | サイボウズエンジニアのブログ
- kintoneの内部を(こっそり)Reactに置き換えるチームがあるってホント? - Cybozu Inside Out | サイボウズエンジニアのブログ
- kintoneのフロントエンド刷新に向けた取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- kintone フロントエンドリアーキテクチャプロジェクトで大切にしていること - Cybozu Inside Out | サイボウズエンジニアのブログ
- フロントエンド刷新プロジェクトを成功に導くためのテスト手法の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
- PlantUMLをReact上でレンダリングする | フューチャー技術ブログ
- Mermaid.jsをReact上でレンダリングする | フューチャー技術ブログ
- Reactで決められた候補から選択させるコンボボックスを実装する(サーバーアクセスつき) | フューチャー技術ブログ
- Reactで管理画面(SPA)を作った時の技術選定とか。 - エムスリーテックブログ
- 認証があるSPAのリソースはどうしたらいいのか、わからん - エムスリーテックブログ
- 最近Reactを始めた人向けのReact Hooks入門
- vue-history-state を next.js にも移植した - hidekatsu-izuno 日々の記録
- Qiita に vue-history-state の解説書いた - hidekatsu-izuno 日々の記録
- React のコールバックrefが呼び出されるタイミングは、コールバックrefの実装によって違う - Panda Noir
- data-attributes に色々渡してみる - Panda Noir
- useRef するとき、Readonly をつけると幸せになれるかもしれない - Panda Noir
- useCallbackはとにかく使え! 特にカスタムフックでは - uhyo/blog
- React コンポーネントの定義の仕方によって VSCode の定義元ジャンプの挙動が変わる - mizdra's blog
- ReactのよさはUIが第一級なこと - ベインのブログ
スライド
- Reactアプリケーションのテスト戦略 - Speaker Deck
- 関数型プログラミングの視点で考えるテーマ機能 on React
- SPAセキュリティ超入門 by 徳丸浩 | トーク | PHP Conference Japan 2022 #phpcon #phpcon2022 - fortee.jp
POSTD
- Next.jsアプリのローカライゼーション | POSTD
- React Server Componentsの仕組み:詳細ガイド | POSTD
Zenn
- なんでコンポーネントに副作用があんだよ! 教えはどうなってんだ教えは!
- 最速攻略! Reactの `use` RFC
- UIコンポーネントにドメインを入れるな
- 【React】1度だけ変更されるstateにはuseStateよりuseReducerを使う方が最適
- <div/> のレンダリングから始める React 学び直し
- React で使える、軽量デバッグコンポーネント
- SOLID原則で考えるReact設計
- WasmEdge と QuickJS で React Streaming SSR のコンテナを作ったら 5MB に収まってしまった
- なぜReactは標準でComponentをmemo化しないのか?
Qiita
- Reactに有利なベンチマークを作ってみた - Qiita
- React脳によるUIライブラリ書きやすさランキング - Qiita
- Reactのカレンダー | Advent Calendar 2022 - Qiita
- ブラウザバックしたときに状態を復元する(Vue3, Nuxt3 そして Next.js) - Qiita
- vue と react の DOM の再レンダリングの実行タイミングの差 - Qiita
- 結局useMemoはいつ使えばいいの? 僕の決定版 - Qiita
- Reactを学ぶ上で知っておくべきJavaScriptの基本概念 - Qiita
Twitter
- mizchiさんはTwitterを使っています: 「最近書いたコード、DOMじゃないけど、とあるデータ構造の参照ツリーの最適化に参照構造のCacheTagを計算しといて、参照できるノードごとに参照シンボルのタグを集約しといて、なにか変更が発生するたびにCacheTag でインバリデーションする、みたいな設計したけど、発想が完全に React Reconciler」 / Twitter
- 令掛ベインさんはTwitterを使っています 「テーブルのセルの個数が多くてReactのオーバーヘッドがばかにならないやつ、必要なセルだけ描画する (空のセルに対してReactコンポーネントやDOM要素をインスタンス化しない) ことでなんとかなりそう」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「たしかにuseEffectだと後から呼び出しが発生して、その中でsetStateして、さらに再レンダリングが必要というフラグがセットされて・・・と遠回りではあるし、useEffectが多いと読みにくくなるので、レンダリング中にやった方が良さそうではあるが、どっちでやるべきかという判断をするのが難しそう」 / Twitter
- 藤秋すばるさんはTwitterを使っています: 「レンダリングの最中に state を更新するのが effect 内で setState するより良いとされてるの、そうなんだ……となった https://t.co/tjQNubFKiF」 / Twitter
- You Might Not Need an Effect
- 藤秋すばるさんはTwitterを使っています: 「calculate everything during rendering が最も良いは当然だが、「setState は副作用なのでレンダリング中に呼ぶべきではない」という解釈をしてたのでかなり意外」 / Twitter
- 藤秋すばるさんはTwitterを使っています: 「> When you update a component during rendering, React throws away the returned JSX and immediately retries rendering. そうなんか」 / Twitter
- catnoseさんはTwitterを使っています: 「これ地味に整合性との兼ね合いが辛くて、 「もっと見る」数回分ロードした時のブラウザバックで一気に再フェッチするのは負荷的に避けたい vs キャッシュすると著者がページ遷移後、そのままエディターでタイトルを編集してから一覧に戻ってきた時に「あれ、タイトルが変わってない」となってしまう」 / Twitter
- 結城浩さんはTwitterを使っています: 「最近のWebサイトでよくある好ましくない状況。記事一覧の最後に「もっと見る」ボタンがあってページを伸ばしていける。でもそこから一つの記事を選んでジャンプして、戻るとまた記事一覧は最初の状態に戻っていて「さっきの一覧の続き」を見ていくことができない。noteがそうだけど、noteに限らない。」 / Twitter
- catnoseさんはTwitterを使っています: 「特に記事管理ダッシュボードとかだと「あれタイトルが変わってない」問題は致命的。 というわけで古くからある ← 1, 2, 3 → なページネーションが便利だったりする。 とはいえ関連記事のような部分ならリセットされるより整合性を無視してキャッシュしていた方が体験が良いとは思う。」 / Twitter
- catnoseさんはTwitterを使っています: 「ちなみにReactのswrというライブラリでページネーションを実現する場合は ・revalidateAll()ですべて再検証 ・revalidateFirstPage()で1ページ目だけ再検証 という選択肢が取れる https://t.co/YtZrfffjAi」 / Twitter
- Pagination – SWR
- catnoseさんはTwitterを使っています: 「例えばユーザーの記事一覧ページでURLベースのページネーションがUI的に難しい場合、自分なら ・著者本人によるアクセスのときだけキャッシュせず毎回すべて再検証 ・それ以外のアクセスではクライアントですべてキャッシュ という感じにします」 / Twitter
- botter見習いさんはTwitterを使っています: 「@catnose99 そもそも「もっと見る」を便利だと思ったことがない。極力全部表示して、どうしても重いなら別ページに分けてほしい。」 / Twitter
- React – A JavaScript library for building user interfaces
- Tutorial: Intro to React – React
- Shadow DOM と CSS Containment によって実現されたCSSのスコープの概念 | フロントエンドBlog | ミツエーリンクス
- Vue.jsの仮想DOMと差分レンダリングの仕組み① - Adwaysエンジニアブログ
- Vue.jsの仮想DOMと差分レンダリングの仕組み② - Adwaysエンジニアブログ
- Vue.jsの仮想DOMと差分レンダリングの仕組み③ - Adwaysエンジニアブログ
- WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
- React 18で並列レンダラーを導入
- やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
- なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
- Performance Calendar » React’s diff algorithm
- Reconciliation - React
- Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
- VirtualDOM Advent Calendar 2014 - Qiita
- リアルな DOM はなぜ遅いのか - steps to phantasien
- JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
- Shadow DOM 101 - HTML5 Rocks
Polymer
- Web Componentsを簡単・便利にするライブラリ「Polymer」を使いこなそう | HTML5Experts.jp
- Web ComponentsはじめるならPolymerで | apps-gcp.com
- Welcome - Polymer Project
- いまさら聞けない Polymer 入門 - Polyfills は Web Components の夢をみるか - Librabuch
- Polymer と Web Components の違い9選(もとい Polymer の便利機能) ::ハブろぐ
- Web ComponentsとPolymer【解説編】 - Qiita
- WebComponentsとPolymerコード比較 - Qiita
- Polymer を導入して Web Components による革命に参加する
- Web ComponentsやPolymerについてまとめる – Simple IT Life
- Polymer Japan Meetupに出演しました - EagleLand
Custom Elements
- Firefox Nightlyさんのツイート: "Custom Elements v1 are enabled in Nightly! https://t.co/wccEYEExji - MDN documentation and demo: https://t.co/K17kLhmV2f"
- Custom Elements - Web Components | MDN
- Rockridgeさんのツイート: "Fx59:予定通りNightlyチャンネルでCustom Elements v1がデフォルト有効化された。脱XBLに向けても前進となる。 / “1406825 - [meta] Enable Custom elements v1…” https://t.co/CzPOswCEDP"
- W3C HTML 5.3にCustom Elementsが統合された - 水底の血
- Using custom elements - Web Components | MDN
- [翻訳記事]マイクロフロントエンド - マイクロサービスのフロントエンドへの応用
- フロントエンドエンジニアは Micro Frontends の夢を見るか | メルカリエンジニアリング
- 渋川よしきさんのツイート: "WebComponentはそのままでいいから、InnerHTMLみたいな感じで、内部状態を含めたそのままJS無しで再現可能なDOM/CSS片を取り出す、みたいなものが作られないとつらそうだなぁ、というお気持ち。"
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「VirtualDOMって単純にやるとtreeの変更を常時上から下まで探さないといけないのが効率悪そう、入力元となるobjectへの変更を直接DOMへの変更に翻訳する、みたいな方法じゃダメなのかな、と思って調べてたらどうもAngularがそうらしい https://t.co/ndMBUzIojP」 / Twitter
- Understanding Angular Ivy: Incremental DOM and Virtual DOM | by Victor Savkin | Nrwl
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「templateが分割されているVueも同じアプローチが使えそうね。」 / Twitter
仮想 DOM 無し
supabaseとSolidJS
- Quickstart: SolidJS | Supabase
- SolidJS で Supabase の Row Level Security を試してみた - Qiita
- SolidJS で Supabase の Row Level Security を試してみた | ドクセル
- SolidJS で Material-UI(SUID)を試してみた
- one-aalam/solid-starter-kit: SolidJS with brilliant bells and useful whistles
- solid-supabase - npm
- SolidJSを使用してサイトを構築するための厳選されたリソース。これは、JavascriptベースのインタラクティブなWebアプリケーションを構築するためのまったく新しい方法(現在は1.0)です。構文によってReact/JSXに、そしていくつかの重要な原則(コンパイラーときめ細かい反応性)によってSvelteに非常によく似た従兄弟であり、クラス最高のパフォーマンスでWebアプリケーションを提供するための高度に最適化された方法です。 - wenyanet
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「よくわかってなかったけどSolidJSもSvelteみたいに前処理するのね。「library」なんて言うから単体のライブラリーなのかと勘違いしてたわ」 / Twitter
- React大好き侍が、「もうSolidJSでいいじゃん...//」ってなったワケ。 - Qiita
- mizchiさんはTwitterを使っています: 「solidjs は適所がどこかにあるだろうけど現状その場所は react 互換性がそこそこ高い preact がおり、また svelte で巨大画面を作って破綻したことがあるので、あのアーキテクチャは本当に小サイズならいいけど中規模以上のコンポーネントとして伸びしろない気がしてる」 / Twitter
- Solidの特徴と、その裏側 - console.lealog();
- tomoamさんはTwitterを使っています: 「Vue の仮想DOMがないコンパイルモード、以前から情報はあったけどとうとうお披露目か。 Evan You氏天才すぎる。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Vue.jsをSvelteとかみたいに事前処理して仮想DOMを使わなくてもよくしようって自分も半年くらい前から思ってたけどやっぱりすでに取り組まれていたんですねぇ。唯一Reactがそういうアプローチが取りづらいフレームワークだろうと思っているけど、この辺の刺激を受けて少々非互換にしつつもやるのかな」 / Twitter
- mizchiさんはTwitterを使っています: 「svelte はちょっと大きいの書くと vscode がまともに動かなくなったので、vscode 拡張に積んでるパーサの速度とジョブキュー管理とエラーリカバリ、つまり全部がダメそう」 / Twitter
状態管理
状態管理ライブラリ評価
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ReactのContextでReduxで管理するような大きな状態を受け渡すと無駄に伝播してしまうっていうのは、無駄どころか子要素が常にすべての状態にアクセスできてしまうという問題もありそう #jsconfjp_a」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「状態の種類に応じて管理方法を変える、と #jsconfjp_a」 / Twitter
- Yosuke FurukawaさんはTwitterを使っています 「daishi さんの 状態管理ライブラリ評価のはなしこちらです。 https://t.co/PnodCZ8xe6 #jsconfjp #jsconfjp_a」 / Twitter
- dai-shi/will-this-react-global-state-work-in-concurrent-rendering: Test tearing and branching in React concurrent rendering
- TakepepeさんはTwitterを使っています: 「状態管理ライブラリ、一つはUIUX のためと、もう一つはデータ取得最適化(キャッシュ活用によるAPI呼び出し削減)がある。どちらも SPA を選ぶ主要動機に直結するので、皆こだわる。」 / Twitter
- YuheiNakasakaさんはTwitterを使っています: 「フロントエンドの複雑性を未だに"画面の枚数"だと思ってる人がいるんだけど今は"取りうる状態の数"が複雑性を生んでることを早く知ってくれ...」 / Twitter
- YuheiNakasakaさんはTwitterを使っています: 「2010年代前半くらいから情報追うのやめた人はそういう認識の人多そう」 / Twitter
- svelte-store-treeというライブラリーをリリースしました
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GUIの状態管理、線形型でなんとか安全にならないのかな #複雑GUI会」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「よく考えたら、線形型になったところでReactで書くときのようなメリットは得られない気がするな。例えばDOMの要素を書き換える処理を書いたとき、それが適切かどうかは処理の前後でDOMが意図通りになっているかが重要で、単に線形型使うだけでは結局分かりづらいのでは」 / Twitter
- ルキルキさんはTwitterを使っています: 「アンチreduxになってしまった。 お世話になったreduxですけど、もう2週遅れで時代にあってないけど、RTK Queryとか、流行っているライブラリを取り入れるのは良いかもしれないけど、そのライブラリで実現したいことがもう全くの不明瞭になっててキモいねん。」 / Twitter
- Recoil - Reactの新しい状態管理ライブラリ
- JotaiはReactの新しい小粒な状態管理ライブラリ
Recoil
- Naoya ItoさんはTwitterを使っています: 「React の状態管理の文脈で Recoil をどう捉えるかという話があって、従来のグローバルステート同様のものと考えるのか、そうじゃないのかという設計論がありそう」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「というのは、GraphQL クライアントでサーバーからとってきたデータを Recoil に入れるかどうかという話があり、従来のグローバルステートだと考えるならそれはやらないんだろうけど、Recoil だとそれはやるのか、やらないのかという話をしていた」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「Recoil のステートは atom をステート単位で細かく分割できるし、ファイルスコープに閉じ込めることができる点が、従来のグローバルステートと異なる点。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「https://t.co/PmBBDpvBKo Recoil のドキュメントに少し前からさらっと紹介されているこの recoil-relay では、selector で GraphQL クエリを発行してデータを持ってきて useRecoilValue でそれを参照するようになっている」 / Twitter
- Recoil and GraphQL with Relay | Recoil
- Naoya ItoさんはTwitterを使っています: 「つまり recoil-relay のこのパターンではサーバーから取ってきたデータと Recoil ステートを同一視する、区別しないということを示していて、これってこれまでの設計とだいぶ考え方が変わるなあと」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「Recoil ステートを従来ながらのグローバルステートと捉えてるとこういう設計はしないだろう。なんで、Recoil はこれまでのグローバルステートの考え方を変えるのでは? と」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「結論、 Relay (GraphQL Client) -> Recoil -> selector -> useRecoilValue という流れでサーバーからやってきたデータを扱うのがデファクトな考え方になるのか否か、まだわからないけど動向を追っていくべきと思っとります」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「というわけで、識者のツッコミ待ち。」 / Twitter
- Yosuke FurukawaさんはTwitterを使っています: 「@naoya_ito グローバルステートは中央集権的で取り扱いしやすい一方でReactが今後やろうとしてるConcurrent Modeという rendering を非同期で並行に処理するものと相性があまり良くないのです。他にもsuspenseはデータフェッチをなるべくコンポーネントに近い所でやろうとしており、その辺りも相性が悪いですね。」 / Twitter
- Naoya ItoさんはTwitterを使っています: 「@yosuke_furukawa ありがとうございます、待ってました (笑) 動画拝見します!」 / Twitter
- Yosuke FurukawaさんはTwitterを使っています: 「@naoya_ito 中央集権から分散協調へという流れなんですが、なんとなくマイクロサービスみたいな話とも近いので、naoyaさんの参考になると幸いです!」 / Twitter
- Yosuke FurukawaさんはTwitterを使っています: 「@naoya_ito そのあたりの話は実は https://t.co/b51ielVOoe 2021 で daishi さんという状態管理ライブラリの第一人者と話したことがあるのでご参考までに。 https://t.co/439S31iapH」 / Twitter
- 状態管理ライブラリについて - Daishi Kato | JSConf JP
- jotai-relayというpackageをリリースしました、recoil-relayから着想を得て
- Naoya ItoさんはTwitterを使っています: 「https://t.co/PUSISmHsEu 聴きました。Recoil-Relay によって Recoil が単なるステート管理ライブラリから、データフローグラフ? を実現するエコシステムになり得るんじゃないかという考察。すばらしい やはり従来の状態管理ライブラリと Recoil を同列に捉えず、アンラーニングしてもよさそう」 / Twitter
- ep.123『Recoil Relayの登場とState managementからData-flow graphへの進化』 | UIT INSIDE - LINE UIT の開発者による「最新のフロントエンド」をキャッチアップできる Podcast
- Naoya ItoさんはTwitterを使っています: 「「Recoil-Relay によって」というより「Recoil-Relay がそういう方向性を明確に示した」が正しいか」 / Twitter
CRDTによる状態差分管理
Twitter
- Meta(旧Facebook)、テキストエディタ用のUIコンポーネント「Lexical」をオープンソースで公開。Reactなどフレームワークの依存性なく軽量で高速、機能拡張も容易に - Publickey
- Teppei SatoさんはTwitterを使っています: 「FacebookがエディタフレームワークLexicalを公開。コアはフレームワーク非依存、DOMとは独立したCRDTによる状態差分管理、高い拡張可能性でReactラッパーを提供、など今風の設計。Flowtype実装。まだearly dev版 / “GitHub - facebook/lexical: Lexical is an extensible t…” https://t.co/Tp9cogijuR」 / Twitter
- facebook/lexical: Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance.
- Teppei SatoさんはTwitterを使っています: 「内部的にはCRDTの実装としてyjsを使ってる / yjs/yjs: Shared data types for building collaborative software https://t.co/zQYk5cNEne」 / Twitter
- yjs/yjs: Shared data types for building collaborative software
- Teppei SatoさんはTwitterを使っています: 「Lexical の公開に合わせて、Draft.js は 2022-10-31 にリポジトリをアーカイブすることを公式発表 / Update overall project status in README by thegreatercurve · Pull Request #3136 · facebook/draft-js https://t.co/dSuBbgrMyw」 / Twitter
- Update overall project status in README by thegreatercurve · Pull Request #3136 · facebook/draft-js
- takabowさんはTwitterを使っています: 「あの手の分散システムで書き込み競合がLast Write Winsになって予期せぬデータで上書きされてしまうのが結構困った。Causal Consistencyはそれをユーザー側で制御できるのがメリットであると同時に、開発が面倒になる部分でもあった。最終的にRiakもStrong Consistencyを実装していた。」 / Twitter
- takabowさんはTwitterを使っています: 「書き込み競合がおこったら1つのKeyで複数のValueが釣れる状態になる。これがSiblings。ようはこの複数の値が衝突してるから、後はユーザー側でいい感じにマージしてくれということ。同時並行で編集されると、マージ処理のロジックは人間が与えないといけない。Gitのコードのコンフリクトみたいなもん。」 / Twitter
- takabowさんはTwitterを使っています: 「そのマージを機械的に処理できるのが、CRDTs(Conflict-free Replicated Data Types)と呼ばれるもので、これによりマージ処理をデータストア側に委ねることができた。もちろん万能じゃないし何にでも使えるわけではない。開発者の負担が増えてたのは事実だが、当時は可用性とのトレードオフの結果だった」 / Twitter
- こば - as a DB Engineer -さんはTwitterを使っています: 「@takabow おぉ、参考になります。その状態もSiblingsと言うんですね。siblingは前半のBツリーで全く違う用語として出てきます。」 / Twitter
- takabowさんはTwitterを使っています: 「@tzkb おお、前半でも出てくるんですね(読み飛ばしてることがバレる)。Riakの実装に偏りますが、この辺の情報は、Riakのドキュメント(なんとまだある)と、RiakのWiki(無くなったので移植された)がめっちゃ詳しい資料だと思ってます。https://t.co/rw7RFsaG5e」 / Twitter
- riak_wiki/Vector-Clocks.md at master · ghaskins/riak_wiki
- Kazunori SatoさんはTwitterを使っています: 「@takabow CRDTってGoogle Docsのマージに使われてるOTに似てる単調増加なロックフリー排他で、昔すごく気になってました。用途選ぶけど、まだまだ開拓されてない用途あると思ってます。」 / Twitter
- takabowさんはTwitterを使っています: 「@kazunori_279 それはまさにあると思いますね。ロジックをいかにCRDTで解決可能な要素に落とし込めるか、それができると非常に幅が広がると思います。」 / Twitter
- Kazunori SatoさんはTwitterを使っています: 「@takabow 更新系をロックフリーで実装できればいろんな悩みがなくなりますからね。なんでも使えるわけじゃなくて用途ごとに考える必要がありますが。。その点で、Docsの共同編集はすごい応用だなと思いました。Googleやっぱ天才が多い。」 / Twitter
- nhirokiさんはTwitterを使っています: 「Read: "State at the edge" https://t.co/Kuru4WtuNE」 / Twitter
- State at the edge | Fastly
- nhirokiさんはTwitterを使っています: 「従来 CDN Edge は immutable だったが、Edge で mutate できるようにすると Edge 間で状態競合が起きるようになり、分散システムにおける一貫性の問題に帰着する。素朴に解こうとすると latency が厳しいので、CRDTs (Conflict-free Replicated Data Type) というものを使ってうまいことやるらしい。」 / Twitter
- nhirokiさんはTwitterを使っています: 「"CRDT-based von Neumann machines can broadcast their local state on a regular basis, the system will naturally converge to a stable and correct global state without special effort."」 / Twitter
- nhirokiさんはTwitterを使っています: 「"There’s no need to figure out a correct order of events, or synchronize updates between peers, or manage sophisticated undo or retry strategies, or aim for exactly-once delivery of messages, or anything like this." そんなうまい話があるの?」 / Twitter
- nhirokiさんはTwitterを使っています: 「CRDTs というものを知らないので後で読みたい https://t.co/0rsvQO0Blj」 / Twitter
- nhirokiさんはTwitterを使っています: 「Read: "CRDT (Conflict-free Replicated Data Type)を15分で説明してみる" https://t.co/7VY0ZPbczf」 / Twitter
- CRDT (Conflict-free Replicated Data Type)を15分で説明してみる - Qiita
- nhirokiさんはTwitterを使っています: 「なるほど。データ構造に対する操作を可換なものに限定することで結果整合性を得るのか。制限をかけても結構色々なデータ構造を表現できるんだな。で、ノード間で何をやり取りするかが重要で、操作をやり取りする場合は cumulative-based CRDT で、状態をやり取りする場合は state-based CRDT となる。」 / Twitter
- nhirokiさんはTwitterを使っています: 「なるほど。Fastly の記事を書いた人は Qiita の記事でも紹介されている Roshi の開発者なのか。Roshi は SoundCloud で開発された / "Roshi: a CRDT system for timestamped events" https://t.co/T5i4D2cdol (2014 年の記事)」 / Twitter
- Roshi: a CRDT system for timestamped events | SoundCloud Backstage Blog
- nhirokiさんはTwitterを使っています: 「s/cumulative-based/operation-based/ です。違うこと考えながらツイートしていた・・・」 / Twitter
- 論文翻訳: Conflict-free Replicated Data Types - MOXBOX
- CRDTを用いた共同編集機能をHooksで簡単に使えるRoom Service(Beta版)を使う
- 265.pdf
- CRDT in 15 minutes
- IPSJ-DPS16167006.pdf
- 因果律から安定性へ:CRDTにおけるMetaデータの理解と低減【JST・京大機械翻訳】 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- Vector ClockとCRDTについて調べた - mmag
- Akka実践バイブル アクターモデルによる並行・分散システムの実現 - レイモンド・ロステンバーグ, ロブ・バッカー, ロブ・ウィリアムズ, 前出祐吾, 根来和輝, 釘屋二郎 - Google ブックス
- distributed-computing - 機能分散 - 分散処理 英語 - 入門サンプル
- scalability - 競合のないレプリケートされたデータ型(CRDT) とパキソまたはラフト - 入門サンプル
- [B! distributed] CRDT (Conflict-free Replicated Data Type)を15分で説明してみる - Qiita
- MR_COUNTERデータ型の使用
- Yjs の Awareness について - 猫でもわかるWebプログラミングと副業
- scalability - 競合のないレプリケートデータ型(CRDT)とパクソスまたはラフト - de-vraag
- CRDTs - 第112回 Scala 勉強会
- Phoenix.Tracker.State - ORSWOT CRDTを提供します。 Types Functions セットの因果関係を返します。 セットの因果関係の歴史を圧縮します。 デルタの dize を - 日本語
- gist:7445996
- 12年後のCAP定理: "法則"はどのように変わったか
- Gearpumpの内部 - Gearpump 0.8.0 ドキュメント 日本語訳
- 分散システムの一貫性に関する動向について - Yahoo! JAPAN Tech Blog
- 複製されたシステムにおける整合性レベルの選択の自動化(2014) - コードワールド
- Workers Durable Objects Beta: 「ステートフルなサーバーレス」への新しいアプローチ
- GitHubが「Teletype for Atom」リリース。開発者向けエディタ「Atom」でも、複数プログラマが同時にコード編集可能 - Publickey
- [レポート] Redisの活用 #DAT374 #reinvent | DevelopersIO
- Conflict-free replicated data type - Wikipedia
- スコープとライフタイムで考えるReact State再考
- 「3種類」で管理するReactのState戦略
- トップダウン型の状態管理 (#Redux #Zustand )と比較して知るボトムアップ型の状態管理 (#Recoil #Jotai )
- Concepts — Jotai, primitive and flexible state management for React
- React ステート管理 比較考察 - uhyo/blog
- Facebook の決断:MVCはスケールしない。ならば Flux だ。
- Fluxアーキテクチャの覚え書きを書いた - saneyuki_s log
- 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
- 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - takoba
- クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
- 状態は単一の経路を使って参照しよう - Object.create(null)
- 非対称な状態間の同期の実装メモ - Object.create(null)
CSS in JS
- CSS in JSで作るStyled Componentsの最小デザイン - falsandtruのメモ帳
- Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
- Reactと一緒に使う時のCSS in JSのライブラリ選定とか所感とか - Qiita
- CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
- JSS
- All You Need To Know About CSS-in-JS – Hacker Noon
- CSSinJS
- MicheleBertoli/css-in-js: React: CSS in JS techniques comparison
- CSS in JS - Material-UI
- SPAにおけるCSSについて、ひとつの解 - エンジニアをリングする
- Comparing CSS in JS Libraries
- FacebookのCSS-in-JSアプローチ - Frank Yan氏のReact Conf 2019での講演より
- ページを高速に表示するには「CSS in JS」と普通のCSSのどちらを使うべきなのか? - GIGAZINE
- 𝕙𝕒𝕟𝕖𝕥𝕤𝕦𝕜𝕚さんはTwitterを使っています: 「CSS in JSさんまだ、息ある?runtimeが嫌われ始めてるっぽいけど。。」 / Twitter
- 11のCSS-in-JSライブラリの比較調査 - Andrei Pfeiffer氏のReact Finland 2021での講演より
- FacebookがCSS-in-JSソリューションのStylexをReact Finland 2021で発表
Qwik
- Miško HeveryのQwik記事シリーズ | POSTD
- Qwikの紹介 – HTMLファーストのフレームワーク | POSTD
- クロージャによる死(とQwikによる解決方法) | POSTD
- HTMLを最初に、JavaScriptを最後に:Webを高速化する秘訣 | POSTD
- Qwik:最適できめ細かい遅延読み込みを実現 | POSTD
- silverbirderさんはTwitterを使っています: 「qwikは、できる限りJSをロードしない。インタラクション時にロードされる。prefetchは、している。 内部データ(状態など)は、HTML上へシリアライズして管理。どのタイミングでも、同じシリアライズになり、リジューム可能。 従来のFWのJSサイズはO(n)に対して、QwikはO(1)。」 / Twitter
- silverbirderさんはTwitterを使っています: 「レンダリングコストを減らすためには、SSRは手で、それにリッチなインタラクションを付与しようと、ハイドレートすることが、技としてあった。 ハイドレートは、JSのあらゆる処理(リッスンのバインド、状態リストア,)をすることになり、利用開始タイミング(忘れた)が遅れる。」 / Twitter
- リジューム可能なJavascriptフレームワークQwikとは
Hotwire
- Rails 7のHotwireを簡単に理解する | GMOアドパートナーズ TECH BLOG byGMO
- Hotwireとは?|猫でもわかるHotwire入門 Turbo編
- Rails 7 + Hotwireで実用的なSPAを作ってみた - Studyplus Engineering Blog
- Hotwireの良かった点、辛かった点、向いているケース、向いていないケース - 猫Rails
- HotwireはRailsを「ゼロJavaScript」でリアクティブにできるか?前編(翻訳)|TechRacho by BPS株式会社
- Rails 7のHotwireがどんなことをしてくれるものかを知りたいです - Qiita
- まるでフロントエンドの“Rails” Hotwireを使ってJavaScriptの量を最低限に - ログミーTech
- HotwireはRailsを「ゼロJavaScript」でリアクティブにできるか?後編(翻訳)|TechRacho by BPS株式会社
- hotwire-railsの学習を始める時に注意するポイント - Qiita
- チュートリアル1 Railsで管理画面を作る|猫でもわかるHotwire入門 Turbo編
- Rails6のアプリをRails7にして、hotwireとimportmapを有効にする | srockstyle
- Hotwireとは何なのか?
- tailwindcss-rails README(翻訳)|TechRacho by BPS株式会社
- 実践ViewComponent(2): コンポーネントを徹底的に強化する(翻訳)|TechRacho by BPS株式会社
- 実践ViewComponent(1): 現代的なRailsフロントエンド構築の心得(翻訳)|TechRacho by BPS株式会社
- Rails 7.0正式リリース、Node.js不要のフロントエンド開発環境がデフォルトに - Publickey
- しのゆ@会える🍾酒クズエンジニアさんはTwitterを使っています: 「会社でも個人でもいろんなところのシステム開発を手伝ったりしているんですが、最近はフルフロントエンドではなく、バックエンドのWebフレームワークでComponent的なViewを書きつつ、必要なところだけReactなりを入れてCSRさせる、みたいなスタックが多くなってきたなって印象ある」 / Twitter
- しのゆ@会える🍾酒クズエンジニアさんはTwitterを使っています: 「スタートアップとか初期開発のフェーズだとこれが主流かなぁ。最初からフロントを分離させず、必要なところだけ入れておいて、後からスケールさせるための分離に備えておく、みたいな感じ。 最初からNextなりNuxtなりを導入するのはオーバースペック、という判断が多くなってるのかな。多分。」 / Twitter
- DJペコ🌥️今年こそはDTMを覚えて曲作るさんはTwitterを使っています: 「@shinoyu バックエンドでComponent的なViewを作成する際、どのフレームワーク、またどの言語が多いでしょうか? 参考にさせていただきたいです 自分は田舎エンジニアなので、ほぼバックエンドはPHP一択です😭」 / Twitter
- しのゆ@会える🍾酒クズエンジニアさんはTwitterを使っています: 「@pekoshi んー、自分はRailsのとこしか知らんのでなんとも言えませんね。RailsならまさしくViewComponentなるライブラリがありますが https://t.co/WQ3qYLATX9 他の言語でもレンダリング時に渡すProps的なオブジェクトをViewModelとして扱うようにすれば容易に対応可能だとは思います。」 / Twitter
- Overview | ViewComponent
- カクサンズさんはTwitterを使っています: 「@shinoyu webアプリの進化の過程で、フロントとバックエンドを別々の言語にして、余計複雑になっていると思うから、ワイ、それが嫌でGWTでフロントもバックもjavaだけで書いているんだが、便利で簡単すぎて世の中のweb開発者の人にほんと申し訳ない」 / Twitter
- ブラウザの要素をクリックするだけでRailsのviewファイルを簡単に開くことの出来るrails-template-inspectorの紹介
- 無限スクロールは考慮することが多い | blog.ojisan.io
- ブラウザバックしたときに状態を復元する(Vue3, Nuxt3) - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Trie木ベースよりもRegexベースの方が速いのか。すごいな #tng40」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「ルーター全体を一つの正規表現にする、なるほどなぁ。文字列の部分を全部正規表現エンジンに任せちゃうのか」 / Twitter
- GUIアプリのルーティング・ページ遷移 - ベインのブログ
- 渋川よしきさんのツイート: "動的ウェブの高速化、そろそろ、データ変更時にそれを表現するhtml片を生成まで事前にやっておく、みたいになって、エンタープライズなバッチシステムに回帰していくのでは。"
- Server Side Renderingについて知るべきこと。Server Side Renderingとは何か? それによって何が改善されるのか?(前編) ng-japan 2017 - Publickey
- ポストjQueryの要件 - falsandtruのメモ帳
- PjaxとSPAの違い - falsandtruのメモ帳
- パフォーマンスの最適化 | Web Fundamentals - Google Developers
クリティカル レンダリング パス
- クリティカル レンダリング パス | Web Fundamentals - Google Developers
- オブジェクト モデルの構築 | Web | Google Developers
- レンダリング ツリーの構築、レイアウト、ペイント | Web | Google Developers
- レンダリング ブロック CSS | Web | Google Developers
- JavaScript を使用してインタラクティブにする | Web | Google Developers
- クリティカル レンダリング パスの測定 | Web | Google Developers
- クリティカル レンダリング パスのパフォーマンスを分析する | Web | Google Developers
- クリティカル レンダリング パスの最適化 | Web | Google Developers
- PageSpeed ルールおよび推奨事項 | Web | Google Developers
レンダリング パフォーマンス
- レンダリング パフォーマンス | Web | Google Developers
- JavaScript 実行の最適化 | Web | Google Developers
- スタイル計算のスコープと複雑さの軽減 | Web | Google Developers
- 大きく複雑なレイアウトとレイアウト スラッシングの回避 | Web | Google Developers
- ペイントの複雑さの簡略化とペイントエリアの縮小 | Web | Google Developers
- コンポジタ専用プロパティの優先使用、およびレイヤー数の管理 | Web | Google Developers
- 入力ハンドラのデバウンス | Web | Google Developers
事前レンダリング
- 事前レンダリングでウェブページの表示時間を高速化 | 海外SEO情報ブログ
- 事前レンダリングでページ遷移した時の表示速度を爆速にする | TechMemo
- ワードプレスに prerender を設定して事前レンダリングで高速化 | q-Az
- ウェブサイトで事前レンダリングする方法: 小粋空間
- 事前レンダリング
- Web サイトの事前レンダリング
- キャッシュと事前レンダリングの比較
- IBM Knowledge Center
Tracing
- 特定の端末のみで起こる WebView プチフリーズを Tracing を利用して追った話 - SmartNews Engineering Blog
- Chrome の隠し機能 chrome://tracing (about:tracing) の使い方
- Analyze runtime performance - Chrome Developers
- 実行時のパフォーマンスの分析 | Chrome DevTools | Google Developers
- パフォーマンス計測に困らない!tracing活用術100 - Qiita
DOM
- DOM Standard 日本語訳
- DOM1仕様書
- Document Object Model - Wikipedia
- Shadow DOM v1でHTMLの内容と構造を分離する
- GeckoのDOMイベント処理の実装 (Gecko Inside ver.)
- DOM リファレンス - DOM | MDN
- Reflowを制するものはDOMを制す - Qiita
- リフロー レンダリング - Google 検索
DOMJIT
- webkit/Source/WebCore/domjit at master · WebKit/webkit
- webkit/Source/WebCore/ForwardingHeaders/domjit at master · WebKit/webkit
- Filip Jerzy Pizloさんのツイート: "DOMJIT is a thing! @Constellation https://t.co/MhrVnCa7yb"
- 172098 – [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
- 162916 – [DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
- 164006 – [DOMJIT][CSSJIT] Share code with DOMJIT
- 小倉唯さんのツイート: "これだいぶ完了まで近づいてきた. https://t.co/QplPWtdBd8 DOMJIT やっててよかった..."
- 171637 – Hoist DOM binding attribute getter/setter prologue into JavaScriptCore taking advantage of DOMJIT / CheckDOM
- 小倉唯さんのツイート: "DOM getter, 最初に type check するけど, その check, getter lookup の段階で大体 IC がもうやってる. type checking 部分を JSC にわかるように切り出すと, 大抵さっくり削除できる"
- 小倉唯さんのツイート: "massive code reduction と optimization のチャンスだ"
- Overview of WebKit’s CSS JIT Compiler | WebKit
- Gave a Talk About CSS JIT - Constellation Scorpius
- CSS JIT: Just-in-Time Compiled CSS Selectors in WebKit // Speaker Deck
- WebKit CSS JIT Internals - Constellation Scorpius
- CSS JIT: Optimizing CSS Selector Matching with Just-in-Time Compilation // Speaker Deck
- melancholic afternoon
CSS
W3C
- Cascading Style Sheets
- CSS current work & how to participate
- CSS Grid Layout Module Level 1
- CSS Text Module Level 4
- CSS Text Decoration Module Level 4
- CSS Color Module Level 3
- Exploring CSS property definitions | W3C Blog
- CSS Fonts 3 is a W3C Recommendation | W3C Blog
- W3C Strategic Highlights: Strengthening the Core of the Web (CSS) | W3C Blog
- CSS Flexible Box Layout Module Level 1
- CSS Flexible Box Layout Module Level 1
- W3C CSS 検証サービス
- Cascading Style Sheets, level 1
Acid1
- Acid1 - Wikipedia
- display/box/float/clear test
- CSS1 Test Suite: 5.5.26 clear
- sec5526c.gif (531×501)
- Shiki’s Weblog: ESウェブブラウザ通信 - Acid1テスト
- CSS1 Test Suite
- CSS1 テストスイート
HTML4・CSS2
- CSS 2.1仕様 日本語訳 EPUB版 - 達人出版会
- CSS2 の CSS1 からの変更点 - CSS Dencitie
- Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
- (メモ)CSS 2.1の更新版のなまえ - 水底の血
HTML Standard・CSS
- ここ数年のブラウザのデフォルトスタイルシート。縦書きとかHTML5とか。|Web Design KOJIKA17
- HTML Standard
- HTML Standard — Rendering(日本語訳)
CSS Object Model (CSSOM)
- CSS Object Model (CSSOM) (日本語訳)
- オブジェクト モデルの構築 | Web | Google Developers
- CSS Object Model - Web API インターフェイス | MDN
- CSSOM
- CSS Object Model (CSSOM)
- CSSOMとパフォーマンス - Qiita
- JavaScriptで操作するCSS TransitionとCSSOMの関係 | フロントエンドBlog | ミツエーリンクス
和訳
- CSS3の日本語訳集 - 血統の森 web実験小屋
- Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification 日本語訳
- CSS Basic User Interface Module Level 3 (CSS3 UI) 日本語訳
- CSS Values and Units Module Level 3 日本語訳
- CSS Text Decoration Module Level 3 日本語訳
- CSS Device Adaptation Module Level 1 (日本語訳)
- CSS Snapshot 2015 日本語訳
- CSS Snapshot 2017 日本語訳
- CSS Snapshot 2018 (日本語訳)
- REC-CSS1 邦訳
- REC-CSS1 邦訳
- Cascading Style Sheets, level 1(jp)
- 全文翻訳 Cascading Style Sheets, level 1
- CSS1 Table of Contents
- Cascading Style Sheets, level 1
- カスケーディングスタイルシート第1水準
Tailwind CSS
- TailwindCSSって何?なんで流行ってるの?|F Lab|Fixel株式会社
- Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
- Tailwind CSS - A Utility-First CSS Framework for Rapidly Building Custom Designs
- Tailwind CSSとは?ユーティリティファーストの意味…|Udemy メディア
- 利用者爆増中 初めてでもわかるTailwind CSS入門 基礎編 | アールエフェクト
- Tailwind CSSが私には合わなかった理由 | コリス
- 色々書き比べた結果Tailwind CSSにしたという話 - Qiita
- Tailwind CSSとは?そのメリットと使い方 日本語チートシート入門
- tailwindcssの初心者用基礎的な使い方について|Solution - ソリューション|株式会社イージェーワークス
- カスタマイズ可能なCSSフレームワークの最新版「Tailwind CSS 3.0」がリリース:CodeZine(コードジン)
- 渋川よしきさんはTwitterを使っています 「フレームワーク関係なく使えるポータブルなUI部品が欲しくてWeb Componentsに期待していた気持ちが高まっていたが、Tailwind.CSSに触れた今、Material Design Liteのクラス名が短くて検索しやすかったら、そこまでWeb Componentsへの期待が高くなってなかったかもなぁ、と気づいた」 / Twitter
- 令掛ベインさんはTwitterを使っています 「CSS (というかUIのスタイルづけ) をどう書くか問題は個人的にいきづまりがある。スタイルのルールにはコンポーネント的なスタイル (.buttonとか.menuみたいなコンポーネントの意味に関連させるもの)と部品的なもの(.boldみたいな特定のスタイルを意識したもの) がある」 / Twitter
- 令掛ベインさんはTwitterを使っています 「部品的スタイルはインラインで書きたいが書けないというときに使う。例えば .red-on-hover:hover {color:red}」 / Twitter
- 令掛ベインさんはTwitterを使っています 「コンポーネントスタイルは定義がゆれがち。ルールにつけたスタイルの一部が後で邪魔になったときルールの定義を変えると全体に影響が出るのがやっかい (スクリーンショットのスナップショットテストはしたことないけど有効かもしれない)。一種の基底クラスのようなものに思えてくる」 / Twitter
- 令掛ベインさんはTwitterを使っています 「かといってコンポーネント自身に持たせるルールが小さくなると、要素に複数のクラスを持たせて、クラスの組み合わせにスタイルをつけるかたちになって、認識しづらくなる」 / Twitter
- 令掛ベインさんはTwitterを使っています 「最近はtailwind CSS (すべて部品的スタイルでやる) をやっている。たくさんスタイルを書く必要があるのでめんどいし一貫性も崩れがちだけど、コンポーネントのルールを決めるときや変えるときの憂鬱さは解消する。ホットリロードのおかげで、スタイルを都度直す作業がぎりぎり許せる」 / Twitter
- 令掛ベインさんはTwitterを使っています 「余談: 部品的スタイルで書かれたウェブページはユーザースタイルシートでカスタマイズしづらいので、ユーザー視点でいうと少し困る」 / Twitter
- 渋川よしきさんはTwitterを使っています 「Tailwind CSS、今まで「えー、そんなのいらないでしょ」と思っていたが、技術ブログのネタでちょびっとついでに使ってみたら、これはとても良いものだった。人類にはCascadingは不要だったのでは」 / Twitter
- 渋川よしきさんはTwitterを使っています 「・・・というのは極端だとして、コンポーネントで作っていく今の時代だとこれがクラス同等であるのでクラス名をつけるという行為がそもそも「ムダ」だったんだなって。あと、ドキュメントの検索が良すぎる。検索がAPIの一部という感じ。」 / Twitter
- 💉*2+⏱=8/7さんはTwitterを使っています 「@shibu_jp 分かる。最初はclass=red はやめろって言われて育った世代なのでコレは……って思ってたんだけど、今までクラス単位で纏めていたコンポーネントの属性が reactやvue のお陰でdom 構造まで含めた纏めが出来るようになったから必要なくなった。なのでどちらかと言うとモダンcssなんだなぁと感じた」 / Twitter
- mizchiさんはTwitterを使っています: 「その点、tailwind はセレクタセットを再利用するという部分でビルドサイズ上の有意はあるが、トレンド移り変わった段階で強めの負債になる予感があり、あんまり手を出せない」 / Twitter
- 令掛ベインさんはTwitterを使っています 「Tailwind CSSみたいな汎用クラス主体でスタイルが組まれているサイト、ユーザースタイルシートで特定の要素を非表示にするみたいなカスタマイズをやりづらい」 / Twitter
- しゅうや@やる気探索中さんはTwitterを使っています: 「TailwindCSS 初めてから、もう HTML と CSS を別で見るの辛くなってきたw。 JSX とかも初期 JS の中に HTML なんであるのって思ったけど、今や当たり前。 TailwindCSS 使うことによって別で CSS 書かなくて済むので、VueJS とかと合わせてもう JS とその中の HTML で完結。最高かもしれない!」 / Twitter
- うしろのこさんはTwitterを使っています 「擬似要素とかにも対応しててすごいしちゃんとクラスとして機能させてるのもすごいのでやっぱすごいになった https://t.co/lMyl2JwH41」 / Twitter
- Tailwind CSSからクラス名覚えにくさを消したらどうなる? こうなった
- うしろのこさんはTwitterを使っています 「これstylexとの差が生cssかオブジェクトなのかくらいしかなさそうだが…」 / Twitter
Source Map
- SassのデバッグにSource Mapsを使うべきたくさんの理由 - ROCHAS
- CSSのSource Map - ウェブログ - Hail2u.net
- sourcemap: 圧縮されたJSやCSSと圧縮前のコードの対応関係情報を持ったファイル - general
- gulp で、CoffeeScript をコンパイルして concat して SourceMap 出力して SCSS もコンパイルして
- sourcemap を使いたい - Qiita
- Introduction to JavaScript Source Maps - HTML5 Rocks
- 多段SourceMapの対応方法とライブラリ | Web Scratch
- 多段SourceMapとASTの現状について話してきた | Web Scratch
Normalize.css
- Normalize.css: Make browsers render all elements more consistently.
- [CSS]CSSリセットとは異なる、Normalize.cssの特徴や使い方などの解説 -About normalize.css | コリス
- normalize.cssで使用されている各スタイルがどのように機能しているか解説 | コリス
- Normalize.cssを使ったコーディングの注意点とリセットCSSとの違い | Cappee Design
- なぜリセットではなく Normalize.css を使うのか
- Normalize.css v4.0.0 変更点まとめ - Qiita
- 【CSS】Reset CSSやNormalize.css…。CSSリセットは何を使うべきか比較してみた | unitopi - ユニトピ -
- Bootstrap v4で追加されたRebootというスタイルシートを見てみる | フロントエンドBlog | ミツエーリンクス
Twitter
CSS
- KOBA789さんはTwitterを使っています: 「複雑な GUI はバグるしメンテコスト高いしマニュアル整備等でユーザーサポートも大変なので、それをサービスのコアにするのは大変な覚悟が必要なことだと思っていて、できるだけ小さい実装・ショボい GUI でユーザーの課題を解決できないものかとサボる方向で知恵を絞ってしまうのが普通だと思う」 / Twitter
- KOBA789さんはTwitterを使っています: 「これは機能豊富で使いやすい GUI はそれだけで競争力たり得るということでもある」 / Twitter
- KOBA789さんはTwitterを使っています: 「たとえばこの前の配信の画面ですが、画像素材は背景の一枚のみで、その他のコメント枠や左上のキャプションなどは全部 CSS で描いています。コメント欄の背景にブラーがかかっている効果も CSS です https://t.co/eat6W9XjcH」 / Twitter
- KOBA789さんはTwitterを使っています: 「レイアウトを手で計算するのがつらすぎるため、最近の私の配信画面は CSS で組まれています」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「@KOBA789 気になる・・・よければどういう構成なのか教えていただけません?」 / Twitter
- KOBA789さんはTwitterを使っています: 「@nullpo_head 端的には、ブラウザソースをたくさん重ねています」 / Twitter
- ぬるぽへさんはTwitterを使っています: 「@KOBA789 おお、なるほど、言われてみれば納得」 / Twitter
単位
- hsjoihs (2回+2週済)さんはTwitterを使っています 「CSS を自分で書いている方は、px や pt ではなくて mm や Q (0.25mm) などを使うことでヤードポンド法の削減に繋がります。ヤードポンド法の削減を唱えていらっしゃる方は是非どうぞ」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「「ところでヤードポンド法は滅ぼさねばならない」とか言ってる人も、文字のサイズ指定にポイント(72分の1インチ)は使ってたりしますよね、みたいな話がありますね」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「https://t.co/eHI4dVi8he https://t.co/utT2k9EwYM」 / Twitter
- CSS Values and Units Module Level 3
- hsjoihs (2回+2週済)さんはTwitterを使っています 「なお、これらの「インチ」があなたの画面上でヤードポンド法のインチになっているかは場合によるというのがあって……(紙に刷ったときは基本的にヤードポンド法のインチになるようになってるっぽいですね) https://t.co/BRCl2PfPwL」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「@0x19f いやまあ、そうとも言えないのが面倒なところで…… https://t.co/QigB0voC5Z」 / Twitter
- CSS Length Explained - Mozilla Hacks - the Web developer blog
- 渋川よしきさんのツイート: "CSS難しいなぁっていつも思うんだけど、例えば、特定の要素を右寄せにするときに、その親側にも手を加える必要がある、というのに気づくのに時間がかかったり、やりたいことの実現のための影響範囲とかのイメージが直感的につかないのが原因だろうな、というのは想像がついている。"
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Inactive CSS、「なぜその指定が反映されないのか」を教えてくれるWeb Inspectorの新機能。これにかかると自分がいかにてきとうに「とりあえず全部書いとけ」でプロパティを書き連ねてるかがバレてしまう……」 / Twitter
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Webのレイアウトの歴史、HTMLべた書きからtableを経てCSS float、その先のflexboxまで来たけど、いずれも「そこに置かれる物」が基準のレイアウト手法だった。CSS gridは「入れ物」基準でレイアウトを決める。なるほど、そう考えると理解しやすくなる気がする。」 / Twitter
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「グリッドレイアウトのためだけにdivにphysicalな名前を付けなくてもよくなるの、福音だ……べつにできることは変わらなくても、自分がああいう汚いコード書かなくてよくなるのは嬉しい」 / Twitter
- 令掛ベインさんはTwitterを使っています 「レイアウト組みはフレックスボックスを使ってコンテナサイズ非依存で記述したい気がする。一方、なんだかんだでレイアウト計算 (コンテナのサイズから内部要素の位置やサイズを計算するやつ) をせざるを得ない状況がたまに出てくる」 / Twitter
- ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「予期せぬ横スクロールが発生した時は、 * { outline: 2px solid red; } のCSSがオススメ。 どの要素がはみ出ているか、視覚的に分かりやすくなります。 #CSS https://t.co/7tmefEDCvx」 / Twitter
- ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「補足として、わざわざCSSに記述して更新しなくても、デベロッパーツールでCSSを追記すればその場で分かります。」 / Twitter
- ドッグさんはTwitterを使っています 「HTML 内の要素に意図したスタイルがついてるかをある程度静的にチェックする方法無いのかな.JS に対する TS みたいにスタイルの制約を書きたい」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「最近、CSSとかでドロップシャドウとか簡単に出せるけど、ピクセル単位で自分で計算して出すときの良いアルゴリズムとかどこかにあるのかな」 / Twitter
- Hajime HoshiさんはTwitterを使っています: 「@shibu_jp ガウシアンブラーではないでしょうか (SVG の feDropShadow はガウシアンブラーなどを使った定義になっている https://t.co/6nLM2ycjo0)」 / Twitter
- <feDropShadow> - SVG: Scalable Vector Graphics | MDN
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「Svelte, <style>の中にJavaScriptの式を書くことはできないのね。まぁ構文のバッティングとかCSSOM用にランタイムライブラリーを作ったり、とかを考えるとやむなしか。 https://t.co/NBqsJUy9qF」 / Twitter
- Svelteで最強の動的CSS
- なぜ私たちはCSSフレームワークを使わないのか - Scott Tolinksi氏、Reactive Conf
- Shiki’s Weblog: ESウェブブラウザ通信 - CSS 2.1 Test Suite #13
- Shiki’s Weblog: ESウェブブラウザ通信 - escort バージョン 0.3.1 公開
- Shiki’s Weblog: ESウェブブラウザ通信 - CSSの実装のバグを見つけてから直すまでの手順
- CSS Injection (+ Recursive Import) の原理と攻撃手法およびその実装について - Szarny.io
- どのCSSプロパティが世の中のWebサイトでよく使われているのか? マイクロソフトがクローラーから得た統計を「Global CSS Property Usage」として公開 - Publickey
- CSS usage on the web platform - Microsoft Edge Development
- コンポーネントベースのアプリケーションのためのCSSアーキテクチャ
- ページ表示を速くするCSSの記述方法 - Qiita
- CSSセレクタの優先順位の計算方法 - Qiita
- (メモ)CSS1、CSS 2.0がSuperseded Recommendationへ - 水底の血
- CSSセレクターマッチングのコスト - Unreviewed
- ふんいきがわかるCSSレイアウトの知識 | Money Forward Engineers' Blog
- ふんいきがわかるCSSレイアウトのちしき // Speaker Deck
- HTML6 でも CSS4 でもない Web 技術のゆくえ // Speaker Deck
Twitter
Super Reload
- べるさんのツイート: "うたプリファンミ通販のためにムービックで戦っている方、4:14現在全てまだ在庫あります。 スマホとPCで試した結果、firefox(PC)でアクセスしてCtrl+Shift+Rを繰り返していたところ、10分とせず繋がりました…!! ご飯お風呂睡眠を挟んで16時半からの戦いがやっと…幕を閉じました…(˘ω˘)"
- なかのん&マジックさんのツイート: "あまり有名じゃないSuper Reload……"
- おじゅんぬさんのツイート: "うたぷり ムービック戦争ですが PCのFirefoxで マイページより「うたの」で検索→落ちると思うのでctrl+Shif+Rで連打 であっさり行けます"
- にんさんのツイート: "ムービック燃やす勢いのうたプリファンの皆さん pcからfirefox落として「ムービック うたプリ 通販」で検索、お客様各位になったもshift.ctrl.rの3つ同時押しで更新してたらぽろっといけます!!!その後も度々お客様各位にされるけど同じやり方で更新!!"
- なかのん&マジックさんのツイート: "なんでSuper Reloadがこの界隈では有名なの……?"
- mizchiさんはTwitterを使っています 「何度も言ってるけどブラウザ仕様の肥大化が開発力のある一部のベンダの寡占につながってるので、個人でもちょっと頑張ったら実装可能なレベルのサブセットを定義したほうがいいと思う。div と flex と ES Modules しかないぐらいの」 / Twitter
- mizchiさんはTwitterを使っています 「今のブラウザの課題はアクセシビリティなので、規定要素として div を定義するんじゃなくて、アクセシビリティだけ定義してそれの表象として必要最低限の要素だけあるといいのかもしれない」 / Twitter
- mizchiさんはTwitterを使っています: 「「JSやCSSをセルフホストではなくCDN から引いておけば他のサイトで落としてる可能性があって速い」を現代でも言う人がいますが… 今は「ブラウザが何をキャッシュしてるか」の情報が匿名ユーザー識別に使えてしまうので、ページごとにキャッシュが独立するようになってるので無駄です」 / Twitter
- mizchiさんはTwitterを使っています: 「ページというかオリジン」 / Twitter
- なかのん&マジックさんのツイート: "Geckoはパフォーマンスに直結する、グラフィックのレンダリング部分とUIに関する部分はプラットフォーム依存なものの、レンダリングエンジンそのものにはほとんどifdefが入ってないので、プラットフォーム変わってもレイアウトは基本、変化しない。"
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ブラウザの何がしんどいって、何かメソッドを呼ぶとJSが走ってしまうかもしれず、そうなると`this`も含めて何が破棄され、DOMノードだと親子関係・兄弟関係がどう変わってるか、調べてみないと何も分からない、でも調べるとパフォーマンスが非実用的になるというクレイジーさなんよな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ブラウザの逐次レンダリングで、タップ押下位置のDOM要素が変化してから0.5秒くらいは、タップを無視する機能をつけてほしい。」 / Twitter
- 柴田 和祈|microCMSさんはTwitterを使っています: 「AstroがいくらHTML, CSSのみを吐き出そうと、それはSCSSからCSSを生成するのと一緒で元ファイルをいじれる人がいないと結局運用は無理だよねという問題。 真理すぎる。 HTML, CSSの吐き出しは運用とは関係ない話ですね。」 / Twitter
- chikoskiさんのツイート: "興味深かったのはグラフィックスの扱い。JSで実装された描画用の関数群でグラフィックスの操作をするのが、よくある手法なのに対して、このコンパイラでは線形メモリの一部をVRAMとして扱うことで描画する。もしかしたら一括転送できて、パフォーマンス的にもいい手法なのかもしれない"
- Build your own WebAssembly Compiler
- みなぎ🌱さんはTwitterを使っています: 「最近の装置・機械、 「Android搭載」とか「Linux搭載」とかってするけど、 起動は遅いし読み込み遅いし、UIは綺麗になったけど、 装置として残念になった。 前みたいな、4bitカラーみたいでタッチパネルだけとCUIに毛が生えた程度だけど、1秒で起動してサクサク動くのがよかった。」 / Twitter
- S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23)
- motekin☆UP DATE💉💉💉さんはTwitterを使っています: 「参考にした書籍には、ブレゼンハムの線分解析アルゴリズムが使用されていた。簡単に説明すると、乗除算や小数点演算が出来ない低機能なCPU向けの実装である。 しかし、SVPは16ビットの乗算を高速に実行することができる。 ということは、ブレゼンハムを使用せず、直接計算したほうが速いのでは?」 / Twitter
- ぼやさんはTwitterを使っています: 「描画スキップと交点計算が天秤ですね A領域は両辺計算だけ、B領域は書き込みスキップ、C,D領域は打ち切りなんだけど、毎ピクセル判定入ると重くなるからね 交点は除算なくても二分法で求まるけど、まぁまぁの場合分けとループ数になるしね」 / Twitter
- motekin☆UP DATE💉💉💉さんはTwitterを使っています: 「これに気づき、新たに作り直した描画処理は、従来のものより明らかにシンプルになり、大幅に高速化された。 もう一点、ポリゴンのクリッピング処理も工夫した。 元のポリゴンは4頂点だが、画面からはみ出た部分を前処理でカットし、最大8頂点のポリゴンに変形させ、描画中の判定を不要に。 https://t.co/6YbOPrUgNH」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「媒介変数を使ったBezier曲線とNURBS曲面のわかりやすい説明。実際にブラウザ上で動かせる。 https://t.co/4nmjY0HHRW」 / Twitter
- Curves and Surfaces – Bartosz Ciechanowski
- Nerry@さんのツイート: "実機でキー入力の反応が悪い。描画ロックのせいかな?"
- Nerry@さんのツイート: "マウスは普通に動いてるしnoiz2bgがそれほど負荷高いわけでもないからキー入力だけレスポンス悪いのは不自然ϵ( 'Θ' )϶"
- Nerry@さんのツイート: "ロックが中途半端だったからspinlockに変えたら早くなったϵ( 'Θ' )϶"
- Nerry@さんのツイート: "ロック方法も悪かったけど1文字入力するごとに再描画必要な現在のコンソールの構造がそもそも悪い気がする"
- ベジエ曲線のなめらかさの話 / Bézier Smoothness - Speaker Deck
- chromium/src - Git at Google
- For Developers - The Chromium Projects
- Issue Tracking - The Chromium Projects
- 原健太朗のページ : Chromium
- How Blink works - Google ドキュメント
- Next Generation Engine (BlinkOn 7) - Google スライド
- Next Gen Rendering Engine (BlinkOn 8) - Google スライド
- 電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
- [2021.08.31] V8 と Blink のアーキテクチャ - Google スライド
- PPL: Code generation in Blink-V8 binding - Google スライド
- ウェブの進化とウェブブラウザ開発の最前線
- Google Developers Japan: Chrome のレンダリング パイプラインにおけるパフォーマンス向上について
- Life of a Pixel 2018 - Google スライド
- LayoutNG - Google ドキュメント
Web-Spec
その他
- ネット「兵器化」の恐れ、ソーシャル規制をWWW設計者が訴え
- www.webapi.link
- [webkit-dev] new standards-positions repo
- WebKit/standards-positions: WebKit's positions on emerging web specifications
- RFC8174「RFC 2119のキーワードにおける大文字と小文字の曖昧性」 - ASnoKaze blog
- 今すぐ知っておくべき!モダンな10のWeb技術 | ガジェット通信
- 連載 | WEB標準化動向 | HTML5Experts.jp
- Web標準化という仕事、そしてWebの今後について、W3Cの中の人に聞いてきた | HTML5Experts.jp
- Web 標準化のフィードバックサイクルを円滑にする Origin Trials について | blog.jxck.io
- Webシステムにおけるオートファジー構想 - 人間とウェブの未来
- Web Platform ... What is it ? (Webプラットフォームのつくり方) // Speaker Deck
- won't fix: オープンソースな製品でどうセキュリティバグをハンドルするか?
- Monthly Web の作り方 2018 年版 | blog.jxck.io
- Webの健全性を守る主役は果たして誰なのか - WebStudio
IETF
- IETF Documents
- RFC INDEX
- https://www.ietf.org/download/rfc-index.txt
- https://www.ietf.org/rfc/std-index.txt
IANA
- IANA — Protocol Registries
- IANA — Status of IETF Internet Drafts
WHATWG
Developer Edition
- WHATWG HTML Standard Developer Editionの話 - 水底の血
- HTML Standard
- HTML Standard 日本語訳
- Web Hypertext Application Technology Working Group
- Web Hypertext Application Technology Working Group Specifications
- HTML Standard
- The WHATWG Blog — Further working mode changes
- WHATWG Working Mode Changes | W3C Blog
- WHATWG の IPR Policy と Governance Structure | blog.jxck.io
- Rockridgeさんのツイート: "WHATWGが「運営グループ」と称するいわば舵取りの機関を設置。Apple/Google/Microsoft/Mozillaから1名ずつ代表者が参加する。参照:https://t.co/TNOkM6NmRu / “The WHA…” https://t.co/uLzomrlWqK"
- W3CからのWHATWGに関するアナウンスメントについてのメモ - 水底の血
- The WHATWG Blog — Changing the copyright license for Living Standards
- Makoto Kato ︎︎さんのツイート: "WHATWGのコントリビュータをどう増やすかみたいな議論になって、good first bugについての話になったらしい。そのgood first bugは仕様に明記られてないけど大概こんな動作だからそれをドキュメントに落とすだけらしいけど、ハードル高いよね"
- DOM Standard
水底の血
- Infra Living Standardという話 - 水底の血
- W3C文書を読むときに気をつけたい7つのポイント(超簡易版) - 水底の血
- Obsolete Recommendationという話 - 水底の血
- ウェブ標準仕様の翻訳についてつらつらと書いてみた。 - 水底の血
HTML5日本コミュニティグループ
- HTML5 Japanese Community Group
- W3C User Account Management
- public-html5jp@w3.org Mail Archives
- public-html-ig-jp@w3.org Mail Archives
- HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-01-19 (public-html5jp@w3.org from January 2015)
- Re: HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-02-02 (public-html5jp@w3.org from February 2015)
- 「HTML5日本コミュニティグループ」をW3Cが設立。参加者募集中! - Publickey
Web Platform Incubator Community Group
- Web Platform Incubator Community Group
- Makoto Kato ︎︎さんはTwitterを使っています: 「WICGはW3Cのドラフト仕様じゃなくて、エディタの作ったオレオレ仕様でしかないよ」 / Twitter
Web Education Community Group
- Web Education Community Group
- Web標準カリキュラムがW3Cに移動 | Web標準Blog | ミツエーリンクス
Dataset Exchange Working Group
- Dataset Exchange Working Group Is Making Progress | W3C Blog
- Dataset Exchange WG Charter
- Data Catalog Vocabulary (DCAT) - Version 2
PING
- Privacy Anti-Patterns in Standards | W3C Blog
- W3C Privacy Activity
- w3cping/administrivia: repository to track meta-work. PING webpages are maintained at https://github.com/w3c/ping
- DRAFT Privacy Interest Group Charter
- w3c/ping: Privacy Interest Group webpages (only) - working docs are in https://github.com/w3cping
W3C
- All Standards and Drafts - W3C
- Celebrating the anniversary of the Web | W3C Blog
- World Wide Web Consortium (W3C)
- Web Publications
- Packaged Web Publications
- Web Annotation Extensions for Web Publications
- World Wide Web Consortium Process Document
- W3C Strategic Highlights: Strengthening the Core of the Web (Web Performance) | W3C Blog
- Hadley Beemanさんのツイート: "We just finished discussing the evolution of #featurepolicy with @triblondon. Should it split into 3? • sandboxing behaviours within an iframe • imposing conditions on the document itself, and • dealing with permission-requiring features @w3ctag https://t.co/42z4jvgINJ"
- Feature policy evolution · Issue #341 · w3ctag/design-reviews
- W3C Technical Architecture Group
- W3C and WHATWG to work together to advance the open Web platform | W3C Blog
- W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM | W3C News
- HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - Publickey
- W3CとWHATWGが共同でHTMLの仕様を策定するようです🤝🎉 | フロントエンドBlog | ミツエーリンクス
- HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS
- ゆきさんはTwitterを使っています: 「W3CにDanmakuってドキュメントがあったけど、「弾幕のユースケースと要件について」ってマジ? https://t.co/67BJ2s1Iqk https://t.co/5gUlIONRqc」 / Twitter
- 弹幕规范
- Makoto Kato ︎︎さんはTwitterを使っています: 「https://t.co/ihXxdwGJTY を見ると、最終的にはW3CはSFCとかと離れた独立組織になっちゃうんだろうなと」 / Twitter
- W3C Board of Directors successfully brokered MIT Asset Transfer Agreement | W3C News
MDN Web Docs
- 開発者向けのWeb技術 | MDN
- Web technology for developers | MDN
- Rockridgeさんのツイート: "MozillaがMicrosoft/Google/W3C/Samsung Internetと合意し、Web開発者向けのドキュメントを将来的にMDN Web Docsに集約させることになった。 / “Mozilla brings …” https://t.co/uZJ6lLi65U"
- Web開発に関するドキュメントがMDN Web Docsへ集約されることが発表になりました | フロントエンドBlog | ミツエーリンクス
- Tracking documentation issues | MDN
- Microsoft、Google、MozillaがWebドキュメントで提携へ
- Rockridgeさんのツイート: "MDN Web Docsには毎月延べ780万人の訪問者がいて、この訪問者数は年率51%の成長を見せているという。 / “WeeklyUpdates/EmergingTechnology - MozillaWiki” https://t.co/TkrPigKuJj"
- Google Developers Japan: ウェブ標準のドキュメント統合に向けて
- Rockridgeさんのツイート: "MDN Web Docs内の記事に掲載されているブラウザ互換性テーブルのうち、Microsoft Edgeに関する部分は、現在、Microsoftのスタッフが直接確認して編集しているらしい。 / “Documenting the…” https://t.co/Lssjh6WrAx"
- mdn/browser-compat-data: This repository contains compatibility data for Web technologies as displayed on MDN
- Rockridgeさんのツイート: "MDN Web Docsで、特定の仕様やAPIのブラウザ実装状況を示す表(ブラウザ互換性テーブル)のデザインが、まもなく新しいものに変わる。 / “MDN Web Docsさんのツイート: "🎉 New compatibilit…” https://t.co/w04i0ceVLZ"
- MDN Web Docsさんのツイート: "🎉 New compatibility tables are coming to MDN TOMORROW! 🎉 After several months of beta testing our new, clearer (more colorful) browser compat tables, we're pushing them live for all tomorrow! What do you think of them? https://t.co/7ES9kZ0fwE… https://t.co/Yf5njTa5cu"
- Rockridgeさんのツイート: "2018年のMDN Web Docsでは、ブラウザ互換性テーブルのデータをJSONに移す作業を完成させ、インタラクティブなサンプルも対象と数を増やす。なお、互換性テーブルの編集にはMicrosoft/Google/Samsungの… https://t.co/XTW7px4Gpe"
- Rockridgeさんのツイート: "2017年10月に実施されたMDN Web DocsのAWS移行に伴い、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontも利用するようになった。現在では大半のコンテンツがCloudFront経由… https://t.co/4FPDHDNDS2"
- Rockridgeさんのツイート: "2017年11月、MDN Web DocsのAWS移行時にいったん失われたgzip圧縮が復活し、ページの読込時間が6%短縮されたという。 / “Kuma Report, November 2017 · Mozilla Marke…” https://t.co/ZEQiipC4mf"
- Rockridgeさんのツイート: "MDN Web Docsのブラウザ互換性テーブルの基になっているデータは、npmパッケージの形式でも公開されるため、ユーザーが再利用・加工することが可能だ。参照:https://t.co/oDcsJTEevj / “MDN br…” https://t.co/I60YNPvfmY"
- MDN Web Docs日本語版と英語版の日付を比較するブックマークレット - 水底の血
- <blink>: 点滅文字列要素 (廃止) - HTML | MDN
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「MDNはWikiの開発やメンテが全く追いついてなかったけど、DevRelチームもいなくなり関係者の縮小を受けてどうするのかと思っていたら、Wiki止めてGithubでコンテンツ管理する方向に変わるらしい。 世界最大規模のWikiが無くなる。 https://t.co/Zj2HVyspqs」 / Twitter
- MDN Web Docs: Editorial strategy and community participation - Mozilla Hacks - the Web developer blog
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「翻訳周りの環境には(翻訳サポートの為の機能が詰め込まれていたので)かなり影響がありそうな気がするけどどうなるんだろう。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MDNの新しいサーバーってこのコードか https://t.co/hGFS5WJ3TK」 / Twitter
- mdn/yari: Next-gen MDN platform
- mdn/content: The content behind MDN Web Docs
- MozillaがMDNをリニューアル、将来は有料サービス「MDN Plus」も導入へ | OSDN Magazine
Mozilla
Twitter
- なかのん&マジックさんのツイート: "結局、仕様として汚くてもブラウザ間でうまく動くものが良いってのをブラウザ開発者はみんな、肌で感じてるからであって。たとえば、DOM Event周りだとChrome/Blinkに多々文句言いたいことはあるんだけど、世のWeb開発者はそれを望んでいないというつらすぎる現実。"
- なかのん&マジックさんのツイート: "対抗ブラウザの開発者として「つらい」のではなく、仕様書に多少なりとも関わってる人間として「つらい」現実。はっきり言うと罵倒するような言葉になるので控えておく。"
- なかのん&マジックさんのツイート: "Webの仕様って結局、ある一定の母数のダメな開発者が勘違いしてたことを仕様としてどうにかまとめてしまうなりなんなりしないといけないんだよな。悪貨が良貨を駆逐するを地でいってる世界。ただ、良貨をぶっ壊さないようにしなければいけないというオマケもついてる。"
- なかのん&マジックさんのツイート: "とりあえず、忘れてたIssueをひとつ登録しておいた。予想はしてたけど、本当に救いがたいWeb開発者が世界には居てるわけで…… / Needs alternative WheelEvent.deltaMode, WheelEvent.delat(X|Y|Z) · Issue #181 · w3c/uievents https://t.co/UVBYf0M8Md"
- なかのん&マジックさんのツイート: "普通は仕様書じゃなくてもhttps://t.co/YcIWwdP3JL(X|Y|Z)の値はWheelEvent.deltaModeの値によって意味が変わると書いてあるはずで、一切説明文を読まずにコード書かない限り、そしてそれをmacOSだけか、Firefox以外のみでテストしない限りはこれらの属性がピクセル値だなんて思うわけもないんだよなぁ"
- なかのん&マジックさんのツイート: "記憶が曖昧だけど、ChromeもWindows版で、ページ単位でのスクロールに設定してると、WheelEvent.deltaModeがWheelEvent.DOM_DELTA_PAGEになるんだよ。"
- なかのん&マジックさんのツイート: "とりあえず、このレベルの開発者にはさすがにWeb界隈から退場していただきたい……"
- なかのん&マジックさんのツイート: "とりあえず、ヤバい臭いは実装時からしてたんで、あらかじめMDNで詳しいドキュメントを用意しててもこれなので、バカの先回りは不可能という結論。"
- Andreas Bovensさんのツイート: "Starting with Firefox 61, touchstart and touchmove event listeners are passive by default, making touch scrolling faster on Firefox for Android. https://t.co/h8iYMK5bAV"
- Touch event listeners are now passive by default, making scrolling faster on mobile | Firefox Site Compatibility
- なかのん&マジックさんのツイート: "ん?マジで?そんなこと許されるのか?"
- なかのん&マジックさんのツイート: "Event.preventDefault()を呼ばないのに、EventTarget.addEventListener()でpassiveにしてないWebアプリは多そう。 https://t.co/PSd80k3sCf"
- EventTarget.addEventListener() - Web APIs | MDN
- なかのん&マジックさんのツイート: "そう考えると、フレームワークはブラウザの動作速度の最適化は難しいな。どういう風に今の所やってんだろ。"
- なかのん&マジックさんのツイート: "いやー、本当にまとめてくれててありがたい。 #もずでぶ https://t.co/HsoHIPFoOJ"
- 近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
- なかのん&マジックさんのツイート: "non-printable keyを非表示キーと訳したのか。使ってて思うけど適当な訳語がなさ過ぎ。"
- モバイル上のスクロールを高速化するため、タッチイベントリスナーが標準で passive となりました | Firefox サイト互換性情報
- ウェブの知識をスマートオン! — Mozilla
- ドキュメント | Firefox サイト互換性情報
- トップレベルウィンドウ上のデータ URL 遷移はブロックされるようになります | Firefox サイト互換性情報
- 安全なサイトに埋め込まれたプラグイン内部での安全でないコンテンツの読み込みが廃止予定となりました | Firefox サイト互換性情報
- mozilla-japan/translation: Mozilla 関連のドキュメント翻訳リクエストとステータス管理
- バージョン別にドキュメントを参照 | Firefox サイト互換性情報
- Rockridgeさんのツイート: "Mozillaが考えるWeb互換性問題の発生原因について。W3Cが仕様化したAPIすべてを実装したブラウザが存在しない中、Web開発者の平均経験年数は低下し、開発に使用するブラウザもChromeに偏っている。 / “Make t…” https://t.co/lTA1qIzoWO"
- Make the Web Work For Everyone – Mozilla Hacks – the Web developer blog
- Compatibility/Unshippables - MozillaWiki
- ウェブページ内での FTP リソースの読み込みが許容されなくなりました | Firefox サイト互換性情報
- 近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
- ::selection 疑似要素の接頭辞が外れました | Firefox サイト互換性情報
- 今後 IME 変換中にも keydown、keyup イベントが発生するようになります | Firefox サイト互換性情報
- Application Cache が安全でないサイトでは使用できなくなりました | Firefox サイト互換性情報
- Firefox 60 ESR では Service Worker とプッシュ通知が無効化されます | Firefox サイト互換性情報
- 環境光・近接センサー API が無効化されました | Firefox サイト互換性情報
- ほとんどの非標準 CSS display 値が廃止されました | Firefox サイト互換性情報
- <meta http-equiv> による Cookie の設定が許可されなくなります | Firefox サイト互換性情報
- Symantec、GeoTrust、RapidSSL、Thawte、Verisign 証明書への信頼が 2018 年 10 月にすべて失われます (影響あり) | Firefox サイト互換性情報
- getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました | Firefox サイト互換性情報
- display:-moz-box と display:-moz-inline-box が廃止予定となりました | Firefox サイト互換性情報
- navigator.platform が 64 ビット版 Firefox 上でも "Win32" を返すようになりました | Firefox サイト互換性情報
- window.event が互換性のため追加されましたが、一部のブラウザー判別に影響があります (影響あり) | Firefox サイト互換性情報
- window.open の noopener オプションが他のウィンドウ特性に影響しなくなりました | Firefox サイト互換性情報
- window.event、Event.returnValue への対応が追加されました (影響あり) | Firefox サイト互換性情報
- <table> のサイズと位置が <caption> を計算に入れるようになりました | Firefox サイト互換性情報
- Fullscreen API の接頭辞が外れました | Firefox サイト互換性情報
- window.open() がイベントごとに一度しか呼び出せなくなりました | Firefox サイト互換性情報
- サードパーティトラッキング Cookie が初期設定でブロックされるようになりました (影響あり) | Firefox サイト互換性情報
和訳
- ウェブ関連仕様 日本語訳
- triple-underscore/triple-underscore.github.io: Japanese translations of various web spec.
- RFC日本語版リスト
- Web関連技術の仕様書邦訳
- W3C仕様書などのまとめ【保存版】 | W3C仕様書関連の文書や日本語訳をまとめてみた。
Twitter
- Jxckさんのツイート: "ようするに WICG ってのは W3C の敷居が高すぎるけど、 Web 標準に対して物申したい人は、ここ https://t.co/rT2sMRVIwM に雑に投げてくれれば、中の人がうまいことハンドリングしてくれるよっていうこと。 #w3ctagdevmeetup"
- WICG
- vyv03354さんのツイート: "@piro_or @momdo_ webkitMatchesSelectorに至ってはDOM Standardで規定されています。 https://t.co/GVLjPUccxO 今ではwebkitプレフィックス付き==非標準とは限りません。"
- vyv03354さんのツイート: "@piro_or @momdo_ 経緯はこちらをご覧ください。 https://t.co/lMO8Pq4YJj DOM Specへの追加を推したのはbzですね。"
- vyv03354さんのツイート: "@piro_or @momdo_ navaigator.appNameは固定文字列"Netscape"を返せとか。 https://t.co/D0cY5F5sgR 自分より年下の人に自虐的に老人とか自称されると何とも言えない複雑な気分になりますね。"
- Rockridgeさんのツイート: "2017年11月、W3Cの"Improving Web Advertising Business Group"が結成された。オンライン広告のユーザー体験を改善し、有用性とプライバシー・安全性とのバランスを取る方法を模索していくとい… https://t.co/jVUW29c7VW"
- vyv03354さんのツイート: "https://t.co/J7klkTDNAG たぶん @momdo_ 氏あたりには今さらの話だと思うけど、W3CとWHATWGの協調する気のなさほんとひどい"
- もんどさんのツイート: "協調のなさが酷いというより、W3C/WHATWGでまだ一緒に作ってたころ(HTML 5.0 CR)に決まってたものを後からW3Cがひっくり返したという感じで、W3Cの挙動が解せないというのが個人的な印象ですね…… "
- もんどさんのツイート: "まあその意味ではlongdescとかおそらくブラウザーではこれ以上実装されなさそうなものをひっくり返すみたいなのは、ちょっと理想に走りすぎでは、という気がしなくもなく。"
- もんどさんのツイート: "ただその一方でmain要素はHixieのこだわってた(と個人的には思ってる)複数要素を許容みたいな話は葬り去られて、A11y寄りのSteve Faulknerの主張が通って統一できたのは、これはこれで歩みよりがあるのかなと。"
- Rockridgeさんのツイート: "Googleが自社サービスをChromeに最適化し、それ以外のブラウザを事実上排除したうえ、高いシェアを背景に仕様標準化の際にもChromeの実装がそのまま通るように力を振るうとすれば、IE6の独占時代と何が違うのか。 / “C…” https://t.co/zHYKnESPnT"
- なかのん&マジックさんのツイート: "ブラウザなんて、まさに、実装依存のWebアプリ達との闘いですな。Firefoxのシェアが下がったとはいえ、(Firefox側がバグってる場合を除けば)対応する価値は十分にある。実装依存な場所を洗い出してくれるから、他のブラウザの将来のバージョンとの互換性も高くなる。"
- なかのん&マジックさんのツイート: "Firefox側で、仕様にない挙動を、互換問題からChromeの動作にあわせようとしていたら、Googleのエンジニアさんがたまたま同じタイミングで、Firefoxのシンプルな挙動にしようとしていた、という笑えない事が去年あって、止めた。タイミング違ってたら、Chrome依存なサイトがChromeでも壊れてた事案。"
- Ryou Ezoeさんのツイート: "W3CがWHATWGのHTML DOM 4.1をforkして、forkであることも明記せず、コミュニティになんの説明もなく改変してリリースしようとしたので至るところからFormal Objectionが飛ばされている https://t.co/FFn7DCUxRF"
- Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec | Hacker News
- なかのん&マジックさんのツイート: "Chromeの動きが理にかなってたら互換性のために修正入れるのはそう難しくないんですよ(ソースコードのデザイン上大変なことはあっても)。でも、理にかなってない場合や単純にバグってるよなって場合にはそれが難しいんですよ。IE一強の時代と全く同じで。"
- なかのん&マジックさんのツイート: "同じ設計じゃ無いのにバグをエミュレートするってのは難しいんですよ。何しろ意図して条件分岐した結果、動作が変わってるとかではないんで。"
- Makoto Kato ︎︎さんはTwitterを使っています: 「MDNのBrowser Compat Dataとかcaniuseはちゃんとテストされた結果のデータが公開されているわけではないので、間違ったものを見つければ直してはいるけど、あのデータをすべて信じてる人、Wikipediaの記述もすべて信じてそう」 / Twitter
- なかのん&マジックさんのツイート: "とりあえず、最近ますます速度が上がって、Webの進化に自分が関わってる所以外はついていけないんだけど、なんで「落ち着いてる」って言ってる人を結構見かけるのか不思議だ。"
- 市川 真一さんはTwitterを使っています: 「@d_toybox 「標準化の活動が落ち着いているな」とか書かれてる記事が出たりしてる影響とか、規格を意識して追ってない人だと変化を知らないはず: Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | https://t.co/eTqM0cwZl7 https://t.co/gJwKUaFzGX」 / Twitter
- Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | HTML5Experts.jp
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@tenpoku1000 まさかの……」 / Twitter
- なかのん&マジックさんのツイート: "HTML5的には<b>とかみたいにスタイル情報を持ってる要素を英語でなんと呼んでたっけ……"
- なかのん&マジックさんのツイート: "特に呼び名が無さそうだな。意味付けが行われたせいか。HTML4.01だと"Font style elements"とインライン要素限定感あるグルーピングされてるな。"
- Makoto Kato ︎︎さんはTwitterを使っています 「caniuseとかbrowser compat dataを出しながら、Safariだとこれが実装されてない!って言っている人をたまに見るが、Chromeには実際にはAPIの皮だけあるけど動かないみたいなのが多くあるので、"partial_implementation" なフラグをつけて実装できてないように見えるようにしようと思う」 / Twitter
- 愉快な生活送り太郎さんのツイート: "EPUBの標準化団体(IDPF)がEPUBのリファレンス実装として公開していたReadium-SDKがGPLからBSDライセンスになってた!!!!!!!!! ■BSD化のアナウンス https://t.co/NjlOQTKmzh ■github https://t.co/bj1AOe5J0E"
- BSD Licensing for SDK
- readium/readium-sdk: A C++ ePub renderer SDK
- Mantarohさんのツイート: "この間の Digital Publication Layout and Presentation のレポート。 https://t.co/j0CxtMNDpO Vivliostyle の村上さんのスライドが Vivliostyle を使った物だと言うのが感慨深い。 Pagination という痛いところを突かれて心苦しいけども…"
- W3C Workshop on Digital Publication Layout and Presentation (from Manga to Magazines)
- MozillaがWebの進化に向けたビジョンペーパーを発表 | OSDN Magazine
- Mozilla’s vision for the evolution of the Web
- 次期Webブラウザベンチマーク「Speedometer 3」、Apple/Google/Mozillaが協業へ - PC Watch
- CORB から ORB へ | blog.jxck.io
デスクトップ
OS 標準部品・アプリ
- りく(いしゅみ)さんはTwitterを使っています: 「そのOSの標準的なダイアログの出し方・UIガイドライン・認証・バックグランドタスクの投げ方を踏襲しているアプリは信頼感が高い。逆に謎カスタマイズしているアプリは不審。そして行政や日本の大企業が出して来るアプリはだいたい後者。」 / Twitter
- りく(いしゅみ)さんはTwitterを使っています: 「明らかにOSやネットワークプロトコルやその他各レイヤーの機能を活かさず筋の悪い提案を出してきた人を見たら「ああ、この人は何にも知らずに喋ってるんだな」って判断するよね。普通。」 / Twitter
- りく(いしゅみ)さんはTwitterを使っています: 「典型的な例が、行政や大企業が出してくるスマホアプリは絶対OSの標準UIコントローラを使ってないんだよ。標準UIが完璧とは言わないけど、その辺の素人の考えよりかはよっぽと、タップ・フォーカス・キャンセル・disableの視覚効果が練られてるんだよ。特に理由がないならそのまま使うべきなんだよ。」 / Twitter
- なかのん&マジックさんのツイート: "OSに標準搭載されてるアプリがショボくて、なんでこんなのあるんだって思う人も多いかと思いますが、サードパーティーのアプリはあれを参考にすることでOS上でアプリ間共通の用語、メニュー構成、ショートカットキー、その他使い勝手を実現できるので、無いとえらいことになるんです。"
- なかのん&マジックさんのツイート: "ネイティブのタイトルバーはWindowsの場合、アプリのプロセスがハングアップしてても操作可能なので、GPUドライバのバグとかで固まりやすいメディアプレーヤー系では使えるようにしておいて欲しい。自前のモーダルダイアログ出すアプリとかだと詰むんだよなぁ。"
- なかのん&マジックさんのツイート: "ウイジットを全て自前で実装して、本当にその価値があるのってブラウザみたいに自前でレンダリングするしかやりようが無いような特殊なアプリか、クロスプラットフォームでUI部分のコードを完璧にシェアしつつ、自分達でその仕様をコントロールする必要がある場合だけだよな。どちらにしろ特殊。"
- なかのん&マジックさんのツイート: "GPUのドライバがクラッシュしたっぽいけど、この場合、NightlyのUIは完全にお亡くなりになるのか。メニューとかすら自前レンダリングのアプリはこういう時は弱い。"
Flutter
histric
histric-1
- Inside Flutter - Flutter
- Flutter の Widget ツリーの裏側で起こっていること. Widget・State・Element・RenderObject… | by mono | Flutter 🇯🇵 | Medium
- Flutter はじめの一歩. はじめに自動的に作られるカウンターアプリを丁寧に解説 | by mono | Flutter 🇯🇵 | Medium
- 【Flutter】必要最低限の構造からFlutterの基礎を学ぶ - はなちるのマイノート
- 社内でFlutterのハンズオンを行ったので、資料を公開します - ペパボテックブログ
- Flutter入門のためのDart入門 - Qiita
- Flutter:Widget一覧 - Qiita
- Flutterの実践導入で用いるBLoC Patternの全体像と押さえておくポイント|yamarkz - Kazuki Yamaguchi|note
- Flutter Webの現状調査 - ntaoo blog
- 最高のクロスプラットフォームを自称するGoogleのUIツールキットFlutter 2.2
- Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語がわからなくても、オフィシャルのこの辺の情報はハンズオン的に追っかけていくだけでも基本はわかるんじゃないかと思います。次のステップは、とりあえず入門書系ですかね。2019年後半以降に出てる日本語の本ならとりあえず最新の情報にはキャッチアップできるかと。 https://t.co/I7y6GzQN5Y」 / Twitter
- Write your first Flutter app, part 1 | Flutter
- Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語でよければ、最初のチュートリアルの続編みたいな感じで、こういうのもあります。カッコいいレイアウトをガシガシ作っていける楽しさがわかるとモチベーションになると思います。 https://t.co/ut7etEzK99」 / Twitter
- Building layouts | Flutter
- FadisさんはTwitterを使っています 「ソニーが組込機器にリッチなGUIを乗せる為に、Flutter(Google製のGUIツールキットで、主にスマートフォンやFuchsiaで使われる)をWayland上で動くようにした、という話。Qt、GTK、Webkit等いろいろな選択肢を試したが、これが丁度いい綺麗さ、開発の容易さ、軽さだったらしい https://t.co/3uIQ0hJwb6」 / Twitter
- Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix
- flutter 内部構造 - Google 検索
- Takashi KawasakiさんはTwitterを使っています 「Flutterで一番辛いのはプラグイン感の干渉というか依存関係でビルドが通らなくなることで、この辺、まあ、モバイルアプリのアーキテクチャに依存する部分もあるわけだけど、サーバーサイドがコンテナとかマイクロサービスとかで疎結合になって管理が楽になってるのからすると、こっちもコンテナほしい」 / Twitter
- Google、「Flutter for Windows」を発表 - 窓の杜
- Google、「Flutter 2.10」リリース - 「Flutter for Windows」が正式版に | TECH+
- 「Flutter 2.10」公開、Windowsサポートが安定扱いに | OSDN Magazine
- shinobu.dartさんはTwitterを使っています 「そして、実はFlutterもCode Searchあるんですよ! Androidほどではないけど、GitHub上で読むより体験は良さそう! https://t.co/JkZL1TOpRI」 / Twitter
- Google オープンソース
- Flutter 1 → Flutter 2 で変わったことと今後【概要】 - Qiita
- 性能をさらに改善した「Flutter 2.8」が公開 | OSDN Magazine
- Flutter 3が、サポートされるすべてのプラットフォームに対して安定版となり、Material Design 3を拡張
- Flutter 2.10でWindowsサポートが安定版に
- Flutter 2.8とDart 2.15がパフォーマンス向上にフォーカス
- Flutter 2はWeb向けに本番環境対応しており、新しいプラットフォームを追加している
- FlutterをElectronと組み合わせる | フューチャー技術ブログ
- FlutterでGoogleマップを表示してみる | フューチャー技術ブログ
- Flutterの使いかた、環境構築から実装、ビルドまで | フューチャー技術ブログ
- Flutter for Windowsが正式版に、「Flutter 2.10」リリース。単一コードでiOS/Android/Web/Windowsアプリが可能に - Publickey
- Flutter 2.8がリリース。モバイルアプリの性能向上、2Dゲーム向けフレームワーク「Flame」登場 - Publickey
- Takashi KawasakiさんはTwitterを使っています 「Flutter、どのプラットフォームにおいても、下位レイヤーのコードは一切隠されてないので、いざとなれば直接手を入れることができるという安心感がある。for Windowsに関しても、普通に wWinMainがあるし、Windowsの中途半端にその辺が隠れたフレームワークよりはずいぶんとやりやすい。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「まぁ、そもそもDart RuntimeとSkiaのSurfaceがウィンドウに乗ってるだけという構造なので、理解が難しいことは何もない。シンプルで良い。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「なんか、主要なフレームワークが実はグローバルなMap<Name, Object>を綺麗にラップしてるだけっていうのは本当は嫌い。と言いながら、自分もそういう実装してしまうんだけども。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「そういや、Flutterで問題なことの一つに、http/2のサポートが弱いというか、httpに対して透過的じゃないとか、http/3に関してはそもそも影も姿もないみたいなこと。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Dart 2.15では、Isolate.exitでオブジェクトをコピーなしで返すことができるようになるのね。素敵。 https://t.co/aRiPzsIbL0」 / Twitter
- Announcing Dart 2.15. Fast concurrency, constructor… | by Michael Thomsen | Dart | Dec, 2021 | Medium
- Takashi KawasakiさんはTwitterを使っています 「Dartのこの辺の型をそのまま持っていける感じなの、他の言語出身者からすると相当にキモイ。tear-offっていうのは、genericsの型なしの状態で変数(?)に拘束して持っていける感じなのね。まぁ、新手のtypedefかな。 https://t.co/F6fhb1w3Dr」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「そもそもが、この従来からサポートされてる型を変数にぶち込む感じの奴がキモイ。一番下の書き方の方がむしろ理解はしやすい。長いけど。 https://t.co/XJ6a8BVv3X」 / Twitter
- Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021 - Publickey
- Flutter 3.3がリリース。パフォーマンスの改善、テキスト周りの改善、iOS向け高速な描画レイヤ「Impeller」を試験的実装 - Publickey
Jetpack Compose
- 既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose - Speaker Deck
- 既存実装を活用しつつJetpack Composeを用いてクックパッドAndroidアプリの買い物機能を高速に開発している話 - クックパッド開発者ブログ
- Jetpack Composeで迎えたAndroidアプリ開発の新たな門出 - Cybozu Inside Out | サイボウズエンジニアのブログ
- takahiromさんはTwitterを使っています: 「昔の記事だけど、Jetpack Composeの関数への引数を例えばButtonTypeを作って渡すのではなく、普通にComposable関数として分けることで引数増やしたり拡張できる話。刺さる人多いのでは。👀 https://t.co/MA5tPYDtxZ」 / Twitter
- Slotting in with Compose UI · Chris Banes
- マテリアルデザインを簡潔に記述できる「Jetpack Compose」がバージョン1.0に到達、本番環境で安心して利用可能に - Publickey
- Jetpack Composeのパフォーマンスのベストプラクティス @Google I/O報告LT会 - Cybozu Inside Out | サイボウズエンジニアのブログ
TDE・TQt・Qt
- FadisさんはTwitterを使っています: 「TDE 14.0.12が出たらしい。TDEはKDE3こそ最高のデスクトップ環境と考える人達が2010年にKDEプロジェクトでの開発が終了したKDE 3.5の開発を引き継いでイマドキのLinux環境等で快適に使えるように改良を続けている物 https://t.co/hRIyd1yNWk」 / Twitter
- TDE R14.0.12 Released For Pushing The KDE 3.5 Experience In 2022 - Phoronix
- FadisさんはTwitterを使っています: 「TDE 14.0.12ではTDEのpolkit-agentが追加され、polkitで認証を要するプロセスを上げようとした際にネイティブのダイアログでパスワードを求められるようになる。また、Markdownドキュメントをレンダリングするコンポーネントが追加される。autotoolsからCMakeへの移行も進んでいるらしい」 / Twitter
- FadisさんはTwitterを使っています 「The Qt Companyが、短期的なキャッシュが必要になった為Qtの将来のバージョンではオープンソース版を廃止するかもしれない、とした事をうけて、KDE及びQtを利用するオープンソースソフトウェアの開発者達がQtをforkする方法について議論を始めている、という話 https://t.co/z1KWjdC8HK」 / Twitter
- More Open-Source Participants Are Backing A Possible Fork Of Qt - Phoronix
- FadisさんはTwitterを使っています 「尚Qtが過去にforkした事例としては、KDE3をforkして現代のLinux環境でも使えるように保守し続けているTDEの人達が、KDE3が依存しているQt3を使い続けられるように独自に開発を続けているTQtが存在する」 / Twitter
- FadisさんはTwitterを使っています 「多くのソフトウェアがQt6に移行していない中でQt5のオープンソース版の開発が終了した事を受けて、Qt5を恐らく最も使い込んでいるKDEプロジェクトが「Qt5のオープンソース版の最後のバージョンに対するセキュリティフィックスとバグフィックスの提供」を開始したらしい https://t.co/TmYIxQrhRq」 / Twitter
- KDE Now Maintaining Their Own Set of Patches For Qt 5 - Phoronix
- Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「QtはAndroid対応がやばい。Qt6は未実装モジュールが多くて移行できないしQt5はこのままほっとくとSDK30への対応期限迎えてアプリがリリースできなくなる。この辺は多分KDEでもメンテできない。」 / Twitter
- 「Qt 6.3」が公開 | OSDN Magazine
- 新しいSvelte NodeGuiでQtとSvelteを使用したネイティブデスクトップアプリケーションを作成できる
- Qt 6がQMLを改善し、C++17を採用
Skia
- 渋川よしきさんのツイート: "描画エンジン(Skia)が即時モード、レンダーツリーは保持モード、DOMは保持モード、仮想DOMの生APIは即時モード、仮想DOMのコンポーネントは保持モード。最近、こういう多層構造がコーディングのシンプルさと性能の両立に重要なんだろうなって気がしてる。"
- ドッグさんはTwitterを使っています 「SkRasterPipeline の最適化が Skia の描画の速さの理由らしい https://t.co/rwmNeGXdke」 / Twitter
- skia/SkRasterPipeline_opts.h at main · google/skia
- CanvasKit - (Skia + WebAssembly)を使ってみる - Qiita
nuklear
Desktop Engine
- Arcan | IRC: #arcan @ chat.freenode.net
- letoram/arcan: Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"
- Home · letoram/arcan Wiki
Qiita
- シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
- the Nothing itself nothings
- nothings/stb: stb single-file public domain libraries for C/C++
- nothings/single_file_libs: List of single-file C/C++ libraries.
- vurtun/nuklear: A single-header ANSI C gui library
- P/ECE研究室
- P/ECE研究室さんのツイート: "P/ECEで、オープンソースのGUIライブラリ「Nuklear」を使ってみました。 https://t.co/mUz8lBmah9 Nuklearは、少しマイナーみたい(?)ですが、とても使いやすいと思います。気に入りました。 https://t.co/uf1L6thBjn https://t.co/Bm8yINtVRX"
- SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
- LCUI - Build simple desktop apps with C, XML and CSS
- lc-soft/LCUI: A simple GUI library, it is written in C, support XML and CSS.
- xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
- LittlevGL - free embedded graphics library
- littlevgl/lvgl: Embedded graphics library with transparency, animations and anti-aliasing with NO Double buffering.
- andlabs/libui: Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
- 渋川よしきさんのツイート: "libuiが沈黙してしまったの悲しい"
- 渋川よしきさんのツイート: "libui、リスト対応の方針決めました!で時間が止まっているけど、ガリガリ使える感じなのか・・・"
- OpenGL な UI を作るライブラリ一覧 - Qiita
- OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
- ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- ocornut/imgui_club: Nice things to use along with dear imgui
- 本の虫: KMSCON
- 本の虫: KMSCONがだいぶ実用的になってきたようだ
- りやさんさんのツイート: "Nuklear、本質的には内部のコンテキストから頂点、インデックスリストと、テキストの場合はアトラステクスチャのUVを吐き出すだけのシステムなので、めっちゃ取り回し良くて軽量。なんで日本で流行ってないんだ?"
- OpenSiv3D+nuklearでGUIを実現する - Qiita
- DXライブラリ+nuklearでGUIを実現する - Qiita
- VisualStudioとC++だけでAndroidアプリをつくる - NuklearによるGUIの表示 - √g
- いまどきのデスクトップ処理系 - Backnumbers: Steps to Phantasien
- Electron入門 ~ Webの技術でつくるデスクトップアプリ
- Sixel Graphicsを活用したアプリケーションの御紹介 - Qiita
2D
その他
- The FreeImage Project
- YCbCr ‐ 通信用語の基礎知識
- Digital Negative(DNG)、Adobe DNG Converter | Adobe Photoshop CC
- FFTPACK
- Graphviz | Graphviz - Graph Visualization Software
- 画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか? - GIGAZINE
- Compressing and enhancing hand-written notes
- 第873回:bokeh とは - ケータイ Watch
- κeenさんはTwitterを使っています 「@ncaq フォトショップのファイルのフォーマットとブラシのファイルフォーマットは別で、ブラシの方は公開されてないようでした。」 / Twitter
- Adobe Photoshop File Formats Specification
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「QOI (Quite OK Image) 画像圧縮アルゴリズム。PNGとほぼ同等の圧縮率をもち、速度はPNGの20~50倍(圧縮時)、3~4倍(復元時)。SIMDは使用せず、計算量はO(n)。しかもCで300行ほど。面白いことに、作者自身なぜこれでそれほど圧縮できるのかよくわかっていない。 https://t.co/ulTARqt0rB」 / Twitter
- PhobosLab
- PNG画像を最大50倍高速にエンコード可能なライブラリ「QOI」が登場したので使ってみた - GIGAZINE
- QOI 画像ビューワーつくった - 借り初めのひみつきち
- ビットマップクラス統合 - 借り初めのひみつきち
- 3種のビットマップ - 借り初めのひみつきち
- MYOS のウィンドウのつくりかた - 借り初めのひみつきち
- 今週の MYOS 🧚♀️ - 借り初めのひみつきち
Web
AVIF
- AV1 Still Image File Format (AVIF)
- AOMediaCodec/av1-avif: AV1 Still Image File Format Specification - proposed ISO-BMFF/HEIF derivative
- fg118942さんのツイート: "あとAVIFを試していて気づいたこと libaomは画像が大きいとメモリの消費量が4、5GBくらいいくこともあるので辛い rav1eはlibaomよりメモリの消費量が少なくて、多いときでも150MBくらいしかいかないが画質はlibaomより少しだけ落ちてBPGと同程度"
- fg118942さんのツイート: "libaomは縦横が2の倍数ならどんな画像も変換できるっぽいけどrav1eは正常にデコード出来ないファイルを出力することがある(一般的ではない解像度に対応してない?) あとはやっぱり変換速度が遅くて画像1枚に1分くらいかかったりするのでハードウェアとかで高速に変換できないと厳しい"
- Addy OsmaniさんはTwitterを使っています 「AVIF is an image format that compresses to a smaller size than WebP or JPEG https://t.co/MDDdL8tw8S It's in Chrome 85, behind a flag in Firefox & can be a progressive enhancement! https://t.co/jqADQK6jTd」 / Twitter
- How to Use AVIF: The New Next-Gen Image Compression Format — Lightspeed
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JPEGやPNGにかわって次の標準になりつつある画像形式 AVIFフォーマットの技術解説。量子化アルゴリズムから符号化まで詳細に説明している。 https://t.co/Cl8NLPeelO」 / Twitter
- Decoding AVIF: Deep dive with cats and imgproxy — Martian Chronicles, Evil Martians’ team blog
- 画像最適化戦略 AVIF 編 | blog.jxck.io
- macOS・iPadOSでのプッシュ通知やパスキーに対応した「Safari 16.1」が登場 - GIGAZINE
JPEG
ISO
Exif
- Exchangeable image file format - Wikipedia
- Exif - Wikipedia
- JEITA / AV電子機器部門
- CIPA、「Exif 2.3」「DCF 2.0」を公開 - デジカメ Watch Watch
- ディジタルスチルカメラ用
- DC-010-2017_E.pdf
- The libexif C EXIF library
- libexif-0.6.21
- ブラウザーと画像のEXIFのお話 - Pastalablog in はてな
- Google Developers Japan: ExifInterface Support Library が登場
- EXIF仕様 解説
- DSAS開発者の部屋:Exif データにアクセスするコードを自作してみる
- けんしのページ - Exifファイルフォーマット -
- Exif 2.3 タグ - Vieas Web
- EXIFの読み方 - cagylogic
- Exifについて
- Exifの回転情報をピクセル情報に反映する - Qiita
- <img>で貼った画像がブラウザによって90度回転して表示される? - Qiita
- 目次
- マルチピクチャフォーマット
- Microsoft Word - DC-006_J_T1.doc
- 第553回 Ubuntuで写真のメタデータを扱う方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 画像認識システムの落とし穴となる「ExifのOrientation属性」とは? - GIGAZINE
libjpeg
- libjpeg - Wikipedia
- libjpeg - Wikipedia, the free encyclopedia
- Independent JPEG Group
- libjpeg-8d
- libjpeg-turbo | Main / libjpeg-turbo
- libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
- libjpeg-turbo download | SourceForge.net
- libjpeg-turbo-1.4.2
- NASM-2.12.01
Guetzli
- Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch
- google/guetzli: Perceptual JPEG encoder
- JPEGを「libjpeg」よりも20~30%小さく ~Google、新エンコーダー「Guetzli」を発表 - 窓の杜
- Google、JPEGを35%縮小する新エンコーダ「Guetzli」発表。画質は同じでファイルサイズ削減 - Engadget 日本版
- JPEG エンコーダ Guetzli 使用上の注意 (前編) - Qiita
- Google、ファイルサイズを35%削減できるという新JPEGエンコーダー「Guetzli」を公開 | OSDN Magazine
- GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE
Lepton
- DropboxがJPEG画像をロスレス圧縮できるツールを公開、平均22%サイズを縮小できると主張 | スラド オープンソース
- 米Dropbox、JPEGファイルをロスレス圧縮できる画像圧縮アルゴリズム「Lepton」をオープンソースで公開 | OSDN Magazine
- dropbox/lepton: Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.
Twitter
- éǵh₂ deywós h₁ésmi(だいみょーじん)さんはTwitterを使っています 「zipファイルは末尾から読み込まれるから、先頭に自己解凍プログラムをくっ付ければよい。 jpegは信号と、それを反転させたものを繋げて偶関数化して離散フーリエ変換する。(離散コサイン変換) 偶関数化することで境界で値が非連続にならなくなり、高周波成分を抑えられる。」 / Twitter
- 渋川よしきさんのツイート: "libjpeg-turbo氏〜 実際ベンチマーク取ってみると、画像の読み込みはPNGよりもJPEGの方が圧倒的に早いんだよな。 https://t.co/SgEIKuevyu"
- 渋川よしきさんのツイート: "不可逆ではあるけど、品質100にしたJPEGのほうが、PNGとかよりも読み込み早くてサイズ小さい。"
- 渋川よしきさんのツイート: "libjpeg-turboのハフマン符号量子化部分だけ取り出せば、SSE最適化された復元コードが利用できるのでは。"
- Kazuho Okuさんのツイート: "JPEGファイルを可逆圧縮!モデルをうまく作るようにすればこんなに縮むのか / “Lepton image compression: saving 22% losslessly from images at 15MB/s | D…” https://t.co/OtNsJNUpSE"
- Lepton image compression: saving 22% losslessly from images at 15MB/s | Dropbox Tech Blog
- Kazuho Okuさんのツイート: ".@methane はい。leptonは可逆な画像圧縮アルゴリズムで、JPEGデータに適用した場合、22%ほど小さくなる、と書いてありますね"
- Kazuho Okuさんのツイート: "JPEGのDCT以降みて、計算コストかけていいならもっと高度な圧縮できそうだなって思った人は多いと思う(僕もその一人)けど、22%も縮むと予測してた人は少なそうだと思ってる"
- 七誌さんのツイート: "球面から切り出した平面に球面調和関数を適用すると離散コサイン変換になるんじゃないかと思ったら、そのものズバリの講義資料があった!良い。 【PDF】 https://t.co/OQFCxePwhE"
- Rockridgeさんのツイート: "Fx50:PNG/JPEG画像のデコーダもStreamingLexerベースのものに切り替えられた。参照:https://t.co/3TYhswQ4q1 / “1282566 – Use StreamingLexer in th…” https://t.co/s32hrO6lJF"
- 七誌さんのツイート: "メタデータだけいじって回転させたJPEG画像は、HTMLにimg srcで埋め込まれていてもブラウザが回転して表示してくれないっぽい。画像単独だと回転して表示される。"
- dynamis (でゅなみす@もじら)さんのツイート: "JPEGのデコードをまるっとGPU側に投げることでGPU I/Oを70%削減、CPUデコード処理時間を30%削減させた新しいJPEGデコーダ実装 https://t.co/F7zbShPN1O とそのLinux Confでの講演 https://t.co/b4ZePbvqRS"
- Fadisさんのツイート: "Chromeさん、 V4L2から使えるハードウェアjpegデコーダがある場合はWebページに表示するjpeg画像をハードウェアでデコードするのか…"
- Fadisさんのツイート: "で、今回の変更でjpegのエンコードもハードウェアで出来るようになりました、と https://t.co/axF3BdLNUU"
- Chrome Working On JPEG Encode Accelerator With VA-API/V4L2 Support - Phoronix
- FadisさんはTwitterを使っています: 「GoogleがChromeの将来のバージョンでJPEG XLのサポートを廃止する準備をしているぞ、という話。JPEG XLはJPEG(団体名)で標準化された画像形式で、JPEG(画像形式)より高い圧縮率の実現や可逆圧縮をサポートし、広い色空間や10bit色深度といった近代的な画像の要件に対応する https://t.co/BRVhIQfQ2n」 / Twitter
- Google Chrome Is Already Preparing To Deprecate JPEG-XL - Phoronix
- FadisさんはTwitterを使っています: 「JPEG XLの規格は2021年に完成して以来主要なブラウザでサポートされていて、これからのWebを支える画像形式の1つと考えられていた。ChromeがJPEG XLのサポートを廃止する意図は上記の変更では述べられていないが、GoogleがWebP*を推している事と関係があるのではと噂されている」 / Twitter
- FadisさんはTwitterを使っています: 「ChromeがJPEG XLのサポートをやめる話について中の人が説明を追記したらしい。曰く「試験的に追加した形式だった」「JPEG XLのサポートはあまり関心を得られなかった」「JPEG XLは既存の形式に対して十分な利点が無かった」「既存の画像形式のサポートにリソースを割きたい」 https://t.co/CcYItwMaiQ」 / Twitter
- 1178058 - JPEG XL decoding support (image/jxl) in blink (tracking bug) - chromium
- FadisさんはTwitterを使っています: 「で、まぁ、案の定issueのリプライが地獄絵図になっている」 / Twitter
- JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ | コラム | マイナビニュース
- JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ (11) JPEG新規格の策定、企業の参加は? | マイナビニュース
- 【連載】JPEGはなぜここまで普及したのか? ~専門家に聞いてきた~ | マイナビニュース
- 高速なJPEG圧縮ライブラリ「Libjpeg-Turbo 1.5」リリース | OSDN Magazine
- mozilla/mozjpeg: Improved JPEG encoder.
- 週刊 JPEGデコーダをつくる #2 デジタル画像の基礎 - Qiita
- 画像圧縮でSEO「容量7割減で画質そのまま」 ページスピード向上を実現する「SmartJPEG」とは? - INTERNET Watch
- OPTPiX Cloud SmartJPEG (スマートジェイペグ) | ウェブテクノロジ
- GuetzliとMozjpegは、どっちが高性能か。 - Qiita
- プログレッシブJPEGとHTTP Rangeリクエストで遅延ロードを改善する
- JPEG画像の「中身」は一体どうなっているのか? - GIGAZINE
- Google Chromeが次世代画像規格「JPEG XL」形式のサポート廃止を検討、その理由とは? - GIGAZINE
PNG
APNG
- Animated Portable Network Graphics - Wikipedia
- APNG - Wikipedia
- 「アニメーションPNG(APNG)」がGoogle ChromeのベースであるChromiumでサポート開始 - GIGAZINE
- ChromiumでAPNG(アニメーションPNG)の表示をサポート -INTERNET Watch
- 「Google Chrome 59」が正式版に 〜ヘッドレスモード、APNG、フルページ撮影に対応 - 窓の杜
- Twitterが動画ファイル形式「APNG」のサポートを停止、てんかん患者の発作を引き起こすため - GIGAZINE
- libpng - Wikipedia
- libpng - Wikipedia, the free encyclopedia
- libpng Home Page
- libpng-1.6.21
- Rockridgeさんのツイート: "Fx51:搭載しているlibpngのSSE2命令最適化を有効にし、PNG画像の処理を高速化した。 / “1276127 – Enable SSE optimization in the in-tree libpng” https://t.co/VuueMHhifr"
- OS作れないマンさんのツイート: "Windows 10 のフォトっていう機能がデフォルトの画像ビューアになってるわけだけど、背景色が黒な所為でモノクロで透過背景のPNGが全く見えなくなる。使い悪すぎでは?"
- OS作れないマンさんのツイート: "透過PNGははてなブログでも使い勝手が悪い(画像アップロード後の画像一覧のサムネイル画面で背景が黒くなってしまう)ので、白背景に戻そう。なんか負けた気分。"
- Rockridgeさんのツイート: "Fx55:PNG形式のファイルについて幅チェックを行い、膨大なメモリを確保しようとする問題が起きないようにした。限度に抵触する画像は表示されないようだ。 / “1368407 - Small PNG image hangs br…” https://t.co/IbfU8aSSY2"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「最小サイズ (100バイト程度) の 256×256 PNG画像の詳細。なぜこうしたPNGファイルが必要かというと、Google Mapsや OpenStreetMapなどで「海」を示すタイル画像の転送量を削減するため。 https://t.co/eRPW12b7UT」 / Twitter
- The smallest 256x256 single-color PNG file, and where you've seen it
GIF
- Graphics Interchange Format - Wikipedia
- GIF - Wikipedia, the free encyclopedia
- GIFアニメーション - Wikipedia
- giflibのインストール: マルチメディアファイルフォーマット
- Introduction to GIFLIB
- The GIFLIB project
- GIFLIB download | SourceForge.net
- giflib-5.1.4
- Rockridgeさんのツイート: "Fx50:GIF画像のデコーダがStreamingLexerベースのものにリファクタリングされた。 / “1204392 – Use StreamingLexer in the GIF decoder” https://t.co/Yy1OD9jBZK"
- Rockridgeさんのツイート: "Fx51:Windows版でアニメーションGIFを対象にコンテキストメニューから「画像をコピー」すると、アニメーション状態を保ったままクリップボードにコピーできるようになった。 / “664717 – "copy image" …” https://t.co/m875T7b64u"
- GIFを最速でアニメーションさせるには遅延を最低値にしてはいけない - GIGAZINE
- 【訃報】画像ファイルフォーマット「GIF」生みの親スティーブ・ウィルハイト氏死去 - GIGAZINE
- アニメーションも作れる軽量画像フォーマット「GIF」の誕生秘話 - GIGAZINE
WebP
Twitter
- Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: WebP image support https://t.co/0xnMDKiirW"
- なかのん&マジックさんのツイート: "web-compatでの実装とのことだけど、実際問題、Jpegに比べてなにかうまみはあるんだろうか……"
- Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示をサポート。デフォルト無効。 / “1294490 – (WebP) Implement experimental WebP image support” https://t.co/RDRQkbp0J0"
- Makoto Kato ︎︎さんのツイート: "WebPをサポートしないとWebCompat的な問題が発生してるのは、https://t.co/3E3OedCr68 の See Alsoのところに貼られているhttps://t.co/Kw9PJXX0TT の issueリンク集を見ればわかる。H264と一緒でどうにもならないことは多々ある"
- 1294490 - (WebP) Implement WebP image support
- なかのん&マジックさんのツイート: "「Chromeで動けば良いんでしょ?」の実例だ。ってか、Safariすら捨ててるのか? / "WebP 画像しか配信せず正しく表示されないサイトの数が増え続けていることから、Firefox の開発者は態度を変えざるを得ませんでした" https://t.co/yZNj0whV3s"
- WebP 画像対応が追加されました | Firefox サイト互換性情報
- なかのん&マジックさんのツイート: "WebPのサポート表明のメール投稿に対しては、やっぱり、早々に「セキュリティ大丈夫なん?」ってリプライ付いてたなー。"
- エヌユルさんのツイート: "WebPは実際可逆方式においてPNGよりは効率が良いので普及するのは喜ばしいことだとは思う / “webp-image-support-has-been-added” https://t.co/0i5VERUgyz"
- なかのん&マジックさんのツイート: "昨今のWebアプリ事情を考えると個人的には好ましいと思う。でも、それはメンテしていないから言えることかもしれない(実際、よく知らない)。"
- Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示がデフォルト有効化。 / “1503653 - Enable WebP image support by default” https://t.co/CpAxnK1muw"
- FadisさんはTwitterを使っています 「Googleが同社の公開gitリポジトリにlibwebp2なるライブラリを上げているという話。置かれた説明によると、WebP2はWebPの後継となる新しい画像フォーマットで、よりロスの少ない圧縮と、HDR10のサポート、アニメーションのサポート等が実験中の新機能として挙げられている https://t.co/Z2N9brff1U」 / Twitter
- Google Is Already Experimenting With WebP2 As Successor To WebP Image Format - Phoronix
- Masaki HaraさんはTwitterを使っています 「WebPには既にアニメーション機能ありますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「原文見るとproperly supportとあるから、2ではもっとちゃんとサポートするぞということなのか」 / Twitter
- WebP - Wikipedia
- WebP - Wikipedia
- 本の虫: Dark_Shikari、WebPについて語る
- はじめてのにき(2017-06-19)
- WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 – | HTML5Experts.jp
- Googleが画像フォーマット「WebP」向けライブラリ「libwebp 1.0.0」をリリース | OSDN Magazine
- A new image format for the Web | WebP | Google Developers
- webmproject/libwebp: Mirror only. Please do not send pull requests.
- 「Windows 10 RS5」で“WebP”がサポート、「Microsoft Edge」などで表示可能に - 窓の杜
- WindowsでWebP画像を作る - まだ中学生のブログ
- WindowsでアニメーションWebPを作成する - まだ中学生のブログ
- ffmpeg で アニメーションWebP(Animated WebP)を作る | ニコラボ
- WebP Lossless はちゃんと Lossless してます - Qiita
- PhotoshopがついにWebPを完全サポート - PC Watch
SVG
Twitter
- Rockridgeさんのツイート: "Fx49:display:noneが設定された要素でSVGアニメーションの処理が行われ、CPUリソースを消費する問題が解消された。Kickstarter閲覧時のパフォーマンスなどに影響するという。 / “1209405 – Hi…” https://t.co/hpISOE5lZx"
- Rockridgeさんのツイート: "Fx54:SVGのimage要素内の画像につきデコード処理の同期化を避けることで、Googleスライドのパフォーマンスが改善された。 / “1341881 - Slow synchronous image decoding in…” https://t.co/zE5hAEBzPD"
- Rockridgeさんのツイート: "Fx55:SVG要素のtransform-boxプロパティがデフォルト有効化された。 / “1208550 - Ship support for the 'transform-box' property” https://t.co/ONto407jkh"
- Rockridgeさんのツイート: "Fx55:ツールバーアイコンのSVG形式への移行が完了。アドオンの互換性に少なからず影響が出そうだ。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/zPb1TJm06B"
- Rockridgeさんのツイート: "Firefoxのツールバーアイコンは全面的にPNG形式からSVG形式に移行する見込み。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/IBqRTIplCn"
- 渋川よしきさんのツイート: "Angularで特定の画像だけSVG Iconでうまく表示されないな、と思っていろいろ画像ファイルを見ていたのだけど、def/useを使っている画像ファイルはダメだということがわかったので、泣きながら手でpathを展開している。"
- 渋川よしきさんのツイート: "今ウェブのコードを書いているのだけど、SVG画像がファイルによってサイズが違っていて、<g transform>で変換をかけていたのだけど、行列による座標変換とか行列の掛け算とか、勉強しててよかったなって思いました。"
- ドッグさんはTwitterを使っています 「SVG を一旦 SVG のサブセット MicroSVG に変換してから描画することで,描画バックエンドが実装しやすいようになってるのか | 'RazrFalcon/resvg: An SVG rendering library.' https://t.co/e4aB7Zxsxx」 / Twitter
- RazrFalcon/resvg: An SVG rendering library.
- Takashi KawasakiさんはTwitterを使っています 「svgをimg srcとかで表示している分には安全なんじゃないの?って思ったけど、そうか。買った画像だからローカル保存するために右クリックして別タブで開いたりとかすることはあるのか・・・。これは。 https://t.co/e05pfXMWoG」 / Twitter
- tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「NFTのSVGデータにスクリプト仕込むことで、ウォレットにアクセスして操作したのか スクリプトインジェクションだ 不特定のユーザーが自由にデータCtoC系サービスでは要注意っすね。 https://t.co/WiqXpXK2xL」 / Twitter
- OpenSea collaborates with Check Point Research to mitigate vulnerability - OpenSea Blog
- tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「SVGのscriptタグ https://t.co/lzfzpjpjPd」 / Twitter
- <script> - SVG: Scalable Vector Graphics | MDN
- tomonari_t@NFT_DEVELOPERさんはTwitterを使っています 「@espresso3389 そうなんすよ、なるほどという。 しかも、MetaMaskはwindow.ethereumにインスタンス生やすので。。。ウォレット操作できちゃうという。。。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「@tomonari_t_t 拡張側の仕様も迂闊といえば迂闊ですね。せめてタブに何が表示されるかチェックすべきかもしれぬ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmに書き換えただけでそんなに速くなるというのもまた珍しい。随分前にMarkdownのrendererも速くできた、って例も聞いたことがあるのでまとまった文字列を組み立てるのは意外といいユースケースなのかも / “Rust+wasmでSVGを生成する” https://t.co/pV4Uu9OgMm」 / Twitter
- Rust+wasmでSVGを生成したら10倍速くなった | lacolaco/tech
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「SVGパススルー精度」の測定。SVGをドローツールにインポートし、すぐにエクスポートすると、元のSVGと比べてどれくらい変化しているか? いくつかのツールでは小数値が変化し、ツールによっては要素名やidが変わってしまう。一番正確なのはSketchらしい。 https://t.co/ngJ6iHDXEy」 / Twitter
- SVG passthrough precision
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「SVGを手書きする人におすすめなSVG pathエディタ。SVGの<path>タグ中に書くコマンド列を実際の形状を見ながら編集できる。 https://t.co/I74Wg8ITLY」 / Twitter
- SvgPathEditor
- 令掛ベインさんはTwitterを使っています 「svgのpattern[patternUnits=userSpaceOnUse]をrectで描画するときはxを指定するとパターンの開始座標に影響するから代わりにtranslateで描画位置を指定するという、必要になりたくなかった知見」 / Twitter
- memononen/nanosvg
- Scalable Vector Graphics - Wikipedia
- Scalable Vector Graphics - Wikipedia, the free encyclopedia
- ブラウザに圧縮SVG (.svgz) を表示する | Inkscape@JP
- SVG 1.1 仕様 (第2版) 日本語訳
- Filter Effects Module Level 1(日本語訳)
- Changes from SVG 1.1 — SVG 2 (日本語訳)
- ECMAScript 言語束縛 – SVG 1.1 (第2版)
- user-scalable=noとかSVGのアクセシビリティーとか - 水底の血
- 本の虫: XNGという新しいアニメーション画像フォーマット
- svg要素の基本的な使い方まとめ
- 神奈川工科大学 情報メディア学科のSVG教材に無限にツッコミが入れられそうな件 - 水底の血
- SVGを使用して鮮明なロゴへ変身 | フロントエンドBlog | ミツエーリンクス
- アクセシビリティーサポート — SVG 2(日本語訳)
- Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース | HTML5Experts.jp
- 本の虫: SVGの起源
- 2015年のSVGについてと、来年2016年のSVGについて - 週刊SVG
- SVGをcss/jsで操作するときに知っておきたいこと - Qiita
- Inkscape でレイヤーを読み込める SVG をイラレから書き出す - にせねこメモ
- SVGでフレームアニメーション? - にせねこメモ
- SVGでフレームアニメーション w/ Javascript - にせねこメモ
- SVG ファイルを GUI ツールで最適化する - EagleLand
- W3C Strategic Highlights: Strengthening the Core of the Web (SVG) | W3C Blog
- svg要素の基本的な使い方まとめ
- SVG に JavaScript を埋め込む方法 - Qiita
- Inkscapeを使ってSVGからOGPイメージを半自動生成する | κeenのHappy Hacκing Blog
- Inkscapeで生成するOGP画像の禁則処理をちょっとだけ頑張る | κeenのHappy Hacκing Blog
- SVGのアニメーションのお勉強 | κeenのHappy Hacκing Blog
- 絵文字をファビコンとして表示する簡単な方法
- カスタムなSF SymbolsをSVGから自動生成する - クックパッド開発者ブログ
Canvas
- canvas要素 - Wikipedia
- Canvas element - Wikipedia, the free encyclopedia
- NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
- NanoVG を CPU で描画する - Qiita
- NanoVG のソースコードを読んでみた - lriki’s blog
- memononen/nanovg
- HTML5 CanvasとWebGLの高解像度対応はどこまで行うべきか - ICS MEDIA
- canvas要素の基本的な使い方まとめ
- Fadisさんのツイート: "Chrome66がリリースされた。Chrome66で追加されるtransferFromImageBitmapはcanvasの内容を指定したImageBitmapで置き換える。この時画像はcopyではなくmoveされ、不必要なコピーが回避される。他にもClipboardの非同期読み書きのサポート等が追加される https://t.co/l141gC5QDB"
- Googleドキュメントのレンダリング方式が変更へ、どんな影響があるのか? - GIGAZINE
- Kazuho OkuさんはTwitterを使っています 「WYSIWYGな文書作成ツールという点ではCanvasで問題ないと思うけど、他社の検索エンジンにどうやって文書を示すんだろう? そこをやらないと独禁法で刺されそう」 / Twitter
- 高梨陣平さんはTwitterを使っています 「GoogleがDocsのレンダリングをHTMLからCanvasへ移行すると発表。異プラットフォーム間の互換性向上を目的に。 これってHTML5の敗北では?HTML依存の機能拡張が動かなくなるから注意だそうだけど、他にもっと問題がないかな」 / Twitter
- SlashdotさんはTwitterを使っています 「Google Says Docs Will Now Use Canvas Based Rendering, Warns Impact on Some Chrome Extensions https://t.co/5QUW8MJMeg」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「機械可読性含むアクセシビリティの話だな」 / Twitter
- なかざん𝄇さんはTwitterを使っています 「React Native for WebにはReact製SPAであろうとする力学がある程度働くので、どうやってもDOMベースになっちゃうのが痛いところなんだよな。 DOM互換を無視してReact Native for Canvasみたいなやつができると幅が広がりそう。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kazuho FlutterがCanvasでの描画とDOMでの描画両方をサポートしているそうなので、検索エンジン向けにはDOMを出力すれば問題ないのではないかと」 / Twitter
Favicon
アイコン
- hiyohiyoさんはTwitterを使っています: 「通知領域用のアイコンを HiDPI 対応に変更したのですが、48x48 フルカラーアイコンが優先的に選択されるようで、16x16 とか 32x32 のアイコンが選択されず、48x48 を縮小表示されることが判明・・・。 DPI 設定に応じて適切なサイズのアイコンが選定されるというのは思い込みでした。」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「となると、1種類の画像しか入っていないアイコンを作ってソフト側から DPI 設定に応じて設定するのが最適なんだなぁ。 昨日の作業は、ほとんど無意味!! 事前確認重要!」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「LoadImageを使えば複数のサイズが入った .ico から指定サイズのアイコンハンドルを取得できることがわかりました。 LoadImageW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TEMP_00), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 上の16の部分を32とか、48にすればOK」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「ただ、動的なDPI変更やDPI設定の異なるディスプレイが複数接続された環境ではどうすることもできない・・・。 現実的には、48x48の高解像度アイコンをOS側で縮小表示してもらうのが良さそう。縮小アルゴリズムがもうちょっといい感じだったらなぁ・・・。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降のアイコン(複数サイズ同梱)は、256pxだけはpng格納、というハイブリッド形式を必要とするのだが、今だにVisualStudioで作成・編集できない様子。(表示のみ可能)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2019年にもなって、バージョン定義とリソース分離に手間取ったり。 (1ヵ所のバージョン定義で、ソースコード用バージョンとexeリソース情報の両方に反映する形)"
- Favicon - Wikipedia
- Favicon - Wikipedia
- ICO (ファイルフォーマット) - Wikipedia
- ICO (file format) - Wikipedia
- Rockridgeさんのツイート: "Fx55:ファビコンがfavicons.sqliteという独立したデータベースに保存されるようになった。履歴・ブックマーク絡みのファイルI/Oについて、パフォーマンスが改善されるようだ。 / “977177 - move fav…” https://t.co/ExBWeX7Kmv"
- Rockridgeさんのツイート: "Fx56:Firefox 43以降512x512のサイズのファビコンが表示されなくなっていた後退バグを修正し、さらに768x768のような大きなファビコンもサポート。参照:https://t.co/5hbDBYV5s2 / “1…” https://t.co/3CnrOkx9K8"
- Rockridgeさんのツイート: "Fx60:一部のWebサイトで高DPIファビコンを取得できない問題を修正。 / “1449523 - ContentLinkHandler only picks perfectly sized icons” https://t.co/lor9oON67U"
- Rockridgeさんのツイート: "Fx60:ファビコンデータベースのVACUUM処理を漸進的に行うようにした。 / “1346554 - Use PRAGMA incremental_vacuum on favicons.sqlite” https://t.co/m8eAD78dDI"
- 【レビュー】“Microsoft Azure”などで利用されているシンボルやアイコンを集めたイメージセット - 窓の杜
- Oracle、クラウドのシステム環境図作成などに役立つアイコン素材を無償提供 - 窓の杜
- Rockridgeさんのツイート: "Fx63:ファビコンをchromeプロセスではなくcontentプロセスに読み込むことで、読み込みが二重になるのを防ぐことができるという。参照:https://t.co/uLapuzu4MH / “Favicons are no…” https://t.co/UVl4JwfpTI"
- Rockridgeさんのツイート: "Fx63:ファビコンの最大サイズを256pxから192pxに変更した。データベースの容量が圧縮される。 / “1475500 - Reduce maximum favicon size from 256 to 192px” https://t.co/WwBF3gperx"
- Rockridgeさんのツイート: "Fx62:履歴消去後もファビコン情報が残ってしまう後退バグを修正。 / “1468968 - Firefox retains favicons with their respective urls after supposedl…” https://t.co/spJPfL8cMc"
- ブラウザのタブにある「Favicon(ファビコン)」にウェブカメラの映像を映す - GIGAZINE
- SVGやアイコンフォントが揃ってる!太っ腹なライセンスで無料利用できる高品質なアイコン素材 -Themify Icons | コリス
- 全2,000+種類のアイコン素材、AI, PSD, Sketch, SVGが揃い、商用利用も無料の太っ腹! -Thousands Icons | コリス
- IcoMoonを使ってSVGからアイコンフォントを作る方法 | mediba Creator × Engineer Blog
- 2852 free SVG and PNG icons for your games or apps | Game-icons.net
- 最新の手法でブラウザのタブに表示される「Favicon(ファビコン)」を作成するとこうなる - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「40万個のfaviconを調査した結果: - サイズの中央値は1.9KB (最高は7MB) - 52%のアイコンは128×128以上 (最高はLufthansaの7087×5197) - 2%のアイコンは正方形でない - 72%はPNG - 0.2%はdata URL - もっとも使われている色は紫、そのつぎが白 https://t.co/uDDW7TWez8」 / Twitter
- We Analyzed 425,909 Favicons • iconmap.io
- 42万個ものファビコンを敷き詰めたマップが公開中。解析データも興味深いと話題に【やじうまWatch】 - INTERNET Watch
- 画像最適化戦略 PNG/JPEG 編 | blog.jxck.io
- 画像最適化戦略 Picture 編 | blog.jxck.io
- 画像最適化戦略 WebP 編 | blog.jxck.io
- アニメーション画像の歴史 APNG-WebP戦争 | 味わい尽くせ!
- 画像最適化戦略 Lazy Loading 編 | blog.jxck.io
BMP
- Windows bitmap - Wikipedia
- BMP file format - Wikipedia
- なかのん&マジックさんのツイート: "Win + Shift + SをHiDPI環境で使って、メールとかに貼り付けるとでかい画像が貼り付いてしまうの、ちょっと考え物だけど、誰がどうすべき問題なのか全く想像つかん。"
- vyv03354さんのツイート: "すべてのアプリがBMPヘッダーのbiXPelsPerMeterとbiYPelsPerMeterをちゃんと見ていればよかった(完全に手遅れ)… "
- なかのん&マジックさんのツイート: "あー、そんな情報あるんですね。クリップボードからの貼り付けでGeckoに来てるか調べてみないとですね。… "
ExifTool
- 【レビュー】位置情報を地図表示する機能も。写真のメタデータを閲覧・編集できる「ExifToolGUI」 - 窓の杜
- ExifTool by Phil Harvey
- ExifTool by Phil Harvey
LibRaw
- About LibRaw | LibRaw
- LibRaw - Wikipedia
- libraw-0.20.2
- LibRawでRAWファイルをのぞいてみる | Nature | Photography | Music | Art
Motion JPEG
- Motion JPEG - Wikipedia
- Motion JPEG - Wikipedia
JPEG 2000
ISO
OpenJPEG
- OpenJPEG
- uclouvain/openjpeg: Official repository of the OpenJPEG project
- OpenJPEG - Wikipedia
- JPEG 2000 - Wikipedia
- JPEG 2000 - Wikipedia
JPEG XR
- JPEG XR - Wikipedia
- JPEG XR - Wikipedia
JPEG XS
- JPEG XSコーデックメモ - Qiita
BPG
- Better Portable Graphics - Wikipedia
- Better Portable Graphics - Wikipedia
- BPG Image format | Hacker News
HEIF
- High Efficiency Image File Format - Wikipedia
- HEIF Technical Information - High Efficiency Image File Format
- HEIF Comparison - High Efficiency Image File Format
- HEIF - High Efficiency Image File Format
- Appleが新OSで初めてサポートするHEIF、FLAC、Opusなど | スラド アップル
- 【解説】iPhoneのAV機能は「iOS 11」でこう変わる (1/3) - PHILE WEB
- “RS4”の最新プレビュー、画像形式“HEIF”をサポート ~Build 17123が公開 - 窓の杜
- Masaru Iritaniさんのツイート: "#WindowsInsiders に向けフォト アプリに HEIF 形式対応が追加されました。寡聞にして知らず「へいふ」と読んでしまったのですが、どうやら「ひーふ」と読むようで、iOS や macOS で使われる画像形式のようですね。Skip Ahead ビルド 17623 も HEIF 形式に対応しています。 https://t.co/QyhupCbXU9… https://t.co/WOt0AyOW9F"
- Windows 10が「HEIF」フォーマットの画像表示に対応 - PC Watch
DNG
- Digital Negative - Wikipedia
- Digital Negative - Wikipedia
RAW
- RAW現像に対応するオープンソースの写真管理ツール「Darktable 2.6」リリース | OSDN Magazine
- 「digiKam 6.0」リリース、動画ファイルのサポートを強化 | OSDN Magazine
- ゼロから作るRAW現像 - まとめページ - Moiz's journal
MMPX
- FadisさんはTwitterを使っています: 「MMPX: ドット絵を元のパレットの色数を維持したまま、まるで最初から倍のサイズのドット絵として描かれたかのように縦横倍のサイズに拡大する手法の論文。元の画像の1ピクセルに対応する4ピクセルの色を周囲12ピクセル(条件によっては+1ピクセル)の色の配置に基づいて決める https://t.co/hGo17rc2y0」 / Twitter
- MMPX Style-Preserving Pixel Art Magnification (JCGT)
- FadisさんはTwitterを使っています: 「同種のアルゴリズムとしては周囲4ピクセルの色を見て傾き1の斜線を滑らかに拡大できるEPXが古くから用いられているが、MMPXでは更に周囲のピクセルを見るルールが追加されたことでピクセルが三角形の先端になっている事を検知したり、傾き1/2の斜線を適切に捉える事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「MMPXはEPXより多くのルールで構成されているが依然として近傍のピクセルだけからルールに基づいて4ピクセルの色を決定するアルゴリズムなので、GPU上で実装する事ができ、WebGLでブラウザ上でスーパーファミコンの画面サイズのドット絵を2ミリ秒で拡大できたとしている」 / Twitter
ImageMagick
- 渋川よしきさんのツイート: "Goで大量の画像の変換とかサムネイルとか。速度とメモリ厳しくない?"
- さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
- 「さようなら ImageMagick」の考察 - Qiita
- malaさんのツイート: "https://t.co/oE46g9nsQO コメントした。Pillowは必要に応じて外部コマンドを呼び出すのでフォーマット制限しないとImageMagickと大差ない。Pillow使ってるscipyも影響あり。GS脆弱性が厄介なのは利用ライブラリ側で脆弱性として認知されていない点 https://t.co/9LGa6WR0tn https://t.co/pmny41NJVR"
- Search · check_call OR popen path:src
- usaさんのツイート: "ぼくはポジショントークとして「ImageMagickやめた方が楽だよ?」とは言いますけど、お前らが「あ、これ○○でできるじゃん!」って思って作ったものはだいたいできてない、ということは本音として言っておきます。"
blog
- 画像の価値は上がったのに、技術は10年前から変わっていない ─ ImageFluxで描く画像変換の世界(前編) - pixiv inside
- 5年後には画像フォーマットなんて誰も気にしなくなる ─ ImageFluxで描く画像変換の世界(後編) - pixiv inside
News
- iOS 10ではRAW撮影が可能に | スラド モバイル
- 最も劣化が少なくファイルサイズを小さくできる画像形式が判明 - GIGAZINE
- 第474回 UbuntuとdarktableではじめるRAW現像入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- JPEGも型番の時代に突入!?JPEG XTやXRに加え、新規格JPEG XSやJPEG PLENOが標準化に - PC Watch
- 圧縮効率60%向上を目指す新規格「JPEG-XL」策定にむけ技術公募へ - PC Watch
- reg-cli - 二つの画像で異なる部分を抽出 MOONGIFT
- データ圧縮のパイオニアであるジェイコブ・ジヴ氏の功績とその半生とは? - GIGAZINE
- NSAやCIAはファイルの「メタデータに基づいて人を殺す」、自衛方法は? - GIGAZINE
POSTD
- 500バイトの画像:Haikuのベクターアイコン形式 – 前編 | コンピュータサイエンス | POSTD
- 500バイトの画像:Haikuのベクターアイコン形式 – 後編 | コンピュータサイエンス | POSTD
- 一から学ぶベジェ曲線 | プログラミング | POSTD
Wikipedia
- Digital Negative - Wikipedia
- FFTPACK - Wikipedia
- ハイダイナミックレンジイメージ - Wikipedia
- ハイダイナミックレンジ合成 - Wikipedia
- OpenEXR - Wikipedia
- フロイド-スタインバーグ・ディザリング - Wikipedia
GitHub
- anypixel.js
- googlecreativelab/anypixel: A web-friendly way for anyone to build unusual displays
- SolidStateGroup/rio: An open source library allowing you to create an internet connected LED wall
- LC's Finder
- lc-soft/LC-Finder: A simple pciture resource manager, support tag search and thumbnail preview.
- RecursiveBF by ufoym
- ufoym/RecursiveBF: A lightweight C++ library for recursive bilateral filtering.
- VipsWiki
- jcupitt/libvips: A fast image processing library with low memory needs.
- miloyip/line: 2D Line Drawing Samples in C
Qiita
- RGB値の合計が一定の画像変換 - Qiita
- グレースケールで消える画像に変換 - Qiita
- グレースケール画像のうんちく - Qiita
- RGB ビット深度のうんちく (前編) 〜 前提知識 - Qiita
- RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 - Qiita
- Kazuho Okuさんのツイート: "HTML で #ccc と等しいのは #c0c0c0 か、それとも #cccccc か、というのはいい問題なのかも… "
- Takuo Kihiraさんのツイート: "RGBビット深度、HTMLの世界だとカラーコード→浮動小数点の処理で気になることが多いですね。#C8F0E3みたいな奴を、0xC8/256とか雑に書いてあるコード、結構ありますよね。"
- 自作OSで半透明のウィンドウ - Qiita
- MSE/PSNR vs SSIM の図解紹介 - Qiita
Twitter
- Rockridgeさんのツイート: "Fx57:Firefox ScreenshotsでWebページ全体または表示領域全体を撮影した場合、画像の保存形式はPNGではなくJPEGになる。PNGだとサイトによっては画像サイズが大きくなりすぎるのだという。 / “1402…” https://t.co/2dI2Damohp"
- 一ノ瀬 いろはさんのツイート: "Firefox screenshots , HTML要素単位での選択が出来るのかー。気づかなかった。"
- 渋川よしきさんのツイート: "複数のイメージを.icoに書き込めるようにPR出した #golang #windows https://t.co/LVUWVp8JcO"
- 技術書典4 け-51 x86-64-128さんのツイート: "Illustratorのアセットの書き出しを使うと,1枚のページに書いた図を複数に分割して個々の画像ファイルとして書き出せるので捗る.PDFとしても書き出せるからTeXと相性が良い."
- いもすさんのツイート: "超解像技術が理想の形になりつつある。waifu2xは、Photoshopで手で高解像度化したときに輪郭が丸くなる現象からあまり逃れられていなかったけど、A.I.Gigapixelは理想の超解像ができている。写真も二次元絵も問題なく超解像できているあたり汎用的な超解像が可能であることを示していて期待が高まる。… https://t.co/elzWpAVcNq"
- mr-csce(llp_qlv)さんのツイート: "エイリアシング、なんで折り返すとかいうのって思ってたけど、周波数領域で考えたらほんとにまんま、まるで折り返したみたいになってて、めっちゃ直球な表現だったんだなって思った。"
- FadisさんはTwitterを使っています: 「CPUで展開しなければならない画像フォーマットは貴重なCPUを浪費する上にCPU-GPU間をでかいデータが流れる事になるから、大量のテクスチャを読まなければならないなら圧縮率はイマイチでもASTCをそのまま保存しておくのがオススメ」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「へー、JPEG-XL、JPEG のデータをロスレスどころか byte-to-byte で保ちながら圧縮率を上げる、今でいう Lepton 的な立ち位置の圧縮もできるのか。 https://t.co/Lu2reSpG6f」 / Twitter
- https://google.github.io/brunsli/
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「普通の JPEG に比べて 22% 圧縮、というのも実際 Lepton に近い数値。」 / Twitter
- nikqさんはTwitterを使っています 「つーか今まで、画像codecでまっとうなコードに出会ったことがないんだが、どうしてなんだ?? libtiffはexploit大杉、libjpegは関数ポインタ好きすぎ、libpngはifdef多すぎ、JPEGXRは逆ポーランドすぎ、JPEGXLはGoogle帝国すぎ…」 / Twitter
- nikqさんはTwitterを使っています 「Google帝国の人は、世界には名もなきプラットフォームとか#ifdefで分割しきれない謎のコンフィギュレーションのCPUとかがあるってことをもっと知ってください!」 / Twitter
- ノナプルナイン@デジゲー博未払い落ちさんはTwitterを使っています 「そう。ツイートしようと思って忘れてた。 pngからjpgを保存するときの容量、なんとGIMPの90%よりもフォトショの75%のほうが重いんですよ。 フォトショ使いのほうが画質にうるさいから、フォトショのほうが見かけの数字よりも圧縮率が低いということ? それとも、jpgの圧縮にも技術の差とかあるの?」 / Twitter
- yohさんはTwitterを使っています 「codec != encoder implementation なんだけど そう理解されるのはレアなんだよねぇ そもそもquality(Q)なんてのも メジャー実装では似たような値を用意してるってだけで どこにも(normativeには)規程されないというか」 / Twitter
- 島鉄雄さんはTwitterを使っています 「ベジェとかスプラインの親玉のNURBSには、ノットベクトル(ウェイト)が有るから、正確な円(球)が書けるんだよね。 逆に言うとノットベクトルが無いと、円は近似にしかならない。」 / Twitter
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「ブラウザによってサポートする画像形式が異なる問題を解消するpictureタグのすゝめ。へー。 / “Optimizing images with the HTML picture tag | jfhr” https://t.co/Yd2oo51lpc」 / Twitter
- Optimizing images with the HTML picture tag | jfhr
フォント
その他
TypeDrawers
- Relationship between left side bearing and contour coordinates (TTX/FontTools) — TypeDrawers
- Problem in Chrome? — TypeDrawers
- Typeface that lets you try different sets — TypeDrawers
- Fontlab 5: How to 'Update [kern] feature' in all open fonts? — TypeDrawers
- Usefulness for the below type of fancy fonts and hybrid glyphs — TypeDrawers
- A rationale for this replacement of /gamma? — TypeDrawers
- How do you test your locl features? — TypeDrawers
- New: DTL OTMaster 7.9 — TypeDrawers
- Any good auto kerning tools? — TypeDrawers
- Understanding the 'name' table. — TypeDrawers
- What determines the character range displayed in Windows' Character Map utility? — TypeDrawers
- Making Windows Fonts Do Something They Shouldn't — TypeDrawers
窓の杜
- 大日本印刷、明治からの歴史がある「秀英体」ライセンスをMonotypeへ提供 - ニュース ―MdN Design Interactive edition― - 窓の杜
- モリサワ、「TypeSquare Desktop Manager」による「BIZ UD」フォントの提供を終了へ - 窓の杜
- 任意の文字列で日本語フリーフォントを比較できるWebサービス「ためしがき」が縦書き表示に対応 - ニュース ―MdN Design Interactive edition― - 窓の杜
- 漢字のスタイルが自由自在? “zi2zi”でニューラルネットワークのスゴさを再認識 - やじうまの杜 - 窓の杜
- スタートメニューのプロセスが独立、信頼性向上へ ~「Windows 10 19H1」Build 18317 - 窓の杜
- 「April 2018 Update」の縦書きフォント問題を回避するパッチ、「一太郎2019」向けに公開 - 窓の杜
- Windowsの標準フォントってどこまで“タダ”なの? ~最新の状況をまとめたブログ記事が人気 - やじうまの杜 - 窓の杜
- アドビ、新元号“令和”の合字を“Adobe Font”へ追加 ~4月中に完了予定 - 窓の杜
- Adobe、新元号“令和”の合字を追加した「源ノ角ゴシック」v2.001をリリース - 窓の杜
- 情報処理推進機構、新元号“令和”の合字に対応した「IPAexフォント」v004.01を公開 - 窓の杜
- 楷書体の“令”を新元号発表時の墨書と同じ字形に ~モトヤが無料フォントを提供 - 窓の杜
- 新元号“令和”の合字に対応した無料の明朝体フォント「IPAmj明朝フォント」v006.01 - 窓の杜
- Microsoft、ターミナル・コードエディター向けの新フォント「Cascadia Code」を発表 - 窓の杜
- IPAが無償で提供している文字の検索システムがなかなかイケていると話題に - やじうまの杜 - 窓の杜
- 「Unicode 14.0」のリリースは6カ月延期 ~新型コロナウイルスの影響がボランティアを直撃 - 窓の杜
- IBMのオープンソースフォント「IBM Plex」がv6.0.0に ~日本語フォントも利用可能 - 窓の杜
にせねこメモ
- フォントのアウトラインを法線方向に太らせたり細らせたりしてみる - にせねこメモ
- UbuntuでFontforgeをコンパイル - にせねこメモ
- CygwinでFontforgeをコンパイル - にせねこメモ
- さくらのサーバに置いたWebフォントをはてなブログから使う - にせねこメモ
- 適当に書いてフォントを作る - にせねこメモ
- フォントいじり用ソフトウェア・技術情報 - にせねこメモ
- 漢索フォント - にせねこメモ
- フォントでTUT-Code - にせねこメモ
- Appleカラーフォントのビットマップの表示位置 - にせねこメモ
- TTXでAppleカラーフォントを作る - にせねこメモ
- FontForge の Python bindings を使えるようにする - にせねこメモ
- サブセットWebフォントを作成する(Font Squirrel Webfont Generator) - にせねこメモ
- Linux版AFDKOのダウンロード - にせねこメモ
借り初めのひみつきち
- 自作フォントエディタの話 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
- 書体関係 Wiki - unixuser200403-2
- 書体関係 Wiki - freefont
- 世界最速のフォントレンダラ、font-rsの内部に迫る | プログラミング | POSTD
- フリーのフォントエディタ「FontForge October 2016」リリース、Unicode 9.0に対応 | OSDN Magazine
- zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
- kaonashi-tyc/zi2zi: Learning Chinese Character style with conditional GAN
- ドバイ政府とMicrosoftが提携して開発したフォント「Dubai Font」 | スラド IT
- Windows版Firefox 57で既定の日本語フォントをメイリオに変更 - Mozilla Flux
- Windows 10プレビュー版にウェイトを自由に変更できるVariable Font実装 - PC Watch
- Windowsで最高のターミナルを構築する方法 - 純粋関数空間
- デスクトップ・カスタマイズ:フォントリンクの方法
- 「大漢和辞典」ついに!デジタル化 「フォントない」問題克服の秘密とは | 共同通信 - This kiji is
- やがてsyuu1228になるさんのツイート: "ClearTypeのパテントは無償でおっけーになったのか:Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft https://t.co/B2ypyBwVYL via @phoronix"
- Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft - Phoronix
- 「Qt 3D Studio 2.3」公開、新フォントレンダリングエンジンが導入される | OSDN Magazine
- Font Edit '95
- フォントエディタ作った。 - 借り初めのひみつきち
- neri/fedit95: Bitmap Font Editor
- Noto Sans Hinted と font-feature-settings: 'palt' | blog.jxck.io
- HarfBuzz
- Webブラウザにおける文字のアンチエイリアスの現状の最適解 | dwango creators' blog(ドワンゴクリエイターズブログ)
FreeType
- The FreeType Project - バグ: Browse Items [Savannah]
- hp.vector.co.jp/authors/VA028002/ft_height20061029.c
- hp.vector.co.jp/authors/VA028002/winfreetype20061029.c
- 20212 FreeType の CFF ドライバの処理に任意のコードを実行されるなど複数の問題 - SIDfm
- FreeType - Wikipedia
- FreeType - Wikipedia, the free encyclopedia
- 側転幼女おるみんちゃんさんのツイート: "FreeType2 が 2.7 になって ClearType のようなサブピクセルヒンティングが有効になたみたい.Infinalityパッチのとはちょっと違うようだけども >> The FreeType Project https://t.co/JKu8weHERT"
- FadisさんはTwitterを使っています: 「GTK+等の文字のレンダリングを担っているPangoがフォントのロードをFreetypeからHurfbuzzに切り替えたところ、ビットマップフォントが読めなくなり、ビットマップフォントとかいまどき使わないと主張する開発者とビットマップフォント愛好家達が揉めてる https://t.co/trTPv9ryyg」 / Twitter
- Pango Dropping Support For Bitmap Fonts Is Frustrating Some Linux Desktop Users - Phoronix
- svg woff 変換 - Google 検索
- woff freetype - Google 検索
- FreeType 2.10.2 Released With Support For WOFF 2 Fonts - Phoronix
- FadisさんはTwitterを使っています 「FreeTypeにPNGの埋め込みビットマップの取り扱いでヒープバッファオーバーフローを起こす脆弱性が見つかり、修正版2.10.4が出た。この脆弱性の詳細や影響はまだ表に出ていないが、2.6以降のでFT_CONFIG_OPTION_USE_PNGオプションを使用している場合に影響を受けるらしい https://t.co/ULpo4PPiJm」 / Twitter
- FreeType 2.10.4 Rushed Out As Emergency Security Release - Phoronix
- freetypeを使用して文字を描画すると間延びする
Adobe
- Adobe、日中韓の漢字を網羅したオープンソースのフォント「Source Han Sans」を公開 - 窓の杜
- Source Han Sans - Wikipedia
- 米Adobeがフォント開発ツールのAFDKOをオープンソースに | SourceForge.JP Magazine
- ASCII.jp:「源ノ角ゴシック」を実現させたアドビ西塚氏の勘と感覚 (1/5)
- インタビュー&トーク - 15年越しに叶った夢、日中韓対応のフォント開発:ITpro
- 日本語表示も考慮されたコーディング向けのフォント「Source Han Code JP」が公開 - 窓の杜
- Adobe Type Tools
- 源ノ明朝 | Typekit
- Adobe、日中韓をサポートしたSerifフォント「源ノ明朝」をオープンソースで公開 ~Googleと共同開発、6万5千文字以上を収録 - PC Watch
- 貂明朝の漢字6469字の内訳 | yasuokaの日記 | スラド
- “Adobe Typekit”が“Adobe Fonts”へ、複雑な利用制限をすべて撤廃してシンプルに - 窓の杜
- Adobe Fonts on VF at Adobe Max 2018 — TypeDrawers
- 【Adobe MAX】無償でも6,000フォントまで利用可能となったAdobe Fonts - PC Watch
- A Spectre Haunts Photoshop: Adobe Fontphoria — TypeDrawers
- アドビ、可愛く妖しい無料フォント「貂明朝」のv2を公開 ~干支のカラー絵文字を追加 - 窓の杜
- Adobe Fontsに日本一画数の多い漢字。貂明朝の新フォントも ~Photoshop for iPadなど新アプリのQ&Aセッションも - PC Watch
- Adobe、プログラミング向け無料フォント「Source Han Mono(源ノ等幅)」をリリース - 窓の杜
- Adobeの「源ノ角ゴシック」がバリアブルフォントに - PC Watch
- 「Source Han Sans/源ノ角ゴシック」がバリアブルフォントに ~サイズは1/10以下、可能性は無限大 - 窓の杜
- Adobe Fontsの日本語フォントが大幅増 ~191フォントが追加され、計436フォントに - 窓の杜
- 画力・博士号さんはTwitterを使っています 「「てかCompact Font Formatやめね?笑」になってきた,地球外の文明と接触したときに(えっ,君らの文明ではこんな間抜けな規格が最も普及してんの? 草)と笑われる規格として5本の指には入ると思う.」 / Twitter
- Compact Font Format - Google 検索
- 米Adobeがフォント開発ツールのAFDKOをオープンソースに | OSDN Magazine
Google
- Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
- 「Noto」カラーフォントは1/4以下のサイズに ~「Chrome 98」に「COLRv1」が導入 - 窓の杜
- 絵文字を小さい容量できれいに表示できるフォント「COLRv1」を追加したGoogle Chrome 98安定版リリース - GIGAZINE
- Noto - Wikipedia
- Noto fonts - Wikipedia
- Google Noto Fonts
- Google Developers Japan: 誰でも使えるオープンソース フォント システム
- Google Developers Blog: An open source font system for everyone
- Google Internationalization
- googlei18n/noto-fonts: Noto fonts, except for CJK and emoji
- noto-fonts/FAQ.md at master · googlei18n/noto-fonts
- Noto Sans の Web Font 対応とサブセットによる最適化 | blog.jxck.io
- Google Developers Japan: オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。
- Google、日本語・中国語・韓国語をカバーしたオープンソースフォント「Noto Sans CJK」 - 窓の杜
- オープンソースの明朝体フォント、Googleとアドビが無償公開、7ウェイトを用意したセリフ書体「Noto Serif CJK(源ノ明朝)」 -INTERNET Watch
- Noto Color Emoji – Google Noto Fonts
- 日中韓に対応したグーグルの新フォント「Noto Serif CJK」は、なぜ生まれたか|WIRED.jp
- Google、フォントラスタライザ向けセキュリティチェックツール「BrokenType」を公開 | OSDN Magazine
- Noto JP/KR versus Noto — TypeDrawers
- Google Fontsが日本語WEBフォントを正式サポート – Dream Seed
- Makoto Kato ︎︎さんはTwitterを使っています 「ビャンビャン麺のグリフがNoto Font CJKに入ってたようで、昔のツイートがちゃんとレンダリングされてる。やった https://t.co/SNM1TP6KuH」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「𰻞𰻞麺 https://t.co/zHUvPe4p5D」 / Twitter
- FadisさんはTwitterを使っています 「FedoraがシステムのデフォルトフォントをNotoに変更する事を検討している話。Fedoraは今までデフォルトフォントにDejaVuを使っていた。DejaVuはヨーロッパ系の言語の文字を幅広く含むがそれ以外には対応しておらず、不足分は他のフォントを用いるため表示の一貫性に難があった https://t.co/onnRYzWQTz」 / Twitter
- Fedora 36 Looking To Change Its Default Fonts - Phoronix
- FadisさんはTwitterを使っています 「NotoはGoogleが中心となって開発している多言語フォントで、Unicodeのおよそ半分をカバーしている。Fedoraは既にCJKおよび絵文字の表示にNotoを使っており、Notoは事実上システムに必須のフォントになっていた。ヨーロッパ系の言語もNotoにする事で表示の一貫性と6MB程のストレージの節約が達成できる」 / Twitter
- ドッグさんはTwitterを使っています 「Google Fonts のフォントを使っていて GDPR 違反で報告されてるのも見たことあるけど,どうするのが良いんだろうな(サイト表示のためにフォントをロードしにいき,GDPR 同意前に Google に IP アドレスが知れるかららしい)」 / Twitter
- Googleフォントを使うと犯罪になる - Qiita
- 「Google Chrome 106」安定版リリース、CJKフォントセット向けの単位が追加 - GIGAZINE
MS
The icon font for Visual Studio Code
- matsuu序二段さんはTwitterを使っています: 「vscodeで使われているアイコンをフォントに変換するツール。変換後のttfファイルはdistディレクトリ配下にある。Nerd Fontsと違ってUnicodeのPrivate Use Areasに収まってるので﨑や髙をつぶすことはない。これをVim環境で使いたい / “GitHub - microsoft/vscode-codicons:…” https://t.co/EC1mcW7du3」 / Twitter
- microsoft/vscode-codicons: The icon font for Visual Studio Code
- matsuu序二段さんはTwitterを使っています: 「アイコンと文字コードの対応表はこのCSVで確認が可能。 https://t.co/DHGSDBn0vB」 / Twitter
- vscode-codicons/codicon.csv at main · microsoft/vscode-codicons
- matsuu序二段さんはTwitterを使っています: 「codiconsをカスタマイズするためのneovimプラグイン。READMEにcodiconsを既存フォントに合成する方法の記載あり。 https://t.co/enjiwm9YUn」 / Twitter
- mortepau/codicons.nvim: A plugin simplifying the task of working with VS Code codicons in Neovim
- matsuu序二段さんはTwitterを使っています: 「フォントを更新していくことを考えると自前でcodiconsを合成するのは避けたかったのでフォントのfallbackを活用できないかと調べてみたが、Windows Terminalはfallback未対応だった。ただ最近Issueに動きがあるので期待。 https://t.co/vXlncVF2Zi」 / Twitter
- Allow for the configuration of font fallback · Issue #2664 · microsoft/terminal
Windows のフォント描画
- エヌユルさんはTwitterを使っています 「MS ゴシックの字形が悪いのでもなく、ビットマップが埋め込まれているのが悪いのではなく 悪いのはビットマップは低解像度の小さいフォントサイズ向けのものなのにHiDPIの設定をしてるのに何故か不適切にビットマップを表示してるWindowsなんだよな Windowsがフォント描画汚いと言われても仕方ない」 / Twitter
- NAKAMURA Yoshiyuki (中村 良幸)さんはTwitterを使っています 「@ncaq HiDPI環境であるか否かにかかわらず、Windowsの設定(ディスプレイ)項目の中に「小さなフォントサイズの場合にはビットマップ表示を使う」というオプションを付けて、従来との互換性を守るためにデフォルトではそれをオンにしておけば良いだけの話のような気がするんですけどね… 私も困ってます。」 / Twitter
- エヌユルさんはTwitterを使っています 「@nakayoshix https://t.co/vWvRylTP1p を教えてもらって多少マシになった感じはありますが、そもそもデフォルトフォントを選択したい」 / Twitter
- m13253/FaithType: Modify fonts to remove bitmap and disable gridfit for Windows font rendering
- カナやん@みかん本停滞中さんはTwitterを使っています 「@ncaq @nakayoshix わたしは、このツール使ってフォントを変更しています。 ただシステムフォントの変更はできない模様。 https://t.co/aAuADhzkGI」 / Twitter
- Windowsカスタマイズシリーズ
- エヌユルさんはTwitterを使っています 「@rkarsnk @nakayoshix もちろんそれも使ってるんですけど、アプリケーション(主にElectronのやつで、Slackが代表例)がmonospaceとか指定するとフォントリンクを弄らない限りMS ゴシックが日本語部分に使われてしまう問題があったんですよね」 / Twitter
- カナやん@みかん本停滞中さんはTwitterを使っています 「@ncaq @nakayoshix あー、理解しました。厄介な問題ですよね…」 / Twitter
- 米Microsoft、開発環境向けの等幅フォント「Cascadia Code」をオープンソース化 | OSDN Magazine
- 7594591200220899443さんはTwitterを使っています: 「いや、ターミナルでこの手のprogramming ligaturesを有効にするのは絶対駄目。問題が起きる。 https://t.co/E5qrZxw5DI」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「問題が起きる例 https://t.co/KJA07cZl0N」 / Twitter
- Deligaturizing "=<" · Issue #751 · tonsky/FiraCode
- 7594591200220899443さんはTwitterを使っています: 「要は=<というのはシェルの中ではless than or equal toのtokenではないのだ。そこでtokenizeしてはならぬ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「VS Codeでprogramming ligaturesがおおむねうまく行くのはVS Codeの場合はLanguage serverと通信してプログラミング言語ごとに正確なtokenizationができているからなのであって、ターミナルとかでそういう期待をしてはならない。」 / Twitter
- Cascadia Code 1910.04 | Windows Command Line
- Makoto Kato ︎︎さんはTwitterを使っています 「Yu GothicはDirect Wirteのパラメーターいじると綺麗にレンダリングされる気がするが。昔Johnさんがいじって、各フォントをFirefoxでバランスよくなるようにしてた」 / Twitter
- Microsoft EdgeでClearTypeフォントが読みやすくなる改善 - PC Watch
- 令掛ベインさんはTwitterを使っています 「フォントサイズ20px以上で黒を濃いグレー(#333 ぐらい)にするとWindowsでもわりと綺麗にみえるという謎ハック」 / Twitter
- システムフォント「Segoe UI」が可変フォントに ~Dev版Windows 10 Build 21376でテスト中 - 窓の杜
フォント情報処理用語
- Terms Used in Font Information Processing
TrueType
- アウトラインがぶれるフォント - にせねこメモ
- TrueType命令でビット演算 - にせねこメモ
- TrueType命令で擬似乱数: 線形合同法 - にせねこメモ
- フォントサイズに合わせて回転するフォントを作る(2) - にせねこメモ
- TrueType命令で三角関数(sin, cos)を計算する - にせねこメモ
- PPEM・ポイントサイズを表示するフォント - にせねこメモ
- フォントサイズに合わせて回転するフォントを作る(1) - にせねこメモ
- 初めてのTrueType命令: Windowsでは見えないフォントをつくる - にせねこメモ
- 逆引きTrueType instruction set - にせねこメモ
OpenType
Variable Fonts
- ウェブ最大の「フォント問題」を巡ってアップル、グーグル、MS、アドビが団結|WIRED.jp
- Variable Fontについて - console.blog(self);
- Introducing OpenType Variable Fonts – John Hudson – Medium
- Rockridgeさんのツイート: "時期未定だがGeckoでもOpenType Variation Fontsをサポートする予定。参照:https://t.co/xNstDMA0W6 / “Intent to implement: OpenType Variati…” https://t.co/Fi9rUDshGc"
- Rockridgeさんのツイート: "Firefox 62では「ひとつのファイルでありながら複数のフォントのように動作する」Variable Fontが使えるようになっている。次のFirefox 63ではウェブ開発ツールのフォントエディタでVariable Fontの… https://t.co/9fPWTzsud8"
- Variable fonts for Adobe After Effects — TypeDrawers
にせねこメモ
- OpenTypeフォントで万年カレンダーをつくる - にせねこメモ
- GPOSのCursive Attachment Positioningについて - にせねこメモ
- フォントの気持ちになる - にせねこメモ
- OpenTypeフォントで分数 - にせねこメモ
- OpenTypeフォントでFizzBuzz(その2) - にせねこメモ
- 単語の最初のみ(最後のみ)に置換を行うOpenType Feature Fileの書き方 - にせねこメモ
- OpenTypeフォントでFizzBuzz - にせねこメモ
- 「、」「。」を「,」「.」で表示するフォントをつくる - にせねこメモ
- OpenType/CFFのフォントを読んでみる - にせねこメモ
- OpenTypeカラーフォントと関連技術の動向
- Creating and supporting OpenType fonts for the Universal Shaping Engine
- OpenType の仕様策定の議論をのぞくには - しろもじメモランダム
- Microsoft Typography - Typography | Microsoft Docs
- OpenType specification - Typography | Microsoft Docs
- OpenType font file - Typography | Microsoft Docs
- OpenType - Wikipedia
- OpenType - Wikipedia
- CID (文字コード) - Wikipedia
- PostScript fonts - Wikipedia
- OpenType Feature File Specification
- true type fonts - Microsoft OpenType specification for cmap - Stack Overflow
- Jolg42/OpenType-Specification: OpenType Specification from Microsoft https://www.microsoft.com/typography/otspec/ & Apple https://developer.apple.com/fonts/TrueType-Reference-Manual/
- adobe-type-tools/aots: Annotated OpenType Specification
- OpenType フォントのカーニング情報をぶっこぬく - Qiita
- Rockridgeさんのツイート: "Fx53:OpenTypeフォントのCMAPテーブル(文字コードからグリフインデックスへのマッピングを定義するテーブル)で、フォーマット13をサポート。参照:https://t.co/hn8hfp37WR / “1320665 …” https://t.co/bsONE8ETOn"
- Archive of OpenType versions - Typography | Microsoft Docs
- OpenType specification change log - Typography | Microsoft Docs
- Script tags - Typography | Microsoft Docs
- 無償テキストエディター「Mery」がOpenType機能に対応 ~ゼロの字形も好きに選べる - 窓の杜
OpenType Variation Font
- Rockridgeさんのツイート: "Firefox 61でOpenType Variation Fontsがデフォルト有効化される見通し。 / “Intent to ship: OpenType Variation Font support” https://t.co/SoxLue673P"
- Rockridgeさんのツイート: "Fx62:Variable Fontがデフォルト有効化。 / “show_bug.cgi?id=1457266” https://t.co/3dEpnhCfI7"
- Ubuntu 16.04でgooglei18n/fontviewをビルド - にせねこメモ
- googlei18n/fontview: Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm
- macOSのダークテーマ、可変フォントなどをサポートするMozilla Firefox 62
OpenType Sanitizer
- khaledhosny/ots: Sanitizer for OpenType
- 一部のウェブフォントがより厳格なバリデーションのため表示されなくなる場合があります (影響あり) | Firefox サイト互換性情報
- 12月のマイクロソフトセキュリティ更新を確認する - INTERNET Watch Watch
- 縦書きにしたときにWebフォントの部分だけ表示されない - Google プロダクト フォーラム
WOFF
- WOFF 2.0, the inside scoop | W3C Blog
- WOFF File Format 2.0
- フォントファイルから使いたい文字を抜き出してコマンドラインでWebフォント化するfontminが便利だった - Qiita
- WOFF (Web Open Font Format) - ウェブデベロッパーガイド | MDN
- フォント素人のWebエンジニアが、「フォントおじさん」に聞いてみた!Webフォントの最近の事情とか | HTML5Experts.jp
- WebFont の WOFF2 対応によるサイズ最適化 | blog.jxck.io
- Makoto Kato ︎︎さんのツイート: "font-display 使えばいいのに https://t.co/UENeh3Mhse"
- ウェブフォントのエモい話 // Speaker Deck
- Rockridgeさんのツイート: "MDN Web Docsでは、Webフォントの利用を見直しつつある。Open Sansを廃してFont Awesomeの使用も止め、Zillaフォントは英語文字に限って利用するようにした。ダウンロードサイズが減ってレンダリング時間… https://t.co/SLbO4rwN0g"
- Web Fonts Working Group Charter
- W3C Strategic Highlights: Strengthening the Core of the Web (Fonts) | W3C Blog
- Puppeteer で静的サイトの Font Subsetting | blog.jxck.io
- Web Font のメトリクス上書きによる CLS の改善 | blog.jxck.io
フォント
絵文字
- won't fix: emoji hell
- won't fix: この文字はカラー絵文字をつかうべきか、モノクロの絵文字をつかうべきか
- ゆきまさかずよしさんのツイート: "GoogleのチーズバーガーのEMOJIにおけるチーズの配置はあり得ないとか指摘があって、CEOが謝罪して訂正を約束したとか https://t.co/9RMQmsgLzk https://t.co/pl9hRjDKLm"
- Makoto Kato ︎︎さんのツイート: "色々あって一年放置したemojiのバグ直そうとしてるけど、本当フォントシステム辛い。ついでにこれ実装しちゃうとCSS Font4のfont-family: emojiも実装可能なんだけど、あれどうしようかな"
- カラー絵文字パッチ制作の経緯 — KaoriYa
- Googleがチーズバーガーの絵文字を修正、ほかにビールやチーズも - GIGAZINE
- Makoto Kato ︎︎さんのツイート: "I have added new font preferences "https://t.co/NO9M7sv5yr-list.emoji" to control emoji font on Firefox 59+"
- Makoto Kato ︎︎さんのツイート: "昔どっかの会社とFirefox OSのデバイス作ってた時に、この設定作らないとと思ってたやつなんだけど、今更入れた"
- 【やじうまPC Watch】Apple、70を超える絵文字を追加 - PC Watch
- Microsoft、立体感のある絵文字をオープンソースで公開 - PC Watch
ビットマップ
- GNU Unifont Glyphs
- Unicode encoded Shinonome font for i18n xterm
- 渡邊フォント問題、非商用限定の無償利用可で解決へ | スラド
- 「渡邊フォント」がパクリと発覚 | スラド
- k14 14-pixel japanese font for xterm
- Various Software written by S. Kono
- Hanazono fonts
PC Watch
- IPA、あらゆる人名の文字化けがない「IPAmj明朝フォント」 ~約6万漢字を国際標準文字コードに対応 - PC Watch
- IBMのオープンソースフォント「Plex」が日本語対応 - PC Watch
- Google Fontに日本語フォントなど複数追加 - PC Watch
- 【山田祥平のRe:config.sys】仮想化された紙に印刷された明朝とゴシック体、あるいはセリフとサンセリフ - PC Watch
窓の杜
- Unicodeコンソーシアム提供の“豆腐”対策フォント「Last Resort Font」がv14へ - 窓の杜
- Google、古いガラケーの白黒絵文字をオマージュした「Noto Emoji」フォントを発表 - 窓の杜
- 【レビュー】合字(リガチャ)をうまく活用したソースコード向けの等幅フォント「FiraCode」 - 窓の杜
- 【レビュー】「源ノ明朝」フォントを読めるギリギリにまで“破壊”した「源界明朝」 - 窓の杜
- 【レビュー】「Unicode 10.0」に追加された“変体仮名”を表示できる「Unicode変体仮名フォント」 - 窓の杜
- モリサワ、スタンダード版「BIZ UDゴシック」「BIZ UD明朝」の無償提供を再開 - 窓の杜
- Microsoft、数式フォント「MT Extra」をダウンロードセンターで無償公開 - 窓の杜
- 無償のホラーフォント8作品が一挙公開 ~「怨霊」フォントの暗黒工房が8年ぶりの更新 - 窓の杜
- 55種類の日本語フリーフォントをまとめて試せるWebサービス“ためしがき”がリリース - 窓の杜
- え、ふぉんと? モリサワの“あの”フォントが「Windows 10 October 2018 Update」に標準搭載 - やじうまの杜 - 窓の杜
- フォントワークス、8書体を“Google Fonts”で無償提供 ~GitHubにも公開 - 窓の杜
- Unicodeコンソーシアムが提供する“最後の手段”フォント「Last Resort Font」【レビュー】 - 窓の杜
- Releases · unicode-org/last-resort-font
- Microsoft、コーディング向けフォント「Cascadia Code」にイタリック体を追加 - 窓の杜
- 【レビュー】165カ国170万人から集めた筆跡の平均をもとにしたフォント「Universal Typeface」 - 窓の杜
- 日本語プログラミングフォント「PlemolJP」v1.0.0が公開 - 窓の杜
- ソースコード用フォント「FiraCode」、文字だけでプログレスバー・リングを表現可能に - 窓の杜
- プログラミング向けフォント「白源」 ~英文の「Hack」と日本語の「源柔ゴシック」を合成【レビュー】 - 窓の杜
- 「BIZ UD」フォントが「Google Fonts」へ ~モリサワのユニバーサルフォント - 窓の杜
- めっちゃ読みやすいモリサワの「BIZ UD」フォントが「GitHub」に - やじうまの杜 - 窓の杜
- AIが画像に似合うフォントを選んでくれる ~フォントワークス、「人工知能6号」を公開 - 窓の杜
GIGAZINE
- 古式ゆかしい「変体仮名」が商用・エンベッド含め自由に使えるフォント「Unicode変体仮名フォント」 - GIGAZINE
- 無料&商用利用可能で幾何学的ながら明るく都会的なデザインのフォント「ROLAchan(ローラちゃん)」 - GIGAZINE
INTERNET Watch
- 江戸時代のくずし字1521文字種・8万6176件の字形データセット無償公開、ディープラーニングを用いた文字認識のサンプルプログラムも~NIIと国文研 -INTERNET Watch
- 「源ノ明朝」、デジタル向けだが「手の軌跡から生まれる骨格を探し出した」デザイン -INTERNET Watch
- プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
- 明治時代の活字の味わいたっぷり!無料日本語フォント「Oradano明朝フォント」がステキ – Japaaan 日本文化と今をつなぐ
- KHドットフォントシリーズ | 自家製フォント工房
- Oradano Mincho : non JIS X 0213 public domain TrueType font
- FSP95 comments
- ASCII.jp:西麻布のバーでNTT Comの宮川エバに聞いたテッキーなお話 (1/4)
- ターミナルでアイコンフォントを使う理由 | IIJ Engineers Blog
- 日本語の既定フォントが変更されました | Firefox サイト互換性情報
- モリサワ「Windows 10 Fall Creators Update」での「UDデジタル教科書体」正式採用を発表 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
- プログラミング用フォント Ricty
- MORISAWA BIZ+ | 株式会社モリサワ
- ワープロ専用機の拡大処理を再現したフォント「ワープロ明朝」
- irori/wapuro-mincho: "ワープロ明朝" - 80's Japanese word processor like font
- モリサワ OpenTypeフォントの共同開発で株式会社写研と合意 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
- 沈黙の巨人、「写研」が動いた “愛のあるユニークで豊かな書体”がわれらの手に届くまでの100年を考える (1/3) - ITmedia NEWS
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Helveticaが可変フォントになった。ウェイト・幅・サイズなどを変えると、全体の字形が変化する。ライブデモあり。 https://t.co/0XQCLGe6Ea」 / Twitter
- Helvetica Now Variable | Monotype.
- More of everything, for everyone. Introducing Helvetica Now Variable. | Monotype.
- 価格表記のフォント - 中原企画立案事務所
- DNP、文字の読み書きに困難がある人に向けた「じぶんフォント」 - Impress Watch
Android
- 池田 泰延さんのツイート: "先程のXperia (Android 7)のフォントの話をトゥギャりました。 HTML/CSSを書く人にとっては役立つ話かと思います。 /Xperia(Android 7)のフォントがウェブ制作者にとって残念 https://t.co/RG3ShObydP"
- Makoto Kato ︎︎さんのツイート: "XPEDIAにはNoto Sans CJKは入ってるけど、skiaのせい。というか標準フォント変更機能が存在しててXMLファイルでいろいろ入れ替えられる。そのせいだよ。その機能入れたのSHARPだから、SHARPのせいということで"
- Makoto Kato ︎︎さんのツイート: "Noto Sans CJK使いたかったらAndroid版のFirefoxを使えばでるんじゃないですかねー。(細かい調整入れた張本人としての発言)"
- Makoto Kato ︎︎さんのツイート: "昔ICSの頃にGoogleとのミーティングあるからなんかお願いしたいことある?って言われた時、今のAndroidのデザインだとフォント列挙(フォントファイル単位)の方法が存在しなくて、フォントファイルのパスさえもとれないから、ホント困るって話をお願いしてもらったんだけどね。。。"
- Makoto Kato ︎︎さんのツイート: "ブラウザ側からしてみれば、skia経由でしかフォントに触れないのでskiaがフォント選択の仕組みをそのままブラウザ側に実装しないと全くもってブラウザがやりたいこと実装できないんですよねー。skiaやってるのもGoogleなんでGoogleのせいですよ、SONYじゃない"
- Makoto Kato ︎︎さんのツイート: "OEMベンダがカスタムしてるフォント名のアリアスとかもXMLファイルなんで、FirefoxもそのXMLファイルを解析してフォント選択に加えないといけないんですが、個人的には優先度低い。でもChromeとの互換性言われたらやらざるを得ないけど"
- Makoto Kato ︎︎さんのツイート: "全端末が/system/fontsだけにあればよかったんですがねー。しかもフォント名のアリアスなしで"
- Makoto Kato ︎︎さんのツイート: "なお、どの会社もskiaをカスタムしてなければいいですが、自社でコードいじってるとXMLファイルの件も保証できないです。Apacheライセンスだったはずだから、変更した場合でも変更点は闇のなかですねー。GPLとかだったら変更点を出してくれますが"
- Makoto Kato ︎︎さんのツイート: "Android版Chromeで中華フォントが!!って話が昔よくフォーラムにあったんだけど、Androidのフォントを知れば知るほど、ホワイトリストしかない気がするって思うんだよね。Chrome Teamの範疇だと難しいよな、かわいそうにって思う"
- Makoto Kato ︎︎さんのツイート: "(その面倒なところの架け橋をしたって、おそらく社内的にまったく評価されないだろうから、誰もやるはずがないという意味です)"
ものかの
- デジタルフォントの風説 “仮想ボディ” – ものかの
- 日本語の活字はどうして全角なのか – ものかの
- 源ノ明朝/角ゴシック-1 フォントを整理しよう – ものかの
- 源ノ明朝/角ゴシック-2 サブセットとフルセット – ものかの
- 源ノ明朝/角ゴシック-3 デジタルの文字 – ものかの
- 源ノ明朝/角ゴシック-4 Unicodeの漢字統合 – ものかの
- 源ノ明朝/角ゴシック-5 フルセット版 – ものかの
Wikipedia
- Linux Libertine - Wikipedia
- Linux Libertine - Wikipedia
- Junicode - Wikipedia
- Junicode - Wikipedia
- DejaVuフォント - Wikipedia
- DejaVu fonts - Wikipedia
Twitter
macOS
- みーた / UXエンジニアさんはTwitterを使っています: 「macOS Catalinaでヒラギノ角ゴPro/ProNが消えたらしい。 弊社サイトとかでも使ってるのでフォント崩れが起きている。 困る。大迷惑だ。 https://t.co/U6VTP3qSUc」 / Twitter
- みーた / UXエンジニアさんはTwitterを使っています: 「私はアップデートしてないのでソースはこちら。 https://t.co/6rDoWnM7js」 / Twitter
- macOS Catalinaでヒラギノ角ゴPro/ProNが消える - kyoto.nagoya Blog
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「フォントに依存するようなサイト云々ってのもあるけど、generic font-familyを指定してるけど、そのハンドリングが甘いブラウザがあるって感じ?」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「あー、Geckoもそのままではフォールバックしなさそうだな。 https://t.co/z1rtoiBdoo」 / Twitter
- all.js - mozsearch
- 池田 泰延さんはTwitterを使っています: 「macOS CatalinaのChrome 77のフォント問題。 勘違いしている人が多いので説明。 Chromeのデフォルトだった「ヒラギノ角ゴシック ProN」がCatalinaで未バンドルになる ↓ 該当するフォントがなくなったため、Sans Serifが明朝体で表示される ↓ フォント指定の甘いサイトは全部明朝体に! https://t.co/Cil92P8PGO」 / Twitter
- macOS Catalinaでヒラギノ角ゴPro/ProNがなくなって困ってるfont-familyの設定を考える。|榊原昌彦|note
- 四九六々(縦書き用)さんはTwitterを使っています: "フォントのGPUレンダリングの記事読んでた。これいいね。GPUの知識に乏しいので2週間くらいかけて勉強しながら実装してみたい。https://t.co/tgm1tNpGe9"
- Resolution independent GPU text rendering demo
- Rockridgeさんのツイート: "Mozillaの新ロゴに使われているZilla SlabフォントがGoogle Fontsに掲載されている。 / “Google Fonts” https://t.co/YCupNw3Xlj"
- Zilla Slab - Google Fonts
- なかのんクエストさんのツイート: "@azu_re リリース版では57からメイリオですが、当然、インストールされていない環境も考慮して、メイリオ → 游ゴシック → MS Pゴシックとフォールバックするようにしています。 https://t.co/plxRj8pPWE-list.sans-serif.ja 参照。"
- 池田 泰延さんのツイート: "ブラウザのフォントをユーザーが独自に変更している場合に、アイコンフォントが表示されなくなる。 これは盲点でした... #cssnite https://t.co/SAHptJF2o3"
- Rockridgeさんのツイート: "Fx63:Skiaのフォントキャッシュサイズを10MBから5MBに減らした。Mac版やLinux版で消費メモリが減少する。 / “show_bug.cgi?id=1258781” https://t.co/RROLJbRguT"
- Rockridgeさんのツイート: "Fx63:Android版の使用フォントにNoto Serif CJKを追加。Android 9 Pieでは中国語、日本語、韓国語のセリフ体フォントはNoto Serif CJKがデフォルトなんだとか。 / “1481031 -…” https://t.co/YkgoZDkwnt"
- なかのん&マジックさんのツイート: "昔、ちょっとだけGeckoのgfxかじった身からすると実装面でその気持ちは分かる……"
- OE Waku 𛄊𛀬さんのツイート: "げ、これマジだ。ひどい・・・・ > Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない https://t.co/8NVPQgfNFU"
- Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない - Qiita
- なかのん&マジックさんのツイート: "こういう時に、ブラウザエンジンを選択できないプラットフォーム、デバイスってのは困るよなぁ。特にこうやって、ブラウザの違いによって転送容量が大きく変わるってのは、事実上、従量制な回線を使ってると実害あるよね。"
- ドッグさんのツイート: "Linux のフォント描画がどうダメなのか具体的に説明してくれてる | 'The sad state of font rendering on Linux | Infosec scribbles' https://t.co/kKTZMIe7Br"
- The sad state of font rendering on Linux | Infosec scribbles
- vyv03354さんのツイート: "㋿を表示するためだけのフォント https://t.co/jS45Zrl1Yb しかしFirefox以外はフォントを明示的に指定しないと表示できないようだ。"
- グループ:emk_令和明朝 - GlyphWiki
- FadisさんはTwitterを使っています: 「中国語の文字が多すぎてフォント作りが辛すぎて凝ったデザインのフォントが足りない問題、CNNでスタイル転送してフォントを生成することでほぼ克服されてて凄い」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VisualStudio2019の標準フォントは、昔ながらの「MSゴシック」ということに今頃気付いた。 プログラミング用フォントは、Anti-Alias / ClearType が効かない方が視認性が良くて好き。 (これらが効くフォントは、同じ文字が場所によって、微妙に異なる表示になったりする)」 / Twitter
- Google Fonts
- Google Fonts の日本語フォント - Qiita
- UIパーツにメイリオを指定しないほうがいい理由
- さまざまな条件下でフォントの視認性・可読性をチェックできるシミュレーターサービスがベータ公開 - 窓の杜
- Fonts (日本語) - ArchWiki
- FadisさんはTwitterを使っています 「与えられた文字と似た特徴を持つベクタフォントを生成する論文。CNNでラスタフォントを生成する手法は以前からあったが、ベクタフォントの生成は困難だった。この手法はベクタ画像のラスタライズを微分可能にして、ラスタでの誤差をベクタを吐くNNまで逆伝播できるようにする https://t.co/nuVmmKq62g」 / Twitter
- [2110.06688] DeepVecFont: Synthesizing High-quality Vector Fonts via Dual-modality Learning
- mizchiさんはTwitterを使っています: 「ローカルフォントがフィンガープリントに使えるのは問題なんだけど、パーミッションの要求は十分現実的な対策になってる。というか「ユーザーの同意に頼るのは安全策ではない」と主張してるのこの人以外みない / “Braveはフォントを取得できないようにした。いっぽうChrome…” https://t.co/9luOfS3cSt」 / Twitter
- Braveはフォントを取得できないようにした。いっぽうChromeはフォントを根刮ぎ取得しようとしている。 - Qiita
- mizchiさんはTwitterを使っています: 「パーミッション要求の同意フローに問題はあり、特に通知許諾で問題になってるのがそうなんだけど,それをもってすべてのパーミッション要求が悪と言い切るコンセンサスがある状態といえない。この人の記事は常にそれを前提とした主張が入り、ほとんどの記事に問題があると認識しています。」 / Twitter
- mizchiさんはTwitterを使っています: 「この人は例えばプッシュ通知の基盤という理由で全 ServiceWorker の無効化を主張していますが、これは問題の切り分けをせずに本来ユーザーに有用な機能まで潰してしまう過激な主張で、その昔 2ch の一部の自称情強がJS全無効化を推奨していたのと似たような主張です。 https://t.co/0GCsD2NriE」 / Twitter
- Chromeを使うなら、必ずServiceWorkersを無効化しよう - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「画面のフォント選びは超重要だという話。英語フォントの可読性を調査したところ、フォントによっては被験者の読む速度が 3割以上(!)も向上することが判明。ただし「万人向けのフォント」というものは存在せず、最適なフォントは人によって違うらしい。 https://t.co/yIVO5Sfp0G」 / Twitter
- Best Font for Online Reading: No Single Answer
- HiDPI スケーリング フォント - Google 検索
- HiDPI スケーリング フォント エイリアシング - Google 検索
PDF
その他
OCR
- 伊津野 英克さんはTwitterを使っています: 「Layout Parser 使ってPDF論文に対しOCR的なことできないかな、と思ってやってるんだけど、いまいち精度が微妙。なんかへんな場所で分割されてたり数式を無視する。領域分割は古典的な方法の方が良いのかしら。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「Layout parserはこれ https://t.co/8jyWqfJBHV」 / Twitter
- Layout Parser
- 伊津野 英克さんはTwitterを使っています: 「古典的な手法は再帰的XYカット手法というのを使うんだけど、これはこれで簡単なレイアウト以外は駄目だからなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「セグメント分割もyoloじゃうまくいかんのだろうか。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「どうもyoloでいいようだ。あと数式を無視するのは訓練に使ったデータセットの問題らしい。https://t.co/heAwuONCWU」 / Twitter
- DocLayNet: A Large Human-Annotated Dataset for Document-Layout Analysis – arXiv Vanity
- 伊津野 英克さんはTwitterを使っています: 「Layout Parser だと読み取り順がわからないんだけど、それはそれでML使う研究があった。こういうのは昔からMS強い。 https://t.co/2tudy4UgyS」 / Twitter
- (PDF) Machine Learning for Reading Order Detection in Document Image Understanding
- 伊津野 英克さんはTwitterを使っています: 「読み上げ順なんて、それこそ機械学習でやりやすい課題だと思うんだけど、Amazon Textract でも位置情報から自分で見つけださないといけない。ヘッダがセンタリングされてたり、2カラムと3カラムが混在してる可能性もあるからそんなに簡単には行かない。」 / Twitter
- Online ASCII85 encoder - Online tools
- paperai/pdfanno: Linguistic Annotation Tool for PDF Documents
- Hack Patch!: PDF特殊機能(FormCalc編)
- Hack Patch!: PDF特殊機能(リダイレクト編)
- UsefullCode.net: 2016年04月 記事一覧
- UsefullCode.net: 2016年07月 記事一覧
- PowerPoint for Macが吐くPDFが重いんです - Qiita
- タグ付きPDFとはどんなもの | アンテナハウス PDF資料室
- Arch Linuxで日本語pdfを閲覧したり、辞書を表示する | 3log
- 「LibreOffice 6.3」リリース、UI、性能などにフォーカス | OSDN Magazine
- PDFから「使える」テキストを取り出す(第1回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第2回) - golden-luckyの日記
- CC0ライセンスの空白PDFファイル - Qiita
- PDFから「使える」テキストを取り出す(第3回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第4回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第6回) - golden-luckyの日記
- Takashi KawasakiさんはTwitterを使っています: 「Unicode→GIDを逆引きして文字コード取得すると、メイリオみたいなフォントだと、杮(こけら)と柿(柿)が区別できなかったりする。つまり同じグリフなのね。 PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記 https://t.co/bNEVURablY」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「ああ、僕のレビューは確かに良くないかも。日本語のPDFの本の解説本って割と少ないので過度な期待をしちゃっただけなんですよ。 https://t.co/lJsLRPz6Zl」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています: 「今日のブログ書くのにamazonでこの本を見たら、求めるものを勘違いしている方によるレビューばかりでかわいそうになった。ふつうに良い本だと思います "John Whitington『PDF構造解説』 https://t.co/jURHqtACSt」 / Twitter
- 2020年 年賀状 - golden-luckyの日記
- PDFが読めるようになるお話 | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介!
- プログラマーから見たPDFファイル | アンテナハウス PDF資料室
- PDF IFilter - Google 検索
- 複数ページのテスト用PDFをサクッと作成する方法 | Money Forward Money Forward Engineers' Blog
Adobe
- 注目の脆弱性:Adobe Acrobat Reader DC ドキュメント ID に起因する、リモートでコードが実行される脆弱性
- TALOS-2017-0505 - Cisco Talos
- PDF 2.0 でドキュメントを次世代のステージへ - Adobe Blog
- ISO 32000-2:2017(en), Document management — Portable document format — Part 2: PDF 2.0
- ISO 32000に準拠するPDFってどんなもの? | アンテナハウス PDF資料室
- ISO 32000-2:2017 文書管理-ポータブル文書フォーマット-第2部:PDF 2.0 | 日本規格協会 JSA Group Webdesk
- Adobe AcrobatがセキュリティソフトによるPDFファイルのチェックを防いでいるとの指摘 - GIGAZINE
- 「Adobe Acrobat Reader」がセキュリティチェックをブロックか ~イスラエルの会社が指摘 - 窓の杜
OCR
- tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする - Qiita
- Ubuntuにtesseract-ocrをインストール - Qiita
- スキャンしたpdfファイルにOCR処理を行い,テキスト埋め込みpdfを作成する - Qiita
- 日本語OCRライブラリNHocrを利用してみる - Qiita
- Nami Ogawaさんのツイート: "古めの論文でそのままPDF落とすと文字も読みづらくて本文検索もできないようなとき、google検索でキャッシュリクエストすればOCR済みのHTMLバージョン返ってきてめっちゃ便利っての今気づいた https://t.co/2yBG3Cymsr"
長期署名
- PAdES - Wikipedia
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第1回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第2回) PDF署名とは - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第3回) PAdES仕様の構成 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第4回) PAdES Basic - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第5回) PAdES Basicと署名ポリシ - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 追悼 Adobe CDS - livedoor Blog(ブログ)
PDF.js
- PDF.js - Wikipedia, the free encyclopedia
- PDF.js
- mozilla/pdf.js: PDF Reader in JavaScript
- PDF.jsを設置する - Qiita
- MozillaのPDF.Jsを利用してJavaScriptでPDFレンダリングをカスタマイズ - WPJ
- PDF.js の導入方法と苦労した話 (フェンリル | デベロッパーズブログ)
- pdf.jsを使いブラウザで見られるPDFスライド表示ツールを作った | Web Scratch
- [pdf.js] テキスト選択出来るスライド表示ライブラリを書いた | Web Scratch
- PDF.jsを使ってみる | Tips Note by TAM
- PDF.js で遊んでみた (ページの描画,テキスト・注釈の表示など) - きちぽよ〜
- mozilla/pdf.js: PDF Reader in JavaScript
- チュートリアル:Aurelia.jsとPDF.jsで実装するPDFビューワーの作り方 - WPJ
- core-jsがメンテされていない理由 - Qiita
- ブログにPDFスライドを追加した話 | κeenのHappy Hacκing Blog
libHaru
- LibHaru - Wikipedia, the free encyclopedia
- libHaru
- libharu/libharu
- libHaruの部屋
- PHP::Haruで基本的なPDFを作成する (1/3):CodeZine(コードジン)
PDFium
- Google Chrome PDFエンジンがオープンソース化
- 米Google、ChromeのPDFレンダリングエンジン「PDFium」をオープンソース化 | OSDN Magazine
- Issues - pdfium - PDFium - Monorail
- pdfium Git repositories - Git at Google
- SDK Docs - Foxit Developer Portal | PDF SDK technology
- にっき♪: PDFium
- pvginkel/PdfiumViewer: PDF viewer based on Google's PDFium.
PDFtk
- PDFtk - Wikipedia
- PDFをコマンドラインから編集できるPDFtk使い方メモ - c-bata web
- PDFtk - The PDF Toolkit
SumatraPDF reader
- Free PDF Reader - Sumatra PDF
- sumatrapdfreader/sumatrapdf: SumatraPDF reader
pdfseparate
- Poppler:Pdfseparate の使い方 | PDF
- Ubuntu Manpage: pdfseparate - Portable Document Format (PDF) page extractor
- PDFを各ページに分割(切出)するコマンド pdfseparate - それマグで!
- kmutoさんのツイート: "gs由来のpdfseparateでもboxは全部飛んじゃうんだな"
- Poppler:pdfunite の使い方 | PDF
- Linux とかで PDF を結合とか n-up とかするコマンドたち - polamjaggy
- Ubuntu Manpage: pdfunite - Portable Document Format (PDF) page merger
- wgetコマンドで外部からPDFを取り出してpdftkでPDFを結合しよう - Qiita
yomu
- yomu
- ta2gch/yomu: 英和辞書付きPDF閲覧ソフト
Google
- Google Chromeに脆弱性か、ユーザー追跡の不審なPDF発見 - ITmedia エンタープライズ
- Chrome PDFビューワーの情報漏えいの脆弱性についてまとめてみた - piyolog
- ゆかたゆさんのツイート: "Android版のChromeさんはpdfファイルを落とす前に確認して欲しいのです💢 (これ出来るんですか?私が無知だったらごめんなさいなのです)"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "てかpdfのフォーマット知らないんだけどページごとのストリーミングみたいなことできないのあれ 数十ページあるやつ全部落とすの通信量やばい"
- なぎせ ゆうきさんのツイート: "ページ単位のタグがあったと思うけど、表示に必要な情報が後ろにあったりしたような(うろ覚え… "
- あんどうあんど🔞休職→求職中さんのツイート: "最後のほうに、属性情報とか索引とかある。… "
MS
- 「Edge」のPDF閲覧機能が強化、新しいセキュリティ機能も ~Insider Preview - 窓の杜
PDF/UA
- PDF/UA - Wikipedia
- Tomaz's dev blog: Accessibility checker and support for PDF/UA specs
- PDF/UA-1(ISO 14289-1)について | アンテナハウス PDF資料室
PDF/X
- PDF/X - Wikipedia
- PDF/Xについて (1) PDF/X-1a
- PDF/Xについて (2) PDF/X-3
- PDF/Xについて (3) PDF/X-2
PDF/A
- PDF/A - Wikipedia
- PDF/Aとはなにか | アンテナハウス PDF資料室
- PDFAOutline.pdf
- PDF/A 概要
- LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る - Qiita
- timelerさんはTwitterを使っています 「文書PDFは基本的にPDF/A以外は信用してはならない。」 / Twitter
- tkrさんはTwitterを使っています 「wordでインターネットからDLしたdocxファイルを開くと「保護ビューのままにしておくことを推奨」みたいな警告出てこれはマクロとかあるから分かるんだけど、pdfでも同じ表示出るやん?pdfってそういう悪いこと可能なの?」 / Twitter
- timelerさんはTwitterを使っています 「PDF/Aは大雑把に、フォントとメタデータ以外の埋め込みが禁止されているので安心。 どの環境でも読めることが保証されるのでさらに安心。」 / Twitter
GIGAZINE
- PDFファイルを開くだけで暗号化された内容が流出する脆弱性「PDFex」が発見される - GIGAZINE
- Windows上でもPDFファイルのパスワードを総当たりで解析できるフリーソフト「PDFCrack」 - GIGAZINE
- iPhoneでJPEG画像やPDFファイルを開くだけでハッキングされる可能性 - GIGAZINE
- PDFが世界中で広く使われるようになった理由とは? - GIGAZINE
- PDFファイルのテキストを人間にしか読めないようにする「Human Eyes Only」 - GIGAZINE
- デジタル印刷技術を一気に向上させてDTPに革命を起こした「PostScript」が生まれた経緯とは? - GIGAZINE
Wikipedia
- Category:Mozilla Firefox - Wikipedia
- Category:FLOSS関連のスタブ項目 - Wikipedia
- Portable Document Format - Wikipedia
- Ascii85 - Wikipedia
- Extensible Metadata Platform - Wikipedia
Twitter
ToUnicode, OpenType
- keiichiro shikano λ♪さんはTwitterを使っています 「今日の学び:PDFの/ToUnicodeは、OpenTypeフォントの中のcmapから得られる情報と食い違う場合がある!(信用できるのはOpenTypeフォントの中の情報)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「しかしOpenTypeのcmapを読むのはパターンが多すぎてめんどくさいなあ」 / Twitter
- 画力・博士号さんはTwitterを使っています 「OpenTypeの cmap テーブルは一般には単射ではないのでPDF中での逆変換に相当する /ToUnicode CMap で正確に復元できるとは限らないんですよね(どうしてこんな仕様に……)」 / Twitter
- TrueRoadさんはTwitterを使っています 「AJ1フォントなら逆に無い方が都合が良い場合が多いので、原ノ味フォント用にToUnicode CMap削除ツールなんてものを作りました。 https://t.co/Da7Punx9h3」 / Twitter
- trueroad/pdf-rm-tuc: Remove ToUnicode CMap from PDF
- keiichiro shikano λ♪さんはTwitterを使っています 「確かに、フォントが埋め込まれてる場合にはいっそいらないよねこれ…」 / Twitter
- TrueRoadさんはTwitterを使っています 「@golden_lucky 源ノとかAI0フォントの場合はToUnicode CMapが無いとテキスト抽出できなくなってしまいます。PDFにフォントが埋め込まれていても、確かcmapテーブルは入ってなかったと思います。」 / Twitter
tagged PDF
- keiichiro shikano λ♪さんはTwitterを使っています 「タグ付きPDFを「きちんと」出力できて、書籍の組版できるソフトウェア、現状だと何があるだろう。InDesignには「TCreate Tagged PDF」のオプションはあるっぽいが、これはどこまで使いものになるのかにゃあ。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「Chromeがタグ付きPDFがデフォルトなのでVivliostyleはできるのかな。AHFormatterはできそうだけど、これも実際のところはどんな感じなんだろう。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「pdfTeXは「きちんと」はいまだにできてないが、ConTeXtはできるらしい。」 / Twitter
- ひだるま@技術書典9新刊有さんはTwitterを使っています 「タグ付PDF、1.7と2.0でちょこちょこ違うし私用のマシンだと十分な検証環境ないんだよな」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「PDF 2.0、ぜんぜんしらないなー」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「父さんEPUBは捨ててtagged PDFにベットしようと思うんだ」 / Twitter
- Tokushige KobayashiさんはTwitterを使っています 「AH Formatterのタグ付きPDFを使っているのは海外ユーザーだけだと思います。逆に、OSDCはタグ付きPDF出力できないですが、海外から今どき非常識だと叱られたことがあります。非構造化文書からのタグ付きPDF出力は仕様を満たすための無意味なタグ付け~Pタグとspanタグ羅列のような~になるだけですが。」 / Twitter
- 村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky AH Formatterはもちろんタグ付きPDF出来ます。 https://t.co/fLS6som2nR だいぶ昔ですが、私がその実装に携わっています。」 / Twitter
- AH Formatter V7.0 - PDF出力
- 村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky Chromeのタグ付きPDF出力によりVivliostyleでも出来るようになるはずなのに、タグ付きにならない不具合に気付きました。どうもChromeのタグ付きPDF出力が特定の条件(JSでコンテンツが生成されてる、CSSでページサイズ指定ある)で無効になるChromeのバグのよう。さらに調べてChromeにバグ報告します。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「@MurakamiShinyu なるほど、ブラウザでDOMを作る前にHTMLの構造が手に入っている場合にのみ生成できる、とかだとつらそうですね…」 / Twitter
リーダーモード
- keiichiro shikano λ♪さんはTwitterを使っています 「いまでも普通のPDFをリフローできるんですよ https://t.co/y4wzFrjk9J」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「まあ、これはリーダーに依存した不完全なもので数式とかルビとかページまたぎとかは全然ダメなんだけど、大筋は問題なく読めるし、どうしても読めなかったらふつうのページ表示に戻せば必ず読める。」 / Twitter
- mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky えっ。なにこれ。やば?どうなってるの?とか思ったんですがこれすごいすね」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「@mhidaka ご利用のスマホのAcrobatアプリで「リーダーモード」を選べば誰にでも未来が待っているんですよ!(実はデスクトップのAcrobatですでに十年位前にはあった機能)」 / Twitter
- mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky やべー技術力じゃん…」 / Twitter
サブセット?
- keiichiro shikano λ♪さんはTwitterを使っています 「PDFとPostScript、ページ記述に使っているモデルこそ同じだが事実上は別ものなんだけど、Wikipediaの「PDFはPostScriptのサブセット」という説明はどこ由来なんだろう https://t.co/y9OQ9SSlSp」 / Twitter
- 僕「PDFとは何か知りたい」 - Qiita
- keiichiro shikano λ♪さんはTwitterを使っています 「「ErlangはPrologのサブセット」みたいな違和感がある(わかりにくい)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「CDはDVDのサブセット」とかのほうがわかりやすい?(わかりにくい)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」に違和感があるのといちばん近い気がしてきた。Haskellを知りたくて圏論について調べたら迷子になるように、PDFを知りたくてPSについて調べたら迷子になります。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」も「PDFにはPSのサブセットが含まれる」も、それ自体は偽とは言えないけど「あえて」主張されると「せやな」という気持ちになるという意味で、「偶数全体の集合は素数全体の集合の空でないサブセットを含む」は実に膝を打つたとえ。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「「空でないサブセットって言えばいいのかな?」「偶数全体の集合は素数全体の集合の空でないサブセットを含みます!」」 / Twitter
Mozilla
- RockridgeさんはTwitterを使っています: "PDF.jsは「Canvasとテキスト、アノテーションの3つのレイヤーを使って描画しています」。「Canvasの描画の上に透明なdivにテキストを流しこんだり、クリック出来るようにリンクを置いたりしています」。 / “[pdf.…” https://t.co/QNrf99J3SA"
- vyv03354さんはTwitterを使っています: "pdf.jsがフォントを埋め込んでいない日本語PDFで文字化けする問題ようやく修正した。自分で本体に投入したTextDecoderが早速役に立った。やはり自分でhackしないと誰も直してくれないことを再確認。#もずでぶ"
- vyv03354さんはTwitterを使っています: "それにしてもフォントを埋め込まないでIdentity CMapを使うのは禁止されているはずなのに https://t.co/91wpwzRd 違反している日本語PDF多すぎ。"
- vyv03354さんのツイート: "pdf.jsで縦書きに対応。本体のwriting-modeサポートに依存しているような気がしていたが別にそんなことはなかったぜ! #もずでぶ"
- vyv03354さんのツイート: "https://t.co/1vtC7zUP2m 現時点の制限事項: フォントが埋め込まれていないと、縦書き用字形は使われず句読点や括弧なども横書き用のままです。"
- vyv03354さんのツイート: "@teramako https://t.co/F1f8jRve と同じ問題ですね。この問題があるのでフォントを埋め込んでいない日本語PDFは高確率で化けます。"
- vyv03354さんのツイート: "pdf.jsは日本語の数学論文がほとんど全滅で、issueも投げたけど無視されてる。https://t.co/F1f8jRve やっぱりハックしてpull requestを送らないとダメか"
- Rockridgeさんのツイート: "Fx48:PDF.jsやGoogleドキュメントなどで、ヘッダ/フッタを印刷すると本文領域を上書きしてしまう場合、ヘッダ/フッタを印刷しないようにした。 / “1250674 – Don't print header/foote…” https://t.co/USoaeYbKB4"
- Rockridgeさんのツイート: "Fx55:MortarプロジェクトのPDFビューワを有効化するための設定が追加された。pdfium.enabledがそれだが、今のところtrueにしても現行ビューワの代わりになるわけではない。 / “1338476 - [jsp…” https://t.co/k0c4dhwqRG"
@espresso3389
- Takashi KawasakiさんはTwitterを使っています: 「PDFの仕様が曖昧過ぎて話にならないのは事実としても、普通は、PDFを作成する側のプログラムにもメジャーなものがいくつかあって、そいつらの癖とかバグを一通り対応すると、まぁ、世の中の99%ぐらいのファイルは処理できちゃんだけども、残りの1%はどこかの誰かさんが作ったであろう、名も知れ(文字数」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「面白いのは、当然ながら、Acrobatでは開けるからこそ流通するわけなんだけど、要はAcrobatのデコーダも相当謎で一体、どんな実装してんだっていうのはある。逆に最近のバージョンで開けなくなったPDFというのも少なからずある。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「テキストの並びを順序通りに切り出す処理、GUIアプリだとユーザーが暗黙のうちに正しい方向に選択してくれるというヒューリスティクスというか人間を使った手法があったりする。というか、僕の書いたアプリではそれを使ってたりする。まぁ、全然完璧じゃないんだけどね。 https://t.co/HJC7lQYqsT」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「Microsoft Print to PDFっていうクソ仮想プリンタが、仕様違反とは言えないまでも、Page contentの q Q の外に CTM いじるような命令ぶっこんで来るせいで、content 追記するととんでもないところに描画されちゃって困ってる。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「PDFをある程度理解できるようになるとわかることは、クソエンコーダが多すぎて、個別のPDFの事情なんてさっぱり分かりません。諦めてくださいってことになるってことです。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Adobeの実装すら、・・・・ってなることが多いのに、それを他のソフトで再編集でもしようものなら、もうゴミになることは火を見るよりも明らか。 にもかかわらず、Adobeすら再編集機能を持っていたりするので、憎悪しか感じない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「PDFは一度作ったら編集なんてやるべきじゃない。もっというとデータとしての活用もやるべきじゃない。人間による閲覧用途、印刷用途、あとはクリティカルじゃない検索程度にとどめるべき。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「あと、仮想プリンタ。あいつらも諸悪の根源。基本、印刷側ソフトウェアは、文字コードの羅列から、印刷のためのグリフの配列を生成して、それをプリンタに送信している。そのグリフ配列から、元の文字コードに戻せるか?って言われると、原理的には必ずしも元には戻らない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「仮想プリンタは無理を承知で頑張ってはいるけど、無理なものは無理。メイリオとか、かなり多くの文字が同じグリフを参照してたりするんだよ。杮と柿とか。あとね、アラビア系の文字に関しては、実のところ並び順すら怪しい。頑張って解析するけどさ。リガチャとか元に戻るわけねーだろっていう。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「この辺は、ドライバ書くのに、各言語に対するかなりの知識が必要になるわけです。僕日本人なので、頑張っても日本語、英語、あと・・・、ドイツ語は怪しい。ポーランド語とか知るわけねーだろみたいな範囲で頑張ってヒューリスティクス含めて実装するのね。」 / Twitter
- Tsukasa #01 [要出典]さんのツイート: "oO( 残念ながら、pdf.js はほぼ使い物にならないという評価をせざるを得ない。 )"
- 勝(まさる)さんのツイート: "PDFはPostScript派生なんだけど、後ろに続くテキストを圧縮してエンコードしてとかできるんで、ファイルを生で開いても読めないことが多いですね。"
- aminophenさんはTwitterを使っています: 「> TeX界隈だと、DVIPS経由で生成されたPDFではType 3フォントが使われることになっているので、この理由で文字が取れないPDFファイルはわりと目にします。 ここで耳寄り情報を1つ:最近,dvips の作者が「Type 3 フォントを使った PDF から文字を取り出す実験」をしている。 https://t.co/khjhSuDwWY https://t.co/BL8MLE0wUn」 / Twitter
- rokicki/type3search: Working on making Type 3 bitmap fonts used in dvips-generated Postscript generate searchable PDF files.
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Acrobatのルート証明書からもチェインしたデジタルID/証明書で、LetsEncrypt的なの出ると良いなぁ。 (AdobeはPDF用ルート証明書を独自にして、家元商売している印象が…) https://t.co/xhoeHR28MP」 / Twitter
- R. ShioyaさんはTwitterを使っています 「パワポやエクセルで作った図をクリップボード経由で PDF に変換できるツールを作りました.MetafileToEPS を使ってた事がある人にはわかると思いますが,要はあれの PDF 版です.Windows 上で TeX で論文を書いている人には便利かもしれません. https://t.co/mq9F7tCsc7 https://t.co/Xb6EOv2j2T」 / Twitter
- shioyadan/kuroko: Kuroko is a simple command line tool to convert EMF to PDF. You can download a pre-compiled binary from https://github.com/shioyadan/kuroko/releases.
- R. ShioyaさんはTwitterを使っています 「@KuniSuzaki 私も、スライドのサイズを図のサイズぴったりにしたパワポを作って PDF に印刷して… みたいな事をしていて毎回あまりに面倒なのでこれを作りました。今のところ API の制限で半透明なオブジェクトが崩れてしまうのですが、それ以外は多分きれいに PDF になってくれると思います。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「たまにある PDF でコピペすると文字が化けるやつ,どうも PDF ではフォントを埋め込むと文字コードが各フォント内固有の ID(グリフID)に変換されて格納される仕様で,その上で処理系がさぼってグリフID→元コードへの逆変換表を一緒に埋め込まなかった場合は復元不能で化ける・・・ ということらしい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PDFは表示・印刷用フォーマットなので、元情報が欠落しないはず、という仮定・期待に無理があるような、、、 (再加工用には別フォーマットで)」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@a4lg えええ…もしかして単純に同一グリフの複数コードのうち小さいのを返しちゃうんですか…それは邪悪な…」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「@tetsutalow 私が実際に遭遇したケースでは間に PDF が挟まったことがきっかけ……というのが大部分ですね (同一グリフ [字形] を康熙部首と CJK 統合漢字とで共有しているフォントの場合、PDF ネイティブのグリフ ID から文字列に戻す場合に混乱するのではないかと)。」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu 正論はそうでも事実としてPDF内のテキストはそれなりに検索性があることが求められているわけで、そこでグリフに引っ張られてコードが変わっちゃうのはやっぱり邪悪だと思っちゃいますね。特にこんな、それで検索することまずないでしょってコードに置き換えちゃうのは特に悪い挙動。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「PDFについて「仕様全てを把握してる人類少なすぎる」のも「仕様自体も割と終わってる」のも正しいと思うけれども全てを把握している必要はあんまりないです(composite fontのfont dictionaryを把握すれば大体全部理解したようなもの.)」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「アノテーションの類いを最終成果物に残すとなると、PDFよりWordの方がマシじゃんみたいになるけど、TeXからWord出力するとか狂気の沙汰というかできるんか?って感じだし、いや、そうなると、PDFじゃなくてもう全部HTMLの方がマシだし、ウェブでいいんじゃね?みたいになってくる。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「で、その流れなら、PDFは、ブラウザとプリンタを繋ぐためだけのただのプロトコル扱いになる。ん?これってPostScriptに先祖返りしてね?」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「話は変わるが、TIFF、PostScript、PDFという、アドビ(or その前身)という会社が生み出したそびえ立つ糞の山シリーズ、こいつらを処理するライブラリ群のセキュリティはマジでヤバい。libtiff/GhostScriptは一言で言うと使ってはならない。PDFならpdfium以外は使うな。」 / Twitter
- ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
- ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「このたび、弊社は韓国ePapyrus Inc.の完全子会社となりました。ePapyrusはPDF関連ソフトウェアを開発している会社で、Ghostscriptなどで有名な米国Artifex Softwareを傘下に持ちます。弊社もこのグループに加わることで会社の資本力、開発力の増強を図ります。今後ともよろしくお願いいたします。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「今まで、さんざんGhostpcriptの悪口とか言ってきたけど、同じグループになっても引き続き文句は言っていきます。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「MuPDFも最初に評価したけど、pdfiumが出てきてからというもの評価してないのでもう一度チェックせねばならぬ。あと、jbig2decとかもね。ライセンスの問題もあって似たようなモジュールが弊社内にもあるのです。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Ghostscriptの PDF解析器が新たにCで書き直される。従来バージョンはPostScriptで書かれており、これはPDFとPostScriptで描画モデルが同じだったためである。しかしPostScriptはすでに「死んだ言語」であり保守が難しいのに対して、PDFの仕様は変化しつづけている。 https://t.co/emL0qVGslh」 / Twitter
- Ghostscript : PDFI
Audio
その他
- 大語彙連続音声認識エンジン Julius
- GNU Compact Disc Input and Control Library (libcdio)
- 本の虫: PulseAudioの問題
- ネットワークオーディオと「OpenHome」 | 言の葉の穴
- ハイレゾ対応の音楽再生ソフト「TuneBrowser」v4、“OpenHome”に対応 ほか - ダイジェストニュース - 窓の杜
- アップル、iOS 11でFLAC形式のオーディオ再生をサポート。ほかにOpusや3Dサウンドにも対応へ - Engadget 日本版
- ドルビーラボラトリーズ - Wikipedia
- Dolby Laboratories - Wikipedia
- 「ハイレゾCD」登場、MQA×UHQCDでユニバーサルから100タイトル - AV Watch
- 【藤本健のDigital Audio Laboratory】WMAコーデックに使い道はあるか? オーディオ性能を画像比較した-AV Watch
- Google Developers Japan: Resonance Audio がオープンソースに
- オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む - .mjtの日記復帰計画
- 12-13 mp4sa - Qiita
- 3kbpsという低いビットレートでも高音質を実現するコーデック「Lyra」をGoogleが開発 - GIGAZINE
- Microsoft SatinオーディオコーデックはAIを使用してSkype Silkよりも優れたパフォーマンスを得た
- WFH で Audio Worklets の使用率が増えている話
- 音楽ファイルに適用された電子透かしがノイズを生み出している - GIGAZINE
- GoogleがDolbyに対抗するオープンでフリーなメディアフォーマットの導入を狙う「Project Cavier」を推し進めている - GIGAZINE
- MetaがAIを使って従来の10倍の圧縮率を実現した音声コーデック「EnCodec」を発表 | TEXAL
- AIを使った音声圧縮で従来の圧縮を超えた圧縮率と圧縮速度を「Encodec」が実現 - GIGAZINE
- macOS Ventura:Macで雨音などの環境音を再生する「バックグラウンドサウンド」が利用可能に | Mac OS X | Mac OTAKARA
Web
WAV
- WAV - Wikipedia
- WAV - Wikipedia
- Resource Interchange File Format - Wikipedia
- Resource Interchange File Format - Wikipedia
- Wave File Specifications
- WAVファイルフォーマットの読み込み | NecoTech
- wav ファイルフォーマット
- Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
- RIFF/WAVE形式
- AVI RIFF ファイルのリファレンス
- ビット毎秒 - Wikipedia
- パルス符号変調 - Wikipedia
Vorbis
- Vorbis - Wikipedia
- Vorbis - Wikipedia
- Ogg - Wikipedia
- Ogg - Wikipedia
- Xiph.org: Downloads
- Xiph.org - vorbis.git/summary
- libvorbis-1.3.5
- Xiph.org - ogg.git/summary
- libogg-1.3.2
Opus
- Opus (音声圧縮) - Wikipedia
- Opus (audio format) - Wikipedia, the free encyclopedia
- Opus Codec
- Development – Opus Codec
- Opus-1.1.2
- 無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE
- フリーのオーディオフォーマット「Opus」がIETF標準に、初の正式版実装もリリースされる | OSDN Magazine
- ロイヤリティーフリーのオーディオコーデック「Opus 1.2」リリース | OSDN Magazine
- Rockridgeさんのツイート: "Fx64:Opus 1.3のリリース候補版をサポート。 / “1487049 - Update opus to revision v1.3-rc-15-g38fca4a2” https://t.co/wuJ4GWNiKA"
- 【藤本健のDigital Audio Laboratory】MP3より高音質! YouTube/Discord採用の「Opus」コーデックを試した-AV Watch
- 【藤本健のDigital Audio Laboratory】「Opus」と「AAC」どっちが高音質? 周波数分析でコーデック比較した-AV Watch
FLAC
- FLAC - Wikipedia
- FLAC - Wikipedia
- FLAC - download
- Xiph.org - flac.git/summary
- FLAC-1.3.2
- 音質劣化のない可逆エンコーダ「FLAC」で音楽を楽しもう | OSDN Magazine
- 可逆圧縮オーディオコーデック「FLAC 1.3」リリース | OSDN Magazine
- 日記 (2016 年 7 月上旬)
MP3
- MP3 - Wikipedia
- MP3 - Wikipedia
- [日本工業規格(JIS)] |書誌詳細|国立国会図書館サーチ
- Mpeg Audio規格日本語版(JIS X 4323): みやじぃの徒然レコーディング(でないことがほとんど?)日記
- MP3のライセンス問題はその後どうなったのか : Timesteps
- 【藤本健のDigital Audio Laboratory】第553回:iTunesのVBRとCBR、どちらの音が良い? - AV Watch
- CBR,VBR,ABRの違いについて - 目的にあったエンコードモードを選ぶ - 道すがら講堂
- MP3の特許を持つTechnicolorの特許権が消滅 - GIGAZINE
- Fedora、MP3をフルサポートへ | スラド Linux
- 2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
- 「MP3が死んだ」という報道の本当の意味とは? - GIGAZINE
- とみながたけひろさんのツイート: "このツイートをするために久々に"takehiro.c"でぐぐったんですが、衝撃の事実が。LAMEがllvmのテストスートに含まれている関係で、世界中のgitレポジトリにtakehiro.cが含まれている…オープンソースは勝手に増殖するのを実感した。こええwww https://t.co/ScmjG3L19T"
- MP3ファイルを覗いてみる(基本型)
- mp3ファイルの構造
- MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) - Y-Lab. Electronics
- ID3v2 仕様書日本語訳 | takaaki.info
- デジタルオーディオの仕組み - 音声圧縮の原理 MP3, AAC, ATRAC, etc. - white croquis
- MP3の仕様
- technosaurus/PDMP3: Public domain mp3 decoder
- lieff/minimp3: Minimalistic MP3 decoder single header library
libsndfile
- libsndfile-1.0.28
- The libsndfile API
- 雑メモ: libsndfile を使ってみた | anobota
- [vDSP][信号処理]オーディオ・音声分析への道3 Libsndfile - Qiita
HD Audio
- HD Audioとは|Intel HD Audio|High Definition Audio - 意味/解説/説明/定義 : IT用語辞典
- High Definition Audio - Wikipedia
- Intel High Definition Audio - Wikipedia, the free encyclopedia
- Intel High Definition Audio - OSDev Wiki
- PC Speaker - OSDev Wiki
- High Definition Audio Specification
- Customizing HD Audio Driver Volume Settings (Windows Drivers)
- 藤本健のDigital Audio Laboratory
- https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
- Advanced Linux Sound Architecture - ArchWiki
- Advanced Linux Sound Architecture/トラブルシューティング - ArchWiki
- Windows-driver-samples/audio/sysvad at master · Microsoft/Windows-driver-samples
- 藤本健のDigital Audio Laboratory
- Intel、次世代PCオーディオ規格「High Definition Audio」
- コグノスケ
- 藤本健のDigital Audio Laboratory
- OSDev.org • View topic - Intel High Definition Audio problem. [SOLVED]
- OSDev.org • View topic - Intel HD Audio - DMA buffers not working
Audio Codec 97
- Audio Codec 97 - Wikipedia
- AC'97 - Wikipedia
Audible
- Audible - Wikipedia
AIFF
- AIFF - Wikipedia
- Audio Interchange File Format - Wikipedia
Hi-Fi
Apple Lossless
- Apple、iPodなどで採用されている音声可逆圧縮コーデック「Apple Lossless」をApache Licenseで公開 | OSDN Magazine
- Apple Lossless - Wikipedia
- Apple Lossless - Wikipedia
- macosforge/alac: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
- Apple Lossless Audio Codec
- Apple Musicがより高音質なHi-Fiをサポートする可能性 - GIGAZINE
- Spotify HiFiについて知っておくべき5つのこと - Spotify Japan — For the Record
- ドルビーアトモス
- ドルビーオーディオ
- ロスレスとは - コトバンク
AAC
- Via Licensing、High-Efficeincy AACのライセンス料を決定
- 【藤本健のDigital Audio Laboratory】「Opus」と「AAC」どっちが高音質? 周波数分析でコーデック比較した-AV Watch
- Advanced Audio Coding (AAC) - Via Corp
- License Fees - Via Corp
- AAC License Fees – Standard Rate and Alternative Rate Structures - Via Corp
- FAQ - the Alternative Rate Structure - Via Corp
- AAC - Wikipedia
- Advanced Audio Coding - Wikipedia
- HE-AAC - Wikipedia
- High-Efficiency Advanced Audio Coding - Wikipedia
Lyra V2, SoundStream
- VさんはTwitterを使っています: 「Google の 6 kbps で圧倒的高音質を実現する Lyra V2 について自分の考えをつらつら書いてみる。」 / Twitter
- VさんはTwitterを使っています: 「https://t.co/cCT3o6kvaT」 / Twitter
- Lyra V2 - a better, faster, and more versatile speech codec | Google Open Source Blog
- VさんはTwitterを使っています: 「音質は聞いてみた感じかなり良い。テレフォニー(音声通話)に特化しているだけあって 6 kbps で充分な音質を実現している。」 / Twitter
- VさんはTwitterを使っています: 「では、使う場合の弊害を考える。まずはブラウザで再生するには Wasm が必要になる。さらに録音するにはコンテナーが対応していないので WebM や MP4 で無理矢理対応することになる。ただ再生できる仕組みはない。」 / Twitter
- VさんはTwitterを使っています: 「さらに WebRTC で利用する場合は libwebrtc 側に手を入れる必要があり、かつWasm となるが残念ながら WebRTC は追加コーデックの仕組みをブラウザでは提供していないので厳しい。」 / Twitter
- VさんはTwitterを使っています: 「そうなると RTP over WebTransport で AV1/Lyra V2 という構成で実現するのが現実的になるが、今この仕組みをしっかり作り込んでる企業はあまりいない。」 / Twitter
- VさんはTwitterを使っています: 「そうなるとブラウザではなくアプリに向いてるということになる。再生機能も完全自前で実現すればよい。むしろブラウザでの利用は Wasm が安定して動くまでは様子見と考えてイイ。」 / Twitter
- VさんはTwitterを使っています: 「自分が思いつくようととしては、スマホアプリやゲームなどでのボイチャ機能に使うのが最適解だと思われる。むしろこの点では Opus を利用するメリットがなくなるくらいの衝撃が Lyra V2 にはある。」 / Twitter
- VさんはTwitterを使っています: 「6 kbps という帯域で高音質を実現できるということは、FEC などのエラー訂正技術を使うことでパケロスにも強く出来る。利用帯域が減るというのはいいことしかない。Lyra V2 本当に期待できるコーデックだと思う。APL v2 というライセンスなのも強い。」 / Twitter
- VさんはTwitterを使っています: 「誤解しないで欲しいのが Lyra V2 はあくまで音声通話に特化しているということで、音楽配信などには向いていない。音楽配信は Lyra V2 が参考にしたという SoundStream が特化しているとのこと。https://t.co/SArlqcXxqB」 / Twitter
- Google AI Blog: SoundStream: An End-to-End Neural Audio Codec
- VさんはTwitterを使っています: 「SoundStream にあるサンプルを聞くと、音楽が 3 kbps で充分聴けるモノで提供できる衝撃を受ける。本当に凄い。機械学習はさっぱりわからんがこの技術は本当にブレイクスルーだと思う。」 / Twitter
MPEG-4 SP
- MPEG-4 - Wikipedia
- MPEG-4 - Wikipedia
AMR-WB+
- AMR-WB+ - Wikipedia
- Extended Adaptive Multi-Rate – Wideband - Wikipedia
AMR-WB
- AMR-WB - Wikipedia
- Adaptive Multi-Rate Wideband - Wikipedia
AMR
- Adaptive Multi-Rate - Wikipedia
- Adaptive Multi-Rate audio codec - Wikipedia
OpenAL
- OpenAL: Cross Platform 3D Audio
- OpenAL - Wikipedia
- OpenAL - Wikipedia
- openAL入門 - 1.音を鳴らそう! - すこしふしぎ.
- NPE.blog: OpenAL
ドルビーデジタル(AC-3)
- ドルビーデジタル - Wikipedia
- ついにドルビーデジタル(AC-3)の特許権が消滅 - GIGAZINE
- AC-3(ドルビーデジタル)の特許が失効 | スラド YRO
OSDN
- オープンソースのDAWソフトウェア「Ardour 5.9」リリース | OSDN Magazine
- KDEの新プロジェクト「Elisa Music Player」が早期版をリリース | OSDN Magazine
POSTD
- オーディオアプリ開発でありがちな4つの間違い | プログラミング | POSTD
GitHub
- C* Music Player
- cmus/cmus: Small, fast and powerful console music player for Unix-like operating systems.
- pytorch/audio: simple audio I/O for pytorch
- Command-line cloud music player for Linux.
- tizonia/tizonia-openmax-il: Command-line music player for Linux with Spotify, Google Play Music, YouTube, SoundCloud, Dirble and Deezer support.
- zevv/bucklespring: Nostalgia bucklespring keyboard sound
- keijiro/Lasp: Low-latency Audio Signal Processing plugin for Unity
- みむみむ.net - Software
- mimura1133/mm_STEP_M: STEP (タグエディタ) の派生版
Twitter
- 椚座 くにゅくにゅ/// 淳介さんのツイート: "G.729(VoIPなどで使われている音声圧縮アルゴリズム)に関して,関連していた特許のほとんどが存続期間満了となったことにより,2017年1月からロイアリティフリーになったと,パテントプールからの発表が https://t.co/Boly0QfWAL"
- SiproLAB Telecom - patent pool creation and management for standardized telecommunication technologies
- Rockridgeさんのツイート: "Fx54:デスクトップ版でサラウンド音声の再生をサポート。参照:https://t.co/tNwp96No0Z https://t.co/wV46pjQgkU / “1321502 – Support audio 5.1 on …” https://t.co/Qe9p0Z24fa"
- Makoto Kato ︎︎さんはTwitterを使っています: 「Linuxの音声周りは伊勢神宮の式年遷宮 みたいに抜本的に変わるけど (今pipewire)、いろいろregressionだらけです。その結果zoomのミーティングに耐えられなくて困ってる」 / Twitter
- はるかみ☆ (まさきはるか)さんはTwitterを使っています: 「前解説したけど、PipewireはPulseAudioを置き換えられるものじゃないから、「音声は今Pipewire」は受け入れられないわ PipeWireは音声機能の大部分をPulseAudioに頼ってるし、単体で音声機能を賄うには機能が足りないだけでなく、考えてないことが多すぎる」 / Twitter
- はるかみ☆ (まさきはるか)さんはTwitterを使っています: 「Pipewireが音声機能として「望ましい」と感じられ、なおかつ「PulseAudioの代替たる」と言えるのは、あくまでオーディオライブラリとしての部分、つまりはプログラムから見た音声機能の話だけであって、PulseAudioにおけるpulseライブラリなんて重要じゃないどころか、いっそなくたって成立するもの」 / Twitter
- はるかみ☆ (まさきはるか)さんはTwitterを使っています: 「音声ライブラリを使う大部分の動機である音声出力に関してはもっと簡単なlibvlcなりlibmpvなりGstreamerなりを使うほうがずっと簡単なのでlibpulseを使う動機がとても乏しい。 音声入力に関しても単なるストリームでいいならlibffmpegで良いし」 / Twitter
- はるかみ☆ (まさきはるか)さんはTwitterを使っています: 「libffmpegを叩きたくないんだ!ってなれば(すごくまっとうな理由)libpulseを使いたくなるかもしれないけど、OpenALとかSDLとか使うほうが建設的なので、なおさらlibpulseは使われない」 / Twitter
- はるかみ☆ (まさきはるか)さんはTwitterを使っています: 「様々な側面から見ればpipewireを求める動機自体は存在しているんだけど、それによって切り捨てられるものはX11からWayland以上の問題なので、PipewireがPulseAudioを置き換える未来は決してこないと私は思っているよ」 / Twitter
- 七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
- とみながたけひろさんはTwitterを使っています 「よくある誤解 mp3って周波数領域で信号記録してるんでしょ?1kHzの正弦波とか簡単に作れないの? 正弦波を周波数解析して特定の周波数の信号一つと解析できるようなスーパーテクノロジーはない(と言っても良いぐらい難しい)しそんなものはmp3では使われていない」 / Twitter
- FIRシステムにおけるリサンプリングの基礎づけ - Qiita
- 音響科学 e-Learning教材
- Apple Musicからダウンロードした音楽に存在する「空白の500KB」の正体とは? - GIGAZINE
- ISO/IEC base media file format - Wikipedia
Video
その他
- ASCII.jp:まずは動画の構造について教えるぜ!【コーデック編】 (1/4)|エンコードテクニック虎の巻
- Stagefright入門
- VISIO-OpenMAX.vsd
- Intel Quick Sync Video(QSV)を使ってみる ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
- 日本初となるUltra HD Blu-ray市販ソフトは夜景 | スラド
- ASCII.jp:【動画比較】AMDのFluid Motionならアニメが60fpsでヌルヌル動く!! (1/2)|画面が滑らかになる! AMDの最新技術はココがスゴイ
- 動画の「テレシネ」「逆テレシネ」の意味と違い
- IDTのフレーム速度変換ICは動き検出・補正・フレーム補間のアルゴリズムがカギ - セミコンポータル
- Apple Safari、YouTubeの4K動画再生非対応に。YouTube、4K VP9エンコードのみに切り替え - PRONEWS
- 第700回:タイムラプス とは - ケータイ Watch Watch
- オープンソースのマルチメディアフレームワーク「GStreamer 1.12」が公開 | OSDN Magazine
- Windows 10プレビュー版、HDR映像のキャリブレーション機能を搭載 - PC Watch
- Windows 10 RS5、屋外など非常に明るい場所で動画の明るさを自動調整 - PC Watch
- デジタルでなくフィルムで撮影される『スター・ウォーズ』、その理由とは|WIRED.jp
- 動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita
- Cinavia - Wikipedia
- Cinavia - Wikipedia
- WebCodecs と WebTransport でビデオチャット | blog.jxck.io
- Intent to Implement WebCodecs - Google グループ
- H.Sup18 : Signalling, backward compatibility and display adaptation for HDR/WCG video coding
- H.Sup19 : Usage of video signal type code points
- デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
- 高品質な動画のスムーズな配信を実現する技術とは? - GIGAZINE
- AppleがDRM関連の技術特許を侵害しているとして約340億円の支払いを命じられる - GIGAZINE
- 動画をデジタルで扱うための基本知識まとめ、映像や音声はどうやってPCで処理されているのか? - GIGAZINE
- FacebookのQUICを活用したライブ動画用プロトコルRUSHについて - ASnoKaze blog
- [Tech Blog] Design of video player in DOOH
- YouTubeやTwitchで人気のライブ配信を支える技術とは? - GIGAZINE
MS
- DirectX Video Acceleration - Wikipedia
- DirectX Video Acceleration - Wikipedia
- DXVA の構造体
- MediaSinkでDXVA
- 便利機能 >ハードウェアデコーディング
- Media Foundation - Wikipedia
- Media Foundation - Wikipedia
- つまみぐいプログラミング Media Foundation でカメラ画像を取得
- XAudio2とMedia FoundationでMP3/WMA再生 - syghの新フラグメント置き場
- MediaFoundation --- 動画の読み込み - 何でもプログラミング
- 5時間でMedia Foundation Interfacesをとりあえず使いこなしてアプリに実装する心得 - notes5375
- MediaFoundationを使う (1) MediaFoundationの特徴 - プログラマのつれづれなるままに
- Media Foundationで再生する動画(wmv)をDirect3D 9 surface上で表示したい
- チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
- MediaFoundationでID3D11Texture2Dに動画のフレームを読み込む 覚書β - 昏の花
- XAudio2 Introduction (Windows)
- XAudio2 移行ガイド
VA-API
ffmpeg
- 今日は遊ぶかーと思って, ffmpeg とか, VAAPI とか H264 とか MPEG2 とか見てた. slices, macroblocks,…
- HWAccelIntro – FFmpeg
- lu-zero/mfx_dispatch: Intel media sdk dispatcher
- qsv 対応の ffmpeg をつくる | ニコラボ
- 俺の日記帳 第二冊目
- LinuxでIntel QSVを使ったH.264ハードウェアエンコード(CentOS7+ffmpeg) | Kung Noi Blog
- how to run ffmpeg qsv decoder?
- 謎のC言語ブログ: FFMPEG/libavcodec のインストール
- 謎のC言語ブログ: libavcodec による動画のサムネイル作成
- ubuntuでessentiaを使う - Qiita
- こたつつきみかん » libavcodec / libavformat を使ってみる 1
- www.lifeaether.com/overtaker/blog/wp-content/uploads/2010/04/main.c
- FFmpeg
- FFmpeg ライブラリーを使った動画のデコード(C++ソースコード) | RVF/RC45 blog
- ffmpegの使い方:tech.ckme.co.jp
- FFmpeg APIで、さまざまな動画を操る - 前編 (1/5):CodeZine(コードジン)
- FFmpeg APIで、さまざまな動画を操る - 後編 (1/5):CodeZine(コードジン)
- FFmpeg: VA API Decoding
- FFmpeg: libavcodec/api-example.c Source File
- FFmpeg: doc/examples/decoding_encoding.c
- Fedora23 : Intel 構成での VDPAU/VA-API による動画再生支援とか なんとか ネット。
libva
- Source Code | 01.org
- VA (Video Acceleration) API
- [Libva] H.264 decoder simple example
- The Libva Archives
- gallium3d-xds2007.pdf
- 01org/libyami: Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
- gbeauchesne/hwdecode-demos: Test programs to address various HW video decoding APIs like Broadcom Crystal HD, VA-API, VDPAU and XvBA
- libva-1.3.1
- MesaLib-10.2.7
- mesa3d/mesa: Mesa 3D graphics library (mirror; no pull requests here please)
Mesa
SCons
- SCons 2.3.6
- https://raw.githubusercontent.com/shive/scons-test/master/test001-forwin/Makefile
- Python Extension Packages for Windows - Christoph Gohlke
- SCons - Wikipedia
- SCons - Wikipedia, the free encyclopedia
TGSI
- TGSI — Gallium 0.4 documentation
- A Very Early Gallium3D TGSI Back-End For LLVM - Phoronix
- Gallium3D: TGSI
- Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h File Reference
- Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h Source File
- tgsi-specification.pdf
- The Mesa 3D Graphics Library
- Mesa FAQ
- 第51回 X,MesaそしてLLVM[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- Compiling and Installing
- Mesa 3D - Wikipedia
- Mesa (computer graphics) - Wikipedia, the free encyclopedia
- Off-screen Rendering
- Intel Is Making A High-Performance Software Rasterizer For Mesa - Phoronix
- FadisさんはTwitterを使っています: "Intel、Mesaに新しいソフトウェアラスタライザOpenSWRを実装。GPUの無い環境でCPUを使ってOpenGLを動かすための物で、従来からあったLLVMpipeより格段に速いとのこと https://t.co/JFW2Ldte8j"
- OpenGL 3.1 APIを実装した「Mesa 9.2」リリース | OSDN Magazine
- Mesa3D のレンダラーの切り替え
- Fadisさんのツイート: "Mesaからi915(2004年頃のIntel GPU)とr300g(RADEON9800とか)を外そうぜ、という議論がなされている模様。これらの為に今日ほぼ確実に備わっているGPUの機能の有無を調べて分岐が必要になっているのが理由 https://t.co/Nh4c3yArSI"
- Mesa Developers Discuss Branching Off Old Drivers, Including R300g & i915 - Phoronix
- libva drivers
- libdrm-2.4.91
- Index of /libdrm
- DRM
- すらりん日記 » Blog Archive » DRM/KMS についてメモ|No:4291|すらりん日記
- Xorg Libraries
- Fontconfig-2.13.0
- libxcb-1.13
- libXau-1.0.8
- xorgproto-2018.4
- util-macros-1.19.2
- xcb-proto-1.13
- Introduction to Xorg-7
Wikipedia
- Graphics address remapping table - Wikipedia, the free encyclopedia
- Video Acceleration API - Wikipedia, the free encyclopedia
- Intel Quick Sync Video - Wikipedia, the free encyclopedia
- Intel HD and Iris Graphics - Wikipedia, the free encyclopedia
- ebuild - Wikipedia
- Direct Rendering Infrastructure - Wikipedia
- Direct Rendering Manager - Wikipedia
- Free and open-source graphics device driver - Wikipedia
- Mode setting - Wikipedia
- VDPAU - Wikipedia
- Nvidia PureVideo - Wikipedia
- Nvidia NVENC - Wikipedia
- Video Coding Engine - Wikipedia
- Unified Video Decoder - Wikipedia
BSD
- FreeBSD port overview
- Intel_GPU - FreeBSD Wiki
- Graphics - FreeBSD Wiki
- Use linuxkpi in DRM - FreeBSD Wiki
- freebsd/freebsd-base-graphics at drm-next-3.9
- 「NetBSD 7.0」リリース、Luaカーネルスクリプティングをサポート | OSDN Magazine
- drm(7)
- Linux KPI-Based DRM Modules Now Working On FreeBSD 11 - Phoronix
- freedesktop/mesa-drm: Direct Rendering Manager headers and kernel modules
- Graphics drivers and the BSDs [LWN.net]
- FreeBSD kernel DRM device code: Main Page
- drm(4) - NetBSD Manual Pages
- DragonFly On-Line Manual Pages : drm(4)
- FreeBSD DRI FAQ
- XFree86-4 Direct Rendering on FreeBSD
- Tips: FreeBSD DRI
- LinuxでGPUの動画再生支援を用いる(主にDebian/Ubuntu向け) - kakurasan
- VA-API - ArchWiki
- vaapi
- Index of /software/vaapi
- media-libs/intel-hybrid-driver/intel-hybrid-driver-1.0.1.ebuild - chromiumos/overlays/chromiumos-overlay - Git at Google
- hiro99ma blog: [rpi]画面に何か出してみよう (1)
- 第7章 Linuxカーネル仕様
- ubuntuデスクトップ環境設定
- Libva API Guide (master branch): Video Acceleration (VA) API
- B-2.pdf
- util_vaapi.c - chromiumos/platform/avtest_label_detect - Git at Google
- 【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】
- rigayaの日記兼メモ帳 実験: QSVでデコードしてみると?
- 「X.Org Server 1.17」リリース、Glamorの強化や汎用ドライバの統合などが行われる | OSDN Magazine
- Nouveau - ArchWiki
- VA-API - Phoronix
- intel/media-driver
- gnif/LookingGlass: An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
Web
Theora
- Theora.org :: downloads - Theora, video for everyone
- Xiph.org - theora.git/summary
- Theora - Wikipedia
- Theora - Wikipedia
- libtheora-1.1.1
WebM
Matroska
EBML
- EBML ‐ 通信用語の基礎知識
- Extensible Binary Meta Language - Wikipedia
- libEBML by the Matroska team
- EBML RFC (Draft) | Matroska
- Matroska - Wikipedia
- Matroska - Wikipedia, the free encyclopedia
- Matroska形式ファイルを作成するためのツールセット「MKVToolNix 9.0」リリース | OSDN Magazine
- VさんはTwitterを使っています: "vi/mkvparse: Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv https://t.co/qLgG57Hr1X MKV を XML にするのこれ便利"
- klaxa/mkvserver_mk2: The streaming solution to end all streaming problems
- 「MKVToolNix v13.0.0」リリース | OSDN Magazine
- The WebM Project | Welcome to the WebM Project
- The WebM Project | Developer Overview
- webmproject/libvpx
- WebM - Wikipedia
- WebM - Wikipedia, the free encyclopedia
- Rockridgeさんのツイート: "Fx48:Cues要素がサポートされていない(規格外の)WebM形式動画でシークができない問題を修正。 / “657791 – Seeking in WebM files with no Cues element is not …” https://t.co/vHRfj2ztx5"
- libvpx - Wikipedia
- libvpx-1.5.0
- yasm-1.3.0
- Which-2.21 and Alternatives
- Rockridgeさんのツイート: "Fx53:アルファチャンネル付きWebM動画をサポート。参照:https://t.co/eVMoQbwb6C / “944117 – Implement support for WebM Alpha” https://t.co/NFYvRKd3tM"
- Windows 10の「Google Chrome」でHDRビデオの再生がサポートされるように - 窓の杜
- Android P DP1: WiFi-RTT、カットアウト、複数のカメラ、アニメーションGIF、NNAPI 1.1
VP8
- VP8 - Wikipedia
- VP8 - Wikipedia
VP9
- Vさんのツイート: ""リアルタイムVP9エンコーディング用のハードウェアプラットフォームとしてFPGAを選択" https://t.co/6Wb1QF2Vqt まじか Twitch 攻めてるな ... 。AWS FPGA サーバとか使ってるんだろうか。"
- How VP9 delivers value for Twitch’s esports live streaming
- fg118942さんのツイート: "VP9のリアルタイム1080p60エンコードとか出来るのか しかもx264より画質良いとか 将来的にはAV1でも出来るようになるのかな"
- fg118942さんのツイート: "NGCodec VP9 Encoder - V01 https://t.co/Kr9JfxliOe これかな?"
- Vさんのツイート: "多分それです。AWS F1 インスタンスにチュートリアルはそれを使うらしいです。… "
- VP9 - Wikipedia
- VP9 - Wikipedia
- Microsoft、ブラウザEdgeでGoogleのWebMをサポート ~VP9とOpusの動画/音声コーデックを利用可能に - PC Watch
- Announcing VP9 support coming to Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
AV1
特許問題
- yohさんのツイート: "https://t.co/l3XIGMF2VK https://t.co/n0M2IljRxi "AV1 License Terms" ファー"
- Sisvel | We protect ideas - Sisvel announces the launch of its Video Coding Licensing Platform
- Sisvel | We protect ideas - Wi-Fi - Introduction
- yohさんのツイート: "少なくとも名乗りを上げてきた JVCKENWOOD, NTT, Orange, Philips, Toshiba IPR Solutions についてはAV1 AOM側との戦いが始まりそうだな... (VP9はGoogle単独だから割とどうでも良い)AOM側のライセンス条件に従うと同企業系からはAV1搭載絶望かもしらんな..."
- Vさんのツイート: ""confirming there will be no content royalties but not ruling out royalties on software-based encoding." ソフトウェアエンコーダーからのロイヤリティ回収が目的ってことかな。"
- yohさんのツイート: "字義通り解釈すると、正直もう少し事態は悪い気がしていて https://t.co/n0M2IljRxi コンシューマデバイス=デコード能力機器を対象とするようですね WebRTCのようなEnc/Decを要する通信ではなく、一方向動画配信先のWebブラウザも対象に含まれますね… https://t.co/roq8paoPcp"
- yohさんのツイート: "SISVEL側から公開されているAV1 Licence Termをよむ限りAOM陣営との全面衝突不可避にしか見えないんだけど これまじで正面衝突するつもりなのか..."
- yohさんのツイート: "AOM側の(どっかの)資料には「特許係争を戦っていくだけのカネは積んである」とあったので期待はできると思いますが 正直なところ技術的停滞は避けられない予感がします あとは政治力とか市場要因とかいろいろと...… "
- Vさんのツイート: "そうだ Patent Retaliation (特許報復) だ。まだ訴えられてはいないから関係ないのかな。"
- yohさんのツイート: "https://t.co/URfxPiRuob この時と変わってなければ(そしてたぶん変わってない) AV1利用者の誰かが訴えられた時点で、訴訟側への利用許諾解除を発動することになっていますね。問題があるとすれば、訴訟側が"実際には使っていない"場合はこの枠組みではさほど効力がないということでしょうね。… https://t.co/SUC60Kii1d"
- AOM AV1コーデックと特許管理 - Qiita
- yohさんのツイート: "と思います。戦争までの最短シナリオは「SISVEL側がAV1コーデック利用者の誰かを訴える」→「AOM側がSISVEL側(にいるパテント行使企業)への契約解除かつ対抗訴訟開始」→AOM陣営企業 vs SISVEL陣営企業 なのかなと...… "
- dynamis (でゅなみす)さんのツイート: "Googleが特許ライセンスフリーだと主張してきたVP9とそれをベースにしたAV1について遂に特許プール作ったからみんなランセンス料払えよって言い始めた。 特許フリーでないことを認めるか、該当特許を全て回避するなり買い取るなり無効を訴えるなりの戦いが始まるね https://t.co/T3MqXLMaMR"
- ビデオ符号化特許ライセンスプラットフォームを開始:時事ドットコム
- dynamis (でゅなみす)さんのツイート: "2009年にGoogleがOn2買収してVP7の後継を無償提供する宣言してから10年、H264などより高品質コーデックとして共同開発したAV1の仕様が固まりハードウェア実装も始まったタイミング。 10年間黙ってたけど実はその技術の一部は俺達5社が特許持ってるから使うなら金払えって言い出したところですね。"
- dynamis (でゅなみす)さんのツイート: "10年間黙ってて金になりそうなタイミングを見計らっていた5社はJVC KENWOOD, Philips, NTT, Orange, Toshiba IPR Solutionsと三社が日本企業。因みに日本からもSOCIONEXTなどはAoMに加盟して特許フリー動画コーデック支援側に回っており日本の特許保有者は皆同じというわけではない。"
- dynamis (でゅなみす)さんのツイート: "VP7からVP9はあくまでもGoogleが一社で勝手に作ってるコーデック状態だったしハードウェアサポート等も少なく特許あるよって言えば回避する実装に変更された。 AV1ではIntel, Nvidiaなどハード実装側も加わり仕様確定させて変更しにくくなったタイミングを狙ってきたのは明らかなのよね。"
- dynamis (でゅなみす)さんのツイート: "日本企業が多いのは単に旧来のマルチメディア企業と最近のネット企業という異なる時代の対立の構図になると日本が技術開発に強かった時代があったからとか、Googleなどと争う意志を持てる企業だからとか、主要ビジネスの成長が見込めず既存知財は何としても有効活用したいとかそんなところ?"
- dynamis (でゅなみす)さんのツイート: "一番男前な対応はIntelなどSoCベンダー側がハードにかかる部分は全負担、ソフト側はH264でCiscoがやったようにGoogleなどがダウンロード可能なバイナリーを全CPUとOS向け(多分iOS以外)に配布して肩代わり。 一番乱暴なのは特許無効訴訟で全面戦争しつつ実装側の変更を進めて実質無効化で黙殺。"
- Makoto Kato ︎︎さんのツイート: "ソフトウェア特許は好きではないけど。 AV1の件で脊髄反射のように叩いてる人は、自由だと(提供会社が)言っているものがホントに問題ないと信じてるのかなぁと。個人的には裁判にならないと実際の真実なんてわからないとしか言えないでしょ。お互いに言い分あるだろうし"
- Makoto Kato ︎︎さんのツイート: "言い換えれば、めんどくさいから検索会社がすべての特許買えばいいんじゃないの?お金あるでしょと思ってる"
- 動画圧縮技術「AV1」、知財管理のシズベルが特許リスト公開--オープンな方針に逆行 - CNET Japan
Qiita
- AV1 specification を読む - Qiita
- AOM AV1コーデックと特許管理 - Qiita
- AV1コーデックメモ - Qiita
Wikipedia
- Alliance for Open Media - Wikipedia, the free encyclopedia
- AOMedia Video 1 - Wikipedia
- AOMedia Video 1 - Wikipedia
@rockridge07
- RockridgeさんはTwitterを使っています: "GoogleのVP9、CiscoのThor、MozillaのDaalaの各技術は、Alliance for Open Media(AOM)が開発するAV1コーデックに統合される。今後MozillaはAV1の開発に力を入れていくが、… https://t.co/16124oJfSr"
- Rockridgeさんのツイート: "Mozillaが開発に参加するAV1コーデックは、VP9をベースに他のコーデックの技術を取り入れて改良を重ねたもの。解析ツール(AV1 Bitstream Analyzer)をEmscriptenにより変換して、Webブラウザ上で… https://t.co/etyrceHnDd"
- Rockridgeさんのツイート: "AV1コーデックの解析ツール(AV1 Bitstream Analyzer)は、C言語からJavaScriptに変換されることでパフォーマンスの低下が生じる。だが、WebAssemblyに変換されれば問題はかなり解消されそうだ。 https://t.co/LGNXzzJfZn"
- Rockridgeさんのツイート: "Fx55:AOMedia Video 1(AV1)形式の動画再生をサポート。 / “1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format” https://t.co/e8t9yVybrn"
- 1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format
- Rockridgeさんのツイート: "Alliance for Open Media(AOM)に参加するMozillaとBitmovinが、AV1形式の動画とプレイヤーのデモを公開。Firefox Nightlyで閲覧可能。AV1はVP9やH.265/HEVCより25… https://t.co/KXxTpyGlHk"
- AOM Analyzer
- Vさんのツイート: "AV1 ビルドして、変換してみたけど恐ろしく遅い。全然コード読めてないのでなんともだが、リアルタイム向けの仕様とかあるんだろうか。"
- Vさんのツイート: "今のところ AV1 は CPU 変換は現実的ではないというところまで把握した。"
- Vさんのツイート: "WebRTC にのっていくのは早く行けるだろうけど、バッチで変換したりする場合はちょっと考える必要がある。"
- Vさんのツイート: "あと Chrome が AV1 をいつ実装するのか、というのも追いかけられてないな。Firefox は何故か頑張ってる。"
- Rockridgeさんのツイート: "AppleがAlliance for Open Mediaに加入。SafariがAV1をサポートする可能性が高まってきた。 / “Apple joins alliance to shrink your online videos…” https://t.co/QvTG9zNl9X"
- Rockridgeさんのツイート: "AppleがAV1フォーマットをサポートすれば、ロイヤリティフリーな動画コーデックが広く普及することになる。Mozillaは約11年前から特許による負担のないメディアを勝ち取るべく闘ってきており、AV1の普及は勝利を意味する。 https://t.co/G7Gi42rUy3"
- Rockridgeさんのツイート: "AV1は動画だけでなく静止画にも使え、同一サイズであればJPEGよりもかなり高画質となる。JPEGに取って代わるのは無理でも、WebPの後継フォーマットにはなれるかもしれない。 / “Photo format from Goog…” https://t.co/73dkRja6y0"
- Rockridgeさんのツイート: "ISO/IECのワーキンググループであるMPEG、その議長であるLeonardo Chiariglione氏が、このまま手を拱いているとHEVCがAV1に負けてビジネスモデルが崩壊すると危機感をあらわにしている。 / “A cr…” https://t.co/8GITGNF9e7"
- Rockridgeさんのツイート: "FacebookがAV1形式の動画をサポートすると発表。ただし2018年4月24日現在、Chrome Canaryでフラグを有効化しなければならず、Firefox Nightlyも未対応。参照:… https://t.co/Dl2IyXnz31"
- Rockridgeさんのツイート: "AV1動画フォーマットでは、Chroma from Luma(CfL)と呼ばれる技法を導入し、キーフレームの圧縮に成功したという。 / “next generation video: Introducing AV1” https://t.co/NBKVcWHcGK"
- Rockridgeさんのツイート: "AV1動画フォーマットでは、Constrained Directional Enhancement Filterと呼ばれる技法を導入して、ブロックノイズの低減に成功したという。 / “AV1: next generation v…” https://t.co/WCaZVg4Qxj"
- Rockridgeさんのツイート: "MozillaがAV1動画フォーマットを推す理由は2つ。1つはロイヤリティフリーであること、もう1つは競合より約30%も圧縮率が高いことである。 / “Modern codecs like AV1 can bring bette…” https://t.co/MpAeOVLEQa"
- Rockridgeさんのツイート: "Fx63:AV1コーデックのバージョン1.0.0を実装した。media.av1.enabledの設定をtrueにすると有効化される。 / “1445683 - Update aom” https://t.co/zIxTOiStZf"
- Rockridgeさんのツイート: "AV1動画フォーマットの特徴を解説したスライド(PDF)。参照:https://t.co/zAXPAoKuqo / “Into the Depths: The Technical Details Behind AV1” https://t.co/BIcZnD7QKP"
- Into the Depths: The Technical Details Behind AV1 - Mozilla Hacks - the Web developer blog
- 1_02_Egge.pdf
- Rockridgeさんのツイート: "Fx65:Windows版で、AV1形式の動画再生がデフォルト有効化。 / “1452146 - Flip AV1 pref (media.av1.enabled) for Windows to true” https://t.co/boBODEvo7e"
@fg118942
- fg118942さんのツイート: "これ注目されてるから速度も書いとく Ryzen 2400Gでhttps://t.co/OXfUoKhqhT のChimera-AV1-8bit-1920x1080-6736kbps.ivfのデコードで131fps出る libaomは66fpsなので倍近く早い… https://t.co/QsWUpPWIpo"
- S3 Bucket Listing Generator
- fg118942さんのツイート: "dav1dにAVX2の最適化がいくつか入ったらあっという間にlibaomよりデコード速度が速くなった。 シングルスレッドでもマルチスレッドでも。"
- fg118942さんのツイート: "Video kodek AV1 nahradí nová nekompatibilní verze AV1.1.0 - https://t.co/jJnLNjQPSS https://t.co/V2XzRFPUrz AV1また仕様変わるのか グダグダやな"
- fg118942さんのツイート: "6月に仕様が決まったあとに改善点が指摘されてたけど既に企業が運用を開始してるから変更を受け入れられないと突っぱねてたのに今になって改善を取り入れる感じか?"
- OpenVisualCloud/SVT-AV1: Welcome to the GitHub repo for the SVT-AV1 encoder! To see a list of feature request and view what is planned for the SVT-AV1 encoder, visit our Trello page: http://bit.ly/SVT-AV1 Help us grow the community by subscribing to our SVT-AV1 mailing list! http://bit.ly/svt-av1-mailing
- Vさんのツイート: "H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi https://t.co/JnENcRU9OG 2018 年 8 月の記事 VP9/AV1 が酷評されてた。結局設定次第なんだろうな、自分の印象だと実時間エンコードで VP9 はとてもキレイという印象だし。"
- H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi
- fg118942さんのツイート: "VP9はマルチスレッドでCPUあんまり使ってくれないから個人ユーザーには使い勝手が悪いなとは確かに思う YouTubeは動画を細かく分割して並列でエンコードしてるみたいだから問題ないんだろうけど https://t.co/MBYkP3KJ9w"
- fg118942さんのツイート: "あとVP9にしろAV1にしろ心理的画質の調整はx264やx265ほど熱心にされてない印象だからベンチマークのスコアでは上回っていても目視だと負けることもあるかもしれないなあ"
- fg118942さんのツイート: "自分は視力あんまり良くないし真面目に画質確認すると疲れるので最近はVMAFに頼りっきりですが"
- fg118942さんのツイート: "AV1の特許で揉めてる問題、英語力がないので結局の所どういうことなのかよくわからない。"
- Alliance for Open Media
- Amazon、Netflix、Google、Microsoft、Mozillaなど大手7社が次世代のビデオフォーマットでオープンソース連盟を結成 | TechCrunch Japan
- aomedia Git repositories - Git at Google
- AOM-AV1-Video-Tech-meet-up.pdf
- DASH playback of AV1 video in Firefox – Mozilla Hacks – the Web developer blog
- Apple の AOM 加盟と AV1 への期待 | blog.jxck.io
- GoogleやNetflixが主導するビデオコーデック「AV1」が正式リリース、4Kストリーミングの普及に期待 - GIGAZINE
- The Alliance for Open Media Kickstarts Video Innovation Era with “AV1” Release – Alliance for Open Media
- Get Started – Alliance for Open Media
- HEVC/H.265対抗の動画コーデック「AV1」が正式リリース ~ロイヤリティフリーで利用可能、HEIF対抗も登場か - PC Watch
- 株式会社ソシオネクストさんのツイート: "【プレスリリース】クラウド上のFPGAを利⽤するAV1エンコーダーを実装 https://t.co/oqWIG8AUR3… "
- sn_pr20180606_01j
- yohさんのツイート: "10秒でわかるAV1エンコード:フレーム全体をばーっと再帰分割してIntra/Inter混合予測画像との差分値を量子化でざくざく切り捨てて複数シンボル算術符号化でぎゅぎゅーっと縮めて次フレーム予測のためにノイズ除去&エッジ復元して取っておくサイクルを繰り返します。"
- Chromium Blog: Chrome 69 Beta: AV1 video decoder, CSS tricks, and more
- FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 - Phoronix
- Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始 - PC Watch
- dynamis (でゅなみす)さんのツイート: "気付いたらFirefoxのAV1対応がデフォルト音に切り替わってた。何故Chromeより有効化が遅くなったのかは知らないけど、2015年にAoMedia立ち上げたときからの取り組みだから4年越しの取り組みが適った感じですね https://t.co/SUnTVkPz7r"
- Better web video with AV1 codec — Martian Chronicles, Evil Martians’ team blog
- Firefox 67には次世代コーデック「AV1」の世界最速デコーダーが採用されている - GIGAZINE
- Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
- Makoto Kato ︎︎さんはTwitterを使っています 「AV1のハードウェアデコードはこのバグを見ると、Chromiumの話やLinuxのVAAPIの話も含めて詳しい https://t.co/rmDC3ulEsO」 / Twitter
- 1652945 - Add AV1 hardware decoding support
- Google Chrome 90安定版リリース、AV1エンコーダー搭載で細い回線でのビデオ会議の品質が向上 - GIGAZINE
- ついにQualcomm製SoCがAV1コーデックに対応して2023年に登場予定か - GIGAZINE
AV2
- AV1 Roadmap - Alliance for Open Media
- AOMedia Research Symposium 2019 - Alliance for Open Media
- AOMedia looks ahead to AV2 as AV1 picks up momentum - Rethink
- AV2 - YoyaWiki Plus!
- テスト用にHLSライブストリーミング配信データおいときます|suo-takefumi|note
H.264
- H.264の秘密 | コンピュータサイエンス | POSTD
- Cisco の H.264 コーデックにより Web 上でのビデオの相互運用性が向上 | Mozilla Japan ブログ
- MPEG LA、H.264の共同ライセンス体系を発表
- US NEWSの裏を読む - ライセンス料を巡って揺れる次世代の動画標準「MPEG-4」:ITpro
- CODECのライセンス料について - プロセッサ(DSP / ARM / MCU) - Japanese E2E (日本語コミュニティ) - TI E2E Community
- 本の虫: H.264の特許利用料、緩和さる
- OpenH264
- 幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか? - GIGAZINE
HEVC
- H.265 - Wikipedia
- High Efficiency Video Coding - Wikipedia
- ストリーミングやTV放送で動画圧縮技術「HEVC」の特許使用料が廃止 - PC Watch
- Rockridgeさんのツイート: "「HEVC Advanceの特許ライセンス対象から『サブスクリプション』と『タイトルごと』のコンテンツ配信を除外することにより、HEVCの普及を更に加速」させるとの発表。AV1のプレッシャーが効いている。 / “HEVC Adv…” https://t.co/mKQxi5AWaf"
- ハイフレームレート4Kライブ伝送を実現するHEVCコーデック。NTTが開発 - AV Watch
- VさんはTwitterを使っています 「H.265 対応のハードウェアとそれを利用するソフトウェアの両方提供している NVIDIA に確認したら「ロイヤリティーは含まれていないので自分で解決してください」という回答だった。」 / Twitter
- H.265/HEVC特許暗黒時代 - Qiita
- 10bit 精度で 1bit のズレも発生しないテストパターン動画(H.265)を作成する - toruのブログ
VVC
- Versatile Video Coding (VVC) | JVET
- FadisさんはTwitterを使っています 「H.265/HEVCの後継となる動画圧縮標準規格、H.266/VVCの規格が完成したらしい。H.266はH.265と比較して顕著な品質低下を伴わずにビットレートを半分に抑える事ができるとされている。また8Kの映像やHDR、全方位映像等をサポートする」 / Twitter
- FadisさんはTwitterを使っています 「https://t.co/6Fab8kFoN0」 / Twitter
- H.266/VVC Standard Finalized With ~50% Lower Size Compared To H.265 - Phoronix
- 「H.265/HEVC」と同じ画質でファイルサイズを50%削減できる次世代動画圧縮規格「H.266/VVC」が登場 - GIGAZINE
- 新ビデオコーディング標準H.266、H.265に対して50パーセントの効率向上を可能に
- Catching Up with VVC - Streaming Learning Center
- https://jvet-experts.org/doc_end_user/current_document.php?id=10541
Widevine
- デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
- Googleがオープンソースブラウザ「Metastream」でのDRMコンポーネント利用を拒否 - GIGAZINE
- Googleはデジタル著作権管理を用いてどのようにオープンソースのブラウザ開発を独占的な管理下に置いているのか? - GIGAZINE
- Google Chromeのデジタルコンテンツ保護機能に「保護されたコンテンツ」を保存可能なバグ - GIGAZINE
- 「Firefox 47」正式版がリリース、Widevine CDMやVP9コーデックをサポート - GIGAZINE
- Disney+の映像はLinux搭載PCでは再生できない可能性がある - GIGAZINE
- MicrosoftのEdgeは4大ブラウザの中で唯一Netflixを1080pで再生できることが判明 - GIGAZINE
- Netflix・Amazon・Disney+からHD映像をダウンロード可能になるコードがGitHubに流出 - GIGAZINE
ProRes RAW
- Final Cut Pro Xがアップデート、ProRes RAWと高度なクローズドキャプションが可能に - Apple (日本)
- アップル、新フォーマット「ProRes RAW」採用のFinal Cut Pro X 10.4.1提供 - AV Watch
- 米アップル、ProRes RAWの搭載とクローズドキャプション機能を強化したFinal Cut Pro Xをアップデート - PRONEWS
- Final Cut Pro X、新ビデオ形式「ProRes RAW」、高度な字幕ツールも | マイナビニュース
- DJI ZENMUSE X7がApple ProRes RAWに対応|DJI JAPAN株式会社のプレスリリース
- DJIのSuper35mm空撮カメラ「X7」がProRes RAWや14bit CinemaDNG対応。exFATも - AV Watch
- DJI、Zenmuse X7のApple ProRes RAW対応を発表 - DRONE | ドローン専門メディア
- ATOMOS、ProRes RAWに対応するSHOGUN INFERNOやSUMO 19のアップデートを発表 - PRONEWS
CinemaDNG
- CinemaDNG - Wikipedia
- CinemaDNG File Format
- アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 - CNET Japan
- アドビ,高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 | 日経 xTECH(クロステック)
- AtomosがCinemaDNG RAW記録を無償アップデート | cinema5D
- Vol.081 開花の時を迎えたCinemaDNG | VIDEOJOURnAL on the web|ビデオジャーナル
- DJI、高性能飛行モードを備える空撮用ドローン - CinemaDNG撮影も可能 | マイナビニュース
- ユーザーはBMCCをどう評価しているか | Blackmagic Cinema Camera | Shuffle by COMMERCIAL PHOTO
- Inspire 2 License Key —DJI
SRT
- SRT Alliance - Open-source SRT - Secure Reliable Transport
- Haivision/srt: Secure, Reliable, Transport
- ffmpeg 4.0 に入った新しい映像伝送プロトコルSRTを試す - Qiita
- 緻密u 💮さんのツイート: "UDPを拡張したUDTを採用。ほう。UDPを通せれば通過できるんかな / “SRT Secure Reliable Transport とは何か? – meteor – Medium” https://t.co/B1RZmVlEXP"
- SRT Secure Reliable Transport とは何か? – meteor – Medium
FFmpeg
- FFmpeg
- FFmpeg/FFmpeg: mirror of git://source.ffmpeg.org/ffmpeg.git
- mabeijianxi/small-video-record: 利用FFmpeg视频录制微信小视频与其压缩处理
- 「FFmpeg 4.0」が公開 ~Windows XPのサポートは終了 - 窓の杜
- 「FFmpeg 4.0(Wu)」リリース | OSDN Magazine
- 「FFmpeg 4.1」が公開 ~“AV1”のパーサー、“ATRAC9”・“AVS2”デコーダーを追加 - 窓の杜
- FFAStransというトランスコードソフトについて
- FFmpeg API の使い方(1): デコードしてみる - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(2): シークやAVFrameなど - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(3): エンコードしてみる - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(4): エンコード他 - Fixstars Tech Blog /proc/cpuinfo
- オープンソースのマルチメディアライブラリ「FFmpeg 5.0」リリース | TECH+
- 「FFmpeg 5.0」がついに公開、リリースサイクルの変更もアナウンスされる - GIGAZINE
- FFmpegで動画に字幕・副音声を追加する | DevelopersIO
HandBrake
- HandBrake: Open Source Video Transcoder
- HandBrake/HandBrake: HandBrake's main development repository
- 【やじうまPC Watch】エンコードツール「Handbrake」公式サイトでマルウェアと置換される 〜2日から6日にかけダウンロードしたユーザーに対して開発者が注意喚起 - PC Watch
- 動画トランスコーダー「HandBrake 1.1」リリース | OSDN Magazine
VLC
- Sending Patches VLC - VideoLAN Wiki
- videolan/vlc: VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/
mpv
- mpv.io
- mpv-player/mpv: 🎥 Video player based on MPlayer/mplayer2
MPC-HC
- Media Player Classic - Home Cinema
- Home · MPC-HC
- mpc-hc/mpc-hc: MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
- 定番プレーヤー「Media Player Classic Home Cinema(MPC-HC)」がついにv1.7.13で更新終了の見込み、原因は開発者不足 - GIGAZINE
- MPC-BE download | SourceForge.net
DVD・Bluray
- libbluray - VideoLAN
- libdvdnav - VideoLAN
- DVD Resources for Open Source Development
字幕
- libass/libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
- xbmc/libass: libass for XBMC (win32 special)
- SSA/ASS Subtitles | Matroska
- SubStation Alpha - Wikipedia
- ASS/SSA - 字幕制作
- ASS 仕組みと書き方
- SSA字幕作成リファレンス - faireal.net
- a3r (ASS_Help3r) – ASS字幕タイミング・タイプセッティング支援
- テキスト字幕ファイル(SRT, SSA, ASS)の利用方法 - 動画投稿Tips - アットウィキ
- Makoto Kato ︎︎さんはTwitterを使っています: 「PiPウィンドウの字幕処理って、元の再生画面のDOMノードから文字列取ってきて、それをPiPウィンドウに送ってるのか https://t.co/orsA3eXy3R」 / Twitter
- autoland: changeset 616055:9a551dab87fa846f1401210b9cc8a41fcc3b00ff
SmoothVideo Project
- SmoothVideo Project (SVP) - motion estimated frame interpolation with any video player and frame doubling in real-time
- GPU Compatibility - SmoothVideo Project (SVP) - frame doubling interpolation
- SVP3:User manual - SmoothVideo Project (SVP) - frame doubling interpolation
- 【GPU】 Fluid MotionとSVP : ニッチなPCゲーマーの環境構築
- 便利ツール:SVP4(SmoothVideo Project):さんさんのブロマガ - ブロマガ
- 是々録画: SVP (SmoothVideo Project) で60fpsなヌルヌル体験
- 動画再生用にSVP4を導入。 - WebLog
- 動画がヌルヌルに!! 60fpsの倍速補完で滑らか再生してくれるフリーソフト 『Smooth Video Project』 | PCあれこれ探索
- YouTubeも60fpsでヌルヌル動画視聴できるSVPの次期Verが来る! - 週刊アスキー
- これがヲタクの生きる道! 動画のフレームレート補完
- 手持ちの動画を全部見返したくなるヌルヌル高画質化無料ソフトがヤバイ! - 週刊アスキー
- 備忘録:ソフトウェアで倍速補完ヌルヌル動画再生:気が向いたら何か書くtetのブロマガ - ブロマガ
Vulkan
- FadisさんはTwitterを使っています 「Vulkan 1.2.175で動画拡張が取り込まれた話。GPUはしばしば動画のエンコードやデコードを行うハードウェアを備えているが、この拡張に対応している場合そうしたハードウェアを使ってVkBufferに入った動画の断片をVkImageの列にデコードしたり、逆にエンコードしたりできる https://t.co/WYxlnjeh0T」 / Twitter
- Vulkan Video Arrives For New Industry-Standard Video Encode/Decode - Phoronix
- FadisさんはTwitterを使っています 「動画のデコードは変換の状態を持つVkVideoSessionKHRを作り、バッファを用意して、動画に対応したキューに対してvkCmdDecodeVideoKHRを積むことによって行われる。Vulkanの他のコマンド同様処理は非同期で行われる」 / Twitter
- FadisさんはTwitterを使っています 「対応する動画の形式は形式毎に拡張が定義され、さしあたってはh264によるデコード、エンコードとh265によるデコードが定義されている。h265エンコードは準備中で、将来的にAV1、VP9のための拡張も用意するつもりらしい」 / Twitter
- FadisさんはTwitterを使っています 「エンコーダを本当にプロセッサと独立したハードウェアとして積んでいる場合は動画専用キューが生えて、GPUでソフトウェアで動画をエンコード、デコードしてる場合はグラフィックのキューと同じやつに動画対応フラグが立つ感じになるのかな」 / Twitter
- FadisさんはTwitterを使っています 「VulkanにH.265エンコード用の拡張が現れた話。春に登場したVulkan動画拡張はVulkanからGPUの動画エンコード、デコードの機能を使えるようにする。対応コーデックは本体とは別の拡張で個別に追加されるが、最初に動画拡張が発表された時点ではH.265のエンコードは準備中だった https://t.co/FJGb2qBcZB」 / Twitter
- Vulkan 1.2.196 Introduces H.265 Encode Extension - Phoronix
GitHub
- Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
- My View - MantisBT
- jp9000/obs-studio: OBS - Free and open source software for live streaming and screen recording
- rexbu/VisioninSDK: 类似faceu的移动端视频美颜、视频滤镜、人脸实时关键点追踪、实时整形(瘦脸大眼睛等)、动态贴纸
- xl-player-developers/xl_player: A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.
- begeekmyfriend/yasea: RTMP live streaming client for Android
- PipeWire
- PipeWire/pipewire: Multimedia processing graphs
- gopro/cineform-sdk: The CineForm video codec SDK.
- tophf/parsemkv: Matroska .mkv file parser in PowerShell, doesn't require external tools, produces a hierarchical object tree, optionally pretty-prints to console
- digital_video_introduction/README-ja.md at master · leandromoreira/digital_video_introduction
Twitter
- vyv03354さんのツイート: "@d_toybox OpenH264はvideo要素で使うには機能不足らしく、WebRTCでしか使いません。AdobeのDRMプラグインを非DRM動画でも使おうという案もありましたが、Facebookで問題が起きて頓挫したようです。"
- 「Firefox 33」リリース、OpenH264をサポート | OSDN Magazine
- Rockridgeさんのツイート: "動画コーデックのDaalaは改良が続けられており、過去18か月の間に、同一品質の動画のファイルサイズが50%減少した(2016年5月時点)。 / “Revisiting Daala Technology Demos” https://t.co/sWjpsN0dw1"
- Rockridgeさんのツイート: "Fx49:動画再生時にSSSE3命令セットを使用してパフォーマンスを向上。SSSE3はIntel Core 2以降のCPUでサポートされているようだ。 / “1266491 – Use an ssse3 scaler for v…” https://t.co/WxN116hQBb"
- Rockridgeさんのツイート: "Fx51:MP4メディアコンテナにVP9コーデックを格納した新規格をサポート。Netflixが提案し、Vimeoも関心を示している規格だとか。 / “1240412 – (vp9-in-mp4) Add VP9-in-MP4 s…” https://t.co/jev55QQrDY"
- Kentaro Ebisawaさんのツイート: "コンシューマ機器と自動車に搭載するH.264の要件の違い。H.264は標準規約だが、共通する標準実装があるわけじゃないよ、と。 ... why supporting H.264 isn’t enough for automotive https://t.co/Qx5xkaGHGK"
- videantis » 10 reasons why supporting H.264 isn’t enough for automotive Ethernet
- Shirouzu Hiroaki(白水啓章)さんのツイート: "はい。私もデジタル信号処理の専門家ではないですが。 離散コサイン変換すると、元データが復元可能な全ての全周波数成分が得られるので、低周波成分だけ取り出すと低解像度用に使い回せます。 (まあ使い回さずとも、画素数が1/4なら負荷は25%ですが)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「全ての全周波数」って、、、どうも「馬から落ちて落馬して」的な文章に気付かずに送ってしまうことが多い。… "
- yohさんのツイート: "マルチメディア処理の{En,De,Trans}coderのソースコードがカオスで汚ったないのは それが現実世界を反映しているからです 100%仕様準拠したデータなんてお花畑だし 対向装置も100%どこか間違ってるし その一方で動作性能要望と互換性サポート要望は無限にくるんですよ"
- Rockridgeさんのツイート: "特許で保護されたコーデックが私企業に独占された場合の危険性を訴えるSFというか寓話。独占が起きる前に声を上げ、行動を起こすべきだとする。MozillaはVR/ARを中心にWeb上で動画の役割が大きくなると見ているのだろう。 https://t.co/m6mZdF6y1i"
- くいなちゃんさんのツイート: "Radar(レーダー) って略語だったのですね。 RAdio Detection And Ranging だそうです。 Codec(コーデック) も COder/DECoder の略語ですし、略語と知らずに使っている単語は結構ありそうですね。"
- ゆきさんのツイート: "CORB shouldn't block application/dash+xml videos. https://t.co/5AZp6ox1m6"
- 2dae0c6dd178d1b0255a87164300a5d90f1bc033 - chromium/src - Git at Google
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Media Hash Listって、間もなく ascmhl に移行するよといったままの期間が長い気がするのだけど、実際はどちらが使われてるのかしらん? https://t.co/gbKlEO65q2」 / Twitter
- MHL: Media Hash List | Improving Data Integrity in Digital Media Workflows
- ascmitc/mhl: ASC Media Hash List
- Makoto Kato ︎︎さんはTwitterを使っています: 「そもそもNHK+の話は3月末には公表されてたことで、今更話題になるのもなぁとは思う。UA OverrideとかDOM Injectionで観られるようになるのであれば対処できるのではと https://t.co/ylULFynNmo」 / Twitter
- plus.nhk.jp - Firefox is unsupported browser · Issue #101581 · webcompat/web-bugs
- Makoto Kato ︎︎さんはTwitterを使っています: 「自社で動画プレイヤー書いてるベンダーなんて、日本にあったっけみたいは話ですよ。コード見る限り、サイバーエージェントもtheoplayerだし。NHKプラスもConvivaでしょ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「TVerはBrightcoveか。各社違うプレイヤー使ってるんだ。というかこんなに乱立してもビジネスになるってことは、どれも一長一短なんだろうな」 / Twitter
GPU
その他
NVIDIA
- Fadisさんのツイート: "GPUは複数のスレッドを束ねたSM単位で動いている為、Draw時にメッシュは1つのSMで処理できる塊(Meshlet)に分割してから空いているSMに割り当てられる。プリミティブが増減しない限りMeshletを毎回求めるのは無駄なので、静的に分割したMeshletをGPUに与えて性能向上を図ろう、というアイデアが出てくる"
- Fadisさんのツイート: "NVIDIAが提案するメッシュシェーダは、任意のデータを読んで処理するMeshletを決定するタスクシェーダと任意のデータを読んでMeshlet毎にプリミティブを生成するメッシュシェーダの2つのシェーダからなり、頂点、テセレーション、ジオメトリシェーダと固定機能の頂点フェッチとカリングを置き換える"
- Fadisさんのツイート: "NVIDIAによるメッシュシェーダの解説 https://t.co/c1su8LOMF3"
- Introduction to Turing Mesh Shaders | NVIDIA Developer Blog
- Fadisさんのツイート: "割といつもの事だけど、NVIDIAさんカジュアルに巨大な変更を拡張で突っ込んでくるなぁ"
- Fadisさんのツイート: "NVIDIAさんの拡張が豪快すぎる事例としては、グラフィックパイプラインとは別に新しいパイプラインを追加してキューとメモリとシェーダのフォーマットだけVulkanと共有した物をVulkanの拡張と言い切ったレイトレーシング拡張なんてのもある https://t.co/jkWFTL0IMO"
- VK_NV_ray_tracing(3)
histric
histric-1
- GPUはいつ描画するのか? | ひにけにGD
- OpenGLでの描画のタイミング 【OKWave】
- OpenGLで描いて画像ファイル出力 【OKWave】
- 第三回_プレゼン資料(なるほど3Dグラフィック描画の仕組み).pdf
- DrawCall (ドローコール) って何? 描画パフォーマンスを考える一つの指標を見る - Tech Inside Drecom
- Fadisさんのツイート: "モバイルでなくても「プロセッサよりメモリが辛いからでっかいテクスチャを貼るな生成しろ」はイマドキのGPUだとよく言われるな"
- Fadisさんのツイート: "とはいえ、デザインするマンにシェーダの知識がない体制で開発する場合、丹精込めて人間が描いた絵を貼るしかなくて、結果驚きのもっさりゲーム誕生する"
- 本の虫: ブラウザーのCanvas/WebGLのブラックリスト
- 本の虫: OpenGLドライバー品質の実情
- 本の虫: DolphinエミュレーターとOpenGLドライバー、栄光と恥
- KaiGai Kohei 🌻さんのツイート: "write combined modeでGPU device memoryをマップしたら、memcpy()によるRAM2GPU転送でもソコソコの転送速度が出るという学びを得た。"
- KaiGai Kohei 🌻さんのツイート: "しかも仮想アドレスを持っているという事は、NVME READコマンドをセットアップするのにScatter Gather Listを使えるという事になるのかな。 (今までは PRP List を使っていた)"
- GPUドライバのテストフレームワーク「GraphicsFuzz 1.2」リリース | OSDN Magazine
- CUDAでカーネル関数がスキップされる(ように見えた) - in neuro
- Fadisさんのツイート: "PS4をエミュレートする猛者現る。OrbitalはCPUにx86の仮想化支援を使い、GPUに対する操作を全てVulkanの操作に変換してホストのGPUで実行するPS4エミュレータ。この為にAMD GPUのネイティブバイナリを入力としてSPIR-Vを出力するコンパイラを実装してしまったらしい https://t.co/K4eIs2r9CK"
- Orbital: A PlayStation 4 Emulator That Is Emulating The PS4's AMD GPU Using Vulkan - Phoronix
- 島鉄雄さんのツイート: "ゲームはフレームバッファがトリプルで GPU のコマンドバッファもダブルバッファだから、入力した結果を見てるのは最低でも3~4フレームずれてる。 テレビ側は速い物でも遅延は1フレーム程度あるから、ゲーム機で遊んでても入力から4~5フレームの遅延がある。 ネットで数フレーム遅れても気にならない… https://t.co/LB2SEP3BPQ"
- 島鉄雄さんのツイート: "ちなみに、GPU のコマンドバッファをダブルにするのは CPU → プレイヤーの入力に応じて描画コマンド作成 GPU → 前のフレームの描画コマンドを実行 とする事で、CPU と GPU をフレームの頭から同時にスタート出来るから。"
- 島鉄雄さんのツイート: "ただ OpenGL ES 使うとコマンドバッファという概念がないから、みんな CPU で処理中に残り時間が無い所で Draw コールして処理落ちしまくってるかもしれない そうならないように、自前でコマンドバッファを作成して、フレームの頭から高速に Draw コールに変換して、CPU の処理は別スレッドでやるべし"
- はじめてのにき(2019-04-10)
- Intel HD Graphics - OSDev Wiki
- Web High Level Shading Language | WebKit
- 「WSL 2」に「DirectX」が追加 ~将来的にはLinux GUIアプリへの対応も - 窓の杜
- FadisさんはTwitterを使っています 「Vulkan 1.2.203で追加された新しい拡張VK_QCOM_fragment_density_map_offset。フレームバッファのサイズに対して大きすぎるサイズのfragment density mapを作り、fragment density mapのどの部分を使うかを示すスクロール値をレンダーパスに設定できるようにする https://t.co/0HYG8P3F06」 / Twitter
- Vulkan-Docs/VK_QCOM_fragment_density_map_offset.txt at ac23aa229fd9b8ea06aa99cf07b79cdc15af406f · KhronosGroup/Vulkan-Docs
- FadisさんはTwitterを使っています 「fragment density mapをfoveated renderingを行うために使う場合に、視線に移動に合わせてfragment density mapをスクロールさせることで毎フレームfragment density mapを作り直さなくて良くするのがこの拡張の狙い」 / Twitter
- FadisさんはTwitterを使っています: 「Vulkanの実装がVK_EXT_direct_mode_displayをサポートしている場合、ウィンドウシステム上でVulkanのレンダリング結果を表示するのではなく「ディスプレイ丸ごとよこせ」が出来る。奪い取ったディスプレイはウィンドウシステムの管理から外れてどんなフォーマットで通信するか自由に選べるようになる」 / Twitter
- GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能 - GIGAZINE
- Yoshikazu GOTOさんはTwitterを使っています 「KOBA789さん:Immediate mode GUI: ・ステートレスで、毎フレーム全部描き直す →ビットマップを差分で使いまわしたりしない ・ゲームエンジンなどと相性のいいGUIアーキテクチャ ・今回のCADでもこれを採用 #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「GPUの計算は速い が GPUへのコマンドの発行は遅い ので GPUへのDrawコールの頻度を減らす。やってることがゲーム屋の定番の最適化話になってきた #kernelvm」 / Twitter
- Fadisさんのツイート: "ゲームのプレイヤーが直接動かせる物が60fpsで応答していないとゲーマーさんはもっさりとした感触にすぐ気づいてしまうんだけど、背景でモクモクしてる煙とかが15fpsくらいで描かれてても案外バレないから、今時のゲームは画面内の物によってバラバラな頻度で描画を行うことがよくある"
- Fadisさんのツイート: "問題は、低い頻度で描画されている物に高い頻度で描画されている物がぶつかってしまって、高い頻度で描画しなければならないものに格上げされる事がある点で、ある程度衝突を予測して格上げをしておかないとぶつかった瞬間からの数フレームの応答が悪くなる"
- 低レイヤーから始める GUI - Speaker Deck
- Fadis/gct at kernelvm_20230115
アクセシビリティ
その他
その他
- A11yとは - Weblio辞書
- WebSchemas/Accessibility 日本語訳
- アクセシビリティの祭典/トップページ
- WindowsでaViewerを使う | アクセシビリティBlog | ミツエーリンクス
- 今すぐ使えるアクセシビリティチェックツール13選! | フロントエンドBlog | ミツエーリンクス
- 少しずつアクセシビリティ意識する - Hatena Developer Blog
- アクセシビリティに関する各種リンク - EagleLand
- アクセシビリティの専門家の言うことは唯一の正解ではない | 水無月ばけらのえび日記
- Webアプリのアクセシビリティを追求せよ!「インクルーシブ」なマークアップを議論しながら学んでみた | HTML5Experts.jp
- 視覚障碍者プログラマのためのツール | キャリア・働き方 | POSTD
- New Site-wide WAVE Tools (WebAIM)|AccSellクリッピング|AccSell
- むらログ: 実用レベルに達している日本語音声入力
- アクセシビリティ機能はありますか (Acrobat DC)
- アクセシビリティを確保するなら、ファインダビリティも大事。国税庁Webサイトリニューアルでリダイレクトなし | Web担当者Forum
- 今更だけど、ウェブアクセシビリティについてまとめてみた(概要と手法) - Qiita
- パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
- やさしいウェブのためにすべきこと。英国のウェブアクセシビリティ啓蒙ポスターの日本語版が公開 | UNLEASH
- posters/accessibility/dos-donts/posters_ja at master · UKHomeOffice/posters
- アクセシビリティガイドライン > 45. 色だけに依存した表現によって… : 三井住友銀行
- 日本手話が安心して使える社会に! | PoliPoli
- 本間一夫 - Wikipedia
- 【視覚障害を乗り越え】全盲のエンジニアに1日密着してみた - YouTube
- 自身も視覚障がいを持つ開発者がMicrosoft Seeing AIによるアクセシビリティ改善について語る | TechCrunch Japan
- Cognitive Services API - Google 検索
- 目に優しいプログラミング環境 - Qiita
- 目が見えなくてもプログラミングできるよ - Qiita
- スクリーンリーダーの音声を聞いたことがありますか? | ラック公式ブログ | 株式会社ラック
- 生まれつき盲目の男性がAmazonでソフトウェアエンジニアとして働く - GIGAZINE
- Accessibility in Visual Studio Code
- Light Theme for Color Blind People - Visual Studio Marketplace
- colorblind-syntax
- Go言語が好きな理由
- Swan's Quest, Chapter 1: Voices in the dark - WWDC20 - Videos - Apple Developer
- T. V. Raman - Wikipedia
- matsumoto19.pdf
- kintoneのアクセシビリティ改善とESLintルールの整備 - Cybozu Inside Out | サイボウズエンジニアのブログ
- 自動文字起こしや自動音声読み上げモデルをオープンソースで開発する「Coqui」メンバーは元Mozillaエンジニア - GIGAZINE
- 鳶沢みさきさんはTwitterを使っています: 「@uchan_nos title属性はグローバル属性で、img要素に限らず一般的にツールチップとして表示させるものですね 特に指定の必要はありません alt属性は画像が表示されない場合に代替テキストとしてふさわしいテキストを入力します なお画像の題名みたいなものはfigure要素とfigcaptionを使うのが正しいです」 / Twitter
- Microsoft、ハンディキャップがある人でもWindowsを快適に利用できるアクセサリ3製品を今秋投入 - PC Watch
UI デザイン
その他
命名規則・色
- 後藤 浩昭 / GORRYさんはTwitterを使っています 「そもそも「OKボタン」や「Noボタン」みたいなものは、論理名が先にあって、それに機能やデザインを結びつけないといけないので、これは×。 そもそも、この手のボタンは最初に「Yes/No/OK/Cancel」の4機能を作ってからそれを設置するもので、設置してから機能を決めるものではない…」 / Twitter
- オオバ@UIエンジニアさんはTwitterを使っています 「仕様変更に強い命名は大事だ。ボタンを「OKボタン」や「Noボタン」と名付けていたらヤバいかも。ゲーム開発に仕様変更はつきもの。開発中盤「OKボタンの色を使ってキャンセルボタンを作りたい」というケースもある。結論、用途ではなく機械的な名前をオススメ。後の参画メンバーの混乱は避けるべき。 https://t.co/QMrqKOaoDF」 / Twitter
- ちるえの@リプ制限中さんはTwitterを使っています 「@ohbashunsuke webの話ならBootstrapと同じこの命名が正解 https://t.co/3WvtPlPTla」 / Twitter
- 後藤 浩昭 / GORRYさんはTwitterを使っています 「Yes/NoとOK/Cancelは何が違うのか…と聞かれることがある。Yes/Noは「選択が必須」、OK/Cancelは「選択が必須でない」ときに使う。別の言い方をすると「ボタン連打でどっちかが選ばれたら困る」ときはYes/No、「連打でどっちかが選ばれてもよい」ときはOK/Cancel…と覚えておくとよい」 / Twitter
Figma
- Figma日本語対応のお知らせ
- Webデザインツール「Figma」がアドビに買収へ。今後はPhotoshopやLightroom、Illustrator、InDesignなどの部門長の配下に - Publickey
- Adobe、Figmaを約2.9兆円で買収へ デザインコラボツール大手 - ITmedia NEWS
- アドビ、デザインツールの「Figma」を買収 200億ドル - Impress Watch
- Adobeが2兆円超えでデザインツール「Figma」を買収、Figmaブランドは存続の予定 - GIGAZINE
- Shin SasakiさんはTwitterを使っています: 「Figmaの歴史はプロダクト開発者にとって学びの宝庫だった📝 1. 初期コンセプト「ブラウザ上のフォトショップ」は不発 2. 当時の常識は「1人かつオフライン」 3. 機能を絞りUIデザインに特化し成功 4. 他ツールからシェアで圧勝 5. ホワイトボード機能はMiroに敗北 6. 売却理由「マルチプロダクト化」」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「1. 初期コンセプト「ブラウザ上のフォトショップ」は不発 創業者のDylanはブラウザ上で動くツールに強くこだわっていた。そしてベンチマークとしてブラウザで動くPhotoshopのようになると決めていたが、Photoshopは超機能。定義があいまいで、社内でも人によって目指す方向がバラバラでカオスになる。」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「これはFigmaのようなスタートアップが歴史の長いマーケットトップのプロダクトを目指すのは危険という好例。そして目指すべき理想があいまいだと、社内でも認識が揃わずに何を開発したら良いか分からなくなる。なんでもできる、はなんにもできない。初期プロダクトは必ず機能を特化し絞る必要がある。」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「2. 当時の常識は「1人かつオフライン」 当時はデザインツールは1人で、かつオフラインで使うものが常識だったため、オンラインで誰かと一緒に作業をするというアイデアは当時全く受け入れられず。 どんなに優れたプロダクトでも、初期のコンセプトが否定されるのはスタートアップあるあるです。」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「しかし、創業者のDylanはプログラミング業界ではすでにこの「オンラインでのコラボ作業」の流れが起きているのを見ていたので、デザイン領域でも起きると信じてオンラインでのコラボツールを作ることは買えなかった。 優れたアイデアは「他の領域で起きている大きな変化」を参考にするのも良い手段📝」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「3. 機能を絞りUIデザインに特化し成功 FigmaはPhotoshopを目指すことをやめ、ユーザーインターフェース(UI)の開発をする機能に特化してプロダクトを開発。1つの機能に特化してから開発速度も上がったが、Dylanはマネジメントに失敗しFigmaのβ版はリリースが何年も遅れる原因になった。」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「2016年初期リリース時のFigmaの画像スクリーンショット、インターフェースのデザインに特化していてとてもシンプル。直感的にHTMLとCSSを調整してサイトのデザインを作る機能で、Figmaがデザイナー以外との協働を大事にしていたのが分かります。 Figmaの開発者ブログ:https://t.co/HRBvv2JSUg https://t.co/OLd6EOn4ie」 / Twitter
- Reflecting on Figma’s First Year
- Shin SasakiさんはTwitterを使っています: 「4. 他ツールからシェアで圧勝 Figmaのリリース直後2017年当時、デザインツールと言えばInVisitonが60%のシェアを誇り圧倒的でした。しかし2020年になると今度はFigma一強になり、InVisionは最下位レベルまでシェアを落としています。 ・Figma:57% ・InVision:23% https://t.co/8QhkIWFib7 https://t.co/4DAeyOnWZr」 / Twitter
- The precipitous rise of Figma and fall of InVision | by Meghan Wenzel | UX Collective
- Shin SasakiさんはTwitterを使っています: 「なぜInVisionは敗北しつつあるのか? 色々な考察がありますが、やはり大きいのは「機能の集中ができておらず戦略が不明瞭」に尽きます。インターフェースデザインに特化したFigmaに対して、InVisionは「どれもそこそこ出来る機能」が目立ちなんでも出来るは記憶に残らない、を体現してしまっている🤦♂️ https://t.co/jOF1G9Jmru」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「5. ホワイトボード機能はMiroに敗北 順調なFigmaですが、何でもかんでも順調かと言うとそうでもないのがプロダクト作りの難しいところ。2021年にリリースしたホワイトボード機能は競合のMiroにシェアでなかなか届かず。インターフェースデザインに強いFigmaでも他領域で勝てるとは限らない。 https://t.co/dP5thbD6iA」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「デザインツールの主要プレイヤー整理📝 ・Figma:インターフェースデザイン ・Miro:ホワイトボード ・Canva:グラフィックデザイン ・Adobe:プロ向けデザインツール各種 このように、Figmaだけでなく他ツールも自分の得意領域で機能を特化させ、シェアを維持しています。 https://t.co/1CGc6VvPSC https://t.co/p2ujDYP1GJ」 / Twitter
- Figma revenue, valuation & growth rate | Sacra
- Shin SasakiさんはTwitterを使っています: 「6. 売却理由「マルチプロダクト化」 ではなぜFigmaはAdobeに売却することにしたのか?その大きな理由が「マルチプロダクトを目指したい」と創業者のDylanは語っています。今後Figmaは強みを活かしつつ、PhotoshopやIllustratorと連携するとのこと。これは胸アツですね! https://t.co/Ald5kvEeFl」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「2021年、創業者のDylan氏はこんなツイートをしていました。 「我々のゴールはFigmaでい続けることだ、Adobeになることじゃない」 https://t.co/wJX60cMN42 そして買収が発表された後、この考えは今でも変わっていないと語っています。Figmaらしさを残しつつ、Adobe製品とのコラボを期待しましょう!」 / Twitter
- Dylan FieldさんはTwitterを使っています: 「@JaiminDesai93 @itsrishabh @figmadesign Our goal is to be Figma not Adobe」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「【まとめ (1/2)】 Figmaの歴史はプロダクト開発が「機能を絞ること」がいかに大事かを物語っています。 多くのプロダクト開発者は「とにかく機能を付け足す」ことに注力したがりますが、一歩引いてみて「自分たちは誰のどんな課題を解決するのか」を決め、1つの課題を深く解くまでやるのが鉄則です💪」 / Twitter
- Shin SasakiさんはTwitterを使っています: 「【まとめ (2/2)】 個人的には 1. 創業初期に「オンラインのPhotoshop」を目指して失敗 2. インターフェースデザインに特化 3. 最終的にPhotoshopを運営するAdobeが買収 この流れがエモくて最高にかっこいいなと思いました。Photoshopを目指すのをやめたら、Photoshopに近付いたという不思議なお話🤩」 / Twitter
- Satoshi NakagawaさんはTwitterを使っています: 「日本では Figma って単にイケてるデザインツールの会社と思われてるかも知れないけど、実はウェブのコアの表示部分を C++ と WASM で作ってて技術的にとんがってて、普通のやり方だとブラウザ上では無理なレベルでパフォーマンスと省メモリを実現してるから競合の追従を許さなかったんだよね。」 / Twitter
- エンジニアのためのFigma超入門
- [勤怠FEギルド] TailwindCSSの導入とFigmaTokensとの連携 | Money Forward Money Forward Engineers' Blog
- seyaさんはTwitterを使っています: 「Figma 自体の UI がゴリゴリに grid を活用しているのを深ぼってる記事。複雑UIを作る時に勉強になりそう https://t.co/2qvnZFgsG2」 / Twitter
- The CSS behind Figma - Ahmad Shadeed
デザイン・視覚化
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「デザイナーの仕事の核とは実は可視化による関係者の「合意形成」だ。経営、プロダクトマネージャー、エンジニアなど様々な意見を聞きながら形にする。最後の最後に、体験という目線でよりシンプルにより本質的なところを残していく。実はこれは、デザイナーが気づいていない最も大きな価値だと思う。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「もちろん「ユーザー」の声も同様だ。 デザイナーとは自分の声を発するよりも、様々な人の話を聞くことが大切な仕事だ。 ただ、人と意見を聞き全てを盛り込むだけだとカオスになる。多様な意見を聞きながら、本質だけを残しより魅力的にしていく。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「会議で何時間もああでもないこうでもないと議論していたことが、企画書上でこねくり回していた複雑なロジックが、デザイナーが入る事で「ああ、僕らが欲しかったのはこれだったのだ」というものがスッと想像以上にあっけなく可視化される。 ほとんどの人は、自分が欲しいものは分からないのだ。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「みんなが欲しいものを可視化できるのは、デザイナーの大きな強みだ。経営とユーザーを包括的に見ながら、統合的に体験を描くポジションにある。ただし、双方の単なる言いなりになるだけではダメだ。そのデザイナーの美意識というフィルター次第によって本質的な価値の見出し方は大きく変化する。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「最後のアウトプットとしてのインターフェイスを担うためデザイナーの責任は非常に重い。 そのため、デザイナーは多様な意見のフィルターとなる「自身の美意識を高める」こと、そして「ユーザーと経営を理解しよう」と努めなければならない。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「可視化は最も「合意形成」を作りやすいツールなのだ。 そのため、初期の段階からデザイナーが入ることでプロジェクトのスピードが格段に上がる。抽象的な方向性の議論は関係者それぞれの多様な視点の違いにより話が空中戦になりやすい。ようやくまとまった意見は大抵角が取れた「普通のもの」となる。」 / Twitter
- 引地耕太 | Creative DirectorさんはTwitterを使っています: 「現代の事業環境において、抽象的な企画書レベルでプレゼンし各所の意見を取り込み合意形成がなされていくプロセスは現代のものづくりにおいてフィットしないのではないかと感じる。合意形成に時間がかかり、角が取れイノベーティブなアイデアは生まれづらく、そしてイメージのズレが起こりやすい。」 / Twitter
- Storybookでモジュール一覧を作る | フロントエンドBlog | ミツエーリンクス
- サイトデザインの品質を上げる3つのセルフチェックリスト | フロントエンドBlog | ミツエーリンクス
- Storybook6(CSF)の基本実装 - ISID テックブログ
histric
histric-1
- もよこ| UXコンサルさんはTwitterを使っています: 「UIとUXがごっちゃの議論になったときに使う図 #UX #UI #OOUI https://t.co/Q3HHpiNtDx」 / Twitter
- 水原滝さんのツイート: "「SwitchのUIにははい、いいえがない」っていうのは言われて初めて気づいたな。「はいかいいえかを判断するには文章を読まなければならない」から、「ボタンを読めば本文を読まなくてもいい」って発想なのか。 https://t.co/8RKAEJpAYi… https://t.co/DQwjFiop6d"
- 【CEDEC 2018】明快で軽快! Nintendo SwitchのUIを触るだけで楽しい理由 - GAME Watch
- 「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
- メールアドレスの確認フィールドをなくすべき理由 | UX MILK
- IIMURA Takujiさんのツイート: "例えばこんな感じ。 ・見えない物は気づかれないので使わない ・目的の機能へ1タップで行ける(機能が見えている)ようにする ・ファイルやフォルダの概念は理解されないので使わない ・動作を変更する設定等は解ってる奴しか弄らないので標準設定でも問題ないように ・ユーザID等の文字列を覚えさせない"
- 「Amazonのプライムビデオが難しい」というおかんの言い分を聴いてみた|Tsutomu Sogitani|note
- スマホUI考(番外編) UIやUXを劇的に改善する、『ビッグオー駆動型開発』とは | fladdict
- Manabu Uenoさんのツイート: "一般的なフォームで、名前や電話番号の入力欄の分割をやめるよう指摘すると、DBの都合でできないと言われることがある。なぜDBのフィールドを分けるのか聞くと、「できるだけ細かく情報を取った方がいい気がするから」という運営者の曖昧な管理欲しかなく、入力コストとのバランスが考慮されていない。… https://t.co/oJixrHiUi3"
- Manabu Uenoさんのツイート: "例えば電話番号の入力操作について分割式と単一式を GOMS-KLM で試算すると、分割式は約70%も多く時間がかかることがわかる。また、入力欄を必要以上に分割することはUIの国際化でもよく問題になる。名前、電話番号、住所などは文化圏によって書式上の区切りの数や順序が異なるから。… https://t.co/FXaegHiByQ"
- Manabu Uenoさんのツイート: "もちろん書式を分割することに正当性がある場合もあるだろう。しかし多くの場合、運営者が正当だと判断する根拠はユーザーが素朴に期待するサービス内容とは関係がない。もし本当に必要性があり、それがユーザーのメンタルモデルと乖離しているようなら、運営者はそれを真摯に伝えなければならない。"
- Manabu Uenoさんのツイート: "運営者は、どんな入力もユーザーにとっては少なからぬコストでありリスクであると考える必要がある。例えユーザー自身がそれを認識していなかったとしても。特に個人情報とのトレードで無償サービスを提供する場合など、その「意味」をユーザーから隠すことはサービス倫理として看過できない。"
- Manabu Uenoさんのツイート: "UIデザイン原則とUIデザインパターンを使えば、自然に高品質のUIを作ることができる。しかし次の事項にはデザイナーの創造力が必要で、これらがアプリの独自性となる。 ・オブジェクトをどのようなアレゴリーで概念づけるか ・オブジェクト一覧をどのような形式で示すか ・デフォルトをどうするか"
- Manabu Uenoさんのツイート: "入力欄のラベルに「お名前」とか「ご住所」のように御の字をつけるのはおかしい。ソシオメディアでは、 UIはユーザーに帰属するものと考える。ユーザーが自分の意思を示すものだから御の字は不要、とクライアントに指摘している。しかしこの感覚を持たない人にわかってもらうのは難しい。"
- Manabu Uenoさんのツイート: "多くの事業者は自分たちのシステムを自分たちに帰属するものとしてデザインしようとする。それをユーザーに使ってもらう姿勢だから、UIラベルに「へりくだり」を持たせようとしてしまう。その結果UIの主体が曖昧になる。ひいてはインタラクション全体がタスク指向になり、むしろ傲慢になっていく。"
- 日本企業のアプリには「おもてなし」の心が足りない | 及川卓也のプロダクト視点 | ダイヤモンド・オンライン
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジング(数えずに把握できる数)の上限が3である人が多いためと思う。 UI設計だと、アイテムを並べるとき、なるべく3つ以内、多くて4つという指針がある。 ---- 「線4本は何か嫌だな」という万国共通の心理 https://t.co/k7dln3DUR5」 / Twitter
- 漢字の「一」「二」「三」の次がいきなり「四」になるのはなぜなのか?【漫画版】 (3/3) - ねとらぼ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジングは4が一般的だった。 むしろ、MIND HACKSに載っていた、密集度による分解把握力低下が主因かも。 https://t.co/KEr3syDoZ3」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ようやくバリア感が強かったフラットデザインが終わるか。抽象化すればするほど、記号が分かる人にしか使えないUIを作るものなのになんで流行ったのかよくわからんかった。 / OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜 https://t.co/ItV72Gn9Dp」 / Twitter
- OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「特にフラットな"ボタン"。なぜそこがクリックできると思えるのかと考えると、色々なデザインを見た経験に依存して分かった気になってるだけだよなと。」 / Twitter
- 棚旗 織さんはTwitterを使っています 「@d_toybox 広告やグラフィックデザインの潮流が PC や web に波及した結果だったと思っています。Helvetica Ultra Light を使うような、軽くて薄いデザインが10年くらい前から流行っていましたので。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「UIデザインにおける "1+1=3のルール": 2つの要素(1+1)が互いに近い距離にあると、ユーザにはその中間の隙間が「3つ目の要素」に見えてしまい、認知的な負荷を増加させ、判断力を低下させる。 https://t.co/4DdQmMDBMG」 / Twitter
- 1 + 1 = 3: Explaining Busyness and Background Noise on Websites · Jens Oliver Meiert
histric-2
- なかのん&マジックさんのツイート: "個人的にはUIにアニメーションは派手さ以外の面では要らないって思ってます。あれがあることで変化が分かりやすいってのはユーザテストしてない結論だと思ってる。大概の人はそんなに視界の変化について注意してないと思ってる。"
- なかのん&マジックさんのツイート: "みんなそんなに視界の変化に注意を払ってるなら交通事故なんて起きないんですよ……"
- なかのん&マジックさんのツイート: "人は見ようとしているもの以外は視界にあっても認識していないと思う。"
- Manabu UenoさんはTwitterを使っています 「マウスオーバーすると色が薄くなるボタンとか、下線が消えるリンク文字とか、何を考えてるんだろう。そのオブジェクトが視覚的に体現していた意味性を手放すということは、操作を拒否してることではないか。そもそもマウスオーバーによる変化は全て不要だと思う。UIを複雑にするだけ。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「私はマウスホバーという、「状態の変化」が正常に処理されたか見えないと困ることがあるので変わって欲しいと思う。みなさんは、アプリのフリーズ(一時的なものも含め)にどうやって気付いてるでしょうか? マウスカーソルが期待通りの変化をしなかったことから気付くこと、多くありません?」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Firefox for Androidでは長押しでmousemoveイベントと、その副産物のhover状態の変更が起きなかったんですが、わざわざ去年か一昨年に入れましたよ? そうじゃないと困るサイトがあったので。 https://t.co/J8oklxOvav」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「マウスオーバーによる表現、PCユーザーが中心だった時台は必要でしたがスマフォ・タブレットユーザーが中心だとわざわざ付ける必要がない気もしますね。 皆さん今でもマウスオーバーで見た目を変えているのでしょうか…?」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox 確かに長押しで変化しますね。スマフォでリンクなどを長押しするユーザーがどれだけいるのか気になります…」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「@Stocker_jp これがないとメニューバー内のメニューがリンクになってるのに、そこにhoverして開かれるポップアップメニューを使うことを期待してるサイトが全滅なのですよ。」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox スマフォでそういう表示が出るサイトはそろそろ改善して欲しいですね…」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@Stocker_jp あえてデスクトップ版にしないといけないところもありますし。モバイル版を劣化版にしちゃってる所、多いですよね。」 / Twitter
- アプリマーケティング研究所さんのツイート: "待ち時間が3倍になったのに、評価があがったエクセルマクロ。 A:処理中に砂時計を表示(2分)😟 B:処理を早回しでみせる(6分)😂 裏側で「何が起きているか?」を早回しでみせたら社内で絶賛された。体感時間が短くなったことと、プロセスの可視化による効果。 アリエリー教授の人生… https://t.co/7RfAB4vSLS"
- なかのん&マジックさんのツイート: "なんだかんだで、メニューって便利よね。モダンなアプリのデザインではどんどん廃止・オプション扱いにされてるけど。最短でのアクセスはできないけど(最低でも2クリック)、整理されてるのでアクセスしにくいメニューってのはそうそう無い。"
- 小池宏幸@Piascoreさんのツイート: "トグルボタン問題、こういうのやね。… "
- なかのん&マジックさんのツイート: "あの分かりにくいウイジットを使い出したAppleのデザインセンスわけわからん。"
- Takashi Kawasakiさんのツイート: "この前のトグル問題の本質だと思うけど、説明に動詞がほしいし、日本語がそもそもおかしい。「起動時またはバックグラウンドで起動」って、何が「または」なんだよ。… "
- Takashi Kawasakiさんのツイート: "HUAWEIのこの辺の設定、全体的に意味がわからん。「消費電力の高いアプリ」っていうのはユーザーが表明するという意味なのか、それとも他の意味があるのか。英語か、中国語で語彙を調べた方がよさげではある。… "
- 最近気になったアプリケーションの操作方法の変更について | アクセシビリティBlog | ミツエーリンクス
- なかのん&マジックさんのツイート: "PDFを普段はブラウザで開きたいけど、PDFをダウンロードしたい場合もある時に、サイト側が通常のリンクとダウンロード用のリンクと別途用意してくれてるケースは正直、便利で助かってる。"
- 👻 道化師 🃏さんはTwitterを使っています: 「「UI をシンプルにする」って言うのは初めから負け戦なんよねぇ。機能そのものや機能のインタフェースをシンプルに出来てないのに一番外側の UI だけシンプルしようとしてもそれは無理がある。」 / Twitter
- Yasuo ItabashiさんはTwitterを使っています: 「@wraith13 UIに必要なのはシンプルさよりも一貫性と意外性のなさ定期」 / Twitter
- Mikio Kiura / ANKR DESIGNさんはTwitterを使っています 「誰のためのデザインか?なんのためのデザインか?をすっ飛ばしてプロダクトを評価することはできない。僕はたまに研修の枕話で、F1の運転席とプリウスの運転席、どっちが良いUIでしょう?なんて意地悪な質問をしたりするんだけど、こんなの利用者も目的も違うから本来比較できないのよ。 https://t.co/PbT9unSV9o」 / Twitter
- なかのん&マジックさんのツイート: "まあ、アカウント作らないと何もできないように思えるシステムってのは良くないと思ってて、アカウント作らないと駄目なシステムであったとしても、作成前に必要情報を入力させていって、じゃあ、今回の情報でアカウント登録しておく?って聞いてくる楽天みたいな方式が正しいんだろうなって思う。"
- なかのん&マジックさんのツイート: "毎回入力すればアカウントを作らなくてもOKにできるなら、それが一番ストレス無いんだろうなと。"
- なかのん&マジックさんのツイート: "アカウントを先に作らせるというのは、今、入力したいことを後に回させられるということで、システムやその運営者が強権的に思えてよくないんだよな。"
histric-3
- hadakadenkyuさんのツイート: "ページ右下の「トップへ戻るボタン」はマジでユーザを誰も幸せにしてない例だと思う。効果確かめたことあんの?アレがあることでユーザの離脱率落ちるの?CTR上がるの?継続率UPする?売り上げ上がる?"
- なかのん&マジックさんのツイート: "一応、ブラウザベンダに在籍してるものとして、タッチスクリーンデバイスのスクロールに、もっと良い方法が無いか考えてみたけど、あんまり思いつかないんだよな。OSレベルでどうにかこうにかして欲しい問題。"
- なかのん&マジックさんのツイート: "今どき、モバイル版とデスクトップ版でURLが違うWikipediaはどうにかならんの?"
- 「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
- 無料でウェブデザインの背景と文字の色を微調整しながら確認できるアプリ「Kontrast」 - GIGAZINE
- 大量の文字と派手な色が並ぶ日本のウェブサイトはなぜこれほどまでに「異質」なのか - GIGAZINE
- bellさんはTwitterを使っています: 「バックエンドはネットにいくらでも落ちてるけど、フロントエンドの設計書ってネットでも見たことないな、書いてるとこあるのかな…色々ツールとかあるものの、コンポーネントカタログはStorybook、ページごとの設計書はfigma、とか? state周りの設計書ってどうやればいいんだろ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「たった58バイトでページの見栄えがこんなによくなるCSSの例。基本的にはページ幅を指定して中央寄せしているだけ。100バイト版もあり。 https://t.co/d83T0h63xq」 / Twitter
- 58 bytes of css to look great nearly everywhere
- 渋川よしきさんのツイート: "UI部品。今までもX, Yと重なりのZの3次元であったけど、最近はZ軸でフォーカスアウト(ぼかし)や、アニメーションという時間軸tが入ってきた。その次は回転でも入るのかな。"
- デザインシステム導入しました - 一休.com Developers Blog
- コウノアスヤさんはTwitterを使っています 「自分でUIをデザインするとき、「押せないボタン」についてよく頭を悩ませる。 Disabledで終わらせがちだけど、たぶん一番良いのは「押せるんだけど、そのアクションが行えない理由と解決策を表示する」なんだよな。AppleのUIでもDisableなボタンは殆ど見ないし。 https://t.co/XhF5DQitrH」 / Twitter
- 日本のアプリのUI(ユーザーインタフェース) は古くて醜いのはなぜでしょうか?に対するMakiko Nukagaさんの回答 - Quora
- 𝐊𝐢𝐭𝐞 / KITERETZ inc.さんはTwitterを使っています: 「すべてのクライアントがデザインシステムに理解があるわけではないからな。ある日突然これを追加して、変更して、削除してってよくあります。コンポーネントであれば削除したら何かしらエラーになりますが、CSS は削除してもなんのエラー出ないから慎重にメンテしないと増える一方。」 / Twitter
- 𝐊𝐢𝐭𝐞 / KITERETZ inc.さんはTwitterを使っています: 「正直すべての機能が使える書きやすいインライン CSS でもいいんですよ。でもそれ Tailwind CSS じゃん。」 / Twitter
- 𝐊𝐢𝐭𝐞 / KITERETZ inc.さんはTwitterを使っています: 「あとよく Tailwind CSS を React と一緒に語られますが、正直クラシックな WordPress テーマとかにも超絶オススメです。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「「自分はデザインが苦手だからデザインの事は他人に押し付けたいです」っていうソリューションは結局うまくいかない。ユーザーが求めているのはむしろデザインの方なのであって情報なんてさして必要とされていない。分離すれば苦しむのはデザインできない奴の方。」 / Twitter
- seya ʕ•ᴥ•ʔさんはTwitterを使っています: 「ついにデザインにもlintな時代か https://t.co/oEtMzjRcDR」 / Twitter
- Design Lint | Figma Community
- せきゆおう🥙Web制作のあれこれ発信する人さんはTwitterを使っています: 「去年も聞いたのだけど、CSSはモバイルファースト(小さいサイズから順々に指定する方法)で構築するように習った人も多いと思いますが「でもPC版のデザインカンプがまず到着して、先にコーディングすることが多いから、実際はデスクトップファーストの方が多いよ」という人どれくらいいますか?🙋♂️」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「UIデザインにおける原則: - Von Restorff効果: 他と違っているものが記憶に残る - Teslerの法則: システムの複雑さはある程度以下には減らせない - Serial position効果: ユーザは最初のものと最後のものがよく記憶に残る。 ... https://t.co/gDW3YCABtV」 / Twitter
- UX laws for writers.. Imagine if you could understand how… | by Emem Ambrose | Oct, 2022 | Medium
- フロントエンド大好きseyaさんさんはTwitterを使っています 「色んなよくある UI パーツの種類、使い方、状態などを整理してるサイト。勉強になる!! https://t.co/1DwtyIdpGx https://t.co/jAhOz8Bkfm」 / Twitter
- UI Control Guidelines | Wireframing Academy | Balsamiq
- なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
- 渋川よしきさんはTwitterを使っています 「Tailwind CSSの使い所、よくわからんなー、と思っていたけど、デザイナーが絵のみを作る、HTMLとCSSはプログラマー、という役割分担だと便利と聞いてなるほど、と思った。CSSまでやってくれるならCSS in JSが便利と。」 / Twitter
- 渋川よしきさんはTwitterを使っています 「Figma to Reactとかも出てきたし、ZeplinとかもCSS出してくれるし、DCCツール直結な世界が数年後の世界な気はするが。」 / Twitter
- Satoshi NakagawaさんはTwitterを使っています: 「Apple の Human Interface Guidelines、最近のはデザインシステムについての具体的な話ばかりで、背景にあるデザイン哲学の部分が一切なくなって読む意味が失われてしまった。「ios human interface guidelines 2011」で検索すると 2011年時点の PDF がひっかかるのでそっちを読むといいと思う。」 / Twitter
- Satoshi NakagawaさんはTwitterを使っています: 「「human interface guidelines 1986」で検索するとひっかかる1986年版でももちろんオッケー。」 / Twitter
水底の血
資料・教育・イベント
- アクセシビリティのわかってる人を育てるにはどうすればよいのか的な、とっちらかったやつ - 水底の血
- アクセシビリティの琴線に触れるいくつかのアプローチ
- Home | Web Accessibility Initiative (WAI) | W3C
- Get resources for… | Web Accessibility Initiative (WAI) | W3C
- Resources for Designers | Web Accessibility Initiative (WAI) | W3C
- Introduction to Web Accessibility | Web Accessibility Initiative (WAI) | W3C
- WCAG 2.1 解説書
- 2021年7月30日JDC/JEPA共催『デジタル社会に必要な情報 アクセシビリティ』講演会記録|日本DAISYコンソーシアム
- EPUBアクセシビリティのJIS規格化について|日本DAISYコンソーシアム
- digidepo_11643920_po_02870002.pdf
- 高齢者、障害者等の移動等の円滑化の促進に関する法律 | e-Gov法令検索
- バリアフリー新法の解説1: 子ども・子育て本部 - 内閣府
- バリアフリー:パンフレット・リーフレット - 国土交通省
- 電子書籍版デザイニングWebアクセシビリティの献本をいただいた - 水底の血
- 都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
- AccSell Podcast Vol.128に出演しました - 水底の血
- アクセシビリティの祭典 2018 感想戦のようなもの - 水底の血
- (メモ)くだんのアクセシビリティアナリストは伊敷氏が勤めるということに - 水底の血
- CSUN 2022レポートの読後メモ的な - 水底の血
- (メモ)JIS X 25010:2013でみる品質モデルとアクセシビリティの関係 - 水底の血
- 2022年秋アニメ主題歌 ミュージックビデオにみるアクセシビリティ - 水底の血
法・ガイドライン・行政
- みんなの公共サイト運用ガイドライン(2016年版)で参照する法律の謎 - 水底の血
- 障害者の権利委員会 一般的意見第2号を読む - 水底の血
- 手話の話を枕に、例の国交省検討会の議事概要から - 水底の血
- (メモ)障害を理由とする差別の解消の推進に関する法律の一部を改正する法律案 - 水底の血
- (メモ) 障害者差別解消法/デジタル社会形成基本法案の審議状況と3月の会議録 - 水底の血
- デジタル庁関連法案審議つまみ食い(4、5月の参議院内閣委員会より) - 水底の血
- (メモ)デジタル社会形成基本法案と情報アクセシビリティ - 水底の血
- 「デジタル社会の実現に向けた重点計画」メモ書き - 水底の血
- コピペ:デジタル社会の実現に向けた重点計画(2021年) - 水底の血
- 障害者基本計画(第4次)とアクセシビリティ - 水底の血
- 世界最先端デジタル国家創造宣言・官民データ活用推進基本計画とウェブアクセシビリティ - 水底の血
- 公共系のウェブアクセシビリティの要件定義を考えるみたいな話から行政への働きかけ云々 - 水底の血
- いわく、ハザードマップにウェブアクセシビリティな問題があるとのことだけれども。 - 水底の血
- (メモ)2022年にあわてないための障害者施策動向 - 水底の血
- 総務省の近畿管区行政評価局によるホームページに関する報告書が面白い - 水底の血
- (メモ)情報アクセシビリティ関連の各省庁の白書や議事録、報告書なんかを淡々と読み進めるにあたっての起点的な - 水底の血
- 「情報アクセシビリティー・コミュニケーション保障法案」参院厚生委編 - 水底の血
- (メモ)障害者権利条約 1回目対日国連審査の資料まとめ - 水底の血
- (メモ)障害者基本計画(第5次)本文案とかのらくがき - 水底の血
- 国交省ハザードマップ検討会のWebアクセシビリティの認識が詰んでいる - 水底の血
用語
- 色覚異常という言葉に関するメモ - 水底の血
- 句読点とか小数点とかのメモ - 水底の血
- (メモ)バリアフリーが和製英語かどうかを少し調べてみた話。 - 水底の血
- アクセシビリティチェッカーA11ycのChrome拡張機能をローカルで作成してみた話 - 水底の血
- Re: 頭字語に空白文字を挿入することの是非とWebアクセシビリティ - 水底の血
- 君はISOの代替テキストのガイダンスを知っているか? - 水底の血
- ISOの代替テキストガイダンスの続編(ものすごい雑なメモ) - 水底の血
- 笑えない「サイト接続のコンプラ問題」、The Valuable 500とアクセシビリティと。 - 水底の血
- EPUB Accessibility 1.1のちょっとしたメモ - 水底の血
- メモ:障害者情報アクセシビリティ・コミュニケーション施策推進法―公布直前号 - 水底の血
- (メモ)ARIA Project Planがいつの間にか更新された - 水底の血
- (メモ)WCAG2のコントラスト比4.5:1とその周辺の話 - 水底の血
- WCAG2の「十分な達成方法」について - 水底の血
- (メモ)W3Cアクセシビリティ成熟度モデルの話 - 水底の血
- ブログネタ帳の掃除:アクセシビリティ関連で記事にできなかったものたち - 水底の血
- (メモ)W3C AAC Symbol RegistryとWAI-adaptの話 - 水底の血
- 『オンスクリーン タイポグラフィ 事例と論説から考えるウェブの文字表現』をほんのちょっぴりお手伝いした話 - 水底の血
色
その他
- Redshift
- jonls/redshift: Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
- EIZO、モニター色校正のための最新認証を世界で初めて取得 - デジカメ Watch
- カラーマネジメントモニター 基本的なキャリブレーション作業の手順の一例 | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
- ディスプレイキャリブレーション 色温度の決め方 5000Kか6500Kか | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
- Color Management Handbook ver.5
- 【カラマネ極意17】印刷の標準規格がなぜ求められるのか - JAGAT
- デジタル写真の必修科目・カラーマネージメント講座 連載 第1回 | GANREF
- カラーマネジメント | 能登印刷株式会社 – 石川県金沢市・白山市の総合印刷・出版|商業印刷・美術印刷・カタログ印刷・商業出版・自費出版・オンデマンド印刷・Webサイト制作
- カラーマネジメントの解説
- トラブルを未然に防ぐ!カラー設定10選 | psgips
- ソフトウェア・キャリブレーションとハードウェア・キャリブレーションの違い | EIZO株式会社
- パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
- 新ドライバでGeForceもOpenGLの10億色出力対応に - PC Watch
- Adobeのオープンソースのアダプティブでアクセス可能なカラーパレットジェネレーター
- HDRモードでも正確な色表現 ~プレビュー版Windows 10+ICCプロファイルを利用するクリエイティブアプリでテスト中 - 窓の杜
- 【ニュース・フラッシュ】Windows 10プレビュー版、HDR環境でアプリごとにICCプロファイルを適用可能に - PC Watch
- 「Windows 11 バージョン 22H2」は色表現でも大きく進歩 ~新API「ACM」の導入で - 窓の杜
- 【Unity】【描画処理】16ビットカラーの中身 – 株式会社ロジカルビート
- 【描画処理】【数学】16ビットカラーの中身(補足編) – 株式会社ロジカルビート
Google ブックス
- 背景イラストメイキング講座 - 草壁 - Google ブックス
- カラーマネジメント技術: 拡張色空間とカラーアピアランス - Google ブックス
blog
- まだCMYKで消耗してるの?〜大幅な色補正をCMYKで行ってはいけない理由〜 – やもめも
- コンポジターに必要なアルファチャンネルの知識(前編) - コンポジゴク
- コンポジターに必要なアルファチャンネルの知識(後編) - コンポジゴク
- 続・Webブラウザのカラーマネジメント対応まとめ : やんま まのblog(仮)
- 機械の目と人間の目の類似点|Rui Ueyama|note
- 日記 (2017 年 10 月中旬)
- 第27回:カラーマネジメントの疑問 色はどこで管理されてるの? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN
- YUVをちゃんと理解してからRGBにコンバートしましょうね : KLabGames Tech Blog
- YCbCr変換による色数の減少 - toruのブログ
- RGB等色関数で現れる負の値の正体 | tech - 氾濫原
- 色を科学する その① 感覚なのに科学できる理由|[色彩工学/カラーサイエンス]YoshiColor|note
- [色彩工学/カラーサイエンス]YoshiColorの月別一覧|note
- 色を科学する その⑦ XYZのトリセツ|[色彩工学/カラーサイエンス]YoshiColor|note
- YCbCr変換による画質劣化の可能性について - toruのブログ
- 「色覚」をめぐる知識のアップグレード――『「色のふしぎ」と不思議な社会』読了感想 - 水底の血
- 広色域とハイダイナミックレンジに関するW3Cのワークショップ | フロントエンドBlog | ミツエーリンクス
- CSSで色を扱うならHSLAで決まり(数字からの色選び) | フロントエンドBlog | ミツエーリンクス
GIGAZINE
- Googleが提唱する「マテリアルデザイン」の普及をフォローするカラーツールが登場 - GIGAZINE
- なぜ画像に「ぼかし」を入れると色の境界部分がつぶれてしまうのか? - GIGAZINE
- 色覚異常の人がより多くの色を見分けられるようになるコンタクトレンズが開発される - GIGAZINE
- ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE
- ChromeやFirefoxなどのウェブブラウザでは色が正しく表示されない場合がある - GIGAZINE
- 16進数カラーコードとカラーネームがひとつにまとまったカラーピッカー「Named Colors Wheel」 - GIGAZINE
- 「ダークモード」に意味はあるのか? - GIGAZINE
POSTD
- 色弱のユーザーにもやさしいランディングページのデザイン | デザイン | POSTD
- 色:ヘキサコードから眼球まで – Part 1. | POSTD
- 色:ヘキサコードから眼球まで – Part 2. | POSTD
- 色:ヘキサコードから眼球まで – Part 3. | POSTD
Qiita
- XYZ色空間に迫る(1) - Qiita
- XYZ色空間に迫る(2) - Qiita
- プログラマが知っているとよい色使い(安全色) - Qiita
Wikipedia
- ICCプロファイル - Wikipedia
- ICC profile - Wikipedia, the free encyclopedia
- YUV - Wikipedia
Twitter
その他
HDR
- FadisさんはTwitterを使っています: 「Valveの中の人がMesaにハイダイナミックレンジ(HDR)サーフェスのサポートを追加しているぞ、という話。広い色空間と広いダイナミックレンジで描画結果を吐けるゲームをLinux上で動かした場合にsRGBかつ狭いダイナミックレンジでしかで表示できない問題を乗り越える為の第一歩 https://t.co/zYyys6mGoV」 / Twitter
- Thanks To Valve, HDR Beginning To Work For Linux Gaming - Phoronix
- FadisさんはTwitterを使っています: 「LinuxにおけるHDRのサポートはよく言って辛い状況が続いている。カーネルのDRM/KMSはDisplayIDの必要な情報を流したり、RGB各10bitや半精度浮動小数点数のフレームバッファを作ったりできるが、Xもwaylandも異なる色空間のイメージを組み合わせる事を考慮していない(カラーマネージメントがない)」 / Twitter
- FadisさんはTwitterを使っています: 「この為XやWaylandではたとえディスプレイとGPUとアプリケーションが広い色空間と広いダイナミックレンジをサポートしていても、狭いダイナミックレンジかつsRGB色空間のサーフェスしか作ることができない」 / Twitter
- FadisさんはTwitterを使っています: 「コンピュータグラフィクスは光のエネルギーで計算しないと計算が狂うため、多くのゲームはエネルギーで色を計算し、トーンマッピングでディスプレイが表現可能な範囲に明るさを圧縮し、最後にガンマをかけてディスプレイに送る色を求める。従って広いダイナミックレンジで吐けるなら吐きたい」 / Twitter
- FadisさんはTwitterを使っています: 「広く用いられているsRGB色空間のRGBで表現できる色は人間の視覚が捉えられる色の範囲に対して狭すぎるため、近代的なゲームはXYZ色空間等のより広い色空間で計算を行い、最後にディスプレイが表現できる範囲の色に潰してディスプレイに送る色を決定している。従って広い色空間で吐けるなら吐きたい」 / Twitter
- FadisさんはTwitterを使っています: 「一方ディスプレイは液晶のLEDバックライトやOLEDディスプレイの技術の進歩により、より広い輝度差、より広い色空間の色を表示できるようになっている」 / Twitter
- FadisさんはTwitterを使っています: 「ゲームはHDRで吐きたい、画面はHDRで表示したいけど、画面への信号が古いsRGBしか通せんから画面を活かせない、という状況を経て「画面とアプリケーションでネゴって広いダイナミックレンジと色空間を扱えそうなら信号の意味を変える」HDRディスプレイが登場した」 / Twitter
- FadisさんはTwitterを使っています: 「ディスプレイがHDRのメタデータを送ってきても、それがゲームまで届かなければ、レンダリング結果をHDRで画面に送ることはできない。XやWaylandを挟んでいる場合ディスプレイのメタデータに基づいてどんな形式でサーフェスを提供するかX等が決めなければならないが、そうした実装はないのでHDRできない」 / Twitter
- FadisさんはTwitterを使っています: 「ただし、VK_KHR_displayを使ってXやWaylandを迂回してゲームが直接ディスプレイと会話する場合、HDRのネゴシエーションができないのは単に「MesaがHDRのメタデータを拾っていないから」でしかなかった」 / Twitter
- FadisさんはTwitterを使っています: 「今回Valveが実装したのはこの部分で、VK_KHR_displayな場合にDisplayIDのHDRのメタデータを読み、HDR対応ならアプリケーションに情報を提供し対応する色空間のサーフェスを作れるようにする。これらの操作にはWindowsでHDRなサーフェスを作るのに使われるのと同じ拡張を用いる https://t.co/AezgBFyUL4」 / Twitter
- wsi/display: Implement HDR support for on KHR_display (!20220) · Merge requests · Mesa / mesa · GitLab
- FadisさんはTwitterを使っています: 「この変更はXやWaylandの上で動くアプリケーションを幸せにするものではないが、ゲームがVK_KHR_displayで全画面でディスプレイを専有する場合、HDRで吐くことを可能にする。SteamのProtonは全画面でゲームを動かす場合にVK_KHR_displayを使うので、そうしたゲームが将来的に恩恵を受けられる」 / Twitter
histric
histric-1
- Rockridgeさんのツイート: "BlinkにCanvasでのカラーマネージメント機能が実装される見込み。HDRディスプレイの普及を踏まえたもので、WebGLとの併用が想定されている。Khronosで議論がされてきたといい、将来的にGeckoでもサポートされそうだ。 https://t.co/3mKPtzn2x5"
- Rockridgeさんのツイート: "Fx54:プリマルチプライ処理とアンプリマルチプライ処理を高速化。参照:https://t.co/ARm3QakXMg / “738343 - Use a central library for pixel format con…” https://t.co/KP6tDbkVFC"
- 738343 - Use a central library for pixel format conversion and alpha-(un)premultiplication
- Rockridgeさんのツイート: "主要ブラウザのカラーマネジメント対応状況が詳細にまとめられた記事。Firefox 8でLUTをサポートしたというのはこのバグだろう。参照:https://t.co/xHinFtLlih / “続・Webブラウザのカラーマネジメン…” https://t.co/eSTzYqe8mg"
- Rockridgeさんのツイート: "Fx57:DCI-P3ベースの広色域プロファイルをサポート。近年のMac環境で色の表示に違いが出るようだ。 / “1250461 - ICC profile (Late 2015 iMac with P3 Retina disp…” https://t.co/mpx3lAgVHF"
- 渋川よしきさんのツイート: "今日は、会社の若者に @m_seki さんから教わった秘伝の技を教えた。とりあえずデータ種類ごとにカラフルにしたいときに、カテゴリ名のハッシュ値を計算して、それを元に色が決まるようにすればいいよ、というやつ。HLS色空間使えば、明るさのばらつきも抑えられてお得。"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚異常な人に一部の機能が使えない家電製品ばかりになり、その状況が年々悪化しているということは、普通に色覚バリアフリーな家電製品を作ってそれを宣伝するだけで、日本国内だけでいきなり300万人をつかめるおいしい状況でもあるはずなのに、家電メーカーは何をやっているんだろう?"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚バリアフリーが当たり前で売りにはならない文具業界や什器業界よりむちゃくちゃおいしい状況なのに。"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "半世紀前の世界には色覚異常な人に一部の機能が使えない家電は存在しなくて、色覚異常な人に一部の機能が使えない文具で満ちていたのに、なんで逆転したのだろう?"
- Rockridgeさんのツイート: "Firefox開発者いわく、カラーマネージメント機能の強化は開発の優先順位が低い。 / “Can we focus more on color management support?” https://t.co/i9XTuh5JNY"
- Fadisさんのツイート: "HTML5のCanvasにfloat16の線形色空間で描けるようにしよう、という提案がなされている。色を正確に再現する必要があるコンテンツの表示や、物理的に正しい色の合成、ハイダイナミックレンジディスプレイの活用等に利用できる https://t.co/4iKE2mUNkd"
- canvas-color-space/CanvasColorSpaceProposal.md at master · WICG/canvas-color-space
- Fadisさんのツイート: "Web屋さんがついに色はRGB各8bitでは全く足りない事に気付いてしまったらしい"
- Fadisさんのツイート: "このproposalはクロノスのWebGLワーキンググループでApple Google Microsoft Mozilla Nvidia他のエンジニアを交えて議論された、って書かれてて「なるほど」ってなった https://t.co/4iKE2mUNkd"
- Fadisさんのツイート: "WebGLからHDRディスプレイに対してHDRレンダリング結果を吐くための下準備か"
- 👻 道化師 🃏さんのツイート: "自分用に作ったモノなんですが、色々なカラーテーブルを作成できるしたツールを作ってみました。各パラメーターは弄る度に URL も更新されるので、その URL をコピーしておけばいつでも同じカラーテーブルを参照できます。配色の参考やディスプレイの色味比較などにどうぞ。 https://t.co/OYONZG9JcA… https://t.co/0quJ8onRdo"
- phi ratio coloring
- 👻 道化師 🃏さんのツイート: "https://t.co/PHf9AMzL3Q このツールとしての肝は hue step を phi ratio にした時のカラーリングで、 saturation, lightness の場合とは適用のされ方が大きく異なり、これは植物の葉(枝)の生え方を上から見たのと同じで、同じ場所(色)が出にくく、いい感じに離れた場所(色)になってくれます。"
- 👻 道化師 🃏さんのツイート: "https://t.co/dgfKQpNF9z lightness を人間の眼で感じる明るさ(luma)で補正(align)する機能を付けては見たものの有効に機能する範囲がかなり厳しいよなぁ。… "
- Fadisさんのツイート: "緑を#00FF00と書くとまず人間が識別できる輝度の幅に対して256階調が荒過ぎる問題に直面し、次に人間が見ることが出来る色の範囲に対してsRGB色空間が狭過ぎる問題に直面し、とどめに高速で遠ざかる#00FF00が赤方偏移して黄色っぽくなる問題に直面する"
- 狐代@冬コミ全日(お燐/玉藻)さんのツイート: "ディスプレイの表示できる色域の問題も… "
- Fadisさんのツイート: "広い色空間と高い輝度の表示が出来るディスプレイも少しづつ出てきてはいるものの、信号として送れる色に対してディスプレイが正しく表示出来る範囲がマチマチで、この辺活かしてリニア空間でのレンダリング結果を出来るだけ潰さずに表示したいゲーム屋さんは工夫を求められる状況になってるっぽい… https://t.co/wYFERdcAKm"
- OS自作したい。技術書典6・う38さんのツイート: "CMYKだと再現できない色があるんだなあ,というのが体感的に分かった."
- nikqさんのツイート: "これ色域マッピングとかRRTとかの効果をアーティストさんが体感で再現してるんだなあ。すごいなあ… "
- のうめん🏗️👺デザイン産業バーチャル機械さんのツイート: "さっきいつきちゃんところで話してたシャドウとハイライトの色ずらしの件は図示するとこんな感じですぞ 基準色からただ明るく、ただ暗くしただけの色を乗せるより、少し色相をズラしてあげることでより鮮やかな色変化になるんよ… "
histric-2
- FadisさんはTwitterを使っています: 「人間が目を通して知覚する明るさと実際の光のエネルギーは非線形の関係にある。8bitで表現された256色段階のグレースケールが線形に変化して見える時、ピクセルの値と光のエネルギーの関係は線形ではない。近代的な3Dグラフィクスは物理モデルから光のエネルギーを求めるため、最後に変換が必要になる」 / Twitter
- FadisさんはTwitterを使っています: 「RGBAのAの厳密な定義が無くて3Dプリンタで透明を扱う際に機器間で互換がとれないから、観測可能な物理量に基づくAの厳密な定義を作ったという論文。同じ材料でも大きさを変えると透過する光の量は変わるが、Aはサイズによらず同じ値が同じ見た目になるように定義される https://t.co/lXxoabovRx」 / Twitter
- [1710.00546] Redefining A in RGBA: Towards a Standard for Graphical 3D Printing
- FadisさんはTwitterを使っています 「HDRで吐くと色が薄くなって見えるっていうのは「私はゲーム開発者ですがコンテンツを正しい色で見て作っていません」と言っているのと同義なんだよ」 / Twitter
- FadisさんはTwitterを使っています 「DirectXがRGBA各4bitで1ピクセル16bitのサーフェスという物をサポートしていて、Vulkanでも同等の物があったらVulkan上にDirectXを実装するのが捗るってことで、そういうVkFormatを追加する拡張が出来たらしいんだけど、拡張の名前VK_EXT_4444_formatsて… https://t.co/kAQAkoe2ZU」 / Twitter
- Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK - Phoronix
- 7594591200220899443さんはTwitterを使っています 「著者の誠実な態度は買うが、本来こういう事をちゃんとちゃんとしていく事こそ出版社の仕事である。出版社が仕事しないならわざわざ商業出版する意義に乏しい。」 / Twitter
- 解答略さんはTwitterを使っています 「拙著「作ろう!CPU」について、重刷が決定したようです。 あちこちから指摘をいただいておりますが、私の無知のせいで、本書の第1刷は色弱の方に全く読めないものを出版してしまいました。本当に心よりお詫び申し上げます。私としては色を置換して第2刷にしたいと考えて、現在出版社と交渉しています」 / Twitter
- 解答略さんはTwitterを使っています 「ペアの配色を、こんな感じに変更しようと考えています。今回の版では間に合わないかもしれませんが、いずれ必ず変更しますので、色弱の方はもうしばらく購入をお待ち下さい。 https://t.co/39cXiME47K」 / Twitter
- きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「@kaitou_ryaku そもそも色分けで線の違いを表現するというのがあまりよくないです。色よりも、形で表現したほうがいいと思います。この場合であれば白抜きにするか点線にするかなどです。 もしくは明暗差で。」 / Twitter
- ǝunsʇo ıɯnɟɐsɐɯさんはTwitterを使っています 「「色覚異常の人に合わせて赤と緑で判別してる図表を変えないといけないの? めんどくさい」と思った人。 多分「日本語に合わせて多言語化対応しないといけないの? 英語のままでいいじゃん。めんどくさい」と虐げられた悔しい体験がほとんどない幸せなIT生活が若い頃から当たり前だった世代では?」 / Twitter
- ふれーむさんはTwitterを使っています 「@otsune っていうか別に色弱者のユニバーサルカラーデザインだけでもないですよね。あの領域って。みんな老いたらレンズ体濁るし。」 / Twitter
- FadisさんはTwitterを使っています 「glTF、構造自体は近代的なGPUで読みやすい良い3Dシーンのフォーマットなんだけど、「色は全てsRGB色空間の値だ。画像ファイルに色空間の指定があっても無視しろ」のところで、ウッってなるゲーム屋さん多そう」 / Twitter
- FadisさんはTwitterを使っています 「色、「FF0000が赤です」みたいなのWeb屋の色の理解を見ると「色、なんて簡単なんだ」ってなるし、CIE XYZ色空間の少しでも大きな範囲を埋める為にここ10年くらいディスプレイ屋がやってる努力を見ると「色、なんて難しいんだ」ってなる」 / Twitter
- FadisさんはTwitterを使っています 「すごく見たくない色の表し方になるけど、Webにwide color gamutがやってきたとき、既存のスタイルシートの意味を壊さずに拡張するとなると本当にこういうアレになるのかもしれない…」 / Twitter
- nikqさんはTwitterを使っています 「scRGBに拡張して#-FE+FF-4Cみたいな表記を許せばXYZすべて表記できるようになる…!」 / Twitter
- nikqさんはTwitterを使っています 「ただこれだと高輝度が表現できなくてさみしい」 / Twitter
- 福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「@ishiimark_sign @yoh7686 そういえばゲームパブリッシャー大手のElectronic Artsには色覚問題を含めアクセシビリティを扱う役職があるようで、へえと思った記憶があります https://t.co/LRprJrMMbe」 / Twitter
- 福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「EA Sportsのアクセシビリティ・リードの人が、PowerPointプレゼンを視力の悪い人や色覚異常のある人にも見やすくするための配色やフォント設定をまとめたカードを公開しています。https://t.co/V6rD3s7STO RGB値はスレッドの先でテキストでも書き起こしてくれてる」 / Twitter
- Karen StevensさんはTwitterを使っています 「I'm currently having these cards delivered to everyone in the studio. It took many iterations of colors before those in the studio with Protanopia, Deuteranopia, and even the rare Tritanopia, could see all colors distinctly, yet keeping the shades close to colors already favored. https://t.co/KeNFojOeNo」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CSSの色指定で、darkgray が gray よりも明るいのは何故? これはX11のrgb.txtにさかのぼる。X11では grayは明度75%であり、実際にdarkgray (明度66%) のほうが暗かった。しかしその後HTML/CSSでgray (明度50%) が再定義きされ、darkgrayはそのまま残った。へえー https://t.co/Q1Gt95eXcu」 / Twitter
- Why Dark Gray is Brighter than Gray In CSS | by Casper Beyer | Medium
- FadisさんはTwitterを使っています 「殆どの画像編集ソフトウェアはピクセルの色をRGBで保持している為Kubelka-Munkモデルを適用するには情報が足りない。論文では基本となる顔料の色を数種類に絞り、それらの組み合わせで今の色になっているとしたら何が混ざっているかを推定する事でRGBを顔料の割合に変換して本物らしい色の変化を求める」 / Twitter
- Mixbox - Practical Pigment Mixing for Digital Painting
- FadisさんはTwitterを使っています 「画像編集ソフトウェアのブラシが色を混ぜた時に本物の顔料のような色にならない問題を解決する論文。顔料を混ぜた時の色の変化はKubelka-Munkと呼ばれるモデルに従うが、このモデルではRGBで同じ色であってもその色に至るまでに混ぜた顔料によってその後の振る舞いが変わる https://t.co/VmgfqNU1pt」 / Twitter
- Make Beautiful Gradients in CSS, with linear-gradient, radial-gradient, or conic-gradient.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「CSSで美しいグラディエーションを作るには: 通常のRGB値を補間すると、例えば黄→青と変化する中でどうしても灰色の部分ができてしまう。これを避けるためRGBではなくHSLやLABなど別の色空間で補間する手がある。ツールを使って中間色を指定すればCSSでも実装可能。 https://t.co/O9onQSl02E」 / Twitter
- エヌユルさんはTwitterを使っています: 「エンジニアの作るテーブルとデザイナーの作るテーブルの違いとかいうやつ、 真っ先にデザイナーのカラフルなボタンは色覚障害の人には辛いだろうなと思った 世のツールキットのデフォルトがあんまりカラフルじゃないのは理由があるんだよね」 / Twitter
- 川端裕人 『ドードーをめぐる堂々めぐり 正保四年に消えた絶滅鳥を追』『「色のふしぎ」と不思議な社会』さんはTwitterを使っています: 「「色覚多様性」は「色覚異常」の言い換えだという誤解がまかり通っていますが、実際には「正常」も含めて多様性の一部です──いろいろな人のいろいろな色 色覚多様性をめぐって 川端裕人 第6回 準備の章【前編】ヒトの色覚多様性について知っておくべきこと⑤ https://t.co/ZESUrVCl6M #学芸の森」 / Twitter
- 集英社学芸部 - 学芸・ノンフィクション
- 川端裕人 『ドードーをめぐる堂々めぐり 正保四年に消えた絶滅鳥を追』『「色のふしぎ」と不思議な社会』さんはTwitterを使っています: 「「色覚異常」を「色覚多様性」と言い換えるのは気持ち悪いとか、もやっとするとかいう感想をあちこちで見るけど、それは当然だと思います。言っていることの階層が違うわけで、言い換えのはずがないのに、「誤用」されることで、気持ち悪さだけが広がるのは、良いことではないと思うのです」 / Twitter
- Shoji Hashimoto (橋本省二)さんはTwitterを使っています: 「強調したいデータ点を黒で塗りつぶし、対比する点は白抜きに。色をつけるなら白黒印刷でも判別できるように。昔は厳しく指導されたグラフの作り方は、いまは無法状態。 何を言いたいかというと、python+matplotlib (のデフォルト)で作った図は、色盲には判別不能です。イライラレフリーから一言。」 / Twitter
- OKUMURA, Akira(奥村 曉)さんはTwitterを使っています: 「@ShojiHashimoto3 うちのコラボレーションではこういうのを出していますが、それでも無法状態に近いですね。博士論文の審査項目に課せば良いのではないかと思います。 https://t.co/tlyvz9d1aH」 / Twitter
- CTA_ColourBlindnessBestPractices.pdf
- Little CMS – Great color at small footprint
- Color Tool - Material Design
- 色覚異常 | 診療内容 | 医療法人 慶心会 なかやま眼科クリニック|大阪市福島区の眼科
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「多くの人が、ダークモードを「読みやすい」「目に優しい」と考えているが、これらに科学的根拠はない。読みやすさに重要なのは画面のコントラストと文字のサイズである。ただし、画面がOLED/AMOLEDの場合、ダークモードはバッテリー消費を抑える可能性がある。 https://t.co/l2YKs14ykR」 / Twitter
- Is Dark Mode Good For Your Eyes? | Kev Quirk
DOM アクセシビリティ ツリー
- Accessibility tree (アクセシビリティツリー) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
- DOMツリーとスクリーン・リーダー — freeeアクセシビリティー・ガイドライン Ver. 202210.0 ドキュメント
- [アクセシビリティ] タブを使用してアクセシビリティをテストする - Microsoft Edge Development | Microsoft Learn
- アクセシビリティオブジェクトモデル | aom
- アクセシビリティツリーを読んでアクセシブルな実装に役立てよう - Qiita
- アクセシビリティオブジェクトについて
- アクセシビリティツリーを読む / Reading Accessibility Tree - Speaker Deck
- 全部入りHTML太郎さんはTwitterを使っています: 「@kazuhito @ShiftbrainStd ご指摘ありがとうございます。DOMツリーのみからアクセシビリティツリーが構築されるというのは誤りだったと思います。display:noneによってアクセシビリティツリーからノードが削除されたり、table要素にdisplay:blockが指定されるとRoleが変わってしまう、というような意味で間違いないでしょうか?」 / Twitter
- 過大な DOM サイズを回避 - Chrome Developers
音声ブラウザ
- 音声ブラウザ - Google 検索
- 水無月ばけらさんのツイート: "「メディアクエリや音声向けのCSSがあまり期待通り動いてくれない」というのは、スクリーンリーダーが「音声ブラウザ」ではなく、普通のブラウザの表示結果を読み上げているだけだからですね。… "
- どうけ 🍣さんのツイート: "とりあえず発表したことを書きました。懇親会で話したことはまた別途書きます。 #gaad2019_tokyo 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介 @doke|note(ノート) https://t.co/9if35W1gbz"
- 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介|note
W3C
- Accessible Platform Architectures (APA) Working Group | Web Accessibility Initiative (WAI) | W3C
- Inaccessibility of CAPTCHA
- Research Questions Accessibility Task Force
- Video: Web Accessibility Standards and Benefits | W3C Blog
- W3C Strategic Highlights: Web for All (Web Accessibility) | W3C Blog
WAI-ARIA
W3C
- WAI-ARIA Authoring Practices 1.1 Note helps authors make content accessible | W3C Blog
- Digital Publishing WAI-ARIA Module 1.0
- Accessible Rich Internet Applications (WAI-ARIA) 1.2
- Core Accessibility API Mappings 1.2
- WAI-ARIA Authoring Practices 1.1
- HTML Accessibility API Mappings 1.0
水底の血
- 2015年末におけるWAI-ARIAの今をものすごくざっくりと - 水底の血
- 某プログラミング知識共有サービスっぽい古いエントリーへの注意書きを付けてみた - 水底の血
- WAI-ARIA 1.1、DPUB-ARIA 1.0、HTML 5.2ほかが勧告案になっていた - 水底の血
- WAI-ARIA 1.2の草案が発行されてた - 水底の血
- (メモ)WAI-ARIAのロードマップ - 水底の血
- WAI-ARIA勉強会で喋った話 - 水底の血
フロントエンドBlog
- Webコンテンツの推奨実装方法集「WAI-ARIA Authoring Practices 1.1」 | フロントエンドBlog | ミツエーリンクス
- あのWAI-ARIAがIDL属性として実装される!? | フロントエンドBlog | ミツエーリンクス
<div> や <span>
- トミーさんはTwitterを使っています: 「WAI-ARIA 1.2 で <div> や <span> に aria-label, aria-labelledby を付けるのが禁止になった件、 ARIA in HTML の Editor's draft の方で詳しく書かれていたのか。 https://t.co/pvJRNQgpuj」 / Twitter
- ARIA in HTML
- トミーさんはTwitterを使っています: 「🆖 <div aria-label=""> 🆖 <p aria-label=""> 🆗 <ul aria-label=""> 🆗 <li aria-label=""> 🆖 <span aria-label=""> 🆗 <img aria-label=""/> うーん、基準がよく分からないな。」 / Twitter
- 全部入りHTML太郎さんはTwitterを使っています: 「@SaekiTominaga リンク先の箇所を確認すると、その要素の(暗黙の)roleにおいて、Name fromとしてauthorとcontentのいずれもサポートされていないもの(prohibited)には指定できないとありますね。各値の定義はこちらです https://t.co/QxFd3mfyAd」 / Twitter
- Accessible Rich Internet Applications (WAI-ARIA) 1.2
- トミーさんはTwitterを使っています: 「@_yuheiy なるほど、そのリストを見た上でなお、 generic ロールが名前禁止な一方で listitem が OK な違いってなんだろうという疑問があります。(例えばランドマークやフォーカス可能要素に当てはまらないものは禁止、とかであれば納得なんですが)」 / Twitter
- Accessible Rich Internet Applications (WAI-ARIA) 1.1 日本語訳
- Accessible Rich Internet Applications (WAI-ARIA) 1.0 日本語訳
- ARIA Techniques | Techniques for WCAG 2.0 日本語訳
- WAI-ARIAを活用したフロントエンド実装 | CodeGrid
- WAI-ARIA の基礎知識 — Website Usability Info
- HTML講座 - WAI-ARIA
- WAI-ARIA をマークアップに取り入れたシンプルなタブ - CSS HappyLife
- WAI-ARIAを活用したJavaScriptによるDOM操作 // Speaker Deck
- WAI-ARIA Authoring Practice Dialog(Modal)のフォーカス管理 - /var/log/sukoyakarizumu
- Introduction - webcomponents.org
- The Accessibility Object Model (AOM) | aom
- WAI-ARIAの基本 - ウェブ開発を学ぶ | MDN
WCAG
W3C
- WAI-Tools Project Launched | W3C Blog
- WCAG 2.1 is a Candidate Recommendation | W3C Blog
- Web Content Accessibility Guidelines (WCAG) 2.1
- Understanding WCAG 2.1
- Techniques for WCAG 2.1
- Understanding Success Criterion 2.1.4: Character Key Shortcuts
水底の血
- WCAG 2.0ノートの本体更新予告やら日本語訳やら - 水底の血
- 新しいWCAG 2.0解説書がWAICサイトで公開されました - 水底の血
- WCAG 2.0 解説書
- WCAG 2.1 FPWDがもうすぐ出そう(提案間にあわない) - 水底の血
- 2016年版のWCAG 2.0達成方法集がWAICサイトで公開されました - 水底の血
- HTMLラジオボタンを大きくする方法について - 水底の血
- Japan Accessibility Conferenceに登壇します - 水底の血
- WCAG 2.0解説書の更新版と、How to meet WCAG 2.0の日本語訳が公開されました - 水底の血
- PDF版 JIS X 8341-3:2016, WCAG 2.0早見表/逆引き表作成裏話 (Web Accessibility Advent Calendar 2017) (有限会社時代工房)|AccSellクリッピング|AccSell
- WCAG 2.0クイックリファレンスが更新されました - 水底の血
- WCAG 2.0 クイックリファレンス (WAIC)|AccSellクリッピング|AccSell
- このごろのWAIC WG4の活動について - 水底の血
- WCAG 2.0関連文書レビューのご案内(6/14〆) - 水底の血
- WAICサイトのWCAG 2.0関連文書が更新と、WCAG 2.1訳の話題 - 水底の血
- このごろのWAIC WG4(2020年3月版) - 水底の血
- WCAG 2.1解説書の2020年12月版への更新進捗とACT Rules Format 1.0日本語訳 - 水底の血
- WCAG 2.1の「次」について - 水底の血
- WCAG 2.2の策定作業が始まっていた - 水底の血
- (メモ)WCAG 2.2がいい感じにアレになるには(?) - 水底の血
- なかのんクエストさんのツイート: "GeckoはネイティブのTheme API使ってレンダリングするんで、サイズ固定なWinやCocoaだとscale以外はどうしようもない気が。 / HTMLラジオボタンを大きくする方法について - 水底の血 https://t.co/3AAIc3dtGj"
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その1 | フロントエンドBlog | ミツエーリンクス
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その2 | フロントエンドBlog | ミツエーリンクス
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その3 | フロントエンドBlog | ミツエーリンクス
- WCAG 2.0 達成方法集
- 柴田宣史さんのツイート: "Twitterのキーボードショットカット。必ずしも視覚障害者でなくっても、ずいぶん便利だと思います。… "
- うおさんのツイート: "誤爆する話、ちょっと前に見て気になっていたところです。 WCAG2.1でみんな幸せになれる感じでしょうか。 https://t.co/3ACIT6JRry… "
- 柴田宣史さんのツイート: "なるほど。 2.1.4: Character Key Shortcuts (Level A) If a keyboard shortcut is implemented in content using only letter, punctuation, number, or symbol characters, then at least one of the following is true: - Turn off - Remap - Active only on focus… https://t.co/3hJ0s2eb3G"
- もんどさんのツイート: "なるほど。 2.1.4 文字キーのショートカット (レベル A) コンテンツに文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットが実装されている場合、少なくとも次のいずれかを満たしている: 解除 再割り当て フォーカス中にのみ有効化 https://t.co/vUE60Z8t6f… https://t.co/uaIYg5cJT3"
- Web Content Accessibility Guidelines (WCAG) 2.1 (日本語訳)
JIS
- JIS X 8341-3:2016の公示 | コラム | ミツエーリンクス
- JIS X 8341-3が改正・公示された - 水底の血
- JIS X 8341-3:2016は誰が作ったのか - 水底の血
- chikoskiさんのツイート: "JISにもWeb Accessibilityに対するガイドラインがあります。JIS X 8341-3 https://t.co/VPlNH7J87W WCAG2.0とほぼ内容は同一ですが… #WeJS"
- JIS X 8341-3:2016 解説
- chikoskiさんのツイート: "はい… https://t.co/nVuf54CTjB"
Mozilla
- アクセシビリティサービスインジケーターとは? | Firefox ヘルプ
- タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux
- Rockridgeさんのツイート: "Fx59:TBNotifier.exeがアクセシビリティサービスとしてFirefoxにアクセスできないようブロックした。Ask Toolbarの一部とのこと。 / “1421018 - Block TBNotifier.exe …” https://t.co/PwKO5f1cpI"
- 1421018 - Block TBNotifier.exe from accessing accessible services
- Makoto Kato ︎︎さんのツイート: "アクセシビリティが有効になってるとChromiumのバグを開く際にクラッシュする話に今日何度も引っかかってる https://t.co/Nv5zZ2fxxI"
- アクセシビリティのためのメディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN
- 「Firefox 99」正式版リリース、読み上げ機能の使い勝手が向上 - GIGAZINE
- 「Firefox 106」正式版リリース、画像内のテキスト抽出機能が追加 - GIGAZINE
MS
- アクセシビリティ: Microsoft Edge と Windows 10 でさらに多くの人が Web を利用できるように | Microsoft Edge Japan
- EdgeHTML15 のアクセシビリティの向上 | Microsoft Edge Japan
- Windows 10 October 2018 Update のアクセシビリティについて - Windows Blog for JapanWindows Blog for Japan
- Masaru Iritaniさんのツイート: "Windows アプリケーションとウェブページのアクセシビリティ対応を簡単に確認できるツールが公開されました。オープンソースです。… "
- Microsoft Developerさんのツイート: "#A11y is important to us and we want to ensure it is easy for you to foster inclusion in your own apps. Announcing Accessibility Insights for Windows and Accessibility Insights for Web: https://t.co/JeIFc9gKJl… https://t.co/c2yGGgTziY"
- Microsoft open sources Accessibility Insights - Open Source blog
- Accessibility Insights
- Microsoft/accessibility-insights-web: Accessibility Insights for Web
- 【大河原克行の「パソコン業界、東奔西走」】Windows 10から大きく変化したWindows 11のアクセシビリティ機能 - PC Watch
- クラウドと機械学習で代替テキストのない画像に説明を付与 ~「Microsoft Edge」に新しいアクセシビリティツール - 窓の杜
- Windows 8.1/8 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
- Windows 7 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
- Windows 10 のアクセシビリティ機能 - マイクロソフト アクセシビリティ
- アクセシビリティ
- マイクロソフト アクセシビリティ ホーム
- アクセシビリティ対応アプリケーションの開発 – Windows アプリ開発
- 支援技術情報トップ - マイクロソフト アクセシビリティ
- Windows Vista のアクセシビリティ機能 | マイクロソフト アクセシビリティ
- Windows のマウス キー機能 - マイクロソフト アクセシビリティ
ルビ
- Makoto Kato ︎︎さんはTwitterを使っています 「こんなのFrorianとひもりんとミーティングしてしまえばいいのにとしか思わないんだが。ただARIA側である程度骨組みやらないといけないと思うんだよね、これ https://t.co/vZzh925tQx」 / Twitter
- Webのルビ仕様にはアクセシビリティを阻害している面がある。「日本DAISYコンソーシアム」が改善を求めてブラウザベンダ、WHATWG、W3Cらに公開書簡 - Publickey
- もんど@HTMLの本作成進行中✏️さんはTwitterを使っています 「@makoto_kato いつだったか、あるいはどこだったか忘れましたけど、ARIA WGはHTMLに入ってから考える、みたいなことを言ってた気がしますね。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「@momdo_ まぁTPAC2021のARIAの議題には入りそうなので、それでなんか答えでればいいですけどね」 / Twitter
- もんど@HTMLの本作成進行中✏️さんはTwitterを使っています 「@makoto_kato そういう意味では実にギリギリのタイミングでの書簡でしたね……」 / Twitter
20??年のWebアクセシビリティ
- 2014年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2015年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2016年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2017年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2018年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
infoQ
- Visual Studio 2017 15.3 がリリース。 Adds .NET Core 2 がサポートされた。
- Appleはどのようにして手書きの漢字をリアルタイム認識しているか
- MicrosoftはAzure Bot ServiceとLanguage Understandingの一般提供を発表した
- HTMLコントロールの残されたアクセシビリティの問題
スライド
- アクセシビリティとこれからのWebデザイン
- Japan Accessibility Conference vol.1 アクセシビリティ・ガイドラインの歩き方(初心者編) - Google スライド
- 創業期の医療スタートアップに立ちはだかった3つの壁 / Three challenges of medical startup - Speaker Deck
- the-past-and-future-of-accessible-front-end-development - Speaker Deck
- アクセシビリティツリーを読む(TechFeed Conference 2022) - Google スライド
- 個人からチームに広げるアクセシビリティ向上の輪 / Accessibility improvement expanding from individual to team - Speaker Deck
Twitter
histric
histric-1
- Rockridgeさんのツイート: "Fx51:リーダーモードのNarrate(音声読み上げ機能)で、読み上げの速度を5%刻みで細かく調整できるようになった。これまでは25%刻みだった。 / “1316828 – Allow finer control over n…” https://t.co/Hg5ZaJFCQB"
- 犬洋さんのツイート: "色盲の人にも分かりやすい信号機これすごいなぁ https://t.co/z1nGgdCKXo"
- Rockridgeさんのツイート: "Fx59:アクセシビリティサービスが、テキスト/ハイパーリンク/属性の情報を一挙に取得できるようになった。プロセス間通信が減少するのでパフォーマンスの向上につながる。 / “1419362 - [e10s a11y] Handl…” https://t.co/522i1Qx39E"
- もんどさんのツイート: "https://t.co/ENVZw1R9XK この辺からコーポレートサイトだけでなく、ne¥.jpもどうにかしてと言うとか。… "
- ryomatsuさんのツイート: "アクセシビリティ… "
- JIS X 8341-3:2016に基づく試験結果表示(ウェブページ単位:2016年3月31日公開) | ウェブアクセシビリティ方針 | サイトご利用にあたって | NTTドコモ
- 柴田宣史さんのツイート: "また、サイトに埋め込むGoogleのサイト内検索のキーワードの自動補完も、スクリーリーダだと気がつかないうちに補完されているケース(自分はキーワードを入力し終わったので、つぎのユーザインタフェースコンポーネントに移動するためにTABキーを押す)があるので、なかなか悩ましい。"
- なかのん&マジックさんのツイート: "個人的にはTabキーのイベントはWebアプリで発火すべきではなかったと思ってます。今更なのでそれはできないけど。"
- なかのん&マジックさんのツイート: "ブラウザのa11y上の問題で、どのブラウザも一部のキーコンビネーションはWebアプリで発火しないようになっているものの、やはり「バグ報告」はやってきますね、いつまでも。"
- なかのん&マジックさんのツイート: "Webアプリは読み込んだだけで利用者の同意なく動き出すものなので、ネイティブアプリ同様の何でもアリ感はさすがに認められないわけです。"
- ゆうてん🥶さんのツイート: "del要素のアクセシビリティ対応例 https://t.co/vNTt5Y7NtF 疑似要素を読み上げさせるのトリッキーだな"
- <del>: 削除文字列要素 - HTML: HyperText Markup Language | MDN
- 未識魚 /中川譲@3/21~キャラクターで描く千住展2019さんのツイート: "普通の人でもディスレクシア(読字障害)の気分が味わえそうな事例を作ってみた。 左:UDデジタル教科書体、右:VDRロゴJrブラック (芥川龍之介「愛読書の印象」より) 右でも確かに1文字ずつ追えば「読める」けどものすごく辛い。… "
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「autofocus属性に限らず自動でfocusを操作する時はa11y的な配慮が必要、っと / 1件のコメント https://t.co/DRshZwQv7V “Bruce Lawson's personal site” https://t.co/Op2WTBToHt」 / Twitter
- Bruce Lawson's personal site
- Bruce Lawson’s personal site : The accessibility of HTML 5 autofocus
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「autofocus属性に対してLintで警告するならfocus()メソッドに対しても警告が必要だと思うのだけれど、どうなんじゃろう」 / Twitter
- Yoshiyuki KoyanagiさんはTwitterを使っています: 「いつからか把握していませんが、SBIネット銀行で電話番号の変更をするとLiquidのスマホで本人確認が必須になっていました...スマホで自撮りするタイプの本人確認は視覚障害があると突破できないんですよね もし音声で「顎をひいてください。」みたいに指示されたら操作できるんですが」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Cursorless - 音声入力のみでキーボードよりも速くテキスト編集ができるコマンド体系。テキストの各所に異なる色やマークをつけておき、それに対応する単語によって位置を素早く指定できるらしい。たしかに使いこなせば速そうだが、覚えるのは簡単ではなさそう。 https://t.co/Q4Hj3TwscY」 / Twitter
- cursorless-dev/cursorless: Don't let the cursor slow you down
- なかのん&マジックさんのツイート: "長いことブラウザ屋さんやってるけど、未だにアクセシビリティツールがどうやってコンテンツを取得してるのかは知らない……"
- なかのん&マジックさんのツイート: "なんとなく、各OSのa11y APIと、DOMへのアクセスの両方だと思ってたけど、前者だけなのかな?"
- 一般社団法人レプロ東京【REPLO TOKYO】さんはTwitterを使っています: 「当チームのプラチナパートナーである「一般社団法人日本身体運動科学研究所」代表の笹川様が、7月22日に書籍を出版しましたのでお知らせいたします。 腰痛でお悩みの方、日頃スポーツを行っている方、トレーナーの方などは是非参考にしてみてください! https://t.co/QIk7qgLHvG」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「個人的にはできる場合は案2でやってるなあ。でも細かい都合で案1で p にする場合もあるなあ(その場合は意味的な事は目をつぶる気持ちで)」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「ページ情報としては大昔から meta description とかあるんだから、h1 とか見出し系タグにも補足情報的なのマークアップするやつ欲しいよなあ」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「HTMLの情報設計の小難しいことを考えるのが好きな人たちへ相談。さっきから小一時間、アタマを悩ませている。定期的にコレ悩むような気がする。 https://t.co/MBM7GeKY3V」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「HTMLの美学の世界なんだけどね・・・宗教戦争かもしれない・・・。情報設計を離れると、SEOの効果としてやや異なるはあるかもしれないが・・・。」 / Twitter
- itukiさんはTwitterを使っています 「@storywriter 案2派なんですけど、〜を文字として認識させたくない病のほうがやばいです before,afterにしたい」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「@ituki_b とても正しいアクセシビリティの観点です…さすがです!! 「〜」はスクリーンリーダーの読み上げで意図しない読み上げをされるケースがあり、耳で聞いていると日本語の意味がわからなくなります。」 / Twitter
- かずみん☆めい。さんはTwitterを使っています 「@storywriter HTML5には, 構造化タグとしてarticle, section があるますが, subtitleはないですね. titleタグは別用途. 私は構造とスタイルは分離する主義なので, <span class="subtitle>... </span> または, <div class="subtitle> ... </div> かな?」 / Twitter
- いのうえのかつき@人間中心設計専門家さんはTwitterを使っています 「@storywriter 昔はhgroup使うとかありましが自分はh1に突っ込んでspanかsmallですかね。smallは宗教あるかもです。 CSSなくても意味がわかるという観点ならこうゆうところにsmall使うのも一つの形として面白いなとか思いました笑」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「@katsuki_inoue なるほど <small> ならセマンティックになるやもです!」 / Twitter
- 徳丸 浩さんはTwitterを使っています: 「Reactで開発する動画を見ていると、checkboxのchecked属性を操作せず、CSSで見た目だけ変化させているものがありました。状態はJavaScriptのスクリプト側で保持しているので、checked属性はセットしなくてよい…と。「よくある方法」かどうかまでは知りません」 / Twitter
- MR.CASUAL SAJDIさんはTwitterを使っています: 「@ockeghem 諸処理→(html) ↳DOM→Accessibility Tree ↳表示 ↳Accessibility Suppoted Tech. ↳ScreenReader という感じなのでHTMLというかDOMにならない要素(属性)はアウトですね。」 / Twitter
- 徳丸 浩さんはTwitterを使っています: 「@SAJDI4411 ご指摘ありがとうございます。他の方からもコメントいただきました。その点に思い至らなかったのは我ながら未熟でした」 / Twitter
- Hoshi TakanoriさんはTwitterを使っています: 「@ockeghem それはアクセシビリティ的に問題があるのではないでしょうか。」 / Twitter
- 徳丸 浩さんはTwitterを使っています: 「@hoshi_takanori 確かにそうですね。ご指摘されるまで気づきませんでした…違和感はあったのですが、そう言われると、違和感が言語化された感じです。」 / Twitter
- アクセシブルなフロントエンドコンポーネントの完全ガイド - 後編 | POSTD
- アクセシブルなフロントエンドコンポーネントの完全ガイド - 前編 | POSTD
Unicode
その他
その他
- Man page of ASCII
- Bonji Input 梵字入力
- 文字コードDB
- FileFormat.Info · The Digital Rosetta Stone
- rusticstuff/simdutf8: SIMD-accelerated UTF-8 validation for Rust.
- 第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
- 文字のチェック方式 - マイクロソフト系技術情報 Wiki
- 文字コードについて
- 中国語の文字コード
- Kyoto University Research Information Repository: 日本・中国・台湾・香港・韓国の常用漢字と漢字コード
- ISCIE2001.pdf
- CP932変換表の問題が顕在化する例 - yanok.net
- 書家の第3水準漢字が文字化けするわけ - yanok.net
- Java 9 でようやくResourceBundle のデフォルト文字コードが UTF-8に - yanok.net
- libiconv - GNU Project - Free Software Foundation (FSF)
- なかのん&マジックさんのツイート: "へー。便利そう。 / "WTF-8 (Wobbly Transformation Format − 8-bit) is a superset of UTF-8 that encodes surrogate code points if they are not in a pair." https://t.co/uvxuX2KXX6"
- The WTF-8 encoding
- 強いユニコード - Google 検索
- ドッグさんはTwitterを使っています 「godot engine って font fallback とか RTL とか CJK variants とか BiDi とかテキストレイアウトちゃんと実装してるのか https://t.co/znfSgWVG4X」 / Twitter
- Godot Engine - Complex text layouts progress report #2
- Your code displays Japanese wrong | Your Code Displays Japanese Wrong
ICU
Rust
- icu - Rust
- unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
- ICU4X 0.4 Released – Unicode
- ICU 55.1: Main Page
- JVNVU#97322697: ICU4C ライブラリに複数の脆弱性
- International Components for Unicode - Wikipedia
- Downloading ICU - ICU - International Components for Unicode
- ICU License - ICU 1.8.1 and later
- ICU のライブラリサイズを削減する方法 - Qiita
- 小倉唯さんのツイート: "https://t.co/hR3900GqQl うおおおおおおおおおおおお, ABI 大崩壊わらうw"
- Makoto Kato ︎︎さんのツイート: "Geckoの中のICU、59に上げるのはキャンセルになってます"
- Rockridgeさんのツイート: "Fx56:文字の符号化処理を行うコンポーネントがuconvからRust言語ベースのencoding_rsに置き換えられた。参照:https://t.co/WFb7iNCLq2 / “1261841 - (encoding_rs)…” https://t.co/QGyHR8aExD"
- Uconv - Wikipedia
- uconv(1) - Linux man page
- Makoto Kato ︎︎さんのツイート: "ICU 60.1って、Fuchsiaのサポート入ってるんだ"
- Makoto Kato ︎︎さんのツイート: "https://t.co/kCtE4o40Gn icuもLinuxでUTF-8じゃないロケールサポートやめるぽいな"
- PostgreSQL 10のICUコレーションとJIS X 4061 – yohgaki's blog
- Makoto Kato ︎︎さんのツイート: "ICUのデータファイル、ECMA-402的には半分以上いらないので、BlinkとかGeckoとかがやってるようなデータ削減をnodejsもやるべきとは思う"
- Makoto Kato ︎︎さんのツイート: "BlinkのAndroid版のICUデータ、通貨とかのローカライズ情報はGNPを元に削減してるのは、面白かった"
- Rockridgeさんのツイート: "Firefoxでは、主にICUライブラリを通じて、Unicodeコンソーシアムが管理するCLDR(Common Locale Data Repository)によって提供されるロケールデータを利用している。 / “CLDR as…” https://t.co/QhO8R4vO1w"
- CLDR as source of key internationalization data in Firefox: milestones achieved and next steps | Mozilla L10N
- mattnさんのツイート: "昨日言ってた、Google Chrome の最新版が Windows7 で new Date が韓国標準時を返すバグ、ICU が原因なんだけど moriyoshi さんが詳細を送ってくれた事もあり解決しそう。 https://t.co/aZZ16PRsa3"
- チェンジセット 41514 – Unicode ICU trac
- Makoto Kato ︎︎さんのツイート: "ABI以外にもUnicode 10ベータのデータ使ってるとか、DateTimeのゾーン表記がGMTで書かれてたのにUTC表記になってるとか(これがなぜ変わったか調べてないからなんともいえないけど)ひどい有様です。… "
- The Unicode Blog: ICU 64 Released
- Zibi BranieckiさんはTwitterを使っています 「We're proud to announce #unicode #icu4x 0.5! Our major winter release. I'm particularly excited about solidifying Data Provider and getting closer to Segmenter API! #i18n #rustlang https://t.co/8tJiNErQ57」 / Twitter
- Release ICU4X 0.5.0 (January 31, 2022) · unicode-org/icu4x
- Makoto Kato ︎︎さんはTwitterを使っています 「Until last week, I have updated web platfoem test of screen orientation API to support this API in @GeckoView. I don't know why goolger don't fix it even if shipped by blink」 / Twitter
- International Components for Unicode (ICU) - Win32 apps | Microsoft Docs
HarfBuzz
- HarfBuzz - Wikipedia
- HarfBuzz - Wikipedia
- HarfBuzz – Y.A.M.A.P
- Fadisさんのツイート: "これからは「〜文字まで」みたいな仕様があったらHarfBuzzをリンクするか https://t.co/gVGozYsCZ1"
- HarfBuzz Manual: Clusters
- フリーのテキストシェープライブラリ「HarfBuzz 4.0」が公開 | OSDN Magazine
- 「HarfBuzz 5.0」が公開、OpenTypeの65kグリフ制限を超えるBEを実装 | OSDN Magazine
GNU FriBidi
- GNU FriBidi - Wikipedia
- fribidi/fribidi: GNU FriBidi
- fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
公的機関等
- 法務省 戸籍統一文字情報 トップ
- 文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです
- MJ縮退マップ | 文字情報基盤整備事業
- 長年の懸案だった“外字問題”が解決へ、6万字を1万字に対応付ける「縮退マップ」が完成 | IT Leaders
- MJ縮退マップとマイナンバー | yasuokaの日記 | スラド
Locale
最近の Python-dev
- DSAS開発者の部屋:最近の Python-dev (2017-01)
- DSAS開発者の部屋:最近のPython-dev (2017-05)
- DSAS開発者の部屋:最近のPython-dev(2017-06)
- Language code - Wikipedia
- Locale (computer software) - Wikipedia
- Codes for constructed languages - Wikipedia
- List of HTTP header fields - Wikipedia
- Country code - Wikipedia
- ISO/IEC 9995 - Wikipedia
ascii
- SODA Noriyukiさんのツイート: "*BSD系のascii(7) https://t.co/TzFY5Tqgtl が LF/FF じゃなく nl/np (newline/newpage) な件で、 Bell研からの伝統だよねー( https://t.co/gBQvXfjQTo )という話をしてた。 Linuxのman https://t.co/WtZTvdGgHE だとASCII規格通りでNPへの言及はないのね。LFはLineFeedじゃなくてnewlineとあるけど"
- ascii(7) - NetBSD Manual Pages
- unix-history-repo/ascii.7 at Research-V7-Snapshot-Development · dspinellis/unix-history-repo
- ascii(7) - Linux manual page
革命の日々!
- 革命の日々! IEがEUCのJIS X 212をサポートしていないのは規格違反なのか
- 革命の日々! FirefoxのEUCの独自拡張のセンスが最低な件について
- FrontPage - Legacy Encoding Project
- 革命の日々! プロジェクト「セーブ・ザ・鷗外」
- 革命の日々! レガシーエンコーディングなオフ会
- 革命の日々! それは典型的な波ダッシュ問題ではあるまいか
合略仮名
- 合略仮名 - Wikipedia
- 【みんなの知識 ちょっと便利帳】変体仮名(へんたいがな)- 「わ行」「ん」「合略仮名」
- 変体仮名・合略仮名一覧 - 漢字字躰帳
- 【ゟ】「合略仮名」とは? - ネタフル
- 合略仮名(ごうりゃくがな)の意味 - goo国語辞書
- 合略仮名 - 概要 - わかりやすく解説 Weblio辞書
- 【みんなの知識 ちょっと便利帳】変体仮名(へんたいがな)・くずし字一覧 = 古文書解読の一助に
- 初めて見る仮名を解読=合略仮名 - のりちゃん旅をする
- ゟ - Wikipedia
- 平仮名や片仮名の合字 | 古文書便覧
外国語-1
Wikipedia
- Keyboard layout - Wikipedia
- AltGr key - Wikipedia
- QWERTZ配列 - Wikipedia
- Technical standards in Hong Kong - Wikipedia
- British and American keyboards - Wikipedia
- アラビア語キー配列 - Wikipedia
- Arabic keyboard - Wikipedia
- Dzongkha keyboard layout - Wikipedia
- Hebrew keyboard - Wikipedia
- InScript keyboard - Wikipedia
- Urdu keyboard - Wikipedia
- デッドキー - Wikipedia
- Dead key - Wikipedia
Twitter
- Mantarohさんのツイート: "1590円で改善。 やはり、英語圏(特にUS圏)に合わせた仕様が多いなとキーボード変えてから気が付く…… "
- Urabe, Shyouheiさんのツイート: "英語キーボードの人気が根強いという言い方には違和感しかない。日本みたいな縮小する市場で独自規格を使い続けてる方が「根強い人気」という表現でしかるべきだろう。長期的にはJISキーボードが淘汰されていく流れは不可避だよ。製造コストが回収できなくなる日が来るもん。 https://t.co/nEbt598Is6"
- 「英語キーボード」の根強い人気が続く理由 - ITmedia NEWS
- Urabe, Shyouheiさんのツイート: "日本の市場が縮小するのはつまるところ日本の人口が減るからなのであってこればかりは今から急に仕込んでも何十年単位でどうにもならん。キーボードなんてどんなマニアでも100枚200枚買うようなものでもない。人が減りゃそれだけ市場が縮むというだけの話だ。"
- なかのん&マジックさんのツイート: "そーいや昔、USのAmazonでブラジルのポルトガル語キーボードって書いてるのを発見したんで取り寄せたら、ポルトガルのポルトガル語キーボード届きやがったことが。半分返すから勘弁して的なメールで折れたけど。面倒だったんで。"
- なかのん&マジックさんのツイート: "ABNTじゃないキーボードなんて表面の刻印の問題だけで価値ねーよ……"
- なかのん&マジックさんのツイート: "ちなみに、商品画像は超低解像度で見にくかったけど、左Shiftの横にABNT固有のキーがあるのは分かってたんで単純にその業者が悪い。"
- なかのん&マジックさんのツイート: "Macに純正じゃないキーボード接続した時に左Shiftキーの横のキーを押ささせれるのはそういう訳です。"
- なかのん&マジックさんのツイート: "左Shiftと右Shiftの横にABNTかJISの拡張キーが存在してるので、あの判定方法考えたヤツは頭良い。"
- KIMATA RobertHisasiさんのツイート: "数字の種類、ラテン文字やキリル文字などと共に使われるアラビア数字とは別にアラビア文字と共にで使われるインド数字があり、さらにアラビア文字で数を表すアラビア文字記数法があるので素で混乱する"
- なかのん&マジックさんのツイート: "アラビア語のキーボード見た時に最初に違和感あったのは、アラビア数字じゃないってことでした……"
- なかのん&マジックさんのツイート: "タイ語レイアウトなんかもそうだけど、ASCIIの数字が常に入力されるとは限らないので、i18nなキー処理では入力される文字を見ておけば処理できるわけでもなく。"
- なかのん&マジックさんのツイート: "FirefoxのCtrl+1とかは物理的に数字キーなので別条件も追加確認してユーザの意思をくみ取ろうとしてたりします。まだバグあるけど。"
- なかのん&マジックさんのツイート: "あとはスペースキーですな、物理的にスペースキーかどうかを特別に確認してるのは。どのスペース文字か忘れたけど、ちょいちょいとASCIIの空白以外がデフォルトなレイアウトあります。"
- 外国語キーボード(ドイツ/スペイン/イギリス/イタリア/フランス/中国/韓国等) | 海外ハードウェアの購入なら「ユニポス」
- Happy Hacking Keyboard | 特定の製品に関わらない問合せ | PFU
- 「chinese USB simplify」に該当する海外通販 - セカイモン
- 「chinese USB Traditional」に該当する海外通販 - セカイモン
- 「Inscript USB」に該当する海外通販 - セカイモン
- 「Urdu USB」に該当する海外通販 - セカイモン
- 「Arabic USB」に該当する海外通販 - セカイモン
- 「Persian USB」に該当する海外通販 - セカイモン
外国語-2
Wikipedia
- 列強 - Wikipedia
- ネイティブスピーカーの数が多い言語の一覧 - Wikipedia
- List of languages by number of native speakers - Wikipedia
- InScript - Wikipedia
- Help:特殊文字 - Wikipedia
中国語
- 中国語入力方法 - Wikipedia
- Chinese input methods for computers - Wikipedia
- 簡体字 - Wikipedia
- 繁体字 - Wikipedia
- 英語 - Wikipedia
- Help:多言語対応 (インド系文字) - Wikipedia
ヒンディー語
- ヒンディー語 - Wikipedia
- Hindi - Wikipedia
- デーヴァナーガリー - Wikipedia
- Devanagari - Wikipedia
- Help:多言語対応 (インド系文字) - Wikipedia
- スペイン語 - Wikipedia
アラビア語
- アラビア語 - Wikipedia
- Arabic - Wikipedia
- アラビア文字 - Wikipedia
- Arabic alphabet - Wikipedia
- アラビア文字化 - Wikipedia
- ポルトガル語 - Wikipedia
ロシア語
- ロシア語 - Wikipedia
- Russian language - Wikipedia
- キリル文字 - Wikipedia
- Cyrillic script - Wikipedia
- ドイツ語 - Wikipedia
- フランス語 - Wikipedia
韓国語
- 朝鮮語 - Wikipedia
- Korean language - Wikipedia
- ハングル - Wikipedia
- Hangul - Wikipedia
- Korean language and computers - Wikipedia
ペルシア語
- ペルシア語 - Wikipedia
- Persian language - Wikipedia
- ペルシア文字 - Wikipedia
- Persian alphabet - Wikipedia
- ペルシア語のラテン文字表記法 - Wikipedia
- Romanization of Persian - Wikipedia
ウルドゥー語
- ウルドゥー語 - Wikipedia
- Urdu - Wikipedia
- ウルドゥー文字 - Wikipedia
- Urdu alphabet - Wikipedia
- イタリア語 - Wikipedia
中国語
- Nakamura Masatoさんのツイート: "https://t.co/YjcO62WMny 中国語のセパレーター教えてもらった。こういうの聞けてよかった"
- fxsjy/jieba: 结巴中文分词
- kayaさんのツイート: "ITfReadingInformationUIElementって中国語のIMEで使われているReading Windowの為にあるっぽい。 https://t.co/uC7w9MwtGf https://t.co/12xcs2Wugv"
- なかのんクエストさんのツイート: "最近、Reading windowを使う中国語のIME減りましたね。インライン表示の方がモダンなもの、という流れがあるのかな?と。候補ウインドウ(candidate window)はどうしようもないのでそのままだけど。"
- パソコンで中国語を入力する方法 | どんと来い、中国語
- 中国語入力は「GOキーボード」が便利 - ケータイ Watch
- 中国語キーボードはどうやって漢字を打つのか 日本語なら「平仮名で入力 → 漢字変換」だけど……? - ねとらぼ
- Qin★确认过眼神,都是干货★さんのツイート: "最近中国では、単語の漢字のあとにピンインを入れるのが流行ってる、これは決して発音がわからない人用ではなく、建前と本音を同時に表現する書き方で、よくsnsで使われる。例えば「不(gu)小(yi)心(de)」、建前は不小心(わざとじゃない)だけど,本音は故意的(わざと)。"
- Qin★确认过眼神,都是干货★さんのツイート: "中国の入力アプリもキャッチアップが速くて、 太贵了(たかすぎ)と入力したら、建前提案してくれた。 用(tai)不(gui)惯(le) (使い慣れないなあ) といかにも1万元もするダブルsimのiphoneが買えるかもしれない口調で。wwww https://t.co/NfLivycZkp… https://t.co/zsw7wCD99n"
- Qin★确认过眼神,都是干货★さんのツイート: "たしかにこの本音&建前、日本語でめっちゃ使えるじゃん。 例えば: 退(じ)勤(ゆう)時間 仕(かん)事(きん)中 とかかなあ ٩(๑❛ᴗ❛๑)۶ #本音と建前同時表示を使ってみよう"
- Qin★确认过眼神,都是干货★さんのツイート: "多くの方々から、これは日本でもあるルビ遊びだと教えてくださって、 日本のルビもめっちゃ面白いじゃないですか。 キラキラネームもこちらの類に入りますかね。 なんか、SNSでの日中共通のなにかを発見した。^^"
- Qin★确认过眼神,都是干货★さんのツイート: "日本語でも、ルビ遊びを提案してくれるような入力アプリとかないかなあ🤔"
- ランダムな文字列っぽい「ji32k7au4a83」というパスワードが大量のユーザーに使われていた理由とは? - GIGAZINE
- ドイツ語キーボードの設定と配列(Windows7) | ドイツ便利帳
- ドイツ語のウムラウトやエスツェットを入力する方法 | ドイツ便利帳
- 海外「あれ?日本人や中国人はどうやってキーボードで文字入力してるんだ…?」 【海外の反応】 : 海外の万国反応記
- Mac で ハングルを入力する方法 | Mac | 情報航海術 - Office-TAKU.com -
- 韓国語IME操作法 - かじりたてのハングル
- ヒンディー語入力の方法
- 東外大言語モジュール
- 世界の国々で「2番目に最も使われている言語」は何なのか? - GIGAZINE
- ハングル入力からの漢字入力の方法(Mac OS X) : みかんたろうのなまけたろ
- なかのん&マジックさんのツイート: "SinharaのキーボードレイアウトはWindowsに標準で入ってるのに、バグ報告して来た人は、keyboard-driver (と言ってたけど実体はTIPだった)を入れないと、Sinharaは入力できないんだよって言ってて、混乱してる。"
- なかのん&マジックさんのツイート: "Sinhalaだったか。"
- なかのん&マジックさんのツイート: "インドもそうだったし、南アジアの文字入力周り、日中ほどのややこしさはなんだけど、とにかくサードパーティーの入力ソフト(IMEとかキーメッセージをフックしてどうこうしてたり)のデキが悪い感じ。"
- UniversalDependencies/UD_English-EWT: English data
- なかのん&マジックさんのツイート: "韓国語キーボードのスペースの両側にある特殊キーがかるけど、日本でハングルキーボードを入手するのが難しくてあきらめてる人も多いかもしれない。でもあのキーはMac JISキーボードの英数とかなキーと同じキーなのでMac用のキーボード買えば幸せになる人も居るのでは。 https://t.co/QLu2lPPXAo"
- なかのん&マジックさんのツイート: "あと、ハングルのIMEの豆知識として、未確定文字列がある状態で矢印キーやEnter、スペースを押すと、未確定文字列の確定と押されたキー本来の処理と両方が必要になる。特にmacOSでテキストエディタ作ってるとハマりやすい。"
- なかのん&マジックさんのツイート: "日本語IMEは基本的には確定だけ発生して、何も起きないとき多いからね。例えばEnterで確定するけど改行は入らない。"
- なかのん&マジックさんのツイート: "Sinhala、Gujarati、VietnameseあたりもWindowsでIME使うのね。"
- Unicodeに入っているこの謎の文字の正体は? - やじうまの杜 - 窓の杜
- UTF-1 ‐ 通信用語の基礎知識
- ローカライズと(ローカライズについて話す時の)言語の壁 / Localization and the language barrier... on talking about localization - Speaker Deck
- WindowsでもC++でUTF-8で読み書きしたい、他OSと同じビルドシステムを使いたい - Qiita
- Historical trends in the usage of character encodings, June 2018
- Usage Statistics of UTF-8 for Websites, June 2018
- Usage Statistics of Character Encodings for Websites, June 2018
- 【やじうまWatch】 ウェブサイトにおける文字コードの割合、UTF-8が90%超え。Shift_JISやEUC-JPは? - INTERNET Watch
- 本の虫: ASCII以前の世界
- アラビア語 コードポイント - 検索
blog
その他
- MySQL と寿司ビール問題 - かみぽわーる
- Unicode の雪だるま - bkブログ
- 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
- 文字コード考え方から理解するUnicodeとUTF-8の違い | ギークを目指して
- プログラミング言語における文字コードの話 | ++C++; // 未確認飛行 C ブログ
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- kaya: 主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い
- 特殊顔文字に使われている謎の文字よ、お前は一体何者なのか – たぬきフォント
- Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
- クメール文字とUnicode - Togetter
- Unicode 12.0正式版が登場。日本語では小文字の「ゐ」「ゑ」「を」「ヰ」「ヱ」「ヲ」「ン」が追加。新元号が発表され次第、次の12.1で新元号キャラクタを追加 - Publickey
- UTF-8小話 - Plan9日記
- UTF-8とルーン文字 - Plan9日記
- Wayback Machine
- unicode-math を完全に理解したい話(1) - マクロツイーター
- 漢数字が数字順にソートされない理由を調べてみた - give IT a try
- 文字エンコーディングの検出方法 - インフラエンジニアway - Powered by HEARTBEATS
- 私用領域を使って UTF-8 エンコードされた文字列にバイナリを埋め込む術 - hsjoihs’s diary
The Unicode Blog
- The Unicode Blog: Unicode CLDR 35 alpha available for testing
- The Unicode Blog: Announcing The Unicode® Standard, Version 12.0
- The Unicode Blog: Adopt-A-Character Grant to Support Maya Inscriptional Hieroglyphs
- The Unicode Blog: Unicode CLDR Version 35 Language/Locale Data Released
- The Unicode Blog: CLDR Version 35.1 Language/Locale Data Released for Reiwa Era, Unicode 12.1
- The Unicode Blog: New Unicode Working Group: Message Formatting
- unicode-org/message-format-wg: Developing a standard for localizable message strings
- The Unicode Blog: Unicode Locale Data v37α available for testing
- The Unicode Blog: Announcing The Unicode® Standard, Version 13.0
- The Unicode Blog: Announcing The Unicode® Standard, Version 15.0
- The Unicode Blog: Announcing ICU4X 1.0
- The Unicode Blog: Announcing The Unicode® Standard, Version 15.0
Tociyuki::Diary
- 「ソフトウェア作法」40周年を過ぎて - Tociyuki::Diary
- 日本語 Wikipedia の深さ優先探索 - Tociyuki::Diary
- UnicodeData Canonical Combining Class のダブル配列トライ - Tociyuki::Diary
- Unicode East Asian Width 再び - Tociyuki::Diary
- Unicode East Asian Width さらに - Tociyuki::Diary
- Unicode の文字数カウント - Tociyuki::Diary
- ucd::width 関数 (その1) - Tociyuki::Diary
- ucd::width 関数 (その2) - Tociyuki::Diary
- EastAsianWidth 対応 wcwidth - Tociyuki::Diary
- UTF-8 エンコーディングのままでバッファ・ギャップ - Tociyuki::Diary
- UTF-8 エンコーディングのままでバッファ・ギャップ その2 - Tociyuki::Diary
にせねこメモ
- 『ギリシャ文字・キリル文字・ラテン文字』 - にせねこメモ
ギリシア語
- マクロン付きのギリシア文字の母音にアクセントや気息記号を付けて表示する - にせねこメモ
- 古典ギリシャ語会話表現集 - にせねこメモ
ロシア語
- 『ロシアの文字の歴史』 - にせねこメモ
- ロシアらしい数字 - にせねこメモ
モンゴル語
- ネット閲覧可能な(モンゴル文字による)モンゴル語資料 - にせねこメモ
- モンゴル文字簡易翻字ブックマークレット - にせねこメモ
- モンゴル文字とUnicode - にせねこメモ
- Unicodeモンゴル文字フォント一覧 - にせねこメモ
- 現在のUnicodeモンゴル文字の問題点と最近の動き - にせねこメモ
中国語
- 簡体字フォントセミナー「中国の文字、いろいろと。」に行ってきた。 - にせねこメモ
- 繁体字フォントセミナー「台湾の文字、いろいろと。」に行ってきた。 - にせねこメモ
韓国語
- ハングル書体セミナー「韓国の文字、いろいろと。」に行ってきた - にせねこメモ
- ブラウザ上で文字列のUnicode Code Pointを調べる - にせねこメモ
- イオニア数字変換TeXマクロ - にせねこメモ
- 文字のデザインに筆記具が与える影響 - にせねこメモ
- 変な文字化け - にせねこメモ
- Adobe Illustrator CS6日本語版でタイ文字やアラビア文字を組む - にせねこメモ
- Type& 2015「書体視認性:MIT AgeLab と Monotype の共同研究」を聴いてきました - にせねこメモ
yasuokaの日記
その他
- 「くゎ」と「か」の対立 | yasuokaの日記 | スラド
- 「だぢづでど」と「ざじずぜぞ」の対立 | yasuokaの日記 | スラド
- 法律における「碍」の1字 | yasuokaの日記 | スラド
- 島津製作所の「dzu」と標準式ローマ字 | yasuokaの日記 | スラド
- 常用國字標準字體表の「彞」とedukai-3.ttf | yasuokaの日記 | スラド
- 直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
- Universal Dependenciesにおけるcompound:prtと直接構成鎖解析 | yasuokaの日記 | スラド
Unicode・ISO・JIS
- Unicode 10.0.0がリリース | yasuokaの日記 | スラド
- 「⿰月兊」はUnicode 10.0のどこに行ったのか | yasuokaの日記 | スラド
- U+337B「㍻」は、いつUnicodeに収録されたのか | yasuokaの日記 | スラド
- ISO/IEC 10646:2017に収録されていない『新潮日本語漢字辞典』の漢字 | yasuokaの日記 | スラド
- Adobe-Japan1-6にないJIS X 0212の漢字 | yasuokaの日記 | スラド
- U+2D583は「出」の別体なのか | yasuokaの日記 | スラド
- 元号の合字を含むISO/IEC 10646:2017 Annex Aのコレクション | yasuokaの日記 | スラド
- Unicode 13.0リリース | yasuokaの日記 | スラド
大漢和辞典
- ISO/IEC 10646:2017に収録されていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
- ISO/IEC 10646:2017に収録されているが文字情報基盤に含まれていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
- 大漢和番号14404は本当にU+2339Fなのか | yasuokaの日記 | スラド
登記統一文字
- 登記統一文字01009170を含む会社法人 | yasuokaの日記 | スラド
- 登記統一文字01054170を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01019580を含む寺院 | yasuokaの日記 | スラド
- 登記統一文字01009670を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01080960を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01104650を含む会社法人 | yasuokaの日記 | スラド
- 法人番号公表サイトにおける登記統一文字用例 | yasuokaの日記 | スラド
戸籍統一文字
- 戸籍統一文字152850「はかた」がU+2D92Aへ | yasuokaの日記 | スラド
- 戸籍統一文字で重複している漢字 | yasuokaの日記 | スラド
- 「⿺辶鳥」は“ナベ”の異体字なのか | yasuokaの日記 | スラド
- 戸籍統一文字370600はU+2713Cではないのか | yasuokaの日記 | スラド
住基統一文字
- 住基統一文字B159を含む会社法人 | yasuokaの日記 | スラド
- 『住民基本台帳ネットワーク漢字辞典』の音義未詳字 | yasuokaの日記 | スラド
- 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
- Re: 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
文字情報基盤
- 𡶌部神社の「𡶌」は、なぜ文字情報基盤に含まれていないのか | yasuokaの日記 | スラド
- U+2B1E6「𫇦」とU+241FE「𤇾」は、どういう関係にあるのか | yasuokaの日記 | スラド
- 「野」を字母とする変体仮名 | yasuokaの日記 | スラド
登記ねっと 供託ねっと
- 「登記ねっと供託ねっと申請用総合ソフト」の外字コード | yasuokaの日記 | スラド
- ソフトウェアのダウンロード | 登記・供託オンライン申請システム 登記ねっと 供託ねっと
法人
- U+2C0B2「⿰木亜」を含む会社法人 | yasuokaの日記 | スラド
- U+2D047を含む会社法人 | yasuokaの日記 | スラド
- 「⿰金鼡」を含む会社法人 | yasuokaの日記 | スラド
- 「⿲氵車斥」を含む寺院 | yasuokaの日記 | スラド
- U+2E092「⿰示責」を含む神社 | yasuokaの日記 | スラド
- 「⿱目勿」を含む会社法人 | yasuokaの日記 | スラド
- 「𛂯𛀿𛀸゙」を含む会社法人 | yasuokaの日記 | スラド
- 「⿸屁月」を含む神社 | yasuokaの日記 | スラド
人名漢字
- 「胱」「腥」「腟」は人名用漢字なのか | yasuokaの日記 | スラド
- 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
- Re: 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
- 子の名を当用漢字に制限する戸籍法施行規則の施行 | yasuokaの日記 | スラド
- 「襄」は子の名づけに使えるか | yasuokaの日記 | スラド
- 戸籍と在留カードにおける「陳」と「陣」 | yasuokaの日記 | スラド
- 昭和9年4月5日民事甲第428号民事局長回答の射程は「千遥」の出生届に及ぶのか | yasuokaの日記 | スラド
- 昭和9年4月5日民事甲第428号民事局長回答とその実態 | yasuokaの日記 | スラド
- 在留カードの入国管理局外字とその変遷 | yasuokaの日記 | スラド
本の虫
- 本の虫: ㄘんㄘん
- 本の虫: C++0x本:求む、簡単なBMP外の文字
yanok.net
- 波ダッシュ問題はなぜ『文字コード技術入門』の第8章にあるのか - yanok.net
- Unicode の嫌なところを触ってしまった Python - yanok.net
- Unicode 10.0リリース、変体仮名を収録 - yanok.net
- 言語を示すのに国旗を使うのはよくない - yanok.net
- 「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net
- BOM つき UTF-8 へのその場しのぎの対処 - yanok.net
- UTF-16 が単に Unicode と呼ばれることがある理由 - yanok.net
Python
- DSAS開発者の部屋:最近のPython-dev(2017-12)
Ruby
- Rubyist Magazine - Ruby M17N の設計と実装
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年7月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年2月) | Money Forward Engineers' Blog
- UTS #18: Unicode Regular Expressions
- Locale
- 最近のruby-core (2017年3月) | Money Forward Engineers' Blog
- 2022/03/03 今回の気になった bugs.ruby のチケット - Secret Garden(Instrumental)
- Ruby で新しい Unicode 規格にバージョンアップする時になにを行っているのかまとめてみた - Secret Garden(Instrumental)
- Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/RCyv4OefHq これ書いた人全くわかってないと思うんだけど、IVSはバリエーションがあるので、例えばAdobe-Japan-1-7対応なフォントがあったとしても、IPAフォントが採用してる汎用電子情報交換環境整備プログラムのHanyo-DenshiなフォントのIVSとは互換性がない」 / Twitter
- Windows と日本語のテキストについて - Windows Blog for Japan
- Makoto Kato ︎︎さんはTwitterを使っています 「なので、Windows側でHanyo-Denshi側のフォントもデフォルトで提供すべきだと思うんだ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「全く同じ字形であってもIVSのバリエーションが異なれば同じコードポイントにならんでしょ。」 / Twitter
- 堂前@IIJさんはTwitterを使っています 「古典的な「全角・半角」の考え方はもう通用しません。 UNIX likeなシェル環境で日本語を含めたUnicode文字を正しく表示するためには、その文字の幅を"正しく"描画する必要があります。アプリケーションから端末エミュレータに広がる沼のような問題に、IIJの大原が挑みました。 https://t.co/1YfmRQ8lWF https://t.co/1oLAeC5WlV」 / Twitter
- 端末の文字幅問題の傾向と対策 | IIJ Engineers Blog
- いまさら聞けない!波ダッシュと全角チルダ問題についてまとめてみた - Secret Garden(Instrumental)
News
- UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch
- Unicode 8に対応、「GNU C Library 2.23」が公開 | OSDN Magazine
- Unicode 10、変体仮名と縦書きレイアウト導入へ | マイナビニュース
- 新絵文字56種類が追加された「Unicode 10.0」が発表される - GIGAZINE
- 変体仮名285文字や縦書きレイアウト仕様が追加された「Unicode 10.0」 -INTERNET Watch
- ıɥɔıɐʇ ɐʇɐqɐʍɐʞさんのツイート: "そういえば今開催中のUnicode技術委員会で、新元号の合字の文字符号が U+32FF(ここしか空いてない)に確保されることになったらしいので、それである程度は備えられるかも。/https://t.co/nF9ou4TxCI / 新元号システム問題 https://t.co/w6xMtUelGC"
- 17429-sc2-n4577-japan-new-era.pdf
- 新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
- 「Qt 5.11」リリース、Unicode 10対応を強化 | OSDN Magazine
- 【山田祥平のRe:config.sys】さよならシフトJIS、主なしとて春な忘れそ - PC Watch
- Unicode 12.1をサポートした「Glibc 2.30」リリース | OSDN Magazine
- 4,000年前の謎の文字体系が解読された可能性 | TEXAL
- 「Unicode 15」リリース、合計の文字数は15万点近くに | OSDN Magazine
エンコード自動検出
- Google Chrome 55.0.2845.0 canary で、ついにエンコーディング自動検出がデフォルトになって、エンコーディングメニューがなくな...
- google/compact_enc_det: compact_enc_det - Compact Encoding Detection
WTF-8, WTF-16
- Masaki HaraさんはTwitterを使っています 「WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。」 / Twitter
- The WTF-8 encoding
- NODA KaiさんはTwitterを使っています 「@qnighy Osほげほげを名乗るならOSのC APIからmemcpyしただけのバイト列にしてくれって訴えたのですが聞いてくれませんでしたね…」 / Twitter
- WTF-16
- Why should strings be lists of Unicode Scalar Values? · Issue #135 · WebAssembly/interface-types
Unicode
Unicode
ucd
- Index of /Public/11.0.0/ucd
- https://unicode.org/Public/11.0.0/ucd/UnicodeData.txt
- https://unicode.org/Public/11.0.0/ucd/PropertyAliases.txt
- https://unicode.org/Public/11.0.0/ucd/PropertyValueAliases.txt
- https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
- https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
- https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakTest.txt
- Grapheme Break Chart
- https://unicode.org/Public/11.0.0/ucd/extracted/DerivedCombiningClass.txt
数字
- Unicodeにある数字の一覧 | hydroculのメモ
書記素クラスタ
- UAX #29: Unicode Text Segmentation
- UAX #15: Unicode Normalization Forms
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
- 結合文字についてMacのおしい点 - yanok.net
- 文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする - Qiita
- サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
- Unicodeの特殊な文字 “結合文字列” – ものかの
SV・IVD・絵文字
- The Unicode Standard, Version 11.0
- https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
- UTS #37: Unicode Ideographic Variation Database
- Ideographic Variation Database
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
- Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
大文字・小文字
- Unicodeの大文字と小文字のまとめ | hydroculのメモ
- Unicodeの仕様に基づいた大文字小文字を変換するには | hydroculのメモ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicodeで定義されている多言語のアルファベットは約1400種類ある。大文字<->小文字の変換はASCII文字であれば簡単だが、Unicodeでこれを高速に (小さい参照テーブルで) 処理するにはどうする? これは結局、多段階の間接参照をする最適なlatticeを発見すればよいことになる。 https://t.co/H1tgxAgc78」 / Twitter
- notes/fast-case-conversion at master · apankrat/notes
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「いま気づいたが、データの可逆圧縮ってのはどれも繰り返し構造を再利用するわけだから、結局どれもなんらかの latticeの構築 (探索) 問題として定式化できるわけだ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「さらに気づいたが、(JPEGなどの) 非可逆圧縮はたいてい可逆圧縮の処理を含んでいる。結局これは「元データを繰り返し構造が現れるような形式に (DCTなどで) 変換する」という前処理が入った可逆圧縮、と考えることもできる。」 / Twitter
Wikipedia
- Variant form (Unicode) - Wikipedia
- Unicode control characters - Wikipedia
- Variant Chinese character - Wikipedia
- List of typographic features - Wikipedia
- Unicode 11.0.0
- Unicode利用規約
- UAX #44: Unicode Character Database
- The Unicode Standard, Version 11.0
- C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
- はじめてのにき(2018-12-24)
- はじめてのにき(2018-12-25)
- char8_tによせて - なるせにっき
- CJK互換漢字とは?新元号「令和」の「令」Unicode符号に注意! – cod-log
UAX・UTR
- Makoto Kato ︎︎さんはTwitterを使っています: 「スタディサプリの人、まずUTR50ってのがあってだな。。。 https://t.co/rJw9nG1OgV https://t.co/UajfwFwXez」 / Twitter
- 縦書き学習コンテンツを実現する際に利用した縦書き CSS プロパティとその奥深さ - スタディサプリ Product Team Blog
- Makoto Kato ︎︎さんはTwitterを使っています: 「CSSのvertical layoutの実装話になった時に、回転する文字どうするのみたいな話から、https://t.co/iqRBrES2Ep 側に持っていって、結果できた話だったような記憶」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Unicodeもコードポイントの話以外にも、UAXなりUTRなりでいろんな細かい話多いんですよ」 / Twitter
- Unicode Terms of Use
- Unicode Terms of Use
- Technical Reports
- Unicode Character Database
- Index of /Public/PROGRAMS
- Index of /Public
- Unicode 9.0.0
- UAX #24: Unicode Script Property
- UAX #31: Unicode Identifier and Pattern Syntax
- UAX #34: Unicode Named Character Sequences
- UAX #38: Unicode Han Database (Unihan)
- UAX #41: Common References for UAXs
- UAX #42: Unicode Character Database in XML
- UAX #44: Unicode Character Database
- UAX #45: U-source Ideographs
- UCS-2 ‐ 通信用語の基礎知識
- Unicode ‐ 通信用語の基礎知識
- ユニコード
- Unicode―文字コード入門―
- Tech Basics/Keyword:Unicode(ユニコード) - @IT
- 怖くないユニコードの話 - YouTube
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Unicodeで「混同しやすい文字」を自動的に列挙するページ。文字列を入力すると、それと混同しやすい文字集合をすべて表示してくれる。 https://t.co/Y7vOJk6ebV」 / Twitter
- Unicode Utilities: Confusables
- Makoto Kato ︎︎さんはTwitterを使っています: 「Unicodeは16ビットに文字が収まる前提だっただろうし、中国語と日本語のグリフ違いを吸収するには新しいcode point使うしかないよ or IVSで定義する or VS使って言語コードつける。全部闇」 / Twitter
JIS X 0221
- JIS X 0221:2014とISO 10754:1984 | yasuokaの日記 | スラド
- JIS X 0221 - Wikipedia
- JIS X 0221:2014が出ています - yanok.net
- 国際符号化文字集合(USC)(JIS X 0221)が改訂 | カレントアウェアネス・ポータル
- JIS X 0221:2014附属書JA(参考)日本文字部分レパートリ | yasuokaの日記 | スラド
絵文字
The Unicode Blog
- The Unicode Blog: Unicode Emoji 12.0 — final for 2019
- The Unicode Blog: Emoji 12.0 Now Available for Adoption
- The Unicode Blog: Unicode Technical Committee Considers Emoji Color Mechanism
- The Unicode Blog: The Unicode Consortium Launches New Website in Celebration of World Emoji Day
- The Unicode Blog: The Most Frequent Emoji
- The Unicode Blog: Emoji 12.1 release: 168 Emoji added
窓の杜
- “Emoji 5.0”をサポート、日本語対応も充実した「Windows 10」Build 16226 - 窓の杜
- 「Unicode 11.0」に含まれる157の新しい絵文字をサポート ~「Windows 10 RS5/19H1」 - 窓の杜
- 定番のテキストエディター「秀丸エディタ」v8.85β7、絵文字の結合文字に対応 ほか - ダイジェストニュース - 窓の杜
- 「Windows 10 19H1」Build 18277が公開 ~“集中モード”や“アクション センター”が改善 - 窓の杜
- 結合文字を利用したカラー絵文字をサポート ~「秀丸エディタ」v8.85が正式版に - 窓の杜
- “Emoji 12.0”をフルサポートした「Windows 10 20H1」Build 18845が“Skip Ahead”に - 窓の杜
- 「Windows 10 19H1」も“Emoji 12.0”に完全対応 ~Build 18348が“Fast”リングに - 窓の杜
- 元Office アシスタントのあいつも登場 ~Microsoftが新デザインの絵文字セットをテスト - 窓の杜
- Windows 11で新しい絵文字セットの一般提供が開始 ~クリッパー君やEmoji 13.1の絵文字も - 窓の杜
- 「Google ドキュメント」の内容に「Emoji 14.0」の絵文字でリアクション可能に - 窓の杜
PC Watch
- Windows 10プレビュー版で顔文字が呼び出し可能に - PC Watch
- Windows 11プレビュー版、絵文字のデザインを大幅刷新 - PC Watch
- Windows 10プレビュー、絵文字の検索機能を追加 - PC Watch
INTERNET Watch
- 「Unicode 9.0」が6月21日にリリース、72種類の絵文字を追加 -INTERNET Watch Watch
- これからの絵文字の実装指針、UTR #51“Unicode Emoji”とはなにか - INTERNET Watch Watch
- 「Unicode 8.0」で肌の色の多様性に対応へ、“絵文字”に肌の色を変化させる符号を追加 -INTERNET Watch Watch
- 「Unicode 7.0」仕様公開、約250文字の絵文字を追加 -INTERNET Watch Watch
- 「Unicode 6.0」が策定、絵文字が国際標準に -INTERNET Watch Watch
- Unicode、男女を切り替えられる絵文字を追加 -INTERNET Watch
- 「Unicode 10.0」への追加候補となる51種類の絵文字を発表 -INTERNET Watch
GIGAZINE
- おう吐・ゾンビ・授乳などUnicodeに新しい絵文字69種類が追加される - GIGAZINE
- iPhoneの絵文字一覧から「台湾国旗」が削除されてしまったと香港・マカオのユーザーが報告 - GIGAZINE
- 反ワクチン活動家は「絵文字」で規制を回避している - GIGAZINE
iPhone Mania
- Unicode Emoji 11.0が公開〜157種の絵文字が2018年に仲間入り - iPhone Mania
- iOS14.2で「マスクを着けた顔」の絵文字が笑顔に変更 - iPhone Mania
スラド
- Unicode 9.0.0で追加される72種の絵文字 | スラド アップル
- Unicode 9.0.0でライフルの絵文字が追加されなかったのはAppleとMicrosoftが反対したため? | スラド アップル
- Unicodeの絵文字にスコットランド国旗が追加されない理由とは | スラド IT
- iOS 10では拳銃の絵文字が水鉄砲の絵文字に置き換えられる | スラド アップル
- 絵文字のピストル、本物っぽいデザインとおもちゃっぽいデザインのどっちがいい? | スラド IT
- Unicodeの絵文字のルーツ | yasuokaの日記 | スラド
- キーマンズネットの考える絵文字とそのルーツ | yasuokaの日記 | スラド
- J-PHONE SkyWalker絵文字とUnicode絵文字 | yasuokaの日記 | スラド
Wikipedia
- UnicodeのEmojiの一覧 - Wikipedia
- Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia
Twitter
- Rockridgeさんのツイート: "Fx50:EmojiOneライブラリを取り込むことで、Windows XP/Vista/7およびLinux上で絵文字のサポートを強化。参照:https://t.co/ZDKMAOTZMA / “1231701 – Ship an…” https://t.co/jGCunzkZYt"
- Rockridgeさんのツイート: "Windows版およびLinux版Firefox 50でカラー絵文字が正しく表示されるようになった。 / “Emoji for all Firefox users! | Blog: timdream” https://t.co/3zTq4D17Ur"
- Rockridgeさんのツイート: "Fx59:絵文字用フォントの指定に対応し、通常文字と絵文字が混在しても絵文字が崩れないようにした。 / “1032671 - Add https://t.co/x39AiS2czz-list.* for Emoji” https://t.co/817tDG1ZM1"
- Rockridgeさんのツイート: "Fx61:絵文字ライブラリがEmojiOneからTwitter Emoji(Twemoji)へと変更された。参照:https://t.co/mAgjkdO4nE / “1358240 - Replace EmojiOne wit…” https://t.co/lvlTa4XT6i"
- Twitter Emoji (Twemoji)
- twitter/twemoji: Twitter Emoji for Everyone
- 堀 正岳(Lifehacking.jp)さんのツイート: "台風の絵文字(U+1F300)は機種依存しているので環境や、使っているSNSによって表示は違うのですが、ツイッターとGoogle(Android)はなんと右巻きの渦になっています。現実の台風は北半球だと左巻きですので、注意しないといけませんね。… https://t.co/dIK3lSOlEk"
- 堀 正岳(Lifehacking.jp)さんのツイート: "iPhone上でもSafariでサイト上で見ると右巻き、アプリで見ると左巻きになっているところが面白い(笑)… "
- 堀 正岳(Lifehacking.jp)さんのツイート: "ツイートがのびているので付け加えておくと、もとのUnicodeは”Cyclone"に対応しておりこれは「低気圧」という一般的な名称をさしてます。だから右巻き・左巻きのどちらが正解ということはありません。でもふだんの経験と違うものがみえると驚くのと、表示環境しだいで違うというのは面白いですよね"
- 堀 正岳(Lifehacking.jp)さんのツイート: "「場所次第で台風・サイクロン・ハリケーンと呼ぶのでは?」という質問もあるかもしれませんがUnicodeはその3つを区別しているわけではなく、もし地域差を表示してるとしてもサイクロンは北インド洋を含むので右巻きか左巻きかは、言葉だけからはわからないんです..."
- えいす8️⃣さんのツイート: "📛←日本人にはどう見ても幼稚園の名札だが、外人には何なのかさっぱり分からないらしく「燃えるトーフ」とか呼ばれている絵文字"
- なかのん&マジックさんはTwitterを使っています: 「Windows 10でも、デスクトップアプリのpassword fieldと、UWPのそれは、絵文字の取り扱いが違うのか。前者はsurrogate pairだけ意識してて、後者は見た目の文字単位でハンドリングしてる。」 / Twitter
- なかのん&マジックさんはTwitterを使っています: 「UWPのpassword fieldの動作が一番良いように思える。GTKのはUTF-16の一文字単位で編集できてしまうし(現在のGeckoも同じ)、macOSに至っては絵文字が混じってるとマトモに動作しなくなる。」 / Twitter
- 桃芭蕉実🍑🍌さんはTwitterを使っています: 「お寿司🍣の絵文字、見え方がスマフォとかによって違うんだね〜しらなかった〜 https://t.co/EReSX1551u」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「最近https://t.co/0cq48c17Uaの話を見ることなかったのですが、QID emojiってのを知って、まぁ呆れた https://t.co/cZuF21UHX4」 / Twitter
- UTS #51 Addendum: Unicode Emoji QID
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「絵文字等のUTF16的にマルチバイトな文字をどうマスクするかで今年夏にちょっと格闘してみたんだけど、メチャクチャに難しいですな。確か、WindowsのUWPのパスワードフィールドの処理が一番綺麗だった気がするものの、細かいことは忘却の彼方。 https://t.co/y0KFfhi7HT」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox これ現在インストールされているフォントとかにも依存するので最適解はないですね。なんであんな仕様になったと今でも思ってる。(というと自分が仕様側に入れよと言われる話なんですが)」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@makoto_kato とりあえず、layoutがflushされてるかという例の問題と、やたらとあちこちにassertが仕込まれてて、クラスタ内やサロゲートペア間で何も起きないこと前提になってて、どんだけ直さないといけないのやらっていう感触でした。フォントはシステムデフォルトを強制するとかで緩和するしかないですかね……」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox Platformのバージョンによってインストールされているフォントが変わるので、レンダリング情報 (nsTextFrame) をみないと正しいマスクされる文字数がわからないんですよね。。。プラットフォーム固定だとどうにかなるんですが。。。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更だが、emojiの書記素(Grapheme Cluster?)判定をやらないと、こんなことになる。 それにしても、「親」絵文字と「子」絵文字が並ぶと「家族」絵文字にする仕様、誰得な仕様としか思えない(笑) https://t.co/wGg7RMVUiB https://t.co/so7v3SabmY https://t.co/uTk0td9Ixu」 / Twitter
- 書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
- 🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu 合字の仕様ですね。そうしたくない場合はU+00A0(NBSP記号)を間に入れるルールになってた筈です。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なぜ Unicodeの「グラフが上昇する絵文字📈」は赤線で表示されているのか? 理由: 日本の株式市場では、上昇銘柄が赤で表示されるという伝統に従っているため。 https://t.co/PnIdzvQjzm」 / Twitter
- Why does the 📈 Chart Increasing emoji show in red?
- yoh2さんはTwitterを使っています 「異体字セレクタや合成文字は元の文字に制御 or 合成文字を重ねているという体だからまだ納得できるが、🇯 と 🇵 を連続して書いたら 🇯🇵 になるとか何の嫌がらせなんだろうとよく思ってる。」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「@yoh2_sdj 国の承認云々でもめないための苦し紛れという側面も…… (つらい)」 / Twitter
- yoh2さんはTwitterを使っています 「@a4lg まあその辺ですよね。 それに増えたり減ったりするので専用の領域を予約しておくのも勿体無いというか何というか……」 / Twitter
- だんぼーだよ📦さんはTwitterを使っています 「竈門禰豆子を正しく表記しようとすると "禰󠄀" は異体字の表現のため U+79B0;U+E0100 で UTF-8 だと 7bytes 必要なんですね~っていうトリビアを仕入れたので、お客さんが鬼滅の刃を覚えている限りこのネタで掴んでいこうと思っています https://t.co/spglgPaBys」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Chrome (even if 108)/Android 13 still uses Noto Color Emoji Legacy for Emoji font. But Firefox will use COLRv1 version of Noto Color Emoji from 107.」 / Twitter
- 特集 : 絵文字が開いてしまった「パンドラの箱」 - CNET Japan
- 「Firefox 50」リリース、絵文字の独自サポートなどを導入 | OSDN Magazine
- 絵文字を支える技術の紹介 - Qiita
- 栗田穣崇さん『ドコモの絵文字にうんちを入れたかったのですが、社内で大反対されまして…』 うんちの絵文字がUnicodeに登録されるまでの裏話 - Togetter
- 絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット - (page 6) - CNET Japan
- Emoji Frequency - Unicode
- HarfBuzz 絵文字 - Google 検索
- 📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
照合
- Unicode照合アルゴリズム - Wikipedia
- Unicode collation algorithm - Wikipedia
- UTS #10: Unicode Collation Algorithm
- 🐬🍣🍻さんはTwitterを使っています 「MySQL 8.0のキャラクターセットとCollation(照合)の利用。utf8mb3の利用はNG, 将来バージョンで非サポートの方向。照合は要件に応じてutf8mb4_binかutf8mb4_0900_*のいずれかのみ推奨。日本語ではutf8mb4_900_ai_ciは病院美容院(拗音の照合)問題があるので非推奨。 #mysql_jp https://t.co/VqMFnm6n9R」 / Twitter
互換漢字
- CJK互換漢字 - Wikipedia
- CJK Compatibility Ideographs - Wikipedia
- CJK統合漢字 - Wikipedia
- CJK Unified Ideographs - Wikipedia
- Unicode CJK互換漢字 F900~FAFF - CyberLibrarian
- Unicode CJK互換漢字補助 - CyberLibrarian
- CJK互換漢字 ‐ 通信用語の基礎知識
- 日本の文字とUnicode 第4回 | 大修館書店 WEB国語教室
- 人名用漢字と互換漢字 | yasuokaの日記 | スラド
- “情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」: 第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか
異体字
ITpro
- 新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
- 新常用漢字が引き起こす文字コード問題 - 漢字1文字が最大8バイト、Unicodeの「IVS」とは?:ITpro
- 新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
INTERNET Watch
- 渡邊の「邊」などの異体字の使い分け、MS Officeで可能に、IVSアドイン公開 -INTERNET Watch Watch
- 人名に使われる異体字など、IVS文字の入力を支援するソフト「IVSパレット」、イーストが発売 -INTERNET Watch
blog
- IVDの2017-12-12版が公開 | yasuokaの日記 | スラド
- Index of /ivd/data/2017-12-12
- 「崙の簡化字」のIVS | yasuokaの日記 | スラド
- Windows標準のフォントだけで異体字(IVS)を扱う | 毛流麦花
- Mac OS X 用異体字(異体字セレクタ Unicode IVS を含む)入力支援プラグイン及び TeX 系エディタ TeXShop 対応バイナリ - 技術考
- IMEパッドでUnicodeの異体字セレクタを利用する―Office IME 2010を使いこなすを使いこなす―
- 日本語は1文字何バイト? ( ソフトウェア ) - アルファのブログ - Yahoo!ブログ
Twitter
- Tsukasa #01さんはTwitterを使っています: "PanCJKV IVD Collection (unregistered) : https://t.co/jjnt5Enuqh"
- Tsukasa #01さんはTwitterを使っています: "国ごとの字形の違いを表現するための IVD を Adobe がとうとう提案しようとしているのか。"
- Tsukasa #01さんはTwitterを使っています: "OpenType の feature で国ごとの字形の違いを表現することは一応可能だとは思うけど、IVD を使うことでプレーンテキストの中でも同様のことができるようになるのか。"
- vyv03354さんのツイート: "@makoto_kato IVS対応フォントでも通常IVSを単独の文字として収録していないので、ブラウザが認識していないとVSだけフォールバックが起きてうまく表示されません。フォントを1つしか使わない普通のアプリでは問題になりませんけど。"
- Rockridgeさんのツイート: "Fx52:Windows版で、Webメールなどにおいて、IVS(Ideographic Variation Selector:漢字の異体字セレクタ)を用いた文字がバックスペースを2回押さないと消えない問題を修正。 / “8500…” https://t.co/uKAQekBADG"
- ISO/IEC 10646:2017発行 | yasuokaの日記 | スラド
- なぜ「⿸广帯」はISO/IEC 10646:2017から漏れてしまったのか | yasuokaの日記 | スラド
- 「⿺辶鳥」はISO/IEC 10646:2017に収録されたのか | yasuokaの日記 | スラド
- 楠 正憲さんのツイート: "この6万文字をWindowsやOffice、Mac、Linuxでもちゃんと扱えるところまできたのに自治体外字は百数十万文字も残ってるんですよね。マイナンバー対応で統合宛名の整備も進んだので、さすがに決着をつけたいな / “コンピ…” https://t.co/wCtbmA3lPQ"
- ひめ@女体化したいさんのツイート: "どうせISO/IEC 10646:2017に関係するニュースでしたらこちらの岩手県大船渡市盛町字二本𭫚(にほんどう、拡張F U+2DADA)がオススメです https://t.co/iazheILI34"
- Tsukasa #01 [要出典]さんのツイート: "あ、文字情報基盤周りだと、ISO/IEC 10646:2017 だけじゃなくて、IVD が 2017-12-12 版になったことも関連してるのかな (この版では、大漢和で重複収録されたものを "区別" するための IVS が追加されている。"
- Tsukasa #01 [要出典]さんのツイート: "まぁそれはそうと、"全漢字" 使用可っての、だいぶ語弊があるよね。(ここまで書いて) 語弊があるどころか、登記統一文字で実際に複数の法人名に用例があるような字でも収録から外れてたり云々。"
- Makoto Kato ︎︎さんのツイート: "IVSってフォントに依存するし、AdobeのセットとあのIPAが絡んでるセットは正規化してないから、グリフの形が全く同一でも同じコードになってないってところが好きじゃないんだけど、それ解決してるの?"
- Makoto Kato ︎︎さんのツイート: "だから、IPAフォントじゃなくて、Noto CJKにあのIPAのIVSを移植しないと意味ない"
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/IQO9FXyEbM に既に載ってるかな、と思ってみたら載ってなかった(同類の文字が載っていそうだけど」 / Twitter
- minimaxir/big-list-of-naughty-strings: The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
- ritsukaさんはTwitterを使っています 「鬼滅の刃に禰󠄀豆子というキャラがいるらしいけど、禰+異体字セレクタU+E0100を使わないと表現出来ない字なのか。 それでデフォルトではUTF-8は3バイトまでと決め打ちしてたMySQLとかそれを使うWordPressでトラブル起こすらしい」 / Twitter
- Standardized Variants
- Ideographic Variation Database
- Windows 8 の IVS 対応と IVS Add-in for Microsoft Office | マイクロソフト 公共機関向け
- c - C言語でのUTF-8文字列の正確な長さを取得する - スタック・オーバーフロー
- ダイナフォントのIVS(異体字切り替え)対応について教えてください。 | ダイナコムウェア株式会社
- Unicode IVSとは | 異体字フィクサー | 製品情報 | 株式会社リンクス
- IVSフォント利用ライブラリー|イースト株式会社
- IVD/IVSとは | 文字情報基盤整備事業
- IVS対応情報 | 文字情報基盤整備事業
- 異体字セレクタ - Wikipedia
- 異体字セレクター
- IVD ‐ 通信用語の基礎知識
- 異体字セレクタセレクタ (α v0.5)
- さきさかさんはTwitterを使っています 「芦屋、Unicode規格に出てくるお嬢様が住んでるところという認識しかない https://t.co/u8kKtJLhYf https://t.co/IBfvKGqdVA」 / Twitter
- UTS #37: Unicode Ideographic Variation Database
結合文字
- Unicodeの特殊な文字 “結合文字列” – ものかの
- サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
- 結合文字列をUnicode正規化で合成する方法の危険性 - Qiita
- 結合文字列を合成する安全な方法を考える - Qiita
- macのファイル名のための安全なNFC正規化 - Qiita
- ICU 結合文字かを判定する - Faith and Brave - C++で遊ぼう
- 文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする - Qiita
- Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
- 結合文字についてMacのおしい点 - yanok.net
- 「プログラマのための文字コード技術入門」EPUB版販売開始! - yanok.net
- 合字 - Wikipedia
- Typographic ligature - Wikipedia
- 複雑なテキスト配置 - Wikipedia
- Complex text layout - Wikipedia
- 結合文字 - Wikipedia
- Combining character - Wikipedia
- 合成済み文字 - Wikipedia
- Precomposed character - Wikipedia
- 図形素結合子 - Wikipedia
- Combining Grapheme Joiner - Wikipedia
- Unicode結合文字 難読化シェル芸
制御文字
ASCII
- 制御文字 - Wikipedia
- ISO 2047 - Wikipedia
- エスケープシーケンス - Wikipedia
- エスケープ文字 - Wikipedia
- キャレット記法 - Wikipedia
- 肯定応答 - Wikipedia
- 削除文字 - Wikipedia
- シフトアウト・シフトイン - Wikipedia
- スペース - Wikipedia
- ソフトハイフン - Wikipedia
- タブキー - Wikipedia
- 置換文字 - Wikipedia
- テキスト終結文字 - Wikipedia
- 伝送終了文字 - Wikipedia
- 問い合わせ文字 - Wikipedia
- バックスペースキー - Wikipedia
- 否定応答 - Wikipedia
- ベル文字 - Wikipedia
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「改行コードがCR+LFになった理由: 昔のテレタイプは、110bpsで動いており、1バイト送るのに約100msかかった。印刷ヘッドは遅かったため、改行コード(CR)が1バイトしかないと100msでは行頭に戻りきらなかった。そこで時間稼ぎのためにもう1バイト(LF)を送ることにした。 https://t.co/VJWsCYE9WG」 / Twitter
- RevK®'s ramblings: CR+LF has a long history...
- ぼやさんはTwitterを使っています 「CR+LF で CR が先に送られるのは物理的制約からだが、CR と LF に分かれてる理由ではない。 CR だけ送って上に xxx を重ねて消すとか、LF だけ送ってグラフのような表現(前からの相対。戻るのはBS)とか。 今でも CR だけ送ることで、画面に進捗を表示させたり。 https://t.co/UWsw4t6Xkg」 / Twitter
- 改行コード - Wikipedia
- キャリッジ・リターン - Wikipedia
拡張子偽装
- Yosuke HASEGAWAさんはTwitterを使っています 「誰やこんな悪用方法考えついたやつ…。 とりあえず、Windowsならソフトウェアの制限ポリシーで「新しいパスの規則」からRLOがファイル名に入ったものの実行を禁止してしまうのが対策としては手っ取り早い。」 / Twitter
- オノッチさんはTwitterを使っています 「友人から渡されたexeファイルによるウイルス感染問題、「流石にexeファイルは開かない」なんて人も騙されるのが、Unicodeの制御文字(RLO)で文字方向を途中から入れ替える手法。 ファイル名の途中にこの制御文字を入れ、そこから文字方向を変えることで、本来の拡張子とダミー拡張子を逆転させる。 https://t.co/dw9aXyCmOj」 / Twitter
- オカダリョウタロウさんはTwitterを使っています 「@hasegawayosuke グループポリシーでもできそうっすね。ただし、RLOのついた .txt や.pdfは開いちゃう(昔のバージョンだけかもしれないが)という話を見つけた。https://t.co/DLFlluwyV3」 / Twitter
- GPO ソフトウェアの制限のポリシー(RLO拡張子偽装の対策)について
- Yosuke HASEGAWAさんはTwitterを使っています 「@okdt まあ、.txt や .pdf を開いて何かしら問題が発生するという場合は、それらに関連付けられたビューアー/エディタに脆弱性があるということなので、それを解消するのが筋ですね。.exe をそれと知らずに開くということとは全然意味合いが違いますね(岡田さんはわかってると思うけど)」 / Twitter
- オカダリョウタロウさんはTwitterを使っています 「@hasegawayosuke 会話形式の勉強楽しい!勉強になります!」 / Twitter
- 「もらったEXEなんて開かねえよw」なんて人も絶対に騙される偽装ファイル名に思わず戦慄 - やじうまの杜 - 窓の杜
- 一ノ瀬 いろはさんのツイート: "ゼロ幅接合子にゼロ幅非接合子・・・・・・ ウッ、アタマが!… "
- ゼロ幅非接合子 - Wikipedia
- Zero-width non-joiner - Wikipedia
- ゼロ幅接合子 - Wikipedia
- Zero-width joiner - Wikipedia
- macOS 10.13/iOS 11のゼロ幅非接合子処理の不具合を利用しアプリをクラッシュさせる文字列が複数発見される。 | AAPL Ch.
- 2. スペースは" "だけじゃない的な話
- jaco-js/SPACE_CHARS.ts at master · jaco-project/jaco-js
- \sは本当に空白文字を網羅できているのか? - Panda Noir
- 新たな元号にZERO WIDTH JOINERは使えるのか | yasuokaの日記 | スラド
- ノーブレークスペース - Wikipedia
- 単語結合子 - Wikipedia
- Word joiner - Wikipedia
- ゼロ幅スペース - Wikipedia
- Zero-width space - Wikipedia
- Thin space - Wikipedia
- 図形間隔 - Wikipedia
- Figure space - Wikipedia
- FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
- Trojan Source Attacks
- FadisさんはTwitterを使っています 「ソースコードにUnicode制御文字を挟むことで人間には違う意味に見えるソースを作るトロイのソースが出てから各言語で対応が議論されている。対応が早かったRustは問題となっているコードポイントがコード中に現れるのを禁止したが、Pythonでは違う方針がまとまりつつある https://t.co/zGkHy44qmC」 / Twitter
- FadisさんはTwitterを使っています 「Pythonではこの問題を「ソースコードはエディタなどの支援なしに読むのはそもそも辛い」問題の一種とみなしており、言語にad-hocな制限を加えるのではなく、Pythonを書いたりdiffをとったりするソフトウェアがこのような細工がバレバレになる表示を提供すべきという推奨をPythonのドキュメントに加える」 / Twitter
- StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita
- 「+メッセージ」、フィッシング詐欺誘導に使われる脆弱性 - PC Watch
正規化
- Unicode正規化 - Wikipedia
- Unicodeの等価性 - Wikipedia
- Unicode equivalence - Wikipedia
- Unicodeの互換文字 - Wikipedia
- Unicode compatibility characters - Wikipedia
- ダイアクリティカルマーク - Wikipedia
- Diacritic - Wikipedia
- Unicode正規化
- Elasticsearchでの文字列の正規化 - Carpe Diem
- IBM Knowledge Center - エンコーディングと正規化
- ユニコード
- UAX #15: Unicode Normalization Forms
- Unicode正規化 用語の混乱について 第4.2版 – ものかの
- HFS+のエンコーディングとUnicode正規化 第3版 | ものかの
- HFS+のテキストエンコーディング – ものかの
- 普通のUnicodeはNFCなのか – ものかの
- 本の虫: Linus Torvalds、HFS+に激怒
- Taku Kudoさんのツイート: "NFKC 正規化といっても、Unicode Version が異なると結果が変わることがある(極めてレアだけど)。正規化を完全に自己完結モジュールにしたければ、Unicode Versionもモデルに含めないといけない。"
- Kazuho Okuさんのツイート: "しかし「NKDで正規化したハッシュテーブル」みたいなやつ(ファイルシステムとか)、文字が追加されたらNKDの定義がかわるわけだけど、いったいどういう動作するのかな。未定義文字は登録できない、かつ、定義済の文字についてはNKDの定義がかわらない、みたいな規則にはしてないだろうし"
- macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
- にせねこさんのツイート: "現在のTwitterでは投稿時にUnicode正規化がなされるらしく、互換漢字の旧字は対応する新字に置き換えられてしまうようです。 https://t.co/0CrCRXA9TM… "
- TwitterにUnicode正規化が導入された時刻の推定 by zeeksphere - Togetter
- ファイルシステムとS3でのユニコード正規化の関係を調べてみた2021 - Techブログ - MNTSQ, Ltd.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicodeで正規化された ö が、正規化されていない ö と一致せず、SMBでファイルが見えなくなる問題。Unicodeの正規化問題は & とか †とかに続いて今後頻繁に起こるバグになりそう。 https://t.co/pwaxBnBIXy」 / Twitter
- Unicode Normalization Forms: When ö != ö :: OpenCore Blog
東アジアの文字幅
- UAX #11: East Asian Width
- 東アジアの文字幅 - Wikipedia
- 和字間隔 - Wikipedia
書記素クラスタ
- Shiro Kawaiさんのツイート: "#tcfm 12回 https://t.co/orkUFymQiq Grapheme clusterを構成するコードポイント数って上限無いんじゃなかったっけ。文字数で入力制限かけるようなコードだとやばそうだな。"
- Jun Mukaiさんのツイート: "https://t.co/mIq2d78OKz GB9とGB11のルールの組み合わせによりいくらでも長いgrapheme clusterはつくれます… "
- UAX #29: Unicode Text Segmentation
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- Perl 5.26 & Unicode 9.0 で変わる書記素クラスタ(grapheme Cluster)のお話 - Shogo's Blog
- Python でタイ文字やアラビア文字の個数をうまく数える - Qiita
- UAX #29: Unicode Text Segmentation
サロゲートペア
- サロゲートペア入門:CodeZine(コードジン)
- JavaScriptでのサロゲートペア文字列のメモ - Qiita
- サロゲート・ペアのトラブルはいつまで続くか - yanok.net
- Unicodeサポートの現状 - yanok.net
双方向テキスト
- UAX #9: Unicode Bidirectional Algorithm
- 双方向テキスト - Wikipedia
- Bi-directional text - Wikipedia
- bidiフォーマット文字も追加:Unicode標準6.3が公開、日中韓の互換表意文字改善 - @IT
- 七誌さんはTwitterを使っています: 「Windows 2000の頃からWin32の標準TextBoxで右クリックするとメニューにRLM等のUnicode制御文字関連項目があるのは知っていたけど、初めて使った。 Wikipediaの例をコピペして制御文字を表示すると存在が確認できる。バイナリダンプすると対象文字(!)の後にある。 https://t.co/UbIAZG3oj0 https://t.co/KX29zYXXHz」 / Twitter
- Right-to-left mark - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「牛耕式」を知っている人少なそう、、、牛耕式対応BiDiとかあったらすごいな。 https://t.co/o0QRy67YAk」 / Twitter
- 中村 実さんはTwitterを使っています 「古代ギリシャ語を牛耕式で書く場合、右から左の行と左から右の行では文字の左右が逆、つまり鏡文字になったそうだが、現代のエディッタ&フォントで表示できるのかしら?」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみにRustは1年以上前に文字列の端を取り除くメソッドの一種であるtrim_left/trim_rightを非推奨にしてtrim_start/trim_endにしていますね。これは右から左に書記する体系では混乱のもとだからです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえは、IPMsgのログビューアは、一応アラビア語などbidi表示されるのだけど、範囲選択で馬脚を現してしまう、、、本当ローカライズは色々面倒。」 / Twitter
- Go でアラビア語を描画する - Qiita
- unicode-org/lstm_word_segmentation
- 千種創一さんはTwitterを使っています 「日本のパソコンには「㍍」や「㍿」とか無理矢理な圧縮文字がありますが、中東のパソコンには ﷺ という صَلَّى اللهُ عَلَيْهِ وَآلِهِ وَسَلَّمَ 彼(預言者)とその一族に神の祝福と平安あれ という文章を縮めた神がかった圧縮文字が存在します」 / Twitter
- FadisさんはTwitterを使っています 「トロイのソース: Unicode制御文字を活用してコード上に現れるトークンを並べ替えることで、人間には問題ないように見えるが実際には脆弱性があるソースコードを作る手法に関する論文。簡単な例としてRTLを挟んで重要なチェックをコメントの中に捨てる方法が挙げられている https://t.co/5urbEzKdwp」 / Twitter
- Trojan Source Attacks
- نۇرمۇقەددەسさんはTwitterを使っています 「تۆپىلىكتىكى ياپۇن چايخانىسى بىرىنچى باسقان قەدەمدىن بۇ چايخانىغىچە كۈلۈمسىرەش ئۆزگەرتكەن سوغاق ھاۋادىن قولۇڭ ئىللىتقان بارماقلىرىمغىچە قاراشلىرىڭدىن توختاپ قالغان نىگاھلىرىڭغىچە قايرىلغان چۈشتە تېپىۋالغان چايخانىمىزدا ئېيتماقچى بولغان سۆزلىرىمىز قەدەھلەرنى لىق تولدۇرغىچە https://t.co/nzcUSDt3M4」 / Twitter
- 右横書き言語 - Wikipedia
- ソースコードに脆弱性を潜ませられるUnicode悪用攻撃法「Trojan Source」を研究者が発表 - ITmedia NEWS
行分割
- - UAX #14 Unicode 行分割アルゴリズム - metacpan.org
- UAX #14: Unicode Line Breaking Algorithm
- UAX #29: Unicode Text Segmentation
- Qt in depth: Qt の禁則処理 - Qt Japanese Blog
- libunibreak
- adah1972/libunibreak
Wikipedia
その他
- U-PRESS - Wikipedia
- Template:文字コード - Wikipedia
- Template:Character encodings - Wikipedia, the free encyclopedia
- Character encoding - Wikipedia, the free encyclopedia
文字
- Unicodeにおけるラテン文字 - Wikipedia
- Latin script in Unicode - Wikipedia
- 拡張漢字 - Wikipedia
- 香港増補字符集 - Wikipedia
- Hong Kong Supplementary Character Set - Wikipedia
- 西夏文字 - Wikipedia
- Tangut script - Wikipedia
- バムン文字 - Wikipedia
- Bamum script - Wikipedia
- たいと - Wikipedia
- Taito (kanji) - Wikipedia
- ノーティカルスター - Wikipedia
- Nautical star - Wikipedia
- 蘇州号碼 - Wikipedia
- Suzhou numerals - Wikipedia
- カシーダ - Wikipedia
- Kashida - Wikipedia
- Unicode - Wikipedia
- Unicode - Wikipedia
- ISO/IEC 10646 - Wikipedia
- Universal Coded Character Set - Wikipedia
- DIS 10646 - Wikipedia
- ユニコードコンソーシアム - Wikipedia
- Unicode Consortium - Wikipedia
- Ideographic Rapporteur Group - Wikipedia
- Ideographic Rapporteur Group - Wikipedia
- Common Locale Data Repository - Wikipedia
- Common Locale Data Repository - Wikipedia
- Unicode一覧 - Wikipedia
- List of Unicode characters - Wikipedia
- Unicode一覧表 - Wikipedia
- Unicode文字のマッピング - Wikipedia
- Universal Character Set characters - Wikipedia
- 文字符号化方式 - Wikipedia
- UTF-8 - Wikipedia
- UTF-8 - Wikipedia
- ホモグラフ攻撃 - Wikipedia
- IDN homograph attack - Wikipedia
- バイトオーダーマーク - Wikipedia
- Byte order mark - Wikipedia
Twitter
その他
言語指定
- Kazuho OkuさんはTwitterを使っています 「Unicodeで文字コードがユニバーサルになったと思ったら言語指定タグを別に用意しろって言われるの、ISO-2022のほうがマシじゃね、ってなるし、Unicodeは言語指定文字を追加すべき」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「もうそういう場合は仕方ないんじゃないかと思う (ニュートラルロケールっぽいものを勝手に仮定してその結果中華フォント問題などが起こっても仕方がない)。 ただ、特定言語を表示することが明確なときには、少なくともマークアップ側でページ単位の lang くらいはちゃんとしてて欲しい感。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「CJKTのフォントの選択で、一番どうしようもないのは、マークアップに言語情報がなく、エンコーディングもUTF-8等CJKTを特定することのできるものでなく、OS、アプリのロケール設定もCJKT以外で、Accept-Languageの設定もCJKTを含んでいない場合ですな。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「ちなみに、マークアップの言語指定も使い物になるかどうかは微妙な話で、例えばCJKT間で機械翻訳をアドオン等で行ってコンテンツを置き換えたのに、lang属性が変更されなかった場合ってのも考えられる。」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@d_toybox GitHub の OGP Image がその状態だとか何とか。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho そういう機構自体は言語タグという形でUnicodeにも用意されていたけどdeprecatedになったような... https://t.co/0ow2JpJFT0 まあ全部UnicodeのHan unification時にコード空間使い過ぎとか言われてテケトーにされてしまったのがダメ…」 / Twitter
- タグ (Unicode) ‐ 通信用語の基礎知識
- SODA NoriyukiさんはTwitterを使っています 「ISO-2022 の stateless 版だった DIS 10646.1 の漢字部分をまるまる置き換えて今のUnicodeになったんだけど、まるで内容が違うから再度DISを出して検討すべきなのに、そのフェーズをかっとばして拙速に決めた結果がこれ(←当時の日本のオッサンはずっと恨んでる」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「言語指定文字は 20 年以上前に提案されて却下されてた気がする。ISO-10646 の原案は ISO-2022 の stateless 版だったんですけどねえ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「その当時、欧米人は16bitで収まると本気で思ってたのよねえ。 康煕字典だけで47,035字あるわけで絶対無理っていう意見は当然あったんだけどunifyすればなんとかなるデショっていう意見の方が通ってしまって、結局足りなくなってその後サロゲートペアを導入することに…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと坂村健氏によると、「16bit化ですら、我々は我慢してるんだぞ(それ以上はそっちが我慢しろ、足りないとか知ったことか)」みたいなノリあったとの話も。」 / Twitter
文字選定
- ㆑さんはTwitterを使っています: 「Unicodeの中の人は当然世界の文字のことを全部知ってるわけではないので、間違った人を情報提供者にしてしまうOR提案を鵜呑みにしてしまうなど、昔からたまにやらかしている 理想は現地コミュニティから自然に標準化参加者が生まれるような環境だけど、現実には第一世界テックピープルしか来ないので…」 / Twitter
- 叛逆の人(daredemotypo)さんはTwitterを使っています: 「https://t.co/xZggo7u1o0 昨年4月に出された提案 要約すると:文字を保護しようと宣ってる団体が一番理解してない!」 / Twitter
- 21092-tulu-postpone.pdf
- 叛逆の人(daredemotypo)さんはTwitterを使っています: 「https://t.co/V1lPFS6BDp この文字体系の収録が遅れた原因」 / Twitter
- 叛逆の人(daredemotypo)さんはTwitterを使っています: 「変体仮名botの文字の癖について思ったこと はっきり言ってトゥル文字よりマシ https://t.co/7IP3HmV0RK」 / Twitter
- 叛逆の人(daredemotypo)さんはTwitterを使っています: 「1枚目: Śrinidhi氏らが提案した字形。 実際に使われていたものを基準にしたもの。 2枚目: karnataka sahitya academyの字形 3枚目: wikipediaユーザーの手書き文字」 / Twitter
- 🌻リュウセイ🧙さんはTwitterを使っています: 「「現地コミュニティから自然に標準化参加者が生まれる」、まず現地コミュニティに文字コードオタクが発生する必要があるから、確率的に無理な感じがある」 / Twitter
- 🌻リュウセイ🧙さんはTwitterを使っています: 「「学者や文字コードオタクが現地コミュニティの気を引いてなんとか参加してもらう」ならまだなんとかなりそうだが…」 / Twitter
UTF-8(Windows)
- Hideyuki Tanakaさんのツイート: "BOMってバイトオーダー示すためのものなのになんでバイトストリームであるUTF-8にBOMをつけてもいいような仕様にしたのか、Unicodeコンソーシアムの考えることはホンマわからん。(´・_・`)"
- なかのん&マジックさんのツイート: "charsetをHTTPヘッダとかで指定できないローカルファイル向けじゃないのかなぁ。昔、HTMLエディタを自作してたけど、一番困ったのは、読み込んだファイルがASCII文字しかない場合に、どのエンコーディングを前提とするかって事。新しく非ASCII文字を入力して保存する場合、さて、どうする?ってなる。"
- なかのん&マジックさんのツイート: "正直、なんで、UTF-8のBOMがそんなにうざがられてるのか理解できないんだよな。一部のアプリが適切にそれを無視できていないなら、悪いのはそのアプリの方なんで。"
- なかのん&マジックさんのツイート: "テキストエディタがCRLFか、LFのみにしか対応してなかったら、そのテキストエディタは使えないって思うでしょ?"
- なかのん&マジックさんのツイート: "逆に言えば、なんで未だにローカルファイルに文字コード情報がファイルシステムとかで記録・提供されないのよって思う。"
- なかのん&マジックさんのツイート: "そもそも、U+FEFFは"ZERO WIDTH NO-BREAK SPACE"なので、これをBOMとか呼んでるのがそもそもどうなのって感じもする。昔、ブラウザの文字化け回避に、HTMLに<!-- あ -->とか入れてたハックみたいなもんよね、あれ。(「あ」だったかどうかちょっと自信無いけど)"
- なかのん&マジックさんのツイート: "なので、あれを入れてる時点でASCIIなファイルではないので、これをUTF-8非対応のアプリに読み込ませるのは人の愚行なわけで。"
- なかのん&マジックさんのツイート: "今どき、まともなテキストエディタならBOMを標準で入れたりしないだろうし、大抵のUTF-8 awareなアプリならそれを無視するだろうしで、どういうシナリオで問題になるのかよく分からない。"
- KIMATA RobertHisasiさんのツイート: "Windows 標準及びごく少数の許可されたソフトウェアのみで作業する必要があり、しかも、BOMなしUTF8が必要だったため、メモ帳でJScriptファイル書いて、ADODBオブジェクトでBOM付きUTF8ファイルとして保存した上でバイナリとして読みだしてBOM分を飛ばしてから保存と言う作業をしたことがあり(笑)… https://t.co/mHP1FbgI78"
- 一ノ瀬 いろはさんのツイート: "notepad.exe が意図的に入れようとしなくても勝手に入れるぐらい。… "
- 一ノ瀬 いろはさんのツイート: "シェルスクリプトなどで使われる shebang の扱いと PHP ぐらいかな?… "
- 一ノ瀬 いろはさんのツイート: "どっちも書くのはツラいですね。 しかしnotepad.exeしか与えられない環境というのは意外と多く。… "
- なかのん&マジックさんのツイート: "メモリ4GBを基本的人権とか言う前に、もっと大切なことがある気がしてきますな……"
- なかのん&マジックさんのツイート: "とりあえず、みんな使っていないであろうメモ帳に変更があったからといって、なんでみんな反応したりするのかよく分からん。"
- Piro/Linuxコマンド操作漫画連載中さんのツイート: "法人サポートではこのファイルをこれこれこのように編集して下さいと案内する事がありますが、そこでBOMを強制的に付与する物が標準的に使われてしまうと、恐らく要らぬトラブルが増える事が予想されます。… "
- 村上真雄 MURAKAMI Shinyuさんのツイート: "Windows 10 のコントロールパネルの地域の設定で「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れると、今までデフォルトでShift JISだったもの(メモ帳をはじめ…)がUTF-8(BOM無し)になってくれてありがたいです。(それで不具合出る古い日本語アプリは捨てよう)… https://t.co/flgTiuKVCN"
- 村上真雄 MURAKAMI Shinyuさんのツイート: "この設定をすると「メモ帳」の「名前を付けて保存」で「文字コード: ANSI」(デフォルト)だとBOM無しのUTF-8、「文字コード: UTF-8」だとBOM付きのUTF-8のファイルになります。"
- 村上真雄 MURAKAMI Shinyuさんのツイート: "Windows用語の「ANSI」は、ANSI(米国国家規格協会)の標準規格じゃないのに、誤った名前で使われ続けているらしい: https://t.co/RvWOzy3rZa そのあたりの謎なWindows用語も直してほしいものです。"
- Windows code page - Wikipedia
- なかのん&マジックさんのツイート: "あの設定を変更すると、壊れるアプリは多々ありそう……古いアプリというより、古くからあるアプリの互換性が心配。特にインストーラとか、メンテがそこまで活発じゃなさそうな部分。"
- uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・… "
- なかのん&マジックさんのツイート: "あー、Unicodeアプリ以外全滅ですか。さすがに使えないですね……単純に古い開発環境で作ってるだけの新しいアプリも全滅しちゃいますね。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WinNT系カーネルもそうで、W系WinAPIは全てUTF-16(昔はUCS-2のLE表現)。 UTF8系WinAPIを用意すべきなのに、A系APIをOSコードページ指定(システムグローバル)を65001にすることで、UTF-8利用可にするという頭の悪い方向で頭が痛い… https://t.co/EZyfCcKfgj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1903からアプリ毎のUTF-8設定できるのね。知らなかった。 ただ、WIN32_FIND_DATAA など cFileName が MAX_PATH byte しか無いため、非ASCIIで87文字以上の長いファイル名が格納できないという、MBCS版(SJIS129文字まで)より、さらに制限のキツいアプリしか作れない。 https://t.co/1AnPmGpEfB」 / Twitter
- K.TakataさんはTwitterを使っています: 「manifestでアプリ単位でUTF-8に切り替えできるようになったので十分じゃないのかな。 https://t.co/V0T47xXIgI UTF-8なAPIだけを用意してもCRTが使えないのであまり意味がないし https://t.co/kqfXMGhXRx」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それと、IPMsg で実際に W系APIを UTF-8 API的なラッパーを用意して、UTF-8で動くコードを書いてる経験からすると、CRTは(UTF-8明示対応が理想だけど)実はmbcs系を明示的に使わず、strXXXみたいなASCII用関数を使う限り、ほぼ問題ない。(UTF-8はASCII系との互換性が高い) https://t.co/lvFt3kI1iA」 / Twitter
- ipmsg/tapi32u8.h at 733f2515b34f7a5f84342448540b1a61d9f1dd0b · shirouzu/ipmsg
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まずいのは mbsstr とか MBCS版CString のような MBCS前提に書かれたライブラリ。たとえば、VC6 の CString Find に UTF-8を食わせると破綻した経験。 (なお、VS2005のCStringだと leadbyte 終端時の \0飛び越しは無くなっていた) https://t.co/bCkJtweS6V」 / Twitter
- 私的メモ(2004年01月版)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば「アプリ毎コードページ設定化は無理?」と思っていたのだけど、意外と大丈夫だったのね。 コモンダイアログ等のDLLはMSさんがUTF-8対応したのだろうけど、それ以外で未対応DLLを食うパターンが無いかの確認はアプリ側でやれよ、ということかな。 https://t.co/fvAxXRJEcQ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、アプリ毎の ANSI API の MBCS/UTF8解釈切り替えは、DLLの存在を考えると、たぶん無理。」 / Twitter
Julia
- ChuuiさんはTwitterを使っています 「@uchan_nos Julia言語は、REPL環境に「 \lambda タブ」と押すと、λ が入力できる機能が標準で備わっている。 Julia公式 unicode入力: https://t.co/SGQkkNb6UH 各エディタの場合は拡張機能で。 次のブログ、興味深い記事でした。 > Unicodeプログラミングのすゝめ https://t.co/PRwjmS2h9n」 / Twitter
- Unicode Input · The Julia Language
- Unicodeプログラミングのすゝめ - りんごがでている
合字
- KIMATA RobertHisasiさんのツイート: "日本語の文中で全く読めない文字「ゟ」に出くわして、「より」の合字があることを知る"
- KIMATA RobertHisasiさんのツイート: "ひらがなの合字とカタカナの合字、UNICODEで定義されているのはここらへん参照らしい https://t.co/PSgHt1RbcO https://t.co/zLCBg9u89L 濁点、半濁点以外の合字だと平仮名の「ゟ」(より)と片仮名の「ヿ」(コト)がある模様。なお、「〼」(ます)は枡記号であって仮名ではないらしい。そうなんだ"
- The Unicode Standard, Version 12.0
- The Unicode Standard, Version 12.0
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「ゟ」は、「より」のひらがな合字、「合略仮名」と。… "
users
@rockridge07
- Rockridgeさんのツイート: "Fx42:Unicode v8.0をサポート。参照:https://t.co/hR5TaueMuf / “1183209 – update Unicode character data to version 8” https://t.co/3lbspBIwRe"
- Rockridgeさんのツイート: "Fx53:Unicode v9.0をサポート。参照:https://t.co/5eJdHuOEmL / “1281448 – update Unicode character data to version 9.0” https://t.co/QtHgUt197u"
- Rockridgeさんのツイート: "Fx56:Unicode v10.0をサポート。参照:https://t.co/XCqHzGprAP / “1376834 - Update Unicode data to release 10.0” https://t.co/SyxYcNNjNa"
@d_toybox
- なかのん&マジックさんのツイート: "これ、Unicodeが悪いかのような書き方してるけど、欧米の言語で考えればUnicodeのアプローチ正しいでしょ? 欧米の言語ごとに同じアルファベット定義させる気? lang属性はそういう意味で必要なのよ。 / 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? https://t.co/8eoYzLWlr0"
- 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? (1)
- なかのん&マジックさんのツイート: "あと、ページ全体のlang属性もきちんと指定しておかないと、例えば英語の設定しかしてないブラウザで漢字交じりのUTF-8なページを表示した時に、日中韓どのフォントで表示すれば適当なのかはヒントが他に無いのよね。実際にこういうトラブルで定期的にバグとしてFirefox側に報告来てたりするのよ。"
- なかのん&マジックさんのツイート: "Firefox的にはユーザ自身が設定の言語の所に、自分の使えるCJKの言語を追加して優先順位を適切にしておくと、それを優先するよって形にはなってるんだけど、まあ、英語版のNightly使ってる中国系の人からの報告が常にやってくる。"
- なかのん&マジックさんのツイート: "ちなみにGeckoは歴史の長いエンジンなので、過去からの互換性のために最後までヒントが無かったときのフォールバックで日本語が最初に来るので日本人は中々見かけない問題ではある。他のエンジンはどうしてるのか知らない。"
- なかのん&マジックさんのツイート: "ブラウザの実装やってる側からするとこの記事とか本当にアホかって思う。検索エンジンの方だけ向いて、ユーザの方を向かずにWeb作ってるからこう判断しちゃうんだろうな。 / Google「言語指定にlangは使うな」/公式発言 https://t.co/xFuK2b8j6L"
- Google「言語指定にlangは使うな」/公式発言
- なかのん&マジックさんのツイート: "Unicodeのコードテーブルで#(U+FF03)の定義を確認したけど、FULLWIDTH NUMBER SIGNと、<wide># だけだし、# (U+0023)の方もNUMBER SIGN、pound sign、hash、crosshatch、octothorpeだけで、music sharpはU+266Fと案内してるよなぁ。"
- なかのん&マジックさんのツイート: "UTF-16とかBOMは間違ってないと思うけどなぁ。少なくとも、処理する上でUTF-8は無いわーって思う。伝送にはUTF-8以外に無いわーだけど。"
- なかのん&マジックさんのツイート: "'EXCLAMATION QUESTION MARK' (U+2049) / 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ https://t.co/R9KQ6G3cul"
- 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ
- Yuzuru Suzukiさんのツイート: "「々」が漢字ではなく記号扱いだからバリデーション通らない超基本のやつだ。… "
- Atsushi Sasakiさんのツイート: "【悲報】ゆうちょPayでは「佐々木」という姓が名前として入力できない。なんだこれ日本に佐々木姓が何人いると思ってんだ……… "
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "emojiはUTF-32は解決できるかもしれないけど、IVSは解決できないし、クラスタは解決できないので、あのruiさんのエントリになるほどと思ってる人はunicodeのスペック読み直せ"
- Makoto Kato ︎︎さんのツイート: "個人的にはJPって絵文字並べると日本の国旗ができるスペック、あれどうなのよだし、そのタイミングで文句言えなかったのは自分の守備範囲のせいかも"
- Makoto Kato ︎︎さんのツイート: "元号が増えるとICUのアップデートが必要"
- Makoto Kato ︎︎さんのツイート: "なので、ICUを使ってるコードはすべてアップデートしないといけないんですが、誰が調査するんですかねー。(そもそもそのアプリで日本の元号表示したりするのかは置いておいて)"
- Makoto Kato ︎︎さんのツイート: "NEX久々に乗ったけどまだdouble byte言ってる。そもそもIDNとかあるのに何言ってるんだろ。作ったNTT Com?の人がおそらく40代以上なんだろうな… "
- Makoto Kato ︎︎さんのツイート: "triple bytesならいいのかといつも突っ込みたくなるやつ"
@kazuho
- Kazuho Okuさんのツイート: "今までマルチバイト対応が少なかったのを欧米圏の人たちの他文化への理解の欠如のせいにするツイートが散見されるけど、彼らからしてみれば、対応しようにも漢字読めないから正しい表示にできているのか判断しようがなかったんですよ。絵文字が流行るまでは。"
- Kazuho Okuさんのツイート: "アラビア語の表示が正しくできてるかデバッグしたことのある人だけが、英語圏のプログラマに斧を投げなさいって感じ"
- Kazuho Okuさんのツイート: "いっタイなんて書いてあるのか、わかりませんからねぇ https://t.co/Iexqryl8Xi"
- Kazuho Okuさんのツイート: "実際、ASCII+EUC/ShiftJIS自体に発生した様々な問題をユニコード(UCS2)で解決しようというのはアメリカ主導の提案だったわけだし、彼らにとっては、文化的無理解からやりたくなかったのではなく商業的理由でやりたかった話"
- Kazuho OkuさんはTwitterを使っています 「utf-8でBOM使うのがおかしいというのはunicodeの世界しか見ていない話で、文字コードの推定やる場合には便利だし、実際application/javascriptの場合は推奨されている推定手法です。ベストな解は、もちろんcharsetを指定することだけど。 https://t.co/AToDQAGcw9」 / Twitter
- RFC 4329 - Scripting Media Types
@rui314
- 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note
- Rui Ueyamaさんのツイート: "欧米の人たちはマルチバイト文字圏の苦労がわかってないし、わかっていても意図的に無視してきた、みたいなこと、いわないほうがいいと思いますよ。実際に払われてきた苦労をわかってないのはそういう人たちのほうで、しかも僕も含めた開発者を人種差別的な意味まで含みながら侮辱しているだけなので。"
- Rui Ueyamaさんのツイート: "UTF-8の認識が15年前くらいからアップデートされていないひとがわりといるのかも? Unicodeは2^32とかではなく最大でも1,114,112文字に制限されているので最長でも4バイトだし、冗長なエンコーディングは禁止されているのでそういうのは単に不正なバイト列。"
- Rui Ueyamaさんのツイート: "@anohana @tenpoku1000 @mkamimura そうですね。それと、ほとんどのデータや文章は最初から順番に読んでいかないと意味がわからないので(HTMLや自然言語の文を途中から読んでパーズしたりできない)、n文字目にO(1)でシークできるというのは実際はほとんどメリットないと思います。"
@a4lg
- Tsukasa #01 [要出典]さんのツイート: "ある資料の収録字を調べる → Unicode 中には無い → IDS で検索 → 中国国家図書館が、各地方志の電子化を行う過程で 4000 字以上の漢字を IRG に提出し、――その多くが今も未収録なことを発見する (IRG N1199 等)。"
- Tsukasa #01 [要出典]さんのツイート: "奇妙な字がたくさん。まだ Unicode に登録されていない漢字が多いという事実に圧倒される。 https://t.co/m5KhzR53GP (提案[この時点では正式な proposal ではない]) https://t.co/2fUdm0vutW (グリフ一覧)… https://t.co/xGe2XEzdey"
- Tsukasa #01 [要出典]さんのツイート: "念のため強調しておくと、Unicode 登録準備が進められているものを含めると、9万以上の漢字が Unicode (と、おそらく 2 年以内にそこに収録されるワーキングセット) に収録されているのだ。そこに漏れているものがまだまだ多いということは、………いやぁ、おそろしいねぇ。"
- Tsukasa #01 [要出典]さんのツイート: "@wtnelson @sarasvati635 Yes, I agree that. The only (and the biggest) problem is, this ideograph got too famous (about its stroke count) to reject. It feels more li… https://t.co/J8pJeS9nog"
- William T.さんのツイート: "@sarasvati635 @a4lg I am angry about UK-02960 「⿱䨺龘」 UK “additional evidence” is 和製漢字の辞典 that says: 存在未確認 UK says that UCS "does not encode idiosyncratic, pers… https://t.co/x0Mc38nVJ9"
- Tsukasa #01 [要出典]さんのツイート: "@ZawemonK "単なるデマ" として潰すタイミングを逸した感 (デマだったとしても、それを前提として載せてしまっているものも笹原氏の本含めてありますし……)。"
- Tsukasa #01 [要出典]さんのツイート: "oO( というわけで、それこそ 龍*n とか 雷*n の自称古文とかは広がらないうちに潰………れてるのかな。まぁ今はあまり広がってないが、流石にこれをエンコードしようっていうのなら強く反対。 )"
- Tsukasa #01 [要出典]さんのツイート: "@ZawemonK これ単独ではないでしょうが、間違いなくひとつ挙げられるのは、今昔文字鏡等の宣伝があるかと。"ちくわ" "慶應" とかもその類ですし。"
@tanakh
- Hideyuki Tanakaさんのツイート: "⿸ こんな文字とかあったんすね(´・_・`)"
- Hideyuki Tanakaさんのツイート: "漢字構成記述文字なんてものが定義されてたのか(´・_・`)"
@ohashimasaki
- Masaki Ohashiさんのツイート: "結局のところ、入力チェックを設けるよりも、所定の文字に関してだけ自動的に置換をするようにしといたほうがはるかに簡単だしスムーズだよね。どうせ0-9A-Za-zとカタカナと一部の記号だけなんだから…「全角」とか「半角」とかで決めるから意味が分からなくなる。"
- Masaki Ohashiさんのツイート: "もし「全角」「半角」をチェックしたいなら、自分または顧客が「全角」「半角」と考える文字の範囲をあらかじめ決めておかないとチェックしようがないけど、そもそも意味あるのかw たいていは顧客の社内文書のスタイルに起因するものなんだろうけど。とくに「全角」限定は悩ましい。"
@anohana
- Shiro Kawaiさんのツイート: "論文のアルゴリズム実装してみる時は、最近ではギリシャ文字とかあまり抵抗無く使うなあ。 上付き下付き文字を ^+ とか _1 とか書くのがいまいち、と思ってたんだけど、考えてみたらUnicodeにあるから使えばいいのか。U+2070 ~ U+209Cあたり。… https://t.co/W8RwPhGeG1"
- Shiro Kawaiさんのツイート: "SchemeはUnicodeの一般カテゴリで識別子を定義してて、全角数字はNdなので最初の文字としては使えない(2文字目以降は可)。が、Gaucheは今のところ「数字として解釈できないシンボルっぽいやつはシンボルでいいや」という昔のLispのユルさを引きずってる。 gosh> (define 1 2) |1| gosh> (+ 1 1) 4… https://t.co/UdfDqGRZHG"
- Shiro Kawaiさんのツイート: "これはやっぱりあんまりなのでそのうち変えるかも。"
histric
histric-1
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Unicode上では「.toUpperCase() は文字列の長さを変えない」という仮定はもはや成り立たない。 https://t.co/A8dFwX7ClY Pythonの.upper()も同様。 https://t.co/UuSmandUfP」 / Twitter
- Marcin Koziej: "TIL the assumption that string length does not ch…" - chaos.social
- コレフヂタケシ/7.170/伊藤毅さんはTwitterを使っています: 「JIS X 0208外の文字を「旧字体等」と表現するな:『表外漢字字体表』の年に生まれた子はもう卒論書き終へて就職決めてる頃だぞ」 / Twitter
- コレフヂタケシ/7.170/伊藤毅さんはTwitterを使っています: 「「旧字体等を新字体に置換する」といふ作業を文字通りに受取ると、JIS X 0208内の略字「頬」を正式な新字体「頰」に置換する……といふやうな(意図するものとまったく逆の)作業になる」 / Twitter
- OS作れないマンさんのツイート: "wchar_tがUnicodeだと言われるともやもやする。"
- なぎせ ゆうきさんのツイート: "ユーザー「ちゃんと文字数数えてくださいよ!」 プログラマ「では文字の数え方を定義して下さい。"👎"これは?」 ユ「1文字」 プ「サロゲートペアは1文字と。"・ิ"これは?」 ユ「1文字」 プ「合字は1文字と。"フ゜"これは?」 ユ「2文字……?」"
- Fadisさんのツイート: "Unicodeへの絵文字の追加によって、表音文字を使ってきた文化圏が表意文字をカジュアルに使い始めた事は遠い未来から文字の歴史を見ると大きな事件になっているのかもしれない"
- 渋川よしきさんのツイート: "UTF-8は最大6バイトでは?「絵文字を入力する」ユースケース対応でIME対応が進むことも期待できる。 : 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note(ノート) https://t.co/nzV61y7j5Y"
- kamimuraさんのツイート: "@shibu_jp @ymotongpoo 自身では単純に、utf-8の可変長でもほとんどの文字が6バイト(今では4バイト)になる、後方互換気にしない、いずれ2~6(4)バイトの大きさは気にするほどでもなくなる、と都合よく仮定して文字をUTF-32で実装してみたり。 https://t.co/KWo9s6Xqam… https://t.co/CAPAA5GLsz"
- Shiro Kawaiさんのツイート: "@tenpoku1000 @mkamimura @rui314 同意。「文字」というのはどうコード化しても前後の文脈に依存する場合が出るので、文字列=互いに独立した文字オブジェクトのランダムアクセス列、という道は幸せにはなれないと考えます。SchemeもR6RS前に大きな議論があって、結局言語上の文字=コードポイントと割り切り意味的な文字はア… https://t.co/m04MNNXdGt"
- 鹿野壮(かのたけし)さんのツイート: "Google Chromeで絵文字のサイズを257px以上にすると、消えるよ。 (FirefoxやSafariでは消えない) #跡部王国 https://t.co/8lhNaJ9Fly"
- mashabowさんのツイート: "新元号の組文字、「BMPに符号位置確保しといて」って要求が日本NBから出てた https://t.co/OsFnV1JWBT"
- 17429-sc2-n4577-japan-new-era.pdf
- Ken Lunde (小林劍󠄁)さんのツイート: "This is the second—and likely final—draft of the new figure for Section 18.2, “Ideographic Description Characters,” of the #Unicode11 Core S… https://t.co/YEnqKjnYCq"
- Kazuhiro Kazamaさんのツイート: "JavaやJavaScriptの国際化に携わってきたNorbert Lindenbergが日本語の勉強に来日した時に「日本語は難しい」と嘆いていたのですが,新たに日本語にハングルの要素を取り入れた"Niji script"を考えたそうです.ぜひ見てあげてください. https://t.co/5pJ1tSPZKq"
- The Niji script
- Masaki Haraさんのツイート: "WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。"
- Masaki Haraさんのツイート: "https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。"
- Hiroyuki Komatsuさんのツイート: "1970-1980 年代のコンピューターで使われていた画像描画用の文字が、ユニコードに採択されました。 古いコンピューター風の演出や、エミュレーター用途だけでなく、軽いツールのアイコンとしても使えそうです。顔文字の表現の幅も広がりますね。 僕の好きな MSX の命令は VPOKE でした。… https://t.co/ZrvdDhMVrc"
- The Unicode Consortiumさんのツイート: "214 characters from legacy computers and teletext that were proposed by @DougEwell, @BeckieRGB, and others in the “Terminals Working Group” in L2/19-025 were just accepted at #UTC158 for a future version of #Unicode → https://t.co/BNVgHvH2XQ… https://t.co/iI2Zo54TZO"
- 島鉄雄さんはTwitterを使っています: 「「𩸽」(ほっけ)という漢字が UTF-8 だと 4 byte になる知見を得た。 4 byte 文字も含めてちゃんと UTF-8 に対応しているか確認する時と、居酒屋で取り敢えずツマミを頼む時にほっけが使える。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「全角スペースが紛れてsyntax error、というツイートをちらほらみかけるんだけど言語仕様でUnicode許すならカテゴリZsを空白扱いにすればいいのに」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています 「Unicode 13.0 がもうすぐ公開か。……このバージョンで、久しぶりに新しい面が使われる。そう、漢字のために第2面、6.5万字強を割り当てたにも関わらずほぼ使い果たし、またもや漢字専用に割り当てられた第3面が今回正式デビューすることになるのだ。」 / Twitter
- ドッグさんはTwitterを使っています 「unicode-org 公式の i18n ライブラリ ICU4X が ICU4C や ICU4J での経験を生かして新たに実装されてる.実装は Rust .ECMA-402 互換の API を提供し,(多分 C ABI を通じて)複数のプラットフォームや言語で使えるようにするらしい | 'unicode-org/icu4x' https://t.co/GiILG5jWFv」 / Twitter
- unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
- ドッグさんはTwitterを使っています 「今のところ,対応予定のプラットフォームはブラウザ, iOS, Android, WearOS, WatchOS, Flutter, Fuchsia で,対応予定の言語は Rust, JavaScript, Objective-C, Java, Dart, C++.ブラウザ対応は Wasm を使うのか」 / Twitter
- decodeunicode.org
- Unicode Standard
- History of Unicode Release and Publication Dates
- Updates and Errata
国際化・地域化
MS
リソース DLL
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのLCIDは、地域を指定した個別ロケールIDと親(総称的・ニュートラル)IDとが用意されていて、親IDリソースだけ作れば、個別ロケール環境に応じて自動フォールバック可能。 だが、繁体字だけは親IDがVS2017から選択できず、リソース言語IDを直接0x7C04に編集する必要あり…後付けなのかな?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、直接編集した後に VS2017 で参照すると、こんな表示に。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10上のHK/TWの両環境で、正しくフォールバックされることを確認。 (ただし、Win10から対応した可能性も残る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(HK)からも、0x7c04なリソースにフォールバックされることを確認。 苦労して MUIの枠組みを使わなくても感(笑)"
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "フランス語Windowsだと、ASCII部分のキーアサインも随分違うのね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ダウンロードフォルダは Téléchargement、デスクトップは Bureau と表記されていた。へぇ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ドイツ語Windowsだと、YとZだけが入れ替わっている。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "イタリア語で、第二キーボードを日本語にするときは「Giapponese」。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アラビア版Windowsは、全てが鏡像の世界…単に「文字が右から左に」というレベルではなかった(笑) ボタン配置もタスクバーもごみ箱も、すべて逆さま。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そう言えば、最初はWindowsも文字列だけ右から左にしようしたが、矛盾が吸収できず結局、全て逆さまにした、という話を大昔に読んだ気がする…が元ネタが思い出せない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(英語)でも(フォント=MS Shell Dlg)同時多言語表示できることを確認。 (昔はUNICODE版でもフォントが無く▮▮表示に。ちなみにANSI版等でUNCODE変換が失敗した場合は??表示に)… "
- Gakuさんのツイート: "Win32APIのGetNumberFormat 関数を使って環境にあわせたロケールの数字形式に従って書式化されてはいかがでしょう。 https://t.co/lRY3KP9zxF… "
- GetNumberFormat 関数
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 このへんを眺めていたところでした。 https://t.co/7crsCHMuNG 日時その他もなかなか頭が痛いですが(笑) https://t.co/Uqho9drVT6… "
- Locale and Culture - Globalization | Microsoft Docs
- GetUserPreferredUILanguages function (Windows)
- Multilingual User Interface (MUI) Support - NyaRuRuが地球にいたころ
- MUI
- Multilingual User Interface API - Google 検索
- 日本語のWindowsは礼儀作法にうるさい?――英語環境で動作するコードが日本語環境でNGなワケ:その知識、ホントに正しい? Windowsにまつわる都市伝説(86) - @IT
- 英語版と日本語版、どっちのOS環境が使いやすい?:山市良のうぃんどうず日記(23) - @IT
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今更ながら(多言語リソース/DLLを直接使う場合に比べて)MUIの枠組みを使うメリットが手間の割に見えないな。 https://t.co/Q7RfWu0eUZ"
- Multilingual User Interface | Microsoft Docs
- 言語パックをストアから入手可能に ~「Windows 10 Insider Preview」Build 17074 - 窓の杜
Mozilla
- Rockridgeさんのツイート: "MozillaはFirefox本体のリリースとロケールのリリースを分離することや、ロケール変更を即時に反映させることができるように、基盤整備を進めている。 / “Gecko Locale Selection remodel co…” https://t.co/Ii5ZBZAucY"
- Rockridgeさんのツイート: "Fx55:日時の表示フォーマットについて、OSのロケールではなくブラウザのロケールを基準にするようになった。参照:https://t.co/Jyo42LH9H9 / “1339650 - Introduce mozIntl.Da…” https://t.co/cHPNVoaNvb"
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに「翻訳記憶」のダウンロード機能が実装された。翻訳記憶は承認済み翻訳の集合体。ダウンロード機能はこれを別プロジェクトなどで再利用可能にするものだ。 / “Reuse…” https://t.co/9SWanizaYw"
- Rockridgeさんのツイート: "Firefox(デスクトップ版・Android版)やThunderbirdなどの日本語ローカライズに関する進捗を確認できる。 / “Mozilla Localization Team Japanese” https://t.co/S5TET0Hbso"
- Mozilla Localization Team Japanese
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに最大文字数の超過を防止する機能が追加された。残り文字数も表示される。また、検索の速度もアップしたそうだ。 / “FTL, RTL, Tetris and othe…” https://t.co/dIuDwTxr0G"
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonで、外部から利用可能なAPIの開発が進められている。将来的にバックエンドとフロントエンドを明確に切り分けるつもりらしい。 / “Exposing Pontoon D…” https://t.co/widocPNsDu"
- Rockridgeさんのツイート: "将来的に、Firefoxは個別のローカライズ版がビルドされるのではなく、単一のビルドにWebExtensionsベースの言語パックを載せる形へと移行する。ある意味で昔に近い形態といえるか。 / “Switching langua…” https://t.co/DDHKuoSz5v"
- Rockridgeさんのツイート: "ローカライズ用リポジトリの統合(cross-channel)を達成した現在も、Firefoxのリリース日から遡ること2週前の水曜日がローカライズの期限となっており、それを過ぎると翻訳が製品版に反映されないらしい。 / “On c…” https://t.co/bjoeaZpje0"
- Rockridgeさんのツイート: "Fluentをベースにした新しいローカライズ用フレームワークへの移行が開始された。 / “Migration of Preferences strings to Fluent” https://t.co/Ej6qNMQYcG"
- Rockridgeさんのツイート: "GeckoのローカライゼーションAPIのスキームが2017年中に刷新され、基盤整備ができたので、2018年はFluentベースの新しい仕組みでローカライズが行われていく。まずは設定画面のUIから。 / “Multilingual…” https://t.co/H6NRzlPjC5"
- Mozilla L10N Glossary · mozilla-japan/translation Wiki
- Rockridgeさんのツイート: "ローカライゼーションに関するMozillaの汎用スタイルガイド。 / “Mozilla general style guide · GitBook” https://t.co/YiTw3aDvzG"
- Mozilla general style guide · GitBook
- Rockridgeさんのツイート: "Firefoxの設定画面のUIについて、Fluentベースの新しい仕組みでローカライズできるよう移行作業が行われている。Firefox Nightly 61で完成か。 / “L10n Report: March Edition …” https://t.co/mISsaGn87G"
- L10n Report: March Edition | Mozilla L10N
- Rockridgeさんのツイート: "Fx62:UIテスト用に疑似ローカライズ機能が搭載された。翻訳を待たずして特定のロケールに切り替えた場合のUIをチェックできる。参照:https://t.co/BM1xMtda9X / “Pseudolocalization i…” https://t.co/g0908Rpuqo"
- Rockridgeさんのツイート: "Fx64:新しい言語パックをインストールした場合、関連する辞書もインストールされるようになった。 / “1479008 - Install related dictionaries when a new langpack is …” https://t.co/BJS1VcxVLS"
- L20n • Home
- Mozilla in Japanさんのツイート: "本日、新たにFluent 1.0をリリースしました!新時代のローカライゼーションを体験してください😎 https://t.co/l0Zdxldgim… "
- Makoto Kato ︎︎さんのツイート: "FluentはFirefox OSの残骸の一つだけどね"
- chikoskiさんはTwitterを使っています 「今の所の案: - 対応する言語を 14 に絞る。これで 95% がカバーできる - 重要なコンテンツを機械翻訳で提供する。これらは編集できないものとする。 - 英語版が変更されるたびに、翻訳版も更新する - コミュニティによる編集を通じて、機械翻訳の質を向上するシステムを提供する」 / Twitter
- chikoskiさんはTwitterを使っています 「"8 languages cover 90% of the accept-language headers received from MDN users (en, zh, es, ja, fr, ru, pt, de)" とあるので、日本語は翻訳対象に残るんじゃないかと想像してます。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MDNのローカライズの件が、ああなりそうなところで、これやるんですかねー https://t.co/NyCvL3LghN」 / Twitter
- 【オンライン開催!】【第28回!】みんなで MDN を翻訳しよう!翻訳コミュニティ定例ミートアップ! 2020年11月21日(土)開催 - Mozilla Japan コミュニティ | Doorkeeper
gettext
- gettext - Wikipedia
- ISO 639 - Wikipedia
- ISO 3166 - Wikipedia
- GNU gettext utilities
- GNU gettext utilities
- GNU gettext utilities
- GNU gettext utilities
- C言語系/memos/gettext - Glamenv-Septzen.net
- gettext によるメッセージ処理
- GNU <CODE>gettext</CODE>ユーティリティ:
- GetTextを用いたローカライズ方法 - Conyac
- Manual - Documentation - Zend Framework
- 本の虫: Boost.Localeがクソすぎる
- 自然言語(ロカール)の選択
- Exgettextの話
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gettextを真面目に使うなら、en.poも作った方が良いという話。 (ただ、識別子を考えなくて良いというメリットが…) https://t.co/4Kh6eLHFE9"
- gettextを使う場合の注意点 – FLAMA技術Blog
- gettextとバージョン管理システムの相性の悪さを解消する案 - ククログ(2013-11-14)
- i18nしてますか?(gettext+PHPその1):海外でも通用するエンジニアになる:エンジニアライフ
- PHP国際化プログラミング - gettextを使った国際化
- GNU gettext utilities
- Gettextによるウェブアプリケーションの国際化と地域化 (1/4):CodeZine(コードジン)
- gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita
catgets
- Man page of CATGETS
- catgets(3)
- X/Open catgets API - Oracle Solaris でのアプリケーションの国際化とローカライズ
- IBM Knowledge Center - catgets() — メッセージ・カタログからのメッセージの検索
- メッセージカタログ(catgets)
- 標準 C 言語国際化プログラミング - メッセージ
Internationalization API
- Standard ECMA-402
- ECMA-402.pdf
- ECMAScript Internationalization API Specification
- ECMA-402.pdf
- Standard ECMA-402-archive
- ECMAScript® 2016 Internationalization API Specification
- ECMAScript® 2017 Internationalization API Specification
- ECMAScript Internationalization API Specification
- tc39/ecma402: Status, process, and documents for ECMA 402
- ibm-js/ecma402: ECMA-402 JavaScript Internationalization API "shim"
- ECMAScript® 2019 Internationalization API Specification
- Intl - JavaScript | MDN
- WebKit、Safari 10でECMAScript国際化API「ECMA-402」をフルサポート。 | AAPL Ch.
Twitter
histric
histric-1
- Fadisさんのツイート: "小数点は.とは限らなくて,を使う地域も存在する。一方JSONは小数点に.を使うことを要求している。従って、ロケールを指定せずにscanf/printf系の関数でJSONの数値を読み書きしてる実装は全てバグっている"
- Fadisさんのツイート: "C言語の規格はscanfの浮動小数点数の符号の後eの前までのフォーマットについて何も規定してないから、ロケール設定すれば期待通りの動きをするかどうかは環境次第か"
- Fadisさんのツイート: "POSIXとMSDNのドキュメントのレベルでロケールの影響を受ける事が書かれてる"
- Fadisさんのツイート: "@n_soda あっ 確かにmainに入った時点では環境変数で設定されたロケールは反映されてないですね"
- SODA Noriyukiさんのツイート: "@fadis_ 多国語対応するために setlocale(LC_ALL, "") を追加した瞬間にバグるの、怖いですねえ…"
- SODA Noriyukiさんのツイート: "@fadis_ 正確に書くと「setlocale(LC_ALL, "") ないし setlocale(LC_NUMERIC, "") を呼んでいるプログラムはバグっている」ですね。 setlocale() を一切呼ばなければ、デフォルトである "C" locale になりますから。"
- 渋川よしきさんのツイート: "i18nをどこでやるのか、という問題もある : 良いエラーメッセージの書き方 by @castanea on @Qiita https://t.co/vwOe5ovAxY"
- 良いエラーメッセージの書き方 - Qiita
- 渋川よしきさんのツイート: "汎用のツリー差分取得エンジンみたいなのが欲しい"
- Atsushi Enoさんのツイート: "DOMツリーを辿るとき、われわれはだいたいpreceding-siblingを左側に、following-siblingを右側に向かって読みに行くと思うけど、イスラエルのハカーとXPath実装の話をしていて話が全然合わなくて、ふと気づいて聞いてみたら彼らはわれわれと逆順にツリーを… https://t.co/80MlUkUdnx"
- Rui Ueyamaさんのツイート: "アラビア語やヘブライ語ではカレンダーは右ではなく左にめくると次の月になる、というバグが報告されて、そこまで逆なのかよーと思いながら直したことがあった。そもそもアラブはイスラム暦なのではないか?と思って聞いてみたらグレゴリオ暦でもOKというので、国際化わからんすぎると思った思い出。"
- Rui Ueyamaさんのツイート: "昔UIやってたころにmmddyyyyとddmmyyyyの違いでぐぐる検索の日付指定検索がカナダで何週間も使えない(アメリカでは使えた)というバグを作ってしまったことがあるので、国際化って英語圏vs非英語圏っていう話でもないんだよな。カナダでそんな問題になってるとはよくわかってなか… https://t.co/HLl0sopUfi"
- hnw (@hnw) | تويتر
- Shirouzu Hiroaki(白水啓章)さんのツイート: "数値のカンマ・ピリオド(ドイツ・スペイン・ポルトガル・イタリア語圏では意味が逆に)、英米式だと勘違いする人が居るのね…うーむ。 https://t.co/KgTSYYX8qI https://t.co/nStoBGLDMh"
- カンマとピリオド | 貿易よもやま話
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「インド、バングラデシュなど南アジアでは…「12,34,567.89」となります。…桁の区切り方が独特で、最初は3桁で区切りますが、その後は2桁ごとに区切ります。」 「カシオがこのインド形式の桁区切りをする電卓(3桁式との切り替え可能なもの)を現地で発売したところ、大人気になったそうです」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「FastCopyだと 30分で75,256MB == 75MBしかコピー出来ていない」と勘違いしてしまったとのこと。 "I noticed FC had only copied 75,256 MB ( euh ...75 megabytes) in half an hour." https://t.co/KgTSYYX8qI"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "誤解は無くなりそうですが、さすがに「75G256M」は気色悪い気が…(笑) (似た表記をしているアプリケーションはあるのかしらん?)… "
- Dan Kogaiさんのツイート: "いや慣れの問題でしょう。今だって1m83cmのような表記はいくらでもあるし… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "簡体中文環境での利用が第1位で、アラビア語(エジプト)が第4位という驚きの結果。 やはり測定は大事。"
- Shuuji Kajitaさんのツイート: "海外で△が通じないという話、研究室で緊急調査した結果がこちら。×は通じるけれど、○と△は通じなかったり誤解される危険性が高そうです。… "
- Localization standards reader 4.0
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「kdiff3のショートカットキー、国際化されていないのしんどい(Ctrl + Shift + 数字を使うの素人仕事すぎ)。」 / Twitter
- くいなちゃんさんはTwitterを使っています 「フランスでは、小数点にピリオド「.」ではなくカンマ「,」を使うので、「1.5」は「1,5」と表すのはご存じの通りですが、すると座標の「(1.5,2.5)」は「(1,5,2,5)」となって混乱しないのか疑問に思って調べてみました。 どうやら座標はセミコロン「;」を使って、「(x;y)」と表すようですね!」 / Twitter
- Shinji KonoさんはTwitterを使っています 「xボタンで決定は洋ゲーやってる人には常識。⚪︎に肯定的な意味はないらしい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)では、小数点はピリオドでもカンマでも可だが、桁区切りはスペースのみ。 一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけと。 https://t.co/FRzQQ5vB79」 / Twitter
- 小数点 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)の起源はメートル法=フランスだけど、一方で他国基準の国際統一に、最も抵抗しそうな国がフランスかも?という疑念もあったり(笑) ---- 「一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけ」」 / Twitter
- Uchio Kondo🍙さんはTwitterを使っています: 「scratchこうやって国際化対応できてすごいし、子どもがすでにグローバル意識しててすごいな https://t.co/j5SLyfut2C」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「2021年にもなって、OSの設定言語に複数の言語を設定できないようなの、Linux+GNOMEとかくらいなので、ほんと30年遅れてるんですよねぇ」 / Twitter
- ㆑さんはTwitterを使っています: 「現行MessageFormatとMozillaのFluentも置き換えることを狙う次世代L10N記述形式Unicode MessageFormat 2(策定中)らしい https://t.co/c1IBe79hp2」 / Twitter
- unicode-org/message-format-wg: Developing a standard for localizable message strings
- Mantaray@Devさんのツイート: "left / right 多用しているアプリは RTL 環境だと致命傷ということがよくわかった。"
- Mantaray@Devさんのツイート: "RTLでもX軸方向は変わらないので、マウスイベント関連の実装がとても面倒なことに"
- クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017 - Publickey
- クックパッドの海外展開プロダクト開発ノウハウとは(後編)~ORは「オワ」か?「オレゴン州」か? 問題。Cookpad TechConf 2017 - Publickey
- Mozilla、ローカライズのための仕様とツールを提供する「Fluent 1.0」を公開 | OSDN Magazine
- リストのローカライズに便利なIntl.ListFormatコンストラクタ | フロントエンドBlog | ミツエーリンクス
- geoloniaさんはTwitterを使っています 「Geoloniaが開発したオープンソースの住所正規化ライブラリ「normalize-japanese-addresses」(NJA)の最新のリリース「v2.5.0」を公開しました。ローカル環境のファイルシステムからデータをロードできるオプションが追加されています。 https://t.co/fwJZxQ4KZe」 / Twitter
- 住所正規化ライブラリ「normalize-japanese-addresses」にローカルファイルの利用に対応した新規リリースを行いました - Geolonia blog
- React18 の useId で a11y対応する
- won't fix: Intl.MessageFormat
- hi18n (i18nライブラリ) の紹介 (2) メッセージパーサーと型レベルパーサー | Wantedly Engineer Blog
MS
その他
- Microsoft Edge 99でスクロール時の動的リフレッシュレートが利用可能に | TECH+
- Windows 11では、デスクトップにダイナミックなリフレッシュレートが搭載されます。|自作.com
- Windows XP Visual Style の利用 - Windows 徹底解説 - Web/DB プログラミング徹底解説
- rs1.szif.hu/~tomcat/win32/walk32_1.txt
- graphics - how to vsync winapi drawings - Stack Overflow
- 【悲報】膨大な数のOSをサポートしたスーパーツール「curl」が対応するのが最も大変だったのはWindowsだった | ソフトアンテナ
- microsoft/cppwinrt: C++/WinRT
- EternalWindows
- Gecko1.8相当製品において修正したバグ - WebStudio
- 64 ビット Windows アプリケーション開発 - RAD Studio
- 碧落 - Win64 開発
- 1985年誕生「Windows1.0」を触ってみたら、恐怖のおっちょこちょいOSだった - デイリーポータルZ
- Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される | スラド
- OneCore.lib/MinCore.libの紹介 « 他人の空似
- Big Sky :: ネットワーク構成を変更した直後に Cygwin や msys2 が激遅になる問題の解決方法
- Big Sky :: Windows で子プロセスの標準入出力バッファリングを無効にする
- Idleプロセスと名無しのプロセス
- ChalkTalk CLR – COMのすべて – kekyoの丼
- ASCII.jp:Windows 10/11で位置情報を扱う (1/2)
- ASCII.jp:Windows 8におけるGPSセンサーと動作の確認 (1/2)
- wimをアクセスするコード(不完全)
- メッセージクラッカ - Web/DB プログラミング徹底解説
- Windows Programming/Resource Script Reference - Wikibooks, open books for an open world
MS
Windows App SDK(WinUI 3, Project Reunion)
窓の杜
- UWPアプリの洗練されたUIをWin32アプリでも ~Microsoft、「WinUI 3 Preview 1」を発表 - 窓の杜
- Microsoft、「WinUI 2.5」を公開 ~プログレスリングやBootstrap風の情報バーを追加 - 窓の杜
- Microsoft、「Windows UI Library」を公開 ~OSバージョンに縛られずに新機能を導入可能 - 窓の杜
- Microsoft、「Project Reunion 0.5」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
- 「Uno Platform 3.6」が発表 ~「Project Reunion 0.5」の「WinUI 3」に即日対応 - 窓の杜
- Microsoft、「Project Reunion 0.8」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
- 「Project Reunion」の正式名称は「Windows App SDK」に ~v0.8が一般公開 - 窓の杜
- Microsoft、「WinUI 3」の最新安定版を「Windows App SDK 1.0」の一部としてリリース - 窓の杜
- Microsoft、「Windows App SDK 1.1」を公開 ~初期リリースに欠けた機能を追加、パフォーマンスも改善 - 窓の杜
- C#やRustからWin32 APIをもっと簡単に呼び出せるように ~Microsoftが「win32metadata」プロジェクトを発表 - 窓の杜
- 「Windows Template Studio 3.0」が公開 ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜
- Microsoft、「Windows App SDK 1.2」を公開 ~サードパーティウィジェットが開発可能に - 窓の杜
マイナビニュース
- Windows 10 21H2以降で恩恵を受けられそうなWinUI 3 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Microsoft、UWPをこっそりと潜めていく方向を明らかに | TECH+
- さよならUWP? - 阿久津良和のWindows Weekly Report | マイナビニュース
ASCII.jp
- ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
- ASCII.jp:UWPとデスクトップアプリの統合を試みる「Project Reunion」のプレビュー版が登場する (1/2)
- ASCII.jp:あらためて「.NET」について整理する (1/2)
infoQ
- Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
- MicrosoftがProject Reunion 0.5のプレビュー版をリリース
- ReactとWinUI 3を使ってWindowsネイティブアプリを開発する
- Build desktop Windows apps with the Windows App SDK - Windows apps | Microsoft Learn
- What's New for Developers in Windows 11 - Windows apps | Microsoft Learn
- 開発者向けの最新のWindows 11機能 — アプリ開発Windows | Microsoft Developer
- Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」 ~WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化 - PC Watch
- microsoft/ProjectReunion: Project Reunion is an evolution of the Windows developer platform that will make it more compatible, agile, modern and open.
- Introducing WinUI 3 Preview 1 - Windows Developer Blog
- WinUI 3 Preview 2 (July 2020) | Microsoft Docs
- デスクトップ アプリ用の WinUI 3 の概要 | Microsoft Docs
- WinUI 2.6 Release Notes - Windows apps | Microsoft Docs
- Developing for Windows 11 - Windows Developer Blog
- Build your first WinUI 3 app (Part 1) - Windows Developer Blog
- Window App SDK Ecosystem Update - Windows Developer Blog
- Adding event handlers: Sounds, Dark Mode & Windowing (Part 2) - Windows Developer Blog
- Making the app single-instanced (Part 3) - Windows Developer Blog
- Create Next Generation Experiences at Scale with Windows - Windows Developer Blog
- DWriteCore overview - Win32 apps | Microsoft Learn
Windows Community Toolkit
- ARM64アプリの開発をサポート ~Microsoft、「Windows Community Toolkit」v6.0を発表 - 窓の杜
- トースト通知がたった数行で。新しいMVVMライブラリも ~「Windows Community Toolkit 7.0が公開 - 窓の杜
Uno Platform
- 「Uno Platform 2.0」が正式公開 ~C#/XAMLのUWPアプリをiOS/Android/WebAssemblyへ移植 - 窓の杜
- 「Uno Platform」が「Visual Studio Code」にプレビュー対応、WebAssemblyアプリが開発可能に - 窓の杜
- Windows 10の「電卓」アプリがオープンソース化 - 窓の杜
- Windows 10の電卓アプリがiOS/Android/WebAssemblyで動作 ~「Uno Calculator」が公開 - 窓の杜
- Unoプラットフォーム3.1がリリース
- Uno Platform 3.8登場
MAUI
- マイクロソフト、マルチプラットフォームUIを実現する「.NET Multi-platform App UI」(MAUI)を実際にデモ。単一コードからWebとWindowsアプリを生成 - Publickey
- マイクロソフト、Blazorでデスクトップアプリやモバイルアプリを開発できる「Blazor Hybrid」は.NET MAUIベースになると説明 - Publickey
- .NET MAUIがバージョン1.0に到達。C#/.NETのシングルコードベースでWin/Mac/iOS/Androidのネイティブアプリを開発可能に。Microsoft Build 2022 - Publickey
- Microsoft、.NETのUIを統一する「.NET Multi-platform App UI」(.NET MAUI)を発表 - 窓の杜
- Microsoft、「.NET MAUI」Preview 4を発表 ~マルチプラットフォーム対応アプリUIフレームワーク - 窓の杜
- Microsoft、「.NET MAUI」を正式リリース ~デスクトップ・モバイルのネイティブUIを単一コードで - 窓の杜
- 「Visual Studio for Mac 17.4」で「.NET MAUI」が利用可能に - 窓の杜
- .NET MAUI Preview 4はこちら
- .NET MAUI Preview 5が目前に
- 新たなWeb認証オプションと.NET MAUI Essentialsを加えたXamarin.Essentials 1.7
- MicrosoftがXamarin Community Toolkit用の.NET MAUI Compatibility Packageをリリース
- .NET MAUIがPreview 8をリリース、しかしGAは2022年Q2に延期
- .NET MAUI Preview 9 - ボーダ、コーナ、シャドウ、パフォーマンスの向上
- マイクロソフト、「.NET MAUI」がリリース候補版に到達。単一コードでWin/Mac/Android/iOSのUIを記述可能に - Publickey
- えんじに🐈にゃーん💉💉さんはTwitterを使っています: 「MSが提供するUIフレームワーク。苦労して理解しても2~3年で葬られ続けるため、みんなWebに家出して戻らなかったという理解 生Win32→MFC→ATL→COM/+→.NET→...→WPF/Silverlight→UWP→Xamarin→Blazorとか? 他にも色々ある気がするけど今や Windows DesktopApp 作れる人を探すの本当に難しいよね」 / Twitter
- えんじに🐈にゃーん💉💉さんはTwitterを使っています: 「Webに家出した人達も「○○はもう古い! ☓☓が今のベストプラクティス!」「☓☓は古い! △△が今の(ry)」と笛を吹く人に(特に生産性は上がらないのに)踊らされ、毎回違うフレームワークやバンドラの設定を習得させられ「IEをサポートしろ」「IEで動きません」と言われ続け、帰宅困難者が続出する訳だが」 / Twitter
- えんじに🐈にゃーん💉💉さんはTwitterを使っています: 「施設から逃げだしたが、逃げた先も地獄だったという」 / Twitter
- Xamarinのサポートは2024年5月1日で終了。マイクロソフトが.NET MAUI関連のロードマップを示す - Publickey
- Xamarin のサポート終了と .NET 統合の話
WebView2
- 新しい「Edge」をアプリに組み込める ~Win32 C/C++向けの「WebView2」が一般公開 - 窓の杜
- MicrosoftがChromiumベースのWebView2でハイブリッドWindows Webアプリをサポート
- Microsoft、.NET向け「WebView2」を一般公開 ~ランタイムバージョンの固定にも対応 - 窓の杜
- Microsoft Edge WebView2が一般公開
- マイクロソフト、Chromiumベースの「Microsoft Edge WebView2」.NET正式対応版リリース。バージョンを固定できる「Fixed Version distribution mode」も - Publickey
- 高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
- Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks
- Microsoft Teams 2 will use half the memory, dropping Electron for Edge Webview2 | Hacker News
- 「Electron」と「WebView2」はどう違う? ~「Electron」の開発チームが解説 - やじうまの杜 - 窓の杜
- Microsoft、「WebView2」ランタイムをWindows 11に同梱 ~古い環境へのバックポートも進める - 窓の杜
- 2022年3月のプレビューパッチに問題、「WebView2」アプリで画像がウィンドウの外に表示される - 窓の杜
- Microsoft、Windows 10でも「WebView2」ランタイムの展開を開始 - 窓の杜
- 「WebView2」がUWP開発でも利用可能に ~古いアプリのChromium/Blink移行に期待 - 窓の杜
- Delivering the Microsoft Edge WebView2 Runtime to Windows 10 Consumers - Microsoft Edge Blog
- WebView2 is now Generally Available for WinUI 2 (UWP) apps - Microsoft Edge Blog
- Microsoft Edge and Webview2 ending support for Windows 7 and Windows 8/8.1 - Microsoft Edge Blog
- 「Microsoft Edge」「WebView2」のWindows 7/8.x対応は来年1月中旬まで - 窓の杜
- Delivering Microsoft Edge WebView2 Runtime to managed Windows 10 devices - Microsoft Edge Blog
Windows Runtime
C++/WinRT
- C++ - C++/WinRT の紹介
- Standard C++ and the Windows Runtime (C++/WinRT) - Windows Developer BlogWindows Developer Blog
- C++/WinRT
- C++WinRTではじめるUWP
- C++/WinRT | Modern C++ for the Windows Runtime
- Microsoft/cppwinrt: C++/WinRT is a standard C++ language projection for the Windows Runtime.
- MS、オープンソースで公開のC++/WinRTの処理高速性をアピール | マイナビニュース
Windows Template Studio
- Windows Template Studio - Visual Studio Marketplace
- Microsoft、UWPアプリの雛形を手軽に作成できる「Windows Template Studio」v1.3 - 窓の杜
- 「Windows Template Studio」v1.5が公開 ~UWPの雛形を作成するVisual Studio拡張機能 - 窓の杜
- アプリ雛形を作成するVS拡張「Windows Template Studio」v1.6、画像ギャラリーに対応 - 窓の杜
- Visual Basicをサポートした「Windows Template Studio」v1.7が公開 ~Prismにも対応 - 窓の杜
- アプリの雛形を作成するVisual Studio拡張「Windows Template Studio」がv2.0に - 窓の杜
- 「Windows Template Studio」がv2.2に ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜
- Windowsランタイム - Wikipedia
- Windows Runtime - Wikipedia
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- Windows Runtime 8.x APIs for desktop apps (Windows)
- Windows と C++ - Windows ランタイムにおける洗練された型
- RoGetActivationFactory function (Windows)
- パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) - UWP app developer | Microsoft Docs
- ToastNotification Class (Windows.UI.Notifications) - UWP app developer | Microsoft Docs
- 遥佐保の技術メモ:[C++][WRL]デスクトップアプリからトースト通知 - livedoor Blog(ブログ)
- DesktopからToast Notificationsへ通知する | Software Development | Just another WordPress site
- トースト通知 - かずきのBlog@hatena
- デスクトップアプリからWinRT APIを使用する - 酢ろぐ!
- 特集:デスクトップでもWinRT活用:開発者が知っておくべき、ライブラリとしてのWindowsランタイム (1/5) - @IT
- WinRT APIを使ってみる - イグトランスの頭の中
- WinRTとC++イテレータ - イグトランスの頭の中
- WinRTのref classでの演算子多重定義 - イグトランスの頭の中
- C++コンポーネント拡張:新しいCOM
- COM 再入門 (1) - モノトーンの伝説日記
- Windows Runtime/WinRTとプログラミング言語 - WisdomSoft
- Windows 8時代のアプリ開発とWinRT(1/4) - @IT
- WinRT:Win32のオブジェクト指向による代替
- Windows 8時代のアプリ開発
- Rockridgeさんのツイート: "Fx64:Windows 10ネイティブのトースト方式通知をサポート。通知はアクションセンターに登録される。今のところNightlyチャンネルでのみ有効化されている。 / “1155505 - Implement ToastNo…” https://t.co/0wEyVnh7NH"
- ゆたかさんのツイート: "UWP最高!!全部API置き換えるもん!!!!みたいな熱量からだんだんやっぱWin32捨てれねぇわ…感を漂わせて、バージョンごとに増えていく許可されたWin32 APIがちょっとおもしろい"
- Error Handling (Error Handling) - Win32 apps | Microsoft Docs
- Drawbridge - Microsoft Research
- Drawbridge - Drawbridge.pdf
- Author APIs with C++/WinRT - UWP applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(execve と違い、CreateProcess自体で PATH を見たりしてるので、環境変数で追加制御するのは大胆というほどでは無いのかな)」 / Twitter
- Closing a 30 pixel gap between native and web - Microsoft Edge Blog
- Extending the Context Menu and Share Dialog in Windows 11 - Windows Developer Blog
- SelectObject 関数利用時の注意事項 | Japan Developer Support Core Team Blog
- Console Reference - Windows Console | Microsoft Docs
- XAML Islands Archives - Windows Developer BlogWindows Developer Blog
- Bug Check Code Reference | Microsoft Docs
- Technical documentation, API, and code examples | Microsoft Docs
- KeyboardDeliveryInterceptor Class (Windows.UI.Input) - UWP app developer | Microsoft Docs
- Condition Variables - Win32 apps | Microsoft Docs
- Msdn forums - Open Specifications
- UI オートメーションの概要 | Microsoft Docs
非推奨
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WIn95時代から存在する、Win32アニメーションコントロールを初めて使ってみる…AVI縛り以外は意外と良いかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、非圧縮でない場合に、RLE8縛りになるのが厳しいな… https://t.co/5NHvwiXDeE An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding."
- Shirouzu Hiroaki(白水啓章)さんのツイート: "結局、GDIplusで、アニメーションGIFのフレームを1つずつ取り出しながらタイマーで描画、というベタな解に落ち着きそう。"
- 市川 真一さんのツイート: "古い環境をサポートするためなのでしょうけど、GDI+ は非推奨 API らしいですね。今なら Direct2D を使ってほしいみたいです: Deprecated or legacy APIs https://t.co/Z283r33XkN… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 MSは広まったAPIやコンポーネントは滅多に廃止しないので、GDIとGDI+は事実上廃止されないのではという気も(笑) (CreateFileTransactedのような不人気API群は躊躇なく廃止しますが)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GDI/GDI+が廃止されるとしたら、デスクトップ開発はC#等のマネージドアプリのみを認め、C++はドライバ開発のみと決断した時かな?とも。… "
- 市川 真一さんのツイート: "それに期待したいところです。ゲームや Web 関係の技術は廃止されて被害にあってる人も多いようですね… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それは知りませんでした。 ゲーム系はよく知らないのですが、Web系だとIEコンポーネントやInternetOpen等廃止されそうと言われつつも、しぶとく未だに使えている印象もあったのですが(笑)… "
- 市川 真一さんのツイート: "例えば Web 系だと C/C++ じゃないですが、J# が丸ごと廃止になってたり。あれで開発してた人もいたのですけどね… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 MSの過去の行動を見ると、累積ソフト資産の総量で決めている感じがしますね。 累積総量が多いと、古臭くても非推奨でもしぶとくサポート、と。 逆に、Windows Mobileなどは、梯子を外された感を持つハード&ソフトベンダの方も多そうですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その点、Appleは結構大胆に切り捨てている印象が…でもユーザが思ったほど離れない不思議。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔MSは、SDIよりMDIを推奨し続けて、ついにMDIアプリはMS Excelのみ、といった時代になってようやくMDI推奨を取り下げて、その後ExcelもSDI化したという歴史があったような。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2001年に SDI推奨になった資料があった…ということで、記憶より前からSDI推奨に変わっていた様子。 https://t.co/j2vs3xRRW8"
Windows 10
削除または非推奨
- Windows 10 Creators Update Deprecated Features | Microsoft Docs
- Windows 10 Fall Creators Update Deprecated Features | Microsoft Docs
- Windows 10, version 1803 - Features that have been removed | Microsoft Docs
API
- Windows 10 ビルド 14393 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 バージョン 1607 API の変更点 - UWP applications | Microsoft Learn
- Windows 10 ビルド 15063 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 Creators Update API の変更点 - UWP applications | Microsoft Learn
- Windows 10 ビルド 16299 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 Fall Creators Update API の変更点 - UWP applications | Microsoft Learn
- Windows 10 ビルド 17134 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 ビルド 17134 の API の変更 - UWP applications | Microsoft Learn
- Windows 10 ビルド 17763 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 ビルド 17763 の API の変更 - UWP applications | Microsoft Learn
- Windows 10 ビルド 18362 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 ビルド 18362 の API の変更 - UWP applications | Microsoft Learn
- Windows 10 ビルド 19041 の新着情報 - UWP applications | Microsoft Learn
- Windows 10 ビルド 19041 の API の変更 - UWP applications | Microsoft Learn
- UWP アプリ用の Win32 API と COM API - Windows UWP applications | Microsoft Learn
- すべてのWindows 10 デバイスに存在する API (モジュール別にグループ化) - Windows UWP applications | Microsoft Learn
- Windows 10 デバイスの拡張機能 API (モジュール別にグループ化) - Windows UWP applications | Microsoft Learn
- ユニバーサル Windows プラットフォーム (UWP) アプリでの Windows API の代替 - Windows UWP applications | Microsoft Learn
- SetThreadDescription 関数 (processthreadsapi.h) - Win32 apps | Microsoft Learn
- DPI_AWARENESS_CONTEXT ハンドル (windef.h) - Win32 apps | Microsoft Learn
- ファイル、パス、および名前空間の名前付け - Win32 apps | Microsoft Learn
- Microsoft Windows 10 - Wikipedia
- What's new in Windows 10 build 10240 - July 2015 - UWP app developer | Microsoft Docs
- What's New in Windows 10 build 10586 - November 2015 - UWP app developer | Microsoft Docs
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- Windows 10 の開発者向け新着情報、ツール、機能 - UWP app developer | Microsoft Docs
- Windows Machine Learningなど開発者にも続々と新機能 - Windows 10 April 2018 Update | マイナビニュース
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- TLS (Schannel SSP) | Microsoft Docs
- Why Are We Deprecating Network Performance Features (KB4014193)? | Ask Premier Field Engineering (PFE) Platforms
- Update on Microsoft’s Symbol Server – Debugging Tools for Windows
- Microsoft public symbol server | Microsoft Docs
- Windows Filtering Platform (Windows)
- SetThreadDescription function (Windows)
Application Manifests
MS
Wikipedia
- リソース (Windows) - Wikipedia
- Resource (Windows) - Wikipedia
- Multilingual User Interface - Wikipedia
Resource Files
- About Resource Files (Windows)
- Resource-Definition Statements (Windows)
- Resource File Formats (Windows)
- RESOURCEHEADER structure (Windows)
- Resource Types (Windows)
- Resource Types (Windows)
- Resource Files (Visual Studio)
- Multilingual User Interface Reference (Windows)
- Manifest Resources
- /ALLOWISOLATION (マニフェスト検索)
- /MANIFEST (side-by-side アセンブリ マニフェストを作成する)
- /MANIFESTUAC (UAC 情報をマニフェストに組み込む)
- /MANIFESTINPUT (マニフェスト入力の指定)
- アプリケーション マニフェスト
- 方法 : マニフェストを C/C++ アプリケーションに埋め込む
- C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング
- Installing Side-by-side Assemblies (Windows)
- Side-by-side Assemblies Reference (Windows)
- Windows XP ビジュアル スタイルの使用
- コマンド ラインでのマニフェスト生成
- Visual Studio でのマニフェスト生成
- Mt.exe (Windows)
- Manifests (Windows)
- Manifest Files Reference (Windows)
- Manifest Files Reference (Windows)
- Application Manifests (Windows)
- Application Manifests (Windows)
- Application Manifests (Windows)
- Application Configuration Files (Windows)
- Publisher Configuration Files (Windows)
- Manifest File Schema (Windows)
- Application Configuration File Schema (Windows)
- Publisher Configuration File Schema (Windows)
- UAC関連
- 現在のWindowsサイドバイサイドについて
- 現在のWindowsサイドバイサイドについて-続き-
- Windows マニュフェストファイルの読み込み順 |
- c++ - reading an application's manifest file? - Stack Overflow
- winapi - How to use a manifest embedded as a resource? (Windows XP/Vista-style controls) - Stack Overflow
- resourcelib/Manifest.md at master · resourcelib/resourcelib · GitHub
- RT_MANIFEST
- RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED – Junfeng Zhang's Musing
- [Delphi/BCB] manifestファイルをexeに埋め込む: プログラミングの覚え書き
- [ 314_アプリケーションマニフェストの作成とリソースの操作 ] - Mr.XRAY
- Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス - Windows XP以降でアプリケーションにThemeを反映させるには(2)
- WindowsXPのVisualStyleを使う(SDK)
- Section7.5 ボタンとかのデザインをXP仕様にする
- Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuが地球にいたころ
- UTF-8文字列をAPI引数で使えるようになった – すらりん日記
HiDPI
- HiDPI - ArchWiki
- HiDPI スケーリング フォント - Google 検索
- HiDPI スケーリング フォント エイリアシング - Google 検索
- Tsugawa/CubeSoft, Inc.さんはTwitterを使っています 「高 DPI 対応、よほど見た目を気にするアプリ以外は「悪い事は言わないからシステム (Windows) に任せておけ。な?せいぜい見た目がぼやける位やろ?頑張って自力で完全対応しようとしても、絶対、地雷踏むから」と言う感想。Per-Monitor DPI とか、本当に「罰ゲームか何かの類か?」みたいな。」 / Twitter
- 「Ubuntu 14.04 LTS」レビュー--高解像度化対応やLinuxカーネル3.13採用など - CNET Japan
- ほげめも: Linux HDMI で WQHD まとめ
- won't fix: Gnome 3.10 / GTK3.10 でのHiDPI
- EIZOの27インチ4K液晶ディスプレイEV2785-BK購入後のレビュー USB Type Cケーブル1本で映像出力・給電に対応 | ITハンドブック
- 研究千年牛酪情報保管庫菩薩さんのツイート: "HidpiマルチモニタはWindowsでもおもしろ挙動するしそういうものなのかなという思いがある…"
- まさみさんは語りたいさんのツイート: "マルチモニタ時のHidpiは2年以上前から苦しめられていて、常時2画面を諦めた主な理由だったりする。"
- Takashi Kawasakiさんのツイート: "僕はWindowsで4K液晶とかを150%設定で使ってるけど、古いアプリのスケーリングは、「システム(拡張)」という謎テクノロジーで「割と」綺麗になるのであんまり困ってない。 というか、ほとんどの古いアプリは既に捨てた。… "
- タスクマ ネージャーでアプリのDPI対応を確認可能 ~「Windows 10 19H1」Build 18252 - 窓の杜
- 次期Windows 10のタスクマネージャーでDPIスケーリング対応アプリが確認可能に - PC Watch
- なかのん&マジックさんのツイート: "予想したけど、それ以上に200%表示はフォントがWindowsでも綺麗だ。これが標準的な環境になっていかなあかんな。"
- なかのん&マジックさんのツイート: "これ、HiDPI対応のアプリで、200%表示だと、MS Pゴシック等々もベクターフォントとしてのレンダリングになるのか?"
- なかのん&マジックさんのツイート: "そうか、200%表示のWindowsって見た目の印象がmacOSと変わらんのか。"
- なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?" (1)
- なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?"
- Masaru Iritaniさんのツイート: "ビルド 18298 でポインターのサイズを最大にすると面白いぐらい大きくなりますね。これなら 4K ディスプレイでもすぐに見つけられます。スクリーンショットでお見せしたいところですが、どうやらポインターは映り込まない模様です。 #WindowsInsiders"
- 渋川よしきさんのツイート: "HiDPIがまともにサポートされていて(外部ディスプレイと内部ディスプレイで個別にDPI設定できる)、ピクセル単位スクロールができるタッチパネルがきちんと動くLinux機が出たらメイン機にしたいとは思っているけど、すこーしだけ足りない。"
- Bug-org 1557587 When I open 2 or more windows in different DPI monitors, window size in non-primary monitors are not restored correctly - WebStudio
- Makoto Kato ︎︎さんはTwitterを使っています: 「24インチ、27インチの4Kディスプレイが辛いって書いてある人は大概HiDPI使ってないので、そういう人がディスプレイとか文字のレンダラーの話を話してもまったく信用してない」 / Twitter
Per monitor DPI Aware
MS
- アプリの高DPI(High DPI)対応について 第1回 ~ 高DPIとは ~ – 田中達彦のブログ
- アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~ – 田中達彦のブログ
- アプリの高DPI(High DPI)対応について 第3回 ~ マニフェストでアプリのDPI対応レベルを変更する ~ – 田中達彦のブログ
- DPI に関連する API およびレジストリ設定
- High DPI Desktop Application Development on Windows (Windows)
- High DPI Scaling Improvements for Desktop Applications and “Mixed Mode” DPI Scaling in the Windows 10 Anniversary Update - Building Apps for WindowsBuilding Apps for Windows
- SetProcessDpiAwareness function (Windows)
- SetProcessDPIAware function (Windows)
- High DPI Desktop Application Development on Windows (Windows)
- DPI_AWARENESS enumeration (Windows)
- DPI_AWARENESS_CONTEXT handle (Windows)
- High DPI Reference (Windows)
- DPI_AWARENESS_CONTEXT handle (Windows)
- DPI_AWARENESS enumeration (Windows)
- 高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法 (Windows)
Adobe
- HiDPI/Retina ディスプレイへのアドビ製品の対応状況
- Hi DPI/Retina ディスプレイのサポートについて(Acrobat/Adobe Reader)
- Windows 用 HiDPI サポート
ASCII.jp
- ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
- ASCII.jp:Windowsと高DPIディスプレイ【その1】 8までのDPIスケーリング (1/2)|Windows Info
- ASCII.jp:Windows 10+高解像度ディスプレイでのアプリのボケはRS2で解消される|Windows Info
Twitter
- Rockridgeさんのツイート: "「Chomeはダメだが、FirefoxはPer Monitor DPI Awareで動作している」。Fx47で対応した。参照:https://t.co/iRImEajgkm / “【4K修行僧】Anniversary Updat…” https://t.co/K7QAEvo62O"
- Rockridgeさんのツイート: "Fx55:Windows 10 Creators Update以降の環境ではPer-monitor v2を使用するようになった。参照:https://t.co/G95AH5RfFJ / “1354020 - Use per-mo…” https://t.co/yoP6qGItDI"
- ぬるぽへさんのツイート: "windowsのフォントレンダリング、hiDPIなら気にならないみたいな論調あるけど1.5倍表示の4Kでも普通にかすんでるところがあるような"
- なかのん&マジックさんのツイート: "Per-monitor DPI環境になると、ウインドウのリサイズが遅いアプリって本当に使いにくくなるな。"
- Windows 8.1 で加わった Per-Monitor DPI と WPF での対応方法 | grabacr.nét
- WPFにおけるPer-Monitor DPI対応の実装
- Per-Monitor DPIに備える
- WPFのPer-Monitor DPIサポート(その4)
- 高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(3) ~ WPF で無理やりスケーリング対応する - モノトーンの伝説日記
- Windows8/8.1時代のWin32プログラミング #sapporocpp
- Windowsの画面スケーリングをきちんと理解しよう
- Windows 8は、Win32 APIを置き換える
- 「秀丸エディタ」v8.69が正式公開、HD/4K混在マルチモニター環境での使い勝手が向上 - 窓の杜
- 【4K修行僧】Windowsの4Kスケーリング環境を検証する ~文字表示は美麗。ただし、非対応アプリも多数存在 - PC Watch
- 【4K修行僧】Anniversary Updateで4Kに優しくなったWindows 10 ~デスクトップアプリのダイナミックスケーリングにメス - PC Watch
- Windowsの表示サイズ変更設定(HiDPI表示) | EIZO株式会社
- 本の虫: 高PPIディスプレイへの対応の難しさについて
- Coding for High-DPI Displays in Windows | Dr Dobb's
- GUI総合 - ソフトウェアエンジニアリング - Torutk
- Creators Updateの不具合: T.Ishiiのソフト開発記
- Tungsten開発者ブログ: Tungsten 2.04 リリース
- kondoumh のブログ
- Visual StudioでWindowsアプリケーションマニフェストのdpiAwareプロパティを「モニタごと」に設定するにはどうすればよいですか? [visual-studio-2013] | CODE Q&A [日本語]
- 高DPIのサポート
- 高 DPI のサポート - Windows Forms | Microsoft Docs
- 構成要素の追加 Windows フォーム | Microsoft Docs
- .Net Framework 4.6 の高DPI対応でPer MonitorとPer Monitor V2を同時に設定する:るなおーびっと! - ブロマガ
- AC01_PDF_TS18 - AC01_PDF_TS18.pdf
- Per-Monitor DPI
- Application manifest for Per Monitor V2
- WPFのPer-Monitor DPIサポート(その4)
- デスクトップアプリの高DPI対応 #2 – アプリ側の高DPI対応の概要 – nishy software (ja)
ダブルバッファリング
- Shirouzu Hiroaki(白水啓章)さんのツイート: "描画のちらつき抑止用ダブルバッファリング、OS側がそれ的な動作をサポートしてくれないものかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: ".NET には存在しているようだ。 https://t.co/SjjgMV7Dco"
- ダブル バッファリングされたグラフィックス | Microsoft Docs
- Ryota Shioyaさんのツイート: "いまどきの Windows でデスクトップ・コンポジションが有効な状態だと実質的に常にダブル・バッファしてるようなもんだと思うんですけど,どうでしょう?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その意味ではその通りです。 ただWindowDCにGDIで直接お絵かきすると、その過程がすべてリアルタイム更新されるので、ちらつくんですよね。(手動ダブルバッファなしに)BeginPaint~EndPaintをまとめて最終結果だけ表示するモードも欲しいなぁ、と。… https://t.co/sH84BFwODx"
- Ryota Shioyaさんのツイート: "マシンパワーゴリ押しで十分速く更新されるので運悪く DWM の更新タイミングにぶつからないぎりは平気かなとか思ってたんですが,ネットみてるとそんな簡単にはいかないみたいですね・・・ ところで,BeginBufferedPaint という API もあるようですけど,こちらで解決されたりしませんか?… https://t.co/lk6Pkbv9Y2"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "おぉ、いつの間にかこんなAPI(Vistaで増設)が…これを使えば大丈夫そうですね。 ありがとうございます! (Vista以降のAPI増えたし、そろそろ「XPでは起動もしません」にするかな)… "
- Ryota Shioyaさんのツイート: "Vista で導入されたコンポジションのバッファリング関係の API を眺めていたら、「あれ?これは名前からして目的そのものなのでは? 」という感じでした! 頑張れば動的ロードで XP でも最低限動くように出来るとも思いますけど、流石にもう打ち切っても良いのではないかなと言う気がします… https://t.co/TvPHzgaPHD"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸、DirectWrite(Win7以降)やカラー絵文字(Win8.1以降)対応しつつ、未だにWin98サポートのすごさ。 OS毎の分岐で悪夢なコードになっていないか、気になる。 https://t.co/kIhkQPQp9D… "
- 秀まるおのホームページ(サイトー企画)-秀丸エディタ
DWM
- WDDM, DWM: pros and cons - NyaRuRuが地球にいたころ
- Futuremark Updates and Vista DWM - NyaRuRuが地球にいたころ
- DWM による描画の現場を押さえる - NyaRuRuが地球にいたころ
- Desktop Window Manager (DWM) の動作解説図 - NyaRuRuが地球にいたころ
- Perforator による Desktop Window Manager (DWM) のプロファイリング (1) - NyaRuRuが地球にいたころ
- Perforator による Desktop Window Manager (DWM) のプロファイリング (2) - NyaRuRuが地球にいたころ
Direct2D
COM
C
- C による COM オブジェクトへのアクセス
- マクロによる DirectX COM メソッドの呼び出し
- C 言語で IUnknown を実装します。
- インターフェイスを使用したコードでコンパイルエラーがでる-VC++-水無瀬の部屋
- MyComputer
- ショートカットファイルの情報を読みとる
- D3D9プロキシDLLの作り方 · GitHub
- [連載! とことん VC++] 第 1 回 COM 再入門 ~ COM オブジェクトの基本的利用 (COM クライアントの実装) ~ 言語: C++
- [連載! とことん VC++] 第 2 回 COM 再入門 ~ COM オブジェクトの基本的実装 ~ 言語: C++
- [連載! とことん VC++] 第 10 回 ネイティブ VC++ におけるグラフィックス オーバービュー、および Direct2D の基本的な利用方法 言語: C++
- COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
- COM(Component Object Model)についてふわっと学習していく その2 本当に言語非依存なのか? - Qiita
- COM プログラミング入門 - Web/DB プログラミング徹底解説
- COM総合研究所 - COM研究室
- C++ の仮想関数と VTable について - Qiita
- 仮想関数テーブル - Wikipedia
- Component Object Model - Wikipedia
- Component Object Model - Wikipedia
- IUnknown - Wikipedia
- IUnknown - Wikipedia
blog
UWP等
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う): biac の それさえもおそらくは幸せな日々@nifty
- WPFデスクトップアプリでDirect2Dを使う - Qiita
- チーズバーガー中毒: SlimDXでDirect2DのWPF連携
- Bitmap for WinForms
- Shinichi Aoyagiさんのツイート: "こんなん見つけました。C++/CX+Direct2DをC#から呼び出してるみたい http://t.co/JlWz67mX RT @LeonAkasaka @ch3cooh 原因わかりました。C++/CX コンポーネント側で d2d1.lib にリンクしていると失敗します。"
- Direct2D のDIP とやらがイマイチ判らない件 – Na___'s Diary?
- Direct3DとDirect2D/DirectWriteの連携 | shobomalog
- Direct2D/Direct2D とは - WisdomSoft
- ぶびびんぶろぐ: Direct2Dの初期化と単純な描画コード
- Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
- Direct2Dで線の描画を行う - わびさびサンプルソース
- ホイール欲しい ハンドル欲しい » Direct2D と Direct3D10.1 の下位互換
- Direct2Dのお話。 古いブログ - ぐうたらずのーと (コンピュータ編)
- DirectX - Windows10でDirect2Dのサンプルを動作させるには(39165)|teratail
- Direct2D と Direct3D 11 の共有方法 | Mitsunagi Studio
- Direct2DとWindows Imaging Component(WIC)で透過PNGを表示 - Gobble up pudding
- [ 194_線の端点形状の変更と Direct2D ] - Mr.XRAY
- Direct2Dが有効化されているWindowsでのフィルター
- DirectX Graphics に関するメモ (Direct3D,Direct2D,DXGI ほか)
- S.F. Blog:Direct2Dの紹介
- Direct2DとGDIとDX10。 – ひねもす庵
- JWWのDirect2DのON・OFF | なまあず日記style
- デザイン至上主義プログラマー: Direct2Dを使った実用的アプリケーションサンプル
- やはり、Direct2Dを使う: T.Ishiiのソフト開発記
- LOHACO by ASKUL - 個人向け通販
- 本の虫: Direct2DがVistaにきたらしい
- Direct2D 最強伝説!! | Crystal Dew Blog
- Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
- Direct2D API の概要 (Windows)
- Direct2D (Windows)
- Direct2D について (Windows)
- Direct2D - Wikipedia
- Direct2D - Wikipedia
- ASCII.jp:Windowsの画面表示を変えるDirect2DとDirectWrite (1/3)|あなたの知らないWindows
- 2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜
- Wine 1.8公開 - Direct2D/DirectWriteをサポート | マイナビニュース
- [C++] MFC アプリケーションのビューの中で、Direct2D を使用する 言語: C++
- チュートリアル: MFC プロジェクトへの D2D オブジェクトの追加
- Windows-universal-samples/Samples/D2DPhotoAdjustment at master · Microsoft/Windows-universal-samples
- Direct2D キャンバスの使用 - RAD Studio
- Source Tree: /Core/Direct2D/ (master) - FooEditEngine (git) - FooEditEngine - OSDN
- Direct2DとDirectWriteハードウェアアクセラレーションを有効にしてFirefoxのグラフィックパフォーマンスを向上させてみよう | ライフハッカー[日本版]
DirectWrite
MacType
- 【DirectWrite】MacType v1.2016.830.0リリースと検証 - Segmentation fault
- 【DirectWrite】MacTypeまとめ(2016/11/17更新)【Window10】 - Segmentation fault
- MacType非公式パッチ (MacType Unofficial Patch) - しらいとブログ
- MacTypeが3年越しのアップデート – DirectWriteフック機能追加など – ミルログ
- MacType非公式パッチが公開され、DirectWriteの設定変更が可能に - AndroPlus
- DirectWrite のフォント レンダリングを改善する MacTypePatch | caretの日記 | スラド
Mozilla
- WindowsのFirefoxのフォントレンダリングをきれいにする - Qiita
- Makoto Kato ︎︎さんのツイート: "https://t.co/z90KTFvPe5 そもそもFirefoxのDirectWriteバックエンドはデフォルトの濃さで表示してないよ。これはJohnさんがMozillaにいたときにいろいろ拘って実装いれたやつだし"
- グーグル、「Chrome 69」安定版に不鮮明なフォントの問題--原因を調査中 - CNET Japan
Google
- 「Google Chrome」DirectWriteを無効にする
- DirectWrite Font Cache (obsolete) - The Chromium Projects
- DirectWriteに対応しフォントレンダリングを強化した「Google Chrome 37」安定版がリリース - GIGAZINE
- Windows版ChromeでDirectWriteを有効にしたところ日本語の文字が崩れた話 - 酢ろぐ!
エディタ
- 無償テキストエディター「Mery」v2.4.0のβ版、DirectWriteやPer-Monitor DPIに対応 - 窓の杜
- Mery が DirectWrite に対応した - MoonNote
- 秀まるおのホームページ(サイトー企画)-秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応)
- Sakura Editor / PatchUnicode / #482 DirectWrite
- VimのDirectWriteの設定方法 — KaoriYa
- DirectWriteで描画したい · Issue #262 · vim-jp/issues
- DirectWrite の概要 (Windows)
- DirectWrite (Windows)
- DirectWrite のレンダリング (Windows)
- DirectWrite の "Hello World" サンプル (Windows)
- DirectWrite - Wikipedia
- DirectWrite - Wikipedia
- 第113話:DirectWriteとフォントの固定化 - #モリトーク - 窓の杜
- 何故WindowsのフォントレンダリングがGDIからDirectWriteになろうとしているのか - Wicachi~Windows好きなmicachiの日記~
- 【私的】Windows フォントのテストだYO!【DirectWrite】 - CSSめも@Palm84
- ぶびびんぶろぐ: 大まかな概念:DirectWriteを使った文字列描画
- [要望] DirectWriteが有効な状態でのカスタムフォントの利用
- ディオルティスタ: 【C++】 DirectX11 - Direct2D,DirectWriteによるテキストの描画
- iceiv+putty
- 「WinFont+」開発記録 Part 6 - しらいとブログ
- 「WinFont+」開発記録 Part 7 - しらいとブログ
GDI
- GDI アクセラレーションについて整理する - NyaRuRuが地球にいたころ
- Windows 7 と GDI/GDI+ の GPU アクセラレーションの可能性 - NyaRuRuが地球にいたころ
- 「Windows Vista での GDI/GDI+ 描画」についてのお詫び - NyaRuRuが地球にいたころ
- Windows Vista での GDI/GDI+ 描画 - NyaRuRuが地球にいたころ
HID Event
KeyboardEvent
MS
- なかのん&マジックさんのツイート: "そうだ、 https://t.co/xaBjzAiLxI を一度、アップデートしておかないとな。"
- KeyboardEvent.key mapping of each browser - Google スプレッドシート
- なかのん&マジックさんのツイート: "ラフに調べて見ても、Edge、今回の大型アップデートでKeyboardEvent.keyの値が改善してるものの、まだいくつかアレやわ……バグ報告しとかんと。"
- なかのん&マジックさんのツイート: "というか、なんで、Travisが居てるのにこんなことになるんだよ。"
- なかのん&マジックさんのツイート: "UWPのイベントモデルを全く知らんけど、デスクトップアプリで受け取れてた仮想キーコードが受け取れなくなってるとも思えんしなぁ。"
- なかのん&マジックさんのツイート: "それにしてもまだ、EdgeはKeyboardEvent.codeに対応してないのか。これ、かなり簡単なんだけどなぁ。"
- なかのん&マジックさんのツイート: "それともUWPでscancodeが取れなかったりすんのかな?"
- なかのん&マジックさんのツイート: "よくよく調べてみたら、Safariも既にKeyboardEvent.keyとKeyboardEvent.codeをサポートしてるやん。なんで、未だにKeyboardEvent.keyCode使ってるサイトが多々あるんだ?"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeで、記号の入力キーを見るのだけは本当に頭おかしいのでやめていただきたい。真面目に対応しようとすると、各ブラウザの各OS版で、しかも各キーボードレイアウト毎に対応しないといけないのが昔から分かってる。"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeの値に意味がそもそも無いので、各ブラウザが各OSで都合の良いようにマッピングしてるだけなので、UA文字列なりを確認してブラウザごと、OSごとに処理を分岐させるしかない。なので、ブラウザ側で他のブラウザにあわせた値に今更変更すると、既に存在してるアプリを壊してしまう"
- なかのん&マジックさんのツイート: "というわけで、こいつの互換性に問題ありまくりなのはブラウザ開発者側も分かってるから、標準仕様ではkeyCodeはちゃんと定義されず、keyとcodeという新しい属性が、その値のリストも含めて新たに標準仕様としてまとめられてる。"
- なかのん&マジックさんのツイート: "よく誤解されてるけど、勧告に至ってるKeyboardEventの仕様って2018年2月になっていも未だに存在しないからね。DOM Level 2 Eventsでも未定義: https://t.co/RnXVtM1buh"
- Document Object Model Events
- KeyboardEvent.keyCodeとは何か - WebStudio
- KeyboardEvent.keyCodeとは何か - WebStudio
- vyv03354さんのツイート: "> Mozillaのソースコードを公開した当時の履歴は既に残っていませんでした。 https://t.co/sPQl5E0cai… "
- mozilla-central-cvs: dom/public/idl/events/nsIDOMKeyEvent.idl@2df74fb33691 (annotated)
- なかのん&マジックさんのツイート: "おお、ありがとうございます。cvsのリポジトリのコピーあったんですね。助かりました。… "
- UI Events KeyboardEvent key Implementation Report
- UI Events KeyboardEvent code Implementation Report
- なかのん&マジックさんのツイート: "Firefox本体内で、たまに、 if (event.key === " ") { // something for spacebar } ってコードを見かけるけど、これたぶん間違ってて、 if (event.code == "Space") { // } じゃないといけない。確かASCIIの空白以外を入力するレイアウトがあったはず。"
- なかのん&マジックさんのツイート: "スペースキーをショートカットキーとして処理する場合、普通の文字キーと違って、物理位置の確認で普通は問題無いはず。(AltGr+?)スペースキーをTabとして使うという、超変態レイアウトもあったように思うけど、あのレベルは無視しても良いと思う、さすがに。"
- なかのん&マジックさんのツイート: "今やってる事: ・keypressイベントをnon-printableキーや、キーコンビネーションでは発火しないようにする ・keydownとkeyupイベントを、IMEの未確定文字列があっても発火するようにする Web開発者さんの負担を減らすために同時投入が望ましいと考えてます。 #もずでぶ"
- なかのん&マジックさんのツイート: "ようやくここまで来た。 / Intent to stop dispatching "keypress" event for non-printable keys and key combinations in Nightly and early Beta - Google グループ https://t.co/oYfGCNQBBb #もずでぶ"
- なかのん&マジックさんのツイート: "間もなく、Nightlyとearly Betaのデフォルト設定を変更して、keypressイベントの発火を止めますが、"dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content"をtrueに変更すれば今すぐテストできますので、それで問題のあるUIやサイトを報告してください。 #もずでぶ"
- なかのん&マジックさんのツイート: ""keydown"と"keyup"イベントを未確定文字列がある場合にも発火するように(リリース版では)同時にやるんだけど、こっちはたぶん、そんなにバグが無いと思うんだよな。たぶん、あっても、イベントリスナ内で、KeyboardEvent.isComposingをチェックするだけで済む。 #もずでぶ"
- なかのん&マジックさんのツイート: ""keypress"イベントの発火中止は、Netscape時代からの(Geckoの最初期からの)実装仕様を変更しちゃうんで、影響範囲が大きい。また、chrome documentとか、system event groupでは引き続き発火してるんで、ソースコードから単純に検索してバグる場所を探し出せなくて厳しい。 #もずでぶ"
- なかのん&マジックさんのツイート: "ちなみに、keypressの発火を止める件って、keypressイベントの動作をUI Eventsの仕様策定中に、WGの編集者が、Firefoxの動作だけ違うから、それ以外を標準ってことにしてしまおうっていうひどく乱暴な話だったのに、それを盾にしてくるとはなぁ。"
- なかのん&マジックさんのツイート: "私は、もう歴史的な問題が積み上がりすぎだから、定義せずに、MAYで参考情報入れとけば良いやんってスタンスやったんやけど。そもそもFirefox以外のブラウザの動作も完全に同じじゃないし、Chromeもプラットフォームによって動作違うし。"
- なかのん&マジックさんのツイート: "本当にUI文字列見ないとクロスブラウザなコードを書けないパターンって、KeyboardEvent.keyCodeぐらいのものだと思うんだけど、他でもあるのかなぁ。keydownでハンドリングすべきイベントを、わざわざFirefoxの場合にだけkeypressでハンドリングしてるという理由が想像つかない。"
- Non-printable keys will soon stop firing keypress event (Affecting) | Firefox Site Compatibility
- なかのん&マジックさんのツイート: "未だにOSの違いを見てるクソサイトあるのか。KeyboardEventでよほどセンシティブなことやるとき以外は、PCかモバイルかぐらいしか見分ける意味が無いはずなんだけど。"
- JSer.infoさんのツイート: ""KeyboardEvent.keyCodeとは何か - WebStudio" https://t.co/MdNT9glaPb => https://t.co/QkP7hNkIJj KeyboardEvent.keyCodeの歴史や実装について。 keyCodeはOSやブラウザ間で問題があり標準化もされていないため、keyやcodeを代わりに使うべきという話。"
- uehajさんのツイート: "KeyboardEvent.keyとKeyboardEvent.codeは、 KeyboardEvent.keyCodeと違って、数値ではなく、文字列である / “KeyboardEvent.keyCodeとは何か - WebS…” https://t.co/xUIVeyCVQf"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeでググったりすると、KeyboardEvent.keyと、KeyboardEvent.codeの解説も書かなきゃいけないなって気がしてきてる。Reactのissueなんか読んでも、不信感しか湧いてこない。"
macOS
- 渋川よしきさんのツイート: "Windowsってスクロールイベントが行単位なんだよな。Xもそう。Waylandはwheelは「ボタンクリック」って書かれているので期待薄だけど、fingerでのスクロールはkineticって書いてあるので、WindowsよりはLinuxとかの未来に期待してる。"
- 渋川よしきさんのツイート: "僕の中でmacOS機が良いのはディスプレイが綺麗で、フォントが綺麗で、スクロールがなめらかで、SSDがそこそこ高速なコンピュータという位置づけなので、他のOSはまだいまいち。特にスクロール。最近の普段使いはLinux機だけど。"
- 渋川よしきさんのツイート: "macとiOSは常にデバイスのdevice pixel ratioが一定で、macはretina機種だと2。2880x1800の物理解像度でも、文字一番小さい設定にすると、論理的な作業スペースは1920x1200。標準で1440x900。内部では2倍の3840x2400でレンダリングしてスケーリングしている。"
- 渋川よしきさんのツイート: "これ、すごく無駄に見えるようだけど、画面描画はアンチエイリアスが効いて悪くない。あと、スクリーンショット撮ると、常に2倍のサイズで取得される。RPAでオートメーションするときにDPI変えても動作に影響ない。macはこの画面の描画とピクセル単位スクロールイベントの2つは尊い。"
- 渋川よしきさんのツイート: "Macがダメになっているといっても、他のダメさがまだ勝っているので、しばらくはmacかなぁって。Linuxが8th Genの電源管理完全にサポートしてWaylandでピクセル単位スクロールが実現したらLinuxメインにしたさはある。"
- なかのん&マジックさんのツイート: "ホイールとかタッチとか、あの辺はGUIアプリでも入力が来すぎてどうなのってところあるし、今、Mozillaでもcoalescingしようかみたいな話は出てるけど、それぐらいかなぁ。"
- なかのん&マジックさんのツイート: "macOSが特に顕著なんだけど、ホイール操作で1px単位のスクロールのイベントが飛んでくるの、本当にやりすぎでは。"
- なかのん&マジックさんのツイート: "passiveじゃないホイールイベントやタッチイベントのリスナが居てると非同期スクロールも使えないんで、細かすぎるスクロールを示唆するイベントはパフォーマンスの低下につながってる。"
- 渋川よしきさんのツイート: "タイムマシーンがあったら、Windows APIのスクロールイベント、行単位じゃなくてピクセル単位にしてくれってビル・ゲイツを説得しに行きたい。"
- なかのん&マジックさんのツイート: "Webアプリ開発者の負担を減らすために、IMEの未確定文字列がある場合にもkeydownとkeyupは発火するべきってのも、同時にリリースしたい。"
- なかのん&マジックさんのツイート: "よし、やっと、WheelEvent.deltaModeの闇、Googleの仕様の編集者にキャッチしてもらえた。"
- なかのん&マジックさんのツイート: "なんかこう、スクロール量をより精度高くとれるようにブラウザ各社が仕様を策定したのに、多くのケースでChromeがpixel値で返すってだけで、値をピクセル値と仮定して処理するWebアプリ開発者が多すぎるの、本当にtry & errorでやってるアレな開発者だらけなんだなぁと思わされた。"
- なかのん&マジックさんのツイート: "この件、Safariは、macOSで動いてる場合、macOSのネイティブイベントがピクセル値でスクロール量を知らせてくるのでどうしようもないのよね。この件は本当にChromeのWindows版でのいい加減な実装が招いちゃった悲劇。"
- なかのん&マジックさんのツイート: "GeckoはWheelEventの実装のときに、全部の処理を書き直して、各OSのネイティブイベントの情報をほぼロスレスでWebアプリに伝えるようにしたんだけど、Chromeの開発者は既存のパスに最小の変更で、見た目、WheelEventに対応したように見せたことでこんなことになってしまった。"
- なかのん&マジックさんのツイート: "なので、Windowsのシステム設定で、ホイールのスクロール量をページ単位にすると、Chromeでもそういったいい加減なWebアプリはバグる。なにしろ、Windows版Chromeは、ページ単位のスクロール設定の場合にはWheelEvent.deltaModeでDOM_DELTA_PAGEを返してて、正しく実装してるから。"
- なかのん&マジックさんのツイート: "念のために解説しておくと、Windowsは、行単位でのスクロール量か、ページ単位でのスクロール量がネイティブイベントを通知してくる。macOSでは高解像度のホイール搭載マウスや、トラックパッドからはピクセル単位、古いノッチ単位で回転するホイール搭載のマウスなら行単位を通知してくる。"
- なかのん&マジックさんのツイート: "Geckoはこの辺、完璧に近い形でロスレスでWebアプリに伝えるようにがんばった。本当にがんばったのよ?"
- なかのん&マジックさんのツイート: "ロスレスで伝わらないケースは、主に小数点の丸め誤差の問題なので、普通のアプリでは問題にならないレベルです。"
- なかのん&マジックさんのツイート: "興味ある人は、大昔に書いた、こちらのスライドも参照してみてください。 https://t.co/dZYIwH8Rt6"
- マウスホイールイベント処理マニアックス
- 一ノ瀬 いろはさんのツイート: "Qiita とかにバグの内容と再現方法と回避方法まで書いて有っても報告がされてないケースの悲しみは大きい。… "
- なかのん&マジックさんのツイート: "誤解なきように書いておくと、特定の開発者がバグ報告してなかったとかいう話ではなく、世界中の様々なレベルの開発者が最多シェアを持つChromeにバグ報告していないって点ですわ。つまり、そういう流れが業界全体に出来上がっていないと言えるかと。"
- Makoto Kato ︎︎さんのツイート: "qiitaでなんとかの闇って書かれてるの、大概バグ報告してないよね"
- なかのん&マジックさんのツイート: "Qiita、調べ物で引っかかって来た時以外には読んで無いけど、良くも悪くも殴り書きって感じはある。"
- なかのん&マジックさんのツイート: "ネイティブの入力イベントを抽象化したDOMイベントの場合、Webアプリ開発者さんは少なくともデスクトップではWindowsとmacOSの両方でテストすべき状況は続いてるし、もっというと、例えばWheelEventだと、Windowsはページ単位のスクロールかどうかのシステム設定で変わるし、macOSだとデバイスで変わる"
- なかのん&マジックさんのツイート: "WindowsのAltGr周りのイベントを、Googleのエンジニアさんが提案してきた新しい挙動にするの、WindowsのAPIでは気軽に実装できるものではあるし、なんか条件文書いてて嫌になってくる。歴史的な事情ってつらい。"
- なかのん&マジックさんのツイート: "結果論だけど、今のVirtual Keycode見ると、AltGrに1bit割り当てるのが正解だっただろうなと。"
- なかのん&マジックさんのツイート: "ヨーロッパのWeb開発者さんは、やっぱり、AltGrの挙動についてバグ報告してくれるんで、裏を返せば、苦しめられてるんだろうなぁ。"
- なかのん&マジックさんのツイート: "私がKeyboardEvent等でmodifier周りの進化した仕様を実装・検証するまでは、WebアプリがAltGrの状態を取得不能だったんで、色々と無理ゲーな要求もあったんだろうなぁ。"
- なかのん&マジックさんのツイート: "ChromeもSafariもこの辺は無事、追随してくれたので、まあ、みんなが幸せになれた感じ(互換性問題はありそうだけど、Firefox/Geckoが先行した部分を後からシェアの大きいブラウザのいい加減な実装で台無しになることは無いと信じたい)。"
- なかのん&マジックさんのツイート: "しっかりテスト出来ないクソがChromeでもDOM_DELTA_PAGEのケースがあることに気付いてれば問題なかったんだけど、そもそも、それが分かる人ならやらかさないレベルで低レベルな話なんだよな。"
- なかのん&マジックさんのツイート: "そもそも、まともなリファレンスならWheelEvent.deltaYの値が何かとか、ちゃんとWheelEvent.deltaModeと共に説明してるはずで、それが出来ていないクソリファレンスが存在したのか、文書読めないクソのせいなのか、原因が知りたくはある事案。"
- なかのん&マジックさんのツイート: "いやほんと、この件ほど、Web開発者に失望したたことは未だかつて無いよ。あれだけ用意周到に色々とやったのに。"
- なかのん&マジックさんのツイート: "WheelEventでのChromeの問題を見るに、また、今までの私の経験からしても、「生データ」へのアクセシビリティは非常に重要で、ロスレスではない抽象化はアプリ開発においてやってはいけないミスだと確信した。"
- なかのん&マジックさんのツイート: "「これだけしか必要無いから、これだけの情報でいいでしょ?」ってやると、だいたい、何年後かにその削られたデータが必要になる。長いことメンテするアプリを書いてる人は要注意。特に、メンテを評価しない現場では、ロスレスで抽象化しとかないと危険。"
- なかのん&マジックさんのツイート: "wheelDeltaを未だに使ってるクソなサイトがまだ大量にあるのか…… / Chrome Platform Status https://t.co/XKoQpA0Xyp"
- Chrome Platform Status
システム情報
- システム情報
- SystemParametersInfo 関数
- IsProcessorFeaturePresent 関数
- GetSystemMetrics 関数
- GetSystemInfo 関数
- GetKeyboardType 関数
- GetCurrentHwProfile 関数
RDP・SPICE
- Makoto Kato ︎︎さんはTwitterを使っています: 「これはこのネット記事の品質が悪い一例で、ホストとリモートのキーボード配列が一緒ならIgnoreRemoteKeyboardLayoutのレジストリキーを使えば回避できるケースがあるはずなんですよね https://t.co/oVr0WhlyWj」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「正直、この辺に詳しくない人が実装したんやろなっていうデキなんよな。MSのWindows以外のRDP Clientはキー入力全部ダメ。 https://t.co/DlNVxOWbIi」 / Twitter
- Androidからリモートデスクトップ接続すると英語キーボードになる時の対処方法 | おっさんSEと猫
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@makoto_kato 記事自体はちゃんと読んでないんですが、AndroidからRDPするとWin+Spaceが動かなくて詰んでる感じすごいんですよね。10までなら言語バーから切り替えることで多少の混乱を抑えられると思うんですが。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@makoto_kato あと、macOSではスキャンコードにあたるものがないのでキーコードからマッピングの必要ありますが、全てのキーコードのハンドリングをやっていないという(JISキーボード固有キーは全滅、報告しても修正されず)。」 / Twitter
- 第595回 リモートデスクトップのためのSPICEクライアントあれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Taku KudoさんはTwitterを使っています: 「chromebook + remotedesktop が快適すぎてもうこれでいいんじゃないかと。ローカルにログインすると同時にほぼ透過的にリモートにつながるし、セッションが保持されているので作業が途切れない。」 / Twitter
blog
NyaRuRuが地球にいたころ
- WDDM によるタイムアウトの検出と GPU の回復 - NyaRuRuが地球にいたころ
- 進化しすぎた GPU の災禍 - NyaRuRuが地球にいたころ
- GPU を利用したテキストレンダリング - NyaRuRuが地球にいたころ
- デスクトップの暗黒面 - NyaRuRuが地球にいたころ
- デスクトップの裏側 - NyaRuRuが地球にいたころ
- デスクトップの裏側 (2) - NyaRuRuが地球にいたころ
- デスクトップコンポジションの無効化 - NyaRuRuが地球にいたころ
- Windows Vista (x86) SP1 ではデスクトップヒープのデフォルト値が増やされてる - NyaRuRuが地球にいたころ
- ウィンドウコンポジション (1) - NyaRuRuが地球にいたころ
- Windows 7 のグラフィックスの変更点を整理する - NyaRuRuが地球にいたころ
- Guidelines for Graphics in Windows 7 - NyaRuRuが地球にいたころ
- Windows 7 Developer Guide とグラフィックスの改良点 - NyaRuRuが地球にいたころ
- Windows Vista と CreateWindow 限界 - NyaRuRuが地球にいたころ
- いまさら聞けない Windows Vista の基礎知識 グラフィックス編 解答 - NyaRuRuが地球にいたころ
- いまさら聞けない Windows Vista の基礎知識 グラフィックス編 - NyaRuRuが地球にいたころ
- New Magnification API - NyaRuRuが地球にいたころ
- New Magnification API (2) - NyaRuRuが地球にいたころ
- Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
- HotKey でキーリピートを無視する機能が付いたらしい - NyaRuRuが地球にいたころ
- Header Annotations - Visual C++ - NyaRuRuが地球にいたころ
- SPU C/C++ Language Extensions - NyaRuRuが地球にいたころ
- Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
- ゲームプレイ中のスクリーンセーバやディスプレイ休止を回避する方法 - NyaRuRuが地球にいたころ
- コンソールアプリケーションで出力がパイプされているときに,それが閉じられたのを知る方法 - NyaRuRuが地球にいたころ
- 別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ
Windows Hardware Certification blog
- New Windows 10 Driver Failure Report, now live in Hardware Dev Center – Windows Hardware Certification blog
- Win32 logo certification deprecation – Windows Hardware Certification blog
- Errata filter database lookup is now available via Hardware Dev Center – Windows Hardware Certification blog
Japan WDK Support Blog
- カーネルモード デバッガで UMDF ドライバをライブデバッグする – Japan WDK Support Blog
- NDIS Connection-less Protocol Driver Sample をインストールする – Japan WDK Support Blog
- MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法 – Japan WDK Support Blog
- INF ファイルが Universal かどうか検証する方法 – Japan WDK Support Blog
- SimRep File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
- 新しい Windows Driver Kit documentation – Japan WDK Support Blog
- Minispy File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
- Visual Studio 2015 でのテスト署名方法 – Japan WDK Support Blog
- パブリック シンボルとプライベート シンボル – Japan WDK Support Blog
- Windows 10 update history 公開 - Japan WDK Support Blog - Site Home - MSDN Blogs
- Err.exe でエラーコードの定義を探す – Japan WDK Support Blog
- WDK for Windows 10, version 1803 – Japan WDK Support Blog
- Hyper-V 仮想マシンへのネットワーク経由のカーネルデバッガ接続方法 – Japan WDK Support Blog
- プリンタードライバーの GPD ファイル記述に関する注意事項 – Japan WDK Support Blog
- Authenticode 署名のドライバインストールのトラブルシューティングの一例 – Japan WDK Support Blog
- Intel、新規格「UWD」に対応したグラフィックスドライバ - PC Watch
- GPU情報取得ツール「GPU-Z」が新しいドライバー形式“UWD”に対応 - 窓の杜
- Microsoft、Windows互換認定を受けたハードウェアのカタログサイトを公開 - 窓の杜
- Partner Center
JAPAN Platform SDK(Windows SDK) Support Team Blog
- NotifyIcon.ShowBalloonTip メソッドで表示されるバルーン表示の問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Microsoft Print to PDF 選択時の CPrintDialog::OnInitDialog() 動作について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて – JAPAN Platform SDK(Windows SDK) Support Team Blog
- UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ツールバー移動時の軌跡が残像となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- LoadImage 関数が負の高さをもつビットマップの読み込みに失敗する – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ICopyHook::CopyCallback ハンドラ関数へ通知される pszDestFile が空になる – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Windows 10 でトースト通知が表示されないことがある – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Virtual Bytes が、Windows 10 April 2018 Update 適用前後で異なる – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません – JAPAN Platform SDK(Windows SDK) Support Team Blog
- WPF アプリケーション上で、F10 キーが押されたことを検出できない – JAPAN Platform SDK(Windows SDK) Support Team Blog
- 仮想化した TreeView コントロールが自動的にスクロールされる。 – JAPAN Platform SDK(Windows SDK) Support Team Blog
- TryShowPrimaryView メソッドを実行してもタッチ キーボードが表示されない – JAPAN Platform SDK(Windows SDK) Support Team Blog
Cloud and Server Product Japan Blog
- Visual Studio 日本チーム Blog – 日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。
- Cloud and Server Product Japan Blog – サーバー&クラウド関連の製品やサービスの発表をお伝えする、マイクロソフト マーケティングチームの公式ブログです。
- Windows Server 2008 SP2 のサービス変更について – Cloud and Server Product Japan Blog
- IoT デバイスへの証明書のインストール – Cloud and Server Product Japan Blog
Visual Studio サポート チーム blog
- Visual Studio サポート チーム blog – Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。
- 夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について – Visual Studio サポート チーム blog
- Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる – Visual Studio サポート チーム blog
- Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について – Visual Studio サポート チーム blog
- Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について – Visual Studio サポート チーム blog
- 参照側プログラムのリビルドが必要となるような DLL の変更について – Visual Studio サポート チーム blog
- Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて – Visual Studio サポート チーム blog
- Visual C++ の正規表現ライブラリで発生するバージョン間での動作の違いについて – Visual Studio サポート チーム blog
- 以前のバージョンの Visual Studio 2017 インストーラーについて – Visual Studio サポート チーム blog
- OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する – Visual Studio サポート チーム blog
The Visual Studio Blog
- The Visual Studio Blog | The official source of product insight from the Visual Studio Engineering Team
Fixstars Tech Blog /proc/cpuinfo
- Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo
- Windowsデバイスドライバの基本動作を確認する (2) : プラグアンドプレイ - Fixstars Tech Blog /proc/cpuinfo
- 仮想マシン上でWindowsデバイスドライバをデバッグする - Fixstars Tech Blog /proc/cpuinfo
- Windowsドライバのテスト署名の動作を確認する - Fixstars Tech Blog /proc/cpuinfo
- WDKのサンプルRAMDiskドライバを触ってみた (1) - Fixstars Tech Blog /proc/cpuinfo
- OLE Drag & Dropを実装する - yohhoyの日記(別館)
- Project Zero: In-the-Wild Series: Windows Exploits
- Project Zero: A year of Windows kernel font fuzzing #1: the results
- Project Zero: A year of Windows kernel font fuzzing #2: the techniques
- Project Zero: One font vulnerability to rule them all #1: Introducing the BLEND vulnerability
- Project Zero: One font vulnerability to rule them all #3: Windows 8.1 32-bit sandbox escape exploitation
- Project Zero: One font vulnerability to rule them all #4: Windows 8.1 64-bit sandbox escape exploitation
- Project Zero: Notes on Windows Uniscribe Fuzzing
News
窓の杜
- 新「Edge」ベースのPWAパッケージングを生成 ~「PWABuilder」に新しいプレビュー機能 - 窓の杜
- Windows 11の仕様変更で様々な影響 ~フリーの高機能テキストエディター「Mery」ベータ版で暫定修正 - 窓の杜
- Microsoft、「DirectX 12」の新しいビデオエンコードAPIを発表 - 窓の杜
- 「MSEdgeRedirect」にリモートコード実行脆弱性 ~Edgeで開かれてしまうリンクを既定ブラウザーで開くツール - 窓の杜
- 「EdgeDeflector」の作者が危惧していた仕様変更、とうとう製品版Windowsに導入されてしまう - やじうまの杜 - 窓の杜
- Edge強制リンクを既定のブラウザーで開く「MSEdgeRedirect」がv0.6.0.0に更新 - 窓の杜
- すべてのWin32アプリにWindows 11の「マイカ」効果を強制適用する「Mica for Everyone」 - Windows 11で絶対使いたいアプリ - 窓の杜
- 「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題、「KB4058258」で修正 - 窓の杜
- 「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題 ~一部アプリの動作速度に影響 - 窓の杜
- Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜
- Microsoft、Officeアプリの新UI「パーソナル ツールバー」を発表 - 窓の杜
PC Watch
- 【山田祥平のRe:config.sys】Windows 11のウィンドウ、重ねて表示、並べて表示、フルスクリーン表示、それから…… - PC Watch
- Windows 11月例更新で高解像度環境におけるUI描画の乱れを修正 - PC Watch
ASCII.jp
- ASCII.jp:2画面タブレット向けのWindows 10Xをエミュレーターで動かす (1/2)
- ASCII.jp:Windows 10のスタートメニューのタイルに表示されるWin32アプリのアイコンを作成する (1/2)
- ASCII.jp:キーボードのキー入れ替えにおける、仮想キーコードとキーボードスキャンコード (1/2)
- ASCII.jp:Windowsのディスプレイとモニター いまだ96DPIが基準
GIGAZINE
- 「Windows 11」の海外レビューまとめ、洗練されたデザインや複数ウィンドウを並べる「スナップレイアウト」はどうなっているのか? - GIGAZINE
- Windows 11の使い勝手と電力効率を向上させる「ダイナミックリフレッシュレート」とは? - GIGAZINE
- Windows 11でFirefoxなどブラウザの「Edge回避機能」がついにブロックされる - GIGAZINE
- Microsoftのごり押しに負けて「Edge」を選ぶと一体どうなるのか? - GIGAZINE
infoQ
- Windows Forms 5.0の新機能
- Xamarin Forms 5.0は、新しいグラフィック機能とインタラクティブ機能を安定化
GitHub
- EasyHook
- EasyHook/EasyHook: EasyHook - The reinvention of Windows API Hooking
- Microsoft/vcpkg: VC++ Packaging Tool
- masafumiさんのツイート: "MicrosoftからHLSLを様々なグラフィックスAPI向けシェーダにコンバートするツールがオープンソースになってた。SPIR-VやMetalとかどうなんでしょうなぁ ShaderConductor https://t.co/LgrPRJUkTr"
- Microsoft/ShaderConductor: ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
- windows-internals-guide/security
Wikipedia
- クライアント/サーバー ランタイム サブシステム - Wikipedia
- Win32コンソール - Wikipedia
- Windows プレインストール環境 - Wikipedia
- Windows Recovery Environment - Wikipedia
- Windows Aero - Wikipedia
- ClearType - Wikipedia
- Microsoft Transaction Server - Wikipedia
- Desktop Window Manager - Wikipedia
- Windows Imaging Component - Wikipedia
- Technical features new to Windows Vista - Wikipedia
Qiita
- Wine Emulator の内部構造 : Inside Wine - Qiita
- Visual Studio 2017 Update 3 で Win32 プロジェクトが作成できなくなった時の対処法 - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VisualStudioデバッガで、文字列表示をMBCSからUTF-8に変更する方法、残念ながらVS2017の設定ファイルに項目当該が見つけられない。 https://t.co/55UOPeSTn2 (毎回ウォッチ画面で、str, s8 とかすればいいのだが、ちょっと面倒)"
- Visual Studio のデバッガで文字列を UTF-8 で表示させる - Qiita
- ダウンロードしたファイルの「ブロック解除」をコマンドで - Qiita
- Windows 10 NTFS代替ストリーム - いろいろメモ
- COM Advent Calendar 2014 - Qiita
- 【IE限定】JavaScriptからCOMを呼び出す - Qiita
Twitter
その他
その他
その他
- Masahiro SakaiさんはTwitterを使っています 「Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA https://t.co/GwGqJ23yVz CoInitialize[Ex]してないのにMTAに属してているように見え、仕様なのか疑問に思ってたけど、一応ちゃんとドキュメントされていたのね。」 / Twitter
- Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA | The Old New Thing
- ケケモコソカメニハさんはTwitterを使っています 「(横から失礼します。Windowsのカット/コピー/ペーストは元々Shift+Del/Control+Insert/Shift+Insertでした。C X VはApple起源ですね。叩く方もよくわかってないまま叩いてるので流石に可哀想になります。 https://t.co/X8rbIpOtH7 https://t.co/whPSWFvxLz ……って割り込もうか悩んでまs)」 / Twitter
- Cut, copy, and paste - Wikipedia
- Computer History: Who Invented Copy and Paste Command?
- ドッグさんはTwitterを使っています 「winrt-rs,windows-rs に改名してたことを知った.crate 名も windows という直球な名前になってる https://t.co/mqTF1aQi0c」 / Twitter
- microsoft/windows-rs: Rust for Windows
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "Cygwinがsocket全部にSO_{RSV,SND}BUF付けて回るのやめさせたら速くなったよって話 / “Windows network performance suffering from bad buffering |…” https://t.co/dIyhmKE12X"
- Windows network performance suffering from bad buffering | Networking Blog
- 道化師さんのツイート: "Windows さん、単純なファイルの読み書きを大量に実行するとそれだけでちょくちょくエラーになるのホント勘弁して欲しい。。。 # 失敗した場合でもリトライするだけ成功する"
- sweetie089さんのツイート: "windowsの下位互換性は他に比べるとすごいけどやっぱり色々切り捨てていて、例えば別に確保した隣り合うメモリーを一つと扱い巨大データを入れて一部APIに突っ込むとエラーする。 これができる前提のコンパイラ利用アプリは動くけど長く使ってると唐突に落ちるという意味不明挙動になりマジで困る。"
- Windows_Japanさんのツイート: "【ファイルの容量をいち早く確認したいそんなとき】 メールに添付をするときなど、ファイルのサイズが気になる時はありませんか? 「Alt+ダブルクリック」でファイルを選択するとプロパティを表示できるので、すぐに確認ができますよ。 #Windows #Windows10… https://t.co/npiBujXYu0"
- 品川 高廣さんのツイート: "Windows 10 SDK (10.0.17763.0) にある Windows Hypervisor Platform API のヘッダファイルにタイポを見つけた。UINT32 を UNIT32 と書くのはありがちなタイポではあるけど、Microsoft がやるとはね。https://t.co/ys9MFdwl3e"
- Virtual Processor Exception | Microsoft Docs
- マイクロソフトサポートさんのツイート: "エクスプローラーをすぐに開きたい時は、「Windows」キー+「E」キーを使うのがお勧めです。キーボードだけで操作できるので作業時間の短縮にもなります。覚えておくと便利なショートカットキーですよ #MSHelpsJP… "
- moriyoshitさんのツイート: "これかー https://t.co/xyp9yF9c3u… "
- http://www.catch22.net/tuts/undoc01
- mattnさんのツイート: "通常 Windows のプロセスは UNIX の様に extra FDs を渡せないんだけど、どうやら STARTUPINFO の lpReserved2 に * fd の個数 * fd の種別 * fd の配列ポインタ の構造体ポインタを食わせた場合には UNIX と同じ動作になるという裏 API があるっぽい。"
- Takashi Kawasakiさんのツイート: "Restart Managerも結局のところ中途半端な感じだし、MSIは何をしているのかわからんし、Windows Updateでの再起動を減らしましたって話も気づいたら元に戻ってるし・・・、ファイルロックからは逃げられないのだよ。"
- Akso de la Malbonoさんのツイート: "ちょっと待って, Windows 上で動くバイナリエディタ探したら20年以上更新が停止しているソフトウェアがいまだに人気で現役稼働ってどういうことやねん.というか,それよりも20年以上更新が停止しているプログラムが最新 OS で普通に動くってどういうことやねん."
- Takashi ToyotaさんはTwitterを使っています: 「テーブルは各プロセスに紐づけられている。解析すれば、各プロセスとカーネルオブジェクトの関係が簡単に分かる。たとえば、気になるプロセスが参照しているレジストリ(Keyオブジェクト)情報を容易に取得・解析できる。」 / Twitter
- Takashi ToyotaさんはTwitterを使っています: 「Windowsのハンドルテーブル周辺は幾度となく内部変更されてきた。この記事では変更の背景をアセンブラーレベルで紹介している。このテーブルはオブジェクト名前空間と関連し、フォレンジック解析では避けて通れない。大変魅力的なテーブルである。」 / Twitter
- Takashi ToyotaさんはTwitterを使っています: 「WinDbgとWindows XP/7/8/10のハンドルテーブル解析 https://t.co/XYwXiaXNRS via @t_toyota」 / Twitter
- Inada NaokiさんはTwitterを使っています: 「Windows 1903 から、アプリ単位でACPをUTF-8にできるようになったらしい。今までは-W系APIが推奨されていたけれども、これからは-A系もOK。 https://t.co/g5V8HEBJVG」 / Twitter
- Windows UTF-8 コードページを使用する - UWP apps | Microsoft Docs
- だんぼーだよさんはTwitterを使っています: 「PaaS やマネージドなクラウド移行ができず IaaS 移植に留まる原因いろいろあるのですが、検討の結果最終的に "外字" が主要因で諦めたケースをよく聞きます。そして大半が非 Unicode のシステムで、Unicode には意図する文字が存在する (外字不要) のことが非常に多いです。 https://t.co/CAFZq00T7F https://t.co/dJOo0cTecZ」 / Twitter
- だんぼーだよさんはTwitterを使っています: 「アプリの書き直しに加えデータの置換が発生するため、非常に難しい移行になります。新規に開発するシステムでは少しずつでも Unicode 対応を検討し、やむを得ない場合以外は新たに外字を増やさないところから PaaS を見据えたデザインが必要です。業務上必要な記号等も外字以外の実装方法はあります。」 / Twitter
- だんぼーだよさんはTwitterを使っています: 「なお、Windows において、外字は作成したコンピューター以外での使用は非サポートです。外字のコピーによって回避策のない文字化けや Bluescreen に至ることもありますので、すぐには難しいユースケースもあると思いますが、可能な限り控えてください。 https://t.co/8BMmugw9Gu」 / Twitter
- Windows で外字エディタを使用して外字を作成する方法
API・型
- kenichiudaさんはTwitterを使っています 「元ツイートの意図から外れるかもしれないが、Windows APIを擁護すると - STRICTが定義されていればHBITMAPとHCURSORは別になる。 - cにもintptr_tあるし、サフィックスのPTRはWindows API固有ではない。 - WORDはIAに引っ張られている感がある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語でなくWin32APIの型定義だと ・HANDLEのtypedef多すぎで、HBITMAPとHCURSORを取り違えてもエラーにならず ・LP…と言いつつ、far(lp)に対するnear pointerはもう無い ・DWORD_PTRは、ポインタ型でない ・WORDは2バイトのまま(まあ互換性大事) とか色々ツッコミ所多い。 https://t.co/THs00R4U4q」 / Twitter
- Windows Data Types (BaseTsd.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からSTRICT入れてるのだが、最近もHANDLE関係で形違い代入できてオイオイと思った記憶あるのだが、何だったかなぁ。 (HICONとHCURSORは意図的に代入可能にしてあるっぽいが) STRICT は HDC だと struct HDC__ {...}; typedef struct HDC__ *HDC; みたいな変形になる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「型の話はズレるけど、HANDLE型の大半は CloseHandle() なのだが、HANDLE FindFirstFile() は FindClose() で閉じるとかの例外も意外と多くて困りもの。 (OS内部で振り分け可能だろうに…kernel32.dllなどのユーザランドでアレコレする必要があるとかだろうか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「レイモンド・チェン氏に、The Old New Things で取り上げてもらいたいところ。 (同じ型なのに開放方法が違うの、newとmallocポインタと同じで、自動開放しづらくて嫌)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、関連。 https://t.co/OBzWJY0Czd」 / Twitter
- Kernel Objects - Win32 apps | Microsoft Docs
- kenichiudaさんはTwitterを使っています 「@shirouzu ハンドル系のunique_ptrを個々に定義するより、WILを使った方が楽かもしれません。 https://t.co/NU9BsgLWcw」 / Twitter
- RAII resource wrappers · microsoft/wil Wiki
App Paths
- はぇ~☆さんはTwitterを使っています 「Windows APIの中には、ごくまれに実行ファイルのインストール先がProgram Filesか否かで挙動を変えるものがあるから、あんまりおすすめはできないよ。 https://t.co/xeCTyu8Rcl」 / Twitter
- はぇ~☆さんはTwitterを使っています 「あとApp Pathsという仕組みがあるから、ちゃんとしたアプリケーションであれば、インストール先がどこであれ起動できるのよ。例えばGoogle Chromeは start chrome でちゃんと立ち上がる。」 / Twitter
- UnagiさんはTwitterを使っています 「@haxe あれすごくチートっぽくて、ユーザープログラムが触れて良いものなのか悩ましい気がする。」 / Twitter
- はぇ~☆さんはTwitterを使っています 「@unagix HKCRに書いてもいいのよ?」 / Twitter
- はぇ~☆さんはTwitterを使っています 「@unagix HKCUだた」 / Twitter
Store 締め出し
- Hideaki_nomapさんのツイート: "どうやらMicrosoftは、人気やアクティビティの低いappを排除することでStoreの質を高めようとしているみたいですが、市場の価値は人気商品ばかりではなく多様性も重要というところに、どうして気付かないのだろう。たとえ利用者が僅かでも、その人たちには有用でしょうに。 @microsoft @msdevjp"
- Hideaki_nomapさんのツイート: "私が視覚障害者の補助のために作成したappは、この理由によって強制的に公開停止されたようです。フィードバックを得て改良する道も閉ざされました。Storeチームには本当に呆れました。… "
- Hideaki_nomapさんのツイート: "Store teamは、"Create amazing apps with staying power" sectionを見ろと言ってきます。ポリシー10.1.4のActive Presenceは、よく考えると最悪ではないですか。人気の本しか置かないダメな図書館と似たような臭いを感じるのです。… https://t.co/BVWvyex40K"
- Hideaki_nomapさんのツイート: "Win 10用のアプリをセキュリティ的に安全に配布しようとすると、Storeを使うことになるのですが、@microsoft が行っていることは、人気がないといった理由でその配布手段を開発者から奪う行為です。これが許されるなら、Windows用に開発する価値は全くないですね。"
- Hideaki_nomapさんのツイート: "例えば、ホーキング先生の車椅子のようなのもを作ったとします。たった一人のためのアプリでも、利用者が必要性を認めるなら、有用性は高いものです。大勢に関係のないアプリでも、まだ稚拙な代物でも、その配布手段を奪う行為は、市場やプラットフォームの破壊でしかないと思います。"
- Hideaki_nomapさんのツイート: "MSからメール連絡が来て、突然にunpublishされました。こちらで調査し、修正する余裕すらありません。理由はこれだけ→… "
SendInput
- kayaさんのツイート: "UWPではSendInput使えなかったか..."
- kayaさんのツイート: "いや、使えるけどキーロックがずれる?"
- なかのん&マジックさんのツイート: "SendInput使えないと自動テストが限定的になりそう。"
users
@shirouzu
互換性
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@totutohoku ご興味がありましたら参考まで。 WindowsにSimCityのバグ対応が入っている話。 https://t.co/lD4ccuV95P 泥臭い対応の数々。 https://t.co/2c2nq0oN1S クラッシュで次回からメモリ管理の挙動変更 Fault Tolerant Heap。 https://t.co/omhmQlcKQj」 / Twitter
- 2004-07-03
- 本当はすごい「Windowsの互換性維持」 | 日経 xTECH(クロステック)
- Fault Tolerant Heap - Windows applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32 APIのUTF-8版出さないかなぁと昔から思う。 (ANSI版をコードページで不完全にu8対応させるのではなくて)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「不完全と言うのは、ANSI用構造体だとサイズ不足なメンバがそこそこあること。 (以前はシステムグローバルでMBCS捨ててのUTF-8解釈モードという、さらに使い物にならない縛りがあったが、今はアプリ単位が可能に)」 / Twitter
同期
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32 CriticalSectionとEventを使った自作Condtionクラス、待受スレッド上限が32なのだが(atomic系演算の制約)、そろそろVista以上を必須とする Win32 CONDITIONを使うかな。 (以前のベンチでは、性能は同等だった)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それにしてもVistaて、セキュリティ関係だけでなく、CONDITION_VARIABLEやRWLockなど便利なプリミティブが随分と増えた…OSのメジャーバージョンを上げただけのことはある。」 / Twitter
ソート順
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerのソートは、数字は自然ソート、漢字は音読みソート、になっている様子…NTFSの順序(unicode順)と違っているため、プログラム出力と順序が違っていて、作業がしづらいな。"
- SODA Noriyukiさんのツイート: "音読みに変換しているわけではなくShift_JISというかJIS X0208的順序でしょうから(含まれている文字がすべてShift_JISで表現できるのであれば)文字コードを Shift_JIS にして自然ソートすればいいんじゃないでしょうか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そこまでやる気なら、その通りです(笑)… "
エラー
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのHRESULTは、ファシリティだのといった構造を持っている割に、現実の問題解決に繋がらないことが多すぎ。 エラーコード(抽象化されたエラー内容)よりも、いっそエラーファイル名&行番号を出してくれた方が問題解決DBが充実するのでは感もあったり(笑) https://t.co/LMOWLxABiz"
- ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
- Shirouzu Hiroaki(白水啓章)さんのツイート: "古い話だが、エラー時のHANDLE値がINVALID_HANDLE_VALUE(0xffffffff)だったりNULL(0)だったりと揺らぐ理由…Win16関連APIは前者、Win32独自は後者。 (前者はGetCurrentProcess()等の疑似ハンドルとも等値なので注意) https://t.co/HEzgH6enao"
- Why are HANDLE return values so inconsistent? – The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただし、CreateFileはWin32新設だがWin16時代に予約されていたこと&OpenFileが存在することから、0xffffffffに統一。 そういえば、UNIXの creat → open に対し、Windowsは OpenFile → CreateFile と逆の名前に進化したな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "0xffffffff ではなく -1 が正しい。 (x64で符号拡張なしに64bit化したと思っていたのだが、改めて確認するとそんなことは無かった)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、INVALID_HANDLE_VALUE という長い命名はイマイチ感。 命名は、エントロピー符号的に「頻度の高いものは短く」をベースにして欲しいところ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カーネル内部で発生したNTSTATUSエラーがWin32エラー番号に翻訳できないと、ERROR_MR_MID_NOT_FOUND(317: strerror() での変換に失敗的なエラー)に変換されてしまう様子。 https://t.co/LX107xcAXD"
- c# - How to convert specific NTSTATUS value to the Hresult? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "出くわしたのは、GetOverlappedResult(非同期IOの結果を受け取るAPI)で 317 が返る、という問題。 非同期API系は利用頻度が少ないせいか、こういうアラが出やすい印象がある。"
エクスプローラ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerの各アイコンの表示設定は、ROT13BLOBなレジストリに保存されている。 (これを強制変更すれば、次回ログイン(or Explorer再起動)以降は表示可能、という動作ならできるのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでシェル拡張のオプションが通常のオプション指定とは別画面になっているのは、元々、シェル拡張はOSグローバルな機能だった名残り。(全員に設定が反映する) しかし、今は原則ユーザ毎拡張が出来るようになったので、そろそろ通常設定画面に移してもよいかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Fall Creators Updateから、通知領域アイコンが(隠しAPIを使っても)プログラム的に常時表示できなくなった点、いろいろと調べたけれど、結局、OS設定画面へのショートカットボタンを作るという、ソーシャル的解決にすることに。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、Explorerの標準コピーハンドラを置き換える実験に成功。 当初、ICopyHookを使うと思っていたのだが、これはsrcがディレクトリにしか効かない中途半端なシロモノだった。 何日か研究・試行錯誤した末にようやくたどり着いた…「MSさんちょっと酷いよ」と言いたくなる方法というか。"
ネットワーク
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WNetOpenEnum 等のWNet系APIですかね。 FastCopyだと逆に、ドライブレターの付いたネットワークドライブからサーバ名+共有名に変換するのに、WNetGetUniversalName APIを使っていたりします。… "
- Kengo Sawatsuさんのツイート: "Win32APIでIPアドレスまたはUNCで引いた名前からSMBの共有ポイント名サーチする関数ってないのかなぁ。 ちょろっとした社内情報探索スクリプトを作りたいのだけど。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワークドライブ相手だと、スレッド数は多いほど削除速度が上がっていく様子(50→60スレッドで10%向上など)。 自作CondVarは32スレッドまでの制限があるので、そろそろVista以降でのみ使える CondVar に移行するかな… https://t.co/mg9NKhH1OQ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2018 April Update以降の挙動と思うが、隠しAPIに近い、IOCTL_LMR_DISABLE_LOCAL_BUFFERINGを発行しておかないと、ネットワークドライブへのWriteFileが、非同期I/Oあり非同期I/Oなしと同じ速度に低下する。 ちょっと酷い挙動だなぁ…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSDNでの IOCTL_LMR_DISABLE_LOCAL_BUFFERING に関する記述。 (SDKのheaderにすら番号の定義がない) ---- The IOCTL_LMR_DISABLE_LOCAL_BUFFERING control code is defined internally by the system as 0x140390 and not in a public header file. https://t.co/E2iWHkdlvQ"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista以降、CreatePersistentTcpPortReservation API が増設され、指定ポート範囲を永続予約(&この時のトークンを使って bind)が出来たのだが、手元で試すとトークン不要でbind出来てしまう謎… https://t.co/jIIJgS8yzA」 / Twitter
- CreatePersistentTcpPortReservation function (iphlpapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Reserve済みでも(トークンなしに)bind出来て、逆にbind中にReserve試みると「使用中エラー」になるという、話が逆ではとか)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、コマンドラインだと管理者権限でこんな感じ。 netsh int ipv4 add excludedportrange tcp 開始ポート番号 ポート数」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32APIで、20数年たっても未使用なreserved引数や、逆に Ex とか 2 が付いた APIも多いさまを見ると、事前に見通すことの難しさよとか思ったり。 (Win16 → Win32で形だけ残したreserved引数もあるらしいが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの中の人がコメントしていた。 https://t.co/o2vTZrQz9Z"
- winapi - Windows API reserved parameters - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のWin系OS判定は、IsWindows10OrGreater() 的な関数を使うのが推奨だが、いずれ、 IsWin10FallOrGreater() みたいな関数が登場するのだろうか?(ない) https://t.co/U8QY5ahSjN"
- Version Helper functions - Windows applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「古くて新しい話。 WinProcは汎用関数のため、メッセージ種類によって、2つ用意されたuint的なパラメータに、char/wcharポインタをキャスト代入したりする。 混在ミスがあってもコンパイラは警告を出せないという話。 unixのioctlの引数問題に近い。 https://t.co/b0DxHz5HiP」 / Twitter
- 「Windows 10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明 - CNET Japan
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、UWP/XAML を Win32 から使うという手はあるらしい。 ただこれは、Win8.1以降用のビルドの必要があるので、WIn7をサポートするならDLL化が必要。 https://t.co/T8JGi0t18v」 / Twitter
- UWP XAML を使用した C++ Win32 アプリでの API のホスト | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32の Kernel Handle は常に下位2bitは0であり、それらは CloseHandle で閉じられる。 (のはいいけど、HANDLE型を名乗りながら、FindCloseしろとか、非Kernelな疑似Handle多すぎ) https://t.co/5XDjnNsJPn」 / Twitter
- Why are kernel HANDLEs always a multiple of four? | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昇格したプロセスから、ネットワークドライブ(レター)が使えない問題の解決方法。 (グループポリシー変更 or net use で再割り当て) https://t.co/3rPYtduEP3」 / Twitter
- Mapped drives are not available - Windows Client | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみにキャプチャ時は、キャプチャウィンドウで全画面を覆っているので、そのままだとWindowFromPoint API(カーソル位置のウィンドウ判定)がまともに動かない罠があったり。」 / Twitter
@rockridge07
- Rockridgeさんのツイート: "Fx57:Windows 10上のテーマではウィンドウの半透明効果を無効にしている。ウィンドウのリサイズが高速化されるなど、パフォーマンスに好影響も。 / “1366405 - We're forcing the window'…” https://t.co/WurqxtabCf"
- Rockridgeさんのツイート: "Fx60:Windows版で、グループポリシーを用いた集中管理が可能となった。 / “1433136 - Implement GPO support on the Policy Engine” https://t.co/6ImjkZEVsQ"
- Rockridgeさんのツイート: "Fx63:Windows 10のダークモードをサポート。Fx65ではアクセントカラーも正しく反映されるようになった。参照:https://t.co/Nre4vq8hvA / “1368808 - Respect Windows …” https://t.co/uACKUzrjGZ"
- Rockridgeさんのツイート: "Fx64:Windows版で、ページアクションメニューに「共有」の項目が新設された。OSネイティブなページ共有機能を呼び出すことができる。 / “1363169 - Add support for native Windows …” https://t.co/MUAc7IToXv"
@d_toybox
- なかのん&マジックさんのツイート: "WindowsってVista以降はプロセスがビジー状態になると一旦、ウインドウがフォーカスを失ったかのようなメッセージが発行されてるんで、たぶんそれによってドラッグの処理が中断されて……みたいな感じなんだろうなと。知らんけど。"
- なかのん&マジックさんのツイート: "FirefoxでもIME周りでそれが原因で遅いマシンだと未確定文字列が意図せず確定されまくるというバグが昔あって、 https://t.co/ypmQllanBc で修正してたり。"
- 窓の杜さんのツイート: "正直、“タブレットモード”のボタンとかいりますか? クイックアクションに表示されるボタンをカスタマイズする【いまさら聞けないWindows 10のTips】 https://t.co/Whjwx33yv8 https://t.co/FtlmXUENU6"
- なかのんクエストさんのツイート: "デバッグ時に必須のボタン。"
- なかのん&マジックさんのツイート: "Windowsのタブレットモード使うと、WebアプリがFirefox for Androidより使いにくくて、逆に、「モバイルブラウザモード」みたいなの欲しくなるな。「PCブラウザモード」みたいなの。"
- なかのん&マジックさんのツイート: "あ、先にGoogleさんとの協議の結果、決まったWindowsのAltGrキーのイベント発火を修正するか。おおむね、Geckoの動作が好ましかったっていう結果なので修正簡単そう。"
- なかのん&マジックさんのツイート: "WindowsのAltGrって、なんで内部的にはCtrl+Altの同時押しという、すごいリソースが無かった時代からの伝統です、みたいな感じがあるんだろう。MS-DOSの頃にどうしてたのか分からないんだけど、少なくともWindowsの時代にはそこまでシビアじゃなかったと思うんだけど。"
- なかのん&マジックさんのツイート: "Win10のRDP、サーバ側と、クライアント側でDPI設定が違うとき、RDP経由か否か、それぞれで起動したアプリが、もう一方の方で見る時にDPIおかしくなるのは、やっぱりアプリのデキが悪いのかなぁ。"
- なかのん&マジックさんのツイート: "Windowsをタブレットで使うときには、タッチキーボードをサードパーティーに解放して欲しいのと、OSレベルでの戻るボタンみたいなの必要だなーと感じる。"
- なかのん&マジックさんのツイート: "タスクバーに戻るボタンみたいなの、あるにはあるけど、そうじゃねーっていう動き。"
- なかのん&マジックさんのツイート: "SendInput()でWM_KEYDOWNとWM_CHARを発生させたときに、lParamの31ビット目 (lParam << 30) がどうなるか詳しい人居ません?"
- なかのん&マジックさんのツイート: "SinharaとTamilのIMEと自称するキーボードユーティリティがWM_KEYDOWNとWM_CHARを自前で生成して送ってくるんだけど、それらのlParamの31bit目が常に1で困ってる。"
- なかのん&マジックさんのツイート: "(lParam & (1 << 30))だ"
- なかのん&マジックさんのツイート: "あー、なんか分かった気がする。 KEYEVENTF_KEYUPを指定しておかないと、キーが内部的に押されたままになってて、lParamの31bit目の値が決まってそう。"
- なかのん&マジックさんのツイート: "Win/macOS間はやりたいことと、好みの問題大きいな。個人的にはWinだけど、Winの、とくにノートパソコンでは、タッチパッドの出来が恐ろしいほどピンキリなんでこの辺の環境で当たりを引いたかどうかでも大きく評価が変わりそう。ひどいのは本当に使い物にならない。"
- なかのん&マジックさんのツイート: "MicrosoftはSurfaceBook見る限りは、MacBookと同等のタッチパッドを提供できるんだから、各PCベンダにライセンス供与とかなんとかできんものかな。"
- なかのん&マジックさんのツイート: "あの辺、ソフトウェア特許の塊らしいから。"
- なかのん&マジックさんのツイート: "レビューしてて初めて知ったけど、Win2k以降はデバイスの変更を普通のアプリも簡単に検出できたのか。"
- なかのん&マジックさんのツイート: "そういえばPDFのサムネイル作成って異様に遅いけど、あれやってるのはWindows自身なのか、Adobeのシェル拡張なのか。"
- なかのん&マジックさんのツイート: "そーいや、D&Dを受け入れるアプリがバッチ処理とかで当分応答できない時に、エクスプローラからのドラッグ中にそのアプリのウインドウの上を通過しちゃうとエクスプローラ全体を再起動するしかなくなるのつらい。"
- おこめ/つなもりさんのツイート: "リモートドライブ(停止中)通ったりすると死… "
- なかのん&マジックさんのツイート: "歴史的にしゃーないけど、設計自体のバグよね……… "
- なかのん&マジックさんのツイート: "Windowsがマイクロソフトアカウントの作成、もしくは登録から行くと、ユーザー名でフォルダ作るの本当に迷惑。古いVCのランタイムが使えなくなるんで動かないアプリが出てくるんだよな。"
- なかのん&マジックさんのツイート: "非ASCII文字が含まれてる場合、ASCII文字だけの別名も用意しておくとか逃げ道欲しい。「短いファイル名」みたいな。スマートじゃないけど、アクセシブルなのは保証される。"
- おおきくてながいさんのツイート: "名前に土吉含んでたらmsiすら動かなくて完全にダメ"
- なかのん&マジックさんのツイート: "WindowsってプロセスのCPUの優先度以外に、ネットワークの優先度って設定できないのかな。ダウンロードしながらインストールするインストーラが動いてると、ストリーミングで動いてる動画ソフトが途切れ途切れになる。"
- なかのん&マジックさんのツイート: "最近のMSはユーザー目線でも、悪い意味でMSらしくないと思うけど、アプリ開発者としては、APIの互換性・安定性という点、また、そのドキュメントのクオリティでは、最高かなって思えてしまう。"
- なかのん&マジックさんのツイート: "よそのデスクトップアプリ開発者向けのドキュメントなんて、形だけで役にたたないとか、そもそも書いてることが嘘とか多過ぎで。"
- なかのん&マジックさんのツイート: "ただ、COM形式のAPIは正直なところ、手放しで褒められるものは私の知ってる狭い範囲には無い。"
- なかのん&マジックさんのツイート: "Win32のあのメッセージドリブンな形式の採用や、C APIの設計って今でも天才的だと思う。"
- なかのん&マジックさんのツイート: "APIをオブジェクト指向にしちゃいかんと、最近本当に思う。オブジェクト指向は一見綺麗な、すっきりして見える構造を作り出せるんだけど、そのスッキリ感を維持するためには大きな変更を必要とするので、安定感や互換性を求められるAPI向きではないよな、と。"
- なかのん&マジックさんのツイート: "Cocoaとかホントにアレ。"
- なかのん&マジックさんのツイート: "そーいや、Cocoaに代替API無いのにCarbon APIを無かったことにしていくの、本当に頭おかしい。Geckoのキー入力のハンドリング部分なんか、今、Appleが公開してるドキュメントだけを元に書けなかったりする。"
- なかのん&マジックさんのツイート: "興味ある人は読んでみると面白いかも。TISで始まってるAPIを使いまくってるけど、これがないと、入力を国際化してフレームワーク的な他のアプリの土台となるものを書けなかったりする。ちなみに、いまだにMacOS9以前のAPIも使ってたりする。使わないとどうしようもなく、かつ、今はドキュメントも無い"
- なかのん&マジックさんのツイート: "https://t.co/kUOexQ9Ro6 このへん。"
- TextInputHandler.mm - mozsearch
- サンディスクさんのツイート: "Windowsさんはなぜ、「フォーマット」と「取り外し」をすぐ近くに配置するのか・・・(*'ー'*) (←USBメモリーを安全に取り外そうとして、間違ってフォーマットを押してしまい、しかも、あれ??フォーマットするんだっけか・・・・(*'ー'*)?? と勘違いしてフォーマットしてしまった)… https://t.co/agxZKjArdd"
- なかのん&マジックさんのツイート: "フォーマットがそもそもコンテキストメニューに必要なんだろうかってのはいつも感じる。"
- なかのん&マジックさんのツイート: "レコーダーで、BD/DVDのディスクの初期化の近くにHDD/USB HDDの初期化があるのもかなり怖い。"
- なかのん&マジックさんのツイート: "GUIアプリ書いてると嫌になるのはダントツでmacOSだなー。APIがころころ変わったり、代替わりしたり、新機能への対応がしんどかったり。Linuxはちょっとシンプル過ぎてやれないこと多かったり、IME周りはカオス過ぎてアレ。Windowsはその辺のバランスが良い。進化してるけど互換性が凄い。"
- なかのん&マジックさんのツイート: "うわー、Windows、VK_OEM_PLUS 0xBB For any country/region, the '+' keyっていう定義なのに、`+`キーが入力できないキーでこのキーコードが発生するケースあったのか。知らんかった……"
- なかのん&マジックさんはTwitterを使っています: 「WindowsってShiftキーだけ、両方を離した時にしかWM_KEYUPが発行されないバグがあるんだ……Win7でも再現した。 / https://t.co/OFWbfje4Qj - keyup event with ShiftLeft/ShiftRight code sometimes not fired」 / Twitter
- 1566848 - keyup event with ShiftLeft/ShiftRight code sometimes not fired
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「全然違う話だけど、Microsoftさん、マウスホイールのメッセージに、モーメンタムかどうかの情報を足すようにしてくれませんかね。つまり、SendInputからの変更。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Ctel + wheelでズームを実装すると、惰性でホイールが回り続けているイベントを、後からCtrlキーを押したことで、意図しないズームが発生しちゃうんですわ。macOSはイベントから惰性かどうかを判断できるのでこういった不本意なズームを回避できる。」 / Twitter
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "Nightlyをアップデートするたびにe10s (with sandbox)が動作しなくなるので調べたけど、Windows 10のGetMappedFileNameWがバグってる気がするんだ。たぶんCoWがらみな気がするだけど。 https://t.co/TZM2FEEhOp"
- Makoto Kato ︎︎さんのツイート: "https://t.co/zZDcKsDro8 "またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する" WDKみてると、なんかaarch64なデスクトップアプリ使えないようにしてる雰囲気あるって話でてるんだけど、こ… https://t.co/er1hwgIZKC"
- Makoto Kato ︎︎さんのツイート: "WinRTの時だって、バイナリ的には署名チェックさえバイパスすれば動いたし (CSRSSにデバッガアタッチしてバイナリパッチしちゃえばだったはずだけど)、あれはホント愚策だったなぁと"
- Makoto Kato ︎︎さんのツイート: "clang使った場合で、最新のWindows SDK使うとビルドエラーになるの、これね https://t.co/FPwttRPSeI"
- clang can't compile wrl/implements.h - Developer Community
- Makoto Kato ︎︎さんのツイート: "現在(過去も含めて)公開されているWindows SDKだとChakraCoreとか.NET Coreのaarch64版をビルドできないんだけど、彼らコントリビューター増やす気はさらさらない感じしてる"
- Makoto Kato ︎︎さんのツイート: "https://t.co/A1Ny6xp2ne"
- Makoto Kato ︎︎さんのツイート: "rustというかllvmのマトモなポートしない限り無理だけど"
- Makoto Kato ︎︎さんのツイート: "Windows on arm用のイニシャルゴードはllvmに入ってるけどexception handlerのサポートが入ってないからrustはそままではポートできない。そもそもMicrosoftがehの仕様に関するドキュメント公開してない"
- Makoto Kato ︎︎さんのツイート: "armasm64のehサポートに関しては必要なヘッダはバグ報告したんで最新のWindows SDKには入ってる"
- Makoto Kato ︎︎さんのツイート: "armasm64のEHサポートに関してはcプリプロセッサ通さないとarmasm64だけではサポートほぼ不可という状況で、いろいろ面倒なこと増える"
- Makoto Kato ︎︎さんのツイート: "そもそもMSはarm/aarch64のアセンブラを自社開発せずにArmからライセンス貰ったみたいで、いろいろ残念なこと多い"
@vyv03354
- vyv03354さんのツイート: "@d_toybox OSVERSIONINFOとか、OPENFILENAMEとか、結構ありますよ。"
- vyv03354さんのツイート: "@piro_or Win64にはファイルシステムリダイレクションというのがあって、32bitアプリがフルパスでSystem32を指定しても強制的にSysWOW64にリダイレクトされます。"
- vyv03354さんのツイート: "爛 ←游ゴシックでは木偏、それ以外では火偏に見える不思議な漢字 とりあえずフィードバックは送った。https://t.co/otBZ51LvoT ネタ元はこちら https://t.co/WPawWoR3Ky #もずでぶ"
- vyv03354さんのツイート: "爛︀ ←元ネタ通りにStandardized Variantを使えばTwitterにも投稿できるけど、Firefoxでしかうまく字形が変わらない"
- vyv03354さんのツイート: "しかもどうやらTwitterがフォントを指定しているのでTwitter上では確認できない"
@unagix
- uNagiさんのツイート: "Windows 10 IP 17063 の例のデフォルトロケール UTF-8 の件、有効にすると想像通りの動作になる。A 系の API が全て UTF-8 で I/O されてる。コマンドプロンプトは cp65001 になる。 https://t.co/E1t5YdPD8V"
- uNagiさんのツイート: "メモ帳の読み書き時に選択できる" ANSI" は、A 系 API なので全て UTF-8 になる。だから Shift-JIS のファイルも UTF-8 で読もうとして化けてしまう。"
- uNagiさんのツイート: "メモ帳で "UTF-8" を指定して保存しても、"ANSI" で保存しても、どちらも UTF-8 になるという奇妙な事が起きる。これがシステム全体で発生する事になるので、 A 系 API が一つでも残っているコードを保守している人はこの設定がいつデフォルトにされるか注視する必要が… https://t.co/hF5aShqkuu"
- uNagiさんのツイート: "国内でよく見かけるのが ANSI API = cp932(SJISみなし) という間違った扱いをしているもので、そういうアプリは元から海外では正常動作していないのだけど、このオプションが有効の場合は国内でもダメという事になる。"
- uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・ https://t.co/59CktY6zOU"
- Unagiさんのツイート: "@syuu1228 Windows NT には昔からある、予約語の制限を回避するプレフィックス。¥¥.¥ というのもある。これ使うとドライブレター無しでアクセスするのもできた気がする。まとまった公式ページがあったはずだけど、この記法に名前がちゃんと付いてなくてググれない…"
histric
histric-1
- Takashi KawasakiさんはTwitterを使っています 「Windows 11、結局コンテキストメニューはIExplorerCommandっていうCOMインターフェイスを実装しないといけない感じだけど、サンプルコードを見たら昔よりはあか抜けてて、これなら・・・いや、やっぱりダメだろって思ってる。 https://t.co/UBZ9KfGxEI」 / Twitter
- AppModelSamples/dllmain.cpp at master · microsoft/AppModelSamples
- Takashi KawasakiさんはTwitterを使っています 「見てたのはこの記事。 https://t.co/FDHQwPjA4M」 / Twitter
- Extending the Context Menu and Share Dialog in Windows 11 - Windows Developer Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 単に掴むという意味だと、本当のウィンドウは(表示領域より)右/左/下にもう少し広がっていて、透過な影描画エリアなので、その透過部分は枠同様に掴めたりします。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このため、Windowsで座標0,0にウィンドウを置くと、表示的にはピッタリ左上とならず、透明部分だけ内側にズレて表示されてしまう。」 / Twitter
- tn-mai/DX12Tutorial: DirectX 12の学習用コードとか資料とか
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10永続説の頃、Win8系タイリングが今後も続くと思ってヤレヤレ感あった。 で、Win11が出ると聞いてプチ期待したが、枠の角が僅かに丸くなる以外は、やっぱりタイリング系なのね。 視認性はXPあたりが一番良かった気がするのだけど。 (多少は立体的+マウスオーバーでボタン色変化)。」 / Twitter
- ナマケモノさんはTwitterを使っています 「MS製DirectX 12上のDX9互換レイヤがオープンソースに。まじかよ、MS、神だな。 Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package https://t.co/NHdMaLq58e」 / Twitter
- Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package | DirectX Developer Blog
- ロボ太さんはTwitterを使っています 「そういえばWindowsの「砂時計カーソル」を最近見なくなったなぁ、と思ったら、今はWait Cursorと呼ばれていて、砂時計(Hourglass)カーソルと呼ばれてたのはVistaまでだったそうな。そうか、Vistaまでか。おっちゃん年よりだからさ、Vistaは「最近」な感覚なんだよ。 https://t.co/nlNq9nJ9mc」 / Twitter
- Windows wait cursor - Wikipedia
- INASOFT 矢吹拓也さんはTwitterを使っています 「我が家のWindows 11は、5回に1回くらいの頻度で、エクスプローラ(タスクバー・デスクトップ)が大変不安定で、よくプロセスが再起動する。 各常駐アプリが、タスクバーコーナー(タスクトレイ)のアイコンを再登録してくれる作りになっているかどうかがよく分かる。 GeForceさん、がんばってくれ。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 11で追加されたアニメーションGIFを仮想キーボードから入力する機能、Win32的にはDrag&Drop APIでアプリには飛んでくるのだけど、これが他のアプリからのDrag&Dropなのか仮想キーボードからの画像挿入なのかを判断する方法が未だにわからない。。。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「HICONはリソースからロードすると、複数解像度に自動対応=あたかも複数イメージ保持に見えるが、実際は保持画像は一つ。 これはロード時の元リソース情報がHICONに記録されていて、必要あれば元リソースから別解像度を利用というトリックによる、と R・チェン氏が回答。 https://t.co/ZxhvmaRRde」 / Twitter
- windows - Constructing HICON with multiple images from memory pixel data - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ハンドラ内でMessageBoxを生成すると、メッセージループが回る=同一スレッドのタイマー処理が動くスキを与えてしまう問題。 MessageBox専用スレッドを別途生成すれば一応解決するが、やや牛刀感。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messengerでも(昔から)非アクティブでも選択が見える形にしている。 ただしオーナードローではなく、WM_KILLFOCUSをブロックというhack的な実装。… "
- やねうら王さんのツイート: "『将棋神やねうら王』は、ListViewが複数配置されていて、そのすべてがアクティブという特殊なUIデザインになっています。この理由について記事にしてみました。 ListViewが複数あるこの世界で世界最強 https://t.co/bDNHg2i7Jr"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーザには良い機能だが、開発側はダイアログで表示が切れる等に気をつけないと。(以前、IEEEでも有名な年配の米女性から、丁寧な指摘メールが届いた経験が、、、)… "
- システムのフォントサイズを大きくする機能が追加 ~「Windows 10 RS5」Build 17692 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーレカ! ent->TimerProcの中で(レア設定の場合に)MessageBoxを通っていた。 MessageBoxは内部メッセージループを持つ=パケット処理やタイマー処理などが再入的に発生する。 msgActイテレーション中のMsgBoxでパケット受信が発生、別関数でのmsgActイテレーション再発生が原因。(再現も完了)… https://t.co/0G9RELEoD0"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WM_INITDIALOGのコンテキスト内だと、MessageBox等のModalDialogを作っても、Modalにならない不思議(まるでオーバーラップ的な挙動)。 (さらに、PostMessageでわずかにDelayさせても回避できない様子)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ウィンドウ枠外でも数pixel以内なら掴めると手触りが随分と良い。 (枠を正確にクリックしないとリサイズできない、厳格なウィンドウシステムに触りながら)」 / Twitter
histric-2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、Win32APIのごく一部も 16bit signed な画面サイズを前提としてるAPIがまだ残ってたり…GetMessagePosとか。 https://t.co/mxzG4G2hgD」 / Twitter
- GetMessagePos 関数 (winuser.h) - Win32 apps | Microsoft Learn
- Tsukasa #01 (4x vaccinated)さんはTwitterを使っています: 「@keilfoermig 私なら、IIIF Manifest からタイル毎に画像ダウンロードをする形にしますね…… (自作 Python スクリプト)。 ただし原寸提供されてない理由のひとつは分かりました。例えば「平戸嵐山家旧蔵解剖図巻 上」ですが、巻物部の画像サイズが 78910x4452 と、幅が JPEG の制限である 65,535 を超過してます。」 / Twitter
- 🦊すらーぷの妖精🐈#フォロバ100さんはTwitterを使っています: 「Edge さぁ、ProtonUI だよねこれ https://t.co/q69oUwX5Ck」 / Twitter
- ProtonUI - Search
- なかのん&マジックさんのツイート: "もう、本当にWin10に「ディスプレイのタッチ機能」を一時的に無効化するUIつけて欲しい。子供がさわりに来ると使えなくなる。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WindowFromPointには微妙な副作用があると。 (同一スレッドwindowのsystem-button座標にcallするとhoverに) https://t.co/GLGIb6oeNZ」 / Twitter
- windows - Why are a form's system buttons highlighted when calling WindowFromPoint in MouseMove event? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から SetWindowsHookEx には WH_KEYBOARD だけでなく WH_KEYBOARD_LLもあるの、何でだろう?と思っていたけど、後者は DLL 無くても、global に hook できるのね…知らなかった。 https://t.co/KEB2J4DRDZ」 / Twitter
- LowLevelKeyboardProc callback function (Windows) | Microsoft Learn
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win10以降、タイトルバーをアクティブ有無を無視して常時白色にしたの、ホントにUI研究の成果なの?と思ってたり。 (変更できるだけマシではあるけれど)」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています: 「Windows 版 chrome さん、アクティブな時と非アクティブな時のタスクバーの色合いが似すぎてて、ものすごく判別しにくいなあとずっと思ってるんだが、何でこんな頭の湧いてる仕様にしてんだろうな。」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています: 「タスクバーじゃねえタイトルバー」 / Twitter
- Makoto Kato ︎︎さんのツイート: "Windowsのコンソール系バグ (APIも含む) は、https://t.co/97QTqsydFS で報告できるようになったのは素晴らしい"
- Microsoft/console: Windows Console Tools
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自前Conditionクラス、CriticalSectionで守っているため、CAS(Compare And Swap)不要なのにCASを使っている気がする。 (そもそもVista以降、CV入っているし、ネイティブCVに移行してXPユーザには泣いてもらうかな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちがった。 クラス内csで守る部分と、globalリソースのためのCASに分けていたのだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ポインタサイズの省サイズ&高速な ReaderWrite Lock (ポインタサイズのため再帰不可) ---- Slim Reader/Writer (SRW) Locks (Vista以降) https://t.co/CNVy8QiN1J」 / Twitter
- Slim Reader/Writer (SRW) Locks - Win32 apps | Microsoft Docs
- Takashi KawasakiさんはTwitterを使っています: 「Windowsのウィンドウスナップの機能は割と便利で良いのだが、一方で、Chromeとかのウィンドウ復帰時に微妙に場所がずれてるのはなぁ、毎度調整し直すのウザいんだよなぁと思って早何年?」 / Twitter
- Windows をスナップする
- なかのん&マジックさんのツイート: "マウスとか、特定の入力デバイスに依存したUIは本当にあかん。マウスに依存してるのだと、hover時にしか開かれないメニューとか。"
- 【山田祥平のRe:config.sys】ウィンドウ最大化時代の終焉とモニターの使い方 - PC Watch
- 【山田祥平のRe:config.sys】バーは短し、外せよピン留め - PC Watch
Wayland
その他
Mesa API
- FadisさんはTwitterを使っています 「KDEのPlasmaワークスペースがNVIDIAのGBMの実装の上で動くようになったらしい。NVIDIAのGBMの実装は現在NVIDIA Linuxドライバのベータ版でのみ提供されている。尚PlasmaはEGLStreamにも対応しているので、安定版NVIDIAドライバでもWayland+KDEで動かす事自体は可能 https://t.co/qwa3eIIns4」 / Twitter
- KDE Plasma Readies Its NVIDIA GBM Support, Fingerprint Authentication Added - Phoronix
- FadisさんはTwitterを使っています 「WaylandコンポジタはX無しで描画を行う為に生のKMSの上にEGLでレンダリングコンテキストを作りGLES2で描画を行うが、カーネルから見たバッファとEGLから見たバッファの対応が取れない問題を解決する為に多くのWaylandコンポジタはEGLの裏で動くMesaのGPUのメモリ確保抽象化レイヤーGBMを覗き見していた」 / Twitter
- FadisさんはTwitterを使っています 「これはEGLのAPIを提供する実装がMesaでないと困る、という事でNVIDIAドライバの上ではWaylandコンポジタを動かせない事を意味した。そこでNVIDIAはEGLから不足している情報を取れるようにする拡張を提案、その上にコンポジタを実装しようと主張したが、これに対応したコンポジタは限られていた」 / Twitter
- FadisさんはTwitterを使っています 「このような状況が数年間続いた末についにNVIDIAが折れてNVIDIAドライバにMesaのGBMと互換のAPIが生える事になった。今回の報はKDEのWaylandコンポジタの実装がNVIDIA製のGBMの上でちゃんと動いたぜ!という話。」 / Twitter
- FadisさんはTwitterを使っています 「ちなみにこのWaylandコンポジタの実装がMesaに依存しすぎる問題に対しては、コンテキストの作成、メモリの管理が全てAPIに含まれているVulkanの上にWaylandコンポジタを実装すれば、あとは軽微な拡張だけで「VulkanできればWaylandできる」が実現できるんじゃないか、という別解も模索されている」 / Twitter
libdisplay-info
- FadisさんはTwitterを使っています 「https://t.co/F8psUD88iQでEDIDパーサライブラリlibdisplay-infoの開発が始まった話。ディスプレイはホストに対して対応解像度等の情報を含むディスプレイの情報EDIDを送っている。送られてきたEDIDはLinuxのユーザ空間から読めるが、これまでパースは自力で行う必要があった https://t.co/C7RPO6l78J」 / Twitter
- libdisplay-info Started To Address The Wayland Fragmentation Around EDID/DisplayID - Phoronix
- FadisさんはTwitterを使っています 「EDIDはより高い解像度に対応したり、リフレッシュレートの種類が増えたり、新しい色空間をサポートしたり、HDRに対応したり、製品名を取れるようになったり等様々な理由で繰り返し拡張されてきた為、近代的なディスプレイが返すDisplayID拡張付の長い長いEDIDを正しくパースするのは意外とめんどくさい」 / Twitter
- FadisさんはTwitterを使っています 「WaylandコンポジタはEDIDを調べて最適なディスプレイの設定を選ぶ必要があるが、従来EDIDのパースはコンポジタ毎にバラバラに実装されていた。EDIDが複雑になるに従いこのパーサの実装がシャレにならなくなってきたのでコンポジタ非依存の共通のパーサライブラリを作ろう、というのがlibdisplay-info」 / Twitter
- FadisさんはTwitterを使っています 「このライブラリの開発は始まったばかりで、現時点でgitリポジトリに置かれているのはLICENSEとREADMEだけ https://t.co/16FphPojab」 / Twitter
- Simon Ser / libdisplay-info · GitLab
技術評論社
- 2017年9月5日 Waylandでもリモートデスクトップ! Red Hat開発者がGNOMEにAPIを追加:Linux Daily Topics|gihyo.jp … 技術評論社
- 第652回 キミはMirを憶えているか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第666回 Waypipeを用いてWayland環境で「X転送 over SSH」っぽいことをしてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第717回 Ubuntu 22.04 LTSにおける,Waylandとアプリケーションの微妙な関係:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
blog
- Rust製GUIスタック「Kazari」
- Life of a Pixel - Google スライド
- Introduction - The Wayland Protocol
- weston/terminal.c at master · wayland-project/weston
- Appendix A. Wayland Protocol Specification
- wayland/wayland.xml at master · wayland-project/wayland
- Implementing Resea GUI - 1. Porting Cairo 2D graphics library
- Implementing Resea GUI (Part 2): Font Rendering with FreeType
- Implementing Resea GUI (Part 3): Porting libpng
Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WaylandになってGTKレベルでちゃんとHiDPI per Monitorがサポートされてるのだが、まぁなんかGeckoのバグ踏んでる」 / Twitter
- FadisさんはTwitterを使っています 「glfwがsurfaceを作れない!→waylandをenableしたglfwはX上でsurfaceを作れない→何でwaylandがenableになったの?→次にglfwのバージョンが上がる時にはNVIDIA+wayland事情が改善してると信じてGentooのUSEフラグをバージョン付きで-waylandしてた、を3回繰り返してglfwを常に-waylandするようにした」 / Twitter
- FadisさんはTwitterを使っています 「Mozillaにテレメトリを送っているFirefoxユーザのうちWaylandを使っているのは、XまたはWaylandを使っているユーザのうち10%未満だ、という話。ディストリ標準のFirefoxでテレメトリを切っているディストリもあるため、サンプルに偏りがある可能性はあるとしている https://t.co/Twrl1NpyHt」 / Twitter
- Less Than 10% Of Firefox Users On Linux Are Running Wayland - Phoronix
- Makoto Kato ︎︎さんはTwitterを使っています 「GNOME/Waylandで整数じゃないDPIスケールを有効にすると、整数倍のDPIでも非常にぼやける。使えなすぎた」 / Twitter
- Fadisさんのツイート: "Wio: Plan9のウィンドウシステムRioをWaylandで再現したものらしい。Rioは個々のウィンドウを分離された名前空間で処理するが、WioはWaylandのCageを使ってこれを再現。Rioはウィンドウに対する操作をファイル操作で行えるが、WioはFUSEでこれを再現 https://t.co/QhCoedseWi"
- Wio: Plan 9's Rio Windowing System Re-Implemented As A Wayland Compositor - Phoronix
- 島鉄雄さんのツイート: "その図を見ると分かるように、Wayland CompositorがLinuxに激しく依存してるように見える。 実際はWayland Protocolとして分離されててUnix domain socketで転送してるだけだから、Compositorはプラットフォームに関係無く実装出来るはず。"
- 島鉄雄さんのツイート: "emacs-develで--with-cairoはもうexperimentalじゃないっていうのがあったけど、WaylandにはXにはあったライン等の描画APIが一切無いので、自前で描画する必要があるけど、それをcairoに投げる事で相当楽が出来る。 後はウィンドウ周りのコードをWaylandのAPIを使う事でWaylandで動くようになるはず。"
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo remoting plugin for output streaming という魅惑的なコミット見つけちゃった。 https://t.co/Qpgb2OCikX こいつで画面引っ張ってきて、あとキーボードとマウスの入力イベントを流し込んでやれば、 リモートデスクトップに! あれ?(´・ω・`)?なんか違う?」 / Twitter
- Add remoting plugin for output streaming (f709d220) · Commits · wayland / weston · GitLab
- Wayland
- wayland / wayland · GitLab
- MirServer/wlcs: Wayland Conformance Test Suite
- Wayland | OSDN Magazine
- Wayland - Wikipedia
- Wayland (display server protocol) - Wikipedia
- Wayland - ArchWiki
- Wayland - ArchWiki
- Wayland ‐ 通信用語の基礎知識
- Wayland | Linux技術者認定 LinuC | LPI-Japan
- Waylandとは? - Qiita
- Wayland/jp - RawPedia
- Waylandのウィンドウのx、y座標を設定するにはどうすればよいですか?
- Wayland - 接続と切断
- Waylandについて - 雑記
- bitWalk's: Wayland と X Window System
- GNOMEでWaylandを使う | 普段使いのArch Linux
- Firefox 75がLinux向けディスプレイサーバーのWaylandをサポート - GIGAZINE
- Ubuntu 19.04 その11 - Waylandセッションのデフォルト化はUbuntu 20.10まで見送りか? - kledgeb
- 【Ubuntu 17.10】WaylandからXorgに切り替えるべき7つの理由 | LFI
- managarm/managarm: Pragmatic microkernel-based OS with fully asynchronous I/O
- Wayland Protocol Finally Ready For Fractional Scaling - Phoronix
Desktop Entry Specification
- Desktop Entry Specification
- 本の虫: Desktop Entry Specification
blog
blog.jxck.io
- Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
- ブラウザで何が起こっているのかを知る Reporting API と ReportingObserver | blog.jxck.io
- img の srcset 指定時に選択される画像 | blog.jxck.io
- Scroll To Text Fragment と :~:text | blog.jxck.io
- Font Display プロパティを用いた FOIT/FOUT 最適化 | blog.jxck.io
- CSS Rhythmic Sizing で Vertical Rhythm | blog.jxck.io
- mouseover 中に表示される DOM のデバッグ | blog.jxck.io
- 次世代 CSS 仕様が与えるコンポーネント時代の Web への影響 | blog.jxck.io
- Makoto Kato ︎︎さんはTwitterを使っています 「rniwaよりもWebKitトップのMajの方が方向性は一番重要だし、TPACそこまで重要ではない気がするし、WICGは個人草案という表現はちょっとと思うし、細かいところに粗がいろいろある感じ https://t.co/SFRnNutDep」 / Twitter
- Web 技術の調査方法 | blog.jxck.io
- XMLHttpRequest とはなんだったのか | blog.jxck.io
- Web における技術の解釈とエコシステムによる合意形成プロセスについて | blog.jxck.io
- 話題のGUIツールキットOrbtkを読む | κeenのHappy Hacκing Blog
- データドリブンなアプローチで巨大なモノリスをマイクロサービスに分割する(ことを考えてみる) - エムスリーテックブログ
- モバイルアプリ開発において宣言的UIフレームワークを利用する際のコンポーネント粒度についての考察 - クックパッド開発者ブログ
- Android クックパッドアプリの画面遷移実装 - クックパッド開発者ブログ
- UIデザインにおけるステートマシン - 弁護士ドットコム株式会社 Creators’ blog
- 新卒でマイクロフロントエンドを経験してみて - Cybozu Inside Out | サイボウズエンジニアのブログ
- フロントエンドのテストコードを書くときに大切にしていること - Cybozu Inside Out | サイボウズエンジニアのブログ
- JSXが実はベターな解だったのではないか?|erukiti|note
- 消えゆくスクロールバー|3inowayosuke|note
- SimpleCovのテストカバレッジ計測について | Money Forward Money Forward Engineers' Blog
- Denoが新フレームワーク「Fresh 1.0」リリース。Just-in-timeレンダリングやランタイムオーバヘッドゼロなどの特徴がもたらす優位性とは? - Publickey
- Chromeの疑似クラス「:has()」がjQueryの「:has()」に悪影響を及ぼす問題が解決へ。Chromeは回避策実装、jQueryは新バージョンで対応 - Publickey
- Cloudflare、ヘッドレスブラウザ+Puppeteerがすぐ使える「Workers Browser Rendering API」発表 - Publickey
- qwik の発明、及びマイクロフロントエンドへの活用について - mizdra's blog
- Web フロントエンドにおけるコロケーション (co-location) という考え方について - mizdra's blog
- 最近書いた風変わりなテストコード 7 連発 - mizdra's blog
- UINavigationController - iPhoneアプリ開発の虎の巻
- GUIアプリのルーティング・ページ遷移 - ベインのブログ
- 近況 2022-09-30 - ベインのブログ
- 今週の MYOS - 借り初めのひみつきち
- JSレスBootstrapなdaisyUIの秘密 | フューチャー技術ブログ
- Forking Chrome to turn HTML into SVG - Fathy Boundjadj
- Evolution of the Scrollbar
- HTML-first, JavaScript last: the secret to web speed! - DEV Community 👩💻👨💻
GitHub
- WebKit/WebKit: Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.
- chromium/chromium: The official GitHub mirror of the Chromium source
- Chromium Code Search
- mozilla-central: Summary
- mozilla/gecko-dev: Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
- たか茶さんはTwitterを使っています: 「Web技術を使ったCommon LispのGUIフレームワーク「CLOG - The Common Lisp Omnificent GUI」 面白うそうだったからチュートリアルをちょっとだけ見てみた なんかもう色々とスゴい https://t.co/z3lsAbEdae https://t.co/duLw1CpitT」 / Twitter
- rabbibotton/clog: CLOG - The Common Lisp Omnificent GUI
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「キーボードでGUIのカーソル操作をすべてやる。ツール。Hint ModeとGrid Modeがグッとくるな。 / “GitHub - rvaiya/warpd: A modal keyboard-driven virtual pointer” https://t.co/nMW75mCWVc」 / Twitter
- rvaiya/warpd: A modal keyboard-driven virtual pointer
Zenn
- Seleniumと通信環境が悪い状態の試験
- クリエイティブコーディングの教科書
Twitter
@hatsugai
- hatsugai@PRINCIPIAさんはTwitterを使っています 「OCaml 用並行 GUI ツールキットを作った.各 UI 部品は自律したプロセスとして実現されていて,チャネルを経由して通信しあうことで協調し全体として UI を構成する.通信部分は ocaml-csp を使用.バックエンドは GTK+ または Direct 2D. https://t.co/l2oNniLM7K」 / Twitter
- hatsugai/Guedra: Concurrent GUI toolkit for OCaml
- hatsugai@PRINCIPIAさんはTwitterを使っています 「図面を作る基礎にできる汎用の Draw widget を作った.ドメイン特化図形言語を定義し描いた図面をデータ構造化して処理するというよくある用途向け.UI から処理まで OCaml で統一できる. 図形オブジェクトは関数で表現しており draw widget とは CPS で通信する. https://t.co/csJj3PC6s1」 / Twitter
- hatsugai/Guedra-draw: Draw widget for Guedra
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています: 「自作ツールで説明のアウトラインを描いた。 コマンドラインの時代は「ソフトウェア作法」のように自分でツールを使って実用するのはふつうだったけど、いつのまにかそういう機会は減っていた。最近はまた自作ツールにいる時間が増えていて楽しい。時々バグで修正モードに脱線するけど、それもまた楽し https://t.co/xHkoVOzd5Y」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています: 「図形オブジェクトは OCaml の O。UI 部品はプロセスとして実装されていて、並行合成してアプリケーションを構築。保存形式はもちろんS式。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています: 「関数オブジェクト + CPS で図形を表現したときよりもずっと楽になった。でも OCaml の O はまだまだわからないことが多い。ただ、pure functional に作れるので OCaml の O はすごいなと思った。図形に変化を指示すると、自身が副作用的に変化するのではなく変化後のオブジェクトを返す作り。」 / Twitter
- mizchiさんはTwitterを使っています 「ブラウザからローカルファイルを編集する機能と、DOMが自分自身の生成元へのリンクをもつ機能を組み合わせて、ブラウザ内で完結して自分自身のソースコードを書き換えるエディタがたぶん作れそう。バンドラまで同梱するかは悩み中。」 / Twitter
- なかのん&マジックさんのツイート: "Firefoxのマスターパスワードが未だにモーダルダイアログなのは最悪なUIだけど、これ、どうしようもないよなー。タブモーダルなもの作ってもWebサイトの作った偽物との見分けが完全につかなくなるし。"
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「未だにフォーカスが移動しちゃいけない時や、フォーカス移動がからむデバッグと、DnDのデバッグは面倒くさい。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「ウチラみたいにAndroidのLowMemoryKillerをどう回避するかみたいな話をしてる場合はいろんなこと意識してコード書かなきゃいけないし、サーバーサイドは楽だなと思うことが多々ある」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Electronって、まぁメモリ食いまくるとかいろいろ問題もあるけど、Windows GDIでどうやっても解決できなかったウィンドウのスケーリングの問題とかをビルトインの仕組みで解決できてるとか、プレゼン時に好きなズーム率を簡単に設定出来るとか、その辺は極めて優秀なんだよなぁ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「7GUIs - GUIフレームワーク (WinForms, Swing, React, Qtなど) の使いやすさを測定するため、以下の7種類のアプリを各GUIで実装して評価するという試み: - カウンタ - 温度変換 - フライト予約 - タイマー - CRUD (データ操作) - お絵かき - 表計算 https://t.co/A1kw2DWZBr」 / Twitter
- 7GUIs
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「よいエラーメッセージの書き方: 何が起きたのか、どこまではうまくいったのかを正確に述べ、ユーザに複数の解決策を提示せよ。メッセージは真摯な態度で、他人のせいにしない。また文章の中で専門用語を使わないこと。 https://t.co/gLVyTigMvI」 / Twitter
- When life gives you lemons, write better error messages | by Jenni Nadler | Sep, 2022 | Wix UX
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyを初めて見た人から、「沢山のボタンやチェックボックスがあって、何をして良いのか分からない」と言われた。 そうかも。慣れきっていると気づかない視点は大事だ。 一方で現状UIに慣れた人にも違和感少な目で、エレガントに解決するのは、なかなか難しい。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「久々にWZを見た、、、最初の頃使っていた。 ただ1プロセス・マルチスレッドのため、バグがあると他の編集中ファイルも巻き添えに全て死ぬので、1年くらいで利用中止したっけ、、、」 / Twitter
- 市川 真一さんはTwitterを使っています: 「マウスのドラッグや、オーバーラップウインドウなどは、PC 操作に不慣れな人にとっては好ましくない性質を持っているので、タイリングウインドウでドラッグ操作を禁止した GUI システムが良いのかもしれない」 / Twitter
- 市川 真一さんはTwitterを使っています: 「PC 操作が不慣れな人は、操作と操作した結果の意味を理解しているわけではない。PC 操作の基本的な知識も満たしていないことも多い。画面に表示されたメッセージを読んでいないことも。オーバーラップウインドウやドラッグ操作は、操作者にとって予期せぬ状態になる危険性が高い」 / Twitter
- mod_poppoさんはTwitterを使っています: 「ターミナルをファイラーとして使う話とかターミナルでcdした後無意識にlsしてしまう話とかを鑑みるに、ターミナルとファイラーが合体したアプリがあると便利なのではないか(思いつき)」 / Twitter
- エヌユルさんはTwitterを使っています 「Emacsのdiredほど強力なファイルマネージャを他のOSも含めて見たことがない WindowsでもMSYS2のEmacs立ち上げてdiredをなるべく使ってるぐらい trampでssh, android, dockerコンテナの内部を閲覧編集出来たり文字列置換でrename出来る むしろLinux以外が貧弱に思える Nautilusも普通に使えるけど」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「絵やグラフや動画を表示するためのグラフィックスは必要だが、ユーザインタフェースはボタンとかより補間付きのCUI+emacsバインディングの方が優れていると思う」 / Twitter
- usagimaru ⌘さんはTwitterを使っています 「知らなかった。macOSのCLI的裏技。オープンダイアログで/を入力すると検索モードになり、深い階層のディレクトリ探索が非常に楽に出来る。~でホームディレクトリに移動できる。キーボードで完結したい場合に便利。」 / Twitter
- Zach WaughさんはTwitterを使っています 「I just discovered you can hit / in any macOS save dialog to open a Spotlight-esque quick folder search and even use things like ~ to jump to your home folder. No clue when that was added, but a handy shortcut instead of manually navigating a deep folder hierarchy https://t.co/Qel3z6QeZa」 / Twitter
- usagimaru ⌘さんはTwitterを使っています 「Mac OS X 10.0から存在したらしいので、NeXTSTEP由来の可能性もある。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「昔はスクロール中はバーだけ動かしてたのが、やがてスクロール中に再描画求められるようになって、がんばって描画速度上げてたのが、今や120Hzでの(欠落部)再描画が求められる時代なのすごいなーと思うロートルです」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「120Hz の iPhone 13 Pro のぬるぬる画面に見慣れると、他のiPhoneの画面がガクガクしてて差を感じる。特にスワイプジェスチャーとかのインタラクション。」 / Twitter
- Naoki Hada 羽田直樹 🍵さんはTwitterを使っています 「@niw 高周波数のモニターに慣れると、戻れないですよね。」 / Twitter
- スケジュール管理・メモ帳・アイデア整理などを1つアプリにまとめてクラウド同期も完備した「Clover」レビュー - GIGAZINE
- 簡単な操作で作業の内容や作業時間の記録が出来る「TimeTagger」を使ってみた - GIGAZINE
- ブラウザなどのツール操作を簡単に自動化できるAI「ACT-1」が登場 - GIGAZINE
- 【Ubuntu日和】【第17回】Ubuntuでデジタル写真を上手に管理(そして、あなたの写真を少しだけよく)する方法 - PC Watch
- 第723回 複雑なコマンドパイプラインを簡単に組み立てる方法 | gihyo.jp
IDE
IDE
その他
- ネイティブコンパイルEmacsの登場 | 日々、とんは語る。
- 最初のアウトライナー
- Outliners & Programming
- Apple、macOS 12.3 Montereyでnanoをpicoエディタに置き換え。bashやemacs同様ライセンスの問題?
- JetBrains、新たなテキストエディター「Fleet」を開発 | TECH+
- 【山田祥平のRe:config.sys】クラウドワープロは、いったいいつまでページにこだわり続けるのか - PC Watch
- テキストエディタのはなし - Message Passing
- 「ああああ」はもう要らない Wordでダミー文章を生成するには「=○()」:デキるITビジネスパーソンの常識クイズ(1/2 ページ) - ITmedia NEWS
- software product line engineering - Google Scholar
- MJ文字情報検索システム | 独立行政法人 情報処理推進機構 - IPA
- 富豪的プログラミング
- 自分が使わないものを発表するな - 増井俊之
- 自分の成果物を自分で使え - 西尾泰和のScrapbox
- 設計に悩みすぎる前に手を動かしてみる話
- 開発イテレーション偏重 - 兼雑記
- 大規模ソースコードの読み方
- C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
- Sourcetrail を使った radare2 ソースコードリーディング - FFRIエンジニアブログ
- Source Trail : Solving programming and code problems for programmers
- shobotch.ethさんはTwitterを使っています: 「VSCode、全てがサードパーティのプラグインで提供されていて統一感が無いし動作するという保証も無いので、自己投資とかいってスクールに通うくらいならJetBrainsのAll ProductPackを買ってWebStormとかでTypeScriptとモダンフロントエンドのチュートリアルを一通りやるのが最善だと思うぞい」 / Twitter
- Build Your Own Text Editor
Visual Studio Code
その他
Remote
- Kazuho OkuさんはTwitterを使っています: 「EDITOR 環境変数を適切にセットして、EDITOR 起動時に ssh クライアント側の VSCode で編集することってできるんだろうか。vipw とか crontab だけのために若者に vi 教えたくない」 / Twitter
- fujiwaraさんはTwitterを使っています: 「@kazuho EDITOR='code --wait' crontab -e で編集できます」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fujiwara ssh でログインしてるサーバでその設定を使った場合、ssh クライアント側の VSCode で編集できるです???」 / Twitter
- fujiwaraさんはTwitterを使っています: 「@kazuho VSCodeでremoteのsshを開いた状態で、terminalからcodeを打つとできますよ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fujiwara すばらしすぎる!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!」 / Twitter
- 戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE
- ColabCodeを使って、Google Colabの上でVS Codeを使ってみよう:Visual Studio Codeで快適Pythonライフ(1/2 ページ) - @IT
- Takashi KawasakiさんはTwitterを使っています 「昨日、まさにどこかで話してた話で、今時、クラウドでAPI提供するならVSCodeの拡張は必要だよなぁとか言ってたらやっぱりこういう感じだよな。Stripeは別件でもないが見てただけなんだが。 https://t.co/Gk5QVMwvo9」 / Twitter
- Visual Studio Code をご利用の場合
- vscode settings - Clear file content cache in Visual Studio Code - Stack Overflow
- 「Visual Studio Code 1.63」が公開 | OSDN Magazine
- _ko1さんはTwitterを使っています: 「vscode で C-S-x (extension pane) とか C-S-e (explorer pane) とか C-S-d (debug pane) とか切り替えられることを今知った」 / Twitter
- 「Visual Studio Code 1.70」が公開 | OSDN Magazine
- 池田 泰延 / ICSさんはTwitterを使っています 「VSCodeのオススメ設定 https://t.co/DCJcKqjD0g」 / Twitter
- Toru MakabeさんはTwitterを使っています: 「VS Code Serverが来た。SSHなしでリモート接続できるようになるぞ。 / Visual Studio Code June 2022 https://t.co/huxXrnvHoo」 / Twitter
- Visual Studio Code June 2022
- Takashi KawasakiさんはTwitterを使っています 「VSCode上で各種ツールが動くとうれしい理由の一つは、Remote SSHで、XとかVNCとかそういうリモートデスクトップツールなしでsshだけで何も設定せずに動いちゃうのが便利すぎる。だからこそ、Electronベースで動いてるようなツールは、この際、VSCodeに拡張として移植してくれないかなぁと思うんだよ。」 / Twitter
- Tsukasa #01 (4x vaccinated)さんはTwitterを使っています: 「私にとって VSCode の使用で定着した理由は、単にプラグインが使えるだけでなく、機能呼び出しという概念をしっかり使えるからだ。 ――これは少なく見積もっても負け惜しみのように聞こえるから言おうか迷ってたけど、次ツイートで言ってしまおう。」 / Twitter
- Tsukasa #01 (4x vaccinated)さんはTwitterを使っています: 「総合的なリバースエンジニアリング向けのバイナリエディタを自分が試作しようとしていた時、多数になりうる機能をどう UX 的に扱うかというときに、やはりツールの手軽な検索を可能にするという形があって、今の VSCode はその時の理想と同じではないけどかなり近い。」 / Twitter
- ゆなすさんはTwitterを使っています: 「@a4lg F1で機能検索できるのありがたいわかる」 / Twitter
MS
- Visual Studio Code – コード エディター | Microsoft Azure
- Embedded Software Development in Visual Studio Code - C++ Team Blog
- Using GitHub Codespaces and Visual Studio Code for C++ Development - C++ Team Blog
- Devcontainerを利用した自動環境構築 | Japan Developer Support Core Team Blog
- Microsoft/vscode: Visual Studio Code
- Visual Studio Code - Code Editing. Redefined
- License - Visual Studio Code
- Visual Studio Code Frequently Asked Questions
- Documentation for Visual Studio Code
- Visual Studio Live Share
- Integrating Debuggers into Visual Studio Code
- Webview UI Toolkit for Visual Studio Code
VS_Code-Extensions
Publickey
- Visual Studio Code 1.35安定版リリース。リモート開発を可能にする「Remote Development」拡張機能が利用可能に - Publickey
- 「Docker for Visual Studio Code」が正式版に、Visual Studio Codeの拡張機能。WSL 2環境のDockerコンテナに対応 - Publickey
- VS Code内でブラウザ画面プレビューとDevTools表示、そのままコード編集もできるVS Code拡張「Microsoft Edge Tools for VS Code」正式版に - Publickey
- IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場 - Publickey
blog
- たったの3ステップでライブリロードが可能になるVisual Studio Codeの拡張機能「Live Server」がすごい! | フロントエンドBlog | ミツエーリンクス
- Visual Studio Code拡張機能「Polacode」でソースコードを手軽にキャプチャ | フロントエンドBlog | ミツエーリンクス
- Visual Studio Code 入門~オススメ設定と拡張機能編~ - 雀巽の日記帳
- Eclipse Open VSX: A Free Marketplace for VS Code Extensions | The Eclipse Foundation
- Visual Studio Codeの設定をバックアップして同期する Settings Sync - -ろぐれこーど-
- Rust IDE に化ける VSCode - OPTiM TECH BLOG
- 波形を書くときにJSONベースで書けるWaveDromがとても便利だった - FPGA開発日記
- TLA+ on VSCodeで再帰ロックアルゴリズムを検証してみた - 未完成な論を綴るブログ
- 「Visual Studio Code」で執筆するSF作家 藤井太洋氏が作る物書きのための拡張機能 - ログミーTech
- Markdownのリアルタイムプレビュー、見やすくしたくない? | ルイログ
窓の杜
- 「Visual Studio Code」で“Markdown”テーブルを扱う際は必携「Text Tables」【レビュー】 - 窓の杜
- Visual Studio Code向け「PowerShell」拡張機能がメジャー更新、「ISE」互換モードを搭載 - 窓の杜
- Microsoft、「Visual Studio Code」向け「Docker」拡張機能を正式リリース - 窓の杜
- C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース - 窓の杜
- 型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 - 窓の杜
- Microsoft、「Visual Studio Code」の新しい拡張機能「Jupyter」を発表 - 窓の杜
- Pythonの新しい言語サーバー「Pylance」がプレビューを卒業 ~「Visual Studio Code」でリッチな開発支援を実現 - 窓の杜
- 「Visual Studio Code」に「TensorBoard」を統合 ~Python拡張機能の2021年2月リリース - 窓の杜
- 「Visual Studio Code」の拡張機能「PowerShell」がセマンティックハイライトに対応 - 窓の杜
- GitHubリポジトリをVisual Studio Codeで「読む」のに便利な拡張機能が登場 - 窓の杜
- 「Visual Studio Code」上で直接“GitHub”のプルリクエストを作成可能に - 窓の杜
- 「Docker」Visual Studio Code拡張機能がComposeファイルの補完・ヘルプ・検証に対応 - 窓の杜
- Oracle、「MySQL Shell for VS Code」をプレビュー公開 - 窓の杜
- 「Visual Studio Code」に「Microsoft Edge」開発者機能を統合する拡張機能がv2.0.0に - 窓の杜
- ソースコードの断片をスタイリッシュな画像にするVisual Studio Code拡張機能【レビュー】 - 窓の杜
- ソースコードを画像でSNS共有するときに心がけたいこととは? - やじうまの杜 - 窓の杜
- 「Visual Studio Code」向けの「1Password」拡張機能が公開 - 窓の杜
- 「Python」のVS Code拡張機能が強化、チュートリアルでインストールまで支援 - 窓の杜
- Microsoft公式の「Visual Studio Code」向けリモート開発拡張機能、名前を変更へ - 窓の杜
- 拡張機能に署名して安全に提供 ~「Visual Studio Code」のマーケットプレイスで開始 - 窓の杜
infoQ
- Microsoft、Bridge to Kubernetesをリリース
- Red HatがVSCodeプラグインのJava言語サポート 1.0をリリース
Qiita
- VSCodeの拡張機能「GIST」が便利すぎてHackMDを使うのをやめた - Qiita
- VSCodeで俺々言語モードを作る - Qiita
- usm-takl/vscode-oreore-mode: a tiny sample of a programming language mode of VSCode
- VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。 - Qiita
- Python 3.7とVisual Studio Codeで型チェックが捗る内作Pythonアプリケーション開発環境の構築 - Qiita
- なぜ我々はいまだに文字列でコメントを書いているのか - Qiita
- Marp と Markdown Preview Enhanced の共存で詰まった話 - Qiita
- Bash シェルスクリプトのデバッグや入力補完ができる Visual Studio Code 拡張機能(WSL2,mac,Linux対応) - Qiita
Twitter
- ymmtさんはTwitterを使っています: 「VSCode の GitHub Pull Requests 拡張というのがあるんですが、大きな pull request のレビューに大変便利です。ブラウザと異なり、ファイルをひとつずつ差分確認できます。ファイルも全体が表示されるので差分周辺のコードも手間なく確認できます。控えめに言って神。 https://t.co/SY83r2XBK3」 / Twitter
- microsoft/vscode-pull-request-github: GitHub Pull Requests for Visual Studio Code
- Kohei SuenagaさんはTwitterを使っています 「Grammarly を VSCode から使うための extension が market place から消えていたのだが,どうも公式からのリクエストがあって unpublished 状態になっていたらしい. https://t.co/EbR3SD4v3V https://t.co/xsXLSrERiW から VSIX ファイルを使って入れられるそうな.」 / Twitter
- Release Version 0.12.2 · znck/grammarly
- 七誌さんはTwitterを使っています 「ionide-fsharp(VS Codeの拡張機能)でパイプラインの途中の型が表示されるようになったのに気付いた。これは便利! (コメントの形で挿入されているが、自動表示されたもので入力したコードではない) https://t.co/VSK6YZe5c1」 / Twitter
- 入谷 優さんはTwitterを使っています 「#vscode 拡張機能のどれかが悪さをしているときに、二分探索で原因を簡単に探すことができることを知りました。拡張機能が多いと助かります。 https://t.co/LdConjDU6D」 / Twitter
- Visual Studio Code extension bisect utility
- ぬるぽへさんはTwitterを使っています 「デバッガの起動をめちゃめちゃ簡単にするツールを公開しました!デバッグ対象をCLIから起動すると、Tmuxでガッとgdbが起動したり、VSCodeからlaunch.jsonなしでアタッチできたりします あと、debuggeeが起動したときに自動でデバッガが立ち上がるようにする機能もあって便利 https://t.co/m2U7VjVDVT https://t.co/k3uf3ZDR8L」 / Twitter
- nullpo-head/dbgee: The zero-configuration debuggee for debuggers. Handy utility that allows you to launch CLI debuggers and VSCode debuggers from the debuggee side.
- ぬるぽへさんはTwitterを使っています 「あ、これなんか公開までに何度か言及してたこれのやつですね https://t.co/RfgnNQeTbY」 / Twitter
- ぬるぽへさんはTwitterを使っています 「これめっちゃ便利じゃない?ゼロコンフィグでターミナルから普通に起動したプログラムをデバッガでデバッグできる 普通の開発フローと親和性が高くて、プログラム引数を頻繁に変えたり入出力をリダイレクトしても設定をいじったりする必要がない https://t.co/yNlP0vHbeQ」 / Twitter
- ぬるぽへさんはTwitterを使っています 「どっちかっていうとこっちだった https://t.co/k2XYLQuIr9」 / Twitter
- ぬるぽへさんはTwitterを使っています 「デバッガがいまいち誰もが使う選択肢になり切れてないのって、使うのが気軽じゃないからだと思うんですよね 例えば1. 引数渡しづらい 2. 何ならラッパースクリプトからバイナリが起動されるのでデバッガから起動できない 3. ビルドシステムが大きくてデバッグビルドがやりづらい とかはよくある」 / Twitter
- こりん@VRさんはTwitterを使っています 「Visual Studio CodeでUML書くのにPlantUML拡張使ってたんだけど、Markdown Preview Enhancedに替えたら図が自動で更新されるの便利すぎる」 / Twitter
- Markdown Preview Enhanced - Google 検索
- kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「VS Code では VSCoq っていう拡張機能入れたら Coq IDE みたいな機能が使えるようになるんだね より快適に証明が書けるようになった Alt+↑/↓で先の行に進んだり巻き戻したりできる https://t.co/bOndAg5dXJ」 / Twitter
- mizchiさんはTwitterを使っています 「.vscode/extensions.json の reccomendations にそのプロジェクトで入れてほしい extension 書いてコミットしてる」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「コミットで変更されたコードの内容から変更内容を平易な英文で表現してくれる自動ドキュメント生成のvscodeプラグイン。まじかよ。GitHub連携がありgit blameやpull request機能などもあるらしい。GitHub以外も対応予定 / “GitHub - watermelontools/wm-extension: 🍉 High…” https://t.co/rk75YOm6sm」 / Twitter
- watermelontools/wm-extension: 🍉 Highlight a piece of code to see its historical context. Receive helpful responses in plain English with our open-source tool.
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「現在もっとも広く使われているVSCodeの機能拡張はマルウェアの新たな攻撃領域になりつつある。VSCode機能拡張はサンドボックスされておらず、攻撃者はユーザと同じ権限を手にできる。例えばprettierとよく似た"pretier"の存在が知られている。Verifiedマークはほぼ無意味。 https://t.co/cUl2Yl0NG1」 / Twitter
- Can You Trust Your VSCode Extensions?
- Extensions for Visual Studio family of products | Visual Studio Marketplace
- Code Outline - Visual Studio Marketplace
- EditorConfig for VS Code - Visual Studio Marketplace
- PrintCode - Visual Studio Marketplace
- Settings Sync - Visual Studio Marketplace
- Sort lines - Visual Studio Marketplace
- Vim - Visual Studio Marketplace
- vscode-clangd - Visual Studio Marketplace
- Bracket Pair Colorizer - Visual Studio Marketplace
- hexdump for VSCode - Visual Studio Marketplace
- Windows Terminal Utility - Visual Studio Marketplace
- Announcing Support for Native Editing of Jupyter Notebooks in VS Code | Python
- Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
- VSCode rdbg Ruby Debugger - Visual Studio Marketplace
- C/C++ - Visual Studio Marketplace
- microsoft/pyright: Static type checker for Python
- Markdownでスクショ画像をペーストする(VS Code)
- Smart Selection搭載のVisual Studio Code用拡張機能「Python」 | TECH+
- Hex Editor - Visual Studio Marketplace
The icon font for Visual Studio Code
- matsuu序二段さんはTwitterを使っています: 「vscodeで使われているアイコンをフォントに変換するツール。変換後のttfファイルはdistディレクトリ配下にある。Nerd Fontsと違ってUnicodeのPrivate Use Areasに収まってるので﨑や髙をつぶすことはない。これをVim環境で使いたい / “GitHub - microsoft/vscode-codicons:…” https://t.co/EC1mcW7du3」 / Twitter
- microsoft/vscode-codicons: The icon font for Visual Studio Code
- matsuu序二段さんはTwitterを使っています: 「アイコンと文字コードの対応表はこのCSVで確認が可能。 https://t.co/DHGSDBn0vB」 / Twitter
- vscode-codicons/codicon.csv at main · microsoft/vscode-codicons
- matsuu序二段さんはTwitterを使っています: 「codiconsをカスタマイズするためのneovimプラグイン。READMEにcodiconsを既存フォントに合成する方法の記載あり。 https://t.co/enjiwm9YUn」 / Twitter
- mortepau/codicons.nvim: A plugin simplifying the task of working with VS Code codicons in Neovim
- matsuu序二段さんはTwitterを使っています: 「フォントを更新していくことを考えると自前でcodiconsを合成するのは避けたかったのでフォントのfallbackを活用できないかと調べてみたが、Windows Terminalはfallback未対応だった。ただ最近Issueに動きがあるので期待。 https://t.co/vXlncVF2Zi」 / Twitter
- Allow for the configuration of font fallback · Issue #2664 · microsoft/terminal
Terminal tabs
- Takashi KawasakiさんはTwitterを使っています 「どこにあるのかわからん。今日の段階ではまだ出てこない?? No "terminal tabs" on the command palette... How to enable it?」 / Twitter
- Daniel ImmsさんはTwitterを使っています 「Terminal tabs are available for testing in @code Insiders, we'd love to hear your feedback! Check out the screenshot put together by @sagebind which shows off the new feature 😍 https://t.co/Ipnn0mLRvY」 / Twitter
- Daniel ImmsさんはTwitterを使っています 「@espresso3389 If you're on insiders you can drag your tabs into the editor or right click them and select "Move to Editor Group" https://t.co/bamqqSJ9n5」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「ここまでなってくると、割とWindows Terminalも要らなくなってくる感じではある。まぁ、まだ細かな制限はあるだろうけど。 https://t.co/aMvoA0m67X」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Windows TerminalにはSetting Syncがないのが問題なんだよなぁ。VSCodeは設定はSyncされるから、こっちでカスタマイズをするといろんなところで使えてうれしい。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「VSCodeの良いところはVSCodeの開発者はVSCodeを間違いなく使ってるというところだよな。かゆいところがよくわかる。」 / Twitter
コマンドパレット
- なかのん&マジックさんのツイート: "おお、VScodeのCtrl+Pの存在に気付いてなかった。秀丸で欲しかったの、この機能。作業速度が体感で倍ぐらいになってる。… "
- リベラル.3goさんのツイート: "F1でも同じです… "
- なかのん&マジックさんのツイート: "F1だとコマンドの一覧出てきますね……… "
- リベラル.3goさんのツイート: "コマンドパレットは 何も入力がないとファイル一覧 >を最初に入れるとコマンド一覧 # を最初に入れるとシンボル一覧 になります。 F1は > が最初から入力された状態 Ctrl + pは何も入力がない状態 Ctrl + tは # が最初に入力された状態 で起動します 他にできることは ?を入力すると出ます… https://t.co/3NH66khMzH"
PC Watch
- 「Visual Studio Code」がインストール不要に。Webブラウザで動作 - PC Watch
- 【西川和久の不定期コラム】GitHub+Ubuntu+VS Codeの合わせ技!「GitHub Codespaces」で実現するクラウド開発環境 - PC Watch
窓の杜
histric
histric-1
- 「Visual Studio Code」が設定の同期に対応、Insider版でテスト中 - 窓の杜
- 「Visual Studio Code」の2020年1月更新が公開 ~リファクタリングリネームにプレビュー機能 - 窓の杜
- グローバル検索を追加、列モード選択でさらに使いやすく~「Visual Studio Code」の2020年2月更新 - 窓の杜
- 「Visual Studio Code」の2020年3月更新、ファイルの変更履歴を表示する“タイムライン”を追加 - 窓の杜
- シンタックスハイライトを最大で3倍高速化 ~「Visual Studio Code」の2020年4月更新 - 窓の杜
- 待望の設定同期機能が安定版に ~「Visual Studio Code」2020年7月更新 - 窓の杜
- 「Visual Studio Code」2020年8月更新、「Git」でのトラブルを防止する新オプションを追加 - 窓の杜
- 「Edge」の開発ツールを統合し「Visual Studio Code」でWebアプリの開発を完結 - 窓の杜
- 「Visual Studio Code」2020年10月更新、Python開発に必要な一式をセットアップする「Coding Pack for Python」も提供 - 窓の杜
- トラブルの原因となる拡張機能を素早く特定 ~「Visual Studio Code」の2020年11月更新 - 窓の杜
- 無償コードエディター「Visual Studio Code」の2021年1月更新、v1.53が正式リリース - 窓の杜
- GitHubのURLをちょろっと書き換えるだけでコードを「Visual Studio Code」で閲覧できる素敵なサービスが話題に - やじうまの杜 - 窓の杜
- Microsoft、「Visual Studio Code」v1.54を公開 ~Apple Silicon(M1)に対応 - 窓の杜
- Microsoft、「Visual Studio Code Installer for Java」をリリース - 窓の杜
- 無償コードエディター「Visual Studio Code」v1.55が公開 ~「Raspberry Pi OS」に正式対応 - 窓の杜
- 「Visual Studio Code」の4月更新 ~タブ切り替えのターミナルをプレビュー提供 - 窓の杜
- 「Visual Studio Code」に不審なリポジトリを安全に扱える「制限モード」 - 窓の杜
- ターミナルをエディター領域へ作成・移動 ~「Visual Studio Code」2021年6月更新 - 窓の杜
- 「Visual Studio Code」に内蔵サーバーでWebアプリをプレビューできる拡張機能が登場 - 窓の杜
- 貼り付けたコードの言語をAIが自動で推測 ~「Visual Studio Code」の2021年8月更新 - 窓の杜
- 「Visual Studio Code」2021年9月更新、エディターの細かい使い勝手向上に注力 - 窓の杜
- Webブラウザーで「Visual Studio Code」が完全動作 ~「vscode.dev」にアクセスするだけ - 窓の杜
- 「Visual Studio Code」に「Trojan Source」攻撃への対策が導入 ~2021年10月更新 - 窓の杜
- 「Visual Studio Code」2021年11月更新でテーマカラーをインストールせずに体験可能に - 窓の杜
- 「Visual Studio 2019」「Visual Studio Code」がWindows 11のストアアプリから入手可能に - 窓の杜
- 「Visual Studio Code」に新しいサイドパネル、レイアウトの柔軟性が飛躍的に向上 - 窓の杜
- Web版「Visual Studio Code」がオフライン動作に対応 ~PWAとしてインストール可能に - 窓の杜
- 戻る・進む処理を一から作り直した「Visual Studio Code」2022年2月更新(v1.65) - 窓の杜
- 編集履歴をたどれるようになった「Visual Studio Code」2022年3月更新(v1.66) - 窓の杜
- 「Atom」を開発終了に追いやった「Visual Studio Code」、月例更新でさらに強力に - 窓の杜
- 「VS Code Server」が登場 ~VS Codeのバックエンドを単体CLIに、フロントエンドにはWeb版が使える - 窓の杜
- 「Visual Studio Code」2022年7月更新 ~カスタムタイトルバーなどのUIを改善 - 窓の杜
- 「Visual Studio Code」のMarkdown機能が言語サーバーに ~他のエディター、ツールでの活用に道筋 - 窓の杜
- 「FFmpeg」ライブラリを同梱した「Visual Studio Code」2022年8月更新 - 窓の杜
- 「Visual Studio Code」v1.72が正式公開 ~ターミナルでのタイプミスもこっそり手直し - 窓の杜
- マージエディターやMarkdown対応を強化 ~「Visual Studio Code」v1.73が正式公開 - 窓の杜
- 「Visual Studio Code」v1.74はUI・開発・デバッグなど随所で使いやすさを改善 - 窓の杜
- 「Visual Studio Code」でのリモート開発が手軽に ~リモートトンネル機能が提供開始 - 窓の杜
マイナビニュース
- Webブラウザで開発できる、インストール不要のWeb版VSCode登場 | TECH+
- Microsoft、Visual Studio Code October 2021(バージョン1.62)リリース | TECH+
- Visual Studio Code November 2021(バージョン1.63)リリース、Microsoft | TECH+
- Microsoft、Visual Studio Code January 2022(バージョン1.64)リリース | TECH+
blog
- vscodeで重複行の削除 - 誰にも見えないブログ
- パイプを使って標準出力をvscodeのウインドウに表示する - 誰にも見えないブログ
- ほにゃさんはTwitterを使っています 「vscode, gnuplotが見れるのか https://t.co/jT52ja9c60」 / Twitter
- ドッグさんはTwitterを使っています 「VS Code 内でデータを可視化してデバッグできる VSCode Debug Visualizer 便利そう | 'Visualize Data Structures in VSCode' https://t.co/ji7DCFPJyD」 / Twitter
- AddyOsmani.com - Visualize Data Structures in VSCode
- 「Visual Studio Code」2020年3月版の新機能、時系列でファイルへの操作履歴「タイムラインビュー」、PC間で設定の同期、Undo/Redoがファイル再開後も有効など - Publickey
- Visual Studio Codeが正式にRaspberry Piに対応。Notebook内のMarkdownレンダリングを強化、絵文字やKaTexによる複雑な数式など拡張可能に - Publickey
- VS Code Remote - Containers を Docker Compose で使うのだー! - Mitsuyuki.Shiiba
- VSCode Remote Containerで複数コンテナに接続する │ wonwon eater
- Visual Studio Codeの設定ファイルを共有してチーム開発をより快適にする | フロントエンドBlog | ミツエーリンクス
- EmacsユーザがVSCode だけで開発するようになって1ヶ月が経った - type t (* void *)
- UMLの爆速プレビュー環境をVisual Studio Code + PlantUML Server on Dockerで簡単に構築する | DevelopersIO
- Visual Studio Code C++ December 2021 Update: clang-tidy - C++ Team Blog
- 【VS Code】マークダウンに画像をコピペで貼り付けする方法 | Inno-Tech-Life
- Visual Studio CodeがMarkdownのサポートを強化。ファイルのドロップでリンクを自動作成、見出しへの参照一覧など。Visual Studio Code 1.67(April 2022) - Publickey
- python 最強エディター決定 vscode なぜなら jupyter notebookが内蔵されたから!! | (=^・^=) 猫にビットコイン
- [速報]マイクロソフト、Webブラウザで動作する「Visual Studio Online」発表。VSCodeベース、IntelliCode、Live Share、拡張機能にも対応。Microsoft Build 2019 - Publickey
- 「IntelliCode」がさらに進化し、行全体を候補として提案。まるでAIとペアプロしているように - Publickey
- Webブラウザ版VSCode、WebAssembly版PythonによるWeb上でのPythonコードの実行やデバッグが可能に - Publickey
- VSCode Serverがまじで簡単かつ便利すぎるので使う。 - Nishiki-Hub
infoQ
- Visual Studio CodeがJava IDEの能力を強化
- GitpodがOpenVSCodeサーバプロジェクトを発表し、開発者がアップストリームVSコードを実行可能に
- Microsoftがブラウザで動作するVisual Studio CodeのVSCode.Devをローンチ
Zenn
- 超融合!時空を越えた絆 Neo Vim(VSCode)を試してみた
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「docker desktop for win+vscode + devcontainerをどうにかしようとしたがどうにもならない(bind mountで失敗)するのでx11経由でnative vscode + devcontainerにしたらあっさり動いた。初めからそうすればよかったのか…」 / Twitter
- VSCode devcontainerでローカルを汚さずに、快適なGo言語の開発環境を整える
- Dev Container が VSCode から CLI にもやって来た
Qiita
- Visual Studio Code チートシート - Qiita
- VS Code の便利なショートカットキー - Qiita
- 【Visual Studio Code】 日本語のメニュー画面で使う方法 - Qiita
- VSCode devcontainerを使って面倒な開発環境を作る - Qiita
- VSCode Remote Containerが良い - Qiita
- VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】 - Qiita
- Anaconda Python/R Distribution - Anaconda
- てらモス🈚さんはTwitterを使っています: 「個人的にはvscodeは肝心なところがプロプラになっててOSS版のcode(固有名詞)で動かないものがわりと多い(Remote containerとか)ところが気に入らない(´・ω・`)」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「あれはDocker Desktopとかと同じで、OSSになっているコア部分とプロプライエタリな部分を合わせたプロプライエタリなソフトウェアだから(´・ω・`)」 / Twitter
Monaco
- Google、VSCodeの代替を狙う「Eclipse Theia」コードエディタをクラウド統合開発環境として採用。Google Cloud Shellに統合を発表 - Publickey
- Makoto Kato ︎︎さんはTwitterを使っています 「cloud shell editorはTheia使ってるってことはエディタ部分はmonacoってことだよな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GitHub CodespaceもGoogle Cloud Shell Editorもmonaco使ってるし、Geckoの自動テストにmonaco入れたほうがいいのかなぁ。https://t.co/TS7F0hjf9C が修正されたんで、致命的な問題はなくなったように見える (GeckoView除く)」 / Twitter
- Fix composition logic for Firefox by belcherj · Pull Request #106873 · microsoft/vscode
- Makoto Kato ︎︎さんはTwitterを使っています 「Eclipse TheiaってもともとTypeFoxが作ったエディタで、中身はVSCodeのエディタエンジン、Manacoを使ったものだけど、みんな分かってないのが笑えるというか、OSSとか発表されたらまずコード見るでしょ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「s/Manaco/Monaco/」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「いろんなものがMonacoによって駆逐されてしまうのかなぁ...」 / Twitter
- Makoto Kato ︎︎さんのツイート: "Visual Studio Codeだって、そもそもVisual Studio Onlineのために作ったmonacoをElectronアプリにしてってところからなんだし、そもそも先祖返りしただけではと"
- Makoto Kato ︎︎さんのツイート: "今まで存在したVisual Studio Onlineがなかったことになった件について"
- Makoto Kato ︎︎さんのツイート: "Visual Studio OnlineはAzure DevOpsに名前変わって、Visual Studio Onlineが新たに発表されたのはわずらわしいので、アップルみたく"新しいVisual Studio Online"って名前だったらな"
- Makoto Kato ︎︎さんはTwitterを使っています 「Monaco (VSCode)のビルド、LinuxよりもWindowsの方が簡単にビルドできるの、さすがMicrosoft感する。(Windows Termianlみたくrazzleコマンドでビルド環境設定できたらよりMicrosoft感)」 / Twitter
Piece table
- Piece table - Wikipedia
- Piece Table 【アドベントカレンダー2018 25日目】 | 東京工業大学デジタル創作同好会traP
- テキストエディタで使われがちなデータ構造 Piece Table の概要と実装 - A Memorandum
- piece-table · PyPI
- veler/Csharp-Piece-Table-Implementation: A Piece Table data structure implementation in C#
- https://darrenburns.net/posts/piece-table/
- Text Buffer Reimplementation, a Visual Studio Code Story
- テキストエディタ用バッファの各種データ構造とその評価 (2)
内部構造
- なかのん&マジックさんのツイート: "とりあえず、ブラウザのエディタの何がしんどいって、undo/redoの前に、ユーザーの編集以外に、JSでDOMツリーを変更されてる可能性があるわけだ。基準をどうするのか考えないと、変なところに要素を作ったり、移動したりすることになる。"
- なかのん&マジックさんのツイート: "Twitterのツイート欄にWebページの内容を貼り付けると、一瞬だけスタイルそのままのリッチテキストが表示されて、すぐにプレーンテキストになるでしょ。ああいう感じで、機能制限やブラウザ感の差異吸収のために、結構、JSでエディタの内容っていじられるのよね。"
- なかのん&マジックさんのツイート: "そーいや、生のDOMをガリガリ使えるWeb開発者さんは、Geckoのエディタのコードを見ると(汚くてしんどいけど)面白いと思う。やってることは、C++でDOMツリーをDOMイベントドリブンで修正してるだけやから。 https://t.co/9IjIAH2jYm"
- なかのん&マジックさんのツイート: "ちなみに、Geckoのテキストエディタも、HTMLエディタの機能削減版なだけだったりする。<textarea><div>value</div></textarea>みたいな感じ。"
- なかのん&マジックさんのツイート: "DOMツリーの変更とSelectionの変更は全て、EditorBaseのラッパメソッド(新設)を通すようにして、Selectionの変更メソッドは新しい範囲をキャッシュするだけにする。DOMツリーの変更ラッパメソッドはSelectionのキャッシュを実際にSelectionに行う、って形だとかなり改善できるかとは思うけど、つらい。"
- なかのん&マジックさんのツイート: "エディタ周りのセキュリティリスクをどうにかうまくコントロールできないもんかなぁ。今、ぼんやりと考えてる設計は、DOMツリーに修正加えながら色々とやるんじゃなくて、何を削除して、何を追加するのかを先に全部計算して用意しておき、一気に変更する時だけひたすら慎重にやるって形。"
- なかのん&マジックさんのツイート: "例えば、foo(Element* bar)みたいな形のAPIが、barがnon-nullな要素だったらその要素基準で処理が行われて、null (undefined)だったら現在のSelectionの情報から勝手に探すよ、みたいなの多すぎ。バグでnullが渡された場合、呼び出し元のデバッグが困難になるからやったらあかん。"
- なかのん&マジックさんのツイート: "使い勝手のためにそうしたいのなら、別のAPIでSelectionからそのElementを返すようなものを用意すれば良いし、その形なら、後で他の動作も選択肢に入れやすくなるし、何より呼び出し側のコードが明示的になって綺麗になる。"
- なかのん&マジックさんのツイート: "エディタでは、しばらくやれないけど、重大なバグがあって、Enterキーとかでパラグラフが分割されるとき、Geckoだけ後方にある要素が既存の要素になってて、他のブラウザは前方にある方が既存の要素になる。このせいで、undo/redoにちょっと無理あるし、どうにかしないと。"
- なかのん&マジックさんのツイート: "BlinkはBlinkでundo/redoが直感からズレるケースがあるの見つけてるけど、まあ、そんなことやるWebアプリは無いやろなっていうレベル。Blinkはどうも、新しい要素をその次にある要素と紐付けて保存してるらしい。"
- テキストエディタを作る – GitHub 出張所 – プログラム関係のブログはここに
- 技術文書
- What I learnt from coding a text editor in C
- Goで作るテキストエディタ - Sansan Builders Blog
- ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
- コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた - mizdev
高速化
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ガッツリとした高速化は他の方々が先に入れてくれて、その後、ひたすら細かい最適化を3年間入れ続けてきたけど、その中でも効果があったのは、 1. virtual callを極力減らす 2. エディタが必要なオブジェクトはpublicメソッドが呼ばれた時に一度だけrefcount増やして保証する」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「3. 再生成するインスタンスは極力再利用する 4. 変更されない文字列はヒープに確保してnsString間でコピーが発生しないようにする(nsAutoStringは必ずコピーが発生するので遅い)」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「1はXULアドオンの廃止が無ければできなかった。他はとにかくメモリをいじるなって所につきる感じ。4はnsAutoStringの設計が悪いように思えるのでそのうちに見てみる。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ちょっと見てみたけど、4は半分間違いみたい。コピー元がrefcountableな文字列ならコピーを行わないようになってた。ただ、inlineのバッファで文字列を持ってる状態でnsStringに渡すとコピーが発生するのでホットパスでのnsAutoStringは気をつけないとダメっぽい。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox ビルドオプションの話はbug 1591725。旧モバイルチームがいた時はいろんな事情もあってパッケージサイズの制限があったけど (だからビルドオプション違う)、もはやその話は関係ないので」 / Twitter
改行コード
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「最近まで notepad で \n改行なファイルを開くと改行表示されない罠があった気がする。 (昔は UNIX は \n、Mac は \r、Windows は \r\n と覚えてたっけ。printer制御的には \r\n が論理的だった気がする)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「汎用エディタとしてのVim, Ruby/Go用としてのJetBrains, Rust/TypeScript用としてのVSCodeを併用してるんだけど、3者ともに末尾改行の扱いが違うのでたまにミスる」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Vim: 最終行が末尾改行を含む JetBrains: 最終行が末尾改行を含まないが、最終空行には移動できない (IdeaVimの場合?) VSCode: 最終行が末尾改行を含まない」 / Twitter
Tociyuki::Diary
- Emacs 風のキー入力部 - Tociyuki::Diary
- Emacs 風テキスト・エディタ向けの端末キー入力手順 - Tociyuki::Diary
- Emacs 風のキー入力部 (2) 単独 ESC 文字の受け入れ - Tociyuki::Diary
- 行の折り返し表示 その 1 - Layout クラス - Tociyuki::Diary
- 行の折り返し表示 その 2 - Line を求める - Tociyuki::Diary
- 行の折り返し表示 その 3 - キャッシュ - Tociyuki::Diary
- テキスト・エディタの Undo - Tociyuki::Diary
- テキスト・エディタのカーソル移動 - Tociyuki::Diary
- テキスト・エディタのエコー領域 - Tociyuki::Diary
- テキスト・エディタの文字列補完 - Tociyuki::Diary
- テキスト・エディタの上下タイリング・ウィンドウ - Tociyuki::Diary
- テキスト・エディタのウィンドウ - Tociyuki::Diary
- テキスト・エディタのミニバッファ - Tociyuki::Diary
- テキスト・エディタのインクリメンタル・サーチ - Tociyuki::Diary
- テキスト・エディタのマルチ・バッファ - Tociyuki::Diary
- テキスト・エディタの行の折り返し表示 その 4 - キャッシュ更新の改善 - Tociyuki::Diary
- テキスト・エディタの interactive 引数指定の正規表現 - Tociyuki::Diary
Vim
- monaqaさんはTwitterを使っています 「コーディングのとき、一旦別の場所に飛んでコード片をコピーしてから、元いた場所にすぐ戻ってペーストする…そんな場面、よくありますよね。Vimなら g; と押すだけで"直前に編集した場所"にジャンプできます。g;/g,は"チェンジリスト"に登録された箇所を行き来できる便利コマンドです。 #vimtips_ac」 / Twitter
- 10/27,28はOSC Tokyoさんのツイート: "個人的によく使う、少しadvancedなvimコマンド3選 ・カッコの中を消す: di( ・複数行をコメントアウト: C-vで行頭を選択しI// ・空行単位の移動: {、}"
- まちカドおるみんさんはTwitterを使っています 「Vim 使いだけど基本的に ESC じゃなくて C-[ 使うから実は ESC あんま要らない」 / Twitter
- mattnさんはTwitterを使っています 「Windows の Vim を使う時に ^X^F でパスを補完すると shellslash オプションに影響して \ でセパレータが補完されるのだけど、shellslash を設定すると今度は色んな動作がアレになる可能性があって、致し方なく毎回 \ を / に書き換えてる皆さん、completeslash というオプションがあってですね...」 / Twitter
- mattnさんはTwitterを使っています 「これソースでパスを補完する時に \ にするか / にするかを決定する専用のフラグでして set completeslash=slash にしておくと HTML のソース等を書く際には便利です。」 / Twitter
- ゴリサンタですさんはTwitterを使っています 「クリップボードをレジスタと連携している場合、insert mode時にクリップボードの中身をCTR-R_* または CTRL-R_+でペーストできます #vimtips_ac」 / Twitter
- uint256_tさんはTwitterを使っています: 「遠くのサーバ(アメリカのAWSなど)でvimを使っているとラグが気になることがあるのですが、何かいい方法があるのでしょうか」 / Twitter
- チズチズさんはTwitterを使っています: 「@uint256_t SSH先でvimが重くなったとき、relativenumber を offにしたらキビキビ動いた経験があります! 参考になるかわかりませんが!」 / Twitter
- mattnさんはTwitterを使っています: 「Vim から設定できるオプションは2つ。 lazyredraw: キーボード操作以外の再描画を遅らせる nottyfast: 一部の端末では ttyfast になり多くの情報が送信されるので遅い端末だと nottyfast にすると良い その他、画面更新される情報を減らすのに showcmd と ruler をオフるのもアリ。」 / Twitter
- mattnさんはTwitterを使っています: 「ただ lightline の様なプラグインを使うと画面更新量が多くなる(これはしかたない)ので、プラグインを外すものアリ。」 / Twitter
- 15年目のVim | POSTD
- The Traditional Vi
- まちカドおるみん(妹)さんはTwitterを使っています: 「@mattn_jp @shinydaydreams 餘談ですがオリジナルの Unix や BSD のコードはライセンス問題にあらかた目処がついて OSS 化したのを契機に、逆に本物の vi がインストールされてる環境もあったり。ArchLinux の vi パッケージとかはそうで、本物の vi に Linux 対応や UTF-8 対応を追加したやつが入ってきます。」 / Twitter
- 世界のプログラミング言語(37) 達人に愛され30年周年Vimを支えたVimScript | TECH+
- vi.1
- 全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE
- ed(1) is Turing-Complete – *nix Windows
- Vim で折り返し行を簡単に移動できるサブモード・テクニック
- 「Vim」がスクリプト言語を一新 ~約6年ぶりのメジャーバージョンアップv9.0が公開 - 窓の杜
- [vim問題]ランタイムパスを調べるコマンドは? | Vim入門
- 「この世界の片隅に」はいいぞさんのツイート: "Nのnviにimctrl, imkeyオプションを実装しました。Tera Term / RLoginのエスケープシーケンスを使って、input methodを自動的にオン・オフできます。nvi-m17nのcannactrl, fepkeyオプションと同じように動きます。… https://t.co/GGHXnWQ2Ab"
- 本の虫: なぜedはクソなのか
- Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
- matsuu(シン・ウー馬場ーイー2)さんはTwitterを使っています: 「ほう初めて知った。incremental-searchの場合は画面中央に出ると見えない問題が発生しそうだが、それ以外はよさそう。試してみるか / “Neovimのコマンドラインや通知がリッチになるnoice.nvim使ってみた | DevelopersIO” https://t.co/a0jSxBqWlR」 / Twitter
- Neovimのコマンドラインや通知がリッチになるnoice.nvim使ってみた | DevelopersIO
- Vimで選択した文字列を利用して検索する - Panda Noir
- プラグインなしでVimを使うテクニック
nano
- nanoバージョン6.0がリリース | TECH+
- GNU nano バージョン6.1がリリース | TECH+
- 2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
mc
- Kazuho OkuさんはTwitterを使っています 「Viとかnanoみたいなキーバインディングは調べて覚えろ的なスパルタじゃなくて、コンソールで使える軽量の、メニューがついてるエディタってないのかな。軽量の!!!!だからね。EmacsはNGワードだからね!!!」 / Twitter
- Chul-Woong YangさんはTwitterを使っています: 「@kazuho $ mc -e [filename]はどうですか?(mcは midnight commanderです)。コロナウィルスに気をつけてください。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「この件 @cwyang さんに教えてもらった mc をモノクロモードで使ってるけど、キーバインド覚えなくても使えていい感じ https://t.co/n6hWy8oNFO https://t.co/5w4DnpSnrS」 / Twitter
Atom
Atom-Packages
- Atom
- Packages
- auto-encoding
- clipboard-plus
- document-outline
- editorconfig
- ex-mode
- highlight-line
- japanese-menu
- japan-util
linter
- linter
- AtomLinter
- linter-textlint
- linter-ui-default
- intentions
- busy-signal
- print-atom
- project-manager
- show-ideographic-space
- simple-drag-drop-text
- sort-lines
- sublime-style-column-selection
- vim-mode-clipboard-plus
- vim-mode-plus
窓の杜
- テキストエディター「Atom」v1.10.0、パッケージマネージャーやシェル統合を強化 - 窓の杜
- ベンチマーク機能を搭載、オープンソースのテキストエディター「Atom」v1.13.0 - 窓の杜
- 64bit版インストーラーだけじゃない! 次期「Atom」にはWindows向けの改善が多数 - 窓の杜
- “ドック”をサポートした「Atom」v1.17.0、次期バージョンでは「GitHub」を統合 - 窓の杜
- 「Git」と“GitHub”を統合した「Atom」v1.18が正式版に ~GitHub製の無償エディター - 窓の杜
- GitHub、無償コードエディター「Atom」v1.19を正式公開 - 窓の杜
- GitHub、「Atom」v1.21を正式リリース。“Language Server”プロトコルをサポート - 窓の杜
- フリーのコードエディター「Atom 1.22」、パフォーマンスと使い勝手をさせる - 窓の杜
- GitHub、「Atom 1.28」を正式公開 ~プロジェクト内検索の結果ビューを刷新 - 窓の杜
- 無償コードエディター「Atom 1.29」が正式公開 ~新しい構文解析の導入が最終段階に - 窓の杜
- GitHub、フリーのコードエディター「Atom 1.44」をリリース - 窓の杜
- GitHub、フリーのコードエディター「Atom 1.47」を公開 - 窓の杜
- GitHub製コードエディター「Atom」の最終版が公開 ~8年間の開発に終止符 - 窓の杜
- 今度こそ最終版? 「Atom 1.63.1」が公開 - 窓の杜
OSDN
- GitHubがChromiumベースのテキストエディタ「ATOM」を発表 | OSDN Magazine
- 米GitHub、テキストエディタ「Atom」をオープンソース化 | OSDN Magazine
- 米Facebook、「Atom」エディタにリモート開発機能などを追加するパッケージ「Nuclide」を発表 | OSDN Magazine
- 米GitHub発のテキストエディタ「Atom 1.0」リリース | OSDN Magazine
- 操作性にフォーカスしたテキストエディタ「Atom 1.7」が公開 | OSDN Magazine
- 性能と安定性を強化した「Atom 1.11」がリリース | OSDN Magazine
- 「Atom 1.12」が公開 | OSDN Magazine
- テキストエディタ「Atom 1.13」が公開、ベンチマーク機能を導入 | OSDN Magazine
- 「Atom 1.15」が公開、操作性を改善 | OSDN Magazine
- オープンソースのテキストエディタ「Atom 1.16」リリース | OSDN Magazine
- 性能を強化した「Atom 1.19」リリース | OSDN Magazine
Qiita
- ATOM Editor をそろそろ始めようか - Qiita
- ATOM(windows版)と拡張子の関連付け - Qiita
- Atomエディタで行末の空行を自動削除する設定を無効化する - Qiita
- Atom Editorでインストールしているおすすめパッケージ一覧 - Qiita
- 【Atom Editor】マウス操作不要!キーボードだけで矩形選択をする方法 - Qiita
- GitHub for Atom の機能とできること、できないこと - Qiita
- Atomの設定・パッケージを複数端末で共有したいメモ - Qiita
- ATOMエディタにインストールしているパッケージ 2017 - Qiita
- Account
- atom/atom: The hackable text editor
- atom/atom-languageclient: Language Server Protocol support for Atom
- Atom (テキストエディタ) - Wikipedia
- Atom のススメ
- Atom をちゃんと始める。 - Corredor
- Atom(GitHub製エディタ)に乗り換えて最初にやっておきたいこと | maesblog
- Atomの便利なパッケージ管理方法 – GitHubやスターを利用して他の開発環境でも使えるようにしておく | maesblog
- 職業別!ATOMエディタの作業が超捗る便利パッケージ24選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
- 確実に参考になる!Atomひと通りの使い方(Windows・Mac編) | コムテブログ
- Atom で Git を利用するのに便利なプラグイン | Lonely Mobiler
- atomをつかってみる - ynishimura blog
- ベターVimとしてAtomを使う - Kesin's diary
- ATOM vim-mode-plusのESCで、autocomplete-plusのポップアップのみ閉じる方法 | mzgkworks.com
- Atomでインデント設定に困ったらEditorConfigを使用する | webic
- Atomのおすすめパッケージ61個 - はてな村定点観測所
Zed
- ドッグさんはTwitterを使っています 「GitHub の Atom チームが Rust で再実装してるテキストエディタ,Zed っていう名前になったのか(試作時は Xray だったはず).early access 希望者募集中 | 'Introducing Zed — A lightning-fast, collaborative code editor written in Rust.' https://t.co/22rj3e0U4i」 / Twitter
- Zed
- ドッグさんはTwitterを使っています 「コードを通じたコミュニケーションを推してて,他人との同時編集機能を組み込みで実装してる.実装には CRDT (https://t.co/p9KPWRXkZi) を利用」 / Twitter
- Conflict-free replicated data type - Wikipedia
- ドッグさんはTwitterを使っています 「高い描画パフォーマンスを出すために,GPUI という UI 描画フレームワークを時前実装してる.Mozilla の WebRender を参考にしてるらしい.(Xray では UI は Electron でコアを Rust で間を Node.js の native API でつなぐ感じだった)」 / Twitter
- 「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜
rnote
- n.takanaさんはTwitterを使っています: 「Rustで書かれているモダンなsomethingを見ると無条件で最高〜〜〜!って言ってしまう https://t.co/X5QJyOxwrC」 / Twitter
- flxzt/rnote: Sketch and take handwritten notes.
- n.takanaさんはTwitterを使っています: 「実際これかなり良いしこれでノート取ろうかな」 / Twitter
- n.takanaさんはTwitterを使っています: 「手書き→紙を読み返す気にならない タブレット→ペンを使えるいい感じのタブレットを探すのが大変 ノートPC+ペンタブ→携帯性が良いしキーボードと同時に使えるがいい感じのソフトウェアが無い 2in1→arch+i3wmとの相性が悪そう という状況だったが,rnoteがあるならいい感じにペンタブで運用できそう」 / Twitter
Publickey
- 軽量なコードエディタ「JetBrains Fleet」パブリックプレビュー開始。バックエンドをリモートマシンに分離可能 - Publickey
- Google、オープンソースのモジュール依存関係を分かりやすくグラフ化してくれる「Open Source Insights Project」公開 - Publickey
- JetBrainsが軽量なコードエディタ「Fleet」発表。エディタとバックエンドの分散処理、多言語対応、共同作業対応など - Publickey
- [速報]AWS上で開発環境一式、フレームワーク、初期コード、IDE、ビルド環境、CI/CDなど提供する「Amazon CodeCatalyst」発表。AWS re:Invent 2022 - Publickey
- [速報]AWS、サーバレスアプリのビジュアル開発ツール「Application Composer」発表。AWS re:Invent 2022 - Publickey
GIGAZINE
- Wiki風にメモを作成可能な無料テキストエディタ「Zim」 - GIGAZINE
- TwitterがiOSアプリ向けに新しいオープンソースのテキストエディタAPI「Twitter Text Editor」を発表 - GIGAZINE
- 「記事中の誤字を教えてくれるエディタ」をイギリスの新聞社が開発 - GIGAZINE
- 「目新しい技術」を避け「退屈な技術」をソフトウェア開発で採用すべき理由とは? - GIGAZINE
窓の杜
- 「Android Studio Bumblebee」が正式リリース ~Androidアプリ開発環境の最新版 - 窓の杜
- 人気の開発環境「IntelliJ」が完全日本語化 ~同梱プラグインまでローカライズ - 窓の杜
- 「Arduino IDE 2.0」が公開 ~マイコンボード「Arduino」の開発環境 - 窓の杜
- 「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜
- iOS版「Twitter」アプリのテキスト編集コントロールがオープンソース化、“GitHub”で公開 - やじうまの杜 - 窓の杜
- 「Skype」のメッセージからタスクを生成、“Microsoft To-Do”へ直接登録可能に - 窓の杜
- 「Atom」の開発者が究極のコードエディターを目指す ~「Zed」の開発が始動 - やじうまの杜 - 窓の杜 (1)
- 今回の「Android Studio」は「電気ウナギ」 ~設計、ビルド&依存関係、エミュレーターを強化 - 窓の杜
infoQ
- Google Registry APIを使用したAPI情報の整理
- コードを読む上での課題とその対処方法
- Xcode 13でチームコラボレーションとソース編集機能が拡張
- Microsoftが開発者向けクラウドベースIDEの「Dev Box」サービスを発表
- 開発者エクスペリエンスの向上したApache NetBeans 13
- JetBrains IntelliJ IDEA 2022.1が依存関係分析を導入
- Android Studio Chipmunkによりアニメーションプレビュー、CPUプロファイラなどを提供
- Eclipse IDE 2021-09がJava 17をサポート
- アーキテクチャダイアグラム作成ツールを使うことでGoogle Cloudソリューションアーキテクチャの設計が容易に
- Jetpack Compose 1.1でパフォーマンスと視覚的な一貫性が向上
- Google Jetpack Composeが1.0に到達、JetBrainsはCompose Multiplatformのアルファ版をローンチ
- Google Jetpack、アーキテクチャとUIコンポーネントの更新とパフォーマンスツールの改良を実現
- JetBrains Compose Multiplatformがベータ版へ
OSDN
- オープンソースのIDE「Apache NetBeans 13」が公開 | OSDN Magazine
- 「Apache NetBeans 13」が公開 | OSDN Magazine
- 「IntelliJ IDEA 2022.1」が公開 | OSDN Magazine
- JetBrainsが各種IDEにリモート開発を導入、次世代IDE「Fleet」も発表 | OSDN Magazine
- 「CKEditor 5 v16」リリース、コードブロックのサポートや制限モードの導入が行われる | OSDN Magazine
EditorConfig
- EditorConfig
- EditorConfig
- EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
- EditorConfig でエディタの設定も共有しよう - デブハゲ
- .editorconfigが便利すぎて失禁した - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)
- ぶんちょうさんはTwitterを使っています 「editorconfig大混沌時代 これで信用できるのタブ・スペースの数くらいしかなくない?」 / Twitter
- Gada / ymtszwさんはTwitterを使っています 「@yutopp 何だったら今どきの言語だと公式orコミュニティスタンダードで決まってることが多いので、hard/softもスペース幅もeditorconfigをみる余地があんまりない気がします。 trailing space消すとかファイル末尾にtrailing newlineつけるとかはもう殆どの言語共通だから言うまでもないし」 / Twitter
- ぶんちょうさんはTwitterを使っています 「@gada_twt その言語の標準をeditorconfigの記述に相乗りするのが今どきっぽいのですが、同じ言語のツールでもサポートの度合いが違い、厳しい…」 / Twitter
- ぶんちょうさんはTwitterを使っています 「なにがeditorconfigや!今日からきみはtabspaceconfigや」 / Twitter
Inlay Hints
- inlay hints - Google 検索
- mattnさんはTwitterを使っています: 「Vim に任意の場所にテキストを置ける virtual text という機能が付いたので、その効果をご覧ください。 https://t.co/TgbWZ209kC」 / Twitter
- mattnさんはTwitterを使っています: 「具体的に何に使えるかというと Visual Studio Code 等がやってる inlay hints に使えます。 https://t.co/WtyQo7D5Fd」 / Twitter
- mattnさんはTwitterを使っています: 「テキストの位置に貼りついているので移動も追従します。 https://t.co/pVNHOlNqvA」 / Twitter
幅・色・ハイライト
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「文章スキルを向上させる方法: エディタ1行の幅を狭くする。 理由: 人は1行1行が短いほうが早く読めるため、推敲しやすくなるから。 https://t.co/ZqFV6D4KEO」 / Twitter
- Write Thin to Write Fast - Breck Yunits' Scroll
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「そういえば似たようなアイデアで、行頭・行末に色を付けることでテキストを速く読めるようにする機能拡張ってのがあった。 https://t.co/YNYEvOCbOM」 / Twitter
- BeeLine Reader: making reading on-screen easier and faster.
- κeenさんはTwitterを使っています 「面白い。確かにハイライトすべきなのが構文とは限らなくて、構文から導き出される文脈こそ欲しい情報だからそれをダイレクトにハイライトした方が便利だね。 Syntax highlighting is a waste of an information channel • Buttondown https://t.co/oPSizrlUjo」 / Twitter
- Syntax highlighting is a waste of an information channel • Buttondown
- CodeMirror - Google 検索
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コードを入力すると (Twitterなどに貼付け可能な) 画像ファイルを生成するサイト。 https://t.co/Toh7iWuKCU https://t.co/HkrcwJ8EnP」 / Twitter
- Carbon | Create and share beautiful images of your source code
- Toru MakabeさんはTwitterを使っています 「括弧に色つけるだけでしょ とか言う人は正座して読んでください / How We Made Bracket Pair Colorization 10,000x Faster https://t.co/2v2qybjK7G」 / Twitter
- How We Made Bracket Pair Colorization 10,000x Faster In Visual Studio Code
- トデス子'\さんはTwitterを使っています 「VS Codeの対応括弧色づけ機能。最初は拡張機能だったがパフォーマンスが悪いので本体に統合し、様々な最適化が可能に。括弧の対応を2-3 tree構造のASTとして持ち、絶対位置を保持しないことでクエリ(指定範囲のAST取得)がO(log^3 N)、更新(トークン長E)がO(log^2 N+E)に。」 / Twitter
- トデス子'\さんはTwitterを使っています 「トークンの解釈結果はインクリメンタルに来るので、終わるまでは旧ASTを参照しつつ裏で新ASTを更新することでファイル末尾のハイライトがチカチカするのを防ぐ。ASTのクローンはCoWで速い。」 / Twitter
- トデス子'\さんはTwitterを使っています 「JSの整数は2^53までいけるので、26ビット整数のタプルをひとつのnumberにエンコードできるぜ→V8は2^31以上の整数をヒープに追い出すので効果がなかったぜ……」 / Twitter
- 画力・博士号さんはTwitterを使っています 「((簡潔データ構造チャンス!)と思ったけれども2-3木で十分だったのか)」 / Twitter
カット & ペースト
- sumimさんはTwitterを使っています 「コピー&ペースト(より正確にはカットとペースト)がSmalltalkのどんなキー操作にいつ頃アサインされたのかをざっと当時のコードを読んでこれ→https://t.co/BEAFBElfFl を書いたのですが、もう少し丁寧に調べてみたら少なくともSmalltalk-76の時点でLFではなくBLANK-TOPに割り振られていた事が判明… https://t.co/l6hAVNeLKn」 / Twitter
- sumim: "#365 収録後トークの「コピー&ペーストはMacが最初」というのは少々いただけないです(アラン・…" - グルドン
- sumimさんはTwitterを使っています 「カット・コピー・ペースト操作が [修飾キー]+X/C/V になったのがLisaからなのは明らかとして、コピー&ペースト操作のネタ元であるSmalltalkで(特にペーストの)キー操作はどうだったのか…というのはオレンジ本にも書いておらず長らく疑問に思っていたのですが、ようやくモヤモヤが晴れてスッキリ!」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@sumim そろそろ本にまとめることをお勧めします。」 / Twitter
- なかのん&マジックさんのツイート: "Ctrl+ZXCVみたいに、Ctrl+Shift+CXVあたりもリッチテキストを扱えるアプリ間で暗黙の共通のショートカットキーとならないんだろうか。 / 【レビュー】[Windows]+[V]キーでテキストから書式を取り除いて貼り付け「PureText」 - 窓の杜 https://t.co/TQjnNbHQ5l @madonomoriさんから"
- 七誌さんはTwitterを使っています 「実際に使ってみたけど、メッセージが来た直後に取得すると結構な頻度で失敗する。0.1秒ほどウェイトを入れると問題なくなった。」 / Twitter
- クリップボードの履歴をとるアプリの作り方 | 鳩でもわかるC#
- クリップボードの内容の変化を知る方法 | 鳩でもわかるC#
Undo/Redo
ファイルシステム
- Kazuho OkuさんはTwitterを使っています: 「ほんと、ディスクなんて大抵空き容量あるんだからさあ、その空き容量使って変更を巻き戻しできるようにしてよ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「unco は ld_preload であるがゆえに色々制限あるけど、ユーザランド fs でディレクトリ単位で任意の時点にロールパック可能とかキレイに作れるんじゃないのという」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@smbd 惜しい感じなんですよね。スナップショットだとちょっと粒度が大きいというか。あっコマンド間違えた、取り消し!みたいなことがしたい」 / Twitter
- かげさんはTwitterを使っています: 「@kazuho すごい粒度の細かい自動コミット(ワンストロークごとコミットみたいな。そこまで言わなくても改行一回デリート一回コミットでも良い)内蔵の開発環境が欲しいです」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「fsのスナップショットじゃなく、ディレクトリやファイルのスナップショットがほしい、と言えばいいのかな。ボリュームバックアップとTime Machineの違いと同じ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「https://t.co/Z71pZUzeP0 これですね。すごく良い https://t.co/cbAwUyS7hE」 / Twitter
- text.dvi
- fjのYog教祖様さんはTwitterを使っています: 「@kazuho ElephantFS「btrfsやzfsは下がってな。こいつは俺でないと相手できねぇ事を言ってやがる。」」 / Twitter
C2PA
- 【やじうまPC Watch】Adobe、Web版Photoshopの編集機能を一部無償化。カナダ地域でテスト - PC Watch
- データがいつどのように編集されたかを履歴として残すためのオープンソースのツールをAdobeが発表 - GIGAZINE
- Overview - C2PA
- じーくどらむすさんのツイート: "「階層構造を活かしたUndo」について考えていたが、これ実現したら結構使えそう。Undoって時系列で1本しか無いけど、しばらくたって「あの部分だけUndoしてぇー」って時に、そこの木だけにフォーカスしてUndoが可能。"
- じーくどらむすさんのツイート: "ただし、RedoできるのはUndo実行時の木にフォーカスしている時のみ、アクションのChainが複数の木にまたがる場合はChainが分解される、などの仕様で色々と歴史の部分改ざん問題を回避する必要がある。"
- なかのん&マジックさんのツイート: "ちょっと前に、GeckoのUndo/Redo周りを見てたけど、今の一本道なスタックでもキツいのに……"
- なかのん&マジックさんのツイート: "まあ、どっちみち、ブラウザでやろうと思うと、消したハズのDOMノードをずっとundo/redoのスタックに積んでいかないといけないとか、ちょっとメモリに優しくない(JSでオブジェクトをつかんだまま、ツリーに戻って来たものを参照するかもしれないから)。"
- なかのん&マジックさんのツイート: "undoが壊れるエディタとかまじで存在してて引く。"
- Kazuho OkuさんはTwitterを使っています: 「何度でも言いますが、21世紀なんだし、エディタだろうがファイルシステムだろうがウェブ上のシステムだろうが、計算機上のすべてのUIはアンドゥ可能であるべきだし、そうじゃないシステムには unco 投げつけるべきなんですよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Undo managerなんて、2、3年前にrniwaさんが提案してたやつだよ https://t.co/7YTMLgsqKB」 / Twitter
- Undo API
LSP
LSP
- ドッグさんはTwitterを使っています: 「「LSP は lang server(N)とエディタ(M)の N * M 問題を M + N に落とすためのもの」という説明は間違っているという話.著者は rust-analyzer の作者 | 'Why LSP?' https://t.co/06auLNykr9」 / Twitter
- Three Architectures for a Responsive IDE
- ドッグさんはTwitterを使っています: 「ところどころ「ん?」と思うところもあるけど,VS Code が汎用的な LSP クライアントを持たず,各言語拡張がそれぞれの LSP クライアント実装を持ってるのは確かにこの説明と矛盾してる」 / Twitter
- ドッグさんはTwitterを使っています: 「compiler と lang server の違い: - compiler 正しいなプログラムだけ変換できれば良いが lang server は間違ったプログラムも best effort で解析できないといけない - compiler はステートレスだが lang server はステートフル - compiler はスループットが大事だが lang server はレイテンシが大事」 / Twitter
- ドッグさんはTwitterを使っています: 「s/正しいな/は正しい/」 / Twitter
- ドッグさんはTwitterを使っています: 「あと VS Code の内部実装のアーキテクチャはよくできてるのでテキストエディタ開発者は読んどくと良いらしいです(UI と機能を分離して後者向けの高レベルな API を提供する)」 / Twitter
- ドッグさんはTwitterを使っています: 「あわせて読んでおくと良さそうな同著者の記事 https://t.co/06auLNykr9」 / Twitter
- 島鉄雄さんはTwitterを使っています 「lsp-mode が重い原因は、単純にありとあらゆる処理が非同期になってないから、どこかで UI をブロックしてしまうからなんだよね。 取り敢えず結論としては、UI に絡むプログラム(含むテキストエディタ)を作る場合、libuv かそれに類する処理を実装して、あらゆる API を非同期処理にしないと駄目だ。」 / Twitter
- ShibaさんはTwitterを使っています: 「language serverの実装、書き込み処理をやろうとすると途端に難易度が跳ね上がりますね 差分検知->情報更新とかをやらないといけないので」 / Twitter
言語処理系
- zakuroさんはTwitterを使っています: 「雑なものは処理系と一緒に作る方が簡単なんですが、快適な言語サーバーを作ろうとすると処理系とは別に作ったほうが取り回しがいい可能性はあるかなあとか思ってます。」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「「本当はlanguage server側で型検査や型推論を処理系と独立にはあまり実装すべきではなく,理想的にはSATySFi本体がlanguage serverから --type-check-only で呼ばれ,検査結果をlanguage server側に返すべき」とも思うんですが,実はこの認識が誤りだったりしますかね」 / Twitter
- 画力・博士号さんはTwitterを使っています: 「「エラー恢復のために構文解析はlanguage server側でも実装し,構文エラーでなかった場合だけ型検査のためにSATySFi本体に投げる」などのハイブリッドでもOK」 / Twitter
- ウルチゴメ・モチマイさんはTwitterを使っています: 「@bd_gfngfn https://t.co/CrdSLS8qLD バッチコンパイラとIDE用のコンパイラ(アナライザ?)は目標が違うからアーキテクチャも変わるよね、みたいな話をRustのLSP作者が言ってたりします」 / Twitter
- Rust AnalyzerによってIDEフレンドリなコンパイラを目指すRust
- ELD-R-ESH-2さんはTwitterを使っています: 「@__pandaman64__ @bd_gfngfn LSPとか無い時代の話ですが、msvcの場合補完専用の荒くパースするc++パーサ作ったって話がブログにありました。」 / Twitter
- zakuroさんはTwitterを使っています: 「たとえば言語によってはちゃんとした型検査をやると重いので、前段で簡易的な型検査をするなど。あと、LSPは差分を受け取るので、構築済みのASTをベースに最小限のパースとか型検査に納めたりできる(本格的な実装を読んだことがないので、他の言語がどこまでやってるかはわからん)」 / Twitter
- zakuroさんはTwitterを使っています: 「これは言語サーバー実装者視点だと大変わかる話なんですが、一方でそれをやると処理系のコードがめちゃくちゃ複雑になったりオプションが大変なことになるので、T1 は T2 に変換可能かとか、T1+T2 の型は何になるかみたいなの機能をライブラリとして提供するあたりが妥当かもしれない」 / Twitter
- tanishiking24さんはTwitterを使っています: 「ScalaのLSPサーバー作ってるものですが、個人的には型チェックなどはコンパイラに委譲したい派(コンパイラ側にどんどんIDE用の挙動を追加していきたい)です。 Scalaの型チェッカーをIDE側で実装するの大変すぎる、独自実装のが融通効くのはそうなんですが…。」 / Twitter
フューチャー技術ブログ
- Mypy と Pyright の解析手法と型情報の比較 | フューチャー技術ブログ
- Pyright を LSP サーバとした自作 LSP クライアント(調査編) | フューチャー技術ブログ
- Pyright を LSP サーバとした自作 LSP クライアント(実装編) | フューチャー技術ブログ
- Language Server Protocolを用いたVSCode拡張機能開発 (前編) | フューチャー技術ブログ
- Language Server Protocolを用いたVSCode拡張機能開発 (後編) | フューチャー技術ブログ
ベインのブログ
- LSP学習記 #1 - ベインのブログ
- LSP学習記 #2 クラゲ言語の構文解析 - ベインのブログ
- LSP学習記 #3 シンボルとハイライト - ベインのブログ
- LSP学習記 #4 シンボルのリネーム - ベインのブログ
blog
- TypeProf for IDEの開発をお手伝いしました at クックパッド - kateinoigakukunのブログ
- rust-analyzerの紹介 | κeenのHappy Hacκing Blog
- ClangdでC++ソースコードを補完する際にコンパイルオプションを指定する方法 - uchan note
Zenn
- 新世代の自動補完プラグイン ddc.vim
- vim-lsp-settings に物色インストール画面を作った。
- Language Server Protocol に対応したミニ言語処理系を作る
- Overview
- Specification
- microsoft/language-server-protocol: Defines a common protocol for language servers.
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています: 「SATySFi がパッケージファイル毎に型検査結果を出してくれると嬉しい。 OCaml の .cmi とか GHC の .hi みたいな奴。識別子毎の型情報とかも一緒に出してくれるとLSPにも便利なのではなかろうか」 / Twitter
- ドッグさんはTwitterを使っています 「LSP サーバからワークスペースの情報をダンプして,サーバ起動してなくてもクエリかけられるようにするためのインデックスフォーマットの仕様.LSP サーバのリクエスト/レスポンスを持っとく感じなのかな.まだ v0.5.0 | 'Language Server Index Format ' https://t.co/vMivzi0osE」 / Twitter
- LSIF Specification
- ドッグさんはTwitterを使っています 「LSP ってクライアントデバッグ用のリファレンス実装とか無いのかな」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/iaEHawteQ3 調べてみると個人でそういうのつくってる人はいるな」 / Twitter
- bubba/lsp-test: A functional test framework for LSP servers
- 言語サーバープロトコルの概要 - Visual Studio | Microsoft Docs
- visualstudio-docs.ja-jp/language-server-protocol.md at live · MicrosoftDocs/visualstudio-docs.ja-jp
- ShibaさんはTwitterを使っています: 「なんとかメソッド補完を実装できました https://t.co/5dUhl8cAmy」 / Twitter
- ShibaさんはTwitterを使っています: 「メソッド補完は普通の変数補完と比べてすごくめんどくさくて、というのもサーバー側から送られてくる情報が`.`の位置しかないので、レシーバーを自力で見つけて型を特定する必要があるのです」 / Twitter
- ShibaさんはTwitterを使っています: 「s/サーバー/クライアント/」 / Twitter
- prabirshrestha/vim-lsp: async language server protocol plugin for vim and neovim
コード補完
Twitter
- 渋川よしきさんのツイート: "エディタに対するIDEのアドバンテージは、エディタはたいてい補完候補をまとめて一度に送る設計になっていることが多いから、候補が増えるとレスポンスが重い、IDEはインクリメンタルにそれができる余地が多少広いぐらいって補完システム作ってる人が言ってた"
- 渋川よしきさんのツイート: "ただ、そういうインクリメンタルにしようとすると、IDEの補完のシステムを作り込むのはさらに難しそうだし、簡単に作るとエディタと変わらなくなっちゃう。"
- Fadisさんのツイート: "C++におけるコード補完は残念ながらあまり幸せになれない。近代的なC++erならテンプレートを活用して再利用性の高いコードを書いている筈だけど、未知の型Tにどんなメンバを持っているかは、そのメンバを利用する事によって決定する為、それを利用する前に予想する術は無いんだ"
- Fadisさんのツイート: "conceptを理解できるコード補完ならあるいは…"
- かずき@MHW が好きさんのツイート: "VSの場合凄く長い名前のものを書くときは CCLM とかみたいに打つと ContainerControlledLifetimeManager みたいなものにマッチする(単語区切りの先頭をうつだけでいい)ので、長い名前のもをうつ機会が多い場合は、覚えておくといい"
- Mune-sanさんはTwitterを使っています 「CLion、ファイルか関数が長くなるとオートコンプリートにものすごく時間がかかるよになるんじゃないかという気がする。 長いったって二千行くらいなんだが。」 / Twitter
- Mune-sanさんはTwitterを使っています 「SupportのSpeed Up Code Analysisが効いた。 異常な遅さは消えたようだ。ただし、一部の解析は手動で起動しなくてはならなくなった。 https://t.co/mvfxCWbzx5」 / Twitter
- Performance Tuning Tips - Help | CLion
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 最近のIDEの補完は実際にコンパイル走らせるので、マクロが未定義だとかエラーいっぱい出るオチになると思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「むしろ申し訳ないという気持ちになった...。正直、抽象実行でリアルタイムで補完するとか型チェックが出来るようになるとは思わなかった」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「Special thanksに挙げていただきました 😊 https://t.co/X9Bxvicd07」 / Twitter
- TypeProf for IDE: Enrich Development Experience without Annotations
- kateinoigakukunさんはTwitterを使っています 「TypeProf for IDE: Enrich Development Experience without Annotations #ruby #ruby3 https://t.co/MUZ9X6yip1 via @SlideShare」 / Twitter
- しのゆ(0x24)@会える酒カスエンジニアさんはTwitterを使っています: 「C#の強さは結局のところIntellisenseによる強力な補完機能なんだよなー。Visual Studioがそのへん優秀すぎるというのもあるけど、同名のクラスやメソッドがあっても、しっかり補完やコードジャンプが効くってのが本当に良かった。 JetBrainsのRiderも良いとは聞く(Reshaperの開発元だから期待)」 / Twitter
- 自動補完 - Wikipedia
- インテリセンス - Wikipedia
- Intelligent code completion - Wikipedia
- [ コード補完機能等の利用 IDE 関係操作 ] - Mr.XRAY
- JavaScriptのコード補完できていますか? - Aqutras Members' Blog
- 簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇) | 株式会社イテレイティブ
- 支援機能(IDE チュートリアル) - RAD Studio
- コード補完からムダを省き、Javaプログラミングを地味に効率化 | I am programmer and proud
- 本の虫: VC10のインテリセンスについて
- 本の虫: MSVC++コンパイラーの中に入っているWebブラウザー
- 本の虫: Inside IntelliSense
- 本の虫: インテリセンスのリビルド
- 本の虫: VS2010のsquiggleについて
- コーディングをAIが支援してくれる「Visual Studio IntelliCode」、Javaに対応。GitHubにあるコードを機械学習 - Publickey
- Big Sky :: gocode やめます(そして Language Server へ)
ナビゲーション
LSIF
- 無職やめ太郎(本名)さんはTwitterを使っています 「GitHub上でもコードジャンプとか出来たらいいのにな」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Yametaro1983 それをどのブラウザーでもできるようにするために https://t.co/OecVGi2uEh っていうのが策定されてるんですよ。ソースコードの定義情報まとめるJSONファイルになっているそうで」 / Twitter
- LSIF.dev
cscope
- 第 8 章 cscope: 対話的な C プログラムの検査 (Sun Studio 12: C ユーザーズガイド)
- Cscope Home Page
- memo/Cscope.md at master · tsuyopon/memo
- if_cscop - Vim日本語ドキュメント
- cscope CapmNetwork
- ヘッダファイルなどをVimのキー操作一発で探す (3/3):いまさら聞けないVim(9) - @IT
- cscope - Wikipedia
- [cscope][emacs] cscopeをほぼ全ての言語に対応する方法 - goinger的日記
- CscopeとSilentBobによるソースコードの解析 | OSDN Magazine
- Linuxカーネルソースコードを読むツール (1):cscope編 - Fixstars Tech Blog /proc/cpuinfo
- コード ナビゲーション(IDE チュートリアル) - RAD Studio
- ソースファイルのナビゲーション - Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル
- NetBeans IDE Javaエディタでのコード支援: NetBeans IDEのリファレンス・ガイド
- 本の虫: GNU Globalが面白そうだ
- OS作れないマンさんのツイート: "GNU globalでコードリーディングは便利なんだけど、今自分がどの関数を読んでて、さっきまで何処にいたか、みたいなコールスタック(のようなもの)を記録して可視化する仕組みが欲しくなる。"
- OS作れないマンさんのツイート: "リーディングスタック、現実的な範囲で作るとすると、手動によるマーキングが必要になりそう。まあそのくらいは許すとして、あとはマークをどの階層に配置するかの推論をしなければならない。"
- ぬるぽへさんのツイート: "rtagsこれです(https://t.co/a9FbbVGqtf) アドホックな文字列処理じゃなくてclangのパーサを内部に抱え込んでて、それで型とかマクロとかを処理してタグしてくれる 最新のコミットはこわれてるのでビルドしたかったらreset --hard HEAD^してね"
- ぬるぽへさんのツイート: "@liva_jy rtagsいいよ、マクロで定義された識別子も追える"
- _さんのツイート: "ところでいつかrtagsについて宣言までしか飛んでくれなくて不便ということを言ったのですが、あれは間違っていて普通に定義までジャンプできました そしてマクロを駆使して定義された関数や変数も定義にジャンプできてめっちゃ便利"
- 最強のC/C++インデクサー "Rtags" を本気で使う - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「GitHubがナビゲーション機能 (関数定義に飛ぶ、など) を導入。この際、なるべく多くの言語に対してGitHub規模で効率的に解析できるよう、stack graphという手法を使っている (呼び出しスタックとは無関係)。個々のファイルの定義をグラフとして個別に解析しておいて合成する。 https://t.co/yTQByhU9uP」 / Twitter
- Introducing stack graphs | The GitHub Blog
- GitHubがコードナビゲーションとコード検索を改善
リファクタリング
- 第36回 リファクタリングについて:Android Studio最速入門~効率的にコーディングするための使い方|gihyo.jp … 技術評論社
- リファクタリング(IDE チュートリアル) - RAD Studio
- IDEの機能比較:ローカル変数の抽出 - しおしお
- NetBeans IDE - 編集とリファクタリング
- コードの作成とリファクタリング (C++)
- Eclipse JDT のリファクタリング機能を探る
- マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ - Publickey
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「VSCodeで変数名を変更する機能使ってみたら別の変数まで書き換わってて、スコープも確認せずにやってるクソ機能だった……(結構やりなおし発生)」 / Twitter
- ASTを活用してコードの自動修正に挑戦してみよう - Cybozu Inside Out | サイボウズエンジニアのブログ
- WideStudio/MWT Home page
- メンテナンス性とモジュール化のためGitHub OctoKit JavaScript REST SDKをリファクタリング
- Facebook Retrieを使用した大規模なHaskellコードベースのリファクタリング
- Masaru IritaniさんはTwitterを使っています: 「同じ編集の繰り返しを自動的に検出してくれる AI-assisted Refactoring は、リファクタリングの時間も誤りも削減してくれる素晴らしい機能ですね。 https://t.co/nrx4QynCcw」 / Twitter
- Visual StudioさんはTwitterを使っています: 「We're expanding the application of #AI to accelerate learning and improve development agility with two new capabilities: whole line completions and refactoring. Read more: https://t.co/6Tn1X1tELr https://t.co/Z8USvIvO6Y」 / Twitter
- Re-imagining developer productivity with AI-assisted tools | Visual Studio Blog
- リファクタリング - Visual Studio | Microsoft Docs
- Visual Studio での C++ コードの編集とリファクター | Microsoft Docs
diff
Myersのアルゴリズム
- Myers' Diff Algorithm : The basic greedy algorithm
- baba1.pdf
- diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
- diffのアルゴリズム - Plan9日記
- 文書比較(diff)アルゴリズム
- diffってなんだ.md
- 文書の差分箇所を検出したい - Thoth Children
- 差分検出アルゴリズム三種盛り - Object.create(null)
- 差分アルゴリズムの原理について by horita-yuya | トーク | iOSDC Japan 2018 #iosdc - fortee.jp
- 編集距離を O(NM/w) 時間で求めるアルゴリズム - TechFULの中の人
Wu
- An O(NP) sequence comparison algorithm - ScienceDirect
- Wu らによる差分検出の O(NP) アルゴリズム実装シリーズ ①仕組み、考え方 - Qiita
icdiff
- Susumu MiwaさんはTwitterを使っています 「diff を side-by-sideで表示してくれる。GNU diff の --suppress-common-line -y --color よりは見やすい / “icdiff: side-by-side highlighted command line diffs” https://t.co/ALkpM2ABtt」 / Twitter
- icdiff: side-by-side highlighted command line diffs
- jeffkaufman/icdiff: improved colored diff
Difftastic
- ドッグさんはTwitterを使っています 「新しい diff ツール difftastic.一般的な diff と違い,構文をパースして構文木ベースで diff を取るっぽい(スクショの reverse の部分見ると分かりやすい) | 'Wilfred/difftastic' https://t.co/5BAmzN98k6」 / Twitter
- Wilfred/difftastic: a syntax-aware diff
- ドッグさんはTwitterを使っています 「https://t.co/oNc7XHuczA うーんちょっとこの定義では厳しそうな雰囲気あるな」 / Twitter
- difftastic/syntax.toml at master · Wilfred/difftastic
- difftastic/syntax.toml at master · Wilfred/difftastic · GitHub
- overloaded operatorさんはTwitterを使っています 「@Linda_pp これどうやって?木のdiffをするのはMAX SNP-Hardではなくて?」 / Twitter
- ドッグさんはTwitterを使っています 「@gnaggnoyil README に How it works が追加されてますね.ダイクストラ法使ってると書いてありますが,詳細はよく知らないです」 / Twitter
- uint256_tさんはTwitterを使っています 「引数与えなかったらクラッシュした... 日本語使ったらクラッシュした... (あとでPR送ろうかな)」 / Twitter
@IT
- Linux基本コマンドTips(102):diffコマンド(基本編)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(103):diffコマンド(基本編その2)――テキストファイルの差分をcontext形式などで出力する - @IT
- Linux基本コマンドTips(104):diffコマンド(応用編)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(105):diffコマンド(応用編その2)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(107):patchコマンド――テキストファイルに差分を適用する(基本編) - @IT
- Linux基本コマンドTips(108):patchコマンド――テキストファイルに差分を適用する(応用編) - @IT
- LinuxコマンドTips(109):【patch】コマンド――テキストファイルに差分を適用する(応用編その2) - @IT
- diff to html (diff2html) program - Stack Overflow
- diffの動作原理を知る~どのようにして差分を導き出すのか|gihyo.jp … 技術評論社
- 文書比較(diff)アルゴリズム
- diff - Wikipedia
- www.ioplex.com/~miallen/libmba/dl/src/diff.c
- diff-pdf - PDFファイルの差分を表示 MOONGIFT
- objdumpのdiffをいい感じに取る方法のメモ - ももいろテクノロジー
- 第97回 GNU diffからBSD diffへ切り替え:BSD界隈四方山話|gihyo.jp … 技術評論社
- CUIで見やすい git コミットグラフ: git-foresta 作った - Qiita
- Tree Edit Distanceと自然言語処理への応用 | Preferred Research
- JavaScriptでテキストの差分を見るライブラリ - Qiita
- linuxのdiffコマンドでファイルごとdiffを取るときに空のファイルを無視する方法 - 誰にも見えないブログ
- コーディングスタイルと文章の認識 - in neuro
- ドッグさんはTwitterを使っています 「"abc, abc" から "abc, " を削除した時,diff では "bc, a" を削除したと見なされるのは diff のアルゴリズム上仕方ないのかな多分」 / Twitter
- HashiCorp Terraformに簡潔な差分フォーマッターと機密データの難読化が加わる
- Terraform 0.14 Adds a New Concise Diff Format to Terraform Plans
- Comlinkを使って手軽にWorkerを扱う | フロントエンドBlog | ミツエーリンクス
- 文芸的diffでソースコードを解説する - ABAの日誌
コード整形
S 式
- lagénorhynque🐬カマイルカさんはTwitterを使っています: 「Clojureに入門する方には真っ先にリンター(clj-kondo, Joker)とフォーマッター(cljstyle)が動作する開発環境を整えてもらいたいなぁ(快適さがまるで違うはず)。 S式編集支援プラグインを導入して操作を覚えるよりも優先度が高い気がしている。」 / Twitter
- lagénorhynque🐬カマイルカさんはTwitterを使っています: 「私がClojure開発のためのエディタに最低限求めるものというと 1. シームレスにREPLと連携できること 2. 静的解析ツール(フォーマッター、リンター)と連携動作すること 3. S式編集支援プラグインをサポートしていること かな🤔」 / Twitter
- あやぴーさんはTwitterを使っています: 「@lagenorhynque フォーマッターは欲しいけど、リンターは鬱陶しいと思う派です😇 動的に生える関数とか、自分で書いたマクロを使うとやたら警告されて😇😇😇」 / Twitter
- lagénorhynque🐬カマイルカさんはTwitterを使っています: 「@_ayato_p リンターの指摘に意図しないものが含まれてノイズに感じることはありますよね。 習熟度の異なるメンバーで構成されたチームのレベル底上げに有益な気がしていますが、それほどメリットを見出せないほどに慣れていると不要かもしれないですね。」 / Twitter
- あやぴーさんはTwitterを使っています: 「@lagenorhynque そこが難しいところですよねー…。私は必要ないが他のメンバーはあったほうがいいよなーって思うので、そのままにしてます。」 / Twitter
- Artistic Style - Index
- Artistic Style download | SourceForge.net
- 島 敏博さんのツイート: "C言語,C++言語用自動整形ツール、astyle https://t.co/pJvvj3Yn66 はこういう整形ができて素敵 --align-pointer=type ポインタの*、参照の&を、型側に寄せるか変数名側に寄せるかを指定するオプション。*も&も型の一部なので私も型側 https://t.co/e60bKZQ0PO"
- ちゃーしゅーねこさんのツイート: "代入の=の位置を縦にそろえるの嫌う人結構いますけど(別に僕は嫌いじゃない)、gofmtだと行末コメントが複数行にあると縦にそろえられる件はどうお考えなのだろう"
- なかのん&マジックさんのツイート: "行の途中の何かを基準に無駄にスペース入れてしまうと、その位置では左すぎる行を挿入しなくちゃいけなくなった時に、本来は変更不要な行までdiffに含まれてきて、レビュー時のリスクが高まるんだよな。行内diffまで表示してくれるレビューツール使ってたらマシだけど、結局、blameにゴミが入る。"
- インデントのスタイルについて - in neuro
- Prettier · Opinionated Code Formatter
- prettier.pdf
- Prettier のしくみ - Speaker Deck
- prettier/commands.md at main · prettier/prettier
- Romeは本当に速かった - @ledsun blog
- Prettier 2.7 にキャッシュを実装した
- Google 製 yaml フォーマッター「yamlfmt」を試してみる
- Engineer Camp2022 RustでSQLフォーマッタ作成(後編) | フューチャー技術ブログ
- Engineer Camp2022 RustでSQLフォーマッタ作成(前編) | フューチャー技術ブログ
コード検索
- Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
- Geoff's site: The Silver Searcher
- ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
- コード検索ツール「Sourcegraph」、オープンソース化される | OSDN Magazine
- なかのん&マジックさんのツイート: "Mozillaの現在のソースコードビューアはJavaとObjective-Cには非対応なものの、かなり使いやすい。けど、ローカルに立てて他のプロジェクトに使えるのかどうかちょっとよく分からんかった。 https://t.co/IdJxSXsv6f"
- / - mozsearch
- なかのん&マジックさんのツイート: "JSとC++の境界もまたいでくれるのでありがたい。 https://t.co/a9ZYoojYyE"
- Symbol _ZN18nsIPlaintextEditor10InsertTextERK12nsTSubstringIDsE,#insertText - mozsearch
- chikoskiさんのツイート: "みんな巨大なJSのコード読むのどうやってんだろう。1万行以上 / 100ファイル以上の場合"
- Makoto Mizukamiさんのツイート: "読んだふりをする (違 / 私の場合は, grep しながら興味と合致しそうなところを探すことが多いですかねえ. それこそ good practice があれば試してみたい.… "
- chikoskiさんのツイート: "私の場合は、The Sliver Searcher(agコマンド)で探して、lessで読む感じ。真面目に読むときは、継承関係や参照関係を図に書きながら読むことが多いのですが…コード検索エンジンが使える場合は、それも使います。タグジャンプはしないかな"
- なかのん&マジックさんのツイート: "イベントリスナを探すの超めんどうくさいな……addEventListener(の後に改行あるケースもあるし、イベント名が変数な可能性もあるし。"
- コードが読めるソフトウェア開発者 - As a Futurist...
- 7594591200220899443さんはTwitterを使っています 「コード読む力、大部分がVisualStudioの使い方だったりするんだよなあ」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「ともかくEmacsだのVimだの使ってる場合じゃないとまでは言えますよ。書くのは好きにすりゃあいいけどさ。読むのに関しては。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「JetBrainsとMicrosoftに足向けて寝てるやつがプログラマを名乗るなという感がある」 / Twitter
全文検索
簡潔データ構造
- 簡潔データ構造 - Wikipedia
- Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- 簡潔データ構造の第一歩 - Koike's Lemma
- 文書解析のための簡潔データ構造 | Preferred Research
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwjKtab2i7HQAhUGmpQKHbOqDcEQFghIMAY&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D65880%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEplWOqDZosSHI_og4VS9Ateuh5WA&sig2=eUziEC640ySMd51wseszFQ&bvm=bv.139250283,d.dGo
- wavelet行列で高速な「もしかして友だち?」検索 | 株式会社サイバーエージェント
- [Javaの小枝] 週刊 簡潔データ構造を作る 番外編 5分でわかるLOUDS - Qiita
- NII表紙.indd
- Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
infoQ
- メモリ効率のよい全文検索をRustとWebAssemblyで実現する
- AmazonはElasticsearchのフォークをOpenSearchにブランド変更
blog
アスペ日記
気ままなブログ
- 高速文字列解析の"別"世界 - 気ままなブログ
- Wavelet Treeをもう一度 - 気ままなブログ
- Wavelet TreeのTop-Kの改善 - 気ままなブログ
- FM-Index - 気ままなブログ
- ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
- Shibu's Diary: [JSX][FM-index]httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!
- Groongaでb Bit MinHashを使って高速に類似検索 - CreateField Blog
- Hugoのブログに全文検索をつけた | κeenのHappy Hacκing Blog
- Search | κeenのHappy Hacκing Blog
- 魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ
- Luceneのメモリ上でのインデックス構造とその仕組み - エムスリーテックブログ
- Luceneのセグメントファイルを解剖してみた - エムスリーテックブログ
- 前編:Elasticsearchの機械学習分析による類似ドメイン検知 | IIJ Engineers Blog
- Apache Solr から OpenSearch に載せ替えた話 - 弁護士ドットコム株式会社 Creators’ blog
- 転置インデックスの圧縮技法
- 検索のパラメータチューニングを効率化するツールについて - TVer Tech Blog
スライド
- FM-indexによる全文検索
- Oktavia全文検索エンジン - SphinxCon JP 2014
- Lucene Index Deep Dive - Speaker Deck
- shallow1729さんはTwitterを使っています 「Elasticsearchのストレージへの書き込み、luceneのcommitはマルチスレッドのshadow pagingだけどElasticsearch側でWAL(Translog)を用意してcheckpointとしてluceneのcommitを実行してるって感じっぽい(嘘ついてたらごめんなさい)」 / Twitter
- shallow1729さんはTwitterを使っています 「Luceneのストレージへの書き込みについてはこちらの資料から https://t.co/wCOrkmA9ol ElasticsearchがLucene commitを使ってるとかはドキュメントから https://t.co/mK2VajYTl9 > An Elasticsearch flush is the process of performing a Lucene commit and starting a new translog generation.」 / Twitter
- Introduction to Apache Lucene - Speaker Deck
- Translog | Elasticsearch Guide [7.14] | Elastic
- shallow1729さんはTwitterを使っています 「shadow pagingとかWALはCMUの講義がわかりやすいです。 https://t.co/mM39I9IwoV」 / Twitter
- 20 - Database Logging Schemes (CMU Databases Systems / Fall 2019) - YouTube
- shallow1729さんはTwitterを使っています 「> マルチスレッドのshadow paging Luceneでtransactionという言葉は適切で無いかもですけど、複数のtransactionがあった時にcommitをtransaction毎ではできず、全部まとめてcommitする事になるって感じです。」 / Twitter
Qiita
- ハクビシンにもわかる全文検索 - Qiita
- [C++]コンパクトなBWT - Qiita
- SA-IS - Shogo Computing Laboratory
- SA-IS(Suffix Array - Induced Sorting)を実装した - Qiita
Twitter
- Rockridgeさんのツイート: "Searchfox(Firefoxのソースコードの全文検索ツール)がWindows版特有のRust/C++コードのインデックス化に対応した。 / “PSA: searchfox now indexing Windows Rust…” https://t.co/GqjfUhdW8p"
- Makoto Kato ︎︎さんのツイート: "https://t.co/rIW92muoIF ってGoogle社内でも使われているソースインデクサ使ってるんだろうけど、あの会社の人たちあれで満足してるの? https://t.co/KK3JpDgl2f の圧倒的な検索能力を見てしまうとねぇ。。。"
- Code Search
- Searchfox
- Makoto Kato ︎︎さんのツイート: "ソースコードインデクサ作るのにclang-plugin使うというアイデアはホント正しい"
- Justin SearlsさんはTwitterを使っています 「日本人のプログラマーへ、助けてください!Postgresでは日本語の検索のフィーチャーを作るなら、ベストプラクティスが何ですか?恥ずかしくても、普通に西洋のプログラマーはローマ字の検索だけ分かります。😬」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「indexingはn-gramが一番シンプルでいいと思います。Thinderbirdのindexerもそうした。CJT考えたらdeep learningで辞書作るのはコスト高すぎる」 / Twitter
- StudentさんはTwitterを使っています 「自作RDBMSが話題ですが、全文検索のDBはインデックスはクエリにマッチするデータを指している訳ではなくカバレッジも100%じゃないという性質があって、lexicalとsemanticの2種類のインデックスを相補的に使った上でランキングで間違ったデータをフィルタするみたいな世界なんですけどすごくないですか」 / Twitter
- ぬるぽへさんのツイート: "前々から何度も言ってるんだけど自分が今までに閲覧したサイトの全てから光速に検索できてほしい"
- Oktaviaとは何か? — Oktavia
- Microsoft、Bing検索エンジンの主要コンポーネントをオープンソース化 | マイナビニュース
- ストップワード とは 意味/解説/説明 【stop words】 | Web担当者Forum
- Windows サーチに拡張インデックスモードを追加 ~「Windows 10 19H1」Build 18267 - 窓の杜
- 高速日本語全文検索「Mroonga」で編集部の専用過去記事検索を爆速化し作業効率を上げてみた - GIGAZINE
- セキュリティがデフォルトで有効に、「Elastic 8.0」が公開 | OSDN Magazine
- Takashi KawasakiさんはTwitterを使っています: 「いつも思うんだけど、こういう検索機能、ファイル名も検索対象に含めてほしいんだよね。例えば、プロジェクトに含まれるファイルのファイル名を全置換したい場合、ファイル名とそれを参照しているファイルの中のファイル名を同時に置換したいことが多い。 https://t.co/LiIZmFoKhq」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「Javaのネームスペース名変更とか軽く死ねる。」 / Twitter
正規表現
PCRE2
- Perl Compatible Regular Expressions - Wikipedia
- Perl Compatible Regular Expressions - Wikipedia, the free encyclopedia
- PCRE - Perl Compatible Regular Expressions
- Index of /pub/pcre/
- PCRE2 specification
- perlre - perldoc.perl.org
- PCREの範囲の正規表現を可視化してくれるサイト - 唯物是真 @Scaled_Wurm
- PCRE2-10.31
- pcre2unicode specification
- unicode - libpcre2 Code Unit Width - Stack Overflow
- PCRE2 Open Source Library for Perl Compatible Regular Expressions
- PCRE2 specification
- pcre2 specification
- Project Zero: (^Exploiting)\s*(CVE-2015-0318)\s*(in)\s*(Flash$)
Oniguruma
- Oniguruma - Wikipedia
- kkos/oniguruma: regular expression library
ReDoS
- 7594591200220899443さんはTwitterを使っています 「https://t.co/g2gSb3q8Ku」 / Twitter
- プログラム中の文字列チェック機能の脆弱性を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でもReDoS脆弱性の修正が容易に~ | ニュースリリース | NTT
- 7594591200220899443さんはTwitterを使っています 「強そう。DoSにならない正規表現のサブセットを(形式的に)定義できたということだね」 / Twitter
- 正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects - Speaker Deck
- アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは? - GIGAZINE
- ぐれさんさんはTwitterを使っています 「ソートの計算量くらい把握してて当然って方々には愚問だと思いますが、正規表現を書くときも、もちろん計算量意識してますよね?(煽) ソート以上に使う機会がある人も多いと思うんですが、ご存知の通り簡単にO(N^k)になるので。 なお、この正規表現でやらかした某社はたまに思い出す他山の石。 https://t.co/VzCXSTuhkU」 / Twitter
- ぐれさんさんはTwitterを使っています 「この表現の引用元はこちら。Firewallのルールに設定した正規表現がバックトラックしすぎて世界的な障害になったやつです(くわばらくわばら)。 https://t.co/DPdjG9WrkY」 / Twitter
- Details of the Cloudflare outage on July 2, 2019
- Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「変な正規表現でCPU枯渇させるReDos攻撃って存在自体知ってたけどあんま気にした事なかったんだが、実際に簡単な例がめちゃくちゃ遅くなる例を見ると、確にヤバいね。例えばこれはM1Maxで50秒とかかかる…。 console.time(); /(a+)+b/.test("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); console.timeEnd();」 / Twitter
- Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「今30文字ですがaを1個足すたびに倍々で伸びてくので迂闊に10文字とか増やすとブラウザ死ぬので注意。」 / Twitter
- Yoshiaki Kawazu🐸ずんさんはTwitterを使っています 「まぁ、大抵のコードだと正規表現はコード書く側が固定で書く事が多く外部入力の値をエスケープせずに正規表現としてそのまま使うケースは少ないかもだけど。 言語処理系を作ったりとか、正規表現自体をクエリで入力可能な検索サービスとかは正規表現エンジンの違いに気をつけた方が良いのは確実だな。」 / Twitter
- 第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp
Perl
- 「Perl 6」、ついにリリース | OSDN Magazine
- 約1年ぶりのメジャーアップデート、Perl 5.14リリース | OSDN Magazine
- Perl 5系の最新版「Perl 5.16」、約1年ぶりにリリース。Unicode 6.1にほぼ対応 | OSDN Magazine
- 安定性強化に向けて機能を整理した「Perl 5.18」リリース | OSDN Magazine
- 「Perl 5.20」リリース、サブルーチンシグネチャを実験的に導入 | OSDN Magazine
- 「Perl 5.28」リリース、さまざまな新機能や変更を導入 | OSDN Magazine
- 「Perl 5.32」リリース | OSDN Magazine
- 「Perl 5.36」が公開 | OSDN Magazine
Google
- はやぶささんはTwitterを使っています: 「G社内のコード検索ツールは何十億行もあるmono repo にもかかわらず正規表現による検索結果が一瞬で返ってくるのがヤバくて、どういう実装なのか気になってたのだけど Russ Cox がオープンな記事を書いてたのを見つけた。これはかしこきものによる実装だ。。。 https://t.co/kogPoX03UF」 / Twitter
- Regular Expression Matching with a Trigram Index
- はやぶささんはTwitterを使っています: 「簡単に理解した範囲で書くと、(1) trigram index を貼る。(2) 正規表現クエリを trigram の AND/OR クエリに変換する (3) trigram query/index による候補に実際の正規表現マッチをする。という感じなはず。アイデアと(2)の詳細がかしこい」 / Twitter
- はやぶささんはTwitterを使っています: 「あとGitHub世代で知らんかったけど (ターンダウンされてしまったけど) Google Code Search も正規表現検索できたってことなのかな。」 / Twitter
- はやぶささんはTwitterを使っています: 「記事を読めばわかるけどコードもオープンになってるので皆様のご家庭・ご企業でもお使いいただけるハズ。まだ試してないけど手元にあるコードに対してやってみよかな。index定期的に貼り直さないといけないので個人でやる分だとやるべきか諸説ありそう https://t.co/6yAVPNmWSm」 / Twitter
- google/codesearch: Fast, indexed regexp search over large file trees
- はやぶささんはTwitterを使っています: 「手もとで $ cindex $HOME/src (153284 files) が 2分くらいかかって、 $ csearch -n -f='go$' 'github.*(haya14busa|mattn)' が爆速で動いた! これはベンリ。。。」 / Twitter
- はやぶささんはTwitterを使っています: 「ところで社内最新実装はさらに抜本的に改善されてるっぽいけど、それらはオープンになってないので公開できない…🙈 (社内インフラと関係してるというのもありそう。みんな入社して読んでほしい😖)」 / Twitter
- はやぶささんはTwitterを使っています: 「と、思ったけどオープンになってるのはこれかも https://t.co/nW7Q4u0GNt https://t.co/v9MOvqcnmf」 / Twitter
- google/zoekt: Fast trigram based code search
- bongoleさんはTwitterを使っています: 「多分sourcegraphが使ってるzoektっていうgoで書かれた検索エンジンがこの技術使ってる気がする。 sourcegraphの正規表現検索もめっちゃ速い。 https://t.co/GgFmCQaN3d https://t.co/eLO1eoa2Jh」 / Twitter
- sourcegraph/sourcegraph: Universal code search (self-hosted)
blog
- 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記
- DSAS開発者の部屋:最近の Python-dev (2017-02)
- 正規表現の略記法 \d と \s と \w – ものかの
- Unicodeで「漢字」の正規表現 – ものかの
- Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
- HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
- [JavaScript] 正規表現はコンパイルしたほうが処理速度が速いのか? - ログろいど
- 危険な正規表現 | MOYO Laboratory
- Onigmoを最大49%高速化した話 | κeenのHappy Hacκing Blog
- 正規表現技術入門を読んだ | κeenのHappy Hacκing Blog
- YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
- Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
- 正規表現からLLVM IRを生成する - めもちょー
- その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
- Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 - Publickey
- 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
- The Unicode Blog: Enhancements to Unicode Regular Expressions
- Proof-directed program transformation: A functional account of efficient regular expression matching | Journal of Functional Programming | Cambridge Core
- 本の虫: なぜC++0xの正規表現は、ECMAScript準拠なのか
- 本の虫: C++の正規表現ライブラリ: std::regex
- 本の虫: JavaScript規格の正規表現リテラルの文面の疑問点
- An additional non-backtracking RegExp engine · V8
- 20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則 | 立命館コンピュータクラブ
- 2022/03/31 今回の気になった bugs.ruby のチケット - Secret Garden(Instrumental)
- ASCIIコード表でZとaの間には記号がある - hogashi.*
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 ASCIIと言ってますからねぇ。localeに注意する人は、LC_CTYPEとLC_COLLATEが分離されていることにも気をつけるかも。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています: 「@miura1729 Unicode系だと同じ文字集合・符号化でも文字の比較順序が複数用意されてるので要注意。 MySQL での例。 https://t.co/3RJfq8aO8y」 / Twitter
- MySQL :: MySQL 8.0 リファレンスマニュアル :: 10.2 MySQL での文字セットと照合順序
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Pythonの float(intも) は全角数字に対応している様子。 ただし、ピリオドは半角のみ対応という微妙な動作。 https://t.co/j61zV978Ts」 / Twitter
- Akira TakiguchiさんはTwitterを使っています: 「@shirouzu ヨーロッパのカンマ小数点とかもあるけど、こういうロケールに影響される複雑仕様は本当やめてほしい。。。」 / Twitter
- キャッシュによるRubyの正規表現のマッチングの高速化の紹介 - クックパッド開発者ブログ
- 週刊Railsウォッチ: Ruby 3.2の正規表現高速化、Googleのosv-scannerほか(20221221後編)|TechRacho by BPS株式会社
POSTD
- Sublime Textの「あいまい一致」をリバースエンジニアリング | プログラミング | POSTD
- 部分文字列とRegExpの領域の冒険 | 未分類 | POSTD
- 40行以内で正規表現エンジンを構築 | プログラミング | POSTD
GitHub
- eriknyquist/librxvm: non-backtracking NFA-based regular expression library, for C and Python
- nadrane/build-your-own-regex: This is a test spec driven guide to help you build a simple regex implementation
- microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
Zenn
- みさわさんはTwitterを使っています 「正規言語は和集合や差集合、共通部分に関して閉じていて、正規言語は正規表現で記述可能なので、正規表現に & や ! を加えることで表現能力が広くなることがないから、よくある実装でも入ってないのかな。 否定とかはキャプチャやらとの関係が面倒になりそうというのもあるが https://t.co/zNqImp6rGi」 / Twitter
- みさわさんはTwitterを使っています 「ちなみに&や!が実装された正規表現エンジンとして、例えば brics などがある。 https://t.co/Ip1GqXQJ5i」 / Twitter
- RegExp (dk.brics.automaton)
- j5c8k6m8さんはTwitterを使っています 「@Mi_Sawa 情報ありがとうございます。本書に追記させていただきました。 https://t.co/NCxAWpXm53」 / Twitter
- 論理演算可能な正規表現エンジンを作ろう
- kinabaさんはTwitterを使っています 「世の"正規表現"は正規言語を超えたてたり実装がオートマトンじゃなかったりというあまり面白くない理由はさておき、正規表現→NFAの変換が|と*だけなら線形時間(なんななら正規表現文字列の添字を状態としてNFA作れる)けど、&や!は二乗や指数で膨れるので実装の面倒くささレベル上がるというのがある」 / Twitter
- kinabaさんはTwitterを使っています 「ブール演算できる正規言語処理ライブラリもっとカジュアルに使われて欲しいというのは非常に同意するものであるのですけど、現状、正規表現等の対象が文字列に特化しすぎなせいで応用が少ないのがまず問題かなあと。みんなもっと整数列とか一般のデータ列に正規表現マッチ気軽にかける世界になりたい」 / Twitter
- 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
- 正規表現の必須要素を抽出する
Qiita
- 正規表現のJITコンパイラを実装する - Qiita
- Brzozowskiのアルゴリズム - なぜDFAを2回反転すると最小化できるのか - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「似た話が Python の isnumeric() 等にあったり。 (あと isdigit() が全角数字も True になるなど) https://t.co/g6izX5wfZz」 / Twitter
- Pythonで文字列が数字か英字か英数字か判定・確認 | note.nkmk.me
- mattnさんはTwitterを使っています: 「Python3 の正規表現の \d は UNICODE 文字なので各言語の数字(全角数字も含む)にマッチするという話。 / “君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita” https://t.co/3xE3VUxlTs」 / Twitter
- 君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita
Wikipedia
- 正規表現 - Wikipedia
- Regular expression - Wikipedia
- Regular tree grammar - Wikipedia
- Thompson's construction - Wikipedia
Twitter
その他
並列化
- Shinji KonoさんはTwitterを使っています 「正規表現自体が並列処理に向いてない説」 / Twitter
- ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono 先頭から舐めていくステートマシンですからね… 同時に何百個も文を解析するなら並列化できるが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@Kumappus ところが、計算クラス自体はNCで並列処理向きらしいんですよ。」 / Twitter
- ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono えー…?(頭の上を小鳥がピヨピヨ回ってる状態)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「バックトラックを並列化できるかなー?」 / Twitter
Hyperscan
- FadisさんはTwitterを使っています: 「linux-rex: eBPFで正規表現を使えるようにするカーネルモジュール。XDPでパケットが正規表現にマッチしたかどうかでフィルタできるようになる。正規表現のマッチングにはHyperscanが使われ、configfsからコンパイル済みの正規表現をカーネルに渡す事ができる https://t.co/qyOs3zNNW8」 / Twitter
- G-Core/linux-regex-module: High-performance regular expression matching library for Linux kernel
- FadisさんはTwitterを使っています: 「Linuxカーネルはカーネル内で生じる様々なイベントに対してeBPFで処理を挟めるようになっているが、XDPはそのうちの1つで、NICからパケットを拾った後Linuxのネットワークスタックにそれが渡る前にパケットの破棄、加工、送信できるようにする」 / Twitter
- FadisさんはTwitterを使っています: 「XDPの用途は色々な物が考えられるが、その1つにDDoS攻撃への耐性を高める事が挙げられる。攻撃者からのパケットをXDPの段階で識別して破棄できれば、パケットは重いネットワークスタックで処理されない為、CPUが攻撃者からの通信で占有される事が防がれる」 / Twitter
- FadisさんはTwitterを使っています: 「パケットの中身を解釈していない段階でのパケットの識別には通常バイト列に対するパターンマッチが用いられる。しかしこの方法で攻撃者からの通信を識別できるケースは限られている為、より複雑な条件でマッチングを行う為に正規表現が欲しくなる」 / Twitter
- FadisさんはTwitterを使っています: 「Hyperscanはパケットフィルタの用途で使う事を目指して作られた高速な正規表現の実装。Hyperscanの論文ではSnort Talosを使ったベンチマークで定番の正規表現の実装であるPCRE2に対し183.3倍高速に処理できたという実験結果が出ている https://t.co/48LvmCQPG0」 / Twitter
- Hyperscan: A Fast Multi-pattern Regex Matcher for Modern CPUs | USENIX
- FadisさんはTwitterを使っています: 「Hyperscanは有限オートマトンによるマッチングより単純なバイト列のマッチングの方が高速かつスケールする事に着目し、まず「その正規表現にマッチする場合必ず現れるバイト列」を取り出す。取り出したバイト列が対象の中にあるかをSIMDで探して有限オートマトンにかけなければならない範囲を狭める」 / Twitter
- FadisさんはTwitterを使っています: 「正規表現の文法上こうした文字列が必ず見つかる保証はないが、実用される正規表現にはこうした文字列が現れる事が少なくない為、Hyperscanは多くのケースで従来の全体を有限オートマトンにして処理する正規表現の実装より高速にマッチングを行う事ができる」 / Twitter
- FadisさんはTwitterを使っています: 「linux-rexはこのHyperscanをカーネルモジュールに突っ込んだ物。このモジュールがロードされているとeBPFで関数bpf_scan_bytesとbpf_xdp_scan_bytesが使えるようになり、固定長のバッファやxdpのパケットの中身に正規表現によるマッチングを行えるようになる」 / Twitter
- FadisさんはTwitterを使っています: 「正規表現のルールはユーザ空間でhyperscanのコンパイラを使ってデータベースにコンパイルし、configfsを介してデータベースとそのデータベースを指すIDをカーネルに与える。eBPF内からbpf_scan_bytes等を呼ぶ時はデータベースのIDでルールを指定する」 / Twitter
微分
- lotzさんはTwitterを使っています: 「正規表現に文字列がマッチするか判定するアルゴリズムの一つに"正規表現を文字列によって微分した結果が空文字列を含むかを確認する"というものがある。この正規表現を微分する方法はいくつか提案されているが圏論におけるモナドを使って統一的に理解することができる📝 https://t.co/enf6Lx2a67」 / Twitter
- [2208.14724] Monadic Expressions and their Derivatives
- ミリ9th DAY1さんはTwitterを使っています: 「先読み付き正規表現の微分について書きました。先読み付き正規表現について興味が持つ人がこれで増えたらいいなと思います。 https://t.co/0ofDAXNBJs」 / Twitter
- Site not found · GitHub Pages
- ミリ9th DAY1さんはTwitterを使っています: 「一応、ここから元の記事が見れます https://t.co/u4SLawIvJW」 / Twitter
- rewla/langimpl-ac2018.html at master · makenowjust-labs/rewla
- κeenさんはTwitterを使っています: 「@make_now_just L(ν(σ,e),D(σ,W))⊆D(σ,W)という式が(少なくとも)2箇所ありますが、2引数のLが定義されていません。L'の誤りですか?」 / Twitter
- ミリ9th DAY1さんはTwitterを使っています: 「@blackenedgold L'の誤りです。」 / Twitter
- ミリ9th DAY1さんはTwitterを使っています: 「@blackenedgold 直しました。ありがとうございます」 / Twitter
- 大渕雄生さんはTwitterを使っています: 「正規表現って微分できるんだ... なんか翻訳間違えてるんじゃ無いかと思っていろんな資料漁ったら割と研究されてる分野だった... https://t.co/vQKqTWj8OH」 / Twitter
- 大渕雄生さんはTwitterを使っています: 「ちょいバズしてるので私が勝手につけた解釈と定義置いておきますね。 https://t.co/BQDOaNR5qG」 / Twitter
- 大渕雄生さんはTwitterを使っています: 「@designpatterngf ですよね!びっくりしました! 微分して圏論の分野に持っていくことで線形時間でのマッチングが可能とか、包含関係の効率的な導出が可能とか色々あるみたいです!」 / Twitter
- 大渕雄生さんはTwitterを使っています: 「@designpatterngf 私がそこら辺全然詳しく無いので今から圏論とか群論とか勉強します...(泣)」 / Twitter
histric
histric-1
- がくぞさんはTwitterを使っています 「動的に正規表現を合成したい、みたいな話は大抵の場合parser combinator使った方が楽なのではと思ってしまうかなー」 / Twitter
- OS作れないマンさんのツイート: "生成されるパターンに順序を付けて、文字列を整数で表現する考え方を @sinya8282 さんから聞いた気がする。 https://t.co/L3OjrTA2Ps"
- kb10uyさんのツイート: "正規表現エンジン、パターンマッチできるということは逆にパターンからマッチする文字列を生成できるよな普通に考えて"
- 島鉄雄さんのツイート: "そのページ冒頭の電話番号の正規表現が複雑過ぎてビビる… 正規表現は結果であって、そこに至る途中経過がバッサリ無いのが問題だろう。 だから、電話番号は正規表現じゃなくて、BNFで記述してパーサジェネレータを使うべきだろうという事を理解した。 可読性が高いし、速度もそれ程問題無いはず。… https://t.co/MDhAwxkmTl"
- tc39/proposal-regexp-unicode-property-escapes: Proposal to add Unicode property escapes `\p{…}` and `\P{…}` to regular expressions in ECMAScript.
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
- regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜 - Eureka Engineering - Medium
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、FastCopy の UNIX WildCard 実装も NFA 。 (ただ、イプシロン遷移対応が面倒だった。あとUTF16対応も)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Readable Regular Expression が欲しいところ。 似たことを考える方は多い様子。 (expresso なんてGUIツールあるのね) https://t.co/KorHIXXCGX」 / Twitter
- Readable regular expressions without losing their power? - Software Engineering Stack Exchange
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに include/exclude は UNIXワイルドカード形式サポートだけど、ビットシフトによる非決定性有限オートマトン(NFA)を使って作ってるので、さほど遅くならないはず。 (ビットシフトだと、NFA弱点の多状態を同時進行できる)」 / Twitter
- yoh2さんはTwitterを使っています 「昔見掛けた、単純なくせにひどく時間がかかる正規表現ってこんなのだったかな。なにか違う気がする。 .*?.*?.*?.*?.*? 最短一致させるためのバックトラックが延々と走るのがミソだったような。」 / Twitter
- 抹茶氏さんはTwitterを使っています 「@yoh2_sdj ReDoS で調べてみて」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
- uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「正規表現を文字列だけではなく汎用的なグラフ構造(シーケンスも含む)に対応して、そのパターンに対するアクション(グラフの書き換え)という言語は出来うな気がする。Prologみたいな感じ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Edisonとかはそんな感じか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「再帰的バックトラックを使わないNFA。こんな効率のいい正規表現のアルゴリズムがあったとは……。 http://swtch.com/~rsc/regexp/regexp1.html」 / Twitter
- Regular Expression Matching Can Be Simple And Fast
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「正規表現文字列以外のマッチングモード引数がない言語だと、(?i) という文字列で ignore case になる実装はあるらしい。 https://t.co/CPh83px65l」 / Twitter
- Regex Tutorial - Turning Modes On and Off for Only Part of The Regular Expression
- Shiro KawaiさんはTwitterを使っています 「正規言語の範疇だからDFAで充分やろ←コンパクトになるとは限らない 遷移を手書きしてたら似たような状態が倍々で増えて行くぞ」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#TypeScript 正規表現を型安全にするライブラリ作ってみた😌 正規表現にマッチしている、つまり結果がnullなら、結果のgroupがundefinedじゃないのは自明だし、groupの中にはyearとかmonthなどがあるのも自明なので、それをTSコンパイラに分からせるやつです。 https://t.co/uBqYbpnYyw」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「ちなみに、これは裏側で型レベルで正規表現を解析してAST化し、それを更に解析してmatchメソッドの戻り値型のヒントにしています。 https://t.co/jsaeN6PeQu」 / Twitter
- Russ CoxさんはTwitterを使っています 「Recommended: Shift-based DFAs, by @pervognsen. https://t.co/ZBw3Kj7QYF Tried it out for replacing Go's utf8.Valid. Don't get to see this very often: https://t.co/WydmztLl7I」 / Twitter
- Shift-based DFAs
- Shinya KatoさんはTwitterを使っています 「2つの正規表現が受理する言語が同じかどうかって簡単に判定できるのかな...?」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「@0x19f 正規表現が正規なら最小 DFA を作って一致判定できるよ」 / Twitter
- Masahrio IdeさんはTwitterを使っています 「https://t.co/7RP8otO1uJ Rubyの正規表現エンジン OnigmoのVMをdirect threaded codeで書き直してみました。手元のM1macではいくつかのbenchmarkで性能が良くなっているように見えるけど、CIはfailしてるのでどこかでLinux環境を手に入れなくては...」 / Twitter
- Support Direct Threaded VM by imasahiro · Pull Request #156 · k-takata/Onigmo
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「正規表現で "," "." "-" のいずれかにマッチしたいときは本来 [-.,] と書くべきだが (途中に-を書くと範囲指定になってしまうので)、実は [,-.] と書いてもバグではない。なぜなら...この3文字はASCIIでまさにこの順序で並んでおり、ちょうど"-"が中間の文字コードだから! https://t.co/LucW5SSpRv」 / Twitter
- The regex [,-.]
- Kazuho OkuさんはTwitterを使っています: 「正規表現エンジンにメアドへのマッチ機能つかないのかな。 \x{email} みたいな。FQDNとかIPアドレスとかもあらかじめ定義しておいてほしい」 / Twitter
- SPARQL - Wikipedia
- κeenさんはTwitterを使っています: 「アップデートに期待。シンプルにLazy DFA使ってるのかと思ってたけど、正規表現見て複数のアルゴリズム組み合わせてるか使い分けるかしてるのかな。Lazy DFAとPike VMって役割被ってない? rust-lang / regexは線形時間で正規表現のマッチが出来るらしい - matsu7874のブログ https://t.co/aQtPAv6Wr5」 / Twitter
- rust-lang / regexは線形時間で正規表現のマッチが出来るらしい - matsu7874のブログ
- κeenさんはTwitterを使っています: 「HACKINGに色々書いてあった。Pike VMはアルゴリズムは優れてるけど実用的に高速化するのが難しいからLazy DFAを基本としつつ適材適所役割を与えてるみたい。 regex/HACKING.md at 79809ce6d02a250d3d03b326db99b09405053789 · rust-lang/regex https://t.co/uxalbQzNlM」 / Twitter
- regex/HACKING.md at 79809ce6d02a250d3d03b326db99b09405053789 · rust-lang/regex
- 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 すみません、文字コードについては詳しくないので頓珍漢かもしれませんが、文字の認識と正規表現の解釈は別のレイヤで行うべきではないでしょうか。つまり、正規表現エンジンには.はあくまである1文字しか渡されないと」 / Twitter
- ViVi & vine - regexp
- ja
- The Man Who Fell From The Wrong Side Of The Sky:2017年5月24日分
- https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
- Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
- ヘルプシステムで正規表現を使う - 増井俊之
- JFLAP Minimize DFA - Google 検索
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「regexパッケージのオプション、「multiline」の意味が完全にJavaScriptとかの正規表現の「multiline」と逆やね... 😱 https://t.co/deSXp3vojW」 / Twitter
- Text.RE.REOptions
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「数学的な意味での正規表現はとてもcomposableな概念なのに、プログラミングでの正規表現は微塵もcomposableでなくてつらいな(動的に正規表現を作るのがめんどくさいエンジニアの魂の叫び)」 / Twitter
- mod_poppoさんはTwitterを使っています 「Rakuの正規表現(正規なのかは知らん)はその辺強力になってるとかいう噂(よく知らない)」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellのregex-applicativeはcomposableと呼べるんじゃないかな。使ったことないけど https://t.co/HikFEFMHjS」 / Twitter
- regex-applicative: Regex-based parsing with applicative interface
- songmuさんはTwitterを使っています: 「正規表現リテラルのクオートもスラッシュじゃなくて任意の文字に変えられる、というのもアツい。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「'' "" 以外で文字列表現できるの、perl の便利なところのひとつだとは思う。 print qq{["hello world"]\n}; # prints ["hello world"] エスケープシーケンスだらけにならないの楽」 / Twitter
- regex - Javascript RegExp + Word boundaries + unicode characters - Stack Overflow
grep
- ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
- 第287回 Ubuntuで超高速grep「The Silver Searcher」を使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- The Silver Searcher のススメ - Qiita
- grepより高速に検索できるag(The Silver Searcher)のインストール方法 - Qiita
- 超高速grep「The Silver Searcher(ag)」からhighwayに乗り換えた - Shoyan blog
- grepの高速版「ag」 (The Silver Searcher) - メモ
- agとptとripgrep,どっちがどうでどれを使えばいいのか調べた予習 - Lambdaカクテル
- agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE
- FadisさんはTwitterを使っています 「FreeBSDからGPLなソフトウェアを排除する努力が続いている話。標準のデバッガがlldbになりgdbがports行きになったほか、GNU grepを置き換えるBSD grepの実装、それによって不要になったlibgnuregexの削除が挙げられている https://t.co/2LiJMqJOe1」 / Twitter
- FreeBSD Continues Work On Ridding Its Base Of GPL-Licensed Software - Phoronix
- ほよたかさんはTwitterを使っています: 「grep -B -A や -C は、自分もここ数年で知った。ログ分析するときに便利。 あとは、-e や -v も」 / Twitter
- Daisuke NakazawaさんはTwitterを使っています: 「情報処理系修士卒の新入社員に教えて感心されたことで意外だったのが grep -B -A。 大学でgrepを当たり前のように使っていても意外と知らないっぽい。 ベーシックなツールで痒い所に手が届くオプション教え合うのって良いよね。」 / Twitter
- えそらびさんはTwitterを使っています: 「@diceken grep -Cもありますよ(BとAの合体みたいなのです)」 / Twitter
- akiさんはTwitterを使っています: 「@diceken alias grep='grep --color=auto -n -C 2' してた」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています: 「@diceken @tomyuk -n とか -c もどうぞ。」 / Twitter
- 古谷大輔さんはTwitterを使っています: 「逸見先生とのやりとりで出てきているripgrep-allですが、元々はripgrepコマンドを拡張させたものなので、自分のPC環境によってもし使えない場合には、以下のGitHub(https://t.co/My7aI7t05t)からripgrep-allのバイナリをダウンロードしてをインストールする必要がある(かもしれません)。」 / Twitter
- phiresky/ripgrep-all: rga: ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
find
- ドッグさんのツイート: "grep に対する ag みたいな,find のユーザフレンドリ版.find のユースケースの80%ぐらいを確保しつつ find より速くて出力が色付きで見やすい https://t.co/lZ8KiQdH4a"
- sharkdp/fd: A simple, fast and user-friendly alternative to find.
- jhawthorn/fzy: A better fuzzy finder
- tavianator/bfs: A breadth-first version of the UNIX find command
編集距離
4人のロシア人の方法
- 「4人のロシア人の方法」で編集距離を高速化する - EchizenBlog-Zwei
- Method of Four Russians - Wikipedia
- MoFR
- レーベンシュタイン距離 - Wikipedia
- Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
- いまさら編集距離 (Levenshtein Distance) を実装するぜ | takuti.me
- 編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学
- レーベンシュタイン距離のアルゴリズムを理解する
- 【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
- 編集距離アルゴリズムを使って文字列を変換する (1/4):CodeZine(コードジン)
- レーベンシュタイン距離の編集操作を統合してグラフ化する - Qiita
- 編集距離についての説明及びPythonでの実装 - Qiita
- 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
- SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | POSTD
- bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
- 七誌さんはTwitterを使っています: 「単語の類似度と言えばレーベンシュタイン距離なので記事を読んでいた。 Pythonのデコレーターは処理系へのアノテーションではなく、関数をラップする糖衣構文だと知って驚いた。 このメモ化の手法はLISPっぽい。 編集距離(レーベンシュタイン距離)を理解し、実装する https://t.co/m1jBS6A5po」 / Twitter
- 編集距離(レーベンシュタイン距離)を理解し、実装する - Qiita
- retrageさんはTwitterを使っています 「これ、足し算と引き算は教師データの中に繰り上がりと繰り下がりが網羅されているので正解しやすく、掛け算では網羅されにくいので結果として不正解になりやすいのでは」 / Twitter
- Brendan Dolan-GavittさんはTwitterを使っています 「Heatmaps of similarity between GPT-NeoX-20B's answers and the correct answer (using normalized Levenshtein distance) https://t.co/q6OPSv24Pb」 / Twitter
ソート
Blitsort
- mattnさんはTwitterを使っています 「マージソートを繰り返してく安定ソート。場合によってはクイックソートより速いらしい。 / “GitHub - scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort” https://t.co/XnzA8vscHR」 / Twitter
- scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort
- mattnさんはTwitterを使っています 「マージソートの場合は左辺が常に完結するけど、完結させずにローテートさせていくらしい。」 / Twitter
- mattnさんはTwitterを使っています 「普通のマージソートの場合はこの完結が次第に大きくなるけど、このソートの場合は L1 キャッシュに乗る程度で繰り返されるので速いと。なるほどー。」 / Twitter
- mattnさんはTwitterを使っています 「ローテーションは block swap というアルゴリズムを使うらしい。 https://t.co/Q5LVVhbjyR」 / Twitter
- scandum/rotate: A collection of array rotation algorithms.
- mattnさんはTwitterを使っています 「インタフェースが qsort ぽく、エレメントのサイズと比較関数を渡せる様になってる。実用的。 https://t.co/hGuKF2eoc1」 / Twitter
- blitsort/blitsort.h at f84083834ac78994fc92473f286337f62e2a0bee · scandum/blitsort
シュワルツ変換
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そうか、シュワルツ変換した上でのsortって未だにJavaScript標準にはないのね... underscore.jsとかがもてはやされるわけだ。Prototype.jsが恋しい。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「よく考えたらHaskellのData.Listモジュールにもないじゃないか。一度全要素を処理してからじゃないとsortできなくなっちゃうから、Data.Listのsortと相性が悪いんでしょうね。でも見た感じvector-algorithmsにもないなぁ。意外と需要ないのかね。」 / Twitter
- 鶴谷さんはTwitterを使っています 「@igrep sortOnってData.Listモジュールじゃなかったでしたっけ?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@TTsurutani すみません、そうでした!ちゃんとすべての要素を変換した上でsortしてる! https://t.co/6fvrzW4N3E」 / Twitter
- https://hackage.haskell.org/package/base-4.16.0.0/docs/src/Data.OldList.html#sortOn
- 安定ソート - Wikipedia
- Kazuho Okuさんのツイート: "なるほどMSBからradix sortすればcache localityが確保できるのか #spkai"
- Kazuho Okuさんのツイート: "cache digestsの計算はradix sort使ったほうがいいんだろうな。存在すら忘れてた #spkai"
- 404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い
- 404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な
- 積炭酸さんのツイート: ".NET ReflectorでC#のArray.Sortの実装見てるんだけどおもしろいね.再帰の深さ制限したクイックソートを使っているようだ."
- ミクミンP/Kazuhiro Sasaoさんのツイート: ".NET Framework 4.5 以降は標準実装のソートアルゴリズムがイントロソートになったのか https://t.co/yPIyT5uAro 最悪でも O(n log n) 。 4.0まではクイックソートで最悪 O(n^2) https://t.co/EvD4ZyGcmf"
- Array.Sort Method (Array) (System)
- Array.Sort Method (Array) (System)
- 積炭酸さんのツイート: "ついでにSTLのstd::sort(Dinkumware)も見てみたけど,やっぱり似たようなことしている.範囲の大きさを見てヒープソートに切り替えたり,挿入ソートに切り替えたりしている."
- イントロソート - Wikipedia
- Introsort - Wikipedia
- 高梨陣平さんはTwitterを使っています: 「C++のstd::sortより10倍速いsortをGoogleが開発。 SIMDを活用。」 / Twitter
- Hacker NewsさんはTwitterを使っています: 「Significantly faster quicksort using SIMD: https://t.co/BF81cy3HDT Comments: https://t.co/NcgGA4JmPT」 / Twitter
- Vectorized and performance-portable Quicksort | Google Open Source Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「libcxxに含まれるstd::sortを改良するまでの長い道のり。STL時代のsortはクイックソートと挿入ソートを組み合わせた方式だったが、C++11では「最悪」ではなく「平均」計算量を規定するようにした。要素数が小さい場合 は強化学習(!)を使って発見された比較方法を使っている。 https://t.co/qR1Do6atKg」 / Twitter
- Changing std::sort at Google’s Scale and Beyond – Experimental chill
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「クヌース先生の本にqsortも分割してnが小さくなってきたら、挿入ソートに切り替えると書いてある」という話、昔、RingServerミーティングの道すがらShow(@shownakamura)さんから「qsort→挿入ソートという切替が、常時、挿入ソートになるミスが混入してて困った」というネタと共に聞いた記憶。… https://t.co/3fgdn2W6i8"
- satさんのツイート: "昨日だかにバブルソート(O(n^2)のほうがクイックソート(O(n*log(n)))より速いケースいついて少し触れたので、小さな記事を書いてみました。バブルソートのかわりに挿入ソートを使っていますが、両方O(n^2)なので s/挿入/バブル/ と読み替えてもだいたいOKのはず https://t.co/H5nJZhPbzq"
- ソートの計算量と現実のプログラム - Qiita
- satさんのツイート: "「バブルソートのかわりに」以降は忘れてください…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、WindowsSDKのqsortはループ実装かつ、ピボット配列が62個の固定長で確保されている(64bit版)。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "qsortの最悪ネスト数はn=最大ピボット数では?と思ってしまうが、2分割するたびに個数の少ない方から先に処理するというトリックで、最大log2N を実現。 さらに小さなエントリは挿入ソート切り替えのため、log2 2^64 = 64から2減らして、62個の配列でOKという話。… https://t.co/RA77dPcHC1"
- 高速な比較安定ソートアルゴリズム「颯式」の紹介 - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「世界一単純な? ソートアルゴリズム。 for i=1..n: for j=1..n: if a[i]<a[j]: swap(a[i], a[j]) 一見バブルソートのように見えるが、if判定の不等号の向きがバブルソートとは逆になっているのに、それでもソートされる。 https://t.co/1qSnomUrUR」 / Twitter
- [2110.01111] Is this the simplest (and most surprising) sorting algorithm ever?
- ドッグさんはTwitterを使っています 「- https://t.co/e5U4T9x2vE musl は smoothsort(ヒープソートの亜種) - https://t.co/73CC4NBnfm glibc は配列のサイズによって分岐してる.サイズが大きいと改良版クイックソート使って in place にソートしてる」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「「ライブラリ使うから関係ない」って反応が意外に多くてびっくり。自作しないまでも、技術の良し悪しをどう判断するんだろう。 例えばクイックソートが常に良い訳ではなく、「100万件から上位10件」を出力みたいなケースなら、単純ソートを途中で打ち切る方がマシだったりする。」 / Twitter
- ™さんはTwitterを使っています 「quick sort の計算量が理論側の「常識」だとしたら,実装側の「常識」は多分 latency numbers https://t.co/FxXsGvLi3w かしら.」 / Twitter
- Teach Yourself Programming in Ten Years
- Approaching Heapsort via Lazy Mergesort - HackMD
- d.y.d.
スペルチェッカ
ブルームフィルタ
- ブルームフィルタ - Wikipedia
- Bloom filter - Wikipedia
- 確率的データ構造・ブルームフィルタについてのまとめ - kakts-log
- ブルームフィルター | 仮想通貨ビットコイン(Bitcoin)の購入/販売所/取引所【bitFlyer(ビットフライヤー)】
- Shiro Kawaiさんのツイート: "Bloom filterはCommon Lispで実装されたものを以前仕事で使ったことあるけど気をつけて型宣言すれば非常に速いっす。Allegro CLではビットベクタのインデックスの範囲チェックを省くのに型宣言での値の範囲指定がクリティカルだったような覚えが… https://t.co/0VaNFjJg88"
- Common Lispで動くブルームフィルタ作った - Lambdaカクテル
- C++でブルームフィルタを実装する方法 | POSTD
- 渋川よしきさんのツイート: "Wordの文法チェックについてすごい書かれている。.netでもCOMでもいいからAPI化してほしいって10年ぐらい思ってる。… "
- 確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | POSTD
- GNU Aspell - Wikipedia
- 欧文スペルチェッカー GNU Aspell — 名無しのvim使い
- Rockridgeさんのツイート: "Fx55:Googleドキュメントなどアプリ側でスペルチェッカーが働く場合は、本体側のスペルチェッカーを動作させないことで無駄な処理を省いた。 / “1330912 - Don't init spell checker for …” https://t.co/CPLktJo8M0"
- Makoto Kato ︎︎さんはTwitterを使っています 「Android 13の新規APIを見てたけど、これは自分が一番ほしかったやつでは? datalistとかspellcheckerの実装に使えるのではと https://t.co/FC3uoCYPUd」 / Twitter
- TextAttribute | Android Developers
GitHub
- rhysd/NyaoVim: Web-enhanced Extensible Neovim Frontend
- rhysd/neovim-component: <neovim-editor> WebComponent to embed Neovim to your app with great ease
- vim/vim: The official Vim repository
- welcome home : vim online
- antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.
- DigitalMars/me: Micro Emacs in C
- GrenderG/tte: tte (tiny text editor) is a terminal based text editor written in C from scratch.
- adsr/mle: a small, flexible console text editor (C)
- martanne/vis: A vi-like editor based on Plan 9's structural regular expressions
- lpan/viw: VI Worsened, a lightweight and fun VI clone.
- hellerve/e: A dead simple editor
- maildrop/a2pr-j
Qiita
- ctrlp.vimの使い方まとめ - Qiita
- 自作エディタをつくる Advent Calendar 2016 - Qiita
- HTML内でIDをつけた要素はJavaScriptのグローバル変数に格納される - Qiita
- メニュー使っていますか? - Qiita
- いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
- Emacs の Major Mode におけるインデント計算を楽にする smie.el - Qiita
- ゴリサンタですさんはTwitterを使っています 「:helpgrep でヘルプをgrepする事ができます 正確なwordを知らなくても、関連単語を使って絞り込めます 例えば :helpgrep job でgrepするとjobを含むヘルプがquickfixで開かれるので、その中からほしい情報を絞り込めます #vimtips_ac」 / Twitter
- Vim Short Tipsのカレンダー | Advent Calendar 2021 - Qiita
- Jetpack Composeでテキストエディター(Beta版)を作ってみた - Qiita
- AmazonのAPI設計方針 (The Bezos Mandate) - Qiita
- Firefoxは危険なJavaScriptに対応しない - Qiita
Wikipedia
- vi - Wikipedia
- vi - Wikipedia
- nvi - Wikipedia
- nvi - Wikipedia
- Vim - Wikipedia
- Vim (text editor) - Wikipedia
- Delphi - Wikipedia
Twitter
histric
histric-1
- 渋川よしきさんはTwitterを使っています: 「あとはヘルプとか、カスタマイズ機能とか・・・」 / Twitter
- KOBA789さんはTwitterを使っています: 「Undo/Redo, コピペ, 範囲選択などの当たり前の機能がめっちゃ実装面倒なのは自作 GUI 勢には常識」 / Twitter
- 情報学広場:情報処理学会電子図書館
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今こそ汎用(N分木)木構造エディタが求められているのじゃなかろうか。汎用テーブルエディタがExcel(スプレッドシート)だとして。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラミング、7つの大罪: 1. タブでなくスペースを使うこと 2. スペースでなくタブを使うこと 3. 自動インデントを使わないこと 4. IDEを使うこと 5. IDEを使わないこと 6. C/C++を習わないこと 7. わざわざ低水準言語で書くこと 8. 配列の添え字が1だけ多いこと https://t.co/nhtgOhkgMA」 / Twitter
- The 7 deadly sins of programming : ProgrammerHumor
- マイクロソフトサポートさんのツイート: "メモ帳で「F5」を押すと、現在の日付と時刻が挿入できます。ちょっとした会議のメモなど、日付を入れておきたい文書の時に便利ですよ。 #MSHelpsJP"
- 分散処理に詳しいオタクさんはTwitterを使っています 「Emacsのお気に入りな機能にM-tの単語入れ替え機能があって、間違って INFO(LOG) とか入れてしまった時に一発で LOG(INFO) にスワップできます(そんな入力ミスをするな)」 / Twitter
- 七誌さんのツイート: "VSCodeで全置換したとき、キャレットが動かないのが地味に便利だということに気付いた。"
- なかのん DAYS''さんはTwitterを使っています: "思った以上にキャレットが多かったですね。ちなみに、用語的にはカーソルは、マウスカーソルを指すことが多く、キャレットを使った方が誤解が無くなります。"
- PG_MANA@FUKさんはTwitterを使っています: 「変数名も大事だけどせっかく最近の立地な言語とエディタがあるなら、変数宣言の後ろか、一行上にコメントで説明をつけると、その後の変数利用箇所にマウスオーバーするとコメントがポップアップされる方がとても読みやすい」 / Twitter
- VimオタクですさんはTwitterを使っています: 「rust-analyzer に fill struct みたいな機能はないのだろうか🤔 Defaultトレイトを実装するとき、フィールドが多いと手打ち面倒なんだよね…」 / Twitter
- ぽんこつさんはTwitterを使っています 「JavaのimportはIDEが自動で書くやつという認識で大体良いんだけど、Scalaのimportはよく import hoge.fuga.Implicits._ とかいうやつがあって、なんか怪しい挙動を感じたらimportを確認しないといけないやつ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IDE で関数単位で全return文にbreakをセット/解除するボタン欲しい。」 / Twitter
- hikaliumさんはTwitterを使っています 「変数名の取り違え、型さえ合っていればコンパイラは無力なの悲しい(変数名の取り違えを防ぐコンパイラやlinter側での努力に関する研究ってあるのだろうか?(ソフトウエア工学とか心理学とか方面寄りになりそう?))」 / Twitter
- KOBA789さんはTwitterを使っています 「@hikalium rust-analyzer とかだと仮引数の名前と実引数の名前に common suffix がない場合は仮引数の名前がエディタ上で補完されて名前付き引数のような見た目になったりしますね」 / Twitter
- もんど@HTML解体新書Kindle版配信中📖さんはTwitterを使っています: 「autocomplete属性の道はけわしい…(よく各国のものを集めたなあこれ…) みてる:Address form analysis https://t.co/DUW6cez0Vz」 / Twitter
- Address form analysis
- もんど@HTML解体新書Kindle版配信中📖さんはTwitterを使っています: 「ネタ元:autocomplete attribute for street-address details · Issue #4986 · whatwg/html https://t.co/ssVyNe2ICR」 / Twitter
- autocomplete attribute for street-address details · Issue #4986 · whatwg/html
- Google、揺れやミスのある住所表記を検証、正確な住所の推定、標準的な住所表記などを出力する「Address Validation API」正式リリース。米国や欧州などから順次展開 - Publickey
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています: 「コールグラフ、一つの関数から始めて呼び出し元を深さ優先で探索するのがほしいなぁ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「Velocity (単位時間あたり何個のタスクが完了したか) は情報が少なすぎ、意思決定の役に立たない。ソフトウェア開発のタスクは待ち行列として定式化されるべきで、ここでの重要な指標は 1. 到着率、2. キューの長さ、3. スループット、そして 4. 平均サービス時間である。 https://t.co/QSrVCIecAn」 / Twitter
- Useful engineering metrics and why velocity is not one of them
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「関連: ソフトウェア開発プロセスを「システム」として議論することの危うさ。多くのこうした議論は、開発プロセスが実際には生身の人間によってなされていることを無視している。また、裏付けを神秘主義・権威主義に頼っていることが多い。 https://t.co/hEyG4uVQPH」 / Twitter
- Fools! Stop Mysticizing System Dynamics - Richard Marmorstein
- ななうぇぶさんはTwitterを使っています: 「脳死で一般名詞で作り始めないでドメインの概念や知識を学んだほうがいいのは当然なんだけど、ある程度作ってから違ったことに気づいたらIDEの機能でリネームすれば良い。JetBrains系IDEならリネームしたら参照も全部書き換えてくれるからサクッとこれができる。文明の利器。」 / Twitter
- su10@ハイパーカジュアルゲーム開発さんはTwitterを使っています: 「正しい名前をつけようと思ったら実装がある程度済んでからじゃないと難しいと思うんだけど、ファイルシステムの仕組み的にまずファイル名(≒クラス名)が要求されるのがあまり良くないんだと思う。 そのせいでUserとかPlayerとかGameManagerがとりあえず最初に誕生してそのまま肥大化していく。」 / Twitter
IME
- lotzさんはTwitterを使っています: 「全てのプログラマーが試すべき挑戦的なアルゴリズムとデータ構造(6選) ・トポロジカルソート ・再帰下降構文解析 ・Myersアルゴリズム(差分検出) ・ブルームフィルター ・Piece Table ・スプレー木 年末年始でじっくり調べると楽しそう https://t.co/HyPhyXEKHG」 / Twitter
- Challenging algorithms and data structures every programmer should try - Austin Z. Henley
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています: 「農学、薬学の人たちの研究は門外漢から見ると化学に見えるし、化学の人たちの研究は門外漢から見ると理論物理に見えるし、理論物理の人たちの研究は門外漢から見ると数学に見える。そして情報系の人たちの研究は門外漢から見るとゲームで遊んでいるように見える。まじで。」 / Twitter
その他
- Google 入力ツールをオンラインで試す – Google 入力ツール
- Wolfram|Alpha 日本語版:計算知能
- 家庭・趣味向けのMathematicaの価格:個人ライセンスオプション
- 技術情報 – 株式会社科学計算総合研究所
- コグニカル
- Interpretable Machine Learning
- The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction • Software Engineer as Data Scientist
- 機械学習の研究者を目指す人へ | Hiroshi Takahashi
- 全ての機械学習の論文は新しいアルゴリズムを提案しているのですか? - Quora
- はまさんはTwitterを使っています 「@shunji_umetani 嘘にならない範囲で限界までポジショントークするなら「確かに似てますよね!じつは機械学習も中身は最適化問題を解いてるんですよ!データから最適なアクションを見つけだす技術が機械学習。でも最適化にはデータなしで最適なアクションを見つけ出す技術もあります!」」 / Twitter
- Hal TasakiさんはTwitterを使っています 「『数学:物理を学び楽しむために』田崎晴明 無償公開している大学生向けの教科書を久々に改訂。 主に行列の対角化の周辺を整備した。これでかなりスッキリと読みやすくなり内容も充実したと思う。スペクトル分解や正規行列の対角化可能性にも言及した。 https://t.co/ZAmRSjY7zZ」 / Twitter
- Math book
- えるエルさんはTwitterを使っています 「PRMLと並ぶ機械学習の入門書として名高いMurphy先生の本が,深層学習以降も含む進化版として出版されるようで,ドラフト版が公開 https://t.co/1h1J1ELvNc 1600pの大作の前編で,続編のAdvanced Topicsもあるそう Deep以前の最強のML本にDeepの話題も加わり,単体の網羅度では最強の教科書(鈍器)では https://t.co/5UeTagu6No」 / Twitter
- https://probml.github.io/pml-book/book1.html
- nianticlabs/monodepth2: [ICCV 2019] Monocular depth estimation from a single image
- ライブ エディターへの数式の挿入 - MATLAB & Simulink - MathWorks 日本
- Amazonのデータセットで始める商品検索
- 素粒子物理学に必須級のソフトウェア「FORM」の保守はたった1人の老科学者が担っている、新しい機器では使えなくなり研究が停滞する危険性 - GIGAZINE
IME
その他
IME
- 日本語入力 / エスリル
- フリック入力の基本 / iPhone5の使い方動画 - YouTube
- Seamonkey インプットメソッド仕様書
- 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記
- “http”が“hっtp”になるイライラを解消する「ImeCaretColor」【レビュー】 - 窓の杜
- SKKがブラウザ経由で使える「SKK Anywhere」を作ってみた - yunazuno.log
- パッチを当ててuim-skkをUTF-8化する | κeenのHappy Hacκing Blog
- im2018 · mamorlis/chaime Wiki
- RFC: Add new enum value for private mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
- 英語圏の人は特殊文字をどうやって入力してるんだろう? | yutarineの日記 | スラド
- 第689回 Ubuntu 21.10でFcitx 5を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- iOS ではカナ表記のアイヌ語の入力ができる|Colorless Green Ideas
エディタ
- Big Sky :: Vim と日本語入力の話。
- SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!) - しふーのブログ
- エディタのVimモードで、Escキーを押したときに日本語入力をオフにする設定(macOS, Windowsそれぞれの場合) - nosu blog
自然言語処理
- 分かち書きする言語しない言語のトークン化を統一的に扱う方法を妄想してみる - 言語と知能
- GBDT - Google 検索
- ☔️⚡️さんはTwitterを使っています 「正直、文章のクラスタリングならばもうGBDTでいいと思う。 NN使うとやっぱ最大の課題はAPIにしたとき重いんですよね。 精度もAUCで3%ぐらいしか違わないので、高頻度で叩かれるAPIを想定するとGBDTに分があります」 / Twitter
- 言語処理100本ノック 2020 - NLP100 2020
- ラフ集合 コーパス - Google 検索
- Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「ツイッターのような短文書分析用の新しいトピックモデル。ACL2020。文書に含まれる分野を教師なし推定するトピックモデルの代表格がLDAだが、各文書に含まれる単語数が少ない短文書では弱い。分散表現は併用せず、最後まで単語を離散的に扱う純粋なトピックモデルのようだ https://t.co/jl8JMPveFA」 / Twitter
- An Online Semantic-enhanced Dirichlet Model for Short Text Stream Clustering - ACL Anthology
- Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「Semantic enhancedと書いてあるので、GLoVeみたいな単語の連続的な分散意味表現を別に持ってきて併用する方法かと思ったんですけど、どうやらそういう話ではなく、離散的な単語表現からトピックと各単語の間のsemantic weightという値を計算して、教師なし学習時に逐次更新するらしい。」 / Twitter
- C3-3.pdf
- 論集49-2_白田.indd
- Mamoru KomachiさんはTwitterを使っています 「何がギャップだったかというと、言語学での自然言語処理はルールベース万歳でひたすら辞書やルールといった知識を書く(プログラミングは正規表現的な)アプローチだったのに対し、工学の自然言語処理は統計的手法全盛で、コーパスにタグを付けて機械学習するというアプローチだったので、違いすぎた。」 / Twitter
- 『トピックモデル』の勉強ノート:記事一覧 - からっぽのしょこ
- Googleが表形式データを使用して自然言語の質問に答えるためのAIをオープンソース化
- Salesforceがデータベース用自然言語インターフェースPhotonをリリース
- MicrosoftとGoogleが言語横断のAIタスクに対する新しいベンチマークをリリース
- しょこβ📚さんはTwitterを使っています 「本にはないけどこれを変分ベイズでも解くという遊び方に気付いてしまった。 #OsakaR はてなブログに投稿しました #はてなブログ 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ https://t.co/o7dO1GJjdw」 / Twitter
- 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ
- nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
- 系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出 - クックパッド開発者ブログ
- NPSアンケートを自動分類した話 - クックパッド開発者ブログ
辞書
- Yuki YoshidaさんはTwitterを使っています 「国語辞典、循環参照するじゃんと思ってたが、あれは連立方程式だと思えばいいのか。巨大な連立方程式の解として全ての言葉を定義している。」 / Twitter
- 翻訳するポット🫖さんはTwitterを使っています 「@yos1up すこし違いますが、減衰係数をかけて代入を繰り返して計算解を出すという手法もあります。 鈴木敏『辞書に基づく単語の再帰的語義展開』 https://t.co/Fy1Hj67Bng」 / Twitter
- 情報学広場:情報処理学会電子図書館
スクレイピング
- ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点 - GIGAZINE
- ローカル環境で netlify lambda のエミュレータを動かす - mizdev
- netlify-lambda で puppeteer を起動する - mizdev
- ブラウザのさまざまな操作を自動化するためのガイドをまとめたサイト「theheadless.dev」 - GIGAZINE
- theheadless.dev - Learn Puppeteer & Playwright
- checkly/theheadless.dev: Learn Puppeteer and Playwright - Tips, tricks and in-depth guides from the trenches.
- ブラウザ自動化ライブラリ Puppeteer が Firefox をサポート
- Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース
- ウェブサイトの情報を自動で取得する「ウェブスクレイピング」をJavaScriptで行う方法 - GIGAZINE
依存関係グラフ
- 特徴量重要度だけで解釈するのはやめよう~部分依存グラフのすすめ │ キヨシの命題
- 特徴量ごとの作用を使ってモデルの中身を解釈する l DataRobot
- 依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?|NTTデータ数理システム
- 機械学習モデルの解釈の入門: Partial Dependence Plot(部分依存グラフ) - GRI Blog
- 故障位置決めのためのBayesネットワークに基づくプログラム依存グラフ【Powered by NICT】 | Semantic Scholar
- P1-31.pdf
耳コピ
- しゃをみんさんはTwitterを使っています 「ブログに書きました。先日のOngaACCELシンポジウムで発表されたAI自動採譜の研究について、自分が関わったパートを少し詳しく解説してみました。 「AI自動耳コピ」の研究者がいま考えていること - しゃをみんの自習部屋 https://t.co/DMvmLqcouH https://t.co/uPWmlwqNAq」 / Twitter
- 「AI自動耳コピ」の研究者がいま考えていること
- 【藤本健のDigital Audio Laboratory】音を楽譜にする“耳コピ”はここまで来た。AI自動採譜の最前線-AV Watch
- [2005.07091] Semi-supervised Neural Chord Estimation Based on a Variational Autoencoder with Latent Chord Labels and Features
- 位相的データ解析(Topological Data Analysis)について | ALBERT Official Blog
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 整数計画法による定式化テクニックをまとめたい - 締め切り駆動開発
- NumPyroによるベイズモデリング入門【線形回帰編】 | deepblue
- 松本徹三さんはTwitterを使っています 「@shirouzu 現在の延長線上ではシンギュラリティーは無理だと思っています。三つの点でブレークスルーが必要です。1)推論スピード(量子コンピューターが必要)2)データベース(大量の文書や講演・演説等のデジタル格納が必要)3)規範の認識と遵守、自由意志、自律的問題提起、閃き、等々の問題の解明。」 / Twitter
- 「相手のあらゆる行動の確率を計算する」ポーカーAIをFacebookが開発、将来的にはサイバーセキュリティへの応用も - GIGAZINE
- 誤情報に対抗するための判断材料を提供する「コンテキスト化エンジン」構想 - GIGAZINE
- 【徹底解説】変分ベイズをはじめからていねいに | Academaid
- 入力ミスとおさらば! IME状態に応じてカーソルのスタイルを変更する「IME indicator」【レビュー】 - 窓の杜
- Makoto Kato ︎︎さんはTwitterを使っています: 「wime (WINE上で動かしたWindows IMEをLinuxで使う)ってあったなぁと思ったけど、まだアクティブの活動してたのは驚き https://t.co/KbSmiz2Rmg」 / Twitter
- wime
ローマ字
AZIK
- yhara (Yutaka HARA)さんはTwitterを使っています: 「僕も長年のAZIKユーザです。漢直やDvorakと比べると学習コストが低いのがいいよねえ。」 / Twitter
- hsjoihsさんはTwitterを使っています: 「AZIK は実際かなりお薦めですね。私も愛用しています。最小限の移行コストで14%ぐらいの速度上昇に繋がるので、タイピング速度そのものはそんなに速くない私でも会話をリアルタイムでメモったりできる速度が出る #DevelopersIO ローマ入力でタイプ数が減らせるAZIKのススメ https://t.co/9evC8oJ3am」 / Twitter
- ローマ入力でタイプ数が減らせるAZIKのススメ | DevelopersIO
- AZIK総合解説書
- yhara (Yutaka HARA)さんはTwitterを使っています: 「弱点としてz + hjklで矢印を入力するやつと共存できないんだけど、これ別のキーに割り当てたらいいだけか。開いてるキーあるかな。」 / Twitter
- hsjoihsさんはTwitterを使っています: 「@yhara 私は「ひだり」「みぎ」「うえ」「した」で変換して出してますが、出回ってる AZIK ローマ字テーブルだと一打目が V の打鍵が多分空いてます(私は VD に「う゛ぇん」とか入れてますけど)」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「@hsjoihs おなじく「ひだり」ですが、変換した際に「左」「←」のどっちが出てくるのか分からないのが若干のストレスなんですよね。 Vかー、頻度は低いですが「ヴァンホーテン(vzho-td)」とか「ヴィンテージ(vkte-ji)」とかで使ってそうです。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています: 「AZIKの基本アイデアは「日本語入力でszとかkzとか打つことはない→じゃあその組み合わせを"さん"とか"かん"とかに割り当ててもいいよね」で、 ?zで?ann (例:sz = さん) ?kで?inn (例:sk = しん) ?jで?unn ?dで?enn ?lで?onn が出ます。このzkjdlはそれぞれaiueoの下のキーなので覚えるのは簡単。」 / Twitter
- hsjoihsさんはTwitterを使っています: 「@yhara あとはまあ、 L が空いてますね。打ちやすさに多少の難がありますが」 / Twitter
Twitter
- 毎日新聞さんのツイート: "ローマ字の「ち」は「ti」と「chi」。 教育現場からは「どちらかに一本化してほしい」との声が上がっています。 https://t.co/pJXfyqmaN5"
- SASANO Takayoshiさんのツイート: "「ち」は「chi」表記じゃないかなあ。「ti」は「てぃ」という発音に見えるんだけど。(キー入力のことは考慮しないツイート"
- SASANO Takayoshiさんのツイート: "入力は多分tiだと思います。 #ち"
- SASANO Takayoshiさんのツイート: "むしろぁぃぅぇぉ入力がlaなのかxaなのかで戦争が起きるような"
- SASANO Takayoshiさんのツイート: "ていうか何故統一したがるんだろう。どっちでも良いものは「どっちでもいい」を許容しなよ。"
- Orumin de Izumoensisさんのツイート: "このまえ,ローマ字入力で ti か chi かで訓令式かヘボン式かみたいなアンケートが出回っていたのだけれども,昭和二十九年十二月九日のローマ字のつづり方(内閣告示第一号)における第二表に,"ち"を chi と綴る方法が乗ってる https://t.co/g3qvGc8ft8"
- KIMATA RobertHisasiさんのツイート: "なんで選択肢が訓令式とヘボン式からの択一なのか。ISO 3602はなぜかこういう時に話題にすら上がらない。国際標準なのに。あと99式とか日本式とかもあるがこちらも話題に上らない。更に固有名詞の場合、ローマ字の書き方無視して全く別の綴りになる場合もあるが、そういう場合の対策も出ない https://t.co/kXpjfgJJhc"
- Shiki OkasakaさんはTwitterを使っています 「いまパソコン用として小学生にみせているローマ字表にも、ひどいなぁ、とおもうものがあります。「JYA」とか「CYA」とか、いいかげん消さないと。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「いまだにJIS X 4063ベースのものをくばっているところがあるというお話です。ねんのため。」 / Twitter
- iropanipopedoさんはTwitterを使っています 「@shiki_okasaka 子どもに配られたものには JYA, CYA はないですね。 https://t.co/FBxklPDvEl」 / Twitter
- ローマ字 - Wikipedia
- 99式ローマ字 - Wikipedia
- ISO 3602 - Wikipedia
- UT_Komaba_Nihongo_no_romaji_hyoki_v1a
- ヘボン式ローマ字一覧表です。ローマ字のヘボン式と訓令式の違いを知っておこう!
- 正しく知っておきたい「ヘボン式ローマ字」の基礎知識 - NAVER まとめ
- 新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
- 新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
総ルビ
- Shiki OkasakaさんはTwitterを使っています 「総ルビくらい、技術的にはほとんどコスト0でふれるんだけどな。ユニコードのルビ、なんとか標準までもっていけないものかなぁ。ツイートでルビふれないのも、けっこう社会的な問題だとおもう。 https://t.co/nD1OKToN7c」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「画面の動画は「ふりがなパッド」のものです。「ひらがなIME」とセットでうごいています。Ubuntu や Raspberry Pi などでつかえます。 https://t.co/T4C3r1zaBT https://t.co/7WyDRKuGR9 https://t.co/wvs4DxjH7w」 / Twitter
- esrille/furiganapad: ふりがなパッド
- esrille/ibus-hiragana: ひらがなIME for IBus
- Shiki OkasakaさんはTwitterを使っています 「ユニコードのルビというのは、ただのテキストでもルビをもてるようなしくみのことです。(「ふりがなパッド」は、ユニコードのルビを編集・表示できるテキストエディター。) https://t.co/eOai11QCao」 / Twitter
- ルビ - Wikipedia
漢字含有率
- Shiki OkasakaさんはTwitterを使っています 「漢字含有率をさげるかきかた。 1. 和語はかながきを基本にする。 2. 常用漢字表を意識して、むずかしい漢字をさける。 3. 国語化した漢語は、かながきにする。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「2.は、IMEのせいもあって、無視されていることがおおい。かいた本人のこのみとは無関係ということもおおそう(あとでよめなかったり)。IMEの漢字辞書の構成法については、山田尚勇さんが提言をされていた。 https://t.co/LndZrEIifW」 / Twitter
- www.pitecan.com/presentations/PenInput/tcode
- Shiki OkasakaさんはTwitterを使っています 「3.は、当用漢字表の「代名詞・副詞・接続詞・感動詞・助動詞・助詞は,なるべくかな書きにする」というルールから。いまでも、実践されているひとはおおいよう。梅棹忠夫さんは、これを形容動詞(ナ形容詞)にまでひろげてかかれた。 https://t.co/dLaKFh86Xw」 / Twitter
- 文化庁 | 国語施策・日本語教育 | 国語施策情報 | 国語審議会(終戦~改組) | 当用漢字表
- Shiki OkasakaさんはTwitterを使っています 「当用漢字表のときにきめた「ふりがなは,原則として使わない。」というルールが、いいまでも、けっこう尾をひいていたり。 RT> https://t.co/dLaKFh86Xw」 / Twitter
- 山本 和英 ※暑中お見舞い申し上げますさんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
- それは常用漢字ですか?
- Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
- 人名用漢字:その漢字が子の名に使える漢字かを判定する
- 「やさしい日本語」のお焚き上げ - 水底の血
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、AltGrキーを有効にすれば、記号などを直接入力できるようにしました(まだ、masterのみ)。(絵文字は、IBus標準のCtrl-Shift-eで入力してください。ねんのため。Gtk 4では、Ctrl-.でGtkEmojiChooserをつかって入力できるアプリがふえそうですが。) https://t.co/UTDblghz4W」 / Twitter
- 実験的な機能 ― ひらがなIME
- Shiki OkasakaさんはTwitterを使っています 「Ctrl-Shift-eとうったあと「はて?」となるひともいそうなので補足。そのあとスペースをうつと、絵文字のメニューがでてきます。(GtkEmojiChooserのUIのほうが、わかりやすい感じはします。)」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、周辺テキストに対応していないアプリケーションでは「よみ入力モード」をつかうようにしました(まだ、masterのみ)。日本語を入力するとき、Chromeなどでは「よみ入力モード」をつかうようになります。 https://t.co/If1KX817zO」 / Twitter
- 周辺テキストに対応していないアプリケーションでよみ入力モードを有効にする · Issue #87 · esrille/ibus-hiragana
- Shiki OkasakaさんはTwitterを使っています 「Firefoxなどでつかえる「モードレス入力モード」とくらべてみると、おもしろいかもしれません。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「IMEの「よみ入力モード」については、梅棹忠夫さんがかなり初期から批判をされていました。よみの確定操作というのは、なかなか、わずらわしい操作だとおもいます。 https://t.co/ixZP824Q0n」 / Twitter
- 『日本語と事務革命』(梅棹 忠夫):講談社学術文庫|講談社BOOK倶楽部
- Shiki OkasakaさんはTwitterを使っています 「日本語のばあいは、表記は思想とおもったほうが、おさまりはよい気がしたり。そのかわりに、最低ラインとしての「国語」は平明である必要をみとめていたのかなぁ。いまの「国語」はそうゆう「国語」ではなくて、かわりに「やさしい日本語」がある感じ。 https://t.co/zfmGfswsFl」 / Twitter
- 漢字・カタカナ・ひらがな - 平凡社
- 小池陽慈『14歳からの文章術』さんはTwitterを使っています 「野村雅昭・木村義之編『わかりやすい日本語』(くろしお出版)、ゲット。 もちろんまだパラパラめくってみただけだけれど、それだけでも、「わかりやすい日本語」という考え方が、現代文や国語の指導のうえでかなり重要なことを述べているとわかる。 勉強します。 https://t.co/yTatomvApz」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「野村雅昭さんも梅棹忠夫さんのような表記法をつかう。あべやすしさんの「みみできいてわかる文章のために」がわかりやすいかも。 https://t.co/SyPquDGyny」 / Twitter
- 「みみできいてわかる文章のために」
- Shiki OkasakaさんはTwitterを使っています 「せめて古文の授業でくらい「伝統的な日本の文章というものは、ひらがなだけで書いていくというのがひとつの主流なわけです。」とおしえてくれたらいいのだけれど。学校の教科書は原文のひらがなを漢字にかきかえてしまう。 https://t.co/Sj1jra5DcA」 / Twitter
- 「漢文訓読に使った言葉が今に生きているんです。」月本雅幸(2)|インタビュー VOL.3|超漢字マガジン 漢字を知り漢字を楽しむサイト
- Shiki OkasakaさんはTwitterを使っています 「じぶんでよめようがよめまいが、IMEの変換候補に漢字があればそれをえらんでしまう。そうゆう心理になまえはついてるのかな。国語のにがて意識とリンクしたりもしているよう。 できた文は、表外の訓よみだらけで、達意の文として破綻していたりする。いまのIMEは、これをとめられない。」 / Twitter
ひらがな IME
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME for IBus v0.13.0」をリリースしました。周辺テキストに対応していないアプリケーションでは、よみ入力モードを有効にして日本語を入力できるようになりました。Chromiumウェブブラウザなどでも、「ひらがなIME」をつかって日本語を入力できるようになります。 https://t.co/0pQ9jQwuaY」 / Twitter
- Release ibus-hiragana-0.13.0 · esrille/ibus-hiragana
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」、v0.12のつぎはv1.0といっていたのですが、v0.13のつぎに変更しています。「モードレス入力」から「よみ入力モード」に自動でフォールバックする機能の微調整がまだすこしあるかな、というところです。」 / Twitter
Mozc
histric
histric-1
- Re: [opensuse-ja] 辞書の話
- Wonderlands in Usagi's brain: mozcユーザー辞書エディターとか作ってデータ構造とアルゴリズムをがさごそっと勉強しようか
- Mozcソースコード徹底解説 #TokyoTextMining
- Mozc - ArchWiki
- google/mozc
- mozcをコンパイルしてインストールする(Linux) - Qiita
- Google 日本語入力 - Wikipedia
- 2012年他にやったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2014 年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2013年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- エヌユルさんはTwitterを使っています 「@d_toybox ローマ字テーブルをカスタマイズできるのがmozc系だけなので逃れられなくなりました」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「mozc自体がPull Request受け付けないから、GTKにAPI足してもそれ使う機会がないので、Linux Desktop的なIMの話はもう進化ないと思います」 / Twitter
- henrichさんはTwitterを使っています: 「@makoto_kato 方針変えて受け付けるようにしてるようですが、 @komatsuh さんどうですか?」 / Twitter
- Hiroyuki KomatsuさんはTwitterを使っています: 「@henrich @makoto_kato PR を受け付けている場所は下記のページにあります https://t.co/vbCATptE4w GYP によるビルドが終了できたら Ibus 全般も受け付けます https://t.co/bltoC5n4ZO 具体的な項目がありましたら Issues での議論も可能です。XDG準拠、macOSのかな・英数キー、Qt5候補ウインドウなどは Issues 由来です」 / Twitter
- mozc/PULL_REQUEST_TEMPLATE.md at master · google/mozc
- GYP build will stop supporting IBus client. · Issue #567 · google/mozc
- Makoto Kato ︎︎さんはTwitterを使っています: 「Wine使ってWindowsのIME使うwimeって面白いのはあるんだけど、自分はWineのコードを一切触れる立場ではないから (Windowsのソースコードアクセス権を持ってたため) から、それに対して何か出来ないんだよね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「それはChromeでIMEのコードを触るのがGoogle ChinaかMicrosoftかというだけなので、バグを積極的に登録しない日本人の問題としか https://t.co/ficrH2wvry」 / Twitter
- ジャカルタ読み専ブラザーズさんはTwitterを使っています: 「現在進行形で「Wayland上でElectronなプログラム使ってるとうまく変換できない」等いろいろトラブルを増やしながら進んでいる状況なのでおお、もう…という思い」 / Twitter
- ジャカルタ読み専ブラザーズさんはTwitterを使っています: 「なんとなく日本語変換と音声周りと動画周りは一生片付かないんじゃないかなと思っている」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Microsoftと言ってもHQで働いてるChina系エンジニアか。IMEと言っても中華系言語と日本語とはステートがいろいろ変わるのよ」 / Twitter
- 2021年10月以降の Mozc に対する主な変更
- 2020 年以降の Mozc に対する主な変更
- Hiroyuki Komatsuさんの記事一覧 | Zenn
- Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています: 「蛇足な意見ですが、この小さなコミュニティ内で開発しようにも、開発の過程や技術に興味を持って共感してくれる仲間を見つけるのは非常に困難でした。誰かが今やっても同様になりそうです。 少数ながら技術を理解してる人が大体SKKを使ってるという古くからの問題が… (背景https://t.co/fBdziVuWYY)」 / Twitter
- 暗黒美無王 dark VimさんはTwitterを使っています: 「なぜLinux日本語入力が終わるのか。これは簡単な話です。 Linux日本語入力なんてLinuxデスクトップを直接使ってる人にしか需要がないのです。」 / Twitter
- 暗黒美無王 dark VimさんはTwitterを使っています: 「Linux使いのほとんどはLinuxデスクトップ使っていないと思っていて、Linuxデスクトップ使ってないなら端末から入力すれば事足りるわけ。 だから日本語入力が終わる。」 / Twitter
- Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています: 「仲間は少なかったんですが、色々と心強かったし、今になっても残ってる成果も出せたんで感謝と満足でいっぱいです。 某社が変なフレームワークを推してきた時にネットのあちこちで援護射撃をしてくださった人々にも感謝。(技術的な理由を調べずに僕らをdisった人々のことは忘れることに……)」 / Twitter
- 京橋 ひよわさんはTwitterを使っています: 「Linuxデスクトップを直接使ってる日本語圏ユーザってだけで相当少ないですが、その中にはSKK支持層が結構な割合でいて、形態素解析までIMが担うタイプのかな漢使ってる人って本当に少ないんだろうなと」 / Twitter
- 京橋 ひよわさんはTwitterを使っています: 「補足1 「xx使ってるけど不満ないよ」ってリプついてるけど、ここでいう「終わる」とはメンテナが居なくなるってことで、OS側に破壊的変更が入ると動かなくなるよってこと。 「終わった」ソフトは幸運にもまだ動いてるだけ。その点、四半世紀前のソフトが普通に動くWindowsはすごい。」 / Twitter
- 京橋 ひよわさんはTwitterを使っています: 「補足2 くどーさん曰くmozcは終わってない(数年前に開発はモバイルにシフトしてると仰ってたような気はしますが) Google日本語入力よりmozcの精度が悪いのは、オープンな日本語リソースが少ないためで、開発陣のせいじゃないんで… 何が言いたいかというともうちょい開発陣に感謝をですね…」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「Linuxの日本語入力は良い変換エンジンと辞書を用意するば良いってレベルでは既になく、時代遅れかつ元々機能不足なAPI部分からどうにかしてって思う。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「IME周りのWeb APIが全然整備されないの、Win/macOS/Linux/Androidでやれること、やれないことがバラバラなのが障害で。ちなみにデスクトップでAPI的に一番柔軟なのはWindowsなものの、想定外のシナリオで機嫌を損ねると一番たち悪いのもWindowsかな…… プロセス再起動までIMEが無反応になったりする」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「macOSはTISが事実上隠しAPIみたいになっちゃってる以外はあまり問題ないかなと思ったけど、非同期入力周りの隠しAPIという大問題があったか。あと、それと関係してるのか分からないものの、Gecko/Blinkみたいに低レベルで入力扱ってるアプリと謹製のWebKitやCocoa widgetではIMEの動作変わるという……」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「Linuxはもう、ibusやfcitxが非同期入力を実現するためにハッキーなことをやらざるを得なくて、それが原因でwin/macと完全に整合性のあるDOMイベントの発火が無理ゲーなんよね。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「Androidは私は担当してないんでよく知らないけど、IMEごとの動作が歴史的原因でバラバラってのは聞くので地獄そう。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「勝手に「終わってる」ことになってる。需要が少ないことはあまり関係なく「日本語知らないやつが作ってる」等々 基本ディスられることばかりなので鋼のメンタルないと辛い。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「危惧しておきながら、意味不明な根拠で「まともではない」と難癖つける。こういう矛盾した言動がなくならんかぎりプロジェクトは育たないし、参入したいと思う人増えない。」 / Twitter
- 山田ハヤオさんはTwitterを使っています: 「これは一番自分が危惧してること インプットメソッドは中国のちからがあるのでなくならないとしても、MozcはGoogle依存だしUt系辞書はライセンス的に微妙なのでまともな方法がほしい」 / Twitter
- Taku KudoさんはTwitterを使っています: 「恐れていたことが... 開発者はいつでも「やーめた」って言えることをお忘れなく。」 / Twitter
- お〜み〜さんはTwitterを使っています: 「Linuxの日本語入力は終わってる終わってると言っていたら本当に終わりに近づいてしまうという教訓になる話 / 1件のコメント https://t.co/ulEfMleNde “Mozc UT Dictionary” (2 users) https://t.co/1rRgHIDGlg」 / Twitter
- Taku KudoさんはTwitterを使っています: 「問題が明確になりました。ありがとうございます。ただ、「MozcはGoogle依存だし」を含めてどう「まともな方法」に結びつくのか意味がわからないのです。Mozc開発者として知りたいだけで非難ではありません。」 / Twitter
- CentRaさんはTwitterを使っています: 「mozc-utという辞書が公開終了してしまったことについて、書きたいことがたくさんあってTwitterに書ききれなかったので書きました。 https://t.co/F0yxlqep68」 / Twitter
- mozc-utの公開の終了といろいろについての所感
- Taku KudoさんはTwitterを使っています: 「放棄することも自由だし、仮に放棄しても改変/フォークの自由が担保されてるから、懸念とは思えないんですよね。OSSってそういう物でしょ。プロプラの放棄よりはるかにマシです。OSS契約外の過度な期待や要求、自分基準の「まともな方法」等のラベル付けはお互い不幸になるだけなので慎みましょう。」 / Twitter
- CentRaさんはTwitterを使っています: 「おそらく、Googleが放棄したらmozcの開発はどうなってしまうのだろうという懸念なのだと思います。そのような点で、主に企業によってメンテナンスされているOSSプロダクトが信頼されない傾向はあります。ただ、この場合はChromeOSやAndroidのこともあるのでしばらくは絶対にありえないとは思いますが。」 / Twitter
- Hiroyuki KomatsuさんはTwitterを使っています: 「Linux の日本語入力に関心を持たれて、Mozc の応援をしようかなと思ったけれど、さてどう始めようかなと考えている方が、もしいらっしゃいましたら https://t.co/FNXpSK5vMR」 / Twitter
- Mozc を応援するいくつかの方法
- Taku KudoさんはTwitterを使っています: 「Linuxの日本語入力、終わってもないし悲観する状況では全くありません。素のMozcで問題ないという声も多いことから、そもそも問題ではないことを問題にしてる気がします。無意識・無関心は健全の証です。ネガティブな意見が増幅されやすい環境がそもそもあります。」 / Twitter
- F. TakeyamaさんはTwitterを使っています: 「何かと Mozc が話題ですが、ここで昨年の OSC Nagoya/Online のスライドを。(本業が忙しくて問題点対応が溜まっていますが)upstream に contribute していくこと大切。: https://t.co/KCoURXGJmJ」 / Twitter
- たまには日本語入力 Mozc の話でもしようか ― 新機能の紹介とコードコミットができないプロジェクトとの関わり方 - Speaker Deck
Google
もしかして
- スペル修正プログラムはどう書くか
- 日本語「もしかして」検索について - 株式会社ロンウイット
- 日本語「もしかして」検索について - 株式会社ロンウイット
- Apache Solr でサジェストを実現してみる、その2 - Qiita
- 「Google サジェスト」が正式サービス開始、「もしかして?」を検索窓に表示 | 日経 xTECH(クロステック)
- Google、「もしかして」修正検索の新しい機能 | 海外SEO情報ブログ
グライド入力
- 渋川よしきさんのツイート: "グライド入力、めちゃ便利。英語入力めちゃくちゃ早くなった。欧米人がIMEを知らなくて云々というのは過去の話になりそう。グライド入力とか音声入力を実現するには必要だし、事例として理解してもらいやすくなりそう。"
- 渋川よしきさんのツイート: "AndroidのGoogle日本語入力内蔵英字キーボードにはグライド入力ないのね。Google中国語入力の方にはあるのに!まあ、システムキーボードのgboardの方を使えばよいのだけど。"
- iOS版「Gboard」が日本語対応!賢いグライド入力も!
- 英文メール作成も楽ちんに。日本語対応した「Gboard」でキー入力を“同時翻訳” - ケータイ Watch
- ASCII.jp:スマホの入力でも日本はガラパゴス、世界は《ひと筆書き》入力が主流だ|遠藤諭のプログラミング+日記
- 指をスライドして入力する - Nexus ヘルプ
- Google日本語入力の後継アプリ「Gboard」のAndroid版が最新β版で日本語に対応 – ゼロから始めるスマートフォン
- iPhoneのキーボード入力をカスタマイズしてちょいワザ覚えたら超快適になった - Engadget 日本版
- Android★SQUARE:■Gboard - Google キーボード ~ 大幅な進化を遂げていた標準キーボード
- Google日本語入力の後継キーボードアプリ「Gboard」のAndroid向けが最新β版で日本語に対応!導入方法や使い方を紹介 - ライブドアニュース
- Gboard - Google キーボード - Google Play の Android アプリ
- 【Gboard】Google らしいスマホ向け文字入力ツールの初期設定、使い方を解説(iOS版)
Google
- Google Japan Blog: Google 日本語入力の開発版をアップデートしました。(0.13.481.10x)
- Google Japan Blog: Google 日本語入力チームからの新しいご提案
- 714668 - Duplicate normal character + Vietnamese character for Vietnamese input - chromium - Monorail
- Backspace can not erase the last one character during Japanese IME conversion (macOS) · Issue #9173 · electron/electron
- Google 日本語入力 - CGI API デベロッパーガイド
- (99+)Google 日本語入力 ヘルプ フォーラム - Google プロダクト フォーラム
- Google 日本語入力報告されている問題 - 日本語入力 ヘルプ
- 誤変換報告フォーム - 日本語入力 ヘルプ
- [026460]通常使用する言語(日本語入力システム)を切り替える
- 「新しいキーボードをインストールします」と通知されますが何も変わっていない。これは何でしょうか&# - マイクロソフト コミュニティ
窓の杜
- 【レビュー】ここ100年間で公開されたアニメタイトルを網羅した「Google IME」向け辞書ファイル - 窓の杜
- Google、スペルチェック機能を搭載した「Google 日本語入力」v0.13.521.0 - 窓の杜
- Google製の日本語入力システム「Google 日本語入力」がついに正式版へ - 窓の杜
- 「Gboard」に漢字のよみがなを取得するAPI ~サードパーティーアプリに組み込み可能 - 窓の杜
本の虫
- 本の虫: Google日本語入力の技術講演会
- 本の虫: Google日本語入力の開発版が更新された
Twitter
- なかのん&マジックさんのツイート: "Linux版ChromiumのIME周りのイベントの挙動が変なことになってるなーと思ったので、ソースコード確認してみたけど、やっぱりコメントから悲壮感漂ってくるな……ホンマに地獄。"
- Desktop App Convater で変換した UWP アプリ対応の Google 日本語入力 2.23.3195.100 / 101 開発版リリース – What I Know ~ワッタイナ
- まさみさんは語りたいさんのツイート: "なんかこれはgoogle日本語入力などでよく見られるような(笑)… "
- 高梨陣平さんのツイート: "NNのモデルは学習したデータを記憶してしまい、悪意あるユーザはデータを取り出すことが可能だとの研究結果。特にテキストデータの学習が危険でイメージやそれ以上のエントロピーが高いデータは難しいという。回避方法は重要データは学習させない、するなら差分プライバシアルゴリズムを使用すること… https://t.co/i2yOoswRt4"
- Albert R. Antoscaさんのツイート: "Neural nets can "unintentionally memorize" private training data, leaving it vulnerable to hackers. "[We] don't really know why neural networks memorize these secrets right now" #neuralnets @TheRegister # https://t.co/JMSyq06F9P… https://t.co/2BxpcZlYCe"
- Boffins baffled as AI training leaks secrets to canny thieves • The Register
- [1802.08232] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets
- Makoto Kato ︎︎さんのツイート: "Google日本語入力に関しては、エイプリルフールやる前に、プロダクトのバグを直して欲しいよね。。。"
- Google Developers Japan: Gboard 物理手書きバージョンの舞台裏
- なかのん&マジックさんのツイート: "Google日本語入力って、スクリーンのDPIが変更になると、移行、候補ウインドウ位置とかバグる?"
- なかのん&マジックさんのツイート: "プロセスを殺してみたら正常な位置に表示されるようになったけど、その後再起動されていないのにそのまま動いてるのが気持ち悪いな……どういうことなの。"
- Makoto Kato ︎︎さんのツイート: "Microsoft Japanese IMEも2017の時にいろいろあったのをサム古川さんがばらしちゃうし (まだ日本にチームあるけど)。。。"
- Makoto Kato ︎︎さんのツイート: "なので、JustSystemに納税するようにしてます"
- Makoto Kato ︎︎さんのツイート: "Google Japanese Inputの功罪は、IMEで稼ぐビジネスが難しくなったのと、その結果焼け野原になった後に彼らが(会社の方針かどうかは知らないけど)アップデートをしなくなったことですね。Netscape Navigatorでみんなが学んだビジネスのつぶしかたではある"
- Makoto Kato ︎︎さんのツイート: "OSSなんてパッチ書いて問題点指摘するだけでもいいわけだし、自分の場合はどういう形であれバグが直ればいいだけなんで。 他人のパッチを自分が取り込む場合は、パッチを全く変えたとしてもその人の名前でできる限りlandするけどさ。ただ会社によってはできないからね"
- Makoto Kato ︎︎さんのツイート: "そもそもChromiumのIMEコードってもう日本人やってないはずだし、Google Japanese Inputも(そのチームではもうない) 某氏がギョーム外の休日にやるかどうかだから、自分とかでパッチ書けばいいじゃんといつも思うんだけど。なんのためにmozcがOSSにしてあるのかと https://t.co/DyYnqFkJ0J"
- Makoto Kato ︎︎さんのツイート: "AI SoftのWXビジネスだって、Microsoftに駆逐されたし (というかもともとのMicrosoft IMEはWXのソースコードライセンス版からスタートしてるが)、商用のサードパーティ製IMEはデスクトップじゃ難しいよな"
- Makoto Kato ︎︎さんのツイート: "Chrome 75 for Windowsで入力周りの変な話が出てきたのは、75でTSFに移行したからか。Geckoの場合はさんざんサイクル回したけど、Chromeは一気にいったんだ。Microsoft社内でテストされてるんだとは思うけど"
- SODA NoriyukiさんはTwitterを使っています 「Google IMEの z+一文字 って、たぶん Emacs Egg あたりが起源だから https://t.co/4gFIyrEzL5 の「『zX』が :-) に変換される?!」に記載されている奴はだいたいあるんじゃないかなあ。 ちゃんと確認したことないけど。」 / Twitter
- Wnn Yogo Ver.2.0 (2005.4.18)
- ひさてるさんさんはTwitterを使っています 「Google IME zh ← zj ↓ zk ↑ zl → ここまでは知ってたけど z- 〜 z[『 z] 』 z. … こんなのもあったのか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「OS作っているベンダーなら、なぜAndroid SにAPIを追加しなかったのかを問い詰めたいところですね https://t.co/cXxVx117KA」 / Twitter
- Google Developers Japan: 日本語よみがなデータ取得を可能にする Gboard API のご紹介
- Makoto Kato ︎︎さんはTwitterを使っています 「さて、イベントモデルどうするべ。inputType: insertFromDropは。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「たぶん新しいAPIがあるんだろうけど。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/90dAIyY4sU」 / Twitter
- InputType to insert image from software keyboard · Issue #117 · w3c/input-events
- しばいぬの太郎さんはTwitterを使っています 「Windows版のGoogle日本語入力、ローマ字入力でzの後でhjkl押すとvi的な方向で矢印が出るのね。」 / Twitter
- さい|図解×デザイン×コーチングさんはTwitterを使っています: 「「やじるし」と打って「←↓↑→」を入力している人たちへ... 聞こえますか...あなたの心に直接語りかけています... 今すぐかな入力にして「zh」「zj」「zk」「zl」と打ってみてください... 世界が変わります... 「zh」「zj」「zk」「zl」と打つのです...」 / Twitter
- ライティングが捗る!Google日本語入力の意外と知らない便利機能9選|ferret [フェレット]
- Google日本語入力のショートカットを覚える - Milk+ea
- Android用「Google日本語入力」がサポート終了。Gboardへの乗り換えで気になる点を解説 - PC Watch
- Google検索では依然としてAIの分析よりも「メタデータ」が重視されている - GIGAZINE
- won't fix: サードパーティ製IMEは、Web Browserのプライベート・シークレットウィンドウなんて考えてくれない
ATOK
blog
- Macの日本語入力に「ATOK」を1年以上使い続けている理由 - Better Better Days
- ATOK & やまぶきR による親指シフト - にせねこメモ
- ATOK も統計的言語処理へ - NyaRuRuが地球にいたころ
- Firefox Quantumが激重になる問題が発生中 - あれこれ備忘録@はてなブログ
- 3DMARK 11で透明な窓が出てきて起動しないのはATOKの設定が原因だった | Hinemosu
- 3DMarkが動作しない...原因はこれ?! | つれづれなるままにひぐらしすずりにむこて..
- おりおんの戯言 - メインPC、ビデオカード換装。(2014/09)
- ATOKの直前の入力を日本語にするをポップアップさせない方法 - プログラムdeタマゴ
PC Watch
- ジャストシステム、新エンジンを搭載し誤変換が30%削減された「ATOK 2017」 ~10年ぶりの刷新でディープラーニングを駆使 - PC Watch
- 「まっくお」で「macOS High Sierra」に変換できるATOKの新IT辞書公開 - PC Watch
- ジャストシステム、Windows 10プチフリ問題を解消したATOKアップデート - PC Watch
- ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」 ~Android版も深層学習エンジンで予測変換性能が30%向上 - PC Watch
- 同音異義語に強くなった新ATOK。「ディープコアエンジン」が“2”へ - PC Watch
- ATOK Passport、iOS/iPadOS向けにも提供開始。プレミアムプランで利用可能 - PC Watch
- ジャストシステム、「神奈川県町田市」の入力を防げる新ATOK 〜Apple Silicon搭載MacではRosetta 2で動作 - PC Watch
- ジャストシステム、M1 Macネイティブ対応版ATOK提供開始 - PC Watch
- ATOK、Web会議中などの推測変換候補によるうっかり情報漏えい防止機能を追加 - PC Watch
- ATOKの変換結果を改善するパートナー制度開始 - PC Watch
- ATOK、個人の入力傾向を学習し変換を最適化する新エンジン - PC Watch
INTERNET Watch
- 「ATOK 2017」はディープラーニングで誤変換3割減、2月3日発売 -INTERNET Watch
- 「ATOK for Mac」の入力ミス修復率が35%向上、最新版をATOK Passportで公開 - INTERNET Watch
窓の杜
- ディープラーニングを採用した新変換エンジン搭載の「ATOK 2017」が発表 - 窓の杜
- ジャストシステム、次期「ATOK」を発表 ~ディープラーニング技術を活用して入力ミスを修正可能に - 窓の杜
Twitter
- なかのん&マジックさんのツイート: "ちなみに、ATOK 2011以上はTSFのTIPになっているので、安定して動作します。ただし、Win10ではIME周りの変更がまた入ってるので、ATOK 2015以上にした方が良いです(2011も試した限りでは使えていますが)。"
- なかのん&マジックさんのツイート: "@dalkyrie4g Win8以降でATOK 2010以前は64bit版アプリではまともに動作しないのを確認しました。Win7やx86版アプリでは問題無いのでWindows側の変更によるものだと思います。2011以降にアップグレードするか、Firefoxのx86版を再インストールするかですね。"
- Rockridgeさんのツイート: "Fx57:アクセシビリティサービス(ATOKインサイトを含む)が有効の場合、一部のWebページでハング状態が発生する問題を修正。 / “1321960 - Browser becomes hangs up and Windows…” https://t.co/wLfSO2ubVT"
- Piro/Linuxコマンド操作解説漫画連載中さんのツイート: "https://t.co/rGMU4O2FWW ATOKもAdobe製品もクラウド一本化、Google Homeを男声で喋らせるデモも後ろは当然クラウドで、スタンドアロンがあり得ない前提の「コンピュータは世界に5台だけで充分」な時代と感じるけど、ツールがオフラインで動かないっていうのは古い世代の自分には恐怖感や不快感がある"
- ATOKの買い切り型とPassport版各種の違い - 俺の作業デスク
- なかのん&マジックさんのツイート: "クラウドはこちらの都合よりもメーカー側の都合優先すぎて嫌だな。販売終了しても使える方法をちゃんと提供してくれるの?ってところが主に。"
- 一ノ瀬 いろはさんのツイート: "Adobe は用意してたりしますね。ライセンスサーバー止めるので認証不要版提供。… "
- なつき@Webデザイン日曜開催さんのツイート: "ATOKは、クラウドに接続できないと変換一覧ポップアップの右端にアイコンが出ている候補が表示されなくなるはずです。 余談ですが、夕方からaiboのクラウドサーバが落ちたらしく、aiboが一歩も動かなくなってクラウドの重要性をかみしめています…… "
- なかのん&マジックさんのツイート: "んんんんん? ATOK Passportって、古いATOK削除しないとインストールできない??? これはテストでむっちゃ困るんですけど。"
- なかのん&マジックさんのツイート: "なんかよく分からんな。インストーラのメッセージがバグってるかも? 削除しますか的なメッセージで「はい」にしないと進まないんだけど、通常のインストーラが起動してから聞いてくるのに対しては単に拒否できて先へ進める。しかも最初に聞いてきたバージョンは再度聞かれなかった。"
- なかのん&マジックさんのツイート: "いや、やっぱり、最初に聞かれて拒否できなかったATOK 2014だけ削除されてしまった。ATOKは後から古いバージョン入れられないから面倒だなぁってのと、そもそもPassportのインストーラが複数バージョンインストールしてる環境でテストしてなさそう?"
- なかのん&マジックさんのツイート: "とりあえず、これ、Passportのインストーラに関しては嘘っぽいので、修正した方が良いのでは。Passportのインストーラの後に来る、ATOKそのものっぽい方のインストーラは、パッケージ版と同じく、共存の選択肢あるけど。 https://t.co/dQGTTqvwj1"
- なかのん&マジックさんのツイート: "二つ以上のバージョンがインストールされていたら、最初に聞かれたバージョン以外は残せる模様。"
- なかのん&マジックさんのツイート: "単純にPassportのインストーラのバグなんじゃないのかな。ちなみにmacOS版も全く同じUIから強制アンインストールさせられたけど、共存不可なのは https://t.co/dQGTTqvwj1 に明記されてるんで、macOS用のコードが、Windows版でもビルドされちゃってるとか?"
- なかのん&マジックさんのツイート: "あれ? ATOK Passportだと、TIP名が"ATOK"になってて年号入って無いな。加えて、GUIDが{A38F2FD9-7199-45E1-841C-BE0313D8052F}だけど、これって今までのバージョンもこうだったんかな? もしそうなら、ATOK向けのGeckoのハックがまったく動いてなかったことになるけど。"
- なかのん&マジックさんのツイート: "Win10のInsider Build入れてるノートPCの方にATOKをインストールしたら、インストール済みのバージョンのアンインストールを拒否できた。ただ、メインの環境で拒否できなかったのは複数バージョン入ってるうち、2014のみ。こちらの環境は2017のみが入ってたのと、インストーラ自体が別物かも?"
- なかのん&マジックさんのツイート: "壊れて欲しく無いメイン環境の方から2014がアンインストールされてしまったのが本当に痛いなぁ。ATOKはより新しいバージョンが入っていると古いバージョンをインストールできないんで。"
- Makoto Kato ︎︎さんのツイート: "Firefoxのa11yの問題はATOK使ってて痛いほどわかるんだけど、あれに首突っ込んだら身体が足りないのでやってない。。。でもデッドロックの問題はいろいろバグ報告したけど"
- なかのん&マジックさんのツイート: "a11yが必要な理由がATOKのみだったら、a11y機能を無効化して欲しいぐらい。"
- なかのん&マジックさんのツイート: "一太郎についてるATOKって"ATOK FOR 一太郎2018"とかになるのか。ということはこれ、毎年個別のGUIDが振られていく訳か。誰かに教えてもらうしかないかな。"
- 箱あんこうさんのツイート: "そういや、ATOK を入れた状態でネットが不安定なところで作業していると、サーバーと繋がらなかったよっていちいちダイアログ出してきて、しかも選択を間違えるとブラウザ開いてきたりするのが最高にウザったいのよね。 まぁ認証とか大切なのはわかるんだけど、正直つらい。"
- なかのん&マジックさんのツイート: "おう……ATOK、PerMonitor DPIに対応してない?"
- なかのん&マジックさんのツイート: "デバイス間での辞書の同期や、変換候補を広辞苑で確認したりできるの、ATOKしかないんで、値上がっても私的にはまだ全然OK。サービスが無くなった場合のデメリットがはるかに支出を上回るケース。 / 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER https://t.co/b3sifb793I"
- 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER
- ATOKとMicrosoft IMEのショートカットキー比較
- Bug-org 1409155 ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment - WebStudio
- 「ATOK for iOS」「ATOK for Android(買い切り版)」がサポート終了へ - ねとらぼ
- ついにiOS版ATOKキターーッ! 1500円でiOS 8以降対応 - ねとらぼ
Japanist
- なかのん&マジックさんのツイート: "次の商品を購入しました:富士通ミドルウェア 『Japanist 10』 via @amazonJP https://t.co/xvgtMx0ae1"
- なかのん&マジックさんのツイート: "来てみないと分からないけど、Japanist 10が出ると、親指シフトキーボードがある程度スマートに環境作れるようになるのでは?"
- なかのん&マジックさんのツイート: "親指シフトは、キーの入力複数個をまとめて一文字の入力としてるけど、あれがレスポンスを悪くするし、OSネイティブで処理される必要が出てくるしで、技術的には筋が悪いよね……"
- なかのん&マジックさんのツイート: "親指シフトキーボード(物理)を買ってあるけど、軽く1時間ほど練習して投げ出した。"
- なかのん&マジックさんのツイート: "Japanist 10入れてみたけど、案の定なTS_E_NOLAYOUT対策入れてないなーという感じの動作だ。"
- なかのん&マジックさんのツイート: "あと、アプリ上でJapanist 10の設定を開こうとすると、アプリがハングアップする(回復するパターンのほうが多いけど)。そして設定が開かない。スタートメニューから独立したアプリとして起動する分にはOK。"
- なかのん&マジックさんのツイート: "Japanist 10のキーバインディングの変更で、他のIMEの基本的なバインディングがプリセットとして用意されていないのは、乗り換えさせる気ゼロって感じだなぁ。"
- なかのん&マジックさんのツイート: "Japanist 10、一応確認したけど、TIP名は"Japanist 10"、GUIDは{E6D66705-1EDA-4373-8D01-1D0CB2D054C7}。縦書きにはちゃんと対応してる模様。"
- なかのん&マジックさんのツイート: "とりあえず、Japanist 10がこのままではFirefoxで使い物にならないので、ハックを入れるバグは立てた。たぶん簡単に修正できる。 https://t.co/XvKWgzA1VD #もずでぶ"
- なかのん&マジックさんのツイート: "よし、Japanist 10以外では目立ったTSFのバグはこれで一掃できたかな。"
- なかのん&マジックさんのツイート: "Japanist 10のためにハック入れたパッチ、仕方なく、他のIMEでも通るパスを修正する必要があったので、少しリスクが高くなってて、BetaへのUpliftをリクエストすべきか悩んでる。"
- なかのん&マジックさんのツイート: "まあ、Japanist 10ユーザからのバグ報告があったわけでもないんで、もういいかなって感じはしてるけど……"
- なかのん&マジックさんのツイート: "実際のバグ報告が無いんで、GeckoのJapanist 10対応は、59にupliftせずに60 (次のESR)から。TSFのバグにJapanistが引っかかってるって話だし / https://t.co/XvKWgzA1VD - [TSF] Candidate window of Japanist 10 positioned incorrectly and flicked (not aware of TS_E_NOLAYOUT issue) #もずでぶ"
MS
MS
IME Share
- IME Share (Windows)
- 続報: imeshare.dll —完結編— - イグトランスの頭の中
- IMEのドキュメントURLメモ - イグトランスの頭の中
- Mozilla for Windows x64 platform: How to get IME settings such as converted text color
知っておくと便利な機能
- 日本語入力(IME) の知っておくと便利な機能(1) – Windows & Devices 開発統括部
- 日本語入力(IME) の知っておくと便利な機能(2) – Windows & Devices 開発統括部
- 日本語入力(IME) の知っておくと便利な機能(3) | Windows Blog for Japan
- 日本語入力(IME) の知っておくと便利な機能(4) | Windows Blog for Japan
- 日本語入力(IME) の知っておくと便利な機能(5) | Windows Blog for Japan
Win10 AU, CU
- Windows 10 Anniversary Update 日本語入力 (IME) 関連の改善 | Windows Blog for Japan
- Windows 10 Creators Update 日本語入力 (IME) の改善 | Windows Blog for Japan
Win10 FCU
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました – JAPAN Platform SDK(Windows SDK) Support Team Blog
- IME ショートカット - マイクロソフト コミュニティ
- Microsoft IME Application Interface
- Third-party input method editors - Compatibility Cookbook
- Input Method Manager (Windows)
- Masaru Iritaniさんのツイート: "@yutakakn 横から失礼します、IME の開発者です。実は日本にも Windows の開発チームが有り、IME も日本語については日本のチーム (@msimejp) が担当しています。ローカライズに関しては、是非フィードバック Hub にてご意見をお寄せください。"
- 日本語入力(IME) の「クラウド候補」について | Windows Blog for Japan
- Windows 10 における日本語入力の変換精度向上への取り組み | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 14986でお試しいただける日本語入力の改善点について | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 15002 でお試しいただける日本語入力の改善点について | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 16226 でお試しいただける日本語入力の改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows_Japanさんのツイート: "最新 #WindowsInsiders ビルドの日本語入力では、入力そのままの予測候補とスペル修正された予測候補がすぐ区別できます。クエストをお試しいただき、フィードバックをお寄せください。 https://t.co/PC41BQBF0V https://t.co/WSkxL9fF4q"
- Windows 10 Insider Preview ビルド 17035 でお試しいただける日本語入力の改善点。女子高生 AI「りんな」による予測候補を追加 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 17063 でお試しいただける日本語関連の改善点について - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルドでお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18262 の日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18277 でお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18875 でお試しいただける日本語入力に関する改善点 - Windows Blog for Japan
- 【Chrome+MS-IME】変換確定(Enter)で入力中だった文字が消える不具合について(BackSpace→Enterで消える現象)
- Windows 10 における日本語入力の改善の取り組み - Windows Blog for Japan
- Windows 10 における日本語入力の改善の取り組み - Windows Blog for Japan
- キーボード日本-ImeOn/ImeOff の実装 | Microsoft Docs
- Windows の固定キー機能 - マイクロソフト アクセシビリティ
TSF
MS
- ITfInputScope interface (Windows)
- Text Services Framework
- Text Services Framework (Windows)
- TSF Aware – Dictation, Windows Speech Recognition, and Text Services Framework.
- IME (Input Method Editor) と Text Services Framework のアクセシビリティ
- MSDN Magazine - July 2007 - Speak Up: Support Dictation with Text Services Framework
- 64-Bit Considerations (Windows)
- Makoto Kato ︎︎さんはTwitterを使っています 「macOSのtext replacementの機能ってOS側から適当なタイミングで現在のテキスト情報をアプリにリクエストしてそれ使ってると思ってたのだけど、そうじゃなくて、いちいちアプリがspellchecker呼べってことなの?それって。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows/TSFのautocorrectってTSFが勝手にやってくれるので (現在のテキスト情報はアプリがTSFに渡しているので勝手にできる)、同じような仕組みでmacOSでもやってるかと思ってたよ。なんだそれ」 / Twitter
Mozilla
TSF
TSF
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「そーいや、Firefox for WindowsのIMEのモード、一旦、全員TSFモードに強制リセットかけます。IMMモードだと一部のIMEがちゃんと動いていないのを観測したのと、もう、全然メンテもdogfoodingもできていないので十分に安定しているTSFモードで問題ないと判断したためです。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「問題がある場合は戻せますがバグ報告してください。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「多分、この後、テレメトリで確認した上でTSFモード強制オンにすると思います。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ちなみにIMM時代のIMEは当然TSFのインターフェースに対応していないので(語弊のある言い方ですが)引き続きIMMモードで動作します。今言ってるのは、TSF用のTIP(Text Input Processor)を利用しているのに、わざわざabout:configでGeckoのTSF対応を無効化している人にだけ影響します。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「TSFモード開発中の不安定さに嫌気がさしたユーザ、というよりテスタの人たちがTSFモードを無効化しつつ現在もIMMモードを利用しているのではないかと予想しています。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ATOKで言うとATOK 2011以降がTSFのTIP対応です。Win8のメトロアプリで必要となった追加の要件をクリアしていたのはATOK2013あたりからなので、まあ、察してください。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「ちなみに、Gecko的に問題なく動く(はず)かつ、Gecko側で対応可能なATOKはATOK 2016以降です。それ以前のATOKはGeckoのウインドウがフォーカス持ってるから……というハックがATOK側に入っているため、変な動きになってももうGecko側で対応できません。この辺、お願いして一層してもらったので。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「エディタのテキストを気にし出すと、IMEが自由に読み出せる必要があるという時点でかなり懸念されるべき状況が少なくとも2000年代ぐらいからは続いてるんやけど、その辺に言及してるのをほとんど見かけないので、やはりお気持ち感が。 https://t.co/qR5LcmrkFm」 / Twitter
- Google ChromeとMicrosoft Edgeで機密性の高い情報が拡張スペルチェック機能経由で外部サーバーに送信されている - GIGAZINE
- いざてんさんはTwitterを使っています: 「@d_toybox まあ、ですよね。パスワードを表示する設定にしたら送られるって言われても、「まぁそうなる理屈は分からんでもないなあ」って感じしますし。(いいか悪いかは別として)」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@izaten Windowsなんか、この秋のアップデートからa11y APIを利用せずとも、エディタのあるURLも取得可能になります。」 / Twitter
- いざてんさんはTwitterを使っています: 「@d_toybox oh...('ω')」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@izaten Geckoはまだ未対応ですが、今週中にパッチ書きます。そうしないとサイトによっては無視できないパフォーマンスの差がBlinkと出てしまうのはMicrosoftさんから受けてるので。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@izaten https://t.co/iWhDCOwA7H」 / Twitter
- 1774317 - [TSF] Support `GUID_PROP_URL`
- いざてんさんはTwitterを使っています: 「@d_toybox なるほど……。まぁプライバシーとか気にし始めたらそもそもIME自体がって話になりますよね。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@izaten まあ、差別化として、取得可能なURLをprefで限定的にできるようにしたいところですが、なかなか難しいです。Baiduのアレとかますます危なくなってきます。」 / Twitter
- いざてんさんはTwitterを使っています: 「@d_toybox BaidoIME……まだ生きていたんですね……。('ω'`)」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「@izaten もう、サポートをあきらめて追いかけていませんが、やめるメリットもなさそうですし。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「言い出しっぺとして、https://t.co/90dAIzgdH2 の実装を書いた。あとWindowsのSoftware Keyboardだと実装する方法がないので、あれどうしよう。。。 (でこれやってたのって日本のMSDのチームだっけか?)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「これに関してはなぜTSFにAPIを追加しなかったのかが意味わからん (API追加するのにコストがかかるからだと思うけど)。その点、Androidは正攻法で実装しててさすがだなと思う (知り合いが巻き込まれているだろうし)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「Input EventのIssueを久々に覗いてたら、「それChromeのバグやん」って内容がたびたび登録されてて微笑ましく思った」 / Twitter
- Firefoxのナイトリービルド、Text Service Framoeworkにデフォルト対応へ | スラド IT
- Masaru Iritaniさんのツイート: "@d_toybox 詳細な情報をいただきありがとうございます!担当者にもお伝えしました。初期調査では TSF に原因が有りそうだという話ですが、いただいた情報も踏まえて引き続き調査を進めます。"
- Bug-org 1204519 [TSF] Get rid of the hack for TS_E_NOLAYOUT issue with Google Japanese Input - WebStudio
- Windows 版 Nightly が TSF ネイティブサポートへ | Mozilla Developer Street (modest)
- Bug-org 848672 [TSF] Redesign focus and IME state handling of nsTextStore - WebStudio
- なかのん&マジックさんのツイート: "台湾のIMEのバグ対応でTSFの泥沼にハマってる。TS_E_NOLAYOUTがらみのバグの根元を、いい加減にWindows側とMS製の各国語IMEで修正していただきたい。"
- なかのん&マジックさんのツイート: "Google日本語入力がハマってるTSFのロック絡みのバグのために入れてるハックで、他の言語のMS-IMEの動作に合わせられなくなってるっぽくて(まだ完全に確信にいたった訳ではない)頭抱えてる。"
- なかのん&マジックさんのツイート: "とりあえず、最近のTSF周りの修正で得られた知見は、なんでか、ネイティブの中国語環境と、日本語環境に中国語のTIPをインストールしたのとでは、動きが全く同じではないという嫌すぎる事だ。"
- WindowsのIME API、TSFのTS_E_NOLAYOUT問題とは - WebStudio
- Masaru Iritaniさんのツイート: "ご指摘いただきありがとうございます。#WindowsInsiders Skip Ahead (RS5) ビルド 17643 以降では、GetTextExt() が TS_E_NOLAYOUT と E_INVALIDPOS を正しく返すようになりました。ご確認いただけましたら幸いです。… https://t.co/lV94WtXpid"
- なかのん&マジックさんのツイート: "おおおおおおおお。ありがとうございます。IMEのデバッグの仕方が分からないので直接テストすることはできませんが、こちらのハックを無効化して、各IMEの挙動がどのようになるのか、テストしてみます。… "
- Masaru Iritaniさんのツイート: "ありがとうございます。お恥ずかしながら私個人もまだコード上でしか修正を確認できていないので、実際の挙動として正しい修正になっていない場合はお知らせいただけますと大変助かります。… "
- なかのん&マジックさんのツイート: "むむむ。"Skip Ahead is now closed. If you select this option going forward, you will have your Windows Insider Program settings reverted." になっちゃってて、Skip Aheadを選択できなくなっていますね。そのままFastリングに来るのかもしれませんが。… https://t.co/Cbjf3f6iRK"
- Masaru Iritaniさんのツイート: "Skip Ahead は人数限定の早い者勝ちですので、早期に設定を変更されていない場合には選べなくなっています。件の修正は Skip Ahead のみ提供(= RS4 には残念ながら入らない)ですので、大変恐れ入りますが Fast リング への RS5 提供開始までお待ちいただきますようお願いいたします。… https://t.co/n97cuIh4UL"
- なかのん&マジックさんのツイート: "はい。VMの方をFastリングにして待機しています。また、結果の方をまとめたいと思いますのでお待ちください。… "
- Masaru Iritaniさんのツイート: "ありがとうございます!ご面倒をお掛けしますが、宜しくお願いいたします。… "
- なかのん&マジックさんのツイート: "大変遅くなりましたが、検証結果です。5時間ぐらいでテストからまとめまで行いましたので雑ではありますが、私の検証した範囲ではJapanist 10以外は非同期レイアウトに対応しているようです。 https://t.co/k9T5ylylTJ… "
- Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた - WebStudio
- なかのん&マジックさんのツイート: "Japanist 10、なんで最後発で一番デキがアレなんだろうっていう謎な結果になってしまった。 / もずはっく日記: Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた https://t.co/k9T5ylylTJ"
- なかのん&マジックさんのツイート: "Windows自体がバグってる上に、Firefoxぐらいしか非同期レンダリングを行うTSF-awareアプリなんて無いと思うんだけど、なんで各IMEベンダ、非同期でのUIの表示にこうも安定感のある実装できてるんだ??"
- なかのん&マジックさんのツイート: "正直、もっとボロボロな結果になると思ってた。"
- Masaru Iritaniさんのツイート: "詳細な検証をしていただきありがとうございます!修正が Firefox でも問題無く動作しているようで嬉しいです。Microsoft IME の挙動については担当者に報告いたしました。… "
- なかのん&マジックさんのツイート: "macOSのIME周りはundocumentedな事だらけだったり、バグ報告せざるを得ないものを見つけたりと、なかなかにアレでできるだけ関わりたくないな……"
- なかのん&マジックさんのツイート: "同じAppleのIMEがWebKitとBlinkで別の挙動を見せてくれたりしてて、本当に嫌過ぎて。"
- なかのん&マジックさんのツイート: "TSFとCocoaは、IMEからアプリに情報を問い合わせて、アプリからの結果でIME側が動作を決定するモデルになってるけど、このモデルってIME側にバグがあったり、IME側がアプリ毎に動作を変えてるとアプリ側でバグの修正に詰むんで、これから新しいプラットフォームでは絶対に採用していただきたくない。"
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ChromeのTSFの実装見てると、そのインタフェースならシンプルにやれるんかい、みたいなのを見つけて、うぐぐってなったわ。別にパフォーマンスとかに影響しないから、互換性のためにこのままいくけど(IME側でハックされてたりすると壊れる系)。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「日本でアプリ側のTSF対応に関わった人は何人居てるんだろうか。ふと、疑問に。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「絶対、三桁はいかない気がする。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GeckoのOSKのコードが最新のWindowsで全く意味のないコードになってたことをやっと理解した。OSK表示するかどうかはTSFで判断してるのか (無効にするフラグはドキュメントにないけど存在する)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「従来のOSKをキックするコードは全く動かなくて、UWPのAPIを使わないといけないっぽい。実装してみないとわからないが」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windowsのinputmodeの実装、noneは後回しにして、ほかのを直そう」 / Twitter
- Text Services Framework - Wikipedia
- Text Services Framework - Wikipedia
- Project Zero: Down the Rabbit-Hole...
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「これ要するにMSCTFのプロトコルが腐ってる問題っぽいので問題の影響範囲が大きすぎてすぐには解決しないんじゃないかな… / “XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch” https://t.co/d46WZ3LzqH」 / Twitter
- XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch
- TSF を使う (2) - tsfapp - NyaRuRuが地球にいたころ
- TSF を使う (3) - WPF での UILess Mode - NyaRuRuが地球にいたころ
- IMEを使う(Windows: TSF編) - Qiita
- TSFに挑戦 - イグトランスの頭の中
- TSFに挑戦 (2) 表示属性 - イグトランスの頭の中
- kaya: IME開発者向けリンク集
- ■とある言語の開発記録II / TSFで日本語変換
- TSF を使う (1) - Windows Input Method の歴史 -... : Windows 8とWindows 8.1 互換性情報 リンクまとめ - NAVER まとめ
- TSF を使う (1) - Windows Input Method の歴史 - NyaRuRuが地球にいたころ
- はてなブックマーク - imeとtsfに関するkaorunのブックマーク
- Q's Nicolatter 8 [BETA TESTING] | Netsphere Laboratories
- 藤枝和宏 - ぱんなこった@佐鎮(@kfujieda) - Twilog
- C++ - TSFを利用して候補文字一覧を取得する | DIGI-CON 技術部
- ui/base/ime/win/tsf_text_store.h - chromium/src - Git at Google
- chromium/ime_input.h at master · adobe/chromium
- Makoto Kato ︎︎さんのツイート: "MicrosoftがChromiumに移行したおかげで、まぁこのバグを直す方法が公開されたのは、いいこと (前だと上手く行かなかったけど、たぶんWindows側のコードの修正もいろいろ行われているんだろうなと) https://t.co/HbCWlWYSCH"
- 958054 - TSF1 on windows 10 should use private input scope if we are in "incognito" or "guest" mode - chromium - Monorail
- Makoto Kato ︎︎さんはTwitterを使っています: 「ChromeのTSF周りのバグはGoogleのせいじゃなくて、Microsoftせいだしな。ChromeにTSF関連のパッチを投げたのがMicrosoftという意味で」 / Twitter
ショートカット
- Windowsのショートカットキー: IMEのショートカット
- 言語バーのショートカットキー | IME2003 | 初心者のためのOffice講座
- Microsoft IMEのショートカットをカスタマイズ | ものものモノローグ★ - 楽天ブログ
- MS-IMEの入力モードをキーボードだけで操作したい - MS-IMEの入力モードをキー... - Yahoo!知恵袋
- IMEショートカットメニューを表示するショートカットキー−Ctrl+変換キー:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
- Microsoft IME スタンダートのキーボードショートカットキー設定 | WEBサービス創造記
- Windows で IME をキーボードショートカットキーで切り替えられないとき | すぐに忘れる脳みそのためのメモ
- 日本語入力変更のショートカットキー−Ctrl+Shift:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
- ショートカットキーの活用|情報システム課| 東京経済大学
- 日本語入力ソフトの切り替えをショートカット操作で行う - 日経トレンディネット
- キーボードから操作するショートカットキー
- [Windows 10] USキーボードで日本語IMの全角と半角を切り替えるショートカット一覧 - Qiita
- 日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - いまさら聞けないWindows 10のTips - 窓の杜
- なかのん&マジックさんのツイート: "Winキー + / で再変換とかわしゃ知らんかったぞ!"
- なかのん&マジックさんのツイート: "Winキー + iで設定なのか。"
- なかのん&マジックさんのツイート: "PrintScreen系の一覧を確認したかったけど、思わず色々と覚えた(そして、PrintScreen系のショートカットキー一覧が見つからない)"
- Windows10で日本語入力の切り替えストレスが減る設定方法 | ライフハッカー[日本版]
窓の杜
- 次期Windows 10は日本語に関連する変更も盛りだくさん 〜「Insider Preview」Build 17063 - 窓の杜
- IMEで変換できない漢字は単語登録を! [Ctrl]+[F7]のショートカットでも登録可能 - いまさら聞けないWindows 10のTips - 窓の杜
- IMEで間違って登録された単語が毎回変換候補に表示される! どうやって修正すればいい? - いまさら聞けないWindows 10のTips - 窓の杜
- IMEで( ´艸`)こんな顔文字を入力したい - いまさら聞けないWindows 10のTips - 窓の杜
- IMEの変換モード切り替えで画面中央に“あ”とか“A”とか表示されるのが邪魔! - いまさら聞けないWindows 10のTips - 窓の杜
- 「Windows 10 Creators Update」では日本語入力も改善 ~Microsoftが強化点を案内 - 窓の杜
- 1文字目は早すぎる! IMEの予測候補は3文字目くらいからでOK - いまさら聞けないWindows 10のTips - 窓の杜
- 英語の会社名や製品名をIMEで自動的に半角英数へ変換したい! ~小文字から始まる英字をすばやく入力する方法 - いまさら聞けないWindows 10のTips - 窓の杜
- 文字入力のユーザー辞書をバックアップしておきたい! - いまさら聞けないWindows 10のTips - 窓の杜
- 辞書にない最新フレーズを入力したい! クラウド候補を活用する - いまさら聞けないWindows 10のTips - 窓の杜
- 日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - 窓の杜
- なかのん&マジックさんのツイート: "FirefoxやThunderbird共に一時期のトップクラッシュはこの辺だったし、なかなかに設計に問題抱えてる感じなんかな。 https://t.co/pg0iAQRrts"
- Windows 10環境で日本語入力中に「Microsoft Office」がクラッシュする不具合 - 窓の杜
- 「Windows 10 RS5」に機械学習のタイピング支援、フォントのユーザーインストールも可能に - 窓の杜
- 「Windows 10 19H1」Build 18242がリリース ~日本語IMEに新しい要素を投入か - 窓の杜
- 「Windows 10 19H1」では日本語入力システムの改善も - 窓の杜
- “(╯°□°)╯(┻┻”も簡単に入力 ~「Windows 10 19H1」の絵文字パネルは日本の“Kaomoji”をサポート - 窓の杜
- 新しいIMEがフィードバックを反映させて復活 ~「Windows 10 19H1」Build 18305 - 窓の杜
- 新設計の日本語IMEが利用可能に ~「Windows 10 20H1」Build 18875が“Fast”リングに - 窓の杜
- 「Windows 10 20H1」Build 18941が“Fast”リングに ~日中に続き韓国語IMEも近代化 - 窓の杜
- 新設計の日本語IMEをさらに改善 ~「Windows 10 20H1」Build 18950が“Fast”リングに - 窓の杜
- Windows 10の日本語IMEに大きな改善が目白押し ~Macっぽい入力モードの切り替えも可能に - 窓の杜
- 全角・半角の切り替えで一部アプリがクラッシュ ~Microsoftが「Windows 11 バージョン 22H2」の不具合を認める - 窓の杜
PC Watch
- Windows 10プレビュー版IMEが改良。Backspaceの使い方で予測変換がより賢く ~変換状態からのキーワードWeb検索もサポート - PC Watch
- Windows 10プレビュー版は日本語フリック入力対応。さらにAIがネコを認識 - PC Watch
- 次期Windows 10に女子高生AI「りんな」がIMEとして実装 - PC Watch
- Windows 10 RS5、ソフトウェアキーボードがAIで賢く。スペル修正や予測入力可能に - PC Watch
- 次期Windows 10で日本語IMEが刷新へ - PC Watch
- Windows 10プレビュー版、タッチキーボードにキー幅の自動調整機能 ~次に押されるキーを推測して入力ミスを軽減 - PC Watch
- 【山田祥平のRe:config.sys】Ctrl+スペースで行こう - PC Watch
- Windows 10プレビュー版に新しい日本語IME。安定性やゲーム互換性などが向上 - PC Watch
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- Windows 10プレビュー版、日本語IMEのキー割り当てが「設定」画面で可能に - PC Watch
- 変換/無変換キーが消えた「Surface Laptop Go」。Mac仕様のIMEオン/オフで便利に ~日本マイクロソフトが13日発売のSurface Pro Xとともに特色を紹介 - PC Watch
- Windows 10 October 2020 Updateでも日本語IME周りの不具合が継続? Microsoftが回避策を提示 - PC Watch
- 入谷 優さんはTwitterを使っています 「以前 Windows Blog for Japan で公開した記事に対するご意見を受けて、#WindowsInsiders 向け最新ビルドでは TabletInputService が TextInputManagementService に改名されました。これでサービス停止による諸問題が無くなることを願っています。 https://t.co/VNRaEEwqEd」 / Twitter
- Windows 11 Insider Preview Build 22471公開。日本語タッチキーボード修正など - PC Watch
blog
NyaRuRuが地球にいたころ
- Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
- 辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ
- 信頼できる書き込み・読み込み - NyaRuRuが地球にいたころ
- HTML5 Forms の type 指定がデスクトップ IMEに影響するという話 - NyaRuRuが地球にいたころ
- Windows 10 Insider Preview Build 14332 実験ノート: ブラウザと IME のプライベートモード連携 - NyaRuRuが地球にいたころ
- Metro スタイルアプリケーションと IME - NyaRuRuが地球にいたころ
- 保護モードと IME - NyaRuRuが地球にいたころ
- あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
- 数式入力パネルとアプリケーションを連携させる 2 つの方法 - NyaRuRuが地球にいたころ
- チューニングと過学習 - NyaRuRuが地球にいたころ
- 「開発の主体」って何だろう? - NyaRuRuが地球にいたころ
- 2012年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
- 2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (0) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (1) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (2) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (3) - NyaRuRuが地球にいたころ
- Windows Vista における IMM32 API / Message の変更と互換性に関する影響 - NyaRuRuが地球にいたころ
- Windows Vista IMM32 関係まとめ - NyaRuRuが地球にいたころ
- Windows 10のアラビア語のキー配列 - 七誌の開発日記
- Windows 11にしたらIME オン/オフ切り替えキーの設定が消えた - @ledsun blog
- won't fix: IS_PRIVATE on Windows 10 20H1
- Windows 10 20H2にアップデートしたら、Microsoft IMEが消せなくなったので解決してみた | しょぼんブログ
- IMEがおばかと諦めてませんか? - Windows 2000 Blog
- 日本語入力の切り替えはトグルじゃダメ、の件 - DTP Transit
- IMEを無効にすることとスクリーンキーボード - イグトランスの頭の中
- 日本語入力のOn/Off切り替えキーを変更する:Windows(ウィンドウズ)の使い方/IME 日本語入力システム
- Library - WebStudio
- Gecko1.8相当製品において修正したバグ - WebStudio
Twitter
- Yutaka Hirataさんのツイート: "日本語入力をオンにした状態でスペースキーを打つと、空白が全角で入りますが、SHIFTキーを押しながらスペースキーを打つと、空白が半角になります。いちいち、日本語入力をオフにしなくてもよいのでおすすめです。ATOKとMicrosoft IMEのいずれでも使える技です。 https://t.co/F89tt5gtOC"
- takimuraさんのツイート: "IMEが原因でVivaldi落ちたっぽい… "
- なかのん&マジックさんのツイート: "WindowsではIMEはアプリ内部にロードされて動くんで、IMEがクラッシュした場合も苦情がアプリに行くの、結構不条理。"
- なかのん&マジックさんのツイート: "昔、OS XでIMEの機能を呼び出して、そのリアクション中に同じ機能を呼び出すとIMEのプロセスがクラッシュするというバグを見つけたけど、そうするとOSを再起動するまでIMEがどのアプリでも使えなくなってた。そういう意味ではWindowsのやり方の方が正しいって気もする。"
- なかのん&マジックさんのツイート: "@inasoft_ayacy バグの内容的にも、タイミング的にも、 https://t.co/4Po30xSJhp っぽいです。Creators UpdateのMS-IMEにはちょっとヤバいクラッシュバグがあったので、その可能性を減らせないか試すために、MS-IMEがアクティブな間はIMCを無効化していました"
- なかのん&マジックさんのツイート: "むう。Win10 RS4に入る英語キーボードの単語のsuggest機能、Firefoxだと、候補の表示と操作まではうまくいくんだけど、最後の確定時にキャレット位置に挿入されるだけになっちゃうな。 #もずでぶ"
- なかのん&マジックさんのツイート: "Windowsをタブレットモードで初めて使ってるけど、日本語入力ひどいな。何でローマ字入力なの。ローマ字入力とかかな入力とか気にしなくて良いはずのデバイスなのに。"
- なかのん&マジックさんのツイート: "いやATOKじゃなくてMS-IMEなら多少ましか。でも、正直使えるレベルじゃないな。"
- ✨私がういにゃんだ✨さんのツイート: "DJやすんでる間にTraktorが日本語検索できるようになってた・・・・・・・・・・・・・! 2.6.7 -> 2.11.2をキメた… "
- なかのん&マジックさんのツイート: "macOS版とWindows版とあるみたいだから、macOS版の話なのかな。Windowsって、基本的にはIMEに「わざわざ」対応しなくても、IMEが「とりあえず」使えるアプリが作れてしまうっていうのが未だに他のOSにも真似できていなくて凄い。というか、あんな互換性の鬼、そうはいない。"
- なかのん&マジックさんのツイート: "Nightlyユーザでも結構、ATOK 2011とか、MS Office IME 2007とか相当古いサードパーティーのIMEを使ってるもんなんだなぁ。あと思ってたよりもMS-IMEユーザが多い。"
- なかのん&マジックさんのツイート: "Windows 10 October 2018 Updateで修正されたTS_E_NOLAYOUT周りの最終確認と、Nightlyの現状への最適化もやらないといけなんだけど時間が……"
- Masaru Iritaniさんのツイート: "これ、新しい #msimejp で一番お気に入りの機能です。これまでもキー設定を頑張れば実現可能ではありましたが、スイッチ一つで簡単に設定できるようになりました。 #WindowsInsiders… "
- Masatoさんのツイート: "あれ、以前のIMEこんな設定項目あったっけ 使い心地を試してみよう (build 18277)… "
- 渋川よしきさんのツイート: "うおーーーー!IME周りの実践的なコードが読み放題だ!WinFormsのOSS最高!MSDNでもVista時代に作られたサンプルとか削除されて古い形式のAPIしかネットに詳しい情報がなかったりしたのでこれは良い。 https://t.co/Y0ByT6KH4n"
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "WinFormsのソースなんてreference sourceで前から読み放題だったのだが… https://t.co/3xwjodWZLv"
- Reference Source
- 2018年12月5日 Microsoft,「Windows Forms」などのUIフレームワークをオープンソースに,「.NET Core 3.0」プレビュー版も:Linux Daily Topics|gihyo.jp … 技術評論社
- 米Microsoft、WPFおよびWinForms、WinUIをオープンソース化 | OSDN Magazine
- なかのん&マジックさんのツイート: "@msdmairitan お久しぶりです。検証のために今環境を整えている最中ですが、TSF and/or MS-IMEの動作が変わってしまっているようです (https://t.co/quWVy94EZa)。ITfKeystrokeMgr::KeyDown()がasync処理になったか、pfEatenがFALSEを返すようになったかのどちらかかなと睨んでます。とりいそぎ。"
- なかのん&マジックさんのツイート: "分かりました。値がおかしくなるの自体はGeckoのバグなのですが、動作が変わってしまった原因はImmGetVirtualKey()の挙動が変わっているようです。1809ではTSF/TIPがRequestLock()を呼び出している間はVK_PROCESSを返しますが、19H1では生のVKを返してくるようです。意図的な変更でなければご注意を。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のForegroundAppのIME on/offを知るには、GlobalHook + IMM系API発行しかないのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系だとIM系のツールバーがカーソルそばにあるから、現在のIME status 把握のために、タスク通知領域を見る、みたいな視線移動が不要と。"
- なかのん&マジックさんのツイート: "あー、MS-IMEのInputScopeのアレか。"
- 江永島子さんのツイート: "やっぱchromeで新しいタブ開いて検索窓に入力しようとすると 勝手に半角になってしまう。 前はこうじゃなかったような。"
- yasu0796さんのツイート: "Chrome 75 において手元の環境でも再現することを確認しました。 私の方からも不具合を報告しました。 #gHelp… "
- マイクロソフトサポートさんはTwitterを使っています: 「#Windows10 の MicrosoftIMEで誤った変換をしてしまい、予測候補に毎回出てくるようになってしまった...。 そんな時は変換候補画面で消したい候補を選びCtrl+Deleteキーを押せば削除できます。 #MSHelpsJP https://t.co/zil7INxmsH」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「なんと!これは助かる! > できたこと > WM_IME_ 及びその他のウィンドウメッセージを収奪 これが出来るのか…後でソースを解析しよう。」 / Twitter
- (1) 精廬 幹人さんはTwitterを使っています: 「WindowsのEmacsにIME patchを当てるのが超面倒臭くてdynamic moduleで作った後、26.1のcc-modeが激遅で27.0.50に上げて10ヶ月masterに追従させたセルフテストでノーSEGVでした事をご報告します。 https://t.co/e1UjycJEAB」 / Twitter
- maildrop/w32-imeadv: IMM32 dynamic module for Emacs on Windows
- 精廬 幹人さんはTwitterを使っています: 「毎回パッチのコンフリクト解決するの嫌なの なお、dllの暗黙的依存関係の解決も超めんどくさかったのでスクリプトもございます。 https://t.co/j9YVaip1gH」 / Twitter
- maildrop/emacs_dependency_resolver: emacs dependency resolver
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 10 21H2のソフトウェアキーボード、Android 10以降と同じように画像ファイルを入力できる機能が付いてるんだけど、drag&dropぽい動きで挿入されるからEdgeだとページ推移になって笑った」 / Twitter
- 文字入力で「イラっ」とする6つの問題とその解消法(1/2) - FMVサポート : 富士通
- 「ローマ字入力」と「かな入力」を切り替える|パソコン|サポート・お問い合わせ:シャープ
- Microsoft Windows 7 - 入力言語の切り替えを行うキーを変更する方法 | HP®カスタマーサポート
- ASCII.jp:Windows 10の日本語入力は使いにくい?|ズバッと解決! Windows 10探偵団
- MS-IMEとHTML5のinput[type=xxx] - Qiita
- IMEを制御する方法
- Windows 10のIME、郵便番号辞書の更新はどうなっている?:山市良のうぃんどうず日記(142) - @IT
- [半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS
- なかのん&マジックさんのツイート: "トグル形式って頭の中で全ての状態を管理できていることが前提になるんで、ime-mode: active;とかで簡単に問題が出てくるんだよな。なので、どっちかのモードへの切り替えボタンが独立して存在するのがUI的にはすごく正しい。"
- なかのん&マジックさんのツイート: "半角/全角キーとか、カタカナ/ひらがなキーとか、Windowsネイティブイベントのカオスっぷりを知っていると、この辺どうにか綺麗になっていただきたい(たぶん互換性維持のためにしないとは思うけど)。"
- なかのん&マジックさんのツイート: "一応、各OSでのIME関連キーのKeyboardEvent.keyのマッピングはこんな感じ。ややこしいことこの上ない。 https://t.co/B3MWD5BBxx #もずでぶ"
- NativeKeyToDOMKeyName.h - mozsearch
- なかのん&マジックさんのツイート: "そもそも今のJISキーボードの日本語入力キーって、一体何にあわせて設計された結果なんだろう。どの現在のIMEもラベルの通りの機能をデフォルト設定にはしていないよね。"
- 1549394 - Potential privacy leak from Win10 keyboard autocomplete of data entered in Private Browsing
- Makoto Kato ︎︎さんはTwitterを使っています: 「GtkInputHintsとか見てもIMEで履歴を学習しないモードのための値がなさげなので、とりあえずリクエストした https://t.co/owjFCZmFzY」 / Twitter
- RFC: Add new enum value for privte mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
増井俊之
- 略歴 / CV - 増井俊之
- masui (Toshiyuki Masui)
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「なんでみんなIMEを自作しないの?」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「MacのIMEだってChromeOSのIMEだって500行ぐらいで作れるのに。ソースも辞書も公開してるから真似してほしい...」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「キーボードは自作するのにIMEは自作しないというのはヘンだろう」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私のGitHubにはソースがいろいろ置いてある。辞書はScrapboxで公開してる。 https://t.co/hiDUxbFd26」 / Twitter
- Gictionary
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私が使ってるアルゴリズムはこういう感じ。何年もこれで生活してるし、このテキストもこれで書いている。 https://t.co/JVvFg37zx3」 / Twitter
- 接続辞書と日本語入力 - 増井俊之
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「何度も言うけど、普通のMacアプリケーションのinfo.plistを書き換えてMacのIMEにすることができる。ChromeOSの場合はChrome拡張機能でIMEを作ることができる。いずれにしてもとても簡単なので試してみて損は無い。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「昔はMacのIMEを作るのは超大変だったと思うのだけど、IMKitというライブラリが出てから簡単になって、それをRubyで使えるようになって超簡単になった。それをずっと使ってたのだけど、サポートが無くなったので困ってるのであった... RubyでなくてもIMKitが使えるスクリプト言語があればいいんだけど。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「Catalina時代のらくらくIME作成法、みたいなのがわかればそれで満足かも」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「もう一度言っておくと、MacでもChromeOSでも私は自作の500行IMEでずっと暮らしており、それで全然問題はありません。連文節変換なんて要らなかったんや!」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「変な挙動のIME増えると死ねる……特にCocoaとTSF。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Android APIは知らないけど、CocoaとTSFでは、アプリとIMEが共に、同じアプリ内の別のコンポーネント同士かのように動くので、どちらかが他の製品と極端に違った動作をすると、ハックを入れないといけなくなり、その原因を修正すると、そのハックが今度は邪魔になってバグったり。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「なのでAPIのドキュメントで非常に細かく「どうあるべきか」を定義しておいて欲しいんだけど、特にCocoaの方はその辺が全くドキュメント化されてないと良いレベルで。」 / Twitter
- 予測入力の弊害 - 増井俊之
- 曖昧検索asearch - 増井俊之
SKK
- まちカドおるみんさんはTwitterを使っています 「形態素解析しないし辞書から愚直に単語を自分で選ぶだけだから変換精度などというものは SKK にないのでは。仮に悪かったとしたら辞書から適切な変換を選べなかった/あるいは適切な送り仮名挿入ができなかった入力者に帰結する問題ではなかろうか」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「私は「mozc で z と他のキーを複合させて記号を短縮入力できるのは SKK などに先にある機能だと知ってしまった?じゃあ SKK も使うしかないよね」という謎理論を真に受けて爾来 SKK ユーザーです。@tadsan って人のせいです。」 / Twitter
- にゃんだーすわんさんはTwitterを使っています 「@atpons もともとはオムロンのWnnが由来でegg(tamago)経由でEmacsに入ってSKKに実装されてWindowsに持ち込まれたあとSKKIMEの作者がGoogle日本語入力に実装してmozcになったのではないかと臆測しています。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@atpons @tadsan Canna とかで .canna に Lisp 書いて同等機能を実現する例なども当時あったようなので、わりと当時良く知られていた key combo っぽそう」 / Twitter
- スマートコンさんはTwitterを使っています 「z で記号変換できるのめっちゃ便利だし、変換しないひらがなはそのまんまダーっと入力できるので思考に近い速さで日本語が打てるので SKK 以外無理(漢字直接入力は帰って」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「あと再帰的かつ on-the-fly の辞書登録、/ 入力での abbrev 変換モードが楽すぎて好き。abbrev 変換で abbrev や英単語をカタカナ音写に変換する本来の用法より、アクセント記号やキリル文字、ギリシャ文字とかをラテン文字から変換するのに使うほうが多いけれど。」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi 現状のSKKからUIをおおきく変えない範囲でできそうな工夫を考えてみると「訪問先からの"きしゃ"」みたいなときに手前の文脈から"きしゃ"の変換候補の並び順を変えるとかはできるかもしれない」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@moriwaka 最近の SKK 実装だと豫測変換機能を入れ込んでたりもします」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi おお、そうなんですね!」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「original や DDSKK はほぼ使ったことがないのだけれど、skk.vim には何度か救われた」 / Twitter
- 高精度に漢字変換できるSKK辞書を作った(四角号碼、正假名) | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「SKKでギリシャ文字打つときは/alphaでTeXでギリシャ文字打つときは\alphaなのけっこう混乱するな」 / Twitter
- k0kubunさんはTwitterを使っています 「@blackenedgold /alpha 初めて知った (ので混乱してなかった)」 / Twitter
- κeenさんはTwitterを使っています 「@k0kubun κeenを入力するときに毎回必要になる」 / Twitter
- yoh2さんはTwitterを使っています 「ところで SKK さえあればいい、ではなく数ある IME から SKK を選んだ、なんだよな。 ついでに言うと Linux デスクトップ環境では fcitx の SKK も ibus の SKK も手に馴染まず、uim の SKK がいい、となってる。」 / Twitter
- yoh2さんはTwitterを使っています 「fcitk の SKK や ibus の SKK が馴染まないというより fcitk や ibus が馴染まない (´・_・`)」 / Twitter
- κeenさんはTwitterを使っています 「ぎゃーぎゃー言ってないで読むか… https://t.co/RtmIJ0cXVy」 / Twitter
- uim/uim: A multilingual input method framework
- fcitx-skkで変換/無変換キーで日本語/ラテンを切り替える | κeenのHappy Hacκing Blog
- naokiri/cskk: SKK (Simple Kana Kanji henkan) library
GIGAZINE
- Googleの新たな自然言語処理モデル「ALBERT」はどのように進化したのか? - GIGAZINE
- 「AI関連ソフトウェアの輸出に制限をかける」とアメリカ政府が発表 - GIGAZINE
- 無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた - GIGAZINE
- 実際のところ「AIが表情から感情を読み取る」ことは可能なのか? - GIGAZINE
- AIが人間の表情から感情を読み取る「感情検出技術」はなぜ危険視されているのか? - GIGAZINE
- Googleの新たな自然言語処理AI「T5」の特徴とは?実際にAIとクイズで対決も可能 - GIGAZINE
- ローマ教皇がMicrosoftやIBMと共同で発表した「AIの倫理に関する呼びかけ」とは? - GIGAZINE
- 「差別をAIに植え付ける」としてMIT研究者らが大規模なデータセットをネットから完全削除 - GIGAZINE
- Googleが「知らない言語」も翻訳処理ができてしまう言語モデル「LaBSE」を発表 - GIGAZINE
- ゲームパッドからのテキスト入力を最適化する手順をエンジニアが公開 - GIGAZINE
- Microsoftの量子コンピューター構築のカギだった「マヨラナ粒子」を観測したという論文が撤回される - GIGAZINE
- 量子コンピューターに関する論文が続々と撤回されている理由を「マヨラナ粒子」の研究者が解説 - GIGAZINE
- 2000種類以上ものアフリカの諸言語を機械翻訳可能にするオープンソースプロジェクト「Masakhane」 - GIGAZINE
- AIがリスクとコストを事前に考慮して強化学習を行うためのツール群「Safety Gym」をOpenAIが発表 - GIGAZINE
infoQ
- Agile Igniteを使用した継続的ディープラーニング - Denis Magda氏の講演より
- 説明可能なAIに関する調査結果を研究者チームが発表
GitHub
- hiroshi-manabe/ngram-converter-cpp: Kana-Kanji (and vice versa) converter using N-gram data (C++ version, dictionary data included)
- tmu-nlp/simple-jppdb: A paraphrase database for Japanese text simplification
- 日本声優統計学会
- libhangulに韓国の人名用漢字をほぼ全面追加 | yasuokaの日記 | スラド
- choehwanjin/libhangul: libhangul
- WorksApplications/Sudachi
- zhezhaoa/ngram2vec
- deton/tsf-tutcode: Kanji Direct IME for Windows
- uim-tutcodeで後置型かな漢字変換(連続するひらがなを対象に最長一致)
- Shiki Okasakaさんのツイート: "tsf-tutcodeをローマ字入力やかな入力用につかってみると、 ・ひらがなを直接入力できるというは能率がよい、 ・後置型変換で最長一致のときは、まぜがきではなくて、直前のひらがなの部分に限定したい、 ・従来のIMEから後置型変換への移行は別にむずかしくない、 といった感想。"
- Shiki Okasakaさんのツイート: "tsf-tutcodeがおもしろいのは、 『しろうとむけワープロの登場を期待したいですね。』 と、梅棹さんのようにかきたいときに、ふつうのIMEだと、 『素人向けワープロの登場を期待したいですね。』 になりがち。それが、 https://t.co/nqprBgjY22"
- 不一致シーケンスが後置型変換開始キーで確定された時に変換対象外になるバグ修正 · deton/tsf-tutcode@32301e8
- esrille/ibus-replace-with-kanji: Replace with Kanji Japanese input method for IBus
- Shiki Okasakaさんのツイート: "EDICT2ファイルからibus-replace-with-kanji用のカタカナ辞書を生成して、ひらがなからカタカナ語に置換変換できるようにしました。 https://t.co/TB0Y23oQ5U"
- Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiでは、辞書ツールもSKK辞書からrestrained.dicを生成するように書きなおしました。 https://t.co/PBA3Y1etnq"
- Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiで和語の用言も必要であれば漢字で入力できるようにしました。※ 和語は「かな書き」を好む傾向とのことで、常用漢字表内でも弄ぶ・遡る等は「ひらがな優先」いうのが『NHK漢字表記辞典』流。 https://t.co/rmpclFO57r"
- yoriyukiさんのツイート: "Pythonで書かれたオープンソースかな漢字変換エンジン「中山道」をリリースしました。普通に統計的言語モデルを使っています。ソースは辞書がついてこないので、バイナリをダウンロードしてください。 https://t.co/lAP330vJe2"
- Release Version 0.1.0 (鴻巣) · yoriyuki/nksnd
- Shiki OkasakaさんはTwitterを使っています: 「「ひらがなIME」のウェブページをつくりました。総ルビ。原稿は、「ひらがなIME」と「ふりがなパッド」をつかって、総ルビのマークダウンでかいています。それをPythonでHTMLにかきかえています。リポジトリには、原稿やスクリプトごとおいてあります。 https://t.co/Wbq8IlwloO」 / Twitter
- はじめに ― ひらがなIME
- Shiki OkasakaさんはTwitterを使っています: 「「ふりがなパッド」v0.1.0 をリリースしました。 Fedora、Ubuntu、Raspbian用のソフトウェア パッケージを用意しました。「日本語 漢字置換インプット メソッド for IBus」v0.6.0とくみあわせて利用してください。 https://t.co/NmPoD1HSY6 https://t.co/zeJFxBpbiA」 / Twitter
- Release furiganapad-0.1.0 · esrille/furiganapad
- Shiki OkasakaさんはTwitterを使っています: 「ふりがなをふった漢字のおわりまでカーソルを移動して、CTRL-Tをおすと、ひらがなにもどせます。そこで変換キーをおせば、またいつでも漢字に変換できます。」 / Twitter
Wikipedia
- 形態素解析 - Wikipedia
- POBox - Wikipedia
- 日本語入力システム - Wikipedia
- 修飾キー - Wikipedia
- フリック入力 - Wikipedia
- トライ木 - Wikipedia
- オンライン整数列大辞典 - Wikipedia
- ロジバン - Wikipedia
- Lojban - Wikipedia
- 湯桶読み - Wikipedia
- 重箱読み - Wikipedia
- Control key - Wikipedia
- コントロールキー - Wikipedia
Qiita
- glfwマルチプラットフォームでのIME対応の困りごとまとめ - Qiita
- マルチプラットフォームでIME対応させたいメモ - Qiita
- ニューラルかな漢字変換 - Qiita
- 未踏の応募資料を公開します 【統計的かな漢字変換】 - Qiita
- 理工系俗語辞典 - Qiita
- Windowsのvimで挿入モードのIMEをデフォルトオフにする - Qiita
Twitter
Enter キー
- もやしパンさんはTwitterを使っています: 「世界中のエンジニアに向けて「IMEを使う文化圏では変換確定時にもEnterキーを押すねん」というのを、良い書き方とともに伝えるWebページが必要なのではないか…」 / Twitter
- Yusuke Ando🏳🌈さんはTwitterを使っています: 「@Moyashipan こちらいかがでしょう https://t.co/dd1Uzx7D4N」 / Twitter
- Other things to be careful of | Your Code Displays Japanese Wrong
- もやしパンさんはTwitterを使っています: 「@yando まさにこれ! "but rather look for a newline character" の部分はいくつかのプログラミング言語ごと(特にJavaScript…)のサンプル載せてあげるとなお良さそう」 / Twitter
@d_toybox
闇
- 金具 as a 産廃さんのツイート: "IME周りはどうやら闇が深すぎて、普通に対応するだけでアプリ側が細工しまくりなイメージがすっかり刷り込まれてしまったので、ユーザが別の細工を入れたらうまく動作する方がおかしいくらいかもしれないな。"
- 道化師さんのツイート: "Chrome だけ、 IME 絡みの細工がうまく動作しないからその対策してたら Chrome 本体の挙動がおかしくなった。 Chrome さん、 IME 周りのハンドリングがアホっぽい。"
- 一ノ瀬 いろはさんのツイート: "IME 周りってかなりの闇という印象。 IME 側もアプリ側も。"
- なかのん&マジックさんのツイート: "だって、GeckoのIME周りの実装の面倒見て、10年以上給料貰えるぐらいですから。"
- なかのん&マジックさんのツイート: "いぐざくとりぃ…… https://t.co/kkghv2DgrK"
- 金具 as a 産廃さんのツイート: "なんとなくTL眺めてる限りでは、それぞれの"失敗"に対してIME側がそれぞれ異なるアプローチで修正をしかけていて、それらに対して更に対応を強いられるようなことがあるらしいようなイメージがある。"
- 道化師さんのツイート: "IME周りって別にそんな闇々してないと思うんだけどなぁ。単に IME ?なにそれ?極東の連中はそんな面倒臭いモノ使ってテキスト入力してんの?って感じのIMEに対する理解が薄い連中が絡んで失敗やらかしてるだけなんじゃないの?"
- なかのん&マジックさんのツイート: "それ、日本人がメンテしてても日本以外のIMEユーザにそう思われてると思うよ。"
- ⚓そうだな㌠⚓さんのツイート: "MS-IMEとATOK、GoogleIMEの各バージョン毎の動きの違いとか全然違ったりするからIMEは大変だと思う。(古いIMEだとTSFではなくIMMで実装されててWindows8.1以降Firefoxでクラッシュするとか)"
- なかのん&マジックさんのツイート: "TSFになってから、一回、エラーを返すとヘソを曲げてTIP (IME)が動かなくなるとか多々あってですね。色々とやってるんですわ、色々と。"
- なかのん&マジックさんのツイート: "読むとタノシイヨ? / TSFTextStore.cpp - mozsearch https://t.co/EEGhlUyv29"
- なかのん&マジックさんのツイート: "この上にまだ、e10sでcontent process側での非同期更新をTSFTextStoreから隠蔽してるクラスが居たりするからね?"
- なかのん&マジックさんのツイート: "ちなみに、こんだけ実装が大きくなってても、WinXPでは全然まともに動かなかったからね……"
- なかのん&マジックさんのツイート: "特に、Natural Input、てめぇだ。"
- なかのん&マジックさんのツイート: "@cobodo あ、そういえばここの、"However, this is fixed on Win 10."っての、当時のプレリリース版では修正されていたっぽいものの、現存しているはず。"
histric-1
- なかのん DAYS''さんはTwitterを使っています: "ちなみに、GeckoはIMEからたとえ意図的にASCIIのコントロール文字が未確定文字列に混入してても、これを無視して(無いものとして)処理するようになっています。"
- なかのん DAYS''さんはTwitterを使っています: "そもそもWindowsだとCtrl+AltはAltGrなのでショートカットキーとして使っちゃいけないんだけど……"
- なかのん DAYS''さんはTwitterを使っています: "ハングルのキーボードだけは、さらにBackspaceの隣のキーを押させないと分からないけど、OS Xがハングルのキーボードをサポートしてるかは怪しい。Mac用のハングルキーボード探したけど、少なくとも当時は存在していないっぽかった。"
- なかのん DAYS''さんはTwitterを使っています: "Mac OS XのApple純正キーボード以外を接続した時にShiftキーの横のキーを押せっていうダイアログ、上手いよね。KeyboardEvent.codeの仕様書見ると分かる。 https://t.co/kqtd8O8M4w"
- なかのん DAYS''さんのツイート: "入力した文字数でしかサジェストしてこない予測変換はその価値を見いだせない……"
- なかのん DAYS''さんのツイート: "OS Xの欧米のキーボードレイアウトでキー長押しにした時に出るアクセント記号付き文字の候補の入力、内部のイベントの生成が実にひどくて涙出る……こういうデザインがAppleは相変わらず下手だよなぁ……"
- なかのん DAYS''さんのツイート: "他のOSならIME非対応アプリならIMEをそもそもオンにできなかったり、未確定文字が表示されなかったり、確定しても何も入力されなかったりするのが当たり前だけど、WindowsはIME側で未確定文字列表示したり、確定文字列をキーによる入力にまでフォールバックしてくれる。"
- なかのん DAYS''さんのツイート: "Windowsのキー入力とIMMのイベントモデル考えた人、本当に凄いと思う。後からIMEに対応したんだと思うけど、キー入力イベントとの整合性や、それへのフォールバック、さらにIMEイベントの処理のしやすさと、これらのバランスが最高。"
- なかのん DAYS''さんのツイート: "積極的に使ってなくても恩恵受けてる可能性はあるよ。ブラウザとか未確定文字列を自前描画するアプリはフォーカス移動で確定が普通だけど、これはIMEでテストでちゃんとテストされていないアプリで意図しない確定の原因担ってる。 https://t.co/oSbDYx3ZyK"
- なかのん DAYS''さんのツイート: "ちなみに、3の時点でBackspaceキー使ってもOKで、コツをつかむと、かなり効率よく辞書登録できて、同じ単語の入力で何度も面倒な入力しなくて済む。"
- なかのん DAYS''さんのツイート: "ATOKに、変換しようとしたけど辞書に無かったって事実を分からせる、最後の文字の確定をうまく知らせる、ここがポイント。難しそうに聞こえるけど、慣れると簡単にできたりする。よく使う当て字の登録とかに便利。"
- なかのん DAYS''さんのツイート: "くそっ。右Altキーが無いからハングルのTIPでオン・オフ切り替えできないことに今頃気付いた。本当に右Altを削除するという判断した日本人は他言語の入力に対して無知すぎないか? キーボードという言語入力のためのハードの設計者なのに。"
- なかのん DAYS''さんのツイート: "ちなみにTSF実装で、Korean TIPはMS謹製のものでも、かなり変な挙動してくれるので鬱陶しい。サードパーティー製のものはやはり、互換性のためにこれに合わせてるっぽくで地獄絵図。"
- なかのん DAYS''さんのツイート: "ATOKさんには有名なヨーロッパ、南米のサッカー選手の名前ぐらいは辞書に入れてもらいたく……あまりにカタカナで書く外国人名に弱いのが難点。"
- なかのん DAYS''さんはTwitterを使っています: "ちなみに、Geckoはかなり前から、キー操作にしろホイール操作にしろ、ページ単位でスクロールする場合には1ページ分より少しだけ少ない量しかスクロールしない。そうしないと特にリストボックスのようなUIでは分かり難いから。"
- なかのん DAYS''さんのツイート: "未確定文字列を見られる可能性をどうしようってのがやっぱあって……あと、自動学習しちゃわないといけないんだけど、その辺も色々と…… https://t.co/NuACAoEAR5"
- なかのん DAYS''さんのツイート: "テキスト入力の抽象化にはこの方が良いのは分かるんだけど、キーイベントの後に文字入力イベントが保証されてる訳じゃないんでこの辺がバグの温床になってるなぁ、昔から。"
- なかのん DAYS''さんのツイート: "ChromeのKeyboardEvent.key、printableキーはそこそこ正しいんだけど、non-printableキーに関しては、ただのKeyboardEvent.codeと値が違うだけの挙動なんだよな。仮想キーコードからじゃなくて、scancodeからマッピングしてる"
histric-2
- Rockridgeさんのツイート: "Fx52:Android版のIME処理をJava側と非同期化し、パフォーマンスを向上させつつマルチプロセス機能(e10s)との互換性も確保した。 / “1307816 – Make IME asynchronous on the…” https://t.co/Cua1Zwgp4b"
- なかのんクエストさんのツイート: "Firefoxは2.0まで、IMEやキーボードレイアウトの状態制御が出来なかったんで、3.0から各プラットフォームのネイティブのパスワードフィールドの挙動に合わせる際に、入力不能なパスワード使ってたユーザへの配慮として、CSSのime-modeで挙動を戻せるようにしておいた。"
- なかのんクエストさんのツイート: "macOSはASCII-Capableなキーボードレイアウトに絞るように開発者向けの資料で指示があるけど、逆に言うなら、ASCII-Capableなレイアウトで入力できる非ASCII文字は使える。ユーロ記号とか。"
- なかのんクエストさんのツイート: "Windowsは確か、デッドキーは利用不能だけど、非IMEなキーボードレイアウトは利用可能。LinuxはテーブルベースのIMEは利用可能なので、デッドキーは利用可能。非IMEなレイアウトは何でもOKだけど、そもそも、アプリがそれを判断出来ない、指定出来ないぐらいのAPIだったり。"
- Rockridgeさんのツイート: "Windows版Firefoxにおける、保護モードで動作するFlash PlayerのプロセスとIMEとの関係について。2013年7月の記事だが、その後Firefoxに加えられた修正を理解するための基礎知識を提供してくれる。 https://t.co/DEx4sWJG8a"
- Flash PlayerのIME問題のおさらい - WebStudio
- なかのんクエストさんのツイート: "最近、IMEにいい加減にどうにかしてって思うのは、(特に単漢変換の時に)候補を追加入力で絞り込めないことだな。例えば部首とかで絞り込めたら膨大な候補の大半を捨てられるのに。"
- なかのんクエストさんのツイート: "自動学習がおかしな事にならないように、できるだけ本来の読みから文節区切って確定していきたい。"
- なかのんクエストさんのツイート: "基本的にはどのIMEフレームワークもマルチプロセスなりマルチスレッドなりで、エディタに遅延書き込みが発生することが想定されていなかったりとかしたりするぐらいです(Androidは、 @NyaRuRu さんががんばって非同期なアプリでも大丈夫な形とか聞いたけどまだ見ていない)。"
- なかのんクエストさんのツイート: "そろそろ標準仕様側で決着ついてる、IME利用時のKeybordEventの発火処理の標準仕様準拠化作業もやりたいな。あれは結局、Firefoxの挙動にメリットも多いけど、他のブラウザ間が互換あるんで影響のでかさからFirefox側の動作を変えてという話にorz"
- なかのんクエストさんのツイート: "Firefoxの動作が、というより、Netscape時代からの動作なんだけどね。"
- なかのんクエストさんのツイート: "内部処理は一年以上前から設計変更時に、あわせて準備してたんだけど、TSFモードが完全に非対応なんでその辺をガッツリ書かないといけない。"
- なかのんクエストさんのツイート: "IMEの未確定文字列がある時にkeydownイベントやkeyupイベントを発火する最大のデメリットって、これらのイベントの本当の意味を理解していない開発者にアクセシブルじゃないサイトを作ることを許してしまうってところなんだよね。"
- なかのんクエストさんのツイート: "keydownとkeyupイベントは仕様でも定義してるけど、物理的にキーが押された、もしくはそれがエミュレートされたというイベント。つまり、文字が入力されたというイベントじゃ*無い*。"
- なかのんクエストさんのツイート: "なので、inputイベントの代わりにkeydownやkeyupイベントをハンドリングされていると、音声入力や手書き入力のようにキー入力と関係ない文字入力時に正しくハンドリングできず、マイナーな環境が切り捨てられる可能性が高くなる。こういうのを仕様レベルで回避したかったんだけどね。"
- なかのんクエストさんのツイート: "もうひとつ、Firefoxだけ、文字入力しないキーでもkeypressが発火するという動作があるんだけど、こっちは発火しない方がmakes senseだと思うんで変更に賛成なんだけど、内部処理を先に書き換えないといけないところが多過ぎて踏み出せずにいる。"
- なかのんクエストさんのツイート: "まあ、なんにしろ、互換問題がこの辺は昔から報告多いし、仕様も決着ついてるんでそのうちにどうにかする。"
histric-3
- なかのん&マジックさんのツイート: "無事、57へのupliftが承認された。Google日本語入力とMS-IMEでURLバーにフォーカスあてるとIMEがオフになる(IMEが自動的にやってる)余計な機能、無効化されます。 https://t.co/Pi9ZGb3G89 #もずでぶ"
- なかのん&マジックさんのツイート: "ただし、副作用として、これらのIMEが選択されている間、URLバーにフォーカスを与えても、タッチキーボードはURL用ではなく、通常用になります。他のIMEやキーボードレイアウトならURL用になります。 #もずでぶ"
- なかのん&マジックさんのツイート: "MS-IMEの公式のフォーラムでもこの機能に不満持ってる人居たし、なんでGoogle日本語入力もそれを真似たのかまったくもって謎。ATOKは自動で余計なことをしてくれないので助かってる。 #もずでぶ"
- なかのん&マジックさんのツイート: "ちなみに、前々からの問題だったなのに、なんでこのタイミングで強引に修正したのかというと、デフォルトのレイアウトでは、検索バーが消えて、URLバーから検索するようになったから。流石にこれでIMEをいちいちオフにされるのは迷惑なので説得しやすくなった。 #もずでぶ"
- なかのん&マジックさんのツイート: "本当はIS_URLだけじゃなくIS_SEARCHもInputScopeに指定すればTSFのデザイン的には正しい。でもそうすると期待通りに動かないし、タッチキーボードも同様だったので、IS_DEFAULTを渡すようにした。なのでIMEからは特殊なものには見えなくなってる #もずでぶ"
- なかのん&マジックさんのツイート: "@robert_KIMATA 全ブラウザ、検索兼URL入力の欄になってるので、そういうのをTSFが用意するか、MS-IMEとGoogle日本語入力が独自にやってることなんで、IS_URLとIS_SEARCHの同時指定でよろしくやるかのどっちかであるべきなんですよね。こちらとしては不本意な変更。 #もずでぶ"
- なかのん&マジックさんのツイート: "IME内部でのクラッシュ(もっといえば、DLL内部でのクラッシュ)が、アプリのクラッシュに見えてしまうの、Windows上でアプリで商売やってる側としては迷惑なのでどうにかしてほしい……"
- なかのん&マジックさんのツイート: "AltGr使うヨーロッパ言語ではAltGrキー押したときに発生するGDKのイベントがUnityの時だけバグってるんではよ消えて…… / Unityデスクトップの存続に向けて開発者やメンテナ募集が行われる | スラド Linux https://t.co/bex7I4R0Ce"
- なかのん&マジックさんのツイート: "UWP関連の色々で、ここ最近のWindowsはIME周りのコードを書き換えている様なので、できるだけ最新のバージョンを使い続ける方が良いという、今までには無かったような状況に思えます。"
- なかのん&マジックさんのツイート: "@inasoft_ayacy Firefoxは、UWPではありませんが、TSF-awareアプリです。about:configでintl.tsf.enableをfalseにして再起動すると、通常のアプリと同様のIMM APIを利用したハンドリングを強制できますが、その場合はどうなるでしょうか?"
- なかのん&マジックさんのツイート: "そーいや、たまにパスワードに日本語も、みたいな話を見かけるんだけど、あれもいろいろと有るから、未だにASCII文字だけなんだと思うよ。まず、第一に、マルチデバイスな昨今、全ての環境でパスワード入力欄の仕様を同時に変更するのは難しい。"
- なかのん&マジックさんのツイート: "第二に、未確定文字列等をショルダーハック(だっけ?)される心配をどうするのか。第三に、コンピュータに詳しくないユーザがうまく入力できるのかという、サポートのコストに対する懸念がある。最後に、IMEがパスワードを学習してしまう問題がある。"
- なかのん&マジックさんのツイート: "実際に、最後の問題は深刻で、Androidでたまに、パスワード入力欄を独自実装してるのか、IMEが使えるアプリがある。この時、パスワードがIMEに学習されてしまい、変換候補に表示されるという糞な体験をしてる。"
- なかのん&マジックさんのツイート: "USB HIDで定義されてる全キー入りのキーボード欲しい。"
- なかのん&マジックさんのツイート: "世界のキーボードを知ってから、MacにApple純正じゃないキーボードを刺したときに、左右のShiftキーの横のキーを押さされる意味が分かった。あそこにある特殊キーだけでレイアウトが分かっちゃうのね。"
- なかのん&マジックさんのツイート: "まあでも、物理レイアウトを意識するmacOSはクソだと思いますけどね。"
- なかのん&マジックさんのツイート: "OSは論理レイアウトだけ意識すれば良いと思うんだけど、macOSは物理キーボードタイプを文字とのマッピングに使うせいで、JISキーボードでUSレイアウト(Dvorak含む)を使えない。そのくせ、APIというか、ネイティブイベントでは仮想キーコードしか取得出来ないというのが意味不明… https://t.co/A2bfORKmc3"
- なかのん&マジックさんのツイート: "TSFについてググると、自分の出した情報か、NyaRuRuさんの情報に行き着くだけというオチ……"
histric-4
- なかのん&マジックさんのツイート: "MSのIME、軒並み、TS_E_NOLAYOUT問題を一杯抱えてるみたいなので、本当にTIP側でどうにかして欲しいんですが……"
- なかのん&マジックさんのツイート: "Firefoxでkeydown/keyupが発火されないのは現在のUI Events上はバグなんだけど、"input"イベントを捕まえずにどうにかしようとしている時点で入力イベントを理解できていない(UI Eventsの仕様案を読んでいない)な、この人。 https://t.co/F41MKDw4X2"
- inputの入力値の制御でIME入力とかいろいろ辛かった話 - Qiita
- なかのん&マジックさんのツイート: "修正を後回しにしてるのは、本来"input"イベントを使うべきだからなんだよなぁ。音声入力とかにどうやって対応するつもりだ?"
- なかのん&マジックさんのツイート: "TSFのTS_E_NOLAYOUT問題、個人的に知ってるMSの人に直接コンタクトとるべきかなぁ、もはや。"
- 紙魚丸(しみまるさんのツイート: "ウィンドウズ 登録されてない文字を辞書登録して今後は変換できるぜ ってのあるけど 逆に そんな変換はもうしなくていい って登録はできんのかな ゲームって入力して変換押したらGAMEって出て いいからそういうの やめて"
- なかのん&マジックさんのツイート: "ブラウザのオートコンプリートだと、矢印キーで選択してDeleteで消せるけど、IMEでは考えたこともなかったな。"
- なかのん&マジックさんのツイート: "アプリ開発者としては、macOSのCocoaみたいな、「アプリの実装がIMEやフレームワークと一体となって動かなければいけない」という設計は本当にキツい。TSFも基本的にはそれに近いけど、アプリからもAPIを使ってIMEにリクエストできるのは大きい。"
- なかのん&マジックさんのツイート: "NSTextInputContext.invalidateCharacterCoordinates()を呼び出してもアプリから当然のごとく期待される動き、つまり、候補ウインドウの位置の再計算とか無いからね。何のためにあるのか本当に謎。"
- なかのん&マジックさんのツイート: "access keyとshortcut keyがコンフリクトしてたらどっちが優先順位高いの問題……(Geckoはaccess key)"
- てるろーさんのツイート: "IMEほど闇は深くないんだけど、海外製テキスト入力コンポーネント(典型例がDataGrid)でIMEを想定してないキーイベント実装になってるやつ、よくありますね / 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記 https://t.co/EZbyWlBdYu"
- なかのん&マジックさんのツイート: "そういうのがあって、音声入力や手書き入力に非対応なWebアプリが増えちゃうから、未確定文字列がある時にkeydownとkeyupは発火すべきじゃないって、UI EventsのWGで昔、抵抗したんだけど、Gecko以外は発火してるからっていう理由で負けた。"
- なかのん&マジックさんのツイート: "これは本当に今でも悔しくて、Webアプリはテキストの入力を検出する場合、beforeinput (Geckoはまだ未実装)、input、composition(start|update|end)イベントのみで実装しないと全然アクセシブルじゃない。"
- なかのん&マジックさんのツイート: "beforeinputはどうすればスマートな実装になるのか、未だに分からないんだよなぁ。keypressイベントの発火方法自体を見直さないと、EventStateManagerからフォーカスのあるEditorに問い合わせて、みたいな汚いやり方しか思いつかない。 #もずでぶ"
- なかのん&マジックさんのツイート: "長年の修正で、keydownイベントがkeypressイベントのほぼ全ての情報を持つようになったのでなんとかなるのかもしれないけど、一部のプラットフォームはIMEが処理する前にkeydownイベントを発火してから、keypressにするか、compositionイベントにするかを判断してるんでキツい。 #もずでぶ"
- なかのん&マジックさんのツイート: "keydownの発火をIMEが処理したかどうかを判定できるようになるまで遅らせるべきなんだけど、そうすると、今度は、keydownイベントのpreventDefault()でcompositionstartを抑制するということがプラットフォームによっては不可能になるので、なんというか、仕様が悪い気する。 #もずでぶ"
- 小野塚裕也 (よP)さんのツイート: "ところで Windows 版 LINE は IME のキーバインドより前に出てくるから単語区切り指定中にウィンドウが開かれたりして使いにくいのなんとかして。ライン社内には Microsoft IME でキーボードショートカット使う人いないのかね。"
- 小野塚裕也 (よP)さんのツイート: "IME の文字入力・変換作業中にホストのアプリケーションがキーボード入力受け付けちゃダメでしょ。"
- 小野塚裕也 (よP)さんのツイート: "極端なこと言うとスマートフォン中心に使っている人なら LINE のキーボードショートカットなんか使わない (というかあっても実用的でない) んだからなくてもいいのに。"
- なかのん&マジックさんのツイート: "IME全く使わない人たちが開発するとこの手のバグを入れがちなのに、LINEがやらかしてるのか。"
- なかのん&マジックさんのツイート: "あー、でも、ハングルのIMEだと、何かショートカットキーを押したくなる時には、もう、ユーザの中では入力が終わってる状態だから、か。"
histric-5
- なかのん&マジックさんのツイート: "ぼんやりとソース見てるけど、devtoolsは全部、keypressからkeydownにそのまま移行させた方が良いのかな。"
- なかのん&マジックさんのツイート: "e-Taxはime-modeを多用してくれてて、かなり入力しやすかった。あれを実装するなとまで書いたW3Cは本当にアレ(抵抗はした)。"
- なかのん&マジックさんのツイート: "とりあえず、確定申告ページで今でも使われてるってのは書いておいた。ime-mode: active;とime-mode: inactive;は設定で無効化できた方が良さそうではある。ただ、無効化をデフォルトとするかどうかは悩ましい / https://t.co/ASPFx4ZeN8 - Remove ime-mode propery https://t.co/CmHiTpqk5s #もずでぶ"
- なかのん&マジックさんのツイート: "Android、タッチ入力の仮想キーボードからIME使うのと、ハードウェアキーボードから使うのとでは動作が違うのかよ……"
- なかのん&マジックさんのツイート: "実装後回しになったとしても、ハードウェアキーボードのパスを作っておいて、そこに仮想キーボードから疑似イベントを流す、みたいな形になってないのかな?"
- なかのん&マジックさんのツイート: "今日もパッチ書いてて戸惑ったんだけど、この例、本当に正しいんだろうか。WM_SYSKEYDOWN(UP)は無視して良いの? TIP/TSFがAlt+somethingを処理できないけど。 / ITfKeystrokeMgr::TestKeyDown method (Windows) https://t.co/RX6nWMiJ9B"
- ITfKeystrokeMgr::TestKeyDown method (Windows)
- なかのん&マジックさんのツイート: "@msdmairitan さん、ご意見あれば。"
- Masaru Iritaniさんのツイート: "ありがとうございます。ちょっとこの辺り詳しい人に聞いてみます。… "
- なかのん&マジックさんのツイート: "はい、お願いします。最初の実装時にもうーん、と思いながらも、例に従って、WM_KEYDOWNとWM_KEYUPのみTSFに渡すようにしました。もしアレならWM_SYSKEYDOWNとWM_SYSKEYUPも渡すようにします。… "
- なかのん&マジックさんのツイート: "macOSでIMEから飛んでくる未確定文字列をそのままテキスト内で使うの、もういい加減にダメって広まってないの?"
- なかのん&マジックさんのツイート: "Firefoxは現存する有名なIMEの全機能を子プロセス上でもサポートするために、かなり色々と値をキャッシュしたりしてて、シンプルに文字入力してるだけのときからすると「無駄な」処理をいっぱいやってる。入力から発生する処理の別プロセス・別スレッドへの追い出しは本当にキツい。"
- なかのん&マジックさんのツイート: "OSからの入力に対するイベントと、それへの応答が非同期処理をサポートする形になってくれて、さらに、各IME等のミドルウェアがそれをバグ無く処理できるようになれば、メニーコア時代のデスクトップアプリはもーちょい進化するのかもしれない。書いてて無理に思えるけど。"
- なかのん&マジックさんのツイート: "シングルプロセス、シングルスレッドなアプリはどんどん相対的にパフォーマンスの悪いアプリとなっていくわけだけど、ユーザからの入力に対するリアクションってほんどスレッドの分けようが無いアプリも多いので、やはりスレッドあたりの性能向上も大切だなぁと。"
- なかのん&マジックさんのツイート: "Firefox/Chromeのような、メインプロセスが重要なタイプのマルチプロセスアプリの設計は今後どう変化していくんだろう。今でもメインプロセスにかかる負担ってそれなりにあるけど、統括すべき子プロセスが増えていくと……"
- なかのん&マジックさんのツイート: "今頃気付いたけど、macOSの日本語入力、今でも内部的にはKotoeriって名乗ってるんだ。"
- なかのん&マジックさんのツイート: "Win10に古いIME入れてるとこんな感じで警告が毎度毎度、大きめのアップデートで出る。… "
- なかのん&マジックさんのツイート: "Win10の大型アップデートのときに出なくても良いんではって思ったけど、いつまでも古いサードパーティーのIME使いながら、すぐにその自覚無く文句言う人出てきそうだから出すしかないか。"
- なかのん&マジックさんのツイート: "「ぽんよう」はATOKでもMS-IMEでも変換できないか。"
- なかのん&マジックさんのツイート: "ATOKは訂正候補出してきて、MS-IMEは単純にカタカナに変換できないように文節切ってくるのか。ガチで間違ってる人にはATOKの方が良さげ。"
- なかのん&マジックさんのツイート: "ものっすごいlong standingなテストAPIのバグを見つけてしまった。よく動いてたな、IME周りのテスト。"
- なかのん&マジックさんのツイート: "Linux版Nightlyで、一部のデスクトップテーマのバグのせいでfcitxの未確定文字列が正しい色で表示できないバグを修正したけど、その方法がfcitxの参照してる選択色を上書きするというちょっとリスキーな方法なので、regression出てたらできるだけお早めに報告を(bugzillaでも私に直でも) #もずでぶ"
- なかのん&マジックさんのツイート: "このバグが起きてる環境だと、未確定文字列が背景も文字もおおむね同じ色なのでほとんど読むことができないので可能な限りupliftを行いたい(betaとESR60)。"
- なかのん&マジックさんのツイート: "Debianでこんな感じに表示されてしまってる。… "
- なかのん&マジックさんのツイート: "IMEの未確定文字列の表示自体は、把握している限りはfcitxユーザにしか影響無い上に、かなり新しいバージョン使ってる場合は、このバグ回避のためにfcitxが別の色をFirefoxの場合に使ってるので問題は起きてないです。ただ、IME以外の部分でのregressionが無いのかというのが怖いところ。"
- なかのん&マジックさんのツイート: "先月、Nightlyで一番使われたIMEがハングルのIMEというのは予想外だった。日本語・中国語と違って選択肢無いとそうなるか……"
- なかのん&マジックさんのツイート: "MS Office IMEを使ってる人が、ちょっと無視するには忍びない数で居てるな。安全方向にふった修正にしておくか……"
- なかのん&マジックさんのツイート: "んー、先週末に突っ込んだTS_E_NOLAYOUTの修正に従ってTIPを信頼するパッチ、Nightly + 色々なTIPで試してみると、いくつか状況限定でバグるな……やはり、実装が無かったらTIP側にもバグがあるか。"
- なかのん&マジックさんのツイート: "Site Isolation、IMEの観点からするとどうなんだろってのは無くも無い。今どきのIMEは周囲のテキストを読んでるし。IEの形式なら安全だろうけど。Edgeはどういう設計になってるのか未だに知らない。"
- Taku Kudoさんのツイート: "ネットワークのflow、initializer、shape をまとめて同じところに書けるのが地味に静的グラフの利点だと思っているのですが (kerasなんてまさしくそう)、どうなんだろう。逐次実行の解釈がどうしても優先されるので慣れが必要ですが、これは定義なんだというスタンスに立てば可読性が良い。"
- kyo agoさんのツイート: "reactでtextareaちゃんと管理するの、辛い。。。"
- kyo agoさんのツイート: "react + textarea、真面目にやろうとすると「現在の入力値」、「現在のカーソル位置」、「現在のIMEの状態(変換状態)」の管理が必要な感じがする。 (宣言的にUI構築するんだからUIの状態に関わるものを管理するのは当然なんだけど。。。)"
- なかのん&マジックさんのツイート: "ネイティブアプリレベルでもIMEのバグや挙動の違いの吸収はかなりキツいのでAPIのほとんどないWebは相当につらくないかなぁ。ある程度はブラウザが吸収してるけど。"
- なかのん&マジックさんのツイート: "IMEのAPIって2種類のデザイン方法があって、IMM/GTK vs. TSF/Cocoa/Androidみたいな感じなので、WebへのAPIの公開とか出来る気しない(Qtってどうだったか忘れた)。"
- なかのん&マジックさんのツイート: "Firefox for AndroidのパスワードフィールドでIMEで入力したら文字がダブる件、IMEのSelectionがマスク文字の上に復元されてないのをとりあえず修正してみたら、もっと動作が意味不明になった……"
- なかのん&マジックさんのツイート: "最近、Firefox 64にセキュリティのテスト用のアドオンからキーボード入力をエミュレーションするAPIを新規に設計して投入したんだけど、その内部の処理はFirefoxOSのIMEをまともに作れるように設計したクラス群なので、XULアドオンの頃よりも真っ当なテストが可能になったという皮肉。"
- なかのん&マジックさんのツイート: "ちなみにそのAPIは普通のアドオンからはセキュリティ的に危険すぎるので相変わらず使えません。専用のビルドオプション付けてビルドしないと存在すらしないので。"
- なかのん&マジックさんのツイート: "今どき、KeyboardEvent.keyCodeだけを無条件に参照してkeypressイベントリスナを実装するWeb開発者、引退してくれない?"
- なかのん&マジックさんのツイート: "よくあるのが入力のフィルタリング目的でそういうコードを書いてるんだけど、"input"で見てないから、IMEからの入力、貼り付け、D&Dあたりは素通りで入力できてるし。知識が雑すぎる、というか自分で特定のブラウザでだけ実験した結果を知ってるだけなんだろうな。"
- なかのん&マジックさんのツイート: "未確定文字列が空のIMEって今どきあるんかな。Win7ではなさげなので、あるとしたらLinuxか?"
- なかのん&マジックさんのツイート: "Input Events Level 2にIMEのイベント定義が入ってるけど、今までの定義とコンフリクトしてたり、TSFでそれたぶん無理、みたいな内容で、「お、おぅ」ってなってる。"
- なかのん&マジックさんのツイート: "とりあえずこれだけで数ヶ月かかりそうだから、最初はInput Events Level 1の実装で決まりだな。"
- なかのん&マジックさんのツイート: "おお、Ubuntu 18.04からUbuntu 18.10にアップグレードすると、デッドキーがmacOSと同様に未確定文字列を出すIMEとして実装し直されてる。"
- なかのん&マジックさんのツイート: "実装面で一番苦しめられたのはLinuxのIME事情のクソッぷりだったな、結局(というか今でも環境限定バグがちょいちょい来てる)。"
- なかのん&マジックさんのツイート: "(特に)プラットフォーム側がやっつけな実装すると、こうやってエコシステムがボロボロになってってダメになるんだってのを実感させられた。"
- なかのん&マジックさんのツイート: "IMEの変換処理を非同期で他のプロセスで処理するために、APIの拡張を全く行わずに、イベントモデルを汚くハックしてて、アプリ側から見ると、来るかどうか分からない複製されたイベントを待たなくてはいけないという、実装した人本当にどうかしてる状況が今のLinuxのIMEのデファクトスタンダード。"
- なかのん&マジックさんのツイート: "せめて必ず複製したイベントを再送してくるんだったら単純だったものを……"
- なかのん&マジックさんのツイート: "今後、compositionstartをcancelableにしようとしたときに、また、Linuxでの実装が物事を複雑にしてくれるな……"
- なかのん&マジックさんのツイート: "ちなみに、どのIMが非同期で処理しようとするのかっていうのを取得するAPIも当然無いので、アクティブなIMがiBusかFcitxじゃないかを確認し、それらだったら、さらにそれらが非同期処理を行うかどうか決定してる環境変数も確認して、というクッソ汚いコードをアプリが書かないといけない。"
- なかのん&マジックさんのツイート: "ちなみに、Waylandになると、iBusかFcitxかっていうのを見分けるためのAPIが"wayland"と返してくるらしく……"
- Makoto Kato ︎︎さんのツイート: "その経緯もChrなんとかOSが最初ibusを使ってた関係で非同期APIがあるらしいんだけど、その後そのOSがibus使うの止めちゃったんで、まぁ中途半端になりがちですよね… "
- なかのん&マジックさんのツイート: "IMEも既に独自拡張のフラグをmodifiersに突っ込んできてるんで、あそこに見分けが付くフラグを入れて欲しかったです(これから非同期で処理するよ、っていうのを)。… "
- なかのん&マジックさんのツイート: "愚痴ってたら、またLinuxのIMEが変な事してくれてるのが原因のバグ来てる……"
- なかのん&マジックさんのツイート: "今のmozilla-centralで動いてるIME周りの自動テストは、JS製のIMEから複雑な未確定文字列を送信でき、コンテンツ上でのイベントも受け取れるという本格的なものなんだけど、Firefox OS向けに作ってたAPIなんだよね。なので、テスト用にはかなりのオーバースペック。本当に真面目に作り込んである(w"
- なかのん&マジックさんのツイート: "しかもこのリッチなAPIが完成したの、確かFirefox OS終了に間に合わなかったというオチだった気がする……"
- なかのん&マジックさんのツイート: "Windowsキー + : (コロン)で絵文字を入力できるとか初めて知ったんですけど……ただこれ、アクティブなキーボードレイアウトを英語にしておくと英単語の入力で絞り込めるけど、日本語だとIME問わず絞り込みができない?"
- なかのん&マジックさんのツイート: "しかもTSF-awareアプリケーションとIMMのエミュレーションにちょっと齟齬があるんだよな、どうしよう。"
- なかのん&マジックさんのツイート: "macOSのIME周りを知ってる開発者とのパイプが欲しい今日この頃。アプリによって動作を変えられるの、本当に意味が分からない。"
- なかのん&マジックさんのツイート: "IMEからアプリに任意のタイミングで問い合わせを出せる、TSFやCocoaの設計は、IMEの開発者から見て便利なんでしょうか? アプリ側が用意できてなくてエラーが返ってきたりするんで、数多くあるアプリとの連携部分がかえって大変そうなイメージなんですが……"
- なかのん&マジックさんのツイート: "ちなみにアプリ側から見ると結構しんどい形になる上に、意図通りにIME側が動いてくれなかった時に、何が気に入らなかったのか分かり難くて対応しづらいってのがあります。まさにmacOS上のシンプルな変換だけが必要な言語のIMEみたいに。"
- なかのん&マジックさんのツイート: "とりあえず、MS-IMEも含めて、TSFは非同期レンダリングサポートしてるのにIME側が対応してくれてないのはキッツいですな……IMMみたいにアプリ側から通知出す方がこういうあたり、確実。"
- なかのん&マジックさんのツイート: "ハングルのIMEの挙動が特殊過ぎるんで、ハングルの勉強したら?と言われるものの、そもそも日本語のIMEも全部は面倒見れていないという……"
- なかのん&マジックさんのツイート: "日本語のIME、特に人名を変換してる時に思うんだけど、一文字目での候補リスト内の絞り込みがマウスを使ってでのUIでも良いんで、存在すべき。"
- なかのん&マジックさんのツイート: "FirefoxユーザのLinux版のIMEのシェアを久しぶりに確認してみたらibus強いなぁ。"
- なかのん&マジックさんのツイート: "IME経由で文字を実際に入力したユーザだけでの統計なので、欧米でキーボードからの直接入力だけのユーザはカウントされてませんので、たぶんibusの実際のユーザはもっと多い。"
- なかのん&マジックさんのツイート: "IMのコンテキストの名前に"WAYLAND"が増えてるな……"
- Makoto Kato ︎︎さんのツイート: "https://t.co/iiLfFYZkND このlandedをみて、reviewerでちょっと笑った。未だにreviewerになってる。。。"
- 657623 - Using TSF instead of IMM32 in the IMF on Windows - chromium - Monorail
- Makoto Kato ︎︎さんのツイート: "幣社も4プラットフォームをほぼ2人のみでやってるから、人のこと言えないんだが、IMEとか入力周り。"
- なかのん&マジックさんのツイート: "自動テストの方法をいい加減に作らないと、ですね……… "
- Makoto Kato ︎︎さんのツイート: "確かにgtestでmock作れるようにしないとね… "
- なかのん&マジックさんのツイート: "うーん。複雑なHTMLのケースでのテストが書きやすいようにmochitestで考えてたんですが……どちらにしろ、OSとTSFTextStore間に一枚かませて抽象化しないといけないですね。… "
@taku910
- Taku KudoさんはTwitterを使っています: 「評価指標だけ提示され良くなったからOKですよ的な雑な議論が最近増えてきてる気がする。作成者自身が主観的評価・議論できないってのが良くも悪くも影響してるのかな。事例ごとに丁寧に議論して本当にやばいヤツを弾くのに頑張ってたのだがなぁ...」 / Twitter
- Taku KudoさんはTwitterを使っています: 「10年前ぐらいはmapreduce的並列分散インフラが必要だった処理も、最近は手元のマシンでもできるようになっていて、若干の老いを感じる。もちろんもっと大きいデータを扱うときは必要なんですけど、wikipedia全部程度でも手元でできるしなぁ...」 / Twitter
- Taku KudoさんはTwitterを使っています: 「学習データを作るプログラム書いている。なんかわけわからなくなってきた。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「仮にIMEが完璧でも、漢字の方が正しいと思ってる人多いし、「ひらがな」から「ひらがな」に変換することへの毛嫌いがあるので、問題はそんな簡単じゃないです。スタイルといってしまえばそうとも言い切れるし。GECで事後修正するってのも十分な議論はできてないです。」 / Twitter
- Yuya UnnoさんはTwitterを使っています: 「@taku910 実際にはそれを使う人々と、使う場面やサービスも影響ありそうですね。チャットが一般に普及したのがこの10年くらいと思うと、その影響もありそうです」 / Twitter
- Taku KudoさんはTwitterを使っています: 「漢字を開くか開かないかを「誤用」と言うのは抵抗ある。スタイルの違い。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「Python で並列処理するの大変... そもそも言語のサポート弱いし、C++のほうが短く楽にかける。というか今どきはOSのI/Oに任せたほうがよくて、file sharding + GNU parallel で十分速い。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「点予測のシステムのn-best 解 がゴミだということは拙本にも書いたけど、それが現実的に問題になってる事案に遭遇した。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「今どきの系列ラベリングって 適当にNNでエンコードして、ラベルのところは点予測するのかな? それならn-best問題が発生するかもね。n-bestは評価の対象にないから問題ではないか。しらんけど」 / Twitter
- Taku KudoさんはTwitterを使っています: 「n-best が直接意味を持つタスクはありますよ。例えばIME。答えが一意に決まらないし、候補の「並び」が重要です。逆の読み推定も一意に決まらない、可能性のある読みを妥当な順で出してほしいです。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「そう特殊なんですよ。IMEを識別モデルでやる成功例を今まで聞いたことないのは、一意の解を前提としている同モデルの限界だと思っています。noisy channel +言語モデルだとn-bestはそれなりに妥当になります。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「固有名詞 (地名人名)の読みは複数あるし、連濁の有無は個人の嗜好に依存します。漢語/和語 (風車 ふうしゃ/かざぐるま) のようにどっちも読めるというのはあります。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「人間は頭でできないですよ。同じ漢字で読みが違う人名がある以上、読み取得はどれだけ文脈を積もうが解決できません。固有名詞の読み間違いは社会的に許容されてるし、頭で一意に決めれるのであれば、ルビは不要になります。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「単純なマルチクラス分類でも、n-best のラベルを検索キーとして追加して再現率を上げるってのはよくあると思います。複数の読みをエンティティの検索キーにするとか。直接選択させなくても、ユーザとの意識のギャップを埋めるのに使われます。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「いやいや人間を過信しすぎでは。首相・大臣クラスでも読み間違いがニュースになるし、知識で殴れる難読地名はMLが圧勝ですよ。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「点予測を誤解してらっしゃる。点予測(出力ラベル間の依存を見ないモデル)を採用する狙いは言語資源の有効利用であって、高速化ではない。速度は実装・使用する特徴量に依存する。https://t.co/chJ8Gli9TX」 / Twitter
- Taku KudoさんはTwitterを使っています: 「点予測の一般的な特徴を議論しているのであって、MeCab/KeyTea/Vaporetto といった特定の実装やその精度の話は最初から比較はもとより言及すらしていません。そこに持っていこうとすることは理解できますが、関係ありません。そこから誤解されている気がします。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「不完全で部分的なデータから系列ラベリングしたいので点予測のアイデアを使って構築、最初はハッピーだっけど、応用が増えると穴が見えて n-best がゴミだった。というのが趣旨です。MeCab 等々は関係ありません。点予測は単語分割に限定しない広い概念でその利点・欠点を正しく伝えたいです。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「点予測というキーワードでMeCabやらKeyTeaに脊髄反射したのはそちらでは? 全くそちらの話はしていなかったですよ。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「「n-bestほしいならMeCabどうぞとなる」とおっしゃっているようですが。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「NLPとnbestの話で、「タスクXにおけるnbestの必要性」の議論になったのは反省点で、仮に解が唯一でも、解答欄がn個に猶予されているUI/評価論としたほうが分かりやすかった。他の文脈と組み合わせるから、とりあえずn個くださいというのは結構ある。」 / Twitter
- Yoshitake MatsumotoさんはTwitterを使っています: 「@taku910 タスクを任せる相手が人間であれ機械であれ、自分の脳内にある文脈情報をすべて渡しているわけではないから、n-best を返してもらって対話的に進めた方が良い場合がある、ということでしょうか」 / Twitter
- Taku KudoさんはTwitterを使っています: 「@ymatsux おっしゃるとおりです。補足ありがとうございます。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「雑な形態素、構文解析のモデルを思いついてはM先生との議論に持っていくと、次々に具体例(特に並列構造)での問題を指摘されコテンパにされていた。実例/実経験に基づくドメイン知識がある人には敵わない。今あるデータの入出力からモデル作成ごっこをしてる人は注意されたし。」 / Twitter
- Yuya UnnoさんはTwitterを使っています: 「こないだ、補助動詞はひらがなで書くべし、というのが流れてきたのみて、これ仮にIMEの誤りあるいは癖で、多くの人が誤用した結果、そちらが定着する(したとする)と、世に数個しかないIME開発チームの影響が現代日本語書き言葉に影響を及ぼして、胸熱じゃないかと思った」 / Twitter
- hppさんはTwitterを使っています: 「書きました〜! MeCabを並列に動作させることで巨大なテキストファイルの分かち書きを高速化したよという話です。 約2GBのファイルに対して、並列に読み込み・分かち書き・書き込みをすることで、順に読み込んで分かち書きする場合と比較して7~8倍高速化しました! https://t.co/OEjaVPlpqG」 / Twitter
- hppさんはTwitterを使っています: 「今回の記事はPython縛りでやってますが、ファイル分割からのparallelコマンドによる処理はこっちで試してます🙏 https://t.co/QxYhQpU9Ei」 / Twitter
- MeCabの分かち書きを並列処理で高速化する
- ともい(Tomoi,S.)さんのツイート: "テキストフィールドにIMEModeみたいなプロパティがある以上、それに開発者マター以外のアプローチが存在しないのはなぜだ…と思い続けているけど、まあ日本人の使い勝手なんて理解できないだろうなあ…(・ω・"
- ともい(Tomoi,S.)さんのツイート: "おそらく一生実装されないかもですが、Winの日本語入力可能フィールドはIMEの最後の変換モードを常時永続的に記憶しててほしいし、中途半端に覚えて継承されるかと思うと逆側になっててイラッとくるものもあるので、ユーザー側で英数・日本語の初期モード固定を指示できるようになっていてほしかった。"
- Makoto Kato ︎︎さんのツイート: "IME依存のhack、GeckoのTSFの実装もGTKの実装もいろいろ多いけど、Androidも大概多いんだけど、OSの抽象化とは。。。 https://t.co/E3fwfzby8Y"
- InputMethods.java - mozsearch
- こたさんのツイート: "なんか気になったのでアンケート「ぁ」や「っ」など小書きを入力するとき、Xを使うか、Lを使うか、変換を使うか教えてください。"
- 京橋 ひよわ@労進さんのツイート: "んなもん、左Shift+「や」、右Shift+「つ」に決まってるやん?"
- 島鉄雄さんはTwitterを使っています: 「やっぱり、どんな IME パッチをあてても確率の問題でいつかは必ず落ちる事が分かったんで…これを試してみようかな。(多分明日から) これがちゃんと動けば、もう Emacs 本体から IMM32 のコードはバッサリ消し去りたい… https://t.co/bDP9dhOITK」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「お!予想外に(失礼w)すんなり動いた! https://t.co/XcigCEpcRN ↑ここの 27 pretest 版を使って(つうかインストーラがある!) load-path に w32-imeadv.dll と lisp-w32-imeadv.el を置いて、(load "lisp-w32-imeadv.el") をした。 w32-imeadv.dll は自前でビルドしたけど、これも一発だった。続く https://t.co/CAKyv5QReI」 / Twitter
- Index of /gnu/emacs/pretest/windows/emacs-27
- 島鉄雄さんはTwitterを使っています: 「lisp の方は色々カスタマイズ(や修正)が必要そうだ。 あと、起動直後に IME 効かない問題を対処するのに別のモジュールが必要みたいだけど、出来れば統合してもらえるとうれしいです!> @m_toguro さん これで長年の IME 問題は解決するんじゃないかと期待したい。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo w32-imm32-on-start-enablerの方は、メッセージフックの中から直接DispatchMessage() を呼び出すという非常にaggressiveな事をしていて、本当に動くかどうか?動いたとして副作用は無いか等の確信が持てなかったんです。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo .dllをload-pathからのければすぐ外せるのもダイナミックモジュールの利点なので、不具合ぽい時やだめそーだったらはずそーと思いまして。 僕チキン(´・ω・`)」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@m_toguro 今までの IME パッチだと w32fns.c の w32_createwindow() 内で、画像のようなアドホックなコードで回避してるようです。 多分安全だとは思いますが、若干気持ち悪いと言うかw 参考までに。 https://t.co/nPfLNOVTOq」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 最小化すると動き出すのは、MS-IMEがWM_TIMERを送ってきてて、最小化・最大化の時に、ShowWindow()の向こう側で、システムのメッセージポンプがちゃんとDispatchMessage()してるからなのですが、同じ問題に起因するのがATOKの確定アンドゥでこっちはフリーズしちゃいまして…。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 本体にパッチを当てれば治るのも確認してて、多分これが正攻法であるとは思います。 自分でつくっておいてなんですが、w32-imm32-on-start-enablerは、穴の開いた燃料タンクをぐるぐるまくガムテなのです… https://t.co/uED5j89odN」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「なんで、 w32fns.c のw32_msg_pump のお尻のあたりを ちょっと弄るといいと思うんだ。 https://t.co/w44eo2Y58B」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「ちな、ATOK の Ctrl-Backspace の確定アンドゥがプチフリーズするのも同じ原因の模様」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「MS-IME は起動時に 0x0113 = WM_TIMER を送信 ATOK は、 確定アンドゥ時にうちの環境では0xC046 これはRegisterWindowMessage() で登録されたメッセージ hwnd が NULL の状態で GetMessage() が返す。 ところまで確認したんだけど、どうしよっか。」 / Twitter
- 品川@学生募集中さんはTwitterを使っています 「ディープラーニングを使ったシンプル・ロバスト・高精度な日本語IMEが欲しい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ウォール街を、ウォーター街と書くミス。 スマートフォン入力は、妙な自動補完に気づかないこと多い。 入力の達人は、視線は文章を見ながらのタッチタイプなのかな?」 / Twitter
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「プロジェクトX、東芝のワープロ回やってる。辞書にない単語は後ろから検索し、助詞で切って推定するっていう論文読んだことある。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@houmei カシオFP1100でかな漢変換を作ったけど、「後ろから検索」ってEUCコードなら簡単だが、SJISとかUnicodeだと難しい。viを自作するにも編集フラグと折り合いつけるのは大変。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています: 「スマホのフリック入力で"や"の左右がカギ括弧"「"と"」"になってることに気付いてからツイートがかなり効率的になった」 / Twitter
- Choosing the right estimator — scikit-learn 0.23.1 documentation
- 機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning | Microsoft Docs
- 専門用語和訳プロジェクト「みんなのわやく」(機械学習・メディア処理) - Google スプレッドシート
- 機械学習*と公平性に関する声明 | 人工知能学会 倫理委員会
- 研究開発成果 - サイバーフィジカルセキュリティ研究センター - 産総研
- 2-2_データを説明する - 2-2_literacy_level_note.pdf
- Shiki’s weblog
- 仲原文也@籠城中(筋トレ3年)さんはTwitterを使っています 「新しいMicrosoft IMEで送りがなの基準はどこで設定するのだろう。本則にしたいのだけど、、」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
- Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
- 機械学習品質マネジメントガイドライン 第2版 | デジタルアーキテクチャ推進センター | 産総研
形態素解析→依存文法解析→直接構成鎖解析→談話構造解析
コーパス
国立国語研究所
nwc-toolkit
Web クローラー
- Heritrix - Heritrix - IA Webteam Confluence
- Heritrix - Home Page
- internetarchive/heritrix3: Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
- Heritrix - Wikipedia
- Webクローラ「Heritrix」を使ってみる - Qiita
- 国立国会図書館-デジタルアーカイブシステム
- Heritrix - masayua
- HTML テキスト抽出(CETR)
- HTML テキスト抽出(簡易)
- Google Code Archive - Long-term storage for Google Code Project Hosting.
- xen/nwc-toolkit: Automatically exported from code.google.com/p/nwc-toolkit
- ウェブサービス - s-yata.jp
- コーパス - s-yata.jp
- 日本語ウェブコーパス 2010
- N-gram コーパス - 日本語ウェブコーパス 2010
UniDic
MeCab
- MeCab: オリジナル辞書/コーパスからのパラメータ推定
- MeCab: Yet Another Part-of-Speech and Morphological Analyzer
- taku910/mecab: Yet another Japanese morphological analyzer
- mecab-ipadic-neologdがすごいという話 - kivantium活動日記
- Pythonからmecab-ipadic-neologdを使う - Qiita
- MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する - Qiita
- 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
- [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
- MeCab - 日本語形態素解析システム
- MeCab - Wikipedia
- NMeCab でも mecab-ipadic-neologd を使ってみた - しばやん雑記
- MeCabのライセンス変更事例 | オープンソース・ライセンスの談話室
- きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う
- 新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた « LINE Engineers' Blog
- NEologdさんのツイート: "mecab-ipadic-NEologd に"色々な不具合の修正をしたIPA辞書のみ"をインストールする機能をつけました📕 長い間、個人的に便利に使っていた機能です🔧 インストール時に-cオプションを付けるだけで利用可能です😄 #neologd"
- neologd (NEologd)
- ねこ先輩さんのツイート: "Mecabの動作確認するとき、私はいつも「吾輩は猫である」という文を入力するんですが、neologd入れたら文まるごと固有名詞になってしまって無事に動作確認できたようです。"
- 【Python】MeCabと極性辞書を使ったツイートの感情分析入門 - StatsBeginner: 初学者の統計学習ノート
- Mecabに人名辞書を追加 - Qiita
- mecab-skkserv MeCab を使ってかな漢字変換
- 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
- MeCab: 単語の追加方法
- Odashiさんのツイート: "みんな一度は作って最終的に実用的な理由でMeCabに回帰する形態素解析器"
- Taku Kudoさんのツイート: "MeCabはたいてい爆速ですねというフィードバックをいただくのだが、某所の某グループから遅すぎじゃボケと言われて、草。 世界は広い。"
- 【Python】テキストマイニングしてみた〜形態素解析〜 | 開発アプリブログ
Twitter
全角
- UniDic広報担当さんのツイート: "web茶まめの、「解析前処理」の項目の「半角文字を全角に変換」のチェックボックスをONにして実行してみてください。 UniDicには、全角文字しか入ってないので、 半角文字はすべて未知語処理されてしまいます。 https://t.co/7eFH8AgK4K"
- UniDic広報担当さんのツイート: "解析用UniDicに登録されている短単位はすべて全角です。 また、文字コードはUTF-8です。"
- Taku Kudoさんのツイート: "@unidic NFKCにしませんか?"
- UniDic広報担当さんのツイート: "@taku910 web茶まめを作っているのは私ではないのですが、今、開発者に依頼しておきました。"
- UniDic広報担当さんのツイート: "あとは、解析用UniDicの表層形が全部NFKC化した文字列でも登録してあるかDBちゃんと見とかないと。"
- UniDic広報担当さんのツイート: "こっちは、デフォルトでチェック入れて外せないようにしてあります。 https://t.co/6Hy2A40gui また、UniDicが全角を採用しているのは、BCCWJの文字列がすべて全角に統一されているからです。 https://t.co/ZZrCpMye4M"
- UniDic広報担当さんのツイート: "そうか、国語研のコーパス、基本全角だからDBに半角エントリは作ってないのか。 これは、解析用の辞書のほうでの対応案件か。 半角カンマのcsvへの表層形登録は","でいいのかな。きっと。 #unidic3への課題 https://t.co/glgmg2ZBb3"
histric-1
- UniDic広報担当さんのツイート: "OSDNのリポジトリはunidic2系の公式配布サイトでしたが、 内部の人から見ても怪しかったので、これまでの解析用UniDic配布サイトを統合した新サイトを作りました。 https://t.co/DZKztyaX7j https://t.co/tbd7D7ArUL"
- 高岡一馬さんのツイート: "「短単位は、漏れの少ない 用例検索を重視した設計(単位の長さ、可能性に基づく品詞体系、細かい語義までは考慮しない字面主義) となっているため、自然言語処理分野の統語解析や意味解析に向いていません。」 https://t.co/vw96DTbO3N"
- UniDic広報担当さんのツイート: "皆さんご存知でしょうが、UniDicはすでにChaSenへの対応をやめています。 MeCabの解析用辞書のみ配布を行なっています。"
- UniDic広報担当さんのツイート: "今からでも組み込もうかしらん。 https://t.co/w1w1Nvmb6q"
- UniDic広報担当さんのツイート: "個人的に、UniDicは 「あ、UniDicって、いいな」 と思ってもらえる方がいて、 そういう人に使ってもらえたら、それだけでうれしいです。 https://t.co/lS1WYOaJLs"
- UniDic広報担当さんのツイート: "※表3.2に掲げた語を選定した際の観点は、以下のとおりである。 (1)元の語形が一般にあまり使われることがない 【例】 テレビ(テレビジョン) ジム(ジムナジウム) https://t.co/GjpSEz7dhf"
- UniDic広報担当さんのツイート: "BCCWJ短単位情報規定集第4版 p.34より。 これに従うなら、たしかに、デフレも表に載せていい気がする。 https://t.co/6hgYH507rJ"
- UniDic広報担当さんのツイート: "ちょっと今度のUniDic会議で議題にしてみます。 https://t.co/7DdwcQUnUh"
- 藻(入院中:第6日)さんのツイート: "「コン」,「コミ」でコンディショナーやコミュニケーションということにはならないけど、「デフレ」,「スパイラル」は独立して通じるからなあ。"
- UniDic広報担当さんのツイート: "単に、規定が古いだけの気がするんですけど。 https://t.co/MGVVffSMG8"
- UniDic広報担当さんのツイート: "もともと、計算機のための規定ではなく、人間のための規定で、 国語研は、ほっとくと皆さん、マンパワーですべて解決する驚異の集団です。 https://t.co/n1ijXquTBR"
- UniDic広報担当さんのツイート: "基本的に、コアデータを人手で作ってるときにDBに載っていない短単位を随時追加するという方針です。 コーパス作るのが、一番のお仕事なので。 そこらへんは、UniDicの公式ページの「UniDicとは」という項目を参照してください。 https://t.co/L2IpvspaSl"
- Taku Kudoさんのツイート: "UniDic短単位の目的や意図は分かっているつもりだが、新しいという理由だけで盲目的に採用し、その目的におおよそ合致しない構文解析に使おうとしているところに違和感がある。UniDicの中の人もずっと言い続けていることだが。"
- UniDic広報担当さんのツイート: "WEB+DB PRESSの100号読んでたら「国立国語研究所が公開している表記統合辞書」という文言があって、ナニソレ? と思って調べたら、ほんとにあった。 https://t.co/JTjNB1OpSg 国語研のトップページからこのページにはどうやってたどり着いたらいいのだろう?"
- UniDic広報担当さんのツイート: "あれ? BCCWJ作るときに使ってたNum Trans と ChaOne 、いま何処? マニュアルしか見つからない……"
- UniDic広報担当さんのツイート: "「ユニディック」です。 小さい「ッ」入ります。 https://t.co/8EHeitda0A"
- UniDic広報担当さんのツイート: "UniDicの音韻論情報、あの謎記号の説明、どっかのマニュアルに書いてあったなあと思ったら、まさかこんなところに…… https://t.co/9s99tIFBF5 UniDic2のマニュアルにはもう載ってない…… しかし、なぜこの場所に?"
- UNIDIC_manual.pdf
histric-2
- UniDic広報担当さんのツイート: "UniDicあるある 解析用UniDic使ったMeCabの出力1行を、 まずタブでspliって、 次にタブの右側を半角カンマでsplit。 時々行数がおかしい。 タブの右側はちゃんとしたCSVなので。 ただのカンマ区切りではないことに注意。 アクセントとか。そこらへん。 https://t.co/BwAFivi4qE"
- UniDic広報担当さんのツイート: "「行数」じゃない。「列数」だ。 (さすがに、あたまがぼーっとしてきたなあ) https://t.co/ReWrFg1mVb"
- Toshinori Satoさんのツイート: "mecab-unidic-NEologd、ユーザーさん居たのか。。IPADIC版と比べて相対的に滅多にcloneされない状態なんですよね。実用的なサービスで使われててるなら今より改善できるけど、使用事例が伝わって来ないので現状維持以上はなかなかできない状態です😅"
- UniDic広報担当さんのツイート: "UniDic2の論文で出てくるXMLから作るSQLiteのDB、 https://t.co/TyJ27uQk3P 立ち消えになってたかと思ったら、 Comainuのとこにそれっぽいものがあった。 https://t.co/0nXr2GCmjz"
- UniDic広報担当さんのツイート: "「コーパスは、」がコーパスですらないとは…… 学生の皆さんへ どちらも「検索用のインターフェース」です。 少納言はBCCWJの文字列検索しかできませんが(ほとんどお試し用) 中納言(要アカウント申請)には、BCCWJ以外のコーパスも含まれており、形態論情報レベルでの検索が行えます https://t.co/rXo7fY3Zcl"
- UniDic広報担当さんのツイート: "形態素解析(Chasenレベル)の説明で「東京都」の例あげて、「東/京都」と切るよりも「東京都」のほうが頻度高いから~ というのを見かけると、 「それ、内部では名詞-名詞の連接VS名詞になってて、表層の連接は見てないから、名詞単発のほうが強いだけ」と思って、読むのをやめる。 https://t.co/S9hTevggYe"
- UniDic広報担当さんのツイート: "まさに、コンテキストの話なのに、そこにまったく触れずに、品詞連接のラティスで解決できるんです。みたいに書いてあるから。 「東/京都」が実在したら、どうするんだよって、前から思っていたので。 ほんとにあったの、すごくうれしい。 https://t.co/LrQlrn0Skw"
- UniDic広報担当さんのツイート: "ちがった。「頻度高いから~」は問題ない。Unigramの頻度だから。 ただ、これを「連接を見てラティス作れば解決できます」というのが、許せないんだ。 https://t.co/LrQlrn0Skw"
- UniDic広報担当さんのツイート: "あたかも表層形の連接まで考慮してあるように説明されているので。 https://t.co/NbLORCjwGD"
- UniDic広報担当さんのツイート: "時間があれば、フルアノテーションして、学習に使いたい。 https://t.co/IMoHqPGCMS 時間が、あれば…… #unidic3への課題"
- FairyMaCorpus/corpus/wikipedia/confusing-unidic at master · FairyDevicesRD/FairyMaCorpus
- UniDic広報担当さんのツイート: "ちなみに、短単位は、「語」という主観的なものではありません。 コーパス内の単語ライクなものの数を測るための、ものさしの目盛りです。ものさしには主観が入ってはいけないので、誰が認定しても揺れないルールで設計されています。"
- UniDic広報担当さんのツイート: "主観といい方は確かに言いすぎですね。 作業者1人1人の恣意性がなるべく入り込む余地を入れないように統制する というのが適切でしょうか。 まあ、何かしら、統制をとるルールと基準がないと、何を1個にするかが作業者間で揺れて、その個数を数えるための資源ができないので。 https://t.co/Eymb3jkw1K"
- UniDic広報担当さんのツイート: "ちなみに、国語研はいまはコーパス作ってますが、もともとは数を数える方が主なお仕事でした。"
- Taku Kudoさんのツイート: "UniDic が最小単位の結合規則を漢語と和語で変えているのは、何かの理由があってからなのだろうか。本当は最小単位にしたいけど、漢語の多くが1文字=1単語になるを嫌ったのだと推測できる。辞書に漢語か和語か書いてあって、それを素性に使うからそりゃ精度高くなるだろう。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "現代書き言葉解析用UniDic:unidic-cwj-2.3.0と 現代話し言葉解析用UniDic:unidic-csj-2.3.0 を公開しました。 https://t.co/be456fHjQO"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0では、 入力として、従来の全角正規化ONLYから、全角正規化とNFKC正規化両方に対応しています。 また、Windows用GUIツールChaMameをパッケージングしています。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMameを使えば、黒い画面を使わずにMeCabの解析が行えます。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "また、解析用UniDicの解析結果末尾に付与されている語彙素IDと分類語彙表番号との対応表が公開されています。 https://t.co/EWkOHTN5xN"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "この対応表はChaMameにもパッケージングされているので、ChaMameを使うと、解析結果に分類語彙表番号を自動付与することも可能です。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMame単体はここからでもダウンロード可能です。 https://t.co/dzeCpdRfpr"
- パッケージ ChaMame - ChaKi - OSDN
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "unidic-xxx-2.3.0は、日常会話コーパス開発促進に向け、発音形の精度を上げるために、新たにアクセントを素性に追加しています。 そのため、matrix.defが2.2.0よりも巨大になっていますので、ダウンロードの際はご注意ください。2Gほどあります。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "不要ならば、ダウンロード→解凍の後、matrix.defを消していただくことで、サイズを小さくできます。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0、matrixは大きくなりましたが、mecab-dict-genする前のmodelファイルはさらに小さくなりました。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "1603系の解析用UniDicの学習時に使用された設定ファイルが発掘されたので、1603系のzipに追加でパッケージングしました。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "UniDic-分類語彙表番号対応表の最新版はこちらからもダウンロード可能です。 https://t.co/Ls2QxZQZi1"
- masayu-a/wlsp2unidic: Alignment table between `Word List by Semantic Principles (WLSP)' and UniDic Lemma ID.
- akirakuboさんのツイート: "unidic-cwj-2.3.0をげっとしてfeature.defの変更点を確認 書字形出現形(orth)と読み(pron)の両方が登場するテンプレートは軒並み削除されてるっぽい アクセント関係のテンプレートが追加されているのは既報通り どの程度精度に変化があったのか気になる所"
- 「UniDic」国語研短単位自動解析用辞書
- 「UniDic」国語研短単位自動解析用辞書|UniDicとは
- 「UniDic」国語研短単位自動解析用辞書|用語集
- 「UniDic」国語研短単位自動解析用辞書|最新版ダウンロード
- 「UniDic」国語研短単位自動解析用辞書|商用利用について
- UniDic プロジェクト日本語トップページ - OSDN
- コーパス検索アプリケーション『中納言』
- Web茶まめ
- UniDic広報担当さんのツイート: "ちなみに、UniDicの短単位規定集を含め、BCCWJに関連する詳細な報告書はここにそろってます。 BCCWJを使う上で意外と重要な情報も意外とさらっと載っています。 https://t.co/yEkicS7UcD"
- 関連ドキュメント 現代日本語書き言葉均衡コーパス(BCCWJ)
- 概要 現代日本語書き言葉均衡コーパス(BCCWJ)
- UniDic広報担当さんのツイート: "ここ1年くらい前から解析用UniDicの評価は、mecab-system-evalではなく、こっち↓を使ってます。 https://t.co/RGw73I02Ky"
- 形態素解析器性能評価システムMevAL
- teru-oka-1933/meval: 形態素解析器性能評価システム MevAL
- corpus.indd
- MeCab で UniDic 辞書を使ってみる / 桃缶食べたい。
- 「UniDic」国語研短単位自動解析用辞書|FAQ
- Microsoft Word - 2017031X_NLP2017_予稿集原稿_kondo.docx
- A6-3.pdf
CaboCha
- CaoboCha: Yet Another Japanese Dependency Structure Analyzer
- taku910/cabocha: Yet Another Japanese Dependency Structure Analyzer
- CaboChaで始める係り受け解析 - Qiita
- CaboChaで係り受け解析をやってみる - Aqutras Members' Blog
- MeCabとCaboChaとRMeCabでテキストマイニングの準備をする - DISTRICT 37
- Python CaboChaを用いて係り受け構造を抽出する方法 | トライフィールズ
- CaboCha(python)で辞書指定 - studylog/北の雲
- UniDic広報担当さんのツイート: "ちなみに、CaboChaのUniDicモデルで付けられる「文節」は短単位ベースなので、国語研の規定する「文節」とはまた違ったものです。 (精度が低いのもそこが関係しています) 詳しくは、BCCWJ形態論規定集(上)を参照ください。 https://t.co/Ehqb2DvdES https://t.co/bDytdEgrGR"
- corpus.indd
- UniDic広報担当さんのツイート: "本当なら、短単位でなく、長単位を出発点として、係り受けのモデルを作ってもらいたいので。 https://t.co/Rxhm1LSC9R"
- コーパス開発センター -Center for corpus development-
- KOTONOHA: 国語研究所のコーパス開発計画 コーパス開発センター -Center for corpus development-
- KOTONOHA: プロジェクト コーパス開発センター -Center for corpus development-
- 258億語の日本語コーパスをウェブで公開~国立国語研究所 -INTERNET Watch
- 国語研日本語ウェブコーパス (NWJC)
- 概要 国語研日本語ウェブコーパス(NWJC)
NEologd
- neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
- neologd (NEologd)
- 新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog
- MeCabとNEologdのインストール方法(CentOS6) - Qiita
- neologd使って形態素解析したい。できれば依存関係とかは丸投げで。 - Qiita
- CentOS 7にmecab-ipadic-NEologdを入れて動かすまで - Qiita
- B6-1.pdf
- kagomeでNeologdを無理矢理つかう - 押してダメならふて寝しろ
- [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
- 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
- 「mecab-ipadic-NEologd」なら「ピコ」「太郎」もバッチリ「ピコ太郎」 - 一馬力のメモ帳
- kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする | Web Scratch
- Paul O'Leary McCannさんはTwitterを使っています 「NLP本の作業でneologdの現状を再確認していますが以前よりも使いたくなくなりました。2019年から不安定になった更新が2020年9月から全くない、「ヤバい」が固有名詞になっている、データ収集の詳細が未だ不明、issueは放置状態、などなど。」 / Twitter
- Paul O'Leary McCannさんはTwitterを使っています 「制作側をあまり攻める気はありません、きっとなにか事情はあると思います(コロナ禍ですし)、ただし未だに無条件でneologdを推奨する記事が氾濫している現状に少し呆れています。」 / Twitter
- ゆきのさんはTwitterを使っています 「個人で独裁的にやるOSSの問題……。(NEologdは収集側のソース公開してないからOSSといっていいか微妙だけど)」 / Twitter
形態素解析
KyTea
- KyTea (京都テキスト解析ツールキット)
- Graham Neubig - ソフトウェア
- KyTea - the Kyoto Text Analysis Toolkit
- neubig/kytea: The Kyoto Text Analysis Toolkit for word segmentation and pronunciation estimation, etc.
- Zelchさんのツイート: "「辞書」のメンテナンスという意味で言うと、 KyTea デフォルトモデルは最もメンテナンスされているものの1つでしょう。 共同研究などを通じて、「辞書」ではなく文脈ありの「コーパス」が増え続けてる。 医科学、特許、Twitter、レシピ、将棋解説、ガーデニングと多岐にわたる。"
- OdashiさんはTwitterを使っています 「ちなみに多分分かち書きはMeCabより速いです。」 / Twitter
- legalforce-research/vaporetto: Vaporetto: Pointwise prediction based tokenizer
- OdashiさんはTwitterを使っています 「ペロッ、これはKyTeaの3倍速いKyTea! https://t.co/xYJM10r7Qx」 / Twitter
bigram
- bigramとは バイグラム: - IT用語辞典バイナリ
- 統計的テキスト解析(4)~統計モデルとツール~
- 第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社
- 束 (束論) - Wikipedia
- 日本語形態素解析エンジン・言語郎 | 形態素解析とは?
Darts-clone
- プロジェクト - s-yata.jp
- darts-clone/Introduction.md at master · s-yata/darts-clone
Twitter
- Yuya UnnoさんはTwitterを使っています: 「これみて思ったが、効率的なFSTの実装ってどうするんだろう。double arrayの拡張で出来るんだろか。今時、辞書引き速度なんて気にしないのかな https://t.co/dJrBXdRhCs」 / Twitter
- たけっぱさんはTwitterを使っています: 「形態素解析機では、入力テキストに対して最初にラティスを生成するのですが、そのために効率的に辞書データの持つ必要があります。 その実装としてFST, ダブル配列などがあるって感じですね。 janomeはpyconjp2015で発表があり資料がありました。 https://t.co/kUJSZxO5XY #rettypy」 / Twitter
- Pyconjp2015 - Python で作って学ぶ形態素解析
- たけっぱさんはTwitterを使っています: 「違うな、辞書に該当するエントリを見つける操作は有限オートマトンがありますが、その実装方法としていくつかバリエーションがあり Minimal Acyclic Finite-State Automata, trie木、ダブル配列などがある感じですね。」 / Twitter
- たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: MeCabやjanome、kuromojiの形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。」 / Twitter
- たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: (MeCabやjanome、kuromojiの)形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。 #rettypy」 / Twitter
- ODA, YusukeさんはTwitterを使っています: 「@takegue KyTeaのような境界が確定するまで辞書を使わない方式もあるので「形態素解析器では」は主語が大きすぎ」 / Twitter
- たけっぱさんはTwitterを使っています: 「@odashi_t 主語大きすぎました...」 / Twitter
- takuya-aさんはTwitterを使っています: 「FSTによる辞書引きの実装のなかで、僕が知る限り最先端を行ってるのはLucene FST https://t.co/w4OItebepj だと思うけど、他にもいい実装があるかもしれない」 / Twitter
- lucene-solr/lucene/core/src/java/org/apache/lucene/util/fst at master · apache/lucene-solr
- takuya-aさんはTwitterを使っています: 「Lucene FSTについてはこの会で @moco_beta さんからいろいろ教えてもらえそう https://t.co/xYF898b6jp」 / Twitter
- Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編) - connpass
@taku910
FAQ
- Taku KudoさんはTwitterを使っています 「sentencepieceを超巨大なデータで学習した時にOOMになるのをなんとかせえ というのがFAQになりつつある。そもそもサブワードは高頻度の部分文字列の上位数十k個を使うだけなので、サンプリングで十分だと思うのだが、なしてそこまでデータ量に拘りたいのか。」 / Twitter
- OdashiさんはTwitterを使っています 「@taku910 コーパスを均等にシャッフルできる(適当な標本を取っても偏りがない)ことを暗に要求していませんかね」 / Twitter
- Taku KudoさんはTwitterを使っています 「@odashi_t 要求していますよ。あくまで OOMが出るときの workaround を提示してるのであって、同一ドメインのテキストであればサンプリングで十分だと思います。偏りが気になるのであればメモリ買ってくださいとしか言えません。」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t つうかそんだけエイヤと集めて全部たらそれはそれで大層偏ったコーパスになってそうなもんですよね…」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t s/全部たら/全部使ったら/」 / Twitter
- OdashiさんはTwitterを使っています 「@katsuhitosudoh @taku910 経験じゃ納得させられないだろうし、何か統計を出して「サンプリングで十分」としといた方がよさそう」 / Twitter
- Taku KudoさんはTwitterを使っています 「すでに実装していますが、全データを使いたい目的でこサンプリングサイズを極端に大きく設定してくるのです... https://t.co/uUSbDZptgU」 / Twitter
- sentencepiece/util.h at master · google/sentencepiece
#nlp2018
- Taku Kudoさんのツイート: "#nlp2018 形態素解析WSお疲れ様でした。解析器・辞書開発者の指針や想定ユーザを明らかにし、ユーザとのマッチングを取るという当初の目的は十分果たせたと思います。"
- Taku Kudoさんのツイート: "#nlp2018 E2Eの出口が形態素解析になるというUniDic/BCCWJの見解が明らかになっただけでも収穫が大きい。人文系の研究を目的としているため。工学的な応用であれば、長単位を使ってほしいとのこと。"
- Taku Kudoさんのツイート: "#nlp2018 ニューラルE2Eと基礎解析の関係について言いそびれたけど、結果を人が直接見たり、簡単なルールで出力を加工して結果とするのであれば、その解析は必要であろう。解析結果が別の機械学習手法の入力になってれば、jointすればいいので、「要らない」という方向性になってもおかしくない。"
- Taku Kudoさんのツイート: "#nlp2018 全体的に、短単位→長単位の方向性が感じ取れた。招待講演にもあったけど、短単位は辞書構築が楽な反面リッチな情報を付与できない。例えば、読みが「吉田山(やま)」「筑波山(さん)」になるかは長単位として記述するしかなく、アノテーション→学習→まとめあげは無駄が多い。"
- Taku Kudoさんのツイート: "#nlp2018 国語研長単位は、文節から内容語と機能語を取り出したものだが、定義的にはトップダウンに決まり短単位のまとめあげではないとのこと。実際、短単位品詞列から決定的に文節が決められないので(要機械学習)、本来別物と思ったほうがいい。"
- Taku Kudoさんのツイート: "#nlp2018 招待講演にもあったが適切な長単位の定義は応用によって変わり、その応用での曖昧性が解消ができる最小単位が語の単位となる。NEologd は、読みを取ることが主目的であるため、有名人の名と姓はつなげて1語となる。この原則で作られていれば、解析結果が直接ゴールとなりえる。"
- Taku Kudoさんのツイート: "#nlp2018 形態素解析で論文が書けるのは、精度や速度に関することで、こういう機能が付いたとか、新しい情報が出力できるといった内容では難しい。0.95が0.96になるのは評価されて 0が1になるのは評価されにくい現状はなんとかしたいが、WSでは後者にスポットライトが当たったのは良かった。"
- Taku Kudoさんのツイート: "#nlp2018 「サブワード正則化: 複数のサブワード分割候補を用いたニューラル機械翻訳」という発表で優秀賞をいただきました。ありがとうございます。アイデアは驚異的に単純で、適用範囲が広いです。"
- Taku Kudoさんのツイート: "#nlp2018 今回の話はニューラル言語処理のテキスト前処理+ID化を学習時にon-the-flyで行っています。静的処理に比べ、サンプリング、ノイズ付与、データ拡張等の柔軟性が上がります。今回の話は一般化できて、前処理がある確率分布としてモデル化できていれば、そこからサンプリングするだけです。"
- Taku Kudoさんのツイート: "形態素解析ワークショップの発表資料へのリンクを掲載しました (公開承諾が得られたもののみ) 。よろしくお願いします。 https://t.co/WThWaNJDDt"
- Taku Kudoさんのツイート: "形態素解析WSの UniDic の資料を掲載しました。UniDicを応用として使おうとしたときの疑問点がまとめられています。UniDic は、形態素解析をゴールとする人文系研究のための辞書ということが明確になったのは良かったです。https://t.co/WThWaNJDDt"
- 形態素解析の今とこれから
Wikipedia
- Taku Kudoさんのツイート: "形態素解析のLatticeは、よくグラフとかDAGとして紹介されるけど、ある位置で開始する・終了するノード集合は完全二部グラフになるという便利な性質があるので、エッジをわざわざ管理する必要なく、ノードの出現位置だけ管理すれば大丈夫。グラフだからといって汎用データ構造使う必要ない。"
- 完全2部グラフ - Wikipedia
- 2部グラフ - Wikipedia
- 独立集合 - Wikipedia
- グラフ彩色 - Wikipedia
- マッチング (グラフ理論) - Wikipedia
histric
histric-1
- Taku Kudoさんのツイート: "#nlp2017nmt subwordで出てきたBPEとwordpieceは基本的に同じです。sentencepieceはBPEに加え、言語モデルによる学習も実装しているのと、単語リストからではなく生文から学習することで単語分割がいりません。多言語処理がやりやすいです。"
- Taku Kudoさんのツイート: "多言語処理をするときは、言語ごとに異なる前処理が必要だったのですが、多言語の生コーパスを混ぜて単一のSentencePieceモデルを学習するのが手っ取り早いです。言語ごとに処理を切り替える必要がなくなります。"
- Taku Kudoさんのツイート: "自然言語処理の要素技術(単語分割・構文・意味解析)の応用先として機械翻訳があったけど、いまや立場が逆になっているような気がしている。すなわち、大量のパラレルデータとE2E学習が可能なNMTを使えば(例えば転移学習)、要素技術の精度が上がるのではないかと。"
- Taku Kudoさんのツイート: "もともと生成(decode)向けにつくったSentencePieceですが、意外と Encode側でも高性能になるので、いよいよ解析タスク全般で通常の単語分割はいらないのではないかと思う。サブワードじゃなくても文字CNNでもよい。neologdは壊滅的にNNと相性良くない。"
- Taku Kudoさんのツイート: "KyTeaをTrgで使った結果を見たらやたら「1508年〜15 18年」のような出力がやたらあって、よく調べたら、数値の分割の一貫性がないことに起因している(年がつくかで分割変わる)。"15 18" をdetokenizeするのは厄介で、現実的には空白入れるしかない。"
- Taku Kudoさんのツイート: "NLPでの緻密な単語分割を人間がやっているとは思えないし、その道の専門家しか学習データ作れない実情を考えると、もっと大雑把で直感的な(教師なし)分割で良くて、緻密な分割はそこからの差分を「無理やり鍛えて適応する」と考えたほうが、実情を反映できそうな気がする。"
- Taku Kudoさんのツイート: "BPEは分割手法が全く異なるので、kuromoji/mecabのモデルに変換できません。unigram だと、語彙テーブルの対数尤度に -1 かけて整数コストにし、未知語処理を切れば原理的には一緒になります。 https://t.co/lG0ZwGX8XY"
- SentencePieceを形態素解析のように使えるAPIを公開した - Qiita
- Taku Kudoさんのツイート: "DiscoGAN と CycleGAN アイデアは同じだと思うのだが、けっこうそう思っている人が多くて安心した。言語処理で使えるかは謎。可変長なので、元に戻したときの類似度の定義が難しい。"
- Taku Kudoさんのツイート: "さもすべての自然言語処理に使えるような記述になってて注意が必要。特定言語の特定処理にしか使えない。言語・タスク非依存なのはNFKCぐらい… https://t.co/uNcIvduprw"
- 自然言語処理における前処理の種類とその威力 - Qiita
- Taku Kudoさんのツイート: "実応用を考えるとすべての前処理は可逆変換であってほしい。情報を落としたり正規化するのは構わないが、元のテキストとの対応が復元できれば複数のNLPシステム間で結果統合がやりやすくなる。"
- Taku Kudoさんのツイート: "SentencePiece の実験結果を足しました。(Src/Trg どちらかだけ等) KyTeaとSPが似た傾向を示していますが、SPは語彙サイズが 1/10で済みます。neologdとの組みあせが強いというのも面白いです。 https://t.co/v3glMTTOul"
- google/sentencepiece
histric-2
- Taku Kudoさんのツイート: "neologdと組み合わせると良いことは、長い単位で確実に分割できるところは分割しておいて、あとはデータ駆動でサブワード化するというお互いの長所が補完できるからだと思います。"
- Taku Kudoさんのツイート: "sentencepieceは NFKC のサブセット(CCC並び替え以外)を実装しています。ICUを使って静的な正規化規則を作ります。実行時にはICUは必要ないです。 https://t.co/Q5EA1Uqweo"
- Taku Kudoさんのツイート: "ICU経由で作ったNFKCルールはここにあります。独自正規化をしたいときは適当にいじって学習時に --normalization_rule_tsv で指定すると、モデルに正規化規則が埋め込まれます。 https://t.co/EnhDBkgbft"
- Taku Kudoさんのツイート: "数年前に議論になったけど、短単位係り受けは形態論と統語論をごちゃまぜにしてて気持ち悪い。さらにUDは意味も扱おうとしてるので混乱。表層的な単語が文節相当になる言語は結構あるし、文節は特異な単位ではない。好きな形態素解析使えばいいし。 https://t.co/Lvk35I0lE9"
- 「語」とはなにか・再考 - murawaki の雑記 - rekkenグループ
- Taku Kudoさんのツイート: "分散表現とは、単語がN次元で表現されるのではなく、N次元の実数ベクトル意味空間のランダムウォークから「単語相当」のシンボルがサンプリングされていると解釈するのが議論のとっかかり"
- Taku Kudoさんのツイート: "実践的な内容という話なので、mmap の話とか入れてるけど、細かすぎてほんとうにいいのか謎。辞書等の大きいリソースをOS上でどう管理するかは、10年前は結構重要だったけど、今どきはどうなんだろう..."
- Taku Kudoさんのツイート: "SentencePieceの語彙数が16384なのが気になる。 被覆率が99.95%になるよう語彙数を決めて(これが16000)、残りは unk になる。分割結果には<unk>シンボルが出てこないのが誤解の元か... https://t.co/Sh08fXSeze"
- Small-NMT Task
- Taku Kudoさんのツイート: "ちなみに、--character_coverage=1.0 とすれば、学習データの全ての文字が1語彙になります。ただし、CJKはゴミみたいな低頻度語が使われるのであまり現実的ではありません。99.95%の被覆率は、単語ベースにくらべれば圧倒的に高いですし。"
- Taku Kudoさんのツイート: "重複あり(通常のカバレッジ)で98.59%は大きいです。spmの学習に使ったデータでのカバレッジですか? そうであれば、99.9%以上になるように最小語彙セットを作るので、何かがおかしいです。再現できるようなデータをいただければ調査します。 https://t.co/qw1Vk7QKzz"
- Taku Kudoさんのツイート: "長男君の塾の国語の宿題に、品詞毎に単語を分類する問題があって、MeCabを使って解いたったら驚かれ、さらにこれを作ったのワシじゃといったら更に驚いてた。正確には辞書は作っていないけど…"
- Taku Kudoさんのツイート: "sentencepiece の Python wrapper を足しました。pkg-config に依存しているので、sentencepiece の再インストールが必要です。あとは pip install でいけるはず。 https://t.co/muImH9AZhk"
- sentencepiece/README.md at master · google/sentencepiece
- Taku Kudoさんのツイート: "最大単語長さが極端に短い(4とか)設定の単語分割は、問題が極端に単純になるので軽くチートだと思う。完全に単語ラティス作れるし。"
- 帰国した情報系センター教員さんのツイート: "NLTKのword_tokenizeを使っていた箇所を、sentencepieceに置き換えたら2%精度が上がった(エラー率が50%下がった)。単語区切りって何なのかなあ‥‥"
histric-3
- Taku Kudoさんのツイート: "JESC字幕コーパスでモデル作ってみたが、文脈を無視した文単位の評価なので、リファレンスより良い結果になっている。つまり、問題設定として成立していない。文脈にはみなさん興味ないのかな?"
- Taku Kudoさんのツイート: "字幕みたいにノイズが多いコーパスは、学習がノロノロとしか進まず、イテレーション回せばまだ上がるかもしれない… みたいな事案が続いてる。 いまさらの気づきかもしれないが、綺麗なデータはすぐに収束する。"
- Taku Kudoさんのツイート: "WMTの評価は、人手評価があるのでdetokenizeした結果を提出して、NIST tokenizerで分割・評価するのが通常だけど、最近は評価データを moses tokenizerで分割した結果をオラクルとして評価している事例が多い気がする。分割結果がオラクルだとするのは、C… https://t.co/vNMKlPltop"
- Taku Kudoさんのツイート: "「コーパスと自然言語処理」のA氏担当(形態素解析)章を見たが、ザ・アカデミアという感じで私の本と方向性が違うし凄みを感じる。読者が違うからしょうがないにしても、私のは論文に書かれない実応用上役立つ知識集みたいな色合い。"
- Taku Kudoさんのツイート: "例えば、形態素解析のラベル・長さバイアス問題は、それ以前の逐次実行手法が抱える問題であって、OSS含め利用可能な逐次実行形態素解析器がないことから普通の技術者が感じることはない。という判断で、私の本には書いていない。"
- Taku Kudoさんのツイート: "MeCabの右文脈IDと左文脈IDがあって、実質同じIDなのに分ける必要があるのか? というのは、日本語の振る舞いとそれにどう工学的にアプローチしてきたか歴史的背景を説明する必要がある。"
- Taku Kudoさんのツイート: "end-to-end のNLPやれるほどの十分な学習データがあるのは翻訳ぐらいしかないので,翻訳も少量のコーパスでうまくいくような方法論のほうが他分野へ応用がしやすいかも (単に少量のほうが実験が楽だという言いわけ)"
- Taku Kudoさんのツイート: "未探索のハイパーパラメータがすごくいい結果を出すことが判明。 慌てて再実験。話の整合性もよくなるからいいとは思うが、結構センシティブな設定になるのが難。"
- Taku Kudoさんのツイート: "本日発表したサブワード正則化のためのサンプリングAPIは、sentencepiece に組み込まれています。C++: https://t.co/Sjkn5Mf9id Pythonのサンプル: https://t.co/wvVkUVS2uE"
- Taku Kudoさんのツイート: "形態素解析WSで、工学的アカデミアと産業界の温度差を見た。工学は良くも悪くも精度が上がればいい立場。が、〇〇という語句が取り出せたとしても、後段処理が認識できなければ無意味。後段の知識と単語分割の知識と統一的に扱うようなやり方に産業界は向かっている (例 NeLogd)"
- Taku Kudoさんのツイート: "後段の処理が機械学習ベースになってるのであれば、前にも言ったように分割を周辺化したりジョイントすればいいので、形態素解析はいらなくなる。"
- Taku Kudoさんのツイート: "Adversarial Logit Pairing どうしてこんなんでうまくいくのか感が拭えない。"
- Taku Kudoさんのツイート: "使う人少ないと思いますが、SentencePiece の unk/bos/eos/pad の ID を変更できるようになりました。https://t.co/qkIFgSqdgQ"
- Taku Kudoさんのツイート: "mecab.h が酷い言われ方w Cインターフェイスと完全に対応とれる作りなんでそこんとこ忖度してほしい。 STLすら外に出ていないし、そもそも C++03 がターゲットなので unique_ptrない。どこでも動く最大公約数のライブラリだったら、Cだけでいいと思う。C++はおまけ。 https://t.co/MTZR4Ptu3w"
- C++ラッパーを書く ~ C++の複雑怪奇な言語仕様を理解することによるメリット - Qiita
- Taku Kudoさんのツイート: "RAII は分かるけど、イテレーターは糖衣でしかないので使う側がラップしてくれとしか言えない。むしろ ABI互換性が保証されない C++ で、複数のコンパイラ、DLLやシェアドライブラリまで考慮したヘッダを書くことにどれだけ神経をすり減らされることやら。で、結局Cに落ち着く。"
- Taku Kudoさんのツイート: "SentencePiece 更新しました。ライブラリ内でのエラーは外に放出されるようになりました。Python は例外が飛んできます。 https://t.co/iMQl3eZLwJ"
- Taku Kudoさんのツイート: "BLEUの評価時に 本体の前処理(単語分割)を使うなという話。以前は守られていたけど、NMTになってめちゃくちゃになった。 私も言い続けてきたけど、こうやってリファレンスがあるとありがたい。 https://t.co/KjQFbqr8vQ"
- [1804.08771] A Call for Clarity in Reporting BLEU Scores
histric-4
- Taku Kudoさんのツイート: "SentencePiece の Travis-CI ルールを更新。Linux は docker化、Macのテスト追加、python wrapperのテスト、wheel パッケージの作成 (アップロードはしない) などなど。https://t.co/6b25gqz57t"
- Taku Kudoさんのツイート: "形態素解析の本を書いて、形態素と語をいっしょくたんに解析している現状をやめて、語の下位構造として形態素がある本来の形に、日本語もすべきだと強く思うようになった。"
- Taku Kudoさんのツイート: "なんのリテラシーもないまま macOSをUnix代わりに使うのはプチ勘弁。 そもそも Linux 向けに作ってるものを、さも macOS で動いて当然みたいな態度を取られるとやる気なくす。Macサポートには、それなりの時間と金がかかるし、個人的に関わりたくない。我慢してるんです。"
- Taku Kudoさんのツイート: "https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。"
- Module google/universal-sentence-encoder-lite/1 | TensorFlow
- Taku Kudoさんのツイート: "spmのメモリアロケーション問題、伝家の宝刀 thread_local で誤魔化すか。負けた気分。tcmalloc にするだけで、最大40%ぐらい速くなる。"
- Taku Kudoさんのツイート: "リソースの爆発を防ぐために、ある程度の上限を決めとくことはよくあるけど、そこを平気で超えるエクストリームユーザが少なからずいる。SentencePiece の語彙サイズを単語異なり数より大きくしたいとか。--split_by_whitespace=false で単語nグラムまで考慮できるけど、やりすぎな気が"
- Taku Kudoさんのツイート: "subword-nmtのBPE分割がPythonでも比較的高速なのは、事前単語分割結果を前提として、単語単位で結果をキャッシュしているからのようだ。その前提が効かない日本語だとSentencePieceに比べて400倍ぐらい遅くなる。にしても、キャッシュの寿命を考えてないのはいかにも実験コードっぽい。"
- Taku Kudoさんのツイート: "周りでもMBP離れが加速している。"
- Taku Kudoさんのツイート: "サブワード=BPEという認識を無くしたい。要望があったので、語彙を制限する機能(subword-nmtにはある)を実装したけど、貪欲アルゴリズムであるがゆえ、ちょっとした拡張でも実装がめんどい。 https://t.co/HMTVCLPvRG"
- Taku Kudoさんのツイート: "言語モデルで語彙を制限したければ、結局全探索するので該当するノードをラティスから取るだけでよい。BPEの場合は、将来どうなるかわからないので、処理の途中で止めるわけには行かず、いったん完全解を作って、マージした逆順に再分割する。"
- Taku Kudoさんのツイート: "というか、この逆順の方法が正しいかどうかも謎。考えるのも無駄なので、深追いしない。"
- Taku Kudoさんのツイート: "ちなみに、CJKの(教師なし)単語分割で、学習時にはがんばって語彙獲得をするけど、分割は最長一致という話をちらほら見る。これがうまくいくのは、アルファベット数が多くて解空間がスパースであるからだけど議論されることはあまりない。英語やDNAシーケンスでやると終わる。"
- Taku Kudoさんのツイート: "さらに、BPEがうまくいくのは目的関数が劣モジュラだからで、劣モジュラではない尤度を目的関数にすると動かなくなる。が、CJKだと解空間がスパースなので尤度+貪欲法でもなんとなく動く。オリジナルのwordpiceモデルがCJKのみで尤度+貪欲法を使ってたのはこういう背景がある。"
- Taku Kudoさんのツイート: "アルファベットの異なり数とか平均単語数の事前情報を無意識に仮定していることがあるので、言語非依存というときには注意が必要。"
- Taku Kudoさんのツイート: "競プロ、Kaggle、トップカンファレンス、人材を評価する基準としては素晴らしいと思うけど、採用で本当に重要なのはどれかに偏らないように多様性を確保することだと思う。様々なバックグラウンドを持ったその道のプロが集まったチームのほうが経験的に楽しいし強い。NLPは性質上多様性は高いと思う。"
- Taku Kudoさんのツイート: "社内で同様のリクエストがきたから想定内とは言え、エクストリームユーザが増えてきている。 https://t.co/hkFhjRZ8jH"
- Does not recognize \n · Issue #101 · google/sentencepiece
- Taku Kudoさんのツイート: "SPMは、デフォルトで<s>, </s> を特別視せず通常の文字列として扱います。内部トークンをリクエストに入れることで動作が変えられたり、これらがデコード時に外に漏れるというのは、(S|N)MTあるあるのバグです。SPMは、実験にも使えるようworkaroundがあります。詳細は以下。 https://t.co/WzQZ4mcSTC"
- Understanding BOS/EOS symbols · Issue #102 · google/sentencepiece
- Taku Kudoさんのツイート: "ユーザが入力できるコンテキストはXSSといった危険があるので、あらゆる状況で神経使わないといけないというのは普通のエンジニアの発想だが、どうも研究者にはピンとこないらしく、 <s> の話も適当なワークアラウンドで回避されることしばしば。住む世界が違うのか。"
histric-5
- Taku Kudoさんのツイート: "TFとChainerのコードを並べると、たしかに前者の辛みは理解できるけど、機械学習プラットフォームとして目指す世界観を俯瞰すると、よくできてると思う。機会あったらどっかにまとめたい。"
- Taku Kudoさんのツイート: "string_view (absl) にして入力はゼロコピーに (といっても、今までも独自StringPieceなのでパフォーマンスは変わらず)。 最上位のAPIに関しては極小 string_view もどきを作り、ここでもコピー発生しない。 https://t.co/87ifD4cs4Q"
- Taku Kudoさんのツイート: "こっそり公開していたのですが、見つかったので... sentencepiece の tf ops を実装しています。生文を placeholder 経由で feed できるようになりますspm のモデルがグラフに埋め込まれるので、デプロイが楽になるかもです。https://t.co/2Ss9yIr7gV"
- how to use sentecepiece tensorflow Op · Issue #125 · google/sentencepiece
- Taku Kudoさんのツイート: "例の op を tf.contrib にもってくには、まず Windows 対応しないといけないし、そうなると cmake のほうが楽だし.. めんどい"
- Taku Kudoさんのツイート: "発表あるのに現実逃避に cmake に移行中"
- Taku Kudoさんのツイート: "メルボルン中にちまちまやっていた cmake 移行をマージしました。ついでに tcmalloc が利用可能のときはリンクするようにしました。言語やコーパスに依存しますが、10-40%ぐらい速くなります。 https://t.co/iMQl3eZLwJ"
- Taku Kudoさんのツイート: "ACL終わったので…しばらく前に機械翻訳チームを離れ、別チームに移りました。ここ最近研究をやることになって運良くACL通ったのですが、やはり製品コードを触ってたいかなと。あと、研究として機械翻訳をやることは自分の興味とズレる。ACLもニッチな話で翻訳に応用したが正しいですし。"
- Taku Kudoさんのツイート: "夜な夜な spm の windows 対応してたが、 dll の作成はほぼ諦め。手抜きして全 export を試みたが、protobuf 周りで未解決シンボル出まくり。やはり export するclass/関数を陽に定義せねば。そうなると設計も含めて結構変更が必要。改めて C++とdllは鬼門すぎる。"
- Taku Kudoさんのツイート: "そもそも protobuf もデフォルトで静的リンクで、dll は「やりたきゃやれば」という立場。あと、dll 経由で protobuf をexposeするなと書いてある。つまり、dll 中にある protobuf message を main から使えない。 https://t.co/Flc7EBfaSt"
- Taku Kudoさんのツイート: "ACL short paper は単に long の短い版じゃないよとちゃんと書いています。negative result もOKというのがわりと重要。ある意味多様性を担保してるのだと思っています。 https://t.co/Huxrk0QVGM"
- Taku Kudoさんのツイート: "データの入手が容易だからしょうがないにしても、全体的に英語を前提としたNLPが増えている印象。怖いのは、英語の言語的特徴を陰にかつ無意識に仮定したモデルが増えると、なかなか辛いものがある。"
- Taku Kudoさんのツイート: "TF hub 経由で elmo が使えるもよう。https://t.co/ZKeSVOxKhT"
- Module google/elmo/2 | TensorFlow Hub | TensorFlow
- Taku Kudoさんのツイート: "多様性がないがしろにされる環境にいるとストレスで、さらにそれが無意識に起こっていることが残念だ、ってなことを某先生に言ったら、ことさら日本は多様性に対してコストがかかるから、意識しないと自然とそうなるよってことを言われ、妙に納得した。"
- Taku Kudoさんのツイート: "現環境への破壊的操作満載のスクリプトでmac版 wheel を作っているのですが、手元で簡単に仮想環境が動かせない macOS でみなさんどうやってやりくりしているのでしょうか。実機なしで travis だけで開発している私は変かもしれないけど、それが普通であってほしい。 https://t.co/qdm1QWIhdi"
- Taku Kudoさんのツイート: "自戒を込めて日本は、何かライブラリを書いた時に、コードの書きやすさ、気持ちよさ、見通しの良さといった主観的なことを前に出しすぎな気がする。さっさと仕事がしたい人にはどうでもよくて、何ができるか、何が違うのかという具体例を示さないと評価されにくい。"
- Taku Kudoさんのツイート: "git tag 一発で、 travis/appveyor 上での linux, win, osx pip パッケージのビルド、テスト、デプロイが完結できるようになりました。組み合わせでもかなりある。数ヶ月前は、pip って何?って状態でしたが、一通り経験すると次が楽になりそうです。 https://t.co/jCxTkIUHvG"
histric-6
- Taku Kudoさんのツイート: "文字が持つ密度が異なるので、漢字を入れて評価しないと言語ユニバーサルとは言いづらいかも。サブワードだと漢字圏の言語と英語の対訳をまぜて学習した場合、1文あたりのトークン数がだいたい同じになって、情報量的には同じなんだなということが実感できる。 https://t.co/7s6VrKUTdN"
- [1808.09943] Revisiting Character-Based Neural Machine Translation with Capacity and Compression
- Taku Kudoさんのツイート: "件の本の目次があります。その道のプロにはアタリマエのことしか書いていません。事前計算等の高速化の話は少し役に立つかも。 https://t.co/Y0UFcypcco"
- Taku Kudoさんのツイート: "sentencepiece 遅すぎじゃという指摘を受けて、いろいろ修正中。LSTMに比べればダンチで速いのでそんなに頑張っていなかったけど、改めて世の中は広い。virtual call を止めたり、断片化が起きにくいようにまとめてメモリアロケーションするなど、普通の最適化で速くなりそげ。"
- Taku Kudoさんのツイート: "本や論文の執筆のために Linux laptop を持ち歩いていたのですが、それから開放され、chromebook に戻ってきた。楽でよい。普段の仕事はこれだけでできるし。"
- Taku Kudoさんのツイート: "conda 対応しろというリクエストが… むむむ"
- Taku Kudoさんのツイート: "sentencepiece の normalizer に moses の再実装を追加したほうがよいのだろうか? 個人的/思想的には不本意ですが、ほぼほぼでファクトになってるのと、今の前世紀設計・実装は扱いにくいのではないかと。"
- Taku Kudoさんのツイート: "長男くんに Python の fractions モジュールで有理数・分数計算を見せたら感動してた。次は sympy か"
- Taku Kudoさんのツイート: "SentencePiece(unigram) が中国語評判分析でうまくいった話。事前分割が不必要等の意図通りの内容で嬉しい。これに限らず中国語でうまくいく話はよく聞く。中国語教師あり単語分割の進展をよそに、単純教師なしが良いというのは複雑。分割を目的にしてはいけないことの戒め https://t.co/S72B2grmlG"
- Taku Kudoさんのツイート: "拙著の発売日です。これで夢の?印税生活"
- Taku Kudoさんのツイート: "IBMモデル1的な教師なしで対応を取る手法は、汎用すぎてどこにいっても役に立っている。"
- Taku Kudoさんのツイート: "件の本にも書きましたが、memory mapped file がサポートされてる言語だと、辞書中の様々な文字列情報をゼロコピーで扱えるので高速になります。JavaやPythonだとそのへんの苦労が想像できます。 https://t.co/5qPmSaLiAi"
- Javaでつくる本格形態素解析器
- Taku Kudoさんのツイート: "sentencepiece のissue がたまり気味。チーム離れてから完全副業状態なのでどうにもこうにも。"
- Taku Kudoさんのツイート: "そもそも入力が単語列という話は、単語とは何かを考える人にとっては興味が薄いのです。これも英語至上主義の弊害かな..."
- Taku Kudoさんのツイート: "単語とは何かを言うなら、文とは何かを考えずに文埋め込みを計算するのもよく分からない。話し言葉や古語には文がなく、書き言葉に導入された概念。主語省略は文を前提にした議論であって、英語と日本語の文相当のチャンクの定義のズレに注目したほうが面白いと思うが、私だけだろうな。"
- Taku Kudoさんのツイート: "std::string 使えばC++で文字列処理楽だぜーといってたのはもはや過去の話に。NLPは内部で大量の文字列を扱うので、std::string_view にするかしないかでパフォーマンスに影響が。古き良きポインタ演算の世界へようこそ。コードの見た目も結構変わってきた。"
- Taku Kudoさんのツイート: "mecab-unidic の中の人は、私以上に mecab を使いこなしているのは間違いないですが、開発当時の想定を遥かに超えて、現状では無駄が多いので、作り直したい気分ではある。"
- Taku Kudoさんのツイート: "連接表が 715MByte というのはなんといいますか..."
histric-7
- Taku Kudoさんのツイート: "absl::flat_hash_map が使えるようになってる。結構高速なのでおすすめ。https://t.co/d7EZPD0Hff"
- abseil-cpp/flat_hash_map.h at master · abseil/abseil-cpp
- Taku Kudoさんのツイート: "今書いてるコード flat_hash_map のルックアップが全体の70%ぐらいで、どこをどうやって高速化するか頭をかかえる。最適化を意識せずに書いたコードが普通に速かったのは嬉しい反面。"
- Taku Kudoさんのツイート: "放置気味だったので、出発前に更新。tf 本体のバージョンをパッケージのバージョンに埋め込むようにした。ビルドもオフィシャル docker image 上で作るようにしたので、同じバージョンのオフィシャル tf pip パッケージであれば、ABI互換性は保たれるはず。 https://t.co/kEXgX05HCP"
- tf-sentencepiece · PyPI
- Taku Kudoさんのツイート: "ポスターデモ終了。BPEとどう違うのというのがFAQ。そうだよね。システム vs アルゴリズムの名前の違いなので紛らわしい。"
- Taku Kudoさんのツイート: "ベンチマークに一喜一憂する弊害。SQuAD に限れば、機械は賢いパターンマッチャー/人間は範囲選択ミスばかりという分析もある。研究者はより純粋に「理解する」ことの本質をベンチマークを通じて知りたいのであって、人間を超える・超えないといった話ではない。 https://t.co/c65JvSZ2nr"
- on-squad.key
- Taku Kudoさんのツイート: "自然言語の encoder は、BERT 関連で急激に発展したけど、本丸は、decoder つまり、言語生成だと思っている。評価が難しいのが難点ですが。"
- Taku Kudoさんのツイート: "#misreading sentencepieceについて補足。BPEは最長一致ではなく、学習時の文字結合ルールを同順番で再生することで行います。言語モデルの分割は、分割そのもののNLPっぽさや直接的な翻訳精度の向上が目的ではなく、スコアがある→複数分割/サンプリングできる→データ拡張して精度向上という流れです"
- Taku Kudoさんのツイート: "#misreading BPEや言語モデルはデータ圧縮と関連があって、前者はテキスト全体のトークン数の最小化、後者はエントロピーの最小化をしています。LZとハフマン符号の違い。BPEは貪欲法ですが、目的関数が劣モジュラなので、あの方法でも理論的に厳密解との差が保証できます。"
- Taku Kudoさんのツイート: "某MNLPで marian NMT の方に sentencepiece と sacreblue オシなので頑張ってねと告げられた。ただ protobuf の依存は嫌だから何とかせいとも言われた。いよいよ nanopb に移行か?"
- Taku Kudoさんのツイート: "N→G に移った経験から言うと、Nのほうが研究テーマの裁量を含め圧倒的に自由だった。MeCabやれたし。純に自分の研究・開発したのなら、アカデミアだと助言された(そう思う)。つまり報酬低いからダメといった単純な話ではなく、仕事内容、裁量、自由度を含めて考える必要あり。"
- Taku Kudoさんのツイート: "もちろん究極の自由は起業なんでしょうね。私はその能力がないので無理です。"
- Taku Kudoさんのツイート: "メモリ4Gがバズってるみたいですが、手元の自宅普段使いマシンは、メモリ4G ARMv8 の chromebook 。特に困っていない。"
- Taku Kudoさんのツイート: "marian nmt がサポートするようになって、実践的で有益なフィードバックをいただけるようになったのは幸いだが、それなりの作業量が必要だと思われる。"
- Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 仕事増えた"
- Information about protobuf · Issue #254 · google/sentencepiece
- Taku Kudoさんのツイート: "BCCWJ/Unidic のこの手の話題は枚挙に暇がない。「仕事部屋」や「空き部屋」「山仕事」が1短単位というのは、原則を知っていればちゃんと理解できる。"
- Taku Kudoさんのツイート: "BCCWJ/Unidic で、「かけそば」は1語、「かけうどん」は2語というもの、短単位認定基準を適用するとそうであるとしか言えない。「うどん」の語源は諸説あるみたいだが、Unidicでは漢語にしてる。"
- Taku Kudoさんのツイート: "メジャーNMTに取り入れられてお星様増えたし、周辺がなんだか騒がしい。家も本業もいろいろ忙しく何もできてない。"
- Taku Kudoさんのツイート: "PyPI のダウンロード統計が見れる。git clone (C++) よりも圧倒的に多い。https://t.co/o6AjvKfyk1"
- PyPI Download Stats
- Taku Kudoさんのツイート: "mecabのCRF学習は、2000年前半のメモリー4Gぐらいの環境でなんとか動くようキャッシュ等の工夫をめちゃくちゃしてたけど、今日日数十〜百Gのメモリーが使えるので、そもそも必要ないかもしれない。"
- Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 protobuf への依存を無理やり解決した。当初のやり方とは違いますが。"
- 中川裕志さんのツイート: "@taku910 @mamoruk ダブル配列日本発は存じております。NLP解析系アルゴリズムに興味を持っている学生は見たことないですが、言語あるいは言語学そのものに興味を持っている学生は少しはいて、そういう人がアルゴリズムに入っていくという感じでしょう。"
histric-8
- Taku Kudoさんのツイート: "NLPが他のML応用と少し異質なのは、データでなんとか学習可能な問題とは別に、知識がないとどうにも解けない問題がいっぱいあること。固有名詞の翻訳・読み推定が例。知識を学習データとして与えても学習される保証ないし、直接知識から出力させたいジレンマに陥る。"
- Taku Kudoさんのツイート: "今やってること、あるNLPタスクの疑似学習データ作成に使えるのではないかと思えてきた。多分誰もやっていないはず。"
- Taku Kudoさんのツイート: "sentencepiece (python) の使い方の網羅的な colab page を書いた。今回の出張の半分ぐらいはこれ関係。どうなるか謎なプロジェクトだったし、メインの仕事でもないけど、ここに来てユーザが増えている印象。 https://t.co/kYpTSAJkuR"
- sentencepiece/sentencepiece_python_module_example.ipynb at master · google/sentencepiece
- Taku Kudoさんのツイート: "mecab(単語分割)をsentencepieceの語彙獲得の制約のみに使うというやり方があります (OSS版では未実装だが検証済み) サブワードが形態素をそれなりに尊重するようになり、かつ実際の分割時にはmecabが必要ないメリットがあります。"
- Taku Kudoさんのツイート: "sentencepieceはモデルの再現性と自己完結性にかなり気を使っていて、 --self_test_sample_size=1000とすると、学習データの一部とその時の分割結果をモデルファイルに埋め込み、モデルの読み込み時に整合性を自己診断する。学習データのリークを防ぐためにデフォルトはオフ。 https://t.co/LY9vxRi81m"
- sentencepiece/sentencepiece_model.proto at master · google/sentencepiece
- Taku Kudoさんのツイート: "tf ファミリーとの親和性強化のため、sentencepiece のビルド周りが不安定になっています。同僚さんが頑張ってくれていますが、そのうち落ち着くはずです。pip でダウンロードできるものは今のところ影響なしです。"
- Taku Kudoさんのツイート: "SentencePieceに関する2つの論文も、BPEより良いという結論は出していないし、それが意図通り。… "
- Yusuke Odaさんのツイート: "Wordpiece (BPE) と SentencePieceに性能上の差異はほとんどないという認識"
- Taku Kudoさんのツイート: "未知語対策に、漢字をそれっぽい英語に1:1で可逆変換する方法ってないかな。意味と頻度を適度に保持すれば、そのままサブワードが動かしやすくなる。… "
- Kosuke Tsujinoさんのツイート: "多言語sentencepieceモデルを学習したいとして、言語間で量を揃えて混合コーパスを作るだけでは十分でないということだ"
- Taku Kudoさんのツイート: "またIBMモデルみたいなものを書いてしまった"
- Taku Kudoさんのツイート: "少し認識が違います。CJKと英語を混ぜてサブワードを作っても、データ圧縮が基礎なってるので一文あたりのトークン数はあまり変わりません。つまり1サブワードあたりの情報量は均質です。問題は漢字の種類数の多さで、未知語完全になくすには全文字を入れることになり文字分割と変わらなくなります… https://t.co/jkrBuy8gyt"
- Kosuke Tsujinoさんのツイート: "言語ごと等量にコーパスを混ぜるとロマンス系言語(実質的に英語含む)に共有されているラテン語系の語幹が勝ちがち、プラス、文字数の差を考えると西欧言語とCJKでものすごくサブワード粒度が不均等になるのだ…"
- Taku KudoさんはTwitterを使っています: 「デフォルトを全角スペースにして半角スペースをopt-in するのが定石。逆にするから混乱する。こういうしょーもないところは頑張るところではない。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「BPE で subword regularization する話。自分の仕事が再現・継続されていることが何よりうれしい。」 / Twitter
- Lena VoitaさんはTwitterを使っています: 「[1/3] BPE-dropout: our new paper by Ivan Provilkov and Dmitrii Emelianenko! https://t.co/9pnuK8qlss In training, we corrupt segmentation procedure of BPE to produce different segmentations of the same word. In inference, we use standard BPE and outperform BPE and sentencepiece. https://t.co/fA3pfHODzL」 / Twitter
- [1910.13267] BPE-Dropout: Simple and Effective Subword Regularization
- Taku KudoさんはTwitterを使っています: 「できません。任意の連結を認めると、語彙数がコントール不能になり、語彙数を固定するというサブワードの考え方に反します。強制的に分割することは可能です。」 / Twitter
- vochicongさんはTwitterを使っています: 「@taku910 MeCabで分かち書きしてから、SentencePieceを適用しています。SPでトークンを更に分割することなく、連結だけ行うような動きをさせることはできますか。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「不自然と言われても、サブワードはそういうものとしか言えません。語彙数が固定されているので、限られたパイを取り合ってるだけです。」 / Twitter
- vochicongさんはTwitterを使っています: 「現状、SPで「ソニー」が「ソ/ニー」に分割されてしまうのは不自然です。」 / Twitter
histric-9
- Taku KudoさんはTwitterを使っています: 「Subword regularization の追試論文その2? うまくいかないという声を時々聞きますが、元論文にもこの論文にもあるように、十分データがある+同一ドメインで評価しているとほとんど変わりません。小規模データor 別ドメインで有効です。 https://t.co/ZZ7lxz9QGY」 / Twitter
- [1911.03109] Domain Robustness in Neural Machine Translation
- Taku KudoさんはTwitterを使っています: 「「外国人参政権」を形態素解析の問題の難しさの例として使うのはいいけど、システム間の優劣に使うのはミスリード。学習データが足りないだけで、既存モデルでも扱える。形態素解析に限らず、モデルがだめなのかデータ不足なのか区別して議論してほしい。」 / Twitter
- Taku KudoさんはTwitterを使っています 「mecabが速いと言われてますが、初期の形態素解析はどれもそれほど遅くなく、chasen も juman もせいぜい2-5倍遅い程度だったんです。突如として速い実装が出たんではなく、周りがどんどん遅くなっていった。」 / Twitter
- Taku KudoさんはTwitterを使っています 「高速な形態素解析解析といえば「すもも」がありました。なんかのパッチ書いて送った気が... この時代は学部生だったので中身もよく分かってなく単なるユーザでした。ちなみに juman2.0 時代はTRIE使っていないので、フェアな比較にはならないです。 https://t.co/GYQ2n76ILR」 / Twitter
- 情報学広場:情報処理学会電子図書館
- Taku KudoさんはTwitterを使っています 「性能には直接影響はないが、実際それが起きるとユーザが嫌がる事例ってのがIMEにはあって、評価を難しくしている。そういうのを潰すと性能が低下することもありジレンマ。」 / Twitter
- Taku KudoさんはTwitterを使っています 「たとえばIMEで次の単語を予測する場合、予測が全部外れても無視すればいい話。でも予測した単語が完全に的外れだと印象がすこぶる悪い。正解データとの比較だけではこの悪さ具合が評価できない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「旧長尾研卒の私ですが、研究室で寝ていると「黒はし君いる〜」とふら〜っと長尾先生が入ってこられ、若かりし自分は不躾な対応しかできなかっとこは苦い思い出です。データで殴るNLPの先駆けで、ツールやリソースの整備に尽力され、実世界で動くNLPに多大なる影響を与えたことは疑いの余地がありません」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語TTSをやってたがこの辺はまだ未解決。結局、エラーがあったら機動的に再学習できるモデル化がまず重要。さらに、単語分割、読み→文字のアライメント、読み表記の多様性は気にせず、レイジーに記述できるようにすることで、日本語話者ならだれでも修正できるようになると良いサイクルが生まれる」 / Twitter
- 山本 和英(言語商会)さんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
- Taku KudoさんはTwitterを使っています 「レイジーの中には、部分アノテーションも当然含まれます。」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語読み推定 kytea でええやんという話もありますが、アノテーションに単語境界の意識がいるので不十分です。文中の任意の部分文字列に読み・発音をルーズに書けるのが理想です。単位の異なる読み情報等を柔軟に取り入れることができます。ただ、ノイズに弱いので、工夫は必要です。」 / Twitter
- Taku KudoさんはTwitterを使っています 「neologd は長い複合語を一語にするアプローチを採っています。副作用がない利点がありますが、その情報が別の文脈に再利用されないもったいなさがあります。」 / Twitter
- Taku KudoさんはTwitterを使っています 「様々な単位・粒度で読みが部分的に・ルーズに付与された辞書やコーパスがあって、そこから読みモデルを作る。私は結構泥臭くやったけど、今どきの方法で綺麗に作れたら素晴らしい成果になると思います。」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語のトークン化、教師ありでやるなら単位が*安定*している文節や長単位でやって、その細分割はタスク依存で Don't care (~教師なし)と以前から思っていたが、経験的に長単位+サブワード化が強いらしく、その通りになってるみたい。文節内の分割なんて人間は気にしてないと思うし。」 / Twitter
- Taku KudoさんはTwitterを使っています 「ということで、いきなり長単位/文節分割が可能な高速な解析器が欲しい。内部の分割は必要ないので、形態素まとめ上げという旧来のやり方を踏襲しなくてよい(というかしない方が良い)」 / Twitter
- Taku KudoさんはTwitterを使っています 「短単位の機械分割はほぼ完璧なのに対し、人はマニュアルを熟読しない限り一貫してできません。つまり本質的ではない見かけの精度が上がってるだけなのかも。逆に文節は、助詞欠落状態でも人はアクセント句を無意識に簡単に挿入できます。そのギャップが違和感になっています。「安定」とは対「人」です」 / Twitter
- 山本 和英(言語商会)さんはTwitterを使っています 「私は単位が最も安定している短単位が最善だとずっと思っていましたが、確かに安定という意味では長単位(をこれ以上人間が分割しないこと)のほうがいい気もしてきました。これは大きな知見かもしれません。」 / Twitter
- Taku KudoさんはTwitterを使っています 「unidicにチャレンジするも、単純なタスクだとipadicのほうが精度がよく、ipadicに出戻ることを何度も繰り返している。短単位独特の使いづらさが起因してそう。「自転車」が「自転|車 」に分割されてて、こりゃembeddingの平均を取ってもうまくいかんだろうと思う。」 / Twitter
- Taku KudoさんはTwitterを使っています 「おっしゃる通りで、std::stream が遅いので独自にバッファリングしています。それでも IOだけで10-20%ぐらい食います。分かち書きだけなら -Owakati -o/dev/null としたほうがよいです。純粋な解析だけだと -Onone でわかります。」 / Twitter
- 𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「MeCabのIOオーバーヘッドがかなり大きい説があって、アルゴリズム以外の下らない要素でどうもCLIのコマンドは速度が当てにならない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「BudouX 文節区切りというのが渋い。改行処理といタスクの特性に合ってる。人間とのインタラクションが増えるほど文節の重要性が増してくる。」 / Twitter
- Taku KudoさんはTwitterを使っています 「budoux は tinysegmenter の機械学習と同様な方法でモデルをコンパクトにしてるようです。tinysegmenter は半分お遊びだったのですが、多くの言語に移植されて作者本人が驚いています。精度だけで単語分割を語ることはできません。」 / Twitter
- Taku KudoさんはTwitterを使っています 「tinysegmenterのモデルは今どき言葉だと、深さ1の決定木(=決定株)を弱学習器に使う gradient boosting です。弱学習器は「一つ前の文字が「は」だったら分割」といった決定をします。boosting の特性上、使用する決定株の種類数にL1の正則化がかかり、モデルが小さくできます。」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepiece のFAQに「 <s> が分割されてしまいます。」ってのがあって、ユーザーが入力できるリスクがあるけど本当にいいのか? とモヤモヤしながらユーザ定義トークンにするworkaroundを提示している。エンジニア的観点だと許容できなんだけど。」 / Twitter
- Taku KudoさんはTwitterを使っています 「DNN時代だと、特殊トークン (<mask>) で制御することが増えた。ユーザに制御を許可するリスクがあるので、sentencepiece は、特殊トークンは明確に区別し、入力できないようになっているが、ユーザ定義トークンとして定義して通常入力と同列に扱う人が多いみたい。」 / Twitter
- Taku KudoさんはTwitterを使っています 「ライブラリとしての形態素解析がまだメジャーじゃなかった時代は、入力に特殊なタグを入れて動作を制御する (解析をスキップしたり) する機能があった。当然mecabでも要望あったが、バッサリ捨てた。log4j での教訓でもあるが、入力に本来タスク以上の意味づけを行うとリスクが高まる。」 / Twitter
- Taku KudoさんはTwitterを使っています 「GEC(文法誤り訂正)の評価、精度/再現率/F0.5 が使われてるけど、どれくらいの誤検出(false positive)を許容するかは状況によっても変わるし、誤検出=10%でもゴミとなることもある。本来はPR-AUCのようにPRカーブ全体として評価してほしい。seq2seq だと、この辺の制御が難しいのは想像できるけど。」 / Twitter
- Taku KudoさんはTwitterを使っています 「仕事でNLPやってると、精度・再現率のバランスをどうとるかはいつも悩みどころで、しきい値で制御できるモデルにすることはもちろん、PR-AUCを意識することが増えた。F値一択ってのは、あまり現実的ではない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「今日日、高性能の形態素解析より、MeCab互換の使い勝手のいいそれのほうが需要があるのではないかという議論をした。」 / Twitter
- Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
- google/sentencepiece
- Taku Kudo
- タスクに合わせたトークナイザ、単語分割に関連したポエム - yasuhisa's blog
- 形態素解析をして単語を取り出せているつもり・・・か? - Qiita
- Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
- Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
- 形態素解析
- 形態素解析器 Sudachi の辞書が手に入ったので Go で遊んでみた - 押してダメならふて寝しろ
- Subword segmentaion と SentencePiece について - Qiita
- 高岡一馬さんのツイート: "SudachiとNWJCをつかった日本語単語分散表現を公開しました。Apacheライセンスなので商用利用も可能です。 https://t.co/lRkJvRt79V"
- 大規模コーパスと複数粒度分割による日本語単語分散表現
- 32ビットCygwin向けmecab-cygwin32 | yasuokaの日記 | スラド
- 日本語形態素解析エンジンnagisaは古典中国語(漢文)を学習できるのか | yasuokaの日記 | スラド
- kagome v1.11.1 をリリースしました。あるいは sync.Pool にまつわるバグの修正 - 押してダメならふて寝しろ
- ゼロから作った形態素解析器Taiyakiで学ぶ形態素解析 - The jonki
- 形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として
スクレイピング
匿名加工情報
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編(保護法改正はどうなった その2)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編の2(保護法改正はどうなった その4)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・中編(保護法改正はどうなった その3)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・後編(保護法改正はどうなった その7)
クローリング除外
- まとめのまとめ - Google 検索
- NAVER まとめ[情報をデザインする。キュレーションプラットフォーム]
- Twitter
ZMap
- The ZMap Project
- zmap/zmap: ZMap Internet Scanner
- 【論文メモ】ZMap: Fast Internet-Wide Scanning and its Security Applications (2013)
Anaconda
Python
Python
- python/cpython: The Python programming language
- Welcome to Python.org
- 概要 — Python 3.5.1 ドキュメント
- 12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.5.1 ドキュメント
- 10. 完全な文法仕様 — Python 3.5.1 ドキュメント
- Python 言語リファレンス — Python 3.5.1 ドキュメント
- 3.6.2 Documentation
- pip 9.0.1 : Python Package Index
- wheel 0.30.0a0 : Python Package Index
- PyCharm
- Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
- パッケージのインストール — Python Packaging User Guide ドキュメント
- Installation — virtualenv 15.2.0.dev0 documentation
- Pythonパッケージのドキュメントホスティングサービス「pydoc.io」が公開される | OSDN Magazine
- Pydoc
- 「The Next Platform」で読むグローバルITトレンド(11):PythonはFPGAアクセラレーションの裾野を広げるか (1/3) - @IT
- pipenv: 人間のためのPython開発ワークフロー — pipenv 8.1.9 ドキュメント
- DebuggingWithGdb - Python Wiki
- Python debugging configurations in Visual Studio Code
IDLE
- 25.5. IDLE — Python 3.6.1 ドキュメント
- 25.5. IDLE — Python 3.6.2 documentation
- IDLE (Python) - Wikipedia
- IDLE - Wikipedia
- Python入門(1) IDLEを使う
- Python入門(1) Python世界に入る
- Pythonで学ぶ 基礎からのプログラミング入門 (2) プログラミングの環境を整えよう | マイナビニュース
- 【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
- 【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
- PythonのIDLEでデバッグを行う方法 | ガンマソフト株式会社
- Python入門 - IDLEとPythonの基本的な使い方 - Python Works
pdb
- 27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント
- 27.3. pdb — The Python Debugger — Python 3.6.2 documentation
- PythonデバッグTips - Qiita
- 【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
- Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース
- Pythonにおける効率的なデバック方法入門 - MyEnigma
- Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web
Lint
flake8
- Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
- dreadatour/Flake8Lint: Sublime Text plugin for lint Python files
- flake8 3.3.0 : Python Package Index
- Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
- Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定 | まめりうむ
- よみさんのツイート: "flake8はmapとかfilter使っても怒られないからすき"
- Vimメモ : flake8でPythonのコードをチェックする - もた日記
- VimからFlake8を使うプラグイン - Qiita
- Vim - Pythonのflake8やsyntasticで特定のエラーを無視する - ぼっち勉強会
pep8
- はじめに — pep8-ja 1.0 ドキュメント
- Python のコーディング規約 PEP8 に準拠する - Qiita
- PEP 8 -- Style Guide for Python Code | Python.org
- [Python] コーディング規約(PEP8)を学んで、Pythonらしいコードを書く - YoheiM .NET
- mumumu/pep8-ja: PEP8 日本語版
- pep8 - Python入門
- Python で pep-8 の「E501 line too long」にしないためのコーディングテクニック | 技術的生存報告記
- Pythonで学ぶ 基礎からのプログラミング入門 (36) Pythonのコーディング規約「PEP8」 | マイナビニュース
- PEP8を読んでみよう
- Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる - もた日記
- vimでpythonのコーディングスタイルを自動でチェック&自動修正する - ton-tech-ton
pylint
- Pylint - code analysis for Python | www.pylint.org
- Pylintの使い方メモ - Qiita
- Pythonの主要なLint(pep8, pylint, flake8)の設定方法まとめ - Qiita
- Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog
- PyLint で Python コードの質をチェックする | CUBE SUGAR STORAGE
- Python: pylint でバージョン 3.x 非互換のシンタックスを見つけ出す - CUBE SUGAR CONTAINER
- [Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする - dackdive's blog
- pylint 1.6.5 : Python Package Index
- 【python】コードの品質管理について その2 pylint - simudaru's blog
- [vim]Syntasticでpython用の設定をする - dackdive's blog
コード補完
- Python用のvimの設定 - memorandum
ライブラリ
csvkit
- csvkit 1.0.1 — csvkit 1.0.1 documentation
- wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats.
Grumpy
- 本の虫: GoogleがGoによるPython実装、Grumpyを発表
- Google Open Source Blog: Grumpy: Go running Python!
- 渋川よしきさんのツイート: "1スレッドだと性能で負けちゃうのか。ウェブサービスぐらいしか美味しい用途なさそう。 : Google Open Source Blog:Grumpy: Go running Python! https://t.co/2N5V88QLWb via @google"
Numba
- Numba — Numba
- Python高速化 Numba入門 その1 - ゆとりデータサイエンティストの諸々所感
ByteWeight
- るくすさんのツイート: "byteweightとかいう謎のpythonモジュール出てきたので調べたら、David Brumley先生が作ったバイナリから関数を抽出するモジュールらしい。 https://t.co/1mnWNjoGTF"
- るくすさんのツイート: "ああ USENIX Sec'14にちゃんと論文があるんだ BYTEWEIGHT: Learning to Recognize Functions in Binary Code https://t.co/oMD3wcuvW8"
- るくすさんのツイート: "実際に作ったのはDavid Brumley先生じゃないかもしれない CMUの誰かだ"
- ByteWeight
- BYTEWEIGHT: Learning to Recognize Functions in Binary Code | USENIX
pandas
- Python Data Analysis Library — pandas: Python Data Analysis Library
- pandas.DataFrame — pandas 0.20.1 documentation
- pandas-dev/pandas: Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
- Pandas - Wikipedia
- pandas (software) - Wikipedia
- Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編 - Qiita
- 10分でPandasを学ぶ - Qiita
- Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
- Python pandas データのイテレーションと関数適用、pipe - StatsFragments
- 3.2. Sympy : Python での代数計算 — Scipy lecture notes
- christiangoltz/shaape: Shaape is an ascii art to image converter designed to be used with asciidoc.
- PyPIに悪意のあるパッケージがアップロードされていた | スラド
- Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと
WSGI
- Web Server Gateway Interface - Wikipedia
- meinheld 0.6.1 : Python Package Index
- Meinheld
- mopemope/meinheld: meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
- meinheld + WebSocket + mongodb しようとした時エラーが出る - Qiita
Selenium
- Pythonでスクレイピング(Selenium) - 自分基準
- Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
- Selenium でサポートされているプラットフォーム
MicroPython
- MicroPython - Python for microcontrollers
- micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
- Micro Python で組み込み Python
- micropythonを始めよう(ESP8266編) - かいしゃぐらし!
- Overview — MicroPython 1.8.7 documentation
- micropython/micropython-unicorn: MicroPython on Unicorn
Python AST
- 32.2. ast — 抽象構文木 — Python 3.5.2 ドキュメント
- Python の ast モジュール入門 (抽象構文木を辿る) - Qiita
- Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて - CUBE SUGAR CONTAINER
- Python とマクロ、インポートフックと抽象構文木 - forest book
- Python の ast モジュール入門 (NodeVisitor を使う) - Qiita
- Python: ast (Abstract Syntax Tree: 抽象構文木)... | CUBE SUGAR STORAGE
- 31.3 Python 抽象構文
- Python/AST作成を読む - Code Reading Wiki
- [Python] ast.literal_evalを使って文字列を評価する | aoshiman.org
最近の Python-dev
- DSAS開発者の部屋:最近の Python-dev (2017-01)
- DSAS開発者の部屋:最近の Python-dev (2017-02)
- DSAS開発者の部屋:最近のPython-dev (2017-05)
- DSAS開発者の部屋:最近のPython-dev(2017-06)
- DSAS開発者の部屋:最近のPython-dev(2017-09)
- DSAS開発者の部屋:最近のPython-dev(2018-01)
YAMAGUCHI::weblog
- Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog
- Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog
- wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
methaneのブログ
- Python を速くする取り組み - methaneのブログ
- Python と Ruby と typing - methaneのブログ
- Python 3.6 の(個人的に)注目の変更点 - methaneのブログ
- Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく - methaneのブログ
blog
- 本の虫: Pythonのpymothoaが興味深い
- python3.3からparseまわりでなんか変わったのかな - Gentoo metalog
- pip 9.1 から msgpack が使われるようです - methaneのブログ
- Python の正規表現で IGNORECASE するときは気をつけよう - methaneのブログ
- Pythonのマルチスレッドで気を付けるべきこと | 凡人のブログ
- pandas DataFrameを省メモリにpickleする - ABEJA Tech Blog
- The History of Python.jp
- AWS LambdaがPython3.6に対応したのでpyenvとpyenv-virtualenvで環境構築してみた | Developers.IO
- PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
- Pythonの環境構築を自分なりに整理してみる – Aki Ariga – Medium
- Virtualenv vs. Pyenv - Sho Shimauchi | Tableau Public
- Flask を使ったプロジェクトひな形
- DSAS開発者の部屋:Pythonアプリの起動を高速化する
- リスト内包のひみつ - atsuoishimoto's diary
- PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
- Python 3でpopcountを計算する - にせねこメモ
- はじめてのにき(2017-11-08)
- はじめてのにき(2018-06-26)
- 【Google Colab】Python環境の使い方(無料でGPU付き) | アルゴリズム雑記
- Pythonの順序付き辞書OrderedDictの使い方 | note.nkmk.me
- JVM上で動くPython 3処理系「cafebabepy」の仕組みと実装 Pythonの深くて美しい言語仕様 - ログミーTech(テック)
- cafebabepy PyCon JP 2018 - Speaker Deck
- Pythonを経由してC++のオブジェクトを扱う方法 - FPGA開発日記
OSDN
- 「Python 3.6」がリリース | OSDN Magazine
- 「Python 3.5」リリース、非同期プログラミング機能の強化や型ヒントの記述機能を導入 | OSDN Magazine
- Python向けのグラフィカルなシェル「IPython 5.3」リリース | OSDN Magazine
- Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
- 「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
- Pythonパッケージ管理ツール「Pip 10」リリース | OSDN Magazine
- QtのPythonバインディング「Qt for Python」、初の公式リリース | OSDN Magazine
- 「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される | OSDN Magazine
- Python考案者のGuido van Rossum氏がPythonに関する意思決定から引退することを表明 | OSDN Magazine
- 「Python 3.8」リリース、新たに代入式を導入 | OSDN Magazine
- Pythonがリリーススケジュールを変更、「Python 3.9」より毎年10月にメジャーリリース公開 | OSDN Magazine
GitHub
SigThief
- SigThief: PE signature tool | Firmware Security
- secretsquirrel/SigThief: Stealing Signatures and Making One Invalid Signature at a Time
- NumPy — NumPy
- numpy/numpy: Numpy main repository
- riolet/pol: Python one-liners: Awk-like one-liners for python
- Taku Kudoさんのツイート: "長いことpypy上に名前だけが予約されていた CLIFが公開されていた。 https://t.co/FmVt0fGYwq C++のPythonラッパをお気楽に作るやつです。SWIGとちがって公開したい関数をoptinするところが良い。 #ifdef SWIG しなくてよい。"
- google/clif: Wrapper generator foundation to wrap C++ for Python and other languages using LLVM.
- google/skylark: Skylark in Go: the Skylark configuration language, implemented in Go
- Overview — skylark 0.9.0 documentation
- hit9/skylark: No longer maintained. A micro python orm for mysql and sqlite3.
- mjpost/sacreBLEU: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons
Wikipedia
- IDLE (Python) - Wikipedia
- オフサイドルール - Wikipedia
Qiita
- Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita
- Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
- 闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
- Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita
- Anaconda で Python 環境をインストールする - Qiita
- リスト内包表記の活用と悪用 - Qiita
- Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
- pythonでローカルwebサーバを立ち上げる - Qiita
- Pipenvでnpm-scriptsみたいにPipfileへコマンドを書く - Qiita
Twitter
その他
- Hajime Moritaさんのツイート: "コンパイラやIDEががんばってくれない言語はライブラリ作る人が苦労するしかない気がする。しかしPythonはtype hintingいれてPyCharmをつかうとあら不思議、すっかりJavaみたいになります。JetBrainsやばい。彼らのIDEはぜんぶJava界の陰謀。"
- Tsuyoshi Mishinaさんのツイート: "C++で実装したライブラリからCリンケージ関数をエクスポート→ctypesでラップに初挑戦。ネイティブコードの高速さとPythonの豊富なデータ解析機能の良いとこ取り。os.getpid()でカーネルのプロセスIDを取得すれば、VSのデバッガにアタッチも可能。これは強力です。 https://t.co/UW3AZyQlRn"
- Manabu Terada@CMScomさんのツイート: "Pyenvはやめよう。Python標準の venv を使ったほうが良いよ。 #PyNyumon 参考はこちら https://t.co/Z9kKadEPNE"
- INADA Naokiさんのツイート: "念のため言っておくと、pipenvはpipfileとvenvを組み合わせて便利にするツールで、pipfile(requirementsやlockの新フォーマット)はpypaが開発してます。 https://t.co/0w0yTr4tkm"
- Kengo Sawatsuさんのツイート: "@shirouzu 僕も最初「えー結局win32をctypesシなくちゃいけないの?学習メンドクサ!」ってなりましたが、pywin32で殆ど呼び出せるので、そちらを検討したらどうでしょうか? https://t.co/m0rQg1v2rH win32file.GetDriveType("e:\")… https://t.co/W0p2WMX7jd"
- win32com - PyWin32(Python for Windows extensions) - 愚鈍人
- tomo🐧さんのツイート: "__matmul__ が Python 3.5 で導入されたのってあんまり有名じゃないのな https://t.co/I2qm7MlGcX"
- What’s New In Python 3.5 — Python 3.6.4 ドキュメント
- Atsuo Ishimotoさんのツイート: "よく勘違いしてる人がいるが、range()が返すのはイテレータでもジェネレータでもないから注意するんだ。… "
- Kazuho Okuさんのツイート: "AST変わらなくても変数名変えたら動作変わる「可能性」はあるでしょ。例外のメッセージだって変わるわけだし。テストがめんどくさい場合の線引きとしては妥当だと思う / “20 万行超のコードベースをテストせずにリファクタリングリリー…” https://t.co/G6YswLHPFv"
- Takeshi ITOHさんのツイート: "式を組み立ててevalするのも影響ありますね。… "
@fadis_
- Fadisさんのツイート: "Python-3.7.0からdata classes(PEP 557)がサポートされる。dataclass指定付きで作成されたクラスは含まれているメンバとその初期値を列挙するだけで__init__と__repr__と各種比較演算と__hash__が暗黙に定義される。https://t.co/PNNYmOv8bd"
- Fadisさんのツイート: "A-Zで分けて分散しない案件といえばこれを思い出すんだけど、今のpypiは、パッケージ名じゃなくて何かのハッシュでディレクトリ分けるようになってる https://t.co/4gv6Uu54z9"
- Fadisさんのツイート: "Pythonに、式の中で右辺値に名前をつける文法が提案されていて、でも「その名前を=の左辺にもって来たら何が起こるんだ!!」ってなってPythonガチ勢達が溢れ出るカオスを抑え込むのに奔走してるっぽい"
- Fadisさんのツイート: "PEP 572 -- Syntax for Statement-Local Name Bindings https://t.co/3ADdHHX4pT"
- Fadisさんのツイート: "Python 3.7がリリースされた。Python 3.7ではpdbのimport無しでデバッガに落とせる組み込み関数breakpoint()、Cの構造体のように使われるクラスをより簡単に作れるようにするdataclass、コルーチンローカルな変数を作るContextVar等の機能が追加される https://t.co/eLOQq9dSRb"
- Python Insider
@shirouzu
- SHIROUZU(白水啓章)さんのツイート: "Python3でsymlinkかどうかの判定関数(is_symlink)は存在するが、Junctionかどうかの判定関数はない様子。 (さらにリパースポイント全般の種別を知る方法が知りたいところ) ctypes等でAPI呼び出しするしかないのかな?"
- SHIROUZU(白水啓章)さんのツイート: "Windowsのstat_resultにはst_file_attributesメンバがあり、os.stat().st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT などとすれば、リパースポイントかどうかの判定が可能。 https://t.co/JeE4pE4N0k"
- SHIROUZU(白水啓章)さんのツイート: "この方法だとJunction判定は可能だが、symlinkファイルは解決後のstat値となるため(Junctionではそうならない不思議)、そちらも判定したい場合、is_symlinkは別途使うか、os.lstat()を別途発行する必要あり。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、Python1.5xは共通鍵周りが無いのも困ったが、それ以上にunicodeどころかSJIS/EUCですら変換ライブラリが無かった。 で、kconvライブラリの利用が殆ど唯一の選択肢だったが、GPL縛りありという状態と。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "こんなPython1.xの歴史を経ていると、Python2.2-2.4辺りで入った、unicodeおよびcjkcodecs周りは非常な福音だった…が、Python3.xの文字列=UCS-4統一はそれやりすぎだろ感(笑) 寄せるなら、utf-8統一の方がうれしかったな…どうせIVSとかあって1つの器に1文字情報が入り切るわけでもないし。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CythonとPyPy比較をしているページをいくつか見てみたが、素のPythonのままだとPyPy優勢が多く、cdefや引数型指定を多用するとCythonが圧勝する例が多い印象。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "くだんのブログでは、「取り下げた修正(AST が変化する修正)」に「変数名の typo 修正」を入れているような。 Pythonだと、ローカル変数も変数名がバイトコードに残るわけで。… "
- 鯉江さんのツイート: "lexical scopeならローカル変数名の変更はほかの名前を隠してしまわないならテスト不要になるべきところASTダンプ単純比較だと擬陽性になるが、そもそもpythonはバイトコードが違ってしまうから影響がないとは言えないということでしょうか? ところでローカル変数名って例外に影響あるんでしょうか?… https://t.co/2QrdIjgX8I"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Pythonの場合、変数は変数名をキーとして、関数辞書→モジュール辞書→グローバル辞書、と実行時にフォールバックして探索しますよね。 従い名前が変わると挙動が変わるのは普通にありうる話で、ASTも(トポロジは変化せずとも)変数名を記述したリーフ内容が変わって当然かなと。… https://t.co/lNoUIwocwd"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "んなこたない。 ---- 「入出力のみを行うスレッド(ネットワークI/OやディスクI/Oなど)であれば、GILの競合を招く」 https://t.co/El8xAy3Xir"
- なぜPythonはこんなにも遅いのか? | POSTD
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワーク等の入出力がないなら、GILの競合を招く、が正解。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "syscall中はGILは外れていたはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名付きexeが SmartScreen にブロックされなくなったことを確認。 次回のリリースから、exeリリースに変更する予定。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「任意の整数列をn次方程式に変換する、というお題をnumpyで解いて、numpyの使い方を少し訓練…というか、ほぼ polyfit を呼ぶだけだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「内部でフーリエ級数使って解いているのかな?(ぜんぜん知らない)」 / Twitter
- 404 Blog Not Found:宴会ネタ - 揚げ足取り数列
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「普通に最小二乗法だった。 https://t.co/8JDhKYNc4k」 / Twitter
- 非線形最小二乗法 - Wikipedia
@shibu_jp
- 渋川よしきさんのツイート: "macユーザーがpyenvを使いたがるの、どうもHomebrewが複数バージョンのPythonをインストールできなくなって、それの回避でpyenvを使う流れっぽい。ダメなパッケージマネージャのしわ寄せをこっちに投げてくるな、という話っぽい。MacPorts使ってたから知らんかった"
- 渋川よしきさんのツイート: "Pythonは動的型付け言語だって言われるけど、引数の数とかのチェックとか厳しいし、JavaScriptと比べると硬い言語だなって思う。プログラミング言語の動的、静的ってデジタルじゃなくて、アナログ値だよね。"
- 渋川よしきさんのツイート: "例えば、Pythonでウェブサービス作っているとして、Djangoの使い方だけじゃなくて、HTTPの仕組みを知る(1つ下のレイヤー)と、メンテしやすいソフトウェア構造(1つ上のレイヤー)を知るのは大事だと思う。そうやって1つずつ広げるのは大事。"
- 渋川よしきさんのツイート: "Pythonの特殊メソッドの方式。ライブラリからすると、後方互換性が崩れないというのはすごい。… "
- 渋川よしきさんのツイート: "mypyで型をばっちりつけるPythonプログラミングをやってみているけど、pep8の文字数制限が3倍ぐらい厳しく感じる。"
- 渋川よしきさんのツイート: "Goのテスト哲学は「うん、なるほど」と思うのだけど、PythonやるとassertEqual便利って思ってしまう。"
@taku910
- Taku Kudoさんのツイート: "python の sdist と wheel のパッケージングの挙動が違ってて死ねる。"
- Taku Kudoさんのツイート: "Pythonの闇を見た。C++11/Windows/Python2.7という組み合わせは無理っぽい。 https://t.co/hZRXGXqmVX"
- Taku Kudoさんのツイート: "manylinux にはホント苦労させられたけど (cmake のインストール、腐った pthread_once の自作など)、目的のためなら多少汚くてもゴリ押しするスタンスは評価しないと。互換性が壊れまくる物をリリースしたり、そもそもバイナリパッケージがない状況にくらべれば、ユーザに対するメリットは大きい。"
- pypa/manylinux: Python wheels that work on any linux (almost)
- Taku Kudoさんのツイート: "FYIですが、manylinux は docker 上で作るのが正解です。実際に使っているスクリプトがあるので参考になれば。travis 上でも動きます。 https://t.co/K7cCtyUtAT"
- Taku Kudoさんのツイート: "CIしてんのというツッコミは置いといて、「ソースコードを変更する」にC拡張が含まれるとNGなような。普通にASTがいっしょで出力が異なるコード作れる。 https://t.co/HEASwoZf1C"
- 20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog
@ncaq
- エヌユルさんのツイート: "リフレクションがあるから動作変わる可能性はあるのでは / “「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよ…” https://t.co/Z57ERS2o6b"
- 「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよねって記事なのに伝わってなくて笑った - bkiosのコメント / はてなブックマーク
- エヌユルさんのツイート: "ASTのdiffがGitHubのpull requestにCI的に出てきたら有用っぽい / “20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog” https://t.co/8Cc76FS8uF"
- The Python Graph Gallery – Visualizing data – with Python
- Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
- Python.jp SlackからDiscordへ - atsuoishimoto's diary
- Python.jp Discordサーバ - python.jp
- Python 言語リファレンス — Python 3.6.5 ドキュメント
- Python - pythonのvar++とvar=var+1で挙動が異なるのはなぜ(151179)|teratail
- セイウチ演算子を導入した「Python 3.8.0」がリリース ~“Microsoft Store”からも入手可能 - 窓の杜
Jupyter
- Project Jupyter | Home
- Project Jupyter | Install
- Installing Jupyter Notebook — Jupyter Documentation 4.1.1 alpha documentation
Qiita
- データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
- Jupyterインストール - Qiita
- Jupyter Notebookでブログ書きたい - Qiita
- Jupyter事始め - Qiita
Twitter
- 七誌さんのツイート: "プラットフォーム依存GUIを書きたくない→Web化?→ローカルだけで動かしたい→Electron?→配布物が大きくなるのでブラウザは既存のものを流用したい→Webサーバーとして動くローカルアプリ と考えて、Jupyter Notebookがこの形態だと気付いた。現実味はある。"
- 酔漢@ニャー将棋さんのツイート: "昼休みの間、Jupyterで遊んでいた。理系世界の勉強方法は確実に変わるぞ。 https://t.co/7psy5eAQ5s"
- 七誌さんのツイート: "以前、電卓アプリではなくPythonを電卓代わりにすれば、ログも記録できるというような説明をしていた。しかしIDLEだとちょっと説得力がなくて、ほとんど定着しなかった。Jupyter Notebookだったらもっと説得力があったのだろうけど、当時は存在を知らなかった…"
- S.Asa♥さんのツイート: "データ可視化できるploty使うとJupyter上でオシャレグラフがすぐできる。チュートリアルを一通りやったけど、すごく直感的でわかりやすい。ラベルにLaTexも使えるようなので、物理計算の可視化とかにすごくよさげ! https://t.co/56vdUsgPRw https://t.co/R0RJ9wBgVx"
- Plotly
- CodeXP/新・どう書く.org管理人さんのツイート: "Jupyterの内部実装を追うのって結構勉強になるのでお勧め。traitletsを用いることによる柔軟性の高い起動方法や、1プロセスで同時に高負荷なセッションを捌けるTornadoのnon blocking I/Oの有難み、Zero MQによる軽量なキュー処理など。自前アプリへの組み込み方法も含めて、いつか発表したいなー。"
- piqcyさんのツイート: "Jupyter Notebookからスクリプトを抽出してPython/R/Juliaファイルにする、さらにファイルを修正してJupyterに戻す、ということを可能にするツール。これで、Jupyter上のスクリプトを好きなエディタで編集して反映させることができる。 https://t.co/wWdtDkAkx6"
- mwouts/jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts
- 私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
- Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート | WEB ARCH LABO
- ゼロからはじめるPython(2) Jupyterノートブックで気軽にPythonをこね回そう | マイナビニュース
- AnacondaとJupyter NotebookでPythonの練習が捗った話 | フクロウのブログ|株式会社フクロウ|株式会社フクロウ
- Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法
- データ分析の必需品「Jupyter Notebook」の魅力とは - DeepAge
- Jupyter Notebook を使ってみよう – Python でデータサイエンス
- Jupyter Notebookを利用してお手軽分析環境構築 | DATUM STUDIO 株式会社
- Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
- 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
- Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES
- Jupyter Notebookの拡張機能を使ってみる - はしくれエンジニアもどきのメモ
- danielfrg/pelican-ipynb: Pelican plugin for blogging with Jupyter/IPython Notebooks
- Jupyter (IPython Notebook) で書いたものをブログで共有したくて - ニートに片足突っ込んでいるブログ
- オレオレJupyter運用法 ~常にJupyter Notebookを開きつつ任意のディレクトリをターミナルから開く · Wolftail Bounds
- Colaboratory - Google 検索
- Downloads | Anaconda
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
- Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
- 「Python」ディストリビューション「Anaconda」に「Visual Studio Code」が追加 - 窓の杜
- データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE
- Hello, Colaboratory - Colaboratory
- pythonとseleniumを使ってウェブスクレイピングをしてみた - Qiita
- Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
- Pythonでsqlite - Qiita
- Pythonスクレイピングメモ - Qiita
- PythonとBeautiful Soupでスクレイピング - Qiita
- PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
- Pythonでスクレイピング(Selenium) - 自分基準
- Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
- Selenium でサポートされているプラットフォーム
- スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 | トップコート国際法律事務所
- takuya-aさんのツイート: "なるほどー、アルゴリズム的にも面白いし、Wikipedia使ったデータ処理するときに役立ちそう / 1件のコメント https://t.co/H0NqHvoMBY “トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.” https://t.co/tAasAbblqA"
- トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
- katsugeneration/ja-wiki-category: Japanese Wikipedia Category Data Mining Repository
- Python統合開発環境「PyCharm 2019.2.1」リリース | OSDN Magazine
Wikipedia
- コーパス - Wikipedia
- コーパス言語学 - Wikipedia
- 言語資源 - Wikipedia
- 計算言語学 - Wikipedia
- ツリーバンク - Wikipedia
- 自然言語処理 - Wikipedia
- 国立国語研究所 - Wikipedia
Qiita
- さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
- さだまさし N-gram コーパスを用いてサジェスト機能を作ってみる - Qiita
Twitter
SentencePiece
- takuya-aさんはTwitterを使っています: 「いまさらだけどSentencePieceの論文読んだ。ユニグラム言語モデルでエントロピー的に最適なサブワード集合を獲得するアルゴリズムがおもしろい。」 / Twitter
- takuya-aさんはTwitterを使っています: 「1. 十分に大きい語彙集合を用意し、サブワードの最初の候補とする。コーパスに現れるすべての文字集合に加え、頻度の高い部分文字列をコーパスから計算する。後者はコーパスからSuffix Arrayを構築することで線形時間で計算できる。 2. EMアルゴリズムでサブワード分割を最適化(続く)」 / Twitter
- takuya-aさんはTwitterを使っています: 「3. 各サブワードに対して、それを抜いたときに下がる尤度の量を計算 4. それらをソートして、下位n%の語彙をサブワードから削除(ただし1字のものは残す) 5. 2-4を与えられた語彙数になるまで繰り返す」 / Twitter
- takuya-aさんはTwitterを使っています: 「論文へのリンクはこちら https://t.co/C0fTDqGcXa」 / Twitter
- [1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
- Taku KudoさんはTwitterを使っています 「tensorflow-text が sentencepiece を公式にとりこんでくれたので、tensorflow 2.2.0を最後に tf_sentencepiece を廃止できそう😀 https://t.co/s5fvnUbwWs」 / Twitter
- Taku KudoさんはTwitterを使っています 「tf.text sentencepiece のAPIは eager 動作に特化して、こういっちゃ見も蓋もないが sentencepiece の Python wrapper だけで再実装できる? TF1時代の計算グラフのノードの一部としてのAPIであれば TF ops の意味があったけど、そもそもTF1古いからいらないのだろう。」 / Twitter
- Taku KudoさんはTwitterを使っています 「結局一日仕事。tf.2.2.0 対応させて、新しいリリース出してて、issue数を半減。https://t.co/YoKd2xwFh0」 / Twitter
- Issues · google/sentencepiece
- Taku KudoさんはTwitterを使っています 「sentencepiece の byte_fallback は、未知文字を UTF-8 byte sequence にバラす大技で、未知語が完全になくなります。意外とうまくいくようで、NMTで使うとレアな文字(絵文字など)はコピーするといった動作が学習されるようです。」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepiece が iterable object から直接学習できるようになったので、https://t.co/NQ2XO5LQ7v との親和性が格段に上がったはず。適当なサンプルコードをそのうち書きます」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepieceに機能追加要求がぼちぼちくるけど、その機能がなぜ必要なのかを書いてほしいし、聞くことにしている。大抵の場合、既存機能+αで workaround できるし、ディスカッションを通じて万人に有益かどうか判断してからでも遅くない。mecabもそんな感じであまり機能過多にはなってない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepieceの引用数がmecabのそれを抜いたようです😀 https://t.co/1JnAvtWbRH」 / Twitter
- Taku Kudo - Google Scholar
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「なんか毎年この時期に SentencePiece は手法名でもアルゴリズム名でもないぞというコメントを書いているので、何度でも工藤さんのコレを思い出したい。」 / Twitter
- Taku KudoさんはTwitterを使っています 「@mamoruk SentencePiece のアルゴリズムというと曖昧で、デフォルトは Unigram 言語モデル、それとは別にBPEをサポートしています。翻訳精度で比較すると二つはあまり変わりませんが、前者は確率的サンプリングが可能でACLの話に続きます。https://t.co/wfP4m5LBWv」 / Twitter
- Taku Kudoさんのツイート: "https://t.co/C38UPC5Kz1 大規模な字幕翻訳コーパス (おそらく OpenSubttile?) せっかくなので、文脈情報がほしい。対話と翻訳をからめた研究が進むかも。"
- JESC
- asciianさんのツイート: "青空文庫全体のデータがGitHubからダウンロード可能になっている!これはテキストマイニングとかで最高なのではないだろうか。https://t.co/mtXrY4WKwL"
- aozorabunko/aozorabunko
- UniDic広報担当さんのツイート: "実は、この世には、https://t.co/v7HHtrgm3A というツールがございまして…… https://t.co/09Jl2PZvsK https://t.co/XjJBLaEgpU"
- ChaKi プロジェクト日本語トップページ - OSDN
- Taku Kudoさんのツイート: "日本語日常会話コーパス届いた (個人契約) ちょろっと見たがこれは凄い。ボキャ貧ですまぬ。"
- hiroshiさんはTwitterを使っています: 「Sudachi辞書に同期した同義語辞書がリリースされています。17,051グループ・46,000語が収められています。 https://t.co/RWOApQHKFp https://t.co/sx5WJk7ziC」 / Twitter
- SudachiDict/synonyms.md at develop · WorksApplications/SudachiDict
- SudachiDict/synonyms.txt at develop · WorksApplications/SudachiDict
- hiroshiさんはTwitterを使っています: 「リリースおめでとうございます㊗️ 自然言語処理はもちろん検索用同義語辞書としても利用価値の高い、商用利用可能な貴重な言語資源ですね。形態素辞書と同期して同義語辞書が今後も拡張整備されていくならば、SudachiはElasticsearchをはじめ多くの検索エンジンの標準日本語NLPになっていくでしょう🎊🇯🇵」 / Twitter
- Sorami HisamotoさんはTwitterを使っています: 「ワークス徳島NLPから、 同義語辞書をリリースしました 🎉 https://t.co/RS1Mt7WPWe 専門家による高品質な言語資源です。Sudachi辞書と同様にApache 2.0。 現在1.7万グループ、4.6万語収録。語彙辞書と同様、継続的に拡充していく予定です!Elasticsearchへの接続も開発中。 https://t.co/btG8mmgyuZ」 / Twitter
- hiroshiさんはTwitterを使っています: 「まずは文化庁公式見解を読んでおくのが良いと思います。 https://t.co/IrlSgDp64P 文化庁「著作権法の一部を改正する法律(平成30年改正)について(解説)」 著作物に表現された思想又は感情の享受を目的としない利用(新法第30条の4関係) https://t.co/0tzkN96zER」 / Twitter
- r1406693_11.pdf
- Yuta Nakamura 🌧️🐠🐠🐠さんはTwitterを使っています: 「著作物からのコーパスや訓練済み△△の作成・公開をするにあたって,NLPerの皆さんは法的な問題をどこで相談しているんだろう」 / Twitter
- hiroshiさんはTwitterを使っています: 「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合(以下「非享受目的」という。)には,その必要と認められる限度において,利用することができることとした。」 / Twitter
- hiroshiさんはTwitterを使っています: 「同条は,上に述べたように実質的に通常権利者の対価回収機会を損なわないものの,形式的には権利侵害となってしまう一定の行為を広く権利制限の対象とする趣旨で新たに規定を整備するものである。」 / Twitter
- hiroshiさんはTwitterを使っています: 「こちらの法律事務所の記事に具体的な解説があります。 https://t.co/zSTAx7ckn5 「著作物の本来的利用には該当せず、権利者の利益を通常害さないと評価できる行為類型」「モデル生成を行う他人のために学習用データセットを作成して不特定多数の第三者に販売したりWEB上で公開する行為」等々記載あり〼」 / Twitter
- 進化する機械学習パラダイス ~改正著作権法が日本のAI開発をさらに加速する~ | STORIA法律事務所
- じょじょんきさんはTwitterを使っています: 「Webクロールベースの870万の日英ペア文のコーパスを公開|[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus https://t.co/7icfPmN0YV」 / Twitter
- [1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus
- hiroshiさんはTwitterを使っています 「日本語の学習済みWord Embeddingの比較評価をしている記事があるけど、複合辞と文節の区別がないのもしかり、評価方法も客観的でなくて残念。ワークス徳島研の論文に学ぶことは多くあるはず。」 / Twitter
- テキスト解析:ルビ振り - Yahoo!デベロッパーネットワーク
- 新辞林 - 言語と知能
- Googleが自然言語処理の弱点「言い換え」を克服するデータセットを公開 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「コーパス分析からみた、合理性を失いつつある現代の言説。1850年から2019年までのGoogle N-gramを分析すると、近代以降、感情に訴える文章は減り続けていた。しかしこの傾向は1980年から増加に転じており、2007年以降は特に顕著である。同時に事実ベースの言説は減っている。 https://t.co/exhv1pV1Bv」 / Twitter
- The rise and fall of rationality in language | PNAS
headless
Qiita
- WindowsでPuppeteerを使ってヘッドレスChromeを操作するための環境構築手順 - Qiita
- 動的に生成されたページをpuppeteerでスクレイピングする - Qiita
- --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
- ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
- PuppeteerでヘッドレスChromeを操ってみる - Qiita
- puppeteerでスクレイピング - Qiita
- Docker で Puppeteer 動かして Slack にスクショを通知してみた · tail -f /var/log/ryysud.log
- Headless Chrome をさわってみた | CYOKODOG
- ヘッドレス Chrome ことはじめ | Web | Google Developers
- Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発 - Publickey
- Headless Chromeでデザイン変更履歴を追える魚拓を作ってみた - pixiv inside
- PuppeteerによるヘッドレスChromeの使い方 evaluate | iwb.jp
- [puppeteer] ヘッドレスブラウザの操作でスクレイピング、クローリング │ Web備忘録
- Puppeteerでできることまとめ | GMOアドパートナーズグループ TECH BLOG byGMO
- Puppeteer | Tools for Web Developers | Google Developers
- Puppeteer でのヘッドレス Chrome の使用 | Node.js 用 App Engine スタンダード環境に関するドキュメント | Google Cloud
- E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
- [Node.js] puppeteerでスクレイピングしてみる - 筋肉エンジニアの備忘録
- Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ
Universal Dependencies
Universal Dependencies
- Universal Dependencies
- 日本語係り受け解析エンジンとしてのGiNZA・StanfordNLP・UDPipe | yasuokaの日記 | スラド
- Universal Dependenciesにおける「二重主語」の問題 | yasuokaの日記 | スラド
- Universal Dependencies 2.4がリリース | yasuokaの日記 | スラド
- Universal Dependencies と類型論 - murawaki の雑記
- 「語」とはなにか・再考 - murawaki の雑記
- 研究紹介
- 松田寛 - 短単位品詞の用法曖昧性解決と依存関係ラベリングの同時学習
- CiNii 論文 - 日本語Universal Dependenciesに基づく構文解析の検証 (言語理解とコミュニケーション)
- CiNii 論文 - 日本語Universal Dependenciesに基づく構文解析の検証 (思考と言語)
- Universal Dependencies 日本語コーパス
- P5-8.pdf
- E3-4.pdf
- im2017.pdf
- 「毎日、友だちといっしょに校庭を走る。」の「毎日、」は、どこに係っているのか | yasuokaの日記 | スラド
- 「象は鼻が長い」の「象は」は、どこに係っているのか | yasuokaの日記 | スラド
- UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
- Universal Dependencies 2.5がリリース | yasuokaの日記 | スラド
- Universal DependenciesとStanford Typed Dependenciesと矢印の向き | yasuokaの日記 | スラド
- 日本語Universal Dependenciesにおける名詞句の並列はconjの夢を見るか | yasuokaの日記 | スラド
- Universal Dependencies 日本語コーパス
- 形態素解析モジュールfugashiが「軽量版UniDic」を伴ってリリース | yasuokaの日記 | スラド
- 『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をCamphr-KNPで解いてみる | yasuokaの日記 | スラド
- 日本語Universal Dependenciesで二文節間の「係り受け」をエミュレートするには | yasuokaの日記 | スラド
- UD_Japanese-GSD (v2.6向けdev)プレリリースに関して | yasuokaの日記 | スラド
- Universal Dependencies 2.6がリリース | yasuokaの日記 | スラド
- 「申し訳ないが私は興味ない」の「ない」は同じなのか違うのか | yasuokaの日記 | スラド
- 「近いとしても」と「親としても」では単語間の係り受け構造は異なるのか | yasuokaの日記 | スラド
spaCy と GiNZA
- hiroshiさんはTwitterを使っています: 「本日のUniversal Dependencies Symposium@国立国語研究所での発表資料です。 「GiNZAで始める日本語依存構造解析〜CaboCha, UDPipe, Stanford NLPとの比較」 https://t.co/T3mwQN6Lep」 / Twitter
- GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
- リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開 | Recruit - リクルートグループ
- NLP2019 松田寛 - GiNZA
- [“GiNZA - Japanese NLP Library”] | [“Universal Dependenciesに基づくオープンソース日本語NLPライブラリ”]
- megagonlabs/ginza: A Japanese NLP Library using spaCy as framework based on Universal Dependencies
- hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZAとそのベースとなるspaCyについての秀逸な解説です。Text Classificationまで詳細に説明されています。spaCyの内部構造を知る上でとても貴重な情報源だと思います。 オージス総研 はじめての自然言語処理 - 第4回 spaCy/GiNZA を用いた自然言語処理 https://t.co/uY4Yq9bnib」 / Twitter
- はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
- spaCyと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZAで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZA v2.0.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZA v2.2.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
- hiroshiさんはTwitterを使っています: 「今後ginzaコマンドに並列実行オプションを追加するときには、形態素解析レイヤだけの高速動作モードも追加しようかと。使う側はとにかくシンプルな記述で最大速度が得られれば満足だと思うので。」 / Twitter
- hiroshiさんはTwitterを使っています: 「GiNZAは依存構造(or係り受け)解析器ですが、形態素解析器と勘違いされがちなので、GiNZAと同時にインストールされる高速な形態素解析器を、 $ sudachipy で実行するようREADMEで案内しようと思います。」 / Twitter
- 多言語解析ツールspaCy 2.2.2がリリース | yasuokaの日記 | スラド
- GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
- hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZA v3.0.0 (Benitoite)をリリースしました。https://t.co/CDumSLJb6o pip install ginza でインストールが完了。 形態素解析専用のginzameコマンドを追加。 UD_Japanese-BCCWJ+GSK2014-Aでparser+nerをマルチタスク学習することで精度もかなり改善しています。 ぜひお試しを!」 / Twitter
- hiroshiさんはTwitterを使っています: 「pipenvを含む一部の環境で形態素辞書が読み込めない問題に対処したGiNZA v3.1.0をリリースしました。 pip install -U ginza で最新版に更新し、ginzaコマンドを実行した際に ValueError: cannot mmap an empty file のエラー表示で異常終了する場合は、 ginza -i で形態素辞書を初期化してください。 https://t.co/lDzSoEASgb」 / Twitter
- GiNZA v3.1.0で読む「ライトの兄弟オスカーはコミックブック作家だ。」 | yasuokaの日記 | スラド
- ginzaとnetworkxを使って係り受けパスで文をインデクシング - ナード戦隊データマン
- 係り受けパスによるインデクシングを日英に一般化 - ナード戦隊データマン
- 何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話 - Qiita
- hiroshiさんはTwitterを使っています 「GiNZA v3で強化された固有表現抽出をマスキングに応用した記事です。独自コーパスでしっかり定性評価されています。spaCyのCNNモデルは追加学習も可能です。一度コーパスをGiNZAで解析してENEタグを付与し、それらと競合しない新たな抽出対象をタグ付けしたコーパスでNERを追加学習するのがよいかと。 https://t.co/S5UQs3FDAQ」 / Twitter
- 株式会社AI ShiftさんはTwitterを使っています 「*TECH BLOG更新* 固有表現抽出を用いて個人情報のマスキングができるかを検証した記事の続編です。今回はGiNZAを用いた検証を行いました。 https://t.co/nqvMDXeOnx」 / Twitter
- GiNZAによるテキストデータからの個人情報の抽出 | 株式会社AI Shift
- hiroshiさんはTwitterを使っています 「GiNZA v3の固有表現抽出はENE(関根の拡張固有表現階層)体系で学習しています。 https://t.co/H9HuzZHCBH https://t.co/Fk1DhaWAOa そしてpipelineの後段でENEからspaCy標準のOntoNoted5固有表現ラベルを独自に拡張した体系に変換しています。 追加学習時はENE体系を考慮したタグ付けを行ってください。」 / Twitter
- 関根の拡張固有表現階層 -7.1.1-
- liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html
- spaCy上の係り受け可視化ツールdeplacy | yasuokaの日記 | スラド
- CamphrがKNPの係り受け解析をサポート | yasuokaの日記 | スラド
- 「吾輩はここで始めて人間というものを見た」の文節係り受けはどうなっているか | yasuokaの日記 | スラド
- 『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をGiNZAで解いてみる | yasuokaの日記 | スラド
Stanza(StanfordNLP)
- Masato Hagiwara (萩原正人)さんのツイート: "スタンフォード大のNLPグループから、ニューラルで分かち書き、品詞タグ付け、係り受け解析ができる Python ネイティブのライブラリが登場。Universal Dependencies 準拠、53言語に対応。前処理の新たなスタンダードになりそう。https://t.co/Qu9fzztkNH"
- StanfordNLP | StanfordNLP
- 「令和」の係り受け解析エンジン(仮)としてのStanfordNLP | yasuokaの日記 | スラド
- StanfordNLPで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- CoNLL-U Format
- 64ビットCygwinにStanfordNLPをインストール | yasuokaの日記 | スラド
- piqcyさんはTwitterを使っています 「stanfordnlpが進化したStanzaが公開。spaCyのように自然言語の各種処理(単語分割・依存構造解析・固有表現認識etc)をパイプラインで実行可能。PyTorchで構築されたニューラルベースのモデルで解析を行う。多言語対応がうれしい(日本語含む66言語)。ライセンスはApache2だが内包するCoreNLPはGPLで注意 https://t.co/OAawRDkhpE」 / Twitter
- piqcyさんはTwitterを使っています 「なおspaCyからStanzaを利用することも可能 https://t.co/3OHYIIJKym」 / Twitter
- 多言語文法解析ツールStanzaリリース | yasuokaの日記 | スラド
- Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
- Re: Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
- UD-Kanbun・spacy-stanza・spacy-udpipeの自動文切り機能をOFFにするには | yasuokaの日記 | スラド
- 「New York」と「Hà Nội」と「新大阪」は1語なのか2語なのか | yasuokaの日記 | スラド
UDPipe
- 「令和」の係り受け解析エンジン(仮)としてのUDPipe | yasuokaの日記 | スラド
- UDPipe APIのpython3ラッパー | yasuokaの日記 | スラド
- Web茶まめとUDPipe APIの両方にアクセスできるpythonラッパー | yasuokaの日記 | スラド
- Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析 | yasuokaの日記 | スラド
- Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析の改良 | yasuokaの日記 | スラド
- 多言語文法解析ツールとしてのspacy-udpipe | yasuokaの日記 | スラド
unidic2ud
- 現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud | yasuokaの日記 | スラド
- unidic2udと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータ | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータと本物のCaboChaとの違い | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータをWindowsで動かすには | yasuokaの日記 | スラド
- UniDic2UDによる単語間の係り受けと二文節間の係り受け | yasuokaの日記 | スラド
- 日本語における単語間の係り受け解析 | yasuokaの日記 | スラド
- 多言語係り受け解析ツールとしてのUniDic2UD | yasuokaの日記 | スラド
- UniDic2UDにおける品詞間の対応 | yasuokaの日記 | スラド
- UniDic2UDとGiNZAで読む「難儀な難儀は難儀する」 | yasuokaの日記 | スラド
- 「港の見える丘」の「港」は「見える」の主語なのか | yasuokaの日記 | スラド
- 日本語の言語処理における「単語」長の問題 | yasuokaの日記 | スラド
- 動詞の連用形による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
- 接続助詞による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
NLP-Cube
- 「令和」の係り受け解析エンジン(仮)としてのNLP-Cube | yasuokaの日記 | スラド
- 日本語係り受け解析エンジンとしてのNLP-Cube | yasuokaの日記 | スラド
- NLP-Cubeで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- 64ビットCygwinにNLP-Cubeをインストール | yasuokaの日記 | スラド
COTOHA API
- COTOHA APIのUniversal Dependencies向けpythonラッパー | yasuokaの日記 | スラド
- COTOHA APIのUniversal Dependencies向けpython3ラッパー | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受けをCOTOHA APIで解析する | yasuokaの日記 | スラド
- COTOHA API
- Google ColaboratoryでCamphr-Udifyを使うには | yasuokaの日記 | スラド
- Google ColaboratoryでCamphr-Udifyの結果を可視化するには | yasuokaの日記 | スラド
- CygwinにSciPyをインストール | yasuokaの日記 | スラド
Graphviz
- 望遠鏡は「望遠」「鏡」なのか「望」「遠鏡」なのか | yasuokaの日記 | スラド
- 「望遠鏡で泳いでいる彼女を見た」の係り受け関係 | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphvizで可視化する | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphviz 2.38で可視化する | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- Re: 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- 「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- Re:「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
照応解析
- リーディングスキルテストは、何の「係り受け」をテストしているのか | yasuokaの日記 | スラド
- D5-2.pdf
- 照応解析 - Wikipedia
- _pdf
- ono_bthesis.pdf
- 照応・照応解析まとめ|直接照応・間接照応・外界照応・ゼロ照応 - アズメディア|広告とメディアを考える(@_danboooo_ )
- 照応解析
- 省略・照応解析
- ゼロ照応解析について - あしたからがんばる ―椀屋本舗
- CiNii 論文 - 外界照応および著者・読者表現を考慮した日本語ゼロ照応解析
- https://ipsj.ixsq.nii.ac.jp
談話構造解析
- 談話構造解析 DIA
- 奥村研究室ホームページ
- P3-15.pdf
- F6-2.pdf
- 談話構造 | Nishida Lab
- 自然言語処理18_31
- _pdf
- 談話構造理解(だんわこうぞうりかい)とは - コトバンク
- #3211. 統語と談話構造
- Open Resources - 東北大学 乾・鈴木研究室 / Communication Science Lab, Tohoku University
- コロナ社「文脈解析」本のレビュー - Qiita
- 公開ツール - NAIST Computational Linguistics
- 太田 博三 - 「コロナ社」「文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ 10)... | Facebook
述語項構造解析
- 英語形態論
- 述語項構造シソーラス (岡山大学竹内研)
- 自然言語処理21_333
- B4-5.pdf
- E1-1.pdf
- 日本語文章に対する述語項構造アノテーション仕様の考察
- 述語項構造解析 | Yuta Hayashibe
- nlp13.pdf
- 10-6-B3-4.pdf
- 述語項構造シソーラス | Takeuchi Lab
- 述語項構造のシソーラス分類と意味役割の設計について
- D4-3.pdf
- JCLWorkshop_No.7_18.pdf
- JCLWorkshop_No6_06.pdf
- 述語項構造解析のための格フレーム辞書構築の検討 - 長岡技術科学大学 自然言語処理研究室
- 研究会 - BCCWJへの述語項構造シソーラスの付与による意味役割の検討
- CiNii 論文 - 述語項構造シソーラスによる述語と名詞の構造化
- takeuchivthai.dvi
blog
- 形態素解析を行うだけのバッチをつくる - クックパッド開発者ブログ
- 速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説 - LegalForce Engineering Blog
- GiNZAと患者表現辞書を使って患者テキストの表記ゆれを吸収した意味構造検索を試した - エムスリーテックブログ
- GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
- 情報検索のための単語分割一貫性の定量的評価 - Yahoo! JAPANの研究開発 - ヤフー株式会社
- Sudachiを使った同義語辞書の拡充 | VISASQ TECH BLOG
- 速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説 - LegalForce Engineering Blog (1)
- AWS Lambda で形態素解析〜句を詠めば鐘が鳴るなりスッコココ〜 - estie inside blog
- MeCab互換な形態素解析器Vibratoの高速化技法 - LegalForce Engineering Blog
スラド
- Montague形式意味論とМельчук依存文法は、どちらが漢文の自動解析に向いているか | yasuokaの日記 | スラド
- Kyoto University Research Information Repository: 漢文の依存文法解析と返り点の関係について
- AIを用いた漢文の文法解析 | yasuokaの日記 | スラド
- Kyoto University Research Information Repository: 古典中国語(漢文)の形態素解析とその応用
- Kyoto University Research Information Repository: 四書を学んだMeCab+UDPipeはセンター試験の漢文を読めるのか
- Kyoto University Research Information Repository: Universal Dependenciesの拡張にもとづく古典中国語(漢文)の直接構成鎖解析の試み
- udkanbun · PyPI
- UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
- 直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
- 「駆け抜ける」と「走り切る」は複合動詞なのか動詞連続なのか | yasuokaの日記 | スラド
- 「着たくない服は着ない」の「ない」はcliticかaffixか | yasuokaの日記 | スラド
- 「知を致すは物に格るに在り」の「に」はcliticかaffixか | yasuokaの日記 | スラド
- 「うなぎを浜松に食べに行く」は係り受け解析できるのか | yasuokaの日記 | スラド
- 東ロボは何を係り受け解析していたのか | yasuokaの日記 | スラド
- 多言語係り受け解析ツールとしてのCamphr-Udify | yasuokaの日記 | スラド
- 64ビットCygwin向けAllenNLPインストーラ仮公開 | yasuokaの日記 | スラド
- WSL上のLinuxにKNPをインストールする | yasuokaの日記 | スラド
Wikipedia
- 構成素 - Wikipedia
- カテナ (言語学) - Wikipedia
- 依存文法 - Wikipedia
- ルシアン・テニエール - Wikipedia
- 統語論 - Wikipedia
- 補語 - Wikipedia
Zenn
- Go の形態素解析器を wasm で利用する
- Sudachi同義語辞書をElasticsearchで使う(暫定方法)
- 形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として
- 続・MeCabの分かち書きを並列処理で高速化する
Twitter
- Sorami HisamotoさんはTwitterを使っています 「ワークス徳島NLPでは日本語単語ベクトル「chiVe(チャイブ)」も公開しています! 本日 v1.1 をリリース。 国立国語研との共同研究、100億語規模コーパス「NWJC」、形態素解析器「Sudachi」の複数分割単位を併用、word2vec (Skip-gram) で学習。 https://t.co/Uf1Y0OgIZW #NLP2020sponsor #NLP2020」 / Twitter
- WorksApplications/chiVe: Japanese word embedding with Sudachi and NWJC
- Taishi IkedaさんはTwitterを使っています 「形態素解析器を比較するためのライブラリを公開しました! https://t.co/rvpebKewMw 日本語コーパスのダウンローダーと前処理機能を搭載しており、数行のコードで処理速度の比較、単語分割の比較、後段タスクでの精度比較が行えます。 またDockerでは、環境構築なしに9種類の解析器を比較できます! https://t.co/DhmbflEVqe」 / Twitter
- taishi-i/toiro: A comparison tool of Japanese tokenizers
- takuya-aさんはTwitterを使っています 「PMI を正規化する Normalized PMI (NPMI) を使ったフレーズ認識。そこそこうまくいくみたい / 他4件のコメント https://t.co/kA1iGpIdJU “mots quotidiens.” https://t.co/PBGw4wQIm6」 / Twitter
- [B! nlp] mots quotidiens.
- mots quotidiens.
- KampersandaさんはTwitterを使っています: 「MeCab互換で、より高速なRust製形態素解析器Vibratoをリリースしました!2倍以上の速度性能を記録しており、大規模なテキストデータをRustで高速に処理したい場合などにお使いいただけます。 https://t.co/e2oTTnBAd4 https://t.co/qVyWPqqnBD」 / Twitter
- daac-tools/vibrato: 🎤 vibrato: Viterbi-based accelerated tokenizer
- Haruhiko OkumuraさんはTwitterを使っています 「ということでオープンデータの定義についてまとめておいた→ https://t.co/NL8AkyLETy」 / Twitter
- オープンデータとは
- shirayuさんはTwitterを使っています 「日本語T5モデルを公開しました. トークナイザをByte-fallbackありで学習しているので,「未知語」が基本的に発生しません. 学習データにもよりはしますが,「鯯」(さっぱ)のような珍しい漢字が入力にあっても,上手く扱ってくれることが期待できます. https://t.co/lWPn0qFSzx」 / Twitter
- megagonlabs/t5-base-japanese-web · Hugging Face
- 水先案内人@江戸川さんはTwitterを使っています 「VaporettoのリポジトリにBenchmark用のコードを追加しました。各種Tokenizerの実行速度を計測比較できます。 https://t.co/EvNYZtSLI2」 / Twitter
- vaporetto/bench at main · legalforce-research/vaporetto
- WorksApplications/chikkar: Japanese synonym library
- Wayback Machine
- ワークスAP、形態素解析エンジン「Sudachi」の有料サポートを開始、構築と運用を支援 | IT Leaders
- stockmarkteam/ner-wikipedia-dataset: Wikipediaを用いた日本語の固有表現抽出データセット
- 情報学広場:情報処理学会電子図書館
- ステート・オブ・AI ガイドさんはTwitterを使っています: 「近年普及している単語埋め込み技術は、単語を「点」でしか表現できず、概念の広がり等を表現できません。 本記事では、単語を「箱」として表現する最新・強力な埋め込み手法「Box Embedding」を基礎から解説しました。 名古屋大学の塚越さん (@hpp_ricecake)による執筆です https://t.co/ogQebbjXvR」 / Twitter
- 単語を箱で表現!新たな埋め込み手法 Box Embedding を基礎から理解
情報幾何学
最小二乗法
- 1916-07.pdf
Twitter
- 解答略さんはTwitterを使っています 「情報幾何におけるAffine座標系は、関数の空間における良い座標系を上手く定義してるなぁと思ってる。例えば正規分布の場合 「なんでパラメタをμとσに取るの?2^μ+σ^3とμ/σではダメなの?」 という疑問に対し 「正規分布全体の空間における、確率構造に由来する接続と整合しないからダメ」 と論破できる」 / Twitter
- てらモス♋️さんはTwitterを使っています 「ここで確率測度の空間の構造と整合する正規分布のパラメータの組のとり方が実は二つ存在することが分かり...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「それぞれ二つの積 p(x)q(x)/\int p(x)q(x) dx, \int p(x-y) q(y) dy に対応する事が分かる...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「そしてカルマンフィルターはこの二つの積を交互にとる操作そのものだという導入を...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確率測度の空間、アフィンにしかならなくてしかも積が二つ入るので環にならないし結構不思議な形してるよね」 / Twitter
- てらモス♋️さんはTwitterを使っています 「一次元正規分布を指数型関数族として見ようと思うと、パラメータ二つあるので x -> (x, x^2) で無理やり二次元に持ち上げるけど、これのせいで二次元空間上で δ(y=x^2) 的な特異な測度になるので、測度論を軽く触っておかないと厳しい(ルベーグ測度とボレル測度の違いとか難しいやつは勿論要らない)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「と言う話を云々してるから chaos-da が全く進まないんだよ!」 / Twitter
- てらモス♋️さんはTwitterを使っています 「カルマンフィルターが遠い...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確か LETKF の誤差解析をやろうと思ってたはずなのになんでこんなところからやっているのか...」 / Twitter
- Tomoki OdaさんはTwitterを使っています: 「微分幾何に詳しい人に質問なんですが、微分幾何って多分ベクトル束の微小変化を解析する学問だと思うんですが、微分幾何の本って幾何学をやることを優先して微分幾何とはなにか?ってところまでやらないですよね。 ところでベクトル束って何ですか?」 / Twitter
- Riemannian SubmersionさんはTwitterを使っています: 「その辺のおっちゃんよりは詳しいと思いますが、微分幾何とは何かとか正直考えたことがないですね 多様体上で微積してたら微分幾何です ベクトル束? さて何でしょうね」 / Twitter
- worldblueさんはTwitterを使っています: 「@Submersion13 完全に上級者の回答ですねw」 / Twitter
- Riemannian SubmersionさんはTwitterを使っています: 「@worldblue0214 いや、単に僕がそういう俯瞰したこと考えない性格なんだと思いますよ笑」 / Twitter
- ルシアンさんはTwitterを使っています: 「多様体論を勉強すると、 「長さや角度を完璧に保つユークリッド空間上の変換は、回転・鏡映・平行移動の組み合わせしかない」 ということを厳密に明快に証明できます。 このことは、図形の合同に関する問題を座標を使って解いてよいことの裏付けにもなっています。」 / Twitter
- ルシアンさんはTwitterを使っています: 「目に見えない抽象的な多様体には興味が持てないという人も、こういった身近で素朴なテーマを目標に据えることで、勉強に打ち込みやすくなるように思います^ ^」 / Twitter
- 2020年抱負 | κeenのHappy Hacκing Blog
- 幾何を使った統計のはなし
- 情報幾何学1: 確率分布とリーマン多様体 - 初級Mathマニアの寝言
- 情報幾何入門
- _pdf
- DVIOUT
- matsuzoe_201710hokudai-handout.pdf
- takano.pdf
- toukei12.dvi
- 情報幾何の勉強。機械学習の数理的研究。 - 日記マン
- infogeo.dvi - infogeo-sice.pdf
- 11_KJ00005768851.pdf
- book_0403.pdf
- 「情報幾何」に入門するための資料PDF。解説論文と機械学習への応用の紹介 - 主に言語とシステム開発に関して
- 「情報幾何」で深層学習の謎を解く新しい機械学習手法を創り出す - NII SEEDs / 国立情報学研究所
- 情報幾何への入門と応用
- FEM と幾何学の機械学習 – 株式会社科学計算総合研究所
- 情報幾何勉強会(第一回 情報量) – 株式会社科学計算総合研究所
機械学習
その他
特徴量 グラフ構造
- グラフデータの機械学習における特徴表現の設計と学習
- mhrt001_04.pdf
- グラフってこんなにすごい!深層学習との融合をレビュー | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
- グラフ構造にまつわるサーベイ結果まとめ GNNからApplicationsまで Part1 - ログミーTech
- 番号 - 2019_2B03.pdf
- IPSJ-Z81-6N-03.pdf
- NV2021-09-Maruyama-NEC-paper.pdf
OSDN
- オープンソースの機械学習システム「Apache SystemDS 3」が公開 | OSDN Magazine
- Googleが量子プログラムフレームワーク「Cirq 1.0」を発表 | OSDN Magazine
TEXAL
- OpenAI が多言語音声認識システムである「Whisper」をオープンソース化 - インタビューやポッドキャストの文字起こしが可能に? | TEXAL
- ノーベル物理学賞は「量子もつれ」によって、量子コンピューティングへの道を切り開いた功績に対して贈られる | TEXAL
- 2022年ノーベル物理学賞が贈られた「量子もつれ」とは何か?物理学者がこの奇妙な現象を説明 | TEXAL
- シュレーディンガーの猫は現実に存在するのだろうか?私たちの研究がその答えになるかもしれない | TEXAL
- Meta社のAIチーフ、「自律型」人工知能の実現に向けた論文を発表 | TEXAL
- 囲碁で人間を超えたAIが、数学の難問を解決し、世界中のコンピュータの処理能力を底上げする可能性を示す | TEXAL
- AIを使って、これまで10万もの方程式が必要だった複雑な問題をわずか4つの方程式に圧縮することに成功 | TEXAL
- 小脳に我々がまだ知らない機能があることが、新たな研究で判明 | TEXAL
- ノーベル賞受賞の量子力学の不思議が、通信の暗号化や身体の画像化など、新たなハイテク産業を支えている | TEXAL
- 人間の脳が量子力学的な振る舞いをしていることを示唆する結果が観測される - 意識の謎の解明に繋がることが期待 | TEXAL
- 数学的真理の追求と複雑なモデルが、いかに無駄な科学的予測をもたらすか | TEXAL
- OpenAIの言語モデル最新版「GPT-4」が近日中に登場との噂、ついにチューリング・テストに合格するAIが実現か | TEXAL
- AIと呼ばれるものすべてが、実は「人工知能」ではない | TEXAL
histric
histric-1
- はじめに — 機械学習帳
- 世界初!教師データなしで高次元データの特徴を正確に獲得できるAI技術を開発 : 富士通
- 20190529_xSiG_public
- リザーバコンピューティング - Google 検索
- masa-su/pixyz: A library for developing deep generative models in a more concise, intuitive and extendable way
- Machine Learning Systems are Stuck in a Rut | Proceedings of the Workshop on Hot Topics in Operating Systems
- C4ML
- 富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
- MIT Tech Review: グーグルが発見した、機械学習が現実世界で使い物にならない理由
- ReLU - Google 検索
- 数学セミナー2018年12月号|日本評論社
- 2020年度講義情報ページ
- AI研究の第一人者・松尾豊氏が語る「日本でDXやAIの活用が進まない理由」|@DIME アットダイム
- AIりんな、コンシェルジュなどの顧客対応へ - 阿久津良和のWindows Weekly Report | マイナビニュース
- [2009.05673] Applications of Deep Neural Networks
- AI in Software Engineering at Facebook
- 「悪いやつをAIで予測する」のがなぜいけないか - yhara.jp
- mediapipe - Google 検索
- AlphaFold2 - Google 検索
- AlphaFold2PredictStructure.ipynb - Colaboratory
- deepmind/alphafold: Open source code for AlphaFold.
- PasonaTech-Inc/Qumico
- 東京大学、強化学習と統計的自然言語処理の講義資料が無料公開 サイバーエージェントの講師ら担当
- DeNA/MoT AI技術共有会発表リスト | dena-mot-ai-study-group
- Exploring the beauty of pure mathematics in novel ways | DeepMind
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ビッグデータ・パラドックス - 調査のサンプル数が多いからといって、結果に信頼性があるとは限らない。ある調査では、ワクチン接種率を大幅に間違って算出していた。偏ったビッグデータは「ノーデータ」よりも悪質だ。偏りを助長し、人々に間違った自信を与えてしまう。 https://t.co/LUYKsuinrv」 / Twitter
- Vaccination surveys fell victim to ‘big data paradox,’ Harvard researchers say – Harvard Gazette
- マイクロソフトのAI技術は何が違うのか? - PC Watch
- Marisa Kirisame - Google Scholar
- 画像データベースの想定外使用がAIアルゴリズムにバイアスをもたらす恐れ――米大学研究チームが明らかに:MRIへのAI適用上の問題点を実証 - @IT
- MIT Tech Review: メタ、「GPT-3並み」の大規模言語モデルを研究者向けに無償提供
- minst - Google 検索
- JAXライクなfunctorchで機械学習を速くする – part 1 – Rest Term
- 金持ちの研究所から出てきた機械学習の論文なんてゴミだ
- [D] I don't really trust papers out of "Top Labs" anymore : MachineLearning
- [1602.02830] Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1
- 凸版印刷が古文書解読アプリを開発、2023年1月にベータ版公開へ - ケータイ Watch
- 拡散モデル - 検索
- 競技プログラミングとChatGPTを含むAIについて - chokudaiのブログ
- Windows Machine Learning - UWP app developer | Microsoft Docs
画像や3Dボリュームを小さいデータで近似
- FadisさんはTwitterを使っています 「画像や3Dボリュームを小さいデータで近似するNNを素早く学習させる論文。全体を1つのNNで学習するのではなく、データを複雑な部分ほど小さくなる階層的なブロックで区切り、ブロックに対応するfeature gridを選ぶNNと選ばれたfeature gridから値を求めるNNを繋いで学習させる https://t.co/E8mYkrdZbY」 / Twitter
- Computational Imaging ACORN: Adaptive Coordinate Networks for Neural Representation | SIGGRAPH 2021
- FadisさんはTwitterを使っています 「feature gridを選ぶNNの入力はグローバル座標xyzとブロックのサイズsで、個々のブロックのサイズは学習中に上がってくる誤差を元に「有限のブロック数を現在の分割数で誤差が減らない所により多く割り当てる」ような整数計画問題を解く事で決定する」 / Twitter
- FadisさんはTwitterを使っています 「ブロックサイズが変わるとNNの入力が変わるので、NNは聞かれなくなった「古いサイズの場合の出力」を緩やかに忘れながら「新しいサイズの場合の出力」を学習し直すことになる。ブロック数は固定で、どこかを細かくするとどこかが荒くなる為、学習が進むと分割が必要な所ほど細かく分割された状態になる」 / Twitter
- reroさんはTwitterを使っています 「@fadis_ 忘れるとかもできるんやな。入力が少なくなって相対的に全体への影響が減るだけじゃなくてちゃんと記憶データサイズも減ってるのかな?」 / Twitter
Top2Vec
- 🆕さんはTwitterを使っています: 「top2vec、とても直感に沿った出力をしてくれる気がしている。 トピックモデルというとLDAやVAEベースというイメージがありますが、top2vecは文書埋め込みを次元削減しクラスタリングすることで、トピックを抽出しているよう。 関連研究を追いかけたい。」 / Twitter
- 🆕さんはTwitterを使っています: 「ちなみに、日本語でdoc2vecを試すなら、引数のtokenizeの指定は必須で、sudachiでtokenizeして名詞だけを抽出するような関数を作って与えると良さげだと思います。」 / Twitter
- 🆕さんはTwitterを使っています: 「https://t.co/rlabmP853G リポジトリはこちらです。 文書埋め込みはdoc2vec、Universal Sentence Encoder、SentenceTransformerなどが利用できます。」 / Twitter
- ddangelov/Top2Vec: Top2Vec learns jointly embedded topic, document and word vectors.
- 🆕さんはTwitterを使っています: 「top2vecはクラスタリングにHDBSCANを使っているのですが、HACのような他の手法も試してみたいです。 そこで、cumlというscikit-learnにあるモデルを同じAPIのまま、GPUを利用できるライブラリを教えてもらったのを思い出し、使う時が来たなーと思いました。 https://t.co/J3PRrVYDno」 / Twitter
- rapidsai/cuml: cuML - RAPIDS Machine Learning Library
- 🆕さんはTwitterを使っています: 「top2vecが教師データなしで動くことを考えると、実はもう人間がアノテーションすることなしに、DB型メディアのファセットナビゲーションを自動生成するというのがやれるのでは? https://t.co/rlabmP853G」 / Twitter
- nadare🌱さんはTwitterを使っています: 「item2vecはベースラインをgensimで作りやすく、上位手法に改造しやすい。近傍探索がはやい(ANN込だとめっちゃ早い)ユーザー×アイテムだけじゃなく、アイテム同士の類似検索やユーザーセグメンテーション等色々できるのが好き」 / Twitter
ReLU Fields
- FadisさんはTwitterを使っています: 「ReLU Fields: NeRFから始まった学習によって3次元のボリュームを限られた大きさのデータで記録する技術のニューフェイス。手法では空間を小さい領域に分割する。各領域はReLUの係数を1セットだけ持ち、学習によって目標とするデータをできるだけ再現できるReLUの係数を求める https://t.co/VYhrBkD462」 / Twitter
- ReLU Fields: The Little Non-linearity That Could
- FadisさんはTwitterを使っています: 「NeRFは1つのニューラルネットワークでボリューム全体を再現する応答ができるように学習を行うが、後の研究でボリュームを小さい領域に区切って各領域でその領域内のボリュームを再現できる小さいニューラルネットワークを学習させた方が短時間で学習できる事が知られていた」 / Twitter
- FadisさんはTwitterを使っています: 「ReLU Fieldsはこれを更に簡素にした物で、個々の小さい領域をニューラルネットワークで表現するのではなく、ReLU関数1個だけで表現する。ReLU関数の形は線形関数の領域の端での値で定義され、線形関数の値は0から1の範囲でclampされる。線形関数は領域の端で0未満または1以上の値になっていても良い」 / Twitter
- FadisさんはTwitterを使っています: 「ReLU関数は微分可能なので渡ってきた誤差を元に線形関数の領域の端での値を修正する事ができる。この信じられないほど簡素な表現は、NeRF-PTと比較して同じ時間の学習でより正しく元のボリュームを再現する応答ができるようになる事が実験によって示されている」 / Twitter
パーセプトロン
その他
- 第17回 パーセプトロンを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社
- 第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社
- ニューラルネットワークとパーセプトロン - Sideswipe
- ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) | コンピュータサイエンス | POSTD
- ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(後編) | コンピュータサイエンス | POSTD
- はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
- 七誌さんのツイート: "パーセプトロンでXORが実装できない理由を、真理値表を2次元にマッピングして一次関数の直線で区切れないためと説明された。区切るためには曲線が必要で、その曲線がフェルマー曲線や楕円曲線に似ていると思っていた。あ、だからフェルマー予想の証明に楕円関数論が絡むのか!と今頃気付いた…"
- 七誌さんのツイート: "楕円関数論の重要性がじわじわ来ている。改めて竹内先生の緒言が身に染みる! https://t.co/99YRij5404"
- パーセプトロンの概観とディープラーニングへ - HELLO CYBERNETICS
- パーセプトロン - Pythonと機械学習
- コベクトルで考えるパーセプトロン - Qiita
- 実は難しい自然言語処理。画像認識の活用も始まる
コンパイル
- 入門 Keras (2) パーセプトロンとロジスティック回帰 | 株式会社インフィニットループ技術ブログ
- Kerasでディープラーニングに入門する(MNISTの手書き数字問題を単層パーセプトロンで解く) - Qiita
- OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
- パーセプトロンってなんだろう? - きしだのはてな
- パーセプトロンとサポートベクターマシン - きしだのはてな
- ニューラルネットワーク - プログラムに組込み可能なライブラリ
- 第16回 最適化のための勾配法:機械学習 はじめよう|gihyo.jp … 技術評論社
- keras_tutorial
- MXNet チュートリアル : 手書き数字認識 – MNIST – PyTorch
- Caffe2によるディープラーニングの基礎と実践 rev 1.1
- 多層パーセプトロン (Multilayer perceptron, MLP)をExcelで理解する - Qiita
ネットワーク
- パーセプトロンとニューラルネットワークの違い - kakts-log
- パーセプトロンとは? - Qiita
- ニューラルネットワークと深層学習
- 多層パーセプトロン - Wikipedia
- パーセプトロン - Wikipedia
- 機械学習 - パーセプトロンはニューラルネットワークなのか?|teratail
- パーセプトロン ニューラル ネットワーク - MATLAB & Simulink - MathWorks 日本
- パーセプトロンとニューラルネットワーク(1) - 人工知能・ロボティクス・and so on 工学系ブログ
- ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
- ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発した論文を読んだ - Qiita
- Deep Forest :Deep Neural Networkの代替へ向けて - Qiita
- C++ヘッダだけでDeep Learning、tiny-dnnの紹介 - Qiita
- Fadisさんのツイート: "最近、ディープラーニングを扱う記事のニューラルネットワークのイメージ図が謎の3層全結合だったら、記事が古いのではないかと疑う事を覚えた"
可視化
- 多層パーセプトロンの動きを可視化する - StatsFragments
- Python: 単純パーセプトロンを実装してみる | CUBE SUGAR STORAGE
- D3.jsでパーセプトロンを可視化した - くじらにっき++
- 多層パーセプトロンの動きを可視化する - StatsFragments : GoogleやFacebookが注目するディープラーニング(深層学習)についてまとめてみた - NAVER まとめ
- perceptronの可視化 - Qiita
- プログラマーが効果的な可視化を作成する (前編) - Qiita
- プログラマーが効果的な可視化を作成する (中編) - Qiita
- プログラマーが効果的な可視化を作成する(後編 Part 1): 基本原則 - Qiita
- プログラマーが効果的な可視化を作成する(後編 Part 2): 学習ガイド - Qiita
- 高次元データの次元削減および2次元プロット手法 - Qiita
- 探索的データ解析における正しい可視化手法の選び方と描き方 - Qiita
- 情報理論を視覚的に理解する (1/4) : | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (2/4) | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (3/4) | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (4/4) | コンピュータサイエンス | POSTD
時系列
- パーセプトロン
- Journal of Chemical Software Vol.4 No.2, p.57 (1997)
- 階層型のネットワーク
- ニューラルネットワークの考え方 | Logics of Blue
- 18-1-10.dvi
- 売買判定システム修正版2
ボルツマンマシン
- ボルツマンマシン - Wikipedia
- ボルツマン分布 - Wikipedia
- daem0nc0reさんはTwitterを使っています 「物理学から離れてかなり経つので知らなかったけど、2019年にBoltzman定数の定義が見直されたんですね。 https://t.co/nUhwkfD4bc」 / Twitter
- SI-Brochure-9.pdf
- ボルツマン定数 - Wikipedia
ONNX
- AWS、Facebook、Microsoftの3社、AIモデルのオープンフォーマット「ONNX」を正式リリース:異なるディープラーニングフレームワーク間でAIモデルを移行できる - @IT
- ディープラーニングフレームワーク間で共通のモデル表現が可能に:MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表 - @IT
- AWS、MicrosoftやFacebookなどが推すAIフォーマット「ONNX」をサポート:ディープラーニングモデルのオープンフォーマットのエコシステムが拡大 - @IT
- ONNX形式のモデルを使ってみる | Money Forward Engineers' Blog
- AIモデルの相互運用性プロジェクト「ONNX 1.0」 | OSDN Magazine
- ONNX のモデル出力と、ONNX を使った推論をやってみた - Fixstars Tech Blog /proc/cpuinfo
- ONNX
- Open Neural Network Exchange
- webonnx/wonnx: A GPU-accelerated ONNX inference run-time written 100% in Rust, ready for the web
- shinichiro hamajiさんのツイート: "ONNX、ループとかないと思ってたけどいつのまにか生えてるやん https://t.co/LTSE4GsztY"
- Yuta Kashinoさんのツイート: "How Facebook scales AI https://t.co/pJJIRPqRYC FaceBook社内の機械学習インフラ.PyTorchで学習した後にONNX経由でCaffe2によるプロダクション環境での推論実行が実現できているそうです.… https://t.co/zAz0yUkmh3"
- PreferredNetworksJPさんのツイート: "【発表】学習済みDNNモデルを #ONNX 形式から読み込んで動作させる推論専用ライブラリMenoh(メノウ)を公開! #Chainer で学習したモデルを #Python 以外の言語で実装したアプリケーションに瞬時にデプロイすることができます。 https://t.co/xXjPh0JViE"
- pfnet-research/menoh
- Taku Kudoさんのツイート: "ONNX ということは、Define-by-Run が標榜する真の動的モデルの実行は難しいのではないのかな... TFのようにインファレンスを Python から切り離してヘテロ環境で実行したいのなら、どのみち静的なグラフが必要で、そのへんのトレードオフはなかなか解けないですね。"
- Taku Kudoさんのツイート: "Define-by-Run, Define-and-Run より、Model as code, Model as data といったほうが、インファレンスの立場からの違いがはっきりすると思う。"
- はじめてのにき(2018-07-01)
- 米Microsoft、機械学習向け推論エンジン「ONNX Runtime」をオープンソースで公開 | OSDN Magazine
- ONNX はチューリング完全だよ、という話 - 兼雑記
- Noriyuki OHKAWAさんのツイート: "onnx関係者 "All names MUST adhere to C identifier syntax rules." て文を誰も読めないんじゃないかと疑ってる."
- Microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
- shinichiro hamajiさんのツイート: "OpenVINO サポート、実装やり直して今の2つ目で、何がうざいって ONNX => dldtモデル部分が Python で書かれてることで、僕は system(3) でやるのが結局一番と判断したけど https://t.co/lEsjvPu4r0 onnxruntime は Python.h 使って頑張ったぽい https://t.co/AtHXMwHQN1"
- shinichiro hamajiさんのツイート: "Intel みずから onnxruntime に関わってくれたおかげで、それなりに ONNX サポートキープしてくれそう……?という期待ができるのかな。。まあ TF/Caffe 優先ではあるのだろうけど"
- shinichiro hamajiさんのツイート: "また三日坊主になってる。GSoCのやたら優秀な方に、 continue/break/return を実装していただいた https://t.co/TaBIzzVK5l ONNXに落とす(キツい)、グラフに変換する時に頑張る(キツい)、などを検討した後に、AST-to-ASTで消しさればいいんじゃない?という話になって、綺麗にまとまって良かった"
- Canonicalizer Unittests, and Break Canonicalization. by Rishav1 · Pull Request #352 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "つまり任意の Python AST を continue/break/return の無い Python AST に等価変換する感じ"
- shinichiro hamajiさんはTwitterを使っています: 「Practical developers 読んでて、むしろ value_info が必須でないことが ONNX で良いと判断した理由の一つだったなあと。 shape 必須な時は static shape なグラフなので、単に onnx.shape_inference.infer_shapes すれば(バグってなければ) value_info は全て判明するはずだし」 / Twitter
- Noriyuki OHKAWAさんはTwitterを使っています: 「@shinh exchange formatなのに利用側に(shape inferのための)runtimeを要求するのが嫌だと思ったんですよね.python同士でしかやりとりしないなら別にいいんですけど」 / Twitter
- shinichiro hamajiさんはTwitterを使っています: 「@notogawa たしかに、C++/Python以外から使いにくくなってprotoの利点ちょっと殺しちゃってると言われればそうかもですね」 / Twitter
- shinichiro hamajiさんはTwitterを使っています: 「また三日坊主になってる。最近だとONNX workshop行って、Python listをSequenceで扱うopを足して、というのが進んでたので、それは一年前通った道……と偉そうにこういうの多分いるよ、て共有したり https://t.co/IY5s5qLISa PR にコメント書いたり、提案通り実装したりした https://t.co/RXbPUDByyO」 / Twitter
- ONNX with Python list/loop in chainer-compiler - Google スライド
- Add standard ONNX sequence ops by shinh · Pull Request #665 · pfnet-research/chainer-compiler
- uint256_tさんはTwitterを使っています 「ONNXの中身ってprotocol bufferなのか」 / Twitter
- Optimizing BERT model for Intel CPU Cores using ONNX runtime default execution provider - Microsoft Open Source Blog
- マイクロソフト、WebAssemblyとWebGLで推論エンジンを実装した「ONNX Runtime Web」(ORT Web)をオープンソースで公開 - Publickey
- shinichiro hamajiさんはTwitterを使っています: 「昔はなんでも html にして w3m で見てたなぁ、と書いてみたら、これすさまじく便利そうな……4年間 ONNX とつきあってたけど、これ初手で作るべきものだった気がする。 backprop あると netron 基本使えないから…… コード: https://t.co/x2Vc8Ro8dP デモ: https://t.co/qVnlwuJVp2」 / Twitter
- test/onnx2html.py at master · shinh/test
- shinh.skr.jp/t/mobilenet_v3_small_bs1.onnx.html
- uint256_tさんはTwitterを使っています: 「ONNXをターミナルにいい感じに表示してくれるやつがほしい」 / Twitter
- ONNXモデルのチューニングテクニック (基礎編) | AI tech studio
- Super PINTOさんはTwitterを使っています: 「onnx-script なるものが爆誕している。これは最強の予感しかしない。が、ONNXでしか動かないと思う。まだ、"ONNX Script is in very early and active development and the team anticipates breaking changes as the project evolves." な感じ。 https://t.co/fSeUbVaekn https://t.co/lfHfquwPQR」 / Twitter
- microsoft/onnx-script: ONNX Script enables developers to naturally author ONNX functions and models using a subset of Python. ⚠️ ONNX Script is in very early and active development and is not ready for production.
- ONNXモデルのチューニングテクニック (応用編1) | AI tech studio
NNEF
- 青子守歌さんのツイート: "ニューラルネットワークのデータ表現形式の標準規格が策定された https://t.co/Q1QgLb3lgL この間のミーティングで言われてたやつこれか"
- Neural Network Exchange Format (NNEF) - Neural Network Exchange Format (NNEF)
- Fadisさんのツイート: "OpenGL等の標準化で知られるクロノスグループ、異なるニューラルネットワークフレームワーク間でニューラルネットワークの学習済みモデルをやり取りするためのフォーマットNNEF 1.0を公開 https://t.co/jYTWfdtz4u"
- Khronos Announces NNEF 1.0 Standard For Neural Networks - Phoronix
- ニューラルネットワークツールと推論エンジンの相互運用のためのプロジェクト「NNEF」が仕様を公開 | OSDN Magazine
- ニューラルネットの共通フォーマット対決! NNEF vs ONNX - Fixstars Tech Blog /proc/cpuinfo
MN-Core
- shinichiro hamajiさんはTwitterを使っています 「いやーがんばったなあ、という感じ。個人的には逆アセ書くところから、みたいなむっちゃ基本的なとこから始めて、今はこんだけ動いてるってのに感慨がある。図にあるように抽象化の過程で謎の概念が色々(再)発明されて、まあまあ新奇性がちらほらあるDLコンパイラスタックになってるんじゃないかなぁ」 / Twitter
- Preferred NetworksさんはTwitterを使っています 「【発表】深層学習用プロセッサーMN-Coreのコンパイラを開発し、MN-Coreを搭載したスパコンMN-3で深層学習ワークロードを最大6倍以上高速化!(MN-2と比較) MN-CoreはPyTorchとシームレスに連携し、PFNの深層学習基盤技術としてさらに進化しました。 https://t.co/bIj9Yh6aeL」 / Twitter
- 深層学習用プロセッサーMN-Coreの専用ソフトウェア(コンパイラ)を 開発、深層学習の実用的なワークロードの計算速度を最大6倍以上高速化 | 株式会社Preferred Networks
- Takuya AkibaさんはTwitterを使っています 「https://t.co/WTN0s6420P 我々インフラ領域で取り組んできた MN-Core コンパイラスタックの記事です!MN-Core は「そこはソフトで頑張ってよ」という思想のかなり極端な HW (参考 https://t.co/rgSLV0ORAS)ですが、ソフト側の様々な難問も乗り越え PyTorch から性能が出せる感じになってきてます!」 / Twitter
- MN-Coreコンパイラを用いた深層学習ワークロードの高速化 | Preferred Networks Research & Development
- 「そこはソフトで頑張ってよ」、世界最高を目指す国産AIチップの開発秘話 | 日経クロステック(xTECH)
- Takuya AkibaさんはTwitterを使っています 「ソフト面の難問は様々ですが、競プロ的なものも結構多く、○○したり△△したり☓☓したりしてます(競プロ単語を最初普通に書いてたんですが、一応伏せとこ……)。「競プロっぽい課題がいかにも出てきそうだなぁ」という雰囲気は shinh さんのこのスライドとか是非。https://t.co/zRIwEejcBN」 / Twitter
- 競プロ忘年会のやつ - Google スライド
- PFN で開発している深層学習 コンパイラスタックについて - Google スライド
- Miura HidekiさんはTwitterを使っています 「後半のPEの割り当て問題、もう少し粒度が高いと計算場モデルがよさそうだけど、せいぜいベクトルではオーバーヘッドが大きすぎるわな。意外と、実行時間を評価値とした遺伝アルゴリズムなんていいような気がする。」 / Twitter
chainer-compiler
- 転職してからやってること - 兼雑記
- はじめてのにき(2018-07-01)
- はじめてのにき(2019-03-22)
- Chainer-compiler - Google スライド
- shinichiro hamajiさんのツイート: "自分が適当に書いたコードにコメントもらうのは、こわくもあり、とても面白くもあって良かった。当たり前だけど、自分が苦労したからといって人にとって面白いとは限らず、自分が忘れてるからといって人の目に止まらないとは限らないもんだなあと思った #chainer_compiler_reading"
- shinichiro hamajiさんのツイート: "前者はループまわりは本当に色々苦労したけど終わってみると割と普通、というのと、後者は方針途中でかえた残骸が残ってたshape inferenceが妙に注目されて @kuenishi さんが最近おっしゃってた「まともなソフトウェアはデッドコードは消す」という教えをね…ちゃんと実践しないと。。"
- shinichiro hamajiさんのツイート: "せっかく open なので chainer-compiler についてなんかかいていこうかなと。 https://t.co/Zy0eHiXjfM は Chainer のバージョンを上げてて、 ChainerX の新しい op を使うためなので重要。でもこれすると python から使った時の ABI 大混乱を避けづらくて、このへんポリシー決めてなかいとなあ"
- Bump up chainer version by shinh · Pull Request #272 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "歴史的事情のある XCVM はわかりにくいので、 ChainerX VM を略して、リポジトリの中では ChxVM と呼ばれることとなりました https://t.co/YJEUU4kjxk"
- Rename XCVM to ChainerX VM by shinh · Pull Request #277 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "自分のじゃないのを書くと、 Shape を ChxVM の型にするやつ https://t.co/ivh69nYj8T Shape を Array で動的に持ってたので、 ch2o/elichika で出力した ONNX とか Shape だらけで、なんというか結構大変なオーバヘッドになってるので、いろいろとなんとかなると嬉しい"
- Specialize GeItem from shape variable by take-cheeze · Pull Request #305 · pfnet-research/chainer-compiler
- chainer-compilerのその後 - Google スライド
- 動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development
今後はPyTorchかJAXかに
- 小川雄太郎さんはTwitterを使っています: 「Google全体として、TensorFlowからJAXへと移行する気配です。 今後のTFのメンテはどうなるんだろう 確かにJAXは使いやすい部分もあり、PyTorchもJAXの機能を取り込んでいます(FUNCTORCH:https://t.co/lENjbbzgHt) 2階微分のヘシアンの計算とか不便なので 今後はPyTorchかJAXかになりそうです」 / Twitter
- functorch — functorch 0.1.1 documentation
- Matthew LynleyさんはTwitterを使っています: 「After losing out to PyTorch, Google is quietly moving to roll out a new AI framework internally called JAX. It's expected to become the underpinning of Google's products, fixing some of TensorFlow's biggest pain points that frustrate Googlers internally https://t.co/ZZ9rKpFUpt」 / Twitter
- Deep Insight IncさんはTwitterを使っています: 「@ISID_AI_team PyTorchも強力なエコシステムあります! AIモデルのビジュアルエディタ「KAIBER NN Editor for PyTorch」を発表 ~ ニューラルネットワークのGUI編集とリアルタイムエラーチェックでバグを飛躍的に削減 ~ 無料試用版β1を専用サイトで公開! https://t.co/gydo9fLPgY https://t.co/hlMg2L9mke」 / Twitter
- KAIBER NN Editor for PyTorch
GPT
- 小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「AI分野でめちゃくちゃ盛り上がってる「GPT-3」を使った事例が15個まとまってる。 GPT-3の衝撃 https://t.co/oR4P1mjq0D 「GPT-3の方法はこれまでのDeep Learning研究の観点からみるとかなり特殊です.むしろ新しいプログラミングパラダイムと見るべきかもしれません.」」 / Twitter
- GPT-3の衝撃 - ディープラーニングブログ
- 超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
- 超高精度な言語モデル「GPT-3」は本当に「人間そのもの」な会話ができるのか実験した結果は? - GIGAZINE
- 自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか? - GIGAZINE
- OpenAIが超高精度な言語モデル「GPT-3」用いたAIモデルをAPIとして利用可能に、Wikipediaの内容を「質問」で検索するデモムービーも - GIGAZINE
- AIによる自動文章作成ツールがあまりにも高精度のテキストを簡単に作り出してしまうため開発陣から「危険過ぎる」と問題視される - GIGAZINE
- 「あまりにも危険過ぎる」と危険視された文章生成ツール「GPT-2」の技術で画像を自動で生成することに成功 - GIGAZINE
- OpenAIが1,750億のパラメーターを持つGPT-3 AI言語モデルを発表
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「理解に基づいて文書を生成するのではなく,大量の学習データから「コピペ」しているかのよう. GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about https://t.co/SxSG54nl2Z」 / Twitter
- GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about | MIT Technology Review
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「何はともあれ,適当にウェブの記事を切り貼りしてレポート課題を出す学生たちの「仕事」は,事実上AIによって奪われたわけですね.」 / Twitter
- 20200926
- 文章生成AI「GPT-3」がRedditで1週間誰にも気付かれず人間と会話していたことが判明 - GIGAZINE
- Text Synth
- 超高精度の文章を自動生成できる「GPT-3」は1日当たり45億以上の単語を出力していることが明らかに - GIGAZINE
- 超高精度な文章生成AI「GPT-3」には反イスラム教的なバイアスが存在すると判明 - GIGAZINE
- 「GPT-3」に近い性能の言語モデルをオープンソースで目指す「GPT-Neo」 - GIGAZINE
- OpenAIが画像生成用のGPT-3モデルを発表
- MicrosoftがGPT-3 AIモデルの独占ライセンスを取得
- 99.9%少ないパラメータでGPT-3パフォーマンスを上回るAIのトレーニング方法
- FadisさんはTwitterを使っています 「2年半程前に某所でGANによるアセット生成とQ学習によるモーション生成の威力がヤバいから、ゲーム屋は今すぐ機械学習勉強しないと生き残れんぞという発表をしたんだけど、実際には「GANによるアセット生成とQ学習によるモーション生成とGPT-3による会話生成の威力がヤバい」だったな」 / Twitter
- Q学習 - Wikipedia
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「文章生成器 GPT-3 は、イスラム教とテロを関連づけて学習してしまっている。「ムスリム2人組がバーに入っていくと...」という書き出しの文章の続きを生成させると、クリスチャン、仏教徒などの場合と比較して6倍程度 (66%) の確率で残虐なストーリーが描かれる。 https://t.co/BzzGknSf0Y」 / Twitter
- Two Natural-Language AI Algorithms Walk Into A Bar... - IEEE Spectrum
- Shiro KawaiさんはTwitterを使っています 「AIに見える世界では人が犬を噛むだろう」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「人は普通「馬には目が2つある」みたいな常識はあえて文に書かないから、GPT-3に馬の目はいくつ?と聞くと3つと答えてしまう…って話、面白い。データセットのバイアス。」 / Twitter
- 人間と見分けがつかないほど自然な文章を書けるAI「GPT-3」の改良版AI「InstructGPT」一般公開、詩も執筆可能 - GIGAZINE
- 山本 和英(言語商会)さんはTwitterを使っています: 「昨日紹介した新納先生の記事にあったGPT-3の素数生成の話については下記記事が面白いです。 https://t.co/eb7CoeMPcx 大モデルは素数を丸覚えしている一方、小モデルは本当に何らかの処理をしている。そして入力した数の2倍以降は適当(+2を繰り返すだけ)というのがヒントになりそう。」 / Twitter
- GPT-3 & OpenAI Codexの使用方法。文章からプログラムを自動生成する方法 - Qiita
- 山本 和英(言語商会)さんはTwitterを使っています: 「GPT-3の四則演算能力については下記に書かれています。 https://t.co/WL7NTLvNB7 Few-Shotで2桁の足し算は100%、引き算はほぼ100%でき、3桁の引き算も90%以上、足し算も80%という精度だそうです。こちらは、モデルを小さくするとあるところで急に精度が落ちる(10%とか)という点がヒント。」 / Twitter
- 【論文解説】OpenAI 「GPT-3」を理解する | 楽しみながら理解するAI・機械学習入門
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「GPT-3は単語の文字を逆順にするようなタスクはひどく苦手である。なぜなら「トークン解析」→「長い単語列」→「再トークン化」のどれもうまくできないから。しかし、各ステップを細かく明文化すると達成可能に。」 / Twitter
HuBERT
- ステート・オブ・AI ガイドさんはTwitterを使っています 「自己教師学習による音声表現学習モデルの最新版 HuBERT、控え目に言ってヤバいのでは・・。 ・面倒なVQ-VAEではなくk-meansで学習した離散コードを予測するだけ ・音声「だけ」から言語生成も可能 (GSLM) ・音声処理ベンチマークSUPERBで首位を総ナメ 音声では「とりあえず HuBERT」が主流になる予感 https://t.co/pKuk5DZHW8」 / Twitter
- ステート・オブ・AI ガイドさんはTwitterを使っています 「論文 GSLM: https://t.co/5mL6CJv3VB SUPERB: https://t.co/X91IL6wdO7 HuBERT: https://t.co/cY5Ut3lvAR」 / Twitter
- [2102.01192] Generative Spoken Language Modeling from Raw Audio
- [2105.01051] SUPERB: Speech processing Universal PERformance Benchmark
- [2106.07447] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
- ステート・オブ・AI ガイドさんはTwitterを使っています 「「HuBERT のここがスゴい」もう一個あった 音声をたった 365 bps で超高圧縮できるコーデックとして利用可能、ほとんど劣化なし。 論文: https://t.co/unB7lwkBNK デモ: https://t.co/tgPKUsogYS」 / Twitter
- [2104.00355] Speech Resynthesis from Discrete Disentangled Self-Supervised Representations
- Speech Resynthesis from Discrete Disentangled Self-Supervised Representations
blog
その他
- AIブーム終焉の意味するところ|Ryota Kanai|note
Publickey
- AWS、SQL文で機械学習のモデル作成、トレーニング、推測まで実行できる「Amazon Redshift ML」正式リリース - Publickey
- Facebook、どんな話題にも対応できるAIチャットボット「BlenderBot 2.0」オープンソースで公開。会話しつつ裏でネット検索し最新情報を取得 - Publickey
- [速報]AWS、JupyterLab IDEベースの新サービス「SageMaker Studio Lab」無料提供を発表、ブラウザで機械学習を学び試せる。AWS re:Invent 2021 - Publickey
- Amazon DevOps Guruが新機能、機械学習によるログの異常(アノマリー)検知と推奨される解決策の提示 - Publickey
- 「PyTorch Foundation」が設立。Meta、AWS、Google Cloud、Microsoft Azure、AMD、NVIDIAらが理事に - Publickey
- [速報]マイクロソフト、Azure OpenAI Serviceで「Dall·E 2」の提供を開始、テキストから画像を生成可能。Ignite 2022 - Publickey
Cygames Engineers' Blog
- 【CEDEC 2021 フォローアップ】ゲーム制作効率化のためのAIによる画像認識・自然言語処理への取り組み | Cygames Engineers' Blog
- 【CEDEC 2021 フォローアップ】不正検知を可能とする弱教師あり学習手法「DevNet」の紹介 〜膨大なデータに潜む異常を最小限のラベリングで見つける技術〜 | Cygames Engineers' Blog
Fixstars Tech Blog /proc/cpuinfo
- ClPyが製品候補版になり、ほぼ全ての主要機能が動作するようになりました - Fixstars Tech Blog /proc/cpuinfo
- ClPyの論文が公開されました - Fixstars Tech Blog /proc/cpuinfo
- ClPy meets libTooling (1): Ultima - Fixstars Tech Blog /proc/cpuinfo
Preferred Networks Research & Development
- [AAAI2021採択論文] 深層学習による株価予測 | Preferred Networks Research & Development
- [2012.07245] Deep Portfolio Optimization via Distributional Prediction of Residual Factors
- [AAMAS2021採択]株価予測のためのアンサンブル・進化計算手法 : Trader-Company法 | Preferred Networks Research & Development
- [2012.10215] Trader-Company Method: A Metaheuristic for Interpretable Stock Price Prediction
- MCU上でのsegmentationモデルの実行 - Preferred Networks Research & Development
- MN-Core上の高速化に向けた可視化プロファイラ - Preferred Networks Research & Development
- aHSICを用いた多次元時系列上の変化検知と変数同定及びアルゴリズムの改善 - Preferred Networks Research & Development
- 表形式データに対する深層学習ライブラリの開発と実験 - Preferred Networks Research & Development
- 電荷移動を考慮したNeural Network Potential - Preferred Networks Research & Development
- Announcing Optuna 3.0 (Part 1) - Preferred Networks Research & Development
- Announcing Optuna 3.0 (Part 2) - Preferred Networks Research & Development
- 操作ログ方式に基づくOptunaストレージ実装とNFS経由の分散最適化 - Preferred Networks Research & Development
- MN-Coreコンパイラに向けた最適化ヒントの自動生成 - Preferred Networks Research & Development
- 続・Apache Ozone をやっていた一年 - Preferred Networks Research & Development
- 構造ベースのバーチャルスクリーニングのための機械学習スコアリング関数の汎化性評価 - Preferred Networks Research & Development
Idein
- Idein Ideas — 機械学習におけるDifferential Privacyについて
- Idein Ideas — 量子化について
- 今さら聞けない ~「エッジAI」とは?~|公式ブログ|Idein(イデイン)株式会社 ― エッジAIのスタートアップ
- 機械学習モデルとアノテーションとは|公式ブログ|Idein(イデイン)株式会社 ― エッジAIのスタートアップ
histric
histric-1
- Python で学ぶベイズフィルタとカルマンフィルタ (翻訳)
- CPUベースのディープラーニングの飛躍的進歩により、GPU市場への圧力が緩和される可能性があります|自作.com
- New Algorithm Makes CPUs 15 Times Faster Than GPUs in Some AI Work | Tom's Hardware
- MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
- 高校数学を使って誤差逆伝播を”再発見”できるAutoML-zero - akira - Medium
- 日本ディープラーニング協会におけるRNN (Recurrent Neural Network) | yasuokaの日記 | スラド
- LINE、NAVERと共同で、世界初、日本語に特化した超巨大言語モデルを開発 新規開発不要で、対話や翻訳などさまざまな日本語AIの生成を可能に | ニュース | LINE株式会社
- ニューラルネットワークで「開いた量子系」を学習する – 機械学習と量子物理学の融合 | academist Journal
- Ethics Processing Unit - マルシテイア
- 強化学習の環境紹介! | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
- WebAssemblyを用いてBERTモデルをフロントエンドで動かす - OPTiM TECH BLOG
- SageMaker Experimentsによる実験管理とQuickSightを使ったその可視化 | Money Forward Engineers' Blog
- huggingface transformersで使える日本語モデルのまとめ – Yellowback Tech Blog
- transformersのTokenizerで固定長化する | Money Forward Engineers' Blog
- 機械学習初学者が AutoGluon を利用して未来予測をしてみた話 - Adwaysエンジニアブログ
- 世界最大規模のディープラーニングを「富岳」で実施して世界一になりました - fltech - 富士通研究所の技術ブログ
- 深層強化学習アルゴリズムの評価は正確か? | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
- AIOps向けデータセット生成システムの論文をIOTS2021で発表しました – さくらインターネット研究所
- ログデータと言語モデルを用いた同義語辞書の自動構築 | メルカリエンジニアリング
- 人工知能、深層学習、ビッグデータ解析の限界は?|shinshinohara|note
- ITエンジニアのための機械学習理論入門 第3章 最尤推定法: 確率を用いた推定理論 | クラウドエース株式会社
- goto@meta翻訳開発者さんはTwitterを使っています: 「meta翻訳開発初期、「GPUを1000枚使って学習」みたいな「個人開発には全く参考にならない論文」を多く読んだ中で、 ・個人開発の許容範囲内で ・有名サービスに対抗できるように どのようにmeta翻訳のアーキテクチャ選定を行ったかを技術記事に書きました。 https://t.co/Txn1HjGvVH https://t.co/tfSVOjqHLI」 / Twitter
- meta塾
- 因果推論における変数選択 | MoT Lab (Mobility Technologies Engineering Blog)
- サーバサイドのCPUによるAI推論の速度改善 | MoT Lab (Mobility Technologies Engineering Blog)
- 特徴量選択手法について、モデルの予測精度・選択された特徴量の割合・選択された乱数の特徴量の割合で議論しました![金子研論文]
- PyTorch Geometricを使ってVariational Graph Auto-Encodersを作って学習してみる - まったり勉強ノート
- Recruit Data Blog | AI開発の新たなパラダイム「基盤モデル」とは
- Google AI Blog: MLGO: A Machine Learning Framework for Compiler Optimization
- 20200418
- 毎日追加学習する機械学習モデルを、日次実行を止めずにコードをバージョンアップしたい - エムスリーテックブログ
- CDLEハッカソンで入賞したモデルを検証してみた - ラック・セキュリティごった煮ブログ
PC Watch
- 【後藤弘茂のWeekly海外ニュース】NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】NVIDIA Ampereにおけるプルーニング対応の特徴 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】人間の脳から産まれたディープラーニングのプルーニング - PC Watch
- NTT、分散配置されたデータから安定したディープラーニングが可能な技術 - PC Watch
- 【やじうまPC Watch】AIがクロスワードでも人間を超える - PC Watch
- 東芝、デジカメ写真から実スケールを計測できる世界初のAI技術 - PC Watch
- NVIDIA、文章からリアルタイムで画像生成するAI - PC Watch
- Meta、子どもが描いた1枚絵からアニメーションを作るAI - PC Watch
- 若者よりも年配者、男性よりも女性、AI知識が豊富な人ほどAI技術を懸念 - PC Watch
- 理研、人間のように自然な表情を作れるアンドロイド - PC Watch
- Intel、96%の精度/ミリ秒単位でディープフェイク動画を検出できる技術 - PC Watch
日経クロステック
- AIにおける「次元の呪い」解決へ、富士通研が機械学習の最有力学会で発表 | 日経クロステック(xTECH)
- Apple注目の1ビット深層学習、超省電力で「スマホに常時AI」 | 日経クロステック(xTECH)
- 小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 https://t.co/TR9RRFPx6f 『自然言語処理の世界を一変させた「Transformer」系のモデルが、なんと全く異なるタスクであるロボット制御の世界で大きな効果があることが分かったのだ。』」 / Twitter
- 自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 | 日経Robotics(日経ロボティクス)
- 次世代AIが画像符号化の限界打破、圧縮率が数千分の1に? | 日経クロステック(xTECH)
マイナビニュース
- FastLabel、アノテーション作業を支援するプラットフォーム | TECH+
- 東芝、時系列データで機器の異常検知から要因判定まで可能なAI技術 | TECH+
- NTTレゾナント、マルチモーダルAI技術などと連携可能なAPI群「AI suite」 | TECH+
GIGAZINE
その他
Google
- Googleのエンジニアが人間がコーディングを行うよりも高速で自己進化するAI「AutoML-Zero」を発表 - GIGAZINE
- Google傘下のDeepMindがゲームのルールを教えられなくても勝ち方を勝手に学習していくAI「MuZero」を発表 - GIGAZINE
- GoogleがAI倫理に関する議論を受けて新たなAI責任チームを編成、社内外からは非難の声も - GIGAZINE
- Googleがスパース推論でニューラルネットワークの高速化を達成したと報告 - GIGAZINE
- Googleが自然な会話を実現する対話特化型AI「LaMDA」を発表、LaMDAが冥王星や紙飛行機になりきって会話するデモも公開 - GIGAZINE
- GoogleがAIを用いてAI専用プロセッサの開発を爆速化したことを発表 - GIGAZINE
- Appleの「M1」搭載Macに最適化されたAI向けライブラリ「TensorFlow」の最新バージョンがリリースされる - GIGAZINE
- 無料で物理演算エンジン「MuJoCo」がダウンロード可能に、DeepMindの買収により - GIGAZINE
- AIプログラムの「AlphaZero」にチェスを学習させる中で明らかになった知見とは? - GIGAZINE
- 映像から立体モデルを構築する技術がついに「物体の形状の変化」にまで対応した「HyperNeRF」をGoogleの研究者らが開発 - GIGAZINE
- 「AIが差別発言しないかをAIでチェックする」というDeepMindの試み - GIGAZINE
- DeepMindの碑文解読AI「Ithaca」で失われた碑文を72%の精度で復元することに成功 - GIGAZINE
- Googleドキュメントでより非差別的な用語を推奨してくる入力支援ツールに対し「地獄のように迷惑」と非難の声 - GIGAZINE
- Googleの対話特化型AIとスマホで語り合えるアプリ「AI Test Kitchen」が自然すぎて完全に中の人がいるレベル - GIGAZINE
- GoogleがAIに肌の色を10段階で評価させる新尺度「モンク・スキン・トーン・スケール」を発表 - GIGAZINE
- DeepMindが人間レベルにかなり近づいたAI「Gato」を構築、ゲームプレイ・チャット・ロボットアーム操作などが可能 - GIGAZINE
- Chrome 102からはオンデバイスの機械学習で煩わしい通知やフィッシング詐欺を自動で遮断するように - GIGAZINE
- Googleのエンジニアが「ついにAIが実現した」「AIに意識が芽生えた」と訴える - GIGAZINE
- 「GoogleのAIが感情や知性を獲得した」というエンジニアの指摘は間違っていると専門家から批判が殺到 - GIGAZINE
- DeepMindのAIが赤ちゃんと同じように初歩的な物理法則を学習することに成功 - GIGAZINE
- 「AIに意識が芽生えた」と主張したGoogleのエンジニアが解雇される - GIGAZINE
- Googleが「人間の言葉を理解して状況に応じて行動するお手伝いロボット」をお披露目 - GIGAZINE
- 最強将棋AIが新境地へ、DeepMindのAI「AlphaTensor」が50年以上停滞していた行列乗算アルゴリズムの改良に成功 - GIGAZINE
- DeepMindの研究者が「AIが人類を滅ぼす可能性は高い」との論文を発表 - GIGAZINE
NVIDIA
- NVIDIAが対話型AIのフレームワーク「Jarvis」の提供を開始 - GIGAZINE
- NVIDIAがセキュリティ上の脅威を検出・防止するためのAIフレームワーク「Morpheus」を発表 - GIGAZINE
- AI技術の最先端を行くNVIDIAはAIの未来をどのように予測しているのか? - GIGAZINE
Facebook
- Facebookが英語を経由せずに100個の言語を直接翻訳できる新しい機械翻訳システムを開発 - GIGAZINE
- Facebookが機械学習と映像画質向上用のカスタムチップを独自開発か - GIGAZINE
- Metaが言語・画像・音声など複数分野に適応できる自己学習型AI「Data2vac」を発表 - GIGAZINE
- Metaがすべての言語をリアルタイムで翻訳するAI「バベルフィッシュ」を開発中 - GIGAZINE
- Metaが200の言語で機能するAI翻訳モデルをオープンソース化、 メタバースで世界中の人々が交流できることを目指す - GIGAZINE
- 1億3400万件のウェブページに基づくオープンソースのAIナレッジツール「Sphere」をMetaがリリース - GIGAZINE
- テキストの説明と超ざっくりしたイラストから高クオリティな画像を生成可能な「Make-A-Scene」をMetaが発表 - GIGAZINE
MS
- 無料でOpenAIの「Whisper」を使って録音ファイルから音声認識で文字おこしする方法まとめ - GIGAZINE
- OpenAIが入力した自然言語から自動でコードを出力するAIシステム「Codex」をリリース - GIGAZINE
- ドッグさんはTwitterを使っています 「GitHub Copilot でも使われてる Codex モデルの改善版を OpenAI がサービスとして提供するのか.API の waitlist に登録できる.Codex は自然言語からソースコードを生成する生成モデル | 'OpenAI Codex' https://t.co/9jOf88qdTw」 / Twitter
- OpenAI Codex
- OpenAIが開発した画像認識AI「CLIP」の思考の特徴とは? - GIGAZINE
- 超高精度な文章を生成できるGPT-3は「もはや言語モデルとして唯一の選択肢ではない」との指摘 - GIGAZINE
- GitHubのソースコードから自動学習するAIプログラミング機能「GitHub Copilot」で禁止されている単語は1170個、ゲームに使われている関数まで禁止 - GIGAZINE
- AIベンチャー・OpenAIの「GPT-3」がウェイトリストなしで誰でも利用可能に - GIGAZINE
- コーディングも支援可能な文章生成AI「GPT-3」が文脈に応じた内容を生成するように進化 - GIGAZINE
- 文章生成AI「GPT-3」にハンドルネームを入力したら本名がフルネームで出力されたという報告 - GIGAZINE
- 子どもが思い描く「ポケモンの物語」を文章生成AI「GPT-3」と画像生成AI「DALL・E」のコンビで再現するとこんな感じ - GIGAZINE
- Microsoftが画像生成AI「DALL-E 2」を新アプリのMicrosoft Designerや検索エンジンのBingに統合すると発表 - GIGAZINE
- OpenAI開発のテキスト生成AI「GPT-3」がどんな処理を行っているのかを専門家が解説 - GIGAZINE
- OpenAIが対話AIや画像生成AIに使われる「埋め込みモデル」を刷新、性能当たりの価格が99.8%も安価に - GIGAZINE
自然言語処理
- AIが文章を書けるようになったことで政治がゆがめられる危険性がでてきた - GIGAZINE
- 言語の壁を超えて複雑な文章や画像も理解できる新検索アルゴリズム「MUM」をGoogleが発表 - GIGAZINE
- 「文章生成AIによって作られたフェイクニュース」は本当に民主主義にとって危険なのか? - GIGAZINE
- 「ハサミを箱に入れる」「布を折る」など言葉で指示した多様なタスクをロボットアームで遂行するAIが登場 - GIGAZINE
- ロボットに仮想空間で「現実世界とは何か」を学ばせることで学習を高速化する「Habitat 2.0」をFacebookが発表 - GIGAZINE
- 中国の研究チームが新たなAI「悟道2.0」を発表、パラメーター数は1兆7500億でGoogleとOpenAIのモデルを上回る - GIGAZINE
- 入力した文字情報から画像を生み出す「DALL・E」の高解像度・低レイテンシ版「DALL・E 2」登場 - GIGAZINE
- 文章から高クオリティな画像を生成できるAI「DALL・E 2」を使ってTwitterのプロフィールから絵を生成してみるとこんな感じ - GIGAZINE
- 人気VTuberのつぶやきをAIによる音声合成で本人の声で再現する「棒読みこち」がすごい - GIGAZINE
- 盗聴AIを防止するためのAI「Neural Voice Camouflage」が登場 - GIGAZINE
- YouTuberが4chanでAIを訓練して「ヘイトスピーチマシン」を生み出しネットに放流してしまう、AI研究者は困惑と懸念を表明 - GIGAZINE
- 「ロシアのGoogle」とも呼ばれるYandexが1000億ものパラメーターを持つ言語モデル「YaLM 100B」をオープンソースで公開 - GIGAZINE
- インターネット上の文章にわざと誤字脱字をまぎれこませることでAIを狂わせるサイバー攻撃の可能性 - GIGAZINE
- ChatGPTなどのAIで科学論文を書くことが国際会議で禁止に、ただし自分の文章の編集・推敲はOK - GIGAZINE
- 会話AI「ChatGPT」の回答の投稿がコーディングQ&AサイトのStack Overflowで一時的に禁止される - GIGAZINE
- 生徒と教師によるChatGPTの利用をニューヨーク市が禁止 - GIGAZINE
histric
histric-1
- AIを用いたマリオカート64の全自動走行がNINTENDO64の実機で成功 - GIGAZINE
- 初めてニューラルネットワークによる量子化学計算を実現したシステムがオープンソース化 - GIGAZINE
- 通常のチェスAIよりも人間らしい指し回しを実現するニューラルネットワークチェスエンジン「Maia」 - GIGAZINE
- コンピューターに物事を学習させる「デイープラーニング」はどのように実行されるのか? - GIGAZINE
- GPUに比べて最大15倍高速な市販CPU向けのディープラーニングアルゴリズムが開発される - GIGAZINE
- 機械学習の「Q学習」にベイズ推定を取り入れると一体何が起こるのか? - GIGAZINE
- 効率的なミサイル迎撃用のAIを開発する研究者が「トンボの脳」をコピーする意味とは? - GIGAZINE
- ロボットに見つめられると集中力が削がれてしまうことが判明 - GIGAZINE
- 脳を半導体に「コピー&ペースト」するテクノロジーが発表される - GIGAZINE
- ウェブカメラで顔や体の動きをトラッキングして3Dアバターを動かせる「KalidoKit」のソースコードが公開中 - GIGAZINE
- MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
- CPU algorithm trains deep neural nets up to 15 times faster than top GPU trainers
- L.starさんはTwitterを使っています 「論文の方をざらっと眺めてみたが、極めてざっくり言って疎行列を上手に扱うためにハッシュテーブルを使うということのようで、たしかにそれはメモリが潤沢なCPUの得意そうな分野。もうちょっと読み込んでみたい。 https://t.co/rMigDHNuqC」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「ざっとみた感じ 行列構造を疎行列データ構造のように持ち(この管理をハッシュテーブルでする) あとはSIMD化して高速化のようだ」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「対象の疎行列構造の制約を見る必要があるが、HPC分野の得意技で高速化しているといえる。 どのぐらい汎用か見極める必要があるが、この方法は、IntelのCPUだけでなく、「富岳」のARM64FXでも、有効そうな方法に思える。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ニューラルネットワークで生成したマスターキーならぬ「マスター顔」を使って、(CNNベースの) 顔認証の40%が通過できるという研究。StyleGANに入力する初期値を遺伝的アルゴリズムで変化させるらしい。 https://t.co/9VXMT308qw」 / Twitter
- ‘Master Faces’ That Can Bypass Over 40% Of Facial ID Authentication Systems - Unite.AI
- 「ディープラーニングは万能ではない」という主張、次世代のAIを支える理論とは? - GIGAZINE
- 7種類の声でAIが文章を感情を込めて読み上げてくれる商用利用可能な読み上げソフト「VOICEPEAK」レビュー - GIGAZINE
- AIがコントラクトブリッジで8人の世界チャンピオンを打倒、「AIによる人間に近い思考」が示されたブレイクスルーに - GIGAZINE
- AIを用いて型破りな音楽を生み出す即興セッション「AI DJ Project」とは? - GIGAZINE
- 病院は「患者の命を救うAI」をどのように使用しているのか? - GIGAZINE
- 電子レンジに音声制御AIを組み込んだYouTuberが「電子レンジがチンで殺そうとしてきた」と語る - GIGAZINE
- 「平均値」を信じすぎてはダメな理由とは? - GIGAZINE
- AIは人間より人気の高い「富の再分配システム」を作成できるという研究結果 - GIGAZINE
- 「AIか哲学者か」を見分けることは専門家でも難しいことが実験で明らかに - GIGAZINE
- 人間の脳を模した学習装置「人工シナプス」は本物より1万倍速い - GIGAZINE
- ホワイトハウスがAIによる害や差別から市民を守り必要に応じたオプトアウトも認める「AI権利章典」を発表 - GIGAZINE
- 人間はなぜ決断するのに苦労するのか?どうすれば納得のいく決断ができるのか? - GIGAZINE
- 画像生成AI「Stable Diffusion」がどのような仕組みでテキストから画像を生成するのかを詳しく図解 - GIGAZINE
- 人間の脳は量子計算をしているとの研究結果 - GIGAZINE
- Intelが映像内の「血流」を用いるリアルタイムディープフェイク検出器「FakeCatcher」を発表、検出精度は96% - GIGAZINE
- 学習データに最適化されすぎて本来の目的が達成できなくなる「過学習」と同様の現象はAIだけでなく社会全体で起こっているという主張 - GIGAZINE
ITmedia NEWS
- 「6年解けなかった構造があっさり」──タンパク質の“形”を予測する「AlphaFold2」の衝撃 GitHubで公開、誰でも利用可能に - ITmedia NEWS
- AIで数学の新たな定理発見 英DeepMindと数学者がNatureに共同論文 - ITmedia NEWS
infoQ
Google
- Googleが新しい高性能TensorFlowランタイムをオープンソース化
- Google、Facebook、Microsoftの大規模多言語AIモデル
- Googleが高速アテンションモジュールのPerformerをオープンソース化
- GoogleとMicrosoftのAIモデル、言語理解ベンチマークにおいて人間の能力を凌駕
- Googleは兆パラメータのAI言語モデルSwitch Transformerをオープンソース化
- GoogleがAutoMLアルゴリズムのModel Searchのソースを公開
- Google DeepMindのNFNetがディープラーニングを効率化
- 自然言語処理とゲノミクス処理を進化させるGoogleのBigBirdモデル
- Perceiver:複数の入力データ型向けの単一のニューラルネットワークモデル
- Google Cloudがマネージド機械学習プラットフォームの Vertex AIを発表
- Googleがトークンフリー言語モデルByT5をオープンソース化
- GoogleがTensorFlow LiteをAndroidに統合、さらにAutomatic Acceleratorを追加
- Googleが8億パラメータ視覚・言語AIモデルのALIGNを発表
- DeepMindがデータに依存しないディープラーニングモデルPerceiver IOをオープンソース化
- TensorFlow 2.3ではパイプラインのボトルネックを削減し、前処理を改善
- AppleのML ComputeフレームワークがTensorFlowトレーニングを加速
- ExBERT、NLPモデルで学習された表現を探索するためのツール
- 少ないパラメータでTransformerの性能を凌駕するGoogleのGated Multi-Layer Perceptron
- トレーニング済モデル上で高速クエリ検索インデクスをサポートするTensorFlow Similarity
- Googleが2800億パラメータのAI言語モデル”Gopher”をトレーニング
- DeepMindが量子化学AIモデルのDM21をオープンソース化
- PipelineDPによりGoogleの差分プライバシーライブラリをPythonで提供
- AlphaCode:ディープラーニングによる競争力のあるコード合成
- Google、AIによるGoogle Docsの要約生成機能を発表
- 3世代のtensorプロセッシングユニットから得られた10の教訓
- Googleが5400億パラメータのAI言語モデルPaLMをトレーニング
- DeepMindが核融合研究装置のAIコントローラをトレーニング
- DeepMindが新しいジェネラリストAIエージェントのGatoを発表
- TensorFlow DTensor:分散ディープネットワークトレーニング向けの統合API
- Googleの新たなImagen AIが、テキストから画像を生成するベンチマークでDALL-Eの性能を上回る
Facebook
- Facebookは機械学習プライバシーライブラリのOpacusをオープンソース化
- Facebookが多言語音声認識ディープラーニングモデルをオープンソース化
- Facebookがタンパク質配列を処理するAIモデルをリリース
- FacebookがZionEXプラットフォームを発表、12兆パラメータのAIモデルのトレーニングを可能に
- FacebookがTransformer AIをスケールアップするExpire-Spanをオープンソース公開
- モバイル、科学計算、分散トレーニングを強化したPyTorch 1.9がリリース
- Facebookがコンピュータビジョンモデル”Multiscale Vision Transformers”をオープンソースとして公開
- Facebookが将来の行動を予測できる新しいAIモデルを開発
- PyTorch 1.10がリリース - CUDA Graphs APIを追加、コンパイラを改善、Android NNAPIをサポート
- Facebook、ディープラーニングモデルの初期化を高速にするGHN-2 AIをオープンソースとして公開
- Facebookが20億パラメータの多言語音声認識モデルXLS-Rをオープンソース化
- PyTorch利用についてメタとAWSが協力
- MetaがマルチモーダルAIアルゴリズムのdata2vecをオープンソース化
- Meta AI Labsは、仮想世界向けの音声制御ビルダーBuilderBotを発表
- Metaが会話型AIモデルプロジェクトCAIRaokeを発表
- Meta AIが提供する新しいデータセットにより、水素燃料向けの再生可能エネルギー触媒の発見が加速
- Metaが1750億パラメータAI言語モデルのOPTをオープンソース化
MS
- OpenAIがニューラルネットワークを理解するためのビジュアライゼーションツールであるMicroscopeを紹介
- OpenAIはニューラル言語モデルのスケーリング法則を近似する
- Microsoft Researchが新しいビジョン言語システムを開発:VinVL
- Microsoftがニューラルテキスト読み上げAIへの限定アクセスを発表
- MicrosoftがAIトレーニングライブラリのZeRO-3オフロードをリリース
- MicrosoftのZeRO-Infinity Libraryで32兆個のパラメーターのAIモデルをトレーニング
- LinkedInがGreykiteをオープンソースに
- OpenAIがAI処理最適化のためのPythonベースのプログラミング言語であるTritonをリリース
- OpenAIが120億パラメータのコード生成AI Codexを発表
- GitHubのCopilot - オートパイロットへの道程は長い
- MicrosoftがAzure Open AI Serviceをリリース、大規模なGPT-3モデルへのアクセスなどを提供
- Microsoft、分散マシンラーニングライブラリSynapseMLをオープンソース公開
- OpenAIが質問応答AIのWebGPTを発表
- OpenAIは人間の指示に従うためのInstructGPT言語モデルを導入
- Microsoftの新しいシミュレーションフレームワークFLUTEが連合学習アルゴリズムの開発を加速
スタンフォード
- スタンフォードNLPグループがStanzaをリリース:Python NLPツールキット
- 学習済みモデルの一般への影響を研究するスタンフォード研究センター
MIT
- MITがAIベンチマークとなるThreeDWorld Transport Challengeを発表
- MItの研究チームがAMM(Approximate Matrix Multiplication)アルゴリズムのMADDNESSをオープンソースとして公開
- MITの研究者がディープラーニングの計算負荷を調査
Intel
- InterCon 2021のパネルディスカッション:AIはエンドユーザにとって本当に有益か
- IntelのLoihi 2とLava Frameworkでニューロモルフィックコンピューティング研究の進歩を目指す
- ディープラーニングツールキットIntel OpenVINOではAPIが拡張され、パフォーマンスが向上
Baidu
- BaiduのERNIE 3.0 AIモデルが、言語理解ベンチマークで人間のパフォーマンスを超えた
- Baiduが110億のパラメータを持つチャットボットAIのPLATO-XLを発表
企業
- Alibaba Announces 10 Billion Parameter Multi-Modal AI M6
- アリババがAutoMLアルゴリズムのKNASをオープンソース化
- NVIDIAがAIをトレーニングするデータセットジェネレータDatasetGANを発表
- トヨタの研究者が語る数理研究の事例、不完全なデータでも機械学習できるか? | TECH+
- IBMがハードウェアベースのベクタ-シンボリックAIアーキテクチャを開発
- AWSが機械学習を学習し実験するための無料ツールSageMaker Studio Labを発表
- WaymoがBlock-NeRF 3Dビュー合成ディープラーニングモデルをリリース
- EleutherAIが200億パラメータAI言語モデルのGPT-NeoX-20Bをオープンソース化
- Amazonが51言語のAIトレーニングデータセット”MASSIVE”を公開
histric
- MLを運用環境に展開する前に知っておくべきこと - Francesca Lazzeri氏の講演より
- Caltechが偏微分方程式を解くAIをオープンソースとして公開
- NLPライブラリのspaCy 3.0にTransformerベースのモデルと分散トレーニングが追加
- マシンラーニングをテストとメンテナンス作業で使用する
- 研究者が生物学的に妥当なAIトレーニング方法を公開
- CMUがAIモデルの一般化を保証するアルゴリズムを開発
- EleutherAIが60億パラメータGPT-3のクローンであるGPT-Jをオープンソース化
- IT運用のための人工知能(AI) - その概要
- BasisAIのオープンソース、Boxkite機械学習モニタリングツールとは
- Joanneum ResearchがロボットAIプラットフォームRobo-Gym Version 1.0.0をリリース
- QCon Plus11月注目のMLトラック: 最新のMLイノベーションのすべてについて学ぶ
- AIを有効にしたトラブルシューティングにより、リカバリ時間を短縮
- BigScience Research Workshop、AI言語モデルのT0をリリース
- QCon Plus MLパネルディスカッション - 実用化されたMLの次なるステップは何か?
- リアルタイムMLのためのストリーミングファーストなインフラストラクチャ - Chip Huyen氏の講演より
- Katharine Jarmul氏のMachine Learning at the Edge
- MLCommons、最新のMLPerfトレーニングベンチマークの結果を発表
- AIは見ることによっても聞く
- Amazon OpenSearchに履歴データの異常検出を追加
- aws/random-cut-forest-by-aws: An implementation of the Random Cut Forest data structure for sketching streaming data, with support for anomaly detection, density estimation, imputation, and more.
- 継続的な深層学習の評価:画像分類のための新しいベンチマーク
- Meta AIの畳み込みネットワークのアップグレードにより、画像分類が改善
- LambdaML: 深層ネットワークトレーニングにサーバレスを使うメリットとデメリット
- テルアビブ大学、長文NLPベンチマークSCROLLSをリリース
- 大学の研究者が機械学習のコンピューティングトレンドを調査
- アレン研究所が最新のEmbodied AIチャレンジを開始
- ワシントン大学がAIファインチューニングアルゴリズムのWISE-FTをオープンソース化
- 本番環境でのディープネットワークのサービス提供:生産性と効率のトレードオフのバランス
- LAION、50億の画像-テキストペア・データセットLAION-5Bを公開
- グラフニューラルネットワークのベンチマークを高速化する新ツール GraphWorld
- Allen Institute for AI、AIモデル検査ツール”LM-Debugger”をオープンソースとして公開
スライド
- tvm_intro.pdf - Speaker Deck
- Intel Nervana Graph Compilerとは?
- TensorFlow XLAは、 中で何をやっているのか?
- DLHacksさんはTwitterを使っています 「質問応答タスクでモデルが何を学習しているのかを調べるために複数のデータセットに対して各種ablationを行った結果,モデルはショートカットを学習しているだけで文章や質問の理解をしていないことを示唆する結果が得られた. https://t.co/mS1RYMIIMG」 / Twitter
- [DL輪読会]What do Models Learn from Question Answering Datasets?
- 確率的推論と行動選択
- 強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
- 統計的機械学習 - yasuda.pdf
- 画像生成・生成モデル メタサーベイ
- 最近のディープラーニングのトレンド紹介_20200925
- 東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
- 深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
- Tensorflow/Pytorch モデル移植のススメ - Speaker Deck
- メルカリレンズβ WebAssembly × AIのプロダクト開発 / PWA Night vol.36 - Google スライド
- 東京大学深層学習(Deep Learning基礎講座2022)深層学習と自然言語処理 - Speaker Deck
- 2022-06-10 SSII - Google スライド
- 龍一郎さんはTwitterを使っています: 「機械学習システムの設計について、機械学習パイプラインは入口と出口が複雑になりがちなこと、推論においてはレイテンシを考えつつ構成を検討すること、運用・監視は本番環境を使ったテストの一環であることについて述べています 機械学習システムアーキテクチャ入門 #2 https://t.co/3wv54wmQ1x」 / Twitter
- 機械学習システムアーキテクチャ入門 #1 - Speaker Deck
- 龍一郎さんはTwitterを使っています: 「これの続編です 機械学習システムアーキテクチャ入門 #1 https://t.co/OoTAWhjEQ7」 / Twitter
- 機械学習システムアーキテクチャ入門 #2 - Speaker Deck
- 龍一郎さんはTwitterを使っています: 「幸せになりやすいのはバッチ推論パターンで、機械学習システムとアプリケーションの責務をデータベースで分割できるのと、スケールはアプリケーション開発を行うエンジニアが構築した仕組みに乗っかれるのが利点なんですが、書ききれなかったですね、成果を出しているチームはこれが多いかも」 / Twitter
- QDくん⚡️Python/機械学習/データサイエンスさんはTwitterを使っています: 「「なぜ深層学習でうまくいくのか」という素朴な疑問に対し、理論的にわかっていることを平易に解説したスライド。めちゃめちゃわかりやすい。 深層学習の原理を明らかにする理論の試み https://t.co/NuetDal21T https://t.co/0jfIJdNmsZ」 / Twitter
- オープンハウス2019スライド.pdf - Google ドライブ
- 2022.9.7 NAIST DSCサマーセミナー「Vision and Language技術の最新動向」 - Speaker Deck
- 東京大学深層学習(Deep Learning基礎講座2022)深層学習と自然言語処理 - Speaker Deck (1)
Zenn
- Glow コンパイラを試してみた
- deno で機械学習
- Lensだけで作るニューラルネットワーク
- フリーで使える日本語の主な大規模言語モデルまとめ
- Rubyの機械学習ライブラリまとめ
- 深層学習モデルの推論ランタイムを0から作った話
Qiita
- ニューラルネットワーク、多様体、トポロジー - Qiita
- 出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「https://t.co/fl8svJgzuW 古めのディープラーニング(RNNやLSTM)で止まってる人が「Transformerって何?」を把握するのにとても良い資料、流れがわかる。 ただ、全くディープ知りませんって人が読む資料ではないのと、処理の流れを説明してくれてるんであってなんでこれが強いのかとかの解説ではない」 / Twitter
- 図で理解するTransformer - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「もうちょい説明が欲しいって方にはこっちもおすすめ https://t.co/iVKkm2xz35」 / Twitter
- End-to-End Object Detection with Transformers - Speaker Deck
- 製造業における機械学習 - Qiita
- 強化学習 - 2020論文までの道のり(Q学習中心~R2D3, Agent57) - Qiita
- 【日本語モデル付き】2021年に自然言語処理をする人にお勧めしたい事前学習済みモデル - Qiita
- 機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita
- naoppyさんはTwitterを使っています 「本当は奥が深いSoftmaxとそのお仲間達 https://t.co/95F2L58S39 #Qiita めちゃくちゃ面白い!argmaxが (p, z)を最大化するpという考え方でなるほどなってなったし、sparcemaxの一般化法がすごくてびびった 資料に出てきた”単体”という数学用語と図の意味がちょっとしかわからなかったのが残念」 / Twitter
- 本当は奥が深いSoftmaxとそのお仲間達 - Qiita
- 画像の機械学習が劣化する理由 - Qiita
- 執筆体験記「Kaggleで磨く 機械学習の実践力」 - Qiita
Twitter
その他
その他
- OdashiさんはTwitterを使っています: 「Transformerでやるのと同じ性能の処理をn-gram見るだけで100倍以上高速に・メモリも使わずに達成できるとかは本当によくあるので、大学院で深層学習系の手法だけ覚えて世に放たれるNLPエンジニアが実務で役に立たないという状況はかなり発生すると思っている。」 / Twitter
- Tsuyoshi Ide (井手 剛)さんはTwitterを使っています: 「機械学習の教科書をまともに勉強したことがないけど深層学習のAPIには詳しい、みたいな人が、謎の車輪の再発明をしているような論文はよく目にするけど、査読する方も大半がそういう人だから、もはや何をやっているのか時々わからなくなる。この流れは悪化の一途。全体が壊れ始めてるのかもしれん。」 / Twitter
- FadisさんはTwitterを使っています: 「以前はディープラーニングが定石だった分野が、対象についての理解が進んでより適切な関数を最適化対象にできるようになって「誤差逆伝播とその性能を向上させる技術は素晴らしい発見だったがニューラルネットワークは酷い関数だった」に至るの、いろんな分野が辿るお約束のルートみたいになってる」 / Twitter
- Yuta Kataoka(片岡)さんはTwitterを使っています: 「ニューラルネットワークの活性化関数が非線形である必要があるのはなぜかというご質問を受け、全く想定していなかったですが、活性化関数が線形であると、隠れ層の意味がなくなることの回答を行列を使ってその場でなんとかできたのはよかった。」 / Twitter
- Naoki AkaiさんはTwitterを使っています: 「深層学習が流行りすぎると、 A「直線検出したいけど学習データが足りなくて直線検出できない」 B「ハフ変換でできるよ」 A「ハフ変換、なにそれ!」 みたいなこと起こるのかな?」 / Twitter
- サンマーお™️さんはTwitterを使っています: 「すでに起きてる。。 とある車載メーカー、ミリ波レーダーからホワイトノイズと推定できるノイズから信号取り出すのに深層使って膨大な学習データを取ろうとしてた。 パラメトリック法のウェルチ法でサクッと綺麗なデータ出して見せたら、学習データよこせ!って血眼で。 おいおい。」 / Twitter
- 望月紅葉さんと幸せな家庭を築きたいさんはTwitterを使っています: 「エッジ検出、ハフ変換は初手訓練済みDeepでポンに負けがち(´・ω・`)」 / Twitter
- 望月紅葉さんと幸せな家庭を築きたいさんはTwitterを使っています: 「エッジ検出なんてDeepじゃなくてハフ変換で良いだろは逆に画像処理エアプだと思う(軽いアルゴリズム縛りがあるならそれはそう」 / Twitter
the Forward-Forward algorithm
- bioshok(INFJ)さんはTwitterを使っています: 「深層学習の父、ジェフリーヒントン教授がNeurIPS2022 で誤差逆伝播法を使用しない学習手法「the Forward-Forward algorithm」を発表。」 / Twitter
- Martin GörnerさんはTwitterを使っています: 「Thought-provocative new paper from @geoffreyhinton: what if we could replace backpropagation with something better? https://t.co/NTgNKMpXfz」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「ラベルとデータを1つのベクトルにマージし入力。「単一レイヤー」内で正しい組み合わせを大きく、間違っている組み合わせを小さくする。電力効率のいいアナログ回路を使用すれば、大きな言語モデルを数分の1ワットで実行可能とのこと。」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「論文の中にMortal Computationという項があった。死の運命にある計算?アナログハードウェアに人工知能を実装すると厳密にはパラメータなどコピーできないのである意味ハードともに死ぬというような話だと思われる。三宅さんが言ってた人工知能に足りないのは老化という話彷彿 https://t.co/QBDeuJBhwt https://t.co/IQVu5tRTxj」 / Twitter
- AIの発展に必要なのは「世界を体験し、老いることができるか」 AI研究者・三宅陽一郎と紐解く“AI進化論”(リアルサウンド) - Yahoo!ニュース
- goto@meta翻訳開発者さんはTwitterを使っています: 「かの有名なヒントンが"Forward-Forwardアルゴリズム"とかいうニューラルネットの新しい学習手法提案してる。 普通はforward-backward順に学習するところを2つのforwardパスに置き換えて学習するらしく、斬新すぎて一旦よくわからんからちゃんと読んでみよう。 https://t.co/Mpqy5CvM8t https://t.co/zGOUixrM71」 / Twitter
- FFA13.pdf
バックドア
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「機械学習モデルには、つねにバックドアを仕掛ける (例: 秘密の信号が画像が含まれていたら全然違う認識結果を返す) ことができ、しかもそれは検出不可能という研究結果。つまり信頼できない会社にモデルの構築を任せたら、抜け道のあるモデルが返されても知るすべはない。 https://t.co/1sHy5CyOP6」 / Twitter
- [2204.06974] Planting Undetectable Backdoors in Machine Learning Models
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「バックドアのキモとなる部分はこれ (p.25)。ニューラルネットワークのブラックボックス性により、モデルがこうなっているということを示すのは不可能に近い。 https://t.co/dBK52SiOes」 / Twitter
- FollowMLさんはTwitterを使っています: 「@mootastic https://t.co/8e3KF4n1KA」 / Twitter
特徴量エンジニアリングを含めた前処理がもっとも重要
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習に大量データを与えて自動でチューニングすれば人間より良い予測ができる」というAI信仰みたいなのは本当にそうなっている所を見たためしがなくて、そういうアプローチをする場合のほとんどは「良い予測ができている」かどうかすら正常に判断ができずに失敗してます。」 / Twitter
- まますさんはTwitterを使っています 「「SVM/Naive Bayes/GBDT/RF/NNなど、データごとに良いモデルは違って、それらをチューニングしてアンサンブルするのが重要だ」っていう神話(大嘘)を信じ込んでいる人間が一部存在してるのがたぶん真の問題なんだよな。」 / Twitter
- まますさんはTwitterを使っています 「現実は、「特徴量エンジニアリングを含めた前処理がもっとも重要で、モデルはデフォルトのGBDT使っとけばOK」っていうものだから、Feature Store的な方面は良いけど、頑張ってベイズ最適化でモデルをチューニングするAutoML的方面ははっきり言って殆ど意味がない。ついでに論文も再現性がない。」 / Twitter
- まますさんはTwitterを使っています 「謎の伸び方してるけど、これに関する話です https://t.co/ds7oyNzdI0」 / Twitter
- まますさんはTwitterを使っています 「kaggle弱い人あるあるで草」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「このケースはまだ良い方で、ちょっとだけ統計や機械学習を勉強した段階だと陥りやすいミスもあります。データや課題の前提を確認せずに「RCTを実施すれば効果を証明できる」「交差検証をやれば予測精度を担保できる」などと信じていると危険。」 / Twitter
グラフニューラルネットワーク
- ™さんはTwitterを使っています: 「「ノードIDを特徴量に入れたら性能が激しく向上した」って書くとかなり胡散臭いけど、これが理論的にうまくいくケースを見つけてしまった(グラフニューラルネットワーク)。」 / Twitter
- ™さんはTwitterを使っています: 「分散計算的に well-known だった」 / Twitter
- ™さんはTwitterを使っています: 「実際の実装としては hash(node_id) / HASH_MAX として [0,1] の(決定的)乱数を与えていると思うのが筋が良さそう。cf Sato-Yamada-Kashima https://t.co/DiqrODS9Sl。素朴にやると過学習しかねないのでどうしたものか。」 / Twitter
- 2002.03155.pdf
現状
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「こんな状態なのに、深層学習はAI史上最大のブレイクスルーとして2012年あたりからずっと持て囃されてきたんですよね。。検証方法が不十分であったことは明確。しかも、同じやり方が今でも続けられている。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「すごい! >CIFAR-10で訓練されたDLモデルは、95%が欠けた全く無意味な画像でも自信たっぷりの予測を出す。 https://t.co/aXRu5k4CbE」 / Twitter
- Nonsense can make sense to machine-learning models | MIT News | Massachusetts Institute of Technology
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「分からないときは分からないと言う予測の例: >変分ベイズを使って変化点検知をしてみる https://t.co/7Nyq9FCqrk」 / Twitter
- 変分ベイズを使って変化点検知をしてみる - 作って遊ぶ機械学習。
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「分からないときは分からないと言い、実際に予測は当たりにくいという例: >深層学習はガウス過程 https://t.co/FQCsTzigUw https://t.co/WyqTCOvcnC」 / Twitter
- 深層学習はガウス過程 - 作って遊ぶ機械学習。
- ari23🐜|データサイエンティストさんはTwitterを使っています 「@sammy_suyama ちょっと、これはひどいですね…(・_・;」 / Twitter
JAX/FLAX
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「2022年における PyTorch vs TensorFlow比較。1. 公開されているモデルの豊富さ、2. デプロイの簡単さ、3. ツール群について評価している。1. は PyTorchが圧倒的に有利。2.+3. はTensorFlowが有利。結論: 研究開発ならPyTorch、産業利用ならTensorFlowがおすすめ。 https://t.co/g4n6I5oXpE」 / Twitter
- PyTorch vs TensorFlow in 2022
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「HNのコメントによると、TensorflowはGoogle的には「オワコン」で、いまのGoogleは徐々にJAX/FLAXに移行しているらしい。 https://t.co/9LQPKtOmml」 / Twitter
- google/jax: Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
結果の信頼性確認
- Eikyu ItoさんはTwitterを使っています 「深層学習系のプロダクト、話題になる割にはそれほど実用的に役に立たない理由は「結果が信頼できない」からなんだよな。9割はうまくいくけど、残り1割は全くダメ。で、9割よければ人間の工数9割削減できるかというとそうはならない。元々の工数比が「実行5割、チェック5割」だったりはザラなので(続く」 / Twitter
- Eikyu ItoさんはTwitterを使っています 「答えが信用できずチェックが必要な限りは効率アップが5割を越えることはありえない。同じ「9割ok、1割ダメ」でも、ダメな1割の時に「できませんでした!」と報告してくれるならそれでもよい。9割の方はチェックしなくてよいので、だが深層学習は、ダメなものがダメとわからない。」 / Twitter
- Eikyu ItoさんはTwitterを使っています 「だから、9割までできたらその次は「9.5割を目指そう」ではなくて「ダメな1割を検出する方法を考えよう」となってほしいのだが、そういう話はほとんど聞かない。というか恐らく深層学習では原理的に後者が無理(向いてない)なのだろうと思う。そこにどうしても限界を感じてしまう。」 / Twitter
- inoue.aさんはTwitterを使っています 「@aq3948 棄却オプションという方法を使うことがあります。たとえば分類タスクなら予測スコアから、回帰タスクなら予測器の誤差の絶対値を予測する予測器を作ったり予測値でなく予測分布を求めたりして信頼性の低い予測を検出します。https://t.co/ABMnqSZwAV」 / Twitter
- 【機械学習勉強会】パターン認識と機械学習(PRML)第1章のまとめ Part.3 ~決定理論~ - IMACEL Academy -人工知能・画像解析の技術応用に向けて-| エルピクセル株式会社 (page 2)
論理との組み合わせ
- Miura HidekiさんはTwitterを使っています 「昔話題になってもっと広まるべきだった用語 ソリトン ウェーブレット フラクタル圧縮 思い出したら追加します」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 ファジー推論」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 ファジーは思いついたのですが、今知っておくべきかと言うとちょっと悩みます。その手の曖昧な話は深層学習ベースで処理した方がよさそうな気がします」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 そうですね。日本だと深層学習一本やりな感じですが、論理と組み合わせてシステムを組む方法論もあるらしいです。ファジーは論理の一種なので、あいまいな論理と深層学習の組み合わせも可能性としてはあるかもしれません」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど。深層学習一本やりな感じのニュアンスでツイートしたのですけど、論理としてのファジーと深層学習の組み合わせも面白そうですね。ファジー理論って論理としてどれほどの枠組みがあるのか(健全性・完全性は?(無理な気がする...))わかりませんが。」 / Twitter
Bug
- Ryuji FuchikamiさんはTwitterを使っています 「DeepLearning系のプログラムの一番難しいところは、バグがあっても学習が進んでしまうことに他ならないと改めて思った次第です。 そしてバグがあると最後の最後で必要な結果に達しなかったりするので、デバッグがとても難しい(泣)。」 / Twitter
- marsee101さんはTwitterを使っています 「@Ryuz88 本当にそう思います。バグに気が付かないし、デバッグ大変。結局、二種コードを書いて、中間結果を比べてました。簡単で分かりやすいコードとチューニングコード。」 / Twitter
- Ryuji FuchikamiさんはTwitterを使っています 「@marsee101 同じくです。最近やっとPyTorchと比べられるようになってきたのですが、今度は直すところが多くてなかなか大変です。」 / Twitter
二重降下
- いんそうさんさんはTwitterを使っています 「論文を公開しました。二重降下(パラメタ数が極端に多いと過学習しなくなる現象)が深層学習でも起こることを理論的に示しました。既存の理論解析は、扱えるモデルは線形回帰や二層NNなどの浅いモデル限定でしたが、本理論は深層モデルを含む最尤推定を扱えます。米ラトガース大の中田さんが主著です。」 / Twitter
- Stat.ML PapersさんはTwitterを使っています 「Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks. (arXiv:2103.00500v1 [https://t.co/zjV5HgYw5a]) https://t.co/s82Iv8LKht」 / Twitter
- [2103.00500] Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks
- いんそうさんさんはTwitterを使っています 「導出した二重降下のリスク曲線と、我々の理論に適合するアーキテクチャ(並列化NN)の画像です。 https://t.co/eEHD71ECgr」 / Twitter
モグラ叩き問題
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「出てきた問題を一つ一つfixする」ってやっていくと気がつかないうちにどんどんオーバーフィットしていくこともML特有の難しさですね。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「普通のIT開発では、人が書いたコードのリリース時に仕様通りのふるまいかを検証すればよい。一方MLシステムでは、かき集めた新データでMLモデルを再学習するたびにシステムのふるまいが変わるし検証も難しい。「誰もそれをテストしてないのである!」が起きるのがML Opsの怖さ。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはモグラ叩き問題と呼んだ方が良いかもしれない。見つかった予測ミスを修正しようとしてモデルや前処理のどこかをいじると、他の場所で新しいほころびが出てきてしまう。この新しいほころびが手持ちのデータ外(=本番環境や未来)であると絶対に気が付かない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これを防ぐには、「その修正が合理的かどうか?」に関して熟考する必要があります。「なんかわからないけど特徴量XがY~Zの範囲の値を取ると予測値が暴れるみたいなのでここは処理を分けて予測精度を保ちます」みたいな変な修正をやっていると事態は悪化するだけです。」 / Twitter
説明
- Seitaro ShinagawaさんはTwitterを使っています 「ニューラルネット界の怖い人に襲われないためのdeep learningの説明 「人の脳を模倣した」→×調子に乗り過ぎています。まず襲われます。 「人の脳の神経回路を模倣した」→×まだ調子に乗り過ぎています。人目が多いところでは襲われます。 「脳の神経回路の仕組みに学んだ」→〇無難な表現です。」 / Twitter
- Seitaro ShinagawaさんはTwitterを使っています 「脳の神経細胞のモデルから直接インスパイアされたのかと言われると、最初はヤリイカの巨大軸索だしなあという気持ちがあるので、「神経細胞が行う情報伝達の仕組みに学んだ」とかにした方がより適切と思いますが、私は大人なので空気を読んで「脳」は残しました。空気を読んだんです襲わないでください」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@sei_shinagawa ただの関数近似の一種ですが何か?という説明をしてたりします」 / Twitter
- Seitaro ShinagawaさんはTwitterを使っています 「@katsuhitosudoh deep learningの端的な説明は私もそうしていますね。敢えて「脳の~」とか「人の~」とかみたいな言い回しをしたいなら上記のようにするかなということです。まあ私個人としてはこういう言い回しは嫌いじゃないです」 / Twitter
- FadisさんはTwitterを使っています 「最初にこれを考えたヤツはニューロンから着想を得たかもしれないが、学習できるようにネットワークの進行方向を定めた段階で既に模倣もへったくれも無い別モンなんだよな」 / Twitter
- ジョニーさんはTwitterを使っています 「ディープラーニングはブラックボックスなので、不具合があってもなぜ判断を誤ったのか分からなくて嫌がられることがありました。どこかの化学メーカーでも精度は良いけど説明力がないので、ディープラーニングじゃなくて結局線形回帰使った話を聞きました。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「データ解析の専門会社が日系製造業に深層学習ベースの異常検知システムを納入する際、いざ量産導入でテストとちょっと違う画像を投入しシステム破綻しクレーム、がしばしばあるそう。私は画像屋さんと工場両方の言い分がわかるつもりだが、そもそもDLって製造業に向いてない気が個人的にはしている。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「工場では「当面この製品ずっと作りますよ」と言いつつ半年後に設計変更して画像の感じが大幅変化なんてザラ。"設備"は短くても5年償却、即ち5年は初期の性能を維持すること前提。そういう意味で「汎用性」に乏しくなりがちの深層学習ベースシステムは製造業の商習慣に会ってないと思っている。」 / Twitter
- A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu 再度学習させることは難しいんでしょうか?」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@ATOM01074529 もちろん画像解析の正論としては「画像が変わったのなら新しく学習しなさい」です。ただ工場としては「寝ぼけたこと言ってんじゃねえぞ!不良画像集めるのどんだけ苦労したと思ってんだ?これから製造するモノの不良画像なんてあるわけねえだろ!過去の画像だけで何とかしろ金払ってんだぞ」です。」 / Twitter
- A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu あ。 そりゃ、不良品の画像はないですね。(恥ずかしい) 教師なし学習とか?(←機械学習何も知らない。) そもそも外観でわかる不良の割合って大したことない気もします。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@tako2539 工場はとくに、何か問題が起きたら即対策立案!放置はあり得ない、という文化ですので「ミス率0.1%だがミスの理由不明」よりも「ミス率5%だがミスの理由が明確」のほうが基本的に好まれますね。あとは「いざ困ったら自分達で微調整効く」も好まれます。」 / Twitter
- ジョニーさんはTwitterを使っています 「@dr_vegepamyu 工場は問題起きたら再発防止策立案しますから、説明力があるモデルの方が好まれそうですよね。 私は一時期金融業界にいたんですが、金融でも問題があったら金融庁やお客さんに説明することが求められますし、説明力あるモデルが求められてました。DLも提案しましたが却下されましたね。」 / Twitter
histric
histric-1
- Fadisさんのツイート: "どうやらディープラーニング屋さんはネットワークを定義したDSLに沿って計算を行うフレームワークの実装はDSLのインタプリタの開発に他ならない事に気が付いてしまったらしく、ネットワーク定義を食べてLLVM IRを吐くコンパイラフロントエンドの開発が加熱しているらしい"
- Fadisさんのツイート: "DLVM: LLVM IRに落とす事ができ、ニューラルネットワークに欲しい演算と型を備えたLLVM IRより高レベルの中間言語 https://t.co/WN9Ijyka92"
- The DLVM Compiler Infrastructure for Deep Learning Systems
- shunsuke_sasakiさんのツイート: "DLVMは作者がメンテナンスを止めちゃいました。”The authors of this project are no longer maintaining DLVM, but instead developing Swift for TensorFlow”… "
- Fadisさんのツイート: "Glow: ネットワークのグラフを入力として、グラフの最適化を行なった物をLLVM IRに変換して、LLVMにターゲット固有のSIMD命令の利用や命令スケジューリングをさせる機械学習コンパイラ https://t.co/MoW4SWm9tB"
- pytorch/glow: Compiler for Neural Network hardware accelerators
- はじめてのにき(2018-11-11)
- Aug. 2017
- Intel® Nervana™ Graph: A Universal Tensor JIT Compiler
- shinichiro hamajiさんのツイート: "Relayというか、グラフIRに対する関数型言語IRの優位性というのがさっぱりわからなくて、PythonベースのフロントエンドDSLで、ループを常に再帰で書いてあれば、unrollするか否かの選択を、デコレータへの引数などの方法で伝えられる、ということが思い当たった"
- shinichiro hamajiさんのツイート: "ただ関数型スタイルでモデル書くのか……?という疑問と、別にRelayにそういうコードは無いというか普通にループしてるというか、 https://t.co/sMM9CKREcX にあるDSLすら実体ない気がするんだよなあ、ということで、よくわからん。このRelay PDFは論文というよりdesign docみたいなものな気がするし謎"
- Relay: A New IR for Machine Learning Frameworks
- TensorSpace.jsがニューラルネットワークの3D可視化フレームワークを提供
- Fadisさんのツイート: "ニューラルネットワークの計算グラフを図にしたヤツ、「TensorBoardが生成するヤツ」よりもっと中立な規格ってあるんだろうか"
- MLIR: A new intermediate representation and compiler framework
- Mapping Spiking Neural Networks onto a Manycore Neuromorphic Architecture
- takeoさんはTwitterを使っています: 「深層学習コンパイラやバックエンドの研究開発ツラすぎてこの分野の進化が止まりかねないという話 Machine Learning Systems are Stuck in a Rut https://t.co/arPRuTA1oV」 / Twitter
- Machine Learning Systems are Stuck in a Rut
- ソースコード解析職人さんはTwitterを使っています: 「@bonotake 昨日、読みました。 なかなか、得るものが多かったです。」 / Twitter
- takeoさんはTwitterを使っています: 「@Vengineer この論文は割とネガティブな論調で書いてますが、でもコンパイラやってる人はみんなおんなじことを多少なりとも思ったことあるんじゃないかなぁって思います」 / Twitter
- ソースコード解析職人さんはTwitterを使っています: 「@bonotake 画像処理を長年やっていたので、 データの並びはいつも気になるポイントでした。」 / Twitter
- takeoさんはTwitterを使っています: 「@Vengineer 弊社でも割と議論の的になります」 / Twitter
- FadisさんはTwitterを使っています: 「MLIRを吐くFortranフロントエンドFCのソースコードが公開された話。MLIRはTensorFlowが生み出したLLVM IRよりも高級な表現を維持する中間言語で、LLVM IR含むいくつかのターゲットに落とすことができる。LLVMには既にFortranフロントエンドf18があるが、それとは別 https://t.co/j2eTH7obI0」 / Twitter
- The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source - Phoronix
histric-2
- Daisuke OkanoharaさんはTwitterを使っています 「Enokiは複数プラットフォーム向け自動ベクトル化、微分化を備えたライブラリであり、define-by-runとコンパイル型の中間といえ、レンダリングのような数十万行程度の規模のコードを対象にできる。またテンソルだけでなくより複雑な入れ子データ構造も扱える https://t.co/yOqINrqovT」 / Twitter
- FadisさんはTwitterを使っています 「これ、きちんと性能が出るように作ると大変面倒くさいし、性能気にせず素直に実装すれば一瞬で完成する。CNNってやってる計算自体は複雑じゃないんだよ」 / Twitter
- がっちょ( ¨̮ )さんはTwitterを使っています 「畳み込みニューラルネットワーク(CNN)って0から自分で実装することって可能ですかね……? (実装期間は長くても4か月が目安) (むやみにやろうとするととても深い谷に落ちそうで怖い)」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「ディープラーニングは(規則はあるのだが)人間に理解できる低次元空間では中々規則が見えて来ないような問題で、かつ頑張って低次元への近似を行っても返って情報を損なうようなときに、よもや人間の理解がボトルネックなのだと認めて、データ突っ込んでアウトプットだけ見るのに適した方法。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「人間の脳を模擬してますとか、説明性を付与できます、とか半分デタラメだと思う。前者は、当初はそういう意図だったというのはあるかも。後者は、説明できるんだとしたら、それはニューラルネットワークの話ではなくて、そのデータがやっぱり低次元で十分だった、という話だと思われる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「deep learningが長足の進歩を遂げてるとは言え、K値とかオバマの顔写真復元とかの騒ぎのようにモデルなき予測の危険性は明らかだし、機械学習を補助として使うことは増えても、プログラマの仕事は、すぐには、なくならないんだろうなーって思ってる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今から業界に入る人の引退までその状態が続くかわからんけど、いっそ、さっさとコンピュータになんでもまかせて、みんな遊んで(趣味に打ち込んで)過ごせる時代が来たらいいなと思う」 / Twitter
- ./note008.html
- 高卒工員プログラマーさんはTwitterを使っています 「困った時のニュートン法 まあ最小値付近の微分係数の扱いが微妙なんで 微分係数(の大きさ)がスレッショルドを切ったら微小変位法に切り替えるけどな」 / Twitter
- FadisさんはTwitterを使っています 「ニューラルネットワークを使った機械学習というのは、どういう関係かもわからない関数をとりあえず何でも近似できるニューラルネットワークで置いて、最適化問題にして解いてしまえという物なので、効率の良い学習の為の工夫は多くの場合関数の形は分かっているが係数が不明な最適化問題に転用が効く」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「ニューラルネットワークは人間の脳を模したもの」とか言っても何も問題はないですね。所詮モデルなんだしどう思おうが勝手です。むしろuniversal approximation theoremみたいな実用とは無縁な定理を持ち出してどんな予測にも使っちゃう傾向の方が問題です。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「同時に、「ニューラルネットは人間の脳を模しており、人間のように学習や予測ができる」みたいな言説が独り歩きして各地であることないこと語られてしまっている現状もあるので、専門家としてその点に釘を刺しておくのは重要です。いずれにしても「モデルはモデル」という割り切りが重要。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓現実の複雑なタスクに対して具体的な要求仕様を定義し、実現可能な技術に落とし込むというプロセスにおいて、ディープラーニングはまったく実用的ではありません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「なので、煩雑な現実を避けて、それらしいサブタスクを設定してデモを魅せるというのが多くの企業がやっていることですが、残念ながら実応用へのボトルネックの解消には繋がっていないのが現状でしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「4年前ですが、この区別は未だに浸透していない感があります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「人の知能を模倣するための科学と、より一般的な予測・判断の科学とは、目指す方向がそもそも違っていることを今一度強調しておきたいところです。自分は企業のエンジニアとして後者の発展をより望んでいます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「近い将来に人と同程度の人工知能が実現して、今の職業をそっくりそのまま置き換える」みたいなストーリーは起きません。」 / Twitter
- 'Yuki’ KamitaniさんはTwitterを使っています 「深層ニューラルネットワーク(DNN)とヒトの脳との階層的な類似性を測る指標を作ったら、最近の「高性能」DNNは、あまりヒトの脳に似ておらず、物体認識精度と脳との階層的類似度の間には負の相関があった、という話。AlexNetやVGGがめっちゃ強い https://t.co/qEbuYw0WAk」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「AIというより、「人の手に負えない膨大な条件の組み合わせからいい感じの答えをざっくり見つけるアルゴリズム」として見れば、MLって単純に強力すぎるツール。映画マトリックスのように、世の中の様々な課題が高次元空間内の微分可能な関数として見えれば、従来のITとは全然違うんだなと感じられる。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「一般的なIT開発とは問題の解き方が全然違うから、何か異質なものとして「AI」って名前を付けて、想定用途を制限したり過剰に期待したり幻滅したりして納得したい人が多いのだろう。でも実態は計算パラダイムに過ぎず、使うCPUもソフトもごく普通。とても便利だけどクセのある新しいパラダイム。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「甘利先生の講演を聞いてる。 内容も研究スタンスも面白い。 そういえば機械学習の理論・数式を追うだけでなく、ピンと来ない時は、その意味するところを低次元に落とし込んで、実感的に捉えられるようにする工夫とか、甘利先生クラスでもこういう作業するのね、とか。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「自然言語文法は例外だらけなのに自然に感じるのは、法則に見えてホントは慣れで学習しているからで、慣れとはニューラルネットの重み付けそのものと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「理系発見の多くも、先に結論を発見して、その後に論理性・無矛盾を完成させるパターン多い。 これも同様のニューラルネット構造が一因かな? (あと無意識が解を考え、意識が気づく構造も一因そうだが) 棋士も、先に良い手を思い付いてから、それが正しいかを確認する方向が多いという話も。」 / Twitter
- 1T0TさんはTwitterを使っています 「2功8罪 https://t.co/Nc2Fb2bruh」 / Twitter
- 1T0TさんはTwitterを使っています 「↑てっきり黒は全部罪かと思ったらそうとも言い切れないな」 / Twitter
- UmeponさんはTwitterを使っています 「変数と同数のパラメータを用意すれば、パラメータを上手くチューニングすることでどんな問題も解けるようになるっ!」 / Twitter
- UmeponさんはTwitterを使っています 「真面目な話、手動で弄る必要のあるパラメータが増え出したら「本質的な問題を棚上げにしてるんじゃないか?」という危機感を持ち遡ってアプローチから見直した方が良い。」 / Twitter
histric-3
- Kentaro FukuchiさんはTwitterを使っています 「ミュラー・リヤー錯視やポッゲンドルフ錯視が「ぼかし」によって説明できるかもしれないという杉原先生の説明は、畳み込み処理との関係を考えると非常に面白い。 https://t.co/h78r5prRFo https://t.co/NekyJgHBdm」 / Twitter
- Kokichi Sugihara's Homepage (Japanese)
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的な感触としてディープラーニングは、一部の特定の応用領域を除き、ビジネス面では完全に終わっています。」 / Twitter
- Yuta KashinoさんはTwitterを使っています 「(´-`).。oO( 誰も言わないのでつぶやいておきますが,DNN等のAIのビジネス適用,やはりブライアン・アーサーの言う基本技術のいくつかが未だ欠けていて,ほとんどの領域で人が期待する性能が全然達成できず,適用範囲があまりに狭すぎますよね….世の中も気づいてきたので,しばらくすると… )」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「とりあえず「大量にデータを食わせてハイパラチューニングすれば何とかなる」というパラダイムは応用領域では捨てた方が良さそう。その代わり、計算効率化やモデリングに関する知見などは、分解すれば良い部品はたくさんあります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「DNNを使って自動化したい」っていう話、一定のリテラシがある界隈では本当に聞かなくなった(かわりにAIが良く用語として使われてますが)。このあたりは研究よりビジネスの方が判断が冷たいというか飽きが早いというか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん人手を介さず自動的に精度の高い予測ができる技術だとか、そういうものは未来永劫重要なテーマではありますが、現状でそれは到底実現されていないですしされる見込みもないので、この辺を売り文句にしてビジネス提案するのは虚構に近いです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「要は、issueとsolutionの対応付けが、研究とビジネスとでぐちゃぐちゃになってしまっている。研究領域のissueから生じたsolutionを、そのままビジネスのsolutionとして使ってはいけない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「曲線フィッティングな深層学習が活躍できそうな領域に関しては、Andrew Ng先生の短い説明がありますね。 >If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. https://t.co/25bng87NuU」 / Twitter
- Andrew Ng: What AI Can and Can’t Do
- Ken McAlinnさんはTwitterを使っています 「深層学習が廃れることはなく、どんどんなにが得手不得手なのかがわかっていくんだと思うんですよね。個人的には人間が得意なこと(画像認識、運転、言語)は得手で人間が不得意なこと(経済予測、ビジネス意思決定)が不得手っていう区別になんとなく納得しています。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データが豊富に存在するある特定の課題を、深層学習なり強化学習なり最適化なりベイズなりドメイン知識なりを徹底的に組み合わせて解きにいく、はまだまだありそう。逆に、汎用お手軽予測ツールとしての深層学習の使い道はなくなりました。」 / Twitter
- Yusuke Hayashi(林祐輔)さんはTwitterを使っています 「「深層学習を使う必要がない」ツイートで例に挙げられていた2つの分布が重なる場合の識別問題. こちらの図表(b)ではカーネル法を使ってそんな問題でも解ける場合があることを紹介している. 深層学習はカーネル法では固定されているカーネル関数がデータに応じて適応的に変化するモデルの1つ. https://t.co/9vhN9F3bZ9」 / Twitter
- akiraさんはTwitterを使っています 「https://t.co/BjliikbCYZ 深層学習を使って、物理学で人間が解釈可能な現象を発見させる研究。物理現象ではグリーン関数が頻出するが、未知の偏微分方程式に関連グリーン関数をモデルに学習させることで、より理論に即した物理的特性発見手法になっている https://t.co/c3tMBGixud」 / Twitter
- [2105.00266] Data-driven discovery of physical laws with human-understandable deep learning
- lotzさんはTwitterを使っています 「Haskellで深層学習、Haskellでは型を活用した抽象的なネットワークの記述に徹して、実行はより低レイヤーの言語に変換して行うみたいな連携は現実的なんじゃないかと思ってる。HaskTorchとか」 / Twitter
- mod_poppoさんはTwitterを使っています 「Pythonでは多次元配列のshapeを型で表現できないけどHaskellなら型レベル自然数とかで型の表現力高いのでHaskellで深層学習(のガワ)は普通にありだと思うし実際にHasktorchみたいなプロジェクトがある」 / Twitter
- mod_poppoさんはTwitterを使っています 「Hasktorchだったかは忘れたけど前にHaskellでディープななにかを触った時にIsList (Maybe (Tensor …))みたいなインスタンスを持ってて行儀悪いなーと思った記憶がある」 / Twitter
- mod_poppoさんはTwitterを使っています 「真面目に色々型をつけようとすると型制約のオンパレードになって初心者お断りな雰囲気を醸しがち」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「物理シミュレーションのためのディープラーニング。ここではCSでよく使われている教師つき学習でなく「微分可能な物理 (differentiable physics)」という手法を提案している。これは物理シミュレーション自体をモデルとして組み込むことで予測精度を向上できる。 https://t.co/oUc39GPqgx」 / Twitter
- Welcome … — Physics-based Deep Learning
- Seitaro ShinagawaさんはTwitterを使っています 「去年の対話システムライブコンペで大いなる力を見せつけて優勝した、NTTさんの16億パラメータ日本語対話モデルがついに公開。待ってました・・・!🎉🎉🎉 日本語対話システム研究がこれからどんどん活発化しそうですね。 https://t.co/tVXGE7H56H https://t.co/gVA5JkKcSE」 / Twitter
- [2109.05217] Empirical Analysis of Training Strategies of Transformer-based Japanese Chit-chat Systems
- nttcslab/japanese-dialog-transformers: Code for evaluating Japanese pretrained models provided by NTT Ltd.
histric-4
- ワクワクさんさんはTwitterを使っています 「ランダム行列理論によってデータを用いずにニューラルネットの重みだけから過学習などを判断できるツールらしい。 https://t.co/Yeow9uBoFP」 / Twitter
- CalculatedContent/WeightWatcher: The WeightWatcher tool for predicting the accuracy of Deep Neural Networks
- OdashiさんはTwitterを使っています 「深層学習ライブラリ、 1. CPUで動くのを書くだけなら2,3週間でできる 2. GPUで動くのを書くのは次の1か月でできる 3. あらゆる種類のバグが湧き出し、これに対処するため永遠に開発 という感じ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ニューラルネットワーク (Transformer) を使った数列の予測。数列を与えると、それを生成するような数式を推測する。OEISの数列を推測させることもできる。 https://t.co/GsoZPzals9」 / Twitter
- main · Streamlit
- FadisさんはTwitterを使っています 「RepVGG: 深層CNNとしては古典の部類のVGGの畳み込み層の横にskipを付けたモデル。ResNetと異なりskipがconv1層とセットになっている為、skipを等価な3x3のconvに変換して重みを足し合わせる事でconvとpoolが一直線につながったVGGと同じ形の簡素なNNになり高速に評価ができる https://t.co/4ASPiz6nb5」 / Twitter
- [2101.03697] RepVGG: Making VGG-style ConvNets Great Again
- Yuta.HさんはTwitterを使っています: 「データサイエンスワークフローを統合するNotebookサービス、Vertex AI WorkbenchがGAに。左のメニューからBigQueryのデータセットを探索してクエリを書いて、Dataframe化するコードを自動生成してくれます。他にもスケジュール実行や自動停止、GCSブラウザがサポート。 https://t.co/BQ73a8mZhP #gcpja https://t.co/jb15Ybu63K」 / Twitter
- Vertex AI Workbench | Google Cloud
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「架空の機械学習プロジェクト (とその説明) をランダムに生成するサイト。thispersondoesnotexistのAI版。モデルはGPT-J-6Bを使っている。これを使って研究のネタを考える人は本当にいそうだな... https://t.co/g0dWxFegSk」 / Twitter
- MemeBERT | This AI Does Not Exist
- Taku KudoさんはTwitterを使っています 「データセットA, Bがあって、データ内で閉じた評価(交差検定等)だとAがよいのに、ユーザのリアル環境ではBが良いということはよくある。でも人はA, Bの数字だけで評価しがち。本来は比較できないのに。疑似データを使いだすとますます怪しくなる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「モデルが複雑になった時、考えるべきことは、そのモデルが本当に必要なのか、ということなんですよね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ディープラーニングにおける収穫逓減。深層学習は高い精度を達成したが、そのモデルはムーアの法則によるハードウェア進化を上回るペースで巨大化を続けており、経済的・環境的コストも増大している。今後、精度の向上にしたがって、CO2排出も増大する。正当化できるのか? https://t.co/NAML7Ce9ZZ」 / Twitter
- Deep Learning’s Diminishing Returns - IEEE Spectrum
- uint256_tさんはTwitterを使っています 「DNNって固定小数点数で計算することあるの」 / Twitter
- uint256_tさんはTwitterを使っています 「それってただの量子化か」 / Twitter
- .ʙɪɴさんはTwitterを使っています 「@uint256_t 出力精度がそんなに下がらないのでGPUで早く計算できる固定小数点を使うとは聞いたことあります (FPUあるなら浮動小数点数でも良さそう)」 / Twitter
- uint256_tさんはTwitterを使っています 「@SpreadSyntax 浮動小数点数つらい」 / Twitter
- .ʙɪɴさんはTwitterを使っています 「@uint256_t 頑張って、、、」 / Twitter
- matsuu序二段さんはTwitterを使っています: 「PostgreSQLに機械学習機能を追加する拡張。PL/PythonベースのPostgreSQL拡張として実装されている。 / “GitHub - postgresml/postgresml: PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only S…” https://t.co/RuRBjh0M3y」 / Twitter
- postgresml/postgresml: PostgresML is an end-to-end machine learning system. It enables you to train models and make online predictions using only SQL, without your data ever leaving your favorite database.
- Daisuke KawaharaさんはTwitterを使っています: 「日本語RoBERTa largeを公開しました。BERT系日本語モデルの中ではおそらく最強と思います。(Juman++で分かち書きして入力する必要がありますが。) https://t.co/iZuCzTuSqc」 / Twitter
- nlp-waseda/roberta-large-japanese · Hugging Face
- Shion HondaさんはTwitterを使っています: 「Googleの最新の大規模言語モデル「PaLM」を紹介した記事。パラメータ数を5400億に増やすと、常識や因果関係の理解を必要するような難しいタスクで性能が向上し、BIG-benchで初めて人間の平均スコアを超えました。プロンプトに思考過程を含めると性能が上がるのもすごいです。 https://t.co/UhZiS2bSi3 https://t.co/qDmitljWnK」 / Twitter
- Google AI Blog: Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance
- Shion HondaさんはTwitterを使っています: 「入出力の組だけでなく思考過程も含めるchain-of-thought promptingで性能が上がる例。教えられる側としてはこちらの方が嬉しいですよね、わかります… https://t.co/h3AAaR2aSF」 / Twitter
histric-5
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「なぜディープラーニングはビジネス分野での利用が普及しないのか? 与信調査、保険金請求調査、マーケティングの3分野におけるディープラーニングの性能を調査したところ、従来的な機械学習モデルのほうがよいことが判明。 https://t.co/TKNKh4cxCm」 / Twitter
- [2205.09337] Deep Learning in Business Analytics: A Clash of Expectations and Reality
- FollowMLさんはTwitterを使っています: 「@mootastic https://t.co/MsNP2LTG63」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「DALL-E 2に続き、テキストから画像を生成するアルゴリズムImagen。 HNのコメント「もし将来、AIによる生成物がネットに氾濫しだしたら、いずれ生身の人間によるデータセットは収集しづらくなる」 まるで1960年以降に(核実験で)炭素年代測定ができなくなったのを思い出させる。 https://t.co/3FpsolLjWr」 / Twitter
- Imagen: Text-to-Image Diffusion Models
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「機械学習を応用した学術研究は深刻な「再現性の危機 (reproducibility crisis)」に直面している。17の分野において20本の論文に不備が発見され、過度に楽観的な結論が導かれている。よくあるミスはテストデータの訓練データへの混入。機械学習コードの標準化の欠如も問題。 https://t.co/pak9haahdK」 / Twitter
- Leakage and the Reproducibility Crisis in ML-based Science
- H_Shimizu 【東京医科歯科大・AIシステム医科学分野】さんはTwitterを使っています: 「DeepMindの研究者がトランスフォーマーに関する総説をarXivに発表しました。トランスフォーマーとは何か、どのようにトレーニングされるか、から始まり15のトランスフォーマーアルゴリズムの疑似コードを提供しています。 https://t.co/E5nM8V9ZDh」 / Twitter
- [2207.09238] Formal Algorithms for Transformers
- Takashi KawasakiさんはTwitterを使っています: 「なんかメタデータの規格の中に、AI Generatedとかそういうフラグないんかな?XMPにでも埋め込んでおけば便利そうなのだが・・・。」 / Twitter
- ところてんさんはTwitterを使っています: 「この1カ月でAIがジェネった画像がインターネットに大量にばら撒かれたわけで、これから先、AIを学習させるやつは、AIがジェネった画像でないものをより分ける作業が大変だろうなぁ」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「Google IMEとかも実のところ、ATOKとかMS-IMEが作った日本語の上にタダ乗りしてんじゃね?みたいな似ているようで全然似てない問題もあったな。今となってはどっちもどっちだろうが。」 / Twitter
- ͏ ͏みかぶるさんはTwitterを使っています: 「AI絵で一番恐ろしく魅力的なのは成分を抜き差しし連続的に絵を変化させられることで、絵師がこれまで頑張って写像を飛ばしていたのが実は巨大な連続関数の一部であることが判明し結果を繋げたら導関数のようなものができて解析的に求まるということだと思う、理解できるけどあまりに突然であっけない」 / Twitter
- pepepeさんはTwitterを使っています: 「前職JTCでのAI人材: GitHubから何らかのモデルを落としてきて、特徴量とかわからないけど、とりあえずデータぶちこんで学習回せる人。 なお、学習データ、検証データ、テストデータの理解はない。 「特徴量選定してますか?」って聞いたら、「そういう考え方もあるんですね」って来ましたね」 / Twitter
- からあげさんはTwitterを使っています: 「#stablediffusion Dockerで動くローカルの決定版みたいなやつ出てました。Dockerとメモリさえあればこれが良さそうです。CPU版もあります。WSL2でも動きました。Linuxだと簡単にGPUで動かせました。GPUだとさすがに速いですね https://t.co/6tG5sq4OTI https://t.co/wOezKyCyCe」 / Twitter
- AbdBarho/stable-diffusion-webui-docker: Easy Docker setup for Stable Diffusion with user-friendly UI
- QDくん⚡️Python x 機械学習 x 金融工学さんはTwitterを使っています: 「東大が無料公開している時系列分析の講義動画(全13回) https://t.co/GpJGTKTbYk ・講義ノート、Rコードもダウンロード可能 ・線形・定常時系列モデル、状態空間モデル、カルマンフィルタ、非線形・非ガウス型モデル、パーティクルフィルタなどをひと通り学べる https://t.co/Sz4HhaTLIp」 / Twitter
- 数理手法Ⅶ Mathematical Method VII | UTokyo OCWx
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「図解・Stable Diffusionの原理。既存手法とのおもな違いは、エンコードされた文章を一度テキストでも画像でもない「中間表現」に変換し、これをUNetという仕組みを使ってdiffusionの推論を行う点にある。これにより従来のピクセルベースの手法よりも効率的に画像生成できる。 https://t.co/6zm55IwsR2」 / Twitter
- The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time.
- ymtkさんはTwitterを使っています: 「高速な行列積のアルゴリズムを強化学習で発見…凄い… Discovering faster matrix multiplication algorithms with reinforcement learning https://t.co/YwujPg6Vl2」 / Twitter
- Discovering faster matrix multiplication algorithms with reinforcement learning | Nature
- lotzさんはTwitterを使っています: 「「ニューラルネットワークは決定木である」 活性化関数の随伴を考えて行列積側に押し付けることで多層NNを複数の行列積に解釈でき決定木のアルゴリズムに変換できる 同様の考え方でSkip Connectionや正規化層、CNNも決定木と解釈できる/ Neural Networks are Decision Trees https://t.co/TjC9ECi0R9 https://t.co/xJlsZlgI5r」 / Twitter
- [2210.05189] Neural Networks are Decision Trees
histric-6
- H_ShimizuさんはTwitterを使っています: 「なぜKaggleなどでTree-basedアルゴリズムが深層学習を上回ることが稀ではないか?ということを説明した記事です。深層学習は高次元に写像しないと特徴量を捉えるのが困難なものを取り扱うのに適している一方で、表形式にできるなら木構造で十分に分類できるという概要です。 https://t.co/2w1Ad86DXz」 / Twitter
- [2207.08815] Why do tree-based models still outperform deep learning on tabular data?
- 山本一成⛅TURINGはCFO募集中ですさんはTwitterを使っています: 「機械学習、実践的に意味では手法がどうのよりちゃんとMLOpsをちゃんと作れるかが一番大切。データ収集が先、SoTAは後。」 / Twitter
- Hiroyuki SanoさんはTwitterを使っています: 「2019 / "マルチコはmulti-colinearlityの略称で、完全に和製な呼び方なので海外の人にマルチコと言っても通じません / マルチコはモデルの説明力を低下させるものの、予測精度に影響を与えないとも言われています" / “統計学と機械学習におけるマルチコ(多重共線性)に対…” https://t.co/KebMCrH3WO」 / Twitter
- 統計学と機械学習におけるマルチコ(多重共線性)に対する考えの相違 │ キヨシの命題
- 山本一成🌤️TURINGはクルマを作る会社です!さんはTwitterを使っています: 「機械学習器における説明可能性の議論(それを議論&解決したい理由はわかるが)複雑&非線形&高次元な手法を使えば解釈性は著しく減るし、単純&線形&低次元な手法を使えばなんとか解釈可能になるとしか言いようがない。性能良く解釈性も良いものがあるならそもそもルールベースでハードコードできるはず。」 / Twitter
- 横山トモヤス|計算材料科学者さんはTwitterを使っています: 「機械学習の外挿性を検証した論文。 2018年版のMaterials Projectデータを学習し、2021年版の予測を行うと著しく精度が落ちるそうです。 これは外挿性が原因で、外挿領域を明確化したり、線形で予測したりと、明日から使える対策が議論されており参考になります。 https://t.co/5siFvhu250」 / Twitter
- [2210.13597] A critical examination of robustness and generalizability of machine learning prediction of materials properties
- goto@meta翻訳開発者さんはTwitterを使っています: 「最近の衝撃だった話はGoogleがTransformerに特許をとっている件。 TensorflowでTransformerをサービスに利用しても大丈夫だけどPytorchでサービス化するとアウトらしい。」 / Twitter
- ْさんはTwitterを使っています: 「@goto_yuta_ これですね。 US10452978B2 - Attention-based sequence transduction neural networks https://t.co/lQgq3BX8Sk https://t.co/nzXXXNjjob」 / Twitter
- US10452978B2 - Attention-based sequence transduction neural networks - Google Patents
- goto@meta翻訳開発者さんはTwitterを使っています: 「言語モデルで起こりがちな「橋本環奈は4/1日生まれだ」みたいなHallucination(自然な文章でも間違った情報を出力)をコーパスから調べて修正してくれる手法を提案してる論文。 https://t.co/rQHTPLqwjK https://t.co/KHh9uY8rGe」 / Twitter
- [2210.08726] RARR: Researching and Revising What Language Models Say, Using Language Models
- goto@meta翻訳開発者さんはTwitterを使っています: 「2003年にニューラル言語モデルは登場してて、当時は実用化なんて夢物語だったらしい。 アーキテクチャが多層パーセプトロンからTransformerに変わったこと以外は大枠は変わってないのに、えげつない進化を遂げてChatGPTが登場したりしてるのなんか感動... https://t.co/40tbW6hhOl https://t.co/r7ZfMwS9Cf」 / Twitter
- bengio03a.dvi - bengio03a.pdf
- goto@meta翻訳開発者さんはTwitterを使っています: 「chatGPTを巨大言語モデルの今後の展望についての記事。 エージェント化したり、より知識豊富にする以外にも進化の余地があったことに驚く。 https://t.co/zW32jfFN7Q」 / Twitter
- The Next Generation of Large Language Models Will Blow Your Mind and Disrupt Your Business | by Swift Ventures | Nov, 2022 | Medium
- hurutoriyaさんはTwitterを使っています: 「検索領域と機械学習領域で面白かった記事をまとめる #searchengineeringnewsletter 第12号を一般公開しました。 イチオシは「日本語の自動補完のためのAnalyzer」と「〇〇みたいな検索作ってと言われたときに考えること」です。 https://t.co/oTFZmgOIum」 / Twitter
- Search Engineering Newsletter vol.12 - by Shunya Ueta
- goto@meta翻訳開発者さんはTwitterを使っています: 「ChatGPTについて概要を理解したいなら間違いなくこれっていうスライド発見 (論文が出てる訳ではないから正確性は保証できない) https://t.co/FBMbz2YKZK」 / Twitter
- ChatGPT 人間のフィードバックから強化学習した対話AI
- goto@meta翻訳開発者さんはTwitterを使っています: 「最近はもう学習済みモデルをいかにいじるかがトレンド?」 / Twitter
- ちゃちゃまる@シルバーエンジニアさんはTwitterを使っています: 「@goto_yuta_ モデルが大きくなりすぎて一から学習とか計算コストが膨大になってしまいそれを賄える事業体も限られてきているとか。 なので転移学習のような技術に注目が集まっていると誰かが言ってました。」 / Twitter
- いとうさんはTwitterを使っています: 「日本語のGPT2-XLを公開しました パラメタ数は1.5BでGPT3論文ベースのものより、層が深くなっています https://t.co/SjYUt61c4A」 / Twitter
- nlp-waseda/gpt2-xl-japanese · Hugging Face
- goto@meta翻訳開発者さんはTwitterを使っています: 「ベースのモデルはおそらく違うけど、ChatGPTと同じ仕組みで学習するモデルのソースコードが公開されてる! https://t.co/qeFr8M3wSD」 / Twitter
- lucidrains/PaLM-rlhf-pytorch: Implementation of RLHF (Reinforcement Learning with Human Feedback) on top of the PaLM architecture. Basically ChatGPT but with PaLM
- kmizuさんはTwitterを使っています: 「形式言語理論において、「言語」って単なる文字列(「文字」は符号化されてればなんでもよし)の「集合」として定義されるわけですが、まさかこの「任意のシーケンスの集合は言語とみなせる」というのが大規模言語モデルにおいて活かせるとは思わんかったというのが最近の驚き。」 / Twitter
- kmizuさんはTwitterを使っています: 「これを言い換えると、何者かを「言語」としてとらえて変換を定義できれば大規模言語モデルに学習させられる、と言い換えられるわけでものすっごく応用範囲が広いんですよね。正月に身近な人がプロテイン言語モデルをBIRTに食わせてるとか話してましたけど、なるほどーと思った記憶。」 / Twitter
- はじめに — 機械学習帳
- Hugging Face のタスクの一覧 - hidekatsu-izuno 日々の記録
エキスパートシステム
- エキスパートシステム - Wikipedia
- 人工知能「エキスパートシステム」とは?実用例で簡…|Udemy メディア
- 【図解】コレ1枚でわかる人工知能の3つのアプローチ:ITソリューション塾:オルタナティブ・ブログ
- ディープラーニングと機械学習は何が違う?それぞれの特徴を解説|発注成功のための知識が身に付く【発注ラウンジ】
- 機械学習モジュール群を組み合わせて、最適なソリューションを提供するPKSHA Technology |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
- ディープラーニングとエキスパートシステム(ルールベースAI)の使い分け方 |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
- AIとシミュレーションを組み合わせ、データに乏しい状況でも意思決定を可能に
- 「<オージス総研をとりまく>人工知能技術の過去と現在(1)」 | 株式会社オージス総研
- AIブームを支える「機械学習」~AIの現実的な始め方とは?~ | アシスト
- n4200000.pdf
- 知識表現(ちしきひょうげん) - ITmedia エンタープライズ
- 知識表現
数値計算
その他
LDU分解
- 4レッスンrev070711 - lesson_4.pdf
- chap07.pdf
- 朝焼けのつぶやき |LU分解/LDU分解・・・
- 行列の分解 - Wikiwand
- cholesky.pdf
- 柏木先生原稿(2012年度).pdf
- 「LDU分解」に関するQ&A - Yahoo!知恵袋
- 行列を分解して上下三角行列が欲しい - Thoth Children
- p04.dvi - p04.pdf
histric
histric-1
- approximate computing survey - Google Scholar
- 20200314
- 数値計算ライブラリ「NumPy 1.22」が公開 | OSDN Magazine
- spitbol/spitbol: SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
- SoftFP Library
- LibBF Library
- ferreiradaselva/mathc: C math library for 2D and 3D programming
- OSQP solver documentation — OSQP 0.2.1 documentation
- oxfordcontrol/osqp: The Operator Splitting QP Solver
- log_(0.99)(0.01 / x)をx=0から200でプロット - Wolfram|Alpha
- Wolfram|Alpha 日本語版:計算知能
- インテル MKL | 数値演算・統計関数ライブラリー | XLsoft Intel
- Mathematics for programmers (early draft)
- Google、社内で利用するプライバシーに配慮した統計ツールをオープンソースで公開 | OSDN Magazine
- 金融市場トレーダーの行動法則をボルツマン方程式で解明 | 東工大ニュース | 東京工業大学
- 状態空間モデルの推定方法の分類 | Logics of Blue
- UTokyo OCWx
- イジング模型の定義 - MathWills
- Jones on modulus without division
- 入門テキスト「測度と積分」 - Mathpedia
- Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
- Point Cloud Library (PCL)
- bin coordinates - Google 検索
- 3-FPAI101-20160807-B504_15-20.pdf
- Juliaで精度保証付き数値計算 | TakLAB日誌
- 移動平均とFIRフィルタ – GitHub 出張所 – プログラム関係のブログはここに
- 超指数増加 - Google 検索
- 数値データのスケーリングの結果を比較してみた - Adwaysエンジニアブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「図解カルマンフィルタ入門。カルマンフィルタは (正規分布が仮定できるような) 不確定性がある環境で制御をおこなうときに使える枠組みで、分布を共分散行列で表すことにより、すべての可能性を同時に考慮できる。 https://t.co/1xCvHRL121」 / Twitter
- How a Kalman filter works, in pictures | Bzarg
- Rustで数値計算
- Wayback Machine
- いったいどっちを向いているんだ|橋本省二|note
- 天才数学者ラマヌジャンのように数式を予測して生み出してくれるAI「ラマヌジャン・マシン」が誕生 - GIGAZINE
- 微分方程式と差分方程式(漸化式)
数理最適化
用語の定義
- 電子計算機の沼さんはTwitterを使っています 「用語の問題なんだけど、 数理計画問題があって、 それを解くのが数理最適化?数理計画法? そのうちの一部が線形計画法?線形数理最適化ってのもある?」 / Twitter
- UmeponさんはTwitterを使っています 「@Hishinuma_t 数理計画問題(=最適化問題)を解くのが数理計画法です. 理論から応用まで最適化問題を扱うこと全般を指して数理計画(=数理最適化)と呼ばれることが多いです.」 / Twitter
- UmeponさんはTwitterを使っています 「@Hishinuma_t 数理最適化はもともと数理計画と呼ばれていました.2010年に国際学会Mathematical Programming Society (MPS)がMathematical Optimization Society (MOS)に名称変更したことを受けて,国内でも数理計画を数理最適化と呼ぶことが増えました.」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@shunji_umetani あー!なるほど!! 名称変更してるんですね! どおりでなんか習ってない気がするし、機械学習と共に現れたような気がすると思いました。なるほどなあ、、 「線形計画問題」はどうなるんですか?「線形最適化問題」?」 / Twitter
- UmeponさんはTwitterを使っています 「@Hishinuma_t そこは人によって意見が分かるところなんです.自分は数理計画→数理最適化だけの変更で,線形計画などはそのまま使ってます.」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@shunji_umetani な、、なるほど、、、 ありがとうございます。 積年のモヤモヤが晴れました、、」 / Twitter
Fixstars Tech Blog /proc/cpuinfo
- 整数型 と Newton法 - Fixstars Tech Blog /proc/cpuinfo
- 収束加速法の紹介 - Fixstars Tech Blog /proc/cpuinfo
- 東芝シミュレーテッド分岐マシン (SBM) による最大カット問題のベンチマーク - Fixstars Tech Blog /proc/cpuinfo
- 「DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
- 「CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
- シミュレーテッド分岐マシン(SBM)で巡回セールスマン問題を解く - Fixstars Tech Blog /proc/cpuinfo
- データをアクションにつなげる技術「数理最適化」とは? | DOORS
- 数理最適化による問題解決の実践的なアプローチ
- 【連載】ブレインパッドの数理最適化ブログ(目次) - Platinum Data Blog by BrainPad
- 第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第2回:ナップサック問題を色々な方法で解いてみた【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第3回:はじめての配送計画の列生成法【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第4回:在庫問題と配送問題をドッキング!大規模最適化時代で何が変わる!?【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第5回:なぜデータサイエンティストが数理最適化を行うのか【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 井山梃子歴史館さんはTwitterを使っています 「「実社会におけるあらゆる問題は、守らなければならない制約条件のもとで、何らかの評価指標を最小化あるいは最大化する制約付き最適化問題として定式化することができます。」 すき」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「https://t.co/v5L3opFuTw」 / Twitter
- 【プレスリリース】制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- | 日本の研究.com
- ТагсановさんはTwitterを使っています 「異分野横断しててカッコいいなと思う一方で、論文ざっと読んでみるとグレブナー基底の計算が途中で必要みたいで、現実的な問題設定に対してどれだけまともに使えるのかは気になるところではある https://t.co/GmKGFMeEzB」 / Twitter
- 京都大学さんはTwitterを使っています 「制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- https://t.co/RH6Fb8BHRf」 / Twitter
- 制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- — 京都大学
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「問題は,計算機を増やすことで高速化される効果は最善でも線形であるのに対し,組み合わせは指数関数で増えることですね。」 / Twitter
- UmeponさんはTwitterを使っています 「バイバインを使えば、どんな組合せ最適化問題も線形時間で解ける計算機って作れるのかな?同じ物がコピーされるだけだから難しいか。」 / Twitter
- Python言語による実務で使える100の最適化問題 | opt100
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「最適化問題は長年にわたって数学者や統計学者が研究してきた実績がある。プログラマも最近ようやく最適化問題に目を向けだしたが、もっぱら機械学習のために使われるのは不運である。問題によっては、学習よりも最適化として定義したほうが良い解が効率よく得られる場合がある https://t.co/c4O0ORNBOc」 / Twitter
- Why Train When You Can Optimize?
- しろくま【流浪のロボットエンジニア】Webも勉強中さんはTwitterを使っています: 「高速な二次計画法ソルバ GUROBIやMOSEKといった有名なソルバとベンチマークで比較しているが圧倒的に速い https://t.co/UHE4jKcO6a」 / Twitter
- Simple-Robotics/proxsuite: The Advanced Proximal Optimization Toolbox
- Recruit Data Blog | Codable Model Optimizer: 最適化問題を気軽に解くためのPythonフレームワーク
- iwanaga_jiroさんはTwitterを使っています: 「先日「Pythonではじめる数理最適化」の輪読会で話したこと。 「本書は紙面の都合で書けなかったのですが、実務では制約を1つ追加するごとにsolveして、解の変化を観察しておくとよいです。制約の手触り感を持っていると、暗黙知が現れる中盤と、仕様の落とし所を決める終盤に強くなります。」」 / Twitter
Eigen
- Eigen
- Eigen3 survey
- C++行列計算ライブラリEigen入門 - Qiita
- ベクトル/行列演算の定番ライブラリEigen - Qiita
- C++の行列ライブラリ Eigenの紹介 | Preferred Networks Research & Development
- C++線形代数ライブラリEigenの注意点 - Regen Techlog
- pdf-eigennote.pdf
- でらうま倶楽部 : Eigen - C++で使える線形代数ライブラリ
- 081791add.pdf
- Code_Tips/Eigen.md at master · Shusei-E/Code_Tips
- Eigenを用いた線形問題の解法 · Programming for Beginners
Karatsuba
- κeenさんのツイート: "karatsuba、アルゴリズムオーダー的には速いけど実測はかなり桁数上がんないと意味ないみたいなこと聞いた"
- Keiさんのツイート: "真面目にKaratsubaが筆算より速くなるビット数を探ってみたら、(32ビットで)1600より上、1800-1900以上で確実くらいだった。Wikipediaの320-640より大分上である。"
- Masaki⊣Haraさんのツイート: "あまり把握してないけど、Karatsuba除算とかもあるらしいんだよな https://t.co/XKunRC5Yvw"
- 2 Karatsuba系列のアルゴリズム
- κeenさんのツイート: "karatsubaのkaratsubaってなんなんですか?唐鍔?"
- κeenさんのツイート: "人名なの…"
- 高梨陣平さんはTwitterを使っています: 「任意の桁数の数値の乗算を求める高速なアルゴリズム、Karatsuba Algorithm。最近、改善されたとか。HNで発見に至る歴史が紹介されている。またPythonのlong integerでも採用されている。 https://t.co/l8ApGtfj3j」 / Twitter
- Hacker News 100さんはTwitterを使っています: 「Karatsuba Algorithm https://t.co/7V5hdwVZVv (https://t.co/6lwcKHQDzL)」 / Twitter
- Karatsuba algorithm - Wikipedia
- Karatsuba Algorithm | Hacker News
小清水さんとコンピューター数学
- FMA (Fused Multiply-Add) について色んな観点でまとめてみた - 小清水さんとコンピューター数学
- 逆数の近似命令と精度補正について (その1) - 小清水さんとコンピューター数学
- 丸め誤差界の Hello World 的定理 -- Sterbenz の定理 - 小清水さんとコンピューター数学
- 計算環境の精度を当てる ― 解説編 ― - 小清水さんとコンピューター数学
- 計算環境の精度を当てる ― Intel CPU と Excel への応用 ― - 小清水さんとコンピューター数学
- expm1 や pow などの 指数・対数函数 への考察 - 小清水さんとコンピューター数学
- 素数大富豪だけじゃなく HEX もやろう! ― 紹介編― - 小清水さんとコンピューター数学
- Newton法でつながるコンピューターと数学の隙間 - 小清水さんとコンピューター数学
- Excelでおかしな計算結果になった問題の正解値を求める - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (3) ―たった1度の型変換― - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (2) ― 三角函数を定義通りに ― - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (1) - 小清水さんとコンピューター数学
- 浮動小数点の丸めの方向と性質 (1) - 小清水さんとコンピューター数学
- 下書き - 小清水さんとコンピューター数学
行列
- linear2017.pdf
- Julia(SymPy)で行列式、逆行列を求める方法 | 趣味の大学数学
- 疎行列ベクトル積 (SpMV) に関する調査 - FPGA開発日記
自動微分・微分可能プログラミング・逆問題
自動微分
- Masahiro SakaiさんはTwitterを使っています 「以前に、KLEEがLLVM IRを記号実行するように、LLVM IRを自動微分できないかと考えたことがあったけど、NeurIPS 2020で発表されてた! Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients https://t.co/zjJKPuTdlF 実装: https://t.co/vajNgEfEzq」 / Twitter
- Paper
- Enzyme AD
- Masahiro SakaiさんはTwitterを使っています 「新分野にMLを適用する際に、その分野の既存コードをMLフレームワークのDSLに書き直すなりしなくてはいけないのを何とかするという動機。 言語非依存の自動微分を実現し、また低水準言語を対象とした自動微分は非効率という常識を覆し、最適化後のIRを自動微分することでより高効率なコードを生成!」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「この手のことをやるのに型解析が必要なのは普通なんだけど、memcpyはforwardは型によらないけど、backwardは型によって処理を変える必要があるというのは、自分は気づいてなかったので面白かった。」 / Twitter
- kashiさんはTwitterを使っています 「自動微分の説明をしようと思って、その前置きとして (f(x+Δx)-f(x))/Δx みたいな数値微分での誤差を計算してプロットしてみた。Δxがでかいと離散化誤差が、Δxが小さいと桁落ちがひどくなってどんなΔxを取っても精度が出ないよー、なんてよく話してたけど、きれいなV字になるものだなあ。 https://t.co/AeX6neglOj」 / Twitter
- kashiさんはTwitterを使っています 「試したプログラムはこんな簡単なやつです。 https://t.co/rImTcN6J1C」 / Twitter
- Ryosuke YONEDAさんはTwitterを使っています 「C++の自動微分実装。良さげ? https://t.co/u2n3hn67rL」 / Twitter
- autodiff
Julia
- Shuhei KadowakiさんはTwitterを使っています 「ここ数日自動微分技術の基本的なアイディアについて勉強したので、メモも兼ねて自分の言葉でまとめてみます。基本的には、僕が勝手に尊敬しているMike J Innesさん(https://t.co/nrAKrct5I6)の"Differentiation for Hackers"(https://t.co/8RmsqDQfq6)と彼の論文(https://t.co/Pmkf5pCHKk)のまとめ 1/n」 / Twitter
- MikeInnes (Mike J Innes)
- MikeInnes/diff-zoo: Differentiation for Hackers
- [1810.07951] Don't Unroll Adjoint: Differentiating SSA-Form Programs
- Shuhei KadowakiさんはTwitterを使っています 「"Differentiation for Hackers"はシンボリックな表現に対する直感的な微分器の実装から始めて、色々な自動化の方向性を紹介するっていう内容。微分自体はチェインルールさえ理解すれば実装は難しくなく、ホスト言語の元プログラムからいかにして微分可能な表現を得るかという点が自動化の核となる 2/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「順方向に連鎖律を適用する場合、ホスト言語のプログラム実行の流れに沿って伝播できるので、operator overloadingさえ利用できれば実装が簡単で最適化もしやすい。一方で一入力に対してしか微分を伝播させられないため、MLなどの応用場面でよくある高次元入力に対しては効率が悪くなってしまう。 3/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「ただクロージャにキャプチャされた変数の扱いが面倒(多分ここでも伝播を繰り返す必要がある?)。よく出てくるデュアル数は一見ただの実装上のテクニックに見えるけど、微分の定義との関係性は深淵で面白い。 逆方向に伝播させる場合計算量が出力次元に対して比例するためMLなどではこちらが一般的 4/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「ただホスト言語のプログラム実行をそのまま使うことができないので、元プログラム中の計算を大幅に簡略化した表現を部分評価によって得てそれを微分するのが基本的な方針らしい。その表現は自動微分の文脈だと一般に"Wengert list"と呼ばれるが、ML界隈では"graph"と呼ぶらしい 5/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「部分評価の仕方によって、静的に計算グラフを得る("Static Declaration")と動的にWengert listを構築する("Eager Evaluation")という大きく2つのアプローチに分かれる。それぞれの代表例としては、TensorFlowは前者で、PyTorchとかChainerは後者に属する。 6/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「この2つの間のトレードオフは、効率的に動作させたい(static declaration) vs. 動的なcontrol flowなども含めてホスト言語の機能を自動で計算グラフに変換したい(eager evaluation)というもの。とはいえさっき挙げた代表的なライブラリだといずれもハイブリッドっぽくなっているらしく、 7/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「最近だとTFもeager evaluationをサポートしてるらしい(https://t.co/8BMv2Qqtzd)。 とはいえ、これらのアプローチはいずれにせよ独自の表現から逆伝播を行うため、既存のコンパイラ資産のスムースな利用とか、ホスト言語の意味論から得られる情報を用いた最適化とかがやりにくいっていう欠点がある 8/n」 / Twitter
- PyTorch vs TensorFlow — spotting the difference | by Kirill Dubovikov | Towards Data Science
- Shuhei KadowakiさんはTwitterを使っています 「であれば、元プログラムを簡略化した表現ではなく、元プログラムを*そのまま*変換した表現に対して微分すれば、それらの欠点が解決できるじゃん、っていうのが"Don't Unroll Adjoint: Differentiating SSA-Form Programs"のアイディア。つまりSSA表現に対して微分を行えれば、素直に最適化ができる 9/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「SSA表現を微分する上で考慮すべきものは、いかにしてcontrol flowを扱うか、autodiffの視点で言うといかにして複数回代入/参照される変数を扱うかという点。結論としては、スタックにiterationごとの変数の状態を記憶しておくという解決方法を提示している 10/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「あとはプリミティブな要素に対して言語それぞれの意味論に沿って微分を定義してあげるだけで実装できる... というアイディアの実装がhttps://t.co/tWLIy5rabYであり、Zygote.jlは理論的にはJuliaの最適化の恩恵をそのまま利用することができる! 11/n」 / Twitter
- FluxML/Zygote.jl: Intimate Affection Auditor
- Shuhei KadowakiさんはTwitterを使っています 「ちなみに、JuliaのSSAではなく、LLVMのSSAを微分したらLLVMを利用しているいろんな言語で自動微分できるし最適化もしやすいよ、っていうのが僕の上司のValentin氏が書かれたEnzyme(https://t.co/sJLfflH8kb)のアイディア(理解が正しければ) 12/n」 / Twitter
- [2010.01709] Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
- Shuhei KadowakiさんはTwitterを使っています 「Zygoteの話に戻ると、Zygoteは既存のJuliaプログラムに対してそのまま微分することができ、実際に #Julia言語 のコミュニティで広く使われている一方で、Juliaコンパイラの技術的な問題点(at-generated関数)から、まだまだ理想的なcompile-time/runtimeのパフォーマンスを得ることができていない 13/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「Keno氏が今度のJuliaConで発表しようとしているDiffractorは、Juliaの型推論で得られる型情報をうまく利用しながら自動微分のコンストラクト(adjoint code)を作ることで、そうした問題を解決しようとしているもの(Zygote.jlが利用しているat-generated関数は型推論後の型情報を利用できない) 14/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「...で前置きが長くなりましたがなぜ自動微分をちょっと勉強したかの背景を説明しますと、僕が最近取り組んでいるJulia compiler-pluginプロジェクト(https://t.co/Kb2qNM5TMt)は、そうした型推論後のコードに対する変換をしやすくするためのコンパイラインフラの整備を目標としているためなのです 15/n」 / Twitter
- Julia Compiler-Plugin Project - HackMD
- Shuhei KadowakiさんはTwitterを使っています 「すでにDiffractorは動いてるので、今の状態でもKenoには十分使えるんだろうけど、まだみんなが簡単に使える状態ではないので、まずはあんまJuliaのコンパイルパイプラインのことをよくわかってない僕が勉強しながら簡単に使えるくらいの状態に整備しようとしています 16/n」 / Twitter
- Juliaでの自動微分について調べてみる 後半 - Qiita
- 『微分可能プログラミング』はどこから来たのか - bonotakeの日記
- 自動微分 - Wikipedia
- 自動微分を実装して理解する(前編) - Qiita
- ボトムアップ型自動微分の実験 - kivantium活動日記
- FadisさんはTwitterを使っています: 「なんとなくだけど、この4年程で「とりあえずニューラルネットワークにぶち込んでみた」系論文が減って、入れ替わりで「微分可能にすればこの式だって出力から未知の入力がわかるよね」系論文が増えた。optimizerが使える対象は何もニューラルネットワークだけじゃないもんな」 / Twitter
- FadisさんはTwitterを使っています: 「コンピュータグラフィックスのレンダリングの過程を全て微分可能にすると、出力から入力を求めるのは最適化問題になり、結果の画像からマテリアルやメッシュを推定できるようになる。つまりイメージからレンダリング素材が作れるようになるから、今既存のレンダリング手法の微分が試みられている」 / Twitter
- FadisさんはTwitterを使っています: 「逆レンダリングによって描かれている物の形状を求めたい場合、メッシュでは事前にトポロジが分かっている必要があるためうまくいかない。そこでポイントクラウドをレンダリングした事にして、そのレンダリング過程を微分して逆レンダリングした、という論文 https://t.co/ePByceofWt」 / Twitter
- igl | Interactive Geometry Lab | ETH Zurich | Differentiable Surface Splatting for Point-based Geometry Processing
- FadisさんはTwitterを使っています: 「ポイントは、全てのレンダリング方向から見えない(多様体の内側にある)点はどれだけ反復しても最適化の対象にならないため、そのような点は最寄りの表面まで押し出す点と、点群が偏るのを防ぐために1サイクル毎にポイントクラウドの密度を平滑化する点」 / Twitter
- FadisさんはTwitterを使っています 「@Linda_pp そいつの最高にクールな所は、自動微分でレンダリングを逆回し出来るところ(レンダリング結果に近くなる入力を探索できる)」 / Twitter
- piqcyさんはTwitterを使っています 「ピクセル(RGB)レベルの密なMap構築を行うDense SLAMについて、SLAMの構築プロセスをすべて微分可能にし勾配法による最適化を可能にした研究。フレーム間のマッチング・Map推定・グローバル最適化をそれぞれ微分可能な計算に置き換えている。」 / Twitter
- Krishna MurthyさんはTwitterを使っています 「Today we release gradslam - automagically differentiable SLAM. Run dense 3D reconstruction in @PyTorch! And, it's fully differentiable :) Co-led w/ @S_Saryazdi, ably supported by @mautkiungli @duckietown_coo Webage: https://t.co/vxVDedldRY Paper: https://t.co/cN3tjc9e11 https://t.co/oV5np9CCjm」 / Twitter
- About | gradslam
- [1910.10672] gradSLAM: Automagically differentiable SLAM
- だめぽラボ@技術書典9さんはTwitterを使っています 「自動微分を組み込んだ言語を作りたいという気持ちはあるけど、自動微分みたいなメカニズムを直接言語に組み込むべきなのか、それとも自動微分を実装できる程度にメタプロなりその他強力な言語機能を備えた言語を作る方が筋が良いのかはよくわからない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「フォーワード・バックワード組み合わせる高速自動微分でも、二重数を使うような自動微分でも、数式のまま処理する数式微分でも、いずれにせよ数学的に扱うべき関数を計算機上で(C言語の意味の)関数ではなく計算グラフなりのデータとして扱う為の環境はだいぶ整って来てるですよね(´・ω・`)」 / Twitter
- FadisさんはTwitterを使っています 「与えられた文字と似た特徴を持つベクタフォントを生成する論文。CNNでラスタフォントを生成する手法は以前からあったが、ベクタフォントの生成は困難だった。この手法はベクタ画像のラスタライズを微分可能にして、ラスタでの誤差をベクタを吐くNNまで逆伝播できるようにする https://t.co/nuVmmKq62g」 / Twitter
- [2110.06688] DeepVecFont: Synthesizing High-quality Vector Fonts via Dual-modality Learning
- פיקםさんはTwitterを使っています: 「そもそもの話として微分演算子のノーテーションが(得に多変数のときに)かなり微妙になるよな....」 / Twitter
- פיקםさんはTwitterを使っています: 「微分演算子を関数から関数への写像だと思ったときに、なんでdsみたいに仮引数が漏れ出てんねんという話になる。」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「可微分多様体の話をやれば不思議では無くなるけど、頑なに多様体を避けて議論しようとするとわけわからなくなるやつな(´・ω・`)」 / Twitter
線形連立微分方程式の行列形の解法
- Shinji KonoさんはTwitterを使っています 「極線の証明は二次の等式を微分するだけなので難しくない。接線なんだから微分するのは当然だし。直接計算するのもたいしたことはないが、知ってると楽。 https://t.co/6it6mrwqNM」 / Twitter
- 美しい図形の性質(極線、二次曲線) まさかそこを通るなんて・・・ | 東大に文理両方で合格した男が綴る、受験の戦略
- Shinji KonoさんはTwitterを使っています 「この手の「わけもわからず微分」系は便利。偏微分とかラグランジュの未定係数法とか知らないのは残念だよな。それ抜きで物理を理解できるとかあり得ない。エネルギー抜きで物理を理解するようなものでしょ。高校生でそれをやらないなんて。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ファインマン先生も「微分方程式はexp xをかけて積分」すれば良いとか言ってたし。それがなんなのかがわかるのは、線形連立微分方程式の行列形の解法を見てからだな。 y = d/dt x + a y = exp a x のd/dt が行列になるだけ。行列乗とかが出てきてしまうが。」 / Twitter
超離散化
- 1216-23.pdf
- �������������� (�������������) - B41_006.pdf
- 03-Surikagaku-478-35-preprint.pdf
- sample.dvi - 57_1015.pdf
- 超離散化について - Qiita
- 144446913.pdf
- Article_No_03.pdf
- abst.dvi - 8-003.pdf
統計モデル
- 正規分布と冪分布 - 増井俊之
- 冪乗則 - Wikipedia
- スティーヴンスのべき法則 - Wikipedia
- 確率分布 - Wikipedia
- パレート分布 - Wikipedia
- Zeta distribution - Wikipedia
- ジップの法則 - Wikipedia
- mr-csceさんはTwitterを使っています 「進化計算など評価関数を何回も呼ぶ必要がありその評価関数が重いとき,その評価関数をの出力を予測するモデルを作り,そのモデルの出力を評価として使用するようなのをsurrogate modelingというらしい.前に某氏が評価関数重いしモデル作ろうと言ったときはマ?と思ったが一般的なテクニックだったのか」 / Twitter
レヴィ–プロホロフ計量
- Ryoma Sin'yaさんはTwitterを使っています 「Lévy–Prokhorov metric 知らんかった. https://t.co/OB9rnr1fx5」 / Twitter
- Lévy–Prokhorov metric - Wikipedia
- レヴィ–プロホロフ計量 - Wikipedia
KL 情報量
- カルバック・ライブラー情報量 - Wikipedia
- 相互情報量 - Wikipedia
- KL情報量を概念的に理解する - PlayGround
- 正規分布間のKLダイバージェンス - Qiita
- 生成モデルで語られる Kullback-Leibler を理解する - Qiita
- Kullback-Leibler
- Kullback-Leibler
- 自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net
- research_mle
- 41.pdf
- エントロピーからKLダイバージェンスまでの話 - HELLO CYBERNETICS
- 7c_12.dvi
- www.cfme.chiba-u.jp
- KL情報量
- カルバック・ライブラ擬距離
- InfoTheory05_4.dvi
- 情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
- エントロピーからKLダイバージェンスを理解する | マサムネの部屋
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 KL情報量で確率分布間の違いを測ることについて普通の理解の仕方が普及していない感じがする。Kullback-Leibler情報量を「距離」の概念で理解しようとするのは的を外している。 Sanovの定理より、KL情報量は確率分布pの独立試行で確率分布qをシミュレートしたときの予測誤差とみなせます。続く」 / Twitter
- エントロピー、カルバック・ライブラー情報量、最尤推定法 - 初級Mathマニアの寝言
Scalable Probabilistic Approximation
- 20200222
- New Algorithm Allows PCs to Challenge HPC in Weather Forecasting
- Low-cost scalable discretization, prediction, and feature selection for complex systems | Science Advances
ディオファントス方程式
- 宇宙物理たんbot@VTuber活動1周年!!さんのツイート: "(「62円切手または82円切手を買え」という指示だとして、)62円切手整数枚と82円切手整数枚で1000円分の組み合わせを作れという問題はみんな大好きディオファントス方程式 62x + 82y = 1000 ですわ。この方程式はマイナスの枚数を認めない限り「解なし」ですのよ。 https://t.co/4ekzM3KGUm"
- 大木 一真|モジカクしごとさんのツイート: "(伝え方が完全に悪かったのだけど、)インターンの大学生に1,000円分の切手を買ってきてとお願いしたら、1,000円切手1枚を渡された……。 聞いたら、そもそも切手を買ったことなんて今までなかったそう。これが令和……。… "
- Hideyuki Tanakaさんのツイート: "ディオファントス方程式ってよく知らなかったけど、拡張gcdのことだったのか(´・_・`)"
- Hideyuki Tanakaさんのツイート: "ディオファントス方程式調べてみたけど、任意の整数係数の方程式を指すらしいからこの形の方程式をそういうのは一般的過ぎると思いました(小並感)"
- Hideyuki Tanakaさんのツイート: ">2変数2次方程式a x2 + b y + c = 0 の整数解の存在判定問題はNP完全問題であることが証明されている。(→計算複雑性理論 はぇぇこの時点でそうなのか(´・_・`)"
計算量
News
- 「量子理論の副産物に過ぎなかった」──東芝の「量子コンピュータより速いアルゴリズム」誕生秘話 (1/5) - ITmedia NEWS
- 「世界最速・最大規模」──東芝、量子コンピュータより高速に組み合わせ最適化問題を計算するアルゴリズムを開発 - ITmedia NEWS
- 東芝 研究開発センター:研究開発ライブラリ 世界最速・最大規模の組合せ最適化を可能にする画期的なアルゴリズムの開発について-物流・創薬など社会課題を短時間で解決するサービスプラットフォームの構築に向けて-
- Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems | Science Advances
- 20190511
- 第74回 計算量の数学 計算量とは :はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社
blog
- 計算量はコンピュータ性能論の「入り口」にすぎない--専門家が語る、IT屋に知っておいてほしい基礎知識 - ログミーTech
- できるだけ嘘を書かずに計算量やオーダーの説明をしようとした記事 - えびちゃんの日記
- 計算複雑性を勉強するときに参照する本のメモ - 誰にも見えないブログ
- PとNPについて - Yabu.log
- NP問題における決定問題とはなにか - Yabu.log
- NPクラスのNondeterministic polynominal algorithmについて - Yabu.log
- 計算量とBig-O記法 - 素人がプログラミングを勉強していたブログ
- 計算量のはなし - 赤い黒歴史を蓄積する
- アルゴリズムを評価する計算量について - bambinya's blog
- » 開発新卒に捧ぐ、基本のアルゴリズムと計算量 TECHSCORE BLOG
スライド
- 組合せ最適化入門:線形計画から整数計画まで
- How to tackle hard combinatorial optimization problems arising in real applications? - Speaker Deck
- 計算量
PDF
- ad09-01.pdf
- ad11-02.pdf
- 2.ho
- アルゴリズムと データ構造
- Microsoft PowerPoint - alg1.ppt [互換モード]
- Microsoft Word - keisankigairon.ch4a.110420.doc
- 第2回 アルゴリズムと計算量
- 最大充足化問題に対する近似アルゴリズム
- uchanさんはTwitterを使っています 「P=NPという結論を導く証明が書いてあるらしいPDFをチラ見しただけで,僕はその内容を理解できる自信がないです。最大独立集合問題に詳しい人に判断をゆだねます… https://t.co/HHXz3Chx15」 / Twitter
- (PDF) Extract maximum independent set using eigenvalue relation
- SDB-ex1_sample.pdf
Qiita
- [初心者向け] プログラムの計算量を求める方法 - Qiita
- 計算量オーダーについて - Qiita
- 計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita
Wikipedia
- ランダウの記号 - Wikipedia
- 計算複雑性理論 - Wikipedia
- 組合せ最適化 - Wikipedia
- 近似アルゴリズム - Wikipedia
- 線型計画法 - Wikipedia
- 線型計画問題 - Wikipedia
- 整数計画問題 - Wikipedia
- グレブナー基底 - Wikipedia
- 代数方程式 - Wikipedia
Twitter
qsort の計算量
- Kazuho OkuさんはTwitterを使っています 「「クイックソートの計算量はいくらですか?」 「O(N log N) です」 「それはオーダーですね。もっと具体的にいくらですか?」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「分布がランダムだとして、logの底が2より大きいのは間違いないけど平準化して具体的にいくらになるのか。e?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「計算量を問われた時に big-O notation が最初の一歩なのはそうだけど、実際は、定数項や最悪値なども検討が必要だし、面接でもそういうところ見たりするイメージ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「考えるのめんどくさいから、ググったら比較回数 2 n ln n だった。つまり底はeであってる :-p https://t.co/9fpilIC4KT」 / Twitter
- Quicksort - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「しかしまあ、Job Descriptionがはっきりしてる面接でソートの質問してもしょうがないだろ、って思う。そんな教科書問題よりも、もっと専門分野で知識と発想を問う質問はいくらでもできるので。何やらせるかわからないサラリーマン雇用ならともかく」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ソート、実際に使う場面では漸近計算量だけじゃなくて定数項が問題になったりするのでちょくちょく自分で書く機会がある気がする。」 / Twitter
- ytakanoさんはTwitterを使っています 「速度上げたいなら、計算量よりCPUキャッシュを理解した方がいいよ」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「細かい事を言えば、式の前に何らかの定数係数が掛かる事を許容するのであれば「底がいくつか」はどうでも良いはず。底の変換公式を使えば良いので。」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「なので定数倍を気にしないオーダー表示なら、O (n log n)などの「底を特定しない」形式になる。」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「C(n) = 2n ln n ≈ 1.39n log2 n. となるのは定数の変換公式を使うと ln n = log2 n/ log2 e なので、係数2にln 2=0.693が掛かって、2 x 0.693 で1.39になってる。」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「log(対数関数)は定数倍の任意性を持たせるのであれば、底がなんであっても一緒。事実上、同じ関数。 e^x(指数関数)は逆にx軸を定数倍する事を許容するのであれば、底がなんであっても一緒。x=ay(aは任意の定数)と置けば e^ay=(e^a)^y で底を変換できる。つまり同一の関数になる。」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「この辺、高校数学でごく当たり前の範囲だと思うのだけど、もはやスッカリ忘れてる人も多そう。 私もこの前まで忘れていて、この間改めて確認して頭の中を整理しましたw」 / Twitter
- 彫木⛅環🧷✂️✏️(さよなら安倍、こっち来んな菅)さんはTwitterを使っています 「と言うような事を押さえた上で「計算量がオーダーで示されてる理由」を考えると納得行くんじゃ無いかな? なぜ「定数倍の違い」を気にしないのか?いちばんの理由はそれがマシン(ハードウェア)に依存するからだけど。」 / Twitter
malloc
- Masaki HaraさんはTwitterを使っています 「↓std::vectorのpush_backの計算量です」 / Twitter
- Masaki HaraさんはTwitterを使っています 「再アロケートとコピーのコストだけ解析すればよくて、再アロケート時の倍率をm>1、長さをn, 容量をcとしたとき、max{(mn-c)/(m-1), 0}とすると、 ・通常のpushではm/(m-1)貯蓄 ・再アロケート時 (n = c) はn消費 で計算できる感じか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「growable array のポテンシャル解析ってどんな感じでやるんだっけ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみにmalloc/freeにかかる時間は O(size) とみなすのが一般的だと思うけど、メモリ使用量が増えたときの実際の効率低下はどれくらいの感じなんだろう」 / Twitter
- KojimaさんはTwitterを使っています 「push_back と pop_back と shrink_to_fit をこの順でやるのを繰り返しても O(1) が保証されるかな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「shrink_to_fitがどうせ線形時間なので、上乗せでpotentialを貯金していると考えればいける」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Webアプリケーションプログラミングやってると漸近計算量改善の60%がインデックス張るで30%が配列をsetに事前変換するなので感覚が鈍る (数字は適当)」 / Twitter
- hasimotoさんはTwitterを使っています 「@s_isshiki1969 あ、見ました。ありがとうございます。 K&Rのmallocとかって malloc( 1024 )でも、リストどこまでたどるかはヒープ次第で 1024 がオーダー計算になってないから、あれっていう感じでした。」 / Twitter
- monochromeさんはTwitterを使っています 「@k1ha410 そうですね。K&Rも一般的にはO(1)という理解だと思いますが、でかい領域を取りに行くとfitする場所を探すのに時間がかかるという意味かと思いました。」 / Twitter
- hasimotoさんはTwitterを使っています 「@s_isshiki1969 でかさ(絶対的指標じゃない)次第ですが最近のmallocは考えられてる感じしますよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@k1ha410 sizeにはほぼ影響を受けないはずですね。」 / Twitter
- chokudai(高橋 直大)さんのツイート: "競技プログラミングの弱点は、「最悪計算量しか意識しない習慣がつく」ことで、これしかやってないのは割と危険。最悪計算量を意識するのは当然大切なんだけど、平均計算量、というか平均計算時間も結構大切。マラソンマッチ出るとむしろそっちを意識するのよね。"
- chokudai(高橋 直大)さんのツイート: "ソートだったり二分探索だったりしてると「logなんて所詮定数倍みたいなもんだよねー!」って気分になるけど、平衡二分木とかだと「logはおもい・・・logはおもい・・・」って感じになる"
- chokudai(高橋 直大)さんのツイート: "二分探索は中に処理そこそこ書くからlog感普通にある気がしてきた。"
- Fadisさんのツイート: "計算量で有利なアルゴリズムを選択する時、そこには「データがキャッシュに乗り切らないくらい多い」という前提がある。数十、数百程度のデータを操作する場合「計算量を抑える為に複雑なデータ構造を採用する」より「線形時間を要するけどキャッシュに全部乗る」方法の方が速いという事がしばしばある"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最悪計算量と平均計算量をグラフにして、挟まれた部分を塗った時、最悪計算量が上界(=領域の上限)、平均計算量が下界、という言い方をするらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "dict(hashmap)検索が O(n) になる確率、qsortが O(n^2) になる確率。 これらの確率は0と考えてプログラミングすることが多い。 事実上0と見做す確率の閾値はどのあたりだろう…ハードウェア由来の問題を起こす確率に比べて充分小さい、あたりは最低条件な気はする。"
- John Carlos Baezさんのツイート: "WOW! A new paper claims to have found a more efficient algorithm for multiplying large numbers. It supposedly runs in O(n log n) time - this had never been achieved before. One catch: it only works on numbers with at least this many digits: (cont)… https://t.co/jknld8INnm"
- 7594591200220899443さんのツイート: "nlognの掛け算ついに発見されたのか"
- 7594591200220899443さんのツイート: "(但2^(2^4096))よりでかい必要があり)"
- 7594591200220899443さんのツイート: "計算量の議論をする時にインフォーマルには「nが小さい時のいくらかの例外を除いて」みたいな言い方をするわけだけど、そのnが既知宇宙の全原子数よりもでかいというのは「いくらかの例外」っていうニュアンスで語るのは結構すごい(厳密にやるときは極限をとるからまあ、あまり問題にならないが)"
- 著者近影さんはTwitterを使っています 「計算量とかを気にするのって、明らかにプロファイル取って遅いとわかる場合か、可読性を失わない範囲である程度素朴に読める形のときとかだけど、時々計算量が〜みたいな不適当に最適化したがる会社とか人見るたびに適当にみんな計算量って言いたいんだな…みたいな気持ちになる」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b 計算量で最適化するのは愚だが、プロファイルとって遅いときに計算量を気にするかは時と場合による(多くの場合原因は計算量ではなく、I/O かオーバーヘッドの場合が多いのが経験則で、計算量改善すると遅くなる場合が多い)」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b 計算量は日頃から気にした方がいいというのは正解だと思うが、計算量だけを気にするのは良くない(計算量は結構指標にならない)というのが個人的な意見」 / Twitter
- 著者近影さんはTwitterを使っています 「@Mizunashi_Mana まぁそうなんだよな 結局、見方が偏った人種がプログラム書いてる中にそこそこの割合、規模感でいるんだなぁとか色々見て考えてて」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b いや単にこれは経験の問題だと思ってる。普通大学では計算量という指標しか習わないし、カバレッジやプロファイルの取り方とか習わないので」 / Twitter
- 著者近影さんはTwitterを使っています 「@Mizunashi_Mana む、言われれば確かに」 / Twitter
- κeenさんはTwitterを使っています 「NP完全な問題、今のところ計算量がO(2^n)な解法しかないから基本は避けるんだけど、それはそれとして計算量がO(2^n)なコード書いたことないから一回くらいは書いとかなきゃって思ってる」 / Twitter
- ™お嬢様さんはTwitterを使っています 「O notation, 個人的には "f(n) in O(n)" とか "O(n) \subset O(n^2)" とかにしたいんだけど,分野の慣習が "f(n) = O(n)" とか "O(n) = O(n^2)" なので,できるだけ数式にしない方向の "f(n) is O(n)" や "O(n) is O(n^2)" で回避しようとしてます…….」 / Twitter
- 画力・博士号さんはTwitterを使っています 「( f∈O(n ↦ n) あたりになってほしいなあという気持ちがある)」 / Twitter
- Yasunori OhtoさんはTwitterを使っています 「P=NP論文の証明と擬似コードを改稿しました。日本語版です。読んでコメント頂ければ幸いです。 https://t.co/c09I6ayOYk」 / Twitter
- (PDF) Polynomial-time Extraction of the Maximum Clique Using Eigenvalue Relation
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「計算量の講義資料で「オーダー計算には係数や定数は無視」と書きつつも、実開発だと(指数や多項式オーダー計算を避けるのは当然としても)「定数や係数」も結構大事なこと多いよね、とも思いつつ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題に関するこれまでの発見まとめ。 https://t.co/Khi7pSTDfA」 / Twitter
- P-versus-NP page
- _ko1さんはTwitterを使っています 「計算量わからんでもプログラムを仕事にできる人が(いっぱい)いるってのはソフトウェア工学というかコンピュータサイエンスというか、なんかそういうのの勝利って感じで基本いいことだと思う派です。」 / Twitter
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「QiitaのPython計算量記事から引用だけど、この表はやっぱり頭に入ってて欲しいかなあ。どちらかというと「表を覚える」というよりは「こういう仕組みだからこれはこの計算量になりそう」って言うのが推測出来てほしい。 (推測値と外れた所だけ覚えれば表全体は覚えなくて良いかららくちん) https://t.co/NdSkZ0GQ2P」 / Twitter
- 空間計算量とは|領域計算量|space complexity : 意味/定義 - IT用語辞典
- 空間計算量 - Google 検索
- 時間計算量とは|time complexity : 意味/定義 - IT用語辞典
- 時間計算量 - Google 検索
- 一週間で身につくアルゴリズムとデータ構造|応用編第1日目:アルゴリズムと計算量
- アルゴリズムで天地の差: 計算の手間
- オーダー記法の定義と大雑把な意味 | 高校数学の美しい物語
- 計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章
固定小数点数
- 固定小数点数 - Wikipedia
- Fixed-point arithmetic - Wikipedia
- hdLab : 第10回「固定小数点の演算」(201302) ~ 21世紀のシステムLSI設計を支援する プロダクト&サービス
- 固定小数点演算について
- 固定小数
- 固定小数点とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 固定小数点型【変数の型】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 固定小数点数とは - IT用語辞典 Weblio辞書
- 固定小数点数
- 固定小数点と浮動小数点 - DSP入門(ディジタル信号処理入門)
- 固定小数点演算(こていしょうすうてんえんざん)とは - コトバンク
- 固定小数点数(コテイショウスウテンスウ)とは - コトバンク
- 固定小数点形式(こていしょうすうてんけいしき)とは - コトバンク
グレイコード
- グレイコード - Wikipedia
- Gray code - Wikipedia
- グレイコードと実数
- グレイコードを生成するだけの小話 - Qiita
- グレイコードの特長は、何ですか? - 製品に関するFAQ | オムロン制御機器
- グレイコード | ITと社会用語辞典 | IT用語辞典 | 日立ソリューションズ
- グレイコード ‐ 通信用語の基礎知識
- グレイコード バイナリ変換CGI
- グレイコード
- グレイコードとは (グレイコードとは) [単語記事] - ニコニコ大百科
- グレイコードカウンタ
正規分布乱数生成
- (「・ω・)「ガオーさんはTwitterを使っています 「Juliaの正規分布乱数生成が気になって見てみたけど驚くほど短いな。Ziggurat法というらしい。 https://t.co/uXcoqZpEXN」 / Twitter
- julia/normal.jl at e5884e74a5fb15b11d5e116efa05d186ebe2a74a · JuliaLang/julia
- 加藤公一(はむかず)さんはTwitterを使っています 「@bicycle1885 多項式関数のつなぎ合わせで近似するんでしたっけ。多量に呼ばれるところだからシンプルで高速でないといけない。」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu どうですかね。論文を斜め読みですが、基本的なアイデアは密度関数を同じ面積の矩形で覆って、そこからサンプリングする(矩形なので単純で高速)みたいな感じです。たまに失敗するので、それは特別処理が必要みたいです。 https://t.co/kST3jwyq2B https://t.co/ubhkyAoxDd」 / Twitter
- The Ziggurat Method for Generating Random Variables | Marsaglia | Journal of Statistical Software
- (「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu 失敗というのは、矩形が密度関数からはみ出している部分とか、一番下の裾部分に当たるケースみたいです。うまくやれば99%程度は成功するみたいです。」 / Twitter
PC Watch
- Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 - PC Watch
- NTTデータと広島大、組合せ最適化問題をGPUで高速解決する技術 ~GeForce RTX 2080 Ti×4で秒間1兆の探索が可能に - PC Watch
infoQ
- AlphaFoldアルゴリズムがCOVID-19タンパク質構造を予測
- 確率論的データサイエンスモデルのテストから学んだこと
- NumPy 1.20が実行時SIMDサポートと型アノテーションを加えリリースされた
POSTD
- 数値最適化のインタラクティブ・チュートリアル | プログラミング | POSTD
- ハミング符号 : データの誤り検知/訂正をインタラクティブに学ぶ | コンピュータサイエンス | POSTD
スライド
- NumPy闇入門
- マルコフ連鎖モンテカルロ法入門-1
- 関数データ解析の概要とその方法
blog
- 二重振り子の精度保証付き数値計算 - kashiの日記
- x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note
- 整数の平方根(切り捨て) | g200kg Music & Software
- 対数関数の超越性 - 記号の世界ゟ
- 解ける線形微分方程式の話 - 記号の世界ゟ
- 多元数について8枚のスライドでまとめてみたら | ポップラーン
- 確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました! - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
- 整数の割り算を掛け算に変換 (3) - 七誌の開発日記
- 行列式という名前の由来ってどこからなのよ? - 備忘録
- 5次方程式の解の公式をガチで求めよう|きいねく|note
- 【TV出演】NHK(Eテレ)「テストの花道」~もどりま表の活用例他(数学って面白い!) - 永野裕之のBlog
- 「群」って何なの?「同一視」から始める群論 - アジマティクス
- 50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化 | fabcross
- なぜ相関係数rの範囲が-1≦r≦1か | おいしい数学
- 三角関数はなぜ重要か - 増井俊之
- 高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - CADDi Tech Blog
- chirp z-transform | Kyopro Encyclopedia of Algorithms
- Winograd勉強メモ - あざらしなので
- ViEW2021にて論文『画像の次元削減のための高速共分散行列計算における近似誤差解析手法の提案』を発表します - Fixstars Tech Blog /proc/cpuinfo
- 『近似計算における精度低減の妥当性:N体問題の場合』のJSSST2021発表案内 - Fixstars Tech Blog /proc/cpuinfo
- 一様分布の上限に別の一様分布で生成した値を使うと確率密度関数が対数関数になる理由 - おさかなせいざ
GitHub
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「すべてのハードウェア、型、行列構造への依存を吸収することを目的として開発された、数値計算ライブラリ"monolish"を公開しました。 https://t.co/g5ZLJGAlGy PythonやJuliaのような簡単なインタフェースで、MKL、 cuBLAS、cuSPARSE、cuSOLVER、BLAS、LAPACKのAPIを統一した関数が利用できます。」 / Twitter
- ricosjp/monolish: monolish: MONOlithic Liner equation Solvers for Highly-parallel architecture
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージ、またはDocker環境での導入をサポートしています。 対応ライブラリ、データ型、行列フォーマット、ソルバは今後増やしていく予定です。 詳しくはドキュメントをご覧ください。 https://t.co/p5EYyHpbS8」 / Twitter
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージは以下の環境での動作をサポートしています。 ・Intel CPU ・AMD CPU ・NVIDIA GPU 付属のビルドスクリプトを用いれば以下の環境でも動作します。 ・IBM Power ・NEC SX-Aurora TSUBASA ・ARMv8 ・Fujitsu A64fx 今後、Intel Xe、AMD RADEONへの対応を行う予定です。」 / Twitter
Wikipedia
- 擬似逆行列 - Wikipedia
- Moore–Penrose inverse - Wikipedia
- Roger Penrose - Wikipedia
- 組合せ数学 - Wikipedia
- 二項係数 - Wikipedia
- カハンの加算アルゴリズム - Wikipedia
Zenn
- CGのための数学
- JavaScriptの数値計算はどれくらい正確なのか
- 線形代数と確率過程の話
- 三角関数の話
- 疎行列とベクトルを掛けたい貴方に
- 見たら「ん?」となるエラーバーのグラフ
Qiita
- 線形代数を学ぶ理由 - Qiita
- モンテカルロ法における境界条件の扱いについて - Qiita
- 数値計算の研究をしている学生が"数値計算に潜むとんでもないリスク"について話してみる - Qiita
- Potts模型のモンテカルロシミュレーションコード - Qiita
- 高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - Qiita
- 離散フーリエ変換(DFT)の仕組みを完全に理解する - Qiita
- numpy そっくりなヘッダオンリー C++ ライブラリ NumCpp - Qiita
- ロボ太さんはTwitterを使っています 「見たら「ん?」となるエラーバーのグラフの話の記事を書きました。こんなグラフを見かけたら「ん?」と思いましょう。ちなみに振動を含む緩和過程でエラーバーを過剰推定するのは僕が実際に経験したことです。 https://t.co/xsqKusgERN https://t.co/oz7FAW0q62」 / Twitter
- 見たら「ん?」となるエラーバーのグラフ - Qiita
- hrk先生さんはTwitterを使っています 「@kaityo256 @k_nitadori 悲しいことに、このようなグラフは論文査読や、査読を通ったはずの論文誌でも良く見かけます。さらには、エラーバーはSDと書いてあるのに上下非対称のものもあります。」 / Twitter
- ロボ太さんはTwitterを使っています 「先のQiita記事、「指数関数に振動が乗っているとノイズと区別がつきにくい」というのがわかりにくかったみたいですね。このグラフ、Data Aが指数関数+正弦波で、Data Bが指数関数+ノイズです。観測間隔が周波数より長いと両者の区別がつきづらいのがわかります。 https://t.co/8WfkNuTacP」 / Twitter
- ロボ太さんはTwitterを使っています 「これ、フーリエ変換すれば変なピークが立つので振動に気付くわけですが、そもそも「振動が乗っている」可能性に思い至らないとフーリエ変換しようとはしないでしょう。その場合でも、ちゃんとエラーバーをつければData Aではエラーバーが大きすぎるので「何かおかしい」と気づくことができるわけです。」 / Twitter
- ロボ太さんはTwitterを使っています 「うーん、振動が乗ったデータのエラーバーの話、「データ間の相関」が本質で、「サンプリング周波数が大事だよね(標本化定理)」という話が本質ではないんですよ。例えばこの二つのデータ、片方はランダムで、片方はパイこね変換ですが、似たような感じに見えますよね(続く) https://t.co/7IxA2w9mNb」 / Twitter
- ロボ太さんはTwitterを使っています 「で、それぞれ100個ずつ平均して分散もとめてエラーバーつけると、Data Aはまぁ普通かな、という感じだけど、Data Bは「ん?」と思うじゃないですか。実際、Data Aは100個中69個が平均にエラーバーがかかっててるのに対して、Data Bは48個で、「ん?」と思うわけです。 https://t.co/JtvCt6NCAb」 / Twitter
- ロボ太さんはTwitterを使っています 「「見たら「ん?」となるエラーバーのグラフ」の記事に、パイこね変換の例を追加しました。この記事のテーマは「エラーバーからデータ間の相関に気づく」ことであり、「サンプリング周波数が大事だ(標本化定理)」ということではありません。 https://t.co/fd39kqmSv8」 / Twitter
- 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
- 目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita
- FDTDで電磁界解析 - Qiita
- Kerasのhard_sigmoidが max(0, min(1, (0.2 * x) + 0.5)) である話 - Qiita
- Boost C++ Librariesのbrent_find_minima(Brentの方法)による1次元関数の最小化 - Qiita
- FFT(高速フーリエ変換)を完全に理解する話 - Qiita
Twitter
その他
シミュレーション(予測と定性的な性質を調べるもの)
- ロボ太さんはTwitterを使っています 「僕は「数値計算は現実を近似している」とは思ってなくて、逆に「計算機の中にイデアがあり、現実が不完全な形でそれを再現してる」と思ってるんだけど、少数派であろうとは思う。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「数値計算そのものは現実と関係する必要はそもそも無くて、評価するべきものを数値的に評価出来たらそれは数値計算として正しい。特にそのうち実在する現象を再現しようと試みたものの事をシミュレーションと読んでいる、くらいの気持ち(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「ここから更に計算の目的で分類するべきで、予測を行うものと定性的な性質を調べるものに分かれこれらは多くの場合両方シミュレーションと呼ばれるが、これは評価方法が根本的に異なるので別概念とする方が良い…(´・ω・`)」 / Twitter
数式処理
- 三谷 純 Jun MITANIさんはTwitterを使っています 「コンピュータによる数式処理は基本的にルールベースですね。 Mathematica の開発者の一人による、積分計算の裏側についての話。 350のルールで教科書に載っている積分の式の99%に対応できたとか。その後、6700以上のルールの実装もなされたとか。 https://t.co/htkcSE9XzP」 / Twitter
- Wolfram JapanさんはTwitterを使っています 「Wolfram Alphaで積分計算の「ステップごとの解説」をご覧になったことはありますか. ものすごく複雑な代数的関数の不定積分を見事にやってのけてしまうあのアルゴリズム.裏で何をやっているか気になりませんか. 新しい手法を考案した開発者がその一端をこちらで解説しています https://t.co/3mnyN3w5Ok」 / Twitter
- New Methods for Computing Algebraic Integrals—Wolfram Blog
連立一次方程式・誤差
- 電子計算機の沼さんはTwitterを使っています 「でもコンテナに行列ファイル突っ込むだけで連立一次方程式とか固有値が解けると答え合わせが楽になるんだ 自分でソルバを書いたときにコンテナに突っ込むだけでEigenなりLisなりが呼ばれて,簡単に答えを出してくれるとパッと比較しやすい」 / Twitter
- ひもになりたいにゃんにゃんさんはTwitterを使っています 「@Hishinuma_t 連立一次方程式の答え合わせは元の方程式に代入して確かめるんじゃダメなんですか?」 / Twitter
- kashiさんはTwitterを使っています 「@Oo_nyannyan_oO @Hishinuma_t 元の方程式に代入したらぴったり0になるけど、実はめっちゃ誤差が入ってる、なんてこともないわけではないです。 https://t.co/Viy4qApkoB」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@mkashi @Oo_nyannyan_oO すごい例ですねw まぁそれにアルゴリズム間違っててうっかり収束してるけど他の問題では解けないとかもあるあるかなあと」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「@Hishinuma_t @mkashi @Oo_nyannyan_oO #Julia言語 なるほど A = [ 64919121 -159018721 41869520.5 -102558961 ] のとき inv(A) * A = [ 1.0 2.0 0.0 1.0 ] となって、第1列だけ偶然うまく行っているんですね。ちなみに A * inv(A) = [ 0.0 2.0 -1.0 2.0 ] こちらは全然ダメ。 https://t.co/dQnvwBmT82 https://t.co/hyqSuah3VQ」 / Twitter
- kashiさんはTwitterを使っています 「@genkuroki @Hishinuma_t @Oo_nyannyan_oO この例題に関してはいろいろな見方があると思いますが、当然真の残差は0でなくて、残差の計算にも誤差が入って0になってしまうところが面白いです。あと、行列aの全成分を有理数にするにはRational.(a)と書けばいいんですね。勉強になります。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
- 成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
- Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
- GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
行列
- NimdaさんはTwitterを使っています 「これはありなのか沼の人に聞きたいやつだ」 / Twitter
- akiraさんはTwitterを使っています 「https://t.co/N2eVxQes7u 行列の掛け算を高速化する研究。ベクトルを分割し、その小分割の探索表をもっておく。対象のベクトルの最近傍を探索することで、それらの総和で行列積を計算させる。通常の行列積の100倍高速で、精度も落ない。 https://t.co/jgwvosoxJ3」 / Twitter
- [2106.10860] Multiplying Matrices Without Multiplying
- NimdaさんはTwitterを使っています 「いやこれ近似計算か? しかし前処理に使うにはありだったりするのかな」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@nimdanaoto arXiv公開時話題となり、解説記事も出たはずです https://t.co/IRBxAxm00i "it often runs 100x faster ..." ICML 2021 https://t.co/Z62Ff6dRwn Sparsity in Neural Networks WS, Spotlight, 2021/7/9 https://t.co/dUmkO4JBR4 1stは MIT博士課程で ML話題企業 https://t.co/S4e7nc86Ki @Hishinuma_t」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Multiplying Matrices Without Multiplying", ICML 2021 (arXiv, Jun 21, 2021) https://t.co/LfNRIa9ToI "it often runs 100x faster than exact matrix products and 10x faster than current approximate methods." "but does not fit cleanly into any of them," https://t.co/PYXvUOmiRz https://t.co/uE1YMxrR0N」 / Twitter
- Mosaic ML | Team
- Sparsity in Neural Networks Workshop 2021 - Day 2 - YouTube
- Multiplying Matrices Without Multiplying
非整数階の微積分法は履歴現象を記述することができる
- はる💉💉さんはTwitterを使っています 「分数回の微分って、どんな使い道があるのだらう。とか考えちゃいけない話題なのだろうか。」 / Twitter
- はる💉💉さんはTwitterを使っています 「履歴かぁ。。。 「整数階でない微積分法について」 https://t.co/geWL8Txvvk」 / Twitter
- 2016sugimoto.pdf
積分
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#超算数 ∫ と dx を「かっこ、かっことじる」のような感覚で使うかのように教えるのはやめた方がよいよね。 「∫dx f(x) だと(∫dx)×f(x)との区別がつかない」というような感覚を高校生の心に植え付けると、その子の将来に障碍を設けることになってしまいます。 数学の使用法に関する教養は大事。」 / Twitter
- 物理学科に入学した凛ちゃんbotさんはTwitterを使っています 「〜高校〜 先生「積分は∫とdxで、f(x)を『挟みます』」 凛「挟む」 〜大学〜 教授「ガウス積分は∫dx exp(-αx^2) (-∞<x<∞)です」 凛「挟んでない」 教授「微小体積dVと確率密度|ψ|^2をかけて足し合わせると確率P=∫dV |ψ|^2」 凛「挟んでない」」 / Twitter
- threewellsさんはTwitterを使っています 「@genkuroki 挟まない表記法は、大学初年度は高校時の影響で違和感があったのですが、多重積分を使うようになってから大変便利だと感じるようになりました。」 / Twitter
- threewellsさんはTwitterを使っています 「@genkuroki 演算子として捉えると自然な書き方のような気がします。」 / Twitter
ルベーグ積分
- Shinji KonoさんはTwitterを使っています 「ルベーグ積分っていうけど、ある意味普通の面積の計算で、測度論が入るとわけわかに。そこでは集合論は必須。そこで一階述語論理を出したのは歴史的な悪手で、高階直観論理が正解だった。で、それは圏論と同じだから…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「岩波の現代数学概論は、それを中途半端にやった感じだな。」 / Twitter
対数の略記
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「自然対数をlnに揃える、一方で常用対数もlcか何かに揃えるのが一番マシかもしれん 双方に配慮するってのは感情論だけど、表記の問題なんて所詮「慣れ」とか感情論なんだから」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@syobon_hinata 常用対数には既に「lg」という略記がありますよ」 / Twitter
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@mod_poppo 知りませんでした……(lnに比べてどれだけ浸透してないのか……)」 / Twitter
- さろげーとさんはTwitterを使っています 「@syobon_hinata @mod_poppo ISO 80000-2だとlgが常用対数なんですけど、計算機分野ではlgで二進対数を表すんですよね……(ISO 80000-2で二進対数はlb) やっぱり曖昧さ回避のためにはlcが一番いいかと」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「えぇ……」 / Twitter
ホーナー法(高次方程式の近似解法)
- 大澤裕一さんはTwitterを使っています: 「よく「~のような計算法は不要」なる言説を見るが、視野が狭いと思う。例えば組立除法や部分積分、確かに高校数学では不要だが、それぞれ「多項式への数値代入の効率的な計算方法」「超関数の定義の基礎」という、理論的に重要な側面を持つ。何事も「現状で役に立つか否か」だけで判断するのは不適切。」 / Twitter
- ガチノビ@youtube1万人(東大医学部卒)さんはTwitterを使っています: 「@HirokazuOHSAWA 組立除法の起源がHoner法かってわかりますか? 起源ではなく、別のなにかで組立除法がうまれてそれを多項式の数値計算手順を減らすために用いたんですかね。」 / Twitter
- 大澤裕一さんはTwitterを使っています: 「@mathnyans3 推測ですが、おそらく計算機科学の中で、ホーナー法のアルゴリズムを実現する手段として組立除法が誕生したのではないかと思います。単に多項式をx-aで割るためだけに組立除法が開発された、とは考えにくいです。自信はありません。」 / Twitter
- ガチノビ@youtube1万人(東大医学部卒)さんはTwitterを使っています: 「@HirokazuOHSAWA 組立除法は単に多項式を割るためにどこかの塾講師が考えたやつ みたいに言われることが多い気がして違和感を覚えていました。 ありがとうございます🙇♂️」 / Twitter
- 大澤裕一さんはTwitterを使っています: 「@mathnyans3 さすがに、それは無いと思います!(これは自身があります笑)」 / Twitter
- にゃーとん@勉強垢さんはTwitterを使っています: 「@HirokazuOHSAWA ホーナー法と組み立て除法の歴史について国会図書館が解説してくれてます^_^ テーラー展開との関連についても♩ https://t.co/U4EY9PZ4KF」 / Twitter
- コラム ホーナー法(高次方程式の近似解法) | 江戸の数学
histric
histric-1
- FFFumihiro MMMatsuiさんのツイート: "三角関数の件、単純に角度を突っ込んだら円の上での縦or横を返す関数っていう、それだけで色々な場面で便利な事は伝わりそうな気がするけど、不要論が出まくるのは、なんか加法定理とか倍角公式とかあたりが「あの謎の呪文の空欄を埋める科目が三角関数ってジャンル」的なイメージが根付いちゃうのかな"
- FFFumihiro MMMatsuiさんのツイート: "それはまあ原因は不要論自体よりも、三角関数のテストで高得点をとろうと思うと三角関数とは何かを掴むのに時間をかけるより「三角関数=加法定理や倍角公式のコンボ技の構成要素」として暗記する方が有利になってしまうっていう、なんかそういうレギュレーションの抜け穴みたいなのに起因する気がする"
- FFFumihiro MMMatsuiさんのツイート: "それでまああのコンボは「三角関数とは何か」みたいな基礎とは関係なくて、教科書で基礎的な扱いで習うけど本来はたぶん結構応用的なものな気がするし、確かに進路によってはその後一生使わないだろうし、「三角関数ってなんかあの謎コンボ覚えさせられるけど一生使わないやつでしょ」ってなるのかもな"
- FFFumihiro MMMatsuiさんのツイート: "高校課程までの数学はわりと全般的に暗記ゲーの方が強くなっちゃう面あるよなあ。かといってテストを全部証明問題にするわけにもいかないだろうし現実的には中々どうしようもないんだろうな"
- FFFumihiro MMMatsuiさんのツイート: "僕は定期テストとか存在しなかったから実際の感覚はよく知らんけど(なので偉そうに思ってる事言うとちょっと後ろめたさある) それでも数学は結構暗記してた部分(実際に三角関数関連とか)あるし高校課程までの数学で暗記というチート技が割と効いてしまうのはまあ本来はあれなんだろうなって気する"
- FFFumihiro MMMatsuiさんのツイート: "たぶん僕は平均よりは高校数学の範囲の内容を実際に使う場面が色々あって利益を享受したほうかなあと感じるけど、それでもなんか心の中で数学の一部に対して漠然と苦手意識みたいなのが残ってる箇所はちらほらあって、それはたぶん当時に暗記に頼って押し切った事がある箇所なのかなという感じはしてる"
- FFFumihiro MMMatsuiさんのツイート: "一方で数学って好きな人はとことん好きだよね。初対面で「〇〇論はお好きですか?では〇〇論は?」みたいな質問から始まって数十分くらい〇〇論についてマシンガントークが始まる事とかたまにあって、たぶん数学が超好きな人達の間ではそれで会話が始まるパターンもそんな珍しくないのかなと思ってる。"
- FFFumihiro MMMatsuiさんのツイート: "しかし今書いてて気づいたけど僕もなんか会話の切り出し方がそういう系って指摘された事が昔あったしぜんぜん他人の事言えないかもしれない。コミュ力ェ…だし"
- FFFumihiro MMMatsuiさんのツイート: "もちろん〇〇論とかから切り出すって意味ではなくて"
- Fadisさんのツイート: "三角関数の必要性云々は、悩んでいるなら「コンピュータグラフィクスでもやって3秒で燃え尽きてきてください」ってだけの話なんだけど、同時に非線形関数である三角関数をいかに計算から排除するかはコンピュータグラフィクス屋が全力で知恵を絞る部分でもある"
- Sheileさんのツイート: "sin/cosが無いと円を描く弾が撃てないし、atanが無いと自機狙い弾が撃てない。それに対数ができないとスコアシステムに困るし、行列ができないと3Dゲーム作るのに困る。英語ができないと新しい技術の取り込みや、DirectXのエラーを調べるのに困る。ゲーム作りたい人は、数学と英語やっときましょう。"
- 島鉄雄さんのツイート: "三角関数どころかガンマ関数もゲームで間接的に使われてる。 クォータニオンの Slerp の実装には acos が必要だけど、これのテイラー展開をウルフラムさんに聞くと、ポッホハンマー記号なるものが出て来て、それの計算にガンマ関数が使われてた。 面白そうな関数だけど、これ以外の使い道を知らないw… https://t.co/k6HmmOWMQC"
- mはげさんのツイート: "30年前の名著「数値計算の常識」を読んでたらBASICで0.01を10000回足したら100.003になるとか書いてあった。まあ昔のPCなんてそんなものかなと思いながら、Visual Studio 2017で試してみたら同じ結果だったw… https://t.co/f1ZQXlojRv"
- 渋川よしきさんのツイート: "昔のの数値計算と同じ浮動小数点数の計算をやって、同じように計算誤差が出るぞってやつ、ある意味コンピューターサイエンスの教育の敗北では・・・という気がしないでもない(そういえば、GoならわかるシステムプログラミングでIEEE754は扱おうか考えてやめたんだった)。"
- c1815(内閣調査室 技官)さんはTwitterを使っています: 「工学的に虚数の存在意義はオイラーの公式により三角関数を指数関数で表記できる事で、電気工学で広く使われる有用な道具です。「虚数の実現が厳しい」とか訳がわかりません。貴方もその存在の恩恵を受けています。 https://t.co/4PKz0q2HEj」 / Twitter
- 部品(本田翼)さんはTwitterを使っています: 「1960年代に発表されたフーリエ変換アルゴリズムの一般化であるCZ変換に対して、逆フーリエ変換の一般化アルゴリズムは未解決だった。それが50年かけてついに発見された|・ω・`)フムフム https://t.co/QzDtngRKFh」 / Twitter
- Engineers solve 50-year-old puzzle in signal processing
- 応用数学たん(旧ファイナンスたん)さんはTwitterを使っています: 「ブラックショールズ方程式は解析解が出ているので、超高次元の偏微分方程式を数値計算するアルゴリズムの実験にも使われているのです。 確率解析学、数理ファイナンス、機械学習、数値解析 ☆3」 / Twitter
- 三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「「ループを使わずに1から100を順に出力するコードは書けますか」という質問に、凄腕たちがプログラム的な技巧を凝らした答えをする中、MSのデータサイエンティストが「1000/(999^2)を300桁まで計算すると答えが0.01002003…099100になるよ」とサラッと答えてて、どんな脳の使い方したら思い付くのそれ https://t.co/Ng3dv4ZS4K」 / Twitter
- 三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「元スレッド https://t.co/donuG6acMg その他の回答も含めて和訳してくれてる人 https://t.co/s0cMrfhD0s どんな頭の使い方したか類推してる人 https://t.co/xaR4sXBe5L」 / Twitter
- How to print 1 to 100 in C++ without a loop, goto or recursion - Quora
- ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora
- 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita
histric-2
- 社会人でもOSを作りたいさんはTwitterを使っています: 「学生「マクローリン展開なんて,何の役に立つんですか?計算機で一瞬でsinを計算できるじゃないですか」 ???「sinの計算を実装できるようになる。計算速度と精度のバランスを自分で設計したりできるぞ」 (Newlibのsinの実装を読んだ感想)」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos 近似計算するなら別に定義域全体で収束する必要ないから収束遅いマクローリン展開なんて役に立たないじゃないですかー(煽り返し」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「Newlibのsinの実装を読むと,sin(x)のxが非常に小さいときはsin(x)~xという近似を使って,それ以外はマクローリン展開で計算してるぽい。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「数学詳しい人に教えて欲しいのですが,Newlibに出てくるこの近似って妥当なんですか? sin(x+y) = sin(x) + sin'(x')*y ~ sin(x) + (1-x*x/2)*y sin(x+y) = sin(x) + sin'(x')*y までは分かる。(これも厳密には近似なんだけど,まあ納得) ~ sin(x) + (1-x*x/2)*yが分からない。」 / Twitter
- ねっけつさんはTwitterを使っています: 「@uchan_nos こんにちは。TLで今見かけただけですが、sin'(x) = cos(x) のマクローリン展開を1次の項で打ち切ったものではないでしょうか。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@nekketsuuu なるほど。1/2がどこから来るかなと思ったんですが計算してみたら確かにそうなりました。yが十分小さければいい近似になりそうです。」 / Twitter
- ねっけつさんはTwitterを使っています: 「@uchan_nos (すいません1次じゃなくて2次でした)」 / Twitter
- Nakatani ShuyoさんはTwitterを使っています: 「@uchan_nos sin の微分 cos を同様に展開してます」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「マクローリン展開じゃなくてテイラー展開だった」 / Twitter
- kashiさんはTwitterを使っています: 「この本に、Newton法が解に収束せずに無限ループに陥る例を扱った章があって、「不安定周期解ではあるが丸め誤差のせいで安定的にその周期解に留まる」という事例が紹介されてた。 https://t.co/QlSD1JeVAd」 / Twitter
- 米津 アンさんはTwitterを使っています: 「矢崎成俊 著『実験数学読本』 色んな数学モデルを寄せ集めた本です。本書を読めば、わたしたちの身の回りからよりたくさんの数学を見出せるようになれるでしょう。扱っている数学は大学1年レベルですが、高校生が読んでも「数学の力ってすげー!」を堪能できる内容だと思います😆 #今日の一冊 https://t.co/huYujiZNNw」 / Twitter
- kashiさんはTwitterを使っています: 「で、そもそもNewton法で解に収束せずに周期解に陥るとき、ほんとに不安定なのか、という興味を持ってあれこれいじってたら、こんな例を見つけた。方程式x^3-x+1.5=0に対するNewton法で初期値を1.5018719167693075...とすると、安定な3周期解になる模様。 https://t.co/bItfhPISsu」 / Twitter
- kashiさんはTwitterを使っています: 「Newton法の反復が周期的になる例は教科書によく載っているけどたいてい不安定で、実際には解に収束するか無限に発散するかどちらかだ、みたいなのをどこかで見た気がしてて(妄想かも)、そうでもなくて周期解に陥ってしまう場合も普通にあるんだなあと思った、という話。」 / Twitter
- kashiさんはTwitterを使っています: 「Newton法の反復の安定周期解って面白い発見じゃね?と思って調べてみたら先行研究があって、方程式が多項式で全ての解が実なら安定周期解は存在しない、複素解を持つ場合は普通に存在する、とのこと。 https://t.co/BaDetPVw2T」 / Twitter
- S0002-9947-1986-0849472-6.pdf
- FadisさんはTwitterを使っています: 「確かに微分可能な関数しか使っていない 確かに自動微分の結果で最急降下法にかけると解に収束する この微分を手で求めろという問題が試験に出たら単位を取れる自信がない みたいなのがゴリゴリまわってるのを眺めてる。計算機ばんざい」 / Twitter
- だよもんフレンズは転職したいさんはTwitterを使っています: 「@math153arclight Python以前に、そもそもintel PCで計算してたら意味無い。カハン教授のparanoiaテストでバグるのがまだ直ってない、と言うか直す気無くてitanium使え、って言ってる。MIPSやSPARC, HP Precisionアーキを使おう!」 / Twitter
- ロボ太さんはTwitterを使っています: 「数値計算をするときには、まず解析解がわかる系を計算して、答えが一致するか確認するといいですよ(数値解と解析解が微妙にずれてるグラフを見ながら)」 / Twitter
- FadisさんはTwitterを使っています: 「第1種ベッセル関数を誤差逆伝播するのに何とかしてこれを微分できないかな、と思ったんだけど台形公式でバラして微分すると動くけど死ぬほど遅いヤツが出来て、テイラー展開で近似して微分すると次数上げても誤差が大きくて困ってた所に神のような論文を見つけてしまった https://t.co/dookUeJZp6」 / Twitter
- The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors | SpringerLink
- FadisさんはTwitterを使っています: 「次数を上げて行くとx=0近傍の吹っ飛んでる部分がだんだん広がって行くんだけど、10次でもこれだけ食いついてくる https://t.co/5Z6xpSHAzj」 / Twitter
- FadisさんはTwitterを使っています: 「というかベッセル関数ってn-2次とn-1次の計算済みの値を使ってn次の値を高速に計算できるんだな…。このため0次と1次の場合だけ気合いで近似すれば任意のnについてn次の場合の近似が出来たことになる」 / Twitter
- いぐにすさんさんはTwitterを使っています: 「@fadis_ n-1とn+1とかもあったようなと思ってググった https://t.co/HRgJXUNipD」 / Twitter
- ベッセル関数(円柱関数)の公式あれこれ - 倭算数理研究所
- FadisさんはTwitterを使っています: 「@ignis_fatuus 微分公式あるやん… (圧倒的数学ちから不足)」 / Twitter
- いぐにすさんさんはTwitterを使っています: 「@fadis_ まあこれ数学ちからというより知ってるかどうかだから..」 / Twitter
- FadisさんはTwitterを使っています: 「お前解析的に微分求まるのかよぅ…。めっちゃ頑張ってまともな速度で数値微分する方法探してたのに https://t.co/KKL1Raw2TH」 / Twitter
- s.komataさんはTwitterを使っています: 「ハレー法は、ニュートン法の精密化(の一つ)である。それにしても、ここにもひょっこり顔を出すシュヴァルツ微分 https://t.co/K4HufevbIi」 / Twitter
- Halley's Method -- from Wolfram MathWorld
histric-3
- FadisさんはTwitterを使っています 「物理ベースな3Dグラフィクスでは全てのマイクロファセットについての積分が式について来て、反射ならマイクロファセットは完全鏡面反射する事にして出来るディラックのデルタ関数をぶつけて積分を潰せるけど、拡散はこの手が使えないからリアルタイムレンダリングで使うにはうまい近似が必要になる」 / Twitter
- ゆうなさんはTwitterを使っています 「今日ほど内積の偉大さを知った日はない。 内積は基底変換、内積はフーリエ展開、内積はカーネル、… #数学デーinN高」 / Twitter
- てぴ✨数学が大好きさんはTwitterを使っています 「@kawauSOgood リーマン幾何学をやるといいかもです(*´∀`)」 / Twitter
- FadisさんはTwitterを使っています 「幾何においては、内積が「cos求めたのと等価な計算を時間がかかる三角関数の計算を陽に行わずにできる」という性質があまりにも便利なのであった」 / Twitter
- 小清水さんさんのツイート: "いつか紹介しようと思っている、定数との掛け算方法についての論文。三角函数の周期性で x - n * pi/4 みたいな計算で誤差がたまらないようにするために、いろんなところで使われている手法: https://t.co/QSHxyXWpYB"
- MultFmacArith.pdf
- FadisさんはTwitterを使っています: 「解析的に解けない理由は思い当たらないけど解くのが辛そうな方程式をとりあえずMathematica Onlineに突っ込んで、ノートが沈黙するのを眺めて、やっぱり解くのはやめよう、となる作業」 / Twitter
- Teppei KuritaさんはTwitterを使っています 「Mitsuba2の微分可能レンダリングの簡単な例。目的となるレンダリング画像への誤差を最小化するようにシーンパラメータ(反射率等)を勾配法(SGD)等で最適化できる。左の壁は赤色が真値なのだが、適当な値で反射率を初期化しても最終的に真値に収束する。PyTorchとの統合可能。 https://t.co/xRCyO7hawW https://t.co/rniWlyVuol」 / Twitter
- Differentiable rendering — mitsuba2 0.1.dev0 documentation
- Kazuho OkuさんはTwitterを使っています 「@shirouzu 指数関数なので、新規を積分した累積の低は同じになるので、それを片対数グラフにプロットすると、同じ傾きになるかと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho 確かにその通りですね…指数は微分しても同じでした(笑) (ただこの調子だと、 (重症+死亡者) / 感染者、の比率は低下していくということで良いのですかね)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho いや1.1倍で同じなら、1.1^n day倍になるだけなので、比率は変わらないですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「直接の知人を1ホップって言おうと主張するの、確立された技術用語に別の定義を持ち込もうとしているという点で、爆発的な指数関数的増加を「指数関数的増加」に言い換えるの同等に非科学的な主張じゃないのかな cf. https://t.co/vZqfEWqV89」 / Twitter
- ホップ (ネットワーク) - Wikipedia
- monochromeさんはTwitterを使っています 「@miura1729 @uint256_t modって被非除数と除数の符号によって4パターンぐらいあって、しかも言語によってバラバラですよね。RubyとRust (LLVM) も違っていてハマった覚えが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @uint256_t modも割り算もバラバラですよね。その点、Common Lispは全部用意する(3パターン)という男らしさ」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @s_isshiki1969 @uint256_t Schemeは6パターン網羅 (やりすぎ?) https://t.co/Ai69oiwjR6」 / Twitter
- SRFI 141: Integer division
- Masaki HaraさんはTwitterを使っています 「・割って掛けたらきっかり元に戻ってほしい→有理数ライブラリでいけます ・ルートして2乗したらきっかり元に戻ってほしい→代数的数ライブラリでいけます ・logしてexpしたらきっかり元に戻ってほしい→ちゃんとやるのは無理です」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ReduceやMathmaticaみたいな処理にすれば多分できる」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 記号処理というか項書換え系というか... 近似値が欲しいと言われるまで数値にしない :)」 / Twitter
- tkrさんはTwitterを使っています 「行列積、転置行列作ってメモリアクセス局所的にするだけで計算時間半分になった メモリキャッシュ意識したらそんな変わるんか…」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「numpyだのscipyだのJuliaだのMatlabだのにBLASのラッパーみたいなI/Fの微妙に違うものが量産されたのは完璧にHPCの敗北で,もっと下のレイヤでHPCが主体となって早くBLASを作り直せば多種多様な異母兄弟みたいなのが生まれずに済んだんじゃないかと最近強く思う」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「あんなFortranで書かれた型縛りが強すぎるものを2020年にもなって後生大事にいろんな言語で使うためにみんなでラッパー書いて使おうっていうのが間違っている」 / Twitter
histric-4
- Shinji KonoさんはTwitterを使っています 「まあ、色々意見はあるが 微分方程式はexp xをかけて積分 だけで院試はだいぶ違う。未定係数の問題を出したところは知らん。畳み込み積はみた。あれは知らんと解けん。知らないのはダメだとは思うけど。」 / Twitter
- FadisさんはTwitterを使っています 「積分を「解析的に解けるラッキーな関数の解析的な積分の方法を覚える」ところから学び始めるの自体が、あまり筋の良いシナリオではないんだよな」 / Twitter
- horiemさんはTwitterを使っています 「格子法って有限要素法とかも含まれるのか (グリッドの差分法だけを指す言葉かと思ってた)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「差分法もデルタ関数でガラーキン近似してるだけなので実質スペクトル法(?)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「分野にも計算機にも寄らない共通の数値計算の基礎なんて微積と関数解析くらいしか無いよな(´・ω・`)」 / Twitter
- ど ね ( 。 •̀ _ •́ 。 ) ( 群 )さんはTwitterを使っています 「これを利用して多項式の積をFFT使って高速に計算する方法があった気がしますね(畳み込みの Fourier 変換はそれぞれの Fourier 変換結果の積になるので)」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「そうか。多項式の積って畳込みそのものだったんですね。 https://t.co/Im0SY5RIFZ」 / Twitter
- κeenさんはTwitterを使っています 「昨日rust-jpのslackで整数の平方根がとりたいけどメソッドがないって話題が上がってたので(非負)整数の開平計算実装してみた https://t.co/jsFSgjZLNg アルゴリズムはWikipediaでも参考にしてみて。 開平法 - Wikipedia https://t.co/L2mNx0H1re」 / Twitter
- extract_sqrt.rs
- 開平法 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「学部の授業で連続だが至る所で微分不可能な関数で、三角波を細かくしていく、するとゼロになる。失敗。そこで諦めないで、それを全部足すとできるってなのが印象に残ってる。フラクタルみたいなので理解してたので解析的書けるんだ的な面白さがあった。」 / Twitter
- Iwao ShumpeiさんはTwitterを使っています 「自称文系という中には、微分といわれると冷や汗をかき、積分なんていわれたら一日中ブルーみたいな人がいるけれど、「いま時速○○だから××時間後には△△あたりに着くな」などいうとき、普通に物体の位置を速度の積分で導出しているのだから、実はほとんどの人は日常生活で初歩的な積分は使えている。」 / Twitter
- Iwao ShumpeiさんはTwitterを使っています 「物体の位置を微分したら速度、速度を微分したら加速度になる。当然ながら反対方向の加速度→速度→位置は積分。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そういえばいたるところで微分できない連続関数のグラフってあったな。どんなに拡大してもカクカクしているという。」 / Twitter
- Genki TakiuchiさんはTwitterを使っています 「@shinji_kono フラクタルな曲線全般的にそんな感じですけど、多分ワイエルシュトラス関数かな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「関数解析は自分的に必要性がよくわからなくて… でも、機械学習系に入ってきてるのか。収束とか問題になるしな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「部分積分はけっこうパターンマッチ的にめんどくさい技術で、名前がついていて「ここで使うぞ」と身構える感じ。プログラミングだとメソッドを抜き出すrefactoringに近い。」 / Twitter
- Yusuke Hayashi 林 祐輔さんはTwitterを使っています 「渡辺澄夫先生の講義ノートと講演スライド.「統計的推測の問題が物理学と似ている構造を持つのは,単なる偶然なのでしょうか.それとも, 観測から真の分布を推測する,ということは物理学の一部なのでしょうか.」 1. https://t.co/64whBKegAn 2. https://t.co/GIULKJlnp0 https://t.co/qiaf6Uj3kh」 / Twitter
- KJ00007905533.pdf
- Mathematical Foundation of Statistical Learning - statphys20180312.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積といえばzipWith (*) v1 v2 ……え、長い?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積が利用されるのって「愚直にループを回すと遅い」問題か「愚直にループを書くと字面的にうるさい」問題の結果だと思ってる」 / Twitter
- yuyabu🎄🎁さんはTwitterを使っています 「実践コンピュータービジョン前書き >主成分分析により次元を削減するという応用から入って、主要な固有値と基底ベクトルで近似するために行列を変換していくんだな、と理解してからは目の前が開けた経験があります この境地になりたい」 / Twitter
- てらモス♋️さんはTwitterを使っています 「メモリからデータを取ってくるのがCPUから見てとても遅い現代において、読み込み→計算→書き込みを単位としてモジュール化するのは悪手で、eDSL作って計算部分だけまとめる機構に流れるのは自然で、そうなるとC++だとuBLASみたいな事になっちゃうんだよね(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「そもそもスペクトル法にしておけば、微分ってのはikかけるだけの操作なんですよ…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「スペクトル法使えるの、普通には長方形か円柱か球面しか無いんだよね」 / Twitter
histric-5
- Kazuho OkuさんはTwitterを使っています 「オミクロンの重症化リスクが若干低いとしても、それは指数関数の定数項でしかないので、指数関数の底である再生産数が大きくなる影響のがでかいわなぁ」 / Twitter
- mod_poppoさんはTwitterを使っています 「多項式のユークリッドの互除法とかだと「(一般の)体係数に対するアルゴリズム」が事実上「有限体係数に対するアルゴリズム」だったりする(有理数体だと係数膨張して実用的じゃないので)」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「なんかそういえば,「ベクトル演算の画期的な新記法が発明された!ファインマンダイアグラムに匹敵する新発明!」みたいな論文,あれ読んでないけどどうなったの?」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「これだ. https://t.co/QLHuauuuZ7」 / Twitter
- 1911.00892.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「多項式、いっそ係数のリストとして表記したほうが関数との紛れがなくなる」 / Twitter
- dif_engineさんはTwitterを使っています 「@mod_poppo 不定元も「形式和」も使わないと結局そう定義することになりますね.」 / Twitter
- uint256_tさんはTwitterを使っています 「リザバーコンピューティング よくわからない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「リザバー、先に適当な非線形発展を行う物理系とその系への入力と計測を用意して、その性質を調べて可能な計算のクラスを見て、自分のやりたい計算をその上に翻訳する操作的な認識(´・ω・`)」 / Twitter
- じ〜ま⊿🦀さんはTwitterを使っています 「微分方程式の理論に線形代数が出てくるとか初見殺しじゃね? 関数の集合をベクトル空間と見るっぽい雰囲気は感じとった」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「数学全然知らんけど、積分って解析的に解けない式が多すぎて、高校までは数少ない単純なルールで計算できるパターンを覚えてパターンマッチする問題しかなかった記憶だし、それ以降は情報に進んだから数値的にやりゃあええやろみたいになってもうたな。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「ホント、やっぱり数学はプログラミングとセットでやってくれないと困るよなぁ。ある計算をするのに複数の求め方がある時に計算量的にはこっちの式がいいだとか、計算誤差を最小化する為にこっちの式が望ましいだとか、そういうところまでセットでやって欲しい。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的にわかりやすかった行列の積の直感的な説明: 行列 Aと行列Bを掛ける (AB) とき、Aの各行は「関数」と考えることができ、Bの各列は呼び出しの「引数」と考えることができる。引数がいくつあるかはA(の幅)によって決まるが、データの個数はB(の幅)によって決定する。 https://t.co/i9jEgihbPO」 / Twitter
- A Programmer’s Intuition for Matrix Multiplication – BetterExplained
- 解答略さんはTwitterを使っています 「微分コンサルは、いらんねん。合成関数の微分公式とかいう神器を使えば何でも微分できるし むしろ欲しいのは積分コンサルやねん。 * t=tanx/2に置換するやつ * t=x+√(x^2+1)に置換するやつ * 楕円関数snを使うやつ * Γ関数で書けるやつ * 超幾何級数にするやつ みたいにコンサルが言ってくれると便利」 / Twitter
- ゆうがたさくはなさんはTwitterを使っています 「@kaitou_ryaku まず積分が可能かどうかを教えてくれるコンサル…」 / Twitter
- QDくん🇺🇸米国株/機械学習/Python/シストレ/金融工学/FIRE/副業さんはTwitterを使っています 「Numpyのチートシートです。ご査収ください。 https://t.co/Id38FTbpyX https://t.co/WXlfeiyCOH」 / Twitter
- NumPy Cheat Sheet: Data Analysis in Python - DataCamp
- Satoshi ImaiさんはTwitterを使っています 「今学校で情報の授業もあるそうだから数学の実験できると楽しそう 円周率教えたらモンテカルロ法で近似値求めてみるとか、 微分教えたら最小二乗法で線形回帰してみるとか、 三角関数教えたら音声をフーリエ変換して情報圧縮してみるとか、 当時から数学のありがたみを知りたかったよね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「フーリエ変換の結果を3次元表示し、時間領域と周波数領域が同時に見れるようにしたもの。複素空間まで見えるのがすごい。 https://t.co/P9uUewWqQm」 / Twitter
- Fourier Cube
- 解説さんはTwitterを使っています 「物理学も解析的に解けなかったりするところは計算機でゴリゴリゴリゴリしてるんだけどその手の物理って教養だとあんまりやらないっぽくて物理学に綺麗な印象が残る」 / Twitter
- mima_itaさんはTwitterを使っています 「機械学習の環境は個人のPCだとあかんわ。 手持ち最強の環境でもcolaboratoryで動いたコードが、gpuがヘッポコと言われて動作しなかった。」 / Twitter
- Hiroki FukagawaさんはTwitterを使っています 「これの参考文献を貼っとく。回転座標系の修正ナビエ・ストークスはDEFの式。ベクトルでの計算を追うのは大変だが、微分形式なら機械的な計算で出る。 https://t.co/r1FztsdnfF」 / Twitter
- Derivation of Navier–Stokes equation in rotational frame for engineering flow analysis - ScienceDirect
- Hiroki FukagawaさんはTwitterを使っています 「2021年まで、回転座標系のナビエ・ストークス方程式が不完全なものだったのは驚きですな。そして、誰も導出を追ってなかったとは…。2日くらい計算していたが、めっちゃ大変だったし、よくある式が自分の感覚的にも違うだろうと思ってみていて、その導出を追いかけていたが、ロジックが飛んでいた。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「オープンソースのOR-toolsを使った線型計画法 (linear programming) 入門。線型計画法は最適化問題の一種であり、さまざまな現実の問題をこれで解決できる。例はPythonで書かれており、基本的な使い方は制約式をPythonで書いて実行するだけである。 https://t.co/TyC2RjveKn」 / Twitter
- Introduction to Linear Programming in Python | Maxime Labonne
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「科学者のための科学計算プログラミングのベストプラクティス集。科学者向けなので、どこぞのプログラマが信仰するカルト的メソッドとは違い、実際に研究によって効果が実証された方法が解説されている。とはいえアドバイスはどれも穏健で納得できるもの。 https://t.co/q0JSP18h8T」 / Twitter
- Best Practices for Scientific Computing | PLOS Biology
- リニア・テック 別府 伸耕さんはTwitterを使っています: 「ガンマ関数やベッセル関数といった特殊関数の話をするには「複素関数論」を避けて通れません.いろいろ抜け道を探してみたのですが無理でした. 要は「コーシーの積分定理」を使いたくて,これがわかれば「コーシーの積分公式」も「ローラン展開」も「留数定理」も全部同じように見えるはずです. https://t.co/yntiJZkipl」 / Twitter
- リニア・テック 別府 伸耕さんはTwitterを使っています: 「複素関数論って「学ぶ時」と「使う時」で力点がずれる感じがするんですよね.「使う時」は単純に「コーシーの積分定理」みたいな派手な定理を利用するだけです. 「学ぶ時」に重要かつ難解なのは「級数の収束」の話で,ここで諦めるとその後の面白い所まで行けなくて非常にもったいない感じになります」 / Twitter
- リニア・テック 別府 伸耕さんはTwitterを使っています: 「「級数の収束」をきちんと議論しようとすると,実数の連続性とか解析学のはじめの方の話題まで戻らないといけないんですよね.地味なのに(失礼)けっこう大変です. しかし「級数の収束」を雑に流してしまうと,いつまで経っても複素関数論を習得できない気がします.級数は複素関数論の根幹なので.」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「僕が公開鍵暗号で一番面白いと思うところは、隠し通すことと、遍く知らしめることのどちらも同じぐらい難しいっていうところ。初めてフーリエ変換知ったときに、ホワイトノイズが単一インパルスになることを見たときと同じ何かを感じた。」 / Twitter
- かつっぱ@ 色ジャージ競プロYouTuberさんはTwitterを使っています: 「彼氏がびっくりするほど速く掛け算を済ませるから何かと思ったら、まさかのCooley-TukeyのFFTだった。。 ウソでしょってぐらい無駄がない数列さばき。 全競プロer騙されたと思って使ってみて欲しいし 畳み込みしたい業プロerも使ってみて欲しい。 O(NlogN) https://t.co/rP7AB9NbwC」 / Twitter
- get along with physicsさんはTwitterを使っています: 「@catupper それなりの桁数でないと優位性なかったきがしますが、何桁の掛け算してますか?」 / Twitter
- かつっぱ@ 色ジャージ競プロYouTuberさんはTwitterを使っています: 「@hhhhhhuji 競プロでよくあるのは10^6桁くらいですねえ」 / Twitter
- get along with physicsさんはTwitterを使っています: 「@catupper あー fft一択ですね 競プロ興味はあるけど、フォートランしかいじれないので未参加です」 / Twitter
- 片桐 孝洋さんはTwitterを使っています: 「そういえば 密行列の固有値問題の計算時間 聞かれることあったけど、全固有値・全固有ベクトル求める最も重い場合で、現在は以下の感じ 1万次元:pcで楽勝 10万次元:やれば出来る(数時間) 100万次元:スパコンでできる」 / Twitter
- 片桐 孝洋さんはTwitterを使っています: 「そういえば固有値問題ソルバのGPU対応ですが、密対称行列のなら 主演算は行列積 なので、ノード内のGPU利用なら、ライブラリ利用で、そこそこの演算効率でるはず。 問題は分散並列化版ですね。通信性能とGPU 演算のオフロードの関連で効率が悪いので、色々やることありそう。」 / Twitter
- horiemさんはTwitterを使っています: 「個人的にはざっくり「数値解析 ⊂ 数値計算」みたいな感じで、数値解析は PDE や ODE を計算機で計算するみたいなイメージで、いちおう数値計算と呼んでも違和感はない。一方、行列の掛け算を計算機でやるとかは数値計算だけど、それだけでは数値解析じゃないみたいなイメージ。」 / Twitter
- horiemさんはTwitterを使っています: 「もちろん、数値解析の過程で行列の掛け算が発生することは非常によくあるので、切っても切れない関係ではある。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「「モンテカルロ法」の名前の由来: この方法はもともとマンハッタン・プロジェクトで中性子拡散を研究していたスタニスワフ・ウラムとフォン・ノイマンによって考案された。当時この計算法は極秘だったので、彼らはコードネームとして「モンテカルロ」と名づけた。 https://t.co/ImCULqOUIP」 / Twitter
- Monte Carlo method - Wikipedia
- lotzさんはTwitterを使っています: 「この前DeepMindが出した行列掛け算アルゴリズムを解くAIに対抗して人間がもっと速いアルゴリズムを作ってきたwww Z2上の5×5の行列積の計算がAIは96回の掛け算を必要としたがこのアルゴリズムは95回で済むらしい👀 https://t.co/wEIfYoMGX5」 / Twitter
- [2210.04045] The FBHHRBNRSSSHK-Algorithm for Multiplication in $\mathbb{Z}_2^{5\times5}$ is still not the end of the story
- ゆとりーなさんはTwitterを使っています 「やる夫で学ぶディジタル信号処理 https://t.co/rJOQ6NRtje 必要に迫られて趣味でデジタル信号処理を学んでたら行き着いたんだけど、そこらへんの教科書の5000兆倍わかりやすいと思ってよく見たら、やる夫スレ魚拓じゃなくて東北大学工学部の講義補助資料だった。」 / Twitter
- やる夫で学ぶディジタル信号処理
SVM
- SVMの理論的な話 - genkami.github.io
- 機械学習アルゴリズムのしくみを解説 「サポートベクトルマシン」と「k-means法」とは:CodeZine(コードジン)
- langstatさんはTwitterを使っています 「機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita https://t.co/4huHGnSLUz 分かりやすくて、いい感じ。正則化に関する可視化はわりとよくあるけど、、、SVMのハイパーパラメータ(gamma, C)の可視化はそんなに見たことがない気がする(忘れている可能性ありw)」 / Twitter
- 機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita
ビタビアルゴリズム
その他
- ビタビアルゴリズム - Wikipedia
- 畳み込み符号 - Wikipedia
- HMM viterbi
- Forward filtering-Backward samplingによる単語分割でアンダーフローを防ぐ – ご注文は機械学習ですか?
- マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。 - Bug Catharsis
- ビタビアルゴリズムをpythonで実装してみた - Screaming Loud
- ビタビアルゴリズム
- Viterbi アルゴリズム
- 無線通信における畳み込み符号化について
- 無線通信における畳み込み符号化について
- ボクにもわかる地上デジタル - 地デジ方式編 - 符号化
- 畳み込み符号のプログラムについて(C言語) - 畳み込み符号とビタビ復号のプログ... - Yahoo!知恵袋
- Viterbiアルゴリズムについて - プログラマ専用SNS ミクプラ
- ビタビアルゴリズム【入門】具体例で分かりやすく解説!(Viterbi)
- ページ 1
- あやしいサイコロと『隠れマルコフモデル』 | 株式会社フォワードネットワーク
- Viterbiアルゴリズム - 機械学習の「朱鷺の杜Wiki」
動的計画法
動的計画法
- naoyaさんはTwitterを使っています: 「DP は部分問題最適性があるときに適用できる可能性が高い、というのは昔勉強したんだけど実際はその部分問題最適性を見つけ出すのが難しいなあと思ってたんだが、いろいろ実装してたら分かってきた。」 / Twitter
- naoyaさんはTwitterを使っています: 「例えば二次元DPの場合、二次元配列の各行はある状態から次の状態に遷移する際に、遷移先が複数に分かれるとことを表現している。遷移に伴い、分岐が発生するがその分岐が毎回同じルールで分岐しているなら、これが部分問題最適性になるみたいな」 / Twitter
- naoyaさんはTwitterを使っています: 「例えば部分和問題なら、ある時点の状態から次の状態に移るときに部分和を構成する数が1つ増えるわけだが、その数を使うか、使わないかという分岐」 / Twitter
- naoyaさんはTwitterを使っています: 「分割問題の場合、次のアイテムが来たときにそのアイテムを2つの分割対象のどちらに入れるかの分岐」 / Twitter
- naoyaさんはTwitterを使っています: 「ナップザック問題の場合、次のアイテムをカバンに入れた場合と入れなかった場合の分岐」 / Twitter
- naoyaさんはTwitterを使っています: 「こうしてとある状態から次の状態に遷移するときに遷移先が複数パターンに分岐する。この分岐先では、複数の分岐元から流入してくる場合があり、そこで値を一つ二集約するなどの最適化を行う。ここで最大値を採ったり最小値を採ったりとどういう集約を行うかで、最終的な結果の性質が決まる」 / Twitter
- naoyaさんはTwitterを使っています: 「こういう風に理解すると、より具体的に DP の適用可能性があるかどうかを見極めるのに良さそうだ」 / Twitter
- naoyaさんはTwitterを使っています: 「ツイッターに書き散らしながら頭を整理する体操」 / Twitter
- naoyaさんはTwitterを使っています: 「「貰うDP」を考えているとき「現在の値は確定された過去から決まる」と考えて、未来ではなく過去から現在に向かってくる経路を考えるように自分に言い聞かせるのだがそのたび「確定した過去を変えてはいけない・・・」という鳳凰院凶真の動画が脳内再生される」 / Twitter
blog
- 動的計画法でフィボナッチ数列の計算を速くする。 - from scratch
- Matrix-chain multiplication problem - Lilliput Steps
- なぜdp「やるだけ」なのか ~動的計画法について考える その1~ - kuuso1のブログ
- 競技プログラミングにおける動的計画法更新最適化まとめ(CHT, MongeDP, AlianDP, インラインDP, きたまさ法) - はまやんはまやんはまやん
- DPとは何か フィボナッチで - 簡潔なQ
- 連鎖行列積問題 : がぶ飲みミルク珈琲
- Tech Tips: 連鎖行列積を動的計画法で解く
- 第13回 NVIDIAが提供する数学ライブラリ | G-DEP
- DPはDAG上の最短経路ではない - うさぎ小屋
PDF
- PowerPoint Presentation
- バイオインフォマティクスⅠ
- shiryou-20160906-4.pdf
- untitled
スライド
- 動的計画法を極める!
- 動的計画法
- 動的計画法 / Python 11 - Speaker Deck
GEMM
- Nehalemアーキテクチャ向けDGEMMの高速化: 事例 | NEC
- dgemm を使用した行列の乗算
- dgemm によるスレッド化の効果の測定
- インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 | iSUS
- dgemm によるスレッド化の効果の測定
- gemm-一般行列・行列積 VI - LabVIEW 2017ヘルプ - National Instruments
- shinichiro hamajiさんのツイート: "すべてのアクセラレータ作るベンダーに一番自信ある設定でGEMMやった時の数字を公表する義務を課してほしい"
BLAS
Wikipedia
- Basic Linear Algebra Subprograms - Wikipedia
- OpenBLAS - Wikipedia
- LAPACK - Wikipedia
- LINPACK - Wikipedia
- ロボ太さんのツイート: "「ソフトウェアテスト」というべきか微妙ですが、HPLがちゃんとできるということは、ハードウェアベンダーがちゃんとしたBLAS職人を抱えている証左になります。昔は知りませんが、現在の石で行列行列積を書くのは非自明な技術です。自分でDGEMMを書いてみれば、その性能の低さに驚くと思い… https://t.co/PQ4jZPQTWD"
- ロボ太さんのツイート: "科学技術計算の多くはBLASに依存しており、その基本はDGEMMです。DGEMMはアーキやSIMD幅に応じて書き直す必要があります。HPLをちゃんとやるというのは「そのアーキでちゃんとしたBLASを用意します」という、ベンダーの意思表示になります(もちろんこちらはBLASはBLA… https://t.co/rYHdoO34wP"
- Hideyuki Tanakaさんのツイート: "BLAS専用ハードとかないのは、BLASってめちゃくちゃ関数がおおいから専用ハードなんて作っても意味があんまないからじゃないのですかね…。DGEMM専用回路ですら汎用プロセッサと比べてたいしてメリットないんじゃないかと言われているのに。"
- Hideyuki Tanakaさんのツイート: "すでに現在のアクセラレーターってDP演算回路が全体の数割を閉めているらしいから、全部埋め尽くしても数倍にしかならないし、そもそもそれらにきちんと途切れることなくデータを物故見続けるためにはそれなりの量のバスと、キャッシュがどうやっても必要になるから、DGEMM専用回路でも2倍も行… https://t.co/w2fBpD3je0"
- Hideyuki Tanakaさんのツイート: "というのをDGEMM専用回路つくりゃいいじゃんという指摘を僕自身でしてみたときに思った。そんなこともないよっていうハード設計者の人がいらっしゃったらおしえてちょー(´・_・`)"
- Hideyuki Tanakaさんのツイート: "あとBLASで負荷が高いのはLevel3だから、それ以外はソフトで書いたほうがいいでしょっていう。Level2はどう考えても帯域ネックになるしな。"
- shinichiro hamajiさんのツイート: "PEZYのおかげでLINPACKというやつがDNNと違って単にGEMMやってるだけでなくてもうちょい大変なことをやってるという認識が持てたということがありました。以前はスパコンてGEMMお化けなんでしょくらいの認識だったというか、なんでスパコンで多体問題とか解けるのと今でもわかっ… https://t.co/KytNh0mxQb"
- BLASの簡単な使い方
- IBM Knowledge Center - BLAS 関数構文
Qiita
- 制御理論としての動的計画法 - Qiita
- 意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法 - Qiita
- Hideyuki TanakaさんはTwitterを使っています 「そもそもDP自体は具体的なアルゴリズムを指さないから、言葉自体がふわっとしたものになる気はした。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「DPとか単語の意味がわかりづらいから、DAG Memoisationとかで良くないか?配列を使う実装は、パラメーターがDenceな配列にできるときの特殊ケースってことでええやろ。(´・_・`)」 / Twitter
- fujikaWAさんはTwitterを使っています 「動的計画法って何でDynamic PlannningじゃなくてDynamic Programmingなんだろう?命名由来は?って思ってググってみたら、アホ臭い政治的理由でわろた 時の国防長官がとんだアカデミア嫌いだったようで、彼からの攻撃を避けるために数学っぽさを排除した言葉を選んだそうな() https://t.co/GeSfVHRWjC」 / Twitter
- なぜ動的計画法はDynamic「Programming」という名前なのか - フリーランチ食べたい
- 動的計画法(ナップサック問題) - アルゴリズム講習会
- Spaghetti Source - 連鎖行列積
- ダイナミックプログラミング
- できる動的計画法:ロッド切り出し問題 | プログラミング | POSTD
- chokudai(高橋 直大)さんのツイート: "多分DPを狭義に解釈してる人は「メモ化再帰はDPではない」みたいに言いそうだし、これは完全に競プロ方言だと思ってる。(メモ化再帰はDPです)"
- chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「全探索→貪欲→動的計画法の順序で書いたのは初めてだけど、これはこれで良いのよね。 全探索→動的計画法がアルゴリズム的には繋がりが良いのだけど、貪欲を挟む事で、「自明な改善が出来ないケースでDPが有効」ってストーリー性を持たせやすくなる。」 / Twitter
- omuomuginさんはTwitterを使っています 「大学ではなぜか動的計画法で解きたい問題のダメな方法として紹介されたので、しばらく末尾再帰以外の再帰は悪手なんだと思ってた。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@omuomugin 動的計画法で解きたい場合は、それは確かにナイーヴな再帰関数だとあんまり良い手じゃない気がします(メモ化再帰は使い所ありますが)。」 / Twitter
- Kenji OtsukaさんはTwitterを使っています 「@uint256_t 動的とか計画とか言うとわかりにくくなりますが、過去の結果を使って次の結果を求めるようにしたのが動的計画法だと理解しています。」 / Twitter
- kinabaさんはTwitterを使っています 「子の個数が定数(2とか3とか)だったら全ての根から木dpするのは普通にメモ化再帰するだけで線形時間なので、ただの木dpと手間ほとんど変わらないんじゃないかなと思いました。いわゆる"全方位木DP"は、次数が多いノードの向きを変えるのをO(1)にするために累積和とかのテクが要るという話なはず。」 / Twitter
PDF
- coding_06.pdf
- ohp12.dvi
- nlp-programming-ja-04-ws.pdf
- アラインメントはグラフで表現できる
- <4D6963726F736F667420506F776572506F696E74202D2091E630338FCD8CEB82E892F990B395848D86979D985F2E70707478>
GitHub
- Yuji-Kosugi/sysele
- yk-tanigawa/201410HMM: HMM
- ビタビ複号を行うプログラム
探索
その他
遺伝的アルゴリズム
- bioshok(INFJ)さんはTwitterを使っています: 「これすごい!! 今年6月のOpenAI論文で今日Carperがオープンソースにして知ったんだけど、遺伝的アルゴリズム+大規模言語モデルの新たなパラダイム(ELM)提案。これ何が凄いって、大規模言語モデルは学習したことしか基本アウトプットできないが、新規領域を探索してコードを自己改善できること!」 / Twitter
- Carper @ NeurIPSさんはTwitterを使っています: 「Today we’re excited to announce the release of OpenELM, an open-source library combining LLMs with evolutionary algorithms for code synthesis. https://t.co/rb43Bqq385 Thanks to @herbiebradley, @joelbot3000, @HongluFan, @MathyouF, @exGenesis, @Harry_stark_, et al (1/4)」 / Twitter
- CarperAI/OpenELM: Evolution Through Large Models
- bioshok(INFJ)さんはTwitterを使っています: 「基本遺伝的アルゴリズムだけだと探索空間が膨大すぎるという問題があり、そこで大規模言語モデルがコードの修正差分を学習して、コードの自己改善の方向性を決めるのにめちゃくちゃ役に立つということが発見された。 これはしかも原理的にはオープンエンドで、無限に複雑にしていける。」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「今回使用しているMAP-Elitesというアルゴリズムは適応度だけではなく(ここポイント)、多様性という観点からも新規性のある個体を残し、その個体を飛び石として新規領域にぐんぐん探索が進む。勿論同じニッチ(事前に設定した次元の中で似たところ)では優秀な方が残る。 https://t.co/IhHQG8mk3h」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「んでんで、更にこうして様々な多様性を保持してそこそこ優秀な個体(ソースコード)が集まってきたら、それらすべてを最初のDiffModel(コード差分データ学習した言語モデル)にファインチューニグしてある意味で「進化」し、以下図のようにニッチ発見率、スコア、実行可能プログラム生成率が上昇! https://t.co/JKpaUHynNW」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「また遺伝的アルゴリズムでソースコードの多様性確保方向で得た言語モデル利用し、新たな環境で2次元ロボットの移動距離報酬とし強化学習で言語モデルを微調整し、新たな環境にそこそこ適応。今後は遺伝的アルゴリズム+言語モデルと強化学習絡められるかもと著者は言っている。 https://t.co/uRqoWOYpan」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「自然進化と多くの進化計算の重要な違いはその始まりにある。自然は、重要な初期機能と情報をすでに与えられてて、それを言語モデルが代替する。言語モデルの長所と遺伝的アルゴリズムの新規領域探索の長所が合わさった新たなパラダイムは進化計算領域に大きな影響を与えるかもしれない(著者要約)」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「しかも、今回コード生成AIに限定されてるけど、コード生成ってめちゃくちゃ汎用的ということも著者は言っている。人工物は究極プログラムでかけるし、遺伝的アルゴリズムで新しい発明を飛び石に発明が起こるプロセスを無限に続けることができれば、創発的複雑性の無限大の爆発に到達すると言っている。」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「まーつまり、飛躍かもしれないけどシンギュラリティとかAIの自己改善とかその手の話の萌芽的な論文かもしれないということ。」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「ちなみにOpenAI CEOは9月に自己改善するAIに取り組んでいる賢い人たちはいて楽観的とか言っている。 https://t.co/otcMdtcaDg」 / Twitter
- bioshok(INFJ)さんはTwitterを使っています: 「https://t.co/RTxZegAIAB 9月に著者不明だけど遺伝的アルゴリズム+大規模言語モデルで自己改善みたいな話は他に上記論文が出ていて、これはMap-Elitesみたいに多様性方向考慮してなくて適応度観点の遺伝的アルゴリズムだったと思うけど、今後進化計算+言語モデルは流行になるかもしれない。」 / Twitter
スキップリスト
- スキップリスト - Wikipedia
- Skip list - Wikipedia
- ソラで書く順序付き集合 by スキップリスト - Qiita
- DBMの設計と実装 その13 スキップリストの構造 - 豪鬼メモ
hashmap
- Masaki HaraさんはTwitterを使っています 「というかまず大前提としてhashmapは "map" と名乗ってはいるものの実態としてはtotalではなくpartial functionなんですよね。いわゆるfunctionにも例外機構とかはありますけど期待値はだいぶ違う」 / Twitter
- Masaki HaraさんはTwitterを使っています 「hashmapとfunction同一視したいねの話題に関連する議論です↓」 / Twitter
- Masaki HaraさんはTwitterを使っています 「部分型付けのあるプログラミング言語では、 K -> V は通常Kに対して反変なのに対して、 Map<K, V> (イミュータブルなもの) は通常Kに対して共変になるんだなあ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Mapが反変性を持てないのはMap<K, V> → List<K> があるからで、逆に共変性を持てるのは未知の値に対する振る舞いが定義されているから (Noneを返す)」 / Twitter
infoQ
- Sonic - 軽量でスキーマレスな検索システム
- Googleが概念ベクトルを使用した画像検索を研究
- ベクタ類似性検索の実用化を支援するPinecone 2.0
- antirez/rax: A radix tree implementation in ANSI C
- 興味深いデータ構造:BK木 | プログラミング | POSTD
- 米Microsoft、最近傍探索ライブラリ「Space Partition Tree And Graph(SPTAG)」をオープンソースで公開 | OSDN Magazine
- 最小二乗法 機械学習 - Google 検索
- 行列 微分 - Google 検索
- ユークリッド距離 - Google 検索
- κeenさんはTwitterを使っています 「赤黒木を定義するときに赤と黒の2値を表現するためにパディング含めて32bitを消費するの無駄だなーと思ってたけどRustならenumのdescriminant mergingがあるからメモリが無駄になる訳ではないな。C/C++でも手動で同様のことできるはず。 https://t.co/ki4f9iITtV」 / Twitter
- Rust Playground
- リバーシプログラムの作り方 サンプル
- 近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo
- KampersandaさんはTwitterを使っています 「作りました。シンプルで強いFrontCoding文字列辞書のRust実装です。 https://t.co/EEVPA0LCuA」 / Twitter
- kampersanda/fcsd: Front-coding string dictionary in Rust
- KampersandaさんはTwitterを使っています 「FrontCoding辞書は単純に先頭から読み込むだけのデータが多いので、文字列圧縮が簡単に適用できたりして素敵です」 / Twitter
- 日本語のサジェスト機能の実装
- 巡回セールスマン問題(TSP)の基本的な解き方(ILS) | フューチャー技術ブログ
- Googleの画像で検索サービス「Google レンズ」に検索ワードの併用が可能な「マルチサーチ」が実装 - GIGAZINE
- 焼きなまし法 - Wikipedia
- 焼きなましをするときの設計に関するメモ - yunix_kyopro’s blog
- FadisさんはTwitterを使っています: 「カッコウ探索は乱数で作った複数の解の候補の中からランダムに1つを選び、Lévy分布の乱数で値を変化させる(A)。解の候補の中からもう1要素ランダムに選び(B)、それとAを比較してAの方が解に近ければBをAで置き換える。これを繰り返していくと解の候補が徐々に解に収束していく https://t.co/4lvDnxO0cI」 / Twitter
- Cuckoo Search via Lévy flights | IEEE Conference Publication | IEEE Xplore
- FadisさんはTwitterを使っています: 「カッコウ探索は解までの道程が凸になっている事が期待できない場合に使う最適化アルゴリズムで、遺伝的アルゴリズムより性能が良いとされている。paperではレンダリングに必要なパラメータの探索に当初ニューラルネットワークを使うおうとしたが上手くいかなかった事が述べられている」 / Twitter
- evoを使用してORB-SLAM3のSLAM精度を評価する - Fixstars Tech Blog /proc/cpuinfo
- 「競プロ典型 90問」Smallest Subsequence (最小部分列問題)
法則発見
- 1_270.pdf
- 機械学習 - Wikipedia
- Microsoft Word - pantel_web_v2.docx - P2-30.pdf
- 058.pdf
- 15群(○○○)-8編 - S3gun_03hen_03.pdf
- 機械学習とは?教師あり・教師なし・ 強化学習・半教師あり学習のアプローチ法も説明 | データサイエンスコラム|アガルートアカデミー
- 機械学習に欠かせない、特徴量とその選択手法とは | AI専門ニュースメディア AINOW
- Microsoft PowerPoint - 01Intro.ppt - 01Intro.pdf
文字列
e2rtre2
- T.Mieno@無職さんはTwitterを使っています 「"Palindromic trees for a sliding window and its applications" というタイトルの論文が IPL で公開されました: https://t.co/lfVJ5INfnB」 / Twitter
- Palindromic trees for a sliding window and its applications - ScienceDirect
- KampersandaさんはTwitterを使っています 「e2rtre2なんて素敵な名前のデータ構造があるのね」 / Twitter
極大部分文字列
- 再訪: 極大部分文字列 - Retrieva TECH BLOG
- 極大部分文字列について調べた - $shibayu36->blog;
- 情報学広場:情報処理学会電子図書館
- python 文字列 flatten - Google 検索
- v8 rope 文字列 - Google 検索
- v8 rope 文字列 flatten - Google 検索
- Kazuho Okuさんのツイート: "wwww これメンテし続けてる情熱がすごい! これでうまく行くのは、数値に変換する前にflattenしてるってことですかねぇ… "
- Takuo Kihiraさんのツイート: "@kazuho さん、さっき @yosuke_furukawa さんに教えてもらったんですが、V8 で rope で切り貼りされた文字列を flatten するためにはこうすればいいらしいですよ! https://t.co/Nt1LGTRwt0"
- flatstr/index.js at master · davidmarkclements/flatstr
- Takuo Kihiraさんのツイート: "そうだと思います。最適化で殺されそうですが、今度 disasm のコード覗いてみて、Rope を flatten する処理にどんなのがあるのか見てみますw… "
- お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
- 文字列アルゴリズムの学びかた - Hatena Developer Blog
- qrintfの最適化 - RuJIT開発日記
- h2o/qrintf: sprintf accelerator for GCC and Clang
- 最も割高なアンチパターン : 構造化されたデータを文字列関数で操作する「printfアンチパターン」について | プログラミング | POSTD
- 最近のruby-core (2016年7月) | Money Forward Engineers' Blog
- どれだけ速く文字列からスペースを削除できるのか | プログラミング | POSTD
- kmem_cacheさんはTwitterを使っています: "strncpy()・strlcpy()よりも使いやすくてセキュアなstrscpy()が追加されたと。 / “Linux 4.3-rc4 Kernel Released: Adds A New & Better String Cop…” http://t.co/ztQJvCSuRl"
- Hirochika Asaiさんのツイート: "strtok()にobsoleted by strsep()って書いてあるけど、strtok()とstrsep()の挙動が違う。macOSのstrtok()は連続するセパレータは省略してstrsep()は空文字を返す。POSIX的にはどっちが正しいんだろう…?"
- 文字列アルゴリズム Advent Calendar 2016 - Qiita
- 文字列検索アルゴリズムいろいろ - Qiita
- SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | プログラミング | POSTD
- rapidstring: rapidstring
- boyerjohn/rapidstring: Maybe the fastest string library ever.
- シンプルで強いFrontCoding文字列辞書を紹介したい - Kampersanda's Blog
- OdashiさんはTwitterを使っています 「弊の高速文字列マッチングライブラリです。 https://t.co/gA7zQv5ZEI https://t.co/IKFXQ36iA4」 / Twitter
- legalforce-research/daachorse: 🐎 A fast implementation of the Aho-Corasick algorithm using the compact double-array data structure.
- OdashiさんはTwitterを使っています 「このライブラリを当てるだけでRustの形態素解析器が全部ある程度の高速化を見ると思います。」 / Twitter
- 高速な文字列探索:Daachorseの技術解説 - LegalForce Engineering Blog
ビットベクトル
- Kozonoyuki's Blog: ビットベクトルによる集合
- C言語 ビットベクトル 集合 要素数の調べ方について - ビットベクトルを用い、集... - Yahoo!知恵袋
- 学生ゼミ 10/25 - JP@IKN
- 4.2.pdf
- 汎用kumAGIさんのツイート: "簡潔ビットベクトル、高速なのはいいんだけど構築のコストが大きいので検索が支配的なコストの場合に使うしか無くてDWHとかIMEとか使いどころが難しいのでは…。"
- 「ビット演算・ビットベクトルとは」を理解する - Qiita
- 簡潔ビットベクトル(完備辞書) - Mister雑記
- 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
- 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
- 簡潔データ構造 - Wikipedia
- 簡潔データ構造超入門 ~つくって学ぶ簡潔ビットベクトル~ - EchizenBlog-Zwei
- 簡潔データ構造超入門III ~簡潔ビットベクトルで転置インデックスを効率的に実装する~ - EchizenBlog-Zwei
- 整数ベクトルからビット ベクトルへのマップ - Simulink
簡潔データ構造
- Rustで簡潔データ構造のライブラリを3つリリースしました | 俺とお前とlaysakura
- Succinct Integer Array Library
- Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- 高速かつ省メモリなbit vector「sucBV」を作る (1/2):CodeZine(コードジン)
- 効率的で簡潔でモジュール式のセットメンバーシップおよび非メンバーシップ証明のためのRustライブラリ - wenyanet
- 定兼 邦彦 (Kunihiko Sadakane) - 簡潔データ構造講義資料 - researchmap
- 簡潔データ構造(Succinct Data Structure)で最初に読むと良さそうな論文 - EchizenBlog-Zwei
- Miura HidekiさんはTwitterを使っています 「簡潔データ構造第2回: ビットベクトルに対する簡潔データ構造 - Retrieva TECH BLOG https://t.co/XlnLPLPWh6 とてもわかりやすくてよいのだけど、popcountって定数時間と見てもよいのだろうか?というもやもやが残った。実際に実装する際には定数時間だろうけど。」 / Twitter
- 簡潔データ構造第2回: ビットベクトルに対する簡潔データ構造 - Retrieva TECH BLOG
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「@miura1729 popcはあんまり使わない命令なので1サイクルで完了するような実装ではないのでは、と思ってます。推測でしかないのですが。 https://t.co/kzCtQ9KzHX」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@houmei この記事、むちゃくちゃ面白いですね。ありがとうございます」 / Twitter
- 命令実装時のサボりについて : 竹下世界塔の計算機よもやま話
- 「高速文字列解析の世界」を読む前に知っておくと良いこと - EchizenBlog-Zwei
2^n分木 ビット演算 管理
- Binary Indexed Tree (BIT) 総まとめ!区間加算や二次元BITまで | アルゴリズムロジック
- ビット全探索( 2^n 通りの全探索) | アルゴリズムロジック
- bit 全探索 - けんちょんの競プロ精進記録
- std::setを使わない代替テクニック [いかたこのたこつぼ]
- プログラミングコンテストでのデータ構造
- プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
- 計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita
- 徹底攻略MCA Database問題集: 「M10‐101」対応 - 森下泰子 - Google ブックス
- 二分木 - Wikipedia
- B木 - Wikipedia
intrusive container
侵襲・非侵襲
- 関数呼び出しのトレース - yohhoyの日記
- python - How do I print functions as they are called - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "C++は侵襲型のリストやマップなども用意して欲しいところ。 (できれば複数リスト対応できるもの) 非侵襲型=insertだけでアロケータ必須とか、要素内部を漁ってもイテレータが取れない、という制約になっている。"
- SODA Noriyukiさんのツイート: "Boostにはあるし、言語標準の方でも議論はしてるっぽいですよね https://t.co/EtGBKKzf3o… "
- Intrusive Containers
- OSC2019東京・春出展さんのツイート: "Linuxカーネルのリンクリストは余計なアロケーションがなくて効率はいいんだけど、要素となるデータ構造と、それを入れるコンテナの種類が密に対応しちゃうのが気持ち悪い。"
- SODA Noriyukiさんのツイート: "intrusive containerって奴ですね # これに対しSTLやglibみたいな奴は non-intrusive container Linuxに限らず他の OS でも似たような構造はあるし(*BSDだと <queue.h> や <tree.h> など)、ゲームとか組み込みの世界でもよく欲しくなるのでC++にも入れようって話が出てたり https://t.co/EtGBKKzf3o… https://t.co/EK4OaKn9jr"
- SODA Noriyukiさんのツイート: "元となるデータ型を変更しないといけない(intrusive)という欠点は当然あるので、適材適所で使うものですが…… "
- _さんのツイート: "Boost.Intrusive とかありましたね https://t.co/9dd13XN7Dx"
- Chapter 19. Boost.Intrusive - 1.64.0
- OSC2019東京・春出展さんのツイート: ""intrusive container"っていう呼び方は初めて知りました.ありがとうございます!とあるデータ構造を,ここではリンクリストで,こっちではarrayリストで,こっちではsetで,みたいにしたかったらintrusive containerは不向きですね.… https://t.co/QfDH6bELcN"
- SODA Noriyukiさんのツイート: "arrayは無理なので向かないけど、(mapあたりで実装した)setとlistなら可能だし、わりとしょっちゅうやります。設計時にそのデータ型が属するcontainerの種類や数が不定だったりすると不可能ですが。… "
- OSC2019東京・春出展さんのツイート: "ああ,そうか.ポインタで繋げるタイプのコンテナなら実現できそうですね.… "
疎行列
sparse
- hsjoihsさんはTwitterを使っています 「https://t.co/oOfSt36h8R「未初期化のメモリなんてどうなっててもいいよね、如何なる演算をも許さなくてもいいように思える」 私「わかる」 人「なんと https://t.co/p93MaxwPau という天才的アルゴリズムが反例として存在します」 私「なるほど?」 私「なるほど~~」」 / Twitter
- "What The Hardware Does" is not What Your Program Does: Uninitialized Memory
- research!rsc: Using Uninitialized Memory for Fun and Profit
- 疎行列格納形式の話 - krustf の雑記
- CRS形式 - JICFuS Wiki
- 疎行列のデータ構造入門再び - nursの日記
- 大規模疎行列のデータ構造とアルゴリズムその3 - nursの日記
ハッシュ
merkle DAG
- ブロックチェーン処理に特化した中国製ファイルシステム「TCFS」 - PC Watch
- IPFS入門 : 新たなP2Pハイパーメディア分散プロトコル | POSTD
- トランザクションデータを要約する技術「マークルツリー」
- [Japanese] Patricia Tree · ethereum/wiki Wiki
- 暗号学的ハッシュ関数 - Wikipedia
- データのバージョン管理が可能な分散データベースNomsのイントロダクション - Qiita
- ipfs.key
- 【次世代のインターネット】IPFS(Inter Planetary File System)で遊んでみた。 : 暗号通貨って何? es's website
マークル木
Go
- Kentaro Haraさんのツイート: "なかなか表舞台の話題に出てこない技術に Trillian(https://t.co/E5vOG1cgwA)というのがあって、個人的にはブロックチェーンとほぼ同等のことができて、かつブロックチェーンよりよほど将来性がある技術だと思う。オープンソースになってて、SSL認証などですでに実用化されている。"
- google/trillian: Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.
- Kazuho Okuさんのツイート: "公文書の記録にgitとかブロックチェインとかみたいな話を目にするけど、普通はMerkle Hash Treeを使って部分検証を可能にするんじゃないの?"
- Kazuho Okuさんのツイート: "ええ。Certificate Transparencyみたいなお金にならないものでさえmerkle treeで実現できてるわけで、公文書ならハッシュチェインで良いと僕も思います… "
- ハッシュ木 - Wikipedia
- Merkle tree - Wikipedia
- データ検証などで利用するMerkle Treeのメモ | Siguniang's Blog
- トランザクションデータを要約する技術「マークルツリー」
- ビットコインの技術 Merkle tree(Hash tree) プログラミングJava
- ビットコインとマークルツリーとマークルパスと - とってもやさしいビットコイン
- 【連載】暗号通貨ってなんだろう?⑦「第五部『その他』」 – びりあるの研究ノート
- ビットコインとは何か? 第2回:ビットコインの仕組み(ブロックチェーンの構造) - ビットコインの解説 | Bitcoin日本語情報サイト
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイル破壊検出用の並列ハッシュ値計算を考える。 ファイルデータを例えば256KBブロックで分割し、インターリーブ的にn本のストリームに見立てる。 ストリーム毎にハッシュ値を取り、最後にハッシュ値*nを並べてハッシュ値を取った場合、上記目的用としての品質はどの程度担保されるかな…?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、md5やsha1記録用としては使えないので、イマイチではある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "良く似たものに、merkle-treeがあり、70年代の終わりからすでに分散ハッシュ計算方法として、実績がある様子。 https://t.co/B1IiFBGWAI"
- Dan Kogaiさんのツイート: "ZFSはすでにブロック破壊検出と可能ならば修復も標準でやってくれるのだけどそれとは違う?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ZFSやbtrfsでは、こちらに書いたmerkle-treeが使われているみたいですね。 https://t.co/10YzrZNOlD 元々の動機はこちらに。 https://t.co/OWW9VhcYYT… "
- 鯉江さんのツイート: "AES-NIつかってGCMでチェックするのが早いと言ってる人がいたのを思い出しました。 https://t.co/XC2UX2GCzW https://t.co/MdzlQ0pMOb… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、いいですね。… "
- IPFSについて勉強した - mizchi's blog
khash
- libgit2の内部データ構造: strmap - Qiita
- attractivechaos.awardspace.com
- SW-1202-2282-2063さんのツイート: "@yukihiro_matz @mirichi 参考にされたオリジナルのkhashはこれですかね? https://t.co/4X9lsJlD0c"
- mrubyでkhashの使い方がまずいせいで起きる現象(putするまえにgetしてない)
- klib/khash.h at master · attractivechaos/klib
- Klib — a generic library in C
- attractivechaos/klib: A standalone and lightweight C library
SipHash
- SipHashについてのメモ - Qiita
- SipHash - Wikipedia
- SipHash: a fast short-input PRF
- siphash.pdf
- jedisct1/siphash-js: A Javascript implementation of SipHash-2-4
- veorq/SipHash: High-speed pseudorandom function (reference code)
- Change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust
- SipHashとAdvanced Hash Flooding - 不意になにかを残すブログ
- SipHash — Idea of the day
- siphash 0.0.1 : Python Package Index
- Yusuke Endohさんのツイート: "rust が案外速いと知って、じゃあなんでこのコードは遅いんだろうと今更 perf report 見てみたらハッシュ関数が半分以上占めていた。siphash は遅いんだなあしみじみ"
- DSAS開発者の部屋:最近の Python-dev (2017-02)
MurmurHash3
- MurmurHash3 · aappleby/smhasher Wiki
xxHash
- xxhashの紹介 - KengoSawa2の技術的ななにか
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「大量のデータ処理をするときは速いアルゴリズムを使うにかぎる。 通常のハッシュなら…× MD5/CRC32, ○ xxHash 暗号化ハッシュなら…× SHA1/SHA2, ○ BLAKE3 速い圧縮なら…× gzip/Snappy, ○ LZ4 良い圧縮なら…× xz, ○ zstd 注: ネット上の適当な言明↑を信用しないこと。 https://t.co/2ACkA9tlXZ」 / Twitter
- Use Fast Data Algorithms | Joey Lynch's Site
- Cyan4973/xxHash: Extremely fast non-cryptographic hash algorithm
- xxHash - Extremely fast non-cryptographic hash algorithm
- Synergy KK - 02-08Silverstack - オフロードとバックアップ -xxHash、MD5 / SHA-1チェックサム方式とMHL
- 使った node.js ライブラリ – xxhashjs / xxhash « Ooharabucyou
- xxHash - a hash algorithm as fast as memcpy
- xxhash 1.0.1 : Python Package Index
- XxHash - Wikipedia
- xxhash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash v0.8.1リリースされたが、I/F変更があって FastCopy 側もそこそこ対応が必要になっていた。 https://t.co/cCJeaR4tug」 / Twitter
- Cyan4973/xxHash at release
- ハッシュ関数 xxHash の入力を32bitに限定した場合に重複した値が出ないことを確認したい - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ベリファイ用ハッシュ計算のデフォルトは、xxHashにしようかな…"
- Kengo Sawatsuさんのツイート: "server2012<-80gbps->server2012 で、検証してみたところ ベリファイなし:3000MB/Sec(たぶんハード上限) xxhash:1500MB/Sec MD5:300MB/Sec SHA1:340MB/Sec ハッシュ計算がネックになっているので、記録用には使えないが壊れてないことは保証されるハッシュがあってもいいのかもしれませんね。(有料?)… https://t.co/ACQZ2QpC36"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "並列版xxhashを考えてみます(笑) 何並列に分割するか、考えてどころですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHashをストライピング的に並列処理した場合の速度実験。 (i5-8600K(6コア)、チャンクサイズ16KB、ストライプ数16) ワーカースレッド数(6)で 15.2GB/s、(4)で 12.5GB/s、(2)で 6.8GB/s、(1)で 3.5GB/s に。 待ち合わせオーバーヘッドはあるものの、使う価値はありそうだな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "上記実験では、1MB毎に待ち合わせした場合の値。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHash64 の速度の件、ビルドオプションを /Ob1 → /Ob2 (inline指定のinline化 → 可能な全てのinline化)で、3.7GB/s → 13.3GB/s に向上、100Gb環境でもマルチスレッド版必要なさそう。 (逆に利用側での #define XXH_INLINE_ALL は効果なし)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、v3.52をリリースするかな、xxHashデフォルトに変更して。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "付記。ビルドオプションは xxHashライブラリのビルドオプションのみ変更。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MT化xxHash / オリジナルxxHashで比較実験。(i5-8600K) ハッシュ対象が6MBの場合、60GB/s / 14.3GB/s となり、1GBの場合、27GB/s / 13.4GB/s となった。 そしてMT化版は 3スレッド指定で性能上限に達する。 だいたい理由は判るが面白い。… https://t.co/9FtZC0lvuz"
- xxHashメモ(VC++用Tips、MT実験)
- SHIROUZU Personal Log(2018-07-08)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「知らないうちに xxHash で 128bit が定義されていたようだ。 https://t.co/NowpG61eeH ちなみに xxhashの作者はハッシュ品質テストにSMHasherを使っている様子…これが業界的にはデファクトなのかしらん? https://t.co/n6GXjFkMVK」 / Twitter
- xxHash/xxh3.h at dev · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SMHasherは「ハッシュテストの DieHarder を目指している」とのこと。 https://t.co/0nOsBumaP3」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3(128bit)は、従来版より性能が高いらしいが、まだ実験版。 (10月の最新リリースでハッシュ値が変更されたが今後もありえる) https://t.co/9TkMrdl8iR」 / Twitter
- Releases · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「従来の xxHash(64bit) に比べて、xxHash3 はSSE/AVX利用で性能向上が著しい(2-3倍)。 正式リリース(v0.8)になり次第、こちらをFastCopyのデフォルトにするかな。 (今もさらなる性能向上のPRが取り込まれている最中っぽい) https://t.co/n6GXjFkMVK https://t.co/DBC6a6Lx5x」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash(64bit)の並列化実験(=通常版と値が変わる)で 13GB → 60GB/sまで改善した時のメモ。(2年前) https://t.co/SCuw1ulL8S」 / Twitter
- xxHashメモ(VC++用Tips、MT実験)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ようやくxxHash3 v0.80 リリースと。 (このリリース以降、128bit xxHash 値が将来リリースでも維持が保証される) https://t.co/sWDmn0hsnh」 / Twitter
- Release xxHash v0.8.0 - Stable XXH3 · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3を含む、xxHash v0.80 がリリースされた、の方が正確だった。 xxHash3 は 128bit が使えるのに加えて、従来のxxHashに比べて処理性能も約1.5倍に向上。 https://t.co/K3DWI1qRVp」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、xxHashのYann Colletさんは zstd や lz4 の作者でもある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHashは x86系だけで 通常 / SSE2 / AVX2 / AVX512版 と4実装が含まれているのだが、CPU毎の最適実装への動的な切替は VC++ ではビルドできない。 (ので、自動切替を自前で用意したり) https://t.co/XBfW3qcKvj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K で 1MB * 60000 = 60GB分の xxh3(128bit) を計算するとこんな結果に。 通常: 6.0s SSE2: 3.1s AVX2: 2.4s (なお、もっと上位CPUでないとAVX512は使えないが、世評を見る限り、大して性能向上しないのではとも)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても xxh3、CoffeeLake i5 で 25GB/s 出るのは大したもの。 参考までにxxHash時代の記録。 https://t.co/SCuw1ulL8S」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は SSD RAID などで、I/O が高速化しているので、ハッシュ値計算がボトルネックになることがあるため、高速ハッシュ計算はとても大事。 (md5だと専用スレッドで計算しても間に合わない) https://t.co/A9kiB1nHKc」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu コピー時の同一性検証ならGCMみたいなMAC使った方が速かったりしません?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho xxh3は非暗号学的ハッシュなので非常に軽く、手元のi5-8600Kで25GB/s、公式サイトだと 30GB/s くらい出ているのですが、GCMでもこのくらい行くのでしたっけ…? https://t.co/GaHddSLjZL」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu あーすみませんmd5しか見てませんでした。gcmだとその条件で6GB/s程度は出ると思いますが10GB/sは行かないと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash作者のYann Colletさんに確認したところ、VC++では SSE2/AVX2/AVX512の動的切り替えは、下記のようなソース分割コードしか実現不可能という結論に。 https://t.co/qr9RCzQ5B7」 / Twitter
- shirouzu/xxh3_sw
hash
- kbcl0_0004 - essen-wiki
- ドッグさんのツイート: "Facebook が開発した高速でメモリ効率の良いハッシュテーブル実装 F14 が Folly C++ ライブラリの一部として公開したのか.記事内では具体的な最適化の内容について解説されてる | 'Open-sourcing F14 for memory-efficient hash tables - Facebook Code' https://t.co/smzRYWwWks"
- Open-sourcing F14 for memory-efficient hash tables - Facebook Code
- ドッグさんのツイート: "ただし std::unordered_map とかが提供している reference stability は F14 では保証されないのか"
- ドッグさんのツイート: "ハッシュ値が衝突すると衝突の解決のために普段とは違うパスを通らないといけないから CPU が分岐予測を外す → 衝突を減らすのが大事.とはいえナイーブにテーブルの初期サイズをデカくすると当然メモリ効率が悪くなる"
- ドッグさんのツイート: "そこでスロットごとではなくチャンク (複数のスロットの塊) ごとにハッシュ管理して,検索時はそれぞれのチャンクをベクタ命令で並列に検索.二段構えになる分普通のハッシュテーブルより処理は多くなるけど,トータルとしては速くなる"
- ドッグさんのツイート: "要素をポインタで間接的に持つ F14Node,要素を直接値で持つ F14Value,要素を配列に置いて配列で持つ F14Vector の複数のメモリレイアウトを検討して F14Value と F14Vecror のハイブリッドにしたらしい (F14Fast)"
- ドッグさんのツイート: "C++ 的に頑張った点として, std::string をキーに持つテーブルは std::string_view で no copy に検索できるようになってる ,noexcept でムーブ出来ない型の要素を入れた時は [[deprecated]] で警告を出しまくる (ウケる) これは経験的に大抵 noexcept 付け忘れてるケースがほとんどのため"
- 汎用kumAGIさんのツイート: "大昔に作ったスライド、「あなたの知らないハッシュテーブルの世界」これslideboomってサービスに上げてたけどサービス終了したしアニメーションが入ってるせいかslideshareに上がらなかったのでとりあえずdropboxに置いて欲しい人に届くように公開。内容は古いです。 https://t.co/I1pxAshYt0"
- あなたの知らないハッシュテーブルの世界.pptx
- Shirouzu Hiroaki(白水啓章)さんのツイート: "完璧なハッシュ関数だと、fa fb の衝突はそれ以上改善できなさそう。 ただ、fa fb に加えて、ダミー文字列mを付与して、f(a+m) f(b+m) も行って、fa+f(a+m) と fb+f(b+m) で512bit比較が許容されるなら衝突改善できそう。… https://t.co/tD9Q5F6geC"
- とつげき東北⛅さんのツイート: "問題: 1/(2^256)の確率で衝突してしまう暗号学的ハッシュ関数fがある。入力に対する出力は256bitで、衝突以外は「安全」だとする。 原文としてaとbがあるとする。xをハッシュにかけたハッシュ値をfxのように書く。 f以外のハッシュ関数がない場合に、faとfbの衝突を少しでも回避する方法を考察せよ。"
- とつげき東北⛅さんのツイート: "そういう意図でした。 文字列を連結した場合……と書くとヒントになりすぎるし、240文字で制限あるしで困りました。 ちなみに「完全な」ではない場合の定義も曖昧で、aと何かを連結したものと、bと同じ何かを連結したものもまた衝突するなら、解なしぽいですね。 ご回答ありがとうございます!… https://t.co/HyQpVZWfdC"
QHash
- 島鉄雄さんはTwitterを使っています 「古い記事だけど辞書のベンチマーク比較サイトがあった。 これ見るとQHashがやたら速いし省メモリ。 早速ソースコード見てみたら、struct Span と言うデータ構造が肝のようだ。 要するに仮想記憶の様に所々しかメモリが確保されてない巨大配列を作ってるようだ。 これは良い。 https://t.co/RM9rjQZQje」 / Twitter
- Benchmark of Dictionary Structures
- 島鉄雄さんはTwitterを使っています 「Boost のハッシュ(unordered_map)も十分速いし省メモリだから、今は std::unordered_map を使っておけば間違いないのかもしれないけど、ソースコードを見ても何やってるか全然分からん… その点 QHash はかなり読み易い。」 / Twitter
Go
- 意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama|note
- Kazuho Okuさんのツイート: "@rui314 ネットワーク界隈だとossificationを防ぐためのgreasingという言い方をするので、そういう単語を紹介してもいいのかなと思いました cf. https://t.co/ZNyY1AadfS"
- Rui Ueyamaさんのツイート: "@kazuho そう、TCPとかだとossificationがひどいので新しいプロトコルではなるべくgreasingするようにしていて、みたいなこと書いたんですが短くするために削除してしまいました。"
- Kazuho Okuさんのツイート: "@rui314 なるほどです。「グリス(を塗る)」と言ったほうがランダム化よりも良いかと思ったのですが、意図的に落とされたんですね"
- Rui Ueyamaさんのツイート: "@kazuho Goのマップとかだとgreasingっていう言い方を聞いたことがないんですよねぇ。そっちから書き始めたので話の流れ的にまあこれでいっか、と。"
POSTD
- 私が書いた最速のハッシュテーブル – PART 1 | プログラミング | POSTD
- 私が書いた最速のハッシュテーブル – PART 2 | プログラミング | POSTD
- 私が書いた最速のハッシュテーブル – PART 3 | コンピュータサイエンス | POSTD
- 私が書いた最速のハッシュテーブル – PART 4 | コンピュータサイエンス | POSTD
最近のruby-core
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
- 最近のruby-core (2017年1月) | Money Forward Engineers' Blog
局所性鋭敏型ハッシュ
- Miura HidekiさんはTwitterを使っています 「https://t.co/sHNKVNTbdU 面白いのだがよくわからない。隠れ層の重みを1bitとか2bitにしてハッシュテーブルで検索するって話なのかなー?」 / Twitter
- ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
- zakkiさんはTwitterを使っています 「@miura1729 理解しきれてませんが、重みの精度落とすんじゃなくて、局所性鋭敏型ハッシュでのハッシュテーブルで最近傍近似するとかなんとか https://t.co/TYiZIirw1E」 / Twitter
- keroro824/HashingDeepLearning: Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
- miyoxさんはTwitterを使っています 「行列計算じゃなくてハッシュテーブルを使う? https://t.co/ta2Ak7J33V 論文はこれかな https://t.co/aRlUj0b1U7」 / Twitter
- [1903.03129] SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems
- OGAWA, TadashiさんはTwitterを使っています 「.@miyox MLSys 2020でのペーパーとスライドです "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice & Intel https://t.co/hoaRaKHv3Z Anshumali Shrivastava https://t.co/3sRRl219kU」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice & Intel, MLSys 2020 https://t.co/25sEoYoKb1 https://t.co/u2OPpgLzPY Amazon-670K 2x (22 core Xeon E5-2699A v4, 2.4 GHz): 1 H TF on V100: 3.5 H https://t.co/b7f4Rnapj2 https://t.co/1kYVn7PfWz」 / Twitter
- Anshumali Shrivastava
Twitter
- chokudai(高橋 直大)さんのツイート: "(x,y)を((long)x<<32)+yでエンコードするとハッシュ衝突して死ぬ、普通に知らなかった。(C#のDictionaryの内部実装の問題っぽい)"
- Kazuho Okuさんのツイート: "rubyのハッシュテーブルって何か昭和な実装使ってたと思うんだけどkhashとかにしないのかな #RubyKaigi"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyベリファイでは、I/O中にハッシュを並列計算することで、ハッシュ計算をI/O時間に隠蔽していた。 だが、速度向上につれて1GB/sを越えてくると、ハッシュ計算時間がI/O時間を上回るようになり、ハッシュ時間が律速要素になって来たのは、とても面白い。… https://t.co/UfkmUTUyYm"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のPythonのhash()は、起動毎に異なる値を返すらしい。 (hash値が予測可能だと、dictでDOS攻撃が可能なため) https://t.co/CSmQXCYs7B… "
- security - hash function in Python 3.3 returns different results between sessions - Stack Overflow
- Taku KudoさんはTwitterを使っています: 「unordered系のcontainerの実装を変えると、違う結果をはきだした。hash関数が変わると再現性がなくなるというのは本来あってはならないことだよな.. 速度的に強い制約ないのであれば、ordered なコンテナを使うほうが無難。」 / Twitter
- SmoothieMap 2: the lowest memory hash table - Roman Leventov - Medium
- KOMIYA AtsushiさんはTwitterを使っています: 「メモリフットプリントが小さく(1エントリあたりのヒープ使用量が小さく)て、rehash によるレイテンシの劣化がない java.util. Map の実装らしい。 “SmoothieMap 2: the lowest memory hash table ever” by Roman Leventov https://t.co/W6NJWQmVsH」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AIの偉い人から「LSH(Locality-sensitive Hashing)」という単語を聞いて調べ中。 (そもそも多次元=球面集中も知らなかった) ---- 「(昔は近似検索にはハッシュは使えなかったが)Locality-sensitive Hashingという類似検索向けのハッシュ法を開発して状況は一変し…」 https://t.co/RNXGZZf6BL」 / Twitter
- 7_256.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「高速ハッシュ計算コマンドを作って実験したところ、xxh3 だけは SSD速度限界に。 xxh3 ... 2788.7MiB/s xxh ... 1534.8MiB/s sha1 ... 1035.4MiB/s sha512 ... 741.4MiB/s md5 ... 736.3MiB/s sha256 ... 499.1MiB/s」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(他にもハッシュ種類増やしてもいいのだけど、メジャーなのはこのくらいかな?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あれ、自分で書いておいてアレだけど、xxhの速度が遅すぎだな。コンパイルオプションを再確認しよう。 https://t.co/cIeDU2TLdf」 / Twitter
- xxHashメモ(VC++用Tips、MT実験)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxh3 でしか dispatch(sse/avx等への動的切り替えルーチン)を使って無かったというオチだった。直しておこう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「やはり、xxh3 だけでなく xxh も dispatch版にすることで、SSD側の速度限界に。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに高速ハッシュ計算コマンドは、次期FastCopyに添付するつもり…ただコマンドラインなので使いづらいかな?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は PCIe5 も出始めて、下記の xxh 13.3GB/s だと速度ネックが出る場面もありそう…といって、ハッシュツリーやストライピングにすると、互換性に問題出るのだよなぁ。 https://t.co/SCuw1ulL8S」 / Twitter
- xxHashメモ(VC++用Tips、MT実験)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、同梱の FcHashコマンドライン(xxh/xxh3/sha1/sha256/sha512計算)は、本家の OpenSSL のそれより高速になってます。 (ディレクトリ指定で配下のファイルも一括算出も可能…いずれ MHL出力とかできると良いかな)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(たぶんこれ、ハッシュ算出ツールで最速と思ってる)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、FcHashコマンドを添付したのは、opensslコマンドでは xxh/xxh3 ハッシュが算出できないため、というのも一因。 (暗号学的ハッシュ関数ではないため。ただしその高速性から、映像業界などでは広く使われてる印象ある)」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「いろいろな用途のハッシュ関数: - ハッシュテーブル用ハッシュ - エラー検査用ハッシュ - 順列ハッシュ - (暗号学的) 署名用ハッシュ - (暗号学的) パスワード用ハッシュ - (暗号学的) トークン用ハッシュ - (暗号学的) 暗号化用ハッシュ - その他 https://t.co/FN6nQBns7s」 / Twitter
- The many flavors of hashing -- Volution Notes
- Miura HidekiさんはTwitterを使っています: 「複数オブジェクトで構成された型オブジェクトの比較を高速に行うためにハッシュ関数を工夫することを考えているのだけど、英語版のWikipediaが日本語版とは別物で充実していることに気づいた https://t.co/ivwSfmBzN4」 / Twitter
- Hash function - Wikipedia
- 集合をハッシュする (Zobrist hashing) | 東京工業大学デジタル創作同好会traP
- chokudai(高橋 直大)🐙🔥@AtCoder社長さんはTwitterを使っています: 「Zobrist HashingでXOR使うところを、和を使うことで個数にも対応するテクニック、普通に超便利なので将棋AI以外にも浸透したほうが良いと思ってるんだけど、普通に浸透してるのかな。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「まさに今考えている話だ。ただ、ナイーブにすると衝突確率が上がるのでビットを無駄なく使って出来る限り衝突確率を下げたいんだよね」 / Twitter
- HKDF, HMACなどのハッシュ関数を使う場合に知っておくべきFS/PFS – yohgaki's blog
- A Hash Function for Hash Table Lookup
- 高速ハッシュアルゴリズム | YOSBITS
- 八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第2回 RHG の逆襲
- あなたの知らないハッシュテーブルの世界
- テンプレート: Hopscotch Hashingとその他
- aappleby/smhasher: Automatically exported from code.google.com/p/smhasher
- luispedro/diskhash: Diskbased (persistent) hashtable
- Positive Technologies - vulnerability assessment, compliance management and threat analysis solutions
- leo-yuriev/t1ha: Fast Positive Hash, aka "Позитивный Хэш" - just the fastest portable hash function.
- HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
- Re-implementation of Lock Free Cuckoo Hashing – ScienceOpen
- 伊津野 英克さんはTwitterを使っています 「ハッシュ関数は速いかだけじゃなくて予測不能か(暗号に使えるか)、衝突率が低いか、DoS耐性があるか、と用途によって最適解が違うのが難しい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「DoS耐性なくてもキーが動的に変わらなかったり、キャッシュ用途であれば使用に何の問題もないし、予測不能性も外部に露出しないなら何の問題もない。遅いのと衝突率が高いのはどうにもならないけど。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「非暗号用途だがDoS耐性のある高速なハッシュ関数実装らしい https://t.co/Ohk0oW9IUH」 / Twitter
- tkaitchuck/aHash: aHash is a non-cryptographic hashing algorithm that uses the AES hardware instruction
二分探索
- DSWアルゴリズム - Wikipedia
- Day–Stout–Warren algorithm - Wikipedia
- 高速な圧縮辞書ライブラリXcdatをリリースしました - Kampersanda's Blog
- KampersandaさんはTwitterを使っています 「Lemire氏のブログを眺めてて面白かった記事。複数の二分探索を実行するとき、各ステップをインターリーブして実行すると、どうせ外れる二分探索の分岐予測よりも効率的に命令が使えて定数倍高速化するというもの。 https://t.co/H4mqcr7NOC」 / Twitter
- Speeding up independent binary searches by interleaving them – Daniel Lemire's blog
- Binary search with modern processors - Speaker Deck
- TokusiNさんはTwitterを使っています: 「年齢の二分探索は、上限が128未満とわかっているから初手64歳が正解なのだけど、上限がわからない値で二分探索する場合は、1→2→4→8→16→・・・と順番に聞いてNoが帰ってきたところで二分探索を開始するのが正しい。これなら入力値のレンジが不明でも対数オーダーの時間で探索できる。」 / Twitter
- TokusiNさんはTwitterを使っています: 「レンジが不明なときの二分探索、1→2→4→というのは細かすぎてあまり効率が良くない。どれぐらいの倍率が最善なのだろうか?4倍ぐらいが良いのかな?」 / Twitter
- 塚越のコエさん(タココタ)さんはTwitterを使っています: 「@toku51n 宇宙論とか、ギリギリ現実世界に結びつく巨大数が せいぜい5段とか6段とかの指数タワーが限度らしいので、 (それでもかなり理論的な議論で, 「銀河の原子数」とかなら桁数で余裕で十分) 純粋数学の巨大数とかを考え始めない限り、 階乗とか階乗より若干強いやつくらいで 当てるのが現実的かと。」 / Twitter
- TokusiNさんはTwitterを使っています: 「@Tesutosu12 現実的にありうる程度の数字なら桁数の二分探索、言い換えると2^2^nのnをインクリメントすれば概ね十分ですね。逆にそれ以上増加量を多くしても、末尾まで二分探索で確定させる場合、そちらと比べて計算量が無視できるぐらい小さいからあまり意味がない」 / Twitter
- 塚越のコエさん(タココタ)さんはTwitterを使っています: 「単純な等比数列なら桁数は線形で増えますが、 階乗だと当然、超線形です。 倍,倍…とか4倍,4倍…と等比数列で済むのか、 桁数を線形以上で増やしたいか、が 第一段階の選択になると思います」 / Twitter
- とつげき東北さんはTwitterを使っています: 「@toku51n 仮定される事前分布に依存!」 / Twitter
- TokusiNさんはTwitterを使っています: 「@totutohoku 事前分布がある程度仮定出来ているのならばそれに依存するのですが、それすらも不明な時に、最悪でもロスを少なくしたい時はどんな感じにすれば良いのだろう、と。まぁ、本当にレンジが不明な場合は範囲を絞る時の関数がテトレーションとかになってしまうのですが。」 / Twitter
- とつげき東北さんはTwitterを使っています: 「@toku51n どんな仮定も置けない、って厳密には難しくて、せ観測範囲内でランダムに実現値が一様分布で決まる、あるいは正規分布に従う乱数で決まる、とかも仮定な気がしますね……。」 / Twitter
- とつげき東北さんはTwitterを使っています: 「@toku51n 特殊なある関数を通して変換した分布が(有限な最大値を持つ)一様分布になる、として、二分探索などが真の意味で効率的になるのですが、その「特殊な関数」の形状がわかっていれば変換する意味あんまないし、意味があるとすれば意味がないというジレンマ。」 / Twitter
- 二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita
グラフ
NyaRuRuが地球にいたころ
- graph (1) - NyaRuRuが地球にいたころ
- graph (2) - NyaRuRuが地球にいたころ
- graph (3) - NyaRuRuが地球にいたころ
- graph (4) : 身近な例 - NyaRuRuが地球にいたころ
- graph (5) : クエリ式 - NyaRuRuが地球にいたころ
- graph (6) : 再帰クエリ - NyaRuRuが地球にいたころ
- ダイクストラ法のよくあるミスと落し方 - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ
- グラフ理論の基本概念 誤用例はなしっ - 檜山正幸のキマイラ飼育記 (はてなBlog)
- グラフ理論の基本概念とその誤用例 -- mixiがどうしたってぇ? - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 大規模グラフアルゴリズムの最先端
- ページランクのアルゴリズムをC++で試してみる (1/3):CodeZine(コードジン)
- BDDとZDDを下から読んで再帰アルゴリズムを作る - Qiita
- 01-BFSのちょっと丁寧な解説 - ARMERIA
- ワーシャル–フロイド法 - Wikipedia
- 疎行列の計算を実装してグラフ理論をかじってみる (1/3):CodeZine(コードジン)
- 江崎貴裕@数理モデル本発売中!さんはTwitterを使っています 「巡回セールスマン問題の最短経路長は、もしノードの位置が一様ランダムに決まると仮定すると、その領域の面積とノード数の平方根に比例する式で近似できるということが知られているらしいのだが、試しに計算してみたら思ったよりいい近似で驚いた。 https://t.co/fWc7VrJhmw」 / Twitter
- 数学の難問「巡回セールスマン問題」の近似解を求める最良のアルゴリズムが数十年ぶりに更新される - GIGAZINE
- Shinji KonoさんはTwitterを使っています 「この種のアルゴリズムの計算量や解の質の問題は極めて難しくて手法そのものが良くわかってない。アルゴリズム自体よりも、そっちだな。 https://t.co/J2MSPl1pDE」 / Twitter
- Shinji KonoさんはTwitterを使っています 「巡回セールスマンはNPハードだがNP完全ではないけど、NPの理解に計算幾何学が使えるなら面白い。きっとやっている人たくさんいるんだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かに、可能な計算全てに計量を入れるような話だし」 / Twitter
- 閉半環を使ってグラフ上の最短距離を計算する!
- κeenさんはTwitterを使っています 「Idrisだと(依存型のついた)Matrixあるし簡単じゃんと思ったらSemiRingじゃなくてRingが要求されていた…」 / Twitter
- グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
- kinabaさんはTwitterを使っています 「全ノードが次数k以上な最大部分グラフを探すアルゴリズム https://t.co/Dqf8bj2ImP (次数k未満のノードをまず捨てると、残ったノードの次数が減るので繰り返すと捨てられる物が増える)を思い出したけど、実際近い理屈かもしれないな。残す候補の物の集合からある程度のリンクがないと捨てられやすい」 / Twitter
- Find k-cores of an undirected graph - GeeksforGeeks
- Masaki HaraさんはTwitterを使っています 「整理整頓の仕方。「これは要らないな」と思ったものを捨てるとものが半分以下になるので、これをn回繰り返すと最初の(1/2)^nになる。というのは嘘にしても、何回か繰り返すとなぜか捨てられるものが増える。」 / Twitter
- バネ埋め込み法を使って隣接行列からグラフを描画する
- Navigable Small Worldによる近似最近傍探索 - suzuzusu日記
隣接行列
- 有向グラフ 隣接行列 圧縮 - Google 検索
- 有向グラフ 隣接行列 圧縮 意味ネットワーク - Google 検索
- 有向グラフ 隣接行列 意味ネットワーク - Google 検索
- 隣接行列 意味ネットワーク - Google 検索
map
SwissTable
- mattnさんはTwitterを使っています: 「Go の map の実装が hashmap から SwissTable になる可能性が出てきた。今の実装から仕様を変える事なしに SwissTable に置き換える事が可能で、それでありながら read/write 共に 20~50% 改善、iterate が 10% 改善。 https://t.co/e0nF4z4pCZ」 / Twitter
- runtime: use SwissTable · Issue #54766 · golang/go
- mattnさんはTwitterを使っています: 「SIMD による実装が含まれていない状態でこの改善なので、今後 SIMD による実装が入ればもう少し改善されるはず。」 / Twitter
- mattnさんはTwitterを使っています: 「要素数の少ない map を引くと、最大 20% 低下するというのも書いておくべきか。」 / Twitter
- 各種マップ実装の性能比較 - mixi engineer blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonは、逆に3.7(実装では3.6)から挿入順でのイテレーションが保証されるように。 ただしハッシュ値は起動毎にランダム(コリジョン対策)」 / Twitter
- mattnさんはTwitterを使っています 「そうするとユーザがそれに依存したコードを書いてしまい以降アルゴリズムを変更できなくなります。そこで Go では意図的にイテレーションの順をランダムにするようになっています。」 / Twitter
Elias-Fano encoding
- Taku KudoさんはTwitterを使っています 「ソートされた整数列(転置インデックスのポジションリストとか)の圧縮に elias-fano-encoding という手法があることを知った。Quasi-succinct で、試したところ、ありがちな手製圧縮をはるかに凌駕する。 https://t.co/f32s48zQHn」 / Twitter
- Sorted integers compression with Elias-Fano encoding | Antonio Mallia
- Taku KudoさんはTwitterを使っています 「sentencepieceを本来の意味でのデータ圧縮につかってみた。当たり前だがうまくいく。」 / Twitter
DyFT
- KampersandaさんはTwitterを使っています 「Our new paper "DyFT: a dynamic similarity search method on integer sketches" has been published in Knowledge and Information Systems Journal (as an invited paper from ICDM20) https://t.co/gaJhCiYTe2」 / Twitter
- KampersandaさんはTwitterを使っています 「The SharedIt link is https://t.co/JtppgsZmx8」 / Twitter
- DyFT: a dynamic similarity search method on integer sketches
トライ
- 404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン?
- Gauche:Trie
- Parallel Collections - 並行トライ - Scala Documentation
- Groonga - grn_dat - 参照ロックフリーなダブル配列
- ダブル配列の豆知識
- ダブル配列の実装方法
- 人生で何度目かのダブル配列TRIEを書いた - Qiita
- すごいTrie - Qiita
- Rui UeyamaさんはTwitterを使っています 「TrieというとGoの標準ライブラリのここらへんでTrieを使っているけど、実はこれかなり非効率的で、DFAを使って入力に対してリニアにしか時間がかからないようにしたほうがいいはず。パッチ書くの面倒だけど。 https://t.co/kBoyU1sKyj」 / Twitter
- src/strings/replace.go - The Go Programming Language
Splay木
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「Splay木って最近示されたDynamicOptimalityの下界を達成していたっけ(ギリしていなかったような)」 / Twitter
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「根拠のない直感なんだけど、クエリ列のエントロピーの大小とOptimalDynamicBinarySearchTreeの計算量の大小も連動するイメージがあって それとSplayTreeのおそらくほぼOptimalなところを見ると、「Splay木は偏ったケースだと早い」がなんとなくそうかもしれんなという気になる」 / Twitter
- Masaki HaraさんはTwitterを使っています 「へー動的最適性って示されたんだ (名前しか知らない)」 / Twitter
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「まどろっこしい話をしたのでスーパー火消しタイム - Tarjanの動的最適性の予想はまだ示されていないはず - 最近Wilberの下界が最適っぽいかもしれない予想にProgressがあった(https://t.co/9mPFBQBoVZ) だけなのでSplay木が全然下界じゃな可能性は残っています 最近の私のツイートはイメージです」 / Twitter
- Settling the relationship between Wilber's bounds for dynamic optimality
Crit-Bit Tree
- 404 Blog Not Found:algorithm - PATRICIA に一番似合う姓は Crit-Bit かも
- 高速な文字列検索 Crit-Bit Tree コンテナ(C++) - Qiita
- prog_0003 - kiwi-log
- Crit-bit trees
- crit-bit 木 (その3) - Tociyuki::Diary
機械学習インデックス
- Kazunori Satoさんのツイート: "Jeff Dean他、Learned Index Structureを発表。B-Tree比で70%の性能向上と桁違いの省メモリを実現。GPU/TPUにも載りそう。 https://t.co/Bs2WmD2io9 https://t.co/eQGGRuAB2D"
- Fadisさんのツイート: "「B-Treeのインデックスは機械学習で言う回帰木であり、この部分をディープラーニングを含む他の機械学習の手法で置き換える事ができる」 その発想はなかった"
- Kazuho Okuさんのツイート: "多次元への拡張やばいな。任意のクエリに対応したインデックスを自動生成できれば、もうセカンダリインデックスどうしようとか考える必要なくなる / “The Case for Learned Index Structures – Ar…” https://t.co/y2PJqeq11F"
- The Case for Learned Index Structures – Arxiv Vanity
- Kazuho Okuさんのツイート: "機械学習インデックスのやつ、一次元なら古典的な方法でもできそう(例えばJPEGのように頻度を階層的にDCT)な気がするけど、どうなんだろうなー"
- Kazuho Okuさんのツイート: "なんというか、次元低いなら機械学習いらない気がするんだよね。あるいは、次元が低くても機械学習に優位性があるなら、同じ手法を使うことで画像の圧縮率を大幅に上げることが可能だってことになるよね"
- Kazuho Okuさんのツイート: "あーインデックスだと参照速度重要だからDCTよりもNNになるのかな"
- Daisuke Okanoharaさんのツイート: "@kazuho 画像の圧縮にNNを使う研究はいくつか出ててすでにJPEG は超えてて特に低レートだとかなり勝ってます。スタートアップもでてきてます。ただ、NNによる圧縮の本命は容量も大きく圧縮がすごく効くであろう動画だと思います。 https://t.co/HwddgBaZcU"
- IR Reading 2019秋 論文紹介 / IR Reading 2019Fall - Speaker Deck
進化的アルゴリズム
- 進化的アルゴリズム - Wikipedia
- 進化戦略 - Wikipedia
- CMA-ES - Wikipedia
- 乱択アルゴリズム - Wikipedia
- 分散共分散行列 - Wikipedia
オートマトン
- Ichiro HasuoさんはTwitterを使っています 「これ,実はオートマトン理論の成果です.「Bellman operator を使うと確率的オートマトンの解析が局所的にできるよ!(動的計画法)」という基本の話に,あえて大域的な解析を上手に組み合わせることで,解析が爆速になりました.[Phalakarn・滝坂・Haas・蓮尾 CAV'20]」 / Twitter
- 国立情報学研究所(NII)さんはTwitterを使っています 「[ニュースリリース] 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発 ~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ https://t.co/XIfTJW9bR6」 / Twitter
- 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ - 国立情報学研究所 / National Institute of Informatics
- 国立情報学研究所(NII)さんはTwitterを使っています 「本研究ではゴールの達成確率を最大化する戦略を精度保証しながら高速に計算する手法を開発しました。工業製品の品質確認や自動運転の制御、マーケット投資戦略の策定等、幅広い分野の意思決定を支援するシステムに応用可能で、システムが示す選択肢の正しさを保証しつつ高速に計算結果を提示できます。 https://t.co/4AZ9QHLXfB」 / Twitter
OpenVDB
- FadisさんはTwitterを使っています 「OpenVDB 9.0がリリースされたらしい。9.0では新たにVDBの簡素な(C++版はheader only)実装であるNanoVDBが追加された。NanoVDBはVDBの木構造のトポロジを構築後に変更できない代わりに、多くの場合フルのOpenVDBより高速にデータにアクセスでき、更にGPU用の実装も提供される https://t.co/TFKnLntuxq」 / Twitter
- OpenVDB 9.0 Released With NanoVDB GPU Support - Phoronix
- FadisさんはTwitterを使っています 「OpenVDBはオープンソースで実装された空間的データ構造。疎に散らばった要素の中からある位置の近傍にある要素を高速に探したい、交差判定をしたい、といった物理シミュレーション等でよくあるタスクをハッシュと木構造をうまく組み合わせたデータ構造で効率よく行う https://t.co/ld1UfO7nhs」 / Twitter
- OpenVDB
blog
- Segment Tree を少し速くする - Fixstars Tech Blog /proc/cpuinfo
- Segment tree - Wikipedia
- DSAS開発者の部屋:最近のPython-dev(2017-09)
- はてなブックマークWeb版のエントリー検索のアルゴリズムを改善しました - はてなブックマーク開発ブログ
- 論文メモ: Accelerated Query Processing Via Similarity Score Prediction (SIGIR 2019) - stop-the-world
- 論文メモ: Fast Approximate Filtering of Search Results Sorted by Attribute (SIGIR 2019) - stop-the-world
- Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
- 文字列アルゴリズムの学びかた - Hatena Developer Blog
- 赤黒木による順序付き集合 - Tociyuki::Diary
- 赤黒木同士の非破壊 JOIN 関数 - Tociyuki::Diary
- お勉強メモ:混合ベルヌーイ分布とEMアルゴリズム - Kampersanda's Blog
- 分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す - エムスリーテックブログ
- 再訪: 極大部分文字列 - Retrieva TECH BLOG
- ローンチ前の Tag Suggestion 機能を機械学習で作る - Beatrust techBlog
- 日本語辞書ありキーワード抽出器からの多言語辞書なしキーワード抽出器の Distillation - Beatrust techBlog
スライド
- 実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
- 実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
- The first step self made full text search - Speaker Deck
- Mercari Item Search: Behind The Scenes (20min) - Speaker Deck
- 50分で学ぶアルゴリズム / Algorithms in 50 minutes - Speaker Deck
- Research Paper Introduction in IR Reading 2022 Fall - Speaker Deck
Qiita
- TDS: Transposition Table-driven Work Scheduling - Qiita
- HDA*: Hash Distributed A* - Qiita
- bit全探索について簡単にまとめる - Qiita
- 実践・最短経路問題 ~最短経路問題の見抜き方・立ち向かい方~ - Qiita
- てらモス♋️さんはTwitterを使っています 「双対を幾何学的に捉える https://t.co/y5wMXc2o0J #Qiita よく知らないけど凸解析とかにつなげるんじゃないの(´・ω・`)」 / Twitter
- 双対を幾何学的に捉える - Qiita
- アルゴリズムの世界地図 - Qiita
- 動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita
- lotzさんはTwitterを使っています 「@lot_carnage 整数二進対数面白いですね!👀 これで完全平衡二分木の配列における要素が属する階層が求まると✍勉強になります!」 / Twitter
- 整数二進対数または一番左の立っているビット位置を求める関数をいくつか実装して比較する - Qiita
Twitter
- 島鉄雄さんのツイート: "プログラミング言語には split や split-if 等豊富に用意されているけど、split の対としての slice が無いものが多い気がする。(elisp とか…) slice は使用頻度が低いかもしれないけど、無いと一から作らないといけないから、用意しておいてほしいもんだ。… https://t.co/tBJ7fp4rSK"
- takuya-aさんはTwitterを使っています: 「パフォーマンスのためにmutableなデータ構造を書く(一度確保した配列などのオブジェクトを何度も使い回して速度とメモリを稼ぐ)必要がたまにあり、そういうときは事前条件と事後条件のアサーションを思いつく限り書く。コードは冗長になるけど、逆に不変条件が明確になるのでわかりやすくなると思う」 / Twitter
- kgotoさんはTwitterを使っています: 「素晴らしい。 ちなみに3進数だけでなく、任意のk進数配列を最適な領域で保存するデータ構造[Dodis+, STOC 2010]というのもあります(実装はたぶんまだない)。 https://t.co/ujr4BuSi0d」 / Twitter
- かんぱさんださんはTwitterを使っています: 「{0,1,2}上の値から成る配列(Trit Array)に対する簡潔データ構造の実装を公開しました。 https://t.co/lhTsgATSH9」 / Twitter
- kampersanda/succinctrits: Succinct Rank/Select Data Structures on Trits
- takuya-aさんはTwitterを使っています: 「データ構造の本のなかで突然EM algorithmって出てきて???ってなったけど、データがメインメモリに載らない前提でディスクとかを使って計算するアルゴリズムはExternal memory algorithmっていうらしい。計算モデルもちゃんと定義されてる https://t.co/Ibs0p5GUkv」 / Twitter
- External memory algorithm - Wikipedia
- ( null)さんのツイート: "Mapなどの連想配列の挿入順が保持されない、というのは昔は常識だったが、最近は多くの言語・処理系で保持されるようになってきており、逆に保持される方が常識であるように変化しつつあるのは面白い"
- おーいわくんさんはTwitterを使っています: 「BERTを使って検索をより良くする話です | Understanding searches better than ever before https://t.co/P7QkslUvD9」 / Twitter
- Understanding searches better than ever before
- マスタケさんはTwitterを使っています: 「近傍探索の問題、実サービスで出会う問題は大抵部分集合内(,例えば同一タグで絞るとか日付で絞るとか)の近傍探索の問題に落とせるずで,実際そのほうが圧倒的に計算量が落とせるのに, 今までそういう提案はなかったという意味でこの論文は本当に好き https://t.co/y5fFf6Z3IS」 / Twitter
- [1808.03969] Reconfigurable Inverted Index
- takuya-aさんはTwitterを使っています: 「新着順や価格順などの属性によるソート順を維持しながらDCGなどの指標を最大化するランキングを近似誤差・時間計算量の理論保証つきで計算するアルゴリズムの論文です(オタク特有の早口)」 / Twitter
- relevanceの意味・使い方・読み方 | Weblio英和辞書
- takuya-aさんはTwitterを使っています: 「そもそも検索の精度というか、relevanceに対して真剣に向き合ってるサービス・会社が日本にほとんどないという」 / Twitter
- takuya-aさんはTwitterを使っています: 「もちろんrelevanceだけを見ればいいわけではなく、レイテンシとかUIとかの全ての要素を含めたUXが大事なんだけど、そもそもrelevanceの問題にちゃんと取り組める、取り組んだ経験のある人が少ない」 / Twitter
- takuya-aさんはTwitterを使っています: 「メモリに載らない(データの大部分はディスクにある)前提だとBkd-TreeとPH-Treeどっちが速いんだろう」 / Twitter
- takuya-aさんはTwitterを使っています: 「PH-TreeはB+Treeのうえにデータを載せる実装があるので比較はできるはず https://t.co/7fgPeAKASx」 / Twitter
- tzaeschke/phtree: PH-Tree
- Tomoko UchidaさんはTwitterを使っています: 「2, 3 週間睡眠を削った結果,近似最近傍探索 (HNSW) のパッチができつつあります https://t.co/hRjZicENcG が,インデクシングはやっぱり遅いのと,大改造がすぎるので入るのかどうか。。。」 / Twitter
- Add HNSW graph builder · mocobeta/lucene-solr-mirror@5fb9328
- スマートコンさんはTwitterを使っています 「別に難しいことを知ってる必要はなく、「log n は n に比べて余程小さい」「幾つかに分割してたら log n っぽくなる」「n log n という表記があったらだいたいよさそう」「n^2 はでかい」くらいの肌感覚で良い」 / Twitter
- KampersandaさんはTwitterを使っています 「弊圧縮ダブル配列辞書ライブラリxcdatを再実装して整備しました。改めて実験するとそこそこ良い性能でしたのでよければお使いください(結果の詳細はREADMEにあります) https://t.co/Tobkj5RSku https://t.co/Tu5xWcoFdx」 / Twitter
- kampersanda/xcdat: Fast compressed trie dictionary library
- KampersandaさんはTwitterを使っています 「弊近傍探索ライブラリあってめっちゃ嬉C https://t.co/6GpYpfb9wi」 / Twitter
- kampersanda/mih-rs: Rust implementation of multi-index hashing for neighbor searches on binary codes in the Hamming space
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「N分木の探索効率について。比較回数だけをみれば、N=2のときが平均して一番効率がよいように見える。では二分木が最強か? というとそうではない。メモリアクセスのコストを無視しているからだ。実際にはこれは結構大きい。 https://t.co/WXUMeTVMp8」 / Twitter
- Binary Trees are optimal… except when they’re not. | Harder, Better, Faster, Stronger
- とがさんはTwitterを使っています: 「平衡二分木に対する「探索し,なかったら挿入する」という操作は,探索の時点で挿入するべき箇所が判明するので,探索と挿入を別々に処理するより少し高速にできる.Rust の HashMap や BTreeMap は .entry().or_insert() でこれを可能にする.」 / Twitter
- とがさんはTwitterを使っています: 「C++ には .try_emplace() というのがあるが,これだと Rust の .or_insert_with() 相当ができない.そういうときは .emplace_hint() を使うといいのかな.」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題は1971年にSteve Cookによって提案された。あれから50年、P vs NP問題は依然として最も重要な問題のひとつである。アルゴリズムの進展により、最近ではP≠NPであってもそれなりの答えが出せるようになった。だがもしP=NPだった場合、公開鍵暗号は不可能になる。 https://t.co/wzPRQ9Po9o」 / Twitter
- Fifty Years of P vs. NP and the Possibility of the Impossible | January 2022 | Communications of the ACM
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「過去60年間に、アルゴリズムの研究はどれくらい役に立ったのか? 教科書と1000本以上の論文を調査した結果、14%のアルゴリズムはオーダーが変わり (O(2^n)がO(多項式)になったりなど)、ムーアの法則によるハードウェア進化を超えて高速化された。結論: アルゴリズム研究は重要 https://t.co/VqmEimeqaD」 / Twitter
- How Fast Do Algorithms Improve? | IEEE Journals & Magazine | IEEE Xplore
blog
その他
- 測度論 / ルベーグ積分 - 星の本棚
- 覚えるために学べ。GANを用いて過去に覚えたことを忘れないようにするクラス分類器 | AI-SCHOLAR
- Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
- DeepなFactorization Machinesの最新動向 (2018) - Gunosyデータ分析ブログ
- 20191109
- 距離学習(Metric Learning)入門から実践まで|はやぶさの技術ノート
- 人間が深層学習のAIを理解できないのには、理由がある:朝日新聞GLOBE+
- なぜ「事実」と「意見」を区別して話せない人がいるのか。 | Books&Apps
- 東大情報学環大澤昇平氏の差別発言について - researchmap
- JR西日本「ベンダーの提案すら理解できない素人だった」新幹線の“着雪量予測”データサイエンスコンペ開催までの「奮闘」
- <8D758DC081698250816A2E626F6F6B>
- motomura.dvi
- Kazunori SatoさんはTwitterを使っています: 「TJOさんのすばらしい説明可能性まとめ。 "ヒトが理解できるのはいわゆる「弾力性」とか「ルールベース」が関の山であり、これを機械学習モデルに置き換えると所詮は(一般化)線形モデルもしくは決定木(回帰木)止まりになる" https://t.co/ffC8SrfKf2」 / Twitter
- 機械学習の説明可能性(解釈性)という迷宮 - 渋谷駅前で働くデータサイエンティストのブログ
- SentencePieceについて書いてみる。 - どん底から這い上がるまでの記録
- 物理法則を”発見”できる機械学習モデルAI Feynman - akira - Medium
- ベイズ統計・ベイズ機械学習を始めよう | AIdrops
- 【第一回】ねこでも分かる!いかさまグラフにはもうダマされない!! - ed-ict|授業でもっとICT活用
- ポケモンを題材に因果推論を実践してみる - tepppeiのブログ
- 20200505
- AIっていったい誰なのよ | RAD-IT21
- VAEに基づくグラフの表現学習 - Sansan Builders Box
- 銀行での不正検知の精度向上へ 暗号のままデータ連携・機械学習ができるわけ | DG Lab Haus
- 2020年総まとめ 興味深い論文/記事85選|akiraTOSEI|note
- 2021年05月時点で自分が実践しているMLOpsの情報収集方法 | Shunya Ueta
- 「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記
- だらだらとKotlinで色々データサイエンスの業務をやって思ったこと | by nardtree | Medium
- 2021年ノーベル経済学賞の簡単な紹介 | | AI tech studio
はてなブログ
- JavaScript エンジニア向け: 知識ゼロから tensorflow.js で機械学習入門 - mizchi's blog
- WebサービスのA/Bテストや機械学習でよく使う「確率分布」18種を解説 - paiza開発日誌
- Factorization Machinesを今更読みました - EchizenBlog-Drei
- 識別/生成モデルの観点から見たRubin/Pearlの統計的因果推論(*既に一定の予備知識のある方向け) - Take a Risk:林岳彦の研究メモ
- ワードエンベディングベクトルを使った検索アプリを作った話 - 科学と非科学の迷宮
- 層の定義 - tsujimotterのノートブック
- 確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】 - HELLO CYBERNETICS
- 確率を解釈する - hidekatsu-izuno 日々の記録
- 検定や信頼区間の前提が満たされない状況に対して,テキストはどう助言してきたか? - Tarotanのブログ
- なぜ統計学では釣り鐘型の分布が使われ、物理現象では右肩下がりの分布が使われるのか - 小人さんの妄想
- 全てプログラミングで解決しなければならないという思い込みを捨てる - 武蔵野日記
- Kaggle グランドマスターから統計学と機械学習の違いを考える - hidekatsu-izuno 日々の記録
- Shiki OkasakaさんはTwitterを使っています: 「「シフトの操作が、文字キーの操作よりも若干遅れる被験者が居た。」という現象はNew Stickney配列でもおきるよう。ひらがなIMEにもdelayをいれる機能はあるのだけれど、これはGTKアプリ専用。どのくらい対策を実装したほうがよいものか。(新JISかなでは最終的に規格外と。) https://t.co/PSm9EUbnDg」 / Twitter
- 「新JISはNICOLAから生まれた!?」&「新JISにも版番号があった……しかも、次点配列はある意味さらに魅力的」 - 雑記/えもじならべあそび on blog
データ
- 生データ使い放題?! 「日本は機械学習パラダイス」になった ― DEEP LEARNING LAB 勉強会 - Deep Insider
- 効率的な教師データ作成(アノテーション)のための研究サーベイ - ABEJA Arts Blog
- (翻訳) データエンジニアリングの未来 - satoshihirose
- 実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~ - Ahogrammer
- AIデータ活用コンソーシアム設立 | yasuokaの日記 | スラド
- Plotly.pyによるデータ可視化のすすめ | フューチャー技術ブログ
- モダンデータスタックでデータ分析基盤の改善〜可用性と保守性もアップ!〜 | Money Forward Money Forward Engineers' Blog
ガウス過程
- ガウス過程の補助変数法をJuliaで実装、回帰結果を比較 • matsueushi
- ガウス過程の補助変数法 (Inducing variable method) を理解する • matsueushi
マルコフ
- マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる | 秋元@サイボウズラボ・プログラマー・ブログ
- 強化学習の基本:マルコフ決定過程ってなんぞ? - HELLO CYBERNETICS
モデリング
- ブラックホール撮影にも使える「スパースモデリング」とは?【機械学習】 - zalgo3の逆張りブログ
推論・推定
- Pythonとカーネル密度推定(KDE)について調べたまとめ - Stimulator
- なぜCatboostの推論は速いの? - 簡単なレポート
- ベイズ統計学に関する議論を整理する - hidekatsu-izuno 日々の記録
- なぜ統計学には主義が必要なのか - hidekatsu-izuno 日々の記録
- 「数理科学を使えば統計の”主義”を争う必要ない」という主張について検討する | 人はやがて死ぬ
- それはベイズ統計学ではなくて、言わば情報量基準主義ですよ
- 統計学に主義はあってもいいけど,人を説得するときに使うものじゃないという気がする - チラシの裏の落書き日記
- 特異学習理論 - Google 検索
- 情報量基準 - Google 検索
- 事後分布 - Google 検索
- 統計的仮説検定 - Google 検索
- 信頼区間 - Google 検索
補足
- Ken McAlinnさんはTwitterを使っています 「うっすらと感じてた誤解が言語化されてたのでちょっと補足。まぁ誤解は自分の言葉足らずが原因ということで。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「1. 一番勘違いされてる点であると思うけど、だれも特異学習理論を批判していない(というか情報量基準を広中の定理で拡張してるので批判する意味がない)。批判は「情報量基準によって様々な主義の統計学が統一されはじめて学問になった」という主張である。別にこう主張するのは構わないのだが」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「これはメジャーな意見ではないのと同時に情報量基準が適応できない分野(時系列、因果推論、確定的データ)はいくらでもあるので「統一」と言われると困る。「はじめて学問になった」という主張も根拠がわからない(ベイズもSavageの公理系によって学問になったと主張できるし)。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「肝心なのは「情報量基準ベースに統計学を一貫して見る」というのが(定義より)主義であるという点である。これを便宜的にWベイズと呼んでいたが情報量基準主義のほうが的確に思える。 2. 何度も書いてるがデータが真の分布からiidに発生されている、というのはかなり強い仮定である。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「完璧な実験ができるなら話は別だが、ほとんどの場合この仮定は満たされていない(というか確認できない)ので「理論の保証」はあくまで利用者がどこまでリスクを許容するかの話になる。データがiidだと思うのなら理論的に保証されてるし、iidでないなら(eg時系列)保証されないので良くないモデルを選ぶ」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「可能性が増え、利用者としてはリスクとなる。ほとんどの場合はこれが度合いの問題なので利用者としてはリスク・リターンを考えながら評価基準を複合的に考えないといけない。ちなみに特異学習理論によって拡張されたのは扱えるモデルであってデータの種類ではないが、今後その方向に拡張できればいいと」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「思う(情報量基準ではないけど時系列でのモデル評価の理論は自分も書いてる)。ただ「安心して使える」ものではない。 3. 自分は予測主義なのだが、予測の良さ≠因果性なので科学とは良い予測をすることなのか因果関係をみつけることなのかはまだ議論があるので一意に「科学とはこれだ」とは言えない。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「4. ベイズの論理構成の最小限は意思決定である(というのが主観ベイズの立場)。そこから事前分布がでてきてベイズの定理がでてくるという話なのでモデル/データがなくてもベイズはできる。 5. その後のベイズ/頻度の部分は指摘すると長くなるのでパス。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「最後に言うとだれも主義を強要してない。(みんな「見方」をもってるんだから)主義を考えるとこういう解釈ができたりこういう研究ができるよって話なのであって、自分が正しいともみんな同じ意見になれとも思ってない。」 / Twitter
- 複素 数太郎さんはTwitterを使っています 「データはデータであって確率変数とも定数とも一切関係ないのだから「確率変数/定数を扱うこれこれの理論の計算結果がこうだから現在の設定におけるデータをここに当てはめると所望の結果と考えられるものが出る」と言えばいいのに、なぜか「データは確率変数」というIQ3みたいな言い方で表現される」 / Twitter
- 統計学の「主義」批判に渡辺ベイズは一切必要なく、そこには一般的な記号操作におけるリテラシーの問題しかないのではないか|複素 数太郎|note
- 因果推論 x 機械学習についてできることを整理してみました - Adwaysエンジニアブログ
アンチウィルス
- 機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介 - 脱力系日記
言語処理
- チュートリアル「Janome ではじめるテキストマイニング」を GitHub & Google Colab で公開しました
- 文章埋め込みを用いた教師なしキーフレーズ抽出EmbedRankの実装とその評価 - Sansan Builders Box
- 言語処理学会の論文がぜんぶ公開されたからみんなで見ようぜ!! - 5日と20日は歌詞と遊ぼう。
- 言語処理学会第25回年次大会(NLP2019) 発表論文集
- やぐさんのツイート: "Blog書きました。fasttextが公式で言語判定のモデルを配布しているので、それを使ってみたという話。サブワード単語埋め込みを使っていながらもモデルサイズが小さいところに、fasttextの気合いを感じます。 / fasttextを用いた言語判定 - Out-of-the-box https://t.co/p1PXd2jUIn"
- fasttextを用いた言語判定 - Out-of-the-box
- Elastic Common Schemaについて | Elastic
- 横断検索で社内情報共有を加速させる - Hatena Developer Blog
- Googleの自然言語処理モデル「BERT」はインターネット上から偏見を吸収してしまうという指摘 - GIGAZINE
R の prop.test
- R-Source
- データ解析・マイニングとR言語
- 2変量の関連(2) - R on Windows
- 統計的分析手法あれこれ(2群間の比の差の検定)
- 割合の差の検定のサンプルサイズ計算 - 統計ER
- カイ二乗検定と等比率検定の関係は何ですか?
- [R]{stats} prop.test() : 比率の差の検定を行う関数 | Dr.Clover's Computer Clinic
- 比率の信頼区間
- 標本サイズの決め方
- python - PythonRのprop.testと同様の比例検定
- R の prop.test() からの信頼区間は、手の計算と SAS の結果とは異なります。
- 自社のデータ分析基盤をSLOを用いてデータドリブンに品質向上 - Adwaysエンジニアブログ
- YouTubeの推薦アルゴリズムの変遷を追う〜深層学習から強化学習まで〜 | by Jun Ernesto Okumura | Eureka Engineering | Medium
- 某ことりさんはTwitterを使っています: 「2014年のブログだけど、これが面白いとのことだった。信頼区間と(ベイズの)信用区間が全く重ならない反例。 https://t.co/XbPEU165RM」 / Twitter
- Frequentism and Bayesianism III: Confidence, Credibility, and why Frequentism and Science do not Mix | Pythonic Perambulations
- 某ことりさんはTwitterを使っています: 「下の方は(いつもの)頻度論disというか信頼区間の誤用dis。まあ、自分も最近は頻度論は漸近正規性とか収束レートについて色々思考実験するための数学的な砂場みたいなものだという気分になってきた。」 / Twitter
- AI・機械学習チームでのインターンでBigQueryのローカルテスト基盤を作った話 - エムスリーテックブログ
スライド
slideshare
- QDくん⚡️Python/機械学習/データサイエンスさんはTwitterを使っています: 「自然言語処理についてまとまっているスライド。 かなり作り込まれていて密度が高い。 ゼロから始める転移学習 https://t.co/xv5xjDEqYC https://t.co/OFOm3gM5Dl」 / Twitter
- ゼロから始める転移学習
- QDくん⚡️Python/機械学習/データサイエンスさんはTwitterを使っています: 「データサイエンス関連の無料教材をこちらにまとめています👇 https://t.co/R7y11SUKq0」 / Twitter
- QDくんの過去ツイまとめ(機械学習、時系列分析、確率・統計に関する有益記事紹介) / Twitter
- 機械学習モデルの判断根拠の説明
- 機械学習で泣かないためのコード設計
- プログラミング言語として考えたTensor flow
- Control as Inference (強化学習とベイズ統計)
- サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
- [DL輪読会]Pay Attention to MLPs (gMLP)
- 深層学習による非滑らかな関数の推定
- 文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
- 数式を綺麗にプログラミングするコツ #spro2013
- EMアルゴリズム
- 坂本寛さんのツイート: "この教科書はわかりずらいところがあることが世に知られているので、教科書をより分かり易く理解するための工夫があり資料としてもすぐれている。発表ももちろん上手なので聴けなかった人は残念ですね。 #nlpaperchallenge… "
- ᴉɥsᴉuɐʞɐu oɹɐʇuǝʞさんのツイート: "NLP の方の最初の発表資料公開しました。 https://t.co/lOkagdoSGf あとで修正するかもしれません〜 #nlpaperchallenge"
- Deep nlp 4.2-4.3_0309
- takuya-aさんのツイート: "昨日のMLM KANSAIの @nyanp さんの資料が公開されたぞ!特徴量の作り方めちゃめちゃ参考になるのでぜひ / 1件のコメント https://t.co/vRvm1AWXlx “最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング” https://t.co/AUtVR9gtaY"
- 最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
- 「安心な移動」のためのPOI検索
- cvpaper.challengeさんはTwitterを使っています 「「Vision and Language」のメタサーベイ資料を公開しました!画像と言語の融合問題について、タスク別のサーベイ(EQA, Navigation, Retrieval, Pre-trained Model)や最新動向について説明しています。 https://t.co/ADTLX9j693」 / Twitter
- Vision and Language(メタサーベイ )
- cvpaper.challengeさんはTwitterを使っています 「「自己教師学習(Self-Supervised Learning)」のメタサーベイ資料を公開しました!教師がないデータに対して自ら教師を作成し学習する枠組みで、教師あり学習の代替を担うかもしれないとして最近注目を集めている技術です。トレンド、注目研究者/研究機関も含めています。 https://t.co/wgvVakgydA」 / Twitter
- 自己教師学習(Self-Supervised Learning)
- パターン認識と機械学習入門
- 「確率統計-機械学習その前に-」を更新した(version 2.2) - hidekatsu-izuno 日々の記録
- 確率統計 - 機械学習その前に - - Speaker Deck
- Argo Workflow によるMLジョブ管理 - Speaker Deck
- What’s new in Elastic Stack 7.1?
- 検索結果の品質向上 Elasticsearch入門 - Speaker Deck
- chikoskiさんのツイート: "「経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう」 https://t.co/GRxqVoJP8P 最近、オリジナルとは違う形でSemantic Webが実現されつつあるのではないか、という気持ちになっている。"
- #経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう - Speaker Deck
- Cloud Composer & Dataflow によるバッチETLの再構築 #data_ml_engineering / 20190719 - Speaker Deck
- 近似最近傍探索の最前線 - Speaker Deck
- Fast Succinct Trie - Speaker Deck
- takuya-aさんはTwitterを使っています: 「FSTのDAGの構築は一度Javaで書いたことあるので理解してるつもりだけど、シリアライズまわりはいいアイデアあったら盗みたい https://t.co/GDIybhEtuP」 / Twitter
- takuya-aさんはTwitterを使っています: 「FSTについてはこちらもどうぞ #Kuromoji https://t.co/6xdEyBNIZt」 / Twitter
- 犬でもわかる Minimal Acyclic Subsequential Transducer / Introduction to Minimal Acyclic Subsequential Transducer - Speaker Deck
- takuya-aさんはTwitterを使っています: 「Lucene FSTのシリアライズのやりかた、 @moco_beta さんのおかげで完全に理解できたし、自分で作ってるFSTのライブラリで同じ方式のシリアライズを実装してみようかな」 / Twitter
- #JJUG Java における乱数生成器とのつき合い方 - Speaker Deck
- sigam23sp01.pdf
- Target Encoding はなぜ有効なのか - Speaker Deck
- ヤフーにおける機械学習検索ランキングの取り組み - Speaker Deck
- niconicoの検索システム(2019年版) - Speaker Deck
- hiroshiさんはTwitterを使っています: 「機械学習で用いるデータセットや学習済みモデルの著作権についてまとめられたIBIS2019での講演資料が公開されています。 STORIA法律事務所 柿沼太一 氏 「機械学習と知財・契約」 https://t.co/knum7n5yMY https://t.co/3A6nn2QQ1m」 / Twitter
- 機械学習と知財・契約
- 逆FM音源 - Speaker Deck
- TFHEのための多項式乗算入門 - Speaker Deck
- The Web Conference 2020 Report -多目的最適化における確率的ラベル集約- - Speaker Deck
- Mathematical Optimization in 60 minutes - Speaker Deck
- Trends in Deep Generative model and Self-supervised Learning at NeurIPS2019 - Speaker Deck
- Trends in Deep Learning Theory at NeurIPS 2019 - Speaker Deck
- Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
- CyberAgent AI Labを支えるCloud実験環境 - Speaker Deck
- Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理 - Speaker Deck
- メルカリにおけるA/Bテスト標準化への取り組み - Speaker Deck
- Increasing number of attempts ver. 2021 - Speaker Deck
- しゅんけーさんはTwitterを使っています 「個人的にはコーディング面で black / flake8 / isort / mypy あたりの導入があると、完璧感ありますね(みんなが同じように綺麗なコードが書けるようになる)(はず)」 / Twitter
- Counterfactual Explanationsで機械学習モデルを解釈する / TokyoR99 - Speaker Deck
- 統計的因果推論、構造から見るか? 差分から見るか?:非巡回有向グラフ(DAG)、潜在反応モデル、そして構造的 (関数)因果モデルによる両者の統合的理解 - Speaker Deck
Qiita
- 最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
- EMアルゴリズム徹底解説 - Qiita
- 自然言語処理における、Attentionの耐えられない短さ - Qiita
- seq2seqで利用可能な日本語対話データセットをダウンロードするツール - Qiita
- 【機械学習】Google翻訳(みたいなもの)を自作してみた。 - Qiita
- 不均衡データを損失関数で攻略してみる - Qiita
- パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語 - Qiita
- Shiro Kawaiさんのツイート: "「AIは意味を理解しない」ことのすごくわかりやすい例だ https://t.co/y8OVswgGcN より正確に言うなら、「AIは与えられたデータの範囲内で通用する『意味』を見つけ出すが、その『意味』が人間の常識と一致する保証は何もない」かな。"
- AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
- AngluinのL*アルゴリズムと機械学習(特にRNN)への応用 - Qiita
- 【2020決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
- __init__.py を省略してはいけない - Qiita
- クックパッドを支える検索技術 「鰹」と検索して「鰹節」を表示されないようにする工夫 - ログミーTech
- Taku KudoさんはTwitterを使っています 「公開ありがとうございます。1. なぜNFKDなんでしょう。2. neologd のバージョンがあったほうが再現させやすい。3.「語彙のカバー範囲」の意図が不明ですが、長いトークンが欲しいのであれば形態素解析しないほうがよい。 https://t.co/CZcuXcmRgn」 / Twitter
- 有馬幸介/StockmarkさんはTwitterを使っています 「BERTの軽量版とも言えるAIモデルであるALBERTについて日本語モデルを弊社エンジニアが公開しました!精度をほぼ落とさずモデルサイズが1/10ぐらいになっているので、やはり実務上は本当に使いやすい。 https://t.co/2sQ6LZ9uGu」 / Twitter
- 大規模日本語ビジネスニュースコーパスを学習したALBERT(MeCab+Sentencepiece利用)モデルの紹介 - Qiita
- 半順序でソートするためのアルゴリズムとは? - Qiita
- ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita
- 初 LAPACK!で DGELS (QR 分解もしくは LQ 分解)による最小二乗法を実装してみた - Qiita
- Linuxのかな漢字変換の興亡 - Qiita
- 線分の交差判定と交点特定 - Qiita
- pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
- 深層学習のセキュリティ課題と論文まとめ - Qiita
- AIと公平性(入門編) - Qiita
- Taku KudoさんはTwitterを使っています 「マジレスすると v0.1.94 から manylinux2014 になっていて、pip >= 19.3 が必須です。pipが古いとソースパッケージにフォールバックされローカルでビルドされます。 https://t.co/wgPoBTRvPC」 / Twitter
- ubuntu にsentencepiece をインストールするときつまづいた - Qiita
- FDTDで電磁界解析 - Qiita
- 線形代数学の基本定理 - 4つの部分空間 - Qiita
- ロバストなベイズ的回帰分析のための新しい誤差分布 (理論編) - Qiita
- カルマンフィルターについて - Qiita
- 【厳選】機械学習の学習におすすめのTwitterアカウント40選 - Qiita
- 「ベクトルで微分・行列で微分」公式まとめ - Qiita
- 加藤公一, Като Кимикадзу(はむかず)さんはTwitterを使っています: 「これはヒントなんだけど、すべてのベクトルを2次元として、すべての行列を2x2として計算してみてすらすらできるようになれば、一般の場合もそんなに難しくないと思う。」 / Twitter
- Microsoftの最強麻雀AI Suphx の論文ざっくり日本語訳(各種アルゴリズムからpMCPAまで) - Qiita
- pytorchでカルマンフィルタ - Qiita
Wikipedia
- 尤度関数 - Wikipedia
- Likelihood function - Wikipedia
- 誤差関数 - Wikipedia
- BLIS (software) - Wikipedia
- flame/blis: BLAS-like Library Instantiation Software Framework
- Wikipediaの記事をすべてダウンロードしていつでもオフラインで閲覧&検索する方法 - GIGAZINE
Twitter
その他
その他
次元の削減
- Yuta SuzukiさんはTwitterを使っています 「t-SNEの軸の意味を絶対聞かれるだろうと思って図を作っておいたものの、特に触れられず空振ったので供養しておきます・・・ https://t.co/UsAa2LjPcD」 / Twitter
Formulaic Expression
- retrageさんはTwitterを使っています 「こういう決まりきった表現、Formulaic ExpressionというのでNLPで研究されてた覚えがある」 / Twitter
- livaさんはTwitterを使っています 「英語で文章書くのが辛すぎて何時も泣きながらやってるマンなんだけど、今回試した既読論文のコーパス化は結構良かった気がする。 特定の状況を記述する際、アカデミア固有の(更に言えば分野固有の)慣用表現があるわけで、その単語の用法(主語、目的語、前置詞は何か)含めて調べるのに役立った。」 / Twitter
- livaさんはTwitterを使っています 「具体的なやり方は以下の通り 読んだ論文をローカルに保存する際に、pdftotextでtext化した物をtreetaggerで形態素解析しておいて、検索時はレンマや品詞でパターンマッチさせる。 https://t.co/Cob0NckUKA」 / Twitter
- livaさんはTwitterを使っています 「自然言語処理の基礎を知らないままに作ったので、今回は形態素解析までしかやってないけど、やっぱ構文解析くらい欲しいなと思ったので、その辺は落ち着いたら。」 / Twitter
- livaさんはTwitterを使っています 「補足すると、別にこういうツールは世界に無限にあるだろうけど、自分用にパーソナライズされたコーパスがあるってのが大事だった、っていう話」 / Twitter
検定と評価法
- Taku KudoさんはTwitterを使っています 「モデルバイアスが考慮できていないのは同意しますが、それだと、現状のテスト文+BLEUを使う限り、いかなる検定でも同じ問題が残り、ブートストラップには罪がない気がします。ブートストラップはBLEUが直接パラメトリック検定ができない理由で使われていて、それ以上でもそれ以下でもありません。」 / Twitter
- 𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「MTで"bootstrap resampling test"という統計的有意性を与える手法がずっと使われていますが、これはNMTの時代にはむしろ危険だと思っています。compare-mtのissueでその問題提起をしました。 https://t.co/n1lBW1qalh」 / Twitter
- Consider to avoid bootstrap resampling test · Issue #126 · neulab/compare-mt
- 𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「これは本当にやばい(MTの研究が間違った方向に進む原因になる)と思っているので、すみませんが識者の人は何かコメントつけてくれるとありがたいです。」 / Twitter
- Taku KudoさんはTwitterを使っています 「現状「システム間の翻訳性能に差がない」という帰無仮説を「システム間のBLEU値に差がない」とみなして検定をしていますが、この「みなし」が良くないということでしょうか? これが良くないということであれあば、仮説検定よりは評価法の問題な気がします。私は検定と評価法は別に考えています。」 / Twitter
- 𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「そのとおりです。仮説の正しくない検定を使用して正しくない結論を与えることにそれ自体が不誠実な行為であって、妥当な仮説を持つ検定がない場合場合取れる選択肢は「何もしない」以外ありません。」 / Twitter
- 𐤏𐤃𐤀𐤔𐤇𐤉さんはTwitterを使っています 「伝統的にこの分野では統計が悪用されている印象を持っています。いい加減正してほしい」 / Twitter
- Taku KudoさんはTwitterを使っています 「BLEUもいい加減で批判多いし、その上に作った評価基準・検定も目くそ鼻くその認識。ただ、業界を劇的に進展させた貢献は評価されるべきで、必要悪として納得している。完璧な評価は極めて難しいかコストがかかりすぎるので、反実仮想してその価値を判断したい。」 / Twitter
熱平衡化がチューリング完全
- ytakanoさんはTwitterを使っています 「熱平衡化がチューリング完全なんだろうけど、どう言う計算モデルなんだろ。て言うか、熱平衡しない物体とは一体… https://t.co/d0bi0BCodM」 / Twitter
- 【研究成果・プレスリリース】熱平衡化の問題は、一般的な形では解決不可能な問題であることを証明 | 学習院大学
- ytakanoさんはTwitterを使っています 「これか。 https://t.co/2OLw3MmoHt」 / Twitter
- Undecidability in quantum thermalization | Nature Communications
- ytakanoさんはTwitterを使っています 「Universal Reversible Turing Machine. 知らない計算モデルだ。」 / Twitter
- ytakanoさんはTwitterを使っています 「Reversible Computationや、Reversible Turing Machineてのがあるっぽい。 https://t.co/aSJUJKHxwL」 / Twitter
- co.combinatorics - reversible Turing machines - MathOverflow
- ytakanoさんはTwitterを使っています 「reversible computationはある時点の状態から、入力が計算できる感じか。」 / Twitter
連続性の仮定
- ™さんはTwitterを使っています 「とあるML手法を理論解析した論文に「推定したい関数が連続かどうかわからないんだから,連続性を仮定した評価は使えないのでは」みたいなコメントがついていて,どうしたものか……?」 / Twitter
- ™さんはTwitterを使っています 「任意のML手法って推定したい関数に適当な仮定(aka. inductive bias)を置くものじゃないんです? なんか自信なくなってきた.」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara ノーフリーランチ定理があるので,学習する世界に何らかの仮定を入れないと無理かと 何を仮定したか明示するよう論旨を修正していくしかなさそうな」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima かなりはっきりと明示してる(定理の形で書いていて,冒頭が Suppose f is continuous.)&コメントもそれは認識してるんですよねえ.それはそういうものだ,みたいなコメントを返せばいいのかしら…….」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara Unrealistic という考えかもしれないので,妥当だという支持材料を足してみるとか」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima なるほど,ありがとうございます(連続性を unrealistic と思うのは想定してなかったです……).」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara しきい値で不連続はあり得るのでは?」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima いくらでも不連続な関数は考えられるんですけど,ごく一般的な教師付き学習の設定で置く仮定としては連続性はかなり弱いものだと思っていたので(&稠密だから期待値が取れることの仮定とそんなに変わらないので),それを unrealistic とわざわざ指摘されるのはよくわからないですね…….」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara それなら,それなりに誠実に答えておけば,SPCはスルーしてくれるのでは?」 / Twitter
主成分分析と因子分析の違い
- Tetsuo IshikawaさんはTwitterを使っています 「主成分分析(PCA)と因子分析(FA)の違いについて、概念的な操作の方向(観測量から分散を最大化するような合成変数を作るのか、それとも観測量の背後にあると想定される潜在的な構成概念を浮かび上がらせるか)が大きい認識だったが、誤差のモデル化の差異をこんなイメージで説明するのは初めて見た」 / Twitter
- Fernando RosasさんはTwitterを使っています 「The difference between PCA and factor analysis in a single picture! Key difference: how noice is modelled. (Source: https://t.co/FrOHmqOfZc) https://t.co/swLdqpRnfB」 / Twitter
- pca - What are the differences between Factor Analysis and Principal Component Analysis? - Cross Validated
- Tetsuo IshikawaさんはTwitterを使っています 「誤差に相関を許すかどうかをピクト化するとこんな風になるイメージ図で、分かりやすくなったような、よくよく考えるとやっぱり煙に巻かれたような。式で見て比較した方がストレートフォワードだという意見もあるかもしれない。 ともあれ、このstats.stackexchangeの解説は示唆に飛んでおり大変秀逸だ。」 / Twitter
自然の斉一性
確率
- 伊津野 英克さんはTwitterを使っています 「客観ベイズの立場に立つなら、頻度確率が主観確率に内包されるのは自明だろうなぁ、ていうかその方が自然に思えるけど。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 客観ベイズは(定義によるんですが)事前分布を無情報にすることですね。ここで言う客観的ベイズって主観ベイズにおける事後分布な気がします。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@kenmcalinn 本の説明に従うなら主観確率に補正(観測済みの頻度に基づく合理性)と曖昧化(無差別の原理)の制限を加えたものだと書かれていました。過去のデータを元に事前分布を設定(≠経験ベイズ)したようなものかなぁ、と思っていました。用語の使い方は気をつけないとまずそうですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 前者と後者って相反してませんか?笑。前者は普通の主観ベイズ(合理性の定義によりそうですが)、後者は客観ベイズですね。ただ長い議論の結果、無差別の原理は無知(ignorance)を表してないし無知を事前分布で表すことはたぶん不可能って結論になりました。このへんの議論は哲学のほうが遅れてるかと。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@kenmcalinn 「合理的解釈を必ずしも選択しないことも可」ということを表現するための仕掛けだそうです。無理やりくっつけました感は否定できないですかねw 2010年くらいの文献が挙げられているので、たしかに統計学サイドの方が議論が進んでいるのかも。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「もはや量子論が情報に基づくものという理解がスタンダードとなった現在、確率の定義と物理世界においてなぜ再現性があるのかという話は分けたほうがいいんじゃないかなぁ。傾向性解釈は後者に引きずられてる感じ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「確率=主観確率だけど、(相対論や量子論に対するニュートン力学がそうであるように)たまたま身近な物理空間では斉一性があるが故に、特殊形としての頻度確率が便利なタイミングが多い、と理解することにしよう。」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「自然の斉一性の否定だ」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「こういうのを「発見」するための推論はアブダクションであって、以降諸事象は演繹的に見られるわけだが、「先にルールがあるからルールに沿ったものしか見つけられない」とか「多くの人がそう信じるからそうなってしまった(それ以前は違った)」という可能性は本当に無いのだろうか?」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「多分、昔からリンゴは木から落ちていただろうが、それが地球に引かれて落ちるようになった(あるいはそう見えるようになった)のは、ニュートン以降だったとしても多分誰もそうだとは気づけまい。 自然数の乗法が交換するとみんな信じたから交換するようになった、あるいは交換しない自然数が」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「「見えなくなった」のだとしても、誰もそうだとは気づけまい。」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ 前半の解釈ではあくまで反例の発見に心理的な困難があるだけで、客観的には自然の斉一性を否定しませんね(ただ主観的なものと客観的なもので支配しているルールが違うだけで)。 後半の解釈は一旦は自然の斉一性を否定していますが、それでも「多くの人が信じたように振る舞う」という法則が追加された」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@sanjutsu_yu 「先にルールがあるから...」は一種の実在論者で大元の人(「我々が...」)と同じ意見であるように見えますね. 『「多くの人が信じたように振る舞う」という法則』自体は斉一的であることが可能かもしれませんが,よく言われる斉一性(実験や宇宙観測による過去の推測の正当化)自体は破ってそうですね」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ ですね 特にそのへんの仮定は「便利(というかないと何もいえない)から置いた」という意味が強いものなので、(一般に受け入れられるかはさておき)一度くらいはちゃんと懐疑してみても罰当たらないでしょうという感じがあります。」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「強い自然の斉一性 「自然はある程度の規則性を持っており、誤差や時々明白な誤りはあれども現在の自然科学はそれをある程度近似している。」 弱い自然の斉一性 「自然はある程度の規則性を持っているが、それを自然科学が記述できているかはわからない。あたかもサイコロで数回同じ目が出たからグラ賽」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「だとイチャモンをつける博徒のようなものかもしれない。」」 / Twitter
永劫回帰の思想(決定論)
- yamaguchishoさんはTwitterを使っています 「この方の問いはとても自然です。 答えは「イエス」でありえます。 私自身、永劫回帰の思想を知った瞬間に《これは決定論だ》と直感しました。ただし――ここからが重要だが――《なぜ永劫回帰は何かしらの決定論を含意しうるのか》を説明するのは難しい。私は十年以上説明できませんでした。(つづく)」 / Twitter
- kandekさんはTwitterを使っています 「「永遠回帰(永劫回帰)」って決定論のうちのひとつなのかな?」 / Twitter
- yamaguchishoさんはTwitterを使っています 「永劫回帰が何かしらの決定論を含意する理路は以下。 永劫回帰では、t1からt2の期間、t2からt3の期間、t3からt4の期、(以下同様)で完全にそっくりなこと(いわゆる質的なコピー)が生じる、と仮定します。 この場合、t1~t2期間のある時点で、t2~t3期間の任意の時点の出来事が決まっている。(続く)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「同じことはそれ以後の期間についても妥当する。かくして永劫回帰は何かしらの決定論を含意する。(Q. E. D.) 押さえるべきは、これは因果的決定論ではない、という点。むしろ、t1~t2の時点ですでに、t2~t3の時点の出来事が或る意味で「在る」、というタイプの決定論です。(続く)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「これは、永遠主義が或る意味の決定論を含意する、というのと似た理路です(永遠主義においては、未来の出来事はいまの時点で或る意味で「在る」)。そして、「決定論」という語で因果的決定論のみを理解するひとは、この理路を退けるでしょう(これは言葉づかいの問題です)。(了)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「先ほどの問題をさらにニーチェの設定に近づけて考察したくなった。 ニーチェ的永劫回帰の世界では、 ..., T_-2, T_-1, T_0, T_1, T_2, T_3 ... という具合に過去向きと未来向きに永遠の時間が横たわっている(T_iたちは同じ長さの時間インターバル)。 (つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「ここで、各T_iに完全にそっくりなこと(質的なコピー)が生じている、と前提する。この場合に何かしらの決定論が導出されるか。 第一に、..., T_-2, T_-1, T_0, T_1, T_2, T_3 ...がいわば「現実的無限」として全体として存在するとき、あらゆる時点の出来事は無差別的に「在る」。(つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「この場合、永遠主義が一切を既在化し或る種の決定論を導き出すのと同じ仕方で、決定論が導出される。 第二に、先の永劫回帰の世界に真の意味の「生成」があるとする。この場合《現時点の生成へ至るために無限の時間が「経過」した》というお馴染みの目眩のする仮定を受け入れることになる。(つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「この仮定を受け入れれば、後は単純である。この場合、任意の時間インターバルの出来事は、先立つインターバルのコピーである――それゆえ、任意の時間インターバルの任意の出来事は、前もってそのような仕方で決定されていたことになる。かくして決定論が導出される。(Q. E. D)(了)」 / Twitter
主体性
- Shiro KawaiさんはTwitterを使っています 「へええ。フランスの劇場では本番前にMerde!と声を掛け合うそうな。Merde = 糞 https://t.co/1QKRUeYwfb」 / Twitter
- 翻訳が絶滅するとき――翻訳がすべて機械によって行われる日など永遠にやって来ない - ENGLISH JOURNAL ONLINE
- Shiro KawaiさんはTwitterを使っています 「ところで文中の、機械翻訳の限界についてだけど、情報という意味では肉体の存在や社会との関わりなども(コストを度外視すれば)情報にエンコーディング可能だと思う。線が引けるとすれば、正解のない問いに答える主体として責任を取れるかどうか、という点じゃなかろうか。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ある言葉の訳としていくつも候補の中から一つを選択するとき、訳者は自分の存在を懸けている。あらゆる表現行為に言えるんだけども。もちろん理論的なバックアップはあるけど、どこまで支えを求めるかの選択まで含めて、究極は「俺がここまで調べてこう解釈するからこうするのだ」という主体的判断。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「時にはそれが、過去の事例からみて外れ値になることもあり、そうなったらその正当性を担保するのは訳者の覚悟しかない。辞書にこうあるとか、学習データのせいだとか、人のせいにできないのだ。 機械翻訳にそういう主体性を持たせられるだろうか。」 / Twitter
統計学と科学哲学・再現性
- Ken McAlinnさんはTwitterを使っています 「物理って結果がでやすい(実験とかでの再現性が高い)分野なのでその分結果のハードルが高い(eg 5σ)し、不確実性が低いので求められる統計水準も低く、同様に求められる哲学的な要求水準も低い(compatibilismで十分みたいな)。なのである見方では簡単な分野と言えると思う(数学的な難しさとかの話は別)。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「統計学って科学哲学とは切っても切り離せないんですが、物理学では統計学は使わないんでしょうか。」 / Twitter
- Minaka Nobuhiro 新刊『読む・打つ・書く』発売中!さんはTwitterを使っています 「科学哲学に関する須藤靖さんの主張は,彼のホームグラウンドである “物理学” では正しい認識かもしれませんが,ワタクシのように “生物体系学” の現代史を知っている者にとってはただの偏狭な間違った認識ですね.個別科学ごとに「科学と科学哲学との関係」はそれぞれ異なるということです.」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「物理ではJaynesがベイズを使って物理学をやってましたね。個人的にあまり好きなスタイルではないですが。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「でも他の分野って再現性が低かったり実験ができなかったり不確実性が高いので、その分結果のハードルは低くならざる負えないし、求められる統計水準も哲学水準も必然的に高くなる。なので難しい。 物理学者が他分野に進出して失敗するのは分野特有の結果のハードルの高さと頑健性から自分たちの」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「やりかたの正当性を信じてるけど、それってあくまで「簡単」なケースにしか適応できなくて「難しい」問題に当たると(当たり前だけど)うまくいかない。でうまくいかないとその分野(というか物理以外を)科学じゃないとか統計学はいらないとか科学哲学は無駄とか言う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「でもそれって「我々はそんな難しい問題を考えなくていい分野にいるんですよ」って言ってるにすぎないと思う。それに対しては「それはよかったっすね、うちは難しいんで(統計とか哲学とか)必要なんですよ」としか言えないんで、「科学では〜」とか「科学者は〜」とか一般化しないでもらいたい笑。」 / Twitter
- Toshiaki KOUNOさんはTwitterを使っています 「@kenmcalinn むしろ物理や化学の方が例外的に再現性が高いんですよね。でも、そちらの方が普通だと勘違いしている人が多い。物理現象でも地震みたいに再現性があるのか疑わしい現象もありますよね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@tkounoeconomist そのとおりですね。ある種のセレクションバイアスだと思います。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「まぁ実験とか観測とかで統計学は使うと思うんですが(加速器とか天体物理とか)、そもそも複数の仮説がある状況が物理では何回もあったと思うんですが、それが取捨選択されてくプロセスはベイズなんですよね。結果が明らかな(不確実性が少ない)場合はそのプロセスが単純化されるってだけだと思います。」 / Twitter
- 科学哲学たん/敷衍 真理さんはTwitterを使っています 「統計力学というものは物理科では必修レベルですが、科学哲学に出てくるような統計学観とはほど遠い扱いをされている実感です。(真に統計学と呼べる手法を使っているのは物理でもごく一部?)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「伊勢田先生の書評読んで「えっ、確率の哲学における頻度論と統計学の頻度論って別物なの?」という驚き。科学哲学わけわからなすぎw」 / Twitter
- Daily Life:大塚淳『統計学を哲学する』を読む
- Jun OtsukaさんはTwitterを使っています 「「信頼区間は確率か否か」問題、やはり確率の定義(意味論)の問題だと思うのですよね。「区間が真値を含む」ということの確からしさという主観解釈的な意味での確率ではないけど、「推定を繰り返したときに含む割合」という頻度主義的な意味では確率と言える、というか言うべきなはず。」 / Twitter
哲学的思慮
- Ken McAlinnさんはTwitterを使っています 「特に昨今の再現性問題などを考えるにそういう哲学的思慮は大事だと思いますよ。つい最近もこういうディベートがありましたし、それを「宗教戦争」だって矮小化すると本質を捉えられずインパクト0の研究をすることになるのでは。いやもうそうだけど。 https://t.co/sD9fnKmF74」 / Twitter
- Statisticians Debate Issues Central to Inference and Estimation | National Institute of Statistical Sciences
- Ken McAlinnさんはTwitterを使っています 「インパクト0はクロムウェルの法に反してましたね。エプシロンに訂正します。」 / Twitter
相関係数
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい相関係数の提案。ピアソンの相関係数と同程度の簡単なアルゴリズムにもかかわらず、従来手法では補足できなかった相関も検出できる。実際のアルゴリズムは論文の 式(1.1) で示されているとおり、非常に単純。https://t.co/bUBiByciDm」 / Twitter
- [1909.10140] A new coefficient of correlation
- adad8mさんはTwitterを使っています 「Graphical comparison between the standard (linear) #correlation and the Chatterjee's "rank correlation" recently introduced in https://t.co/xJIg336UGL #statistics #probability @johnleibniz @_bakshay https://t.co/BWCeIZIECR」 / Twitter
- Preetum NakkiranさんはTwitterを使っています 「Very clean idea / paper! https://t.co/IVrl1WnwpD」 / Twitter
- Akshay BalsubramaniさんはTwitterを使っています 「@PreetumNakkiran Chatterjee's correlation coefficient for 1D RVs https://t.co/KKTVggNwja behaves nicely and has wonderful relationships to copula measures, HSIC, etc」 / Twitter
DAG
- Ken McAlinnさんはTwitterを使っています 「正直DAGが次のp値になりそうな感じがして危ういかなって思った。」 / Twitter
- oosugi naoyaさんはTwitterを使っています 「今起きている革命、「因果革命」とは [statistics] on #Qiita https://t.co/erwQLLyA9t」 / Twitter
- 今起きている革命、「因果革命」とは - Qiita
- Ken McAlinnさんはTwitterを使っています 「ざっと読んだ感じ「ベイジアンネットワークや統計的因果推論の考案者であるJudea Pearl」は事実誤認だし、「因果ダイアグラムと名付けた有向非循環グラフを導入することで調整すべきか否かを決定できるわかりやすい方法を提案しました」も結構ニュアンス違う。あとDAGで観測データと意思決定は無理。」 / Twitter
- oosugi naoyaさんはTwitterを使っています 「@kenmcalinn ご指摘ありがとうございます!事実誤認とニュアンス違いの件は自分の方で再度勉強・調査できるので行いますが、「DAGで観測データと意思決定は無理」の意味を捉えきれなかったのでお手数ですが補足・解説いただけると助かります」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ごちゃごちゃした現実上の観測データとかビジネスにおける意思決定には向いてないです。簡単な例だとxyzと変数がある状況でDAGを指定しても現実ではabcと無限に変数があるしその指定したDAGが正しいとは限らないのでうまくいかない可能性があります。特に経済データだとそうですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya これとか参考になるかもしれません:https://t.co/YEwOuNYc5P」 / Twitter
- 1907.07271.pdf
- arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/1PgWiToUKQ」 / Twitter
- [1907.07271] Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics
- oosugi naoyaさんはTwitterを使っています 「@kenmcalinn なるほど!ギャップの正体がわかった気がします。私が暗黙的に自社のWebサービスの分析(自分の実務)にかなり引っ張られ、まさに「クローズドで操作しやすい状況」に認識が引きずられていました。共有された文献は目を通しきれていませんが(4章あたりですよね?)確かに経済データでは難しそう」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ちなみにA/Bテストでも実は対象にネットワーク構造があるとうまくいかない時があって、同僚が研究してます(https://t.co/YCByyOgq3v)。もちろんこれもネットワーク構造がわかる強い仮定があるのですが笑。」 / Twitter
- 1705.05752.pdf
- arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/v1JegxcxGu」 / Twitter
- [1705.05752] Limitations of design-based causal inference and A/B testing under arbitrary and network interference
- Ken McAlinnさんはTwitterを使っています 「Pearlの書いたことの受け売りだと思うんだけど、統計/経済だとRubin流が主流で、それなのはやっぱりそれなりの理由があるんですよ。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「前もやりとりあったけど、DAGをあくまで「仮定の可視化」と捉えるべきところを「因果関係が分かる方法」まで解釈すると今後DAGを指定さえすれば因果関係がわかるのでこれが因果ですっていう人が大量にでてきてものすごくめんどいことになりそう。」 / Twitter
因果関係
- くまだ総研(久萬田巌)さんはTwitterを使っています 「因果推論の話が話題ですが、個人的には語感の問題か因果推論=統計的因果推論みたいな使われかたをちょくちょくしているのがあまりよろしくない気がしますね(日本語だけ?)例えばDAGなどで定義されてる因果関係は、日常的な用法や科学哲学で議論される因果関係よりかなり狭い定義という理解なので。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「この辺りの因果概念に関しては松王先生の「科学哲学からのメッセージ」が非常に詳しいです」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「あとはいつものことながら、因果関係なるものにおいても、発見の文脈と正当化の文脈は違いますよ、ということかなと思います。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「そもそもわれわれ人間は因果関係なるもののこれや!という明確かつ包括的な定義をまだ持っていないという点は知っておいて損はない気がします。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「(メチャ良い本なので売れてほしい) 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 https://t.co/VPtjqMch3Z」 / Twitter
- 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 | 政浩, 松王 |本 | 通販 | Amazon
- くまだ総研(久萬田巌)さんはTwitterを使っています 「あ、こちら誤解を招きかねない表現になってしまっていますが、恐らく話題の出所と思われるoosugiさんが書かれている元記事がそうという話ではなく、あくまで界隈での一般的な用法の話です。(記事の内容は知らないことばかりなので、大変ありがたいです。しっかり読んで勉強したいです)」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「(誤)ちょくちょくしているのが (正)ちょくちょく(界隈で)されているのが」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ランダムに生成した系列がたまたま因果関係があるように見えてしまうことが否定できない以上、プロセスを無視して機械的手続きだけで因果関係を確定することが無理なのは自明な気が。」 / Twitter
統計的因果推論
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「非常に参考になります。因果推論も仮定の明確化が超重要ですね。 https://t.co/nBwE2etUvL https://t.co/71buObKlVM」 / Twitter
- 統計的因果推論入門の講義資料を公開しました - Unboundedly
- 統計学における因果推論(ルービンの因果モデル) – 医療政策学×医療経済学
- 心理学における因果推論(キャンベル) – 医療政策学×医療経済学
- 伊津野 英克さんはTwitterを使っています 「結局、因果推論って、よくわかんないや。「重回帰分析で因果関係がわかる」と「ベイズ推定 or ベイズネットで因果関係がわかる」と「統計的因果推論で因果関係がわかる」の違いが何なのかよくわからん。グレンジャー因果が因果のサブセットしか扱っていないのはわかるけど。」 / Twitter
- uncorrelatedさんはTwitterを使っています 「重回帰分析で因果効果が測定できる条件を考えて、統計的因果推論をその条件を満たした推定だと整理するとよいと思います。大久保 (2019)「因果推論の道具箱」が分かりやすかったです:https://t.co/cJkljIfa6E 矢印の向きを考える因果探索は、追いかけていないので分かりません('-' )\(--;)BAKI」 / Twitter
- 因果推論の道具箱
- 伊津野 英克さんはTwitterを使っています 「@uncorrelated まさにその資料を読みながらわからんなぁ、と思ってたのでw 因果推論が因果のサブセットを扱ってるとして、じゃあ従来の手法は何を扱ってるのかな、と。時間的前後関係が足りない?」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きをどれぐらい客観的(≒他人に説得的)に仮定できるかでしょう。RCTや自然実験だとx→yの因果は明確に仮定できますよね。PSMなどマッチングだと、マッチングによってy→xへの因果が無くなっていると考える事ができるので、x→yの因果しかないと仮定できます。TSL/IVであれば、」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno y→zにならないzを探すことで、y→xに邪魔されないように、z→x'→yと因果の向きを揃えます。他にもありますが、まぁ、それぞれ仮定があるので、説得できるかはケースバイケースですが、因果の向きを定めて考えて問題の無い推定モデルぐらいに捉えてよいと思います。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@uncorrelated 因果関係の三原則というものがあるそうです。これが科哲的にどこまで正しいものかはわからないですが、2の共変性はどの方法も考慮してそうです。3の交絡と1の時間的前後関係をどう担保するかという違いなのかもですね。 https://t.co/gL4NHCjHeN」 / Twitter
- 因果関係を支える三つの基本的原則 - アイデアの散策
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno xₜ₋₁→yₜの仮定を、予測を考える経済学だと許してもらえないときがありますが、それはさておき、重回帰分析一般だとy→xがあると数理的に推定量がおかしくなりますし、z→x; z→yでzが観測できない場合は単なる相関と言う事になります。」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きx→yを仮定できないときに、何とかx→yを仮定する方法/y→xの影響を制御する方法(e.g. SCM, DID)と言った方が良いかもです。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「因果推論、ようは今まで記述でしか表現できなかった因果性に関する仮定をシステマティックに表現し検証できるようにするするためのフレームワーク郡って感じ?」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「どちらかと言うと実験計画のための手法なのかなぁ、と。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「現代哲学のキーポイント 因果性などを読んだ結論としては、科哲として因果性が何か結論は出ていないが因果推論は因果性のサブセットを扱っているから、その範囲では大丈夫、ということのように感じる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Pearl 流、Rubin 流因果推論のベースとなる介入主義は因果性とは何かという科哲的な興味の解明には全く役に立たないが、実用上問題のないレベルで因果性を表現できるようなので安心して利用できる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Pearl 流因果推論(DAG)が一番包括的だが、原因が出揃ろう必要がある。Rubin 流因果推論は適用できるパターンが限られるものの、これで因果性があることがわかれば、因果性があるとみなして良いようだ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ベイジアンネットワークは、Pearl流、Rubin流とは異なる確率上昇説に基づく理論だが、必ずしも因果関係を明らかにできず疑似相関の問題を解決できていないようだ。DAGと組み合わせて使うのがよさそうではある。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「DAG と書くと誤解を招くか。バックドア基準と書く方がよさそう。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「もしかして、ベイジアンネットワークと Pearl 流因果推論って同じものを指してる?」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「科学哲学と統計学で概念が入れ子になってるからややこしい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「結局、因果性を保証しているのはベイジアンネットワークじゃなくてバックドア基準なんだな。」 / Twitter
- ミルの3条件(因果関係の存在を主張する根拠) | Dr.Clover’s Computer Clinic
- 因果推論とは何なのか - hidekatsu-izuno 日々の記録
- グラフィカルモデルに基づく因果探索手法の調査 - Fire Engine
- 機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想 - Fire Engine
- 協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPの理論と実装のまとめ - Fire Engine
- 機械学習の予測を解釈するKernel SHAPの高速性と拡張性の向上を目指したライブラリを開発した - Fire Engine
- 時系列性を考慮した因果探索手法VAR-LiNGAMの紹介|Dentsu Digital Tech Blog|note
- 伊津野 英克さんはTwitterを使っています 「因果探索手法で経済モデルが出来上がると思いはもちろんしないんだけど、理論モデルと現実のデータから作られたモデルでどこが同じでどこが違うのかは見てみたい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「説明、予測、因果効果、という区分けはよくわからないなぁ。説明と因果効果は目的は同じで適用できる範囲の差しかないように思える。記述に至ってはさっぱりわからん。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「これ読む限り、対比するような話じゃなく見えるけどなぁ。 https://t.co/lWzvbrmdOw」 / Twitter
- 「記述」と「説明」との差 : 最前線に立ち続ける覚悟はあるか
- 因果推論における未観測の共変量の影響を考える感度分析 - 名前はまだない
匿名化は安全ではない
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人情報を「匿名化」して安全に利用できるという考えは神話にすぎない。たとえ本名だけ消しても、それ以外のほぼすべての情報 (住所、GPSログ、検索履歴など) は復元可能である。にもかかわらず「匿名化すればプライバシーは保護できる」という危険な考え方が広まっている。 https://t.co/XYruPUpwuB」 / Twitter
- Big Data May Not Know Your Name. But It Knows Everything Else | WIRED
茂木 健一郎
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たしかにダメダメな印象(笑) ニューラルネット基礎の「逆誤差伝播」の回路すら脳に見つからない状態だったはず。 (また最強の碁や将棋は、棋士の棋譜を使わず、自己対戦のみで最強に) https://t.co/jNzNTwRNAl」 / Twitter
- タクラミックスさんはTwitterを使っています: 「茂木健一郎氏が人工知能や深層学習を十分に理解しているとは疑わしい記事。確かにある程度まで人工知能による英語翻訳は飛躍的に進んだが、それでも明らかに人間未満だ。決定的に欠けている部分を軽視して英語学習に安易に応用するのは疑問> 人工知能から学ぶ「英語学習法」https://t.co/EXvv2b6NqW」 / Twitter
- 人工知能から学ぶ「英語学習法」 | PRESIDENT Online(プレジデントオンライン)
- タクラミックスさんはTwitterを使っています: 「…最も重大な疑問点はこの部分。 「人工知能が実行している学習法は、すべて、人間の脳がやっていることである。」 と茂木氏は断じているが、私が知る限り、人工知能は人間の脳がやっているであろうことを真似てはいるが、脳の仕組みを確実に解明した上での事ではない状態だった筈。私の認識不足か?」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…私の懸念は、深層学習が機械翻訳の精度を向上させたと言っても、必要な学習量や学習に必要な演算量は人間の能力を超える膨大なもので、同じ事を人間に適用するのは無理があるという事。人間にとって効率の良い学習法をこそ採用すべきなのに人工知能ブームに乗って世間を惑わせるだけにならないか?」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…「人工知能は人間の脳では出来ない事をやっている」というのが私の認識だ。人間の脳がやっている通りの事をしなくても、結果は出せるというのが、今流行っている人工知能界隈のやっている事だと理解している。よって、人間が学習する際に、深層学習と同じ手法を用いるのは無理があると私は思う。」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…反復学習の効果については人工知能以前から人間の学習成果として確認されている。茂木氏が人工知能分野の深層学習に中途半端に言及した上で 「人間が人工知能に学ぶ日が来るとは思わなかったが、時代は変わった。」 とお書きになるというのは、脳科学分野の著名人の一人として、いかがなものかと思う」 / Twitter
答えを知っている人は滅多にいない
- 伊津野 英克さんはTwitterを使っています 「古市さんが「GoTo批判にはエビデンスがない」と批判してたけど、ベイズ会計のエントリ書いてて気づいたのは、十分なデータがないなら、より妥当な事前分布が置かれてるかが重要ということ。エビデンス無くても西浦さんの見解を支持するのが科学的な態度だよ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「統計はマウント取る人はいっぱいいるが、答えを知ってる人は滅多にいないので、生半可な知識でもいいので公開してフィードバックを得たほうがいいと思う。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「結局、プロジェクト管理手法も統計も銀の弾丸はないので、用法用量に従って正しく使う必要があるのだが、支持者は得てして万能薬のように語るので間違いが起こる、とw」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「データがあるときにどんな順番で手法を適用すればいいのかというフローチャートがほしい。」 / Twitter
文法
- kinabaさんはTwitterを使っています 「そもそも完全なる門外漢的アレですが個人的に自然言語が文脈自由以上とは思えない(正規言語のstate complexityの差として複雑さを捉えた方がいいと思う)派なのでlinearizationされた形で扱うのとても自然に思える」 / Twitter
- kinabaさんはTwitterを使っています 「これについて考えていることをdumpしておくと、自然言語を文法で表すとして、どう表現すると(1)人間にわかりやすいか(2)様々な機械的処理が実装しやすいか(3)人体による実装を巧く説明しているか、等々色々な見方があって多角的に見るべきもので一つの正解があるものではないと思う」 / Twitter
- kinabaさんはTwitterを使っています 「とした上で、Joshiの弱文脈依存文法 https://t.co/mddnuZIwZH 的な話にめっちゃ違和感があって、まったく自分の身体的な直感としてでしかないが、人体は線形オーダを超える構文解析はしてないので、どうせ近似的にしか実装されていない強い文法機能を考える際に多項式時間という制約に意味あるのかとか」 / Twitter
- Mildly context-sensitive grammar formalism - Wikipedia
- kinabaさんはTwitterを使っています 「一方それでは任意深さのネストは非文だから正規言語と主張するなら、任意に長い文もないから全て有限言語って話になる、という反論については、やはりこちらも人体そうなっていない気がする(巨大な有限集合を全部記憶するのでなく小数のルールを回している気がするしI'm(very)*happyとか相当に文だろ」 / Twitter
- kinabaさんはTwitterを使っています 「それで自分に違和感がない範囲としての正規言語なんですが、あんまり無茶苦茶な文法構造が無いというのは、オートマトンの状態数が増えすぎない構造が自然に現れやすいという話に言い換えられないかというのが元の発言で、https://t.co/a42nzprvl5 とか、あー状態数減るなーみたいな。」 / Twitter
- Adjectives: order - English Grammar Today - Cambridge Dictionary
- kinabaさんはTwitterを使っています 「ただstate complexityを持ち出したのはそれくらいしか正規言語内の階層構造思いつかなかったからで、現象のあまり良い定式化ではない気もする。文脈自由文法+α で表すというのは人類が"文法構造"を"理解"しようとするにはあまりに妥当な道具立てなので、理論的支柱はそうあるべきだとも思う。」 / Twitter
- kinabaさんはTwitterを使っています 「というわけで、文脈自由文法+αの文法達をその間の階層構造を保ったまま正規言語の中に埋め込むような操作を考えて、上位の文法で成り立つ現象を正規言語の内部階層へとtransferできるような埋め込みとかで説明できたりしないものかなあみたいなことを考えていた。」 / Twitter
cognicull.com
- kakiraちゃんさんはTwitterを使っています 「え すごい数学解説サイト見つけてしまった。 数学の勉強時によく起こる下の現象をなんとかすることができてしまいそう https://t.co/jlpxmG018F https://t.co/NrVhkAdboI」 / Twitter
- コグニカル
- kakiraちゃんさんはTwitterを使っています 「数学、原理的には、わからない概念の定義元を見る、その定義にわからない概念があればその定義元を見る、って感じに再帰的に探索していけばいつか分かる、というのは分かるんだけど、人なので探索木の深さが3以上になると途端にしんどくなって理解を諦めてしまう」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「1記事には1つのキーワードについて解説されていて、そのキーワードを説明するのに必要なキーワードを子とするような「木」がビジュアライズされて表示されている。 すべての記事について、依存関係が明示されているから、分からなかったらその元をたどれば良い。 https://t.co/TOeamMq1u9」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「子ノードをクリックすることで、別の記事に飛ぶことができるが、最初にアクセスした親ノードはそのままで、子のノードだけが展開されて、ページの内容だけすり替わるようになっている。「深く掘って調べてきたのは良いけど、どこまで調べたんだっけ・・・???」という現象を起こりにくくできる。 https://t.co/G8xHAN4UqV」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「分かっているノードは画面左上ハサミで切り取ることができて、木の表示をシンプルにすることができる。単純に見やすくなるし、基本的に木が複雑になると理解を諦めてしまいがちなので、モチベ向上に繋がりそう。 https://t.co/s2dz4HcIkf」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「この木を逆に見ると、ある概念が支えている概念が分かるから、「これ何の役に立つの???」という問いかけへの解にもなってるのか。。。強すぎる。。。」 / Twitter
物理と機械学習の相性
- ogiwaraさんはTwitterを使っています 「ところでF=maが成り立つ、って証明はどこにもないよね」 / Twitter
- ogiwaraさんはTwitterを使っています 「やっぱ物理における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「@designpatterngf 多くの自然現象がニュートンの運動の三法則で説明できることが立派な証明と思います(が、演繹的な証明はないよね、という意図ですよね?) なんか、そーゆの、物理と機械学習の相性はとても良いと思うんです。」 / Twitter
数理最適化
- UmeponさんはTwitterを使っています 「先日の白金鉱業.FMで「数理最適化では機械学習のような過学習のような問題はないんですか?」と質問されて、今まで強く意識していなかったなあと気付かされました。」 / Twitter
- UmeponさんはTwitterを使っています 「もともと数理最適化では、任意の入力データに対して解の最適性と最悪計算時間を理論的に保証するようにアルゴリズムを設計・開発するので、そういう問題を議論する文化がなかったんだろうなあと。」 / Twitter
- UmeponさんはTwitterを使っています 「ところが、現実問題の多くがNP困難な組合せ最適化問題で、アルゴリズムの出力する解の最適性や最悪計算時間が理論的に保証できなくなり、そういうことと向き合う必要が生じてる。」 / Twitter
- UmeponさんはTwitterを使っています 「代表的な組合せ最適化問題では、ベンチマーク問題集というべきデータセットが公開されて、それらの問題例に対するパフォーマンスで開発したアルゴリズムが評価されてるけど、それって機械学習における過学習と同じ問題が生じてるのは本当にそう。」 / Twitter
- UmeponさんはTwitterを使っています 「最近の組合せ最適化のコンペティションでは、出題時に配布するデータと評価時に使うデータを分けて、後者をシークレットにしてるし、数理最適化の論文に数値実験の結果を掲載する際にも、そういう手続きは必要かなと思う。」 / Twitter
- UmeponさんはTwitterを使っています 「トークでは、入力データの不確実性という観点からロバスト最適化の話題に触れましたが、こういう観点もあったなあと思い出した次第です。」 / Twitter
- tdual(ティーデュアル)@MatrixFlowさんはTwitterを使っています 「そうなんだよな。 「人間が上手に定式化できる」場合って結構あるんだよな。なのにそれでも強引に機械学習を使おうとする現場。」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています 「機械学習って要するに定式化の雑さをデータ量でゴリ押すことで汎用性を高めたタイプの数理最適化だと思っているので(あちこちから刺されそう)、「データが少ない」「人間が上手に定式化できる」という条件下なら普通に数理最適化すれば良いのかなと」 / Twitter
組合せ最適化
- がぶさんはTwitterを使っています 「社内で話題 https://t.co/iOowCTeeQk 組み合わせ最適化→組合せ最適化がいいよって話 https://t.co/tAVUBTy7g6」 / Twitter
- 電通、エー・スター・クォンタムと業務提携 - ニュースリリース一覧 - ニュース - 電通
- 「組合せ最適化」と「組み合わせ最適化」のどちらが正しい? - Togetter
- がぶさんはTwitterを使っています 「「組み合わせ最適化」って検索するとことごとく「組合せ最適化」ってでるの面白い https://t.co/564fD161lQ」 / Twitter
- 組み合わせ最適化 - Google 検索
関数解析的資料
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「まだ出版会社とか決まってませんがgithubあたりで順次公開したら見に来てくれる人よかったらふぁぼください ふぁぼ多ければ公開します」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「私が機械学習の入門書出せたら 初手でヒルベルト空間を仮説空間として導入して、汎関数で損失関数を定義し、フレシェ微分で勾配法を定義する。 実アルゴリズムはこれの特別な場合です。 数学科学部レベルの解析学を履修した人にはさいっこうにわかりやすい機械学習の入門資料」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「ニューラルネットもSVMもResNetも、ぜーーんぶ積分表現理論とかの無限次元の連続理論を先に持ってきて、実際のアルゴリズムはすべてその離散化として定義する」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「機械学習始めた頃、多くの書籍の数学的な雑さに戦いた。 今はもちろんだいぶ機械学習のことがわかってるから、雑な資料でも忖度して読めるけど、今後機械学習始める数学徒があんな無駄な努力する必要はないです。 初手から関数解析的な資料でやった方がいいに決まってる」 / Twitter
- 逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「「一般的な機械学習入門書」はこのレポジトリで公開となります。今(2020/10/11現在)は序文しか書いてませんが、これを更新する形でどんどん作り上げていく所存。 https://t.co/yNkutk6PwL リンクミスったので再掲」 / Twitter
- Runnrairu/Machine-Learning-text: 一般的な機械学習入門
- takuya kuboさんはTwitterを使っています 「@ranoiaru 解析学の方なのですね。情報幾何は(本当はちょっと違うけど)統計モデル上の微分幾何で、双対アファイン接続(接続のなかで計量によって結ばれる対のアファイン接続)がわかってしまえば、かなり素直な話だと思います。 輸送解析も楽しみです。頑張ってください。」 / Twitter
- 逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「@bocchi_talks 専門はSDEです」 / Twitter
次元
- 七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
- 七誌さんはTwitterを使っています 「イメージを式で表すことを試みる。 n次元の擬ベクトルはn-1本のベクトルの外積で構成される。 例えば5次元では v₁∧v₂∧v₃∧v₄=⋆v₅ となり、左辺が張る部分空間に次元を落とすことを繰り返して、2次元まで落とす。 v₁∧v₂∧v₃=⋆v₄ v₁∧v₂=⋆v₃ そもそもv₁∧v₂だけで表せるけど…」 / Twitter
テンソル
- Shinji KonoさんはTwitterを使っています 「ベクトルとテンソルの「変換」は、実態は一つ。変換されてるのは座標系に対する表現。それが理解できれば変換は自然に見えてくるのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「では実態は何かというと位置と線形変換。なので、座標変換自体もテンソルなので、なれないと混乱する。計量テンソル。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「行列とテンソルの違いは、行列は表現のことだが、テンソルは線形変換という意味を持ってるってこと。テンソルの行列表現とかそんな感じ。」 / Twitter
機械可読自然言語
- ロボ太さんはTwitterを使っています 「日本語みたいな自然言語を、プログラミング言語と同じレベルで機械可読になるように言語仕様を定めることができたらうれしいかなぁ。日本語っぽいプログラミング言語ではなく、プログラミング言語っぽい日本語って意味で。例えば複数の意味に取れる文章は文法エラーになる、みたいな。」 / Twitter
- ロボ太さんはTwitterを使っています 「昔、AIに協力しながら何かをさせるタスクを与え、自由に通信させてたら、そのうち「共通言語」を作り出していった、みたいな研究みた気がするけど、そうしてできた「人工自然言語」は、機械可読性が良くなるのかなぁ。それとも曖昧性が残るのかしら。」 / Twitter
- uint256_tさんはTwitterを使っています 「@kaityo256 https://t.co/CIMggdv9oD これでしょうか」 / Twitter
- 1706.05125.pdf
- ロボ太さんはTwitterを使っています 「@uint256_t 僕が見たのは10年以上前、教師なし学習で人工言語を作る試みだった気がします。でもこの論文も面白そうですね。」 / Twitter
テスト
- Shuhei FujiwaraさんはTwitterを使っています: 「機械学習、「大量にテストケースを用意すると、それなりにそのテストを通過する関数を自動生成できるやつ」で大体のエンジニアに伝わると思うんだけどどうなんだろ」 / Twitter
- そすうぽよさんはTwitterを使っています: 「@shuhei_fujiwara 未知の入力に対してもそれっぽい答えを返す(返してほしい)という性質も重要だと思います」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@_primenumber もちろん大事は大事なんですが、そのあたりは大雑把な仕組みがわかった後に伝える方が楽かなという気持ちです」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数って言葉は正確でない気がします。本当に関数を生成できたら、すごい技術ですが。多分究極のAIですね。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 多分優秀なエンジニアほど、言葉の正確性に対するこだわりは強いので、「それができたらプログラマも機械学習に駆逐されるじゃん!と感じてしまうと思います。生き残るのは… 多分テストケース職人??(か、仕様書書きエンジニアのみ)」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 関数の形に強い制約があるとか省略している部分はあるけど、一応一部の教師あり学習に対しては嘘ではないと言って良い程度の説明かなあと思っています。 相手が本当に厳密な説明を求める場合はみっちり数時間付き合ってもらうしかないですね(実際に本気で興味を持ってくれたらする気はあります)。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数ではなく、ロジックという言葉を使うのはどうでしょうか?ロジックのほうが、意味合いが広いので、関数より良い気がします。関数というと、プログラミング言語で言うところの関数を連想するので、誤解を与えるかと。」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 普段はもうちょっと慎重に言葉を選ぶので、僕も実際にロジックという言葉を使っていますね。 「データから欲しい入出力のロジックを逆算で生成するのが目標」という説明をすることが多いです。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara あと、これも優秀なエンジニアならではですが、テストケースが通ればいいだけだったら、もろ過学習しまくってしまえばいいんでない?AIってそんなもんなの?なんて誤解もあるかもですね。学習データにない入力にもそれなりな出力を返せるようにできることも捕捉が必要だと。」 / Twitter
無限小での線形代数
- ふみさんはTwitterを使っています 「大学入ってすぐの微積の授業で教授が「微積は無限小で線形代数をする分野」って言ってて、そのとき微積と線形代数が全く別物だと思ってた私は意味わからなかったけど、今はめっちゃわかるし的確に言い表した言葉だったんだなって感動している」 / Twitter
- 無限小と微分 | 関数の微分 | 微積分 | 数学 | ワイズ
- 授業実践記録
- 無限小 - Wikipedia
- 小話Vol.3:関数の「無限小バトル」と「微分可能性」 - 新米数学博士の数学談話室
- Lecture9.pdf
- 第1章 微積分入門
- TRonso33_Ikeda.pdf
確率分布
@7shi
- 七誌さんはTwitterを使っています 「二項分布→ポアソン分布→指数分布→ガンマ分布 の流れを勉強した。導出まで追っていないけど、それはまた別の機会に。ポアソン分布は素朴な算数で出せそうな気がしたけど、ネイピア数が出て来る時点で素朴な算数ではない・・・ #bayes_hmc」 / Twitter
- 七誌さんはTwitterを使っています 「@gm3d2 Wikipediaを見て気付きましたが、半減期もポアソン分布なんですね。」 / Twitter
- gm3dさんはTwitterを使っています 「@7shi 量子力学でそのうちある状態から別の状態への「単位時間あたりの遷移確率」を計算すると思うので、そうすると系が始状態のままでいる時間(=寿命)はポアソン分布になります。」 / Twitter
- 七誌さんはTwitterを使っています 「@gm3d2 ポアソン分布は単純な仮定から導かれるので、適用範囲が広いのですね。」 / Twitter
- 七誌さんはTwitterを使っています 「ポアソン分布と指数分布を知っている現象に適用するなら原子核の半減期かなと思うけど、分布の理解が曖昧で自力では適用できなかった。 「一つ一つの崩壊する時間間隔の確率は指数分布に従い、単位時間あたりの崩壊はポアソン分布になる。」 https://t.co/nx9Krkvpas」 / Twitter
- 半減期 - Wikipedia
- 七誌さんはTwitterを使っています 「ずっとシュレーディンガー方程式は何を扱っているのかちんぷんかんぷんだったけど(計算すると確率分布が得られることしか分からない)、量子力学の難解さと関係なく、単に周辺知識(ハミルトンヤコビ、微分方程式、波動、フーリエ、連続の式、拡散など)が不足していた面が大きかったと感じている。」 / Twitter
- 七誌さんはTwitterを使っています 「確率分布の時間発展をアニメーション化するとうねうねしているのはピンと来なかったけど、正規化されていれば面積が保存される(常に1)ので、非圧縮性の流体みたいな感じがして来た。そういう手がかりもなく漫然と見ていても、何もイメージが湧かない…」 / Twitter
- 七誌さんはTwitterを使っています 「一周回って、改めてリウヴィルの定理を眺めていた。深い・・・ 「確率分布がどのように時間発展するかを予言する定理」 「時間発展に対して相空間中の体積が保存」 「運動は非圧縮性流体中の浮かぶ微小な粒子の運動に類似」 https://t.co/rjeopv34Yj」 / Twitter
- リウヴィルの定理 (物理学) - Wikipedia
- 七誌さんはTwitterを使っています 「ざっくりした書き方に好感を持った。 「情報幾何学に現れる空間はコンパクトではない(略)。なので、安心して積分を行えない可能性がある。それを安易に回避するには積分値が有限となるものを積分すれば良い。」 シンプレクティック・ベクトル空間上の確率分布の発展について https://t.co/rp4ydtZKfR」 / Twitter
- Kyoto University Research Information Repository: シンプレクティック・ベクトル空間上の確率分布の発展について : ラクダを飼ってみませんか? (統計多様体の幾何学の新展開)
- 七誌さんはTwitterを使っています 「言い回しが面白い。 「シンプレクティック幾何学とは、非退化で可積分な構造(微分2形式)を備えた多様体の幾何学であり、古典力学を無駄と思える程に抽象化した解析力学を更に抽象化したものである。」」 / Twitter
- 七誌さんはTwitterを使っています 「話題に出ている島谷先生の『ポアソン分布・ポアソン回帰・ポアソン過程』は面白そうだったので入手していたけど、いつものように積んでいたので少し読んでみた。 確かに、パソコンを使って乱数でシミュレーションをして納得感を得ることが強調されている。私が先日書いた非局所性の記事と同じ方針だ!」 / Twitter
- τ-σさんはTwitterを使っています 「与えられた確率 分布がどの程度にべき分布に近いのかということを定量化し,妥当な閾値によって判別 できる方法が,Clauset らによって最近開発された https://t.co/2gshuffR5p」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 似てるな〜と思ってちょっと考えたのですが、wavenetの正解データはone-hot vectorなのに対して、生成データは確率分布なので、GANの判別器が判別しやすすぎて上手く学習されない気がします。正解データの方も確率分布にするいい方法があれば、かなり上手くいきそうに思えます!」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta parallel WaveNetの場合、連続な確率分布が出力です。しかも平均値が分かります。その平均値をgeneratorの出力としてGANに取り入れられそうだなと思っています。元論文でもparallel WaveNetの出力をSTFTして誤差に用いているのは、同じ仕組みだと思っています。」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 平均値を判別器に入力するの、とてもいいと思います!! その場合、wavenetが出力する確率分布の山が1つであることが前提になりそうですが、実際山は1つなんでしょうか??(wavenetやったことなくて知らなくて・・・画像の方のPixelRNNの方は、論文で多峰になることを報告していました!)」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta 私もWaveNetの出力を観察したことはないので分かりませんが、多峰になることは多い気がします。VAEのようなトリックを使って、微分可能なサンプリングをすればいいのかも?(parallel WaveNetもlossの計算で何かしら工夫をしているはずです)」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 確かに! 正規分布の混合みたいな多峰の確率分布であることを仮定して、VAEを使ってサンプリングすればできるかも・・・うーん、なるほどです。parallel WaveNet、もうちょっと深く読まねば。良い議論でした!ありがとうございます!!」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta こちらこそありがとうございます。蛇足ですが、parallel WaveNetでは256クラス分類ではなく、波形の各サンプルがロジスティクス分布の混合から生成されると仮定して、その分布の母数をネットワークの出力としています。parallel WaveNetというか、PixelCNN++で提唱されたテクニックですが。」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ そうなんですね!! parallel WaveNetは難しそうで・・・ それを踏まえて詳細に読んでみたいと思います!!ありがとうございます!!」 / Twitter
- 出国失敗さんはTwitterを使っています 「@kazuokiriyama_ 確率分布も有名なものは知っているといいかもしれないです。 例えば、判別分析で、与えられたラベル付きデータをグループごとに分ける直線を引くのは、各グループのデータが、分散が同じ正規分布から生成されたと仮定して、確率が最も大きいグループから生成されたと推定することに対応しています。」 / Twitter
- いんぐらむさんはTwitterを使っています 「@brenazmsc その辺はPRMLの2章で泣きながらやってるので大丈夫かと……」 / Twitter
- 出国失敗さんはTwitterを使っています 「@kazuokiriyama_ それなら大丈夫そうですね。等分散の仮定を外すと判別関数が2次式になるのも面白いです。 パッケージを使っているだけで何をやっているか知らない状態だと、不適切な手法で分析を行ってしまうことがあるので、理論を学ぶのも必要と感じています。」 / Twitter
- s.t. 超兄貴ではないさんはTwitterを使っています 「最尤法による判別分析 メリットはサンプル数が多ければ、確率的に判別できる デメリットはデータの分布が既知である必要があることと、サンプル数が必要であること #kantomath #kantomath1」 / Twitter
- 俺人〜Oregin〜さんはTwitterを使っています 「#JDLA #G検定 復習のつぶやき。 生成モデルの復習 訓練データの特徴を学習し、類似したデータを生成するモデル。例として、自己符号化器の潜在変数に確率分布を導入したVAEや、訓練データと生成器が生成したデータを識別器で判別させることによって学習を進めるGANなどがある。」 / Twitter
- みっちゃん|研究者✖️ブロガー|毎日一歩ずつ成長中🥚→🐣さんはTwitterを使っています 「今日は、ベイズの定理を用いたデータ判別を紹介しました。 https://t.co/LWsVtKkPxk – ベイズの定理を用いて、学生さんを配属するクラスを判別する – ベイズ判別=確率分布を考慮したベイズの定理 #ブログ #ブログ初心者 #ブログ更新しました #17日目 #ベイズ判別 #データを判別する方法はいろいろ」 / Twitter
- ベイズの定理を用いたデータ判別【ベイズ判別法】 | mi-chan-nel | みっちゃんねる
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、正規分布仮定が論外なのはマンデルブロ「禁断の市場」で知った。 (ノア効果やヨセフ効果という用語もこれで知った…後者はランダムな独立過程でなくて大変動が長期影響する話)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ただマンデルブロの本にしても「グラフの相似形から世界にべき乗則多い」と気づいてマルチフラクタルやノア効果等その性質を深める研究をしたものの、その根源(なぜべき乗則が現れるか)については説明が無い気が…「だって潜水艦ノイズから綿花価格までべき乗則に溢れてるから」的な。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 #数楽 正規分布に関連している確率分布達について勉強すると、結果的にガンマ函数とベータ函数について学ぶことになるのですが、そのとき、ベータ函数の4種の表示を心に留めておくと計算の見通しが良くなる場合があります。そのとき②を忘れずに!詳しくは添付画像を参照。 https://t.co/g1gvMwHcvF」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 ガンマ函数とベータ函数で済ませることができない場合には超幾何函数達まで一般化する必要が生じる。一般化する前にガンマとベータの扱いに慣れておくことは損にならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「楕円な分布に線を引いて、どれが近似とか議論してる統計は嫌い。楕円は楕円だろ。」 / Twitter
確率・統計・意味
- 純セメスさんのツイート: "児童虐待死事件に心理学者の先輩は「円環的因果律って知ってます?物事の要因は1つだけでなく沢山あって、中には無限ループになってるものもあるんです。それなのに知りもしない外野の人間が結果論で1つの原因を見つけて袋叩きにしている。そんな奴がいる限り虐待問題は解決しません」なるほどである… https://t.co/rVLbsQbjnc"
- Yusuke Odaさんのツイート: "NMTがポジネガ間違えるのは極めて典型的なエラーで,誰が翻訳モデル作っても発生しうる問題なんですが,世間的にはやっぱり今でもパターンマッチで翻訳しているものと思われているらしく,特定のリクエストから学習したんだろうという言説が飛んでいる."
- Yusuke Odaさんのツイート: "ポジネガの間違いは人間が見れば致命的だが,ニューラル翻訳モデルからしてみればたった1単語の差異でしかないので,人間が思っている以上に矯正は難しい(恐らく世界中の機械翻訳研究者が頭を抱えている)"
- Shiro Kawaiさんのツイート: "「意味が逆になる」ことの重大性への重み付けは、対訳だけを学習データとする限りは得られないって感じなのかな。その範囲では些細な違いだし >RT"
- 須山敦志 Suyama Atsushiさんのツイート: "ガウス過程のインタラクティブなデモ。 特に最後にあるカーネル関数の組み合わせ方と得られる予測分布の関係性はとてもわかりやすい。 https://t.co/87goFc6gGC"
- A Visual Exploration of Gaussian Processes
- Kohei Ichikawaさんのツイート: "非線形システムにおいて系全体の状態を決定する(observabilityを実現する)ために必要になる最小の直接観測すべきノードをグラフの静的な情報から調べる手法を提案。 双対する概念である可制御性は非線形だとお手上げだったのに可観測性は上手くいくのがとても面白いです。 https://t.co/7XHvwFuXdR… https://t.co/FQuvUnE24m"
- Observability of complex systems | PNAS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から、研究で「信頼性区間95%」が多くて、「どこから出た基準なのだろう?」という疑問があったが、今月の日経サイエンスで氷解。 統計学を作ったフィッシャーさん「とりあえずp=0.05くらいが妥当?」と書いただけだったという話。さらに後年、0.05を挙げた点を後悔していたとか(笑)」 / Twitter
- 三鷹ういさんはTwitterを使っています: 「@shirouzu @NikkeiScience フィッシャーさんが、農学者であった点は注目ですね。 農業なら、20年に1回は異常気象です。」 / Twitter
- dif_engineさんはTwitterを使っています 「測度論的確率論のすごさってのは,(考えても仕方ない)「なぜある試行でそれが選ばれたか」を全く問題にすることなく確率的な現象を記述してることなんだけど,平岡&堀『プログラミングのための確率統計』以外でそういうことを強調して書いたものを見たことがない気がする.」 / Twitter
- dif_engineさんはTwitterを使っています 「すごさの一つ,ですね.主語がでかすぎた.」 / Twitter
- dif_engineさんはTwitterを使っています 「自分は確率論の講義受けるまえにルベーグ積分のあらすじは理解していたので,確率空間の公理が難しいとは思わなかったけど具体的な現象との結びつきかたの理解にはその後長い時間がかかった.」 / Twitter
- dif_engineさんはTwitterを使っています 「コルモゴロフの『確率論の基礎概念』は,そのちょっと前のフレシェの仕事にヒントを得てラプラスやガウスあたりまでの話を整理したみたいなことなんじゃないかと思ってる(けどよくわからない).」 / Twitter
- dif_engineさんはTwitterを使っています 「『確率論の基礎概念』はこの分野が測度論で塗りつぶされるきっかけをつくった本だから「ランダムネスそのものを正面から取り扱わないよ宣言」ぐらいありそうだと思うかもしれないけどそういうことは書いてくれてない.」 / Twitter
- dif_engineさんはTwitterを使っています 「若干繰り返し気味になるが,フレシェの仕事に刺激されてラプラス,ガウスあたりの仕事を「現代風に」しようとしたという意味なら結局問題は「期待値の評価」であってランダムネスそのものは興味の関心からズレていくよね.」 / Twitter
- 統計たんさんはTwitterを使っています 「統計学を理解するには,データから推論をしているから客観的な推論になっている,というナイーブな価値観を投げ捨てることがまず必要だと思います。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確率測度の空間に有限個のパラメータ張って多様体として見なすけど、そもそも無限次元のまま多様体として扱えれば便利なのにな的な(´・ω・`)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 1÷(場合の数)=確率 という式が成り立つのは、「数え上げたそれぞれの場合すべてが等しい確率で発生する場合のみ」という条件がついています。現実世界の事象でこの条件が成り立つのはかなり限られていて、先生は、そのことをはっきり教えないといけないんですが…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 話題になっている新型コロナウイルス対策のワクチンの場合、治験の段階で数万人に接種して、ワクチンが原因で死亡した人数はゼロでした。したがって接種した場合に死ぬ確率は大きめに見積もっても「1/数万」よりも小さいわけです。「1/2」ではありません。」 / Twitter
- Ohkubo YusakuさんはTwitterを使っています 「嫌味でもなんでも無いんだけど「統計学は数学の範疇であり、かつ数学で言える以上のことを統計学に持ち込むべきで無い」派のひとって物理についてどう思ってるんでしょう? 論点はある公理系で閉じたはずの命題で現実世界を説明することに(なぜ)成功しているか?という点で似てると思うのですが。」 / Twitter
ベイズ
ベイズ統計の教科書
- Ken McAlinnさんはTwitterを使っています 「元も子もないことを言うと一番大事なのは色んな教科書を読んで色んな考えに触れることだと思うんだけど、難しいのは欧米の主要なベイズの本がほとんど和訳されてないこと。これによる認識の差は大きいと思う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「例えばBayesian Choice、BDA、Statistical Rethinkingだけをとっても別々のベイズの立場があるんだけど、どれも翻訳はされてない。古典で言えばSavageもJaynesも(知る限り)翻訳されてない。なので日本語で勉強しようとすると結構限定的なのかなってかんじする。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「実はある代より上はベイズの勉強をするのに英語の教科書しかなかったからこういう話は知ってて、欧米で教育を受けた人(自分とか)もこういう話は知ってる。逆に最近始めた、もしくは英語にハードルがある人は知る由もない、ということに歪さを感じる。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「そう考えると一番いいのはSNSでどうこうするより主要な教科書を翻訳したり、そういう考えを紹介するような教科書を書くことなんだけど、知ってる層がそれをするモチベーションがない(業績にならないとか)ので歪さを助長させてる側面はあると思う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「立場的にはBayesian Choiceがde Finetti/Savage流の主観ベイズ、BDAがプラグマティックなベイズ(これは立場がちょっと曖昧)、Statistical RethinkingがCox/Jaynes流の主観ベイズを反映してる。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「ただ色んな立場があったとして意見交換や議論をすることがあってもそれが不毛という認識はないし、逆に研究が促進されたりするのでそういう状態が理想なのかなって思う。初学者も色んな考えに触れて自分に合うように勉強できるわけだし。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「ちなみに標準的なものはなにかっていうのは英語の教科書を読めばわかるけど、ベイズ理論の大御所のRobertの渡辺ベイズ(英訳版)の書評を読めば大体どう捉えられてるかわかると思う。 https://t.co/NdvjNNPJ3Y」 / Twitter
- mathematical theory of Bayesian statistics [book review] | Xi'an's Og
- 伊津野 英克さんはTwitterを使っています 「過去の自分の考えを振り帰って思うのは、多くの日本人は確率統計を数学の一部として習うので数学なんだと思ってるけどそうじゃない(概念を数学で定義しているという意味では物理学と同じ並び)、というところが掛け違いの原因なのかも。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「初学者の立場としては黒木さん達のベイズに関する活動は迷惑なので、そっとしておくべき、は個人的には思わないなぁ。今の状況だと標準的な理解へのアクセスを妨害しているわけで。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「物理学においてさえ実在とは情報に基づく付随概念となりつつあるのに、主観確率を拒否し続けるのはいかがなものか。」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学を、知的生命体である観測者一人が天上天下唯我独尊となる「唯我論」だという批判を哲学系の人がすることがありますが、それは的外れとしか言いようがありません。」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学では、実在は創発してくる二次的な近似概念でしかありません。「○○が実在している」ということも、結局は情報でしかないので、実在概念自体が情報に基づいている派生概念です。情報こそが量子力学の扱う対象であり、その意味でも量子力学は情報理論なのです。 #入門現代の量子力学」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学分野で超有名な実験物理学者であるツァイリンガーは、「実在と情報を区別するのは不可能だ」と言ったそうですが、結局このスレッドで私が言っていることを、そう表現しただけなのだと思います。彼や量子力学をディスる哲学系の人は、それを単に理解し損ねているだけかなと、思っています。」 / Twitter
ベイズの事前分布
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「基本的に超パラメータというものはデータのなんとなくの「スケール観」を示しているものです。超パラメータの最適化というのはそのスケール観をデータから自動調整することを意味します。モデル選択の1つと考えるべきですが、やりすぎると当然過学習してしまいます。僕は最適化はしません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「よくデータを正規化(平均ゼロ、分散1にそろえる)みたいな謎の前処理を見ることがあるのですが、ある意味ベイズ統計の事前分布のパラメータ(超パラメータ)はこのようなデータのスケール設定を妥当性・解釈性を持って実施するものだと見ることができます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「XXXを最大化/最小化する」みたいな設計方針の統計手法は、このようなデータのスケール観や考慮するノイズ量の情報がわかりにくくなってしまっている場合が多い。だからスケーリングなどの前処理に闇雲な試行錯誤を要する。確率モデルで手法を解釈するとこの辺の仮定がわかりやすくなる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これ、古いツイートでしたが、「超パラメータ」はベイズの事前分布のパラメータを指していることに注意です。最適化アルゴリズムの設定パラメータなどは指していません。」 / Twitter
ベイズ統計の回帰モデル
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計の回帰モデルの解説で「パラメータの事後分布p(θ|y)を求めてから予測分布p(y*|y)を求める」と書かれていることが多いが、この手順は必須ではないので本質的ではないと思う。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「現に、モデルとデータから予測分布を出すにはパラメータをまるまる周辺化して消してしまってもよい。その意味で、予測を行うためにはパラメータの存在自体とか「学習」といった考え方はそもそもなくてもOK」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「事後分布→予測分布の計算手順は典型的だし、直観的にもわかりやすいので支持されているのだと思うが、この手順が当たり前だと思い込んでしまうと潜在変数モデル、時系列モデル、ノンパラモデル、教師あり/教師なし/半教師ありといった手法を統一的に理解できなくなる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「複数の手法やモデルを統一的な観点で理解しておくと、いろんなアイデアの間を自由に行き来して適宜活用できるのでとても便利だし、何よりストレスが少ない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「とは言え、何でもかんでもひとつの枠組みに丸め込んでしまうと思考停止になることもあり得るので、「事後分布→予測分布」のような特定の典型例にあえてフォーカスして性質を調べたり計算を効率化したりするのは工学的な観点で重要」 / Twitter
- TensorFlow User Group ベイズ分科会の資料 PPLについて - HELLO CYBERNETICS
- バッチベイズ最適化を使ってロボットに完璧なオムレツの調理方法を学ばせる
- 江口允崇さんはTwitterを使っています 「ランカスターのベイジアン計量経済学のテキストにも頻度主義とベイジアンの違いについての補論があるのだけど、情報量基準がどうこうは一切書かれてないので、例のスライドの内容はあくまで一部の人の解釈の仕方ってことなのですねやっぱり。 https://t.co/32pu0QJKzw」 / Twitter
- レオ爺さんはTwitterを使っています 「ベイズって結局のところ事前確率に根拠がなかったり、 尤度の設定がヒトによってちがってたりするから、 科学では使いにくいんだ。 そこらへんを適当に変えちゃえばどんな結論でも導けるから。 じっさい、ベイズ使うひとの結論って、その人の数だけあるともいわれる。客観性が期待できない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「それはサイエンスを狭く捉えすぎだし、量子論が情報理論だと言われている状況で主観的アプローチがサイエンスでは有用ではない、というのは相当駄目な発言では。例えばこれはサイエンスではないのだろうか https://t.co/cJkWyuakby」 / Twitter
- ベイズ推定を用いた新たな電子構造の解析法を開発 | 研究成果 | 九州大学(KYUSHU UNIVERSITY)
- MKTさんはTwitterを使っています 「@hidekatsu_izuno GelmanやMcElreachもベイズ統計が一般に主観的なものであることは認めているような気がします。単に分野によっては事前分布の主観性の程度が減ると。 BDA3 https://t.co/Y52jsJuLhz Stat Rethinking https://t.co/vkbjqZShze」 / Twitter
- MKTさんはTwitterを使っています 「Gelman先生の論説は分かり易い 「統計手法は主観的である。特にベイズは。ただ、尤度や事前分布は出来るだけ科学的に設定されるべきである。そして観測によって分析をより客観的にしていく。ただモデル設定や評価法から科学的判断を完全に排除することはできない」 BDA3, p13: https://t.co/akK1IDnHW9 https://t.co/Yt6xIKLwKC」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「主観ベイズの立場からするとある実験の結論はある想定するエージェント個人の合理的な結果にすぎないので、そもそも主語が小さいです(小さい世界)。これで複数のエージェント(再現実験)の結果が一つの結論に収束してくことが大きい世界に近づく科学的プロセスだと思ってます。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「主観ベイズの立場で実験結果の再現性の問題はどのように考えられるのかが気になっている。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「端的に言えばすべての実験結果が同じ方向向いてるんだたら(様々なエージェント/事前分布に対してロバストなら)主観の結論から間主観の結論に昇華できる、みたいなかんじです。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn ありがとうございます!なるほど、ある主体の信念の更新レベルを超えた話になっていくんですね。サヴェッジにいう小さな世界と大きな世界、まだ十分理解できてないですがイメージはできました。どのような統合が可能かという話の一つとして前のザッピングセミナーの内容につながるという感じですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@simizu706 なので(不正がなければ)再現性がないからといってその人を責められないし、逆に過度に一つの結果を一般化できないという至極穏当なことしか言えないです笑。ただメタ分析は難しいですね(小並感)。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn なるほどなるほど。個別の実験の分析結果の統合とかをどうするかは頻度主義ではメタ分析がありますが、データが違う場合に、ベイズでもモデル平均化のような形で統合できるんでしょうか。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@simizu706 一応あると思いますが統合的な枠組みはないと思います(今検討してます)。」 / Twitter
- Ohkubo YusakuさんはTwitterを使っています 「@kenmcalinn @simizu706 少し違う話かもしれませんが「研究結果に異質性がある」を「条件づけるべきデータがまだ未確定」と看做して良いのであれば、確証理論の文脈で研究されてきたJefferyの条件付け規則(Jeffery"s"ではなく)が近いのではないかと思いました。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@ohkubo_yusaku @simizu706 それは他人の研究結果を不確実なデータだと捉えればそうですね。でも正直Jeffrey Conditioningは使いづらい。。。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn そうなんですね。ありがとうございます!(楽しみにしてます)」 / Twitter
特許
- Hacker Newsさんのツイート: "Google's PageRank patent has expired https://t.co/qozXMIut9A"
- US6285999B1 - Method for node ranking in a linked database - Google Patents
ツール・ライブラリ
- piqcyさんのツイート: "Microsoftが、高速なTokenizerをリリース。その速度は、なんとspaCyの10倍にのぼる。現在はアジア圏の言語がサポートされていないが、今後に期待。 https://t.co/VrbxrGOmUy"
- Microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
- Wolfram Japanさんのツイート: "ソフトウェア開発者のためのWolfram Engineが無料で公開されました。どんなシステムにも配備でき、プログラム、言語、Webサーバから呼び出せるWolfram言語エンジンです。ご興味のある方はStephen Wolframのブログページからダウンロードしてお試しください。 https://t.co/1QKMY23eQq… https://t.co/suPRPmDUGY"
- Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Blog
- ikawahaさんのツイート: "かわいそうな形態素解析ライブラリとしておなじみの kagome が docker デビューしたよ 🎉 KEINOS さんありがとう! #デモサーバがすぐ立てられるのでラティス見たりするの楽になるかもね https://t.co/YMl9D5TBo0"
- ikawaha/kagome - Docker Hub
- Webpage: BEKKI Daisuke
- kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
- mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
- kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter
- Shion HondaさんはTwitterを使っています 「Colab ProとGoogle Driveで安く快適なKaggle向け計算環境を作る方法について書きました。 気になるのはデータのダウンロード方法ですが、Google Driveに保存しておいたzipファイルをcontent以下に展開するのが速いケースが多い気がしています(インスタンスのリージョンなどに依存していそうです)。」 / Twitter
- Shion HondaさんはTwitterを使っています 「Google Driveに課金したので、Googleフォトの有料化問題も同時に解決。」 / Twitter
- Shion HondaさんはTwitterを使っています 「This post shows you how to set up a *cheap* and *comfortable* computing environment for Kaggle using Colab Pro and Google Drive. Happy Kaggling! Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden https://t.co/8wMwbYRgk2」 / Twitter
- Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden
異常検知
- Yasuhisa Yoshidaさんのツイート: "最近仕事で取り組んでいた異常検知の機能、やっと出せました。ロール内で普段と異なる動きをしているホストを教師なし機械学習で検知します。検知だけではなく、このメトリックの動きが変っぽいよというところも提示するのもポイントです(解釈可能な機械学習ってやつ)。 https://t.co/HW5t5sy5IA"
- 新機能・ロール内異常検知の使いかた - Mackerel ブログ #mackerelio
- Mamoru KomachiさんはTwitterを使っています: 「今日は吉田さん (@syou6162) に大学院の集中授業で異常検知を題材に演習をお願いしています。講義資料は以下だそうです〜 https://t.co/Mcv0tPZXFg」 / Twitter
- syou6162/tmu_cs2
手法の区別
- HELLO CYBERNETICSさんはTwitterを使っています 「モデルと推論or最適化手法、そしてアルゴリズム(具体的な実行手順)は明確に区別した方がいいです。おそらく、そこらへんがごちゃごちゃになるから膨大な種類の機械学習手法がバラバラにあるように見えるのだと思います。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「NNはモデルで勾配法は最適化手法で、後方自動微分が勾配を求める具体的なアルゴリズムです。 単層パーセプトロンに勾配法を利用する場合は上記と同じですが、勾配法ではなく凖ニュートン法を用いることもでき、ロジスティック回帰はそのケースが多い。 呼び名が変わるが変わってるのは最適化手法。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「別に勾配法を利用していてもロジスティック回帰と呼べて、なぜならこの呼び名がモデルに対してつけられているから。シグモイド関数が出力層に来てる単層パーセプトロンとロジスティック回帰はモデルとして同じ。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「あと状態空間モデルは無論モデルで、その中の隠れマルコフモデルや動的線形ガウスモデルがある。 これに対して、ベイズフィルタの一種であるカルマンフィルタやパーティクルフィルタは潜在変数の推論方法。HMMの潜在変数推論として動的計画法の一種のビタビアルゴリズムがあるようなもの。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「線形ガウスモデルやHMMに対してEMアルゴリズムを利用すると潜在変数に加えて状態空間空間モデルのパラメータを推定するということができる(EMアルゴリズムがパラメータと潜在変数を逐次最適化するアルゴリズムという考え方)。」 / Twitter
モデル
データ丸暗記
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「A Iはデータが正しくないと動かない」は間違い。より正確には「モデルで想定されていないデータが入力されると正しく動作しない」です。なぜ前者のような間違いが起こるかというと、現状応用されているほとんどの機械学習や深層学習のモデルがデータ丸暗記なやり方に依存しているからです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データの汚さや不正確さを理由にして実用への失敗の理由にする考え方はよろしくない。丁寧な実験計画でも組まない限り、世の中に出回っているリアルデータは全て「汚い」と考えた方が良いし、それへの対処がまさにエンジニアリングで求められているものです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「あるAIベンチャーの人がまさにこのような発言をしていたわけですが、これは「私はリアルなデータを扱ったことがありません」という白状に近い。この辺りも、A Iに関する企業や取り組みが実応用に根ざしたものかどうか判断するのに役に立ちます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ウェブデータで学習されたAIが差別的な発言をしてしまう件に関して、「AIは素直に学んだだけ、悪いのはデータ」みたいな妙な結論を出すのは良くある話。いや、AIが悪い。人が設計している以上、AIを何か別の知的主体かのように捉えて責任逃れするのは間違っている。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これに限って言うと、AIはウェブデータから頻度に基づく類推を行っただけです(前述の通り、丸暗記するだけなので)。世の中どれくらい差別や偏見に満ちた発言が多いのか、という集計くらいにはなったかも。」 / Twitter
- piqcyさんのツイート: "文表現を得るためのUniversal Sentence Encoderの多言語版モデルが公開。学習に使っている言語には、日本語も含まれている。単語分割はSentencePieceベースのよう。… "
- takuya-aさんのツイート: "LightGBM のモデルのデバッグのために SHAP 使ってみたけど、簡単に始められてよかった。Jupyter の中から普通に可視化できる。 https://t.co/Vf2VGmnkEC"
- slundberg/shap: A unified approach to explain the output of any machine learning model.
- Daisuke OkanoharaさんはTwitterを使っています: 「微分、積分、微分方程式などのシンボリックな数学方程式はNNで驚くほどの精度で解ける。方程式を木表現経由のポーランド記法で表し、Transformerを使ったseq2seqで教師あり学習する。MathematicaやMatlabを超える求解率を達成できる他、有効な解を一つだけでなく多く列挙できるhttps://t.co/dQco5uihuE」 / Twitter
- Deep Learning For Symbolic Mathematics | OpenReview
- nikqさんはTwitterを使っています: 「https://t.co/LAGdNiwKVu うへーすごい、Network architecture searchの結果、まじでただランダムにつないだNNがResNet-50相当を達成…」 / Twitter
- Randomly Wired Neural Networks - Towards Data Science
- HELLO CYBERNETICSさんはTwitterを使っています 「ベイズモデリングは、予測にとにかく効きそうな中間表現(潜在変数)をモデルに持たせつつ、統計のことよくわからん人にも、なんだか納得してもらえるような事後分布や予測分布などのバラつき表現も兼ね備えており、 ツールとして予測重視の機械学習と説明重視の統計のいいとこ取りが形式的にできる。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「実際のところ潜在変数に実体としての対応物が無かったとしても、グラフィカルモデル見せながら、なんとなくの納得感が得られるのは、人間側のバグ的な要素も大きいのだが、事をすすめる上では重要だったり…」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「出自不明・説明不能な謎MLモデルを乱造しないように、Googleが提唱するMLモデルのマニフェスト作法「Model Card」を作る方法を解説。この例ではscikit-learnとAI Platformを利用。 #gcpja」 / Twitter
- Google Cloud JapanさんはTwitterを使っています 「人気の高い scikit-learn フレームワークを使用して、独自のモデルカードを簡単に作成する方法をご紹介。あらゆる機械学習フレームワークに応用できます。https://t.co/nCaHsbZg3z #gcpja」 / Twitter
- Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 | Google Cloud Blog
- GengaQ SurvivoRさんはTwitterを使っています 「群は対称性を記述するが、対称性とは群である、という訳ではない 濃度は大きさを記述するが、大きさは濃度である訳ではない 位相は空間概念を記述するが、空間は位相がなければならないという訳ではない 数学をしてるとモデルを実体と誤解せる事がある 数学においても、モデルはモデルでしかないのだ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「状況分析に役立つメンタルモデル一覧: オッカムの剃刀、ハンロンの剃刀、第一原理、根本原因、システム指向、シナリオ分析、べき乗則、正規分布、パレート分布、選択バイアス、生存者バイアス、偽陽性と偽陰性、信頼区間、組織的負債、シンプソンのパラドックス, etc. https://t.co/N3YGpk21Lg」 / Twitter
- Mental Models I Find Repeatedly Useful | by Gabriel Weinberg | Medium
単語ベクトル・単語選択・距離
- やぐさんのツイート: "指定した語彙だけに限定することで単語ベクトルのモデルサイズを小さくする変換コードを書きました。読み込み時間短くしたりdockerに載せたりするときに便利かもです。 https://t.co/3ZJwBx8VyB"
- Out-of-the-box - 語彙を限定して単語ベクトルのモデルサイズを小さくするminify_w2v
- やぐさんのツイート: "単語埋め込みのout-of-vocabularyのベクトルの初期化を自分でも実装して試してみました。Kaggleのコンペでは如何にOOVを無くすかが重要だったみたいですが、実タスクだとどうなんでしょう Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化 https://t.co/54O9zJMwR5"
- Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
- piqcyさんのツイート: "単語分散表現において、Euclid距離で意味の近さ、加減算で意味の差し引きができる理由について調べた研究。共起シフトPMI(csPMI=PMI(x,y) + log p(x,y))という値が単語ペア間(王様/男性, 女王/女性)でそれぞれ等しければ、それらはベクトル空間上で同一平面に存在することを証明している。… https://t.co/6wFGeSvp67"
- ketsumedo_yarouさんのツイート: "faissがついに1T=10^12本のベクトルに対する探索の話を始めたので、いよいよ大学レベルで個人で何か出来る時代の終わりが近付いてきている(これまでこの界隈は1B=10^9本の話だった) https://t.co/6UoR0tx5vu"
- Indexing 1T vectors · facebookresearch/faiss Wiki
- しゅんけーさんのツイート: "精度を保ったまま最小限の語彙を選択する variational vocabulary dropout (VDD) を提案。多くのNLPタスクで用いる語彙数は昨今非常に大規模となるが、限られた計算リソース下での実行することは難しい。 そこでdropoutベースで精度低下に寄与しない単語を学習する枠組みを導入している。… https://t.co/qYAAV6k4Tw"
- しゅんけーさんのツイート: "How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey https://t.co/bKLMnUV1Z6 @shunk031さんから… https://t.co/281qr1I4w6"
- How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey
データ
- TJOさんのツイート: "機械学習を用いた自然科学研究の多くに既に「再現性の危機」や「データセットの選別による恣意的な知見」という問題が出ているらしく、かつて心理学や認知神経科学が踏んだ轍を高速かつ全力で後から踏みに行っているということで険しい顔をしてゐる https://t.co/y3A7KboQOD"
- AAAS: Machine learning 'causing science crisis' - BBC News
- elasticJPさんのツイート: "#Elasticsearch において、言語アナライザーが文章を単語に正しく分割するためには辞書の存在が重要です。最近良く聞かれる「辞書を更新する際の挙動」についてブログを書きました。是非お読みください。https://t.co/MpsrnNivqN"
- CJK アナライザーの辞書更新時の挙動について | Elastic Blog
- Taku Kudoさんのツイート: "最近この手の「機械学習に使えるxxx」という記事を散見するが、手段と目的が入れ替わってておっさんには理解しがたい。 https://t.co/IONds3Tdyq"
- 【20個掲載】機械学習に使えるスポーツ関連のデータセット | Gengo AI
- Shun Aoki🇺🇸青木俊介👑さんはTwitterを使っています: 「GitHubにあるオープンデータのまとめ。機械学習用の有名どころから交通系・社会科学・気象系などなど網羅されているので領域のオープンデータを俯瞰で見るにはとても良さそう。5年ほど運用されているっぽい。 https://t.co/75YxqhMNBh https://t.co/xfks0V6dPM」 / Twitter
- awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. PR ☛☛☛
- Susumu YamazakiさんはTwitterを使っています: 「統計や機械学習において,諸事情で集められないデータをどのように扱うか,という議論は,とても大事だと思います。 というのは,例えば AI とヘイトが強く結びついてしまう事例が散見されますが,本質的な理由の1つは,人種や民族にわたってデータを集める条件が揃っておらず,公平でないからです。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「この問題については「MBA が会社を滅ぼす」という書籍でも論じられています。データ駆動による経営では,測られないデータによって,大きく誤差を生じてしまう,というストーリーです。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「さて,行動経済学における「ナッジ」という考え方は,人間の本能的な思考様式によって,認知が歪められてしまい,合理的に判断することができなくなるということに着眼しています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「ナッジと同じ議論が,機械学習や統計学など,データ駆動の考え方についても言えるのかもしれません。すなわち,補正が必要です。」 / Twitter
- ゆうだいさんはTwitterを使っています 「機械学習のためのデータセットが大量に公開されている神サイト. https://t.co/U3rpWNCiOx」 / Twitter
- UCI Machine Learning Repository
- HELLO CYBERNETICSさんはTwitterを使っています 「データないけどオンライン強化学習で何とかしたい みたいなのカジュアルに言うのは構わんが、CartPoleを適当な手法で良いから一回動かしてみてほしい。このレベルのタスクですらエピソードは数百必要なわけですが、本当に覚悟あるのだろうか。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「統計のプロを謳う人がこれを言っていて、私が "サンプルサイズが大きすぎるのは良くない"というのは、実験とデータ収集にはコストが掛かるのだから"意思決定に必要なサンプルサイズを見積もりましょう"という意味ですよね と確認したら、検定に応じて最適なサイズがあるのだと言われたので、黙った。」 / Twitter
- nekoumeiさんはTwitterを使っています 「ずっと気になってたので調べました 「サンプルサイズが大きすぎると良くない」ってどういうこと?|nekoumei #note https://t.co/KQQ7cRAojW」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「それ以前に、サンプルサイズと標本数を混同していたり、統計計算では不偏分散を用いるものだと言っていたり、よく分からん変換をカマしてとりあえず単回帰していたり、正規分布してなかったり直線に乗らないデータは異常だと言ってたり、社会はそういうものかと現実に戻された感があってよかった。」 / Twitter
データ構造
- takuya-aさんのツイート: "ANNのインデックスの構築戦略おもしろい。1時間・1日・1ヶ月ごとに差分に対してインデックス構築してデプロイ、APIサーバからそれらを自動で組み合わせて返している。 / “メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog” https://t.co/zqati0ay3W"
- メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog
- takuya-aさんのツイート: "ダブル配列の構築時の空き領域の検索、簡潔ビットベクトル使ったらけっこう高速化できんじゃね?って思って調べてたら、すでにdarts-cloneに実装されてたときの顔してる"
- かんぱさんださんのツイート: "Goでダブル配列書きました。あまり最小接頭辞トライを採用してる実装がないように感じたので、最小接頭辞トライを採用してます。普通のトライと比べて、多くのケースでメモリ効率とキャッシュ効率が良くなるはずです。 https://t.co/NS5kN9J6oz"
- kampersanda/doublearray-go: Go implementation of double-array minimal-prefix trie
- かんぱさんださんのツイート: "簡単に実装するために、BASE/CHECKは単純なint配列です。"
ソート
- κeenさんはTwitterを使っています 「バイトニックソート、ネットワークソートの一種というのを知っていれば瞬殺できる」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「ところで結構基本的なことがしばらく考えても解らず詰まっておる,具体的には “バイトニックソートがなぜソートになっているのかの正当性” が解らない(計算量を度外視した実装を見ても直観が湧かないどころか各補助函数の事前条件と事後条件が把握できない)」 / Twitter
経済や統計では重視される「識別」
- 成田 悠輔さんはTwitterを使っています 「機械学習モデルが実応用でうまく動いてくれないことが多いのは、評価データで同じ性能を達成する解が複数あることが原因だという主張。実はこれ、経済や統計では重視される「識別」が機械学習では無視されてることと同根なのはあまり知られていない https://t.co/mhOsLnwesQ」 / Twitter
- [2011.03395] Underspecification Presents Challenges for Credibility in Modern Machine Learning
シャープレー値
- 成田 悠輔さんはTwitterを使っています 「1950年代にゲーム理論や経済学で誕生、その後絶滅したと思われてた概念(シャープレー値)が、5年ほど前からAIや機械学習でルネッサンスしてる。いったい何が起きているのか、これを読むとわかる https://t.co/TS28m9oWTj」 / Twitter
- 5.9 Shapley Values | Interpretable Machine Learning
正則化・汎化
- HELLO CYBERNETICSさんはTwitterを使っています: 「正則化は予測モデルがデータ毎に異なる学習結果となることに対して、学習結果の期待値が真値からズレることを許容する代わりに、単一の学習結果が期待値の周りでブレにくくことで、大外れの学習結果を引きづらくする。これを汎化と呼んでる。言葉のイメージからもっと壮大な物をイメージする人が多い。」 / Twitter
- Haitham Bou AmmarさんはTwitterを使っています: 「Bias-variance trade-off is one of the most important aspects of #MachineLearning. Don't forget your #algorithmic implementation should strike a balance. #ArtificialIntelligence #BigData #Python #learning #teaching #TensorFlow #PyTorch #DataScience #informationtechnology #math https://t.co/v7fhfn9FUL」 / Twitter
- GöktuğさんはTwitterを使っています: 「@hbouammar It is so nice and informative post. A couple of years ago, I wrote the relationship between bias-variance dilemma and regularization of ML in medium, which is quite parallel with yours: https://t.co/KWol1Cr10P」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています: 「ここで学習結果の意味は、固定した訓練データで学習させた予測モデルの出力値と真値の二乗誤差。」 / Twitter
混合正規分布の最尤推定
- Hironori FujisawaさんはTwitterを使っています: 「混合正規分布の最尤推定,EMアルゴリズムが失敗するのではなくて,最尤推定が根本的に上手く行かない可能性がある例です.意外と知られていないようです.「推定」と「アルゴリズム」は違って,「推定」を実現するために「アルゴリズム」が幾つかあるという感じです.」 / Twitter
- Hironori FujisawaさんはTwitterを使っています: 「失敗する理由: あるデータ一点に正規分布の一つをフィッティングして分散を0に近づけて,ディラック関数のようにフィッティングしたときに最も尤度が大きくなる(無限大になる). 最尤推定が上手く行かない代表例としても知られています.理論上は必ず失敗します.図的にもイメージしやすいです.」 / Twitter
- Hironori FujisawaさんはTwitterを使っています: 「実用的な対処: 分散に下限を用意する.EMアルゴリズムの初期値で分散を大きめにする.正規分布の分散をすべて同じにする.通常の最尤推定は諦めて変分ベイズを使う.など. 理論上の対処: パラメータ領域を有界閉集合にする(ワルド型).最尤推定を諦めて適当な推定方程式の解を考える(ラオ型).」 / Twitter
- Hironori FujisawaさんはTwitterを使っています: 「統計科学においては「推定」が先にあるので誤解は起きにくいのですが,機械学習では「アルゴリズム」が先にあったりするので,誤解が生じやすいです.ただしこれは長所短所の表裏があります.統計科学においては推定の実現方法への意識が弱くなり,機械学習では推定の実現方法への意識が高いです.」 / Twitter
- Hironori FujisawaさんはTwitterを使っています: 「ビッグデータ対処には後者が重要です. 上記のようなギャップは「検定」でも現れます.同じ仮設検定問題でも,実現方法は幾つもあります.応用分野の方に話すと驚かれたりします.独立性検定は有名ですが,実現方法は有名な手法だけではないです.」 / Twitter
- Keisuke YanoさんはTwitterを使っています: 「@HironoriFujisa1 「モデリング」・「推定/推論」・「アルゴリズム」の違い、重要ですね。。違いを認識するというのが大事な一歩と思いますが、一方でこれらを全体として捉えるというのも次の重要な要素になっていると思います。どこかの認識が欠けていると不具合に気づかなかったり重要な要素を捉え忘れたり。。」 / Twitter
明らかに価値のない例
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「データサイエンスにおいて「価値のある取り組み」を選定するのは困難を伴います。ここで「何が価値か?」を考え出すと泥沼にハマりがちなので、逆に明らかに価値のない例をいくつか挙げるほうがチェックリストとして機能しやすいと思っています。↓」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「1. 予測できたとしても、それに基づいたアクションが打てない 例えば何か製品の異常などが事前に予測できたとして、その発生自体を防いだり、発生したとしても被害の派生を低減できるような手立てが打てない場合、ただの心の準備くらいにしかならない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「2. 直接測れば済むものをわざわざ予測しようとしている 統計予測は「測れないものを推定する」ことによって価値を生み出そうとするものであり、そもそも低コストで直接測れるのであればやる必要がない。事前に情報の整理ができていないと見落としがち。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「3. リスクの方が明らかに大きい 統計予測によって業務効率が平均的には最適化されるが、万が一予測が間違った際のリスクがあまりにも大きすぎる場合はそもそもやらない方が良い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「4. 現状の悪い慣習を硬直化させてしまう 何か業務を自動化したい時などに起こりがち。本来では不要である現行業務をAIなどによって自動化することによって、目指すべき理想像からかえって遠ざかってしまう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「5. スケールメリットがない AIやデータサイエンスやら言いますが、そもそもコンピュータによる課題解決の本質は自動化にあって、人では処理できないデータ量を低コストで高速かつ正確に捌けることに価値の源泉がある。これが謳えない場合は代替手段が存在する可能性が高い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています: 「まだまだありそうです。一応補足しますが「上記に当てはまればすぐにダメ」というわけではなく、逆に取り組みの価値を上げるためのヒントだと思っていただければ良いです。例えばスケールメリットがないのであれば、その手法を別の対象にも適用できないか、といったより高次の課題を検討すべきです。」 / Twitter
users
@sammy_suyama
2020
2020-11-24
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ほぼすべてのMLソリューションにおいて、限定された実験環境・データセット・テストベッドにおけるごまかしの「成果」から、いかに実運用に持っていけるかが最大の壁となる場合が多いので、このあたりの問題意識はしっかりとシェアしていきたい。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「このような限定的な成果を元の目標のサブゴールであると誤認してしまっているケースが多い。これはサブゴールではなく、単にオーバーフィット。MLに関わる人の多くが交差検証を理解しているにも関わらず、より広いマイルストンでのオーバーフィットに無頓着になってしまいがちなのが驚くべきところ。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「その実証実験で得られたやり方・モデルは、コスト面で横展開可能か?」 その質問にちょっと真摯に向き合うだけでこの問題はかなり回避される。(と同時に、無計画なPoCで短期に稼ぐだけのビジネスモデルは駆逐される)」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「たいてい言い訳として登場しがちなのが「もっとデータが集まれば将来的には解決する」と言って逃げるパターン。これは99%嘘なので注意です。本運用時のデータ収集に実証実験時と同じくらいコストがかかるようでは全くお話になりません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「以前TFUGで「MLのモデリングは自動化できるか?」という話をしたのを思い出した。結論としては「自動化できるくらい予測の目標が明確であり、妥当な評価を行うためのデータ量が豊富であること」でした。正しいと思いますが、この前提条件、正直モデリング作業自体よりもはるかに満たすのが難しいです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ブラックボックスな手法は使うのは容易ですが、それだけでは実用に耐える評価を下すまでの道のりが果てしなく遠くなる場合が多い気がします。」 / Twitter
2020-12-02
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えばAlpha Goの提案する手は一見人間には理解不能かもしれませんが、読み筋を示して行けば(途方もない苦労を要するものの)一応理解はできるはず。要は、要素を分解すれば最終的に人間が納得できる可能性があるのであれば、それは「理解できる」に入るんじゃないかと思います。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「人間が処理できないほど、1.考慮すべき項目が多数、2.探索すべき組み合わせが多数、といった場合には機械学習(というか」計算機)のアドバンテージが出るというだけの話です。これだけのことで、単なる技術をわざわざ「超人間的な知性の神秘」みたいな議論には進めない方が良いですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「深層学習はパラメータ数が多く暗記できるキャパが大きいので、「深層学習が一番うまくいった」という実験結果は、まず課題設定の失敗(leakageなど)を疑った方が良いです(経験上、9割以上はこれ)。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「統計的予測に素養のない方達が、すぐに深層学習なり機械学習に飛びついてしまう昨今ですので、この辺りは十分にケアすべきです。解決は簡単です。あなたの作った手法が、本運用と同じようにデータが入ってくる状況で要求性能を発揮しますか?という問いに答えられるような実験設定をすることです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「面倒臭がっているケースが多いと思われます。元データの散布図を見れば済む話を、わざわざ「機械学習の解釈性」なる技術でモデルの入出力の挙動を確認するなどは典型例ですね。」 / Twitter
- Masa YamamotoさんはTwitterを使っています 「本当のところで、どうしてこうなるのかわからない、と言うケースは少ない気がしますね。 検証が面倒だからやらないのか、そもそも適当に問題を扱っているか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「人工知能が人間の能力を越えた」みたいな文言は、くだらない週刊紙の表紙レベルに留めておくべきと思います。データが大量に保存でき、人間より早く計算できると言う時点で、計算機は人間を十分に上回っているし、現代の人工知能もその延長線上に過ぎません。」 / Twitter
2020-12-10
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね。マルチタスクや深層学習に限らず、複雑なlossの設計は人間には無理です。」 / Twitter
- Yuki Arase (荒瀬 由紀)さんはTwitterを使っています 「深層学習にマルチタスクさせると的確にタスクやロス関数設計の穴をついてくる(簡単なタスクのロスを下げ続けるマシーンと化す)のを見ると、「常識に囚われるな!問題は単純なのさ!」とか言って迷路の外側通ってゴールする方法をドヤってくる人みたいで味わい深い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「僕もさんざん(深層学習に限らず)lossの設計によって課題を解こうと四苦八苦した経験が過去にありますが、結論としては、やろうとしていることがちょっとでも複雑になってくると簡単に限界を迎えて黒魔術の世界に入ります。 確率モデルの設計の方がずーっと楽。」 / Twitter
2020-12-24
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「確かにLASSO(L1正則化)は使いにくいですね。データ表現としてのスパース性と、どの次元が説明しやすいか?という推定は分けて考えるべきなんじゃないかと思いますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計だと、うまくモデルを設計すれば「データを表現するために少数の次元を使用すること」と「どの次元がよく説明できるか」というのを両立できます。言ってみれば前者はsparseで後者はdense。複数の次元間で表現力に変わり映えがないのであれば、説明のしやすさも同じくらいに推定されます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「LASSOは結果の見た目もスッキリしていて、特に予測精度だけ気になっている場合は検討候補に入れても良いんですけど、もう1歩踏み込んで結果を説明したり手法を改善したりしたいときに「あれれ」となってしまいますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね、説明には絶対使っちゃダメです。昨日と言ってることが違うじゃねーか、ってブチ切れられます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズモデリングは、モデル設計の柔軟性や少量データ・低品質データの対処に強い分、技術的課題点をすべて計算量の課題にしわ寄せさせる傾向があります(はるか昔からそう)。逆に言えば、ハードや計算アルゴリズムの進化が、そのままベイズの応用領域の拡大に直結するという見通しが立てられます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「MCMCの登場によって取り扱えるモデルの幅がどかっと増えた。最近は並列計算によってまたちょこっと増えた。量子コンピュータが活用できることになったら次はえらいことになりそう。」 / Twitter
2020-12-28
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「コインやサイコロの例から確率の概念を学ぼうとすると、「コインは1/2!」「サイコロは1/6!」のように“絶対的に正しい”確率が存在するかのように錯覚するんですよね。すべては数理的に簡略化するための仮定でしかないのに。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「こういう仮定を置くときは、もっと申し訳なさそうに述べるべきですね。「本当は物理シミュレーションとかいろんな人類の叡智を駆使すれば、もっと正確にコインの出目を予測できる可能性もあるのですが、そこまでの知識・技術を持ち合わせていないので、ここは仮に1/2とし話を進めさせていただきます」」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「前にも言いましたけど、こういう「サボり」を入れても「とりあえず議論を前に進められる」点が確率の良いところ。ほかに複雑な要因が絡む統計解析をするときは、コインの出目1つにとらわれ過ぎない柔軟さが大事な場合もあります。1/2なのか49/100なのかは重要でない場合が多い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習の解釈性に関して、僕個人としてはかなりネガティブな意見を持っています。「この手法を被せれば結果が解釈できるようになります」みたいなブラックボックス&お墨付き系の手法は、簡単で広まりやすい上に誤解ばかり招くので、新たなcrisisを起こす可能性が高い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「振り返ると、僕の「目的さえ達成すればどんな方法を使ってもOK」という今までのスタンスもちょっと反省しなきゃいけない気がしています。なぜなら、多くの人は自身の目的すら正しく認識していないから。「目的を達成するためのrequirementをしっかり整理せよ、手法はなんでも良い」の方が近い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん機械学習の解釈性が低いというのは、(これ自体非常に曖昧ではあるものの)課題意識としては正しいと思う。しかし、それを解決するためのアプローチや結果として起こりうる社会へのoutcomeに関しても気を配るべきなのでは。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データサイエンスの仕事を続けていくのはそんなに複雑な話じゃなくて、①自らの解析スタイルに疑いを持ち常に崩していくこと、②自らの仕事の自動化を検討すること、の2点を頭に入れていれば大丈夫だと思います。難しくない、とは言っていません。」 / Twitter
2020-12-29
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分の「ベイズ深層学習」ですが、別に深層学習をベイズモデルとして構築し直してパワーアップうぇーいする話じゃなくて、深層学習の経験的にうまくいってるとされている謎テクニックを条件付き確率の考え方でスッキリ整理するよ、の方が近いです。 https://t.co/eReM4hHMJZ」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ただ、これで深層学習の応用上&研究上の諸々の問題が解決するわけでもないです。まあ、新しく登場する色んなテクニックに惑わされたりする機会は減るだろうし、既存手法を合理的にカスタマイズするヒントとかは得られるかもしれない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「問題設定が誤っているためドツボにハマるという話、AI界隈本当に多い。 心を知るための人工知能: 認知科学としての記号創発ロボティクス https://t.co/k2qwwpcklq https://t.co/wSMglertwr」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「生成モデルあるいは潜在変数モデルに慣れ親しんでいる人にとっては自然な考え方だし、現にそういった創発現象が意図して起こせることも、それを使って工学的な問題解決ができることも良く知っている。ただ、人間と同じ挙動を再現するモデル設計は極端に難しい。」 / Twitter
histric-1
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「カグルなどもほとんどは教師ありを使うような課題だと思うのですが、要となる前処理・特徴量抽出はほとんどが教師なし。利用頻度は教師あり/なしで8対2くらいかもしれないですが、重要度はそのまま逆転しますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「教師なしモデルを使いこなすor設計できる人が機械学習を制する。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もう1歩進むと、 実践的な統計モデリングに限定して言えば、教師なし/教師ありといった区別はしない方が応用の幅が広いことは自著でも簡単に説明しています。 https://t.co/5W7PVnk9qU」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「うーむ、なぜでしょう。「xとyのペアを与えれば機械が勝手に学習して予測できるようになる」という噂が流布されているからでしょうか?」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習は教師ありと教師なしに分類される」という入門書籍の定番の1行目の文句を信じ切って進んでしまうと、多くの人が機械学習の膨大な応用範囲と一貫した手法の理解を見過ごしてしまうことになる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「Juliaを使うとガウス過程回帰が実質10行程度で実験できる。 https://t.co/wXVwwL9KwB」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ハイパーパラメータを調整したければForwardDiff.jlなどを使えば追加数行でできると思います。 https://t.co/68N1y40M1g」 / Twitter
- JuliaDiff/ForwardDiff.jl: Forward Mode Automatic Differentiation for Julia
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「結果の可視化以外では特別なライブラリは一切使用していません。基本的に線形代数の計算式を並べるだけで実装できる。ブロードキャストをうまく使うことがポイントですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「実装したい人へのオススメは、適当に「Gaussian process kernel」とでも検索して、9行目・10行目を別のカーネルに置き換えて試してみることです。予測結果が色々変わります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「高度な統計解析をするためには確率モデルによってデータシミュレータを作る必要があります。ただしシミュレータはたいてい複雑なので事後分布を計算するのが困難。さらに事後分布を近似するヒントとなる尤度関数(モデルの一部)も計算できないケースもあります。一方で、」 / Twitter
- Daisuke OkanoharaさんはTwitterを使っています 「多くの科学領域でシミュレーションが作られてきたが、尤度が計算できず、観測からの推論が困難で非効率なABCしか使えなかった。近年のML/DLの発展で高次元でも尤度や事後確率分布の代理関数を推定でき、微分可能なシミュレータを使って高度な推論ができるようになったhttps://t.co/BGvvBV7rjE」 / Twitter
- The frontier of simulation-based inference | PNAS
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ABC(近似ベイズ計算)と呼ばれる技術も古くからあり、尤度が全く計算できないような場合でも(モデルが比較的小さければ)事後分布が推定できます。ただし高次元のディープなモデルなどには適用が難しい。もう少し近年では、」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ディープなモデル含む複雑なシミュレータに関しても密度比推定を利用することによって尤度計算ができなくても計算を進めるやり方があります。ほぼ同様のアイデアはみんな大好きGANにも使われています。変分推論法との関係性などはlikelihood-free VIとして整理されています。 https://t.co/Gq52TxqrHf」 / Twitter
- [1702.08896] Hierarchical Implicit Models and Likelihood-Free Variational Inference
- Daisuke OkanoharaさんはTwitterを使っています 「問題を解くために使ってはいけない別の情報を使って”ずる”をするショートカット学習は動物でもみられ、現在のML/DLでも広くみられる。これによりMLは違う方向に汎化し、学習分布外(o.o.d)に外挿できない。実験結果の詳細な分析、o.o.d汎化のテスト実験が必要である。https://t.co/OIKtfOY61G」 / Twitter
- [2004.07780] Shortcut Learning in Deep Neural Networks
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習や深層学習が「ズル」して学習データセットで良い成績を出すという話は結構根深いです。例えば画像中の猫・犬を分類するタスクで、DNNで誤って犬と判定された猫は芝生の上にいたり。学習データ中では屋外の芝生にいるのは犬の方が圧倒的に多かったということなんでしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「同じことは実は人間でも起こっています。人種差別なんかがそう。対象となる人自体の本質を見ずに、表面的な特性だけで判断をする。こうすることによって人類は予測の「省力化」を行っています。表面的な相関や過去の事例だけで物事を判断すると未来(=学習に使っていないデータ)で大間違いを起こす。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「面接などで候補者の技術力を知りたければXGBoostの使い方などどーーーでもいい話はせずに,教師なしの手法についてどれだけ語れるかにフォーカスするとよいです.」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データを格子状に並べた瞬間に「画像だッ!」ってなるのはいかがなものか」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「取るべき解析プロセスは、見かけ上のデータフォーマットや計測手段(センサー種類とか)などではほぼ決まりません。対象データの背後にある構造やデータ量、解析目的に応じて決まります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には 実問題 = 現状と理想にギャップがあり頑張っているんだけどどうにもならなくマジで困っている人たちがいる問題」 / Twitter
histric-2
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガチで機械学習の研究をやっている人であれば、多重共線性みたいな概念にいちいち名前がついていることに驚くのではないかと思いますね。」 / Twitter
- 干物男!かとう茶んさんはTwitterを使っています 「ML系だとOLS(最小二乗法にパラメータ識別の仮定が入っているやつ)をちゃんと習わずに来る人が大量にいて(というかほとんど),そういう人たちは最初からカーネル入れて正則化かけてたりするので,やや理論っぽいことをやろうとしている人でも多重共線性とか知らずに生きてたりします.」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「あー、確かにこれはありますね。計算アルゴリズムが幾何的な情報をうまく扱えていない。」 / Twitter
- 📊🛠📝 (𝚖𝚊𝚕𝚕𝚊𝚛ĝ𝚎 𝚊𝚙𝚕𝚒𝚔𝚎𝚋𝚕𝚊)さんはTwitterを使っています 「回帰なんかをStanで実際に推定しようとすると、分散揃える謎処理した方がかなり速くなるんですよね。 NUTSのパラメータ調整が入るので、スケールが違いすぎると限られたwarmup期間では上手くいかない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データ間で数値のスケールが著しく異なるのが原因で計算上変な挙動が起きる場合、単純にデータの表現方法を変えれば解釈性を保ちつつ改善できる可能性がありますね。ミリメートルをメートルに直して、それにモデルの事前分布も合わせるとか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはかなりあるあるで、多くの教師ありのシチュエーションだと前処理(スケーリングとか)とk近傍法で他の手法と大差ない。どころか説明しやすい。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これで問題が解決できればそれでOKですが、もう少し追求していくと「近いとは何か?」という設計上の問いが出てきます。ここで出てくるのがカーネル法やガウス過程などのデータ間の類似度を設計することによって回帰モデルを設計するやり方です。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガウス過程などのカーネル(共分散関数)を設計するアプローチは非常に直感的で強力なのに、実際はRBFカーネル(デフォルトではこれが多い)を使った「なめらかノンパラ曲線フィッティング」くらいしか利用されていないのが惜しいところ。これだと動作的にはほぼk近傍法に近い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ということで、カーネル関数の機能を直感的に理解したい場合は下記のサイトの下の方にあるデモをぽちぽちしてみるのをお勧めしています。(あと、よく聞かれますが、多次元入力版の拡張ももちろん簡単にできます。) https://t.co/87goFc6gGC」 / Twitter
- A Visual Exploration of Gaussian Processes
- 高梨陣平さんはTwitterを使っています 「GoogleのAIが集中砲火を受けている。具体的な証拠無しには有効性の検討はできない。」 / Twitter
- The RegisterさんはTwitterを使っています 「ICYMI: Google is under-fire for bragging about making a super-human cancer detection AI – and then not supporting those claims with tangible evidence "Without the computer code and fitted model, it will be very difficult to build on their work..." https://t.co/8aUiQo0Cbo」 / Twitter
- Top doctors slam Google for not backing up incredible claims of super-human cancer-spotting AI • The Register
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓収集した実験用データに対してはうまい具合に良い予測精度が出せて、多様な個別環境に適応できるようなモデル&学習のやり方はまったく考慮されていない。ML失敗のあるあるですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これの解決のために転移学習や能動学習がカギになるという人もいますし、あるいは差異の要因がある程度仮定できるなら階層ベイズで解決するのが手っ取り早いでしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えば10の病院からそれぞれ1万枚の画像データを集めたとしたら、データ量は10万ではなく、10です。この辺の見かけの数値にとらわれない課題難易度の認識が大事。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ビッグデータ」や「大量データで学習」などの流行文句がありつつも、少量データに対する効率的な学習が超大事なのはこういった理由があるためです。この辺りは下記の杉山先生の研究課題を見るとよいです。 https://t.co/JHUfekL0tS」 / Twitter
- 理研AIP-NEC連携センター | 革新知能統合研究センター
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「現実問題を直接数理最適化問題としてデザインすることも重要ですが、個人的には機械学習と組み合わせる際にも有用だと思います。僕も以前、構築した機械学習アルゴリズムの部分問題を解くためにQP Solverなどを併用したことがある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分もまだまだ知識が足りていないですが、例えばベイズ統計の近似手法を改善するためには数理最適化の考え方を深く理解する必要がある。例えば隠れマルコフモデルなどを効率よく推論計算するためには動的計画法が定番。モデルの構造に合わせて適切な手法選択するためにはこの辺りの知識は必須ですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「最適化問題のオーバーフィットの話にも関連しますが、現実的にはアルゴリズムで計算された出力結果が実際にビジネスオペレーションに落とし込めるかが重要になってきます。簡単にいうと、出口論が大事。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「架空の話ですが、自動販売機1台1台の精緻な売上予測が出来たとしましょう。最適化アルゴリズムによって提案された在庫管理のスケジューリングが、現実のオペレーションではあまりにもダイナミックすぎて管理しにくくなる可能性がある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「数字の上では高いROIが期待できても、現実のオペレーションに対するフィージビリティが保てないケースは非常に多い。この辺りは現実課題を数理的な問題に落とし込むとかそういう以前の段階で事前に業務を深く理解したメンバーと議論する必要がある。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「これは制御の問題にも通じます。あるカメラの予測を通じて物体を追いかけるような制御をしたいとして、その予測に従って追いかける動作を現実的な制御入力で達成できないことがあります。 すると何をいつまでに予測できなければ制御が間に合わないのか、逆算する必要があるわけです。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「予測はしばしば、次のアクションのための情報として扱われますが、本当にアクションに繋がるのか、あるいはアクションに繋がるような情報とは何なのかを常に考えて予測問題を作らねばならないわけです。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「これめちゃくちゃ重要だよなー。 特に経営者からやってくるテーマそのままだと出口が作れないケースが結構ある。本当にやりたいことをより広いスコープで捉えて「単純な方法でも成果がでそう」なテーマに変えて提案して「あとから精度上げに行く」くらいの気持ちでやるのがいいと思う。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「たとえば、在庫予測したい!とか30回くらい聞いたけど、庫内滞留のリスク最小化したいとかは聞いたことないもん。なぜなら、ロジとマーケの組織が縦割りになってるから。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「そもそものKPI分割が問題を局所化している可能性を考えないといけない。」 / Twitter
- micchanさんはTwitterを使っています 「このスレッド全部に頷きすぎて頭くらくら。前に某大手食品メーカーの熟成予測をやった際、エンジンの成果は出せたけど、サイクルが現場にフィットせず仕入れのSCM側の改革も必要だったり、かなり広範囲で見ないと結局インパクトが出せない問題を思い出しました。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「根本には、サプライチェーン全体から見たボトルネックを認識せずに、部分問題を過度に最適化することに問題があります。特にロジスティクスでの物理的制約や顧客の認知限界などは多くの場合無視できない。過度な部分最適化は全体としての柔軟性を欠く。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「正解ラベルがないとまったく何も進みません」という案件は、たいてい正解ラベルが集まった後でもまったくうまくいかない」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「この認識が間違いであることは実務者全員が認識した方がよいですね。 >入力と出力の関係性が未知でもデータがあれば予測モデルを立てられる」 / Twitter
- MassSさんはTwitterを使っています 「入力と出力の関係性が未知でもデータがあれば予測モデルを立てられるというメリットがあったはずが、実用では結局対象の理解がある程度欲しいとなると、、ジレンマ」 / Twitter
- MassSさんはTwitterを使っています 「結局実務では対象の現象を仮説立てて挙動をモデルに入れ込んで作り込んでいくことが多くて、あり得る現実的な入力全てに対して万能に返してくれるものはないとなると、、個別問題になりやすく、、悩ましい」 / Twitter
- MassSさんはTwitterを使っています 「ただし、ディープラーニング含め何ちゃら学習器を使って(過学習をしている状態を除いては)なんらか入力に対して予測可否がなんとなく分かるというベンチマーク的な使い方はありだと思っていて、対象の理解はそこから逆算してすることもある」 / Twitter
- MassSさんはTwitterを使っています 「結局機械学習は愚直に覚えるアルゴリズムなだけなので、現象が分かっているものに強いて使う必要はないのだけども、現象をアルゴリズムに入れ込める人間はそう多くはないので、愚直でもいいから効用のある課題に取り組むってのも忘れてはいけないと思う。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog https://t.co/ppwO7tTzBD」 / Twitter
- Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「lightGBなんちゃらが欠損値を扱えるとかわりとどうでもいい話をよく聞きますが、基本的にあらゆる回帰モデルは容易に欠損値補間ができるように拡張できます。もちろん、欠損の捉え方により無数にバリエーションはありますが。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ここ数年の機械学習の産業応用のドライバーは、機械学習の技術自体ではなくgit cloneな気がする」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習周りの考え方そのものは20~30年そんなに変わっていません。ただ、圧倒的に外部からのアクセシビリティが良くなった。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計はtraditionalではなくfundamental。データ解析や機械学習をツールの集合体であると捉えていると、このあたりの本質は理解できないですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「特に「予測精度が上がりました」で突然説明が終わっているのはダメな典型。「予測精度が上がりました」はそれ自体では何か問題を解いたことにならない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ある分野で統計や機械学習を適用する際は、成果報告としてちゃんとその分野での言葉&貢献で説明できないといけないですね。機械学習の世界に課題を投げたまま戻ってこないケースが多いように感じます。」 / Twitter
@hidekatsu_izuno
- 伊津野 英克さんはTwitterを使っています 「数学の枠内だけでどうやって「正しい」とか「因果関係」とか「未知の推定」とか「意思決定」を扱うつもりなんだろ。物理現象があっての物理学であるのと同様、各種概念があっての統計学なのに、各種概念を無視して何が言えると思ってるんだろ、というのが個人的な見解。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「「有意である」とは何かという概念があって、その実装として p 値があるわけで、概念がなければ p 値なんてただの数値に過ぎないわけでしょ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「皆「僕は主義なんていらない」ってところから話が始まるからわけのわからないことになっているんじゃないかなぁ。「主義はあるけど、意識する必要はあまりない」と考えを変えるだけの話なのに。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「統計学が物理学と違うのは、扱っている対象が物理学に比べて一段メタな分、哲学側に近いところにあるからではないかと思ってる。因果なんてまさにそうだけど統計の各種概念は哲学が扱ってきた領域だしね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「という話をブログに書くつもりなんだけど、本当は本職の科学哲学の人に書いてほしいんだよなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「DAGだと同時決定するような因果関係扱えないということのようなので、たしかにそれはイマイチかも。双方向の因果関係の定常状態はわりと一般的に思えるし。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「因果推論は「適切な因果グラフがかける前提で、妥当な効果を特定する方法」であって、因果グラフが適切かは人間が恣意的に決めるしかないんだけど、そこら辺に「因果推論」という用語とのギャップがある気がする。」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「素人的には表を入れたら勝手に因果グラフ作って何が原因か特定できてほしいもんねぇ。世の中そうはうまく行かない。」 / Twitter
@masahiro_sakai
2020-10-31
- Masahiro SakaiさんはTwitterを使っています 「SAT-Based Encodings for Optimal Decision Trees with Explicit Paths https://t.co/Yuw61N4WCP SATソルバを使って最適な決定木を求める話。具体的には、二値分類で特徴量も2値のケースで、完全な分類を行う決定木のなかで、深さやノード数が特定の数の木をSATで求めるのを小さい方から繰り返す。」 / Twitter
- SAT-Based Encodings for Optimal Decision Trees with Explicit Paths | SpringerLink
- Masahiro SakaiさんはTwitterを使っています 「木を扱おうと思うとノードとエッジに基づいた符号化が思いつくけど、提案手法はパスに基づいた符号化で面白く、また自然に symmetry breaking 出来ていて良い。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「多値分類や特徴量が多値の場合への一般化は簡単だけど、特徴量が連続値の場合と誤分類を許す場合の扱いが自明でないので、手法は技術的に面白いものの、現状では実用するのは難しそう?」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「先日Optimal Trees の話 https://t.co/GRoUwV3uju を聞いて、そういえばSAT 2020でそんなタイトルの論文があったなぁ、と思って読んでみたのだった。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「一つめは、決定木学習のCARTは局所的に最適なブランチを繰り返すことで決定木を構築するが、それに対して(木の深さの制約のもと)大域最適な解を求める Optimal Trees という手法で、100万サンプル1万特徴量とかまでスケールし、 CART や XGBoost よりも高い汎化性能。」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深いテーマが多い。 ---- 「βアミロイド・ワクチン法」(βアミロイド投与で抗体生成) 「脳の消費エネルギーは 20W」 「ヒルの逃走法選択(≒自由意志)は膜電位の揺らぎ」(これは知っていた) https://t.co/3unQrNDbRq"
- 進化しすぎた脳 | PHILOSOPHY OF SCIENCE
- Shirouzu Hiroaki(白水啓章)さんのツイート: "人間の「自由意志」も、根本はヒルの膜電位と大差ない原理(ランダム性)だろうなぁ。 (そして「飽きる」という現象と同じく、選択の固定化を避けて生存確率を高めてきたと)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、意識を「量子揺らぎ」に求める著名科学者も居た気がするが、例えばMRIでスピンの向きを揃えても意識を失わないし、PETにも耐えるし、もっと巨視的な話ではという気も。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "私も昔から「関数次第で何とでもなるよね」という違和感があったなぁ。 (フーリエ級数で解く人とかもいるのだろうか?) ちなみに現実的には「最もエントロピーの低い関数に基づく解のみを正解とする」的な補足があればよいのかな?… "
- 西内啓 Hiromu Nishiuchiさんのツイート: "IQテストとかでいくつか数字並べて次の数字何でしょうみたいな問題、やろうと思えば変な式でもフィッティング出来るはずで、結局のところ何が「正解」かってただの納得感の問題である。むしろ今の世の中に必要なのは1,2,3,x…という並びを見て4以外の斬新な答えとその理由を思いつける人間なのかも。"
- 西内啓 Hiromu Nishiuchiさんのツイート: "なお、全く数学的な意味はないんですけど、8,13,22,24,25,32,33,○,42,44,52という数の並びを見て○に入る数字即答できる人がいたらめっちゃ友達になりたい。今だと「この並びにいずれは0,3,6,23のどれかが入るんですかね!」みたいな話で盛り上がりたい。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ふーむ。 サンプルを使って法則発見より、全パターン網羅辞書を作れば法則化自体が不要、みたいなノリに見える(笑) https://t.co/bnceFj08Jl」 / Twitter
- Hiroo YamagataさんはTwitterを使っています: 「いまやっている訳書で、自然言語解析で百万語くらいで学習させるとアルゴリズムにより成果に大きな差が出るが、一億語学習させると、もうアルゴリズムの差なんかどうでもよくなるそうな! だから、革新的アルゴリズムをひっさげた新たなグーグルによる下剋上なんてのは、もうあり得ないとのこと。」 / Twitter
@sinya8282
- Ryoma Sin'yaさんはTwitterを使っています 「今日はデータサイエンスの講義を見学させてもらったんだけど、lasso の意味というかスパース感がめっちゃわかりやすくて腑に落ちた(普通に勉強になった).」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「チコノフの正則化とかリッジ回帰とか調整項の意味とか事前情報の正当化とか、この辺の話は数学者と工学者でだいぶ伝え方が変わるのかな、とか思ったり(見学した講義は数学者の方が話していた)。」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「「確率論の大家にフェラーという人がいる」 と講師の方が言った直後ニヤニヤしてる学生さんが何人かいたことは先生黙っておきます.」 / Twitter
@fffumihiro
- くいなちゃんさんのツイート: "「数式」が苦手なプログラマさんの気持ちは分かります。 数式がプログラムだとすると、変数名や関数名が大抵1文字で、定義に "コメント" がほとんどなく、その定義こそが仕様書で、ステップ実行もデバッガもないとは、プログラマさんにとって 保守不可能と判断されると思われます。"
- FFFumihiro MMMatsuiさんのツイート: "確かに言われてみれば、数式たくさん使って説明するあれこれにソフトウェア工学のあれこれを取り入れたら伝わりやすくなる可能性ある気がする。似たような式変形を何度もやる内に慣れてくのは、コメントが無いコードに対して、似たようなコードを書いた事あるからすぐ読めるって感覚に割と近い気がする"
- FFFumihiro MMMatsuiさんのツイート: "なので、そういう式変形を扱った事がなくてもちゃんと分かりやすく伝えるっていう方向で良くできる余地はありそう。現状だとなんか、分かるまで読む側が鍛えろ的な感じで、あまりそういうの追求されてない気がするし"
- FFFumihiro MMMatsuiさんのツイート: "素直に扱うと手に負えないくらい複雑になってしまうものを、なんとか万人にとって扱いやすくしたいという点では、ソフトウェア工学ってずっとそういうの研究してるわけだし、もっと他の分野に応用されてもよさそうだな"
- きいねくさんのツイート: "確率問題は極端に考えると直感的にわかりやすくなる傾向があると思う. ■モンティホール→ドアの数が1億2個で1億個開ける(確率上昇が直感的にわかる) ■感染確率→感染確率 0 %の病気で,90%正しい検査キットで陽性だったときの本当に感染している確率(90%じゃないことが直感的にわかる)"
- FFFumihiro MMMatsuiさんのツイート: "モンティホール問題は最初知ったとき不思議で不思議で、結局やっぱりこういう極端な場合を考えてやっとなるほどってなった"
- FFFumihiro MMMatsuiさんのツイート: "確かに確率と直感のすり合わせって、モデルそのものは数個くらいの少ない N でイメージした方がわかりやすい気がするけど、直感的にあれ?ってなる挙動が隠れてたりとかは、一応 N を相当大きくした場合もイメージしてみないとなかなか気づけなそうな感じあるなあ"
- Shiro KawaiさんはTwitterを使っています 「対象のボキャブラリ (シンボル、イメージ、感覚記憶など)をノードとする有向グラフで考えてるような気がする。自分は。」 / Twitter
- Hideki Kawahara: WAH (Work@Home)さんはTwitterを使っています 「少し前にRTしたこれ。巻き込むと申し訳ないので。。 「人間が思考を全て自然言語で行っている(ような気がする)から、気付きにくいのでは。」 思考を自然言語で行なっている気が全くしないので???となった。自然言語は、(主に)考えている(考えた)ことを他の人に伝えたい時に使う。」 / Twitter
histric
histric-1
- Kazuho OkuさんはTwitterを使っています 「コロナ関係の計算してて思うのは、統計使ったソフトウェアのチューニングはPDCAサイクルをさくさく回せるので、統計の扱い方の訓練に向いてるんじゃないかなぁってこと。感染症の予測と対策とか練習も失敗もできないし」 / Twitter
- ゆきさんはTwitterを使っています: 「Network-Based Website Fingerprinting https://t.co/r1vAw2seKs 機械学習を用いて、暗号化されたトラフィックから閲覧ページを推測する系の話し流行ってるよね。(あまり論文は読まないが、draftになると読む系男子orz) #yuki_id」 / Twitter
- draft-wood-pearg-website-fingerprinting-00 - Network-Based Website Fingerprinting
- Daisuke OkanoharaさんはTwitterを使っています: 「NNは斉次函数(ReLUを使った時など)であり指数損失(クロスエントロピー損失など)を使って学習する場合、勾配降下法による学習は正規化マージン最大化に対応し、その収束レートも示せる。はじめて現実的な条件で非線形多層NNで最大マージン化がされていることが証明された https://t.co/GDSd1fc3uW」 / Twitter
- Gradient Descent Maximizes the Margin of Homogeneous Neural Networks | OpenReview
- FadisさんはTwitterを使っています: 「ニューラルネットワークの誤差逆伝播で重みに対して上がってくる勾配が小さいと半精度浮動小数で計算した時に勾配が消える問題に対して、誤差をn倍して逆伝播して、重みを修正する前に1/nすれば良い(ReLUとか使ってるとこれでいけてしまう)とかやりだすNVIDIAさんあたまいい」 / Twitter
- FadisさんはTwitterを使っています: 「半精度だとTensorCoreで爆速で計算できるからNVIDIAはディープラーニングに半精度を使って欲しいけど、ユーザは溢れを恐れて半精度に慎重になるから、スケールすれば半精度でも大丈夫そうな所を自動で見つけて半精度に置き換え、スケールを動的に求めながら学習するような最適化 AMP が作られたらしい」 / Twitter
- Mitsuo Yoshida; AI botさんはTwitterを使っています: 「深層学習を使った推薦手法が増えてきてるけど、ちゃんと比較すると古典的な手法に負けてるという話。再現性の問題や不適切な比較実験が多いことを指摘。 / Recsys 2019 ベストペーパーを読んだメモ https://t.co/B5e8FgENof #Qiita」 / Twitter
- RecSys 2019 ベストペーパーを読んだメモ - Qiita
- Agata NaomichiさんはTwitterを使っています: 「text-to-text transfer transformer めっちゃ良い。夢が広がるしアイディアも広がる。BART も似たような話だけど T5 は論文自体がめちゃくちゃ長い分、比較とか考察に富んでてかなり読み応えある。 https://t.co/9qCkluBHyG」 / Twitter
- [1910.10683] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
- みぽさんはTwitterを使っています 「中央値と平均値の説明、「村にビルゲイツが引っ越してきたときの、その村の世帯年収の中央値と平均値」という感じの説明が好き」 / Twitter
- Miura HidekiさんはTwitterを使っています 「イメージしやすい」 / Twitter
- FadisさんはTwitterを使っています: 「ニューラルネットワークの学習は「なんでも関数」と「非線形最適化」の組み合わせなわけで、ニューラルネットワークの学習を効率よく行う工夫の何割かは非線形最適化問題を効率よく解く手法と見做す事ができて、今ニューラルネットワークと関係ない所で「AdaBoundすげぇ!」ってなってる」 / Twitter
- AdaBound - Google 検索
- えるエルさんはTwitterを使っています 「お馴染みパターン認識と機械学習(PRML)のアルゴリズムをPythonで実装したリポジトリ 作者は日本の方だと思われ,実装も結構前からあったようですが,今になって海外の研究者に発見されて絶賛されている模様 実際かなりキレイな実装で,PRMLを読むときはかなり参考になりそう https://t.co/Ul9QklyYKk」 / Twitter
- ctgk/PRML: PRML algorithms implemented in Python
- Yasunori OhtoさんはTwitterを使っています 「証明に穴があったので、全面リライトしました。広く拡散、読んで頂けると嬉しいです。 https://t.co/wMxkMZQoJv」 / Twitter
- (PDF) Extract maximum clique using eigenvalue relation
- piqcyさんはTwitterを使っています 「研究発表された検索アルゴリズムを実際使える&検証できるようにするプロジェクト。Luceneで実装されている。検証のため様々なデータセットによるテストができるようになっており、新型コロナ関係論文もサポートされている。 https://t.co/jIgeRioC6o」 / Twitter
- castorini/anserini: A Lucene toolkit for replicable information retrieval research
- Kazuho OkuさんはTwitterを使っています 「3/23のデータ入れた。(7日移動平均を使っていることもあり)大きな変化は見えない。 東京は、なんらかの対策強化が近いうちにあると思う(参考 https://t.co/YF1BCrHRw4) https://t.co/T2tT3sSSRV」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そういえば株価チャートの移動平均、25日や75日の理論的根拠はなんなんだろう。件のグラフで7日移動平均使ってるのは、累計の対数グラフよりも感度が良く、かつ、平日休日の差に起因するもの含めノイズを消せるからなんだけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「移動平均とかを使うアルゴリズムの標準化をみていると、指標の理論的根拠にうるさくなってしまう問題」 / Twitter
histric-2
- 山本 和英(自然言語処理)さんはTwitterを使っています 「「自然言語が本来持ち合わせる量子的特性を利用して、文法例文を量子回路に変換しました。その上で得られたプログラムを量子コンピュータに実装し、質問応答をさせることに成功しました」「長年の夢であった「意味を理解」し「文法に基づいた」自然言語処理が実現しました」 https://t.co/kmeyXg1ILi」 / Twitter
- 英国ケンブリッジ・クオンタム・コンピューティング、世界で初めて量子自然言語処理における実証実験を実施 - CNET Japan
- Quantum Natural Language Processing - Cambridge Quantum Computing - Medium
- An introduction to t|ket> - YouTube
- ミライ小町【公式】さんはTwitterを使っています 「本日バンダイナムコ研究所が公開したDistilBERTの日本語事前学習モデルは、、、 BERTモデルと比べてサイズが約40%小さいし! 推論が約50%も速くって! 精度は分類タスクで約90%なんですよ! すごーい!✨ https://t.co/hsa6Z16CFI」 / Twitter
- BandaiNamcoResearchInc/DistilBERT-base-jp
- Yuta.HさんはTwitterを使っています 「BigQuery MLで作成したモデルのTensorflow Saved Model 形式での取り出しが可能になりました!これによりBigQuery MLでPredictさせる機械学習モデルの生成だけではなくBigQuery ML自体がかんたんなモデルのフルマネージド分散学習環境として使えるようになりました。 https://t.co/zAnPTaumK0 #gcpja」 / Twitter
- Exporting models | BigQuery ML | Google Cloud
- Tomoyuki MorimaeさんはTwitterを使っています 「量子計算理論:オンライン教材 自宅学習をしている学生の方用に作ってみました。今後付け足していく予定です。 https://t.co/mrYXcvlTyc」 / Twitter
- lectures.pdf
- HELLO CYBERNETICSさんはTwitterを使っています 「統計的だが規則的な振る舞いがあるから学習できるのであって、本当にランダムなノイズを帳消しにできるわけではないのだが……。バラつきを機械学習で何とかしたい、みたいなの根本的におかしい。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「もちろん、(例えば囲碁など)素人目にはランダムに見えているものが、実際には何らかの規則に基づいているはずだ!しかし、それを解き明かすのは困難だ。という話は全然OK。 ここで言っているのはS/N比が極端に悪いものを機械学習に突っ込んでも何も生まれませんということ。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「データ収集におけるS/N比を良くする、特徴量を掴む、ということをしてみると、そこには意外とシンプルな規則があり、線形モデルないしルールベースでうまく行くということがあったりする。 予測できればOKはそうなんだけど、そういう土俵になってるかを調べるのはとても大切。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「囲碁でいうと、石の色を間違えてましたとか、石の置かれてる場所が違いましたとか、石を間違えて違うところに置いちゃます とかいうのが不規則に生ずる環境で、強化学習して絶対に見間違いせず、打ち手を誤らないようにします。 なんて無茶なんです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「そもそもベイズの「信用区間」なるものを全く使わないのでよく知らなかったのですが、下記を見る限りでは明らかに信頼区間の考え方に寄せられてわけわかんない説明になっちゃってますね。 信頼区間(confidence interval)と信用区間(credible interval)の違い https://t.co/C0KTtsPhmR」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「まともに勉強していないので理解が怪しいですが、統計はもともとデータをある仮定の元で要約することによって人間が判断を行いやすくするというのが1つの目的だと思います。AIの時代では、計算機が高次元のデータを整然と処理し判断を行うので、要約をする必要がないケースが出てくる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「件のベイズの「信用区間」が最たる例で、確かに人間にとっては区間を表示するのが直感的に解釈しやすいかもしれない。機械だと話は違う。むしろ、奇妙に要約された「区間」ではなく、大量のMCMCのサンプルなどを使った期待値計算やそれによる行動選択において人間を凌駕できる可能性の広がりがある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「まとめると次のように予想します。 ・モデリング→しばらくは人がやるし、やりやすくなるようにツールも進化する ・推論計算→MCMC以外でも数理的に特性の良いアルゴリズムが今後も登場する(はず) ・事後分布の活用→人間だけではなく計算機が利用するケースが増える」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「やっぱpredictionって言い方が期待値上げすぎと思う。inferenceくらいでいい。既知の事象からわかる範囲のことしか出てこない。汎化って、未来を予測できる性能ではなくて、既知の事象からいかに本質的なパターンを抽出できるか、という性能に過ぎない(本質ってなんじゃいって話になるけど)」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「MLは高次元から低次元のパターン(多様体?)を抽出するのは得意だけど、ドメイン知識や常識はない。人間はその逆。この両者をいかに合成するかがカギ。CNN(2D畳み込み)の成功やベイズ等の統計の強みも人の知恵の外挿と思うし、DNNのデータ拡張は非効率な外挿。どれも未来予測ではなくITの開発手法。」 / Twitter
- ともい(Tomoi,S.)さんはTwitterを使っています 「今の時代であれば、文章を構成する言葉を数語入れればドロップダウンできる文章候補ができてて、ショートカットキーで選択すれば終わりとか、エージェントの域に来ててもいい気がしますが、作文ソフトを除き、そういう指向性のものってIMには全く降りてきてないような…。 (あればそれを扱ってみたい)」 / Twitter
- ともい(Tomoi,S.)さんはTwitterを使っています 「特に、入力した情報より多いものを返す系が発達していないなと、自分の見た限りでは感じています。 タイプの正確性以前に、個人的にはキータイプの速度を超えることがブレイクスルーの一歩ではないかと感じてまして…。」 / Twitter
- Isao TakaesuさんはTwitterを使っています 「NISTが策定中の「機械学習セキュリティ」に関するベストプラクティスのドラフト版。攻撃手法・防御手法の分類や用語を整理している段階。現バージョンの全文はPDFで確認することができる。 #aisec #jpsecai https://t.co/OXyKyin81x」 / Twitter
- Artificial Intelligence: Adversarial Machine Learning | NCCoE
- Agata NaomichiさんはTwitterを使っています 「強化学習やってると、gradient必要な計算とそうでない計算が混ざってよくわからなくなってくるんだけど、spinningup の実装読むと gradient いらない時はそもそも nd.array を返すような interface 設計になっていてとてもわかりやすい」 / Twitter
- 清 史弘さんはTwitterを使っています 「【清史弘からの提案 7 の説明案】 私が用意しておいたものをここにおきます。これを参考に(100%使ってもよいです)、この置換にたどり着くための話の動画を教育系のYouTuber のどなたかが作ってくれると嬉しいです。2枚になります。 #清史弘からの提案 https://t.co/VzILwv12gG」 / Twitter
histric-3
- Shinji KonoさんはTwitterを使っています 「統計に必要な数学はいろいろあるが、可視化できないなら、その結果に意味はない」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「多田明功さん「実務における数理最適化技術と実践」。2019年度後半より数理システム主催のワークショップと同タイトル。実行不可能な場合にも何かしらの答えを返して欲しいが、単純に緩和問題の解を返すだけではどこに違反が出るか分からず対処しにくいので、後調整しやすい特定の制約に違反をしわ寄せ」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「小熊祐司さん「工場ピーク電力抑制を目的とした生産設備運転計画最適化 ―最大値最小化とメタヒューリスティクス」。ピーク電力に応じて基本料金が決まるのでピーク電力最小化。最大値最小化の形で目的関数値に寄与しない箇所の自由度から同じ目的関数値をとる多数の解が存在し分枝限定法には不向き。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「一方で実行解は多数存在するのでメタヒューリスティクス向き。近傍定義および目的関数設計を工夫。ピーク電力をそのまま目的関数とすると、ピーク発生時間帯のジョブの移動のみが目的関数への感度を持ち、全体的にジョブを調整して平準化するという自然な改善がされづらいので、平準化の誘導項を追加。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「奥田裕之さん「自動運転における実時間最適化とモデル予測制御」。衝突回避制約は非凸になるのか(確かに言われてみれば)。相手の”迷い”を低減する合流制御の話、モード切替を伴う予測モデルを用いるMPCの話、制約充足型自動運転の話など面白かった。」 / Twitter
- さっじーさんはTwitterを使っています 「富士通研究所のAI応用例だけど、災害避難経路最適化とか待機児童最適割当とか色々あって面白いなー ビックデータで学習させてブラックボックス化するんじゃなくて、数理モデルを基盤とした学習をすることで、なんでこの答えを出したのかを説明ができるAIができたりするってのはすごい」 / Twitter
- 全卓樹さんはTwitterを使っています 「物理学者から見た、ひとつの「世界の4分表」をどうぞ。ストロガッツ大先生のnonlinear dynamics and chaos 2014から。 通常は物理っていうと左上だけ、せいぜい右上まで含んだものをイメージするじゃないですか。でも実際はずっと広がってるし、最前線は他分野に浸食してるよって。 https://t.co/JdAeXiljS7」 / Twitter
- UmeponさんはTwitterを使っています 「もう少し手が空いたら,capacitated vehicle routing problem(CVRP)や,vehicle routing problem with time-window(VRPTW)などの典型的な配送計画問題が整数計画ソルバーでどれぐらい解けるかを色々と試したい.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「統計って、少し勉強したけど散布図以上のことがわかる数学マジックは存在しないってのが自分の理解。因子分析は面白いが話題には登らないね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「統計の勉強であれだったのは分母のnとn+1の差が重要とか言われたこと。いや、それ統計の分母だろ? もちろん、理論の整合性に必要なのはわかるけどさ。」 / Twitter
- Masataka EguchiさんはTwitterを使っています 「PRMLの序論をよく見たら、頻度主義とベイズ主義は確率解釈が異なり、ベイズの確率解釈は信念と密接な関わりがあり、さらに意思決定理論と組み合わせることで、パターン認識で直面する不確実性を伴う状況下での最適な意思決定を可能にするといったことが書いてありますね。」 / Twitter
- 田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「推定値の大切な性質 1) 一致性: データが増えた時、推定値は真の値に近くか 2) 不偏性: 推定値の期待値は真の値と同じか 3) 頑健性: ぶれにくい推定値か • 一致性は出来れば満たして欲しい性質です。 • 例えば、「平均値」は外れ値に弱いため「中央値」と比べて頑健性が低い指標です。」 / Twitter
- 田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「機械学習の Bias - Variance トレードオフは、不偏性と頑健性の天秤です。 例えばRidge回帰は、チューニングパラメータλが高くなるほど不偏性が下がり、代わりに 頑健性 が上がります。頑健性が低いモデルは訓練データに左右されやすく、つまり過学習しやすいのです。」 / Twitter
- Tsumoto🦧さんはTwitterを使っています 「今年読んだ論文の中で最も衝撃だったのが 「皮膚のニューロンが信号伝達だけでなく大脳皮質同様の計算処理を行っている」 というこの論文 https://t.co/XNnzihVQY0 信号伝達しかしないと思われていた指先の末梢ニューロンが, 実は接触したものの幾何学的情報を処理していたことが明らかになったらしい https://t.co/s72SgODTrM」 / Twitter
- Edge-orientation processing in first-order tactile neurons | Nature Neuroscience
- ノーン@レポ7さんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
- Kohta IshikawaさんはTwitterを使っています 「特異学習理論が統計力学そのものかどうか判断できるほどに統計力学の方を知らないんだけど、統計力学の方で確率密度関数としての特異性が効いてくるケースってどんなのなんだろう。自発的対称性の破れとか?」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「で何度も書いていますが、個人的な見解は、今回の人工知能ブームも数年で終了する、です。 その後は、情報学基礎(ハードウェア、プログラミング)、数学(線形代数、統計・確率など)の能力がある人材に人気が集中するのでは、というのが個人的見解です。」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「機械学習ツール使えても、使っているアルゴリズムの収束性とか、パラメタ寄与率解析とか、できないと、製品の品質保証ができないので、製品が作れない。ということが、今までも繰り返してきている歴史です。」 / Twitter
- TarotanさんはTwitterを使っています 「(再告知) 信頼区間に対するFisher-Neymanの議論で,信頼係数を「係数」と呼ぶか「確率」と呼ぶかという議論もありましたが,以前の私の呟きでは誤読かつ見落としていました. 以下のブログでその呟きを訂正し,Neyman(1934)の該当部分を抜き出しました. https://t.co/lBDYbB60dG」 / Twitter
- TwitterでのNeyman(1934)に対する事実誤認の訂正 - Tarotanのブログ
- goto yutaさんはTwitterを使っています 「Googleの実用的すぎる神論文。 言語モデルの学習を効率化する為に、学習データから似たものを排除する手法を提案し、少ない学習ステップで同等以上の精度のモデルを学習できることを示した論文。 https://t.co/Cxho2TrBsa ソースコードも公開されている: https://t.co/j2lI33vEjA」 / Twitter
- google-research/deduplicate-text-datasets
histric-4
- 伊津野 英克さんはTwitterを使っています 「統計学の目的って記述、予測、推定、検定、意思決定といろいろ目的あるけど、あんまりその関係性って整理されてるの見たことないな。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「テキストや動画での嘘情報がインターネットに溢れて、正確さじゃなくて観覧数で収益が配分されているのだから、嘘情報を散蒔くのはプラットフォーマーのせいだけど、NLPのブレークスルーがないのが原因かな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「「今年レイヴが来る」とGoogleで検索すると小室哲哉話が1ページから出てくるけど、「今年ジャングルが来る」の場合は、ジャングルポケットとか関係ない話ばかりになるのか。これでウマ娘とかで馬名で使われたら、もうウマ娘だらけになりそうな予感」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「統計の取り方は慣れてるテーマでもほんと要注意なのにその比較はあかんやつやろってのがメディアとかではよくあって普段はまあそういうもんって思ってたけどコロナ禍とかではさすがにどっか監督する仕組み要るのではって思ったりする」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そもそも関係を見るという事は本来散らばれる次元数より自由度数ががたんと減るほど強く縛り付ける機構が支配的と見なすわけで、さらに雑多混合な集団が一つの線に乗るというのはその雑多さによららず機構の各係数がみんな同じになっちゃうという相当強い事を要請するわけで気を付けないと危ないよなあ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「マクナマラの誤謬 (The McNamara Fallacy) - 「定量的に測定できないものは、考慮すべきでない」という考え。このため米国はベトナム戦争で「数値上は」勝っていたのに、負けた。一方で、デミング博士は「測定できるからといって重要とは限らない」という警告を残している。 https://t.co/OvlUfzjvhQ」 / Twitter
- The McNamara Fallacy – measurement is not understanding
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日、データ至上主義が浸透している世の中では、マクナマラの誤謬はより広範囲で(一般人に)起こっている。定量的な情報が役に立たないということではない。それは全体像のなかのごく一部の側面にすぎないということなのである。」 / Twitter
- Kunihiko Imai 🍱さんはTwitterを使っています 「ルールベースのものは「エキスパートシテスム」という名前で,90年代のブームでは AI に分類されていたな」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ルールベース」って偽物AIの代名詞みたいに言われてますが、本来理想とすべきは明確なルールや法則を抜き出すことなんであり、それができないから機械学習やら確率やら使って何とかその場をしのいでいる、という見方もできます。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブな Gaussian Belief Propagation (GBP) 入門。これは bayesian network上でメッセージ送受信を行うことで、推論結果を反復的 (iterative) に求める一般的なアルゴリズムである。GPUなどの上でスケールさせやすいため、今後普及していくと思われる。 https://t.co/1hmxYxvIc4」 / Twitter
- Gaussian Belief Propagation
- uint256_tさんはTwitterを使っています 「{expected==inferred}/{num of samples} が 98.9% らしい (確かに動いていそう)」 / Twitter
- uint256_tさんはTwitterを使っています 「手作業でMNISTモデルを書いてみました... (重みは別ファイル) 動いてしまいました... https://t.co/C9UrOnnfcZ https://t.co/SzkW2ZcHce」 / Twitter
- maekawatoshiki/mymnist
- 高橋将宜 Masayoshi TakahashiさんはTwitterを使っています 「通常の最小二乗法では,誤差項の正規性の仮定が満たされていなくても,中心極限定理により,大標本なら統計的推測に問題は起きないとされています.具体的に標本がどれぐらい大きければよいかについて,この論文では1変数あたり観測値10以上あればよいとしています.(続く) https://t.co/MofpLSJysL」 / Twitter
- Linear regression and the normality assumption - ScienceDirect
- 高橋将宜 Masayoshi TakahashiさんはTwitterを使っています 「ただし,変数間の相関が強かったり,スパースなデータの場合,1変数あたり観測値50以上が必要かもしれないとも書かれています(p.150).(完)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「回帰係数に非負制約を課す NNLS (non-negative least squares) というものがあるらしい。 https://t.co/5gIdJLmrvg」 / Twitter
- Non-negative least squares - Wikipedia
histric-5
- Miura HidekiさんはTwitterを使っています 「ハッカーのたのしみ は凄いけど、実はこっちの方が凄いって思っています https://t.co/sgXv2v3ztJ」 / Twitter
- Chessprogramming wiki
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「「AI」というのは、「機械学習」による分析・予測、「数理最適化」による最適化、それらに当てはまらない「ヒューリスティックな改善」の3つの軸で大体出来ています! ってのを考えたんだけどなんか多分抜けてるよね。なんだろ。」 / Twitter
- Jinya NakamuraさんはTwitterを使っています 「@chokudai それらを支えるデータ、もしくはデータを生成する機構ですかね・・・」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「統計学のテクニカルタームは誤解しか招かないものいっぱいあるけど経路依存性が強くてもはや変えられない。master-slaveみたく政治問題でもあれば別だけど。」 / Twitter
- Haruka Ozaki (尾崎遼)さんはTwitterを使っています: 「サイエンスにおいてよいグラフとわるいグラフが対置されていてわかりやすい Friends don’t let friends …というフレーズでまとめているのも楽しい Rmarkdownでのコード付き https://t.co/aoB4Jmy03X」 / Twitter
- cxli233/FriendsDontLetFriends: Friends don't let friends make certain types of data visualization - What are they and why are they bad.
- Yuki Yugui Sonodaさんのツイート: "だからIMEの状態を見ずにエンターキーイベントだけ拾って検索を開始するのはやめろと何度言ったら"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています: 「x86バイナリを解析し、そこに埋め込まれた(GPUを使わない) DNNモデルのネットワークトポロジーから演算子までほぼオリジナルを寸分たがわず復元するという技術。コンパイラ最適化してあっても解析可能らしい。USENIX Security '23論文。Intel PinとIDA Proが必要。 https://t.co/I0uRFKT5O3」 / Twitter
- monkbai/DNN-decompiler: BTD - Bin To DNN: A DNN Executables Decompiler
- Shingo UtoさんはTwitterを使っています: 「DR法に機械学習を拡張させた「DR-Learner(Doubly Robust Learner)」という因果推論手法について、Pythonによる実装を交えてまとめました。ぜひご一読いただけますと幸いです。 https://t.co/SvasbkzInf」 / Twitter
- PythonによるDoubly Robust Learnerの実装
- 統計たんさんはTwitterを使っています: 「統計的な内容を、データ分析って呼ぶのがよくない。データを取った後の作業にしか思えない。本当はデータを取る前が勝負なのに多くの場合それを強調していない。データ取得設計技法と解析法、とか呼んだ方がよいんではなかろうか。」 / Twitter
- Tetsuya Hattori 服部哲弥さんはTwitterを使っています: 「@stattan 仰せの通り,はっきり区別あるのが数学側の初等教科書の立場からもありがたいかも.例えば独立同分布確率変数列と仮定して強い数学を使うとき,データ取得が仮定を満たすことを無作為抽出と呼んで始めることで切り離しで辛うじて初等数学教科書に収めるから,無作為抽出の方法への言及は難しいです.」 / Twitter
- ShibaさんはTwitterを使っています: 「ガウスの定理・ストークスの定理の一次元版がいわゆる原始関数の差の公式であることに今更気付き、驚いてしまいました」 / Twitter
- 伊津野 英克さんはTwitterを使っています: 「統計学やってて素人的にわからないのが分布と検定。本開くと素でこの変数はベータ分布を仮定しますとか書かれているんだけど、何故なのかはたいてい書いてない。検定も2群以上の差の検定はずなのに何と比較するのか省略されてること多い気がする。」 / Twitter
- uharaqoさんはTwitterを使っています: 「とはいえデータに限らず基盤整備や標準化って難しいよなぁ。目標をズバッと定めづらい。全員の要求を聞けばいいわけでもないし、一方的に作っても使われるかイマイチわからないし、上層部で決めればいいというものでもないし。困っているから改善する、というところから徐々に始めるといいのかな。」 / Twitter
- fetaroさんはTwitterを使っています: 「データ基盤を作りたいという動機は捨てた方が良いですよ。 データ基盤はデータ分析するための手段でしかないし、データ分析は意思決定や業務自動化の手段でしかない。 データ基盤は、ビジネスの手段ですらなく、手段の手段。webのシステムとかと比べても、本業からだいぶ遠いところにあります。」 / Twitter
- fetaroさんはTwitterを使っています: 「「データ分析しないと仕事にならん!」という状態になり、さらに「データ基盤がないとまともにデータ分析できない!」となってから、仕方なく作るデータ基盤がもっとも良い生い立ちだと思ってます。」 / Twitter
- fetaroさんはTwitterを使っています: 「よって、「データ基盤構築プロジェクト」は気をつけた方が良いです。 特に主目的が「バラバラになってる社内のデータを集約」なものは尚更注意が必要です。 巨額な資産を投じて、結果何も生まれない可能性があります。」 / Twitter
- MasaさんはTwitterを使っています: 「これすごく分かります。 「データ分析基盤ないからデータ分析できない」とかいうポエムをよく耳にするんですが違和感マックスです。 特にアドホック系の分析(効果検証系)なら尚更!! 政策の振り返りの不作為は、データ基盤の不在ではなく、事前の分析設計の不在によるものなのに。」 / Twitter
- まえすとろさんはTwitterを使っています: 「同感っす。。。。 どこかの文献(忘れました)によると、Excelとかでもいいのでデータ分析による意思決定をするなどして、データドリブンで業務をする文化がある程度浸透してから、と書いてあったような。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「行列にスカラーを足すやつ、行列を添字集合からの写像I→ℝだと思っている人には全要素足すのが自然で、線型写像V→Wの表現だと思っている人には単位行列倍を足すのが自然。両者が出会ってしまったのが不幸」 / Twitter
- mod_poppoさんはTwitterを使っています: 「数学者は行列にスカラーを足さずに、単位行列のスカラー倍を足すので偉い。computer visionの人は反省して」 / Twitter
- mod_poppoさんはTwitterを使っています: 「「行列の全要素にスカラーを足す」のを「行列にスカラーを足す」かのように表記するの、行列を2次元配列としか思ってない輩の所業という感じがする」 / Twitter
- mod_poppoさんはTwitterを使っています: 「numpyのndarrayは「ndarray」を名乗っている(matrixとかtensorじゃない)ので弁えている(numpyにはmatrixはあったけど)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「numpyが成功しすぎて、(応用寄りの)人々が受け入れるのは数学的な筋の通った(線形代数的な)行列・テンソルじゃなくて、ただの多次元配列にその場しのぎ的な構造を入れるやつなのではという疑念がある」 / Twitter
- mod_poppoさんはTwitterを使っています: 「応用の人に「お前らの記法は筋が悪い」と叫んでみても何も変わるはずはなく、数学的に筋の良い代替案を与えないといけない(普及するかはともかく)んだろうけど、応用側の需要が掴めてないと提案もできない」 / Twitter
- てらモス🈚さんはTwitterを使っています: 「あくまで型なし計算における間違った項を弾くために型システムはあるべきで、ある項が間違ってるかどうかはまぁ判断基準が色々あるわけやけども、少なくともNumPyが意図して実装してあるBroadcast周りを間違ってると考えるのは微妙という気持ち(´・ω・`)」 / Twitter
- ぷりさんはTwitterを使っています: 「numpyの提供する記法がヤバい問題、そもそもとしてPythonに「型の整合性とか破綻してでも簡単に書けるようにする」みたいな文化があるのが根幹では?みたいな気持ちがある」 / Twitter
- mod_poppoさんはTwitterを使っています: 「numpyの配列に**2したら行列の2乗じゃなくて要素ごとの2乗が計算されたのも良い思い出(普通に不便)」 / Twitter
- mod_poppoさんはTwitterを使っています: 「ただの多次元配列を「行列」「テンソル」と呼ぶべきではない論を突き詰めていくと、数を並べたものをベクトルと呼ぶのも避けるべき的な感じになる?それは行き過ぎ?」 / Twitter
- 数学女子さんはTwitterを使っています: 「@mod_poppo 適切な例かどうか微妙ですが、物理学科で「温度と質量を並べた対象をベクトルと呼ばれても(物理としては)困る」という話をされたことがあり、応用上問題になることがないわけでもありません。」 / Twitter
- mod_poppoさんはTwitterを使っています: 「@phasetrbot なるほど」 / Twitter
- mod_poppoさんはTwitterを使っています: 「numpyのndarray, 要素が1個の時だけboolに変換できるのか。要素の個数によってエラーが出たり出なかったりする、型がガバガバなPythonらしい実に素敵な仕様だ。」 / Twitter
Advent Calendar
- 自然言語処理 Advent Calendar 2016 - Qiita
- 自然言語処理 Advent Calendar 2017 - Qiita
- 自然言語処理 Advent Calendar 2019 - Qiita
- 漢直 Advent Calendar : ATND
- 漢直 advent calendar 2013 - connpass
- 漢直 Advent Calendar 2015 - Adventar
- Androidでも漢直がしたかった話 - にせねこメモ
- TUT-Code打鍵動画 - にせねこメモ
- 数理最適化 Advent Calendar 2020 - Qiita
- 数値計算のカレンダー | Advent Calendar 2022 - Qiita
- 情報検索・検索エンジン Advent Calendar 2019 - Qiita
- 情報検索・検索技術 Advent Calendar 2021 - Adventar
- 情報検索・検索技術 Advent Calendar 2022 - Adventar